/* ================================================
   THEME SYSTEM — Light & Dark mode
   Auto-detects OS preference, user can override.
   ================================================ */

/* ---- DARK THEME (default fallback) ---- */
:root {
  --bg: #0a0a1a;
  --bg2: #12122a;
  --surface: rgba(18, 18, 42, 0.85);
  --glass: rgba(18, 18, 42, 0.6);
  --glass-border: rgba(0, 229, 255, 0.15);
  --text: #e0e0f0;
  --text-dim: #8888aa;
  --neon-green: #00ff88;
  --neon-cyan: #00e5ff;
  --neon-purple: #b400ff;
  --neon-gold: #ffd700;
  --neon-red: #ff4444;
  --neon-pink: #ff44aa;
  --shadow-color: rgba(0, 0, 0, 0.4);
  --scrollbar-bg: #0a0a1a;
  --scrollbar-thumb: rgba(0, 229, 255, 0.3);
  --canvas-bg: #0a0a1a;
  color-scheme: dark;
}

/* ---- DARK EXPLICIT ---- */
[data-theme="dark"] {
  --bg: #0a0a1a;
  --bg2: #12122a;
  --surface: rgba(18, 18, 42, 0.85);
  --glass: rgba(18, 18, 42, 0.6);
  --glass-border: rgba(0, 229, 255, 0.15);
  --text: #e0e0f0;
  --text-dim: #8888aa;
  --neon-green: #00ff88;
  --neon-cyan: #00e5ff;
  --neon-purple: #b400ff;
  --neon-gold: #ffd700;
  --neon-red: #ff4444;
  --neon-pink: #ff44aa;
  --shadow-color: rgba(0, 0, 0, 0.4);
  --scrollbar-bg: #0a0a1a;
  --scrollbar-thumb: rgba(0, 229, 255, 0.3);
  --canvas-bg: #0a0a1a;
  color-scheme: dark;
}

/* ---- LIGHT THEME ---- */
[data-theme="light"] {
  --bg: #f0f2f5;
  --bg2: #ffffff;
  --surface: rgba(255, 255, 255, 0.88);
  --glass: rgba(255, 255, 255, 0.72);
  --glass-border: rgba(0, 80, 120, 0.12);
  --text: #1a1a2e;
  --text-dim: #46466a; /* darkened for WCAG AA contrast ≥4.5:1 on light glass */
  --neon-green: #00994d;
  --neon-cyan: #007aa3;
  --neon-purple: #7b00b0;
  --neon-gold: #b38600;
  --neon-red: #cc2222;
  --neon-pink: #b0306a;
  --shadow-color: rgba(0, 0, 0, 0.08);
  --scrollbar-bg: #f0f2f5;
  --scrollbar-thumb: rgba(0, 122, 163, 0.25);
  --canvas-bg: #e8ecf0;
  color-scheme: light;
}

/* ---- Auto: OS-level preference ---- */
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {
    --bg: #f0f2f5;
    --bg2: #ffffff;
    --surface: rgba(255, 255, 255, 0.88);
    --glass: rgba(255, 255, 255, 0.72);
    --glass-border: rgba(0, 80, 120, 0.12);
    --text: #1a1a2e;
    --text-dim: #46466a;
    --neon-green: #00994d;
    --neon-cyan: #007aa3;
    --neon-purple: #7b00b0;
    --neon-gold: #b38600;
    --neon-red: #cc2222;
    --neon-pink: #b0306a;
    --shadow-color: rgba(0, 0, 0, 0.08);
    --scrollbar-bg: #f0f2f5;
    --scrollbar-thumb: rgba(0, 122, 163, 0.25);
    --canvas-bg: #e8ecf0;
    color-scheme: light;
  }
}

/* ---- Light-mode overrides for elements that need special treatment ---- */
[data-theme="light"] .glitch::before { color: var(--neon-cyan); }
[data-theme="light"] .glitch::after  { color: var(--neon-pink); }
[data-theme="light"] #intro-screen {
  background: radial-gradient(ellipse at center, rgba(200,220,240,0.4) 0%, rgba(240,242,245,0.88) 70%);
}
[data-theme="light"] #game-nav {
  background: rgba(255, 255, 255, 0.95);
  border-bottom-color: rgba(0, 80, 120, 0.2);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
}
[data-theme="light"] .achievement-popup {
  background: linear-gradient(135deg, rgba(255,255,255,0.96), rgba(230,240,250,0.95));
}
[data-theme="light"] .terminal-body { background: rgba(245,247,250,0.5); }
[data-theme="light"] .terminal-bar  { background: rgba(230,232,238,0.6); }
[data-theme="light"] .memory-card-back {
  background: linear-gradient(135deg, rgba(0,122,163,0.12), rgba(123,0,176,0.12));
}
[data-theme="light"] .quiz-option { background: rgba(0,0,0,0.02); }
[data-theme="light"] .maze-dir-btn { background: rgba(0,0,0,0.03); }
[data-theme="light"] .char-avatar { box-shadow: 0 0 30px rgba(0,122,163,0.2); }
[data-theme="light"] ::selection { background: var(--neon-cyan); color: #fff; }

/* Light mode also handled by OS pref when no explicit data-theme */
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) .glitch::before { color: var(--neon-cyan); }
  :root:not([data-theme="dark"]) .glitch::after  { color: var(--neon-pink); }
  :root:not([data-theme="dark"]) #intro-screen {
    background: radial-gradient(ellipse at center, rgba(200,220,240,0.4) 0%, rgba(240,242,245,0.88) 70%);
  }
  :root:not([data-theme="dark"]) #game-nav {
    background: rgba(255, 255, 255, 0.95);
    border-bottom-color: rgba(0, 80, 120, 0.2);
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
  }
  :root:not([data-theme="dark"]) .char-avatar { box-shadow: 0 0 30px rgba(0,122,163,0.2); }
  :root:not([data-theme="dark"]) ::selection { background: var(--neon-cyan); color: #fff; }
}
