/* Операционный зал — токены облика. Тема по умолчанию — «Зал» (тёмная). Контейнер листа получает data-theme="list". */
:root, [data-theme="zal"] {
  --surface-app: #0D1117;
  --surface-panel: #141A22;
  --surface-raised: #1B222C;
  --surface-selected: #243040;
  --surface-rail: #080B10;
  --surface-desk: #07090D;
  --line: rgba(255,255,255,.07);
  --line-strong: rgba(255,255,255,.15);
  --text: #E8ECF2;
  --text-muted: #9AA6B6;
  --text-faint: #7A8696;
  --accent: #4C9DFF;
  --accent-solid: #2A72D8;
  --accent-wash: rgba(76,157,255,.14);
  --on-accent: #FFFFFF;
  --ok: #41B883;
  --warn: #E6A83E;
  --danger: #F26D6D;
  --warn-wash: rgba(230,168,62,.13);
  --danger-wash: rgba(242,109,109,.13);
  --on-mark: #0B0E13;
  --cat-1: #4FA8E0;
  --cat-2: #D3A544;
  --cat-3: #2FB8A9;
  --cat-4: #A080EC;
  --cat-5: #7F90F2;
  --brand-mark: #FF4B5C;
  --shadow-float: 0 0 0 1px rgba(255,255,255,.09), 0 12px 32px rgba(0,0,0,.55);
  --shadow-sheet: 0 0 0 1px rgba(0,0,0,.4), 0 24px 64px rgba(0,0,0,.55);
}
[data-theme="svet"] {
  --surface-app: #ECEFF3;
  --surface-panel: #FFFFFF;
  --surface-raised: #F2F4F7;
  --surface-selected: #DCE7F7;
  --surface-rail: #080B10;
  --surface-desk: #07090D;
  --line: rgba(15,23,35,.10);
  --line-strong: rgba(15,23,35,.24);
  --text: #121820;
  --text-muted: #4F5B6B;
  --text-faint: #687484;
  --accent: #1D6BD0;
  --accent-solid: #1D6BD0;
  --accent-wash: rgba(29,107,208,.10);
  --on-accent: #FFFFFF;
  --ok: #1C7A4B;
  --warn: #946000;
  --danger: #C23B3B;
  --warn-wash: rgba(148,96,0,.10);
  --danger-wash: rgba(194,59,59,.09);
  --on-mark: #FFFFFF;
  --cat-1: #1F78B8;
  --cat-2: #94700F;
  --cat-3: #0E8478;
  --cat-4: #6F4FC9;
  --cat-5: #4A5BD0;
  --brand-mark: #FF4B5C;
  --shadow-float: 0 0 0 1px rgba(15,23,35,.12), 0 12px 32px rgba(15,23,35,.18);
  --shadow-sheet: 0 0 0 1px rgba(0,0,0,.4), 0 24px 64px rgba(0,0,0,.55);
}
[data-theme="list"] {
  --surface-app: #FCFBF8;
  --surface-panel: #FCFBF8;
  --surface-raised: #F3F1EB;
  --surface-selected: #E9E5DA;
  --surface-rail: #080B10;
  --surface-desk: #07090D;
  --line: rgba(23,26,31,.12);
  --line-strong: rgba(23,26,31,.28);
  --text: #171A1F;
  --text-muted: #545B66;
  --text-faint: #6B727D;
  --accent: #0B5CC4;
  --accent-solid: #0B5CC4;
  --accent-wash: rgba(11,92,196,.08);
  --on-accent: #FFFFFF;
  --ok: #17714A;
  --warn: #8A5A00;
  --danger: #B3261E;
  --warn-wash: rgba(138,90,0,.08);
  --danger-wash: rgba(179,38,30,.07);
  --on-mark: #FFFFFF;
  --cat-1: #1F78B8;
  --cat-2: #94700F;
  --cat-3: #0E8478;
  --cat-4: #6F4FC9;
  --cat-5: #4A5BD0;
  --brand-mark: #FF4B5C;
  --shadow-float: 0 0 0 1px rgba(23,26,31,.12), 0 12px 32px rgba(15,23,35,.18);
  --shadow-sheet: 0 0 0 1px rgba(0,0,0,.4), 0 24px 64px rgba(0,0,0,.55);
}
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --radius-sheet: 2px;
  --radius-chip: 3px;
  --radius-control: 4px;
  --radius-pill: 12px;
  --rail-width: 48px;
  --topbar-height: 40px;
  --statusbar-height: 24px;
  --route-width: 272px;
  --queue-width: 340px;
  --card-width: 360px;
  --decision-width: 400px;
  --sheet-width: 880px;
  --control-height: 28px;
  --decision-height: 36px;
  --row-height: 40px;
  --row-height-dense: 28px;
  --font-sans: "IBM Plex Sans", system-ui, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, monospace;
  --font-serif: "IBM Plex Serif", Georgia, serif;
}
/* Инструмент — sans */
.t-title { font-family: var(--font-sans); font-size: 22px; line-height: 28px; font-weight: 600; }
.t-heading { font-family: var(--font-sans); font-size: 16px; line-height: 22px; font-weight: 600; }
.t-label { font-family: var(--font-sans); font-size: 13px; line-height: 18px; font-weight: 500; }
.t-body { font-family: var(--font-sans); font-size: 13px; line-height: 18px; font-weight: 400; }
.t-small { font-family: var(--font-sans); font-size: 12px; line-height: 16px; font-weight: 400; }
/* Счёт и рубрики — mono */
.t-rubric { font-family: var(--font-mono); font-size: 11px; line-height: 16px; font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; }
.t-count { font-family: var(--font-mono); font-size: 13px; line-height: 18px; font-weight: 400; }
.t-count-lg { font-family: var(--font-mono); font-size: 24px; line-height: 28px; font-weight: 500; }
/* Лист — serif */
.t-verdict { font-family: var(--font-serif); font-size: 32px; line-height: 40px; font-weight: 600; }
.t-doc-lead { font-family: var(--font-serif); font-size: 16px; line-height: 26px; font-weight: 400; }
.t-doc-body { font-family: var(--font-serif); font-size: 15px; line-height: 24px; font-weight: 400; }
.t-proof { font-family: var(--font-serif); font-size: 14px; line-height: 22px; font-weight: 400; font-style: italic; }
/* Показ — sans */
.t-show-title { font-family: var(--font-sans); font-size: 28px; line-height: 36px; font-weight: 600; }
.t-show-body { font-family: var(--font-sans); font-size: 16px; line-height: 24px; font-weight: 400; }
.t-show-small { font-family: var(--font-sans); font-size: 14px; line-height: 20px; font-weight: 400; }
