/* ============================================================================
   SOMNIUM TOKENS (tokens.css) — каноническая база переменных
   ----------------------------------------------------------------------------
   Это очищенный, дедуплицированный набор :root-токенов проекта (палитра new_all).
   Совпадает со значениями в main.css. somnium-ui.css опирается ТОЛЬКО на них.
   В проекте этот блок уже живёт в main.css — здесь он вынесен для UI Kit и как
   единая точка правды по токенам.
   ============================================================================ */
:root {
  /* Поверхности */
  --sand: #f1f2ed; --sand-deep: #e4e8df; --cream: #f8f8f4; --white: #ffffff;

  /* Тёплый акцент */
  --warm: #b9654d; --warm-soft: #d38f76; --warm-pale: #f0dcd2; --warm-bg: #fbf0eb; --warm-dark: #8f4f3d;

  /* Текст */
  --ink: #252321; --ink-mid: #4d4a45; --ink-soft: #7d7972; --ink-faint: #aaa69d;

  /* Спокойные нейтрали */
  --sage: #718a78; --sage-bg: #eaf1e9; --sky-muted: #7890a6; --sky-bg: #edf3f7;

  /* Статусы */
  --success: #10b981; --success-bg: #d1fae5; --success-text: #065f46; --success-dark: #059669; --success-strong: #38a169;
  --danger: #ef4444; --danger-bg: #fee2e2; --danger-text: #991b1b; --danger-dark: #c0392b; --danger-strong: #dc2626; --danger-alt: #e53e3e;
  --warning: #f59e0b; --warning-bg: #fef3c7; --warning-text: #92400e;
  --info: #3b82f6; --info-bg: #dbeafe; --info-text: #1e40af;

  /* Палитра файлов Drive */
  --file-word: #2b5fad; --file-excel: #1e7145; --file-impress: #c05020; --file-draw: #7b3fa0; --file-pdf: #c0392b;
  --file-word-bg: #dce8f8; --file-excel-bg: #d6f0e0; --file-impress-bg: #fde8df; --file-draw-bg: #efe0f8; --file-pdf-bg: #fdecea;

  /* Звонки / тёмный UI */
  --call-blue: #5b8dee; --call-purple: #7c6be0;
  --avatar-grad: linear-gradient(135deg, var(--warm) 0%, var(--call-purple) 100%);
  --meet-bg: #343b38; --meet-surface: #4b5752;

  /* Границы и тени */
  --border: rgba(26,22,19,0.08); --border-s: rgba(26,22,19,0.14);
  --shadow-sm: 0 1px 3px rgba(26,22,19,0.04);
  --shadow-md: 0 4px 20px rgba(26,22,19,0.06);
  --shadow-lg: 0 12px 40px rgba(26,22,19,0.08);
  --shadow-xl: 0 24px 64px rgba(26,22,19,0.16);
  --ring-warm: 0 0 0 3px var(--warm-pale);
  --ring-danger: 0 0 0 3px rgba(239,68,68,0.18);
  --ring-success: 0 0 0 3px rgba(16,185,129,0.18);
  --shadow-warm-soft: 0 4px 14px rgba(193,95,60,0.22);
  --shadow-warm-strong: 0 8px 24px rgba(193,95,60,0.3);
  --backdrop: rgba(26,22,19,0.55);
  --active: #35312e;

  /* Радиусы */
  --radius-xs: 6px; --radius-sm: 10px; --radius: 16px; --radius-md: 18px; --radius-lg: 24px; --radius-full: 100px;

  /* Спейсинг */
  --spacing-xs: 4px; --spacing-sm: 8px; --spacing-md: 16px; --spacing-lg: 24px; --spacing-xl: 32px; --spacing-2xl: 48px;

  /* Типографика
     ОТЛИЧИЕ ОТ КАНОНА doc/system_design/somnium-ui/tokens.css: там sans =
     Bricolage Grotesque, serif = Newsreader. Ни один из них не содержит
     кириллицы — на русском и казахском они не отрисовали бы ни одной буквы и
     страница молча падала бы на системный фолбэк. Заменены на ближайшие по
     характеру шрифты с полной кириллицей (вкл. казахские ә ғ қ ң ө ұ ү һ і).
     Обоснование: doc/decisions/ADR-0002-fonts.md */
  --font-family-sans: 'Onest', system-ui, -apple-system, sans-serif;
  --font-family-serif: 'Literata', Georgia, serif;
  --font-family-mono: 'IBM Plex Mono', 'Courier New', monospace;
  --font-size-xs: 11.5px; --font-size-sm: 13.5px; --font-size-base: 14px; --font-size-md: 15px;
  --font-size-lg: 17px; --font-size-xl: 21px; --font-size-2xl: 30px; --font-size-3xl: 42px; --font-size-4xl: 76px;
  --font-weight-light: 300; --font-weight-normal: 400; --font-weight-medium: 500;
  --font-weight-semibold: 600; --font-weight-bold: 700; --font-weight-black: 800;

  /* Переходы */
  --transition-fast: all 0.15s cubic-bezier(0.4,0,0.2,1);
  --transition: all 0.2s cubic-bezier(0.4,0,0.2,1);
  --transition-slow: all 0.3s cubic-bezier(0.4,0,0.2,1);
}

/* keyframes, на которые опираются компоненты somnium-ui */
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes fadeInDown { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: translateY(0); } }
