/* СлайдПро — «Чёрный и шафран». Общая палитра и размеры интерфейса.
   Цвета загруженных презентаций и пресеты текстовых слайдов не меняются. */
:root {
  --c-paper: #FAF8F0;
  --c-white: #FFFFFF;
  --c-ink: #24231D;
  --c-ink-2: #68665B;
  --c-ink-3: #68665B;
  --c-line: #CECBBE;
  --c-neutral-surface: #EFEDDF;
  --c-saffron: #F0C744;
  --c-saffron-hover: #DCB42D;
  --c-saffron-light: #F7D66B;
  --c-on-saffron: #30270A;
  --c-success-lt: #466526;
  --c-danger-lt: #AC3434;
  --c-black: #191A16;
  --c-coal: #24261F;
  --c-coal-2: #2B2D25;
  --c-coal-brd: #56594A;
  --c-chalk: #F8F6E8;
  --c-chalk-2: #C5C5B6;
  --c-chalk-3: #A6A897;
  --c-success-dk: #ADCD7B;
  --c-danger-dk: #FF9C91;
  --c-neutral: #C5C5B6;
}
:root, :root[data-theme="dark"] {
  --bg: var(--c-black);
  --surface: var(--c-coal);
  --surface-raised: var(--c-coal-2);
  --border: var(--c-coal-brd);
  --text-primary: var(--c-chalk);
  --text-secondary: var(--c-chalk-2);
  --text-tertiary: var(--c-chalk-3);
  --accent: var(--c-saffron);
  --accent-hover: var(--c-saffron-light);
  --on-accent: var(--c-on-saffron);
  --link: var(--c-saffron);
  --focus: var(--c-saffron);
  --success: var(--c-success-dk);
  --danger: var(--c-danger-dk);
  --neutral-badge: var(--c-neutral);
  --overlay: rgba(0, 0, 0, .74);
  --pill: rgba(0, 0, 0, .9);
}
:root[data-theme="light"] {
  --bg: var(--c-paper);
  --surface: var(--c-white);
  --surface-raised: var(--c-white);
  --border: var(--c-line);
  --card-border: var(--c-line);
  --text-primary: var(--c-ink);
  --text-secondary: var(--c-ink-2);
  --text-tertiary: var(--c-ink-3);
  --accent: var(--c-saffron);
  --accent-hover: var(--c-saffron-hover);
  --on-accent: var(--c-on-saffron);
  --link: var(--c-ink);
  --focus: var(--c-ink);
  --success: var(--c-success-lt);
  --danger: var(--c-danger-lt);
  --elevation-1: none;
  --elevation-2: none;
}
:root {
  --font-ui: Arial, "Segoe UI", sans-serif;
  --font-display: "Arial Black", Arial, "Segoe UI", sans-serif;
  --font-mono: ui-monospace, "SF Mono", Consolas, monospace;
  /* Семейства пользовательских слайдов независимы от шрифта интерфейса. */
  --font-card-g: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-card-s: Georgia, "Times New Roman", serif;
  --r-tile: 2px;
  --r-card: 2px;
  --r-modal: 4px;
  --r-full: 999px;
  /* Общая шкала движения: нажатие, смена состояния, появление окна. */
  --motion-fast: 120ms;
  --motion-normal: 160ms;
  --motion-enter: 200ms;
  --motion-ease: cubic-bezier(.2, 0, 0, 1);
  --motion-ease-out: cubic-bezier(.3, 0, 1, 1);
  --ease: var(--motion-normal) var(--motion-ease);
  --btn-h-xl: 60px;
  --btn-h-lg: 56px;
  --btn-h-md: 48px;
  --btn-r-lg: 2px;
  --btn-r-md: 2px;
  --r-btn: 2px;
  --btn-fs-lg: 17px;
  --btn-fs-md: 15px;

  /* Сколько живёт тост. Был переписан дважды и разошёлся: 3200 мс в кабинете против
     5000 мс во вьюере. Читается из JS: parseFloat(getComputedStyle(...)) */
  --toast-ms: 4000;

  /* --- Шкала бейджей (контракт связанности, волна 2) ---
     Бейджи оказались единственным слоем, который волна 1 не связала: три роли жили
     в четырёх бандлах своими числами, а имя `.badge` вдобавок значило РАЗНОЕ —
     в кабинете 32/13, во вьюере 34/16. Роль выбирается по МЕСТУ, где бейдж читают. */
  --badge-h-lg: 34px;  --badge-fs-lg: 16px;   /* статус в показе: улица, солнце, чужой телефон */
  --badge-h-md: 32px;  --badge-fs-md: 13px;   /* статус внутри интерфейса (превью, кабинет) */
  --badge-h-sm: 22px;  --badge-fs-sm: 12px;   /* тип/метка на карточке, вторичная мета */

  /* Safe area (Android/iOS) */
  --sab: env(safe-area-inset-bottom, 0px);
  /* Боковых и верхней зон не было вовсе, а вьюер — единственный экран, который держат
     ГОРИЗОНТАЛЬНО: турист увеличил снимок и повернул телефон. Стрелки стоят в 8–10px
     от края, вырез съедает около 44 — от кнопки 56px оставалась полоска в четверть.
     Счётчик и статус одновременно прижимались к другой опасной зоне. */
  --sat: env(safe-area-inset-top, 0px);

  /* Ширины основных контейнеров — КОНТРАКТ, а не вкус бандла.
     Насчитали 14 разных значений на одни и те же по смыслу коробки: карточка входа
     400 в основной теме и 420 в двух других, тост 460 и 480, сетки 640/900/1120
     против 660/920/1140, лендинг 1100 против 1080. Расхождение не решал никто —
     тему копировали вместе с числами, и продукт переставал выглядеть одним целым
     при переходе между поверхностями (адверсариальное ревью 2026-07-26).
     Имя = роль коробки, а не место, где её впервые набрали. */
  --w-form: 420px;      /* карточка входа/регистрации */
  --w-toast: 460px;     /* всплывающее уведомление */
  --w-narrow: 640px;    /* узкая колонка: документ, длинный текст */
  --w-mid: 900px;       /* средняя сетка */
  --w-wide: 1120px;     /* широкая сетка кабинета */
  --w-page: 1100px;     /* маркетинговая страница */

  --sal: env(safe-area-inset-left, 0px);
  --sar: env(safe-area-inset-right, 0px);
}
@media (prefers-reduced-motion: reduce) {
  :root { --motion-fast: 0ms; --motion-normal: 0ms; --motion-enter: 0ms; }
}
