/* ==========================================================================
   Theme Definitions
   ========================================================================== */
:root {
  color-scheme: dark;
  --color-bg-primary: #0b1221;
  --color-bg-secondary: #111b2e;
  --color-bg-tertiary: #162036;
  --color-bg-overlay: #1a2742;

  --color-text-primary: #e8ecf1;
  --color-text-secondary: #8b9bb4;
  --color-text-tertiary: #8494aa;

  --color-accent: #00b4d8;
  --color-accent-hover: #00cfee;
  --color-accent-muted: rgba(0, 180, 216, 0.12);

  --color-success: #22c55e;
  --color-success-muted: rgba(34, 197, 94, 0.12);

  --color-warning: #eab308;
  --color-warning-muted: rgba(234, 179, 8, 0.12);

  --color-error: #ef4444;
  --color-error-muted: rgba(239, 68, 68, 0.12);

  --color-border: #1e2d45;
  --color-border-hover: #2a3f5f;

  --color-focus: #00b4d8;

  --header-bg: rgba(11, 18, 33, 0.88);
  --mobile-menu-bg: #111b2e;

  --shadow-card: 0 2px 8px rgba(0, 0, 0, 0.3);
  --shadow-card-hover: 0 8px 24px rgba(0, 0, 0, 0.4);

  --grid-color: rgba(30, 45, 69, 0.4);
  --grid-size: 40px;

  --surface-canvas: var(--color-bg-primary);
  --surface-1: var(--color-bg-secondary);
  --surface-2: var(--color-bg-tertiary);
  --surface-3: #1b2942;
  --text-primary: var(--color-text-primary);
  --text-secondary: var(--color-text-secondary);
  --text-muted: var(--color-text-tertiary);
  --border-subtle: var(--color-border);
  --border-standard: var(--color-border-hover);
  --border-strong: #3a506e;
  --border-emphasis: var(--color-accent);
  --accent: var(--color-accent);
  --accent-hover: var(--color-accent-hover);
  --accent-soft: var(--color-accent-muted);
  --focus-ring: var(--color-focus);
  --header-surface: rgba(9, 15, 28, 0.82);
  --footer-surface: #080f1d;
  --shadow-soft: 0 12px 32px rgba(0, 0, 0, 0.18);
  --shadow-raised: 0 20px 48px rgba(0, 0, 0, 0.26);
  --ambient-primary: rgba(0, 180, 216, 0.11);
  --ambient-secondary: rgba(119, 105, 255, 0.075);
  --ambient-warm: rgba(255, 178, 92, 0.045);
  --theme-control: #f7c86d;
}

[data-theme="light"] {
  color-scheme: light;
  --color-bg-primary: #f5f4ef;
  --color-bg-secondary: #fdfcf9;
  --color-bg-tertiary: #ebeae4;
  --color-bg-overlay: #ffffff;

  --color-text-primary: #0f172a;
  --color-text-secondary: #465260;
  --color-text-tertiary: #5c6874;

  --color-accent: #00689d;
  --color-accent-hover: #004f78;
  --color-accent-muted: rgba(0, 104, 157, 0.08);

  --color-success: #16a34a;
  --color-success-muted: rgba(22, 163, 74, 0.08);

  --color-warning: #ca8a04;
  --color-warning-muted: rgba(202, 138, 4, 0.08);

  --color-error: #dc2626;
  --color-error-muted: rgba(220, 38, 38, 0.08);

  --color-border: #d7d5cd;
  --color-border-hover: #b8b6ae;

  --color-focus: #00689d;

  --header-bg: rgba(245, 244, 239, 0.88);
  --mobile-menu-bg: #fdfcf9;

  --shadow-card: 0 2px 8px rgba(0, 0, 0, 0.08);
  --shadow-card-hover: 0 8px 24px rgba(0, 0, 0, 0.12);

  --grid-color: rgba(148, 163, 184, 0.15);
  --grid-size: 40px;

  --surface-canvas: var(--color-bg-primary);
  --surface-1: var(--color-bg-secondary);
  --surface-2: var(--color-bg-tertiary);
  --surface-3: #e1e0d9;
  --text-primary: var(--color-text-primary);
  --text-secondary: var(--color-text-secondary);
  --text-muted: var(--color-text-tertiary);
  --border-subtle: var(--color-border);
  --border-standard: var(--color-border-hover);
  --border-strong: #8f969b;
  --border-emphasis: var(--color-accent);
  --accent: var(--color-accent);
  --accent-hover: var(--color-accent-hover);
  --accent-soft: var(--color-accent-muted);
  --focus-ring: var(--color-focus);
  --header-surface: rgba(245, 244, 239, 0.82);
  --footer-surface: #ebeae4;
  --shadow-soft: 0 12px 32px rgba(26, 37, 48, 0.08);
  --shadow-raised: 0 20px 48px rgba(26, 37, 48, 0.12);
  --ambient-primary: rgba(0, 104, 157, 0.095);
  --ambient-secondary: rgba(119, 105, 255, 0.055);
  --ambient-warm: rgba(218, 137, 54, 0.065);
  --theme-control: #25364a;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --transition-fast: 0ms;
    --transition-base: 0ms;
    --transition-slow: 0ms;
    --motion-fast: 0ms;
    --motion-base: 0ms;
    --motion-slow: 0ms;
  }
}
