:root{--bg:#070b14;--bg-raised:#0b1120;--bg-panel:#0d1426;--line:#1b2742;--line-bright:#2a3d66;--cyan:#29c2ff;--cyan-dim:#1378a8;--cyan-glow:#29c2ff24;--amber:#ffb454;--red:#ff5d5d;--green:#3ddc97;--text:#aebad1;--text-bright:#e8eefb;--text-dim:#5b6a8a;--font-display:"Chakra Petch", sans-serif;--font-body:"IBM Plex Sans", sans-serif;--font-mono:"IBM Plex Mono", monospace;--r:4px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background-color:var(--bg);background-image:radial-gradient(ellipse 80% 60% at 50% -10%, #29c2ff12, transparent), linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);color:var(--text);font-family:var(--font-body);background-size:100% 100%,56px 56px,56px 56px;background-attachment:fixed;min-height:100vh;font-size:15px;line-height:1.55}::selection{background:var(--cyan-dim);color:#fff}h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-bright);letter-spacing:.02em}a{color:var(--cyan)}code,pre,.mono{font-family:var(--font-mono)}button{font-family:var(--font-display);cursor:pointer}.shell{max-width:1080px;margin:0 auto;padding:0 24px 80px}.topbar{border-bottom:1px solid var(--line);align-items:center;gap:28px;margin-bottom:32px;padding:18px 0 14px;display:flex}.topbar .logo{font-family:var(--font-display);color:var(--text-bright);letter-spacing:.06em;font-size:20px;font-weight:700;text-decoration:none}.topbar .logo span{color:var(--cyan)}.topbar nav{flex:1;gap:4px;display:flex}.topbar nav a{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);border-radius:var(--r);border:1px solid #0000;padding:7px 14px;font-size:13px;text-decoration:none;transition:color .15s,border-color .15s}.topbar nav a:hover{color:var(--text)}.topbar nav a.active{color:var(--cyan);border-color:var(--line-bright);background:var(--cyan-glow)}.topbar-right{align-items:center;gap:14px;display:flex}.exam-switcher{font-family:var(--font-display);letter-spacing:.06em;color:var(--text);background:var(--bg-raised);border:1px solid var(--line-bright);border-radius:var(--r);max-width:230px;padding:6px 10px;font-size:12px}.exam-switcher:focus{border-color:var(--cyan);outline:none}.nav-badge{background:var(--red);color:#fff;min-width:18px;height:18px;font-family:var(--font-mono);vertical-align:middle;border-radius:9px;justify-content:center;align-items:center;margin-left:8px;padding:0 5px;font-size:11px;display:inline-flex}.btn-ghost{font-family:var(--font-display);letter-spacing:.08em;color:var(--text-dim);border:1px solid var(--line-bright);border-radius:var(--r);background:0 0;padding:4px 12px;font-size:12px}.btn-ghost:hover{color:var(--text-bright);border-color:var(--cyan)}.rating-badge{font-family:var(--font-mono);align-items:baseline;gap:10px;display:flex;position:relative}.rating-badge .label{letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);font-size:10px}.rating-badge .value{color:var(--text-bright);font-size:26px;font-weight:600;transition:color .3s}.rating-badge .value.pass{color:var(--green)}.rating-badge .delta{pointer-events:none;font-size:13px;font-weight:600;animation:1.6s ease-out forwards float-up;position:absolute;top:-14px;right:-8px}.rating-badge .delta.up{color:var(--green)}.rating-badge .delta.down{color:var(--red)}@keyframes float-up{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-18px)}}.panel{background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--r);padding:26px 28px;position:relative}.panel:before,.panel:after{content:"";border:2px solid var(--cyan);opacity:.85;width:14px;height:14px;position:absolute}.panel:before{border-bottom:none;border-right:none;top:-2px;left:-2px}.panel:after{border-top:none;border-left:none;bottom:-2px;right:-2px}.q-meta{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;font-size:11px;display:flex}.q-meta .chip{border:1px solid var(--line-bright);color:var(--text-dim);border-radius:999px;padding:3px 10px}.q-meta .chip.type{color:var(--cyan);border-color:var(--cyan-dim);background:var(--cyan-glow)}.q-stem{color:var(--text-bright);white-space:pre-wrap;margin:0 0 22px;font-size:17px;line-height:1.6}.q-enter{animation:.35s ease-out q-in}@keyframes q-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.opt-list{flex-direction:column;gap:10px;display:flex}.opt{text-align:left;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r);width:100%;color:var(--text);font-family:var(--font-body);align-items:flex-start;gap:14px;padding:13px 16px;font-size:15px;line-height:1.5;transition:border-color .12s,background .12s,transform 60ms;display:flex}.opt:hover{border-color:var(--line-bright)}.opt:active{transform:scale(.995)}.opt .key{font-family:var(--font-mono);color:var(--text-dim);border:1px solid var(--line-bright);border-radius:3px;flex-shrink:0;place-items:center;min-width:24px;height:24px;margin-top:1px;font-size:12px;font-weight:600;display:grid}.opt.selected{border-color:var(--cyan);background:var(--cyan-glow);color:var(--text-bright)}.opt.selected .key{color:var(--cyan);border-color:var(--cyan)}.opt.reveal-correct{border-color:var(--green);background:#3ddc9714}.opt.reveal-wrong{border-color:var(--red);background:#ff5d5d12}.opt .rationale{color:var(--text-dim);margin-top:6px;font-size:13px;display:block}.hot-row{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r);align-items:center;gap:16px;padding:12px 16px;display:flex}.hot-row .txt{flex:1}.hot-row .yn{gap:6px;display:flex}.hot-row .yn button{font-family:var(--font-mono);letter-spacing:.1em;border:1px solid var(--line-bright);color:var(--text-dim);background:0 0;border-radius:3px;padding:6px 16px;font-size:12px;transition:all .12s}.hot-row .yn button.on-yes{border-color:var(--green);color:var(--green);background:#3ddc971a}.hot-row .yn button.on-no{border-color:var(--red);color:var(--red);background:#ff5d5d1a}.drag-item{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r);cursor:grab;-webkit-user-select:none;user-select:none;align-items:center;gap:14px;padding:12px 16px;display:flex}.drag-item:active{cursor:grabbing}.drag-item .grip{color:var(--text-dim);font-family:var(--font-mono);letter-spacing:-2px}.drag-item .pos{font-family:var(--font-mono);color:var(--cyan);min-width:18px;font-size:12px}.drag-item.dragging{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan), 0 8px 28px #00000080;z-index:5}.cli-wrap{border:1px solid var(--line-bright);border-radius:var(--r);overflow:hidden}.cli-head{background:var(--bg-raised);border-bottom:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);align-items:center;gap:8px;padding:8px 14px;font-size:11px;display:flex}.cli-head .dot{background:var(--cyan);width:8px;height:8px;box-shadow:0 0 8px var(--cyan);border-radius:50%}.timer{font-family:var(--font-mono);color:var(--text-dim);align-items:center;gap:8px;font-size:13px;display:flex}.timer .bar{background:var(--line);border-radius:2px;width:90px;height:4px;overflow:hidden}.timer .bar i{background:var(--cyan);height:100%;transition:width 1s linear,background .4s;display:block}.timer.over .bar i{background:var(--amber)}.timer.over{color:var(--amber)}.btn{letter-spacing:.1em;text-transform:uppercase;border-radius:var(--r);border:1px solid var(--cyan);background:var(--cyan);color:#04121d;padding:12px 28px;font-size:14px;font-weight:600;transition:box-shadow .15s,transform 60ms}.btn:hover{box-shadow:0 0 18px #29c2ff73}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.btn.ghost{color:var(--cyan);background:0 0}.btn.subtle{border-color:var(--line-bright);color:var(--text-dim);background:0 0}.btn.subtle:hover{color:var(--text);box-shadow:none}.btn.danger{border-color:var(--red);color:var(--red);background:0 0}.feedback{border-left:3px solid var(--green);background:var(--bg-raised);border-radius:var(--r);margin-top:24px;padding:20px 24px;animation:.3s ease-out q-in}.feedback.wrong{border-left-color:var(--red)}.feedback.partial{border-left-color:var(--amber)}.feedback .verdict{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px;font-size:16px;font-weight:700}.feedback.right .verdict{color:var(--green)}.feedback.wrong .verdict{color:var(--red)}.feedback.partial .verdict{color:var(--amber)}.feedback .score-line{font-family:var(--font-mono);color:var(--text-dim);margin-bottom:14px;font-size:12px}.feedback .explanation{white-space:pre-wrap}.learn-link{font-family:var(--font-mono);color:var(--cyan);border:1px dashed var(--cyan-dim);border-radius:var(--r);align-items:center;gap:8px;padding:7px 12px;font-size:12.5px;text-decoration:none;transition:background .15s;display:inline-flex}.learn-link:hover{background:var(--cyan-glow)}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;background:#03060cc7;place-items:center;animation:.2s ease-out fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{width:min(620px,100vw - 48px);max-height:80vh;overflow-y:auto}.modal textarea{background:var(--bg-raised);border:1px solid var(--line-bright);border-radius:var(--r);width:100%;min-height:110px;color:var(--text-bright);font-family:var(--font-body);resize:vertical;padding:12px;font-size:14px}.modal textarea:focus{border-color:var(--cyan);outline:none}.verdict-tag{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;border-radius:3px;margin-bottom:14px;padding:4px 14px;font-size:13px;font-weight:700;display:inline-block}.verdict-tag.valid{color:var(--green);border:1px solid var(--green)}.verdict-tag.flawed{color:var(--amber);border:1px solid var(--amber)}.verdict-tag.wrong{color:var(--red);border:1px solid var(--red)}.spinner{border:3px solid var(--line-bright);border-top-color:var(--cyan);border-radius:50%;width:28px;height:28px;margin:18px auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.dash-grid{grid-template-columns:1fr 1fr;gap:22px;display:grid}.dash-grid .wide{grid-column:1/-1}@media (width<=860px){.dash-grid{grid-template-columns:1fr}}.lab-grid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px;display:grid}.stat-row{flex-wrap:wrap;gap:22px;margin-bottom:22px;display:flex}.stat{flex:1;min-width:150px}.stat .num{font-family:var(--font-mono);color:var(--text-bright);font-size:34px;font-weight:600;line-height:1.1}.stat .num.pass{color:var(--green)}.stat .num.fail{color:var(--amber)}.stat .cap{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);margin-top:6px;font-size:10px}.skill-bar-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(180px,1fr) 2fr 60px;align-items:center;gap:14px;padding:8px 0;font-size:13px;display:grid}.skill-bar-row:last-child{border-bottom:none}.skill-bar-row .track{background:var(--line);border-radius:4px;height:7px;position:relative;overflow:hidden}.skill-bar-row .track i{background:linear-gradient(90deg, var(--cyan-dim), var(--cyan));border-radius:4px;height:100%;display:block}.skill-bar-row.weak .track i{background:linear-gradient(90deg, #8a4a2c, var(--amber))}.skill-bar-row .val{font-family:var(--font-mono);text-align:right;color:var(--text-dim);font-size:12px}.targeting-banner{font-family:var(--font-mono);color:var(--amber);border-radius:var(--r);background:#ffb4540f;border:1px solid #ffb45459;align-items:center;gap:12px;margin-bottom:22px;padding:10px 16px;font-size:13px;display:flex}.targeting-banner .pulse{background:var(--amber);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 #ffb45480}50%{box-shadow:0 0 0 6px #ffb45400}}.baseline-banner{font-family:var(--font-mono);letter-spacing:.06em;color:var(--cyan);border:1px solid var(--cyan-dim);background:var(--cyan-glow);border-radius:var(--r);justify-content:space-between;align-items:center;margin-bottom:20px;padding:10px 16px;font-size:12.5px;display:flex}.baseline-banner .prog{gap:3px;display:flex}.baseline-banner .prog i{border:1px solid var(--cyan-dim);border-radius:1px;width:8px;height:8px}.baseline-banner .prog i.done{background:var(--cyan);border-color:var(--cyan)}.empty-state{text-align:center;color:var(--text-dim);padding:60px 30px}.empty-state h2{color:var(--text)}.empty-state code{background:var(--bg-raised);border:1px solid var(--line);border-radius:3px;padding:2px 8px;font-size:13px}.row-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px;display:flex}.scenario{background:var(--bg-raised);border:1px solid var(--line);border-left:3px solid var(--cyan-dim);border-radius:var(--r);white-space:pre-wrap;margin-bottom:24px;padding:18px 22px;font-size:14.5px}.subq{border-top:1px dashed var(--line-bright);margin-top:20px;padding-top:20px}.subq h4{letter-spacing:.08em;margin:0 0 14px;font-size:14px}
