:root {
  --surface-page: #0b0b0f;
  --surface-raised: #15151c;
  --surface-sunken: #08080b;
  --surface-overlay: #1c1c26;

  --border-default: #24242e;
  --border-strong: #5f5f76;

  --text-primary: #f2f2f7;
  --text-secondary: #a0a0b0;
  --text-tertiary: #8a8a98;

  --action-primary: #8b7bf0;
  --action-primary-hover: #9c8df5;
  --action-primary-active: #7a68e8;
  --action-text: #0b0b0f;

  --focus-ring: #9c8df5;
  --feedback-error: #ff8b8b;

  --font-ui: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: ui-monospace, "SFMono-Regular", "JetBrains Mono", Menlo, monospace;

  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.5rem;
  --text-3xl: 1.875rem;
  --text-4xl: 2.25rem;

  --leading-tight: 1.25;
  --leading-normal: 1.5;

  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;

  --radius-sm: 0.375rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.75rem;
  --radius-xl: 1rem;
  --radius-full: 9999px;

  --shadow-sm: 0 1px 2px rgb(0 0 0 / 0.4);
  --shadow-md: 0 4px 12px rgb(0 0 0 / 0.45);
  --shadow-lg: 0 12px 32px rgb(0 0 0 / 0.5);

  --duration-instant: 0.01ms;
  --duration-fast: 120ms;
  --duration-base: 180ms;
  --duration-spin: 900ms;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --border-width-focus: 2px;
  --focus-offset: 2px;

  --control-height: 2.75rem;
  --container-max: 60rem;
}

@media (prefers-color-scheme: light) {
  :root {
    --surface-page: #ffffff;
    --surface-raised: #f7f7fa;
    --surface-sunken: #eeeef3;
    --surface-overlay: #ffffff;

    --border-default: #e4e4ec;
    --border-strong: #8e8e9e;

    --text-primary: #14141a;
    --text-secondary: #55555f;
    --text-tertiary: #6e6e7a;

    --action-primary: #5b49d6;
    --action-primary-hover: #4f3ecb;
    --action-primary-active: #4433b8;
    --action-text: #ffffff;

    --focus-ring: #5b49d6;
    --feedback-error: #b3261e;

    --shadow-sm: 0 1px 2px rgb(20 20 26 / 0.08);
    --shadow-md: 0 4px 12px rgb(20 20 26 / 0.1);
    --shadow-lg: 0 12px 32px rgb(20 20 26 / 0.12);
  }
}

:root[data-theme="dark"] {
  --surface-page: #0b0b0f;
  --surface-raised: #15151c;
  --surface-sunken: #08080b;
  --surface-overlay: #1c1c26;
  --border-default: #24242e;
  --border-strong: #5f5f76;
  --text-primary: #f2f2f7;
  --text-secondary: #a0a0b0;
  --text-tertiary: #8a8a98;
  --action-primary: #8b7bf0;
  --action-primary-hover: #9c8df5;
  --action-primary-active: #7a68e8;
  --action-text: #0b0b0f;
  --focus-ring: #9c8df5;
  --feedback-error: #ff8b8b;
}

:root[data-theme="light"] {
  --surface-page: #ffffff;
  --surface-raised: #f7f7fa;
  --surface-sunken: #eeeef3;
  --surface-overlay: #ffffff;
  --border-default: #e4e4ec;
  --border-strong: #8e8e9e;
  --text-primary: #14141a;
  --text-secondary: #55555f;
  --text-tertiary: #6e6e7a;
  --action-primary: #5b49d6;
  --action-primary-hover: #4f3ecb;
  --action-primary-active: #4433b8;
  --action-text: #ffffff;
  --focus-ring: #5b49d6;
  --feedback-error: #b3261e;
}
