:root {
  color-scheme: light;
  /* Ритм вёрстки — ЖЁСТКОЕ правило (владелец, 21 октября 2026: «соблюдай во всём проекте, это должно быть жёсткое правило»).
     Отступы (margin, padding, gap) — только на сетке 4 px (0, 4, 8, 12, 16, 20, 24, 32…; 2 px — микросдвиг иконки), удобнее —
     токены --space-*. Межстрочный интервал — только токены: --lh-text для текста, --lh-tight для заголовков и подписей,
     --lh-none для однострочных цифр, кнопок и значков. tests/test_static.py проверяет все стили и встроенные style в js. Новые блоки
     собирать из .form / .form-group / .field, а не ставить поля подряд без промежутка. */
  /* Непрозрачная поверхность: у стеклянной темы --surface-1 полупрозрачный, а select и его раскрытый список, закреплённые ячейки
     таблиц должны быть сплошными (Windows рисует прозрачный фон списка белым — пункты не видно). */
  --surface-solid: #ffffff;
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-5: 24px; --space-6: 32px;
  --lh-none: 1; --lh-tight: 1.25; --lh-text: 1.5;   /* одна строка (цифры, кнопки, значки) · заголовки и подписи · текст */
  --font-display: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Inter", sans-serif;
  /* Цвета O'Click!: графит #0f172a и синий #2563eb. */
  --brand-dark: #0f172a;
  --brand-accent: #3b82f6;
  --page: #f4f6fb;
  --surface-1: #ffffff;
  --border: #e2e6ee;
  --text-primary: #0f172a;
  --text-secondary: #4b5565;
  --text-muted: #7c8799;
  --grid: #e9edf3;
  --series-1: #2563eb;   /* выручка */
  --series-3: #0f172a;   /* прибыль */
  --accent: #2563eb;
  --accent-hover: #1d4ed8;
  --accent-text: #ffffff;
  --accent-soft: #dbeafe;
  --warn-bg: #fdf1d8;
  --warn-border: #eda100;
  --bad-bg: #fce4e3;
  --bad-border: #e34948;
  --good-bg: #dff3ea;
  --good-border: #1baf7a;
  --info-bg: #f1f3f8;
  --info-border: #7c8799;
}
/* Тему выбирает владелец кнопкой в меню (или берётся системная); app.js ставит data-theme на <html>. */
:root[data-theme="dark"] {
    color-scheme: dark;
    --surface-solid: #121a2b;
    --page: #0b1220;
    --surface-1: #141c2e;
    --border: #273247;
    --text-primary: #e8edf5;
    --text-secondary: #aab3c2;
    --text-muted: #7c8799;
    --grid: #1f2937;
    --series-1: #60a5fa;
    --series-3: #e2e8f0;
    --accent: #3b82f6;
    --accent-hover: #60a5fa;
    --accent-text: #ffffff;
    --accent-soft: #1e3a8a;
    --warn-bg: #3a2d0c;
    --warn-border: #c98500;
    --bad-bg: #3d1a1a;
    --bad-border: #e66767;
    --good-bg: #12301f;
    --good-border: #199e70;
    --info-bg: #1a2234;
    --info-border: #7c8799;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--page);
  color: var(--text-primary);
  font: 14px/var(--lh-text) -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
h1 { font-family: var(--font-display); font-size: 24px; font-weight: 700; margin: 0; letter-spacing: .01em; }
h2 { font-family: var(--font-display); font-size: 20px; font-weight: 700; margin: 0 0 12px; letter-spacing: .01em; }
p { margin: 0; }

