/* Токены веб-приёмки — скин «Панель» (принят заказчиком, сессия 39).

   Чем это заменило скин «Терминал». Терминальный скин был принят в сессии 29 и прожил до 06.08,
   когда заказчик назвал три боли: мелкие надписи не читаются, гарнитура «острая и цепляет глаз»,
   а сам стиль ощущается «гиковским приколом, а не удобной палитрой для работы». Все три
   подтвердились замерами:
     — дно шкалы было 10px, и СЕМЬ правил сочетали 10px + КАПС + разрядку разом (включая заголовки
       столбцов таблиц). Капс лишает слово силуэта, разрядка добивает остаток — глаз переходит на
       побуквенное чтение, а буквы на 10px не разрешаются;
     — стек начинался с "Cascadia Code" (есть у разработчика, нет у PM) и содержал два имени,
       которых нет ни у кого. Одна строка занимала у разных людей ширину, отличающуюся на 7,3%;
     — моноширинная проза читается медленнее: у всех букв одна ширина, слово теряет силуэт.

   Отсюда три правила, на которых стоит этот файл:
   1) ГРОТЕСК В ИНТЕРФЕЙСЕ, МОНО ТОЛЬКО В ЧИСЛАХ. Моноширинный полезен ровно там, где цифры
      обязаны стоять в колонку: показатели, время, номера прогонов. Больше нигде.
   2) ПОЛ 12px И НИКАКОГО КАПСА С РАЗРЯДКОЙ на мелком. Ступеней ниже 12px в шкале нет физически —
      чтобы соблазна не было.
   3) ПЕРВЫМ В СТЕКЕ — ТО, ЧТО ЕСТЬ У ВСЕХ. Иначе плотность настраивается по экрану одного
      человека, а работают на другой.

   Файл делится надвое:
   1) ШКАЛЫ (кегль, отступ, радиус, тень, движение, слой) — общие для всех палитр;
   2) ПАЛИТРЫ — только цвет, по одной на data-pal.

   Три фона на выбор человека: светлый (по умолчанию), тёплый, тёмный. Переключатель в шапке
   ставит data-pal на <html> и пишет выбор в localStorage (см. base.html).
   prefers-color-scheme сознательно НЕ используется: тема — явный выбор, а не эвристика
   (решение сессии 29, при смене скина подтверждено).
   Контрасты всех пар посчитаны; минимум по трём палитрам — 4,51 : 1 при норме AA 4,5. */

:root {
  /* ── Типографика ───────────────────────────────────────────────────────────
     Только системные гарнитуры: страница не ходит за файлами в сеть.
     Segoe UI Variable Text — Windows 11, Segoe UI — Windows 10, дальше системный гротеск.
     Consolas стоит первым среди моноширинных: он есть на любом Windows, в отличие от
     Cascadia Code, который ставится только с Терминалом и VS Code. */
  --sans: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, "Helvetica Neue",
          Arial, sans-serif;
  --mono: Consolas, ui-monospace, "Cascadia Mono", "SF Mono", monospace;

  /* Кегли. Дна ниже 12px НЕТ — это и есть закрытая дверь к боли №1. */
  --fs-2xs: 12px;              /* мелкая мета: время реплики, подписи, хлебные крошки */
  --fs-xs:  13px;              /* плотный UI: таблицы, кнопки, поля, строки чек-листа */
  --fs-sm:  13px;              /* синоним --fs-xs; оставлен, чтобы не переписывать все правила */
  --fs-md:  14px;              /* БАЗА: проза, реплики чата */
  --fs-lg:  16px;              /* заголовки карточек (h2) */
  --fs-xl:  24px;              /* заголовок страницы (h1) */
  --fs-2xl: 24px;              /* крупные числа сводки */

  --lh-tight: 1.2;             /* заголовки */
  --lh: 1.5;                   /* интерфейс */
  --lh-prose: 1.6;             /* длинный текст: реплики, «Помощь», инструкции */

  /* Отступы: шаг 4px. Одна шкала на padding, margin и gap. */
  --s0: 2px;
  --s1: 4px;
  --s2: 8px;
  --s3: 12px;
  --s4: 16px;
  --s5: 24px;
  --s6: 32px;
  --s7: 48px;

  /* Радиусы «Панели»: карточка заметно скруглена, элементы управления мягко.
     --r остаётся именем по умолчанию: на него завязан весь существующий код.
     Слой отделки (23.09): на ступень мягче — 6→8 у кнопок и полей, 8→12 у карточек, пузырь 16.
     Форма узнаётся прежней, но уходит «угловатость» формы-таблицы. */
  --r-sm: 6px;
  --r: 8px;                    /* кнопки, поля */
  --r-md: 12px;                /* карточки-панели, окна, меню */
  --r-lg: 16px;                /* пузыри чата, окно подтверждения */
  --r-xl: 16px;
  --r-full: 999px;             /* таблетки статуса */

  --bw: 1px;                   /* толщина рамки: одна на весь интерфейс */

  /* Тени. В «Панели» именно они делят экран на зоны — карточка приподнята над фоном.
     В тёмной палитре тень не видна физически (темнее уже некуда) и там зоны задаёт рамка:
     см. --card-border ниже. */
  --sh-1: 0 1px 2px rgba(23, 26, 29, .05), 0 1px 1px rgba(23, 26, 29, .03), 0 4px 14px rgba(23, 26, 29, .045);
  --sh-lift: 0 2px 4px rgba(23, 26, 29, .05), 0 10px 28px rgba(23, 26, 29, .10);  /* карточка под курсором */
  --sh-2: 0 6px 24px rgba(23, 26, 29, .14), 0 1px 3px rgba(23, 26, 29, .06);      /* тост, меню, панель */
  --sh-3: 0 10px 46px rgba(0, 0, 0, .5);           /* увеличенный слайд поверх затемнения */

  /* Движение. Всё, что дольше --t-slow, воспринимается как «подтормаживает».
     --ease-out — для появления: быстрый старт и мягкая посадка, так двигаются «дорогие» интерфейсы.
     Всё анимированное гасится при prefers-reduced-motion (base.css, в самом конце). */
  --t-fast: .12s;
  --t: .18s;
  --t-slow: .32s;
  --ease: cubic-bezier(.2, 0, .2, 1);
  --ease-out: cubic-bezier(.16, 1, .3, 1);

  /* Кольцо фокуса вместо жёсткой обводки: видно с клавиатуры, не режет глаз мышью. */
  --ring: 0 0 0 3px color-mix(in srgb, var(--accent) 28%, transparent);

  /* Слои: липкая шапка < липкая панель решения < тост < оверлей слайда. */
  --z-sticky: 10;
  --z-toast: 50;
  --z-crt: 60;                 /* имя сохранено: на него ссылается существующий код */
  --z-modal: 200;

  /* ── Палитра «Светлая» (по умолчанию) ─────────────────────────────────────
     Числа справа — контраст к --surface. */
  --ground: #eceff2;
  --surface: #ffffff;
  --surface-2: #f4f6f8;
  --ink: #171a1d;              /* 17,5 : 1 */
  --ink-2: #4d545c;            /*  7,7 : 1 */
  --ink-3: #656c74;            /*  5,3 : 1 — проходит и на --ground (4,6) */
  --line: #dfe3e8;
  --line-2: #eaedf1;
  --accent: #2563c4;           /*  5,7 : 1 */
  --accent-soft: #e5edfa;
  --accent-on: #ffffff;        /* текст на залитой акцентом кнопке */
  --accent-on-soft: rgba(255, 255, 255, .55);   /* рамка клавиши на ней же */
  --good: #1f6b45;  --good-soft: #dbeee3;
  --warn: #8a5a00;  --warn-soft: #f7ecd6;
  --crit: #b02a37;  --crit-soft: #f9e3e5;
  --muted-soft: #eef1f4;
  --label: #4d545c;            /* заголовки-лейблы разделов */
  --card-border: transparent;  /* в светлых палитрах зоны держит тень */
  --glow: transparent;         /* имя сохранено ради совместимости; свечения больше нет */
  --scan: 0;                   /* скан-линии сняты вместе с терминальным скином */
}

/* ── «Тёплая»: та же прямая полярность, но ниже яркость и убрана холодная синева.
      Для тех, кто сидит в отчёте часами при слабом свете. ─────────────────────── */
:root[data-pal="warm"] {
  --ground: #efebe4;
  --surface: #fbf9f6;
  --surface-2: #f4f1eb;
  --ink: #1e1b18;              /* 16,3 : 1 */
  --ink-2: #56504a;            /*  7,6 : 1 */
  --ink-3: #6e675e;            /*  5,3 : 1 — проходит и на --ground (4,7) */
  --line: #e3ded6;
  --line-2: #efebe5;
  --accent: #2560bd;           /*  5,7 : 1 */
  --accent-soft: #e6ecf7;
  --accent-on: #ffffff;
  --accent-on-soft: rgba(255, 255, 255, .55);
  --good: #1f6640;  --good-soft: #dfeae1;
  --warn: #84550a;  --warn-soft: #f5ecd9;
  --crit: #a92f36;  --crit-soft: #f7e4e4;
  --muted-soft: #eeeae2;
  --label: #56504a;
  --card-border: transparent;
  --sh-1: 0 1px 2px rgba(40, 32, 24, .06), 0 1px 1px rgba(40, 32, 24, .03), 0 4px 14px rgba(40, 32, 24, .05);
  --sh-lift: 0 2px 4px rgba(40, 32, 24, .06), 0 10px 28px rgba(40, 32, 24, .11);
  --sh-2: 0 6px 24px rgba(40, 32, 24, .15), 0 1px 3px rgba(40, 32, 24, .07);
}

/* ── «Тёмная»: для тёмной комнаты и для тех, кто предпочитает её всегда.
      Единственное СТРУКТУРНОЕ отличие всей системы: тень тут не работает (темнее уже некуда),
      поэтому зоны задаёт рамка --card-border, а карточка чуть светлее фона. ───────── */
:root[data-pal="dark"] {
  --ground: #16191d;
  --surface: #1e2228;
  --surface-2: #252a31;
  --ink: #e6e9ec;              /* 13,1 : 1 */
  --ink-2: #a8b0b8;            /*  7,3 : 1 */
  --ink-3: #8b939c;            /*  5,1 : 1 */
  --line: #2b3138;
  --line-2: #252a31;
  --accent: #5d9bf5;           /*  5,7 : 1 */
  --accent-soft: #243447;
  --accent-on: #0d1116;        /* на светлом акценте текст должен быть тёмным */
  --accent-on-soft: rgba(13, 17, 22, .45);      /* и рамка клавиши тоже тёмная */
  --good: #5fc98b;  --good-soft: #1e3329;
  --warn: #e0a742;  --warn-soft: #332a19;
  --crit: #f0808c;  --crit-soft: #3a2226;
  --muted-soft: #242a31;
  --label: #a8b0b8;
  --card-border: #2b3138;
  --sh-1: none;
  --sh-lift: 0 10px 28px rgba(0, 0, 0, .45);
  --sh-2: 0 10px 32px rgba(0, 0, 0, .6);
}
