/**
 * @file theme.css — токены системы оформления движка: ТОЛЬКО переменные (правил-селекторов здесь нет).
 *
 * Всё остальное оформление (base.css, компоненты) берёт значения отсюда; «сырых» чисел там нет. Сайт меняет значения токенов
 * в слое сайта (значения --… после этих, тема сайта подключается позже), файлы движка не правит.
 * Токены палитры (--background, --primary … --border) общие с Mercury/shadcn: их читают и его компоненты.
 * Контраст текста на фоне не ниже 4,5:1 (проверка: scripts/contrast.py).
 */
:root {
  /* ---------- палитра ---------- */
  --background: oklch(1 0 0);
  --foreground: oklch(0.2 0.02 265);
  --card: oklch(0.975 0.004 265);
  --card-foreground: oklch(0.2 0.02 265);
  --primary: oklch(0.42 0.14 265);              /* акцент: главная кнопка, ссылки, контур второй кнопки, отметки */
  --primary-foreground: oklch(1 0 0);
  --secondary: oklch(0.94 0.006 265);
  --secondary-foreground: oklch(0.25 0.03 265);
  --muted: oklch(0.965 0.004 265);
  --muted-foreground: oklch(0.42 0.02 265);     /* второстепенный текст */
  --accent: oklch(0.94 0.03 265);               /* мягкая заливка акцента (чип «направление», полоса призыва) */
  --accent-foreground: var(--foreground);
  --destructive: oklch(0.52 0.2 27);
  --destructive-foreground: oklch(1 0 0);
  --border: oklch(0.9 0.006 265);               /* тонкие линии, рамки карточек */
  --input: oklch(0.62 0.012 265);               /* рамки вторичных контролов */
  --ee-focus: oklch(0.55 0.2 265);              /* кольцо фокуса */
  --ee-overlay: oklch(0.15 0.03 265 / 0.45);    /* затемнение под шторкой */
  --ee-status-ok: oklch(0.42 0.11 155);         /* «Регистрация открыта» */
  --ee-status-warn: oklch(0.45 0.12 70);        /* «Анонс», «Перенесено» */
  --ee-status-bad: oklch(0.45 0.16 27);         /* «Отменено» */
  --ee-status-done: oklch(0.4 0.02 265);        /* «Завершено», «Идёт» */
  --ee-danger: var(--destructive);
  --ee-dir-1: oklch(0.5 0.12 265);              /* цвет метки направления (по кругу) */
  --ee-dir-2: oklch(0.5 0.12 30);
  --ee-dir-3: oklch(0.5 0.1 145);
  --ee-dir-4: oklch(0.5 0.09 190);
  --ee-dir-5: oklch(0.5 0.08 60);
  --ee-dir-6: oklch(0.5 0.1 320);

  /* ---------- шрифты ---------- */
  --font-sans: "Inter", "Inter Fallback", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --font-body: var(--font-sans);                /* тело и интерфейс */
  --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
  --font-mono: ui-monospace, "Menlo", "Consolas", "Liberation Mono", monospace;
  --ee-font-heading: var(--font-sans);          /* заголовки H1–H4 и заголовки карточек */
  --ee-font-brand: var(--font-sans);            /* название сайта в шапке и подписи блоков (у сайта может быть с засечками) */

  /* ---------- текст: четыре роли + заголовки (размер / интерлиньяж) ---------- */
  --ee-fs-meta: 0.875rem;   --ee-lh-meta: 1.25rem;    /* 14/20: подписи, даты и места в карточках, чипы, крошки, подписи полей */
  --ee-fs-card: 0.9375rem;  --ee-lh-card: 1.375rem;   /* 15/22: текст внутри карточек, меню */
  --ee-fs-body: 1rem;       --ee-lh-body: 1.625rem;   /* 16/26: основной текст, поля, списки, кнопки, FAQ, отзывы */
  --ee-fs-lead: 1.25rem;    --ee-lh-lead: 1.875rem;   /* 20/30: вводный абзац страницы, описание в герое */
  --ee-fs-h1: clamp(2rem, 1.45rem + 2.4vw, 3rem);          --ee-lh-h1: 1.2;    /* 48 на компьютере, от 32 на телефоне */
  --ee-fs-h2: clamp(1.625rem, 1.3rem + 1vw, 2.125rem);     --ee-lh-h2: 1.2;    /* 34, от 26 */
  --ee-fs-h3: clamp(1.25rem, 1.1rem + 0.7vw, 1.5rem);      --ee-lh-h3: 1.25;   /* 24, от 20 */
  --ee-fs-h4: 1.125rem;                                     --ee-lh-h4: 1.3;    /* 18: малый заголовок, заголовок карточки */
  --ee-fs-brand: clamp(1.125rem, 1rem + 0.6vw, 1.5rem);    /* название сайта в шапке (не текстовая роль) */
  --ee-fw-regular: 400;
  --ee-fw-medium: 500;
  --ee-fw-strong: 600;                          /* подписи, кнопки, значения */
  --ee-fw-heading: 700;
  --ee-tracking-heading: -0.015em;
  --ee-tracking-caps: 0.06em;
  --ee-underline-offset: 0.2em;
  --ee-motion: 0.2s;                            /* длительность переходов */
  --ee-measure: 68ch;                           /* предел длины строки только у сплошного текста (проза) */

  /* ---------- отступы: одна шкала из семи значений ---------- */
  --ee-s1: 0.25rem;
  --ee-s2: 0.5rem;
  --ee-s3: 0.75rem;
  --ee-s4: 1rem;
  --ee-s5: 1.5rem;
  --ee-s6: 2.5rem;
  --ee-s7: 4rem;
  --ee-gap-para: var(--ee-s4);                  /* между абзацами и списками */
  --ee-gap-heading-before: var(--ee-s6);        /* над заголовком внутри текста */
  --ee-gap-heading-after: var(--ee-s4);         /* под заголовком */
  --ee-section-gap: clamp(var(--ee-s6), 2rem + 2.5vw, var(--ee-s7));   /* между секциями страницы: 40 на телефоне, 64 на компьютере */

  /* ---------- форма: контейнер, радиусы, линии, тени, размеры ---------- */
  --ee-container: 72rem;
  --ee-gutter: var(--ee-s4);                    /* боковые поля: край текста один на всех блоках */
  --radius: 0.75rem;                            /* Mercury: радиус его компонентов */
  --ee-radius-field: 0.625rem;                  /* поля форм */
  --ee-radius-card: 1rem;                       /* карточки, панели */
  --ee-radius-pill: 999px;                      /* кнопки, чипы */
  --ee-line: 1px;                               /* тонкая линия */
  --ee-line-strong: 2px;                        /* контур кнопки, кольца значков */
  --shadow-2xs: 0 1px 2px 0 hsl(0 0% 0% / 0.04);
  --shadow-xs: 0 1px 2px 0 hsl(0 0% 0% / 0.05);
  --shadow: 0 1px 3px 0 hsl(0 0% 0% / 0.08), 0 1px 2px -1px hsl(0 0% 0% / 0.08);
  --shadow-sm: 0 1px 3px 0 hsl(0 0% 0% / 0.08), 0 1px 2px -1px hsl(0 0% 0% / 0.08);
  --shadow-md: 0 4px 12px -2px hsl(0 0% 0% / 0.1);
  --shadow-lg: 0 10px 24px -6px hsl(0 0% 0% / 0.12);
  --shadow-xl: 0 16px 36px -8px hsl(0 0% 0% / 0.14);
  --shadow-2xl: 0 24px 48px -12px hsl(0 0% 0% / 0.18);
  --ee-control: 2.75rem;                        /* высота контролов и кнопок не меньше 44 px */
  --ee-check: 1.375rem;                         /* флажок и переключатель */
  --ee-filter-w: 12rem;                         /* поле фильтра: базовая ширина */
  --ee-filter-max: 20rem;                       /* и предел */
  --ee-icon: 3rem;                              /* круглый значок (соцсети, «Поделиться») */
  --ee-cover-w: 7.5rem;                         /* обложка карточки в строку (телефон) */
  --ee-shutter-width: 22rem;
  --ee-header-height: 4rem;                     /* высота шапки на телефоне; якорям и закреплению нужна эта величина */
  --ee-header-row: 4rem;                        /* высота первой строки шапки на компьютере */
  --ee-menu-row: var(--ee-control);             /* высота строки меню на компьютере */
  --ee-logo-size: 2.25rem;                      /* значок-логотип */
  --ee-brand-transform: none;                   /* регистр названия сайта: none | uppercase */
  --ee-brand-tracking: -0.01em;                 /* разрядка названия */
  --ee-cols: 1;                                 /* число колонок каталогов и сеток: 1 / 2 / 3 / 4 по ширине окна (base.css) */

  /* ---------- карточка, кнопка, поле ---------- */
  --ee-card-bg: var(--background);
  --ee-card-border: var(--border);
  --ee-card-shadow: var(--shadow-sm);
  --ee-card-pad: var(--ee-s4);
  --ee-btn-accent: var(--primary);              /* заливка основной, контур второй, текст третьей, кольца значков */
  --ee-btn-accent-fg: var(--primary-foreground);
  --ee-btn-hover: color-mix(in oklab, var(--ee-btn-accent) 78%, black);
  --ee-btn-soft: color-mix(in oklab, var(--ee-btn-accent) 10%, transparent);
  --ee-btn-radius: var(--ee-radius-pill);
  --ee-btn-height: var(--ee-control);
  --ee-field-border: oklch(0.55 0.02 265);      /* рамка поля: контраст к фону не меньше 3:1 */
  --ee-field-bg: oklch(1 0 0);
  --ee-field-focus: var(--ee-focus);

  /* ---------- шапка ---------- */
  --ee-header-bg: var(--background);
  --ee-header-fg: var(--foreground);
  --ee-header-border: transparent;
  --ee-header-search-w: 12rem;                  /* поле поиска в шапке в покое */
  --ee-header-search-w-open: 19rem;             /* при фокусе */
  --ee-ask-bar-bg: var(--background);

  /* ---------- служебные токены Mercury (их читает скомпилированный Tailwind его компонентов) ---------- */
  --tracking-normal: 0em;
  --spacing: 0.25rem;
  --navbar-height: calc(var(--spacing) * 15);
}

.dark {
  --background: oklch(0.16 0.02 265);
  --foreground: oklch(0.96 0.005 265);
  --card: oklch(0.21 0.02 265);
  --card-foreground: var(--foreground);
  --primary: oklch(0.72 0.13 265);
  --primary-foreground: oklch(0.16 0.02 265);
  --secondary: oklch(0.3 0.02 265);
  --secondary-foreground: var(--foreground);
  --muted: oklch(0.26 0.02 265);
  --muted-foreground: oklch(0.8 0.01 265);
  --accent: oklch(0.3 0.03 265);
  --accent-foreground: var(--foreground);
  --border: oklch(0.34 0.02 265);
  --input: oklch(0.4 0.02 265);
}

/* число колонок сеток по ширине окна (одно место): телефон 1, планшет 2, ноутбук 3, компьютер 4 */
@media (min-width: 48rem) { :root { --ee-cols: 2; } }
@media (min-width: 64rem) { :root { --ee-cols: 3; } }
@media (min-width: 80rem) { :root { --ee-cols: 4; } }
