/* ============================================================================
   BizEmpire UI — tokens.css
   Единственное место, где живут цветовые литералы. Всё остальное (ui.css,
   компоненты) — только var(--…).

   Темы: :root — тёмная (по умолчанию), :root[data-theme="light"] — светлая.
   Тему ставит скрипт по localStorage `bizempire_theme` (при `dark` атрибут
   удаляется, как в game.html), поэтому prefers-color-scheme здесь не нужен.

   Контраст (WCAG 2.x, проверено скриптом):
     --text / --text-2 / --text-muted / --tbl-head-text  ≥ 4.5:1
       к --bg, --bg-elev, --surface, --surface-2, --surface-hover, --tbl-head-bg
     --accent, --pos, --neg, --warn, --info, --mine, --neu  ≥ 4.5:1 как текст
       к тем же поверхностям и к своим *-dim подложкам
     --accent-text ≥ 4.5:1 к --accent (текст на сплошном акценте)
     --series-1…6 ≥ 3:1 к --bg и --surface (графика)
   ========================================================================== */

/* ---------- Шрифт Inter (локальный, без внешних запросов) ---------- */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url('/fonts/inter-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url('/fonts/inter-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---------- Тёмная тема (по умолчанию) ---------- */
:root {
  color-scheme: dark;

  /* поверхности */
  --bg: #0b1220;
  --bg-elev: #0e1729;
  --surface: #111c33;
  --surface-2: #172441;
  --surface-hover: #1d2d4f;
  --border: #23334f;
  /* ≥ 3:1 к --bg/--surface/--surface-2 (WCAG 1.4.11): контур тумблера,
     рёбра/стрелки схемы при выключенной анимации, дорожка .cell-range */
  --border-strong: #5f759e;
  --overlay: rgba(4, 8, 18, 0.64);

  /* текст */
  --text: #e6edf8;
  --text-2: #b8c5dc;
  --text-muted: #a9b7d0;
  --text-inverse: #0b1220;

  /* акцент (cyan, как в игре) */
  --accent: #00e5ff;
  --accent-dim: rgba(0, 229, 255, 0.14);
  /* цвет текста ПОВЕРХ сплошного акцентного фона (.btn--primary, тумблер) */
  --accent-text: #0b1220;

  /* семантика (цвет = текст/точка/полоса, *-dim = подложка) */
  --pos: #34d399;
  --pos-dim: rgba(52, 211, 153, 0.14);
  --neg: #ff7e7e;
  --neg-dim: rgba(255, 126, 126, 0.14);
  --warn: #fbbf24;
  --warn-dim: rgba(251, 191, 36, 0.14);
  --info: #71a8ff;
  --info-dim: rgba(113, 168, 255, 0.16);
  --mine: #c4a0ff;
  --mine-dim: rgba(196, 160, 255, 0.14);
  --neu: #9aaac6;

  /* компактный слой (css/compact.css): средняя рамка контролов, звёзды уровней, изометрия площадки */
  --border-2: #2d4064;
  --star: #f5b301;
  --iso-top: #2a3d62;
  --iso-left: #182744;
  --iso-right: #20325a;
  --iso-edge: #3a5282;
  --iso-slot: #33486f;

  /* серии графиков */
  --series-1: #00e5ff;
  --series-2: #34d399;
  --series-3: #fbbf24;
  --series-4: #ff7e7e;
  --series-5: #c4a0ff;
  --series-6: #71a8ff;

  /* таблицы */
  --tbl-head-bg: #0f1a30;
  --tbl-head-text: #a9b7d1;
  --tbl-border: #1e2c47;
  --tbl-zebra: rgba(255, 255, 255, 0.02);
  --tbl-hover: rgba(0, 229, 255, 0.06);
  --tbl-mine: rgba(196, 160, 255, 0.1);
  --tbl-selected: rgba(0, 229, 255, 0.12);
  --tbl-row-compact: 26px;
  --tbl-row-normal: 32px;
  --tbl-row-comfortable: 40px;

  /* типографика */
  --font-body: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-mono: ui-monospace, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;
  /* шкала размеров крупнее на 1–1,5 px (владелец 29.09: «цифры и шрифты не читабельны»);
     имена — прежние ступени, значения — читаемые */
  --fs-11: 12.5px;
  --fs-12: 13.5px;
  --fs-13: 14.5px;
  --fs-14: 15.5px;
  --fs-16: 17.5px;
  --fs-20: 21.5px;
  --fs-24: 26px;

  /* отступы */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 40px;
  --space-8: 48px;

  /* радиусы */
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;

  /* z-index */
  --z-base: 0;
  /* слои внутри .tbl-wrap (свой stacking context: container-type) */
  --z-tbl-cell: 1;
  --z-tbl-head: 2;
  --z-tbl-corner: 3;
  --z-sticky: 10;
  --z-panel: 20;
  --z-banner: 30;
  --z-modal: 40;
  --z-toast: 50;

  /* движение */
  --dur-fast: 120ms;
  --dur: 250ms;
  --dur-slow: 400ms;
  --ease: cubic-bezier(0.2, 0.8, 0.2, 1);

  /* фокус */
  --focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--accent);

  /* тени (через overlay, чтобы не плодить литералов) */
  --shadow-sm: 0 1px 2px var(--overlay);
  --shadow-md: 0 6px 20px var(--overlay);

  /* алиасы для переменных, которые игра использует, но не определяет
     (для будущего подключения tokens.css в game.html) */
  --glass-bg: rgba(15, 23, 52, 0.45);
  --bg-dark: var(--bg);
  --primary: var(--accent);
}

/* ---------- Светлая тема ---------- */
:root[data-theme="light"] {
  color-scheme: light;

  /* поверхности */
  --bg: #eef1f5;
  --bg-elev: #f5f7fa;
  --surface: #ffffff;
  --surface-2: #eef1f6;
  --surface-hover: #e3e8f0;
  --border: #d3dae5;
  --border-strong: #76849c; /* ≥ 3:1 к --bg/--surface/--surface-2 */
  --overlay: rgba(20, 30, 50, 0.4);

  /* текст */
  --text: #131a2b;
  --text-2: #3a4560;
  --text-muted: #485470;
  --text-inverse: #ffffff;

  /* акцент (тёмный cyan: ≥ 4.5:1 как текст и под белый текст) */
  --accent: #00648f;
  --accent-dim: rgba(0, 100, 143, 0.12);
  --accent-text: #ffffff;

  /* семантика */
  --pos: #056b4f;
  --pos-dim: rgba(5, 107, 79, 0.12);
  --neg: #b91c1c;
  --neg-dim: rgba(185, 28, 28, 0.1);
  --warn: #8f4900;
  --warn-dim: rgba(143, 73, 0, 0.12);
  --info: #2450b8;
  --info-dim: rgba(36, 80, 184, 0.12);
  --mine: #6d28d9;
  --mine-dim: rgba(109, 40, 217, 0.1);
  --neu: #525e77;

  /* компактный слой */
  --border-2: #c3cddc;
  --star: #b97f00;
  --iso-top: #e2e9f3;
  --iso-left: #c3cfe0;
  --iso-right: #d2dbe8;
  --iso-edge: #9fb0c9;
  --iso-slot: #aab8cd;

  /* серии графиков (темнее/насыщеннее, ≥ 3:1 к белому) */
  --series-1: #0084b8;
  --series-2: #047857;
  --series-3: #b45309;
  --series-4: #c02020;
  --series-5: #7c3aed;
  --series-6: #2f5fc9;

  /* таблицы */
  --tbl-head-bg: #f3f5f9;
  --tbl-head-text: #47536c;
  --tbl-border: #e1e6ee;
  --tbl-zebra: rgba(15, 23, 42, 0.025);
  --tbl-hover: rgba(0, 100, 143, 0.07);
  --tbl-mine: rgba(109, 40, 217, 0.08);
  --tbl-selected: rgba(0, 100, 143, 0.12);

  /* алиасы */
  --glass-bg: rgba(255, 255, 255, 0.7);
}

/* ---------- Движение выключено: reduced-motion или тумблер игрока ---------- */
@media (prefers-reduced-motion: reduce) {
  :root {
    --dur-fast: 0ms;
    --dur: 0ms;
    --dur-slow: 0ms;
  }
}
html[data-motion="off"] {
  --dur-fast: 0ms;
  --dur: 0ms;
  --dur-slow: 0ms;
}

/* ---------- Базовая типографика документа ---------- */
body {
  background: var(--bg);
  color: var(--text);
  font: 14px/1.4 var(--font-body);
  font-feature-settings: 'tnum' 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
