/* Сгенерировано build-tokens.mjs — не редактировать вручную. */
/* Источник: design-tokens.json */

:root {
  color-scheme: light;

  /* палитра (для определения семантики, не для вёрстки) */
  --gray-0: #FFFFFF;
  --gray-50: #F8FAFC;
  --gray-100: #F1F5F9;
  --gray-200: #E2E8F0;
  --gray-300: #CBD5E1;
  --gray-400: #94A3B8;
  --gray-500: #64748B;
  --gray-600: #475569;
  --gray-700: #334155;
  --gray-800: #1E293B;
  --gray-900: #0F172A;
  --gray-950: #020617;
  --primary-50: #EEF2FF;
  --primary-100: #E0E7FF;
  --primary-300: #A5B4FC;
  --primary-400: #818CF8;
  --primary-500: #6366F1;
  --primary-600: #4F46E5;
  --primary-700: #4338CA;
  --primary-900: #312E81;
  --success-50: #ECFDF5;
  --success-500: #10B981;
  --success-600: #059669;
  --success-700: #047857;
  --warning-50: #FFFBEB;
  --warning-500: #F59E0B;
  --warning-600: #D97706;
  --warning-700: #B45309;
  --danger-50: #FEF2F2;
  --danger-500: #EF4444;
  --danger-600: #DC2626;
  --danger-700: #B91C1C;
  --info-50: #EFF6FF;
  --info-500: #3B82F6;
  --info-600: #2563EB;
  --info-700: #1D4ED8;

  /* семантика — светлая тема */
  --bg: #F8FAFC;
  --surface: #FFFFFF;
  --surface-raised: #FFFFFF;
  --surface-sunken: #F1F5F9;
  --overlay: rgba(15, 23, 42, 0.45);
  --border: #E2E8F0;
  --border-strong: #CBD5E1;
  --text: #0F172A;
  --text-muted: #475569;
  --text-subtle: #64748B;
  --text-inverse: #FFFFFF;
  --primary: #4F46E5;
  --primary-hover: #4338CA;
  --primary-active: #3730A3;
  --primary-soft: #EEF2FF;
  --primary-contrast: #FFFFFF;
  --success: #047857;
  --success-soft: #ECFDF5;
  --warning: #B45309;
  --warning-soft: #FFFBEB;
  --danger: #B91C1C;
  --danger-soft: #FEF2F2;
  --danger-contrast: #FFFFFF;
  --info: #2563EB;
  --info-soft: #EFF6FF;
  --focus-ring: #4F46E5;
  --disabled-bg: #F1F5F9;
  --disabled-text: #94A3B8;
  --disabled-border: #E2E8F0;

  /* отступы */
  --space-0: 0px;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;

  /* радиусы */
  --radius-none: 0px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-xl: 20px;
  --radius-2xl: 28px;
  --radius-full: 9999px;

  /* типографика */
  --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --text-overline: 0.6875rem;
  --text-caption: 0.75rem;
  --text-body-sm: 0.875rem;
  --text-body: 1rem;
  --text-h4: 1.125rem;
  --text-h3: 1.25rem;
  --text-h2: 1.5rem;
  --text-h1: 2rem;
  --text-display: 2.5rem;
  --leading-tight: 1.1;
  --leading-heading: 1.25;
  --leading-body: 1.55;
  --leading-loose: 1.7;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --tracking-tight: -0.02em;
  --tracking-snug: -0.01em;
  --tracking-normal: 0;
  --tracking-wide: 0.08em;

  /* тени */
  --shadow-xs: 0 1px 2px rgba(15, 23, 42, 0.06);
  --shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.08), 0 1px 2px rgba(15, 23, 42, 0.04);
  --shadow-md: 0 4px 12px rgba(15, 23, 42, 0.08), 0 2px 4px rgba(15, 23, 42, 0.04);
  --shadow-lg: 0 12px 32px rgba(15, 23, 42, 0.12), 0 4px 8px rgba(15, 23, 42, 0.05);
  --shadow-xl: 0 24px 56px rgba(15, 23, 42, 0.16), 0 8px 16px rgba(15, 23, 42, 0.07);
  --shadow-dark-sm: 0 1px 3px rgba(0, 0, 0, 0.5);
  --shadow-dark-md: 0 4px 12px rgba(0, 0, 0, 0.55);
  --shadow-dark-lg: 0 12px 32px rgba(0, 0, 0, 0.6);

  /* движение */
  --duration-instant: 80ms;
  --duration-fast: 120ms;
  --duration-normal: 200ms;
  --duration-slow: 320ms;
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --ease-decelerate: cubic-bezier(0, 0, 0.2, 1);
  --ease-accelerate: cubic-bezier(0.4, 0, 1, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);

  /* размеры */
  --size-control-sm: 32px;
  --size-control-md: 40px;
  --size-control-lg: 48px;
  --size-icon-sm: 16px;
  --size-icon-md: 20px;
  --size-icon-lg: 24px;
  --size-tap-target: 44px;
  --size-container: 1200px;
  --size-prose: 68ch;
  --size-sidebar: 264px;
  --size-topbar: 56px;

  /* слои */
  --z-base: 0;
  --z-dropdown: 1000;
  --z-sticky: 1100;
  --z-overlay: 1200;
  --z-modal: 1300;
  --z-popover: 1400;
  --z-toast: 1500;
  --z-tooltip: 1600;
}

/* Тёмная тема: класс/атрибут на <html> либо системная настройка. */
[data-theme='dark'] {
  color-scheme: dark;
  --bg: #0B0D12;
  --surface: #12151C;
  --surface-raised: #181C25;
  --surface-sunken: #0E1117;
  --overlay: rgba(2, 6, 23, 0.65);
  --border: #252A35;
  --border-strong: #333A48;
  --text: #F1F5F9;
  --text-muted: #A8B3C4;
  --text-subtle: #8592A6;
  --text-inverse: #0B0D12;
  --primary: #818CF8;
  --primary-hover: #A5B4FC;
  --primary-active: #6366F1;
  --primary-soft: #1E1B4B;
  --primary-contrast: #0B0D12;
  --success: #34D399;
  --success-soft: #052E24;
  --warning: #FBBF24;
  --warning-soft: #2E1F05;
  --danger: #F87171;
  --danger-soft: #3A1414;
  --danger-contrast: #0B0D12;
  --info: #60A5FA;
  --info-soft: #12203A;
  --focus-ring: #818CF8;
  --disabled-bg: #181C25;
  --disabled-text: #5A6478;
  --disabled-border: #252A35;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) {
    color-scheme: dark;
    --bg: #0B0D12;
    --surface: #12151C;
    --surface-raised: #181C25;
    --surface-sunken: #0E1117;
    --overlay: rgba(2, 6, 23, 0.65);
    --border: #252A35;
    --border-strong: #333A48;
    --text: #F1F5F9;
    --text-muted: #A8B3C4;
    --text-subtle: #8592A6;
    --text-inverse: #0B0D12;
    --primary: #818CF8;
    --primary-hover: #A5B4FC;
    --primary-active: #6366F1;
    --primary-soft: #1E1B4B;
    --primary-contrast: #0B0D12;
    --success: #34D399;
    --success-soft: #052E24;
    --warning: #FBBF24;
    --warning-soft: #2E1F05;
    --danger: #F87171;
    --danger-soft: #3A1414;
    --danger-contrast: #0B0D12;
    --info: #60A5FA;
    --info-soft: #12203A;
    --focus-ring: #818CF8;
    --disabled-bg: #181C25;
    --disabled-text: #5A6478;
    --disabled-border: #252A35;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
