/* ---- MDG Quest additions (sibling of MERN Quest) ---- */
:root{ --ok:#4CC38A; --ok-dim:#1E4033; }
.opt.right{border-color:var(--ok);background:var(--ok-dim)}
.opt.right .mk{background:var(--ok);border-color:var(--ok);color:#04120B}
.qz.ok{border-color:var(--ok);background:rgba(76,195,138,.05)}
.brand b{color:var(--acc)}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 var(--sp4);border-bottom:1px solid var(--line);padding-bottom:var(--sp3)}
.tab{padding:7px 14px;border-radius:99px;border:1px solid var(--line);background:var(--card);color:var(--txt-2);font-size:.82rem;font-weight:600;cursor:pointer}
.tab[aria-selected="true"]{background:var(--acc-dim);border-color:var(--acc);color:var(--txt)}
.tab .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok);margin-left:6px;vertical-align:middle}
.lesson{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);padding:var(--sp5);margin-bottom:var(--sp3)}
.lesson.read{border-color:var(--ok-dim)}
.lesson h3{margin-bottom:var(--sp3);display:flex;gap:10px;align-items:center}
.lesson ul{margin:6px 0 0 18px;display:grid;gap:5px;font-size:.88rem;color:var(--txt-2);line-height:1.55}
.lesson li b{color:var(--txt)}
.lesson .blk{margin-top:var(--sp4)}
.lesson .blk-t{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--txt-3)}
.lesson .gotcha{margin-top:var(--sp4);border-left:3px solid var(--warn);background:var(--warn-dim);padding:10px 14px;border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:.84rem;color:var(--txt)}
.lesson .src{margin-top:var(--sp3);font-size:.72rem;color:var(--txt-3)}
.kv{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.kv code{background:var(--card-2);border:1px solid var(--line);padding:2px 7px;border-radius:5px;font-size:.76rem;color:var(--info)}
/* flashcards */
.fc-wrap{perspective:1200px;max-width:640px;margin:0 auto}
.fc{position:relative;min-height:230px;cursor:pointer;transform-style:preserve-3d;transition:transform 450ms cubic-bezier(.2,.7,.3,1)}
.fc.flip{transform:rotateY(180deg)}
.fc-face{position:absolute;inset:0;backface-visibility:hidden;border:1px solid var(--line-2);border-radius:var(--r-lg);background:linear-gradient(150deg,var(--card),var(--card-2));display:grid;place-items:center;padding:var(--sp6);text-align:center;font-size:1.02rem;line-height:1.55}
.fc-back{transform:rotateY(180deg);border-color:var(--acc);font-size:.92rem;color:var(--txt-2)}
.fc-face small{position:absolute;top:12px;left:16px;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--txt-3);font-weight:800}
html[data-motion="off"] .fc.flip .fc-front{display:none}
html[data-motion="off"] .fc.flip{transform:none}
html[data-motion="off"] .fc.flip .fc-back{transform:none}
/* modules map */
.mods{display:grid;gap:var(--sp3)}
.mod{display:grid;grid-template-columns:auto 1fr auto;gap:var(--sp4);align-items:center;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);padding:var(--sp4) var(--sp5);color:var(--txt);text-decoration:none;transition:var(--t)}
.mod:hover:not(.lock){border-color:var(--line-2);transform:translateY(-2px);text-decoration:none}
.mod.lock{opacity:.4;cursor:not-allowed}
.mod.cur{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-glow)}
.mod.done{border-color:var(--ok)}
.mod-ic{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:1.4rem;background:var(--card-2);border:1px solid var(--line)}
.mod.done .mod-ic{background:var(--ok-dim);border-color:transparent}
.mod-t{font-weight:700;font-size:.98rem}
.mod-m{font-size:.76rem;color:var(--txt-3);margin-top:2px}
.weight{font-weight:800;font-size:1.05rem;color:var(--gold);text-align:right;line-height:1.1}
.weight u{display:block;text-decoration:none;font-size:.58rem;letter-spacing:.12em;color:var(--txt-3)}
.mock-card{border:1px solid var(--gold);background:linear-gradient(120deg,#1E1A10,#18202E);border-radius:var(--r-lg);padding:var(--sp5)}
/* exam */
.timer{font-variant-numeric:tabular-nums;font-weight:800;font-size:1.1rem}
.timer.low{color:var(--bad)}
.qnav{display:flex;flex-wrap:wrap;gap:5px;margin-top:var(--sp3)}
.qnav button{width:32px;height:30px;border-radius:7px;border:1px solid var(--line);background:var(--card);font-size:.72rem;color:var(--txt-2);font-weight:700}
.qnav button.ans{background:var(--info-dim);border-color:var(--info);color:var(--txt)}
.qnav button.cur{outline:2px solid var(--acc)}
.qnav button.flag{border-color:var(--warn)}
.qnav button.r{background:var(--ok-dim);border-color:var(--ok)}
.qnav button.w{background:var(--bad-dim);border-color:var(--bad)}
.note2{display:block;margin-top:8px;font-size:.78rem;color:var(--warn);font-weight:700}
.big{font-size:2.6rem;font-weight:800;letter-spacing:-.03em;line-height:1}
.pass{color:var(--ok)} .fail{color:var(--bad)}
table.tbl{width:100%;border-collapse:collapse;font-size:.84rem}
table.tbl th,table.tbl td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}
table.tbl th{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--txt-3)}
.chk{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:6px;cursor:pointer;font-size:.86rem;background:var(--card)}
.chk input{margin-top:3px;accent-color:var(--acc)}
.chk.on{border-color:var(--ok);background:var(--ok-dim)}
.prompt{border:1px solid var(--line);border-radius:var(--r);padding:var(--sp4);margin-bottom:var(--sp3);background:var(--bg-2)}
.prompt h4{font-size:.92rem;margin-bottom:8px}
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.fact{border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;background:var(--bg-2)}
.fact b{display:block;font-size:1.05rem}
.fact u{text-decoration:none;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--txt-3);font-weight:700}
.callout{border:1px solid var(--info);background:var(--info-dim);border-radius:var(--r);padding:12px 14px;font-size:.84rem;line-height:1.55}
textarea.fld{width:100%;min-height:110px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--txt);padding:10px;font:inherit;font-size:.86rem}
@media (max-width:768px){ .mod{grid-template-columns:auto 1fr;padding:var(--sp4)} .mod .weight{grid-column:2;text-align:left} .fc{min-height:260px} .fc-face{padding:var(--sp5)} }
.opt.sel{border-color:var(--acc);background:var(--acc-dim);box-shadow:0 0 0 1px var(--acc) inset}
.opt.sel .mk{background:var(--acc);border-color:var(--acc);color:#04121C}
