/* === COLOR THEME SYSTEM — Full Palette === */

:root {
    --bg-primary: #050810;
    --bg-secondary: #080d18;
    --bg-panel: rgba(14, 16, 38, 0.82);
    --bg-panel-solid: #0e1026;
    --bg-hover: rgba(22, 26, 55, 0.5);
    --bg-input: rgba(8, 10, 22, 0.7);
    --accent: #10b981;
    --accent-light: #34d399;
    --accent-dim: #065f46;
    --accent-bg: rgba(16, 185, 129, 0.1);
    --accent-border: rgba(16, 185, 129, 0.2);
    --text-primary: #e2e8f0;
    --text-secondary: #94a3b8;
    --text-muted: #64748b;
    --text-faint: #475569;
    --border: rgba(255,255,255,0.05);
    --border-strong: rgba(255,255,255,0.1);
    --sidebar-bg: rgba(15, 23, 42, 0.9);
    --chart-line: #10b981;
    --chart-fill-top: rgba(16, 185, 129, 0.15);
    --chart-fill-bottom: rgba(16, 185, 129, 0.0);
}

/* ═══════════════════════════════════════════════════════════════
   STRAT_OS THEME SYSTEM — 8 Themes × 3 Modes = 24 Variants
   REMOVED: terminal, arctic
   ADDED: cosmos, nebula, aurora (starry themes)
   Every theme has "bright" and "dark" variants
   Mode toggle: [data-bright="true"] / [data-dark="true"] — mutually exclusive
   ═══════════════════════════════════════════════════════════════ */

/* ──────────────── MIDNIGHT (default) ──────────────── */
[data-theme="midnight"] {
    --bg-primary: #050810; --bg-secondary: #080d18;
    --bg-panel: rgba(14, 16, 38, 0.82); --bg-panel-solid: #0e1026;
    --bg-hover: rgba(22, 26, 55, 0.5); --bg-input: rgba(8, 10, 22, 0.7);
    --accent: #10b981; --accent-light: #34d399; --accent-dim: #065f46;
    --accent-bg: rgba(16, 185, 129, 0.1); --accent-border: rgba(16, 185, 129, 0.2);
    --text-primary: #e2e8f0; --text-secondary: #94a3b8; --text-muted: #64748b; --text-faint: #475569;
    --border: rgba(255,255,255,0.04); --border-strong: rgba(255,255,255,0.08);
    --sidebar-bg: rgba(5, 8, 16, 0.95);
    --chart-line: #10b981; --chart-fill-top: rgba(16, 185, 129, 0.15);
}
[data-theme="midnight"][data-bright="true"] {
    --bg-primary: #0c1220; --bg-secondary: #101828;
    --bg-panel: rgba(20, 28, 52, 0.85); --bg-panel-solid: #141c34;
    --bg-hover: rgba(32, 40, 72, 0.45); --bg-input: rgba(14, 18, 36, 0.7);
    --accent: #34d399; --accent-light: #6ee7b7; --accent-dim: #065f46;
    --accent-bg: rgba(52, 211, 153, 0.12); --accent-border: rgba(52, 211, 153, 0.25);
    --text-primary: #f0f4f8; --text-secondary: #a8b8d0; --text-muted: #7888a8; --text-faint: #566888;
    --border: rgba(255,255,255,0.07); --border-strong: rgba(255,255,255,0.13);
    --sidebar-bg: rgba(10, 16, 30, 0.95);
    --chart-line: #34d399; --chart-fill-top: rgba(52, 211, 153, 0.18);
}
[data-theme="midnight"][data-dark="true"] {
    --bg-primary: #020408; --bg-secondary: #040810;
    --bg-panel: rgba(6, 8, 20, 0.88); --bg-panel-solid: #060814;
    --bg-hover: rgba(12, 16, 35, 0.5); --bg-input: rgba(3, 5, 12, 0.8);
    --accent: #059669; --accent-light: #10b981; --accent-dim: #044e36;
    --accent-bg: rgba(5, 150, 105, 0.08); --accent-border: rgba(5, 150, 105, 0.15);
    --text-primary: #b8c5d4; --text-secondary: #6b7f96; --text-muted: #475569; --text-faint: #334155;
    --border: rgba(255,255,255,0.025); --border-strong: rgba(255,255,255,0.05);
    --sidebar-bg: rgba(2, 4, 8, 0.97);
    --chart-line: #059669; --chart-fill-top: rgba(5, 150, 105, 0.12);
}

/* ──────────────── NOIR ──────────────── */
[data-theme="noir"] {
    --bg-primary: #050506; --bg-secondary: #0a0a0c;
    --bg-panel: rgba(22, 22, 28, 0.8); --bg-panel-solid: #16161c;
    --bg-hover: rgba(50, 50, 60, 0.3); --bg-input: rgba(8, 8, 10, 0.7);
    --accent: #8b5cf6; --accent-light: #a78bfa; --accent-dim: #3b1f7a;
    --accent-bg: rgba(139, 92, 246, 0.1); --accent-border: rgba(139, 92, 246, 0.2);
    --text-primary: #e4e4e7; --text-secondary: #a1a1aa; --text-muted: #71717a; --text-faint: #52525b;
    --border: rgba(63, 63, 70, 0.2); --border-strong: rgba(63, 63, 70, 0.35);
    --sidebar-bg: rgba(5, 5, 6, 0.95);
    --chart-line: #8b5cf6; --chart-fill-top: rgba(139, 92, 246, 0.15);
}
[data-theme="noir"][data-bright="true"] {
    --bg-primary: #0e0e12; --bg-secondary: #141418;
    --bg-panel: rgba(32, 32, 40, 0.82); --bg-panel-solid: #202028;
    --bg-hover: rgba(60, 60, 72, 0.35); --bg-input: rgba(18, 18, 24, 0.7);
    --accent: #a78bfa; --accent-light: #c4b5fd; --accent-dim: #4c1d95;
    --accent-bg: rgba(167, 139, 250, 0.12); --accent-border: rgba(167, 139, 250, 0.25);
    --text-primary: #f0f0f2; --text-secondary: #b5b5bc; --text-muted: #85858c; --text-faint: #626268;
    --border: rgba(80, 80, 90, 0.25); --border-strong: rgba(80, 80, 90, 0.4);
    --sidebar-bg: rgba(10, 10, 14, 0.95);
    --chart-line: #a78bfa; --chart-fill-top: rgba(167, 139, 250, 0.18);
}
[data-theme="noir"][data-dark="true"] {
    --bg-primary: #010101; --bg-secondary: #040405;
    --bg-panel: rgba(12, 12, 16, 0.88); --bg-panel-solid: #0a0a0e;
    --bg-hover: rgba(30, 30, 38, 0.3); --bg-input: rgba(4, 4, 6, 0.8);
    --accent: #7c3aed; --accent-light: #8b5cf6; --accent-dim: #2e1065;
    --accent-bg: rgba(124, 58, 237, 0.07); --accent-border: rgba(124, 58, 237, 0.14);
    --text-primary: #b5b5ba; --text-secondary: #78787e; --text-muted: #53535a; --text-faint: #3f3f44;
    --border: rgba(50, 50, 56, 0.15); --border-strong: rgba(50, 50, 56, 0.25);
    --sidebar-bg: rgba(1, 1, 2, 0.97);
    --chart-line: #7c3aed; --chart-fill-top: rgba(124, 58, 237, 0.10);
}

/* ──────────────── COFFEE ──────────────── */
[data-theme="coffee"] {
    --bg-primary: #0c0806; --bg-secondary: #14100a;
    --bg-panel: rgba(32, 24, 14, 0.84); --bg-panel-solid: #201810;
    --bg-hover: rgba(62, 44, 26, 0.35); --bg-input: rgba(16, 12, 8, 0.7);
    --accent: #d4943c; --accent-light: #e8aa54; --accent-dim: #6b4820;
    --accent-bg: rgba(212, 148, 60, 0.1); --accent-border: rgba(212, 148, 60, 0.2);
    --text-primary: #f0e4d4; --text-secondary: #b8997a; --text-muted: #8c7058; --text-faint: #5e4535;
    --border: rgba(80, 55, 30, 0.25); --border-strong: rgba(80, 55, 30, 0.4);
    --sidebar-bg: rgba(9, 6, 4, 0.96);
    --chart-line: #d4943c; --chart-fill-top: rgba(212, 148, 60, 0.14);
    --star-color-1: rgba(212, 148, 60, 0.5); --star-color-2: rgba(184, 153, 122, 0.35); --star-color-3: rgba(255, 240, 220, 0.25);
    --starry-theme: 1;
}
[data-theme="coffee"][data-bright="true"] {
    --bg-primary: #150f0a; --bg-secondary: #1e1610;
    --bg-panel: rgba(44, 34, 20, 0.84); --bg-panel-solid: #2c2218;
    --bg-hover: rgba(76, 56, 34, 0.4); --bg-input: rgba(24, 18, 12, 0.7);
    --accent: #e8aa54; --accent-light: #f2c070; --accent-dim: #7a5428;
    --accent-bg: rgba(232, 170, 84, 0.12); --accent-border: rgba(232, 170, 84, 0.25);
    --text-primary: #f8efe0; --text-secondary: #ccae8a; --text-muted: #a08468; --text-faint: #6e5440;
    --border: rgba(95, 68, 38, 0.3); --border-strong: rgba(95, 68, 38, 0.48);
    --sidebar-bg: rgba(14, 10, 7, 0.95);
    --chart-line: #e8aa54; --chart-fill-top: rgba(232, 170, 84, 0.16);
    --star-color-1: rgba(232, 170, 84, 0.6); --star-color-2: rgba(200, 170, 140, 0.45); --star-color-3: rgba(255, 245, 228, 0.35);
    --starry-theme: 1;
}
[data-theme="coffee"][data-dark="true"] {
    --bg-primary: #060403; --bg-secondary: #0a0805;
    --bg-panel: rgba(20, 14, 8, 0.88); --bg-panel-solid: #120e08;
    --bg-hover: rgba(40, 28, 14, 0.35); --bg-input: rgba(10, 7, 4, 0.8);
    --accent: #b87a2e; --accent-light: #d4943c; --accent-dim: #4e3514;
    --accent-bg: rgba(184, 122, 46, 0.07); --accent-border: rgba(184, 122, 46, 0.14);
    --text-primary: #c8baa4; --text-secondary: #907a60; --text-muted: #685040; --text-faint: #48362a;
    --border: rgba(60, 42, 20, 0.18); --border-strong: rgba(60, 42, 20, 0.3);
    --sidebar-bg: rgba(4, 3, 2, 0.97);
    --chart-line: #b87a2e; --chart-fill-top: rgba(184, 122, 46, 0.10);
    --star-color-1: rgba(184, 122, 46, 0.3); --star-color-2: rgba(150, 125, 100, 0.2); --star-color-3: rgba(255, 240, 220, 0.1);
    --starry-theme: 1;
}

/* ──────────────── ROSE ──────────────── */
[data-theme="rose"] {
    --bg-primary: #080507; --bg-secondary: #0c080a;
    --bg-panel: rgba(30, 16, 22, 0.8); --bg-panel-solid: #1e1016;
    --bg-hover: rgba(60, 25, 40, 0.3); --bg-input: rgba(10, 6, 8, 0.7);
    --accent: #f43f5e; --accent-light: #fb7185; --accent-dim: #7a1d30;
    --accent-bg: rgba(244, 63, 94, 0.1); --accent-border: rgba(244, 63, 94, 0.2);
    --text-primary: #f2e6ea; --text-secondary: #b8949e; --text-muted: #7a5a65; --text-faint: #5a3f48;
    --border: rgba(60, 25, 40, 0.25); --border-strong: rgba(60, 25, 40, 0.4);
    --sidebar-bg: rgba(6, 4, 5, 0.95);
    --chart-line: #f43f5e; --chart-fill-top: rgba(244, 63, 94, 0.12);
}
[data-theme="rose"][data-bright="true"] {
    --bg-primary: #120a0e; --bg-secondary: #1a1014;
    --bg-panel: rgba(40, 22, 30, 0.82); --bg-panel-solid: #28161e;
    --bg-hover: rgba(72, 35, 50, 0.35); --bg-input: rgba(20, 12, 16, 0.7);
    --accent: #fb7185; --accent-light: #fda4af; --accent-dim: #9f1239;
    --accent-bg: rgba(251, 113, 133, 0.12); --accent-border: rgba(251, 113, 133, 0.25);
    --text-primary: #f8eef2; --text-secondary: #ccaab5; --text-muted: #907078; --text-faint: #6a4e56;
    --border: rgba(72, 35, 50, 0.3); --border-strong: rgba(72, 35, 50, 0.5);
    --sidebar-bg: rgba(12, 7, 10, 0.95);
    --chart-line: #fb7185; --chart-fill-top: rgba(251, 113, 133, 0.14);
}
[data-theme="rose"][data-dark="true"] {
    --bg-primary: #030203; --bg-secondary: #060405;
    --bg-panel: rgba(16, 8, 12, 0.88); --bg-panel-solid: #0e080a;
    --bg-hover: rgba(35, 14, 24, 0.3); --bg-input: rgba(5, 3, 4, 0.8);
    --accent: #e11d48; --accent-light: #f43f5e; --accent-dim: #5c1022;
    --accent-bg: rgba(225, 29, 72, 0.07); --accent-border: rgba(225, 29, 72, 0.14);
    --text-primary: #c0b0b6; --text-secondary: #8a6e78; --text-muted: #5c4048; --text-faint: #402c32;
    --border: rgba(45, 18, 30, 0.2); --border-strong: rgba(45, 18, 30, 0.3);
    --sidebar-bg: rgba(2, 1, 2, 0.97);
    --chart-line: #e11d48; --chart-fill-top: rgba(225, 29, 72, 0.08);
}

/* ════════════════ STARRY THEMES ════════════════ */

/* ──────────────── COSMOS ──────────────── */
[data-theme="cosmos"] {
    --bg-primary: #07080f; --bg-secondary: #0d1225;
    --bg-panel: rgba(17, 22, 49, 0.82); --bg-panel-solid: #111631;
    --bg-hover: rgba(30, 42, 82, 0.35); --bg-input: rgba(12, 15, 30, 0.7);
    --accent: #e8b931; --accent-light: #f0cc55; --accent-dim: #6b5010;
    --accent-bg: rgba(232, 185, 49, 0.1); --accent-border: rgba(232, 185, 49, 0.22);
    --text-primary: #e2e8f0; --text-secondary: #7a8bb5; --text-muted: #4a5578; --text-faint: #333d58;
    --border: rgba(30, 42, 82, 0.3); --border-strong: rgba(30, 42, 82, 0.5);
    --sidebar-bg: rgba(10, 13, 26, 0.95);
    --chart-line: #e8b931; --chart-fill-top: rgba(232, 185, 49, 0.12);
    --star-color-1: rgba(232, 185, 49, 0.6); --star-color-2: rgba(150, 180, 255, 0.4); --star-color-3: rgba(255, 255, 255, 0.3);
    --starry-theme: 1;
}
[data-theme="cosmos"][data-bright="true"] {
    --bg-primary: #0e1220; --bg-secondary: #141e38;
    --bg-panel: rgba(26, 34, 66, 0.82); --bg-panel-solid: #1a2242;
    --bg-hover: rgba(40, 55, 100, 0.4); --bg-input: rgba(18, 24, 48, 0.7);
    --accent: #f0cc55; --accent-light: #f5dc80; --accent-dim: #7a6018;
    --accent-bg: rgba(240, 204, 85, 0.12); --accent-border: rgba(240, 204, 85, 0.28);
    --text-primary: #eef0f8; --text-secondary: #90a0cc; --text-muted: #5a6a90; --text-faint: #404e70;
    --border: rgba(40, 55, 100, 0.38); --border-strong: rgba(40, 55, 100, 0.58);
    --sidebar-bg: rgba(12, 16, 34, 0.95);
    --chart-line: #f0cc55; --chart-fill-top: rgba(240, 204, 85, 0.16);
    --star-color-1: rgba(240, 204, 85, 0.7); --star-color-2: rgba(160, 190, 255, 0.5); --star-color-3: rgba(255, 255, 255, 0.4);
    --starry-theme: 1;
}
[data-theme="cosmos"][data-dark="true"] {
    --bg-primary: #020304; --bg-secondary: #060810;
    --bg-panel: rgba(8, 11, 24, 0.88); --bg-panel-solid: #080b18;
    --bg-hover: rgba(17, 24, 50, 0.35); --bg-input: rgba(4, 6, 16, 0.8);
    --accent: #c9982a; --accent-light: #e8b931; --accent-dim: #52400e;
    --accent-bg: rgba(201, 152, 42, 0.07); --accent-border: rgba(201, 152, 42, 0.15);
    --text-primary: #b8c0d0; --text-secondary: #556080; --text-muted: #303a52; --text-faint: #222a3e;
    --border: rgba(17, 24, 50, 0.3); --border-strong: rgba(17, 24, 50, 0.45);
    --sidebar-bg: rgba(3, 4, 8, 0.97);
    --chart-line: #c9982a; --chart-fill-top: rgba(201, 152, 42, 0.08);
    --star-color-1: rgba(201, 152, 42, 0.35); --star-color-2: rgba(120, 150, 220, 0.2); --star-color-3: rgba(255, 255, 255, 0.12);
    --starry-theme: 1;
}

/* ──────────────── NEBULA ──────────────── */
[data-theme="nebula"] {
    --bg-primary: #08060f; --bg-secondary: #140e25;
    --bg-panel: rgba(21, 16, 40, 0.82); --bg-panel-solid: #151028;
    --bg-hover: rgba(42, 31, 74, 0.35); --bg-input: rgba(13, 10, 26, 0.7);
    --accent: #38bdf8; --accent-light: #7dd3fc; --accent-dim: #0c4a6e;
    --accent-bg: rgba(56, 189, 248, 0.1); --accent-border: rgba(56, 189, 248, 0.22);
    --text-primary: #e8e0f0; --text-secondary: #8b7eb5; --text-muted: #584e78; --text-faint: #403860;
    --border: rgba(42, 31, 74, 0.35); --border-strong: rgba(42, 31, 74, 0.55);
    --sidebar-bg: rgba(10, 7, 26, 0.95);
    --chart-line: #38bdf8; --chart-fill-top: rgba(56, 189, 248, 0.12);
    --star-color-1: rgba(167, 139, 250, 0.5); --star-color-2: rgba(56, 189, 248, 0.4); --star-color-3: rgba(255, 255, 255, 0.25);
    --starry-theme: 1;
}
[data-theme="nebula"][data-bright="true"] {
    --bg-primary: #100c1c; --bg-secondary: #1c1438;
    --bg-panel: rgba(32, 24, 58, 0.82); --bg-panel-solid: #20183a;
    --bg-hover: rgba(54, 40, 90, 0.4); --bg-input: rgba(22, 16, 40, 0.7);
    --accent: #7dd3fc; --accent-light: #bae6fd; --accent-dim: #0c4a6e;
    --accent-bg: rgba(125, 211, 252, 0.12); --accent-border: rgba(125, 211, 252, 0.28);
    --text-primary: #f0eaf8; --text-secondary: #a498cc; --text-muted: #6e6090; --text-faint: #504570;
    --border: rgba(54, 40, 90, 0.4); --border-strong: rgba(54, 40, 90, 0.6);
    --sidebar-bg: rgba(14, 10, 34, 0.95);
    --chart-line: #7dd3fc; --chart-fill-top: rgba(125, 211, 252, 0.16);
    --star-color-1: rgba(167, 139, 250, 0.6); --star-color-2: rgba(125, 211, 252, 0.5); --star-color-3: rgba(255, 255, 255, 0.35);
    --starry-theme: 1;
}
[data-theme="nebula"][data-dark="true"] {
    --bg-primary: #030208; --bg-secondary: #080614;
    --bg-panel: rgba(8, 6, 22, 0.88); --bg-panel-solid: #080616;
    --bg-hover: rgba(22, 16, 48, 0.35); --bg-input: rgba(4, 3, 16, 0.8);
    --accent: #0ea5e9; --accent-light: #38bdf8; --accent-dim: #083a58;
    --accent-bg: rgba(14, 165, 233, 0.06); --accent-border: rgba(14, 165, 233, 0.13);
    --text-primary: #b5adc8; --text-secondary: #605580; --text-muted: #3a3055; --text-faint: #282040;
    --border: rgba(22, 16, 48, 0.3); --border-strong: rgba(22, 16, 48, 0.45);
    --sidebar-bg: rgba(2, 1, 8, 0.97);
    --chart-line: #0ea5e9; --chart-fill-top: rgba(14, 165, 233, 0.08);
    --star-color-1: rgba(124, 58, 237, 0.3); --star-color-2: rgba(14, 165, 233, 0.2); --star-color-3: rgba(255, 255, 255, 0.08);
    --starry-theme: 1;
}

/* ──────────────── AURORA ──────────────── */
[data-theme="aurora"] {
    --bg-primary: #060b10; --bg-secondary: #0a1520;
    --bg-panel: rgba(14, 24, 34, 0.82); --bg-panel-solid: #0e1822;
    --bg-hover: rgba(24, 42, 56, 0.35); --bg-input: rgba(8, 14, 22, 0.7);
    --accent: #34d399; --accent-light: #6ee7b7; --accent-dim: #065f46;
    --accent-bg: rgba(52, 211, 153, 0.1); --accent-border: rgba(52, 211, 153, 0.22);
    --text-primary: #e0eaf0; --text-secondary: #6b8da5; --text-muted: #3d5a70; --text-faint: #2a4055;
    --border: rgba(24, 42, 56, 0.35); --border-strong: rgba(24, 42, 56, 0.55);
    --sidebar-bg: rgba(7, 13, 20, 0.95);
    --chart-line: #34d399; --chart-fill-top: rgba(52, 211, 153, 0.12);
    --star-color-1: rgba(52, 211, 153, 0.4); --star-color-2: rgba(56, 189, 248, 0.3); --star-color-3: rgba(255, 255, 255, 0.3);
    --starry-theme: 1;
}
[data-theme="aurora"][data-bright="true"] {
    --bg-primary: #0c1420; --bg-secondary: #122030;
    --bg-panel: rgba(22, 36, 50, 0.82); --bg-panel-solid: #162432;
    --bg-hover: rgba(34, 54, 72, 0.4); --bg-input: rgba(16, 24, 36, 0.7);
    --accent: #6ee7b7; --accent-light: #a7f3d0; --accent-dim: #065f46;
    --accent-bg: rgba(110, 231, 183, 0.12); --accent-border: rgba(110, 231, 183, 0.28);
    --text-primary: #eef4f8; --text-secondary: #88a8c0; --text-muted: #4e7088; --text-faint: #365468;
    --border: rgba(34, 54, 72, 0.4); --border-strong: rgba(34, 54, 72, 0.6);
    --sidebar-bg: rgba(10, 18, 28, 0.95);
    --chart-line: #6ee7b7; --chart-fill-top: rgba(110, 231, 183, 0.16);
    --star-color-1: rgba(110, 231, 183, 0.5); --star-color-2: rgba(125, 211, 252, 0.4); --star-color-3: rgba(255, 255, 255, 0.4);
    --starry-theme: 1;
}
[data-theme="aurora"][data-dark="true"] {
    --bg-primary: #020508; --bg-secondary: #050a10;
    --bg-panel: rgba(6, 12, 18, 0.88); --bg-panel-solid: #060c12;
    --bg-hover: rgba(14, 24, 32, 0.35); --bg-input: rgba(3, 8, 16, 0.8);
    --accent: #10b981; --accent-light: #34d399; --accent-dim: #044e36;
    --accent-bg: rgba(16, 185, 129, 0.06); --accent-border: rgba(16, 185, 129, 0.13);
    --text-primary: #a8bcc8; --text-secondary: #4a6878; --text-muted: #283a48; --text-faint: #1c2c38;
    --border: rgba(14, 24, 32, 0.3); --border-strong: rgba(14, 24, 32, 0.45);
    --sidebar-bg: rgba(2, 6, 10, 0.97);
    --chart-line: #10b981; --chart-fill-top: rgba(16, 185, 129, 0.08);
    --star-color-1: rgba(16, 185, 129, 0.2); --star-color-2: rgba(14, 165, 233, 0.15); --star-color-3: rgba(255, 255, 255, 0.1);
    --starry-theme: 1;
}

/* ──────────────── SAKURA ──────────────── */
/* Normal — Nighttime cherry blossoms + soft petal pink */
[data-theme="sakura"] {
    --bg-primary: #08050c; --bg-secondary: #120a1a;
    --bg-panel: rgba(18, 9, 28, 0.82); --bg-panel-solid: #12091c;
    --bg-hover: rgba(38, 20, 56, 0.35); --bg-input: rgba(10, 6, 16, 0.7);
    --accent: #f0a0b8; --accent-light: #f8c4d4; --accent-dim: #6b3048;
    --accent-bg: rgba(240, 160, 184, 0.1); --accent-border: rgba(240, 160, 184, 0.22);
    --text-primary: #f0e4ea; --text-secondary: #b090a0; --text-muted: #8a6a7a; --text-faint: #5a3e4e;
    --border: rgba(38, 20, 56, 0.3); --border-strong: rgba(38, 20, 56, 0.5);
    --sidebar-bg: rgba(6, 3, 10, 0.95);
    --chart-line: #f0a0b8; --chart-fill-top: rgba(240, 160, 184, 0.12);
    --star-color-1: rgba(240, 160, 184, 0.5); --star-color-2: rgba(255, 220, 240, 0.35); --star-color-3: rgba(200, 160, 220, 0.3);
    --starry-theme: 1;
}
/* Bright — Lifted for OLED readability */
[data-theme="sakura"][data-bright="true"] {
    --bg-primary: #120a18; --bg-secondary: #1c1228;
    --bg-panel: rgba(30, 16, 42, 0.82); --bg-panel-solid: #1e1028;
    --bg-hover: rgba(50, 28, 68, 0.4); --bg-input: rgba(20, 12, 28, 0.7);
    --accent: #f8c4d4; --accent-light: #fde4ec; --accent-dim: #7a3855;
    --accent-bg: rgba(248, 196, 212, 0.12); --accent-border: rgba(248, 196, 212, 0.28);
    --text-primary: #f8f0f4; --text-secondary: #c8a8b8; --text-muted: #9a7a8a; --text-faint: #6a4e5c;
    --border: rgba(50, 28, 68, 0.35); --border-strong: rgba(50, 28, 68, 0.55);
    --sidebar-bg: rgba(10, 5, 16, 0.95);
    --chart-line: #f8c4d4; --chart-fill-top: rgba(248, 196, 212, 0.16);
    --star-color-1: rgba(248, 196, 212, 0.6); --star-color-2: rgba(255, 230, 245, 0.45); --star-color-3: rgba(210, 170, 230, 0.4);
    --starry-theme: 1;
}
/* Dark — Deep midnight garden + distant petal glow */
[data-theme="sakura"][data-dark="true"] {
    --bg-primary: #030205; --bg-secondary: #08050e;
    --bg-panel: rgba(8, 5, 16, 0.88); --bg-panel-solid: #080510;
    --bg-hover: rgba(20, 9, 30, 0.35); --bg-input: rgba(4, 3, 10, 0.8);
    --accent: #d4809a; --accent-light: #f0a0b8; --accent-dim: #52203a;
    --accent-bg: rgba(212, 128, 154, 0.06); --accent-border: rgba(212, 128, 154, 0.14);
    --text-primary: #c0b0b8; --text-secondary: #7a6068; --text-muted: #6a5060; --text-faint: #3e2c36;
    --border: rgba(20, 9, 30, 0.25); --border-strong: rgba(20, 9, 30, 0.4);
    --sidebar-bg: rgba(2, 1, 4, 0.97);
    --chart-line: #d4809a; --chart-fill-top: rgba(212, 128, 154, 0.08);
    --star-color-1: rgba(212, 128, 154, 0.28); --star-color-2: rgba(255, 200, 225, 0.15); --star-color-3: rgba(180, 140, 200, 0.12);
    --starry-theme: 1;
}

/* ──────────────── SIBYL (Psycho-Pass — Dominator HUD) ──────────────── */
[data-theme="sibyl"] {
    --bg-primary: #030810; --bg-secondary: #060e1c;
    --bg-panel: rgba(8, 16, 36, 0.85); --bg-panel-solid: #081024;
    --bg-hover: rgba(16, 32, 58, 0.4); --bg-input: rgba(4, 8, 20, 0.75);
    --accent: #4fc3f7; --accent-light: #81d4fa; --accent-dim: #0d4f72;
    --accent-bg: rgba(79, 195, 247, 0.08); --accent-border: rgba(79, 195, 247, 0.16);
    --text-primary: #d8e6f4; --text-secondary: #7e96b8; --text-muted: #506880; --text-faint: #2e4258;
    --border: rgba(79, 195, 247, 0.05); --border-strong: rgba(79, 195, 247, 0.10);
    --sidebar-bg: rgba(3, 6, 14, 0.96);
    --chart-line: #4fc3f7; --chart-fill-top: rgba(79, 195, 247, 0.10);
    --star-color-1: rgba(79, 195, 247, 0.55); --star-color-2: rgba(140, 200, 255, 0.35); --star-color-3: rgba(220, 240, 255, 0.2);
    --starry-theme: 1;
}
/* Bright — OLED lift, sterile laboratory feel */
[data-theme="sibyl"][data-bright="true"] {
    --bg-primary: #0a1420; --bg-secondary: #101e30;
    --bg-panel: rgba(16, 28, 52, 0.85); --bg-panel-solid: #101c34;
    --bg-hover: rgba(24, 44, 72, 0.45); --bg-input: rgba(10, 16, 32, 0.7);
    --accent: #81d4fa; --accent-light: #b3e5fc; --accent-dim: #1a6080;
    --accent-bg: rgba(129, 212, 250, 0.12); --accent-border: rgba(129, 212, 250, 0.24);
    --text-primary: #eaf2fa; --text-secondary: #9ab4d0; --text-muted: #6a84a0; --text-faint: #3e5870;
    --border: rgba(79, 195, 247, 0.08); --border-strong: rgba(79, 195, 247, 0.16);
    --sidebar-bg: rgba(6, 10, 20, 0.96);
    --chart-line: #81d4fa; --chart-fill-top: rgba(129, 212, 250, 0.14);
    --star-color-1: rgba(129, 212, 250, 0.65); --star-color-2: rgba(170, 220, 255, 0.45); --star-color-3: rgba(230, 245, 255, 0.3);
    --starry-theme: 1;
}
/* Dark — Deep abyss, surveillance state at night */
[data-theme="sibyl"][data-dark="true"] {
    --bg-primary: #010408; --bg-secondary: #03080e;
    --bg-panel: rgba(4, 8, 18, 0.90); --bg-panel-solid: #040812;
    --bg-hover: rgba(8, 18, 34, 0.35); --bg-input: rgba(2, 4, 10, 0.8);
    --accent: #2a8ab8; --accent-light: #4fc3f7; --accent-dim: #08304a;
    --accent-bg: rgba(42, 138, 184, 0.06); --accent-border: rgba(42, 138, 184, 0.10);
    --text-primary: #a0b8cc; --text-secondary: #586e82; --text-muted: #3e5060; --text-faint: #1e2e3a;
    --border: rgba(79, 195, 247, 0.03); --border-strong: rgba(79, 195, 247, 0.06);
    --sidebar-bg: rgba(1, 2, 6, 0.98);
    --chart-line: #2a8ab8; --chart-fill-top: rgba(42, 138, 184, 0.06);
    --star-color-1: rgba(42, 138, 184, 0.25); --star-color-2: rgba(100, 160, 200, 0.14); --star-color-3: rgba(180, 210, 230, 0.08);
    --starry-theme: 1;
}

/* Sibyl scan line — horizontal sweep across viewport */
[data-theme="sibyl"] .sibyl-scanline {
    display: block;
}
.sibyl-scanline {
    display: none;
    position: fixed; top: 0; left: 0; width: 100%; height: 2px;
    background: linear-gradient(90deg, transparent 0%, var(--accent, #4fc3f7) 30%, var(--accent, #4fc3f7) 70%, transparent 100%);
    opacity: 0.12;
    pointer-events: none;
    z-index: 0;
    animation: sibyl-sweep 14s linear infinite;
}
[data-theme="sibyl"] .sibyl-scanline-slow {
    display: block;
}
.sibyl-scanline-slow {
    display: none;
    position: fixed; top: 0; left: 0; width: 100%; height: 1px;
    background: linear-gradient(90deg, transparent 5%, var(--accent, #4fc3f7) 40%, var(--accent, #4fc3f7) 60%, transparent 95%);
    opacity: 0.06;
    pointer-events: none;
    z-index: 0;
    animation: sibyl-sweep 23s linear infinite;
    animation-delay: -8s;
}
@keyframes sibyl-sweep {
    0%   { transform: translateY(-2px); }
    100% { transform: translateY(100vh); }
}
