/* Токены оформления. Единственный источник цвета, кегля, радиусов и размеров цели касания.
   Часть CRM аренды. ПОРЯДОК ПОДКЛЮЧЕНИЯ ВАЖЕН: подключается сразу после 00-fonts.css.
   Значения — из docs/handoff/REDESIGN.md §3 с пересчётом контраста по WCAG 2.x.
   Новых hex-значений вне этого файла быть не должно: только var(). */

:root {
  color-scheme: dark;

  /* --- Поверхности. Уровни различаются слабо (1.05–1.31), поэтому граница есть всегда. --- */
  --night: #0b0d1a; /* земля: body, .main */
  --surface: #141830; /* панель, карточка, лист */
  --raised: #20254a; /* поле ввода, шапка таблицы, плитка */
  --sunken: #0f1327; /* подложка внутри панели */

  /* --- Границы. Обязательны на каждом переходе уровня. --- */
  --border-subtle: rgba(255, 255, 255, 0.12); /* край панели: 1.36–1.45:1 */
  --border-strong: rgba(255, 255, 255, 0.22); /* декоративная кромка: 2.0:1 */
  /* Граница органа управления опознаёт его сама по себе — WCAG 1.4.11 требует
     3:1. 38% белого даёт 3.40–3.57:1 на всех четырёх поверхностях. */
  --border-field: rgba(255, 255, 255, 0.38);

  /* --- Текст. Контраст к surface / raised. --- */
  --pearl: #eeedf7; /* основной: 15.04 / 12.70 */
  --soft: #b8b9d0; /* второстепенный: 9.05 / 7.64 */
  --mist: #8f93ab; /* вспомогательный: 5.76 / 4.86 */

  /* --- Акцент. --- */
  --violet: #8f7fd6; /* заливка кнопок и активных элементов */
  --lavender: #c7b8f0; /* ссылки и подписи поверх поверхностей: 9.59 / 8.10 */
  --on-violet: #14162a; /* текст на залитом фиолетовом: 5.24 */
  --violet-tint: rgba(143, 127, 214, 0.16);
  --violet-edge: rgba(143, 127, 214, 0.45);

  /* --- Деньги и занятость. Амбра — «свет горит» и «получено», тлеющий — просрочка. --- */
  --window: #f3c77b; /* 11.03 / 9.31 */
  --ember: #f08a7e; /* 7.18 / 6.06 */
  --window-tint: rgba(243, 199, 123, 0.14);
  --window-edge: rgba(243, 199, 123, 0.5);
  --ember-tint: rgba(240, 138, 126, 0.14);
  --ember-edge: rgba(240, 138, 126, 0.5);

  /* --- Расходы дома — прямое решение владельца (DASH-4, `REQUIREMENTS.md`
         п. 103: разрешено до трёх новых смысловых цветов-токенов). Расход —
         не авария и не просрочка: красить его `--ember` значит каждый месяц
         пугать инвестора нормальной хозяйственной строкой, а своего цвета
         «потратили» в системе не было. Тёплая глина стоит рядом с золотом по
         температуре и читается как «то же тепло, но ушло».
         Контраст текста этим цветом (WCAG 2.x, относительная яркость 0.46399):
         --night 9.46 · --surface 8.55 · --sunken 9.00 · --raised 7.22 ·
         --clay-tint над --surface 6.71 — все ≥ 4,5. Как заливка полосы на
         дорожке --sunken 9.00 (для графики нужно 3:1). --- */
  --clay: #e3a985;
  --clay-tint: rgba(227, 169, 133, 0.14);
  --clay-edge: rgba(227, 169, 133, 0.5);

  /* --- Депозиты жильцов на хранении (то же решение владельца). Депозит — не
         доход и не расход (`CONVENTIONS.md` §4), поэтому он и не зелёный, и
         не глиняный, и не золотой. Холодная бирюза — единственный холодный
         акцент на витрине, и стоит он ровно там, где лежат чужие деньги.
         Контраст текста (относительная яркость 0.536589):
         --night 10.80 · --surface 9.75 · --sunken 10.27 · --raised 8.24 ·
         --tide-tint над --surface 7.34 — все ≥ 4,5.
         Третий разрешённый цвет не израсходован и остаётся в запасе. --- */
  --tide: #79cfd8;
  --tide-tint: rgba(121, 207, 216, 0.14);
  --tide-edge: rgba(121, 207, 216, 0.5);

  /* --- Оплачено на карточке квартиры — прямое решение владельца (UI-8d,
         `REQUIREMENTS.md` п. 44): «оплачено — зелёная», отдельно от амбры,
         которая на этом экране занята «сроком сегодня/частично». Единственное
         новое значение цвета в системе: старый псевдоним `--green` ниже равен
         `--violet` (для v1-разметки, нигде не используется) и зелёным не
         является. Контраст текста этим цветом ≥ 4,5:1 на --surface (10.25),
         --sunken (11.35) и на его же однослойной подложке --leaf-tint (7.61). --- */
  --leaf: #8ed6a8;
  --leaf-tint: rgba(142, 214, 168, 0.14);
  --leaf-edge: rgba(142, 214, 168, 0.5);

  /* --- Состояния интерфейса. --- */
  --state-hover: rgba(255, 255, 255, 0.06);
  --state-active: rgba(143, 127, 214, 0.22);
  --state-disabled: 0.45; /* множитель прозрачности для :disabled */
  --overlay: rgba(6, 8, 18, 0.72); /* подложка диалога */
  --shadow-1: 0 6px 18px -10px rgba(4, 5, 12, 0.8);
  --shadow-2: 0 26px 60px -28px rgba(4, 5, 12, 0.9);
  --shadow-up: 0 -8px 18px -8px rgba(4, 5, 12, 0.9); /* липкие панели снизу */

  /* --- Земля под частицами. Глубокая ночь, не чёрный: виньетка сверху даёт
         объём, нижнее пятно — тёплый отсвет окон. Слой частиц (DES-6) ложится
         поверх, поэтому земля не плоская. --- */
  --ground:
    radial-gradient(140% 90% at 50% -20%, rgba(32, 37, 74, 0.55), transparent 62%),
    radial-gradient(100% 80% at 100% 108%, rgba(143, 127, 214, 0.1), transparent 60%), var(--night);

  /* --- Пелена над фоновой картиной (TRN-1, ART-1). Картина лежит под слоем
         частиц, пелена — над картиной: она и есть то, чем держится контраст
         текста на собранном фоне. Плотнее сверху и снизу, где текст стоит
         прямо на земле (заголовок экрана, сноски), чуть прозрачнее в середине,
         где текст живёт на непрозрачных панелях. Виньетка по краям гасит
         светлые углы картин. Каналы — те же 11/13/26, что у --night; пелена
         не вводит нового цвета, только его прозрачные доли. --- */
  --art-veil:
    linear-gradient(
      180deg,
      rgba(11, 13, 26, 0.82) 0%,
      rgba(11, 13, 26, 0.74) 16%,
      rgba(11, 13, 26, 0.66) 50%,
      rgba(11, 13, 26, 0.72) 100%
    ),
    radial-gradient(130% 80% at 50% 8%, rgba(11, 13, 26, 0) 45%, rgba(11, 13, 26, 0.42) 100%);

  /* --- Свечение. Мягкий ореол вокруг живых цифр, окон и предупреждений.
         Кислотного неона нет: тот же ночной набор — амбра, лаванда, тлеющий. --- */
  --glow-window: 0 0 20px -4px rgba(243, 199, 123, 0.55);
  --glow-violet: 0 0 22px -4px rgba(143, 127, 214, 0.5);
  --glow-ember: 0 0 20px -4px rgba(240, 138, 126, 0.5);
  --glow-leaf: 0 0 20px -4px rgba(142, 214, 168, 0.5);
  --glow-window-text: 0 0 14px rgba(243, 199, 123, 0.45);
  --glow-violet-text: 0 0 14px rgba(199, 184, 240, 0.4);
  --glow-ember-text: 0 0 14px rgba(240, 138, 126, 0.4);

  /* --- HUD: полупрозрачные панели меню поверх частиц. Кромка светится тонко.
         Прозрачность даёт «стекло» без backdrop-filter: размытие поверх живого
         canvas пересчитывается каждый кадр и греет телефон управляющего
         (REDESIGN Б.10). Размытие — только в диалогах над статичной подложкой. --- */
  --hud-surface: rgba(20, 24, 48, 0.62);
  --hud-surface-strong: rgba(15, 19, 39, 0.82);
  --hud-border: rgba(199, 184, 240, 0.28);
  --hud-edge: inset 0 1px 0 rgba(255, 255, 255, 0.08);

  /* --- Фокус. Жемчужная рамка: 12.70–16.65:1 к любой поверхности (было 1.98).
         Не амбра: амбра занята смыслом «горит / получено», и на плотной таблице
         оплаты рамка фокуса не должна читаться как статус. --- */
  --focus: var(--pearl);
  --focus-width: 2px;
  --focus-offset: 3px;

  /* --- Шрифты. Manrope — интерфейс и цифры; Cormorant — только крупные заголовки витрины. --- */
  --font-ui: 'Manrope', 'Segoe UI', system-ui, sans-serif;
  --font-display: 'Cormorant Garamond', 'Manrope', Georgia, serif;

  /* --- Шкала кегля. Обычные величины, без увеличения «под возраст»:
         решение владельца 2026-09-16 (REQUIREMENTS.md п. 57) — «шрифты были
         увеличены из-за возраста пользователей, но все они прекрасно видят,
         не надо увеличивать шрифты без необходимости». Пол шкалы остаётся
         прежним и обязательным: основной текст 16px, подписи и всё
         вспомогательное 14px, мельче 14px на экране нет ничего —
         ни чипов статуса, ни шапок таблиц, ни подписей осей графиков
         (CONVENTIONS §8). Уменьшены только заголовки и меню.
         Подзаголовок панели (--text-h3) сравнялся с основным текстом по
         кеглю, поэтому отличается весом: h3 набирается 700 (02-base.css). --- */
  --text-small: 14px; /* подписи, сноски, чипы, шапки таблиц */
  --text-nav: 14px; /* пункты меню и шапка страницы (было 15) */
  --text-body: 16px; /* основной текст и значение в поле ввода */
  --text-h3: 16px; /* подзаголовок внутри панели, вес 700 (было 18) */
  --text-h2: 18px; /* заголовок панели (было 20) */
  --text-h1: 28px; /* заголовок экрана (было 34) */
  --text-desk-lead: 32px; /* ведущая цифра рабочего стола (DASH-2): не 48 — это не витрина */
  --text-display: 48px; /* лозунг входа и крупная сумма витрины */

  /* Прежние имена шкалы оставлены псевдонимами: их зовут ~150 правил в
     02-base…17-mobile-input, и поимённая замена дала бы одну и ту же
     величину при большем риске. Новые правила пишут имена выше. */
  --text-aux: var(--text-small); /* было 12px */
  --text-13: var(--text-small); /* было 13px */
  --text-15: var(--text-body); /* было 15px */
  --text-18: var(--text-h2); /* было 18px */
  --text-24: 22px; /* марка в пульте, крупная цифра метрики (было 24) */
  --text-34: var(--text-h1);
  --text-48: var(--text-display);

  /* --- Радиусы. --- */
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-xl: 20px;
  --radius-pill: 999px;

  /* --- Цель касания. --- */
  --tap: 44px;
  --tap-lg: 48px;

  /* --- Псевдонимы прежних имён: чтобы не гоняться за var() по файлам.
         Используются в 17-mobile-input.css. Новые правила пишут новые имена. --- */
  --paper: var(--night);
  --white: var(--surface);
  --ink: var(--pearl);
  --muted: var(--mist);
  --green: var(--violet);
  --line: var(--border-subtle);
  --gold: var(--window);
  --soft-bg: var(--sunken);
}

/* Заголовок экрана на телефоне — 22px (POL-6 п. 1.1). Величина задаётся
   токеном, а не правилом для h1: на --text-h1 смотрят и витрина инвестора,
   и главная, и заголовки диалогов, и все они должны уменьшиться вместе,
   а не каждый своим правилом.
   Было 24 (решение владельца п. 57), но тот же ярус набирался двумя кеглями
   сразу: 24 гротеском на «Квартирах», «Главной», «Тарифах», «Пользователях»
   и 22 антиквой на «Обзоре», который владелец поставил решением п. 104.
   22 совпадает с «Обзором» и с --text-24, который уже 22. */
@media (max-width: 780px) {
  :root {
    --text-h1: 22px;
  }
}
