:root{
  --bg:#f8fafc;--card:#ffffff;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--brand:#0f766e;--brand2:#0ea5e9;--soft:#ccfbf1;--warn:#f59e0b;--bad:#dc2626;--good:#16a34a;--shadow:0 18px 45px rgba(15,23,42,.08);--radius:22px
}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,"Noto Sans TC",sans-serif;background:linear-gradient(135deg,#ecfeff 0,#f8fafc 40%,#eff6ff 100%);color:var(--text)}
button,select,input{font:inherit}.app-shell{width:min(1180px,100%);margin:0 auto;padding:22px}.hero{display:grid;grid-template-columns:1fr 330px;gap:22px;align-items:stretch;margin-bottom:18px;padding:28px;border-radius:30px;background:linear-gradient(135deg,#0f766e,#0369a1);color:white;box-shadow:var(--shadow)}
.eyebrow{margin:0 0 8px;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;opacity:.85}.hero h1{margin:0;font-size:clamp(2rem,5vw,4.2rem);line-height:.95}.hero-copy{max-width:640px;font-size:1.08rem;opacity:.92}.hero-card{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.25);border-radius:24px;padding:20px;display:flex;flex-direction:column;gap:10px;justify-content:center}.hero-card strong{font-size:1.15rem}.hero-card small{opacity:.85}.badge{align-self:flex-start;background:white;color:#0f766e;border-radius:999px;padding:7px 11px;font-weight:800;font-size:.78rem}
.tabs{display:flex;gap:10px;overflow:auto;margin:14px 0 22px;padding-bottom:2px}.tab{border:1px solid var(--line);background:white;color:var(--muted);padding:12px 18px;border-radius:999px;cursor:pointer;font-weight:800;white-space:nowrap}.tab.active{background:var(--brand);color:white;border-color:var(--brand)}.view{display:none}.view.active{display:block}.grid{display:grid;gap:18px}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}
.card{background:rgba(255,255,255,.88);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.card h2,.card h3{margin:0 0 12px}.muted{color:var(--muted)}.stat{display:flex;align-items:end;justify-content:space-between;gap:12px}.stat strong{font-size:2rem}.progress{height:12px;background:#e2e8f0;border-radius:99px;overflow:hidden}.bar{height:100%;background:linear-gradient(90deg,var(--brand),var(--brand2));width:0}.pill-row{display:flex;flex-wrap:wrap;gap:8px}.pill{border:1px solid var(--line);background:#f8fafc;border-radius:999px;padding:8px 11px;font-weight:700;color:#334155}.topic-card{cursor:pointer;transition:.18s transform,.18s box-shadow}.topic-card:hover{transform:translateY(-2px);box-shadow:0 22px 55px rgba(15,23,42,.12)}.topic-head{display:flex;justify-content:space-between;gap:12px}.part-badge{background:#e0f2fe;color:#075985;border-radius:999px;padding:6px 10px;font-weight:900;font-size:.78rem}.part-A{background:#ccfbf1;color:#115e59}.part-B{background:#dbeafe;color:#1d4ed8}.must-list{margin:10px 0 0;padding-left:18px;color:#334155}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.toolbar select,.toolbar input{padding:11px 14px;border:1px solid var(--line);border-radius:14px;background:white}.primary,.secondary,.danger{border:0;border-radius:14px;padding:11px 15px;font-weight:900;cursor:pointer}.primary{background:var(--brand);color:white}.secondary{background:#f1f5f9;color:#0f172a;border:1px solid var(--line)}.danger{background:#fee2e2;color:#991b1b}.question-card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:16px;box-shadow:var(--shadow)}.question-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;color:var(--muted);font-weight:800;font-size:.86rem}.question-text{margin:8px 0 14px;font-size:1.08rem}.options{display:grid;gap:9px}.option{border:1px solid var(--line);background:#f8fafc;border-radius:16px;padding:12px;display:flex;gap:10px;cursor:pointer}.option input{margin-top:3px}.option.selected{border-color:var(--brand);background:#f0fdfa}.option.correct{border-color:var(--good);background:#dcfce7}.option.wrong{border-color:var(--bad);background:#fee2e2}.actions-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.answer-panel{display:none;margin-top:14px;padding:14px;border-radius:16px;background:#f8fafc;border:1px solid var(--line)}.answer-panel.show{display:block}.good{color:var(--good);font-weight:900}.bad{color:var(--bad);font-weight:900}.mock-shell{display:grid;grid-template-columns:260px 1fr;gap:18px}.mock-side{position:sticky;top:12px;align-self:start}.timer{font-size:2rem;font-weight:950;color:var(--brand)}.qnav{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-top:12px}.qnav button{border:1px solid var(--line);background:white;border-radius:10px;padding:8px;cursor:pointer}.qnav button.answered{background:#dcfce7}.qnav button.active{outline:3px solid var(--brand)}.result-box{padding:18px;border-radius:18px;border:1px solid var(--line);background:#f8fafc}.source-list a{color:#0369a1;word-break:break-word}.empty{border:1px dashed #cbd5e1;border-radius:18px;padding:24px;text-align:center;color:var(--muted);background:white}.footer-note{margin-top:22px;color:var(--muted);font-size:.9rem}@media(max-width:820px){.app-shell{padding:12px}.hero{grid-template-columns:1fr;padding:22px;border-radius:24px}.grid.cols-3,.grid.cols-2,.mock-shell{grid-template-columns:1fr}.mock-side{position:static}.hero h1{font-size:2.4rem}.card,.question-card{padding:16px}.tabs{position:sticky;top:0;background:rgba(248,250,252,.86);backdrop-filter:blur(10px);z-index:2;padding:10px 0}.tab{padding:10px 14px}}
