:root,
:root[data-theme="dark"] {
    color-scheme: dark;

    --color-bg: #0b0f14;
    --color-bg-2: #0a1220;
    --color-surface-1: #111826;
    --color-surface-2: #0f1623;
    --color-text: #e6edf3;
    --color-muted: #9aa4b2;
    --color-border: rgba(255, 255, 255, 0.10);

    --color-accent: #7aa2ff;
    --color-accent-2: #22c55e;
    --color-danger: #ef4444;

    --shadow-1: 0 10px 30px rgba(0, 0, 0, 0.45);
    --radius-1: 8px;
    --radius-2: 12px;
    --radius-3: 14px;
    --radius-4: 18px;

    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 28px;

    --bg-gradient: radial-gradient(1200px 700px at 20% 0%, #101a2a 0%, var(--color-bg) 55%);

    --plot-bg: rgba(0, 0, 0, 0);
    --plot-border: rgba(0, 0, 0, 0);
    --plot-grid: rgba(255, 255, 255, 0.08);
    --plot-text: var(--color-text);

    --lane-over-bg: rgba(255, 255, 255, 0.03);

    --app-gap: var(--space-3);
    --app-padding: var(--space-3);
    --panel-min: 260px;
    --panel-max: 320px;

    --font-sans: "Space Grotesk", "Avenir Next", "Avenir", "Gill Sans", "Trebuchet MS",
        "Helvetica Neue", sans-serif;
    --font-mono: "IBM Plex Mono", "SFMono-Regular", Menlo, Monaco, Consolas,
        "Liberation Mono", "Courier New", monospace;

    --bg: var(--color-bg);
    --bg2: var(--color-bg-2);
    --panel: var(--color-surface-1);
    --panel-2: var(--color-surface-2);
    --text: var(--color-text);
    --muted: var(--color-muted);
    --border: var(--color-border);
    --accent: var(--color-accent);
    --accent-2: var(--color-accent-2);
    --accent2: var(--color-accent-2);
    --shadow: var(--shadow-1);
    --radius: var(--radius-3);
    --sans: var(--font-sans);
    --mono: var(--font-mono);
}

:root[data-density="compact"] {
    --app-gap: var(--space-2);
    --app-padding: var(--space-2);
    --panel-min: 220px;
    --panel-max: 280px;
}

:root[data-density="spacious"] {
    --app-gap: var(--space-4);
    --app-padding: var(--space-4);
    --panel-min: 280px;
    --panel-max: 360px;
}
