:root{--navy:#1f3a5f;--navy-dark:#162a45;--teal:#2a7f7a;--bg:#f4f6f9;--surface:#fff;--text:#1c2430;--muted:#5d6878;--border:#d9dee6;--error:#b42318;--radius:10px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.5}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}h1{margin:0 0 1rem;font-size:1.6rem}h2{margin:0 0 .5rem;font-size:1.15rem}a{color:var(--teal)}.muted{color:var(--muted)}.small{font-size:.85rem}.error{color:var(--error);margin:0}.center{text-align:center;place-content:center;gap:.5rem;min-height:60vh;padding:1rem;display:grid}.brand{color:var(--navy);align-items:center;gap:.6rem;font-weight:700;text-decoration:none;display:inline-flex}.brand-text{font-size:1.05rem}.btn{appearance:none;border-radius:var(--radius);background:var(--navy);color:#fff;font:inherit;cursor:pointer;border:0;min-height:44px;padding:.7rem 1rem;font-weight:600}.btn:hover{background:var(--navy-dark)}.btn:disabled{opacity:.6;cursor:default}.btn-secondary{background:var(--surface);color:var(--navy);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg)}.btn-ghost{color:var(--navy);background:0 0;min-height:36px;padding:.4rem .7rem}.btn-ghost:hover{background:var(--bg)}.form{gap:.9rem;margin-top:.5rem;display:grid}.form label{gap:.3rem;font-size:.9rem;font-weight:600;display:grid}.form input{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:#fff;min-height:44px;padding:.65rem .75rem;font-weight:400}.form input:focus{outline:2px solid var(--teal);outline-offset:1px;border-color:var(--teal)}.auth-shell{place-content:center;gap:1rem;min-height:100vh;padding:1.5rem 1rem;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:min(420px,100%);padding:1.75rem;box-shadow:0 4px 18px #14233c0f}.auth-card h1{margin-top:1.25rem;font-size:1.35rem}.auth-links{flex-wrap:wrap;justify-content:space-between;gap:.5rem;margin-top:1.1rem;font-size:.9rem;display:flex}.footer-note{text-align:center;margin:0}.app{min-height:100vh}.topbar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex;position:sticky;top:0}.topnav{align-items:center;gap:.75rem;display:flex}.content{max-width:1000px;margin:0 auto;padding:1.5rem 1rem 3rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:1rem;padding:1.25rem}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.55rem .5rem}th{color:var(--muted);font-weight:600}@media (width<=560px){.topnav .small{display:none}.auth-card{padding:1.25rem}}.brand-logo{width:auto;height:40px;display:block}.brand-text{border-left:1px solid var(--border);padding-left:.6rem}.summary{gap:.75rem;display:grid}.summary h2{margin:0}.summary p{margin:.25rem 0 0}.meter{background:#e6eaf0;border-radius:999px;height:10px;overflow:hidden}.meter span{background:var(--teal);border-radius:999px;height:100%;transition:width .3s;display:block}.small-meter{height:6px;margin-top:.5rem}.cert-ready{border-radius:var(--radius);background:#e8f4f2;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem;display:flex}.module-list{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.module-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;grid-template-columns:44px 1fr auto;align-items:center;gap:.9rem;padding:.9rem 1rem;display:grid}.module-card h3{margin:0;font-size:1rem}.module-num{width:40px;height:40px;color:var(--navy);background:#eef2f7;border-radius:50%;place-content:center;font-weight:700;display:grid}.module-card.is-done .module-num{background:var(--teal);color:#fff}.module-card.is-locked{opacity:.65}.module-meta{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.3rem;display:flex}.pill{color:var(--muted);background:#eef2f7;border-radius:999px;padding:.15rem .55rem;font-size:.78rem;font-weight:600}.pill-ok{color:#1f6b62;background:#e1f3ef}.module-action{text-align:right}.module-action .btn{text-align:center;line-height:1.3;text-decoration:none;display:inline-block}.module-head{margin-bottom:1rem}.module-head h1{margin:.4rem 0 .6rem;font-size:1.35rem}.module-head p{margin:.4rem 0 0}.viewer{background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden}.slide-media{aspect-ratio:16/9;object-fit:contain;background:#0f1b2b;width:100%;height:auto;display:block}img.slide-media{background:#fff}.viewer-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-top:1rem;display:flex}.viewer-bar .btn{text-align:center;min-width:110px;text-decoration:none}.sticky-bar{background:var(--bg);border-top:1px solid var(--border);padding:.75rem 0;position:sticky;bottom:0}.kc{border:0;border-radius:0;margin:0}.kc h2,.quiz-q h2{margin:.25rem 0 1rem;font-size:1.1rem;line-height:1.4}.kc-label,.quiz-num{letter-spacing:.04em;text-transform:uppercase;color:var(--teal);margin:0;font-size:.8rem;font-weight:700}.kc-options{gap:.5rem;display:grid}.kc-option{text-align:left;font:inherit;color:var(--text);border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;background:#fff;grid-template-columns:32px 1fr;align-items:center;gap:.6rem;min-height:48px;padding:.7rem .8rem;display:grid}.kc-option:hover{border-color:var(--teal)}.kc-letter{width:28px;height:28px;color:var(--navy);background:#eef2f7;border-radius:50%;place-content:center;font-size:.85rem;font-weight:700;display:grid}.kc-option.is-picked{border-color:var(--navy);background:#eef3fa}.kc-option.is-picked .kc-letter{background:var(--navy);color:#fff}.kc-option.is-correct{background:#e6f4ee;border-color:#2a7f5f}.kc-option.is-correct .kc-letter{color:#fff;background:#2a7f5f}.kc-option.is-wrong{border-color:var(--error);background:#fdecea}.kc-option.is-dim{opacity:.6}.kc-feedback{margin:.9rem 0 0;font-weight:600}.kc-feedback.ok{color:#2a7f5f}.kc-feedback.no{color:var(--error)}.quiz-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.result{text-align:center;padding:2rem 1.25rem}.result-score{color:var(--navy);margin:0;font-size:3rem;font-weight:800}.result-pass .result-score{color:#2a7f5f}.result-fail .result-score{color:var(--error)}.result-actions{flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:1.25rem;display:flex}.result-actions .btn{text-decoration:none}.admin-tools{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.75rem;display:flex}.admin-tools h2{margin:0 auto 0 0}.search{font:inherit;border:1px solid var(--border);border-radius:var(--radius);min-width:220px;padding:.5rem .7rem}.cert-cell{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.link-btn{color:var(--teal);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}select{font:inherit;border:1px solid var(--border);background:#fff;border-radius:8px;padding:.3rem .4rem}@media (width<=560px){.module-card{grid-template-columns:36px 1fr}.module-action{text-align:left;grid-column:1/-1}.module-action .btn{width:100%}.brand-text{display:none}.viewer-bar .btn{flex:1;min-width:0}}.video-wrap{border-top:1px solid var(--border);gap:.5rem;padding:.9rem;display:grid}.slide-media.video{border-radius:10px}.voice-pick{text-align:center;margin-top:.75rem}.voice-pick select{max-width:70vw;margin-left:.4rem}.admin-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.admin-head h1{margin:0}.admin-head .btn{text-decoration:none}.narr{gap:.75rem;display:grid}.narr h2,.narr p{margin:0}.narr-controls{flex-wrap:wrap;align-items:end;gap:.75rem;display:flex}.narr-controls label{gap:.25rem;font-size:.85rem;font-weight:600;display:grid}.narr-controls select{min-width:200px;min-height:44px}.narr-text{font:inherit;border:1px solid var(--border);border-radius:var(--radius);resize:vertical;width:100%;padding:.7rem}.slide-stage{position:relative}.slide-video{object-fit:contain;background:#000;border-radius:4px;display:block;position:absolute}.read-controls{flex-wrap:wrap;justify-content:center;gap:.25rem;display:flex}.invite-form{flex-wrap:wrap;align-items:center;gap:.6rem;margin:.5rem 0 .75rem;display:flex}.notice-ok{color:#1f6b62;border-radius:var(--radius);background:#e1f3ef;margin:.5rem 0;padding:.6rem .8rem}.mfa-setup{justify-items:start;gap:.5rem;margin-bottom:.75rem;display:grid}.mfa-steps{margin:0;padding-left:1.2rem}.mfa-qr{border:1px solid var(--border);border-radius:var(--radius);background:#fff;padding:8px}.mfa-secret{word-break:break-all;background:var(--bg);border-radius:4px;padding:.1rem .3rem;font-size:.85rem}
