/* Exam Prep, on the same design system as /learn and the dashboard (2026-09-26).
   Only the LOOK changed here -- every id and class the inline <script> in
   exam.html reads (#pickList, .pick, .exc, .opt, .verdict, .tline, .mark, ...)
   is untouched, so this file is pure restyling. The header is the shared
   nav (css/nav.css); exam.html carries a copy of its markup, same as
   learn.html and dashboard.html do, and toggles Sign in/Dashboard/avatar
   itself since a visitor may reach Exam Prep signed out. */
body.studio{
  --e-ink:#10244b;--e-soft:#61718c;--e-faint:#8a97ad;--e-line:#e2eaf6;--e-blue:#1677ff;--e-violet:#6a5cf0;
  background:
    radial-gradient(900px 520px at 8% -8%, #e6f0ff 0%, transparent 60%),
    radial-gradient(760px 460px at 96% 2%, #fdeef6 0%, transparent 58%),
    #f7faff;
}
body.studio .sn .side-btn{width:40px;height:40px;border-radius:12px;border:1px solid var(--e-line);background:#fff;font-size:16px;box-shadow:none}
body.studio .avatar{width:40px;height:40px;background:linear-gradient(135deg,#7b6cf6,var(--e-blue));font-weight:800}

.ex{width:min(760px,92vw);margin:0 auto;padding:28px 0 80px;color:var(--e-ink)}
.ex .kicker{display:inline-block;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--e-blue);font-weight:900;margin-bottom:8px}
.ex h1{font-size:clamp(26px,3.2vw,36px);font-weight:800;letter-spacing:-1.2px;margin:0 0 8px}
.ex .sub{color:var(--e-soft);margin:0 0 22px;line-height:1.6;font-size:15px}

.exc{background:#fff;border:1px solid var(--e-line);border-radius:22px;box-shadow:0 14px 40px rgba(23,75,131,.09);padding:26px 28px}
.exc > b{font-size:13px;letter-spacing:1px;text-transform:uppercase;color:var(--e-soft);font-weight:800}

.picks{display:flex;flex-wrap:wrap;gap:9px;margin:10px 0 4px}
.pick{border:1px solid var(--e-line);background:#fff;border-radius:999px;padding:9px 16px;font-size:14px;font-weight:600;color:var(--e-ink);
  transition:border-color .15s,background .15s,transform .1s}
.pick:hover{border-color:#bcd0f5;background:#f2f8ff}
.pick.on{border-color:transparent;background:linear-gradient(135deg,var(--e-blue),#19a9f5);color:#fff;box-shadow:0 8px 18px #1677ff38}
.pgroup{font-size:12px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--e-faint);margin:18px 0 4px}
.pgroup:first-child{margin-top:4px}

.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:20px}
.row .grow{flex:1}
.count.seg{display:inline-flex;background:#f1f5fb;border:1px solid var(--e-line);border-radius:999px;padding:4px;gap:2px}
.count button{padding:8px 15px;font-size:13.5px;border-radius:999px;font-weight:700;color:var(--e-soft);border:0;background:none}
.count button.on{background:var(--e-blue);color:#fff;box-shadow:0 6px 14px #1677ff33}

.bar{height:7px;border-radius:99px;background:#e5eefb;overflow:hidden;margin:6px 0 18px}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--e-violet),var(--e-blue));transition:width .3s}

/* A plain status line ("3 topics chosen") when there's nothing wrong; a real
   alert box -- the same red every other page uses -- when the test could not
   be built. Was a quiet grey caption for both, which read as nothing at all
   when it actually mattered (user, 2026-09-26). */
.setup-note{margin:14px 0 0;font-size:13.5px;color:var(--e-soft);min-height:1px}
.setup-note:empty{margin:0}
.setup-note.err{
  display:flex;gap:10px;align-items:flex-start;color:#c0281c;background:#fef1f0;
  border:1.5px solid #f2a49c;border-radius:14px;padding:13px 16px;font-size:14px;font-weight:700;line-height:1.5;
}
.setup-note.err::before{content:"!";flex:none;width:20px;height:20px;border-radius:50%;background:#e0261a;color:#fff;
  font-size:13px;font-weight:900;display:grid;place-items:center;margin-top:1px}

.qhead{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--e-soft);font-weight:600}
.qtext{font-size:19px;font-weight:600;line-height:1.5;margin:12px 0 18px;color:var(--e-ink)}

.opts{display:grid;gap:10px}
.opt{text-align:left;border:1px solid var(--e-line);background:#fff;border-radius:14px;padding:13px 16px;font-size:15px;color:var(--e-ink);
  font-weight:500;transition:border-color .15s,background .15s}
.opt:hover:not(:disabled){border-color:#bcd0f5;background:#f2f8ff}
.opt.right{border-color:#7fd6ac;background:#e9fbf1;color:#186b41;font-weight:700}
.opt.wrong{border-color:#f3a99f;background:#fdeeec;color:#a13a31;font-weight:700}
.opt:disabled{cursor:default;opacity:1}

.ans{display:flex;gap:10px}
.ans input{flex:1;border:1px solid var(--e-line);border-radius:14px;padding:13px 16px;font-size:15px;background:#fff}
.ans input:focus{outline:0;border-color:#8fb8f9;box-shadow:0 0 0 4px #1677ff1c}

.verdict{margin-top:16px;border-radius:16px;padding:14px 18px;line-height:1.6;font-size:14.5px}
.verdict.ok{background:#e9fbf1;color:#186b41}
.verdict.no{background:#fdeeec;color:#a13a31}
.verdict.self{background:#f1f5fb;color:var(--e-ink)}
.verdict b{display:block;margin-bottom:3px;font-size:15px}

.scorebox{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.big{font-size:52px;font-weight:900;letter-spacing:-1.5px}
.big.good{color:#18a36b}.big.mid{color:#d49a07}.big.low{color:#e0554a}

.tline{display:grid;grid-template-columns:1fr 140px 52px;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid #eef2f8}
.tline:last-child{border:0}
.tline a{color:var(--e-blue);font-weight:700}
.sheet-list{margin:0;padding-left:22px;display:grid;gap:14px;line-height:1.55;color:var(--e-ink)}
.sheet-list small{display:block;color:var(--e-soft)}
.mark{font-weight:800}.mark.ok{color:#18a36b}.mark.no{color:#e0554a}

/* buttons this page uses that css/site.css already styles generically
   (.btn/.btn.primary) get the blue treatment to match every other page */
.ex .btn.primary{border-radius:14px;background:linear-gradient(135deg,var(--e-blue),#19a9f5);border:0;box-shadow:0 10px 25px #1677ff38}
.ex .btn{border-radius:14px;border-color:var(--e-line)}
.ex .btn.ghost{background:none;border-color:var(--e-line);color:var(--e-ink)}

@media print{.sn,.no-print{display:none!important}.exc{box-shadow:none;border:0}body{background:#fff}}
@media (max-width:600px){
  .tline{grid-template-columns:1fr auto;grid-template-areas:"a c" "b b"}
  .tline > :first-child{grid-area:a}.tline > .bar{grid-area:b;margin:6px 0 0}.tline > b{grid-area:c}
  .exc{padding:20px 18px;border-radius:18px}
}
