:root{color:#0f172a;background:#f1f5f9;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}body{min-height:100vh;margin:0}.error-boundary{background:#fff;border-radius:12px;max-width:420px;margin:2rem auto;padding:2rem;box-shadow:0 10px 40px #0f172a14}.error-boundary h1{margin:0 0 .5rem;font-size:1.25rem}.app-root{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.auth-card{background:#fff;border-radius:12px;width:100%;max-width:420px;padding:2rem;box-shadow:0 10px 40px #0f172a14}.auth-card-wide{max-width:480px}.auth-footer{text-align:center;margin:1.25rem 0 0;font-size:.95rem}.auth-footer a{color:#2563eb;text-decoration:none}.auth-footer a:hover{text-decoration:underline}.auth-card h1{margin:0 0 .25rem;font-size:1.5rem}.muted{color:#64748b;margin:0 0 1.5rem;font-size:.95rem}.stack{flex-direction:column;gap:1rem;display:flex}.field{flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}.field input,.field select{font:inherit;border:1px solid #cbd5e1;border-radius:8px;padding:.55rem .65rem}.primary{color:#fff;font:inherit;cursor:pointer;background:#2563eb;border:none;border-radius:8px;padding:.65rem 1rem}.primary:disabled{opacity:.6;cursor:not-allowed}.error{color:#b91c1c;margin:0;font-size:.9rem}.cert-verify-shell{width:100%;max-width:720px}.cert-verify-card{background:#fafaf9;border:4px solid #ac7509;border-radius:14px;padding:2rem 2rem 1.5rem;box-shadow:0 12px 40px #2b262014}.cert-verify-header h1{color:#544013;margin:0 0 .5rem;font-size:1.75rem}.cert-verify-kicker{letter-spacing:.08em;text-transform:uppercase;color:#807625;margin:0 0 .35rem;font-size:.85rem}.cert-verify-lead{color:#666;margin:0 0 1.25rem}.cert-verify-form{flex-direction:column;gap:.85rem;margin-bottom:1.25rem;display:flex}.cert-verify-submit{align-self:flex-start}.cert-verify-status{margin:0 0 1rem}.cert-verify-error{color:#7f1d1d;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:.85rem 1rem}.cert-verify-error p{margin:.35rem 0 0}.cert-verify-result{text-align:center;border-top:2px solid #e5e7eb;margin-top:.5rem;padding-top:1.25rem}.cert-verify-badge{color:#047857;background:#ecfdf5;border-radius:999px;margin:0 0 .75rem;padding:.25rem .75rem;font-size:.85rem;font-weight:600;display:inline-block}.cert-verify-title{letter-spacing:.04em;color:#544013;margin:0;font-size:1.5rem}.cert-verify-sub{color:#666;margin:1rem 0 .35rem}.cert-verify-name,.cert-verify-exam{color:#807625;margin:0;font-size:1.45rem}.cert-verify-meta{text-align:left;gap:.85rem;margin:1.5rem 0 0;display:grid}.cert-verify-meta div{gap:.15rem;display:grid}.cert-verify-meta dt{text-transform:uppercase;letter-spacing:.06em;color:#666;margin:0;font-size:.8rem}.cert-verify-meta dd{color:#2b2620;margin:0;font-size:1rem}.shell{width:100%;max-width:960px;margin:0 auto}.topbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.topbar h1{margin:0;font-size:1.25rem}.ghost{font:inherit;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:.45rem .75rem}.main{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 4px 20px #0f172a0f}.main code{background:#f1f5f9;border-radius:4px;padding:.1em .35em;font-size:.85em}.proctor-control-panel{margin-top:.75rem}.proctor-control-textarea{resize:vertical;min-height:80px}.proctor-control-meta{justify-content:space-between;gap:.5rem;margin:.4rem 0;display:flex}.proctor-control-meta .muted{margin:0}.proctor-control-presets{flex-wrap:wrap;gap:.5rem;margin-bottom:.6rem;display:flex}.proctor-message-banner{color:#92400e;background:#fef3c7;border:1px solid #fbbf24;border-radius:10px;margin-bottom:1rem;padding:.75rem 1rem}.proctor-message-banner p{margin:0}.proctor-message-banner-header{justify-content:space-between;gap:.5rem;margin-bottom:.4rem;display:flex}.proctor-message-banner details{margin-top:.5rem}.proctor-message-banner ul{margin:.5rem 0 0}.penalty-overlay{z-index:999;background:#0f172ad1;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.penalty-overlay-card{text-align:center;background:#fff;border-radius:12px;width:min(540px,100%);padding:1.2rem;box-shadow:0 20px 45px #0f172a59}.penalty-overlay-card h2{margin:0 0 .45rem}.penalty-overlay-card p{margin:.4rem 0}.penalty-overlay-timer{font-size:2rem;font-weight:700}
