/* Дизайн-токены vesquadra — канон «Ведомость» (блок 1, 2026-08-03).
   Три яруса: 1 — базовые шкалы (бумажная палитра «Ведомости» + PT-шрифты);
   2 — семантические роли (repoint на канон); 3 — маппинг на Bootstrap.

   @font-face объявлены в начале: шрифты грузятся рано, до каскада компонентов.
   Пути относительные от этого файла → ../fonts/. */

/* ── Шрифты ────────────────────────────────────────────────────────────── */

@font-face {
  font-family: "PT Serif";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/pt-serif-400.woff2") format("woff2");
}

@font-face {
  font-family: "PT Serif";
  font-weight: 400;
  font-style: italic;
  font-display: swap;
  src: url("../fonts/pt-serif-400i.woff2") format("woff2");
}

@font-face {
  font-family: "PT Serif";
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/pt-serif-700.woff2") format("woff2");
}

@font-face {
  /* Bold italic — итоговая строка ведомость-таблицы (table.ledger, ИТОГ) */
  font-family: "PT Serif";
  font-weight: 700;
  font-style: italic;
  font-display: swap;
  src: url("../fonts/pt-serif-700i.woff2") format("woff2");
}

@font-face {
  font-family: "PT Sans";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/pt-sans-400.woff2") format("woff2");
}

@font-face {
  font-family: "PT Sans";
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/pt-sans-700.woff2") format("woff2");
}

@font-face {
  font-family: "PT Mono";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/pt-mono-400.woff2") format("woff2");
}

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

  /* Палитра «Ведомости» (ярус 1 — канонические цвета) */
  --paper: #faf9f6;
  --sheet: #fffefb;
  --ink: #221e15;
  --ink-soft: #55503f;
  --ink-faint: #9b947e;
  --rule: #e2dccb;
  --rule-strong: #c9c1aa;

  /* Сургуч — акцент действий */
  --wax: #9e2b25;
  --wax-dark: #7c211c;
  --wax-soft: #f6e8e6;

  /* Бух-зелень — положительное, «проведено» */
  --ledger-green: #1e6b45;
  --ledger-green-soft: #e4f1e9;

  /* Янтарь — ARM-стадия, внимание */
  --amber: #96660a;
  --amber-soft: #f7ecd3;

  /* Красные чернила — ошибки, отрицательное */
  --red-ink: #b3261e;

  /* Фиолетовые чернила — рука помощника */
  --violet-ink: #5f3dc4;
  --violet-soft: #efeafb;

  /* Нейтральная шкала — тёплые бумажные эквиваленты (перекрашивают всё,
     что ссылается на --gray-*; значения синхронизированы с канонической
     палитрой через hex-эквиваленты «Ведомости»). */
  --gray-0:   #fffefb;
  --gray-50:  #f7f4ec;
  --gray-75:  #faf9f6;
  --gray-100: #f2eee2;
  --gray-150: #efe9db;
  --gray-200: #e2dccb;
  --gray-400: #9b947e;
  --gray-500: #55503f;
  --gray-900: #221e15;

  /* Бренд/шапка — светлая (шапка «Ведомости» на --sheet, не тёмная).
     --brand-dark-* repoint на бумажные тона, чтобы base.css не протёк. */
  --brand-accent:        #9e2b25;
  --brand-accent-strong: #7c211c;
  --brand-accent-soft:   #f6e8e6;
  --brand-dark:          #fffefb;       /* был тёмно-синий; теперь лист-фон */
  --brand-dark-text:     #221e15;       /* был светло-серый; теперь чернила */
  --brand-dark-muted:    #55503f;       /* был приглушённый свет; теперь ink-soft */
  --brand-dark-hover:    rgba(0,0,0,.05);
  --brand-subnav-bg:     #faf9f6;       /* бумага */
  --brand-subnav-text:   #55503f;

  /* Статусные пары — канон «Ведомости» */
  --green-bg:  #e4f1e9;  --green-text:  #1e6b45;
  --red-bg:    #f8e9e7;  --red-text:    #b3261e;
  --yellow-bg: #f7ecd3;  --yellow-text: #96660a;
  --purple-bg: #efeafb;  --purple-text: #5f3dc4;
  /* Синего в каноне нет — нейтраль/чернила */
  --blue-bg:   #eee9dc;  --blue-text:   #55503f;

  /* Типографика — PT-семейство */
  --font-ui:    "PT Sans",  "Segoe UI", Arial, sans-serif;
  --font-mono:  "PT Mono",  ui-monospace, Consolas, monospace;
  --font-serif: "PT Serif", Georgia, serif;

  --fs-11: 11px; --fs-12: 12px; --fs-13: 13px;
  --fs-14: 14px; --fs-16: 16px; --fs-20: 20px;

  /* Отступы — шкала на 4px */
  --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;

  /* Радиусы — канон «Ведомости» строгие (малые) */
  --radius-1: 2px; --radius-2: 2px; --radius-3: 2px; --radius-pill: 999px;

  /* Тени убраны: канон «Ведомости» использует линии вместо теней.
     Модалка/дропдаун/чат-панель получают border 1px solid var(--line)
     в своих правилах (см. base.css). */
  --shadow-1: none;
  --shadow-2: none;

  /* 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: 54px;       /* светлая шапка чуть выше: baseline из d.css */
  --subnav-h: 40px;
  --chrome-h: var(--header-h);
  --subnav-left-w: 190px;
  --sidebar-w: 220px;
  --chat-w: clamp(300px, 26vw, 420px);
  --control-h: 33px;      /* высота кнопок по d.css */
  --row-h-compact: 28px;
  --row-h-normal: 34px;
  --opendocs-h: 34px;

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

  /* Поверхности */
  --bg:           var(--paper);
  --panel:        var(--sheet);
  --line:         var(--rule);
  --hover-bg:     #f2eee2;
  --row-hover-bg: #f7f4ec;
  --thead-bg:     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);
  --neutral: var(--ink-faint);   --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);

  /* ── Ярус 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);
  /* body остаётся на браузерных 16px: компоненты задают свой размер локально
     (базовый 13px — правило шкалы Kit); Bootstrap-дефолт 1rem не переопределяем. */
  --bs-body-font-size:   1rem;
  --bs-body-line-height: normal;
  --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-триплеты — пересчитано под сургуч #9e2b25 */
  --bs-link-color-rgb:       158, 43, 37;
  --bs-link-hover-color-rgb: 124, 33, 28;
  --bs-emphasis-color:   var(--text);
  --bs-secondary-color:  var(--text-muted);
  --bs-tertiary-color:   var(--text-faint);
  --bs-heading-color:    inherit;
}
