/* Contrast fixes — Oct 23 2026
   Dark mode flipped the colour tokens inside cards that stay light by design,
   leaving text, badges and headings dark-on-dark or light-on-light. */

/* Pricing tickets and the Zena example answer stay light cards in dark mode */
html[data-theme="dark"] #pricing .ticket,
html[data-theme="dark"] .zx-msg.zx-ai{
  --bg:#FFFFFF;--surface:#FFFFFF;--surface-2:#F6F7FB;
  --ink:#172033;--muted:#596579;--line:#E3E6EF;
  --text-primary:#172033;--text-secondary:#596579;
  --gold-soft:#E3F4EE;--good:#1F8A70;--good-soft:#DDF1EA;
  --bad:#C2413B;--bad-soft:#F8E0DE;
  color-scheme:light;
}
html[data-theme="dark"] .zx-msg.zx-ai{color:#172033}
html[data-theme="dark"] .zx-msg.zx-ai u,
html[data-theme="dark"] .zx-msg.zx-ai b,
html[data-theme="dark"] .zx-msg.zx-ai strong{color:#0E1B3D}

/* "Inside the portal" heading on the navy band */
html[data-theme="dark"] .ph-head h2,
html[data-theme="dark"] #ph-title{color:#FFFFFF}

/* Pricing "Upgrading later, and more ways to save" panel is white in light mode */
html:not([data-theme="dark"]) #pricing .more-save .offer span{color:#596579}
html:not([data-theme="dark"]) #pricing .more-save .offer b{color:#1F8A70}

/* Example paycheck label */
html:not([data-theme="dark"]) .stub-top span{color:#596579}

/* Practice Books fine print on dark */
html[data-theme="dark"] .pb-fine{color:#A9B3C9}

/* Footer small text in dark mode */
html[data-theme="dark"] footer#contact .foot-brand-copy,
html[data-theme="dark"] footer#contact .foot-location{color:#A9B3C9}
html[data-theme="dark"] footer#contact .foot-social > h4{color:#C9D1E3}

/* Login / Sign-up: the form side stays white in dark mode (its text is navy) */
html[data-theme="dark"] body.tp-auth-open,
html[data-theme="dark"] .tp-authp,
html[data-theme="dark"] .tp-authp-main{background:#FFFFFF;color-scheme:light}
html[data-theme="dark"] .tp-authp-main{
  --bg:#FFFFFF;--surface:#FFFFFF;--surface-2:#F6F7FB;
  --ink:#172033;--muted:#596579;--line:#E3E6EF;
  --text-primary:#172033;--text-secondary:#596579;color:#172033}
