/* ═══════════════════════════════════════════════════════════════
   theme.css — hue-based tokens, light/dark (matches WaveForge)
   ═══════════════════════════════════════════════════════════════ */

:root {
  --hue: 210;

  --accent:        hsl(var(--hue), 80%, 58%);
  --accent-dim:    hsl(var(--hue), 70%, 48%);
  --accent-bright: hsl(var(--hue), 90%, 70%);
  --accent-glow:   hsla(var(--hue), 80%, 58%, 0.18);
  --accent-faint:  hsla(var(--hue), 60%, 58%, 0.08);
  --accent-text:   hsl(var(--hue), 90%, 80%);

  --danger:        hsl(4, 80%, 58%);
  --danger-faint:  hsla(4, 80%, 58%, 0.1);

  --success:       hsl(145, 65%, 50%);
  --warning:       hsl(40, 90%, 55%);

  --font-ui:   'Syne', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;

  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 18px;

  --t-fast: 120ms ease;
  --t-med:  220ms ease;
}

[data-theme="dark"] {
  --bg-base:      #0d0e10;
  --bg-surface:   #141517;
  --bg-raised:    #1c1d20;
  --bg-hover:     #24252a;
  --bg-active:    #2c2d33;

  --border:       rgba(255,255,255,0.07);
  --border-mid:   rgba(255,255,255,0.12);
  --border-hi:    rgba(255,255,255,0.22);

  --text-primary:   #e8e9ec;
  --text-secondary: #9a9ba6;
  --text-muted:     #5a5b66;

  --shadow-sm: 0 1px 3px rgba(0,0,0,0.5);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.6);
  --shadow-lg: 0 8px 40px rgba(0,0,0,0.7);
}

[data-theme="light"] {
  --bg-base:      #f0f1f5;
  --bg-surface:   #f8f9fc;
  --bg-raised:    #ffffff;
  --bg-hover:     #ecedf2;
  --bg-active:    #e2e3ea;

  --border:       rgba(0,0,0,0.07);
  --border-mid:   rgba(0,0,0,0.13);
  --border-hi:    rgba(0,0,0,0.22);

  --text-primary:   #1a1b22;
  --text-secondary: #5c5d6e;
  --text-muted:     #9a9baa;

  --shadow-sm: 0 1px 3px rgba(0,0,0,0.12);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.14);
  --shadow-lg: 0 8px 40px rgba(0,0,0,0.18);
}

/* ── RESET ───────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
  height: 100%;
  font-family: var(--font-ui);
  font-size: 13px;
  background: var(--bg-base);
  color: var(--text-primary);
  transition: background var(--t-med), color var(--t-med);
}

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--bg-surface); }
::-webkit-scrollbar-thumb { background: var(--bg-active); border-radius: 3px; }

input[type="range"] {
  -webkit-appearance: none;
  height: 3px;
  background: var(--bg-active);
  border-radius: 2px;
  outline: none;
  cursor: pointer;
  flex: 1;
}
input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-glow);
  cursor: pointer;
  transition: transform var(--t-fast);
}
input[type="range"]::-webkit-slider-thumb:hover { transform: scale(1.2); }

button { cursor: pointer; font-family: var(--font-ui); }

kbd {
  font-family: var(--font-mono);
  font-size: 10px;
  background: var(--bg-active);
  border: 1px solid var(--border-mid);
  border-radius: var(--radius-sm);
  padding: 2px 5px;
  color: var(--text-secondary);
}
