/* Design tokens copied verbatim from app/static/src/010-helix-design-system.css (lines 3-40).
   Keep names and values identical to the Python stylesheet. The shell's explicit theme switch sets
   [data-theme] on .workspace; the two rules after the copy pin that choice over the OS preference. */
:root{color-scheme:light dark;
 --azure:#056CF2;--navy:#0B2A5B;--cyan:#00D6EF;
 --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;
 --r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;
 --font-sans:'Ubuntu',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
 --font-mono:'JetBrains Mono',ui-monospace,Menlo,monospace;
 --chat-w:760px;
 /* Phase 5 type scale (spec #2): page title 24, section 18, card title 16, body 15, metadata + helper 14 (never smaller) */
 --fs-title:24px;--fs-section:18px;--fs-card:16px;--fs-body:15px;--fs-meta:14px;--fs-help:14px;
 /* light */
 --bg-canvas:#F4F6FA;--bg-panel:#FFFFFF;--bg-surface:#FFFFFF;--bg-sunken:#F1F4F9;--bg-hover:rgba(11,42,91,.05);--bg-active:rgba(5,108,242,.10);
 --border-subtle:#E2E7EF;--border-strong:#C9D2DE;
 --text-primary:#0F1B2D;--text-secondary:#46566C;--text-muted:#526178;
 --brand:#056CF2;--brand-hover:#0459C9;--brand-text:#0559C9;--on-brand:#FFFFFF;--brand-soft:rgba(5,108,242,.10);--brand-line:rgba(5,108,242,.35);
 --focus:#056CF2;
 --ok:#08704A;--ok-bg:rgba(16,185,129,.12);--ok-line:rgba(16,185,129,.35);
 --warn:#8A5300;--warn-bg:rgba(245,158,11,.14);--warn-line:rgba(245,158,11,.4);
 --bad:#C42B2B;--bad-bg:rgba(220,38,38,.08);--bad-line:rgba(220,38,38,.3);
 --purple:#7A36C4;--purple-bg:rgba(168,85,247,.10);
 --code-bg:#EEF2F8;--code-text:#0B4FAE;--code-line:#DCE3EE;--pre-bg:#F6F8FB;--pre-text:#1B2638;
 --side-bg:#0B2A5B;--side-text:#FFFFFF;--side-mute:rgba(255,255,255,.74);--side-dim:rgba(255,255,255,.70);--side-hover:rgba(255,255,255,.08);--side-active:rgba(255,255,255,.14);--side-line:rgba(255,255,255,.12);
 --shadow-sm:0 1px 2px rgba(15,27,45,.06);--shadow-md:0 6px 24px rgba(15,27,45,.12);
 --scroll:rgba(11,42,91,.18);--page-shadow:0 2px 12px rgba(15,27,45,.18);
 --bg:var(--bg-canvas);--panel:var(--bg-panel);--panel2:var(--bg-surface);--line:var(--border-subtle);--text:var(--text-primary);--mute:var(--text-secondary);--acc:var(--brand);--acc2:var(--brand-text);--r:10px}
@media (prefers-color-scheme:dark){:root{
 --bg-canvas:#070C17;--bg-panel:#0C1322;--bg-surface:#121B2E;--bg-sunken:#09101D;--bg-hover:rgba(255,255,255,.05);--bg-active:rgba(5,108,242,.22);
 --border-subtle:rgba(255,255,255,.08);--border-strong:rgba(255,255,255,.16);
 --text-primary:#EEF2F8;--text-secondary:#AAB6C8;--text-muted:#8C9BB0;
 --brand-hover:#2A83F5;--brand-text:#62A8FF;--brand-soft:rgba(5,108,242,.20);--brand-line:rgba(98,168,255,.4);
 --focus:#62A8FF;
 --ok:#34D399;--ok-bg:rgba(16,185,129,.14);--ok-line:rgba(16,185,129,.3);
 --warn:#FBBF24;--warn-bg:rgba(245,158,11,.14);--warn-line:rgba(245,158,11,.3);
 --bad:#FCA5A5;--bad-bg:rgba(248,113,113,.12);--bad-line:rgba(248,113,113,.3);
 --purple:#C9A6FF;--purple-bg:rgba(168,85,247,.16);
 --code-bg:rgba(255,255,255,.07);--code-text:#9CC7FF;--code-line:rgba(255,255,255,.1);--pre-bg:#060A14;--pre-text:#D2DAE6;
 --side-bg:#08182F;--side-line:rgba(255,255,255,.09);
 --shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow-md:0 8px 30px rgba(0,0,0,.5);
 --scroll:rgba(255,255,255,.14);--page-shadow:0 2px 14px rgba(0,0,0,.5)}}
.workspace[data-theme="light"]{color-scheme:light;--bg-canvas:#F4F6FA;--bg-panel:#FFFFFF;--bg-surface:#FFFFFF;--bg-sunken:#F1F4F9;--bg-hover:rgba(11,42,91,.05);--bg-active:rgba(5,108,242,.10);--border-subtle:#E2E7EF;--border-strong:#C9D2DE;--text-primary:#0F1B2D;--text-secondary:#46566C;--text-muted:#526178;--brand-hover:#0459C9;--brand-text:#0559C9;--brand-soft:rgba(5,108,242,.10);--brand-line:rgba(5,108,242,.35);--focus:#056CF2;--ok:#08704A;--ok-bg:rgba(16,185,129,.12);--ok-line:rgba(16,185,129,.35);--warn:#8A5300;--warn-bg:rgba(245,158,11,.14);--warn-line:rgba(245,158,11,.4);--bad:#C42B2B;--bad-bg:rgba(220,38,38,.08);--bad-line:rgba(220,38,38,.3);--purple:#7A36C4;--purple-bg:rgba(168,85,247,.10);--code-bg:#EEF2F8;--code-text:#0B4FAE;--code-line:#DCE3EE;--pre-bg:#F6F8FB;--pre-text:#1B2638;--side-bg:#0B2A5B;--side-line:rgba(255,255,255,.12);--shadow-sm:0 1px 2px rgba(15,27,45,.06);--shadow-md:0 6px 24px rgba(15,27,45,.12);--scroll:rgba(11,42,91,.18);--page-shadow:0 2px 12px rgba(15,27,45,.18)}
.workspace[data-theme="dark"]{color-scheme:dark;--bg-canvas:#070C17;--bg-panel:#0C1322;--bg-surface:#121B2E;--bg-sunken:#09101D;--bg-hover:rgba(255,255,255,.05);--bg-active:rgba(5,108,242,.22);--border-subtle:rgba(255,255,255,.08);--border-strong:rgba(255,255,255,.16);--text-primary:#EEF2F8;--text-secondary:#AAB6C8;--text-muted:#8C9BB0;--brand-hover:#2A83F5;--brand-text:#62A8FF;--brand-soft:rgba(5,108,242,.20);--brand-line:rgba(98,168,255,.4);--focus:#62A8FF;--ok:#34D399;--ok-bg:rgba(16,185,129,.14);--ok-line:rgba(16,185,129,.3);--warn:#FBBF24;--warn-bg:rgba(245,158,11,.14);--warn-line:rgba(245,158,11,.3);--bad:#FCA5A5;--bad-bg:rgba(248,113,113,.12);--bad-line:rgba(248,113,113,.3);--purple:#C9A6FF;--purple-bg:rgba(168,85,247,.16);--code-bg:rgba(255,255,255,.07);--code-text:#9CC7FF;--code-line:rgba(255,255,255,.1);--pre-bg:#060A14;--pre-text:#D2DAE6;--side-bg:#08182F;--side-line:rgba(255,255,255,.09);--shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow-md:0 8px 30px rgba(0,0,0,.5);--scroll:rgba(255,255,255,.14);--page-shadow:0 2px 14px rgba(0,0,0,.5)}
