/* Токены интерфейса. DESIGN.md §2…§6. Второй файл — `app.css`, стили на этих токенах.
 *
 * Дробление: один файл стилей перевалил лимит 300 строк (`dev-policies.md` §2.1).
 * Лимит держится дроблением, а не правкой лимита; секция 4 `check.sh` считает только
 * `*.py`, поэтому счёт строк стилей держит тест `test_62a_style_files_stay_under_300`.
 *
 * Правила, общие для обоих файлов:
 *   1. Отступы и позиции — только логические свойства. `left` и `right` запрещены
 *      (DESIGN.md §14.2): на иврите раскладка идёт справа налево, и физическая сторона
 *      уезжает молча. То же про `text-align`: `start` и `end`, не `left` и `right`.
 *   2. Тем две: светлая и тёмная (Д-26, новая редакция 06.10.2026). Светлая стоит
 *      в `:root`, тёмная — ниже, двумя блоками: по системной настройке и по выбору
 *      Рины (`data-theme` на `<html>`). Цвет пишется токеном и только здесь: литерал
 *      в `app.css` живёт в одной теме и ломается во второй.
 *   3. Шрифты с Google Fonts не грузятся (Д-27). Стек системный; файл Assistant при
 *      появлении кладётся в статику и подключается через @font-face здесь же.
 */

:root {
  /* §2.1 нейтральная шкала */
  --c-bg: #f8fafc;
  --c-surface: #ffffff;
  --c-surface-2: #f1f5f9;
  --c-border: #e2e8f0;
  --c-border-strong: #cbd5e1;
  --c-text: #1e293b;
  --c-text-strong: #0f172a;
  --c-text-muted: #586579;

  /* §2.2 акцент */
  --c-accent: #0369a1;
  --c-accent-hover: #075985;
  --c-accent-soft: #e0f2fe;

  /* §2.4 сигнальные цвета */
  --c-danger: #b91c1c;
  --c-danger-bg: #fee2e2;
  --c-danger-border: #fca5a5;
  --c-warn: #854d0e;
  --c-warn-bg: #fef9c3;
  --c-ok: #15803d;
  --c-ok-bg: #dcfce7;
  --c-money: #065f46;

  /* §3.1 шрифты: системный стек, без загрузки файлов */
  --font-he: "Assistant", "Heebo", "Arial Hebrew", -apple-system, "Segoe UI", system-ui, sans-serif;
  --font-ru: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-num: ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  /* §3.2 шкала размеров */
  --fs-xs: 0.75rem;
  --fs-sm: 0.875rem;
  --fs-base: 1rem;
  --fs-lg: 1.125rem;
  --fs-xl: 1.25rem;
  --fs-2xl: 1.75rem;
  --fs-3xl: 2.25rem;

  /* §3.3 начертания и межстрочное расстояние */
  --fw-normal: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --lh-tight: 1.25;
  --lh-base: 1.5;
  --lh-loose: 1.6;

  /* §4 отступы, радиусы, тени; шаг сетки 4 px */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;
  --sp-8: 32px;
  --sp-10: 40px;
  --r-sm: 4px;
  --r-md: 6px;
  --r-lg: 8px;
  --r-full: 9999px;
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.10);


  /* §2.3 статусы записи: пара «фон — текст» на каждый статус */
  --c-badge-new-bg: #fef9c3;       --c-badge-new-fg: #854d0e;
  --c-badge-confirmed-bg: #e0f2fe; --c-badge-confirmed-fg: #0369a1;
  --c-badge-arrived-bg: #dcfce7;   --c-badge-arrived-fg: #15803d;
  --c-badge-done-bg: #d1fae5;      --c-badge-done-fg: #065f46;
  --c-badge-no-show-bg: #ffedd5;   --c-badge-no-show-fg: #9a3412;
  --c-badge-cancelled-bg: #f1f5f9; --c-badge-cancelled-fg: #475569;

  /* §2.5 девять цветов мастеров */
  --c-chip-1-bg: #e0e7ff; --c-chip-1-fg: #3730a3;
  --c-chip-2-bg: #fae8ff; --c-chip-2-fg: #86198f;
  --c-chip-3-bg: #ccfbf1; --c-chip-3-fg: #115e59;
  --c-chip-4-bg: #ffe4e6; --c-chip-4-fg: #9f1239;
  --c-chip-5-bg: #fef3c7; --c-chip-5-fg: #92400e;
  --c-chip-6-bg: #e2e8f0; --c-chip-6-fg: #334155;
  --c-chip-7-bg: #d9f99d; --c-chip-7-fg: #3f6212;
  --c-chip-8-bg: #cffafe; --c-chip-8-fg: #155e75;
  --c-chip-9-bg: #ede9fe; --c-chip-9-fg: #5b21b6;

  /* §8 текст на цветной кнопке: белый в обеих темах */
  --c-on-accent: #ffffff;

  /* §5 ширины */
  --w-page: 1280px;

  /* §6 сетка журнала дня; раскладку ставит Спринт 2, токены живут здесь */
  --jr-hour: 64px;
  --jr-slot: 16px;
  --jr-col-min: 160px;
  --jr-axis: 56px;
  --jr-gap: 2px;
}

/* --- тёмная тема (Д-26, редакция 06.10.2026) --------------------------------------
 *
 * Значения перечислены дважды намеренно: CSS не умеет переиспользовать набор
 * объявлений. Первый блок — системная настройка машины, второй — выбор Рины.
 * `:not([data-theme="light"])` нужен, чтобы её «светлая» победила системную тёмную.
 * Меняешь цвет — меняй в обоих блоках: тест `test_57` сверяет наборы имён.
 */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --c-bg: #0f172a;
    --c-surface: #1e293b;
    --c-surface-2: #273548;
    --c-border: #334155;
    --c-border-strong: #475569;
    --c-text: #e2e8f0;
    --c-text-strong: #f8fafc;
    --c-text-muted: #94a3b8;

    --c-accent: #38bdf8;
    --c-accent-hover: #7dd3fc;
    --c-accent-soft: #082f49;

    --c-danger: #fca5a5;
    --c-danger-bg: #450a0a;
    --c-danger-border: #7f1d1d;
    --c-warn: #fde68a;
    --c-warn-bg: #422006;
    --c-ok: #86efac;
    --c-ok-bg: #052e16;
    --c-money: #6ee7b7;

    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.45);
    --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.55);

    --c-badge-new-bg: #422006;       --c-badge-new-fg: #fde68a;
    --c-badge-confirmed-bg: #0c4a6e; --c-badge-confirmed-fg: #bae6fd;
    --c-badge-arrived-bg: #14532d;   --c-badge-arrived-fg: #bbf7d0;
    --c-badge-done-bg: #064e3b;      --c-badge-done-fg: #a7f3d0;
    --c-badge-no-show-bg: #7c2d12;   --c-badge-no-show-fg: #fed7aa;
    --c-badge-cancelled-bg: #334155; --c-badge-cancelled-fg: #cbd5e1;

    --c-chip-1-bg: #312e81; --c-chip-1-fg: #c7d2fe;
    --c-chip-2-bg: #701a75; --c-chip-2-fg: #f5d0fe;
    --c-chip-3-bg: #134e4a; --c-chip-3-fg: #99f6e4;
    --c-chip-4-bg: #881337; --c-chip-4-fg: #fecdd3;
    --c-chip-5-bg: #78350f; --c-chip-5-fg: #fde68a;
    --c-chip-6-bg: #334155; --c-chip-6-fg: #e2e8f0;
    --c-chip-7-bg: #365314; --c-chip-7-fg: #d9f99d;
    --c-chip-8-bg: #164e63; --c-chip-8-fg: #a5f3fc;
    --c-chip-9-bg: #4c1d95; --c-chip-9-fg: #ddd6fe;

    --c-on-accent: #04202e;
  }
}

:root[data-theme="dark"] {
  --c-bg: #0f172a;
  --c-surface: #1e293b;
  --c-surface-2: #273548;
  --c-border: #334155;
  --c-border-strong: #475569;
  --c-text: #e2e8f0;
  --c-text-strong: #f8fafc;
  --c-text-muted: #94a3b8;

  --c-accent: #38bdf8;
  --c-accent-hover: #7dd3fc;
  --c-accent-soft: #082f49;

  --c-danger: #fca5a5;
  --c-danger-bg: #450a0a;
  --c-danger-border: #7f1d1d;
  --c-warn: #fde68a;
  --c-warn-bg: #422006;
  --c-ok: #86efac;
  --c-ok-bg: #052e16;
  --c-money: #6ee7b7;

  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.45);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.55);

  --c-badge-new-bg: #422006;       --c-badge-new-fg: #fde68a;
  --c-badge-confirmed-bg: #0c4a6e; --c-badge-confirmed-fg: #bae6fd;
  --c-badge-arrived-bg: #14532d;   --c-badge-arrived-fg: #bbf7d0;
  --c-badge-done-bg: #064e3b;      --c-badge-done-fg: #a7f3d0;
  --c-badge-no-show-bg: #7c2d12;   --c-badge-no-show-fg: #fed7aa;
  --c-badge-cancelled-bg: #334155; --c-badge-cancelled-fg: #cbd5e1;

  --c-chip-1-bg: #312e81; --c-chip-1-fg: #c7d2fe;
  --c-chip-2-bg: #701a75; --c-chip-2-fg: #f5d0fe;
  --c-chip-3-bg: #134e4a; --c-chip-3-fg: #99f6e4;
  --c-chip-4-bg: #881337; --c-chip-4-fg: #fecdd3;
  --c-chip-5-bg: #78350f; --c-chip-5-fg: #fde68a;
  --c-chip-6-bg: #334155; --c-chip-6-fg: #e2e8f0;
  --c-chip-7-bg: #365314; --c-chip-7-fg: #d9f99d;
  --c-chip-8-bg: #164e63; --c-chip-8-fg: #a5f3fc;
  --c-chip-9-bg: #4c1d95; --c-chip-9-fg: #ddd6fe;

  --c-on-accent: #04202e;
}
