*{box-sizing:border-box}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;margin:0;background:#f5f7fb;color:#172033}.shell{max-width:860px;margin:0 auto;padding:24px}.card{background:#fff;border:1px solid #dfe4ec;border-radius:14px;padding:22px;box-shadow:0 3px 14px rgba(0,0,0,.05);margin:16px 0}h1,h2,h3{margin-top:0}.muted{color:#667085}.row{display:flex;gap:12px;flex-wrap:wrap}.field{flex:1;min-width:220px}label{display:block;font-weight:600;margin-bottom:6px}input,select,textarea{width:100%;padding:11px;border:1px solid #cbd2dc;border-radius:8px;font:inherit}button,.btn{border:0;border-radius:9px;padding:11px 16px;font-weight:700;cursor:pointer;background:#172033;color:#fff;text-decoration:none;display:inline-block}button.secondary,.btn.secondary{background:#e7ebf1;color:#172033}button:disabled{opacity:.45;cursor:not-allowed}.status{padding:8px 10px;border-radius:8px;background:#eef2f6;margin:5px 0}.ok{background:#eaf7ee}.bad{background:#fdecec}.warn{background:#fff5df}.hidden{display:none!important}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px}.timer{font-size:1.35rem;font-weight:800}.sync{font-size:.9rem;padding:6px 9px;border-radius:999px;background:#edf2f7}.question{font-size:1.2rem;font-weight:700;line-height:1.45;margin:22px 0}.option{display:block;border:1px solid #d6dce5;border-radius:10px;padding:13px;margin:10px 0;cursor:pointer}.option:has(input:checked){border-color:#172033;background:#f0f3f8}.option input{width:auto;margin-right:10px}.progress{height:8px;background:#e7ebf1;border-radius:999px;overflow:hidden}.progress>div{height:100%;background:#172033}.alert{padding:14px;border-radius:10px;background:#fff2d7;border:1px solid #efcf89;margin:12px 0}.danger{background:#fde8e8;border-color:#efb2b2}.success{background:#e8f7ed;border-color:#acd9ba}.checkrow{display:flex;align-items:center;gap:8px}.checkrow input{width:auto}.footer-note{font-size:.88rem;color:#667085;margin-top:16px}.download-grid{display:flex;gap:10px;flex-wrap:wrap}@media(max-width:600px){.shell{padding:12px}.card{padding:16px}.topbar{align-items:flex-start;flex-direction:column}.question{font-size:1.1rem}}
.quiz-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.review{background:#eef3ff;border-color:#bdcaf3}.submit-confirm{margin-top:18px;padding:16px;border:1px solid #cbd2dc;border-radius:10px;background:#f8fafc}.submit-confirm p{margin:8px 0 14px}.quiz-actions button{min-width:150px}@media(max-width:600px){.quiz-actions button{flex:1;min-width:0}}

/* V1.0.5 question-status well: informational only; not navigation. */
.question-status-panel{margin:14px 0 8px;padding:12px 14px;border:1px solid #dfe4ec;border-radius:10px;background:#f8fafc}
.question-status-heading{font-size:.86rem;font-weight:700;color:#475467;margin-bottom:9px}
.question-status{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.q-status{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:750;line-height:1;user-select:none;pointer-events:none}
.q-status.unseen{background:#dfe3e8;color:#344054}
.q-status.skipped{background:#f3a7bd;color:#6b1f39}
.q-status.answered{background:#2f8f55;color:#fff}
.q-status.current{outline:3px solid #2474d2;outline-offset:2px}
.question-status-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:11px;font-size:.78rem;color:#667085}
.question-status-legend span{display:inline-flex;align-items:center;gap:6px}
.legend-dot{width:12px;height:12px;border-radius:50%;display:inline-block}
.legend-dot.unseen{background:#dfe3e8}
.legend-dot.skipped{background:#f3a7bd}
.legend-dot.answered{background:#2f8f55}
.legend-dot.current{background:#fff;outline:2px solid #2474d2;outline-offset:1px}


/* V1.0.5 final-submission feedback. Keeps the student informed while the server round-trip completes. */
.submission-overlay{position:fixed;inset:0;z-index:9999;background:rgba(245,247,251,.94);display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(2px)}
.submission-box{width:min(520px,100%);background:#fff;border:1px solid #dfe4ec;border-radius:16px;padding:30px;text-align:center;box-shadow:0 12px 38px rgba(23,32,51,.16)}
.submission-box h2{margin:14px 0 8px}.submission-box p{line-height:1.5}
.submission-spinner{width:46px;height:46px;border-radius:50%;border:5px solid #e3e8ef;border-top-color:#2474d2;margin:0 auto;animation:quiz-spin .85s linear infinite}
.submission-pulse{display:flex;gap:6px;justify-content:center;margin:18px 0 4px}
.submission-pulse span{width:7px;height:7px;border-radius:50%;background:#2474d2;animation:quiz-pulse 1.1s ease-in-out infinite}
.submission-pulse span:nth-child(2){animation-delay:.15s}.submission-pulse span:nth-child(3){animation-delay:.3s}
@keyframes quiz-spin{to{transform:rotate(360deg)}}
@keyframes quiz-pulse{0%,70%,100%{opacity:.28;transform:translateY(0)}35%{opacity:1;transform:translateY(-4px)}}
@media(prefers-reduced-motion:reduce){.submission-spinner,.submission-pulse span{animation:none}}
