/* Launchbox color tokens. Dark on :root (default); light under [data-theme="light"]. OS-preference fallback is applied by setting data-theme from JS (see readme: Theming). */
:root{
color-scheme:dark;
--bg:#0B1220;--surface:#121B2E;--border:#1E2A44;--text:#E8EEF9;--muted:#8A99B8;
--accent:#2DD4BF;--accent-2:#6366F1;--on-accent:#0B1220;
--success:#22C55E;--warning:#F59E0B;--danger:#EF4444;--on-status:#0B1220;
/* semantic aliases */
--surface-page:var(--bg);--surface-card:var(--surface);--surface-header:var(--surface);--surface-control:var(--bg);
--border-default:var(--border);--divider:var(--border);--chart-grid:var(--border);
--text-body:var(--text);--text-muted:var(--muted);--text-positive:var(--accent);
--action-primary:var(--accent);--action-primary-text:var(--on-accent);
--chart-series-1:var(--accent);--chart-series-2:var(--accent-2);
--status-paid:var(--success);--status-live:var(--success);--status-due-soon:var(--warning);--status-building:var(--warning);--status-overdue:var(--danger);
--focus-ring:var(--accent);
}
:root[data-theme="light"]{color-scheme:light;--bg:#F6F8FC;--surface:#FFFFFF;--border:#E2E8F0;--text:#0B1220;--muted:#5B6B82;--accent:#0F766E;--accent-2:#4F46E5;--on-accent:#FFFFFF}
:root[data-theme="dark"]{color-scheme:dark}
