:root{--bg:#07111f;--panel:#101c2d;--panel2:#13243a;--text:#f6f8fb;--muted:#9eb0c7;--accent:#55d6a8;--warn:#ffcc66;--danger:#ff7a7a;--line:#263a52;--blue:#7eb8ff}
*{box-sizing:border-box}
html,body{margin:0;background:linear-gradient(180deg,#07111f,#0c1726 40%,#0a1320);color:var(--text);font-family:ui-rounded,-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;min-height:100%}
body{padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
button,select{font:inherit}
a{color:var(--blue)}
.app-header{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:rgba(7,17,31,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.06)}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:11px}
.app-header h1{font-size:20px;margin:1px 0}
.shell{max-width:760px;margin:0 auto;padding:18px}
.card{background:linear-gradient(160deg,var(--panel),#0d1928);border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:0 14px 35px rgba(0,0,0,.18);margin-bottom:16px}
.card p{line-height:1.5}
.hero{display:flex;justify-content:space-between;gap:18px;align-items:center}
.hero h2{font-size:31px;line-height:1.05;margin:12px 0 8px}
.hero p{color:var(--muted);margin:0;line-height:1.45}
.pill{display:inline-block;background:rgba(85,214,168,.12);color:var(--accent);border:1px solid rgba(85,214,168,.24);padding:6px 9px;border-radius:999px;font-size:12px}
.readiness-ring{width:105px;height:105px;border:10px solid #1e3248;border-top-color:var(--accent);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 auto}
.readiness-ring strong{font-size:26px}.readiness-ring span{font-size:10px;color:var(--muted)}
.bank-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.mini-stat{border:1px solid var(--line);background:rgba(16,28,45,.75);border-radius:17px;padding:14px;text-align:center}
.mini-stat strong{display:block;font-size:24px}.mini-stat span{font-size:11px;color:var(--muted)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.mode-card{min-height:132px;text-align:left;border:1px solid var(--line);background:linear-gradient(145deg,var(--panel2),#0e1a2a);color:var(--text);border-radius:20px;padding:17px;display:flex;flex-direction:column;gap:7px;cursor:pointer}
.mode-card:active{transform:scale(.985)}.mode-card .icon{font-size:25px}.mode-card strong{font-size:16px}.mode-card small{color:var(--muted);line-height:1.3}
.ghost,.secondary,.primary{border-radius:13px;padding:10px 14px;border:1px solid var(--line);color:var(--text);background:transparent;cursor:pointer}
.primary{background:var(--accent);border-color:var(--accent);color:#042016;font-weight:750}
.secondary{background:var(--panel2)}
.full{width:100%;margin-top:14px}
button:disabled{opacity:.45;cursor:default}
.section-title,.question-meta,.footer-actions,.result-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.section-title h3{margin:0}
.coverage-line{font-size:12px;color:var(--muted);padding:9px 0 3px}
.topic-row{display:grid;grid-template-columns:1fr auto;gap:8px 14px;padding:12px 0;border-bottom:1px solid var(--line)}
.topic-row:last-child{border-bottom:0}.topic-name{font-weight:650}.topic-sub{font-size:12px;color:var(--muted);line-height:1.45}
.score{font-variant-numeric:tabular-nums;font-weight:800}.score.good{color:var(--accent)}.score.mid{color:var(--warn)}.score.bad{color:var(--danger)}
.note{font-size:12px;line-height:1.5;color:#8297af;padding:4px 8px 28px}
.setup h2,.progress h2{margin-top:4px}
.setup-options{display:grid;gap:13px}
.setup-options label{font-size:12px;color:var(--muted);display:grid;gap:6px}
.select,input[type=number]{width:100%;padding:13px;border-radius:13px;background:#091625;border:1px solid var(--line);color:var(--text);font-size:16px}
.question-card h2{font-size:22px;line-height:1.28;margin:8px 0 18px}
.question-meta{color:var(--muted);font-size:12px}
.concept-chip{display:inline-block;margin-top:12px;font-size:10px;color:var(--muted);border:1px solid var(--line);padding:4px 7px;border-radius:999px}
.answers{display:grid;gap:10px}
.answer{width:100%;text-align:left;padding:14px 15px;border:1px solid var(--line);border-radius:15px;background:#0a1726;color:var(--text);line-height:1.35;cursor:pointer}
.answer.selected{border-color:var(--blue);box-shadow:0 0 0 2px rgba(126,184,255,.12)}
.answer.correct{border-color:var(--accent);background:rgba(85,214,168,.09)}
.answer.wrong{border-color:var(--danger);background:rgba(255,122,122,.08)}
.explanation{margin-top:16px;padding:15px;border-radius:15px;background:#0a1726;color:#d4deea;line-height:1.45;border-left:4px solid var(--accent)}
.explanation a{display:inline-block;margin-top:8px}
.footer-actions{margin-top:18px}
.progressbar{height:7px;background:#17283b;border-radius:999px;overflow:hidden;margin:10px 0 0}.progressbar>div{height:100%;background:var(--accent)}
.timer{font-variant-numeric:tabular-nums;font-weight:800;color:var(--accent)}
.result-score{font-size:54px;font-weight:850;letter-spacing:-.04em}.pass{color:var(--accent)}.fail{color:var(--danger)}
.result-meta{display:flex;flex-direction:column;gap:7px;align-items:flex-end}
.tag{display:inline-block;border:1px solid var(--line);padding:5px 8px;border-radius:999px;color:var(--muted);font-size:11px}
.history{display:grid;gap:9px}.history-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:#0a1726;font-size:13px}
.bar{height:8px;background:#1a2b3e;border-radius:999px;overflow:hidden;margin-top:6px}.bar span{display:block;height:100%;background:var(--accent)}.bar.big{height:10px;margin:10px 0}
.coverage{margin-top:18px;padding:14px;border:1px solid var(--line);border-radius:15px;background:#0a1726}
.callout{margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:15px;background:#0a1726;color:#d4deea;line-height:1.45;font-size:13px}
.missed-list{display:grid;gap:8px}
details{border:1px solid var(--line);border-radius:14px;background:#0a1726;overflow:hidden}
summary{cursor:pointer;padding:13px 14px;font-weight:650;line-height:1.35}
.review-body{padding:0 14px 14px;color:#d4deea;line-height:1.45;font-size:13px}
.review-body>div{margin-top:7px}.review-body p{color:var(--muted)}
.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:28px}
@media(max-width:520px){
  .shell{padding:14px}.hero{align-items:flex-start}.hero h2{font-size:27px}.readiness-ring{width:86px;height:86px;border-width:8px}
  .grid{gap:10px}.mode-card{min-height:130px;padding:14px}.app-header{padding-left:14px;padding-right:14px}
  .bank-stats{gap:7px}.mini-stat{padding:11px 7px}.mini-stat strong{font-size:21px}.mini-stat span{font-size:10px}
  .result-actions{grid-template-columns:1fr}.history-row{grid-template-columns:1fr auto}.history-row span:nth-child(2){display:none}
}
