/* ============================================
   BLACKBOX Dashboard — Theme System
   CSS Custom Properties for Dark/Light modes
   ============================================ */

:root {
  /* --- Background --- */
  --bg-primary: #070b14;
  --bg-secondary: #0d1222;
  --bg-tertiary: #121830;
  --bg-elevated: #161d30;

  /* --- Glass --- */
  --glass-bg: rgba(12,17,32,0.45);
  --glass-bg-hover: rgba(12,17,32,0.65);
  --glass-border: rgba(255,255,255,0.07);
  --glass-border-hover: rgba(255,255,255,0.14);
  --glass-blur-rest: 8px;
  --glass-blur-hover: 20px;
  --glass-shadow: 0 8px 32px rgba(0,0,0,0.4);
  --glass-inset: inset 0 1px 0 rgba(255,255,255,0.04);

  /* --- Text --- */
  --text-primary: #ffffff;
  --text-secondary: rgba(255,255,255,0.55);
  --text-muted: rgba(255,255,255,0.3);
  --text-inverse: #050810;

  /* --- Accent Colors --- */
  --accent-blue: #3b82f6;
  --accent-blue-muted: rgba(59,130,246,0.15);
  --accent-blue-subtle: rgba(59,130,246,0.08);
  --accent-red: #ef4444;
  --accent-red-muted: rgba(239,68,68,0.15);
  --accent-red-subtle: rgba(239,68,68,0.08);
  --accent-orange: #f97316;
  --accent-orange-muted: rgba(249,115,22,0.15);
  --accent-orange-subtle: rgba(249,115,22,0.08);
  --accent-cyan: #06b6d4;
  --accent-cyan-muted: rgba(6,182,212,0.15);
  --accent-cyan-subtle: rgba(6,182,212,0.08);
  --accent-green: #22c55e;
  --accent-green-muted: rgba(34,197,94,0.15);
  --accent-green-subtle: rgba(34,197,94,0.08);
  --accent-purple: #a855f7;
  --accent-purple-muted: rgba(168,85,247,0.15);
  --accent-pink: #ec4899;
  --accent-pink-muted: rgba(236,72,153,0.15);
  --accent-yellow: #eab308;
  --accent-yellow-muted: rgba(234,179,8,0.15);

  /* --- Animated Background --- */
  --anim-gradient-1: rgba(59,130,246,0.18);
  --anim-gradient-2: rgba(239,68,68,0.10);
  --anim-gradient-3: rgba(6,182,212,0.14);
  --anim-gradient-4: rgba(249,115,22,0.08);
  --anim-gradient-5: rgba(139,92,246,0.10);
  --grain-opacity: 0.02;

  /* --- Spacing --- */
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 12px;
  --space-lg: 16px;
  --space-xl: 20px;
  --space-2xl: 24px;
  --space-3xl: 32px;

  /* --- Radius --- */
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;

  /* --- Layout --- */
  --topbar-height: 56px;
  --sidebar-width: 200px;
  --sidebar-collapsed: 56px;

  /* --- Transitions --- */
  --transition-fast: 0.15s ease;
  --transition-base: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-smooth: 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow: 0.5s cubic-bezier(0.4, 0, 0.2, 1);

  /* --- Typography --- */
  --font-display: 'Sora', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'JetBrains Mono', 'SF Mono', 'Fira Code', monospace;
  --font-weight-light: 300;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
}

/* ============================================
   Light Theme
   ============================================ */
[data-theme="light"] {
  --bg-primary: #f0f2f5;
  --bg-secondary: #ffffff;
  --bg-tertiary: #f7f8fa;
  --bg-elevated: #ffffff;

  --glass-bg: rgba(255,255,255,0.6);
  --glass-bg-hover: rgba(255,255,255,0.85);
  --glass-border: rgba(0,0,0,0.06);
  --glass-border-hover: rgba(0,0,0,0.12);
  --glass-shadow: 0 8px 32px rgba(0,0,0,0.08);
  --glass-inset: inset 0 1px 0 rgba(255,255,255,0.8);

  --text-primary: #0f1729;
  --text-secondary: rgba(15,23,41,0.6);
  --text-muted: rgba(15,23,41,0.35);
  --text-inverse: #ffffff;

  --accent-blue-muted: rgba(59,130,246,0.12);
  --accent-blue-subtle: rgba(59,130,246,0.06);
  --accent-red-muted: rgba(239,68,68,0.12);
  --accent-red-subtle: rgba(239,68,68,0.06);
  --accent-orange-muted: rgba(249,115,22,0.12);
  --accent-orange-subtle: rgba(249,115,22,0.06);
  --accent-cyan-muted: rgba(6,182,212,0.12);
  --accent-cyan-subtle: rgba(6,182,212,0.06);
  --accent-green-muted: rgba(34,197,94,0.12);
  --accent-green-subtle: rgba(34,197,94,0.06);

  --anim-gradient-1: rgba(59,130,246,0.08);
  --anim-gradient-2: rgba(249,115,22,0.05);
  --anim-gradient-3: rgba(6,182,212,0.06);
  --grain-opacity: 0.012;
}
