/* ============================================================
   SWRPG Holoterminal — theme definitions.
   Each block overrides the token set declared in css/app.css
   (:root = Holo Dark, the default). Themes are selected by
   data-theme / data-mode attributes on <html>, set by
   js/settings.js. Palettes for the four book themes are sampled
   from FFG's own layout-template color reference (EotE / AoR /
   FaD / Core columns), and the light-mode page textures are the
   books' own page backgrounds (assets/themes/*-custom-page.jpg,
   covered + fixed behind the translucent panel plates).
   Typography: book themes approximate FFG's licensed fonts with
   open-licence faces — Elektra Medium Pro → 'Exo 2',
   Teuton → 'Barlow Semi Condensed', ITC Symbol → 'Alegreya Sans'.
   All three are self-hosted in assets/fonts (see the @font-face
   block at the top of app.css); the app has no external origin.
   ============================================================ */

/* ---------------- HOLO / LIGHT ---------------- */
[data-theme="holo"][data-mode="light"]{
  --void:#dde6ec;
  --bg-layers:
    radial-gradient(1px 1px at 12% 22%, rgba(30,90,130,.18) 50%, transparent 51%),
    radial-gradient(1px 1px at 78% 14%, rgba(30,90,130,.13) 50%, transparent 51%),
    radial-gradient(1px 1px at 55% 68%, rgba(30,90,130,.10) 50%, transparent 51%),
    radial-gradient(ellipse at 50% -20%, #cfdde7 0%, var(--void) 60%);
  --panel-a:rgba(248,252,254,.9); --panel-b:rgba(238,245,249,.9);
  --panel:#f2f7fa; --panel2:#e6eef3; --line:#a4bac6;
  --input-bg:#fbfdfe;
  --hover:#dcE9f0; --hover-strong:#cfe2ec; --tile-hover:#d5e5ee;
  --pick-on:#d8e9f2;
  --modal-scrim:rgba(30,50,65,.45); --modal-glow:rgba(20,105,140,.18);
  --shadow:rgba(30,50,65,.25);
  --topbar-bg:rgba(244,249,252,.85);
  --holo:#0f5570; --holo-dim:#5d92a6; --holo-bright:#0d5570;
  --glow:transparent; --focus-ring:rgba(22,106,134,.25);
  --accent-wash:rgba(22,106,134,.06); --accent-wash-mid:rgba(22,106,134,.12); --accent-wash-hover:rgba(22,106,134,.16);
  --amber:#6b490e; --amber-dim:#b99b56; --amber-bg:#f4ecd9; --amber-bg-hover:#ecdfc0; --amber-wash:rgba(154,111,31,.08); --amber-wash-hover:rgba(154,111,31,.16);
  --red:#a8362c; --red-dim:#c07f78; --red-bg:#f6e4e1; --red-bg-hover:#efd2cd; --red-wash:rgba(168,54,44,.07);
  --green:#1c5c3d; --green-dim:#7dae95; --green-bg:#e2f0e8; --green-wash:rgba(46,122,85,.08); --green-glow:rgba(46,122,85,.22);
  --ink:#1c2a33; --dim:#455964; --faint:#4c5f6a;
  --info:#7d5713; --ink-hi:#0d1a22; --on-amber:#2a1f08; --hatch:rgba(0,0,0,.06);
  --btn-bg:#e4eef4; --btn-hover:#d2e3ec;
  --sym-main:#1c2a33; --sym-tr:#9a6f1f; --sym-de:#a8362c;
  --fx-scanlines:0; --fx-vignette:0;
  --scroll-track:#c9d6de; --scroll-thumb:#9db4c0;
  /* sidebar stays a dark holo console for contrast */
  --sb-a:#0d1b26; --sb-b:#0a141d; --sb-line:#2c4354;
  --sb-ink:#dde5ea; --sb-dim:#9fb2bf; --sb-faint:#71858f;
  --sb-accent:#8ec9dd; --sb-accent-dim:#48788c;
  --sb-hover:#0e1d29; --sb-active:#0f2432;
}

/* ---------------- EDGE OF THE EMPIRE ----------------
   Grit of the Outer Rim: scratched-metal paper, deep rust red,
   olive drab, tarnished gold. */
[data-theme="eote"]{
  --disp:'Exo 2',sans-serif; --label:'Barlow Semi Condensed',sans-serif; --body:'Alegreya Sans',sans-serif;
}
[data-theme="eote"][data-mode="light"]{
  --void:#e8e6e1;
  /* light mode renders on the book's own page texture (custom hi-res scan) */
  --bg-layers:url("../assets/themes/eote-custom-page.jpg");
  --bg-size:100% 100%;  /* stretch to fill the viewport exactly — always fills, never crops (owner) */
  --panel-a:rgba(252,251,247,.88); --panel-b:rgba(245,242,235,.88);
  --panel:#f7f5ef; --panel2:#ece7dc; --line:#b3a48d;
  --input-bg:#fdfcf9;
  --hover:#f0ebdf; --hover-strong:#e8e0cf; --tile-hover:#ece5d6;
  --pick-on:#e6e8d6;
  --modal-scrim:rgba(40,32,25,.5); --modal-glow:rgba(116,18,19,.12);
  --shadow:rgba(40,32,25,.3);
  --topbar-bg:rgba(250,248,243,.88);
  --holo:#4e6034; --holo-dim:#7d8c62; --holo-bright:#3a4a24;
  --glow:transparent; --focus-ring:rgba(116,18,19,.22);
  --accent-wash:rgba(78,96,52,.06); --accent-wash-mid:rgba(78,96,52,.12); --accent-wash-hover:rgba(116,18,19,.15);
  --amber:#5f5335; --amber-dim:#a8987c; --amber-bg:#efe9db; --amber-bg-hover:#eae0c1; --amber-wash:rgba(136,109,38,.08); --amber-wash-hover:rgba(122,106,78,.16);
  --red:#8e1f1c; --red-dim:#7a1a17; --red-bg:#f5e3e0; --red-bg-hover:#eed1cb; --red-wash:rgba(142,31,28,.07);
  --green:#14573d; --green-dim:#7cae96; --green-bg:#e7ecdf; --green-wash:rgba(82,100,74,.09); --green-glow:rgba(82,100,74,.25);
  --ink:#211d1a; --dim:#4d4741; --faint:#665f56;
  --info:#6f6248; --ink-hi:#120f0d; --on-amber:#241d0d; --hatch:rgba(0,0,0,.06);
  --btn-bg:#eaeddd; --btn-hover:#dde2c9;
  --sym-main:#211d1a; --sym-tr:#8a6d1f; --sym-de:#8e1f1c;
  --fx-scanlines:0; --fx-vignette:0;
  --scroll-track:#d6d1c5; --scroll-thumb:#ab9f88;
  --sb-a:#3b4547; --sb-b:#2c3436; --sb-line:#556164;
  --sb-ink:#e8e5dd; --sb-dim:#b7b3a8; --sb-faint:#8d8a80;
  --sb-accent:#d8b56a; --sb-accent-dim:#9c7c4b;
  --sb-hover:#454f52; --sb-active:#50595c;
}
[data-theme="eote"][data-mode="dark"]{
  --void:#191a1c;
  --bg-layers:linear-gradient(180deg,#1e2022 0%,#151617 70%);
  --panel-a:rgba(34,36,38,.94); --panel-b:rgba(26,27,29,.94);
  --panel:#222426; --panel2:#292b2e; --line:#45484c;
  --input-bg:#1a1c1e;
  --hover:#2e3134; --hover-strong:#35383c; --tile-hover:#313437;
  --pick-on:#242a1c;
  --modal-scrim:rgba(8,8,9,.8); --modal-glow:rgba(176,74,66,.14);
  --shadow:rgba(0,0,0,.6);
  --topbar-bg:rgba(24,25,27,.85);
  --holo:#9aad7e; --holo-dim:#5e6d4a; --holo-bright:#bdd0a0;
  --glow:rgba(154,173,126,.22); --focus-ring:rgba(192,90,80,.28);
  --accent-wash:rgba(154,173,126,.07); --accent-wash-mid:rgba(154,173,126,.13); --accent-wash-hover:rgba(192,90,80,.18);
  --amber:#cbb99e; --amber-dim:#8a7a63; --amber-bg:#2a2419; --amber-bg-hover:#3d341f; --amber-wash:rgba(201,167,90,.07); --amber-wash-hover:rgba(154,173,126,.16);
  --red:#d4675c; --red-dim:#a83f36; --red-bg:#2b1815; --red-bg-hover:#402019; --red-wash:rgba(212,103,92,.07);
  --green:#74c9a0; --green-dim:#3d7a5d; --green-bg:#22271e; --green-wash:rgba(143,163,133,.07); --green-glow:rgba(143,163,133,.22);
  --ink:#e6e2da; --dim:#aaa59b; --faint:#97918a;
  --info:#cbb99e; --ink-hi:#f2efe9;
  --btn-bg:#232a1b; --btn-hover:#333d28;
  --sym-main:#f2efe9; --sym-tr:#c9a75a; --sym-de:#d4675c;
  --fx-scanlines:0; --fx-vignette:0;
  --scroll-track:#101112; --scroll-thumb:#3a3d40;
  --sb-a:#202224; --sb-b:#151617; --sb-line:#3b3e41;
  --sb-ink:#e6e2da; --sb-dim:#aaa59b; --sb-faint:#7d786f;
  --sb-accent:#c05a50; --sb-accent-dim:#7a453f;
  --sb-hover:#292b2d; --sb-active:#303234;
}

/* ---------------- AGE OF REBELLION ----------------
   Military crispness: cream field paper, rebel teal,
   klaxon orange, navy command slate. */
[data-theme="aor"]{
  --disp:'Exo 2',sans-serif; --label:'Barlow Semi Condensed',sans-serif; --body:'Alegreya Sans',sans-serif;
}
[data-theme="aor"][data-mode="light"]{
  --void:#e9e5da;
  --bg-layers:url("../assets/themes/aor-custom-page.jpg");
  --bg-size:100% 100%;  /* stretch to fill the viewport exactly — always fills, never crops (owner) */
  --panel-a:rgba(252,250,244,.88); --panel-b:rgba(244,241,232,.88);
  --panel:#f7f4ec; --panel2:#e9ebe6; --line:#a3b2b5;
  --input-bg:#fcfbf7;
  --hover:#eceee8; --hover-strong:#dfe6e4; --tile-hover:#e4e9e5;
  --pick-on:#d9e7ea;
  --modal-scrim:rgba(28,38,46,.5); --modal-glow:rgba(14,129,154,.14);
  --shadow:rgba(28,38,46,.28);
  --topbar-bg:rgba(250,248,241,.88);
  --holo:#095668; --holo-dim:#5f93a1; --holo-bright:#09566b;
  --glow:transparent; --focus-ring:rgba(13,110,132,.25);
  --accent-wash:rgba(13,110,132,.06); --accent-wash-mid:rgba(13,110,132,.11); --accent-wash-hover:rgba(13,110,132,.16);
  --amber:#8f4014; --amber-dim:#cf8f6a; --amber-bg:#f7e8de; --amber-bg-hover:#f0d8c6; --amber-wash:rgba(180,85,37,.08); --amber-wash-hover:rgba(180,85,37,.16);
  --red:#841b21; --red-dim:#6d1319; --red-bg:#f5e3e2; --red-bg-hover:#edd1cf; --red-wash:rgba(132,27,33,.07);
  --green:#2a5c3a; --green-dim:#8bb096; --green-bg:#e3efe7; --green-wash:rgba(63,122,82,.08); --green-glow:rgba(63,122,82,.22);
  --ink:#1f2429; --dim:#4a545c; --faint:#505a62;
  --info:#6b5a3a; --ink-hi:#101418; --on-amber:#2b1608; --hatch:rgba(0,0,0,.06);
  --btn-bg:#e5ebe9; --btn-hover:#d3dfdf;
  --sym-main:#1f2429; --sym-tr:#8a6d1f; --sym-de:#841b21;
  --fx-scanlines:0; --fx-vignette:0;
  --scroll-track:#d4d0c4; --scroll-thumb:#9fa898;
  --sb-a:#243546; --sb-b:#1a2836; --sb-line:#3b5163;
  --sb-ink:#e3e8ec; --sb-dim:#a7b6c0; --sb-faint:#7b8b96;
  --sb-accent:#4fb3ca; --sb-accent-dim:#33768a;
  --sb-hover:#2b3f52; --sb-active:#32485d;
}
[data-theme="aor"][data-mode="dark"]{
  --void:#131c24;
  --bg-layers:linear-gradient(180deg,#182430 0%,#101820 70%);
  --panel-a:rgba(24,37,48,.94); --panel-b:rgba(18,28,37,.94);
  --panel:#1b2935; --panel2:#22313e; --line:#3c5060;
  --input-bg:#141f28;
  --hover:#273848; --hover-strong:#2d4152; --tile-hover:#2a3c4d;
  --pick-on:#1d3a46;
  --modal-scrim:rgba(4,8,12,.8); --modal-glow:rgba(58,168,196,.15);
  --shadow:rgba(0,0,0,.6);
  --topbar-bg:rgba(17,26,34,.85);
  --holo:#3aa8c4; --holo-dim:#2a6b7e; --holo-bright:#6cc8e0;
  --glow:rgba(58,168,196,.22); --focus-ring:rgba(58,168,196,.3);
  --accent-wash:rgba(58,168,196,.07); --accent-wash-mid:rgba(58,168,196,.13); --accent-wash-hover:rgba(58,168,196,.18);
  --amber:#e2854f; --amber-dim:#8f4f2d; --amber-bg:#2c1d13; --amber-bg-hover:#3f2a1a; --amber-wash:rgba(217,120,68,.08); --amber-wash-hover:rgba(217,120,68,.16);
  --red:#e2756b; --red-dim:#7e3a36; --red-bg:#2a1514; --red-bg-hover:#3c1d1b; --red-wash:rgba(201,86,79,.07);
  --green:#7fb08a; --green-dim:#4a6b52; --green-bg:#182b1e; --green-wash:rgba(127,176,138,.07); --green-glow:rgba(127,176,138,.22);
  --ink:#dfe7ec; --dim:#9fb2bf; --faint:#8a9caa;
  --info:#c0a888; --ink-hi:#f0f5f7;
  --btn-bg:#173240; --btn-hover:#1f4354;
  --sym-main:#f0f5f7; --sym-tr:#e0aa4f; --sym-de:#c9564f;
  --fx-scanlines:0; --fx-vignette:0;
  --scroll-track:#0c1218; --scroll-thumb:#2c3f4d;
  --sb-a:#16212c; --sb-b:#101820; --sb-line:#2d3f4e;
  --sb-ink:#dfe7ec; --sb-dim:#9fb2bf; --sb-faint:#6f8595;
  --sb-accent:#3aa8c4; --sb-accent-dim:#2a6b7e;
  --sb-hover:#1d2b38; --sb-active:#233443;
}

/* ---------------- FORCE AND DESTINY ----------------
   Ancient temple calm: pale plaster, deep crimson,
   worn gold, hint of holocron teal. */
[data-theme="fad"]{
  --disp:'Exo 2',sans-serif; --label:'Barlow Semi Condensed',sans-serif; --body:'Alegreya Sans',sans-serif;
}
[data-theme="fad"][data-mode="light"]{
  --void:#efe9e1;
  --bg-layers:url("../assets/themes/fad-custom-page.jpg");
  --bg-size:100% 100%;  /* stretch to fill the viewport exactly — always fills, never crops (owner) */
  --panel-a:rgba(252,249,243,.88); --panel-b:rgba(246,240,230,.88);
  --panel:#f8f3ea; --panel2:#eee6d8; --line:#bfa88a;
  --input-bg:#fdfaf5;
  --hover:#f2ebdf; --hover-strong:#ebe0cd; --tile-hover:#efe6d5;
  --pick-on:#f0ded8;
  --modal-scrim:rgba(44,36,28,.5); --modal-glow:rgba(115,26,26,.12);
  --shadow:rgba(44,36,28,.28);
  --topbar-bg:rgba(251,247,240,.88);
  --holo:#8f2b28; --holo-dim:#b0736f; --holo-bright:#731a1a;
  --glow:transparent; --focus-ring:rgba(115,26,26,.22);
  --accent-wash:rgba(143,43,40,.06); --accent-wash-mid:rgba(143,43,40,.11); --accent-wash-hover:rgba(115,26,26,.15);
  --amber:#665025; --amber-dim:#bda879; --amber-bg:#f3ecdb; --amber-bg-hover:#ece1c5; --amber-wash:rgba(150,121,58,.08); --amber-wash-hover:rgba(150,121,58,.16);
  --red:#96271c; --red-dim:#8e1f1c; --red-bg:#f5e3e0; --red-bg-hover:#eed1cb; --red-wash:rgba(142,31,28,.07);
  --green:#33594d; --green-dim:#92b0a5; --green-bg:#e4efeb; --green-wash:rgba(76,122,106,.08); --green-glow:rgba(76,122,106,.22);
  --ink:#241f1b; --dim:#524a42; --faint:#6a6157;
  --info:#095668; --ink-hi:#14100d; --on-amber:#241c08; --hatch:rgba(0,0,0,.06);
  --btn-bg:#f0e2da; --btn-hover:#e8cfc6;
  --sym-main:#241f1b; --sym-tr:#8a6d1f; --sym-de:#8e1f1c;
  --fx-scanlines:0; --fx-vignette:0;
  --scroll-track:#ddd5c7; --scroll-thumb:#b3a58c;
  --sb-a:#39332c; --sb-b:#2b2620; --sb-line:#544c42;
  --sb-ink:#ece7dd; --sb-dim:#bdb5a7; --sb-faint:#93897a;
  --sb-accent:#d9b25e; --sb-accent-dim:#a08050;
  --sb-hover:#443d34; --sb-active:#4e463c;
}
[data-theme="fad"][data-mode="dark"]{
  --void:#1a1512;
  --bg-layers:linear-gradient(180deg,#211a16 0%,#151110 70%);
  --panel-a:rgba(37,30,25,.94); --panel-b:rgba(28,23,19,.94);
  --panel:#251f1a; --panel2:#261f19; --line:#4c4237;
  --input-bg:#1c1712;
  --hover:#332b23; --hover-strong:#3b3128; --tile-hover:#372e25;
  --pick-on:#331f1d;
  --modal-scrim:rgba(10,7,5,.8); --modal-glow:rgba(179,71,69,.14);
  --shadow:rgba(0,0,0,.6);
  --topbar-bg:rgba(26,21,17,.85);
  --holo:#d16f68; --holo-dim:#8f3230; --holo-bright:#dd8b85;
  --glow:rgba(209,111,104,.22); --focus-ring:rgba(179,71,69,.28);
  --accent-wash:rgba(209,111,104,.07); --accent-wash-mid:rgba(209,111,104,.13); --accent-wash-hover:rgba(179,71,69,.18);
  --amber:#c9a75a; --amber-dim:#87703a; --amber-bg:#2b2517; --amber-bg-hover:#3d341f; --amber-wash:rgba(201,167,90,.07); --amber-wash-hover:rgba(201,167,90,.15);
  --red:#e8776a; --red-dim:#9c4c42; --red-bg:#2b1815; --red-bg-hover:#402019; --red-wash:rgba(212,103,92,.07);
  --green:#86a394; --green-dim:#52655b; --green-bg:#1f2823; --green-wash:rgba(134,163,148,.07); --green-glow:rgba(134,163,148,.22);
  --ink:#e9e3d9; --dim:#aea699; --faint:#9a9084;
  --info:#3fa8c0; --ink-hi:#f3efe8;
  --btn-bg:#2e241d; --btn-hover:#413227;
  --sym-main:#f3efe8; --sym-tr:#c9a75a; --sym-de:#d4675c;
  --fx-scanlines:0; --fx-vignette:0;
  --scroll-track:#110e0b; --scroll-thumb:#3e362d;
  --sb-a:#221c17; --sb-b:#171310; --sb-line:#3e362d;
  --sb-ink:#e9e3d9; --sb-dim:#aea699; --sb-faint:#80786c;
  --sb-accent:#c9a75a; --sb-accent-dim:#87703a;
  --sb-hover:#2a231d; --sb-active:#322a22;
}

/* ---------------- CORE (Allies & Adversaries style) ----------------
   Neutral technical: cream dossier paper, ochre gold,
   scanner teal, hazard-stripe amber. */
[data-theme="core"]{
  --disp:'Exo 2',sans-serif; --label:'Barlow Semi Condensed',sans-serif; --body:'Alegreya Sans',sans-serif;
}
[data-theme="core"][data-mode="light"]{
  --void:#e9e6dd;
  --bg-layers:url("../assets/themes/core-custom-page.jpg");
  --bg-size:100% 100%;  /* stretch to fill the viewport exactly — always fills, never crops (owner) */
  --panel-a:rgba(252,251,246,.88); --panel-b:rgba(245,243,236,.88);
  --panel:#f7f5ee; --panel2:#ebe8dd; --line:#aca58f;
  --input-bg:#fdfcf8;
  --hover:#f0ede2; --hover-strong:#e8e3d2; --tile-hover:#ece8d9;
  --pick-on:#efe8d0;
  --modal-scrim:rgba(38,34,26,.5); --modal-glow:rgba(135,111,47,.14);
  --shadow:rgba(38,34,26,.28);
  --topbar-bg:rgba(250,249,243,.88);
  --holo:#63501a; --holo-dim:#a3935f; --holo-bright:#5e4c17;
  --glow:transparent; --focus-ring:rgba(122,99,35,.24);
  --accent-wash:rgba(122,99,35,.06); --accent-wash-mid:rgba(122,99,35,.11); --accent-wash-hover:rgba(122,99,35,.16);
  --amber:#73490c; --amber-dim:#d0a86a; --amber-bg:#f6ecda; --amber-bg-hover:#efdfc0; --amber-wash:rgba(183,121,31,.08); --amber-wash-hover:rgba(183,121,31,.16);
  --red:#a3262b; --red-dim:#831a1f; --red-bg:#f5e3e2; --red-bg-hover:#edd1cf; --red-wash:rgba(131,26,31,.07);
  --green:#2a5c3a; --green-dim:#8bb096; --green-bg:#e3efe7; --green-wash:rgba(63,122,82,.08); --green-glow:rgba(63,122,82,.22);
  --ink:#22201a; --dim:#4f4c42; --faint:#655f55;
  --info:#075363; --ink-hi:#12100c; --on-amber:#2a1a05; --hatch:rgba(0,0,0,.06);
  --btn-bg:#efeadb; --btn-hover:#e5ddc5;
  --sym-main:#22201a; --sym-tr:#8a6d1f; --sym-de:#831a1f;
  --fx-scanlines:0; --fx-vignette:0;
  --scroll-track:#d8d3c4; --scroll-thumb:#aba385;
  --sb-a:#28333f; --sb-b:#1e2731; --sb-line:#3f4e5c;
  --sb-ink:#e5e8eb; --sb-dim:#aab6c0; --sb-faint:#7e8b96;
  --sb-accent:#e6a134; --sb-accent-dim:#9a7231;
  --sb-hover:#2f3c4a; --sb-active:#364453;
}
[data-theme="core"][data-mode="dark"]{
  --void:#16181b;
  --bg-layers:linear-gradient(180deg,#1b1e22 0%,#121415 70%);
  --panel-a:rgba(30,33,37,.94); --panel-b:rgba(23,25,28,.94);
  --panel:#1f2226; --panel2:#262a2e; --line:#43484e;
  --input-bg:#17191c;
  --hover:#2b3036; --hover-strong:#32383f; --tile-hover:#2e343a;
  --pick-on:#332e1e;
  --modal-scrim:rgba(6,7,8,.8); --modal-glow:rgba(194,162,74,.15);
  --shadow:rgba(0,0,0,.6);
  --topbar-bg:rgba(21,23,26,.85);
  --holo:#c2a24a; --holo-dim:#7d6a34; --holo-bright:#e0c069;
  --glow:rgba(194,162,74,.2); --focus-ring:rgba(194,162,74,.28);
  --accent-wash:rgba(194,162,74,.07); --accent-wash-mid:rgba(194,162,74,.13); --accent-wash-hover:rgba(194,162,74,.18);
  --amber:#e6a134; --amber-dim:#96691f; --amber-bg:#2d2312; --amber-bg-hover:#403118; --amber-wash:rgba(230,161,52,.08); --amber-wash-hover:rgba(230,161,52,.16);
  --red:#e0776f; --red-dim:#7c3835; --red-bg:#291413; --red-bg-hover:#3b1c1a; --red-wash:rgba(192,84,80,.07);
  --green:#7fb08a; --green-dim:#4a6b52; --green-bg:#182b1e; --green-wash:rgba(127,176,138,.07); --green-glow:rgba(127,176,138,.22);
  --ink:#e4e3dd; --dim:#a8a79e; --faint:#93918a;
  --info:#3fb0c8; --ink-hi:#f2f1ec;
  --btn-bg:#2a2519; --btn-hover:#3c3422;
  --sym-main:#f2f1ec; --sym-tr:#e6a134; --sym-de:#c05450;
  --fx-scanlines:0; --fx-vignette:0;
  --scroll-track:#0f1113; --scroll-thumb:#383d42;
  --sb-a:#1d2024; --sb-b:#131517; --sb-line:#383d42;
  --sb-ink:#e4e3dd; --sb-dim:#a8a79e; --sb-faint:#797870;
  --sb-accent:#c2a24a; --sb-accent-dim:#7d6a34;
  --sb-hover:#25282c; --sb-active:#2c3034;
}

/* Light-mode readability: dial back the holo bracket glow that assumes
   dark backgrounds */
[data-mode="light"] .bigpct{text-shadow:none}
[data-mode="light"] body::after{display:none}

/* ---------------- FORCE PIPS (mode-driven, same across all themes) ----------------
   Light Side and Dark Side render the same filled-disc glyph in opposite
   ink colors, like the two faces of a physical Force die. Each gets an
   outline only in the mode where its own color would otherwise blend into
   the background. Lower specificity than the [data-theme][data-mode]
   blocks above on purpose, so no per-theme override is needed. */
[data-mode="dark"]{
  --sym-li:#fff; --sym-li-stroke-w:0; --sym-li-stroke-c:transparent;
  --sym-da:#000; --sym-da-stroke-w:1px; --sym-da-stroke-c:var(--faint);
}
[data-mode="light"]{
  --sym-li:#fff; --sym-li-stroke-w:1px; --sym-li-stroke-c:#000;
  --sym-da:#000; --sym-da-stroke-w:0; --sym-da-stroke-c:transparent;
}
