/* Базовый слой дизайн-системы «Калька» — тема «Шалфей» (default), FRONT (baseline i5):
 * SSR + htmx + Alpine, без node. Здесь живёт ЕДИНСТВЕННАЯ точка правды для палитры, шрифтов
 * и кросс-экранных примитивов. Компонентные CSS модулей (auth.css, scheduling.css, …) подключаются
 * ПОСЛЕ этого файла и переиспользуют var(--…) — свои токены не переизобретают.
 *
 * Тёмная тема в v1 НЕ рисуется (открытый вопрос владельца) — но палитра вынесена в CSS-переменные,
 * чтобы будущая тёмная тема была свопом :root, а не переписыванием компонентов во всех модулях.
 *
 * Шрифты: заголовки — Literata, текст — Golos Text. Файлы woff2 в дереве репозитория ЕСТЬ
 * (static/landing/fonts/ — их вендорит витрина), но приложение их НЕ подключает: правил загрузки
 * гарнитур в статике приложения ноль, экраны кабинета рисуются системными фолбэками
 * (system-ui / Georgia) — интерфейс пригоден. Заводить такое правило ЗДЕСЬ ЗАПРЕЩЕНО решением
 * FONT-R §7.1: раздача заголовочного шрифта всем экранам приложения — отдельное решение с ценой
 * (вес, CORS, Vary: Origin, первый экран), и его никто не принимал. Тянуть с публичных CDN
 * (Google Fonts) запрещено тем более (FRONT).
 */

:root {
  --paper: #f6f5f1;
  --card: #fffdf9;
  --ink: #2b2e2a;
  --muted: #69706a;
  --border: #e4e2da;
  --accent: oklch(0.52 0.07 150);
  --accent-hover: oklch(0.45 0.07 150);
  --accent-soft: oklch(0.96 0.02 150);
  --danger-bg: #f7ecea;
  --danger-ink: #8c443c;
  --danger-border: #eddad6;
  --ok-bg: #edf3ec;
  --ok-ink: #44603f;
  --ok-border: #dbe7d8;
  --warn-bg: #f5edda;
  --warn-ink: #a3813c;
  --font-h: "Literata", Georgia, serif;
  --font-b: "Golos Text", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --shadow: 0 12px 32px rgba(58, 68, 58, 0.09);
  --card-border: 1px solid #eceae2;
  --radius: 12px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Логотип сервиса. Разметка — core/_logo.html, файл — static/brand/logo.svg (контуры
 * PT Serif Bold). Высота по умолчанию рассчитана на прежний кегль словомарки 27px:
 * прописная в PT Serif ≈ 0.7 em. Поверхности с другим масштабом переопределяют height. */
.brand-logo {
  display: inline-block;
  vertical-align: middle;
  width: auto;
  height: 19px;
}

/* Alpine: прячем помеченные узлы, пока фреймворк не инициализировался (без JS они не мелькают
 * и не показывают «мёртвые» контролы). */
[x-cloak] {
  display: none !important;
}

/* Текст только для скринридера: узел остаётся в потоке доступности, но не занимает места на
 * экране. Нужен там, где видимая подпись сжата до символа или сокращения (двухбуквенный бейдж дня
 * в расписании: «Пн» глазами, «Понедельник» скринридеру). НЕ display:none и не visibility:hidden —
 * они убирают узел и из дерева доступности. */
.u-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

body {
  margin: 0;
  font-family: var(--font-b);
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
}
