:root {
  --ely-primary: #00577a;
  --ely-primary-hover: #004561;
  --ely-secondary: #007589;
  --ely-accent: #00a0a1;
  --ely-navy: #003c55;
  --ely-navy-deep: #002433;
  --ely-ink: #222529;
  --ely-muted: #667681;
  --ely-canvas: #f5f8f8;
  --ely-surface: #ffffff;
  --ely-surface-tint: #eef4f2;
  --ely-border: #d9e2e4;
  --ely-focus: #59d9d5;
  --fonts-proportional: Poppins, Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  --color-primary: #007589;
  --color-primary-hover: #005f70;
  --color-primary-active: #004c5a;
  --color-primary-light-1: #0a8798;
  --color-primary-light-2: #2197a6;
  --color-primary-light-3: #46aab5;
  --color-primary-light-4: #80c4ca;
  --color-primary-light-5: #b8dfe1;
  --color-primary-light-6: #e1f1f1;
  --color-primary-light-7: #f0f8f8;
}

[data-theme="forgejo-light"] {
  --color-body: var(--ely-canvas);
  --color-box-body: var(--ely-surface);
  --color-box-header: var(--ely-surface-tint);
  --color-secondary: #edf4f4;
  --color-secondary-dark-1: #dce8e9;
  --color-secondary-dark-2: #cbdcde;
  --color-secondary-alpha-60: rgba(238, 244, 242, .6);
  --color-text: var(--ely-ink);
  --color-text-light: var(--ely-muted);
  --color-border: var(--ely-border);
}

[data-theme="forgejo-dark"] {
  --ely-canvas: #081923;
  --ely-surface: #102733;
  --ely-surface-tint: #15333f;
  --ely-border: #294651;
  --ely-ink: #ecf6f7;
  --ely-muted: #a8c0c7;
  --color-body: var(--ely-canvas);
  --color-box-body: var(--ely-surface);
  --color-box-header: var(--ely-surface-tint);
  --color-secondary: #173440;
  --color-secondary-dark-1: #203f4b;
  --color-secondary-dark-2: #2a4a55;
  --color-secondary-alpha-60: rgba(23, 52, 64, .6);
  --color-text: var(--ely-ink);
  --color-text-light: var(--ely-muted);
  --color-border: var(--ely-border);
}

body {
  background:
    radial-gradient(circle at 100% 0, rgba(0, 160, 161, .07), transparent 34rem),
    var(--color-body);
}

a,
.ui.breadcrumb a,
.repo-title a {
  color: var(--ely-secondary);
}

a:hover,
.ui.breadcrumb a:hover,
.repo-title a:hover {
  color: var(--ely-accent);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--ely-focus) !important;
  outline-offset: 2px !important;
}

.full.height > .navbar {
  min-height: 64px;
  border-bottom: 1px solid rgba(118, 177, 185, .2);
  background: linear-gradient(100deg, var(--ely-navy-deep), var(--ely-navy)) !important;
  box-shadow: 0 8px 24px rgba(0, 36, 51, .16);
}

.navbar .item,
.navbar .item:hover,
.navbar .active.item,
.navbar svg {
  color: #e8f4f5 !important;
}

.navbar .item:hover,
.navbar .active.item {
  background: rgba(0, 160, 161, .16) !important;
}

.navbar .brand img,
.navbar .item img.ui.mini.image {
  width: 34px;
  height: 34px;
}

.ui.primary.button,
.ui.green.button {
  border-color: var(--ely-primary) !important;
  background: var(--ely-primary) !important;
  color: #fff !important;
  box-shadow: 0 8px 20px rgba(0, 87, 122, .16) !important;
}

.ui.primary.button:hover,
.ui.green.button:hover {
  border-color: var(--ely-primary-hover) !important;
  background: var(--ely-primary-hover) !important;
}

.ui.segment,
.ui.attached.segment,
.ui.card,
.ui.cards > .card,
.repository.file.list,
.timeline-item .timeline-item-main {
  border-color: var(--ely-border) !important;
  border-radius: 12px !important;
  background: var(--ely-surface) !important;
  box-shadow: 0 12px 32px rgba(0, 60, 85, .055) !important;
}

.ui.menu,
.ui.vertical.menu {
  border-color: var(--ely-border) !important;
}

.ui.menu .active.item {
  color: var(--ely-primary) !important;
}

.ui.menu .active.item::after {
  background: var(--ely-accent) !important;
}

.page-content:not(.elyxion-hub-home) {
  padding-top: 28px;
}

/* Product landing page */
.page-content.elyxion-hub-home {
  max-width: none;
  padding: 0;
  background: var(--ely-canvas);
}

.elyxion-hub-hero {
  min-height: 650px;
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr);
  align-items: center;
  gap: 5vw;
  overflow: hidden;
  padding: clamp(4rem, 8vw, 7rem) clamp(1.5rem, 8vw, 8rem);
  background:
    radial-gradient(circle at 78% 38%, rgba(0, 160, 161, .28), transparent 24rem),
    linear-gradient(118deg, #001c29 0%, #003c55 58%, #00577a 100%);
  color: #fff;
}

.elyxion-hub-eyebrow {
  margin: 0 0 1.5rem;
  color: #62d8d3;
  font-size: .78rem;
  font-weight: 750;
  letter-spacing: .19em;
  text-transform: uppercase;
}

.elyxion-hub-hero h1 {
  max-width: 780px;
  margin: 0;
  color: #fff;
  font-size: clamp(3.2rem, 6vw, 6.4rem);
  font-weight: 350;
  letter-spacing: -.055em;
  line-height: .92;
}

.elyxion-hub-hero h1 strong {
  display: inline-block;
  margin-top: .22em;
  color: #68dcd7;
  font-weight: 720;
}

.elyxion-hub-intro {
  margin: 2rem 0 .8rem;
  color: #f2ffff;
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  font-weight: 600;
}

.elyxion-hub-body {
  max-width: 660px;
  color: #bed2d8;
  font-size: 1rem;
  line-height: 1.75;
}

.elyxion-hub-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
  margin-top: 2.2rem;
}

.elyxion-hub-actions .button {
  min-width: 150px;
  padding: 1rem 1.35rem !important;
  border-radius: 8px !important;
}

.elyxion-hub-secondary {
  border-color: rgba(207, 236, 238, .5) !important;
  background: rgba(255, 255, 255, .08) !important;
  color: #fff !important;
}

.elyxion-hub-secondary:hover {
  background: rgba(255, 255, 255, .15) !important;
}

.elyxion-hub-orbit {
  position: relative;
  min-height: 460px;
  display: grid;
  place-items: center;
}

.elyxion-hub-orbit-ring {
  position: absolute;
  width: min(34vw, 430px);
  aspect-ratio: 1;
  border: 1px solid rgba(114, 224, 220, .28);
  border-radius: 50%;
  box-shadow: 0 0 0 55px rgba(0, 160, 161, .045), 0 0 0 110px rgba(0, 160, 161, .025);
}

.elyxion-hub-orbit img {
  position: relative;
  z-index: 2;
  width: 142px;
  height: 142px;
  padding: 22px;
  border-radius: 28px;
  background: #f5f8f8;
  box-shadow: 0 28px 75px rgba(0, 0, 0, .32);
}

.orbit-item {
  position: absolute;
  z-index: 3;
  padding: .7rem 1rem;
  border: 1px solid rgba(119, 217, 215, .25);
  border-radius: 9px;
  background: rgba(0, 36, 51, .82);
  color: #d8ecf0;
  font-size: .75rem;
  font-weight: 650;
  box-shadow: 0 12px 35px rgba(0, 0, 0, .22);
}

.orbit-repositories { top: 10%; left: 7%; }
.orbit-delivery { top: 42%; right: 0; }
.orbit-evidence { bottom: 10%; left: 14%; }

.elyxion-hub-capabilities {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  max-width: 1440px;
  margin: 0 auto;
  padding: clamp(3rem, 6vw, 6rem) clamp(1.5rem, 5vw, 5rem);
}

.elyxion-hub-capabilities article {
  min-height: 240px;
  padding: clamp(1.8rem, 3vw, 2.8rem);
  border: 1px solid var(--ely-border);
  background: var(--ely-surface);
}

.elyxion-hub-capabilities article:first-child { border-radius: 14px 0 0 14px; }
.elyxion-hub-capabilities article:last-child { border-radius: 0 14px 14px 0; }
.elyxion-hub-capabilities span { color: var(--ely-accent); font-size: .72rem; font-weight: 750; letter-spacing: .15em; }
.elyxion-hub-capabilities h2 { margin: 2.4rem 0 1rem; color: var(--ely-navy); font-size: 1.35rem; }
[data-theme="forgejo-dark"] .elyxion-hub-capabilities h2 { color: #e8f5f6; }
.elyxion-hub-capabilities p { color: var(--ely-muted); line-height: 1.7; }
.elyxion-hub-attribution { margin: 0; padding: 0 1.5rem 3.5rem; color: var(--ely-muted); text-align: center; }

/* Login product experience */
.page-content.user.signin {
  min-height: calc(100vh - 128px);
  display: grid;
  place-items: center;
  padding: clamp(2rem, 6vw, 5rem) 1.5rem;
  background:
    radial-gradient(circle at 20% 20%, rgba(0, 160, 161, .22), transparent 28rem),
    linear-gradient(135deg, #001824, #003c55 62%, #00577a);
}

.page-content.user.signin > .ui.container {
  width: min(100%, 470px) !important;
  margin: 0 !important;
}

.page-content.user.signin .ui.attached.segment {
  border: 0 !important;
  border-radius: 14px !important;
  background: var(--ely-surface) !important;
  box-shadow: 0 28px 80px rgba(0, 24, 34, .34) !important;
}

.page-content.user.signin .ui.attached.segment:first-child {
  position: relative;
  padding: 2rem 2rem 1.2rem !important;
  color: var(--ely-navy);
}

.page-content.user.signin .ui.attached.segment:first-child::before {
  content: "ELYXION  ·  ENGINEERING HUB";
  display: block;
  margin-bottom: .85rem;
  color: var(--ely-accent);
  font-size: .68rem;
  font-weight: 750;
  letter-spacing: .16em;
}

.page-content.user.signin form {
  padding: .4rem .7rem 1rem;
}

.elyxion-product-auth-brand {
  display: none;
}

body:has(.page-content.user.signin) .elyxion-product-auth-brand {
  position: absolute;
  z-index: 5;
  top: 92px;
  left: 50%;
  transform: translateX(-50%);
  display: grid;
  grid-template-columns: 52px max-content;
  align-items: center;
  column-gap: 1rem;
  color: #fff;
}

.elyxion-product-auth-brand img {
  grid-row: 1 / span 2;
  width: 52px;
  height: 52px;
  padding: 7px;
  border-radius: 11px;
  background: #f5f8f8;
}

.elyxion-product-auth-brand span {
  display: grid;
  gap: .25rem;
}

.elyxion-product-auth-brand strong {
  font-size: 1.1rem;
  font-weight: 750;
  letter-spacing: .03em;
}

.elyxion-product-auth-brand small {
  color: #8fdedc;
  font-size: .64rem;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.page-content.user.signin input {
  min-height: 46px;
  border-color: var(--ely-border) !important;
  border-radius: 8px !important;
  background: var(--ely-canvas) !important;
}

.page-content.user.signin .ui.fluid.large.primary.button {
  min-height: 48px;
  border-radius: 8px !important;
}

/* Authenticated workspace */
.dashboard,
.repository,
.issue,
.settings {
  --color-box-body: var(--ely-surface);
}

.dashboard .ui.segment,
.dashboard .ui.list > .item,
.repository .ui.segment,
.issue .timeline-item-main {
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.dashboard .ui.segment:hover,
.repository .ui.segment:hover {
  border-color: color-mix(in srgb, var(--ely-accent) 45%, var(--ely-border)) !important;
  box-shadow: 0 16px 38px rgba(0, 60, 85, .09) !important;
}

.repo-header {
  padding-top: 1.4rem !important;
  background: linear-gradient(180deg, rgba(0, 87, 122, .055), transparent) !important;
}

.repo-header .ui.tabular.menu .active.item,
.ui.tabular.menu .active.item {
  border-color: var(--ely-accent) !important;
  color: var(--ely-primary) !important;
}

.ui.label,
.ui.basic.label {
  border-color: var(--ely-border) !important;
  border-radius: 999px !important;
}

footer.page-footer {
  border-top: 1px solid var(--ely-border);
  background: var(--ely-navy-deep) !important;
  color: #9db8c0 !important;
}

footer.page-footer a,
footer.page-footer .item {
  color: #bfd4d9 !important;
}

@media (max-width: 900px) {
  .elyxion-hub-hero {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .elyxion-hub-orbit { min-height: 340px; }
  .elyxion-hub-orbit-ring { width: min(70vw, 340px); }
  .elyxion-hub-capabilities { grid-template-columns: 1fr; gap: .8rem; }
  .elyxion-hub-capabilities article,
  .elyxion-hub-capabilities article:first-child,
  .elyxion-hub-capabilities article:last-child { min-height: 0; border-radius: 12px; }
}

@media (max-width: 600px) {
  .full.height > .navbar { min-height: 56px; }
  .elyxion-hub-hero { padding: 4rem 1.25rem; }
  .elyxion-hub-hero h1 { font-size: clamp(2.7rem, 15vw, 4.2rem); }
  .elyxion-hub-orbit { min-height: 280px; }
  .elyxion-hub-orbit img { width: 105px; height: 105px; padding: 17px; border-radius: 22px; }
  .orbit-item { padding: .55rem .7rem; font-size: .65rem; }
  .elyxion-hub-actions { display: grid; }
  .elyxion-hub-actions .button { width: 100%; }
  .page-content.user.signin { padding: 1.4rem 1rem; }
  .page-content.user.signin .ui.attached.segment:first-child { padding: 1.5rem 1.25rem 1rem !important; }
  body:has(.page-content.user.signin) .elyxion-product-auth-brand {
    top: 68px;
    grid-template-columns: 38px max-content;
  }
  .elyxion-product-auth-brand img { width: 38px; height: 38px; padding: 5px; }
  .elyxion-product-auth-brand strong { font-size: .9rem; }
  .elyxion-product-auth-brand small { font-size: .55rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Native product experience: authenticated Forgejo surfaces */
body:has(.page-content.dashboard) .page-content.dashboard,
body:has(.page-content.repository) .page-content.repository,
body:has(.page-content.issue) .page-content.issue,
body:has(.page-content.settings) .page-content.settings,
body:has(.page-content.explore) .page-content.explore {
  width: min(100%, 1440px);
  margin-inline: auto;
  padding-inline: clamp(1rem, 3vw, 3rem);
}

.page-content.dashboard::before {
  content: "Engineering workspace";
  display: block;
  margin: 0 0 .35rem;
  color: var(--ely-navy);
  font-size: clamp(1.9rem, 3.5vw, 3rem);
  font-weight: 650;
  letter-spacing: -.04em;
  line-height: 1.08;
}

.page-content.dashboard::after {
  content: "Repositories, reviews and recent engineering activity";
  display: block;
  margin: 0 0 1.75rem;
  color: var(--ely-muted);
  font-size: .92rem;
  line-height: 1.6;
}

[data-theme="forgejo-dark"] .page-content.dashboard::before { color: var(--ely-ink); }

.dashboard .dashboard-navbar,
.dashboard .ui.secondary.pointing.menu,
.repository .repo-header,
.issue .issue-title-header,
.settings .settings-header {
  border-color: var(--ely-border) !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, var(--ely-surface), var(--ely-surface-tint)) !important;
  box-shadow: 0 12px 34px rgba(0, 60, 85, .055) !important;
}

.dashboard .feeds,
.dashboard .dashboard-repos,
.dashboard .ui.grid > .column,
.explore .repo-list,
.repository .repository-summary { min-width: 0; }

.dashboard .feeds .news,
.dashboard .dashboard-repos .repo-list > li,
.explore .repo-list > .item,
.repository .repository-summary,
.repository .file.list,
.issue .issue-content,
.milestone.list > .item {
  border: 1px solid var(--ely-border) !important;
  border-radius: 13px !important;
  background: var(--ely-surface) !important;
  box-shadow: 0 8px 28px rgba(0, 60, 85, .045) !important;
}

.dashboard .dashboard-repos .repo-list > li,
.explore .repo-list > .item,
.milestone.list > .item {
  margin-block: .7rem !important;
  padding: 1rem 1.15rem !important;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.dashboard .dashboard-repos .repo-list > li:hover,
.explore .repo-list > .item:hover,
.milestone.list > .item:hover {
  border-color: color-mix(in srgb, var(--ely-accent) 52%, var(--ely-border)) !important;
  box-shadow: 0 14px 32px rgba(0, 60, 85, .09) !important;
  transform: translateY(-1px);
}

.repository .repo-header {
  margin-bottom: 1.25rem;
  padding: 1.3rem clamp(1rem, 2.4vw, 2rem) .2rem !important;
}

.repository .repo-title,
.repository .repo-title a,
.issue h1,
.settings h2,
.explore h2 {
  color: var(--ely-navy) !important;
  letter-spacing: -.025em;
}

[data-theme="forgejo-dark"] .repository .repo-title,
[data-theme="forgejo-dark"] .repository .repo-title a,
[data-theme="forgejo-dark"] .issue h1,
[data-theme="forgejo-dark"] .settings h2,
[data-theme="forgejo-dark"] .explore h2 { color: var(--ely-ink) !important; }

.ui.tabular.menu,
.ui.secondary.pointing.menu {
  gap: .25rem;
  border-color: var(--ely-border) !important;
}

.ui.tabular.menu .item,
.ui.secondary.pointing.menu .item {
  min-height: 43px;
  border-radius: 8px 8px 0 0 !important;
}

.ui.tabular.menu .item:hover,
.ui.secondary.pointing.menu .item:hover {
  background: color-mix(in srgb, var(--ely-accent) 9%, transparent) !important;
}

.ui.form .field > label,
.ui.form .inline.field > label {
  margin-bottom: .45rem;
  color: var(--ely-navy) !important;
  font-size: .75rem !important;
  font-weight: 650 !important;
}

[data-theme="forgejo-dark"] .ui.form .field > label,
[data-theme="forgejo-dark"] .ui.form .inline.field > label { color: var(--ely-ink) !important; }

.ui.form input:not([type="checkbox"]):not([type="radio"]),
.ui.form textarea,
.ui.input > input,
.ui.selection.dropdown {
  min-height: 43px;
  border-color: var(--ely-border) !important;
  border-radius: 8px !important;
  background: var(--ely-surface) !important;
  color: var(--ely-ink) !important;
}

.ui.form input:focus,
.ui.form textarea:focus,
.ui.input > input:focus,
.ui.selection.active.dropdown {
  border-color: var(--ely-accent) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ely-accent) 16%, transparent) !important;
}

.ui.table {
  overflow: hidden;
  border-color: var(--ely-border) !important;
  border-radius: 12px !important;
  background: var(--ely-surface) !important;
}

.ui.table thead th {
  min-height: 44px;
  border-color: var(--ely-border) !important;
  background: var(--ely-surface-tint) !important;
  color: var(--ely-navy) !important;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .045em;
}

[data-theme="forgejo-dark"] .ui.table thead th { color: var(--ely-ink) !important; }
.ui.table tbody tr:hover { background: color-mix(in srgb, var(--ely-accent) 7%, var(--ely-surface)) !important; }

.ui.message,
.ui.info.message,
.ui.warning.message,
.ui.error.message,
.ui.positive.message { border-radius: 10px !important; box-shadow: none !important; }

.ui.label,
.ui.basic.label,
.ui.progress .label { font-weight: 650 !important; letter-spacing: .015em; }

.ui.pagination.menu {
  overflow: hidden;
  border: 1px solid var(--ely-border) !important;
  border-radius: 9px !important;
}

.ui.pagination.menu .active.item { background: var(--ely-primary) !important; color: #fff !important; }

@media (min-width: 1600px) {
  .page-content.dashboard,
  .page-content.repository,
  .page-content.issue,
  .page-content.settings,
  .page-content.explore { padding-inline: 4rem; }
}

@media (max-width: 900px) {
  .page-content.dashboard::before { font-size: 2rem; }
  .dashboard .ui.grid,
  .dashboard .feeds,
  .dashboard .dashboard-repos { min-width: 0; }
  .ui.table { display: block; overflow-x: auto; }
}

@media (max-width: 600px) {
  body:has(.page-content.dashboard) .page-content.dashboard,
  body:has(.page-content.repository) .page-content.repository,
  body:has(.page-content.issue) .page-content.issue,
  body:has(.page-content.settings) .page-content.settings,
  body:has(.page-content.explore) .page-content.explore { padding-inline: .85rem; }
  .page-content.dashboard::after { margin-bottom: 1rem; }
  .ui.segment,
  .ui.attached.segment,
  .ui.card,
  .ui.cards > .card { border-radius: 10px !important; }
  .repository .repo-header { padding-inline: .85rem !important; }
}

@media (prefers-reduced-motion: reduce) {
  .dashboard .dashboard-repos .repo-list > li,
  .explore .repo-list > .item,
  .milestone.list > .item { transform: none !important; }
}
