/* Дизайн-токены vesquadra — волна 1 «Основа» стандарта «Весквадра 26-09-08»
   (перенос поверх канона «Модули», этап 0, 2026-08-12).
   Три яруса: 1 — базовые шкалы (палитра «Весквадра» + Golos Text + IBM Plex Mono);
   2 — семантические роли (repoint на канон); 3 — маппинг на Bootstrap.
   Ниже, отдельным блоком «w2» — расширение-кит «Модулей» (2026-08-14): волна 1,
   добор (2026-09-08) перевела ЦВЕТОВУЮ семантику блока (текст/поверхности/
   кромки/сигнальные примитивы) на токены яруса 1 по роли — имена w2-токенов
   не менялись, менялось только на что они ссылаются. Типографика/отступы/
   геометрия w2 этой правкой не тронуты, см. комментарий у блока.

   @font-face объявлены в начале: шрифты грузятся рано, до каскада компонентов.
   Пути относительные от этого файла → ../fonts/.
   Каждый шрифт — два @font-face: cyrillic (U+0400-…) и latin (U+0000-00FF…). */

/* ── Шрифт: Golos Text (self-hosted, OFL) — основной шрифт волны 1 ──────────
   Переменный шрифт (ось веса 400–900, используем диапазон 400–700), поэтому
   объявлен ДВУМЯ @font-face (cyrillic + latin), а не восемью статичными
   начертаниями — вес берётся из диапазона браузером. */

@font-face {
  font-family: "Golos Text";
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/golos-text-cyrillic-var.woff2") format("woff2-variations");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: "Golos Text";
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/golos-text-latin-var.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC,
                 U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ── Шрифт: Manrope — снят из активных ролей волной 1, ЗВЕНО ОСТАВЛЕНО ──────
   Задание волны просило убрать @font-face и файлы manrope-*.woff2, если по
   своду не осталось ни одной ссылки. Ссылки остались (вне периметра этой
   волны — не трогать): docs/passport/03-ui.md,
   docs/library/dizajn-predlozheniya-2026-09.md, витрина
   core/templates/core/ui/_showcase_body.html, а также тесты
   test_design_ledger.py / test_design_vedomost_block1.py, которые сторожат
   именно эти @font-face и файлы. Поэтому блок ниже не удалён и файлы шрифта
   не стёрты — просто ни один активный токен (--font-ui/--font-sans/
   --font-serif) на "Manrope" больше не указывает, значит эти @font-face
   браузером не запрашиваются (unicode-range впустую, но безвредно). */

/* Manrope — кириллица */
@font-face {
  font-family: "Manrope";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/manrope-cyrillic-400.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: "Manrope";
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/manrope-cyrillic-500.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: "Manrope";
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/manrope-cyrillic-600.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: "Manrope";
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/manrope-cyrillic-700.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* Manrope — latin */
@font-face {
  font-family: "Manrope";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/manrope-latin-400.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC,
                 U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Manrope";
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/manrope-latin-500.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC,
                 U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Manrope";
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/manrope-latin-600.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC,
                 U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Manrope";
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/manrope-latin-700.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC,
                 U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* IBM Plex Mono — кириллица */
@font-face {
  font-family: "IBM Plex Mono";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/ibm-plex-mono-cyrillic-400.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: "IBM Plex Mono";
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/ibm-plex-mono-cyrillic-500.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* IBM Plex Mono — latin */
@font-face {
  font-family: "IBM Plex Mono";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/ibm-plex-mono-latin-400.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC,
                 U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "IBM Plex Mono";
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/ibm-plex-mono-latin-500.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                 U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC,
                 U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  /* ── Ярус 1. Базовые шкалы ─────────────────────────────────────────── */

  /* Палитра «Весквадра 26-09-08», карточка «Палитра» (волна 1 «Основа») */
  --paper: #F2F4F7;
  --sheet: #FFFFFF;
  --ink: #111827;        /* чернила: заголовки и данные */
  --ink-soft: #6B7280;   /* приглушённый: подписи, шапки */
  --ink-faint: #9CA3AF;  /* слабый: подсказки, мета */
  /* Новый токен — четвёртая ступень чернил стандарта («основной текст»,
     роль между --ink и --ink-soft). Задел волны 1: ни один компонент на него
     ещё не переведён (это правка разметки/ролей — следующая волна). */
  --ink-body: #4B5563;
  --rule: #E5E7EB;       /* линия: рамки, разделители */
  /* Волна 1, доводка (08.09): стандарт даёт ОДНУ линию (#E5E7EB) — «strong»
     как отдельный тон отменён, repoint на --rule (было #C3C8CE). */
  --rule-strong: var(--rule);
  /* Новый токен — «подложка» (шапка таблицы, низ модуля): в наборе не было
     отдельного имени для тона между --paper и --sheet. */
  --sub: #FAFBFC;
  /* Новые токены волны 1, добор (08.09): роли есть в карточке «Палитра»,
     но в ярусе 1 имени под них не было — нужны, чтобы перевести w2
     (--edge-row/--surface-tab-idle) на ярус 1 по роли, а не оставлять
     на --gray-*. */
  --rule-soft: #F0F2F5;  /* линия между строками таблицы */
  --tab-idle:  #EEF0F3;  /* вкладка неактивная */

  /* Акцент-фиолет — действия (имена ярус-1 сохранены) */
  --wax: #6E3A78;
  --wax-dark: #522A5A;
  --wax-soft: #F6F0F7;

  /* Зелень — положительное, «проведено». Карточка «Палитра»: сигнал «хорошо». */
  --ledger-green: #15803D;
  --ledger-green-soft: #E7F1EB; /* карточка «Палитра» тона фона не даёт — не тронуто */

  /* Янтарь — ARM-стадия, внимание. Карточка «Палитра»: сигнал «внимание». */
  --amber: #B45309;
  --amber-soft: #F6ECDB; /* карточка «Палитра» тона фона не даёт — не тронуто */

  /* Красные чернила — ошибки, отрицательное. Карточка «Палитра»: сигнал «плохо». */
  --red-ink: #B91C1C;

  /* ИИ-маркер → нейтраль-серый (кит §10; --violet-* сохранены как имена) */
  --violet-ink:  #8A9099;
  --violet-soft: #F6F7F9;

  /* Нейтральная шкала — холодные серые «Модулей» (перекрашивают всё,
     что ссылается на --gray-*). */
  --gray-0:   #FFFFFF;
  --gray-50:  #F6F7F9;
  --gray-75:  #F2F4F6;
  --gray-100: #F0F2F4;
  --gray-150: #E7EAEE;
  --gray-200: #E0E4E8;
  --gray-400: #A2A8B0;
  --gray-500: #565C64;
  --gray-900: #14161B;

  /* Бренд/шапка — светлая (шапка «Модулей» на --sheet).
     --brand-dark-* repoint на холодные тона, чтобы base.css не протёк. */
  --brand-accent:        #6E3A78;
  --brand-accent-strong: #522A5A;
  --brand-accent-soft:   #F6F0F7;
  --brand-dark:          #FFFFFF;
  --brand-dark-text:     #111827;
  --brand-dark-muted:    #6B7280;
  --brand-dark-hover:    rgba(0,0,0,.05);
  --brand-subnav-bg:     var(--paper);
  --brand-subnav-text:   var(--ink-soft);

  /* Статусные пары — канон «Модулей» */
  --green-bg:  #E7F1EB;  --green-text:  #1E7A46;
  --red-bg:    #F7E7E5;  --red-text:    #B3261E;
  --yellow-bg: #F6ECDB;  --yellow-text: #B26A00;
  --purple-bg: #F6F0F7;  --purple-text: #6E3A78;
  /* Синего в каноне нет — нейтраль */
  --blue-bg:   #F0F2F4;  --blue-text:   #565C64;

  /* Типографика — Golos Text + IBM Plex Mono (волна 1: Manrope снят из ролей,
     звено @font-face оставлено — см. комментарий у блока шрифтов выше) */
  --font-ui:    "Golos Text",    "Segoe UI", Arial, sans-serif;
  /* ПРОБА 22.09 (решение Ильи «оставляем только Golos Text»): моно подменён
     обычным шрифтом одной строкой. Откат — вернуть прежнее значение:
     "IBM Plex Mono", ui-monospace, Consolas, monospace */
  --font-mono:  "Golos Text",    "Segoe UI", Arial, sans-serif;
  /* --font-serif: переменная сохранена — держат компоненты активной вкладки
     и строки ИТОГ; курсив ИТОГ — faux-italic (у Golos Text тоже нет italic). */
  --font-serif: "Golos Text",    "Segoe UI", Arial, sans-serif;

  /* --fs-13 — основной размер тела по карточке «Типографика» (13.5px, было 13). */
  --fs-11: 11px; --fs-12: 12px; --fs-13: 13.5px;
  --fs-14: 14px; --fs-16: 16px; --fs-20: 20px;

  /* Отступы — шкала на 4px. Карточка «Отступы» подтверждает 4/8/12/16/20/24
     (уже совпадают); промежуточные 6/10/14/18 карточки в этом наборе не
     заведены — та же роль уже закрыта w2-шкалой --space-* (вне волны). */
  --sp-2: 2px; --sp-4: 4px; --sp-8: 8px; --sp-12: 12px; --sp-16: 16px;
  --sp-20: 20px; --sp-24: 24px; --sp-28: 28px; --sp-36: 36px;

  /* Радиусы — карточка «Размеры каркаса»: модуль 10, элементы 8, сегмент 6.
     Нулевого радиуса в стандарте нет вовсе (было 0/0/0 — канон «Модули»). */
  --radius-1: 6px; --radius-2: 8px; --radius-3: 10px; --radius-pill: 999px;

  /* Тень листа — карточка «Палитра»: «тень появляется у модуля». --shadow-1
     подключён (components.css): .module, .table-mod и «обычная белая кнопка»
     шапки экрана (.btn с тенью) читают его через box-shadow. --shadow-2 пока
     объявлен и не читается ни одним компонентом. */
  --shadow-1: 0 1px 2px rgba(16,24,40,.06), 0 1px 3px rgba(16,24,40,.04);
  --shadow-2: 0 1px 2px rgba(16,24,40,.06), 0 1px 3px rgba(16,24,40,.04);

  /* Z-слои */
  --z-raised: 10; --z-sticky: 50; --z-dropdown: 100; --z-panel: 200;
  --z-overlay: 900; --z-modal: 1000; --z-toast: 1100;

  /* Длительности анимаций */
  --dur-1: 100ms; --dur-2: 150ms; --dur-3: 250ms;

  /* Каркасные константы — карточка «Размеры каркаса» */
  --header-h: 56px;       /* верхнее меню (было 54px) */
  --subnav-h: 40px;
  --chrome-h: var(--header-h);
  --subnav-left-w: 190px;
  --sidebar-w: 216px;     /* левое меню (было 220px) */
  --chat-w: 360px;        /* панель помощника (было clamp(300px, 26vw, 420px)) */
  --control-h: 36px;      /* высота управляющего элемента (было 33px) */
  --row-h-compact: 28px;  /* карточка «Отступы и высоты» такую роль не даёт — не тронуто */
  --row-h-normal: 44px;   /* строка таблицы (было 34px) */
  /* 44 = вкладка 40 (зона нажатия крестика, паспорт 3.9.3) + 4 поля сверху.
     До 05.09 было 34: зона 40 на 40 в такую полосу не влезала, нижний край
     обрезала лента (замер живьём: точка на 15 ниже центра ловила полосу,
     а не крестик). */
  --opendocs-h: 44px;

  /* ── Ярус 2. Семантические роли ────────────────────────────────────── */

  /* Поверхности */
  --bg:           var(--paper);
  --panel:        var(--sheet);
  --line:         var(--rule);
  /* Волна 1, доводка (08.09): сведено к «наведению» стандарта — одна заливка
     hover на весь экран (было #F0F2F4, старая отдельная от --row-hover-bg). */
  --hover-bg:     var(--row-hover-bg);
  --row-hover-bg: #F8FAFC; /* наведение: строка под курсором (было #F6F7F9) */
  --thead-bg:     var(--sub); /* подложка: шапка таблицы, низ модуля (было var(--paper)) */
  --subnav-bg:    var(--brand-subnav-bg);
  --subnav-text:  var(--brand-subnav-text);

  /* Текст */
  --text:        var(--ink);
  --text-muted:  var(--ink-soft);
  --text-faint:  var(--ink-faint);
  --text-invert: var(--sheet);

  /* Акцент и фокус-кольцо */
  --accent:        var(--wax);
  --accent-strong: var(--wax-dark);
  --accent-soft:   var(--wax-soft);
  --focus-ring: 2px solid var(--wax);

  /* Состояния */
  --ok:      var(--ledger-green); --ok-bg:      var(--ledger-green-soft);
  --danger:  var(--red-ink);      --danger-bg:  var(--red-bg);
  --warn:    var(--amber);        --warn-bg:    var(--amber-soft);
  --info:    var(--ink-soft);     --info-bg:    var(--blue-bg);
  /* «Выключено» = #6B7280 в карточке «Палитра» — это значение --ink-soft
     (не --ink-faint) после волны 1, поэтому алиас репойнтнут. */
  --neutral: var(--ink-soft);    --neutral-bg: var(--gray-100);

  /* Правила финсистемы */
  --confirm-arm:    var(--amber);        --confirm-arm-bg:    var(--amber-soft);
  --confirm-commit: var(--ledger-green); --confirm-commit-bg: var(--ledger-green-soft);
  --mark-ai:        var(--violet-ink);   --mark-ai-bg:        var(--violet-soft);
  /* --mark-human: синего нет → нейтральный */
  --mark-human:     var(--ink-soft);     --mark-human-bg:     var(--gray-100);

  /* Заглушка цены «нет прав» */
  --price-hidden:    var(--ink-faint);
  --price-hidden-bg: var(--gray-100);

  /* Ошибка поля формы — семантический алиас, ссылается на --red-ink */
  --error-field: var(--red-ink);

  /* ── Ярус 3. Маппинг на переменные Bootstrap ─────────────────────────
     Bootstrap берёт вид из наших токенов; tokens.css подключён после
     bootstrap.min.css, поэтому эти :root-значения переопределяют
     библиотечные. */

  --bs-body-bg:          var(--bg);
  --bs-body-color:       var(--text);
  --bs-body-font-family: var(--font-ui);
  /* Волна 1, доводка (08.09): карточка «Типографика» стандарта задаёт
     13.5px/1.4 для основного текста ЯВНО (было 1rem=16px/normal — замер
     Ревизора показал живой body на этих старых браузерных дефолтах).
     Компоненты по-прежнему могут задавать свой размер локально —
     это лишь новый базовый дефолт для неунаследованного текста. */
  --bs-body-font-size:   var(--fs-13);
  --bs-body-line-height: 1.4;
  --bs-border-color:     var(--line);
  --bs-border-radius:    var(--radius-2);
  --bs-border-radius-sm: var(--radius-1);
  --bs-border-radius-lg: var(--radius-3);
  --bs-border-radius-pill: var(--radius-pill);
  --bs-link-color:       var(--accent);
  --bs-link-hover-color: var(--accent-strong);
  /* reboot красит ссылки через rgb-триплеты — пересчитано под акцент-фиолет #6E3A78 */
  --bs-link-color-rgb:       110, 58, 120;
  --bs-link-hover-color-rgb: 82, 42, 90;
  --bs-emphasis-color:   var(--text);
  --bs-secondary-color:  var(--text-muted);
  --bs-tertiary-color:   var(--text-faint);
  --bs-heading-color:    inherit;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Канон «Модули» w2 — расширение (ШАГ 0, аддитивно, 2026-08-14)
   Источник: inbox/_ves_design/moduli-kit-claude-design/_ds/.../tokens/
   Объявлены как НОВЫЕ имена. Существующий код на них не ссылается.
   КОНФЛИКТНЫЕ имена НЕ включены:
     --gray-*   (наши значения отличаются; задание запрещает)
     --font-mono (имя занято нашим стеком)
     --text-muted, --text-faint, --accent (имена заняты нашим ярусом 2)

   Волна 1, добор (08.09): цветовая семантика w2 (текст, поверхности, кромки,
   сигнальные примитивы) repoint-нута на токены яруса 1 по роли; имена
   w2-токенов сохранены — подробности см. docs/journal.md.
   ═══════════════════════════════════════════════════════════════════════════ */

:root {

  /* ── Цвета: чернильная шкала (ink-900..ink-350) ────────────────────── */
  --ink-900: #14161B;
  --ink-800: #3F454D;
  --ink-750: #4A5057;
  --ink-700: #565C64;
  --ink-650: #6A7079;
  --ink-600: #828992;
  --ink-550: #8A9099;
  --ink-500: #A2A8B0;
  --ink-400: #AFB5BC;
  --ink-350: #C3C8CE;

  /* ── Цвета: акцент-баклажан (plum) ─────────────────────────────────── */
  --plum-700: #522A5A;
  --plum-500: #6E3A78;
  --plum-200: #DCC9E0;
  --plum-100: #ECE1EE;
  --plum-050: #F6F0F7;

  /* ── Цвета: сигнальные примитивы ────────────────────────────────────── */
  /* Волна 1, добор (08.09): сигнальные примитивы repoint-нуты на сигналы
     стандарта (плохо/внимание/хорошо) — подробности см. docs/journal.md. */
  --red-600:   var(--red-ink);
  --red-300:   #D9AEA9;
  --red-200:   #E8C9C5;
  --red-100:   #F7E7E5;
  --red-050:   #FCF3F2;
  --amber-700: var(--amber);
  --green-700: var(--ledger-green);
  --slate-600: #5A5F66;

  /* ── Цвета: семантика текста ─────────────────────────────────────────── */
  /* --text-muted и --text-faint пропущены — имена заняты нашим ярусом 2.
     Волна 1, добор (08.09): repoint на ярус 1 по роли — см. docs/journal.md. */
  --text-data:        var(--ink);
  --text-heading:     var(--ink);
  --text-body:        var(--ink-body);
  --text-secondary:   var(--ink-soft);
  --text-tertiary:    var(--ink-soft);
  --text-label:       var(--ink-soft);
  --text-placeholder: var(--ink-faint);
  --text-on-accent:   #FFFFFF;
  --text-disabled:    var(--ink-faint);

  /* ── Цвета: семантика поверхностей ──────────────────────────────────── */
  /* Волна 1, добор (08.09): семантика поверхностей repoint-нута на ярус 1
     по роли — подробности см. docs/journal.md. */
  --surface-canvas:   var(--paper);
  --surface-module:   var(--sheet);
  --surface-inset:    var(--sub);
  --surface-hover:    var(--row-hover-bg);
  --surface-selected: var(--wax-soft);
  --surface-disabled: var(--sub);
  --surface-error:    var(--red-050);
  /* Заливки кнопки удаления (канон §04, решение Ильи 2026-09-01: удаление
     красится бледно-розовым, а не нейтралью). --surface-danger — спокойная
     кнопка «Удалить»; --surface-danger-strong — стадия подтверждения, гуще:
     два одинаковых розовых пятна подряд не читаются как разные шаги. */
  --surface-danger:        var(--red-050);
  --surface-danger-strong: var(--red-100);
  --surface-tab-idle: var(--tab-idle);
  --surface-overlay:  rgba(20, 22, 27, .55);

  /* ── Цвета: семантика кромок ─────────────────────────────────────────── */
  /* Волна 1, добор (08.09): семантика кромок repoint-нута на ярус 1 по роли
     — подробности см. docs/journal.md. */
  --edge-module:  var(--rule);
  --edge-field:   var(--rule);
  --edge-row:     var(--rule-soft);
  --edge-strong:  var(--ink);
  --edge-control: var(--ink-soft);
  --edge-firm:    var(--rule-strong);
  --edge-accent:  var(--plum-200);
  --edge-focus:   var(--plum-500);
  --edge-error:   var(--red-600);
  --edge-danger-soft: var(--red-200);
  --edge-danger:      var(--red-300);

  /* ── Цвета: акцент-действия (kit) ───────────────────────────────────── */
  /* --accent пропущен — имя занято нашим ярусом 2 (var(--wax)) */
  --accent-press: var(--plum-700);
  --accent-edge:  var(--plum-200);
  --accent-tint:  var(--plum-050);

  /* ── Цвета: активный сегмент (.seg-ctrl-item.is-active).
     --seg-active-bg = #ECE1EE (--plum-100): заливка активного сегмента.
     Кромка рядом с заливкой — --edge-field (не отдельный токен). */
  --seg-active-bg:   var(--plum-100);

  /* ── Цвета: сигналы (данные, тренды, критичность) ───────────────────── */
  --signal-critical: var(--red-600);
  --signal-warning:  var(--amber-700);
  --signal-ok:       var(--green-700);
  --signal-medium:   var(--slate-600);
  --signal-info:     var(--ink-550);
  --signal-neutral:  var(--ink-550);

  /* ── Цвета: графики ──────────────────────────────────────────────────── */
  --chart-line:       var(--ink-900);
  --chart-compare:    var(--ink-500);
  --chart-bar:        var(--gray-400);
  --chart-bar-active: var(--accent);
  --chart-grid:       var(--gray-100);
  --chart-axis:       var(--gray-200);
  --chart-track:      var(--gray-100);

  /* ── Цвета: заглушки загрузки ────────────────────────────────────────── */
  --skeleton-strong: var(--gray-200);
  --skeleton-weak:   var(--gray-50);

  /* ── Цвета: печать ───────────────────────────────────────────────────── */
  --print-ink:  #000000;
  --print-hair: var(--rule-strong);
  --print-rule: #000000;

  /* ── Типографика: шрифтовые семейства (kit) ──────────────────────────── */
  /* --font-mono пропущен — имя занято нашим стеком фолбэков.
     --font-sans волной 1 явно репойнтнут на Golos Text (задание называет его
     по имени, наравне с --font-ui/--font-serif) — остальной w2-блок (кегли,
     цвета, отступы «Кита») не тронут, это отдельный слой вне периметра волны. */
  --font-sans: 'Golos Text', -apple-system, 'Segoe UI', sans-serif;

  /* ── Типографика: кегли ──────────────────────────────────────────────── */
  --size-screen-title: 22px;
  --size-dialog-title: 15px;
  --size-metric:       21px;
  --size-metric-sm:    15px;
  --size-module-title: 13px;
  --size-field-value:  13px;
  --size-row-title:    12.5px;
  --size-body:         12px;
  --size-secondary:    11.5px;
  --size-control:      11.5px;
  --size-small:        11px;
  --size-meta:         10.5px;
  --size-label:        9.5px;
  --size-micro:        10px;
  --size-tag:          9px;

  /* ── Типографика: начертания ─────────────────────────────────────────── */
  --weight-regular:  400;
  --weight-medium:   500;
  --weight-semibold: 600;
  --weight-bold:     700;

  /* ── Типографика: межбуквенное (трекинг) ─────────────────────────────── */
  /* Волна 1, доводка (08.09): карточка «Типографика» стандарта — заголовок
     экрана −0.02em (было −.045em, замер Ревизора живьём −0.99px). */
  --track-screen-title: -.02em;
  --track-module-title: -.03em;
  --track-metric:       -.03em;
  --track-row-title:    -.02em;
  --track-label:        .12em;
  --track-tag:          .1em;
  --track-eyebrow:      .14em;
  --track-total:        .06em;

  /* ── Типографика: интерлиньяж ────────────────────────────────────────── */
  --leading-flat:  1;
  --leading-value: 1.2;
  --leading-tight: 1.35;
  --leading-row:   1.4;
  --leading-text:  1.6;
  --leading-prose: 1.65;
  --leading-meta:  1.7;
  /* Новый токен — волна 1, доводка (08.09): карточка «Типографика» задаёт
     заголовку экрана СВОЙ межстрочный 1.15, отдельно от --leading-flat (1),
     который делят остальные --type-* (module-title/control/label/meta/tag…) —
     их роль флэт-строки не тронута, менять общий --leading-flat нельзя. */
  --leading-screen-title: 1.15;

  /* ── Типографика: готовые сокращения ─────────────────────────────────── */
  --type-screen-title:  var(--weight-semibold) var(--size-screen-title)/var(--leading-screen-title) var(--font-sans);
  --type-module-title:  var(--weight-medium)   var(--size-module-title)/var(--leading-flat) var(--font-sans);
  --type-row-title:     var(--weight-medium)   var(--size-row-title)/var(--leading-row)     var(--font-sans);
  --type-body:          var(--weight-regular)  var(--size-body)/var(--leading-text)         var(--font-sans);
  --type-control:       var(--weight-medium)   var(--size-control)/var(--leading-flat)      var(--font-sans);
  --type-inline-action: var(--weight-regular)  var(--size-small)/var(--leading-flat)        var(--font-sans);
  --type-metric:        var(--weight-medium)   var(--size-metric)/var(--leading-flat)       var(--font-mono);
  --type-metric-sm:     var(--weight-medium)   var(--size-metric-sm)/var(--leading-flat)    var(--font-mono);
  --type-cell-value:    var(--weight-medium)   var(--size-row-title)/var(--leading-value)   var(--font-mono);
  --type-label:         var(--weight-regular)  var(--size-label)/var(--leading-flat)        var(--font-mono);
  --type-meta:          var(--weight-regular)  var(--size-meta)/var(--leading-flat)         var(--font-mono);
  --type-tag:           var(--weight-regular)  var(--size-tag)/var(--leading-flat)          var(--font-mono);

  /* ── Отступы: базовая шкала ──────────────────────────────────────────── */
  --space-hair: 1px;
  --space-1:    5px;
  --space-2:    7px;
  --space-3:    9px;
  --space-4:    11px;
  --space-5:    12px;
  --space-6:    14px;
  --space-7:    16px;
  --space-8:    18px;
  --space-9:    20px;
  --space-10:   22px;
  --space-11:   26px;
  --space-12:   30px;
  --space-13:   36px;

  /* ── Отступы: компонент «Модуль» ─────────────────────────────────────── */
  --module-pad-y:      16px;
  --module-pad-x:      18px;
  --module-pad-y-wide: 24px;
  --module-pad-x-wide: 30px;
  --module-gap:        16px;
  --module-tile-gap:   1px;

  /* ── Отступы: экран ──────────────────────────────────────────────────── */
  --screen-pad: 20px;
  --screen-gap: 16px;

  /* ── Отступы: строки и таблицы ───────────────────────────────────────── */
  --row-pad-y:        11px;
  --row-height:       44px;
  --table-head-pad-b: 11px;

  /* ── Отступы: поля формы ─────────────────────────────────────────────── */
  --field-pad-b:    8px;
  --field-label-gap: 9px;

  /* ── Отступы: кнопки ─────────────────────────────────────────────────── */
  /* --btn-h — высота обычной кнопки, карточка «Кнопки», волна 4 (решение
     Ильи 22.09). Своя карта, не --control-h (та держит высоту полей ввода) —
     числа сейчас совпадают, но раздел 3.9.3 паспорта уже разводил их однажды. */
  --btn-h:            36px;
  --btn-pad-y:        9px;
  --btn-pad-x:        15px;
  --btn-inline-pad-y: 8px;
  --btn-inline-pad-x: 13px;
  --seg-pad-y:        9px;
  --btn-chip-pad-y:   6px;
  --btn-chip-pad-x:   10px;
  --btn-tab-pad-y:    10px;
  --btn-tab-pad-x:    13px;

  /* ── Отступы: управляющие элементы ──────────────────────────────────── */
  --control-checkbox:    13px;
  --control-radio:       11px;
  --control-switch-w:    32px;
  --control-switch-h:    16px;
  --control-switch-knob: 10px;
  --control-dot:         6px;
  --control-dot-sm:      5px;
  --control-dot-lg:      7px;

  /* ── Каркас окна: новые имена (kit) ──────────────────────────────────── */
  /* --topnav-height: 52px (кит); наш --header-h: 54px сохранён без изменений */
  --topnav-height:        52px;
  --sidenav-width:        206px;
  --sidenav-width-narrow: 172px;
  --assistant-width:      400px;
  --assistant-width-narrow: 316px;
  --assistant-spine:      44px;
  --toast-width:          340px;
  --dialog-width:         390px;
  --tab-max-width:        104px;

  /* ── Геометрия: радиусы ──────────────────────────────────────────────── */
  --radius-none: 0;
  --radius-dot:  50%;

  /* ── Геометрия: кромки и линии ───────────────────────────────────────── */
  --border-hair:    1px;
  --edge:           1px solid var(--edge-module);
  --edge-inset:     1px solid var(--edge-field);
  --rule-row:       1px solid var(--edge-row);
  --rule-head:      1px solid var(--edge-strong);
  --shadow-none:    none;

  /* ── Геометрия: декоративные линии и маркеры ─────────────────────────── */
  --underline-active:  inset 0 -1px 0 var(--accent);
  --underline-nav:     inset 0 -2px 0 var(--accent);
  --mark-active-left:  inset 2px 0 0 var(--accent);

  /* ── Геометрия: анимация ─────────────────────────────────────────────── */
  --motion-none:    none;
  --motion-instant: 0ms;

  /* ── Навигация: hover-заливка §25 ──────────────────────────────────── */
  --nav-hover: #EADDEC;

}
