/* Per-mode design tokens (docs/run6/CONTRACT.md §4; values: stream K, docs/run6/design.md). Only custom properties and
   [data-mode]/[data-theme] selectors. Ceiling 4 KB gzip. Every block defines every token so a block never leans on another
   mode's values. [data-mode="x"] without "html" also themes an element that carries the attribute (the Home picker cards,
   the two halves of the mode-switch flight); the [data-mode="sat"] block repeats index.html's :root for that (test: no drift).
   SAT light = index.html :root, untouched. Contrast: tests/modes/contrast.test.mjs (every pair AA in every mode x theme). */
:root,[data-mode="sat"]{
  --mode-accent:#2748D6;--mode-accent-ink:#FFFFFF;--mode-accent-soft:rgba(39,72,214,.1);--mode-accent-line:#2748D6;
  --mode-hero-a:#1B34A6;--mode-hero-b:#2748D6;--mode-hero-ink:#FFFFFF;
  --mode-ridge-1:#1C2A55;--mode-ridge-2:#3E5590;--mode-ridge-3:#9AAEDB;--mode-glow:rgba(120,170,255,.3);
  --mode-focus:#2748D6;--mode-name:"SAT";--text-2:#4E4F46;
  /* the three cards of Home's picker and the switcher menu show every mode at once: one pair per mode, text --pick-ink on both stops */
  --pick-sat-a:#1B34A6;--pick-sat-b:#2748D6;--pick-act-a:#7A2410;--pick-act-b:#B23A1E;--pick-ap-a:#3B2775;--pick-ap-b:#5B3FA8;--pick-ink:#FFFFFF;
}
/* run 6b core Part A: the neutral Home (/) has its own graphite palette; the three picker cards keep their own modes */
html[data-mode="home"]{
  --paper:#ECEBE7;--paper-2:#F5F4F1;--surface:#FFFFFF;--ink:#1F2023;--ink-soft:#4A4B50;--muted:#5E5F65;--line:#D9D8D3;
  --accent:#2B2D33;--accent-deep:#16171A;
  --easy:#28724E;--medium:#8F5B0D;--hard:#B33528;--chal:#6A4EA0;--easy-bg:#E4F0E9;--medium-bg:#F5ECD7;--hard-bg:#F6E3E0;--chal-bg:#ECE7F5;
  --good:#28724E;--good-bg:#E4F0E9;--bad:#B33528;--bad-bg:#F6E3E0;
  --shadow:0 1px 2px rgba(31,32,35,.05),0 10px 30px rgba(31,32,35,.06);--ink-2:#2A2B2F;--ink-line:rgba(245,244,241,.16);--snow:#F5F4F1;
  --mode-accent:#2B2D33;--mode-accent-ink:#FFFFFF;--mode-accent-soft:rgba(43,45,51,.08);--mode-accent-line:#2B2D33;
  --mode-hero-a:#1B1C20;--mode-hero-b:#3B3E47;--mode-hero-ink:#FFFFFF;
  --mode-ridge-1:#1B1C20;--mode-ridge-2:#4A4D57;--mode-ridge-3:#A9ABB3;--mode-glow:rgba(190,192,204,.3);
  --mode-focus:#2B2D33;--mode-name:"";--text-2:#4A4B50;
}
[data-mode="sat"]{
  --paper:#EAEAE3;--paper-2:#F3F2EC;--surface:#FFFFFF;--ink:#20211C;--ink-soft:#4E4F46;--muted:#606155;--line:#D8D7CB;
  --accent:#2748D6;--accent-deep:#1B34A6;
  --easy:#28724E;--medium:#A9701A;--hard:#B33528;--chal:#6A4EA0;--easy-bg:#E4F0E9;--medium-bg:#F5ECD7;--hard-bg:#F6E3E0;--chal-bg:#ECE7F5;
  --good:#28724E;--good-bg:#E4F0E9;--bad:#B33528;--bad-bg:#F6E3E0;
  --shadow:0 1px 2px rgba(32,33,28,.05), 0 10px 30px rgba(32,33,28,.05);--ink-2:#2A2B24;--ink-line:rgba(243,242,236,.16);--snow:#F3F2EC;
}
[data-mode="act"]{
  --paper:#EFE7DE;--paper-2:#F7F2EC;--surface:#FFFFFF;--ink:#241B16;--ink-soft:#54463D;--muted:#6B5D53;--line:#E0D3C5;
  --accent:#B3361A;--accent-deep:#8A2711;
  --easy:#28724E;--medium:#8F5B0D;--hard:#B33528;--chal:#6A4EA0;--easy-bg:#E4F0E9;--medium-bg:#F5ECD7;--hard-bg:#F6E3E0;--chal-bg:#ECE7F5;
  --good:#28724E;--good-bg:#E4F0E9;--bad:#B33528;--bad-bg:#F6E3E0;
  --shadow:0 1px 2px rgba(36,27,22,.06),0 10px 30px rgba(36,27,22,.07);--ink-2:#2E241E;--ink-line:rgba(247,242,236,.16);--snow:#F7F2EC;
  --mode-accent:#B3361A;--mode-accent-ink:#FFFFFF;--mode-accent-soft:rgba(179,54,26,.1);--mode-accent-line:#B3361A;
  --mode-hero-a:#5E1A0B;--mode-hero-b:#B3361A;--mode-hero-ink:#FFFFFF;
  --mode-ridge-1:#3A160C;--mode-ridge-2:#8A3A1E;--mode-ridge-3:#D9946A;--mode-glow:rgba(255,150,70,.3);
  --mode-focus:#B3361A;--mode-name:"ACT";--text-2:#54463D;
}
[data-mode="ap"]{
  --paper:#E9E7F0;--paper-2:#F3F2F8;--surface:#FFFFFF;--ink:#1D1A2B;--ink-soft:#4A4562;--muted:#605A78;--line:#D7D3E4;
  --accent:#5B3FA8;--accent-deep:#422B85;
  --easy:#28724E;--medium:#8F5B0D;--hard:#B33528;--chal:#6A4EA0;--easy-bg:#E4F0E9;--medium-bg:#F5ECD7;--hard-bg:#F6E3E0;--chal-bg:#ECE7F5;
  --good:#28724E;--good-bg:#E4F0E9;--bad:#B33528;--bad-bg:#F6E3E0;
  --shadow:0 1px 2px rgba(29,26,43,.06),0 10px 30px rgba(29,26,43,.07);--ink-2:#26223A;--ink-line:rgba(243,242,248,.16);--snow:#F3F2F8;
  --mode-accent:#5B3FA8;--mode-accent-ink:#FFFFFF;--mode-accent-soft:rgba(91,63,168,.1);--mode-accent-line:#5B3FA8;
  --mode-hero-a:#2A1C5E;--mode-hero-b:#5B3FA8;--mode-hero-ink:#FFFFFF;
  --mode-ridge-1:#1F1840;--mode-ridge-2:#4B3E84;--mode-ridge-3:#A99CDA;--mode-glow:rgba(240,190,70,.32);
  --mode-focus:#5B3FA8;--mode-name:"AP";--text-2:#4A4562;
}
html[data-theme="dark"],html[data-theme="dark"] [data-mode="sat"]{
  --paper:#0F1218;--paper-2:#151922;--surface:#1B202B;--ink:#ECEEF4;--ink-soft:#C4C8D4;--muted:#9097A8;--line:#2C3240;
  --accent:#3F5CE4;--accent-deep:#A9B9FF;
  --easy:#5FD09A;--medium:#F0B95A;--hard:#FF8A7A;--chal:#BBA4F2;--easy-bg:#13301F;--medium-bg:#33270F;--hard-bg:#3A1A16;--chal-bg:#261E3A;
  --good:#5FD09A;--good-bg:#13301F;--bad:#FF8A7A;--bad-bg:#3A1A16;
  --shadow:0 1px 2px rgba(0,0,0,.5),0 10px 30px rgba(0,0,0,.35);--ink-2:#DADDE6;--ink-line:rgba(15,18,24,.18);--snow:#0F1218;
  --mode-accent:#8FA3FF;--mode-accent-ink:#0B1233;--mode-accent-soft:rgba(143,163,255,.14);--mode-accent-line:#8FA3FF;
  --mode-hero-a:#0E1A4F;--mode-hero-b:#2E45B8;--mode-hero-ink:#FFFFFF;
  --mode-ridge-1:#070B1C;--mode-ridge-2:#1F2C5C;--mode-ridge-3:#4A5D9C;--mode-glow:rgba(143,163,255,.22);
  --mode-focus:#8FA3FF;--mode-name:"SAT";--text-2:#B3B8C6;
}
html[data-theme="dark"][data-mode="home"]{
  --paper:#111214;--paper-2:#17181B;--surface:#1E1F23;--ink:#EDEDEF;--ink-soft:#C6C7CC;--muted:#9A9CA4;--line:#2E3036;
  --accent:#4A4D57;--accent-deep:#E4E5EA;
  --easy:#5FD09A;--medium:#F0B95A;--hard:#FF8A7A;--chal:#BBA4F2;--easy-bg:#13301F;--medium-bg:#33270F;--hard-bg:#3A1A16;--chal-bg:#261E3A;
  --good:#5FD09A;--good-bg:#13301F;--bad:#FF8A7A;--bad-bg:#3A1A16;
  --shadow:0 1px 2px rgba(0,0,0,.5),0 10px 30px rgba(0,0,0,.35);--ink-2:#DADBE0;--ink-line:rgba(17,18,20,.18);--snow:#111214;
  --mode-accent:#E4E5EA;--mode-accent-ink:#111214;--mode-accent-soft:rgba(228,229,234,.12);--mode-accent-line:#E4E5EA;
  --mode-hero-a:#0C0D0F;--mode-hero-b:#2E3038;--mode-hero-ink:#FFFFFF;
  --mode-ridge-1:#08090A;--mode-ridge-2:#2A2C33;--mode-ridge-3:#5C5F69;--mode-glow:rgba(228,229,234,.18);
  --mode-focus:#E4E5EA;--mode-name:"";--text-2:#B6B8BF;
}
html[data-theme="dark"][data-mode="act"],html[data-theme="dark"] [data-mode="act"]{
  --paper:#16110E;--paper-2:#1D1713;--surface:#251D18;--ink:#F3ECE6;--ink-soft:#D3C6BB;--muted:#A39385;--line:#3A2E26;
  --accent:#C2401F;--accent-deep:#FFAD8F;
  --easy:#5FD09A;--medium:#F0B95A;--hard:#FF8A7A;--chal:#BBA4F2;--easy-bg:#13301F;--medium-bg:#33270F;--hard-bg:#3A1A16;--chal-bg:#261E3A;
  --good:#5FD09A;--good-bg:#13301F;--bad:#FF8A7A;--bad-bg:#3A1A16;
  --shadow:0 1px 2px rgba(0,0,0,.5),0 10px 30px rgba(0,0,0,.35);--ink-2:#E6DDD5;--ink-line:rgba(22,17,14,.18);--snow:#16110E;
  --mode-accent:#FF8F6B;--mode-accent-ink:#2A0D04;--mode-accent-soft:rgba(255,143,107,.14);--mode-accent-line:#FF8F6B;
  --mode-hero-a:#3D1006;--mode-hero-b:#8E2A12;--mode-hero-ink:#FFFFFF;
  --mode-ridge-1:#120805;--mode-ridge-2:#4A1D10;--mode-ridge-3:#8C4A2E;--mode-glow:rgba(255,140,80,.22);
  --mode-focus:#FF8F6B;--mode-name:"ACT";--text-2:#C2B4A8;
}
html[data-theme="dark"][data-mode="ap"],html[data-theme="dark"] [data-mode="ap"]{
  --paper:#13111C;--paper-2:#191623;--surface:#201C2D;--ink:#EEECF6;--ink-soft:#CAC5DD;--muted:#9A94B2;--line:#332E45;
  --accent:#6A4FC2;--accent-deep:#C7B8FF;
  --easy:#5FD09A;--medium:#F0B95A;--hard:#FF8A7A;--chal:#BBA4F2;--easy-bg:#13301F;--medium-bg:#33270F;--hard-bg:#3A1A16;--chal-bg:#261E3A;
  --good:#5FD09A;--good-bg:#13301F;--bad:#FF8A7A;--bad-bg:#3A1A16;
  --shadow:0 1px 2px rgba(0,0,0,.5),0 10px 30px rgba(0,0,0,.35);--ink-2:#DEDAEA;--ink-line:rgba(19,17,28,.18);--snow:#13111C;
  --mode-accent:#B6A1FF;--mode-accent-ink:#170F33;--mode-accent-soft:rgba(182,161,255,.14);--mode-accent-line:#B6A1FF;
  --mode-hero-a:#1E1446;--mode-hero-b:#4A3396;--mode-hero-ink:#FFFFFF;
  --mode-ridge-1:#0C0920;--mode-ridge-2:#2C2260;--mode-ridge-3:#5C4C9E;--mode-glow:rgba(240,196,90,.22);
  --mode-focus:#B6A1FF;--mode-name:"AP";--text-2:#B9B3CF;
}
