:root {
  --background: #f7f8fa;
  --surface: #ffffff;
  --surface-subtle: #f2f4f7;
  --surface-hover: #edf1f6;
  --foreground: #111318;
  --muted: #717784;
  --muted-strong: #555c69;
  --border: #e2e5ea;
  --border-strong: #d3d7df;
  --primary: #3478e5;
  --primary-strong: #2563d4;
  --primary-soft: #eaf2ff;
  --success: #2f8f60;
  --success-soft: #eaf7f0;
  --warning: #a96618;
  --warning-soft: #fff6e8;
  --danger: #c84c4c;
  --danger-soft: #fdf0f0;
  --info: #3478e5;
  --info-soft: #eaf2ff;

  --radius-control: 10px;
  --radius-card: 12px;
  --radius-panel: 16px;
  --radius-pill: 999px;

  --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;

  --text-xs: 12px;
  --text-sm: 14px;
  --text-md: 16px;
  --text-lg: 18px;
  --text-xl: 22px;
  --text-2xl: 28px;
  --text-display: clamp(42px, 5vw, 72px);

  --duration-fast: 120ms;
  --duration-normal: 200ms;
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);

  --shadow-sm:
    0 1px 2px rgba(16, 24, 40, 0.04),
    0 1px 5px rgba(16, 24, 40, 0.03);
  --shadow-md:
    0 18px 50px rgba(19, 27, 44, 0.08),
    0 2px 10px rgba(19, 27, 44, 0.04);
  --focus-ring: 0 0 0 3px color-mix(in srgb, var(--primary) 28%, transparent);
  --sidebar-width: 254px;
}

:root[data-theme="dark"] {
  --background: #0f1115;
  --surface: #15181e;
  --surface-subtle: #1b1f27;
  --surface-hover: #222732;
  --foreground: #f2f4f7;
  --muted: #969da9;
  --muted-strong: #b6bdc8;
  --border: #292e38;
  --border-strong: #363c48;
  --primary: #5b91ed;
  --primary-strong: #76a5f2;
  --primary-soft: #182946;
  --success: #63b68a;
  --success-soft: #183125;
  --warning: #e0a357;
  --warning-soft: #352817;
  --danger: #eb7a7a;
  --danger-soft: #351e21;
  --info: #76a5f2;
  --info-soft: #182946;
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.24);
  --shadow-md: 0 20px 60px rgba(0, 0, 0, 0.28);
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-fast: 0.01ms;
    --duration-normal: 0.01ms;
  }
}
