/* ============================================================
   RMB Front-End System — Tokens (semantic layer)
   Light default; dark via media query + [data-theme] override.
   Components read these ONLY. This is the one place raw color/px
   values are allowed to live.
   ============================================================ */
:root{
  --text-9:9px; --text-12:12px; --text-15:15px; --text-18:18px; --text-21:21px; --text-24:24px; --text-30:30px;
  --font-sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-mono:ui-monospace,"SF Mono","Cascadia Code",Menlo,Consolas,monospace;
  --sp-4:4px; --sp-8:8px; --sp-12:12px; --sp-16:16px; --sp-24:24px; --sp-32:32px;
  --sp-48:48px; --sp-64:64px; --sp-72:72px; --sp-96:96px;
  --radius-sm:4px; --radius-md:6px; --radius-lg:10px; --radius-pill:999px;
  /* layout — container cap + the canonical responsive breakpoints.
     var() can't be used in @media conditions, so hardcode --bp-* values there. */
  --screen-max:1440px; --bp-lg:1080px; --bp-md:760px; --bp-sm:400px;
  /* app shell + z-index ladder */
  --sidebar-w:240px; --topbar-h:60px;
  --z-sticky:200; --z-dropdown:300; --z-overlay:400; --z-modal:500; --z-toast:600;
  --dur-fast:120ms; --ease:cubic-bezier(.16,1,.3,1);
  /* surfaces + ink */
  color-scheme:light; /* native controls (date picker, spinners, scrollbars) track the theme */
  --ground:#F1F4F2; --surface:#FFFFFF; --surface-2:#E9EEEB;
  --ink:#17211E; --muted:#566058; --faint:#8A968E; --line:#DCE3DE; --line-2:#C6D0C9;
  --shadow:0 1px 2px rgba(20,30,25,.05),0 6px 20px rgba(20,30,25,.06);
  /* accent */
  --accent:#0E7C6B; --accent-ink:#0A5D50; --accent-soft:#DCEDE9; --on-accent:#FFFFFF;
  /* text on a solid danger fill (always white), and a small elevation */
  --on-danger:#FFFFFF; --shadow-sm:0 1px 2px rgba(0,0,0,.18);
  /* status roles (X / X-ink / X-soft) */
  --success:#2E7D57; --success-ink:#1F5E40; --success-soft:#DDEFE6;
  --warning:#B4732A; --warning-ink:#8A5718; --warning-soft:#F4EADD;
  --danger:#B4453A;  --danger-ink:#8A2F27;  --danger-soft:#F5E1DE;
  --info:#3B6FB0;    --info-ink:#2C5488;    --info-soft:#E4ECF6;
  --purple:#6B3FA0;  --purple-ink:#532E80;  --purple-soft:#ECE4F6;
  --orange:#B4622A;  --orange-ink:#8A4A1E;  --orange-soft:#F4E7DD;
  --neutral:#566058; --neutral-ink:#3B433D; --neutral-soft:#E4E9E6;
}
@media (prefers-color-scheme: dark){:root{
  color-scheme:dark;
  --ground:#0E1512; --surface:#151D19; --surface-2:#1C241F;
  --ink:#E6ECE8; --muted:#9DA9A2; --faint:#6E7A73; --line:#253029; --line-2:#35423A;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 6px 22px rgba(0,0,0,.35);
  --accent:#46B7A2; --accent-ink:#82D8C8; --accent-soft:#11241F; --on-accent:#08120F;
  --success:#5FC79E; --success-ink:#8FE0C0; --success-soft:#12241E;
  --warning:#D6A05C; --warning-ink:#E6BC82; --warning-soft:#2A2114;
  --danger:#DB7B6F;  --danger-ink:#E89A90;  --danger-soft:#2C1917;
  --info:#6FA0DA;    --info-ink:#A8C6EA;    --info-soft:#152234;
  --purple:#B79AE0;  --purple-ink:#CDB8EC;  --purple-soft:#241C33;
  --orange:#D68A5C;  --orange-ink:#E6AC82;  --orange-soft:#2A1E14;
  --neutral:#9DA9A2; --neutral-ink:#C2CCC6; --neutral-soft:#1C241F;
}}
:root[data-theme="light"]{
  color-scheme:light;
  --ground:#F1F4F2; --surface:#FFFFFF; --surface-2:#E9EEEB;
  --ink:#17211E; --muted:#566058; --faint:#8A968E; --line:#DCE3DE; --line-2:#C6D0C9;
  --shadow:0 1px 2px rgba(20,30,25,.05),0 6px 20px rgba(20,30,25,.06);
  --accent:#0E7C6B; --accent-ink:#0A5D50; --accent-soft:#DCEDE9; --on-accent:#FFFFFF;
  --success:#2E7D57; --success-ink:#1F5E40; --success-soft:#DDEFE6;
  --warning:#B4732A; --warning-ink:#8A5718; --warning-soft:#F4EADD;
  --danger:#B4453A;  --danger-ink:#8A2F27;  --danger-soft:#F5E1DE;
  --info:#3B6FB0;    --info-ink:#2C5488;    --info-soft:#E4ECF6;
  --purple:#6B3FA0;  --purple-ink:#532E80;  --purple-soft:#ECE4F6;
  --orange:#B4622A;  --orange-ink:#8A4A1E;  --orange-soft:#F4E7DD;
  --neutral:#566058; --neutral-ink:#3B433D; --neutral-soft:#E4E9E6;
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --ground:#0E1512; --surface:#151D19; --surface-2:#1C241F;
  --ink:#E6ECE8; --muted:#9DA9A2; --faint:#6E7A73; --line:#253029; --line-2:#35423A;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 6px 22px rgba(0,0,0,.35);
  --accent:#46B7A2; --accent-ink:#82D8C8; --accent-soft:#11241F; --on-accent:#08120F;
  --success:#5FC79E; --success-ink:#8FE0C0; --success-soft:#12241E;
  --warning:#D6A05C; --warning-ink:#E6BC82; --warning-soft:#2A2114;
  --danger:#DB7B6F;  --danger-ink:#E89A90;  --danger-soft:#2C1917;
  --info:#6FA0DA;    --info-ink:#A8C6EA;    --info-soft:#152234;
  --purple:#B79AE0;  --purple-ink:#CDB8EC;  --purple-soft:#241C33;
  --orange:#D68A5C;  --orange-ink:#E6AC82;  --orange-soft:#2A1E14;
  --neutral:#9DA9A2; --neutral-ink:#C2CCC6; --neutral-soft:#1C241F;
}
