/* License to Earn — MLO / SAFE exam study section (v47 · mlo-v1).
   Loaded after /assets/newtools-v3.css (which brings the v18 tokens, the topbar/mast/footer,
   the account bar, .wb-btn and .sim-opt, and the dark remap under html[data-theme="dark"]).
   Every rule that states a colour also states its background, so audit_contrast.py can measure it. */

/* The v18 tokens, restated so a rule here resolves on its own (identical values to newtools-v3.css). */
:root{
  --t-paper:#F7F3EA; --t-panel:#FFFFFF; --t-ink:#0A1626; --t-body:#182231;
  --t-navy:#0A3161; --t-red:#C8102E; --t-red-deep:#8E1220;
  --t-line:#DDD4C3; --t-muted:#576373; --t-lamp:#E8C68C;
  --t-good:#1E6B4E; --t-good-bg:#E7F2EC;
  --t-warn:#8A5A00; --t-warn-bg:#FBF4E4;
  --t-bad:#A3222F;  --t-bad-bg:#FBEDEE;
  --d-bg:#0F1722; --d-panel:#182231; --d-panel2:#1F2D3F; --d-text:#E8EDF3; --d-muted:#A9B4C2; --d-line:#33445A;
  --d-link:#9CC4FF; --d-accent:#FF8A96; --d-gold:#E8C68C; --d-ok:#6FDDA8; --d-bad:#FF9A9A; --d-warn:#F2C26B;
  --d-ok-bg:#16352A; --d-warn-bg:#33291A; --d-bad-bg:#3B1E22; --d-warn-text:#F5E3BF; --d-accent-hover:#FFB3BB; --d-ink:#0A1626;
  --t-serif:"Newsreader",Georgia,"Times New Roman",serif;
  --t-sans:"Public Sans",-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
}

/* ---------- gate + save line ---------- */
.mlo-gate{margin:26px auto 0;padding:22px 24px;background:var(--t-panel);color:var(--t-body);border:1px solid var(--t-line);
  border-inline-start:4px solid var(--t-navy);border-radius:2px;box-shadow:0 1px 2px rgba(10,22,38,.05)}
.mlo-gate h2{font-size:24px;margin:0 0 8px}
.mlo-gate p{margin:0 0 10px;max-width:68ch;font-size:16px;line-height:1.6}
.mlo-gate p:last-child{margin-bottom:0}
.mlo-gate ul{margin:8px 0 12px;padding-inline-start:22px;font-size:15.5px;line-height:1.6}
.mlo-gate .mlo-honest{font-weight:600;color:var(--t-navy);background:var(--t-panel)}
.mlo-save{margin:10px 0 0;font-size:13px;color:var(--t-muted);background:transparent;min-height:18px;line-height:1.4}
.mlo-save[data-state="saved"]{color:var(--t-good)}
.mlo-save[data-state="unsaved"],.mlo-save[data-state="pending"]{color:var(--t-warn)}
.mlo-save[data-state="error"],.mlo-save[data-state="retrying"],.mlo-save[data-state="loadError"]{color:var(--t-bad)}
.mlo-save:empty{display:none}

/* ---------- section chrome ---------- */
.mlo-eyebrow{display:block;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--t-red);margin-bottom:9px}
.mlo-sec{margin:44px auto 0}
.mlo-sec h2{font-size:clamp(24px,4vw,32px);margin:0 0 8px}
.mlo-sec > p{color:var(--t-muted);margin:0 0 18px;max-width:66ch;font-size:16px}
.mlo-cards{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.mlo-card{display:flex;flex-direction:column;gap:6px;background:var(--t-panel);color:var(--t-body);border:1px solid var(--t-line);
  border-radius:2px;padding:20px 20px 18px;text-decoration:none;min-height:150px;box-shadow:0 1px 2px rgba(10,22,38,.05);
  transition:border-color .16s ease,transform .16s ease}
.mlo-card:hover{border-color:var(--t-red);transform:translateY(-2px)}
.mlo-card:focus-visible{outline:2px solid var(--t-red);outline-offset:2px}
.mlo-card .lim{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--t-good);background:var(--t-panel)}
.mlo-card h3{font-size:21px;margin:2px 0 4px;color:var(--t-navy);background:var(--t-panel)}
.mlo-card p{margin:0;font-size:14.5px;line-height:1.55;color:var(--t-muted);background:var(--t-panel);flex:1 1 auto}
.mlo-card .go{margin-top:10px;font-weight:700;font-size:14px;color:var(--t-red);background:var(--t-panel)}
.mlo-how{margin:0;padding:0;list-style:none;display:grid;gap:12px}
.mlo-how li{background:var(--t-panel);color:var(--t-body);border:1px solid var(--t-line);border-inline-start:4px solid var(--t-lamp);
  border-radius:2px;padding:14px 18px;font-size:15.5px;line-height:1.6}
.mlo-how b{color:var(--t-navy);background:var(--t-panel)}
.mlo-h3{font-size:19px;margin:22px 0 8px;color:var(--t-navy);background:transparent}
.mlo-fine{font-size:13.5px;color:var(--t-muted);line-height:1.6;max-width:70ch;margin:14px 0 0}
.mlo-fine a,.mlo-sec a{color:var(--t-navy)}
.mlo-units{margin:12px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.mlo-units li{font-size:13px;background:var(--t-paper);color:var(--t-body);border:1px solid var(--t-line);border-radius:2px;padding:5px 9px}

/* ---------- shared tool furniture ---------- */
.mlo-tool{margin:24px auto 0}
.mlo-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 16px}
.mlo-bar .grow{flex:1 1 200px;min-width:0}
.mlo-sel,.mlo-in{box-sizing:border-box;background:#FFFFFF;color:var(--t-body);border:1px solid var(--t-line);border-radius:2px;
  padding:10px 12px;font:16px/1.3 var(--t-sans);min-height:46px;max-width:100%}
.mlo-sel{padding-inline-end:30px}
.mlo-in::placeholder{color:#6B7887;opacity:1}
.mlo-sel:focus,.mlo-in:focus{outline:2px solid var(--t-red);outline-offset:1px;border-color:var(--t-red)}
.mlo-in[aria-invalid="true"]{border-color:var(--t-bad)}
.mlo-chip{display:inline-flex;align-items:center;gap:6px;background:var(--t-paper);color:var(--t-navy);border:1px solid var(--t-line);
  border-radius:2px;padding:9px 13px;font:600 14px/1.2 var(--t-sans);cursor:pointer;min-height:44px}
.mlo-chip:hover{border-color:var(--t-red);color:var(--t-red)}
.mlo-chip.on,.mlo-chip[aria-pressed="true"]{background:var(--t-navy);border-color:var(--t-navy);color:#FFFFFF}
.mlo-chip:focus-visible{outline:2px solid var(--t-red);outline-offset:2px}
.mlo-chip[disabled]{opacity:.5;cursor:default}
.mlo-pill{display:inline-block;background:var(--t-paper);color:var(--t-navy);border:1px solid var(--t-line);border-radius:2px;
  padding:7px 11px;font:700 13px/1.2 var(--t-sans);font-variant-numeric:tabular-nums;white-space:nowrap}
.mlo-pill.warn{background:var(--t-warn-bg);color:var(--t-warn);border-color:#E7D7B4}
.mlo-note{font-size:14px;color:var(--t-muted);background:transparent;margin:8px 0 0;line-height:1.55}
.mlo-note[role="status"]:empty{display:none}
.mlo-panel{background:var(--t-panel);color:var(--t-body);border:1px solid var(--t-line);border-radius:2px;padding:22px;
  box-shadow:0 10px 30px rgba(10,22,38,.06)}
.mlo-panel h2{font-size:24px;margin:0 0 8px}
.mlo-panel h3{font-size:19px;margin:18px 0 8px}
.mlo-kicker{display:block;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--t-red);background:transparent;margin-bottom:8px}
.mlo-verdict{margin:14px 0 0;padding:13px 16px;border-radius:2px;font-size:15.5px;line-height:1.55;border:1px solid var(--t-line)}
.mlo-verdict.ok{background:var(--t-good-bg);color:#1B4636;border-color:#BFDCCC}
.mlo-verdict.ok b{color:var(--t-good);background:var(--t-good-bg)}
.mlo-verdict.bad{background:var(--t-bad-bg);color:#6E1B23;border-color:#EBC6CA}
.mlo-verdict.bad b{color:var(--t-bad);background:var(--t-bad-bg)}
.mlo-verdict.nan{background:var(--t-warn-bg);color:#4A3A16;border-color:#E7D7B4}
.mlo-why{margin:12px 0 0;padding:14px 16px;background:var(--t-paper);color:var(--t-body);border:1px solid var(--t-line);
  border-inline-start:4px solid var(--t-navy);border-radius:2px;font-size:15px;line-height:1.6}
.mlo-why b{color:var(--t-navy);background:var(--t-paper)}
.mlo-cite{font-size:12.5px;color:var(--t-muted);background:transparent;margin-top:6px;font-variant-numeric:tabular-nums}
.mlo-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;align-items:center}
.mlo-bar-track{height:8px;background:#E6DECF;border-radius:2px;overflow:hidden;flex:1 1 160px;min-width:120px}
.mlo-bar-track i{display:block;height:100%;background:var(--t-red);width:0;transition:width .3s ease}
.mlo-stats{display:flex;gap:14px;flex-wrap:wrap;font-size:13.5px;font-weight:700;color:var(--t-navy);background:transparent;
  font-variant-numeric:tabular-nums;align-items:center}
.mlo-stats .k{color:var(--t-good);background:transparent}
.mlo-stats .r{color:var(--t-bad);background:transparent}
.mlo-kbd{font-size:13px;color:var(--t-muted);background:transparent;text-align:center;margin:10px 0 0}
.mlo-kbd kbd{font:600 12px/1 var(--t-sans);background:var(--t-paper);color:var(--t-body);border:1px solid var(--t-line);border-radius:2px;padding:2px 5px}
.mlo-touch{display:none}
@media (hover:none) and (pointer:coarse){.mlo-kbd .mlo-key{display:none}.mlo-touch{display:inline}}
.mlo-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* ---------- flashcards ---------- */
.fc-stage{position:relative;perspective:1400px;margin:0 auto;max-width:720px}
.fc-card{position:relative;width:100%;min-height:300px;cursor:pointer;border-radius:2px;outline:none;
  transition:transform .45s cubic-bezier(.2,.8,.2,1);transform-style:preserve-3d;touch-action:pan-y}
.fc-card:focus-visible{box-shadow:0 0 0 3px var(--t-red)}
.fc-card.flipped{transform:rotateY(180deg)}
.fc-card.sw-anim{transition:transform .19s ease,opacity .19s ease}
.fc-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;flex-direction:column;
  border-radius:2px;padding:26px 28px 20px;box-sizing:border-box;border:1px solid var(--t-line)}
.fc-front{background:var(--t-panel);color:var(--t-ink)}
.fc-back{background:var(--t-ink);color:#F4EFE4;transform:rotateY(180deg);border-color:#22374F}
.fc-face .fc-body{flex:1 1 auto;display:flex;align-items:center;justify-content:center;text-align:center;font-family:var(--t-serif);
  font-size:clamp(18px,2.6vw,24px);line-height:1.4;overflow-wrap:anywhere}
.fc-front .fc-body{color:var(--t-ink);background:var(--t-panel)}
.fc-back .fc-body{color:#F4EFE4;background:var(--t-ink);font-size:clamp(16px,2.2vw,19px);font-family:var(--t-sans);line-height:1.55}
.fc-back .fc-body b{color:var(--t-lamp);background:var(--t-ink);display:block;font-family:var(--t-serif);font-size:clamp(18px,2.6vw,23px);margin-bottom:12px}
.fc-front .fc-body.term{font-size:clamp(24px,4vw,36px)}
.fc-rule{display:flex;justify-content:space-between;gap:10px;margin-top:16px;padding-top:12px;border-top:1px solid var(--t-line);
  font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;font-variant-numeric:tabular-nums}
.fc-front .fc-rule{color:var(--t-muted);background:var(--t-panel)}
.fc-back .fc-rule{color:#B7C7D8;background:var(--t-ink);border-top-color:#22374F}
.fc-tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:4px 8px;border-radius:2px;align-self:flex-start;margin-bottom:12px}
.fc-front .fc-tag{background:var(--t-paper);color:var(--t-navy);border:1px solid var(--t-line)}
.fc-back .fc-tag{background:#22374F;color:var(--t-lamp)}
.sw-badge{position:absolute;top:14px;z-index:2;padding:8px 12px;border-radius:2px;font:800 13px/1 var(--t-sans);letter-spacing:.1em;
  text-transform:uppercase;opacity:0;pointer-events:none;transition:opacity .1s linear}
.sw-know{left:14px;background:#2F6B48;color:#FFFFFF}
.sw-review{right:14px;background:#8E1220;color:#FFFFFF}
.fc-controls{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}
.fc-controls .wb-btn{min-width:130px}
.wb-btn.know{background:#1E6B4E;border-color:#1E6B4E;color:#FFFFFF}
.wb-btn.know:hover{background:#12503A;border-color:#12503A;color:#FFFFFF}
.wb-btn.review{background:#FFFFFF;border-color:var(--t-bad);color:var(--t-bad)}
.wb-btn.review:hover{background:var(--t-bad);border-color:var(--t-bad);color:#FFFFFF}
.fc-empty{text-align:center;padding:40px 20px;background:var(--t-panel);color:var(--t-muted);border:1px dashed var(--t-line);border-radius:2px;font-size:16px}
.fc-counter{text-align:center;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--t-muted);background:transparent;margin:0 0 12px;font-variant-numeric:tabular-nums}

/* ---------- practice exam ---------- */
.ex-setup fieldset{border:1px solid var(--t-line);border-radius:2px;padding:14px 16px 16px;margin:0 0 14px;min-width:0}
.ex-setup legend{font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--t-navy);background:transparent;padding:0 6px}
.ex-setup .mlo-row{margin-top:0}
.ex-hud{position:sticky;top:0;z-index:30;background:rgba(247,243,234,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--t-line);
  padding:10px 0;margin:0 0 18px}
.ex-hud-in{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.ex-hud .mlo-bar-track{flex:1 1 140px}
.ex-q{font-family:var(--t-serif);font-size:clamp(19px,2.6vw,23px);line-height:1.4;color:var(--t-ink);background:var(--t-panel);margin:8px 0 18px}
.ex-opts{display:grid;gap:10px}
.sim-opt.ok{background:var(--t-good-bg);border-color:var(--t-good);color:#1B4636}
.sim-opt.ok .sim-opt-k{background:var(--t-good);color:#FFFFFF}
.sim-opt.bad{background:var(--t-bad-bg);border-color:var(--t-bad);color:#6E1B23}
.sim-opt.bad .sim-opt-k{background:var(--t-bad);color:#FFFFFF}
.sim-opt.picked{border-color:var(--t-navy);box-shadow:inset 0 0 0 1px var(--t-navy)}
.sim-opt[disabled]{cursor:default}
.sim-opt[disabled]:hover{border-color:var(--t-line);background:var(--t-paper)}
.sim-opt.ok[disabled]:hover{background:var(--t-good-bg);border-color:var(--t-good);color:#1B4636}
.sim-opt.bad[disabled]:hover{background:var(--t-bad-bg);border-color:var(--t-bad);color:#6E1B23}
.ex-meta{font-size:12.5px;color:var(--t-muted);background:transparent;letter-spacing:.04em}
.ex-score{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 16px}
.ex-score-n{font-family:var(--t-serif);font-size:56px;line-height:1;color:var(--t-red);background:transparent;font-variant-numeric:tabular-nums}
.ex-score-l{font-size:15px;color:var(--t-muted);background:transparent}
.ex-table{width:100%;border-collapse:collapse;font-size:14.5px;margin:8px 0 0}
.ex-table th,.ex-table td{text-align:start;padding:9px 8px;border-bottom:1px solid var(--t-line);vertical-align:top}
.ex-table th{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--t-muted);background:transparent;font-weight:700}
.ex-table td.n{text-align:end;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700;color:var(--t-ink);background:transparent}
.ex-table tr.weak td{background:var(--t-bad-bg);color:#6E1B23}
.ex-miss{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.ex-miss button{display:block;width:100%;text-align:start;background:var(--t-paper);color:var(--t-body);border:1px solid var(--t-line);
  border-inline-start:4px solid var(--t-bad);border-radius:2px;padding:12px 14px;font:15px/1.5 var(--t-sans);cursor:pointer}
.ex-miss button:hover{border-color:var(--t-red)}
.ex-miss button[aria-expanded="true"]{background:var(--t-panel);color:var(--t-body)}
.ex-miss .ex-miss-body{margin:8px 0 0;font-size:14.5px}
.ex-miss .ex-miss-body p{margin:0 0 6px}
.ex-best{font-size:14.5px;color:var(--t-good);background:transparent;font-weight:700}

/* ---------- math ---------- */
.mx-types{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));margin:0 0 4px}
.mx-types .mlo-chip{justify-content:flex-start;text-align:start;white-space:normal;line-height:1.3;min-height:48px}
.mx-prob{font-size:17.5px;line-height:1.65;color:var(--t-body);background:var(--t-panel);margin:8px 0 16px;max-width:66ch}
.mx-prob b{color:var(--t-ink);background:var(--t-panel)}
.mx-given{margin:0 0 16px;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.mx-given li{background:var(--t-paper);color:var(--t-navy);border:1px solid var(--t-line);border-radius:2px;padding:6px 10px;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
.mx-ans{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-start}
.mx-ans .mlo-in{flex:1 1 200px;font-size:18px;font-variant-numeric:tabular-nums}
.mx-seg{display:inline-flex;border:1px solid var(--t-line);border-radius:2px;overflow:hidden}
.mx-seg button{background:var(--t-paper);color:var(--t-navy);border:0;padding:9px 13px;font:700 13.5px/1.2 var(--t-sans);cursor:pointer;min-height:44px}
.mx-seg button[aria-pressed="true"]{background:var(--t-navy);color:#FFFFFF}
.mx-seg button:focus-visible{outline:2px solid var(--t-red);outline-offset:-2px}
.mx-steps{margin:12px 0 0;padding:14px 18px 14px 34px;background:var(--t-paper);color:var(--t-body);border:1px solid var(--t-line);
  border-inline-start:4px solid var(--t-lamp);border-radius:2px;font-size:15px;line-height:1.7;font-variant-numeric:tabular-nums}
.mx-steps li{margin:0 0 4px}
.mx-steps b{color:var(--t-navy);background:var(--t-paper)}
.mx-formula{font-family:var(--t-serif);font-style:italic;font-size:16px;color:var(--t-ink);background:var(--t-paper);display:block;margin:0 0 8px}
details.mx-how{margin-top:12px}
details.mx-how summary{cursor:pointer;font-weight:700;color:var(--t-navy);background:transparent;font-size:14.5px;padding:8px 0;min-height:44px;display:flex;align-items:center}
details.mx-how summary:focus-visible{outline:2px solid var(--t-red);outline-offset:2px}
.mx-mistake{font-size:14px;color:var(--t-bad);background:transparent;margin:6px 0 0;font-weight:600}

/* ---------- match ---------- */
.mt-hud{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 16px}
.mt-board{display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}
@media (max-width:640px){.mt-board{grid-template-columns:1fr}}
.mt-col{display:grid;gap:8px;align-content:start}
.mt-chip,.mt-def{background:var(--t-panel);color:var(--t-body);border:1px solid var(--t-line);border-radius:2px;padding:12px 14px;
  font:15px/1.45 var(--t-sans);cursor:pointer;text-align:start;min-height:52px;transition:border-color .12s ease,background .12s ease;overflow-wrap:anywhere}
.mt-chip{font-weight:700;color:var(--t-navy);font-family:var(--t-serif);font-size:17px}
.mt-chip:hover,.mt-def:hover{border-color:var(--t-red)}
.mt-chip:focus-visible,.mt-def:focus-visible{outline:2px solid var(--t-red);outline-offset:2px}
.mt-chip.sel,.mt-def.sel{border-color:var(--t-navy);box-shadow:inset 0 0 0 2px var(--t-navy);background:#FFFFFF;color:var(--t-navy)}
.mt-chip.done,.mt-def.done{background:var(--t-good-bg);border-color:#BFDCCC;color:#1B4636;cursor:default}
.mt-chip.done{color:var(--t-good)}
.mt-def{font-size:14.5px}
.mt-def .mt-cite{display:block;margin-top:6px;font-size:12px;color:var(--t-muted);background:transparent}
.mt-def.done .mt-cite{color:#1B4636;background:var(--t-good-bg)}
.shakeX{animation:mloShake .32s ease}
@keyframes mloShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.mt-done h2{font-size:28px;margin:0 0 6px}

@media (max-width:640px){
  .mlo-panel{padding:18px 15px}
  .fc-face{padding:20px 16px 14px}
  .fc-card{min-height:280px}
  .fc-controls .wb-btn{flex:1 1 40%;min-width:0}
  .ex-score-n{font-size:44px}
  .mx-types{grid-template-columns:1fr 1fr}
}
@media (prefers-reduced-motion:reduce){
  .fc-card,.mlo-card,.mlo-bar-track i{transition:none!important}
  .shakeX{animation:none}
}
@media print{
  .mlo-bar,.fc-controls,.ex-hud,.mlo-gate,.wb-acct,.mlo-save{display:none!important}
}

/* ================================================================
   dark theme — html[data-theme="dark"] (tokens from newtools-v3.css / FEATURE-BRIEF)
   ================================================================ */
html[data-theme="dark"] .mlo-gate{background:var(--d-panel);color:var(--d-text);border-color:var(--d-line);border-inline-start-color:var(--d-link);box-shadow:none}
html[data-theme="dark"] .mlo-gate .mlo-honest{color:var(--d-link);background:var(--d-panel)}
html[data-theme="dark"] .mlo-card{background:var(--d-panel);color:var(--d-text);border-color:var(--d-line);box-shadow:none}
html[data-theme="dark"] .mlo-card .lim{color:var(--d-ok);background:var(--d-panel)}
html[data-theme="dark"] .mlo-card h3{color:var(--d-link);background:var(--d-panel)}
html[data-theme="dark"] .mlo-card p{color:var(--d-muted);background:var(--d-panel)}
html[data-theme="dark"] .mlo-card .go{color:var(--d-accent);background:var(--d-panel)}
html[data-theme="dark"] .mlo-how li{background:var(--d-panel);color:var(--d-text);border-color:var(--d-line)}
html[data-theme="dark"] .mlo-h3{color:var(--d-link)}
html[data-theme="dark"] .mlo-how b{color:var(--d-link);background:var(--d-panel)}
html[data-theme="dark"] .mlo-units li{background:var(--d-panel2);color:var(--d-text);border-color:var(--d-line)}
html[data-theme="dark"] .mlo-sel,html[data-theme="dark"] .mlo-in{background:var(--d-panel2);color:var(--d-text);border-color:var(--d-line)}
html[data-theme="dark"] .mlo-in::placeholder{color:inherit;opacity:.72}
html[data-theme="dark"] .mlo-chip{background:var(--d-bg);color:var(--d-link);border-color:var(--d-line)}
html[data-theme="dark"] .mlo-chip:hover{color:var(--d-accent);background:var(--d-bg);border-color:var(--d-accent)}
html[data-theme="dark"] .mlo-chip.on,html[data-theme="dark"] .mlo-chip[aria-pressed="true"]{background:var(--d-link);color:var(--d-bg);border-color:var(--d-link)}
html[data-theme="dark"] .mlo-pill{background:var(--d-panel2);color:var(--d-text);border-color:var(--d-line)}
html[data-theme="dark"] .mlo-pill.warn{background:var(--d-warn-bg);color:var(--d-warn-text);border-color:#5A4A22}
html[data-theme="dark"] .mlo-panel{background:var(--d-panel);color:var(--d-text);border-color:var(--d-line);box-shadow:none}
html[data-theme="dark"] .mlo-verdict.ok{background:var(--d-ok-bg);color:var(--d-text);border-color:#2C5A46}
html[data-theme="dark"] .mlo-verdict.ok b{color:var(--d-ok);background:var(--d-ok-bg)}
html[data-theme="dark"] .mlo-verdict.bad{background:var(--d-bad-bg);color:var(--d-text);border-color:#6A3038}
html[data-theme="dark"] .mlo-verdict.bad b{color:var(--d-bad);background:var(--d-bad-bg)}
html[data-theme="dark"] .mlo-verdict.nan{background:var(--d-warn-bg);color:var(--d-warn-text);border-color:#5A4A22}
html[data-theme="dark"] .mlo-why{background:var(--d-bg);color:var(--d-text);border-color:var(--d-line);border-inline-start-color:var(--d-link)}
html[data-theme="dark"] .mlo-why b{color:var(--d-link);background:var(--d-bg)}
html[data-theme="dark"] .mlo-bar-track{background:var(--d-line)}
html[data-theme="dark"] .mlo-bar-track i{background:var(--d-accent)}
html[data-theme="dark"] .mlo-kbd kbd{background:var(--d-panel2);color:var(--d-text);border-color:var(--d-line)}
/* flashcards */
html[data-theme="dark"] .fc-front{background:var(--d-panel);color:var(--d-text);border-color:var(--d-line)}
html[data-theme="dark"] .fc-front .fc-body{color:var(--d-text);background:var(--d-panel)}
html[data-theme="dark"] .fc-front .fc-rule{color:var(--d-muted);background:var(--d-panel);border-top-color:var(--d-line)}
html[data-theme="dark"] .fc-front .fc-tag{background:var(--d-panel2);color:var(--d-link);border-color:var(--d-line)}
html[data-theme="dark"] .fc-back{background:var(--d-panel2);color:var(--d-text);border-color:var(--d-line)}
html[data-theme="dark"] .fc-back .fc-body{color:var(--d-text);background:var(--d-panel2)}
html[data-theme="dark"] .fc-back .fc-body b{color:var(--d-gold);background:var(--d-panel2)}
html[data-theme="dark"] .fc-back .fc-rule{color:var(--d-muted);background:var(--d-panel2);border-top-color:var(--d-line)}
html[data-theme="dark"] .fc-back .fc-tag{background:var(--d-bg);color:var(--d-gold)}
html[data-theme="dark"] .sw-know{background:var(--d-ok);color:var(--d-bg)}
html[data-theme="dark"] .sw-review{background:var(--d-bad);color:var(--d-bg)}
html[data-theme="dark"] .wb-btn.know{background:var(--d-ok);border-color:var(--d-ok);color:var(--d-bg)}
html[data-theme="dark"] .wb-btn.know:hover{background:#9BEAC6;border-color:#9BEAC6;color:var(--d-bg)}
html[data-theme="dark"] .wb-btn.review{background:transparent;border-color:var(--d-bad);color:var(--d-bad)}
html[data-theme="dark"] .wb-btn.review:hover{background:var(--d-bad);border-color:var(--d-bad);color:var(--d-bg)}
html[data-theme="dark"] .fc-empty{background:var(--d-panel);color:var(--d-muted);border-color:var(--d-line)}
/* exam */
html[data-theme="dark"] .ex-hud{background:rgba(15,23,34,.96);border-bottom-color:var(--d-line)}
html[data-theme="dark"] .ex-q{color:var(--d-text);background:var(--d-panel)}
html[data-theme="dark"] .sim-opt.ok,html[data-theme="dark"] .sim-opt.ok[disabled]:hover{background:var(--d-ok-bg);border-color:var(--d-ok);color:var(--d-text)}
html[data-theme="dark"] .sim-opt.ok .sim-opt-k{background:var(--d-ok);color:var(--d-bg)}
html[data-theme="dark"] .sim-opt.bad,html[data-theme="dark"] .sim-opt.bad[disabled]:hover{background:var(--d-bad-bg);border-color:var(--d-bad);color:var(--d-text)}
html[data-theme="dark"] .sim-opt.bad .sim-opt-k{background:var(--d-bad);color:var(--d-bg)}
html[data-theme="dark"] .sim-opt.picked{border-color:var(--d-link);box-shadow:inset 0 0 0 1px var(--d-link)}
html[data-theme="dark"] .sim-opt[disabled]:hover{background:var(--d-bg);border-color:var(--d-line);color:var(--d-text)}
html[data-theme="dark"] .ex-score-n{color:var(--d-accent);background:transparent}
html[data-theme="dark"] .ex-table td.n{color:var(--d-text);background:transparent}
html[data-theme="dark"] .ex-table tr.weak td{background:var(--d-bad-bg);color:var(--d-text)}
html[data-theme="dark"] .ex-miss button{background:var(--d-bg);color:var(--d-text);border-color:var(--d-line);border-inline-start-color:var(--d-bad)}
html[data-theme="dark"] .ex-miss button[aria-expanded="true"]{background:var(--d-panel2);color:var(--d-text)}
html[data-theme="dark"] .ex-best{color:var(--d-ok);background:transparent}
/* math */
html[data-theme="dark"] .mx-prob{color:var(--d-text);background:var(--d-panel)}
html[data-theme="dark"] .mx-prob b{color:var(--d-gold);background:var(--d-panel)}
html[data-theme="dark"] .mx-given li{background:var(--d-panel2);color:var(--d-text);border-color:var(--d-line)}
html[data-theme="dark"] .mx-seg{border-color:var(--d-line)}
html[data-theme="dark"] .mx-seg button{background:var(--d-bg);color:var(--d-link)}
html[data-theme="dark"] .mx-seg button[aria-pressed="true"]{background:var(--d-link);color:var(--d-bg)}
html[data-theme="dark"] .mx-steps{background:var(--d-bg);color:var(--d-text);border-color:var(--d-line);border-inline-start-color:var(--d-gold)}
html[data-theme="dark"] .mx-steps b{color:var(--d-link);background:var(--d-bg)}
html[data-theme="dark"] .mx-formula{color:var(--d-gold);background:var(--d-bg)}
html[data-theme="dark"] .mx-mistake{color:var(--d-bad);background:transparent}
/* match */
html[data-theme="dark"] .mt-chip,html[data-theme="dark"] .mt-def{background:var(--d-panel);color:var(--d-text);border-color:var(--d-line)}
html[data-theme="dark"] .mt-chip{color:var(--d-link)}
html[data-theme="dark"] .mt-chip.sel,html[data-theme="dark"] .mt-def.sel{background:var(--d-panel2);color:var(--d-link);border-color:var(--d-link);box-shadow:inset 0 0 0 2px var(--d-link)}
html[data-theme="dark"] .mt-chip.done,html[data-theme="dark"] .mt-def.done{background:var(--d-ok-bg);color:var(--d-text);border-color:#2C5A46}
html[data-theme="dark"] .mt-chip.done{color:var(--d-ok)}
html[data-theme="dark"] .mt-def .mt-cite{color:var(--d-muted);background:transparent}
html[data-theme="dark"] .mt-def.done .mt-cite{color:var(--d-text);background:var(--d-ok-bg)}
