:root{
  --bg:#f4f6fa; --card:#fff; --ink:#1c2333; --muted:#5b6478; --line:#dfe4ee;
  --accent:#0f6fd1; --accent-ink:#fff; --ok:#1c8a4a; --ok-bg:#e6f6ec; --bad:#c62828; --bad-bg:#fdeaea;
  --radius:14px; --shadow:0 2px 10px rgba(20,30,60,.08);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:Nunito,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased}
.top{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.brand{font-weight:800;font-size:1.15rem;color:var(--ink);text-decoration:none}
.top-right{color:var(--muted);font-size:.9rem}
.app{max-width:820px;margin:0 auto;padding:24px 16px 48px}
.view[hidden]{display:none}
h1{font-size:1.9rem;font-weight:800;margin:.4em 0 .3em;line-height:1.2}
.lead{color:var(--muted);font-size:1.05rem;margin:0 0 22px}
.modes{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:600px){.modes{grid-template-columns:1fr}}
.mode{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;padding:22px;background:var(--card);border:2px solid var(--line);border-radius:var(--radius);cursor:pointer;font:inherit;color:inherit;box-shadow:var(--shadow);transition:border-color .15s,transform .15s}
.mode:hover,.mode:focus-visible{border-color:var(--accent);transform:translateY(-2px);outline:none}
.mode-icon{font-size:2rem}
.mode-title{font-weight:800;font-size:1.25rem}
.mode-desc{color:var(--muted)}
.hint{color:var(--muted);font-size:.95rem;margin-top:22px}
.resume{margin-top:18px;padding:16px;background:#fff8e6;border:1px solid #f1dc9a;border-radius:var(--radius)}
.resume p{margin:0 0 10px}
.btn{font:inherit;font-weight:700;padding:10px 20px;border-radius:10px;border:2px solid transparent;cursor:pointer;transition:filter .15s,opacity .15s}
.btn.primary{background:var(--accent);color:var(--accent-ink)}
.btn.primary:disabled{opacity:.45;cursor:not-allowed}
.btn.primary:not(:disabled):hover{filter:brightness(1.08)}
.btn.ghost{background:transparent;color:var(--accent);border-color:var(--line)}
.btn.ghost:hover{background:#eef4fc}
.progress{margin-bottom:14px}
.progress-bar{height:8px;background:var(--line);border-radius:6px;overflow:hidden}
.progress-fill{height:100%;width:0;background:var(--accent);transition:width .25s}
.progress-text{display:flex;justify-content:space-between;color:var(--muted);font-size:.9rem;margin-top:6px}
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}
.qnum{color:var(--muted);font-weight:700;font-size:.9rem;letter-spacing:.03em}
.qtext{font-size:1.2rem;font-weight:700;margin:6px 0 14px;line-height:1.4}
.qfig{margin:0 0 16px;text-align:center}
.qfig img{max-width:100%;max-height:440px;border:1px solid var(--line);border-radius:8px;background:#fff}
.legend{margin:-6px 0 16px;padding:10px 14px;background:#f3f6fb;border:1px solid var(--line);border-radius:10px;font-size:.9rem;color:var(--muted)}
.legend[hidden]{display:none}
.legend-title{font-weight:700;margin-bottom:4px}
.legend ul{margin:0;padding-left:18px}
.legend li{margin:2px 0}
.options{display:flex;flex-direction:column;gap:10px}
.opt{display:flex;gap:12px;align-items:flex-start;width:100%;text-align:left;font:inherit;font-size:1.02rem;color:inherit;background:#fafbfe;border:2px solid var(--line);border-radius:10px;padding:12px 14px;cursor:pointer;transition:border-color .12s,background .12s}
.opt:hover:not(:disabled){border-color:var(--accent);background:#f2f7ff}
.opt:disabled{cursor:default}
.opt .letter{flex:0 0 28px;height:28px;border-radius:50%;background:var(--line);display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:.9rem}
.opt.correct{border-color:var(--ok);background:var(--ok-bg)}
.opt.correct .letter{background:var(--ok);color:#fff}
.opt.wrong{border-color:var(--bad);background:var(--bad-bg)}
.opt.wrong .letter{background:var(--bad);color:#fff}
.feedback{margin-top:14px;padding:10px 14px;border-radius:10px;font-weight:700}
.feedback.ok{background:var(--ok-bg);color:var(--ok)}
.feedback.bad{background:var(--bad-bg);color:var(--bad)}
.actions{display:flex;justify-content:space-between;gap:10px;margin-top:18px;flex-wrap:wrap}
.actions.center{justify-content:center}
.result{text-align:center}
.score-big{font-size:3.4rem;font-weight:800;line-height:1.1;margin-top:6px}
.score-of{font-size:1.4rem;color:var(--muted);margin-left:6px}
.score-pct{font-size:1.3rem;color:var(--muted);font-weight:700}
.verdict{margin:12px 0 4px;font-size:1.05rem}
.review{margin-top:18px;display:flex;flex-direction:column;gap:12px}
.review .card{padding:16px}
.review .qtext{font-size:1.02rem;margin-bottom:8px}
.review .ans{margin:2px 0;padding:6px 10px;border-radius:8px}
.review .ans.correct{background:var(--ok-bg);color:var(--ok)}
.review .ans.wrong{background:var(--bad-bg);color:var(--bad)}
.review img{max-width:100%;max-height:260px;border:1px solid var(--line);border-radius:8px;margin:6px 0}
.foot{text-align:center;color:var(--muted);font-size:.85rem;padding:14px 16px 28px}
@media (prefers-color-scheme:dark){
  :root{--bg:#141922;--card:#1d2431;--ink:#e7ebf3;--muted:#9aa5b8;--line:#2f3846;--ok-bg:#173324;--bad-bg:#3a1c1c;--shadow:0 2px 10px rgba(0,0,0,.35)}
  .opt{background:#212a39}.opt:hover:not(:disabled){background:#243248}
  .legend{background:#212a39}
  .btn.ghost:hover{background:#243248}
  .resume{background:#3a3115;border-color:#6b5a22}
  .qfig img,.review img{background:#fff}
}
