:root{--bg: #0f1419;--panel: #1a2230;--panel2: #232e40;--border: #2c3a52;--text: #e6edf3;--muted: #8b9bb4;--accent: #3b82f6;--accent2: #2563eb;--green: #22c55e;--yellow: #eab308;--red: #ef4444;--radius: 10px}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}.container{max-width:1000px;margin:0 auto;padding:24px 16px}.container-narrow{max-width:560px;margin:0 auto;padding:24px 16px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--panel);border-bottom:1px solid var(--border)}.brand{font-weight:700;font-size:17px}.brand small{color:var(--muted);font-weight:400;font-size:12px;display:block}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px}.card h2{margin:0 0 4px;font-size:18px}.card h3{margin:0 0 12px;font-size:15px;color:var(--muted);font-weight:600}label{display:block;font-size:13px;color:var(--muted);margin:12px 0 4px}input,select{width:100%;padding:10px 12px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;font-size:14px}input:focus,select:focus{outline:none;border-color:var(--accent)}button{background:var(--accent);color:#fff;border:none;padding:10px 18px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}button:hover{background:var(--accent2)}button:disabled{opacity:.5;cursor:not-allowed}button.ghost{background:transparent;border:1px solid var(--border);color:var(--text)}button.ghost:hover{background:var(--panel2)}button.big{width:100%;padding:14px;font-size:16px}.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1;min-width:0}.muted{color:var(--muted)}.error{color:var(--red);font-size:13px;margin-top:8px}.center{text-align:center}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--border);font-size:14px}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.badge.gray{background:#334155;color:#cbd5e1}.badge.blue{background:#1e3a8a;color:#bfdbfe}.badge.green{background:#14532d;color:#bbf7d0}.badge.yellow{background:#713f12;color:#fde68a}.badge.red{background:#7f1d1d;color:#fecaca}.pill{padding:4px 10px;border:1px solid var(--border);border-radius:999px;font-size:12px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 700px){.grid-2{grid-template-columns:1fr}}.metric{background:var(--panel2);border-radius:8px;padding:14px}.metric .big-num{font-size:28px;font-weight:700}.metric .lbl{color:var(--muted);font-size:12px}.bar{height:8px;background:var(--bg);border-radius:999px;overflow:hidden;margin-top:6px}.bar>span{display:block;height:100%;background:var(--accent)}.video-box{position:relative;border-radius:10px;overflow:hidden;background:#000;border:1px solid var(--border)}.video-box video{width:100%;display:block;transform:scaleX(-1)}.proctor-float{position:fixed;bottom:16px;right:16px;width:200px;z-index:50;border-radius:10px;overflow:hidden;border:2px solid var(--border);background:#000}.proctor-float video{width:100%;display:block;transform:scaleX(-1)}.proctor-float .status{position:absolute;bottom:0;left:0;right:0;font-size:11px;padding:4px 6px;background:#000000b3}.toast{position:fixed;top:16px;left:50%;transform:translate(-50%);background:var(--red);color:#fff;padding:10px 18px;border-radius:8px;font-size:14px;z-index:100;box-shadow:0 4px 20px #0006}.q-option{display:block;width:100%;text-align:left;padding:14px;margin:8px 0;background:var(--panel2);border:1px solid var(--border);border-radius:8px;cursor:pointer;color:var(--text);font-size:15px}.q-option:hover{border-color:var(--accent)}.q-option.selected{border-color:var(--accent);background:#1e3a5f}.steps{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.step{font-size:12px;padding:6px 10px;border-radius:999px;background:var(--panel2);color:var(--muted)}.step.active{background:var(--accent);color:#fff}.step.done{background:var(--green);color:#052e16}.progress-line{height:6px;background:var(--panel2);border-radius:999px;overflow:hidden;margin:16px 0}.progress-line>span{display:block;height:100%;background:var(--accent);transition:width .3s}@media print{.no-print{display:none!important}body{background:#fff;color:#000}.card{border-color:#ddd;background:#fff}}
