/* Токены дизайн-системы xPay — ЕДИНСТВЕННОЕ место объявления переменных.
 * Подключается во все страницы до их собственных <style>. Страницы и
 * static/*.js используют только var(--…); новые цвета, размеры и отступы
 * заводятся здесь, а не хардкодом (ux-review/AUDIT.md §0.3).
 * Тема одна — тёмная. Палитра бренда (фиолетово-индиговая) не меняется. */
:root {
  color-scheme: dark;

  /* Поверхности */
  --bg: #0a0f1f;
  --bg-2: #0f172a;
  --bg-input: var(--bg-2);
  --panel: var(--bg-2);
  --surface: #131a2e;
  --surface-2: #1a2238;
  --surface-3: #222b44;
  --surface-hover: #1e2740;
  --line: rgba(148, 163, 184, 0.10);
  --line-strong: rgba(148, 163, 184, 0.18);
  --line-input: #5b6b82;          /* граница полей: ≥ 3:1 к --bg и --surface */

  /* Текст. dim/faint подняты до ≥ 4.5:1 на --bg/--surface/--surface-2
     (было #64748b ≈ 3.6:1 и #475569 ≈ 2.3:1 — нечитаемо). */
  --text: #f1f5f9;
  --text-muted: #94a3b8;
  --text-dim: #8a98ad;
  --text-faint: #7c8ba1;
  --text-disabled: #56647a;       /* только неактивное и декор, не для смысла */
  --text-on-accent: #ffffff;

  /* Акцент (бренд) */
  --accent: #818cf8;
  --accent-2: #6366f1;
  --accent-3: #4f46e5;            /* фон под белым текстом: 6.3:1 */
  --accent-glow: rgba(129, 140, 248, 0.35);
  --accent-soft: rgba(99, 102, 241, 0.12);
  --accent-line: rgba(129, 140, 248, 0.35);
  --purple: #a78bfa;

  /* Семантика — одна на всё приложение */
  --success: #34d399;
  --success-soft: rgba(52, 211, 153, 0.12);
  --success-line: rgba(52, 211, 153, 0.35);
  --danger: #f87171;              /* текст и иконки */
  --danger-strong: #ef4444;       /* заливки */
  --danger-soft: rgba(248, 113, 113, 0.12);
  --danger-line: rgba(248, 113, 113, 0.35);
  --warning: #fbbf24;
  --warning-soft: rgba(251, 191, 36, 0.12);
  --warning-line: rgba(251, 191, 36, 0.35);
  --hold: #eab308;
  --info: #60a5fa;
  --info-soft: rgba(96, 165, 250, 0.12);
  --violet: #c084fc;              /* второй цвет бренд-градиента */
  --scam: var(--violet);          /* скам отличается от «отклонён» */
  --scam-soft: rgba(192, 132, 252, 0.12);
  --orange: #fb923c;
  --pink: #fb7185;

  /* Старые имена — синонимы, пока страницы не переведены */
  --good: var(--success);
  --warn: var(--warning);
  --bad: var(--danger);

  /* Статусы чека */
  --status-confirmed: var(--success);
  --status-pending: var(--warning);
  --status-hold: var(--hold);
  --status-rejected: var(--danger);
  --status-scam: var(--scam);

  /* Типографика */
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --fs-11: 11px;
  --fs-12: 12px;
  --fs-13: 13px;
  --fs-14: 14px;
  --fs-16: 16px;
  --fs-20: 20px;
  --fs-24: 24px;
  --fs-32: 32px;
  --lh-tight: 1.25;
  --lh: 1.5;

  /* Отступы — сетка 4px */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;
  --sp-8: 32px;
  --sp-10: 40px;

  /* Радиусы */
  --radius-xs: 6px;
  --radius-sm: 8px;
  --radius: 10px;
  --radius-lg: 14px;
  --radius-xl: 18px;
  --radius-pill: 999px;

  /* Тени */
  --shadow-sm: 0 1px 2px rgba(0,0,0,.3);
  --shadow: 0 6px 18px -8px rgba(0,0,0,.55), 0 2px 6px -2px rgba(0,0,0,.4);
  --shadow-lg: 0 24px 48px -12px rgba(0,0,0,.65), 0 8px 16px -8px rgba(0,0,0,.45);
  --shadow-glow: 0 0 0 1px rgba(129, 140, 248, .25), 0 8px 26px -10px var(--accent-glow);

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

  /* Слои */
  --z-sticky: 50;
  --z-dropdown: 100;
  --z-modal: 1000;
  --z-toast: 1100;

  /* Движение */
  --ease: cubic-bezier(.4, 0, .2, 1);
  --t: 180ms;

  /* Тач-цель */
  --tap: 44px;
}

@media (prefers-reduced-motion: reduce) {
  :root { --t: 0ms; }
}
