/* ПРЕМИУМ-КАНОН НИИ · токены · редакция 2 от 22.10.2026 (К9: статусы светлой темы) · редакция 1 от 18.09.2026 · собрала Гамма
 *
 * Слово владельца 18.09.2026: «дизайн собери в память, премиум-канон (светлый и тёмный), чтобы нам
 * подвести НИИ к единому стандарту и ничего не конфликтовало».
 *
 * КАК СОБРАНО. Ни одного нового значения: каждое взято из действующего брендбука прибором
 * agents/gamma/tools/canon-matrix.py. Правило выбора: значение большинства брендбуков; при равенстве —
 * самого проработанного (измеренного на контраст). Светлая тема «лист» = SUTRA ALMANAC v3 (03.09), её же
 * 06.09 принял FISHCHUK.PRO. Тёмная тема «дерево» = общая палитра юрблока (sudfact, Каутилья, ИСС,
 * FISHCHUK.PRO — совпадает до знака). Метафора одна: латунь и патина — днём на бумаге, ночью на дереве.
 *
 * ЧТО БРЕНД МЕНЯТЬ МОЖЕТ (голос): --accent-action · --accent-hot · оттенок металла · землю тёмной темы ·
 * пару гарнитур из двух разрешённых · радиус в пределах 0–4 px. ВСЁ ОСТАЛЬНОЕ — общее: имена, шкалы,
 * движение, роли акцентов, правила стекла, четыре условия темы. Правила словами — PREMIUM-CANON.md рядом.
 * Проверка файла: py -3 agents/gamma/tools/canon-matrix.py --check-canon
 */

/* ── 1. ФУНДАМЕНТ: от темы не зависит (совпадает в 4 брендбуках из 6 до знака) ─────────────── */
:root {
  --space-1: 4px;  --space-2: 8px;   --space-3: 12px;  --space-4: 16px;  --space-5: 20px;  --space-6: 24px;
  --space-8: 32px; --space-10: 40px; --space-12: 48px; --space-16: 64px; --space-24: 96px;

  --radius-card: 4px;   /* потолок; бренд может меньше (Каутилья 0), больше — нет: 12–14 px отменены 21.08 */
  --radius-inner: 2px;
  --radius-chip: 2px;
  --radius-pill: 999px;

  --ease-inout: cubic-bezier(.4, 0, .2, 1);
  --duration-fast: 120ms;
  --duration-mid: 220ms;

  /* Гарнитуры: в вебе две и моно, третья запрещена (Cinzel — только видео, решение 03.09).
     Пара — голос бренда; разрешены две: книжная (ниже) и академическая
     ('Merriweather' + 'IBM Plex Sans' — sudfact, ИСС). Моно одна у всех. */
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'Spectral', Georgia, serif;
  --font-mono: 'JetBrains Mono', Consolas, monospace;
}

/* ── 2. СВЕТЛАЯ ТЕМА «ЛИСТ» ────────────────────────────────────────────────────────────────
   Атрибут темы один на весь НИИ: data-theme="light|dark" на <html>. Имена almanac/astra — принятые
   синонимы (SUTRA, FISHCHUK.PRO), новых не заводить. Без атрибута решает система посетителя. */
:root, [data-theme="light"], [data-theme="almanac"] {
  color-scheme: light;
  --surface-page: #EFE9DC;   /* глубина: страница темнее карточки темнее фокального слоя — в обеих темах */
  --surface-card: #FAF6EE;
  --surface-focal: #FDFBF6;

  --text-ink: #241F17;       /* заголовки, цифры */
  --text-body: #473F31;
  --text-muted: #6B5F4D;
  --text-soft: #8A7C68;      /* только крупный кегль */

  --accent-struct: #B08D4F;        /* ЛАТУНЬ = структура: линии, глифы, рамки. Не фон, не мелкий текст */
  --accent-struct-text: #7A5E32;   /* латунь, когда ею всё-таки пишут */
  --accent-emphasis: #B08D4F;      /* парадная латунь: герой, покупка; текст на ней — только тёмный */
  --text-on-struct: #241F17;
  --accent-action: #2F6356;        /* ПАТИНА = действие: единственный насыщенный цвет экрана. ГОЛОС БРЕНДА */
  --accent-action-text: #2C5A4E;
  --text-on-action: #FDFBF6;
  --accent-hot: #9B2D1F;           /* сургуч: печать, срок, отказ. ГОЛОС БРЕНДА; у кого нет — не использовать */
  --text-on-hot: #FDF6E3;

  --status-good: #37704F;   /* ред. 2 (22.10): #3E7D5C давал 4,04:1 на странице — статусом набирают данные (К9) */
  --status-warn: #7E5F22;   /* ред. 2 (22.10): #B8862F давал 2,68:1 на странице, ниже порога знака (К9) */
  --status-bad: #A6402E;

  --hairline: rgba(176, 141, 79, .26);
  --hairline-2: rgba(176, 141, 79, .14);
  --shadow-card: 0 1px 2px rgba(60, 48, 28, .04), 0 6px 20px rgba(60, 48, 28, .07), inset 0 0 0 1px var(--hairline-2);
  --shadow-card-hover: 0 2px 4px rgba(60, 48, 28, .06), 0 14px 34px rgba(60, 48, 28, .11), inset 0 0 0 1px var(--hairline);
  --shadow-focal: 0 2px 6px rgba(60, 48, 28, .05), 0 18px 46px rgba(60, 48, 28, .10), inset 0 0 0 1px rgba(176, 141, 79, .18);

  /* Стекло и свечение в светлой теме не применяются: стекло поверх бумаги спорит с метафорой. */
  --glass-bg: transparent;  --glass-blur: 0px;  --glass-border: transparent;
  --glow-soft: none;  --glow-card: none;  --glow-strong: none;
}

/* ── 3. ТЁМНАЯ ТЕМА «ДЕРЕВО» ───────────────────────────────────────────────────────────────── */
[data-theme="dark"], [data-theme="astra"] {
  color-scheme: dark;
  --surface-page: #160F09;
  --surface-card: #1E150D;
  --surface-focal: #2B1D14;

  --text-ink: #FDF6E3;
  --text-body: #C6B69A;
  --text-muted: #968065;     /* из SUTRA ASTRA: 4,77:1 на карточке. #897A62 Каутильи даёт 4,30:1 — ниже порога; см. К7 */
  --text-soft: rgba(253, 246, 227, .45);

  --accent-struct: #C19A6B;
  --accent-struct-text: #C19A6B;
  --accent-emphasis: #C19A6B;
  --text-on-struct: #160F09;
  --accent-action: #8FC4B0;
  --accent-action-text: #8FC4B0;
  --text-on-action: #160F09;
  --accent-hot: #9B2D1F;           /* сургуч — только заливкой со светлым текстом: текстом на дереве он даёт 2,39:1 */
  --text-on-hot: #FDF6E3;

  --status-good: #5A9E6A;
  --status-warn: #D4A830;
  --status-bad: #C97070;

  --hairline: rgba(193, 154, 107, .26);
  --hairline-2: rgba(193, 154, 107, .14);
  --shadow-card: 0 4px 20px rgba(0, 0, 0, .45), inset 0 0 0 1px var(--hairline-2);
  --shadow-card-hover: 0 0 15px rgba(193, 154, 107, .15), inset 0 0 0 1px var(--hairline);
  --shadow-focal: 0 0 0 1px rgba(193, 154, 107, .12), 0 6px 28px rgba(0, 0, 0, .50);

  /* Три правила стекла: только над содержательным фоном · не более одного слоя в поле зрения ·
     текст на стекле — только --text-ink. Размытие 5 px — как в проде; вопрос 12–16 px открыт с 21.08. */
  --glass-bg: rgba(30, 21, 13, .62);  --glass-blur: 5px;  --glass-border: rgba(193, 154, 107, .18);
  --glow-soft: 0 0 5px rgba(193, 154, 107, .20);
  --glow-card: 0 0 15px rgba(193, 154, 107, .15);
  --glow-strong: 0 0 25px rgba(193, 154, 107, .50);
}

/* Первый визит без выбора: тема = система посетителя (слово владельца 18.09.2026). */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    color-scheme: dark;
    --surface-page: #160F09;  --surface-card: #1E150D;  --surface-focal: #2B1D14;
    --text-ink: #FDF6E3;  --text-body: #C6B69A;  --text-muted: #968065;  --text-soft: rgba(253, 246, 227, .45);
    --accent-struct: #C19A6B;  --accent-struct-text: #C19A6B;  --accent-emphasis: #C19A6B;  --text-on-struct: #160F09;
    --accent-action: #8FC4B0;  --accent-action-text: #8FC4B0;  --text-on-action: #160F09;  --accent-hot: #9B2D1F;  --text-on-hot: #FDF6E3;
    --status-good: #5A9E6A;  --status-warn: #D4A830;  --status-bad: #C97070;
    --hairline: rgba(193, 154, 107, .26);  --hairline-2: rgba(193, 154, 107, .14);
    --shadow-card: 0 4px 20px rgba(0, 0, 0, .45), inset 0 0 0 1px var(--hairline-2);
    --shadow-card-hover: 0 0 15px rgba(193, 154, 107, .15), inset 0 0 0 1px var(--hairline);
    --shadow-focal: 0 0 0 1px rgba(193, 154, 107, .12), 0 6px 28px rgba(0, 0, 0, .50);
    --glass-bg: rgba(30, 21, 13, .62);  --glass-blur: 5px;  --glass-border: rgba(193, 154, 107, .18);
    --glow-soft: 0 0 5px rgba(193, 154, 107, .20);  --glow-card: 0 0 15px rgba(193, 154, 107, .15);
    --glow-strong: 0 0 25px rgba(193, 154, 107, .50);
  }
}

/* ── 4. СЛОЙ СООТВЕТСТВИЯ: прежние короткие имена юрблока ────────────────────────────────────
   Сайты не переписываются: старое имя читает значение контракта. Новый код пишется только именами
   контракта. Имени --accent в каноне НЕТ: у трёх брендов оно значит три разные вещи (латунь у ИСС и
   Каутильи, мята у sudfact) — при переносе каждый случай разводится на action, struct или emphasis. */
:root {
  --bg: var(--surface-page);
  --surface: var(--surface-card);
  --surface-2: var(--surface-focal);
  --text: var(--text-ink);
  --muted: var(--text-muted);
  --border: var(--hairline);
  --brass: var(--accent-struct);
  --mint: var(--accent-action);
}
