:root{
  --bg:#F3F5F8; --surface:#FFFFFF; --surface-2:#EAEEF3; --text:#1A2027; --muted:#5D6873; --border:#D6DCE4;
  --accent:#1C7A5C; --accent-ink:#FFFFFF; --accent-soft:#E2F1EB;
  --mark:#B5791A; --mark-soft:#FBEFD6;
  --ok:#25784A; --ok-soft:#DDF1E4; --bad:#B4261F; --bad-soft:#F9E0DE;
  --shadow:0 1px 2px rgba(20,30,40,.06),0 4px 14px rgba(20,30,40,.06);
  --radius:10px;
  --font:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0F1418; --surface:#171D23; --surface-2:#1F2730; --text:#E5EAEF; --muted:#98A4B0; --border:#2B3540;
    --accent:#55C59C; --accent-ink:#0B1A15; --accent-soft:#173A2F;
    --mark:#E0A63A; --mark-soft:#3A2C10;
    --ok:#5CC48A; --ok-soft:#153323; --bad:#F07A72; --bad-soft:#3E1917;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 4px 14px rgba(0,0,0,.35);
  }
}
:root[data-theme="dark"]{
  --bg:#0F1418; --surface:#171D23; --surface-2:#1F2730; --text:#E5EAEF; --muted:#98A4B0; --border:#2B3540;
  --accent:#55C59C; --accent-ink:#0B1A15; --accent-soft:#173A2F;
  --mark:#E0A63A; --mark-soft:#3A2C10;
  --ok:#5CC48A; --ok-soft:#153323; --bad:#F07A72; --bad-soft:#3E1917;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 4px 14px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:15.5px;line-height:1.55;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit}
h1,h2,h3{margin:0;text-wrap:balance;line-height:1.2}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.app{min-height:100vh;display:flex;flex-direction:column}
.security-watermark{position:fixed;inset:0;z-index:19;pointer-events:none;display:grid;grid-template-columns:repeat(3,1fr);align-content:space-evenly;overflow:hidden;opacity:.028;transform:rotate(-18deg) scale(1.12);transform-origin:center;color:var(--text);font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.04em}
.security-watermark span{white-space:nowrap;text-align:center;padding:64px 12px}
.content,.nav{-webkit-user-select:none;user-select:none}
input,select,button{-webkit-user-select:auto;user-select:auto}

/* top bar */
.top{position:sticky;top:0;z-index:20;background:var(--surface);border-bottom:1px solid var(--border);padding:10px 18px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.platform-brand{display:inline-flex;align-items:center;gap:9px;color:var(--text);text-decoration:none;font-weight:800;letter-spacing:-.025em;white-space:nowrap}
.platform-brand:hover .platform-name{color:var(--accent)}
.platform-mark{width:32px;height:32px;flex:none;border-radius:9px;background:#F6F5F0;padding:3px;box-shadow:inset 0 0 0 1px rgba(20,24,26,.08)}
.platform-name{font-size:15px;transition:color .12s}
.platform-name span{color:#1C7A5C}
.top-divider{width:1px;height:28px;background:var(--border);flex:none}
.brand{display:flex;align-items:baseline;gap:10px}
.brand .code{font-family:var(--mono);font-weight:600;font-size:17px;color:var(--accent);letter-spacing:.02em}
.brand .name{font-weight:600;font-size:14px;color:var(--muted)}
.top .spacer{flex:1}
.theme-switch{display:inline-flex;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);padding:2px}
.theme-switch button{display:inline-flex;align-items:center;gap:5px;border:0;border-radius:999px;background:transparent;color:var(--muted);padding:4px 9px;cursor:pointer;font-size:12px;font-weight:600}
.theme-switch button:hover{color:var(--text)}
.theme-switch button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}
.theme-switch button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--surface-2);font-size:12.5px;color:var(--muted);font-weight:500;letter-spacing:.02em;text-transform:uppercase}
.pill b{color:var(--text);font-family:var(--mono);font-weight:600;text-transform:none;letter-spacing:0}
.seg{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}
.seg button{background:transparent;border:0;padding:6px 12px;cursor:pointer;font-size:13px;font-weight:500;color:var(--muted)}
.seg button.on{background:var(--accent);color:var(--accent-ink)}
.seg button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.btn{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:8px 14px;cursor:pointer;font-weight:500;font-size:14px;display:inline-flex;align-items:center;gap:8px;transition:background .12s,border-color .12s}
.btn:hover{background:var(--surface-2)}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.primary:hover{filter:brightness(1.07)}
.btn.ghost{border-color:transparent;background:transparent}
.btn.ghost:hover{background:var(--surface-2)}
.btn.mark.on{background:var(--mark-soft);border-color:var(--mark);color:var(--mark)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn.sm{padding:5px 10px;font-size:13px}
.access-banner{border-bottom:1px solid var(--border);background:var(--surface);color:var(--muted);padding:8px 16px;font-size:14px}
.access-banner a,.access-banner button{color:var(--text);font-weight:500;text-decoration:underline;text-underline-offset:2px}
.access-banner button{margin-left:12px;border:0;background:transparent;cursor:pointer}

/* layout */
.main{flex:1;display:grid;grid-template-columns:260px 1fr;}
.main.solo{grid-template-columns:1fr}
.main{gap:0;max-width:1240px;width:100%;margin:0 auto}
.nav{border-right:1px solid var(--border);padding:16px 14px;position:sticky;top:57px;height:calc(100vh - 57px);overflow:auto;background:var(--bg)}
.nav h3{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 10px;font-weight:600}
.grid{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}
.grid button{aspect-ratio:1;border:1px solid var(--border);background:var(--surface);border-radius:6px;font-family:var(--mono);font-size:12px;cursor:pointer;position:relative;padding:0;transition:transform .08s}
.grid button:hover{transform:translateY(-1px)}
.grid button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.grid button.cur{outline:2px solid var(--accent);outline-offset:1px;font-weight:600}
.grid button.ans{background:var(--accent-soft);border-color:var(--accent)}
.grid button.ok{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}
.grid button.bad{background:var(--bad-soft);border-color:var(--bad);color:var(--bad)}
.grid button.lock{color:var(--muted);background:var(--surface-2);font-size:11px}
.grid button.mk::after{content:"";position:absolute;top:3px;right:3px;width:6px;height:6px;border-radius:50%;background:var(--mark)}
.legend{margin-top:14px;display:grid;gap:5px;font-size:12px;color:var(--muted)}
.legend span{display:flex;align-items:center;gap:8px}
.legend i{width:12px;height:12px;border-radius:3px;border:1px solid var(--border);background:var(--surface);display:inline-block}
.legend i.ans{background:var(--accent-soft);border-color:var(--accent)}
.legend i.ok{background:var(--ok-soft);border-color:var(--ok)}
.legend i.bad{background:var(--bad-soft);border-color:var(--bad)}
.legend i.mk{position:relative}
.legend i.mk::after{content:"";position:absolute;top:1px;right:1px;width:5px;height:5px;border-radius:50%;background:var(--mark)}
.navfoot{margin-top:16px;display:grid;gap:8px}
.navfoot .btn{justify-content:center}
.btn.danger{color:var(--bad);border-color:var(--border)}
.btn.danger:hover{border-color:var(--bad);background:var(--bad-soft)}

.content{padding:22px 26px 60px;min-width:0}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 26px}
.qhead{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.qnum{font-family:var(--mono);font-size:13px;color:var(--muted)}
.qnum b{color:var(--text);font-size:18px;font-weight:600}
.dom{font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:3px 8px;border:1px solid var(--border);border-radius:5px}
.qtype{font-size:11.5px;letter-spacing:.04em;color:var(--accent);background:var(--accent-soft);padding:3px 8px;border-radius:5px;font-weight:600}
.stem{font-size:16px;line-height:1.6;max-width:72ch}
.stem .hint{color:var(--muted);font-size:13.5px;margin-top:6px}
.shot{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:14px 16px;margin:14px 0;font-size:14px;line-height:1.55;max-width:60ch}
.shot .numbox{border:2px solid var(--accent);border-radius:8px;padding:10px;color:var(--muted);max-width:260px;text-align:center;font-size:13px;margin-top:6px}
.shot .blue{color:var(--accent);font-weight:600;font-size:12px}
.shot .chk{color:var(--ok);font-weight:700}
.shot .unchk{color:var(--muted)}
table.ex{border-collapse:collapse;width:100%;margin-top:8px;font-size:13px}
table.ex th,table.ex td{border-bottom:1px solid var(--border);padding:5px 8px;text-align:left;vertical-align:top}
table.ex th{font-weight:600;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}
table.ex td:last-child{font-family:var(--mono);white-space:nowrap}
.exwrap{overflow-x:auto}

.answers{margin-top:18px;display:grid;gap:8px}
.opt{display:flex;gap:12px;align-items:flex-start;padding:11px 14px;border:1px solid var(--border);border-radius:8px;cursor:pointer;background:var(--surface);transition:border-color .12s,background .12s}
.opt:hover{background:var(--surface-2)}
.opt input{margin:4px 0 0;accent-color:var(--accent);flex:none}
.opt .l{font-family:var(--mono);color:var(--muted);font-size:13px;min-width:18px;padding-top:2px}
.opt.sel{border-color:var(--accent);background:var(--accent-soft)}
.opt.ok{border-color:var(--ok);background:var(--ok-soft)}
.opt.bad{border-color:var(--bad);background:var(--bad-soft)}
.opt.miss{border-color:var(--ok);background:var(--ok-soft)}
.locked .opt{cursor:default}
.exams{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-top:22px}
.exam{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px 20px;cursor:pointer;display:flex;flex-direction:column;gap:6px;font:inherit;color:inherit;transition:border-color .15s,transform .15s}
.exam:hover{border-color:var(--accent);transform:translateY(-1px)}
.exam .ecode{font-family:var(--mono);font-weight:700;color:var(--accent);font-size:20px;letter-spacing:.02em}
.exam .etitle{font-weight:600;font-size:16px;line-height:1.3}
.exam .edesc{color:var(--muted);font-size:13.5px;line-height:1.45}
.exam .emeta{margin-top:6px;font-size:13px}
.exam .sv{font-size:12.5px;color:var(--ok);font-weight:600}.exam .sv.muted{color:var(--muted);font-weight:500}
details.case{border:1px solid var(--border);border-radius:10px;background:var(--surface-2);margin:0 0 14px}
details.case summary{cursor:pointer;padding:10px 14px;font-weight:600;font-size:14px;color:var(--accent)}
details.case .casebody{padding:4px 16px 14px;font-size:14.5px;line-height:1.55;white-space:pre-line;max-height:420px;overflow:auto;border-top:1px solid var(--border)}
.opt .txt{display:flex;flex-direction:column;gap:3px}
.why{font-size:13px;line-height:1.45;color:var(--muted)}
.opt.ok .why,.opt.miss .why{color:var(--ok)}
.opt.bad .why{color:var(--bad)}
.yn .why{grid-column:1/-1;margin:-6px 0 4px;padding:0 0 8px;border-bottom:1px solid var(--border)}
.locked .yn .st{border-bottom:0}
.yn .why.ok{color:var(--ok)} .yn .why.bad{color:var(--bad)}
.ddwhy{display:grid;gap:3px;margin:2px 0 4px 4px;font-size:13px;line-height:1.45}
.ddwhy div{display:flex;gap:8px;align-items:baseline}
.ddwhy i{font-style:normal;font-family:var(--mono);flex:none;width:14px}
.ddwhy .o{color:var(--ok)} .ddwhy .x{color:var(--muted)} .ddwhy .x.chosen{color:var(--bad)}

.yn{display:grid;grid-template-columns:1fr auto;gap:8px 14px;align-items:center}
.yn .st{padding:10px 0;border-bottom:1px solid var(--border);font-size:15px}
.yn .ctl{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;align-self:center}
.yn .ctl button{border:0;background:transparent;padding:7px 16px;cursor:pointer;font-weight:600;font-size:13px;color:var(--muted);min-width:64px}
.yn .ctl button.on{background:var(--accent);color:var(--accent-ink)}
.yn .ctl button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.yn .ctl.ok button.on{background:var(--ok);color:#fff}
.yn .ctl.bad button.on{background:var(--bad);color:#fff}
.yn .ctl.bad button.should{background:transparent;color:var(--ok);box-shadow:inset 0 0 0 3px var(--ok);border-radius:8px}
.yn .ynh{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);text-align:center}

.dd{display:grid;gap:14px}
.ddrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;font-size:15.5px;line-height:1.6}
.ddrow select{font:inherit;font-size:14.5px;padding:7px 34px 7px 10px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);cursor:pointer;max-width:100%;appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 16px) 55%,calc(100% - 11px) 55%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.ddrow select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.ddrow select.ok{border-color:var(--ok);background-color:var(--ok-soft)}
.ddrow select.bad{border-color:var(--bad);background-color:var(--bad-soft)}
.ddrow .lbl{font-weight:600}
.ddrow .should{font-size:13.5px;color:var(--ok);font-weight:600;background:var(--ok-soft);border:1px solid var(--ok);border-radius:7px;padding:5px 10px}

.dragq{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(280px,1.25fr);gap:18px;align-items:start}
.dragbank,.dragtargets{border:1px solid var(--border);border-radius:12px;background:var(--surface-2);padding:14px;display:grid;gap:9px}
.dragtitle{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700;margin-bottom:2px}
.dragtoken,.dropzone{font:inherit;text-align:left;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);padding:10px 12px;min-height:44px}
.dragtoken{cursor:grab;box-shadow:0 1px 2px rgba(0,0,0,.18);transition:border-color .12s,transform .12s,background .12s}
.dragtoken:hover,.dragtoken.active{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}
.dragtoken:active{cursor:grabbing}.dragtoken[disabled]{cursor:default;opacity:.72}
.dragrow{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(160px,1fr);gap:8px 12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--border)}
.dragrow:last-of-type{border-bottom:0}.draglabel{font-weight:600;font-size:14px;line-height:1.4}
.dropzone{cursor:pointer;border-style:dashed;color:var(--muted);transition:border-color .12s,background .12s,transform .12s}
.dropzone.over{border-color:var(--accent);background:var(--accent-soft);transform:scale(1.01)}
.dropzone.filled{border-style:solid;border-color:var(--accent);color:var(--text);background:var(--accent-soft)}
.dropzone.ok{border-color:var(--ok);background:var(--ok-soft)}.dropzone.bad{border-color:var(--bad);background:var(--bad-soft)}
.dragcorrect{grid-column:2;color:var(--ok);font-size:13px;font-weight:600}.dragtargets .ddwhy{grid-column:1/-1}

.actions{margin-top:20px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.actions .spacer{flex:1}
.verdict{margin-top:18px;padding:12px 16px;border-radius:8px;font-weight:600;display:flex;gap:10px;align-items:center}
.verdict.ok{background:var(--ok-soft);color:var(--ok)}
.verdict.bad{background:var(--bad-soft);color:var(--bad)}
.verdict.part{background:var(--mark-soft);color:var(--mark)}
.expl{margin-top:14px;padding:16px 18px;border-left:3px solid var(--accent);background:var(--surface-2);border-radius:0 8px 8px 0;font-size:14.5px;line-height:1.6;max-width:72ch}
.expl .refs{margin-top:10px;padding-top:8px;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:13px}
.expl .refs span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}
.expl .refs a{color:var(--accent);text-decoration:none;border:1px solid var(--border);border-radius:6px;padding:3px 9px;background:var(--surface)}
.expl .refs a:hover{border-color:var(--accent)}
.expl h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:600}
.note{margin-top:10px;padding:12px 16px;border-left:3px solid var(--mark);background:var(--mark-soft);border-radius:0 8px 8px 0;font-size:14px;line-height:1.55;max-width:72ch}
.note h4{margin:0 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--mark);font-weight:600}

/* start + results */
.hero{max-width:720px;margin:30px auto 0}
.hero h1{font-size:30px;font-weight:700;letter-spacing:-.01em}
.hero h1 .code{font-family:var(--mono);color:var(--accent)}
.hero p{color:var(--muted);max-width:60ch}
.original-content-note{margin:14px 0 4px;max-width:68ch;border-left:3px solid var(--accent);border-radius:0 8px 8px 0;background:var(--accent-soft);padding:11px 14px;color:var(--muted);font-size:13px;line-height:1.5}
.original-content-note b{color:var(--text)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:22px 0}
.stat{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 14px}
.stat .k{font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.stat .v{font-family:var(--mono);font-size:24px;font-weight:600;margin-top:2px}
.stat .v small{font-size:13px;color:var(--muted);font-weight:400}
.modes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}
.mode{position:relative;border:1px solid var(--border);border-radius:10px;padding:16px 18px;background:var(--surface);cursor:pointer;text-align:left;transition:border-color .12s,box-shadow .12s,background .12s}
.mode:hover{border-color:var(--accent);box-shadow:var(--shadow)}
.mode:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mode.selected{border:2px solid var(--accent);padding:15px 17px;background:var(--accent-soft);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
.mode.selected::after{content:'✓ Selected';position:absolute;top:14px;right:16px;color:var(--accent);font-size:12px;font-weight:700}
.mode h3{font-size:16px;margin-bottom:6px}
.mode p{font-size:13.5px;color:var(--muted);margin:0}
.mode .tag{display:inline-block;font-family:var(--mono);font-size:11px;color:var(--accent);margin-bottom:8px;letter-spacing:.04em}
.opts{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px;font-size:14px;color:var(--muted)}
.opts label{display:flex;align-items:center;gap:7px;cursor:pointer}
.opts input{accent-color:var(--accent)}
.start-mode{width:100%;margin-top:16px;min-height:48px;font-size:15px;font-weight:700}
.resume{margin-top:18px;padding:14px 16px;border:1px dashed var(--accent);border-radius:8px;background:var(--accent-soft);display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.resume .t{flex:1;font-size:14px}
.bar{height:10px;background:var(--surface-2);border-radius:999px;overflow:hidden;position:relative}
.bar i{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .3s}
.bar .th{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--mark)}
.doms{display:grid;gap:12px;margin-top:18px}
.domrow{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:center}
.domrow .n{font-size:14px}
.domrow .n small{display:block;color:var(--muted);font-size:12px}
.domrow .v{font-family:var(--mono);font-size:14px}
.domrow .bar{grid-column:1/-1}
.score{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.score .big{font-family:var(--mono);font-size:56px;font-weight:600;letter-spacing:-.02em;line-height:1}
.score .pass{font-weight:700;padding:6px 12px;border-radius:999px}
.score .pass.ok{background:var(--ok-soft);color:var(--ok)}
.score .pass.bad{background:var(--bad-soft);color:var(--bad)}
.wronglist{margin-top:20px;display:grid;gap:6px}
.wronglist button{text-align:left;border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:9px 12px;cursor:pointer;display:flex;gap:10px;align-items:baseline;font-size:14px}
.wronglist button:hover{background:var(--surface-2)}
.wronglist .n{font-family:var(--mono);color:var(--bad);font-weight:600;min-width:34px}
.wronglist .s{color:var(--muted);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.section-t{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:26px 0 10px;font-weight:600}
.hidden{display:none!important}
.navtoggle{display:none}
@media (max-width:860px){
  .main{grid-template-columns:1fr}
  .nav{position:fixed;left:0;right:0;bottom:0;top:auto;height:auto;max-height:62vh;border-right:0;border-top:1px solid var(--border);box-shadow:0 -8px 24px rgba(0,0,0,.15);transform:translateY(100%);transition:transform .2s;z-index:30;background:var(--surface)}
  .nav.open{transform:none}
  .grid{grid-template-columns:repeat(9,1fr)}
  .navtoggle{display:inline-flex}
  .content{padding:16px 14px 90px}
  .card{padding:16px}
  .modes{grid-template-columns:1fr}
  .top{padding:8px 12px}
  .platform-name{display:none}
  .top-divider{height:24px}
  .brand .name{display:none}
  .yn{grid-template-columns:1fr}
  .yn .ctl{justify-self:start;margin-bottom:6px}
  .dragq{grid-template-columns:1fr}.dragrow{grid-template-columns:1fr}.dragcorrect{grid-column:1}
  .yn .ynh{display:none}
}
@media print{
  body *{visibility:hidden!important}
  body::before{content:"Printing licensed ExamIT Lab content is disabled.";visibility:visible!important;position:fixed;inset:0;display:grid;place-items:center;background:#fff;color:#111;font:700 20px system-ui}
}
@media (max-width:560px){
  .top{gap:8px}
  .top-divider{display:none}
  .platform-mark{width:29px;height:29px}
  .brand .code{font-size:15px}
  .pill{padding:4px 8px}
  #pillMode{display:none}
  .theme-label{display:none}
  .theme-switch button{padding:4px 8px}
}
@media (prefers-reduced-motion: reduce){*{transition:none!important}}
