/* ── palette candidates ──────────────────────────────────────────────────
   Five alternatives to the shipped Pricempire navy, so the look can be judged
   side by side instead of argued about. Each is a full override of the token
   set site.css declares on :root — NOT a tweak of two colours, because a
   half-swapped ladder is what makes a palette look broken rather than
   different.

   `node site/xf-contrast.mjs` re-reads this file and runs every text/surface
   pair in every block below through WCAG AA. A palette that does not clear
   4.5:1 does not ship — that check is the reason these can be swapped without
   a design review each time.

   To try one: the palette button in the header. It writes
   document.documentElement.dataset.theme and remembers the choice per browser.
   Removing a block here removes the option; the shipped :root is unaffected. */

/* ── midnight ── near-black neutral, electric cyan. The coolest and quietest
   of the five: surfaces almost lose their hue, so artwork carries all of the
   colour on the page. */
:root[data-theme="midnight"]{
  --bg:#0a0c10; --rail:#0f1218; --bar:#151922;
  --card:#12161d; --card-hi:#181d26; --sunk:#0f1218;
  --line:#232935; --line-soft:#1a1f29;
  --ink:#e9edf3; --ink-2:#c6ccd6; --ink-3:#8b93a1;
  --brand:#2ee6f6; --on-brand:#04141a;
  --t-top:#2ee6f6; --t-good:#7c9cff;
  --up:#8ef0a8; --down:#ffa3b7; --bid:#8ef0a8; --gap:#ffc98a;
  --up-bg:rgba(142,240,168,.12); --down-bg:rgba(255,163,183,.12);
  --exit-ok:#8ef0a8;
}

/* ── carbon ── true neutral greys with a single orange. No blue anywhere, so
   it reads as equipment rather than as a dashboard. */
:root[data-theme="carbon"]{
  --bg:#0f0f10; --rail:#151517; --bar:#1c1c1f;
  --card:#171719; --card-hi:#1e1e22; --sunk:#131315;
  --line:#2e2e33; --line-soft:#212125;
  --ink:#ededee; --ink-2:#cbcbcf; --ink-3:#8f8f97;
  --brand:#ff7a1a; --on-brand:#170800;
  --t-top:#ff7a1a; --t-good:#6fb7ff;
  --up:#7fe0a0; --down:#ff9bb0; --bid:#7fe0a0; --gap:#ffcf8f;
  --up-bg:rgba(127,224,160,.12); --down-bg:rgba(255,155,176,.12);
  --exit-ok:#7fe0a0;
}

/* ── paper ── the only LIGHT candidate, and the reason --on-brand and the
   silhouette filter are tokens rather than constants: on white the nav icons
   have to be black, and the pale up/down inks have to become dark ones or a
   price change is unreadable. color-scheme flips the form controls and the
   scrollbar with it. */
:root[data-theme="paper"]{
  color-scheme: light;
  --bg:#f5f7f9; --rail:#ffffff; --bar:#ffffff;
  --card:#ffffff; --card-hi:#eef1f6; --sunk:#eef1f6;
  --line:#d5dbe4; --line-soft:#e7eaf0;
  --ink:#12161d; --ink-2:#39414d; --ink-3:#5d6675;
  --brand:#1a56db; --on-brand:#ffffff;
  --t-top:#1a56db; --t-good:#0f766e;
  --up:#046c42; --down:#a91f14; --bid:#046c42; --gap:#9a3c06;
  --up-bg:rgba(4,108,66,.10); --down-bg:rgba(169,31,20,.10);
  --exit-ok:#046c42;
  /* the wear ladder is a set of small fills, and three of the five are pale
     enough to vanish on white — stepped down in lightness, same five hues */
  --fn:#0d7a41; --mw:#7e8c14; --ft:#a8760a; --ww:#c0570c; --bs:#c62d35;
  --st:#8a4a00; --sv:#575710;
  --ni-f:brightness(0);
}

/* ── slate ── the neutral blue-grey this site shipped with before the
   Pricempire copy. Kept as a candidate because it is the most conventional of
   the five and conventional is not an insult on a price table. */
:root[data-theme="slate"]{
  --bg:#0d1117; --rail:#11161d; --bar:#161b22;
  --card:#151a21; --card-hi:#1c222b; --sunk:#11161d;
  --line:#28303b; --line-soft:#1c222b;
  --ink:#e6e9ee; --ink-2:#c3c9d3; --ink-3:#8a94a2;
  --brand:#4f8cff; --on-brand:#03101f;
  --t-top:#4f8cff; --t-good:#34d399;
  --up:#8fe3ab; --down:#f5a3b5; --bid:#8fe3ab; --gap:#f3c489;
  --up-bg:rgba(143,227,171,.12); --down-bg:rgba(245,163,181,.12);
  --exit-ok:#8fe3ab;
}

/* ── oxide ── warm dark: brown-black surfaces, gold accent. The one candidate
   whose surfaces are not blue, which changes how every skin render on the page
   looks sitting on them. */
:root[data-theme="oxide"]{
  --bg:#100d0a; --rail:#16120e; --bar:#201a14;
  --card:#181410; --card-hi:#201b14; --sunk:#16120e;
  --line:#372c21; --line-soft:#251e16;
  --ink:#f2ece3; --ink-2:#d7cdbf; --ink-3:#a09584;
  --brand:#f0b429; --on-brand:#1a1204;
  --t-top:#f0b429; --t-good:#79c0b4;
  --up:#9ae6b4; --down:#f7abab; --bid:#9ae6b4; --gap:#f6c88a;
  --up-bg:rgba(154,230,180,.12); --down-bg:rgba(247,171,171,.12);
  --exit-ok:#9ae6b4;
}
