*{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#f8fafc;--card:#fff;--text:#0f172a;--sub:#64748b;--accent:#2563eb;--accent2:#1d4ed8;--green:#16a34a;--green-bg:#dcfce7;--green-border:#86efac;--red:#dc2626;--red-bg:#fee2e2;--red-border:#fca5a5;--border:#e2e8f0;--hover:#f1f5f9;--radius:14px;--shadow:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04)}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}
.wrap{max-width:640px;margin:0 auto;padding:20px 16px 80px}
.header{text-align:center;padding:32px 0 24px}
.header .logo{font-size:2em;font-weight:800;letter-spacing:-.03em;background:linear-gradient(135deg,var(--accent),#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.header .tagline{color:var(--sub);font-size:.92em;margin-top:6px;font-weight:400}
.card{background:var(--card);border-radius:var(--radius);padding:24px;margin:12px 0;border:1px solid var(--border);transition:box-shadow .2s}
.card:hover{box-shadow:var(--shadow)}
.card h2{font-size:1.05em;font-weight:700;margin-bottom:12px;color:var(--text);letter-spacing:-.01em}
.cat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cat-btn{background:var(--bg);border:1.5px solid var(--border);border-radius:10px;padding:14px;cursor:pointer;transition:all .15s;position:relative;overflow:hidden}
.cat-btn:hover{border-color:var(--accent);background:#eff6ff;transform:translateY(-1px);box-shadow:var(--shadow)}
.cat-btn:active{transform:translateY(0)}
.cat-btn .name{font-weight:600;font-size:.88em;color:var(--text);line-height:1.3}
.cat-btn .count{font-size:.75em;color:var(--sub);margin-top:4px;font-weight:500}
.exam-group{margin:14px 0 6px}
.exam-group h3{font-size:.82em;font-weight:600;color:var(--sub);margin-bottom:8px;text-transform:uppercase;letter-spacing:.04em}
.exam-pills{display:flex;flex-wrap:wrap;gap:6px}
.exam-btn{background:var(--bg);border:1.5px solid var(--border);border-radius:8px;padding:7px 14px;cursor:pointer;font-size:.82em;font-weight:500;transition:all .15s;color:var(--text)}
.exam-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent);transform:translateY(-1px)}
.hero-btn{display:block;width:100%;background:linear-gradient(135deg,var(--accent),#7c3aed);color:#fff;border:none;border-radius:12px;padding:18px;font-size:1.05em;font-weight:700;cursor:pointer;transition:all .2s;letter-spacing:-.01em;position:relative;overflow:hidden}
.hero-btn:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(37,99,235,.3)}
.hero-btn:active{transform:translateY(0)}
.hero-btn .hero-sub{font-size:.78em;font-weight:400;opacity:.85;margin-top:4px;display:block}
.back-row{display:flex;align-items:center;gap:8px;margin-bottom:16px}
.back-btn{background:none;border:none;cursor:pointer;font-size:.88em;color:var(--sub);font-weight:500;padding:6px 0;display:flex;align-items:center;gap:4px;transition:color .15s}
.back-btn:hover{color:var(--text)}
.back-btn svg{width:16px;height:16px}
.progress-wrap{margin:8px 0 20px}
.progress{background:var(--border);border-radius:99px;height:6px;overflow:hidden}
.progress-bar{background:linear-gradient(90deg,var(--accent),#7c3aed);height:100%;border-radius:99px;transition:width .4s cubic-bezier(.4,0,.2,1)}
.q-counter{font-size:.78em;color:var(--sub);font-weight:500;margin-bottom:6px;display:flex;justify-content:space-between}
.q-title{font-size:.78em;color:var(--accent);font-weight:600;margin-bottom:16px}
.q-text{font-size:1.05em;font-weight:500;margin-bottom:20px;line-height:1.55;letter-spacing:-.01em}
.q-img{max-width:100%;max-height:280px;border-radius:10px;margin-bottom:20px;display:block;object-fit:contain;background:#f1f5f9;border:1px solid var(--border)}
.opts{display:flex;flex-direction:column;gap:8px}
.opt{display:flex;align-items:center;width:100%;text-align:left;background:var(--bg);border:1.5px solid var(--border);border-radius:10px;padding:14px 16px;cursor:pointer;font-size:.92em;font-weight:450;transition:all .15s;line-height:1.4;color:var(--text);gap:12px}
.opt:hover:not(:disabled){border-color:var(--accent);background:#eff6ff;transform:translateX(2px)}
.opt .letter{width:28px;height:28px;border-radius:8px;background:var(--border);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.78em;color:var(--sub);flex-shrink:0;transition:all .15s}
.opt:hover:not(:disabled) .letter{background:var(--accent);color:#fff}
.opt.correct{background:var(--green-bg);border-color:var(--green-border);color:#14532d}
.opt.correct .letter{background:var(--green);color:#fff}
.opt.wrong{background:var(--red-bg);border-color:var(--red-border);color:#7f1d1d}
.opt.wrong .letter{background:var(--red);color:#fff}
.opt.show-correct{background:var(--green-bg);border-color:var(--green-border)}
.opt.show-correct .letter{background:var(--green);color:#fff}
.opt:disabled{cursor:default;pointer-events:none}
.quiz-nav{display:flex;justify-content:space-between;align-items:center;margin-top:16px;gap:8px}
.nav-btn{background:none;border:1.5px solid var(--border);border-radius:10px;padding:10px 18px;font-size:.88em;font-weight:600;cursor:pointer;color:var(--text);display:flex;align-items:center;gap:6px;transition:all .15s}
.nav-btn:hover{border-color:var(--accent);color:var(--accent);background:#eff6ff;transform:translateY(-1px)}
.nav-btn svg{width:16px;height:16px}
.nav-btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.nav-btn-primary:hover{background:var(--accent2);color:#fff;border-color:var(--accent2)}
.result-card{text-align:center;padding:32px 20px}
.result-icon{font-size:3em;margin-bottom:12px}
.result-score{font-size:2.8em;font-weight:800;letter-spacing:-.03em;margin:8px 0}
.result-score.pass{color:var(--green)}
.result-score.fail{color:var(--red)}
.result-msg{font-size:1em;color:var(--sub);margin:4px 0 24px;font-weight:450}
.result-bar{background:var(--border);border-radius:99px;height:10px;overflow:hidden;margin:16px 0}
.result-bar-fill{height:100%;border-radius:99px;transition:width 1s cubic-bezier(.4,0,.2,1)}
.result-bar-fill.pass{background:linear-gradient(90deg,var(--green),#4ade80)}
.result-bar-fill.fail{background:linear-gradient(90deg,var(--red),#f87171)}
.wrong-section{text-align:left;margin-top:24px}
.wrong-section h3{font-size:.88em;font-weight:600;color:var(--sub);margin-bottom:12px}
.wrong-item{background:var(--bg);border-radius:10px;padding:14px;margin:8px 0;border-left:3px solid var(--red)}
.wrong-item .wq{font-weight:500;font-size:.9em;margin-bottom:6px;line-height:1.4}
.wrong-item img{max-width:160px;max-height:120px;border-radius:6px;margin:6px 0;display:block;object-fit:contain}
.wrong-item .wa{color:var(--red);font-size:.82em;font-weight:500}
.wrong-item .wc{color:var(--green);font-size:.82em;font-weight:500;margin-top:2px}
.stats{display:flex;gap:8px;margin:20px 0}
.stat{flex:1;background:var(--bg);border-radius:10px;padding:12px;text-align:center;border:1px solid var(--border)}
.stat .num{font-size:1.4em;font-weight:700;color:var(--text)}
.stat .label{font-size:.72em;color:var(--sub);margin-top:2px;font-weight:500}
.explain-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:12px;padding:10px 16px;background:none;border:1.5px solid var(--border);border-radius:10px;font-size:.85em;font-weight:500;color:var(--sub);cursor:pointer;transition:all .15s}
.explain-btn svg{width:16px;height:16px;flex-shrink:0}
.explain-btn:hover{border-color:var(--accent);color:var(--accent);background:#eff6ff}
.explain-btn.copied{border-color:var(--green);color:var(--green);background:var(--green-bg)}
.explain-btn-sm{margin-top:8px;padding:7px 12px;font-size:.78em}
.explanation{margin-top:12px;padding:12px 16px;background:#eff6ff;border:1.5px solid #bfdbfe;border-radius:10px;font-size:.88em;line-height:1.55;color:#1e40af}
.explanation strong{font-weight:600}
.explanation-sm{margin-top:8px;padding:10px 12px;font-size:.82em}
@media(max-width:500px){.cat-grid{grid-template-columns:1fr}.wrap{padding:12px 12px 60px}.card{padding:18px}}
.fade-in{animation:fadeIn .3s ease}@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
