
:root{
  --bg:#f4f7fb;--card:#fff;--text:#0f172a;--muted:#64748b;--border:#e2e8f0;
  --primary:#0f172a;--accent:#2563eb;--success:#15803d;--danger:#b91c1c;
}
*{box-sizing:border-box} body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
button,input,textarea{font:inherit}.app{max-width:780px;margin:0 auto;min-height:100vh;padding-bottom:92px}
.topbar{padding:calc(18px + env(safe-area-inset-top)) 18px 14px;display:flex;justify-content:space-between;align-items:flex-start}
h1{font-size:24px;margin:2px 0} h2{font-size:20px;margin:4px 0}.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:700;color:var(--accent);margin:0}
.card{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:18px;margin:0 14px 14px;box-shadow:0 6px 24px rgba(15,23,42,.05)}
.hero{display:flex;justify-content:space-between;align-items:center}.score-row strong{font-size:46px;line-height:1}.score-row span{color:var(--muted)}
.ring{width:84px;height:84px;border-radius:50%;border:8px solid #dbeafe;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring span{font-weight:800;font-size:20px}.ring small{color:var(--muted)}
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 14px 14px}.stats-grid .card{margin:0}.stat{display:flex;flex-direction:column;gap:6px}.stat span{font-size:13px;color:var(--muted)}.stat strong{font-size:22px}
.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.muted{color:var(--muted)}.small{font-size:13px}.pill{background:#eff6ff;color:#1d4ed8;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700}
.progress{height:10px;background:#e2e8f0;border-radius:999px;overflow:hidden;margin-bottom:14px}.progress div{height:100%;width:0;background:var(--accent)}
.primary{border:0;background:var(--primary);color:white;border-radius:14px;padding:14px 16px;font-weight:700}.full{width:100%}.icon-btn,.text-btn{border:0;background:transparent;font-size:20px}.text-btn{font-size:14px;color:var(--muted)}
.part-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.part-btn{border:1px solid var(--border);border-radius:14px;padding:14px;background:white;text-align:left}.part-btn strong{display:block;font-size:18px}.part-btn small{color:var(--muted)}
.weakness-list{display:flex;flex-direction:column;gap:12px}.weak-row{display:grid;grid-template-columns:110px 1fr 44px;align-items:center;gap:10px}.bar{height:8px;background:#e2e8f0;border-radius:999px;overflow:hidden}.bar>div{height:100%;background:var(--accent)}
.view{display:none}.view.active{display:block}.study-head{display:flex;justify-content:space-between;padding:14px 18px;align-items:center}.question-card h2{font-size:22px;line-height:1.45}.choices{display:flex;flex-direction:column;gap:10px;margin:18px 0}.choice{border:1px solid var(--border);background:white;border-radius:14px;padding:14px;text-align:left}.choice.correct{border-color:#86efac;background:#f0fdf4}.choice.wrong{border-color:#fecaca;background:#fef2f2}.choice:disabled{color:inherit}
.explanation{background:#f8fafc;border-radius:14px;padding:14px;margin:14px 0;line-height:1.6}.hidden{display:none!important}.empty{text-align:center;color:var(--muted);padding:36px 20px}
.analysis-grid{display:grid;gap:12px}.analysis-item h3{margin:0 0 10px}.analysis-item .big{font-size:28px;font-weight:800}
.form-card label{display:block;font-size:13px;font-weight:700;margin-bottom:16px}.form-card input,.form-card textarea{width:100%;margin-top:7px;border:1px solid var(--border);border-radius:12px;padding:12px;background:white}
.bottom-nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(780px,100%);display:grid;grid-template-columns:repeat(5,1fr);background:rgba(255,255,255,.96);border-top:1px solid var(--border);padding:8px 6px calc(8px + env(safe-area-inset-bottom));backdrop-filter:blur(14px)}
.bottom-nav button{border:0;background:transparent;padding:6px;color:var(--muted);font-size:18px}.bottom-nav button span{display:block;font-size:10px;margin-top:2px}.bottom-nav button.active{color:var(--text);font-weight:700}
@media(min-width:620px){.stats-grid{grid-template-columns:repeat(4,1fr)}.part-grid{grid-template-columns:repeat(4,1fr)}}
