/*
  theme-tokens.css — слой семантики (2 из 3 после токенов-данных палитр).

  ЗДЕСЬ НЕТ НИ ОДНОГО ЦВЕТА. Тут живут инварианты, которые НЕ зависят от палитры:
  радиусы, плотность (отступы), типографика, движение, размеры оболочки. Цвета —
  только в `themes.css` (FE-02: единственный файл, где цвету разрешено быть
  литералом).

  МАСШТАБ ОДИН НА ВСЕ ТЕМЫ (решение владельца 20.10.2026; отменяет «разную
  кастомизацию» из уточнения 19.10.2026). `--radius-*`, `--space-*`,
  `--gutter`/`--card-pad`/`--gap`, `--font-*`, `--fs-*` объявлены ЗДЕСЬ один раз
  и палитрами НЕ переопределяются. Палитра меняет ТОЛЬКО цвет и тень или градиент:
  `--shadow-*` не занимают места в раскладке, поэтому характер темы живёт в них,
  а не в размерах.

  ПОЧЕМУ ТАК. Пока типографика и плотность были частью палитры, масштаб интерфейса
  зависел от цвета: при смене темы карточки «прыгали». Замер t148 (12 палитр,
  главная и профиль): `--fs-base` 13…15 px, `--radius-card` 12…28 px, `--space-4`
  12…18 px, `--card-pad` 12…24 px, высота карточки уровня 158,73…164,73 px. После
  правки шкала одна, а различаются только цвет и форма тени.

  КАК ЧИТАТЬ. `--radius-*` — шкала, роли (`--radius-card` и др.) ссылаются на неё.
  `--space-*` — плотность, одна для всех тем. `--font-*`/`--fs-*` — типографика,
  тоже одна. `--shadow-*` здесь НЕ объявлены: значение тени содержит цвет, поэтому
  тени задаёт палитра в `themes.css` (и это единственное, что она меняет в форме).

  ЧТО ПРОВЕРЯЕТСЯ. `new/tests/web/test_frontend_themes.py`: обязательные токены,
  контраст, «цвет только в themes.css» и обратное прежнему правило — палитра НЕ
  задаёт масштаб (ни одного `--radius-*`/`--space-*`/`--font-*`/`--fs-*`/`--gutter`/
  `--card-pad`/`--gap` в блоках `[data-palette]`), а шкала объявлена здесь.
*/

:root {
    /* ── радиусы ─────────────────────────────────────────────────────────── */
    --radius-xs: 8px;
    --radius-sm: 12px;
    --radius-md: 16px;
    --radius-lg: 22px;
    --radius-xl: 28px;
    --radius-2xl: 34px;
    --radius-pill: 999px;

    --radius-card: var(--radius-lg);
    --radius-btn: var(--radius-md);
    --radius-field: var(--radius-md);
    --radius-sheet: var(--radius-xl);
    --radius-chip: var(--radius-pill);

    /* ── плотность ───────────────────────────────────────────────────────── */
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-7: 32px;
    --space-8: 40px;

    --gutter: var(--space-4);
    --card-pad: var(--space-4);
    --gap: var(--space-3);
    --row-h: 54px;

    /* ── типографика ─────────────────────────────────────────────────────── */
    --font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue",
        Arial, "Noto Sans", sans-serif;
    --font-display: var(--font-sans);
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono",
        monospace;

    --fs-caption: 11px;
    --fs-sm: 12px;
    --fs-base: 14px;
    --fs-md: 16px;
    --fs-lg: 18px;
    --fs-xl: 22px;
    --fs-2xl: 26px;
    --fs-3xl: 32px;

    --lh-tight: 1.15;
    --lh-normal: 1.45;
    --lh-loose: 1.6;

    --fw-regular: 400;
    --fw-medium: 500;
    --fw-semibold: 600;
    --fw-bold: 700;

    --tracking-caps: 0.08em;

    /* ── движение ────────────────────────────────────────────────────────── */
    --dur-fast: 120ms;
    --dur: 180ms;
    --dur-slow: 280ms;
    --ease: cubic-bezier(0.2, 0.7, 0.3, 1);
    --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);

    /* ── оболочка ────────────────────────────────────────────────────────── */
    --tap-min: 44px;
    --nav-h: 60px;
    --content-max: 520px;
    --border-width: 1px;

    --icon: 24px;
    --icon-sm: 18px;
    --stroke: 1.75;

    --z-nav: 50;
    --z-sheet: 70;
    --z-toast: 90;
  /* Оверлей загрузки — выше панелей и тостов, но ниже системных алертов (t207). */
  --z-loader: 95;
}
