/*
 * Чегать — дизайн-токены, единственный источник цветов, шрифтов, отступов и размеров (ТЗ, раздел 5).
 *
 * Часть 1 — файл прототипа docs/…/assets/tokens.css БЕЗ ИЗМЕНЕНИЙ: так сайт сверяется с макетом один-в-один.
 *   Обновился макет — заменить часть 1 целиком и прогнать node tools/qa/contrast.js.
 * Часть 2 — дополнения темы: шкала шрифтов, ширины, фокус, бейджи. Только то, чего нет в прототипе,
 *   и только через переменные части 1, если значение не новое.
 * Тёмная тема: inc/setup.php ставит data-theme на <html> до отрисовки; блок @media работает, только если JS выключен.
 * Палитра theme.json повторяет светлые значения части 1 (те же слаги без префикса «--»).
 */

/* ========== Часть 1 · прототип ========== */
/* Чегать · токены дизайн-системы v0.3 · палитра B · 14.10.2026 */
:root{
  --bg-page: #F8FAFC;
  --bg-surface: #FFFFFF;
  --bg-raised: #F1F5F9;
  --text-primary: #111827;
  --text-secondary: #4B5563;
  --brand-primary: #2D3F57;
  --brand-hover: #223044;
  --brand-pressed: #1A2536;
  --brand-soft: #EEF2F7;
  --on-brand: #FFFFFF;
  --link: #1E4F86;
  --brand-green: #8EC549;
  --green-soft: #EEF6E4;
  --border: #E2E8F0;
  --border-strong: #64748B;
  --success: #15803D;
  --warning: #B45309;
  --warning-soft: #FFF7ED;
  --warning-text: #92400E;
  --danger: #B91C1C;
  --footer-bg: #223044;
  --footer-text: #CBD5E1;
  --footer-link: #B9DD8C;
  --font-sans: "Source Sans 3", "Source Sans Pro", system-ui, sans-serif;
  --font-mono: "Source Code Pro", ui-monospace, monospace;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-pill: 22px;
  --shadow-sm: 0 1px 2px rgba(17,24,39,0.06), 0 1px 3px rgba(17,24,39,0.08);
  --shadow-lg: 0 12px 32px rgba(17,24,39,0.16), 0 2px 6px rgba(17,24,39,0.08);
  --touch-min: 44px;
  --button-primary: 48px;
  --button-default: 44px;
  --container: 1400px;
  --col-left: 200px;
  --col-right: 300px;
  --gutter: 24px;
  --logo-header: 172px;
}

/* Тёмная тема: по системе, если пользователь не выбрал светлую */
@media (prefers-color-scheme: dark){
:root:not([data-theme="light"]){
  --bg-page: #0B1220;
  --bg-surface: #111827;
  --bg-raised: #1F2937;
  --text-primary: #F1F5F9;
  --text-secondary: #A7B1C2;
  --brand-primary: #A9C1E0;
  --brand-hover: #C2D3EA;
  --brand-pressed: #D7E0EC;
  --brand-soft: #1A2440;
  --on-brand: #0B1220;
  --link: #A9C1E0;
  --brand-green: #8EC549;
  --green-soft: #1D2A14;
  --border: #273244;
  --border-strong: #6B7A90;
  --success: #4ADE80;
  --warning: #FBBF24;
  --warning-soft: #2B1D0C;
  --warning-text: #FBBF24;
  --danger: #F87171;
  --footer-bg: #111827;
  --footer-text: #A7B1C2;
  --footer-link: #B9DD8C;
}}
:root[data-theme="dark"]{
  --bg-page: #0B1220;
  --bg-surface: #111827;
  --bg-raised: #1F2937;
  --text-primary: #F1F5F9;
  --text-secondary: #A7B1C2;
  --brand-primary: #A9C1E0;
  --brand-hover: #C2D3EA;
  --brand-pressed: #D7E0EC;
  --brand-soft: #1A2440;
  --on-brand: #0B1220;
  --link: #A9C1E0;
  --brand-green: #8EC549;
  --green-soft: #1D2A14;
  --border: #273244;
  --border-strong: #6B7A90;
  --success: #4ADE80;
  --warning: #FBBF24;
  --warning-soft: #2B1D0C;
  --warning-text: #FBBF24;
  --danger: #F87171;
  --footer-bg: #111827;
  --footer-text: #A7B1C2;
  --footer-link: #B9DD8C;
}

/* ========== Часть 2 · дополнения темы ========== */
:root{
  /* Шкала шрифтов из DS01 «Основы»: размер / межстрочный. На телефоне (≤ 1023) крупные размеры меньше — ниже. */
  --fs-h1: 40px; --lh-h1: 48px;
  --fs-h2: 28px; --lh-h2: 36px;
  --fs-h3: 22px; --lh-h3: 30px;
  --fs-lead: 20px; --lh-lead: 30px;
  --fs-body: 18px; --lh-body: 27px;
  --fs-small: 15px; --lh-small: 22px;
  --fs-label: 14px; --lh-label: 20px;
  --fs-micro: 12px; --lh-micro: 16px; /* бейджи и метки карточек (12/16 — самый частый размер в прототипе) */
  --fs-button: 17px;  /* подпись основной кнопки 48 px */
  --fs-control: 16px; /* подпись вторичной кнопки 44 px, вкладок, сегментов */

  /* Ширины: строка текста 65–75 знаков (x-text), узкий контейнер страниц автора и форм (P15, P16, P22, P23),
     левая колонка документов и фильтров каталога (x-doc, P10). */
  --measure: 760px;
  --container-narrow: 1200px;
  --col-nav: 260px;
  --header-height: 68px; /* уточняется вместе с шапкой на этапе 4 */
  --gutter-page: 24px;   /* поля контейнера x-wrap; интервал колонок — --gutter из части 1 */

  /* Фокус: кольцо 3 px цвета ссылок с отступом 2 px (DS01). */
  --focus-width: 3px;
  --focus-offset: 2px;
  --focus: var(--link);

  /* Буквы логотипа и синяя часть знака: в тёмной теме #E2E8F0 (DS01 «На тёмном фоне»), зелёная часть та же. */
  --logo-ink: var(--brand-primary);

  /* Наведение на ссылку: в прототипе #163B66 (a:hover), в тёмной теме — светлее основного. */
  --link-hover: #163B66;

  /* Текст на зелёном знака (кнопка каталога, «Проверено»): тёмный в ОБЕИХ темах (DS07: «highlight → текст #111827»).
     --text-primary в тёмной теме светлый и дал бы 1,9:1. */
  --on-green: #111827;

  /* Фон врезки «Опасно» (в прототипе вид danger есть, мягкого фона ошибки в палитре нет). */
  --danger-soft: #FEF2F2;

  /* Скелетон (только там, где данные приходят после загрузки страницы; Техдокументация, раздел 10). */
  --skeleton: var(--bg-raised);

  /* Бейджи программ (badges.js прототипа сведён к токенам; ТЗ, раздел 5). Пары проверяет tools/qa/contrast.js.
     Золото «Золотого выбора» — единственный новый цвет: в палитре прототипа его нет, а уровень награды
     должен отличаться не только подписью. */
  --gold: #F2C94C;
  --badge-gold-bg: var(--footer-bg);      --badge-gold-fg: var(--gold);           --badge-gold-bd: var(--footer-bg);
  --badge-users-bg: var(--warning-soft);  --badge-users-fg: var(--warning-text);  --badge-users-bd: var(--warning);
  --badge-high-bg: var(--bg-raised);      --badge-high-fg: var(--text-primary);   --badge-high-bd: var(--border-strong);
  --badge-editor-bg: var(--green-soft);   --badge-editor-fg: var(--text-primary); --badge-editor-bd: var(--brand-green);
  --badge-dev-bg: var(--brand-soft);      --badge-dev-fg: var(--link);            --badge-dev-bd: var(--border-strong);
}
@media (max-width: 1023.98px){
  :root{
    --fs-h1: 30px; --lh-h1: 38px;
    --fs-h2: 24px; --lh-h2: 32px;
    --fs-h3: 20px; --lh-h3: 28px;
    --fs-body: 17px; --lh-body: 26px;
    --gutter-page: 16px;
  }
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){ --link-hover: #C2D3EA; --badge-gold-bd: var(--gold); --logo-ink: #E2E8F0; --danger-soft: #2A1215; }
}
:root[data-theme="dark"]{
  --link-hover: #C2D3EA;
  --danger-soft: #2A1215;
  --logo-ink: #E2E8F0;
  /* Фон футера в тёмной теме совпадает с фоном карточки: рамка отделяет бейдж от карточки. */
  --badge-gold-bd: var(--gold);
}
