/* rokuzmin.ru, вариант «Диспетчерская» на системе focustrack · файл переменных · светлая тема, общие и производные
   Палитра выведена из двенадцатичастного круга Иоганнеса Иттена («Искусство цвета»): двузвучие: синий — оранжевый; основной цвет действия — тёмно-синий,
   трезвучие по равнобедренному треугольнику: цвет и два соседа его дополнения. От круга взят только тон; светлота подобрана
   расчётом в OKLCh до нормы контраста с запасом: 4,6 : 1 вместо 4,5 для текста, 3,1 вместо 3 для рамок, значков и рисунка.
   У каждой пары «текст — фон» отношение записано в пояснении к цвету текста; запись совпадает с расчётом по WCAG 2.
   Подключается на каждой странице первым; сразу за ним — css/theme-dark.css.

   Устройство файла
   1. Основные переменные светлой темы — :root и узлы [data-theme="light"]. Группы — задание, раздел 7.2. Их задаёт профиль
      оформления из панели; тёмная тема объявляет тот же набор имён в css/theme-dark.css.
   2. Общие для обеих тем — :root: скругления, толщины, отступы, промежутки, шрифты, длительности, кривые, пороги, числа приёмов.
   3. Производные — :root и каждый узел [data-theme]: цвета приёмов записаны формулой от основных (color-mix, oklch(from …),
      rgb(from …)), браузер пересчитывает их сам. Профиль их не задаёт: сменил основной цвет — кнопка перекрасилась.
      Формулы повторены на каждом узле [data-theme] потому, что переменная с var() вычисляется на том узле, где объявлена, и
      потомкам достаётся уже готовый цвет. Основные поэтому переопределяются только на корне или на узле с data-theme.
      Контраст надписи на производном фоне посчитан на основной палитре и записан так же, как у основных пар.
 */
:root,
[data-theme="light"] {
  /* ── Текст ── */
  --text-primary: #141619; /* Основной текст: заголовки, названия записей, значения полей; текст второстепенной кнопки · oklch(20% 0.007 258) · на --bg-page 17,7 : 1, на --bg-card 18,1 : 1, на --bg-input 18,1 : 1, на --bg-selection 14,8 : 1, на --bg-menu 16,9 : 1, на --bg-drawer 18,1 : 1, на --bg-header 18,1 : 1, на --bg-page-edge 13,9 : 1, на --action-secondary 15,9 : 1, на --action-secondary-hover 14,6 : 1, на --surface-1 18,1 : 1, на --surface-2 18,1 : 1, на --surface-3 18,1 : 1, на --surface-4 18,1 : 1, на --state-success-bg 15,9 : 1, на --state-warning-bg 15,6 : 1, на --state-error-bg 15,5 : 1, на --state-info-bg 15,7 : 1, на --bg-card-hover 18,1 : 1 */
  --text-secondary: #414950; /* Второстепенный текст: подписи, даты, ответственные; подобран не ниже 7 : 1, на ступень ярче приглушённого · oklch(40% 0.016 245) · на --bg-page 8,9 : 1, на --bg-card 9,2 : 1, на --bg-selection 7,5 : 1, на --bg-page-edge 7,0 : 1, на --bg-menu 8,5 : 1, на --bg-drawer 9,2 : 1, на --bg-card-hover 9,2 : 1 */
  --text-muted: #5c636c; /* Приглушённый текст: подсказка в пустом поле, счётчики, служебные пометки · oklch(50% 0.017 255) · на --bg-page 5,9 : 1, на --bg-card 6,1 : 1, на --bg-selection 4,9 : 1, на --bg-page-edge 4,6 : 1, на --bg-input 6,1 : 1, на --bg-menu 5,7 : 1, на --bg-drawer 6,1 : 1 */
  --text-on-dark: #f8fafd; /* Текст на тёмной заливке: подписи сцены дашборда, плашка поверх видео, надпись на основной кнопке · oklch(98% 0.005 258) · на --action-primary 11,6 : 1 */
  --text-link: #0065b0; /* Ссылки в тексте, в подвале и в плашках · oklch(50% 0.142 250) · на --bg-page 5,9 : 1, на --bg-card 6,0 : 1, на --bg-selection 4,9 : 1, на --bg-page-edge 4,6 : 1 */
  --text-error: #b03b00; /* Подпись ошибки под полем, текст плашки ошибки в блоке · oklch(52% 0.162 40) · на --bg-page 5,9 : 1, на --bg-card 6,0 : 1, на --bg-input 6,0 : 1, на --bg-selection 4,9 : 1, на --bg-page-edge 4,6 : 1, на --state-error-bg 5,2 : 1 */
  --text-header: #141619; /* Текст и знак в шапке: сейчас совпадает с основным; профиль может задать шапке свой цвет · oklch(20% 0.007 258) · на --bg-header 18,1 : 1 */

  /* ── Фон ── */
  --bg-page: #fbfcfe; /* Фон страницы — нулевой этаж; подложка живого фона · oklch(99% 0.003 265) */
  --bg-card: #ffffff; /* Фон карточки записи, показателя, группы полей — первый этаж · oklch(100% 0.000 0) */
  --bg-header: #ffffff; /* Фон шапки высотой 64 точки — второй этаж · oklch(100% 0.000 0) */
  --bg-menu: #f4f7fb; /* Фон меню разделов слева · oklch(98% 0.006 255) */
  --bg-drawer: #ffffff; /* Фон шторки справа и выпадающих списков — третий этаж · oklch(100% 0.000 0) */
  --bg-input: #ffffff; /* Фон поля ввода, поля кода, поля поиска · oklch(100% 0.000 0) */
  --bg-selection: #d7eafe; /* Фон выделенного: выбранная строка, найденное в поиске, отмеченный текст; полоса скелета загрузки · oklch(93% 0.034 250) */
  --bg-veil: #050608; /* Затемнение под шторкой (40 %) и под окном (60 %), доля — прозрачностью слоя; тот же тон берут тени кнопки-сферы и наклонённой карточки · oklch(12% 0.006 262) */

  /* ── Рамка ── */
  --border-default: #8d9093; /* Рамка поля ввода и элементов управления в покое · oklch(65% 0.006 248) · на --bg-input 3,2 : 1, на --bg-card 3,2 : 1, на --bg-page 3,1 : 1 */
  --border-hover: #707376; /* Рамка поля под указателем · oklch(55% 0.006 248) · на --bg-input 4,8 : 1, на --bg-card 4,8 : 1, на --bg-page 4,6 : 1 */
  --border-focus: #1581d8; /* Рамка выбора с клавиатуры — две точки с отступом; держит 3 : 1 с запасом к фону по обе стороны · oklch(59% 0.160 250) · на --bg-card 4,1 : 1, на --bg-page 4,0 : 1, на --bg-page-edge 3,1 : 1, на --bg-selection 3,3 : 1, на --bg-input 4,1 : 1 */
  --border-error: #f26228; /* Рамка поля с ошибкой · oklch(67% 0.190 40) · на --bg-input 3,2 : 1, на --bg-card 3,2 : 1, на --bg-page 3,1 : 1 */
  --border-divider: #dbdee2; /* Разделитель строк и приглушённая рамка карточки; дорожка мерцающей линии · oklch(90% 0.006 255) */

  /* ── Действие ── */
  --action-primary: #003763; /* Основная кнопка в покое; от неё выводятся тело, кромка и свечение кнопки-сферы, волна от щелчка, блик скелета, перелив черты под шапкой · oklch(33% 0.093 250) */
  --action-primary-hover: #004982; /* Основная кнопка под указателем: на ступень светлее · oklch(40% 0.114 250) */
  --action-primary-active: #002a4e; /* Основная кнопка при нажатии: темнее, этаж опускается · oklch(28% 0.079 250) */
  --action-primary-text: #f8fafd; /* Надпись на основной и опасной кнопке · oklch(98% 0.005 258) · на --action-primary 11,6 : 1, на --action-primary-hover 8,8 : 1, на --action-primary-active 13,9 : 1, на --action-danger 5,7 : 1, на --action-danger-hover 4,7 : 1 */
  --action-secondary: #edf0f4; /* Фон второстепенной кнопки · oklch(95% 0.006 255) */
  --action-secondary-hover: #e3e7ea; /* Фон второстепенной кнопки под указателем: на белом ступень вниз по светлоте, иначе наведения не видно · oklch(93% 0.006 240) */
  --action-danger: #b23c00; /* Кнопка опасного действия: удалить, отклонить · oklch(52% 0.163 40) */
  --action-danger-hover: #c74400; /* Кнопка опасного действия под указателем: на ступень светлее · oklch(56% 0.177 40) */

  /* ── Состояние ── */
  --state-success: #087d39; /* Успех: текст и значок оповещения, отметка выполненной задачи · oklch(52% 0.139 150) · на --state-success-bg 4,6 : 1, на --bg-card 5,2 : 1, на --bg-page 5,1 : 1 */
  --state-success-bg: #dcf7e1; /* Успех: фон оповещения и плашки · oklch(95% 0.041 151) */
  --state-warning: #8d6300; /* Предупреждение: текст и значок; янтарный разряд обёрток ошибок · oklch(53% 0.110 80) · на --state-warning-bg 4,6 : 1, на --bg-card 5,4 : 1, на --bg-page 5,2 : 1 */
  --state-warning-bg: #fdecd1; /* Предупреждение: фон оповещения и плашки · oklch(95% 0.040 79) */
  --state-error: #ba4001; /* Ошибка: текст и значок; красный разряд обёрток ошибок · oklch(54% 0.168 40) · на --state-error-bg 4,7 : 1, на --bg-card 5,5 : 1, на --bg-page 5,4 : 1 */
  --state-error-bg: #ffe9e2; /* Ошибка: фон оповещения и плашки · oklch(95% 0.026 38) */
  --state-info: #2b6ead; /* Сведение: текст и значок нейтрального оповещения · oklch(53% 0.120 250) · на --state-info-bg 4,6 : 1, на --bg-card 5,3 : 1, на --bg-page 5,2 : 1 */
  --state-info-bg: #e3f0fe; /* Сведение: фон оповещения и плашки · oklch(95% 0.023 250) */

  /* ── Шкала важности ── */
  --scale-1: #199045; /* Шкала важности и сложности, деление 1 из 10 — зелёный край; значение передаётся ещё положением ползунка и числом · oklch(57% 0.150 150) · на --bg-page 4,0 : 1, на --bg-card 4,1 : 1, на --bg-page-edge 3,1 : 1 */
  --scale-2: #4d8d27; /* Шкала важности и сложности, деление 2 из 10; значение передаётся ещё положением ползунка и числом · oklch(58% 0.150 136) · на --bg-page 4,0 : 1, на --bg-card 4,1 : 1, на --bg-page-edge 3,1 : 1 */
  --scale-3: #6d8700; /* Шкала важности и сложности, деление 3 из 10; значение передаётся ещё положением ползунка и числом · oklch(58% 0.141 122) · на --bg-page 4,0 : 1, на --bg-card 4,1 : 1, на --bg-page-edge 3,1 : 1 */
  --scale-4: #848103; /* Шкала важности и сложности, деление 4 из 10; значение передаётся ещё положением ползунка и числом · oklch(59% 0.126 108) · на --bg-page 4,0 : 1, на --bg-card 4,1 : 1, на --bg-page-edge 3,1 : 1 */
  --scale-5: #957c06; /* Шкала важности и сложности, деление 5 из 10; значение передаётся ещё положением ползунка и числом · oklch(59% 0.120 95) · на --bg-page 4,0 : 1, на --bg-card 4,1 : 1, на --bg-page-edge 3,1 : 1 */
  --scale-6: #a47504; /* Шкала важности и сложности, деление 6 из 10; значение передаётся ещё положением ползунка и числом · oklch(59% 0.122 80) · на --bg-page 4,0 : 1, на --bg-card 4,1 : 1, на --bg-page-edge 3,1 : 1 */
  --scale-7: #b46e03; /* Шкала важности и сложности, деление 7 из 10; значение передаётся ещё положением ползунка и числом · oklch(60% 0.132 67) · на --bg-page 4,0 : 1, на --bg-card 4,1 : 1, на --bg-page-edge 3,1 : 1 */
  --scale-8: #c5630d; /* Шкала важности и сложности, деление 8 из 10; значение передаётся ещё положением ползунка и числом · oklch(61% 0.150 53) · на --bg-page 4,0 : 1, на --bg-card 4,1 : 1, на --bg-page-edge 3,1 : 1 */
  --scale-9: #cb5d37; /* Шкала важности и сложности, деление 9 из 10; значение передаётся ещё положением ползунка и числом · oklch(61% 0.150 39) · на --bg-page 4,0 : 1, на --bg-card 4,1 : 1, на --bg-page-edge 3,1 : 1 */
  --scale-10: #cd5853; /* Шкала важности и сложности, деление 10 из 10 — красный край; значение передаётся ещё положением ползунка и числом · oklch(61% 0.150 25) · на --bg-page 4,0 : 1, на --bg-card 4,1 : 1, на --bg-page-edge 3,1 : 1 */

  /* ── Сущности ── */
  --entity-minutes: #4d667f; /* Оттенок протокола: метка, значок в карточке, фигура и связь на схеме · oklch(50% 0.050 249) · на --bg-page 5,8 : 1, на --bg-card 6,0 : 1, на --bg-page-edge 4,6 : 1 */
  --entity-task: #0074c8; /* Оттенок задачи: метка, значок в карточке, фигура и связь на схеме · oklch(55% 0.156 250) · на --bg-page 4,7 : 1, на --bg-card 4,8 : 1, на --bg-page-edge 3,7 : 1 */
  --entity-project: #bf6717; /* Оттенок проекта: метка, значок в карточке, фигура и связь на схеме · oklch(60% 0.140 56) · на --bg-page 4,0 : 1, на --bg-card 4,1 : 1, на --bg-page-edge 3,1 : 1 */
  --entity-stream: #b85f00; /* Оттенок направления — сущности: метка, значок в карточке, фигура и связь на схеме · oklch(58% 0.143 56) · на --bg-page 4,4 : 1, на --bg-card 4,5 : 1, на --bg-page-edge 3,4 : 1 */
  --entity-goal: #003e70; /* Оттенок цели: метка, значок в карточке, фигура и связь на схеме · oklch(36% 0.103 250) · на --bg-page 10,6 : 1, на --bg-card 10,9 : 1, на --bg-page-edge 8,4 : 1 */

  /* ── Знак ── */
  --brand-mark: #141619; /* Монограмма «КР» в шапке и подвале · oklch(20% 0.007 258) · на --bg-page 17,7 : 1, на --bg-page-edge 13,9 : 1, на --bg-header 18,1 : 1 */
  --brand-accent: #c26500; /* Тёплый акцент: точка монограммы, отметка, блик; тёплый блик кнопки-сферы и лампа украшений берут этот тон · oklch(60% 0.148 56) · на --bg-page 4,0 : 1, на --bg-page-edge 3,1 : 1 */

  /* ── Тени этажей ── */
  --shadow-1-soft: 0 1px 2px rgba(5, 6, 8, 0.06); /* Этаж 1, крупная мягкая тень: задаёт высоту */
  --shadow-1-sharp: 0 0.5px 1px rgba(5, 6, 8, 0.03); /* Этаж 1, малая резкая тень: прижимает к поверхности */
  --shadow-2-soft: 0 2px 6px rgba(5, 6, 8, 0.08); /* Этаж 2, крупная мягкая тень: задаёт высоту */
  --shadow-2-sharp: 0 1px 3px rgba(5, 6, 8, 0.04); /* Этаж 2, малая резкая тень: прижимает к поверхности */
  --shadow-3-soft: 0 8px 20px rgba(5, 6, 8, 0.12); /* Этаж 3, крупная мягкая тень: задаёт высоту */
  --shadow-3-sharp: 0 4px 10px rgba(5, 6, 8, 0.06); /* Этаж 3, малая резкая тень: прижимает к поверхности */
  --shadow-4-soft: 0 20px 48px rgba(5, 6, 8, 0.18); /* Этаж 4, крупная мягкая тень: задаёт высоту */
  --shadow-4-sharp: 0 10px 24px rgba(5, 6, 8, 0.09); /* Этаж 4, малая резкая тень: прижимает к поверхности */
  --elev-0: none; /* Нулевой этаж: без тени — нажатый элемент */
  --elev-1: var(--shadow-1-soft), var(--shadow-1-sharp); /* Составная тень 1-го этажа */
  --elev-2: var(--shadow-2-soft), var(--shadow-2-sharp); /* Составная тень 2-го этажа */
  --elev-3: var(--shadow-3-soft), var(--shadow-3-sharp); /* Составная тень 3-го этажа */
  --elev-4: var(--shadow-4-soft), var(--shadow-4-sharp); /* Составная тень 4-го этажа */

  /* ── Светлота поверхностей ── */
  --surface-1: #ffffff; /* Поверхность первого этажа: карточка; днём все этажи белые, высоту держит тень · oklch(100% 0.000 0) */
  --surface-2: #ffffff; /* Поверхность второго этажа: шапка, карточка под указателем; днём все этажи белые, высоту держит тень · oklch(100% 0.000 0) */
  --surface-3: #ffffff; /* Поверхность третьего этажа: шторка, выпадающий список; днём все этажи белые, высоту держит тень · oklch(100% 0.000 0) */
  --surface-4: #ffffff; /* Поверхность четвёртого этажа: модальное окно, оповещение; днём все этажи белые, высоту держит тень · oklch(100% 0.000 0) */

  /* ── Числа приёмов этой темы ── */
  --qb-spread: 26; /* Живой фон: разлёт пятен в значениях из 255 — вниз от почти белой подложки */

  /* ── Производные этой темы: формула иная, чем в тёмной; имена те же ── */
  --action-primary-edge: color-mix(in oklch, var(--action-primary) 84%, white); /* Кромка основной кнопки: тон действия на 16 % светлее тела — тёмная кнопка обведена светлым, край светлее середины, как у сферы. Читается против тела и подложки · на --bg-page 7,6 : 1, на --action-primary 1,6 : 1 */
  --bg-page-edge: rgb(from var(--bg-page) calc(min(r, g, b) - var(--qb-spread)) calc(min(r, g, b) - var(--qb-spread)) calc(min(r, g, b) - var(--qb-spread))); /* Пол живого фона: самое тёмное место пятен — подложка минус разлёт, серым. От --bg-page и --qb-spread; по нему проверяется текст нулевого этажа */
  --fb-glint-cool: color-mix(in srgb, var(--text-on-dark) 60%, transparent); /* Холодный блик второстепенной кнопки-сферы: от --text-on-dark, холодно-белый на 60 % */
  --fb-inner-light: color-mix(in srgb, var(--text-on-dark) 55%, transparent); /* Тонкая светлая линия по верхнему внутреннему краю тела кнопки-сферы: от --text-on-dark на 55 % */
  --fb-shadow-rest: inset 0 1px 0 var(--fb-inner-light), inset 0 -12px 20px -12px color-mix(in srgb, var(--bg-veil) 34%, transparent), 0 8px 22px -8px color-mix(in srgb, var(--bg-veil) 36%, transparent); /* Тень кнопки-сферы в покое: подсветка сверху, тьма снизу, отброшенная тень; цвет — от --bg-veil */
  --fb-shadow-hover: inset 0 1px 0 var(--fb-inner-light), inset 0 -12px 20px -12px color-mix(in srgb, var(--bg-veil) 32%, transparent), 0 12px 28px -10px color-mix(in srgb, var(--bg-veil) 38%, transparent); /* Тень кнопки-сферы под указателем: подъём на этаж; от --bg-veil */
  --fb-shadow-active: inset 0 2px 9px color-mix(in srgb, var(--bg-veil) 36%, transparent), inset 0 1px 0 color-mix(in srgb, var(--text-on-dark) 18%, transparent), 0 2px 8px -4px color-mix(in srgb, var(--bg-veil) 34%, transparent); /* Тень кнопки-сферы при нажатии: внешняя сменяется внутренней; от --bg-veil и --text-on-dark */
  --fb-shadow-secondary-rest: inset 0 1px 0 var(--fb-inner-light), inset 0 -10px 18px -12px color-mix(in srgb, var(--bg-veil) 15%, transparent), 0 4px 14px -8px color-mix(in srgb, var(--bg-veil) 21%, transparent); /* Тень второстепенной кнопки-сферы в покое — легче основной; от --bg-veil */
  --tc-glare-color: color-mix(in srgb, var(--text-secondary) 6%, transparent); /* Блик наклонённой карточки: на белом блик не виден — вместо него холодная тень от --text-secondary силой 0,06 */
}

/* ── 2. Общие для обеих тем ── */
:root {
  /* ── Скругления ── */
  --radius-sm: 4px; /* Малое: отметка выбора, метки, плашки в строке */
  --radius-md: 8px; /* Среднее: карточка, поле ввода, оповещение */
  --radius-lg: 12px; /* Большое: модальное окно, шторка */
  --radius-round: 999px; /* Круг: значок человека, кружок ползунка */
  --radius-control: 6px; /* Кнопки и переключатель */

  /* ── Толщина рамок ── */
  --border-thin: 1px; /* Тонкая: рамка карточки, разделители */
  --border-regular: 1px; /* Обычная: поле ввода, кнопка */
  --border-strong: 2px; /* Выделенная: рамка выбора с клавиатуры, не тоньше двух точек */

  /* ── Отступы ── */
  --space-1: 4px; /* Ступень 1 */
  --space-2: 8px; /* Ступень 2 */
  --space-3: 12px; /* Ступень 3 */
  --space-4: 16px; /* Ступень 4: внутренний отступ карточки */
  --space-5: 24px; /* Ступень 5 */
  --space-6: 32px; /* Ступень 6 */
  --space-7: 40px; /* Ступень 7 */
  --space-8: 48px; /* Ступень 8 */

  /* ── Промежутки ── */
  --gap-zone: 32px; /* Между зонами страницы */
  --gap-card: 12px; /* Между карточками */
  --gap-inner: 16px; /* Внутри карточки, между полями */

  /* ── Размер шрифта ── */
  --font-size-1: 11px; /* Ступень 1: счётчики, служебные пометки */
  --font-size-2: 12px; /* Ступень 2: подписи под полем */
  --font-size-3: 13px; /* Ступень 3: второстепенный текст */
  --font-size-4: 15px; /* Ступень 4: основной текст */
  --font-size-5: 18px; /* Ступень 5: заголовок карточки */
  --font-size-6: 22px; /* Ступень 6: заголовок зоны */
  --font-size-7: 28px; /* Ступень 7: заголовок страницы */

  /* ── Начертание ── */
  --weight-regular: 400; /* @kind font */ /* Обычное */
  --weight-medium: 500; /* @kind font */ /* Среднее: надписи кнопок, названия записей */
  --weight-bold: 700; /* @kind font */ /* Полужирное */
  --weight-heading: 700; /* @kind font */ /* Заголовки */

  /* ── Шрифты ── */
  --font-heading: 'Manrope', system-ui, sans-serif; /* Заголовки */
  --font-text: 'IBM Plex Sans', system-ui, sans-serif; /* Текст */
  --font-mono: 'JetBrains Mono', ui-monospace, monospace; /* Числа, код, даты в перечнях */
  --line-height-text: 1.5; /* Межстрочное расстояние текста, не менее 1,5 */

  /* ── Длительность движения ── */
  --motion-rise: 120ms; /* Подъём этажа */
  --motion-fall: 80ms; /* Опускание этажа: отклик на нажатие */
  --motion-normal: 200ms; /* Обычный переход */
  --motion-slow: 400ms; /* Медленный: появление плашки, шторки */

  /* ── Кривые движения · сдержанный характер ── */
  --motion-ease: cubic-bezier(.2, 0, 0, 1); /* Общая кривая переходов без особой роли — замедление к концу, без перелёта */
  --motion-ease-rise: cubic-bezier(0, 0, .58, 1); /* Подъём карточки, смена фона и тени под указателем — ease-out, приложение Л. Характер выбран владельцем 24.09.2026, решение № 107 */
  --motion-ease-fall: cubic-bezier(.42, 0, 1, 1); /* Нажатие, опускание на нулевой этаж — ease-in: отклик немедленный */
  --motion-ease-enter: cubic-bezier(.2, .8, .2, 1); /* Выход шторки, окна, подсказки, оповещения; уход выполненной строки вниз — без перелёта */
  --motion-ease-exit: cubic-bezier(.42, 0, 1, 1); /* Закрытие шторки и подсказки, угасание оповещения */
  --motion-ease-fade: cubic-bezier(0, 0, .58, 1); /* Проявление и затемнение: прозрачность не пружинит */
  --motion-ease-draw: cubic-bezier(0, 0, .58, 1); /* Галочка и линии подсказки: обводка без перелёта */

  /* ── Пороги соотношения сторон ── */
  --aspect-portrait: 0.8; /* Ниже — телефонный вид */
  --aspect-wide: 1.3; /* От этого значения при ширине от 1200 — настольный вид */

  /* ── Элементы ── */
  --control-height: 36px; /* Высота кнопки и поля — плотность «обычно», решение № 94 */
  --icon-stroke: 1.5; /* Толщина линии значка, одна на набор */

  /* ── Числа приёмов ── */
  --gl-speed: 8s; /* Полный проход перелива черты под шапкой */
  --gl-thin: 1px; /* Толщина черты под шапкой */
  --fb-spot-size: 5px; /* Поперечник светового пятна на кромке кнопки-сферы */
  --fb-spot-opacity: 0.5; /* Доля яркости пятна на кромке */
  --fb-spot-lap: 300s; /* Полный обход кромки пятном: около 1,3 точки в секунду — ниже порога распознавания */
  --tc-perspective: 700px; /* Перспектива — на родителе карточек, одна точка схода на ряд */
  --tc-tilt: 10deg; /* Наклон карточки к курсору; рабочий предел 8–14° */
  --tc-shadow: 18px; /* Сдвиг тени наклонённой карточки от нажатого угла */
  --tc-return: .45s; /* Возврат карточки в плоскость после ухода курсора — единственный переход на наклоне */
  --am-orb: 8px; /* Диаметр шара ожидания в кнопке */
  --uf-ease: cubic-bezier(.2, .7, .3, 1); /* Кривая откликов: без перелёта */
  --uf-digit: 22px; /* Высота одной цифры барабана */
  --er-rise: 14px; /* Подъём блока при появлении */
  --er-time: .55s; /* Длительность появления */
  --er-step: 45ms; /* Шаг каскада по словам, не больше 60 мс; весь каскад не длиннее 600 мс */
}

/* ── 3. Производные: одна формула на обе темы ── */
:root,
[data-theme] {
  /* ── Значки ── */
  --icon-tone: var(--text-secondary); /* Тон значков всех наборов: ссылка на второстепенный текст — профиль, сменивший цвет текста, перекрашивает и значки. Набор значков может задать свой тон поверх (образцы — vitrina/profiles.css) · светлая: на --bg-page 8,9 : 1, на --bg-card 9,2 : 1, на --bg-menu 8,5 : 1, на --bg-drawer 9,2 : 1 · тёмная: на --bg-page 12,3 : 1, на --bg-card 11,5 : 1, на --bg-menu 9,7 : 1, на --bg-drawer 9,7 : 1 */

  /* ── Карточка ── */
  --bg-card-hover: color-mix(in oklch, var(--bg-card) 97%, white); /* Фон карточки под указателем: 3 % белого — в обеих темах светлее покоя, этаж поднимается */

  /* ── Кнопка-сфера: основная ── */
  --fb-primary-body: var(--action-primary); /* Тело в середине высоты — цвет действия как есть; по нему считается контраст надписи · светлая: на --bg-page 11,8 : 1, на --bg-card 12,2 : 1, на --bg-page-edge 9,3 : 1 · тёмная: на --bg-page 5,9 : 1, на --bg-card 5,5 : 1, на --bg-page-edge 3,6 : 1 */
  --fb-primary-body-top: color-mix(in oklch, var(--action-primary) 86%, white); /* Верх тела — отражение неба: 14 % белого */
  --fb-primary-body-bottom: color-mix(in oklch, var(--action-primary) 86%, black); /* Низ тела — отражение тьмы: 14 % чёрного */
  --fb-primary-body-hover: var(--action-primary-hover); /* Тело под указателем */
  --fb-primary-body-hover-top: color-mix(in oklch, var(--action-primary-hover) 86%, white); /* Верх тела под указателем */
  --fb-primary-body-hover-bottom: color-mix(in oklch, var(--action-primary-hover) 86%, black); /* Низ тела под указателем */
  --fb-primary-body-active: var(--action-primary-active); /* Тело при нажатии */
  --fb-primary-body-active-top: color-mix(in oklch, var(--action-primary-active) 92%, white); /* Верх тела при нажатии: блик слабее — 8 % белого */
  --fb-primary-body-active-bottom: color-mix(in oklch, var(--action-primary-active) 86%, black); /* Низ тела при нажатии */
  --fb-primary-ink: var(--action-primary-text); /* Надпись основной кнопки-сферы: не ниже 4,6 : 1 к телу в каждом состоянии · светлая: на --fb-primary-body 11,6 : 1, на --fb-primary-body-hover 8,8 : 1, на --fb-primary-body-active 13,9 : 1 · тёмная: на --fb-primary-body 5,9 : 1, на --fb-primary-body-hover 7,1 : 1, на --fb-primary-body-active 4,8 : 1 */
  --fb-primary-rim: oklch(from var(--action-primary) calc(l + (1 - l) * 0.72) calc(c * 0.45) h); /* От --action-primary: кромка у верхнего и нижнего края — по Френелю светлее тела: светлота проходит 72 % пути к белому, насыщенность вдвое ниже */
  --fb-primary-rim-mid: color-mix(in oklch, var(--action-primary) 84%, white); /* От --action-primary: кромка в середине высоты — тусклее: 16 % белого */
  --fb-primary-rim-hover: oklch(from var(--action-primary) calc(l + (1 - l) * 0.84) calc(c * 0.35) h); /* От --action-primary: кромка под указателем ярче: 84 % пути к белому */
  --fb-primary-rim-active: oklch(from var(--action-primary) 0.7 calc(c * 0.6) h); /* От --action-primary: кромка при нажатии гаснет: светлота 0,7 при любом цвете */

  /* ── Кнопка-сфера: опасная ── */
  --fb-danger-body: var(--action-danger); /* Тело опасной кнопки — цвет опасного действия как есть · светлая: на --bg-page 5,8 : 1, на --bg-card 5,9 : 1, на --bg-page-edge 4,5 : 1 · тёмная: на --bg-page 6,7 : 1, на --bg-card 6,3 : 1, на --bg-page-edge 4,1 : 1 */
  --fb-danger-body-top: color-mix(in oklch, var(--action-danger) 86%, white); /* Верх тела: 14 % белого */
  --fb-danger-body-bottom: color-mix(in oklch, var(--action-danger) 86%, black); /* Низ тела: 14 % чёрного */
  --fb-danger-body-hover: var(--action-danger-hover); /* Тело под указателем */
  --fb-danger-body-hover-top: color-mix(in oklch, var(--action-danger-hover) 86%, white); /* Верх тела под указателем */
  --fb-danger-body-hover-bottom: color-mix(in oklch, var(--action-danger-hover) 86%, black); /* Низ тела под указателем */
  --fb-danger-body-active: color-mix(in oklch, var(--action-danger) 88%, black); /* Тело при нажатии: 12 % чёрного — своей основной переменной у нажатой опасной кнопки нет */
  --fb-danger-body-active-top: color-mix(in oklch, var(--fb-danger-body-active) 92%, white); /* Верх тела при нажатии */
  --fb-danger-body-active-bottom: color-mix(in oklch, var(--fb-danger-body-active) 86%, black); /* Низ тела при нажатии */
  --fb-danger-ink: var(--action-primary-text); /* Надпись опасной кнопки-сферы: не ниже 4,6 : 1 к телу в каждом состоянии · светлая: на --fb-danger-body 5,7 : 1, на --fb-danger-body-hover 4,7 : 1, на --fb-danger-body-active 7,3 : 1 · тёмная: на --fb-danger-body 6,7 : 1, на --fb-danger-body-hover 8,2 : 1, на --fb-danger-body-active 4,8 : 1 */
  --fb-danger-rim: oklch(from var(--action-danger) calc(l + (1 - l) * 0.72) calc(c * 0.45) h); /* От --action-danger: кромка у верхнего и нижнего края — по Френелю светлее тела: светлота проходит 72 % пути к белому, насыщенность вдвое ниже */
  --fb-danger-rim-mid: color-mix(in oklch, var(--action-danger) 84%, white); /* От --action-danger: кромка в середине высоты — тусклее: 16 % белого */
  --fb-danger-rim-hover: oklch(from var(--action-danger) calc(l + (1 - l) * 0.84) calc(c * 0.35) h); /* От --action-danger: кромка под указателем ярче: 84 % пути к белому */
  --fb-danger-rim-active: oklch(from var(--action-danger) 0.7 calc(c * 0.6) h); /* От --action-danger: кромка при нажатии гаснет: светлота 0,7 при любом цвете */

  /* ── Кнопка-сфера: второстепенная ── */
  --fb-secondary-body: var(--action-secondary); /* Тело второстепенной кнопки */
  --fb-secondary-body-top: oklch(from var(--action-secondary) calc(l + 0.07) c h); /* Верх тела: светлота +0,07 — почти серое тело светлеет сдвигом, а не белым: на тёмной поверхности белое дало бы пятно */
  --fb-secondary-body-bottom: oklch(from var(--action-secondary) calc(l - 0.07) c h); /* Низ тела: светлота −0,07 */
  --fb-secondary-body-hover: var(--action-secondary-hover); /* Тело под указателем */
  --fb-secondary-body-hover-top: oklch(from var(--action-secondary-hover) calc(l + 0.07) c h); /* Верх тела под указателем */
  --fb-secondary-body-hover-bottom: oklch(from var(--action-secondary-hover) calc(l - 0.07) c h); /* Низ тела под указателем */
  --fb-secondary-body-active: oklch(from var(--action-secondary) calc(l - 0.05) c h); /* Тело при нажатии: темнее покоя на 0,05 */
  --fb-secondary-body-active-top: oklch(from var(--fb-secondary-body-active) calc(l + 0.04) c h); /* Верх тела при нажатии */
  --fb-secondary-body-active-bottom: oklch(from var(--fb-secondary-body-active) calc(l - 0.07) c h); /* Низ тела при нажатии */
  --fb-secondary-ink: var(--text-primary); /* Надпись второстепенной кнопки-сферы: основной текст · светлая: на --fb-secondary-body 15,9 : 1, на --fb-secondary-body-hover 14,6 : 1, на --fb-secondary-body-active 13,6 : 1 · тёмная: на --fb-secondary-body 14,9 : 1, на --fb-secondary-body-hover 13,5 : 1, на --fb-secondary-body-active 16,5 : 1 */
  --fb-secondary-rim: color-mix(in oklch, var(--text-muted) 88%, white); /* Кромка у краёв: от --text-muted, 12 % белого. Границу этой кнопки держит кромка, а не тело — поэтому она от приглушённого текста, уже подобранного к подложке и краю живого фона · светлая: на --bg-page 4,6 : 1, на --bg-card 4,7 : 1, на --bg-page-edge 3,6 : 1 · тёмная: на --bg-page 9,0 : 1, на --bg-card 8,4 : 1, на --bg-page-edge 5,5 : 1 */
  --fb-secondary-rim-mid: var(--text-muted); /* Кромка в середине высоты: приглушённый текст как есть · светлая: на --bg-page 5,9 : 1, на --bg-card 6,1 : 1, на --bg-page-edge 4,6 : 1 · тёмная: на --bg-page 8,0 : 1, на --bg-card 7,5 : 1, на --bg-page-edge 4,9 : 1 */
  --fb-secondary-rim-hover: var(--text-secondary); /* Кромка под указателем ярче: второстепенный текст */
  --fb-secondary-rim-active: var(--text-muted); /* Кромка при нажатии гаснет до середины */

  /* ── Кнопка-сфера: блик, пятно, свечение ── */
  --fb-glint: color-mix(in srgb, var(--brand-accent) 22%, transparent); /* Тёплый неподвижный блик солнца под надписью основной и опасной кнопки: акцент знака на 22 % */
  --fb-spot: color-mix(in srgb, var(--text-on-dark) 95%, transparent); /* Световое пятно, обходящее кромку: холодно-белое, от --text-on-dark */
  --fb-glow-primary: color-mix(in srgb, var(--action-primary) 50%, transparent); /* Внешнее свечение основной кнопки под указателем: тон действия на 50 % */
  --fb-glow-danger: color-mix(in srgb, var(--action-danger) 45%, transparent); /* Внешнее свечение опасной кнопки под указателем */
  --fb-glow-secondary: color-mix(in srgb, var(--text-muted) 30%, transparent); /* Внешнее свечение второстепенной кнопки под указателем — серое */

  /* ── Наклон карточки ── */
  --tc-shadow-color: color-mix(in srgb, var(--bg-veil) 22%, transparent); /* Тень наклонённой карточки, уходит от нажатого угла: цвет затемнения на 22 % */
  --tc-shadow-contact: color-mix(in srgb, var(--bg-veil) 6%, transparent); /* Малая резкая тень под наклонённой карточкой */

  /* ── Отклики на действие ── */
  --uf-ripple: color-mix(in srgb, var(--action-primary) 32%, transparent); /* Волна от щелчка: тон действия на 32 % */
  --uf-beam: color-mix(in srgb, var(--action-primary) 22%, transparent); /* Блик, бегущий по полосам скелета загрузки: тон действия на 22 % */
  --uf-track: var(--bg-selection); /* Полоса скелета загрузки и ячейка барабана цифр: фон выделения */
  --uf-ring: var(--action-primary); /* Дуга кругового индикатора хода · светлая: на --bg-card 12,2 : 1 · тёмная: на --bg-card 5,5 : 1 */
  --uf-tip-bg: var(--text-primary); /* Фон всплывающей подсказки: основной текст — тёмная плашка днём, светлая ночью */
  --uf-tip-ink: var(--bg-card); /* Текст всплывающей подсказки · светлая: на --uf-tip-bg 18,1 : 1 · тёмная: на --uf-tip-bg 16,0 : 1 */

  /* ── Светящиеся линии ── */
  --gl-spark: color-mix(in oklch, var(--action-primary) 45%, white); /* Искра перелива: тон действия с 55 % белого */
  --gl-ramp: var(--action-primary), var(--gl-spark), var(--action-primary), var(--action-primary-edge), var(--action-primary); /* Перелив черты под шапкой: тон действия, искра, тон, кромка, тон — замкнут на первый цвет, стык без шва */
  --gl-beam: var(--action-primary); /* Светлое пятно мерцающей линии */
  --gl-track: var(--border-divider); /* Дорожка мерцающей линии */

  /* ── Живой фон ── */
  --bg-poster: radial-gradient(58% 70% at 26% 30%, color-mix(in srgb, var(--bg-page-edge) 60%, var(--bg-page)), transparent 62%), radial-gradient(54% 66% at 76% 72%, oklch(from var(--bg-page) calc(l - 0.02) c h), transparent 62%), var(--bg-page); /* Статичный постер живого фона: пятно к краю разлёта и пятно чуть темнее подложки; запасной вид без холста и плитка предпросмотра */

  /* ── Украшения профилей ── */
  --deco-snow: oklch(from var(--entity-minutes) calc(l + (1 - l) * 0.72) calc(c * 0.7) h); /* Снежинка и слой снега на черте под шапкой: светлый холодный от --entity-minutes; намеренно тих — норма 1,3 : 1 · светлая: на --bg-header 1,5 : 1 · тёмная: на --bg-header 13,8 : 1 */
  --deco-snow-edge: color-mix(in oklch, var(--deco-snow) 85%, black); /* Нижняя кромка слоя снега и ободок снежинки: снег с 15 % чёрного · светлая: на --bg-header 2,4 : 1 · тёмная: на --bg-header 8,8 : 1 */
  --deco-wire: color-mix(in oklch, var(--text-muted) 80%, var(--bg-header)); /* Провод гирлянды: приглушённый текст, на пятую часть растворённый в шапке · светлая: на --bg-header 4,0 : 1 · тёмная: на --bg-header 4,8 : 1 */
  --deco-bulb-1: var(--entity-task); /* Лампочка гирлянды и конфетти: основной тон созвучия · светлая: на --bg-page 4,7 : 1 · тёмная: на --bg-page 5,4 : 1 */
  --deco-bulb-2: color-mix(in oklch, var(--entity-project) 70%, white); /* Лампочка гирлянды и конфетти: жёлто-оранжевый созвучия, 30 % белого · светлая: на --bg-page 2,5 : 1 · тёмная: на --bg-page 11,2 : 1 */
  --deco-bulb-3: var(--brand-accent); /* Лампочка гирлянды и конфетти: тёплый акцент созвучия · светлая: на --bg-page 4,0 : 1 · тёмная: на --bg-page 7,0 : 1 */
  --deco-bridge: var(--entity-minutes); /* Силуэт разводного моста на черте под шапкой: читается как рисунок, не ниже 4,6 : 1 к шапке · светлая: на --bg-header 6,0 : 1 · тёмная: на --bg-header 7,0 : 1 */
  --deco-lamp: var(--deco-bulb-2); /* Фонари на мосту · светлая: на --bg-header 2,5 : 1 · тёмная: на --bg-header 9,8 : 1 */
}

/* rokuzmin.ru, вариант «Диспетчерская» на системе focustrack · тёмная тема
   Палитра выведена из двенадцатичастного круга Иоганнеса Иттена («Искусство цвета»): двузвучие: синий — оранжевый; основной цвет действия — тёмно-синий,
   трезвучие по равнобедренному треугольнику: цвет и два соседа его дополнения. От круга взят только тон; светлота подобрана
   расчётом в OKLCh до нормы контраста с запасом: 4,6 : 1 вместо 4,5 для текста, 3,1 вместо 3 для рамок, значков и рисунка.
   У каждой пары «текст — фон» отношение записано в пояснении к цвету текста; запись совпадает с расчётом по WCAG 2.
   Тот же набор имён, что в разделе 1 файла css/variables.css; общие и производные с одной формулой объявлены там и
   пересчитываются по основным этой темы. Включается атрибутом data-theme="dark" на <html> или на любом узле
   и по настройке устройства, пока тема не выбрана переключателем; оба блока ниже совпадают построчно.
   Глубина передаётся светлотой поверхности: этажи на 4, 7, 11 и 16 % светлее фона страницы, тень — слабый след.
 */
:root[data-theme="dark"],
[data-theme="dark"] {
  /* ── Текст ── */
  --text-primary: #ebeff2; /* Основной текст: заголовки, названия записей, значения полей; текст второстепенной кнопки · oklch(95% 0.006 240) · на --bg-page 17,0 : 1, на --bg-card 16,0 : 1, на --bg-input 17,0 : 1, на --bg-selection 9,8 : 1, на --bg-menu 13,5 : 1, на --bg-drawer 13,5 : 1, на --bg-header 14,9 : 1, на --bg-page-edge 10,5 : 1, на --action-secondary 14,9 : 1, на --action-secondary-hover 13,5 : 1, на --surface-1 16,0 : 1, на --surface-2 14,9 : 1, на --surface-3 13,5 : 1, на --surface-4 11,3 : 1, на --state-success-bg 12,8 : 1, на --state-warning-bg 13,1 : 1, на --state-error-bg 13,2 : 1, на --state-info-bg 13,0 : 1, на --bg-card-hover 15,2 : 1 */
  --text-secondary: #c5cdd6; /* Второстепенный текст: подписи, даты, ответственные; подобран не ниже 7 : 1, на ступень ярче приглушённого · oklch(84% 0.015 251) · на --bg-page 12,3 : 1, на --bg-card 11,5 : 1, на --bg-selection 7,1 : 1, на --bg-page-edge 7,5 : 1, на --bg-menu 9,7 : 1, на --bg-drawer 9,7 : 1, на --bg-card-hover 11,0 : 1 */
  --text-muted: #9ea6af; /* Приглушённый текст: подсказка в пустом поле, счётчики, служебные пометки · oklch(72% 0.016 251) · на --bg-page 8,0 : 1, на --bg-card 7,5 : 1, на --bg-selection 4,6 : 1, на --bg-page-edge 4,9 : 1, на --bg-input 8,0 : 1, на --bg-menu 6,3 : 1, на --bg-drawer 6,3 : 1 */
  --text-on-dark: #f8fafd; /* Текст на тёмной заливке, которая тёмная в обеих темах: подписи сцены дашборда, плашка поверх видео · oklch(98% 0.005 258) · на --bg-page 18,8 : 1, на --bg-card 17,7 : 1 */
  --text-link: #53aaff; /* Ссылки в тексте, в подвале и в плашках · oklch(72% 0.150 250) · на --bg-page 8,0 : 1, на --bg-card 7,5 : 1, на --bg-selection 4,6 : 1, на --bg-page-edge 4,9 : 1 */
  --text-error: #ff8255; /* Подпись ошибки под полем, текст плашки ошибки в блоке · oklch(74% 0.164 40) · на --bg-page 8,0 : 1, на --bg-card 7,5 : 1, на --bg-input 8,0 : 1, на --bg-selection 4,6 : 1, на --bg-page-edge 4,9 : 1, на --state-error-bg 6,3 : 1 */
  --text-header: #ebeff2; /* Текст и знак в шапке: сейчас совпадает с основным; профиль может задать шапке свой цвет · oklch(95% 0.006 240) · на --bg-header 14,9 : 1 */

  /* ── Фон ── */
  --bg-page: #090b0e; /* Фон страницы — нулевой этаж; подложка живого фона · oklch(15% 0.007 258) */
  --bg-card: #121416; /* Фон карточки записи, показателя, группы полей — первый этаж · oklch(19% 0.005 248) */
  --bg-header: #191b1d; /* Фон шапки высотой 64 точки — второй этаж · oklch(22% 0.005 248) */
  --bg-menu: #222427; /* Фон меню разделов слева · oklch(26% 0.006 258) */
  --bg-drawer: #222427; /* Фон шторки справа и выпадающих списков — третий этаж · oklch(26% 0.006 258) */
  --bg-input: #090b0e; /* Фон поля ввода, поля кода, поля поиска · oklch(15% 0.007 258) */
  --bg-selection: #1b3c5d; /* Фон выделенного: выбранная строка, найденное в поиске, отмеченный текст; полоса скелета загрузки · oklch(35% 0.070 250) */
  --bg-veil: #020305; /* Затемнение под шторкой (40 %) и под окном (60 %), доля — прозрачностью слоя; тот же тон берут тени кнопки-сферы и наклонённой карточки · oklch(10% 0.009 259) */

  /* ── Рамка ── */
  --border-default: #616467; /* Рамка поля ввода и элементов управления в покое · oklch(50% 0.006 248) · на --bg-input 3,3 : 1, на --bg-card 3,1 : 1, на --bg-page 3,3 : 1 */
  --border-hover: #7d8083; /* Рамка поля под указателем · oklch(60% 0.006 248) · на --bg-input 5,0 : 1, на --bg-card 4,6 : 1, на --bg-page 5,0 : 1 */
  --border-focus: #52a9fe; /* Рамка выбора с клавиатуры — две точки с отступом; держит 3 : 1 с запасом к фону по обе стороны · oklch(72% 0.150 250) · на --bg-card 7,4 : 1, на --bg-page 7,9 : 1, на --bg-page-edge 4,9 : 1, на --bg-selection 4,6 : 1, на --bg-input 7,9 : 1 */
  --border-error: #b23c00; /* Рамка поля с ошибкой · oklch(52% 0.163 40) · на --bg-input 3,3 : 1, на --bg-card 3,1 : 1, на --bg-page 3,3 : 1 */
  --border-divider: #1f2224; /* Разделитель строк и приглушённая рамка карточки; дорожка мерцающей линии · oklch(25% 0.006 237) */

  /* ── Действие ── */
  --action-primary: #4790d8; /* Основная кнопка в покое; от неё выводятся тело, кромка и свечение кнопки-сферы, волна от щелчка, блик скелета, перелив черты под шапкой · oklch(64% 0.131 250) */
  --action-primary-hover: #5ea0e3; /* Основная кнопка под указателем: на ступень светлее · oklch(69% 0.120 250) */
  --action-primary-active: #3781c7; /* Основная кнопка при нажатии: темнее, этаж опускается · oklch(59% 0.130 250) */
  --action-primary-text: #090b0e; /* Надпись на основной и опасной кнопке · oklch(15% 0.007 258) · на --action-primary 5,9 : 1, на --action-primary-hover 7,1 : 1, на --action-primary-active 4,8 : 1, на --action-danger 6,7 : 1, на --action-danger-hover 8,2 : 1 */
  --action-secondary: #191b1d; /* Фон второстепенной кнопки · oklch(22% 0.005 248) */
  --action-secondary-hover: #222427; /* Фон второстепенной кнопки под указателем: на ступень светлее · oklch(26% 0.006 258) */
  --action-danger: #fa6931; /* Кнопка опасного действия: удалить, отклонить · oklch(69% 0.190 40) */
  --action-danger-hover: #ff8559; /* Кнопка опасного действия под указателем: на ступень светлее · oklch(75% 0.160 40) */

  /* ── Состояние ── */
  --state-success: #3ea25b; /* Успех: текст и значок оповещения, отметка выполненной задачи · oklch(64% 0.141 150) · на --state-success-bg 4,6 : 1, на --bg-card 5,7 : 1, на --bg-page 6,1 : 1 */
  --state-success-bg: #122d19; /* Успех: фон оповещения и плашки · oklch(27% 0.050 150) */
  --state-warning: #b98403; /* Предупреждение: текст и значок; янтарный разряд обёрток ошибок · oklch(65% 0.134 80) · на --state-warning-bg 4,6 : 1, на --bg-card 5,6 : 1, на --bg-page 6,0 : 1 */
  --state-warning-bg: #332305; /* Предупреждение: фон оповещения и плашки · oklch(27% 0.050 80) */
  --state-error: #ef5f24; /* Ошибка: текст и значок; красный разряд обёрток ошибок · oklch(66% 0.190 40) · на --state-error-bg 4,6 : 1, на --bg-card 5,6 : 1, на --bg-page 5,9 : 1 */
  --state-error-bg: #3b1d13; /* Ошибка: фон оповещения и плашки · oklch(27% 0.050 39) */
  --state-info: #5193d4; /* Сведение: текст и значок нейтрального оповещения · oklch(65% 0.119 250) · на --state-info-bg 4,6 : 1, на --bg-card 5,7 : 1, на --bg-page 6,1 : 1 */
  --state-info-bg: #12283e; /* Сведение: фон оповещения и плашки · oklch(27% 0.050 250) */

  /* ── Шкала важности ── */
  --scale-1: #1f9449; /* Шкала важности и сложности, деление 1 из 10 — зелёный край; значение передаётся ещё положением ползунка и числом · oklch(59% 0.150 150) · на --bg-page 5,1 : 1, на --bg-card 4,7 : 1, на --bg-page-edge 3,1 : 1 */
  --scale-2: #51912b; /* Шкала важности и сложности, деление 2 из 10; значение передаётся ещё положением ползунка и числом · oklch(59% 0.150 136) · на --bg-page 5,1 : 1, на --bg-card 4,8 : 1, на --bg-page-edge 3,1 : 1 */
  --scale-3: #718c05; /* Шкала важности и сложности, деление 3 из 10; значение передаётся ещё положением ползунка и числом · oklch(60% 0.144 122) · на --bg-page 5,1 : 1, на --bg-card 4,8 : 1, на --bg-page-edge 3,1 : 1 */
  --scale-4: #888500; /* Шкала важности и сложности, деление 4 из 10; значение передаётся ещё положением ползунка и числом · oklch(60% 0.129 108) · на --bg-page 5,1 : 1, на --bg-card 4,7 : 1, на --bg-page-edge 3,1 : 1 */
  --scale-5: #997f07; /* Шкала важности и сложности, деление 5 из 10; значение передаётся ещё положением ползунка и числом · oklch(60% 0.122 94) · на --bg-page 5,1 : 1, на --bg-card 4,7 : 1, на --bg-page-edge 3,1 : 1 */
  --scale-6: #a97900; /* Шкала важности и сложности, деление 6 из 10; значение передаётся ещё положением ползунка и числом · oklch(61% 0.126 81) · на --bg-page 5,1 : 1, на --bg-card 4,8 : 1, на --bg-page-edge 3,1 : 1 */
  --scale-7: #b97100; /* Шкала важности и сложности, деление 7 из 10; значение передаётся ещё положением ползунка и числом · oklch(61% 0.136 67) · на --bg-page 5,1 : 1, на --bg-card 4,8 : 1, на --bg-page-edge 3,1 : 1 */
  --scale-8: #c96715; /* Шкала важности и сложности, деление 8 из 10; значение передаётся ещё положением ползунка и числом · oklch(62% 0.150 53) · на --bg-page 5,1 : 1, на --bg-card 4,8 : 1, на --bg-page-edge 3,1 : 1 */
  --scale-9: #cf603b; /* Шкала важности и сложности, деление 9 из 10; значение передаётся ещё положением ползунка и числом · oklch(62% 0.150 39) · на --bg-page 5,1 : 1, на --bg-card 4,7 : 1, на --bg-page-edge 3,1 : 1 */
  --scale-10: #d25c57; /* Шкала важности и сложности, деление 10 из 10 — красный край; значение передаётся ещё положением ползунка и числом · oklch(62% 0.151 25) · на --bg-page 5,1 : 1, на --bg-card 4,8 : 1, на --bg-page-edge 3,1 : 1 */

  /* ── Сущности ── */
  --entity-minutes: #8da8c3; /* Оттенок протокола: метка, значок в карточке, фигура и связь на схеме · oklch(72% 0.050 249) · на --bg-page 8,0 : 1, на --bg-card 7,5 : 1, на --bg-page-edge 4,9 : 1 */
  --entity-task: #1289e7; /* Оттенок задачи: метка, значок в карточке, фигура и связь на схеме · oklch(62% 0.170 250) · на --bg-page 5,4 : 1, на --bg-card 5,1 : 1, на --bg-page-edge 3,3 : 1 */
  --entity-project: #f0944e; /* Оттенок проекта: метка, значок в карточке, фигура и связь на схеме · oklch(75% 0.140 56) · на --bg-page 8,5 : 1, на --bg-card 8,0 : 1, на --bg-page-edge 5,2 : 1 */
  --entity-stream: #e37802; /* Оттенок направления — сущности: метка, значок в карточке, фигура и связь на схеме · oklch(68% 0.166 56) · на --bg-page 6,5 : 1, на --bg-card 6,1 : 1, на --bg-page-edge 4,0 : 1 */
  --entity-goal: #89c3fe; /* Оттенок цели: метка, значок в карточке, фигура и связь на схеме · oklch(80% 0.104 250) · на --bg-page 10,6 : 1, на --bg-card 9,9 : 1, на --bg-page-edge 6,5 : 1 */

  /* ── Знак ── */
  --brand-mark: #ebeff2; /* Монограмма «КР» в шапке и подвале · oklch(95% 0.006 240) · на --bg-page 17,0 : 1, на --bg-page-edge 10,5 : 1, на --bg-header 14,9 : 1 */
  --brand-accent: #eb7d06; /* Тёплый акцент: точка монограммы, отметка, блик; тёплый блик кнопки-сферы и лампа украшений берут этот тон · oklch(70% 0.170 56) · на --bg-page 7,0 : 1, на --bg-page-edge 4,3 : 1 */

  /* ── Тени этажей ── */
  --shadow-1-soft: 0 1px 2px rgba(2, 3, 5, 0.036); /* Этаж 1, крупная мягкая тень: задаёт высоту */
  --shadow-1-sharp: 0 0.5px 1px rgba(2, 3, 5, 0.018); /* Этаж 1, малая резкая тень: прижимает к поверхности */
  --shadow-2-soft: 0 2px 6px rgba(2, 3, 5, 0.048); /* Этаж 2, крупная мягкая тень: задаёт высоту */
  --shadow-2-sharp: 0 1px 3px rgba(2, 3, 5, 0.024); /* Этаж 2, малая резкая тень: прижимает к поверхности */
  --shadow-3-soft: 0 8px 20px rgba(2, 3, 5, 0.072); /* Этаж 3, крупная мягкая тень: задаёт высоту */
  --shadow-3-sharp: 0 4px 10px rgba(2, 3, 5, 0.036); /* Этаж 3, малая резкая тень: прижимает к поверхности */
  --shadow-4-soft: 0 20px 48px rgba(2, 3, 5, 0.108); /* Этаж 4, крупная мягкая тень: задаёт высоту */
  --shadow-4-sharp: 0 10px 24px rgba(2, 3, 5, 0.054); /* Этаж 4, малая резкая тень: прижимает к поверхности */
  --elev-0: none; /* Нулевой этаж: без тени — нажатый элемент */
  --elev-1: var(--shadow-1-soft), var(--shadow-1-sharp); /* Составная тень 1-го этажа */
  --elev-2: var(--shadow-2-soft), var(--shadow-2-sharp); /* Составная тень 2-го этажа */
  --elev-3: var(--shadow-3-soft), var(--shadow-3-sharp); /* Составная тень 3-го этажа */
  --elev-4: var(--shadow-4-soft), var(--shadow-4-sharp); /* Составная тень 4-го этажа */

  /* ── Светлота поверхностей ── */
  --surface-1: #121416; /* Поверхность первого этажа: карточка; на 4 % светлее фона страницы · oklch(19% 0.005 248) */
  --surface-2: #191b1d; /* Поверхность второго этажа: шапка, карточка под указателем; на 7 % светлее фона страницы · oklch(22% 0.005 248) */
  --surface-3: #222427; /* Поверхность третьего этажа: шторка, выпадающий список; на 11 % светлее фона страницы · oklch(26% 0.006 258) */
  --surface-4: #2e3133; /* Поверхность четвёртого этажа: модальное окно, оповещение; на 16 % светлее фона страницы · oklch(31% 0.006 237) */

  /* ── Числа приёмов этой темы ── */
  --qb-spread: 40; /* Живой фон: разлёт пятен в значениях из 255 — вверх от почти чёрной подложки; вниз упирается в чёрное */

  /* ── Производные этой темы: формула иная, чем в светлой; имена те же ── */
  --action-primary-edge: color-mix(in oklch, var(--action-primary) 85%, black); /* Кромка основной кнопки: тон действия на 15 % темнее тела — светлая кнопка обведена своим тёмным. Читается против тела и подложки · на --bg-page 4,0 : 1, на --action-primary 1,5 : 1 */
  --bg-page-edge: rgb(from var(--bg-page) calc(max(r, g, b) + var(--qb-spread)) calc(max(r, g, b) + var(--qb-spread)) calc(max(r, g, b) + var(--qb-spread))); /* Потолок живого фона: самое светлое место пятен — подложка плюс разлёт, серым. От --bg-page и --qb-spread; по нему проверяется текст нулевого этажа */
  --fb-glint-cool: color-mix(in srgb, var(--text-muted) 16%, transparent); /* Холодный блик второстепенной кнопки-сферы: от --text-muted на 16 % — на тёмном белый блик был бы пятном */
  --fb-inner-light: color-mix(in srgb, var(--text-secondary) 28%, transparent); /* Тонкая светлая линия по верхнему внутреннему краю тела кнопки-сферы: от --text-secondary на 28 % */
  --fb-shadow-rest: inset 0 1px 0 var(--fb-inner-light), inset 0 -12px 20px -12px color-mix(in srgb, var(--bg-veil) 80%, transparent), 0 8px 22px -8px color-mix(in srgb, var(--bg-veil) 85%, transparent); /* Тень кнопки-сферы в покое: подсветка сверху, тьма снизу, отброшенная тень; цвет — от --bg-veil */
  --fb-shadow-hover: inset 0 1px 0 var(--fb-inner-light), inset 0 -12px 20px -12px color-mix(in srgb, var(--bg-veil) 75%, transparent), 0 12px 28px -10px color-mix(in srgb, var(--bg-veil) 90%, transparent); /* Тень кнопки-сферы под указателем: подъём на этаж; от --bg-veil */
  --fb-shadow-active: inset 0 2px 9px color-mix(in srgb, var(--bg-veil) 85%, transparent), inset 0 1px 0 color-mix(in srgb, var(--text-secondary) 18%, transparent), 0 2px 8px -4px color-mix(in srgb, var(--bg-veil) 80%, transparent); /* Тень кнопки-сферы при нажатии: внешняя сменяется внутренней; от --bg-veil и --text-secondary */
  --fb-shadow-secondary-rest: inset 0 1px 0 var(--fb-inner-light), inset 0 -10px 18px -12px color-mix(in srgb, var(--bg-veil) 35%, transparent), 0 4px 14px -8px color-mix(in srgb, var(--bg-veil) 50%, transparent); /* Тень второстепенной кнопки-сферы в покое — легче основной; от --bg-veil */
  --tc-glare-color: color-mix(in srgb, var(--text-on-dark) 8%, transparent); /* Блик наклонённой карточки: белый от --text-on-dark силой 0,08 — рабочий предел 0,08–0,12 */
}

/* Настройка устройства, пока тема не выбрана переключателем */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    /* ── Текст ── */
    --text-primary: #ebeff2; /* Основной текст: заголовки, названия записей, значения полей; текст второстепенной кнопки · oklch(95% 0.006 240) · на --bg-page 17,0 : 1, на --bg-card 16,0 : 1, на --bg-input 17,0 : 1, на --bg-selection 9,8 : 1, на --bg-menu 13,5 : 1, на --bg-drawer 13,5 : 1, на --bg-header 14,9 : 1, на --bg-page-edge 10,5 : 1, на --action-secondary 14,9 : 1, на --action-secondary-hover 13,5 : 1, на --surface-1 16,0 : 1, на --surface-2 14,9 : 1, на --surface-3 13,5 : 1, на --surface-4 11,3 : 1, на --state-success-bg 12,8 : 1, на --state-warning-bg 13,1 : 1, на --state-error-bg 13,2 : 1, на --state-info-bg 13,0 : 1, на --bg-card-hover 15,2 : 1 */
    --text-secondary: #c5cdd6; /* Второстепенный текст: подписи, даты, ответственные; подобран не ниже 7 : 1, на ступень ярче приглушённого · oklch(84% 0.015 251) · на --bg-page 12,3 : 1, на --bg-card 11,5 : 1, на --bg-selection 7,1 : 1, на --bg-page-edge 7,5 : 1, на --bg-menu 9,7 : 1, на --bg-drawer 9,7 : 1, на --bg-card-hover 11,0 : 1 */
    --text-muted: #9ea6af; /* Приглушённый текст: подсказка в пустом поле, счётчики, служебные пометки · oklch(72% 0.016 251) · на --bg-page 8,0 : 1, на --bg-card 7,5 : 1, на --bg-selection 4,6 : 1, на --bg-page-edge 4,9 : 1, на --bg-input 8,0 : 1, на --bg-menu 6,3 : 1, на --bg-drawer 6,3 : 1 */
    --text-on-dark: #f8fafd; /* Текст на тёмной заливке, которая тёмная в обеих темах: подписи сцены дашборда, плашка поверх видео · oklch(98% 0.005 258) · на --bg-page 18,8 : 1, на --bg-card 17,7 : 1 */
    --text-link: #53aaff; /* Ссылки в тексте, в подвале и в плашках · oklch(72% 0.150 250) · на --bg-page 8,0 : 1, на --bg-card 7,5 : 1, на --bg-selection 4,6 : 1, на --bg-page-edge 4,9 : 1 */
    --text-error: #ff8255; /* Подпись ошибки под полем, текст плашки ошибки в блоке · oklch(74% 0.164 40) · на --bg-page 8,0 : 1, на --bg-card 7,5 : 1, на --bg-input 8,0 : 1, на --bg-selection 4,6 : 1, на --bg-page-edge 4,9 : 1, на --state-error-bg 6,3 : 1 */
    --text-header: #ebeff2; /* Текст и знак в шапке: сейчас совпадает с основным; профиль может задать шапке свой цвет · oklch(95% 0.006 240) · на --bg-header 14,9 : 1 */

    /* ── Фон ── */
    --bg-page: #090b0e; /* Фон страницы — нулевой этаж; подложка живого фона · oklch(15% 0.007 258) */
    --bg-card: #121416; /* Фон карточки записи, показателя, группы полей — первый этаж · oklch(19% 0.005 248) */
    --bg-header: #191b1d; /* Фон шапки высотой 64 точки — второй этаж · oklch(22% 0.005 248) */
    --bg-menu: #222427; /* Фон меню разделов слева · oklch(26% 0.006 258) */
    --bg-drawer: #222427; /* Фон шторки справа и выпадающих списков — третий этаж · oklch(26% 0.006 258) */
    --bg-input: #090b0e; /* Фон поля ввода, поля кода, поля поиска · oklch(15% 0.007 258) */
    --bg-selection: #1b3c5d; /* Фон выделенного: выбранная строка, найденное в поиске, отмеченный текст; полоса скелета загрузки · oklch(35% 0.070 250) */
    --bg-veil: #020305; /* Затемнение под шторкой (40 %) и под окном (60 %), доля — прозрачностью слоя; тот же тон берут тени кнопки-сферы и наклонённой карточки · oklch(10% 0.009 259) */

    /* ── Рамка ── */
    --border-default: #616467; /* Рамка поля ввода и элементов управления в покое · oklch(50% 0.006 248) · на --bg-input 3,3 : 1, на --bg-card 3,1 : 1, на --bg-page 3,3 : 1 */
    --border-hover: #7d8083; /* Рамка поля под указателем · oklch(60% 0.006 248) · на --bg-input 5,0 : 1, на --bg-card 4,6 : 1, на --bg-page 5,0 : 1 */
    --border-focus: #52a9fe; /* Рамка выбора с клавиатуры — две точки с отступом; держит 3 : 1 с запасом к фону по обе стороны · oklch(72% 0.150 250) · на --bg-card 7,4 : 1, на --bg-page 7,9 : 1, на --bg-page-edge 4,9 : 1, на --bg-selection 4,6 : 1, на --bg-input 7,9 : 1 */
    --border-error: #b23c00; /* Рамка поля с ошибкой · oklch(52% 0.163 40) · на --bg-input 3,3 : 1, на --bg-card 3,1 : 1, на --bg-page 3,3 : 1 */
    --border-divider: #1f2224; /* Разделитель строк и приглушённая рамка карточки; дорожка мерцающей линии · oklch(25% 0.006 237) */

    /* ── Действие ── */
    --action-primary: #4790d8; /* Основная кнопка в покое; от неё выводятся тело, кромка и свечение кнопки-сферы, волна от щелчка, блик скелета, перелив черты под шапкой · oklch(64% 0.131 250) */
    --action-primary-hover: #5ea0e3; /* Основная кнопка под указателем: на ступень светлее · oklch(69% 0.120 250) */
    --action-primary-active: #3781c7; /* Основная кнопка при нажатии: темнее, этаж опускается · oklch(59% 0.130 250) */
    --action-primary-text: #090b0e; /* Надпись на основной и опасной кнопке · oklch(15% 0.007 258) · на --action-primary 5,9 : 1, на --action-primary-hover 7,1 : 1, на --action-primary-active 4,8 : 1, на --action-danger 6,7 : 1, на --action-danger-hover 8,2 : 1 */
    --action-secondary: #191b1d; /* Фон второстепенной кнопки · oklch(22% 0.005 248) */
    --action-secondary-hover: #222427; /* Фон второстепенной кнопки под указателем: на ступень светлее · oklch(26% 0.006 258) */
    --action-danger: #fa6931; /* Кнопка опасного действия: удалить, отклонить · oklch(69% 0.190 40) */
    --action-danger-hover: #ff8559; /* Кнопка опасного действия под указателем: на ступень светлее · oklch(75% 0.160 40) */

    /* ── Состояние ── */
    --state-success: #3ea25b; /* Успех: текст и значок оповещения, отметка выполненной задачи · oklch(64% 0.141 150) · на --state-success-bg 4,6 : 1, на --bg-card 5,7 : 1, на --bg-page 6,1 : 1 */
    --state-success-bg: #122d19; /* Успех: фон оповещения и плашки · oklch(27% 0.050 150) */
    --state-warning: #b98403; /* Предупреждение: текст и значок; янтарный разряд обёрток ошибок · oklch(65% 0.134 80) · на --state-warning-bg 4,6 : 1, на --bg-card 5,6 : 1, на --bg-page 6,0 : 1 */
    --state-warning-bg: #332305; /* Предупреждение: фон оповещения и плашки · oklch(27% 0.050 80) */
    --state-error: #ef5f24; /* Ошибка: текст и значок; красный разряд обёрток ошибок · oklch(66% 0.190 40) · на --state-error-bg 4,6 : 1, на --bg-card 5,6 : 1, на --bg-page 5,9 : 1 */
    --state-error-bg: #3b1d13; /* Ошибка: фон оповещения и плашки · oklch(27% 0.050 39) */
    --state-info: #5193d4; /* Сведение: текст и значок нейтрального оповещения · oklch(65% 0.119 250) · на --state-info-bg 4,6 : 1, на --bg-card 5,7 : 1, на --bg-page 6,1 : 1 */
    --state-info-bg: #12283e; /* Сведение: фон оповещения и плашки · oklch(27% 0.050 250) */

    /* ── Шкала важности ── */
    --scale-1: #1f9449; /* Шкала важности и сложности, деление 1 из 10 — зелёный край; значение передаётся ещё положением ползунка и числом · oklch(59% 0.150 150) · на --bg-page 5,1 : 1, на --bg-card 4,7 : 1, на --bg-page-edge 3,1 : 1 */
    --scale-2: #51912b; /* Шкала важности и сложности, деление 2 из 10; значение передаётся ещё положением ползунка и числом · oklch(59% 0.150 136) · на --bg-page 5,1 : 1, на --bg-card 4,8 : 1, на --bg-page-edge 3,1 : 1 */
    --scale-3: #718c05; /* Шкала важности и сложности, деление 3 из 10; значение передаётся ещё положением ползунка и числом · oklch(60% 0.144 122) · на --bg-page 5,1 : 1, на --bg-card 4,8 : 1, на --bg-page-edge 3,1 : 1 */
    --scale-4: #888500; /* Шкала важности и сложности, деление 4 из 10; значение передаётся ещё положением ползунка и числом · oklch(60% 0.129 108) · на --bg-page 5,1 : 1, на --bg-card 4,7 : 1, на --bg-page-edge 3,1 : 1 */
    --scale-5: #997f07; /* Шкала важности и сложности, деление 5 из 10; значение передаётся ещё положением ползунка и числом · oklch(60% 0.122 94) · на --bg-page 5,1 : 1, на --bg-card 4,7 : 1, на --bg-page-edge 3,1 : 1 */
    --scale-6: #a97900; /* Шкала важности и сложности, деление 6 из 10; значение передаётся ещё положением ползунка и числом · oklch(61% 0.126 81) · на --bg-page 5,1 : 1, на --bg-card 4,8 : 1, на --bg-page-edge 3,1 : 1 */
    --scale-7: #b97100; /* Шкала важности и сложности, деление 7 из 10; значение передаётся ещё положением ползунка и числом · oklch(61% 0.136 67) · на --bg-page 5,1 : 1, на --bg-card 4,8 : 1, на --bg-page-edge 3,1 : 1 */
    --scale-8: #c96715; /* Шкала важности и сложности, деление 8 из 10; значение передаётся ещё положением ползунка и числом · oklch(62% 0.150 53) · на --bg-page 5,1 : 1, на --bg-card 4,8 : 1, на --bg-page-edge 3,1 : 1 */
    --scale-9: #cf603b; /* Шкала важности и сложности, деление 9 из 10; значение передаётся ещё положением ползунка и числом · oklch(62% 0.150 39) · на --bg-page 5,1 : 1, на --bg-card 4,7 : 1, на --bg-page-edge 3,1 : 1 */
    --scale-10: #d25c57; /* Шкала важности и сложности, деление 10 из 10 — красный край; значение передаётся ещё положением ползунка и числом · oklch(62% 0.151 25) · на --bg-page 5,1 : 1, на --bg-card 4,8 : 1, на --bg-page-edge 3,1 : 1 */

    /* ── Сущности ── */
    --entity-minutes: #8da8c3; /* Оттенок протокола: метка, значок в карточке, фигура и связь на схеме · oklch(72% 0.050 249) · на --bg-page 8,0 : 1, на --bg-card 7,5 : 1, на --bg-page-edge 4,9 : 1 */
    --entity-task: #1289e7; /* Оттенок задачи: метка, значок в карточке, фигура и связь на схеме · oklch(62% 0.170 250) · на --bg-page 5,4 : 1, на --bg-card 5,1 : 1, на --bg-page-edge 3,3 : 1 */
    --entity-project: #f0944e; /* Оттенок проекта: метка, значок в карточке, фигура и связь на схеме · oklch(75% 0.140 56) · на --bg-page 8,5 : 1, на --bg-card 8,0 : 1, на --bg-page-edge 5,2 : 1 */
    --entity-stream: #e37802; /* Оттенок направления — сущности: метка, значок в карточке, фигура и связь на схеме · oklch(68% 0.166 56) · на --bg-page 6,5 : 1, на --bg-card 6,1 : 1, на --bg-page-edge 4,0 : 1 */
    --entity-goal: #89c3fe; /* Оттенок цели: метка, значок в карточке, фигура и связь на схеме · oklch(80% 0.104 250) · на --bg-page 10,6 : 1, на --bg-card 9,9 : 1, на --bg-page-edge 6,5 : 1 */

    /* ── Знак ── */
    --brand-mark: #ebeff2; /* Монограмма «КР» в шапке и подвале · oklch(95% 0.006 240) · на --bg-page 17,0 : 1, на --bg-page-edge 10,5 : 1, на --bg-header 14,9 : 1 */
    --brand-accent: #eb7d06; /* Тёплый акцент: точка монограммы, отметка, блик; тёплый блик кнопки-сферы и лампа украшений берут этот тон · oklch(70% 0.170 56) · на --bg-page 7,0 : 1, на --bg-page-edge 4,3 : 1 */

    /* ── Тени этажей ── */
    --shadow-1-soft: 0 1px 2px rgba(2, 3, 5, 0.036); /* Этаж 1, крупная мягкая тень: задаёт высоту */
    --shadow-1-sharp: 0 0.5px 1px rgba(2, 3, 5, 0.018); /* Этаж 1, малая резкая тень: прижимает к поверхности */
    --shadow-2-soft: 0 2px 6px rgba(2, 3, 5, 0.048); /* Этаж 2, крупная мягкая тень: задаёт высоту */
    --shadow-2-sharp: 0 1px 3px rgba(2, 3, 5, 0.024); /* Этаж 2, малая резкая тень: прижимает к поверхности */
    --shadow-3-soft: 0 8px 20px rgba(2, 3, 5, 0.072); /* Этаж 3, крупная мягкая тень: задаёт высоту */
    --shadow-3-sharp: 0 4px 10px rgba(2, 3, 5, 0.036); /* Этаж 3, малая резкая тень: прижимает к поверхности */
    --shadow-4-soft: 0 20px 48px rgba(2, 3, 5, 0.108); /* Этаж 4, крупная мягкая тень: задаёт высоту */
    --shadow-4-sharp: 0 10px 24px rgba(2, 3, 5, 0.054); /* Этаж 4, малая резкая тень: прижимает к поверхности */
    --elev-0: none; /* Нулевой этаж: без тени — нажатый элемент */
    --elev-1: var(--shadow-1-soft), var(--shadow-1-sharp); /* Составная тень 1-го этажа */
    --elev-2: var(--shadow-2-soft), var(--shadow-2-sharp); /* Составная тень 2-го этажа */
    --elev-3: var(--shadow-3-soft), var(--shadow-3-sharp); /* Составная тень 3-го этажа */
    --elev-4: var(--shadow-4-soft), var(--shadow-4-sharp); /* Составная тень 4-го этажа */

    /* ── Светлота поверхностей ── */
    --surface-1: #121416; /* Поверхность первого этажа: карточка; на 4 % светлее фона страницы · oklch(19% 0.005 248) */
    --surface-2: #191b1d; /* Поверхность второго этажа: шапка, карточка под указателем; на 7 % светлее фона страницы · oklch(22% 0.005 248) */
    --surface-3: #222427; /* Поверхность третьего этажа: шторка, выпадающий список; на 11 % светлее фона страницы · oklch(26% 0.006 258) */
    --surface-4: #2e3133; /* Поверхность четвёртого этажа: модальное окно, оповещение; на 16 % светлее фона страницы · oklch(31% 0.006 237) */

    /* ── Числа приёмов этой темы ── */
    --qb-spread: 40; /* Живой фон: разлёт пятен в значениях из 255 — вверх от почти чёрной подложки; вниз упирается в чёрное */

    /* ── Производные этой темы: формула иная, чем в светлой; имена те же ── */
    --action-primary-edge: color-mix(in oklch, var(--action-primary) 85%, black); /* Кромка основной кнопки: тон действия на 15 % темнее тела — светлая кнопка обведена своим тёмным. Читается против тела и подложки · на --bg-page 4,0 : 1, на --action-primary 1,5 : 1 */
    --bg-page-edge: rgb(from var(--bg-page) calc(max(r, g, b) + var(--qb-spread)) calc(max(r, g, b) + var(--qb-spread)) calc(max(r, g, b) + var(--qb-spread))); /* Потолок живого фона: самое светлое место пятен — подложка плюс разлёт, серым. От --bg-page и --qb-spread; по нему проверяется текст нулевого этажа */
    --fb-glint-cool: color-mix(in srgb, var(--text-muted) 16%, transparent); /* Холодный блик второстепенной кнопки-сферы: от --text-muted на 16 % — на тёмном белый блик был бы пятном */
    --fb-inner-light: color-mix(in srgb, var(--text-secondary) 28%, transparent); /* Тонкая светлая линия по верхнему внутреннему краю тела кнопки-сферы: от --text-secondary на 28 % */
    --fb-shadow-rest: inset 0 1px 0 var(--fb-inner-light), inset 0 -12px 20px -12px color-mix(in srgb, var(--bg-veil) 80%, transparent), 0 8px 22px -8px color-mix(in srgb, var(--bg-veil) 85%, transparent); /* Тень кнопки-сферы в покое: подсветка сверху, тьма снизу, отброшенная тень; цвет — от --bg-veil */
    --fb-shadow-hover: inset 0 1px 0 var(--fb-inner-light), inset 0 -12px 20px -12px color-mix(in srgb, var(--bg-veil) 75%, transparent), 0 12px 28px -10px color-mix(in srgb, var(--bg-veil) 90%, transparent); /* Тень кнопки-сферы под указателем: подъём на этаж; от --bg-veil */
    --fb-shadow-active: inset 0 2px 9px color-mix(in srgb, var(--bg-veil) 85%, transparent), inset 0 1px 0 color-mix(in srgb, var(--text-secondary) 18%, transparent), 0 2px 8px -4px color-mix(in srgb, var(--bg-veil) 80%, transparent); /* Тень кнопки-сферы при нажатии: внешняя сменяется внутренней; от --bg-veil и --text-secondary */
    --fb-shadow-secondary-rest: inset 0 1px 0 var(--fb-inner-light), inset 0 -10px 18px -12px color-mix(in srgb, var(--bg-veil) 35%, transparent), 0 4px 14px -8px color-mix(in srgb, var(--bg-veil) 50%, transparent); /* Тень второстепенной кнопки-сферы в покое — легче основной; от --bg-veil */
    --tc-glare-color: color-mix(in srgb, var(--text-on-dark) 8%, transparent); /* Блик наклонённой карточки: белый от --text-on-dark силой 0,08 — рабочий предел 0,08–0,12 */
  }
}

/* rokuzmin.ru, вариант «Диспетчерская» · цвета, которых нет в системе focustrack: четыре области, сцена, типы РУКИ,
   тона созвучия и круг Иттена. Пишет scripts/palette.js теми же функциями, что генератор системы: тон — с круга
   Иттена, светлота подобрана в OKLCh до нормы контраста с запасом 0,1 (4,6 : 1 для надписей). Руками не править. */
:root,
[data-theme="light"] {
  --d-prod: #e48437; /* Область «производство и MES»: заливка фигур на сцене, метка легенды; сектор 3 круга — оранжевый · oklch(70% 0.147 56) · на --bg-page 2,7 : 1 */
  --d-prod-soft: #ffece0; /* Область «производство и MES»: мягкий фон плашки и строки · oklch(96% 0.026 55) */
  --d-prod-ink: #a75602; /* Область «производство и MES»: надпись, число, значок · oklch(54% 0.132 56) · на --bg-page 5,1 : 1, на --bg-card 5,3 : 1, на --d-prod-soft 4,6 : 1 */
  --d-prod-line: #d37930; /* Область «производство и MES»: линия, рамка, отметка на шкале · oklch(66% 0.140 56) · на --bg-page 3,1 : 1, на --bg-card 3,2 : 1 */
  --d-infra: #236aa9; /* Область «инфраструктура и ЦОД»: заливка фигур на сцене, метка легенды; сектор 9 круга — синий · oklch(51% 0.122 249) · на --bg-page 5,5 : 1 */
  --d-infra-soft: #e5f2ff; /* Область «инфраструктура и ЦОД»: мягкий фон плашки и строки · oklch(96% 0.022 248) */
  --d-infra-ink: #026fbd; /* Область «инфраструктура и ЦОД»: надпись, число, значок · oklch(53% 0.148 249) · на --bg-page 5,1 : 1, на --bg-card 5,2 : 1, на --d-infra-soft 4,6 : 1 */
  --d-infra-line: #4294e1; /* Область «инфраструктура и ЦОД»: линия, рамка, отметка на шкале · oklch(65% 0.140 250) · на --bg-page 3,1 : 1, на --bg-card 3,2 : 1 */
  --d-team: #b65e00; /* Область «команды»: заливка фигур на сцене, метка легенды; сектор 3 круга — оранжевый, повтор тона — другой светлотой · oklch(58% 0.141 56) · на --bg-page 4,5 : 1 */
  --d-team-soft: #ffece0; /* Область «команды»: мягкий фон плашки и строки · oklch(96% 0.026 55) */
  --d-team-ink: #a75602; /* Область «команды»: надпись, число, значок · oklch(54% 0.132 56) · на --bg-page 5,1 : 1, на --bg-card 5,3 : 1, на --d-team-soft 4,6 : 1 */
  --d-team-line: #d37930; /* Область «команды»: линия, рамка, отметка на шкале · oklch(66% 0.140 56) · на --bg-page 3,1 : 1, на --bg-card 3,2 : 1 */
  --d-ent: #004479; /* Область «управление предприятием»: заливка фигур на сцене, метка легенды; сектор 9 круга — синий, повтор тона — другой светлотой · oklch(38% 0.108 250) · на --bg-page 9,7 : 1 */
  --d-ent-soft: #e5f2ff; /* Область «управление предприятием»: мягкий фон плашки и строки · oklch(96% 0.022 248) */
  --d-ent-ink: #026fbd; /* Область «управление предприятием»: надпись, число, значок · oklch(53% 0.148 249) · на --bg-page 5,1 : 1, на --bg-card 5,2 : 1, на --d-ent-soft 4,6 : 1 */
  --d-ent-line: #4294e1; /* Область «управление предприятием»: линия, рамка, отметка на шкале · oklch(65% 0.140 250) · на --bg-page 3,1 : 1, на --bg-card 3,2 : 1 */
  --hx-1: #0069b4; /* Тон созвучия 1: сектор 9 — синий, цвет печатного круга; образец палитры, нормы контраста не имеет · oklch(51% 0.143 249) */
  --hx-1-ink: #f8fafd; /* Надпись на заливке тоном созвучия 1 · oklch(98% 0.005 258) · на --hx-1 5,5 : 1 */
  --hx-2: #ef7d00; /* Тон созвучия 2: сектор 3 — оранжевый, цвет печатного круга; образец палитры, нормы контраста не имеет · oklch(71% 0.174 55) */
  --hx-2-ink: #0b0d10; /* Надпись на заливке тоном созвучия 2 · oklch(16% 0.007 258) · на --hx-2 7,0 : 1 */
  --s-bg: #ebeff2; /* Сцена: фон холста и дымка вдали · oklch(95% 0.006 240) */
  --s-ground: #f2f5f9; /* Сцена: плита основания · oklch(97% 0.006 255) */
  --s-ground-2: #e2e5e8; /* Сцена: дорожки, площадки, вторая плита · oklch(92% 0.005 248) */
  --s-grid: #ced1d5; /* Сцена: сетка плиты и тонкие линии · oklch(86% 0.006 255) */
  --s-body: #fafcfe; /* Сцена: корпус оборудования и зданий · oklch(99% 0.003 248) */
  --s-body-2: #dbdee2; /* Сцена: второй тон корпуса — кровля, торцы, дверцы · oklch(90% 0.006 255) */
  --s-trim: #3b3d40; /* Сцена: тёмные детали — рамы, колёса, щели, обводка плоского стиля · oklch(36% 0.006 258) */
  --s-metal: #a6abb1; /* Сцена: металл — фермы, трубы, лотки · oklch(74% 0.010 253) */
  --s-glass: #9dc9f7; /* Сцена: стекло и полупрозрачные слои — уровень MES, облако · oklch(82% 0.080 250) */
  --s-bulk: #614735; /* Сцена: сыпучее сырьё — на ленте, в бункере, в штабеле, в кузове · oklch(42% 0.046 56) */
  --s-product: #ac7956; /* Сцена: готовая продукция, монеты бюджета, награда, пена в реакторах · oklch(62% 0.081 55) */
  --s-flow-up: #1a83db; /* Сцена: поток данных вверх — факты с производства · oklch(60% 0.160 250) */
  --s-flow-down: #da7306; /* Сцена: поток вниз — планы и поручения · oklch(66% 0.160 56) */
  --s-led-ok: #24ae56; /* Сцена: огонёк исправной работы; цвет состояния, созвучием не ограничен · oklch(66% 0.170 150) */
  --s-led-warn: #e4a409; /* Сцена: огонёк внимания · oklch(76% 0.156 80) */
  --s-led-err: #de3e2d; /* Сцена: огонёк отказа · oklch(60% 0.199 30) */
  --s-head: #f2f5f9; /* Сцена: голова фигуры человека — светлая в обеих темах, иначе фигура на тёмной сцене без лица · oklch(97% 0.006 255) */
  --s-accent: #e48437; /* Сцена: третий тон созвучия — оранжевый; вершина пирамиды, цель, отметки · oklch(70% 0.147 56) */
  --s-sun: #fafcfe; /* Сцена: цвет солнца · oklch(99% 0.003 248) */
  --s-sky: #eef6fe; /* Сцена: цвет неба рассеянного света · oklch(97% 0.014 248) */
  --s-earth: #83868a; /* Сцена: цвет земли рассеянного света · oklch(62% 0.007 255) */
  --s-label-bg: #fdfdfe; /* Подпись на сцене: плашка · oklch(99% 0.001 286) */
  --s-label-ink: #171b1f; /* Подпись на сцене: надпись · oklch(22% 0.010 248) · на --s-label-bg 17,0 : 1 */
  --s-label-sub: #68727c; /* Подпись на сцене: второстепенная строка · oklch(55% 0.020 248) · на --s-label-bg 4,8 : 1 */
  --ruki-r: #c9302d; /* Тип Р — решительный: буква, подпись; сектор 5 круга Иттена · oklch(55% 0.190 27) · на --bg-page 5,2 : 1, на --bg-card 5,3 : 1, на --ruki-r-soft 4,6 : 1 */
  --ruki-r-soft: #feebe9; /* Тип Р — решительный: фон метки · oklch(95% 0.021 25) */
  --ruki-r-fill: #d13834; /* Тип Р — решительный: заливка фигуры на сцене и метки; тип узнаётся ещё и по букве · oklch(57% 0.191 27) · на --bg-page 4,7 : 1 */
  --ruki-r-ink: #f8fafd; /* Тип Р — решительный: надпись на заливке · oklch(98% 0.005 258) · на --ruki-r-fill 4,6 : 1 */
  --ruki-u: #277d23; /* Тип У — убеждающий: буква, подпись; сектор 11 круга Иттена · oklch(52% 0.150 142) · на --bg-page 5,1 : 1, на --bg-card 5,2 : 1, на --ruki-u-soft 4,6 : 1 */
  --ruki-u-soft: #e3f7e1; /* Тип У — убеждающий: фон метки · oklch(96% 0.036 143) */
  --ruki-u-fill: #2c8228; /* Тип У — убеждающий: заливка фигуры на сцене и метки; тип узнаётся ещё и по букве · oklch(54% 0.150 142) · на --bg-page 4,7 : 1 */
  --ruki-u-ink: #f8fafd; /* Тип У — убеждающий: надпись на заливке · oklch(98% 0.005 258) · на --ruki-u-fill 4,6 : 1 */
  --ruki-k: #a75602; /* Тип К — контролирующий: буква, подпись; сектор 3 круга Иттена · oklch(54% 0.132 56) · на --bg-page 5,1 : 1, на --bg-card 5,3 : 1, на --ruki-k-soft 4,6 : 1 */
  --ruki-k-soft: #feece1; /* Тип К — контролирующий: фон метки · oklch(95% 0.025 54) */
  --ruki-k-fill: #c66703; /* Тип К — контролирующий: заливка фигуры на сцене и метки; тип узнаётся ещё и по букве · oklch(61% 0.150 56) · на --bg-page 3,8 : 1 */
  --ruki-k-ink: #141619; /* Тип К — контролирующий: надпись на заливке · oklch(20% 0.007 258) · на --ruki-k-fill 4,6 : 1 */
  --ruki-i: #216fb3; /* Тип И — исполнительный: буква, подпись; сектор 9 круга Иттена · oklch(53% 0.130 249) · на --bg-page 5,1 : 1, на --bg-card 5,3 : 1, на --ruki-i-soft 4,6 : 1 */
  --ruki-i-soft: #e6f2fe; /* Тип И — исполнительный: фон метки · oklch(96% 0.021 248) */
  --ruki-i-fill: #2875ba; /* Тип И — исполнительный: заливка фигуры на сцене и метки; тип узнаётся ещё и по букве · oklch(55% 0.130 250) · на --bg-page 4,7 : 1 */
  --ruki-i-ink: #f8fafd; /* Тип И — исполнительный: надпись на заливке · oklch(98% 0.005 258) · на --ruki-i-fill 4,6 : 1 */
  --rz-accent-ink: #9f5200; /* Тёплый акцент в надписях: метки над заголовками, номера, подписи чисел · oklch(52% 0.128 56) · на --bg-page 5,6 : 1, на --bg-card 5,7 : 1, на --bg-menu 5,3 : 1, на --bg-selection 4,6 : 1 */
  --deco-wheel-1: #a09600; /* Круг Иттена, сектор 1 — жёлтый; украшение, нормы контраста не имеет · oklch(66% 0.140 105) */
  --deco-wheel-2: #bb8800; /* Круг Иттена, сектор 2 — жёлто-оранжевый; украшение, нормы контраста не имеет · oklch(66% 0.136 82) */
  --deco-wheel-3: #da730a; /* Круг Иттена, сектор 3 — оранжевый; украшение, нормы контраста не имеет · oklch(66% 0.160 56) */
  --deco-wheel-4: #e36750; /* Круг Иттена, сектор 4 — красно-оранжевый; украшение, нормы контраста не имеет · oklch(66% 0.160 32) */
  --deco-wheel-5: #e3655b; /* Круг Иттена, сектор 5 — красный; украшение, нормы контраста не имеет · oklch(66% 0.159 27) */
  --deco-wheel-6: #da639a; /* Круг Иттена, сектор 6 — красно-фиолетовый; украшение, нормы контраста не имеет · oklch(66% 0.160 353) */
  --deco-wheel-7: #b571d6; /* Круг Иттена, сектор 7 — фиолетовый; украшение, нормы контраста не имеет · oklch(66% 0.160 314) */
  --deco-wheel-8: #8283f1; /* Круг Иттена, сектор 8 — сине-фиолетовый; украшение, нормы контраста не имеет · oklch(66% 0.161 281) */
  --deco-wheel-9: #3296ef; /* Круг Иттена, сектор 9 — синий; украшение, нормы контраста не имеет · oklch(66% 0.160 250) */
  --deco-wheel-10: #03a7aa; /* Круг Иттена, сектор 10 — сине-зелёный; украшение, нормы контраста не имеет · oklch(66% 0.112 197) */
  --deco-wheel-11: #4faa49; /* Круг Иттена, сектор 11 — зелёный; украшение, нормы контраста не имеет · oklch(66% 0.160 142) */
  --deco-wheel-12: #7ca215; /* Круг Иттена, сектор 12 — жёлто-зелёный; украшение, нормы контраста не имеет · oklch(66% 0.160 125) */
}

:root[data-theme="dark"],
[data-theme="dark"] {
  --d-prod: #e48437; /* Область «производство и MES»: заливка фигур на сцене, метка легенды; сектор 3 круга — оранжевый · oklch(70% 0.147 56) · на --bg-page 7,2 : 1 */
  --d-prod-soft: #37200f; /* Область «производство и MES»: мягкий фон плашки и строки · oklch(27% 0.045 56) */
  --d-prod-ink: #d57520; /* Область «производство и MES»: надпись, число, значок · oklch(66% 0.150 56) · на --bg-page 6,0 : 1, на --bg-card 5,6 : 1, на --d-prod-soft 4,6 : 1 */
  --d-prod-line: #ab5804; /* Область «производство и MES»: линия, рамка, отметка на шкале · oklch(55% 0.134 55) · на --bg-page 3,9 : 1, на --bg-card 3,6 : 1 */
  --d-infra: #4084c5; /* Область «инфраструктура и ЦОД»: заливка фигур на сцене, метка легенды; сектор 9 круга — синий · oklch(60% 0.121 250) · на --bg-page 5,0 : 1 */
  --d-infra-soft: #14283c; /* Область «инфраструктура и ЦОД»: мягкий фон плашки и строки · oklch(27% 0.046 250) */
  --d-infra-ink: #3793e5; /* Область «инфраструктура и ЦОД»: надпись, число, значок · oklch(65% 0.150 249) · на --bg-page 6,1 : 1, на --bg-card 5,7 : 1, на --d-infra-soft 4,6 : 1 */
  --d-infra-line: #1d75bf; /* Область «инфраструктура и ЦОД»: линия, рамка, отметка на шкале · oklch(55% 0.140 249) · на --bg-page 4,1 : 1, на --bg-card 3,8 : 1 */
  --d-team: #fea96b; /* Область «команды»: заливка фигур на сцене, метка легенды; сектор 3 круга — оранжевый, повтор тона — другой светлотой · oklch(81% 0.127 56) · на --bg-page 10,4 : 1 */
  --d-team-soft: #37200f; /* Область «команды»: мягкий фон плашки и строки · oklch(27% 0.045 56) */
  --d-team-ink: #d57520; /* Область «команды»: надпись, число, значок · oklch(66% 0.150 56) · на --bg-page 6,0 : 1, на --bg-card 5,6 : 1, на --d-team-soft 4,6 : 1 */
  --d-team-line: #ab5804; /* Область «команды»: линия, рамка, отметка на шкале · oklch(55% 0.134 55) · на --bg-page 3,9 : 1, на --bg-card 3,6 : 1 */
  --d-ent: #5fa3e7; /* Область «управление предприятием»: заливка фигур на сцене, метка легенды; сектор 9 круга — синий, повтор тона — другой светлотой · oklch(70% 0.122 250) · на --bg-page 7,4 : 1 */
  --d-ent-soft: #14283c; /* Область «управление предприятием»: мягкий фон плашки и строки · oklch(27% 0.046 250) */
  --d-ent-ink: #3793e5; /* Область «управление предприятием»: надпись, число, значок · oklch(65% 0.150 249) · на --bg-page 6,1 : 1, на --bg-card 5,7 : 1, на --d-ent-soft 4,6 : 1 */
  --d-ent-line: #1d75bf; /* Область «управление предприятием»: линия, рамка, отметка на шкале · oklch(55% 0.140 249) · на --bg-page 4,1 : 1, на --bg-card 3,8 : 1 */
  --hx-1: #0069b4; /* Тон созвучия 1: сектор 9 — синий, цвет печатного круга; образец палитры, нормы контраста не имеет · oklch(51% 0.143 249) */
  --hx-1-ink: #f8fafd; /* Надпись на заливке тоном созвучия 1 · oklch(98% 0.005 258) · на --hx-1 5,5 : 1 */
  --hx-2: #ef7d00; /* Тон созвучия 2: сектор 3 — оранжевый, цвет печатного круга; образец палитры, нормы контраста не имеет · oklch(71% 0.174 55) */
  --hx-2-ink: #0b0d10; /* Надпись на заливке тоном созвучия 2 · oklch(16% 0.007 258) · на --hx-2 7,0 : 1 */
  --s-bg: #060709; /* Сцена: фон холста и дымка вдали · oklch(13% 0.006 262) */
  --s-ground: #0c0f11; /* Сцена: плита основания · oklch(17% 0.006 237) */
  --s-ground-2: #191b1d; /* Сцена: дорожки, площадки, вторая плита · oklch(22% 0.005 248) */
  --s-grid: #36383b; /* Сцена: сетка плиты и тонкие линии · oklch(34% 0.006 258) */
  --s-body: #727578; /* Сцена: корпус оборудования и зданий · oklch(56% 0.006 248) */
  --s-body-2: #4d5053; /* Сцена: второй тон корпуса — кровля, торцы, дверцы · oklch(43% 0.006 248) */
  --s-trim: #1f2224; /* Сцена: тёмные детали — рамы, колёса, щели, обводка плоского стиля · oklch(25% 0.006 237) */
  --s-metal: #94999e; /* Сцена: металл — фермы, трубы, лотки · oklch(68% 0.009 248) */
  --s-glass: #4c759f; /* Сцена: стекло и полупрозрачные слои — уровень MES, облако · oklch(55% 0.080 250) */
  --s-bulk: #664c3b; /* Сцена: сыпучее сырьё — на ленте, в бункере, в штабеле, в кузове · oklch(44% 0.044 54) */
  --s-product: #b88562; /* Сцена: готовая продукция, монеты бюджета, награда, пена в реакторах · oklch(66% 0.080 55) */
  --s-flow-up: #89c3fe; /* Сцена: поток данных вверх — факты с производства · oklch(80% 0.104 250) */
  --s-flow-down: #ffb077; /* Сцена: поток вниз — планы и поручения · oklch(82% 0.118 56) */
  --s-led-ok: #5edb81; /* Сцена: огонёк исправной работы; цвет состояния, созвучием не ограничен · oklch(80% 0.169 150) */
  --s-led-warn: #ffbe3f; /* Сцена: огонёк внимания · oklch(84% 0.154 80) */
  --s-led-err: #fb5a46; /* Сцена: огонёк отказа · oklch(68% 0.200 30) */
  --s-head: #ced1d5; /* Сцена: голова фигуры человека — светлая в обеих темах, иначе фигура на тёмной сцене без лица · oklch(86% 0.006 255) */
  --s-accent: #e48437; /* Сцена: третий тон созвучия — оранжевый; вершина пирамиды, цель, отметки · oklch(70% 0.147 56) */
  --s-sun: #fafcfe; /* Сцена: цвет солнца · oklch(99% 0.003 248) */
  --s-sky: #92a7bd; /* Сцена: цвет неба рассеянного света · oklch(72% 0.040 250) */
  --s-earth: #191b1d; /* Сцена: цвет земли рассеянного света · oklch(22% 0.005 248) */
  --s-label-bg: #191b1d; /* Подпись на сцене: плашка · oklch(22% 0.005 248) */
  --s-label-ink: #ebeff2; /* Подпись на сцене: надпись · oklch(95% 0.006 240) · на --s-label-bg 14,9 : 1 */
  --s-label-sub: #7d8792; /* Подпись на сцене: второстепенная строка · oklch(62% 0.020 251) · на --s-label-bg 4,7 : 1 */
  --ruki-r: #f25950; /* Тип Р — решительный: буква, подпись; сектор 5 круга Иттена · oklch(67% 0.190 27) · на --bg-page 5,9 : 1, на --bg-card 5,6 : 1, на --ruki-r-soft 4,6 : 1 */
  --ruki-r-soft: #3b1c19; /* Тип Р — решительный: фон метки · oklch(27% 0.049 27) */
  --ruki-r-fill: #d13834; /* Тип Р — решительный: заливка фигуры на сцене и метки; тип узнаётся ещё и по букве · oklch(57% 0.191 27) · на --bg-page 4,1 : 1 */
  --ruki-r-ink: #f8fafd; /* Тип Р — решительный: надпись на заливке · oklch(98% 0.005 258) · на --ruki-r-fill 4,6 : 1 */
  --ruki-u: #4ea248; /* Тип У — убеждающий: буква, подпись; сектор 11 круга Иттена · oklch(64% 0.151 142) · на --bg-page 6,2 : 1, на --bg-card 5,8 : 1, на --ruki-u-soft 4,6 : 1 */
  --ruki-u-soft: #172d15; /* Тип У — убеждающий: фон метки · oklch(27% 0.051 142) */
  --ruki-u-fill: #2c8228; /* Тип У — убеждающий: заливка фигуры на сцене и метки; тип узнаётся ещё и по букве · oklch(54% 0.150 142) · на --bg-page 4,1 : 1 */
  --ruki-u-ink: #f8fafd; /* Тип У — убеждающий: надпись на заливке · oklch(98% 0.005 258) · на --ruki-u-fill 4,6 : 1 */
  --ruki-k: #d97207; /* Тип К — контролирующий: буква, подпись; сектор 3 круга Иттена · oklch(66% 0.160 56) · на --bg-page 6,0 : 1, на --bg-card 5,6 : 1, на --ruki-k-soft 4,6 : 1 */
  --ruki-k-soft: #391f0c; /* Тип К — контролирующий: фон метки · oklch(27% 0.050 55) */
  --ruki-k-fill: #c16300; /* Тип К — контролирующий: заливка фигуры на сцене и метки; тип узнаётся ещё и по букве · oklch(60% 0.148 55) · на --bg-page 4,7 : 1 */
  --ruki-k-ink: #090b0e; /* Тип К — контролирующий: надпись на заливке · oklch(15% 0.007 258) · на --ruki-k-fill 4,7 : 1 */
  --ruki-i: #4893da; /* Тип И — исполнительный: буква, подпись; сектор 9 круга Иттена · oklch(65% 0.130 249) · на --bg-page 6,1 : 1, на --bg-card 5,7 : 1, на --ruki-i-soft 4,6 : 1 */
  --ruki-i-soft: #11283e; /* Тип И — исполнительный: фон метки · oklch(27% 0.050 249) */
  --ruki-i-fill: #2875ba; /* Тип И — исполнительный: заливка фигуры на сцене и метки; тип узнаётся ещё и по букве · oklch(55% 0.130 250) · на --bg-page 4,1 : 1 */
  --ruki-i-ink: #f8fafd; /* Тип И — исполнительный: надпись на заливке · oklch(98% 0.005 258) · на --ruki-i-fill 4,6 : 1 */
  --rz-accent-ink: #f88821; /* Тёплый акцент в надписях: метки над заголовками, номера, подписи чисел · oklch(74% 0.170 56) · на --bg-page 8,0 : 1, на --bg-card 7,5 : 1, на --bg-menu 6,3 : 1, на --bg-selection 4,6 : 1 */
  --deco-wheel-1: #b4a802; /* Круг Иттена, сектор 1 — жёлтый; украшение, нормы контраста не имеет · oklch(72% 0.152 104) */
  --deco-wheel-2: #d29a02; /* Круг Иттена, сектор 2 — жёлто-оранжевый; украшение, нормы контраста не имеет · oklch(72% 0.148 82) */
  --deco-wheel-3: #ef862d; /* Круг Иттена, сектор 3 — оранжевый; украшение, нормы контраста не имеет · oklch(72% 0.160 56) */
  --deco-wheel-4: #f87a62; /* Круг Иттена, сектор 4 — красно-оранжевый; украшение, нормы контраста не имеет · oklch(72% 0.159 32) */
  --deco-wheel-5: #f9786d; /* Круг Иттена, сектор 5 — красный; украшение, нормы контраста не имеет · oklch(72% 0.160 27) */
  --deco-wheel-6: #ef76ac; /* Круг Иттена, сектор 6 — красно-фиолетовый; украшение, нормы контраста не имеет · oklch(72% 0.159 354) */
  --deco-wheel-7: #c884ea; /* Круг Иттена, сектор 7 — фиолетовый; украшение, нормы контраста не имеет · oklch(72% 0.159 314) */
  --deco-wheel-8: #9498ff; /* Круг Иттена, сектор 8 — сине-фиолетовый; украшение, нормы контраста не имеет · oklch(72% 0.148 280) */
  --deco-wheel-9: #50aafe; /* Круг Иттена, сектор 9 — синий; украшение, нормы контраста не имеет · oklch(72% 0.150 249) */
  --deco-wheel-10: #05bbbf; /* Круг Иттена, сектор 10 — сине-зелёный; украшение, нормы контраста не имеет · oklch(72% 0.122 198) */
  --deco-wheel-11: #62bd5c; /* Круг Иттена, сектор 11 — зелёный; украшение, нормы контраста не имеет · oklch(72% 0.160 143) */
  --deco-wheel-12: #8eb533; /* Круг Иттена, сектор 12 — жёлто-зелёный; украшение, нормы контраста не имеет · oklch(72% 0.160 125) */
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --d-prod: #e48437; /* Область «производство и MES»: заливка фигур на сцене, метка легенды; сектор 3 круга — оранжевый · oklch(70% 0.147 56) · на --bg-page 7,2 : 1 */
    --d-prod-soft: #37200f; /* Область «производство и MES»: мягкий фон плашки и строки · oklch(27% 0.045 56) */
    --d-prod-ink: #d57520; /* Область «производство и MES»: надпись, число, значок · oklch(66% 0.150 56) · на --bg-page 6,0 : 1, на --bg-card 5,6 : 1, на --d-prod-soft 4,6 : 1 */
    --d-prod-line: #ab5804; /* Область «производство и MES»: линия, рамка, отметка на шкале · oklch(55% 0.134 55) · на --bg-page 3,9 : 1, на --bg-card 3,6 : 1 */
    --d-infra: #4084c5; /* Область «инфраструктура и ЦОД»: заливка фигур на сцене, метка легенды; сектор 9 круга — синий · oklch(60% 0.121 250) · на --bg-page 5,0 : 1 */
    --d-infra-soft: #14283c; /* Область «инфраструктура и ЦОД»: мягкий фон плашки и строки · oklch(27% 0.046 250) */
    --d-infra-ink: #3793e5; /* Область «инфраструктура и ЦОД»: надпись, число, значок · oklch(65% 0.150 249) · на --bg-page 6,1 : 1, на --bg-card 5,7 : 1, на --d-infra-soft 4,6 : 1 */
    --d-infra-line: #1d75bf; /* Область «инфраструктура и ЦОД»: линия, рамка, отметка на шкале · oklch(55% 0.140 249) · на --bg-page 4,1 : 1, на --bg-card 3,8 : 1 */
    --d-team: #fea96b; /* Область «команды»: заливка фигур на сцене, метка легенды; сектор 3 круга — оранжевый, повтор тона — другой светлотой · oklch(81% 0.127 56) · на --bg-page 10,4 : 1 */
    --d-team-soft: #37200f; /* Область «команды»: мягкий фон плашки и строки · oklch(27% 0.045 56) */
    --d-team-ink: #d57520; /* Область «команды»: надпись, число, значок · oklch(66% 0.150 56) · на --bg-page 6,0 : 1, на --bg-card 5,6 : 1, на --d-team-soft 4,6 : 1 */
    --d-team-line: #ab5804; /* Область «команды»: линия, рамка, отметка на шкале · oklch(55% 0.134 55) · на --bg-page 3,9 : 1, на --bg-card 3,6 : 1 */
    --d-ent: #5fa3e7; /* Область «управление предприятием»: заливка фигур на сцене, метка легенды; сектор 9 круга — синий, повтор тона — другой светлотой · oklch(70% 0.122 250) · на --bg-page 7,4 : 1 */
    --d-ent-soft: #14283c; /* Область «управление предприятием»: мягкий фон плашки и строки · oklch(27% 0.046 250) */
    --d-ent-ink: #3793e5; /* Область «управление предприятием»: надпись, число, значок · oklch(65% 0.150 249) · на --bg-page 6,1 : 1, на --bg-card 5,7 : 1, на --d-ent-soft 4,6 : 1 */
    --d-ent-line: #1d75bf; /* Область «управление предприятием»: линия, рамка, отметка на шкале · oklch(55% 0.140 249) · на --bg-page 4,1 : 1, на --bg-card 3,8 : 1 */
    --hx-1: #0069b4; /* Тон созвучия 1: сектор 9 — синий, цвет печатного круга; образец палитры, нормы контраста не имеет · oklch(51% 0.143 249) */
    --hx-1-ink: #f8fafd; /* Надпись на заливке тоном созвучия 1 · oklch(98% 0.005 258) · на --hx-1 5,5 : 1 */
    --hx-2: #ef7d00; /* Тон созвучия 2: сектор 3 — оранжевый, цвет печатного круга; образец палитры, нормы контраста не имеет · oklch(71% 0.174 55) */
    --hx-2-ink: #0b0d10; /* Надпись на заливке тоном созвучия 2 · oklch(16% 0.007 258) · на --hx-2 7,0 : 1 */
    --s-bg: #060709; /* Сцена: фон холста и дымка вдали · oklch(13% 0.006 262) */
    --s-ground: #0c0f11; /* Сцена: плита основания · oklch(17% 0.006 237) */
    --s-ground-2: #191b1d; /* Сцена: дорожки, площадки, вторая плита · oklch(22% 0.005 248) */
    --s-grid: #36383b; /* Сцена: сетка плиты и тонкие линии · oklch(34% 0.006 258) */
    --s-body: #727578; /* Сцена: корпус оборудования и зданий · oklch(56% 0.006 248) */
    --s-body-2: #4d5053; /* Сцена: второй тон корпуса — кровля, торцы, дверцы · oklch(43% 0.006 248) */
    --s-trim: #1f2224; /* Сцена: тёмные детали — рамы, колёса, щели, обводка плоского стиля · oklch(25% 0.006 237) */
    --s-metal: #94999e; /* Сцена: металл — фермы, трубы, лотки · oklch(68% 0.009 248) */
    --s-glass: #4c759f; /* Сцена: стекло и полупрозрачные слои — уровень MES, облако · oklch(55% 0.080 250) */
    --s-bulk: #664c3b; /* Сцена: сыпучее сырьё — на ленте, в бункере, в штабеле, в кузове · oklch(44% 0.044 54) */
    --s-product: #b88562; /* Сцена: готовая продукция, монеты бюджета, награда, пена в реакторах · oklch(66% 0.080 55) */
    --s-flow-up: #89c3fe; /* Сцена: поток данных вверх — факты с производства · oklch(80% 0.104 250) */
    --s-flow-down: #ffb077; /* Сцена: поток вниз — планы и поручения · oklch(82% 0.118 56) */
    --s-led-ok: #5edb81; /* Сцена: огонёк исправной работы; цвет состояния, созвучием не ограничен · oklch(80% 0.169 150) */
    --s-led-warn: #ffbe3f; /* Сцена: огонёк внимания · oklch(84% 0.154 80) */
    --s-led-err: #fb5a46; /* Сцена: огонёк отказа · oklch(68% 0.200 30) */
    --s-head: #ced1d5; /* Сцена: голова фигуры человека — светлая в обеих темах, иначе фигура на тёмной сцене без лица · oklch(86% 0.006 255) */
    --s-accent: #e48437; /* Сцена: третий тон созвучия — оранжевый; вершина пирамиды, цель, отметки · oklch(70% 0.147 56) */
    --s-sun: #fafcfe; /* Сцена: цвет солнца · oklch(99% 0.003 248) */
    --s-sky: #92a7bd; /* Сцена: цвет неба рассеянного света · oklch(72% 0.040 250) */
    --s-earth: #191b1d; /* Сцена: цвет земли рассеянного света · oklch(22% 0.005 248) */
    --s-label-bg: #191b1d; /* Подпись на сцене: плашка · oklch(22% 0.005 248) */
    --s-label-ink: #ebeff2; /* Подпись на сцене: надпись · oklch(95% 0.006 240) · на --s-label-bg 14,9 : 1 */
    --s-label-sub: #7d8792; /* Подпись на сцене: второстепенная строка · oklch(62% 0.020 251) · на --s-label-bg 4,7 : 1 */
    --ruki-r: #f25950; /* Тип Р — решительный: буква, подпись; сектор 5 круга Иттена · oklch(67% 0.190 27) · на --bg-page 5,9 : 1, на --bg-card 5,6 : 1, на --ruki-r-soft 4,6 : 1 */
    --ruki-r-soft: #3b1c19; /* Тип Р — решительный: фон метки · oklch(27% 0.049 27) */
    --ruki-r-fill: #d13834; /* Тип Р — решительный: заливка фигуры на сцене и метки; тип узнаётся ещё и по букве · oklch(57% 0.191 27) · на --bg-page 4,1 : 1 */
    --ruki-r-ink: #f8fafd; /* Тип Р — решительный: надпись на заливке · oklch(98% 0.005 258) · на --ruki-r-fill 4,6 : 1 */
    --ruki-u: #4ea248; /* Тип У — убеждающий: буква, подпись; сектор 11 круга Иттена · oklch(64% 0.151 142) · на --bg-page 6,2 : 1, на --bg-card 5,8 : 1, на --ruki-u-soft 4,6 : 1 */
    --ruki-u-soft: #172d15; /* Тип У — убеждающий: фон метки · oklch(27% 0.051 142) */
    --ruki-u-fill: #2c8228; /* Тип У — убеждающий: заливка фигуры на сцене и метки; тип узнаётся ещё и по букве · oklch(54% 0.150 142) · на --bg-page 4,1 : 1 */
    --ruki-u-ink: #f8fafd; /* Тип У — убеждающий: надпись на заливке · oklch(98% 0.005 258) · на --ruki-u-fill 4,6 : 1 */
    --ruki-k: #d97207; /* Тип К — контролирующий: буква, подпись; сектор 3 круга Иттена · oklch(66% 0.160 56) · на --bg-page 6,0 : 1, на --bg-card 5,6 : 1, на --ruki-k-soft 4,6 : 1 */
    --ruki-k-soft: #391f0c; /* Тип К — контролирующий: фон метки · oklch(27% 0.050 55) */
    --ruki-k-fill: #c16300; /* Тип К — контролирующий: заливка фигуры на сцене и метки; тип узнаётся ещё и по букве · oklch(60% 0.148 55) · на --bg-page 4,7 : 1 */
    --ruki-k-ink: #090b0e; /* Тип К — контролирующий: надпись на заливке · oklch(15% 0.007 258) · на --ruki-k-fill 4,7 : 1 */
    --ruki-i: #4893da; /* Тип И — исполнительный: буква, подпись; сектор 9 круга Иттена · oklch(65% 0.130 249) · на --bg-page 6,1 : 1, на --bg-card 5,7 : 1, на --ruki-i-soft 4,6 : 1 */
    --ruki-i-soft: #11283e; /* Тип И — исполнительный: фон метки · oklch(27% 0.050 249) */
    --ruki-i-fill: #2875ba; /* Тип И — исполнительный: заливка фигуры на сцене и метки; тип узнаётся ещё и по букве · oklch(55% 0.130 250) · на --bg-page 4,1 : 1 */
    --ruki-i-ink: #f8fafd; /* Тип И — исполнительный: надпись на заливке · oklch(98% 0.005 258) · на --ruki-i-fill 4,6 : 1 */
    --rz-accent-ink: #f88821; /* Тёплый акцент в надписях: метки над заголовками, номера, подписи чисел · oklch(74% 0.170 56) · на --bg-page 8,0 : 1, на --bg-card 7,5 : 1, на --bg-menu 6,3 : 1, на --bg-selection 4,6 : 1 */
    --deco-wheel-1: #b4a802; /* Круг Иттена, сектор 1 — жёлтый; украшение, нормы контраста не имеет · oklch(72% 0.152 104) */
    --deco-wheel-2: #d29a02; /* Круг Иттена, сектор 2 — жёлто-оранжевый; украшение, нормы контраста не имеет · oklch(72% 0.148 82) */
    --deco-wheel-3: #ef862d; /* Круг Иттена, сектор 3 — оранжевый; украшение, нормы контраста не имеет · oklch(72% 0.160 56) */
    --deco-wheel-4: #f87a62; /* Круг Иттена, сектор 4 — красно-оранжевый; украшение, нормы контраста не имеет · oklch(72% 0.159 32) */
    --deco-wheel-5: #f9786d; /* Круг Иттена, сектор 5 — красный; украшение, нормы контраста не имеет · oklch(72% 0.160 27) */
    --deco-wheel-6: #ef76ac; /* Круг Иттена, сектор 6 — красно-фиолетовый; украшение, нормы контраста не имеет · oklch(72% 0.159 354) */
    --deco-wheel-7: #c884ea; /* Круг Иттена, сектор 7 — фиолетовый; украшение, нормы контраста не имеет · oklch(72% 0.159 314) */
    --deco-wheel-8: #9498ff; /* Круг Иттена, сектор 8 — сине-фиолетовый; украшение, нормы контраста не имеет · oklch(72% 0.148 280) */
    --deco-wheel-9: #50aafe; /* Круг Иттена, сектор 9 — синий; украшение, нормы контраста не имеет · oklch(72% 0.150 249) */
    --deco-wheel-10: #05bbbf; /* Круг Иттена, сектор 10 — сине-зелёный; украшение, нормы контраста не имеет · oklch(72% 0.122 198) */
    --deco-wheel-11: #62bd5c; /* Круг Иттена, сектор 11 — зелёный; украшение, нормы контраста не имеет · oklch(72% 0.160 143) */
    --deco-wheel-12: #8eb533; /* Круг Иттена, сектор 12 — жёлто-зелёный; украшение, нормы контраста не имеет · oklch(72% 0.160 125) */
  }
}
