/* Общая дизайн-система обеих поверхностей: публичной витрины (/landing.html) и админки (/).
   Здесь живут шрифты, токены и примитивы, которые обязаны совпадать. Правило то же, что и
   раньше: кегль только из --fs-*, отступы только из --sp-*, радиусы только из --r-*.
   Произвольные px в этих трёх измерениях — регрессия «где-то шрифт больше, где-то меньше». */

@font-face { font-family: 'Unbounded'; font-weight: 100 900; font-display: swap;
  src: url('/fonts/unbounded-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Unbounded'; font-weight: 100 900; font-display: swap;
  src: url('/fonts/unbounded-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2122, U+2212; }
@font-face { font-family: 'JetBrains Mono'; font-weight: 100 800; font-display: swap;
  src: url('/fonts/jetbrains-mono-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'JetBrains Mono'; font-weight: 100 800; font-display: swap;
  src: url('/fonts/jetbrains-mono-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2122, U+2212; }

:root {
  /* Поверхности: сине-ночные, не чёрные. */
  --bg: #0B1220;
  --surface: #131D31;
  --surface-2: #17223A;
  --surface-3: #0E1728;
  --line: rgba(148, 178, 232, .14);
  --line-2: rgba(148, 178, 232, .26);
  --hover: rgba(148, 178, 232, .05);
  --text: #F2F6FF;
  --muted: #97A6C4;
  --dim: #8090B0;          /* 4.9:1 на --surface-2 — нижняя граница для 11px подписей */
  --accent: #F59E0B;
  --good: #22D99B;
  --bad: #F65555;
  --warn: #FACC15;

  /* Брендовые хюсы — валидированная категориальная палитра на тёмной поверхности.
     Те же значения лежат в js/format.js (BRAND_COLORS): ими красятся серверные SVG. */
  --gpt: #0FA575;
  --claude: #CC785C;
  --grok: #0AA2BF;
  --consilium: #8B5CF6;
  --imoex: #E1251B;
  --user: #38BDF8;

  --display: 'Unbounded', system-ui, sans-serif;
  /* JetBrains Mono несёт всё: цифры табулярны по конструкции, кириллица в сабсете есть. */
  --mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  --fs-micro: 11px;   /* eyebrow, заголовки колонок, теги, подписи */
  --fs-sm: 12px;      /* сноски, служебное */
  --fs-base: 13px;    /* основной текст, ячейки таблиц */
  --fs-md: 15px;      /* имена, тикеры, числа, значения */
  --fs-lg: 20px;      /* крупные значения, заголовки блоков внутри панели */
  --fs-xl: 28px;      /* h2 витрины */
  --fs-hero: 34px;    /* единственная главная цифра блока */

  --sp-0: 4px;
  --sp-1: 6px;
  --sp-2: 10px;
  --sp-3: 16px;
  --sp-4: 24px;
  --sp-5: 36px;
  --sp-6: clamp(44px, 4vw, 64px);

  --r-sm: 10px;
  --r-md: 14px;
  --r-lg: 18px;
}

* { box-sizing: border-box; }

/* ---------- примитивы, общие для обеих поверхностей ---------- */
.pos { color: var(--good); }
.neg { color: var(--bad); }
.dim { color: var(--dim); }
.b { font-weight: 700; }
.num { text-align: right; }
.mono { font-family: var(--mono); }
.empty { color: var(--dim); padding: var(--sp-4) 0; }

/* Логотипы веток: цветной = ветка участвовала, погашенный = нет. */
.ai-logo {
  width: 22px; height: 22px; border-radius: var(--r-sm); object-fit: contain;
  background: rgba(148, 178, 232, .1); padding: 2px; flex: none; vertical-align: -5px;
}
.ai-logo.lg { width: 26px; height: 26px; }
.ai-logo.dimmed { opacity: .18; filter: grayscale(1); }
.logo-row { display: inline-flex; gap: var(--sp-0); align-items: center; }
.chip-dot { width: 10px; height: 10px; border-radius: 3px; display: inline-block; flex: none; }

/* Все пилюли — одной высоты и одного паддинга: иначе размеры «прыгают» между блоками. */
.pill, .badge, .tag, .feed-dir, .trace-chip {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 24px; padding: 0 var(--sp-2); border-radius: 999px;
  font-family: var(--mono); font-size: var(--fs-micro); white-space: nowrap;
}

:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
