/* Значения системы: цвета, кегли, отступы, плотность, темы, пары шрифтов.
   Все величины живут здесь; компоненты пользуются именами, а не значениями.
   Литерал цвета вне этого файла — дефект (05, раздел 2).

   Тем пять. «Панель» светлая — блок `:root, [data-theme="light"]`, каждая
   другая тема — блок `[data-theme="…"]` поверх неё. Атрибут стоит на <html>,
   а в мини-превью блока «Вид» — на самой карточке: переменные наследуются вниз,
   поэтому каждая тема определяет все имена, которыми пользуется превью. */

/* Шрифты со своего сервера (05, раздел 2.4). Браузер скачивает файл, только
   когда пара выбрана и на странице есть символы из его unicode-range. */

@font-face { font-family: "Geologica"; font-weight: 400; font-display: swap;
    src: url("../fonts/geologica-cyrillic-400-normal.38896bd89d4f.woff2") format("woff2");
    unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "Geologica"; font-weight: 400; font-display: swap;
    src: url("../fonts/geologica-latin-400-normal.d34dbe108fb4.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Geologica"; font-weight: 600; font-display: swap;
    src: url("../fonts/geologica-cyrillic-600-normal.371831e892ab.woff2") format("woff2");
    unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "Geologica"; font-weight: 600; font-display: swap;
    src: url("../fonts/geologica-latin-600-normal.8aa5e42fe7a9.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Golos Text"; font-weight: 400; font-display: swap;
    src: url("../fonts/golos-text-cyrillic-400-normal.a82793f97f91.woff2") format("woff2");
    unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "Golos Text"; font-weight: 400; font-display: swap;
    src: url("../fonts/golos-text-latin-400-normal.4b88b42724af.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Golos Text"; font-weight: 600; font-display: swap;
    src: url("../fonts/golos-text-cyrillic-600-normal.894768c4c711.woff2") format("woff2");
    unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "Golos Text"; font-weight: 600; font-display: swap;
    src: url("../fonts/golos-text-latin-600-normal.2938437410d6.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Manrope"; font-weight: 400; font-display: swap;
    src: url("../fonts/manrope-cyrillic-400-normal.7d1637a696b6.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: 400; font-display: swap;
    src: url("../fonts/manrope-latin-400-normal.1589a53d0b0e.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Manrope"; font-weight: 600; font-display: swap;
    src: url("../fonts/manrope-cyrillic-600-normal.3470ad06386c.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-display: swap;
    src: url("../fonts/manrope-latin-600-normal.58d382c3e448.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Inter"; font-weight: 400; font-display: swap;
    src: url("../fonts/inter-cyrillic-400-normal.74a70a8b71d0.woff2") format("woff2");
    unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "Inter"; font-weight: 400; font-display: swap;
    src: url("../fonts/inter-latin-400-normal.da03732a27e1.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Inter"; font-weight: 600; font-display: swap;
    src: url("../fonts/inter-cyrillic-600-normal.40727edfba55.woff2") format("woff2");
    unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "Inter"; font-weight: 600; font-display: swap;
    src: url("../fonts/inter-latin-600-normal.2ede57db1a3a.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Onest"; font-weight: 400; font-display: swap;
    src: url("../fonts/onest-cyrillic-400-normal.847ffd6992a7.woff2") format("woff2");
    unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "Onest"; font-weight: 400; font-display: swap;
    src: url("../fonts/onest-latin-400-normal.22cb2483abda.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Onest"; font-weight: 600; font-display: swap;
    src: url("../fonts/onest-cyrillic-600-normal.194419e327a6.woff2") format("woff2");
    unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "Onest"; font-weight: 600; font-display: swap;
    src: url("../fonts/onest-latin-600-normal.b50295c22c13.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "IBM Plex Sans"; font-weight: 400; font-display: swap;
    src: url("../fonts/ibm-plex-sans-cyrillic-400-normal.7dec1409f343.woff2") format("woff2");
    unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "IBM Plex Sans"; font-weight: 400; font-display: swap;
    src: url("../fonts/ibm-plex-sans-latin-400-normal.77bc02670657.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "IBM Plex Sans"; font-weight: 600; font-display: swap;
    src: url("../fonts/ibm-plex-sans-cyrillic-600-normal.ff40080a5003.woff2") format("woff2");
    unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "IBM Plex Sans"; font-weight: 600; font-display: swap;
    src: url("../fonts/ibm-plex-sans-latin-600-normal.196e3cbc5fee.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "PT Serif"; font-weight: 400; font-display: swap;
    src: url("../fonts/pt-serif-cyrillic-400-normal.093d7682a4bb.woff2") format("woff2");
    unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "PT Serif"; font-weight: 400; font-display: swap;
    src: url("../fonts/pt-serif-latin-400-normal.48b1fa647f5c.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "PT Serif"; font-weight: 700; font-display: swap;
    src: url("../fonts/pt-serif-cyrillic-700-normal.0c5cf5874944.woff2") format("woff2");
    unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "PT Serif"; font-weight: 700; font-display: swap;
    src: url("../fonts/pt-serif-latin-700-normal.cd87c62c9c9c.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "PT Sans"; font-weight: 400; font-display: swap;
    src: url("../fonts/pt-sans-cyrillic-400-normal.f2664d403038.woff2") format("woff2");
    unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "PT Sans"; font-weight: 400; font-display: swap;
    src: url("../fonts/pt-sans-latin-400-normal.3f66ddcf744f.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "PT Sans"; font-weight: 700; font-display: swap;
    src: url("../fonts/pt-sans-cyrillic-700-normal.5e1ae1c98141.woff2") format("woff2");
    unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "PT Sans"; font-weight: 700; font-display: swap;
    src: url("../fonts/pt-sans-latin-700-normal.35e5705c45cf.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

/* «Панель» светлая: умолчание и основа всех тем. */
:root, [data-theme="light"] {
    /* Основа */
    --c-bg: #f1f4f8;
    --c-surface: #ffffff;
    --c-surface-2: #f6f8fb;
    --c-chrome: #141c26;
    --c-chrome-2: #1e2a37;
    --c-chrome-3: #2b3a4b;
    --c-chrome-text: #ffffff;
    --c-chrome-text-muted: #aebbcb;

    /* Текст на заливке: основная кнопка и счётчик, опасная кнопка. Свои
       имена, а не текст рамы: в «Реестре» и «Воздухе» рама светлая. */
    --c-on-accent: #ffffff;
    --c-on-danger: #ffffff;

    /* Текст */
    --c-text: #0f172a;
    --c-text-muted: #5a6b80;

    /* Границы */
    --c-line: #e2e8f0;
    --c-line-soft: #eef2f7;
    --c-field-border: #7d8ca1;

    /* Акцент */
    --c-accent: #0e7bc4;
    --c-accent-strong: #0a5f99;
    --c-accent-text: #0b6aa8;
    --c-accent-bg: #e8f3fb;
    --c-focus: #0e7bc4;

    /* Состояния */
    --c-success: #15803d;
    --c-success-bg: #eef8f1;
    --c-warning: #8a5406;
    --c-warning-bg: #fdf8e9;
    --c-error: #b91c1c;
    --c-error-bg: #fdf0f0;
    --c-info: #0b6aa8;
    --c-info-bg: #e8f3fb;

    /* Шкала оценки */
    --c-score-0: #b91c1c;
    --c-score-0-bg: #fdf0f0;
    --c-score-50: #8a5406;
    --c-score-50-bg: #fdf8e9;
    --c-score-100: #15803d;
    --c-score-100-bg: #eef8f1;

    /* Метки блоков */
    --c-block-0: #2f6fd0;
    --c-block-1: #0f8f92;
    --c-block-2: #7b57cf;
    --c-block-3: #c2701c;
    --c-block-4: #2b8a4e;
    --c-block-5: #c04c86;
    --c-block-6: #8494a8;
    /* Фазы звонка в миниатюре хронометража (05, 2.1 и 3.19); пара проверена
       валидатором палитры на --c-surface этой темы. */
    --c-phase-wait: #c04c86;
    --c-phase-talk: #0e7bc4;

    /* Логотип */
    --c-logo-ink: #335780;
    --c-logo-mark: #E30613;

    /* Форма темы: радиусы, кнопка, шапка таблицы, меню, отступы панелей и
       содержимого (05, раздел 2.5). */
    --r-control: 6.5px;
    --r-button: 6.5px;
    --r-panel: 7.5px;
    --btn-pad-x: 14px;
    --th-case: uppercase;
    --panel-pad-y: 12.5px;
    --panel-pad-x: 15px;
    --content-pad: 20px;

    /* Тени */
    --sh-1: 0 1px 2px rgba(15, 23, 42, .05);
    --sh-2: 0 1px 2px rgba(15, 23, 42, .06), 0 8px 24px -14px rgba(15, 23, 42, .28);
}

/* Пара шрифтов по умолчанию — «Системный»: ничего не скачивается. */
:root, [data-font="system"] {
    --font-ui: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", sans-serif;
    --font-head: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", sans-serif;
    --font-num: Consolas, "Cascadia Mono", "SF Mono", ui-monospace, monospace;
}

:root {
    /* Кегли. Умножаются на размер текста --fs (0,85–1,25), который стоит на
       <html>. Высоты и отступы не умножаются: их задаёт плотность. */
    --t-h1: calc(19px * var(--fs, 1));
    --t-h2: calc(14px * var(--fs, 1));
    --t-h3: calc(12px * var(--fs, 1));
    --t-body: calc(15px * var(--fs, 1));
    --t-control: calc(14.5px * var(--fs, 1));
    --t-data: calc(14.5px * var(--fs, 1));
    --t-block: calc(12px * var(--fs, 1));
    --t-num-big: calc(22.5px * var(--fs, 1));
    --t-kpi: calc(30px * var(--fs, 1));
    --t-caption: calc(14px * var(--fs, 1));

    /* Отступы: шаг 2,5 px, значений десять. Значение вне списка — дефект. */
    --s-0: 0;
    --s-1: 2.5px;
    --s-2: 5px;
    --s-3: 7.5px;
    --s-4: 10px;
    --s-5: 12.5px;
    --s-6: 15px;
    --s-7: 20px;
    --s-8: 25px;
    --s-9: 30px;
    --s-10: 40px;

    /* Радиус пилюли одинаков во всех темах; остальные радиусы — форма темы. */
    --r-pill: 999px;

    /* Границы */
    --b-hair: 1px solid var(--c-line-soft);
    --b-line: 1px solid var(--c-line);
    --b-accent: 2px solid var(--c-accent);
    --b-mark: 3px;

    /* Плотность: обычная */
    --d-text: calc(15px * var(--fs, 1));
    --d-data: calc(14.5px * var(--fs, 1));
    --d-row: 30px;
    --d-row-head: 32.5px;
    --d-row-block: 30px;
    --d-cell-x: 10px;
    --d-control: 32.5px;
    --d-topbar: 50px;
    --d-menu-item: 30px;
    --d-menu-width: 237.5px;
    --d-panel-head: 32.5px;
    --d-row-inner-y: 9px;
    --d-row-inner-x: 15px;
    --d-logo: 30px;
}

[data-density="dense"] {
    --d-text: calc(14.5px * var(--fs, 1));
    --d-data: calc(14px * var(--fs, 1));
    --d-row: 25px;
    --d-row-head: 27.5px;
    --d-row-block: 25px;
    --d-cell-x: 7.5px;
    --d-control: 30px;
    --d-topbar: 42.5px;
    --d-menu-item: 27.5px;
    --d-menu-width: 220px;
    --d-panel-head: 27.5px;
    --d-row-inner-y: 7.5px;
    --d-row-inner-x: 12.5px;
    --d-logo: 25px;
}

[data-density="max"] {
    --d-text: calc(14px * var(--fs, 1));
    --d-data: calc(13px * var(--fs, 1));
    --d-row: 21.5px;
    --d-row-head: 24px;
    --d-row-block: 21.5px;
    --d-cell-x: 7.5px;
    /* Ниже 24 px не опускается ни в одном режиме: это правило доступности,
       и оно старше желания уплотнить. После укрупнения шкалы на 25 % самый
       низкий режим даёт 30 px — порог соблюдается с запасом. */
    --d-control: 30px;
    --d-topbar: 37.5px;
    --d-menu-item: 25px;
    --d-menu-width: 205px;
    --d-panel-head: 25px;
    --d-row-inner-y: 6.5px;
    --d-row-inner-x: 12.5px;
    --d-logo: 22.5px;
}

/* Тёмная тема. Оттенок у шкалы оценки, состояний и меток блоков сохраняется:
   меняются светлота и насыщенность, тон — нет. Иначе человек, переключивший
   тему вечером, заново учится читать таблицу. В обычной работе форма
   наследуется от «Панели» светлой; здесь она повторена, чтобы мини-превью
   тёмной темы на странице в другой теме рисовалось своей формой. */
[data-theme="dark"] {
    --c-bg: #0f151c;
    --c-surface: #161e27;
    --c-surface-2: #1d2733;
    --c-chrome: #0a0f15;
    --c-chrome-2: #131b24;
    --c-chrome-3: #22303f;
    --c-chrome-text: #ffffff;
    --c-chrome-text-muted: #a9b8c9;
    --c-on-accent: #ffffff;
    --c-on-danger: #0f151c;
    --c-text: #e8eef6;
    --c-text-muted: #93a3b6;
    --c-line: #2a3745;
    --c-line-soft: #212c38;
    --c-field-border: #66809c;
    --c-accent: #0e7bc4;
    --c-accent-strong: #1a8ad4;
    --c-accent-text: #4ea8e6;
    --c-accent-bg: #12293a;
    --c-focus: #4ea8e6;
    --c-success: #63d094;
    --c-success-bg: #122c1e;
    --c-warning: #e8b25a;
    --c-warning-bg: #33280f;
    --c-error: #f08a8a;
    --c-error-bg: #3a1f22;
    --c-info: #4ea8e6;
    --c-info-bg: #12293a;
    --c-score-0: #f08a8a;
    --c-score-0-bg: #3a1f22;
    --c-score-50: #e8b25a;
    --c-score-50-bg: #33280f;
    --c-score-100: #63d094;
    --c-score-100-bg: #122c1e;
    --c-block-0: #5b93e8;
    --c-block-1: #2bb5b8;
    --c-block-2: #a084e8;
    --c-block-3: #e08a3c;
    --c-block-4: #4cb36e;
    --c-block-5: #e070a6;
    --c-block-6: #9aabc0;
    /* Фазы звонка в миниатюре хронометража (05, 2.1 и 3.19); пара проверена
       валидатором палитры на --c-surface этой темы. */
    --c-phase-wait: #d0609a;
    --c-phase-talk: #3a96da;
    --c-logo-ink: #8fb0d6;
    --c-logo-mark: #ff5a5a;

    --r-control: 6.5px;
    --r-button: 6.5px;
    --r-panel: 7.5px;
    --btn-pad-x: 14px;
    --th-case: uppercase;
    --panel-pad-y: 12.5px;
    --panel-pad-x: 15px;
    --content-pad: 20px;

    /* Тень на тёмном не видна: её место занимает граница. */
    --sh-1: none;
    --sh-2: none;
}

/* «Реестр» из Casebook Loader: чернила на бумаге. Тёплый фон, строгие линии,
   почти без скруглений. Что сдвинуто против оригинала ради контраста —
   05, раздел 2.1а. Метки блоков — как у «Панели» светлой. */
[data-theme="registry"] {
    --c-bg: #f6f3ec;
    --c-surface: #fffdf8;
    --c-surface-2: #faf7f0;
    --c-chrome: #efeadf;
    --c-chrome-2: #efeadf;
    --c-chrome-3: #e7e1d3;
    --c-chrome-text: #1b2130;
    --c-chrome-text-muted: #6e695d;
    --c-on-accent: #fffdf8;
    --c-on-danger: #fffdf8;
    --c-text: #1b2130;
    --c-text-muted: #6a6e78;
    --c-line: #e3ddcf;
    --c-line-soft: #ede8dd;
    --c-field-border: #8f8778;
    --c-accent: #1f3d6b;
    --c-accent-strong: #152c4f;
    --c-accent-text: #1f3d6b;
    --c-accent-bg: #e2e8f2;
    --c-focus: #1f3d6b;
    --c-success: #2f6b45;
    --c-success-bg: #e4efe6;
    --c-warning: #8d5f0f;
    --c-warning-bg: #f5ead3;
    --c-error: #a13a2b;
    --c-error-bg: #f5e2dc;
    --c-info: #1f3d6b;
    --c-info-bg: #e2e8f2;
    --c-score-0: #a13a2b;
    --c-score-0-bg: #f5e2dc;
    --c-score-50: #8d5f0f;
    --c-score-50-bg: #f5ead3;
    --c-score-100: #2f6b45;
    --c-score-100-bg: #e4efe6;
    --c-block-0: #2f6fd0;
    --c-block-1: #0f8f92;
    --c-block-2: #7b57cf;
    --c-block-3: #c2701c;
    --c-block-4: #2b8a4e;
    --c-block-5: #c04c86;
    --c-block-6: #8494a8;
    /* Фазы звонка в миниатюре хронометража (05, 2.1 и 3.19); пара проверена
       валидатором палитры на --c-surface этой темы. */
    --c-phase-wait: #c04c86;
    --c-phase-talk: #2f6fd0;
    --c-logo-ink: #335780;
    --c-logo-mark: #E30613;

    --r-control: 3px;
    --r-button: 3px;
    --r-panel: 3px;
    --btn-pad-x: 14px;
    --th-case: uppercase;
    --panel-pad-y: 17.5px;
    --panel-pad-x: 17.5px;
    --content-pad: 25px;

    --sh-1: none;
    --sh-2: 0 1px 2px rgba(15, 23, 42, .06), 0 8px 24px -14px rgba(15, 23, 42, .28);
}

/* «Диспетчерская» из Casebook Loader: тёмная плотная панель, янтарный акцент.
   Метки блоков и логотип — как у «Панели» тёмной. */
[data-theme="dispatch"] {
    --c-bg: #111317;
    --c-surface: #1a1d23;
    --c-surface-2: #15181d;
    --c-chrome: #0c0e11;
    --c-chrome-2: #0c0e11;
    --c-chrome-3: #1f232a;
    --c-chrome-text: #c9ccd3;
    --c-chrome-text-muted: #747b8a;
    --c-on-accent: #1a1204;
    --c-on-danger: #1a1204;
    --c-text: #e6e8ec;
    --c-text-muted: #8d93a0;
    --c-line: #2a2e36;
    --c-line-soft: #22262e;
    --c-field-border: #6c7280;
    --c-accent: #f2a93b;
    --c-accent-strong: #ffbd5c;
    --c-accent-text: #f2a93b;
    --c-accent-bg: #3a3122;
    --c-focus: #f2a93b;
    --c-success: #4cc38a;
    --c-success-bg: #16301f;
    --c-warning: #e8c547;
    --c-warning-bg: #332c14;
    --c-error: #ff7a6b;
    --c-error-bg: #3a1d1a;
    --c-info: #4ea8e6;
    --c-info-bg: #12293a;
    --c-score-0: #ff7a6b;
    --c-score-0-bg: #3a1d1a;
    --c-score-50: #e8c547;
    --c-score-50-bg: #332c14;
    --c-score-100: #4cc38a;
    --c-score-100-bg: #16301f;
    --c-block-0: #5b93e8;
    --c-block-1: #2bb5b8;
    --c-block-2: #a084e8;
    --c-block-3: #e08a3c;
    --c-block-4: #4cb36e;
    --c-block-5: #e070a6;
    --c-block-6: #9aabc0;
    /* Фазы звонка в миниатюре хронометража (05, 2.1 и 3.19); пара проверена
       валидатором палитры на --c-surface этой темы. */
    --c-phase-wait: #d0609a;
    --c-phase-talk: #3a96da;
    --c-logo-ink: #8fb0d6;
    --c-logo-mark: #ff5a5a;

    --r-control: 6px;
    --r-button: 6px;
    --r-panel: 6px;
    --btn-pad-x: 14px;
    --th-case: none;
    --panel-pad-y: 12.5px;
    --panel-pad-x: 12.5px;
    --content-pad: 15px;

    --sh-1: none;
    --sh-2: none;
}

/* «Воздух» из Casebook Loader: мягкие тени, крупные скругления, кнопки-таблетки.
   Ячейки таблицы не скругляются и здесь (05, раздел 7). Своего «в работе» у
   оригинала нет: индиго-акцент уходит от синего дальше 15°, поэтому
   --c-info — как у «Панели» светлой. */
[data-theme="air"] {
    --c-bg: #f5f4fb;
    --c-surface: #ffffff;
    --c-surface-2: #faf9ff;
    --c-chrome: #ffffff;
    --c-chrome-2: #ffffff;
    --c-chrome-3: #ecebff;
    --c-chrome-text: #3b3752;
    --c-chrome-text-muted: #787291;
    --c-on-accent: #ffffff;
    --c-on-danger: #ffffff;
    --c-text: #1f1b33;
    --c-text-muted: #706c84;
    --c-line: #ebe9f5;
    --c-line-soft: #f2f0f9;
    --c-field-border: #8e89a3;
    --c-accent: #5646d6;
    --c-accent-strong: #4535c2;
    --c-accent-text: #5646d6;
    --c-accent-bg: #ecebff;
    --c-focus: #5646d6;
    --c-success: #157c53;
    --c-success-bg: #e1f5ec;
    --c-warning: #a25e00;
    --c-warning-bg: #fff1dc;
    --c-error: #c23737;
    --c-error-bg: #fde7e7;
    --c-score-0: #c23737;
    --c-score-0-bg: #fde7e7;
    --c-score-50: #a25e00;
    --c-score-50-bg: #fff1dc;
    --c-score-100: #157c53;
    --c-score-100-bg: #e1f5ec;
    --c-info: #0b6aa8;
    --c-info-bg: #e8f3fb;
    --c-block-0: #2f6fd0;
    --c-block-1: #0f8f92;
    --c-block-2: #7b57cf;
    --c-block-3: #c2701c;
    --c-block-4: #2b8a4e;
    --c-block-5: #c04c86;
    --c-block-6: #8494a8;
    /* Фазы звонка в миниатюре хронометража (05, 2.1 и 3.19); пара проверена
       валидатором палитры на --c-surface этой темы. */
    --c-phase-wait: #c04c86;
    --c-phase-talk: #5646d6;
    --c-logo-ink: #335780;
    --c-logo-mark: #E30613;

    --r-control: 10px;
    --r-button: 999px;
    --r-panel: 14px;
    --btn-pad-x: 17.5px;
    --th-case: none;
    --panel-pad-y: 22.5px;
    --panel-pad-x: 22.5px;
    --content-pad: 25px;

    --sh-1: 0 1px 2px #1f1b330d, 0 8px 24px #1f1b3310;
    --sh-2: 0 1px 2px rgba(15, 23, 42, .06), 0 8px 24px -14px rgba(15, 23, 42, .28);
}

/* Пары шрифтов Casebook Loader. Числа идут шрифтом заголовков пары: у всех
   пяти есть табличные цифры, а tabular-nums включает base.css. */
[data-font="geologica"] {
    --font-ui: "Golos Text", "Segoe UI", system-ui, sans-serif;
    --font-head: "Geologica", "Segoe UI", system-ui, sans-serif;
    --font-num: "Geologica", "Segoe UI", system-ui, sans-serif;
}

[data-font="manrope"] {
    --font-ui: "Inter", "Segoe UI", system-ui, sans-serif;
    --font-head: "Manrope", "Segoe UI", system-ui, sans-serif;
    --font-num: "Manrope", "Segoe UI", system-ui, sans-serif;
}

[data-font="onest"] {
    --font-ui: "Onest", "Segoe UI", system-ui, sans-serif;
    --font-head: "Onest", "Segoe UI", system-ui, sans-serif;
    --font-num: "Onest", "Segoe UI", system-ui, sans-serif;
}

[data-font="plex"] {
    --font-ui: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;
    --font-head: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;
    --font-num: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;
}

[data-font="pt"] {
    --font-ui: "PT Sans", "Segoe UI", system-ui, sans-serif;
    --font-head: "PT Serif", Georgia, serif;
    --font-num: "PT Serif", Georgia, serif;
}
