/* ═══════════════════════════════════════════════════════════════════════════
   tokens.css — все ступени оформления в одном месте.

   Новый вид интерфейса начинается здесь: отступы, скругления, размеры текста,
   тени и скорости анимаций. Цвета обеих тем — в config/colors.py (THEMES),
   base.html отдаёт их переменными --text, --bg-card, --accent-text и т.д.

   Правило: компоненты (system.css) и страницы берут значения только отсюда и
   из цветов темы. Цвет числом и style="…" в шаблонах ловит
   tools/test_style_guard.cjs.
   ═══════════════════════════════════════════════════════════════════════════ */

:root {
  /* Отступы. Шаг кратен 4px: промежуточных значений быть не должно, иначе
     блоки на соседних страницах выравниваются по-разному. */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 24px;
  --sp-6: 32px;

  /* Скругления: мелкие элементы, карточки, крупные блоки, «таблетка». */
  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 16px;
  --r-pill: 999px;

  /* Размеры текста. Шесть ступеней вместо сорока восьми.
     Подписи (badge/caption) намеренно не мельче 0.72rem — ниже этого текст
     на телефоне читается с трудом. */
  --fs-xs: 0.72rem;   /* бейджи, мелкие подписи */
  --fs-sm: 0.82rem;   /* второстепенный текст */
  --fs-md: 0.94rem;   /* основной текст */
  --fs-lg: 1.06rem;   /* названия в карточках */
  --fs-xl: 1.35rem;   /* заголовки разделов */
  --fs-2xl: 1.9rem;   /* заголовок страницы */

  /* Насыщенность: обычный, выделенный, сильный. */
  --fw-normal: 500;
  --fw-bold: 700;
  --fw-heavy: 800;

  --shadow-card: 0 1px 3px rgba(0, 0, 0, .08);
  --shadow-pop: 0 10px 34px rgba(0, 0, 0, .22);

  /* Движение. Короткое и без отскоков: интерфейс откликается, а не
     развлекает. «Уменьшить движение» в системе обнуляет всё (motion.css). */
  --dur-fast: 120ms;   /* нажатие, наведение */
  --dur: 200ms;        /* меню, появление страницы */
  --dur-slow: 320ms;   /* смена темы, переезд подсветки меню */
  --ease-out: cubic-bezier(.2, .8, .2, 1);
  --ease-in-out: cubic-bezier(.4, 0, .2, 1);
  --stagger: 30ms;     /* шаг очереди при появлении списка */
}
