/* Gitea: тактическая тема Qorgan (qorgan-frontend/src/app/theme-future.css).
   Лежит в gitea/gitea/public/assets/css/, включена в [ui] THEMES / DEFAULT_THEME. */
@import url("./theme-gitea-dark.css");
@import url("../qorgan/fonts.css");

gitea-theme-meta-info {
  --theme-display-name: "Qorgan";
  --theme-color-scheme: "dark";
}

:root {
  --q-hud: oklch(0.84 0.14 200);
  --q-bg: oklch(0.15 0.03 252);
  --q-panel: oklch(0.19 0.035 250);
  --q-panel-2: oklch(0.17 0.032 251);
  --q-line: oklch(0.84 0.14 200 / 0.16);
  --q-text: oklch(0.95 0.015 220);
  --q-muted: oklch(0.74 0.04 225);

  --fonts-proportional: "Exo 2 Variable", "Segoe UI", system-ui, sans-serif;
  --fonts-monospace: "JetBrains Mono Variable", ui-monospace, monospace;
  --border-radius: 0.45rem;
  --border-radius-medium: 0.6rem;

  --color-primary: oklch(0.82 0.14 200);
  --color-primary-contrast: oklch(0.17 0.04 250);
  --color-primary-dark-1: oklch(0.85 0.13 200);
  --color-primary-dark-2: oklch(0.88 0.11 200);
  --color-primary-dark-3: oklch(0.9 0.09 200);
  --color-primary-dark-4: oklch(0.92 0.07 200);
  --color-primary-dark-5: oklch(0.94 0.05 200);
  --color-primary-dark-6: oklch(0.96 0.03 200);
  --color-primary-dark-7: oklch(0.98 0.015 200);
  --color-primary-light-1: oklch(0.76 0.14 202);
  --color-primary-light-2: oklch(0.68 0.13 205);
  --color-primary-light-3: oklch(0.58 0.12 210);
  --color-primary-light-4: oklch(0.47 0.1 215);
  --color-primary-light-5: oklch(0.35 0.07 225);
  --color-primary-light-6: oklch(0.24 0.05 240);
  --color-primary-light-7: oklch(0.18 0.035 250);
  --color-primary-alpha-10: oklch(0.84 0.14 200 / 0.1);
  --color-primary-alpha-20: oklch(0.84 0.14 200 / 0.2);
  --color-primary-alpha-30: oklch(0.84 0.14 200 / 0.3);
  --color-primary-alpha-40: oklch(0.84 0.14 200 / 0.4);
  --color-primary-alpha-50: oklch(0.84 0.14 200 / 0.5);
  --color-primary-alpha-60: oklch(0.84 0.14 200 / 0.6);
  --color-primary-alpha-70: oklch(0.84 0.14 200 / 0.7);
  --color-primary-alpha-80: oklch(0.84 0.14 200 / 0.8);
  --color-primary-alpha-90: oklch(0.84 0.14 200 / 0.9);

  --color-secondary: oklch(0.84 0.14 200 / 0.18);
  --color-secondary-dark-1: oklch(0.84 0.14 200 / 0.24);
  --color-secondary-dark-2: oklch(0.84 0.14 200 / 0.3);
  --color-secondary-dark-3: oklch(0.55 0.06 225);
  --color-secondary-dark-4: oklch(0.6 0.05 225);
  --color-secondary-light-1: oklch(0.84 0.14 200 / 0.13);
  --color-secondary-light-2: oklch(0.84 0.14 200 / 0.1);
  --color-secondary-light-3: oklch(0.84 0.14 200 / 0.07);
  --color-secondary-light-4: oklch(0.84 0.14 200 / 0.05);
  --color-secondary-alpha-10: oklch(0.84 0.14 200 / 0.04);
  --color-secondary-alpha-20: oklch(0.84 0.14 200 / 0.07);
  --color-secondary-alpha-30: oklch(0.84 0.14 200 / 0.1);
  --color-secondary-alpha-40: oklch(0.84 0.14 200 / 0.14);
  --color-secondary-alpha-50: oklch(0.84 0.14 200 / 0.18);
  --color-secondary-alpha-60: oklch(0.84 0.14 200 / 0.22);

  --color-body: var(--q-bg);
  --color-box-header: oklch(0.21 0.04 248);
  --color-box-body: oklch(0.18 0.033 250);
  --color-box-body-highlight: oklch(0.22 0.04 248);
  --color-text-dark: oklch(0.98 0.01 220);
  --color-text: var(--q-text);
  --color-text-light: oklch(0.86 0.03 222);
  --color-text-light-1: oklch(0.8 0.035 224);
  --color-text-light-2: var(--q-muted);
  --color-text-light-3: oklch(0.64 0.04 228);
  --color-placeholder-text: oklch(0.6 0.04 228);

  --color-nav-bg: oklch(0.14 0.03 252 / 0.92);
  --color-nav-hover-bg: oklch(0.84 0.14 200 / 0.1);
  --color-nav-text: var(--q-text);
  --color-secondary-nav-bg: oklch(0.16 0.03 252);
  --color-header-wrapper: oklch(0.16 0.03 252);
  --color-footer: oklch(0.13 0.03 252);
  --color-menu: var(--q-panel-2);
  --color-card: var(--q-panel);
  --color-button: oklch(0.84 0.14 200 / 0.05);
  --color-light: oklch(0.84 0.14 200 / 0.05);
  --color-light-border: var(--q-line);
  --color-hover: oklch(0.84 0.14 200 / 0.09);
  --color-hover-opaque: oklch(0.2 0.04 248);
  --color-active: oklch(0.84 0.14 200 / 0.15);
  --color-timeline: oklch(0.84 0.14 200 / 0.22);
  --color-input-background: oklch(0.13 0.03 252 / 0.85);
  --color-input-toggle-background: oklch(0.24 0.04 248);
  --color-input-border: oklch(0.84 0.14 200 / 0.22);
  --color-input-border-hover: oklch(0.84 0.14 200 / 0.4);
  --color-code-bg: oklch(0.13 0.03 252);
  --color-markup-code-block: oklch(0.13 0.03 252);
  --color-markup-code-inline: oklch(0.84 0.14 200 / 0.1);
  --color-console-bg: oklch(0.11 0.025 252);
  --color-expand-button: oklch(0.84 0.14 200 / 0.12);
  --color-label-bg: oklch(0.84 0.14 200 / 0.12);
  --color-tooltip-bg: oklch(0.12 0.03 252);
  --color-overlay-backdrop: oklch(0.08 0.02 252 / 0.75);
  --color-shadow: oklch(0 0 0 / 0.5);
  --color-caret: var(--q-hud);
  --color-accent: var(--q-hud);
  --color-small-accent: oklch(0.84 0.14 200 / 0.3);
  --color-highlight-bg: oklch(0.82 0.16 80 / 0.18);
  --color-red: oklch(0.68 0.22 22);
  --color-green: oklch(0.78 0.17 155);
  --color-blue: oklch(0.72 0.14 230);
  --color-yellow: oklch(0.82 0.16 80);
  --color-red-badge: oklch(0.68 0.22 22);
  --color-green-badge: oklch(0.78 0.17 155);

  color-scheme: dark;
  accent-color: var(--q-hud);
  scrollbar-color: oklch(0.84 0.14 200 / 0.3) transparent;
}

/* Фон: свечение и тактическая сетка */
body {
  background:
    radial-gradient(70rem 40rem at 78% -12%, oklch(0.55 0.16 230 / 0.2), transparent 70%),
    radial-gradient(55rem 35rem at -8% 108%, oklch(0.6 0.13 195 / 0.12), transparent 70%),
    var(--q-bg) !important;
  background-attachment: fixed !important;
  -webkit-font-smoothing: antialiased;
}
body::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background-image:
    linear-gradient(oklch(0.84 0.14 200 / 0.05) 1px, transparent 1px),
    linear-gradient(90deg, oklch(0.84 0.14 200 / 0.05) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(ellipse at 50% 40%, black 30%, transparent 85%);
}
.full.height, .page-content, .page-footer { background: transparent !important; }
::selection { background: oklch(0.84 0.14 200 / 0.35); color: white; }

/* Шапка с бегущей HUD-линией */
#navbar {
  position: relative;
  backdrop-filter: blur(8px);
  border-bottom: 0 !important;
}
#navbar::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; pointer-events: none;
  background:
    linear-gradient(90deg, transparent, oklch(0.9 0.12 200 / 0.95), transparent) -30% 0 / 30% 100% no-repeat,
    linear-gradient(90deg, transparent, oklch(0.84 0.14 200 / 0.35) 20%, oklch(0.84 0.14 200 / 0.35) 80%, transparent);
  animation: q-sweep 7s linear infinite;
}
@keyframes q-sweep { from { background-position: -30% 0, 0 0; } to { background-position: 130% 0, 0 0; } }
#navbar-logo img { filter: drop-shadow(0 0 6px oklch(0.8 0.15 230 / 0.7)); }
#navbar .item, .secondary-nav .item, .ui.tabular.menu .item, .ui.secondary.pointing.menu .item {
  text-transform: uppercase; letter-spacing: 0.08em; font-weight: 600; font-size: 12.5px;
}
.ui.secondary.pointing.menu .active.item, .ui.secondary.pointing.menu .dropdown.item.active {
  color: oklch(0.95 0.06 200) !important;
  border-color: var(--q-hud) !important;
  background: linear-gradient(180deg, oklch(0.84 0.14 200 / 0.02), oklch(0.84 0.14 200 / 0.14));
}

/* Карточки и сегменты с уголками HUD */
.ui.segment, .ui.attached.segment, .ui.attached.header, .ui.card, .ui.cards > .card,
.repository .ui.segment, .flex-list > .flex-item, .ui.modal, .menu.dropdown, .tippy-box {
  --corner: oklch(0.84 0.14 200 / 0.75);
}
.ui.segment:not(.attached), .ui.card, .ui.cards > .card, .ui.modal > .content, .user.signin .ui.attached.segment,
.ui.attached.segment:last-child, .ui.attached.segment.bottom {
  background:
    linear-gradient(var(--corner), var(--corner)) top left / 14px 1.5px no-repeat,
    linear-gradient(var(--corner), var(--corner)) top left / 1.5px 14px no-repeat,
    linear-gradient(var(--corner), var(--corner)) top right / 14px 1.5px no-repeat,
    linear-gradient(var(--corner), var(--corner)) top right / 1.5px 14px no-repeat,
    linear-gradient(var(--corner), var(--corner)) bottom left / 14px 1.5px no-repeat,
    linear-gradient(var(--corner), var(--corner)) bottom left / 1.5px 14px no-repeat,
    linear-gradient(var(--corner), var(--corner)) bottom right / 14px 1.5px no-repeat,
    linear-gradient(var(--corner), var(--corner)) bottom right / 1.5px 14px no-repeat,
    linear-gradient(180deg, oklch(0.84 0.14 200 / 0.05), transparent 120px),
    oklch(0.19 0.035 250 / 0.82) !important;
  box-shadow: inset 0 1px 0 oklch(1 0 0 / 0.04), 0 18px 40px -24px oklch(0 0 0 / 0.9) !important;
}
.ui.attached.header, .ui.top.attached.header {
  text-transform: uppercase; letter-spacing: 0.1em; font-size: 13px !important;
  background: linear-gradient(180deg, oklch(0.84 0.14 200 / 0.12), oklch(0.84 0.14 200 / 0.04)), oklch(0.2 0.04 248) !important;
}
h1, h2, h3, .ui.header { letter-spacing: 0.02em; }

/* Кнопки */
.ui.button, .ui.basic.button { letter-spacing: 0.03em; }
.ui.primary.button, .ui.primary.buttons .button, .ui.green.button {
  background: var(--color-primary) !important; color: var(--color-primary-contrast) !important; font-weight: 650;
  box-shadow: 0 0 0 1px oklch(0.9 0.12 200 / 0.6), 0 0 18px -4px oklch(0.84 0.14 200 / 0.75) !important;
}
.ui.primary.button:hover, .ui.green.button:hover {
  box-shadow: 0 0 0 1px oklch(0.95 0.1 200), 0 0 26px -2px oklch(0.84 0.14 200 / 0.9) !important;
}
.ui.red.button, .ui.negative.button { box-shadow: 0 0 16px -6px oklch(0.68 0.22 22 / 0.8); }
input:focus, textarea:focus, .ui.input input:focus, .ui.form input:focus, .ui.selection.dropdown:focus {
  border-color: var(--q-hud) !important;
  box-shadow: 0 0 0 1px var(--q-hud), 0 0 16px -4px var(--q-hud) !important;
}
input, textarea, .ui.input input { font-family: var(--fonts-monospace); }

/* Метки, счётчики, SHA — моноширинные цифры */
.ui.label, .sha, .ui.sha.label, relative-time, .commit-id-short {
  font-variant-numeric: tabular-nums slashed-zero;
}
.ui.label { border: 1px solid var(--q-line); }

/* Вход: кнопка «Войти через CDS» главная */
.user.signin .oauth2-login-link, .signin-buttons .oauth-login-link, a.oauth-login-link {
  background: var(--color-primary) !important; color: var(--color-primary-contrast) !important; font-weight: 650;
  box-shadow: 0 0 0 1px oklch(0.9 0.12 200 / 0.6), 0 0 18px -4px oklch(0.84 0.14 200 / 0.75) !important;
}

/* Главная страница */
.page-content.home .hero .ui.header { text-transform: uppercase; letter-spacing: 0.22em; }

@media (prefers-reduced-motion: reduce) { #navbar::after { animation: none; } }
