/* Дизайн-токены и темы — единственный источник цветов/шрифтов/отступов для всех страниц.
   Тёмная тема на :root, светлая — на :root[data-theme="light"]; data-theme задан всегда. */

:root {
  --bg: #0f1013;
  --surface: #16181d;
  --surface-2: #1d2026;
  --line: #262a33;
  --line-strong: #343a46;
  --text: #e8eaf0;
  --text-2: #a6adbd;
  --text-3: #6e7686;
  /* Акцент: у тёмной темы СВЕТЛАЯ ступень, у светлой — тёмная. Один и тот же
     токен обязан работать и текстом (ссылки), и заливкой (кнопка) — прежний
     единый #5865F2 давал 3.85 к поверхности в тёмной теме, то есть ссылки были
     ниже нормы. --accent-on — цвет надписи НА заливке, он тоже свой на тему. */
  --accent: #ba93fb;
  --accent-hover: #d0b3ff;
  --accent-on: #0f1013;
  --focus: 0 0 0 2px #d0b3ff;
  --shadow-card: none;

  --st-good: #0ca30c;
  --st-warn: #fab219;
  --st-serious: #ec835a;
  --st-crit: #d03b3b;
  --st-good-bg: rgba(12, 163, 12, .12);
  --st-warn-bg: rgba(250, 178, 25, .12);
  --st-serious-bg: rgba(236, 131, 90, .14);
  --st-crit-bg: rgba(208, 59, 59, .14);
  --accent-bg: rgba(186, 147, 251, .16);

  --data-msg: #3987e5;
  --data-voice: #d95926;
  --data-react: #d55181;
  --data-misty: #9085e9;
  --data-join: #008300;
  --data-leave: #e66767;

  /* Категорийные слоты для графиков С ПРЯМЫМИ ПОДПИСЯМИ (полосы, столбцы,
     легенда рядом). Здесь работает СОСЕДНИЙ список пар: рядом оказываются только
     соседние по порядку слоты, и на нём палитра проходит валидатор.

     У светлой темы своих ступеней здесь НЕТ — и это проверено, а не забыто.
     Гипотеза «надо пере-ступить под белую поверхность» не подтвердилась: те же
     значения на белом проходят все проверки, причём по тританопии РАЗДЕЛЯЮТСЯ
     ЛУЧШЕ светлых ступеней справочника (ΔE 8.7 против 3.9). Менять было бы
     изменением ради симметрии, ухудшающим различимость. */
  --cat-1: #3987e5;
  --cat-2: #008300;
  --cat-3: #d55181;
  --cat-4: #c98500;
  --cat-5: #199e70;

  /* Слоты для мест, где подписей НЕТ и рядом может оказаться ЛЮБАЯ пара —
     граф сообществ прежде всего. Там действует список ВСЕХ пар, и это другая
     задача.
     Число выведено перебором, а не выбрано: по восьми оттенкам справочника, в
     обеих темах, с `--pairs all` и БЕЗ единого предупреждения валидатора
     проходят ровно ТРИ. Четвёртый добавляет пару в полосе ΔE 6–8, законную
     только при вторичном кодировании, — а у узлов графа подписей нет, значит
     кодировать нечем. Это предел различимости, а не экономия.
     Группы сверх трёх красятся нейтральным («прочие») и их число говорится
     подписью; сгенерированных оттенков не бывает.
     Набор один на обе темы: он чисто проходит и на тёмной поверхности, и на
     белой, поэтому светлого дубля здесь тоже нет. */
  --cat-safe-1: #3987e5;
  --cat-safe-2: #c98500;
  --cat-safe-3: #d55181;

  /* Sequential-рампа (heatmap): у тёмной и светлой темы ступени СВОИ — общей быть не может, контраст к своей поверхности не держится в обеих сразу. */
  --seq-1: #06509d;
  --seq-2: #0b66c3;
  --seq-3: #2d7ede;
  --seq-4: #4797f9;
  --seq-5: #77b2fd;
  --seq-6: #a4cbfd;
  --seq-7: #cfe3fe;
  --seq-ink-1: #ffffff;
  --seq-ink-2: #ffffff;
  --seq-ink-3: #12141a;
  --seq-ink-4: #1a1c22;
  --seq-ink-5: #1a1c22;
  --seq-ink-6: #1a1c22;
  --seq-ink-7: #1a1c22;
  --div-pos: #3987e5;
  --div-neg: #e34948;

  --font-ui: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: ui-monospace, "Cascadia Code", Consolas, monospace;

  /* Шкала кеглей: 8 ступеней, целые пиксели. Новых не заводить. */
  --fs-micro: 11px;
  --fs-meta: 12px;
  --fs-body: 13px;
  --fs-sub: 15px;
  --fs-page-title: 18px;
  --fs-num: 22px;
  --fs-kpi: 26px;
  --fs-lead: 34px;       /* главное число — одно на страницу */
  --fs-sec-title: var(--fs-body);

  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 24px;
  --sp-6: 32px;
  --r-ctl: 6px;
  --r-card: 10px;
  --r-pill: 999px;
  --w-sidebar: 208px;
  --w-sidebar-narrow: 56px;
  --w-content-max: 1360px;
  --w-drawer: 320px;

  --t-hover: 120ms cubic-bezier(.2, 0, 0, 1);
  --t-panel: 200ms cubic-bezier(.2, 0, 0, 1);

  /* ЕДИНСТВЕННАЯ штриховка «здесь не измерено» на весь дашборд. */
  --hatch: repeating-linear-gradient(45deg, var(--line-strong) 0 1px, transparent 1px 5px);

  color-scheme: dark;
}

:root[data-theme="light"] {
  --bg: #f4f5f7;
  --surface: #ffffff;
  --surface-2: #eef0f3;
  --line: #e2e5ea;
  --line-strong: #c9ced7;
  --text: #1a1c22;
  --text-2: #4c5260;
  --text-3: #7d8494;
  --accent: #724aab;
  --accent-hover: #5b3a8f;
  --accent-on: #ffffff;
  --accent-bg: rgba(114, 74, 171, .12);
  --focus: 0 0 0 2px #5b3a8f;
  /* Тени у карточки нет: группируем заливкой и одной волосяной рамкой. */
  --shadow-card: none;

  --data-msg: #2a78d6;
  --data-voice: #eb6834;
  --data-react: #e87ba4;
  --data-misty: #4a3aa7;
  --data-join: #008300;
  --data-leave: #e34948;

  /* Sequential-рампа под светлую тему: светлота ПАДАЕТ с ростом значения. Индексы те же. */
  --seq-1: #6dacfd;
  --seq-2: #4594f6;
  --seq-3: #2d7ede;
  --seq-4: #0f68c5;
  --seq-5: #0654a3;
  --seq-6: #044181;
  --seq-7: #022f60;
  --seq-ink-1: #1a1c22;
  --seq-ink-2: #1a1c22;
  --seq-ink-3: #12141a;
  --seq-ink-4: #ffffff;
  --seq-ink-5: #ffffff;
  --seq-ink-6: #ffffff;
  --seq-ink-7: #ffffff;

  color-scheme: light;
}
