/* ==========================================================================
   DWARG theme tokens — single source of truth for colour.
   Palette taken from the Bae Laban design system (baelaban.gt.tc/css/style.css):
     Bae Blue #2f3192 · Blue 2 #3d40b5 · Blue 400 #5b5fe0 · Logo white #f8f8f8
     Navy scale #090b2e → #3a3f8f · Ice scale #f3f6fc → #a3c1ea
     Ink #12132e · Muted #5d6180
   Every other stylesheet must reference these variables, never raw hex.
   ========================================================================== */
:root {
    /* ---- Raw palette ---- */
    --bl-blue: #2f3192;
    --bl-blue-2: #3d40b5;
    --bl-blue-400: #5b5fe0;
    --bl-blue-hover: #262a86;
    --bl-white: #f8f8f8;

    --bl-navy-950: #090b2e;
    --bl-navy-900: #0f1140;
    --bl-navy-850: #1a1e6a;
    --bl-navy-800: #161a5a;
    --bl-navy-700: #1f2470;
    --bl-navy-500: #3a3f8f;

    --bl-ice-50: #f3f6fc;
    --bl-ice-100: #e6edf9;
    --bl-ice-150: #d6e6fb;
    --bl-ice-200: #c0d8f0;
    --bl-ice-300: #a3c1ea;

    --bl-ink: #12132e;
    --bl-muted: #5d6180;

    /* Neutral scale: Bae Laban ink → logo white, same indigo hue */
    --n-900: #12132e;
    --n-800: #22244a;
    --n-700: #33365a;
    --n-600: #5d6180;
    --n-500: #7d819f;
    --n-400: #a2a6c0;
    --n-300: #c9cce0;
    --n-200: #e1e4f0;
    --n-100: #eef0f7;

    /* ---- Semantic tokens ---- */
    --primary: var(--bl-blue);
    --primary-rgb: 47, 49, 146;
    --primary-dark: var(--bl-blue-hover);
    --primary-darker: var(--bl-navy-700);
    --primary-light: var(--bl-blue-400);
    --primary-light-rgb: 91, 95, 224;
    --primary-soft: var(--bl-ice-100);
    --primary-softer: var(--bl-ice-50);

    --secondary: var(--bl-navy-900);
    --secondary-rgb: 15, 17, 64;
    --secondary-2: var(--bl-navy-800);

    --accent: var(--bl-ice-300);
    --accent-rgb: 163, 193, 234;
    --accent-strong: var(--bl-ice-150);
    --accent-soft: var(--bl-ice-200);

    --background: var(--bl-ice-50);
    --surface: #ffffff;
    --surface-soft: #f8faff;
    --surface-elevated: #ffffff;
    --surface-sunken: var(--n-100);
    --surface-dark: var(--bl-navy-900);

    --text-primary: var(--bl-ink);
    --text-strong: var(--n-700);
    --text-secondary: var(--bl-muted);
    --text-tertiary: var(--n-500);
    --text-disabled: var(--n-400);
    --text-on-dark: var(--bl-ice-50);
    --text-on-dark-muted: rgba(236, 241, 252, .62);
    --ink-rgb: 18, 19, 46;
    --shadow-rgb: 9, 11, 46;

    --border: rgba(18, 19, 46, .1);
    --border-soft: rgba(18, 19, 46, .06);
    --border-strong: rgba(18, 19, 46, .16);
    --border-on-dark: rgba(185, 211, 243, .22);

    /* Semantic states — used only for meaning */
    --success: #15803d;
    --success-rgb: 21, 128, 61;
    --success-soft: #dcfce7;
    --success-dark: #052e16;
    --warning: #b45309;
    --warning-rgb: 180, 83, 9;
    --warning-soft: #fef3c7;
    --warning-dark: #78350f;
    --warning-bright: #f59e0b;
    --danger: #dc2626;
    --danger-rgb: 220, 38, 38;
    --danger-soft: #fee2e2;
    --danger-dark: #b91c1c;
    --success-light: #86efac;
    --success-light-rgb: 134, 239, 172;
    --warning-light: #fcd34d;
    --danger-light: #fca5a5;
    --info: var(--primary-light);
    --info-soft: var(--bl-ice-100);
    --on-dark-rgb: 236, 241, 252;
    --rating: #f2c400;

    /* ---- Gradients ---- */
    --grad-primary: linear-gradient(135deg, var(--bl-blue-400), var(--bl-blue));
    --grad-primary-hover: linear-gradient(135deg, #6a6ee6, var(--bl-blue-2));
    --grad-navy: linear-gradient(160deg, var(--bl-navy-700), var(--bl-navy-900));
    --grad-navy-deep: linear-gradient(180deg, var(--bl-navy-900), var(--bl-navy-800));
    --grad-special: linear-gradient(160deg, #262a86, var(--bl-navy-900));
    --grad-cta-dark: linear-gradient(135deg, var(--bl-navy-850), var(--bl-navy-900));
    --grad-ice: radial-gradient(120% 90% at 50% 0%, #fff 0%, var(--bl-ice-50) 60%, var(--bl-ice-200) 100%);
    --grad-line: linear-gradient(90deg, var(--bl-blue), var(--bl-ice-150));
    --grad-white-cta: linear-gradient(135deg, #fff, var(--bl-ice-100));
    --glow-blue: radial-gradient(circle, rgba(91, 111, 255, .28), transparent 60%);
    --glow-ice: radial-gradient(circle, rgba(185, 211, 243, .35), transparent 65%);

    /* ---- Glass ---- */
    --glass-bg: rgba(255, 255, 255, .72);
    --glass-border: rgba(255, 255, 255, .6);
    --glass-dark-bg: rgba(255, 255, 255, .07);
    --glass-dark-border: rgba(185, 211, 243, .18);
    --glass-blur: saturate(160%) blur(16px);

    /* ---- Shadows (Bae Laban navy-tinted) ---- */
    --shadow-soft: 0 20px 60px -20px rgba(9, 11, 46, .35);
    --shadow-card: 0 30px 80px -30px rgba(9, 11, 46, .45), 0 2px 6px rgba(9, 11, 46, .06);
    --shadow-glow: 0 18px 40px -14px rgba(47, 49, 146, .45);
    --shadow-glow-white: 0 18px 40px -14px rgba(255, 255, 255, .28);

    /* ---- Motion (Bae Laban easing) ---- */
    --ease-lux: cubic-bezier(.16, 1, .3, 1);
    --ease-in-out: cubic-bezier(.65, 0, .35, 1);

    /* ---- Charts ---- */
    --chart-1: #2f3192;
    --chart-2: #5b5fe0;
    --chart-3: #a3c1ea;
    --chart-4: #1f2470;
    --chart-5: #3d40b5;
    --chart-6: #c0d8f0;
    --chart-7: #0f1140;
    --chart-8: #7d819f;
    --chart-grid: rgba(18, 19, 46, .06);
    --chart-text: var(--bl-muted);
    --chart-tooltip: var(--bl-navy-900);
    --chart-positive: var(--success);
}
