:root {
  /* Light палитра */
  --color-bg: #f8fafc;
  --color-surface: #ffffff;
  --color-surface-elevated: #ffffff;
  --color-surface-soft: #fafbfc;
  --color-text: #0f172a;
  --color-text-muted: #64748b;
  --color-text-subtle: #94a3b8;
  --color-border: #f1f5f9;
  --color-border-strong: #e5e7eb;

  /* Бренд */
  --color-brand: #7c3aed;
  --color-brand-strong: #6d28d9;
  --color-brand-soft: rgba(124, 58, 237, 0.08);
  --color-brand-soft-strong: rgba(124, 58, 237, 0.18);
  --gradient-brand: linear-gradient(135deg, #4f46e5, #7c3aed);

  /* Семантические */
  --color-success: #059669;
  --color-success-bg: #ecfdf5;
  --color-warning: #d97706;
  --color-warning-bg: #fffbeb;
  --color-danger: #dc2626;
  --color-danger-bg: #fef2f2;

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

  /* Тени */
  --shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.04);
  --shadow-md: 0 4px 12px rgba(15, 23, 42, 0.06);
  --shadow-lg: 0 20px 60px rgba(15, 23, 42, 0.2);
  --shadow-brand: 0 4px 12px rgba(124, 58, 237, 0.3);

  /* Шрифт */
  --font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: ui-monospace, "SF Mono", "Menlo", monospace;

  /* Layout */
  --sidebar-width: 220px;
  --sidebar-rail-width: 60px;
  --topbar-height: 64px;
}

[data-theme="dark"] {
  --color-bg: #0a0a0f;
  --color-surface: #15151c;
  --color-surface-elevated: #1c1c25;
  --color-surface-soft: #1a1a23;
  /* Приглушённые оттенки сдвинуты на ступень светлее. В светлой теме они
   * читаются на белом, а на фоне #0a0a0f прежний #64748b давал контраст
   * около 2,6:1 — заголовки разделов в сайдбаре и шапки колонок таблиц
   * приходилось угадывать. Порог WCAG AA для мелкого текста — 4,5:1. */
  --color-text: #f1f5f9;
  --color-text-muted: #cbd5e1;
  --color-text-subtle: #94a3b8;
  --color-border: #1f1f2a;
  --color-border-strong: #2a2a38;

  /* Бренд и семантика в тёмной теме не переопределялись вовсе: насыщенные
   * цвета, подобранные для белого фона, на тёмном тускнеют. Берём те же
   * оттенки на две-три ступени светлее — узнаваемость сохраняется,
   * читаемость возвращается. */
  --color-brand: #a78bfa;
  --color-brand-strong: #8b5cf6;
  --color-brand-soft: rgba(167, 139, 250, 0.14);
  --color-brand-soft-strong: rgba(167, 139, 250, 0.26);
  --gradient-brand: linear-gradient(135deg, #818cf8, #a78bfa);

  --color-success: #34d399;
  --color-warning: #fbbf24;
  --color-danger: #f87171;
  --color-success-bg: rgba(5, 150, 105, 0.15);
  --color-danger-bg: rgba(220, 38, 38, 0.15);
  --color-warning-bg: rgba(217, 119, 6, 0.15);
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.4);
  --shadow-lg: 0 20px 60px rgba(0, 0, 0, 0.6);
}
