:root{
  --bg:#F6F6FA; --surface:#FFFFFF; --surface-2:#FAFAFD; --line:#E7E6F0; --line-strong:#D6D4E4;
  --ink:#16152B; --ink-2:#3F3D5A; --muted:#6D6B87;
  --accent:#5B4BDB; --accent-hover:#4B3CC7; --accent-soft:#EFEDFF; --accent-ink:#3A2F9E;
  --success:#0E8A5F; --success-soft:#E7F6EF; --warning:#9A6B00; --warning-soft:#FFF5D9; --danger:#D0384F; --danger-soft:#FDECEF;
  --font:ui-sans-serif,-apple-system,"Segoe UI Variable Text","Segoe UI",Roboto,sans-serif;
  --mono:ui-monospace,"Cascadia Mono","SF Mono",Consolas,monospace;
  --radius-sm:6px; --radius:10px; --radius-lg:14px;
  --shadow-1:0 1px 2px rgba(22,21,43,.06),0 1px 1px rgba(22,21,43,.04); --shadow-2:0 8px 24px rgba(22,21,43,.10);
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px; --space-6:32px;
  --touch:44px; --nav-h:56px; --sidebar:240px;
  color-scheme: light dark;
}
@media (prefers-color-scheme: dark){:root{
  --bg:#0F0E1D; --surface:#17162B; --surface-2:#1C1B33; --line:#2A2945; --line-strong:#38365A;
  --ink:#F2F1FA; --ink-2:#CFCDE6; --muted:#A3A1BF;
  --accent:#8F83FF; --accent-hover:#A49AFF; --accent-soft:#25224A; --accent-ink:#C9C3FF;
  --success:#3CC48F; --success-soft:#10291F; --warning:#E0B040; --warning-soft:#2B2410; --danger:#FF6B81; --danger-soft:#33141B;
}}
html{font-family:var(--font);font-variant-numeric:tabular-nums;}

/* Explicit theme choice from the console menu (same token values; "system" leaves data-theme unset). */
:root[data-theme="light"]{
  --bg:#F6F6FA; --surface:#FFFFFF; --surface-2:#FAFAFD; --line:#E7E6F0; --line-strong:#D6D4E4;
  --ink:#16152B; --ink-2:#3F3D5A; --muted:#6D6B87;
  --accent:#5B4BDB; --accent-hover:#4B3CC7; --accent-soft:#EFEDFF; --accent-ink:#3A2F9E;
  --success:#0E8A5F; --success-soft:#E7F6EF; --warning:#9A6B00; --warning-soft:#FFF5D9; --danger:#D0384F; --danger-soft:#FDECEF;
  color-scheme: light;
}
:root[data-theme="dark"]{
  --bg:#0F0E1D; --surface:#17162B; --surface-2:#1C1B33; --line:#2A2945; --line-strong:#38365A;
  --ink:#F2F1FA; --ink-2:#CFCDE6; --muted:#A3A1BF;
  --accent:#8F83FF; --accent-hover:#A49AFF; --accent-soft:#25224A; --accent-ink:#C9C3FF;
  --success:#3CC48F; --success-soft:#10291F; --warning:#E0B040; --warning-soft:#2B2410; --danger:#FF6B81; --danger-soft:#33141B;
  --shadow-1:0 1px 2px rgba(0,0,0,.30),0 1px 1px rgba(0,0,0,.20); --shadow-2:0 8px 24px rgba(0,0,0,.40);
  color-scheme: dark;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --shadow-1:0 1px 2px rgba(0,0,0,.30),0 1px 1px rgba(0,0,0,.20); --shadow-2:0 8px 24px rgba(0,0,0,.40);
}}

/* Text on status colors and on the accent: at least 4.5:1 on the surface and on the soft fills (WCAG AA).
   Status colors stay for icons, borders and fills; text uses the -ink tokens. */
:root{ --success-ink:#0B6E4C; --warning-ink:#7A5500; --danger-ink:#A3243A; --on-accent:#FFFFFF; }
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){ --success-ink:#3CC48F; --warning-ink:#E0B040; --danger-ink:#FF6B81; --on-accent:#0F0E1D; }}
:root[data-theme="dark"]{ --success-ink:#3CC48F; --warning-ink:#E0B040; --danger-ink:#FF6B81; --on-accent:#0F0E1D; }
