/* RNJoy Prep styles */
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}body{margin:0}[hidden]{display:none!important}

/* Layout: single-column phone-first app, max 640px, sticky bottom tab bar; home reads like a shift handover card */
:root{
  --b-teal:#0E7470; --b-gold:#C08A12; --b-coral:#D2603F; --b-blue:#2F6FB3; --b-violet:#7A55B8; --b-ring:#FFFFFF;
  --o-skin:#D7EBE7; --o-brain:#E9B8C9; --o-heart:#D9665E; --o-lung:#F1B3AE; --o-liver:#9C5546; --o-gi:#E6B07A; --o-pan:#E8CF6A; --o-kid:#B0545F; --o-bone:#F3EEE3; --o-line:rgba(0,0,0,.25);
  --bg:#F3F8F7; --surface:#FFFFFF; --mint:#E3F2EF; --ink:#12302F; --muted:#587270;
  --line:#D3E5E1; --teal:#0E7470; --teal-deep:#0A5653; --teal-soft:#BFE3DD; --on-teal:#FFFFFF;
  --hl:#FFE58A;
  --good:#23845A; --good-soft:#DDF2E7; --bad:#B84A2A; --bad-soft:#FBE7E0; --amber:#935D05; --amber-soft:#FBF0D9;
  --shadow:0 1px 2px rgba(14,60,58,.06),0 6px 18px rgba(14,60,58,.06);
  --f-display:"Lexend",ui-sans-serif,system-ui,sans-serif;
  --f-body:"Source Sans 3","Segoe UI",system-ui,-apple-system,sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --b-teal:#3FB3A8; --b-gold:#D9A93A; --b-coral:#E07B5C; --b-blue:#5B95D6; --b-violet:#9C7BD6; --b-ring:#0B1918;
  --o-skin:#1F3D3A; --o-brain:#A86F86; --o-heart:#C2564F; --o-lung:#B97C78; --o-liver:#8A4A3E; --o-gi:#B88552; --o-pan:#BFA54A; --o-kid:#94434E; --o-bone:#CFC8B8; --o-line:rgba(0,0,0,.35);
  --bg:#0B1918; --surface:#122423; --mint:#173230; --ink:#E2F0EE; --muted:#93AEAA;
  --line:#22403D; --teal:#4DBDB2; --teal-deep:#7FD3CA; --teal-soft:#1D4744; --on-teal:#062221;
  --hl:#5A4A10;
  --good:#5CC994; --good-soft:#163527; --bad:#F0896A; --bad-soft:#3A1F17; --amber:#E9B451; --amber-soft:#382A11;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 6px 18px rgba(0,0,0,.25); color-scheme:dark}}
:root[data-theme="dark"]{
  --b-teal:#3FB3A8; --b-gold:#D9A93A; --b-coral:#E07B5C; --b-blue:#5B95D6; --b-violet:#9C7BD6; --b-ring:#0B1918;
  --o-skin:#1F3D3A; --o-brain:#A86F86; --o-heart:#C2564F; --o-lung:#B97C78; --o-liver:#8A4A3E; --o-gi:#B88552; --o-pan:#BFA54A; --o-kid:#94434E; --o-bone:#CFC8B8; --o-line:rgba(0,0,0,.35);
  --bg:#0B1918; --surface:#122423; --mint:#173230; --ink:#E2F0EE; --muted:#93AEAA;
  --line:#22403D; --teal:#4DBDB2; --teal-deep:#7FD3CA; --teal-soft:#1D4744; --on-teal:#062221;
  --hl:#5A4A10;
  --good:#5CC994; --good-soft:#163527; --bad:#F0896A; --bad-soft:#3A1F17; --amber:#E9B451; --amber-soft:#382A11;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 6px 18px rgba(0,0,0,.25); color-scheme:dark}
*{box-sizing:border-box}
html,body{background:var(--bg)}
body{color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
h1,h2,h3{font-family:var(--f-display);font-weight:600;margin:0;text-wrap:balance;letter-spacing:-.01em}
h1{font-size:1.6rem;line-height:1.2} h2{font-size:1.25rem;line-height:1.25} h3{font-size:1.02rem}
p{margin:0}
.wrap{max-width:640px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:20px 110px;display:flex;flex-direction:column;gap:20px}
.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.muted{color:var(--muted)}
.small{font-size:.875rem}
.num{font-variant-numeric:tabular-nums}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.between{justify-content:space-between}
.stack{display:flex;flex-direction:column;gap:12px}

/* top bar */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--f-display);font-weight:600;font-size:1.15rem;color:var(--teal-deep)}
.brand svg{flex:none}
.back-btn{background:none;border:0;padding:6px 8px 6px 0;color:var(--teal);font-weight:600;display:flex;align-items:center;gap:4px}
.streak{display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:5px 12px 5px 9px;font-weight:600;font-size:.9rem}
.streak .flame{color:var(--amber)}

/* shift card */
.shift{background:var(--teal-deep);color:var(--on-teal);border-radius:18px;padding:18px;display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden}
:root .shift{background:linear-gradient(150deg,#0B5E5A,#0E7470)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .shift{background:linear-gradient(150deg,#123B39,#17504C)}}
:root[data-theme="dark"] .shift{background:linear-gradient(150deg,#123B39,#17504C)}
.shift, .shift *{color:#fff}
.shift .eyebrow{color:rgba(255,255,255,.75)}
.shift-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.shift-cell{background:rgba(255,255,255,.1);border-radius:12px;padding:10px}
.shift-cell b{display:block;font-family:var(--f-display);font-size:1.35rem;font-weight:600;line-height:1.1}
.shift-cell span{font-size:.78rem;opacity:.85}
.ecg{position:absolute;right:-10px;top:12px;opacity:.18;pointer-events:none}

.rescue{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--amber-soft);border:1px solid color-mix(in srgb,var(--amber) 35%,transparent);border-radius:16px;padding:14px 16px}
.rescue .ic{flex:none;width:42px;height:42px;border-radius:12px;background:var(--amber);color:var(--surface);display:grid;place-items:center}
.rescue b{font-family:var(--f-display);font-weight:600;display:block}
.rescue:hover{border-color:var(--amber)}

/* tiles */
.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (min-width:560px){.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tile{display:flex;flex-direction:column;gap:8px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px;min-height:132px;box-shadow:var(--shadow);transition:transform .15s,border-color .15s}
.tile:hover:not(:disabled){transform:translateY(-2px);border-color:var(--teal)}
.tile .ti{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--mint);color:var(--teal)}
.tile b{font-family:var(--f-display);font-weight:600;font-size:1.05rem}
.tile p{font-size:.86rem;color:var(--muted);line-height:1.35}
.tile:disabled{cursor:default;box-shadow:none;background:transparent;border-style:dashed}
.tile:disabled .ti{background:transparent;border:1px dashed var(--line);color:var(--muted)}
.soon{align-self:flex-start;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 8px;margin-top:auto}
.ready{align-self:flex-start;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--teal);background:var(--mint);border-radius:999px;padding:2px 8px;margin-top:auto}

.note{font-size:.84rem;color:var(--muted);border-top:1px solid var(--line);padding-top:14px;display:flex;gap:8px;align-items:flex-start}
/* "Guidelines change" note on topics that vary by state or change often */
.guide-note{font-size:.84rem;line-height:1.4;color:var(--amber);background:var(--amber-soft);border-radius:10px;padding:8px 12px;margin:0;display:flex;gap:8px;align-items:flex-start;overflow-wrap:anywhere}
.guide-note.small{font-size:.76rem;padding:5px 10px}
.reviewed{display:block}

/* panels, lists */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px}
.list{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.li{display:flex;align-items:center;gap:12px;padding:14px 16px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;width:100%}
.li:last-child{border-bottom:0}
.li:hover{background:var(--mint)}
.li .grow{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.li b{font-weight:600}
.bar{height:6px;border-radius:99px;background:var(--mint);overflow:hidden}
.bar i{display:block;height:100%;background:var(--teal);border-radius:99px;transition:width .4s}
.bar.good i{background:var(--good)} .bar.bad i{background:var(--bad)} .bar.amber i{background:var(--amber)}
.chev{color:var(--muted);flex:none}

/* buttons */
.btn{border:0;border-radius:12px;padding:13px 18px;font-weight:600;font-family:var(--f-display);font-size:.98rem;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px}
.btn-primary{background:var(--teal);color:var(--on-teal)}
.btn-primary:hover{background:var(--teal-deep)}
.btn-ghost{background:var(--surface);border:1px solid var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--teal)}
.btn-good{background:var(--good);color:var(--surface)}
.btn-review{background:var(--amber-soft);color:var(--amber);border:1px solid color-mix(in srgb,var(--amber) 40%,transparent)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn-block{width:100%}
.btn-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}
/* Flashcard ratings: Again / Hard / Good / Easy with the next review under each */
/* "How to think about this" strategy tips on quiz questions */
.strat-tip{background:var(--mint);border:1px solid var(--teal-soft);border-left:4px solid var(--teal);border-radius:12px;padding:10px 14px;display:flex;flex-direction:column;gap:4px}
.strat-tip p{margin:0}
.strat-tip.small p{font-size:.92rem}
.hint-btn{align-self:flex-start}
.strat-ex{background:var(--mint);border-radius:12px;padding:10px 14px}
.strat-ex p{margin:4px 0 0}
.rate-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.rate-btn{flex-direction:column;gap:2px;padding:10px 4px;min-width:0}
.rate-when{font-size:.74rem;font-weight:500;opacity:.85;font-family:var(--f-body)}
.daily-review:disabled{opacity:1;cursor:default;box-shadow:none}
.daily-review .grow-text > .num{display:block;font-weight:600}

.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 14px;font-weight:600;font-size:.92rem}
.chip[aria-pressed="true"]{background:var(--teal);border-color:var(--teal);color:var(--on-teal)}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:var(--mint);padding:5px;border-radius:12px}
.seg button{border:0;background:none;padding:10px;border-radius:9px;font-weight:600}
.seg button[aria-pressed="true"]{background:var(--surface);box-shadow:var(--shadow);color:var(--teal-deep)}
.seg button:disabled{opacity:.4;cursor:not-allowed}

/* flashcard */
.fc-meta{display:flex;justify-content:space-between;align-items:center;gap:10px}
.pill{font-size:.78rem;font-weight:700;letter-spacing:.04em;padding:3px 10px;border-radius:999px;background:var(--mint);color:var(--teal-deep)}
.pill.amber{background:var(--amber-soft);color:var(--amber)}
@media (prefers-reduced-motion:reduce){.tile{transition:none}}

/* quiz */
.progress-line{height:5px;background:var(--mint);border-radius:99px;overflow:hidden}
.progress-line i{display:block;height:100%;background:var(--teal);transition:width .3s}
.stem{font-size:1.12rem;line-height:1.5;font-weight:600}
.opts{display:flex;flex-direction:column;gap:10px}
.opt{display:flex;flex-direction:column;gap:8px;width:100%;text-align:left;background:var(--surface);border:1.5px solid var(--line);border-radius:14px;padding:13px 14px}
.opt:hover:not(:disabled){border-color:var(--teal)}
.opt:disabled{cursor:default}
.opt-top{display:flex;gap:12px;align-items:flex-start}
.letter{flex:none;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--mint);font-family:var(--f-display);font-weight:600;font-size:.88rem;color:var(--teal-deep)}
.opt.correct{border-color:var(--good);background:var(--good-soft)}
.opt.correct .letter{background:var(--good);color:var(--surface)}
.opt.wrong{border-color:var(--bad);background:var(--bad-soft)}
.opt.wrong .letter{background:var(--bad);color:var(--surface)}
.opt.dim{opacity:.92}
.why{font-size:.93rem;line-height:1.45;color:var(--ink);padding-left:40px}
.why b{font-weight:700}
.why .ok{color:var(--good)} .why .no{color:var(--bad)}
.verdict{border-radius:14px;padding:12px 14px;font-weight:600;display:flex;gap:10px;align-items:center}
.verdict.good{background:var(--good-soft);color:var(--good)}
.verdict.bad{background:var(--bad-soft);color:var(--bad)}

.score-ring{display:flex;align-items:center;gap:18px}
.big{font-family:var(--f-display);font-size:2.6rem;font-weight:600;line-height:1}

.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (min-width:560px){.stats{grid-template-columns:repeat(4,minmax(0,1fr))}}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.stat b{display:block;font-family:var(--f-display);font-size:1.5rem;font-weight:600}
.stat span{font-size:.82rem;color:var(--muted)}

.toprow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center}
.toprow .bar{grid-column:1/-1}

/* bottom nav */
.nav{position:fixed;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);z-index:20}
.nav-in{max-width:640px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr)}
.nav button{background:none;border:0;padding:9px 4px 10px;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:.74rem;font-weight:600;color:var(--muted)}
.nav button[aria-current="page"]{color:var(--teal)}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(76px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:12px;font-size:.92rem;z-index:30;max-width:calc(100% - 32px);text-align:center}

.logo{width:32px;height:32px;flex:none;display:block}
/* Wordmark: RN teal, Joy coral, Prep grey. Lighter tints of the same colours in dark mode, so it stays readable. */
.wordmark{white-space:nowrap;letter-spacing:-.01em;font-size:1.2rem;font-weight:600}   /* large enough that the coral and grey stay readable */
.wm-rn{color:#0F766E}
.wm-joy{color:#E8553D}
.wm-prep{color:#7A8786}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .wm-rn{color:#4DBDB2}:root:not([data-theme="light"]) .wm-joy{color:#F27D66}:root:not([data-theme="light"]) .wm-prep{color:#9AABA8}}
:root[data-theme="dark"] .wm-rn{color:#4DBDB2}
:root[data-theme="dark"] .wm-joy{color:#F27D66}
:root[data-theme="dark"] .wm-prep{color:#9AABA8}
.grow-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.flip{width:100%;min-height:260px;border-radius:20px;padding:24px 22px;display:flex;flex-direction:column;gap:14px;text-align:left;border:1px solid var(--line);box-shadow:var(--shadow);transition:background .2s}
.flip.is-front{background:var(--surface)}
.flip.is-back{background:var(--mint);border-color:var(--teal-soft)}
.flip .q{font-family:var(--f-display);font-size:1.3rem;font-weight:500;line-height:1.35;flex:1;display:flex;align-items:center}
.flip .a{font-size:1.08rem;line-height:1.55;flex:1;white-space:pre-line}
.flip .hint{font-size:.82rem;color:var(--muted)}
.tile{min-height:112px}
span.chip{display:inline-block}
.nav button.on{color:var(--teal)}
.nav-ic{font-size:1.15rem;line-height:1}
.big{margin-top:4px}
@media (prefers-reduced-motion:reduce){.flip{transition:none}}
.vitals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.vital{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 10px;display:flex;flex-direction:column;gap:2px;min-width:0}
.vital .vl{font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.vital .vv{font-family:var(--f-display);font-size:1.15rem;font-weight:600;line-height:1.2;overflow-wrap:anywhere}
.vital .vv small{font-family:var(--f-body);font-size:.72rem;font-weight:400;color:var(--muted)}
.vital .vd{font-size:.75rem;color:var(--muted)}
.vital .vs{font-size:.72rem;color:var(--muted);margin-top:-2px}
.vital .nw{white-space:nowrap}
.vital.flag{border-color:var(--bad);background:var(--bad-soft)}
.vital.flag .vv{color:var(--bad)}
.status{background:var(--mint);border-radius:12px;padding:10px 12px;color:var(--ink)}
.opt.partial{border-color:var(--amber);background:var(--amber-soft)}
.opt.partial .letter{background:var(--amber);color:var(--surface)}
.pill.good{background:var(--good-soft);color:var(--good)}
.pill.bad{background:var(--bad-soft);color:var(--bad)}
.debrief{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.li.review{align-items:flex-start}
.course-filter{gap:8px}
@media (min-width:560px){.vitals{grid-template-columns:repeat(6,minmax(0,1fr))}}
.prewrap{white-space:pre-line}
.chart-font{font-family:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:.9rem;line-height:1.7}
.example{background:var(--mint);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}
.chart-paper{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--teal-soft);border-radius:12px;padding:14px 14px;display:flex;flex-direction:column;gap:8px}
.chart-paper p{margin:0}
.seg{display:inline;background:none;border:0;padding:1px 2px;margin:0;font:inherit;line-height:inherit;color:var(--ink);text-align:left;border-radius:4px;cursor:pointer;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.seg:hover:not(:disabled){background:var(--mint)}
.seg:disabled{cursor:default;opacity:1}
.seg.found{background:var(--good-soft);color:var(--good);text-decoration:line-through;text-decoration-thickness:2px}
.seg.missed{background:var(--amber-soft);color:var(--amber);text-decoration:line-through}
.seg.nope{background:var(--bad-soft)}
.strike{text-decoration:line-through;color:var(--muted)}
.sbar-track{display:flex;gap:8px}
.sbar-letter{flex:none;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-family:var(--f-display);font-weight:600;background:var(--mint);color:var(--muted)}
.sbar-letter.now{background:var(--teal);color:var(--on-teal)}
.sbar-letter.ok{background:var(--good);color:var(--surface)}
.sbar-letter.no{background:var(--bad);color:var(--surface)}
.sbar-model{gap:8px}
.sbar-model p{margin:0}
.key-points{background:var(--mint);border-color:var(--teal-soft)}
.brand-text{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.streak{white-space:nowrap;flex:none}
.brand{min-width:0}
.tagline{font-family:var(--f-display);font-size:.95rem;font-weight:500;color:var(--teal-deep);margin:-12px 0 0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.arcade-entry{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--surface);border:1.5px solid var(--teal-soft);border-radius:16px;padding:14px 16px;box-shadow:var(--shadow)}
.arcade-entry:hover{border-color:var(--teal)}
.arcade-entry b{font-family:var(--f-display);font-weight:600}
.arcade-icon{flex:none;width:42px;height:42px;border-radius:12px;background:var(--teal);color:var(--on-teal);display:grid;place-items:center;font-family:var(--f-display);font-size:1.5rem;font-weight:600}
.arcade-entry .chev{font-size:1.6rem;line-height:1}
.level-badge{flex:none;width:34px;height:34px;border-radius:10px;background:var(--mint);color:var(--teal-deep);display:grid;place-items:center;font-family:var(--f-display);font-weight:600}
.arcade-hud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.hud-cell{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 12px;display:flex;flex-direction:column}
.hud-cell span{font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.hud-cell b{font-family:var(--f-display);font-size:1.25rem;font-weight:600}
.hud-cell.hurry{border-color:var(--bad);background:var(--bad-soft)}
.hud-cell.hurry b{color:var(--bad)}
.timer-line i{transition:width .25s linear}
.timer-line.hurry i{background:var(--bad)}
.arcade-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.arcade-input{flex:1 1 140px;min-width:0;font:inherit;font-size:1.2rem;padding:12px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink)}
.arcade-input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft)}
.arcade-unit{font-weight:600;color:var(--muted)}
.working{background:var(--mint);border-color:var(--teal-soft)}
.steps{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:6px}
.arcade-end{align-items:flex-start}
@media (prefers-reduced-motion:reduce){.timer-line i{transition:none}}
.verdict.amber-v{background:var(--amber-soft);color:var(--amber)}
.tagrow{display:flex;flex-wrap:wrap;gap:6px}
.tag{font-size:.72rem;font-weight:700;letter-spacing:.02em;padding:2px 8px;border-radius:999px;background:var(--surface);color:var(--ink)}
.alert-box{background:var(--bad-soft);border:1px solid var(--bad);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.alert-box p{margin:0}
.alert-box b{color:var(--bad)}
.shift-pt{align-items:flex-start}
.shift-pt:disabled{cursor:default}
.shift-pt:disabled:hover{background:none}
.shift-pt.seen{opacity:.55}
.shift-pt.worse{box-shadow:inset 4px 0 0 var(--bad)}
.update-line{color:var(--bad);font-weight:600}
.vline{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.vchip{font-size:.78rem;background:var(--mint);border-radius:8px;padding:2px 7px;white-space:nowrap}
.vchip small{color:var(--muted);font-weight:700;font-size:.7rem}
.vchip.flag{background:var(--bad-soft);color:var(--bad)}
.vchip.flag small{color:var(--bad)}
.family-card{align-items:stretch;gap:12px;padding:22px 20px}
.family-card.answer{background:var(--mint);border-color:var(--teal-soft)}
.family-q{font-family:var(--f-display);font-size:1.7rem;font-weight:500;line-height:1.3;margin:0;text-wrap:balance}
.family-a{font-size:1.3rem;line-height:1.5;margin:0}
.family-hint{font-size:1.1rem;font-weight:600;text-align:center;margin:0}
.family-count{font-size:1rem;font-weight:600}
.family-big-btn{min-height:60px;font-size:1.15rem}
.family-howto .steps{font-size:1rem}
.chart{width:100%;height:auto;max-width:100%;display:block}
.chart .grid{stroke:var(--line);stroke-width:1}
.chart .axis{fill:var(--muted);font-size:11px;font-family:var(--f-body)}
.chart .target{stroke:var(--amber);stroke-width:1.5;stroke-dasharray:4 4}
.chart .target-label{fill:var(--amber)}
.chart .line{stroke:var(--teal);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.chart .area{fill:var(--teal);opacity:.12}
.chart .dot{fill:var(--surface);stroke:var(--teal);stroke-width:2}
.chart .dot.last{fill:var(--teal)}
.empty{display:flex;flex-direction:column;gap:10px;align-items:flex-start;background:var(--mint);border-radius:12px;padding:14px}
.empty p{margin:0}
.breathing{align-items:stretch}
.breath-stage{position:relative;height:220px;display:grid;place-items:center}
.breath-circle{position:absolute;width:200px;height:200px;max-width:100%;border-radius:50%;background:radial-gradient(circle at 50% 45%,var(--teal-soft),var(--mint));border:2px solid var(--teal-soft);transition:transform .2s linear}
.breath-text{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--teal-deep)}
.breath-text b{font-family:var(--f-display);font-size:1.3rem;font-weight:600}
.breath-text span{font-family:var(--f-display);font-size:2rem;font-weight:600}
@media (prefers-reduced-motion:reduce){.breath-circle{transition:none}}
.rescue-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.rescue-step{font-size:.8rem;font-weight:600;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:6px 8px;display:flex;align-items:center;gap:6px;min-width:0}
.rescue-step b{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--mint);color:var(--teal-deep);font-size:.72rem}
.rescue-step.now{border-color:var(--teal);color:var(--ink)}
.rescue-step.now b{background:var(--teal);color:var(--on-teal)}
.rescue-step.done b{background:var(--good);color:var(--surface)}
.fact-list{margin:0;padding:0;list-style:none;counter-reset:fact;display:flex;flex-direction:column;gap:10px}
.fact-list li{counter-increment:fact;position:relative;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px 12px 50px;line-height:1.5}
.fact-list li::before{content:counter(fact);position:absolute;left:12px;top:12px;width:26px;height:26px;border-radius:8px;background:var(--mint);color:var(--teal-deep);font-family:var(--f-display);font-weight:600;display:grid;place-items:center;font-size:.85rem}
.rescue-end{align-items:flex-start}
.body-layout{display:grid;gap:14px;align-items:start}
@media (min-width:560px){.body-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.body-figure{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:10px;display:flex;justify-content:center}
.body-svg{width:100%;max-width:280px;height:auto;display:block}
.organ{cursor:pointer;outline:none}
.organ > :not(title){stroke:var(--surface);stroke-width:1.5;transition:opacity .15s}
.organ:hover > :not(title), .organ:focus-visible > :not(title){opacity:.8}
.organ .organ-line{stroke:var(--o-line);stroke-width:1.2;fill:none}
.organ-skin > *{fill:var(--o-skin)}
.organ-brain > *{fill:var(--o-brain)}
.organ-heart > *{fill:var(--o-heart)}
.organ-lungs > *{fill:var(--o-lung)}
.organ-liver > *{fill:var(--o-liver)}
.organ-gi > *{fill:var(--o-gi)}
.organ-pancreas > *{fill:var(--o-pan)}
.organ-kidneys > *{fill:var(--o-kid)}
.organ-bones > *{fill:var(--o-bone)}
.organ.sel > :not(title):not(.organ-line){stroke:var(--teal);stroke-width:3.5}
.organ-skin.sel > *{stroke-width:3}
.organ:focus-visible > :not(title):not(.organ-line){stroke:var(--teal);stroke-width:3}
.body-chips{align-content:flex-start}
.body-detail{gap:14px}
.body-sec h3{margin-bottom:4px}
.body-sec.warn{background:var(--bad-soft);border-radius:12px;padding:10px 12px}
.body-sec.warn h3{color:var(--bad)}
@media (prefers-reduced-motion:reduce){.organ > *{transition:none}}
.prev-panel{background:var(--mint);border-color:var(--teal-soft)}
.li.chapter{align-items:flex-start}
.li.chapter.locked{opacity:.55;cursor:not-allowed}
.li.chapter.locked:hover{background:none}
.badge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (min-width:560px){.badge-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.badge-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 12px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;min-width:0}
.badge-card b{font-family:var(--f-display);font-weight:600;line-height:1.2}
.badge-card.locked{background:transparent;border-style:dashed}
.badge-card.locked b{color:var(--muted)}
.badge-date{color:var(--teal-deep);font-weight:600}
.medal{--tone:var(--b-teal);width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--tone);box-shadow:0 0 0 3px var(--b-ring),0 0 0 5px var(--tone);flex:none}
.medal.tone-gold{--tone:var(--b-gold)} .medal.tone-coral{--tone:var(--b-coral)} .medal.tone-blue{--tone:var(--b-blue)} .medal.tone-violet{--tone:var(--b-violet)}
.medal-face{color:var(--b-ring);font-family:var(--f-display);font-weight:600;font-size:1.25rem;line-height:1}
.medal.locked{background:var(--mint);box-shadow:0 0 0 3px var(--b-ring),0 0 0 5px var(--line)}
.medal.locked .medal-face{font-size:1rem;filter:grayscale(1);opacity:.7}
.medal.big{width:96px;height:96px;margin:6px 0}
.medal.big .medal-face{font-size:2.1rem}
.celebrate-backdrop{position:fixed;inset:0;z-index:50;background:rgba(6,30,29,.55);display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));overflow:hidden}
.celebrate-card{position:relative;width:min(360px,100%);background:var(--surface);border-radius:20px;padding:22px 20px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;box-shadow:0 20px 50px rgba(0,0,0,.3);animation:pop-in .45s cubic-bezier(.2,1.4,.4,1) both}
.celebrate-card .btn-pair{width:100%;margin-top:6px}
.celebrate-card .medal{animation:medal-spin .9s ease-out .15s both}
.confetti{position:absolute;inset:0;pointer-events:none}
.confetti i{position:absolute;top:-20px;width:9px;height:14px;border-radius:2px;animation:fall 2.4s linear infinite}
.confetti .c1{background:var(--b-gold)} .confetti .c2{background:var(--b-teal)} .confetti .c3{background:var(--b-coral)} .confetti .c4{background:var(--b-blue)} .confetti .c5{background:var(--b-violet)}
@keyframes pop-in{from{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes medal-spin{from{transform:rotateY(180deg) scale(.6)}to{transform:rotateY(0) scale(1)}}
@keyframes fall{0%{transform:translateY(0) rotate(0)}100%{transform:translateY(110vh) rotate(540deg)}}
@media (prefers-reduced-motion:reduce){.celebrate-card,.celebrate-card .medal{animation:none}.confetti{display:none}}
/* Next Gen NCLEX case studies */
.ngn-chart{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.ngn-chart-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;background:var(--mint);flex-wrap:wrap}
.ngn-chart-head b{font-family:var(--f-display);font-weight:600}
.ngn-toggle{border:1px solid var(--line);background:var(--surface);color:var(--teal-deep);border-radius:999px;padding:6px 12px;font-weight:600}
.ngn-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--line)}
.ngn-tab{border:0;background:none;padding:11px 4px;font-weight:600;font-size:.86rem;color:var(--muted);border-bottom:3px solid transparent;line-height:1.2}
.ngn-tab.on{color:var(--teal-deep);border-bottom-color:var(--teal)}
.ngn-pane{padding:12px 14px;max-height:340px;overflow-y:auto}
.ngn-notes{display:flex;flex-direction:column;gap:10px}
.ngn-note{display:flex;flex-direction:column;gap:2px}
.ngn-note b{font-size:.85rem;color:var(--teal-deep)}
.ngn-note p{margin:0;line-height:1.5}
.ngn-scroll{overflow-x:auto}
.ngn-table{border-collapse:collapse;width:100%;font-size:.88rem}
.ngn-table th,.ngn-table td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.ngn-table thead th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.ngn-table tbody th{font-weight:600;white-space:nowrap}
.ngn-table tr.flag td{color:var(--bad);font-weight:600}
.ngn-hl-tag{font-size:.72rem;font-weight:700;color:var(--bad)}
.ngn-orders{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px;line-height:1.45}
.ngn-prompt{font-size:1.1rem;line-height:1.35}
.ngn-hl-box{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.ngn-hl-box p{margin:0;line-height:1.9}
.ngn-hl{display:inline;border:0;background:none;padding:2px 3px;margin:0;font:inherit;color:var(--ink);text-align:left;border-radius:4px;cursor:pointer;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-bottom:1px dashed var(--line)}
.ngn-hl:hover:not(.locked):not(.on){background:var(--mint)}
.ngn-hl.locked{cursor:default}
.ngn-hl:focus-visible{outline:3px solid var(--teal);outline-offset:1px}
.ngn-hl.on{background:var(--hl);border-bottom-color:transparent}
.ngn-hl.hit{background:var(--good-soft);color:var(--good);font-weight:600}
.ngn-hl.missed{background:var(--amber-soft);color:var(--amber);font-weight:600}
.ngn-hl.wrong{background:var(--bad-soft);color:var(--bad);text-decoration:line-through}
.ngn-explain{display:flex;flex-direction:column;gap:10px}
.ngn-x{display:flex;gap:10px;align-items:flex-start}
.ngn-x>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.ngn-x b{font-weight:600}
.ngn-mark{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:700;color:var(--surface)}
.ngn-mark.ok{background:var(--good)} .ngn-mark.no{background:var(--bad)}
.ngn-check{display:flex;gap:12px;align-items:flex-start;width:100%;text-align:left;background:var(--surface);border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;color:var(--ink)}
.ngn-check:hover:not(:disabled){border-color:var(--teal)}
.ngn-check:disabled{cursor:default}
.ngn-check.on{border-color:var(--teal);background:var(--mint)}
.ngn-check.good{border-color:var(--good);background:var(--good-soft)}
.ngn-check.bad{border-color:var(--bad);background:var(--bad-soft)}
.ngn-check.miss{border-color:var(--amber);background:var(--amber-soft)}
.ngn-check.plain{opacity:.9}
.ngn-check:disabled:not(.good):not(.bad):not(.miss):not(.plain){opacity:.5}
.ngn-box{flex:none;width:22px;height:22px;border-radius:6px;border:2px solid var(--muted);display:grid;place-items:center;font-size:.8rem;font-weight:700;margin-top:1px}
.ngn-box.round{border-radius:50%}
.ngn-check.on .ngn-box{background:var(--teal);border-color:var(--teal);color:var(--on-teal)}
.ngn-check-text{display:flex;flex-direction:column;gap:6px;min-width:0}
.ngn-why{line-height:1.45;color:var(--ink)}
.ngn-matrix{display:flex;flex-direction:column;gap:10px}
.ngn-row{border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:10px}
.ngn-row.good{border-color:var(--good)} .ngn-row.bad{border-color:var(--bad)}
.ngn-row-q{display:flex;gap:10px;align-items:flex-start;font-weight:600}
.ngn-cols{display:grid;gap:6px;grid-template-columns:repeat(2,minmax(0,1fr))}
.ngn-cols.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ngn-col{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:9px 6px;font-size:.86rem;font-weight:600;line-height:1.2;min-width:0}
.ngn-col:hover:not(:disabled){border-color:var(--teal)}
.ngn-col:disabled{cursor:default}
.ngn-col.on{background:var(--teal);border-color:var(--teal);color:var(--on-teal)}
.ngn-col.right{border-color:var(--good);background:var(--good-soft);color:var(--good)}
.ngn-col.wrongpick{border-color:var(--bad);background:var(--bad-soft);color:var(--bad)}
.ngn-sentence{line-height:2.4;margin:0;font-size:1.02rem}
.ngn-select{font:inherit;font-size:.95rem;max-width:100%;padding:6px 8px;border-radius:8px;border:1.5px solid var(--teal);background:var(--surface);color:var(--ink);margin:0 2px}
.ngn-select.good{border-color:var(--good);background:var(--good-soft)}
.ngn-select.bad{border-color:var(--bad);background:var(--bad-soft)}
.ngn-blank{display:flex;flex-direction:column;gap:6px}
.ngn-optwhy{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px;font-size:.9rem;line-height:1.4}
.ngn-optwhy li.ok b{color:var(--good)} .ngn-optwhy li.no b{color:var(--bad)}
.ngn-bow-wrap{background:var(--surface);border:1.5px solid var(--teal-soft);border-radius:16px;padding:10px 10px 12px;display:flex;flex-direction:column;gap:6px}
.ngn-bow-wrap.key{border-color:var(--good)}
.ngn-bow-heads{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:8px;text-align:center;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);line-height:1.2}
.ngn-bow{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:center;min-height:250px}
.ngn-bow-art{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.ngn-bow-art .wing{fill:var(--teal-soft);stroke:var(--teal);stroke-width:1.5;vector-effect:non-scaling-stroke;opacity:.85}
.ngn-bow-art .tie{stroke:var(--teal);stroke-width:2;stroke-dasharray:4 4;vector-effect:non-scaling-stroke;opacity:.6}
.ngn-bow-side{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:space-between;align-self:stretch;gap:34px}
.ngn-bow-mid{position:relative;z-index:1}
.ngn-slot{min-height:76px;border:1.5px dashed var(--teal);border-radius:10px;padding:6px 7px;font-size:.78rem;line-height:1.25;color:var(--muted);display:flex;align-items:center;justify-content:center;text-align:center;background:var(--surface);overflow-wrap:break-word;hyphens:auto;min-width:0;width:100%;font-family:inherit}
.ngn-slot.knot{min-height:96px;border-width:2px;font-weight:600;border-radius:14px}
button.ngn-slot{cursor:pointer}
button.ngn-slot:hover{border-color:var(--bad)}
.ngn-slot.filled{border-style:solid;border-color:var(--teal);color:var(--ink);background:var(--surface)}
.ngn-slot.knot.filled{background:var(--teal);color:var(--on-teal)}
.ngn-slot.good,.ngn-slot.knot.good{border-color:var(--good);background:var(--good-soft);color:var(--good)}
.ngn-slot.bad,.ngn-slot.knot.bad{border-color:var(--bad);background:var(--bad-soft);color:var(--bad)}
.ngn-bank h3{font-size:1rem}
.ngn-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ngn-steps li{display:flex;align-items:center;gap:10px;font-weight:600;font-size:.92rem;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 10px}
.ngn-steps .level-badge{width:28px;height:28px;font-size:.9rem}
.li.ngn-sum:hover{background:none}

/* My Program */
.btn-sm{min-height:36px;padding:6px 12px;font-size:.88rem;border-radius:10px}
.prog-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.prog-input{flex:1 1 180px;min-width:0;font:inherit;padding:10px 12px;border-radius:10px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink)}
.prog-input:focus,.prog-select:focus{outline:2px solid var(--teal);outline-offset:1px}
.prog-sem-name{font-weight:600;font-size:1.05rem}
.prog-select{font:inherit;font-size:.92rem;padding:8px 10px;border-radius:10px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);max-width:100%}
.prog-select-sm{padding:6px 8px;font-size:.88rem}
.prog-course{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.prog-confirm{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px}
.prog-semester{gap:10px}
.prog-course > .prog-input{flex:none}

/* Favorites and search */
.star-btn{flex:none;border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:5px 11px;font-weight:600;font-size:.86rem;min-height:34px;white-space:nowrap}
.star-btn:hover{border-color:var(--amber)}
.star-btn[aria-pressed="true"]{background:var(--amber-soft);border-color:color-mix(in srgb,var(--amber) 45%,transparent);color:var(--amber)}
.star-btn span{font-size:1.05rem;line-height:1}
.fav-row{display:flex;align-items:center;gap:10px;padding:10px 12px 10px 16px;border-bottom:1px solid var(--line)}
.fav-row:last-child{border-bottom:0}
.fav-open{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;text-align:left;background:none;border:0;padding:4px 0;color:var(--ink);font:inherit}
.fav-open b{font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.search{position:relative;display:flex;align-items:center}
.search-ic{position:absolute;left:14px;color:var(--muted);font-size:1.2rem;pointer-events:none}
.search-input{width:100%;font:inherit;font-size:1rem;padding:12px 44px 12px 40px;border-radius:14px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);-webkit-appearance:none;appearance:none}
.search-input:focus{outline:2px solid var(--teal);outline-offset:1px}
.search-input::-webkit-search-cancel-button{display:none}
.search-clear{position:absolute;right:6px;width:36px;height:36px;border:0;background:none;color:var(--muted);border-radius:10px;font-size:1rem}
.search-clear:hover{background:var(--mint)}
.search-group{gap:8px}
.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* Sub-topic browsing */
.deck-group{gap:8px}
.chip-group{display:flex;flex-direction:column;gap:6px}
.toprow-head{margin-top:6px}
.toprow-head:first-child{margin-top:0}

/* Exit Exam Prep */
.opt.picked{border-color:var(--teal);background:var(--mint)}
.exit-timer{font-weight:700;font-size:1rem;padding:4px 12px;border-radius:999px;background:var(--mint);color:var(--teal-deep)}
.exit-timer.hurry{background:var(--bad-soft);color:var(--bad)}
.exit-order{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.exit-step{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.exit-step.good{border-color:var(--good);background:var(--good-soft)}
.exit-step.bad{border-color:var(--bad);background:var(--bad-soft)}
.exit-step-n{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--mint);color:var(--teal-deep);font-weight:700;font-size:.85rem}
.exit-step-btns{display:flex;gap:6px;flex:none}
.exit-review{border-bottom:1px solid var(--line)}
.exit-review:last-child{border-bottom:0}
.exit-review .li{border-bottom:0}
.exit-review-body{padding:4px 16px 16px}

/* Career */
.muted-panel{background:var(--bg)}
.star-row{display:flex;flex-wrap:wrap;gap:6px}
.star-chip{font-size:.85rem;padding:4px 10px;border-radius:999px;background:var(--mint);color:var(--teal-deep)}
.career-textarea{width:100%;resize:vertical;line-height:1.45;font-size:.95rem}
.resume-form .prog-input{width:100%}
.plan-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.plan-list li{line-height:1.45}
.plan-tag{margin-right:4px}
.check-list{display:flex;flex-direction:column;gap:6px}
.check-item{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:10px;cursor:pointer;line-height:1.4}
.check-item input{width:18px;height:18px;margin-top:2px;accent-color:var(--teal);flex:none}
.check-item.on{background:var(--good-soft);border-color:color-mix(in srgb,var(--good) 40%,transparent)}
.check-item.on span{color:var(--muted)}
.check-date{flex:0 1 180px}
/* The resume always looks like paper, in light or dark mode */
.resume-sheet{background:#fff;color:#1b1b1b;border:1px solid var(--line);border-radius:6px;padding:28px 26px;font-family:Georgia,'Times New Roman',serif;font-size:.92rem;line-height:1.45}
.resume-sheet .rs-top{text-align:center;border-bottom:2px solid #1b1b1b;padding-bottom:10px;margin-bottom:12px}
.resume-sheet .rs-top h1{font-size:1.6rem;margin:0;color:#1b1b1b;font-family:inherit}
.resume-sheet .rs-top p{margin:4px 0 0;font-size:.85rem}
.resume-sheet .rs-section{margin-bottom:12px}
.resume-sheet h3{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;margin:0 0 4px;color:#1b1b1b;border-bottom:1px solid #bbb;padding-bottom:2px;font-family:inherit}
.resume-sheet p{margin:2px 0}
.resume-sheet .rs-head{font-weight:700}
.resume-sheet ul{margin:2px 0 6px;padding-left:20px}
.resume-sheet .rs-block{margin-bottom:6px}
@media print{
  body.print-only *{visibility:hidden}
  body.print-only .print-area,body.print-only .print-area *{visibility:visible}
  body.print-only .print-area{position:absolute;left:0;top:0;width:100%;border:0;box-shadow:none}
  body.print-only .no-print{display:none}
  body.print-only{background:#fff}
}
.resume-form .prog-input,.career-textarea{flex:none}

/* Audio Mode */
.audio-card{gap:10px}
.audio-card .stem{margin:0}
.audio-opts{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.audio-opts li{padding:8px 12px;border:1px solid var(--line);border-radius:10px;line-height:1.4}
.audio-opts li.right{background:var(--good-soft);border-color:color-mix(in srgb,var(--good) 40%,transparent)}
.audio-opts li.wrong{background:var(--bad-soft);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}
.audio-opts li:has(.audio-opt-btn){padding:0;border:0}
.audio-opt-btn{width:100%;text-align:left;padding:10px 12px;min-height:48px;border:1px solid var(--teal-soft);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;line-height:1.4;cursor:pointer}
.audio-opt-btn:hover{border-color:var(--teal)}
.audio-answer{border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:6px}
.audio-answer p{margin:0;line-height:1.5;white-space:pre-line}
.audio-status{margin:0;text-align:center;font-weight:600;color:var(--teal-deep);min-height:1.5em}
.audio-status.waiting{color:var(--amber)}
.audio-controls{display:grid;grid-template-columns:1fr 1.6fr 1fr;gap:10px}
.audio-btn{flex-direction:column;gap:2px;min-height:72px;padding:10px 6px;font-size:1.3rem;line-height:1}
.audio-btn .small{font-size:.8rem}
.audio-play span:last-child{font-size:1rem}

/* Audio Mode: clear "Listening…" indicator while the microphone is on */
.audio-listen{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:var(--bad-soft);border:2px solid var(--bad);color:var(--ink)}
.audio-listen .grow{display:flex;flex-direction:column;gap:2px;min-width:0}
.audio-listen b{font-size:1.15rem;color:var(--bad)}
.audio-heard{overflow-wrap:anywhere;font-style:italic}
.audio-mic{width:44px;height:44px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:1.4rem;background:var(--surface);animation:audio-pulse 1.2s ease-in-out infinite}
.audio-count{flex:none;font-size:1.8rem;font-weight:700;color:var(--bad);min-width:1.4em;text-align:center}
@keyframes audio-pulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--bad) 55%,transparent)}50%{box-shadow:0 0 0 10px color-mix(in srgb,var(--bad) 0%,transparent)}}
@media (prefers-reduced-motion:reduce){.audio-mic{animation:none}}
.audio-mic-help{font-weight:500;font-size:.9rem}

/* Exam Countdown Planner */
.plan-home{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--surface);border:2px solid var(--teal);border-radius:16px;padding:14px 16px;box-shadow:var(--shadow);color:var(--ink)}
.plan-home .grow-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.plan-home b{font-family:var(--f-display);font-weight:600}
.plan-home .chev{font-size:1.6rem;line-height:1}
.plan-count{flex:none;width:58px;height:58px;border-radius:14px;background:var(--teal);color:var(--on-teal);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05}
.plan-count b{font-size:1.45rem;font-family:var(--f-display)}
.plan-count small{font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.plan-count.near{background:var(--amber-soft);color:var(--amber);border:1.5px solid var(--amber)}
.plan-count.near b:only-child{font-size:1rem}
.plan-hero h1{margin:0}
.plan-hero p{margin:0}
.plan-big{font-family:var(--f-display);font-size:2rem;font-weight:700}
.plan-form{gap:16px}
.plan-field{display:flex;flex-direction:column;gap:6px}
.plan-field .prog-input,.plan-field .prog-select{flex:none;width:100%;box-sizing:border-box}
.bad-text{color:var(--bad)}
.plan-weak{margin:0;padding-left:1.3em;display:flex;flex-direction:column;gap:8px}
.plan-weak li{display:flex;flex-direction:column;gap:2px}
.plan-day.today{border:2px solid var(--teal)}
.plan-items{display:flex;flex-direction:column;gap:8px}
.plan-item{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px}
.plan-item input{width:20px;height:20px;accent-color:var(--teal);flex:none}
.plan-item .grow{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.plan-item.on{background:var(--good-soft);border-color:color-mix(in srgb,var(--good) 40%,transparent)}
.plan-item.on b{text-decoration:line-through;color:var(--muted)}
.plan-item .btn-sm{flex:none}

/* ===== Navigation: 5 tabs. A bottom bar on phones, a side menu on laptops ===== */
.nav-in{grid-template-columns:repeat(5,minmax(0,1fr))}
.nav button{gap:2px;font-size:.72rem;position:relative;min-width:0}
.nav button.on::before{content:'';position:absolute;top:0;left:30%;right:30%;height:3px;border-radius:0 0 3px 3px;background:var(--teal)}
/* Active tab = the small top bar and teal colour only. No box on tap or click; keyboard users still get a clear focus ring. */
.nav button{-webkit-tap-highlight-color:transparent}
.nav button:focus{outline:none}
.nav button:focus-visible{outline:3px solid var(--teal);outline-offset:-3px;border-radius:12px}
.nav-ic{width:24px;height:24px;flex:none}
.nav-label{white-space:nowrap}
.nav-brand{display:none}
@media (min-width:960px){
  body{padding-left:248px}
  .nav{top:0;bottom:0;left:0;right:auto;width:248px;border-top:0;border-right:1px solid var(--line);padding:24px 14px;display:flex;flex-direction:column;gap:26px;overflow-y:auto}
  .nav-brand{display:flex;align-items:center;gap:10px;font-family:var(--f-display);font-weight:600;font-size:1.2rem;color:var(--teal-deep);padding:0 10px}
  .nav-in{display:flex;flex-direction:column;gap:4px;max-width:none;margin:0}
  .nav button{flex-direction:row;justify-content:flex-start;gap:14px;padding:12px 14px;border-radius:12px;font-size:1rem;color:var(--ink)}
  .nav button:hover{background:var(--mint)}
  .nav button.on{background:var(--mint);color:var(--teal-deep)}
  .nav button.on::before{top:10px;bottom:10px;left:0;right:auto;width:4px;height:auto;border-radius:0 4px 4px 0}
  .wrap{max-width:780px;padding-block:32px 48px}
  .topbar .brand{display:none}
  .topbar{justify-content:flex-end}
  .toast{bottom:24px;left:calc(50% + 124px)}
}

/* Study: tools and swipeable rows of round sub-topic icons (the ring shows cards mastered) */
.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (min-width:700px){.tool-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.tool{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px;box-shadow:var(--shadow);color:var(--ink);min-width:0}
.tool:hover{border-color:var(--teal)}
.tool-ic{flex:none;width:40px;height:40px;border-radius:10px;background:var(--mint);color:var(--teal-deep);display:grid;place-items:center}
.tool-ic .nav-ic{width:22px;height:22px}
.tool-text{display:flex;flex-direction:column;min-width:0}
.tool-text{width:100%}
.tool-text b{font-family:var(--f-display);font-weight:600;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tool-text .small{line-height:1.3}
.course-row{display:flex;flex-direction:column;gap:10px}
.course-row-head{display:flex;align-items:flex-end;gap:8px}
.course-row-head .grow{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.course-row-head h2{margin:0;font-size:1.15rem}
.view-all{flex:none;background:none;border:0;color:var(--teal);font-weight:600;font-size:.92rem;padding:6px 2px;white-space:nowrap}
.view-all:hover{text-decoration:underline}
.row-arrows{display:none;gap:6px;flex:none}
@media (hover:hover) and (pointer:fine){.row-arrows{display:flex}}
.row-arrow{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--teal-deep);font-size:1.2rem;line-height:1;display:grid;place-items:center;padding:0}
.row-arrow:hover{border-color:var(--teal)}
.bubble-row{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;margin:0 -16px;padding:4px 16px 10px;scroll-padding-left:16px;scrollbar-width:thin;overscroll-behavior-x:contain}
.bubble{flex:none;width:84px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:0;padding:0;color:var(--ink);text-align:center}
.bubble-ring{width:72px;height:72px;border-radius:50%;padding:4px;background:conic-gradient(var(--teal) calc(var(--p) * 1%), var(--teal-soft) 0);display:grid;place-items:center;transition:transform .15s}
.bubble:hover .bubble-ring{transform:translateY(-2px)}
.bubble:focus-visible{outline:none}
.bubble:focus-visible .bubble-ring{outline:2px solid var(--teal);outline-offset:3px}
.bubble-ring.full{background:var(--good)}
.bubble-ic{width:100%;height:100%;border-radius:50%;background:var(--surface);display:grid;place-items:center;font-size:1.7rem;line-height:1}
.bubble-name{font-size:.8rem;font-weight:600;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bubble-sub{font-size:.72rem;color:var(--muted)}

/* Practise and Me hubs */
.hub-list{display:flex;flex-direction:column;gap:10px}
.hub-card{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 16px;box-shadow:var(--shadow);color:var(--ink)}
.hub-card:hover{border-color:var(--teal)}
.hub-card.hub-main{border:1.5px solid var(--teal-soft);padding:16px}
.hub-card b{font-family:var(--f-display);font-weight:600}
.hub-card .pill{align-self:flex-start;margin-top:4px}
.hub-card .chev{font-size:1.6rem;line-height:1}
.link-btn{background:none;border:0;color:var(--teal);font-weight:600;padding:4px 0}
.score-course{display:flex;flex-direction:column}
.score-topics{margin:4px 0 10px;gap:14px}
.chev.open{transform:rotate(90deg)}
.me-summary{display:flex;flex-direction:column;gap:8px;width:100%;background:none;border:0;padding:0;text-align:left;color:var(--ink)}
.me-summary .stat{display:block}
.me-more{color:var(--teal);font-weight:600}
@media (hover:none){.bubble-row{scrollbar-width:none}.bubble-row::-webkit-scrollbar{display:none}}

/* Clinical Prep Buddy */
.prep-scroll{display:flex;flex-direction:column;gap:12px;max-height:420px;overflow-y:auto;padding-right:2px}
.prep-scroll .check-item span{display:block;line-height:1.35}
.prep-saved{align-items:center}
.prep-saved:hover{background:none}
.prep-open{border:0;background:none;text-align:left;font:inherit;color:inherit;padding:0;cursor:pointer}
.prep-open:hover b{color:var(--teal-deep)}
.prep-sheet{gap:18px}
.prep-sec{gap:12px}
.prep-sec h2{margin:0}
.prep-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.prep-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;break-inside:avoid}
.prep-card h3{margin:0;font-size:1.05rem}
.prep-card ul{margin:0;padding-left:1.2em;display:flex;flex-direction:column;gap:4px;line-height:1.45}
.prep-card p{margin:0;line-height:1.45}
.prep-card-top{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.prep-row{display:flex;flex-direction:column;gap:4px}
.prep-plan{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);padding-top:10px}
.prep-plan:first-of-type{border-top:0;padding-top:0}
.prep-asks{margin:0;padding-left:1.4em;display:flex;flex-direction:column;gap:8px}
.prep-q{width:100%;display:flex;justify-content:space-between;gap:12px;align-items:flex-start;text-align:left;font:inherit;font-weight:600;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;min-height:48px;cursor:pointer;line-height:1.4}
.prep-q:hover{border-color:var(--teal)}
.prep-tap{flex:none;color:var(--teal-deep);font-weight:600}
.prep-ans{display:none;margin:8px 2px 0;padding:10px 14px;border-left:3px solid var(--teal);background:var(--mint);border-radius:0 10px 10px 0;line-height:1.5}
.prep-ask.open .prep-ans{display:block}
.prep-print-only{display:none}
@media print{
  body.print-only .prep-card,body.print-only .prep-q{border-color:#999;background:#fff;color:#111}
  body.print-only .prep-ans{background:#fff;border-left-color:#555;color:#111}
  body.print-only.print-answers .prep-ans{display:block}
  body.print-only:not(.print-answers) .prep-ans{display:none}
  body.print-only .prep-print-only{display:flex}
  body.print-only .prep-sheet .guide-note{display:none}
  body.print-only .prep-cards{grid-template-columns:1fr 1fr}
}

/* Mistake Coach */
.coach-ask{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:14px;border:1.5px dashed var(--teal-soft);background:var(--surface)}
.coach-ask.compact{padding:12px}
.coach-ask .row{flex-wrap:nowrap;align-items:flex-start;gap:10px}
.coach-ask .btn-sm{flex:none}
.coach-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.coach-chip{border-radius:12px;text-align:left;min-height:48px;line-height:1.3}
.coach-tip{margin:0;color:var(--teal-deep);font-weight:600}
.coach-ask p{margin:0}
.coach-table{display:flex;flex-direction:column;gap:10px}
.coach-tr{display:grid;grid-template-columns:minmax(0,1fr) 3.4em 3.4em 3em;gap:8px;align-items:center}
.coach-tr > span:not(:first-child){text-align:right}
.coach-th{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.coach-name{display:flex;flex-direction:column;gap:4px}
.coach-more summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:4px;min-height:32px}
.coach-more summary::-webkit-details-marker{display:none}
.coach-more summary::before{content:'›';display:inline-block;width:1em;color:var(--teal);transition:transform .15s}
.coach-more[open] summary::before{transform:rotate(90deg)}
@media (max-width:380px){.coach-opts{grid-template-columns:1fr}}

/* Appearance switch (Me › Settings): Light / Dark / Auto */
.seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;border-radius:14px;background:var(--mint);border:1px solid var(--line)}
.seg button{border:0;background:none;border-radius:10px;min-height:44px;padding:8px 6px;font-weight:600;color:var(--ink);display:flex;align-items:center;justify-content:center;gap:6px}
.seg button[aria-pressed="true"]{background:var(--teal);color:var(--on-teal);box-shadow:var(--shadow)}
.seg button[aria-pressed="true"]:focus-visible{outline-color:var(--ink)}
.seg button:focus-visible{outline:3px solid var(--teal);outline-offset:-3px}
.seg.seg-5{grid-template-columns:repeat(5,minmax(0,1fr))}
/* Settings and pick-list toggles: when ticked, keep the text full strength (the greyed "done" look is for checklists) */
.check-item.check-toggle.on{background:var(--surface);border-color:var(--teal)}
.check-item.check-toggle.on span{color:var(--ink)}
.check-item.check-toggle.on .muted{color:var(--muted)}
/* Readiness Check and Study Plan */
.opt.picked{border-color:var(--teal);background:var(--mint)}
.opt.picked .letter{background:var(--teal);color:var(--on-teal)}
.ready-card{gap:10px}
.ready-exam{gap:12px;align-items:center}
.ready-exam .grow-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.ready-review .opt{cursor:default}
.ready-trend{display:flex;align-items:flex-end;gap:6px;height:120px;padding-top:6px}
.ready-col{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%}
.ready-stick{flex:1;width:100%;max-width:34px;display:flex;align-items:flex-end;background:var(--mint);border-radius:8px;overflow:hidden}
.ready-stick i{display:block;width:100%;background:var(--teal);border-radius:8px 8px 0 0}
.ready-stick i.good{background:var(--good)} .ready-stick i.amber{background:var(--amber)} .ready-stick i.bad{background:var(--bad)}
.ready-col .small{font-size:.72rem}
.today-plan{display:flex;flex-direction:column;gap:8px}
.plan-item.light{border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.08)}
.plan-item.light.on{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.4)}
.plan-item.light.on b{color:rgba(255,255,255,.75)}
.plan-item.light .muted{color:rgba(255,255,255,.8)}
.plan-item.light .btn-primary{background:#fff;color:#0A5653}
.plan-item.light input{accent-color:#fff}
/* Head-to-Toe guide and Care Plans */
.h2t-sys{gap:0;padding:0;overflow:hidden}
.h2t-head{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:14px 16px;background:none;border:0;color:var(--ink)}
.h2t-head .grow-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.h2t-head .chev{font-size:1.5rem;transition:transform .2s}
.h2t-head .chev.open{transform:rotate(90deg)}
.h2t-ic{flex:none;width:40px;height:40px;border-radius:12px;background:var(--mint);display:grid;place-items:center;font-size:1.3rem}
.h2t-body{padding:0 16px 16px;gap:8px}
.h2t-body h3{margin:6px 0 0}
.h2t-list.good li::marker{color:var(--good)}
.h2t-list.bad li::marker{color:var(--bad)}
.h2t-tip{background:var(--amber-soft);border-radius:12px;padding:10px 12px;margin:4px 0 0}
.care-ints{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:10px}
.care-ints li{display:flex;flex-direction:column;gap:2px}
/* TEAS Prep: reading passages, tables and experiments above a question */
.passage{white-space:pre-line;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--teal);border-radius:12px;padding:12px 14px;line-height:1.55;max-height:46vh;overflow:auto;font-size:.97rem}
/* Interview practice: Practice mode timer and saved STAR stories */
.practice-q{gap:10px}
.practice-timer{font-family:var(--f-display);font-size:2.6rem;font-weight:700;text-align:center;color:var(--teal-deep);padding:6px 0}
.practice-timer.hurry{color:var(--bad)}
.star-story{gap:6px}
/* Crash safety net and the "Leave the test?" box */
.screen-error{align-items:flex-start;gap:12px}
.screen-error h1{margin:0;font-size:1.35rem}
.leave-card{animation:none}
/* Audio lessons */
.al-transcript p{margin:0;line-height:1.7}
.al-s{cursor:pointer;border-radius:6px;transition:background .2s}
.al-s:hover{background:var(--teal-soft)}
.al-past{color:var(--muted)}
.al-now{background:var(--mint);color:var(--ink);box-shadow:0 0 0 3px var(--mint);font-weight:600}
.al-current{border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-soft)}
/* Deep dives */
.dd-body h3{margin:4px 0 6px;font-size:1.02rem}
.dd-body p,.dd-body li{line-height:1.55}
.dd-body ul,.dd-body ol{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:4px}
.dd-summary{font-weight:600;color:var(--teal-deep);margin:0}
.dd-traps{display:flex;flex-direction:column;gap:8px}
.dd-trap{border:1px solid var(--line);border-left:4px solid var(--amber);border-radius:10px;padding:8px 12px;background:var(--surface)}
.dd-trap p{margin:2px 0}
.dd-memory{background:var(--mint);border-radius:12px;padding:8px 12px}
.dd-memory p{margin:0}
.dd-inline{display:flex;flex-direction:column;gap:8px}
.dd-btn{justify-content:flex-start;text-align:left}
.li.locked{opacity:.55;cursor:not-allowed}
/* Launch: Report a problem, notice, install tip */
.report-link{background:none;border:0;padding:4px 2px;color:var(--muted);font:inherit;font-size:.82rem;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.report-link:hover{color:var(--teal)}
.report-card{max-width:440px;width:100%;text-align:left;display:flex;flex-direction:column;align-items:stretch;gap:10px}
.report-card label{align-items:stretch;width:100%}
.report-note{width:100%;box-sizing:border-box;resize:vertical}
.notice-card{max-width:480px;width:100%;text-align:left;display:flex;flex-direction:column;align-items:stretch;gap:10px}
.notice-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;line-height:1.5}
.install-tip{gap:8px;border-color:var(--teal-soft)}
.import-confirm{border:2px solid var(--amber)}
