:root{color-scheme:light;--bg: #fafbfc;--surface: #ffffff;--surface-2: #eef2f7;--text: #1a2333;--text-muted: #6b7280;--border: #e2e5ea;--accent: #7c3aed;--accent-dark: #6d28d9;--accent-soft: #ede9fe;--ok: #15803d;--ok-soft: #dcfce7;--warn: #b45309;--warn-soft: #fffbeb;--error: #b91c1c;--error-soft: #fee2e2;--note: #d97706;--note-soft: #fef3e2;--replay-border: #ddd0f5;--replay-bg: linear-gradient(180deg, #faf7ff, #ffffff 55%);--replay-hover: #f5f2fe;--ink: var(--text);--dim: var(--text-muted);--line: var(--border);--red: var(--error)}[data-theme=dark]{color-scheme:dark;--bg: #14161b;--surface: #1b1e25;--surface-2: #262a33;--text: #e5e7eb;--text-muted: #9aa1ac;--border: #2a2e37;--accent: #8b5cf6;--accent-dark: #7c3aed;--accent-soft: color-mix(in srgb, #8b5cf6 22%, transparent);--ok: #4ade80;--ok-soft: color-mix(in srgb, #22c55e 18%, transparent);--warn: #fbbf24;--warn-soft: color-mix(in srgb, #f59e0b 16%, transparent);--error: #f87171;--error-soft: color-mix(in srgb, #ef4444 20%, transparent);--note: #fbbf24;--note-soft: color-mix(in srgb, #f59e0b 18%, transparent);--replay-border: #4c3a7a;--replay-bg: linear-gradient(180deg, color-mix(in srgb, #7c3aed 22%, var(--surface)), var(--surface) 60%);--replay-hover: color-mix(in srgb, #7c3aed 16%, transparent)}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,system-ui,sans-serif;font-size:13px;color:var(--text);background:var(--bg);transition:background-color .15s,color .15s}.pane{padding:10px;display:flex;flex-direction:column;gap:10px}.pane-head{display:flex;align-items:center;gap:8px;padding:2px 2px 6px}.brand{display:flex;align-items:center;gap:8px;min-width:0}.brand-mark{width:26px;height:26px;border-radius:8px;flex:none;display:grid;place-items:center;color:#fff;font-weight:800;font-size:13px;letter-spacing:-1px;background:linear-gradient(135deg,#8b5cf6,#6d28d9);box-shadow:0 1px 2px #1018282e}.dot-brand{font-weight:680;font-size:15px;letter-spacing:-.02em;color:var(--text);white-space:nowrap}.icon{width:1em;height:1em;flex:none;vertical-align:-.14em}.icon-lead{margin-right:5px}.play-btn .icon{width:20px;height:20px;vertical-align:-.2em}.replay-badge .icon{vertical-align:0}.head-actions{margin-left:auto;display:flex;align-items:center;gap:6px}.theme-btn{font:inherit;font-size:14px;line-height:1;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-muted);padding:3px 7px;cursor:pointer}.signout-btn{display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:12.5px;font-weight:600;line-height:1;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-muted);padding:4px 9px;cursor:pointer;white-space:nowrap}.signout-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.theme-btn:hover{background:var(--surface-2)}.buildtag{font-size:10px;font-weight:500;color:var(--dim);border:1px solid var(--line);border-radius:999px;padding:1px 6px;vertical-align:middle}.plan-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:650;letter-spacing:.01em;line-height:1.4;border:1px solid transparent;white-space:nowrap}.plan-badge.free{background:var(--surface-2);color:var(--text-muted);border-color:var(--border)}.plan-badge.paid{background:var(--accent-soft);color:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:10px}.card.blocked{border-color:var(--accent);box-shadow:0 1px 3px #10182814}.card.blocked strong{font-size:15px}.card.recover{border-color:var(--warn);background:var(--warn-soft)}.card p{margin:0}.field{display:flex;flex-direction:column;gap:4px}.field span{color:var(--dim);font-size:12px}input,select,textarea{font:inherit;border:1px solid var(--line);border-radius:6px;padding:6px 8px;width:100%}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.btn{font:inherit;color:var(--text);border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:7px 12px;cursor:pointer}.btn:hover{border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-dark)}.btn.big{padding:10px;font-weight:600}.btn.danger{color:var(--red);border-color:var(--red)}.row{display:flex;gap:8px}.row .btn{flex:1}.hint{color:var(--dim);font-size:12px}.hint.ok{color:var(--ok)}.detail-level{display:flex;flex-direction:column;gap:2px;margin:2px 0 2px 4px}.detail-label{font-weight:600;margin:2px 0}.camtest-preview{width:100%;max-height:180px;border-radius:8px;background:#000;object-fit:cover}.settings-cat{margin:14px 0 4px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-top:1px solid var(--border);padding-top:10px}.settings-cat:first-child{border-top:none;padding-top:0;margin-top:0}.account-row{display:flex;align-items:center;gap:8px;padding:0 2px}.account-email{font-size:12px;color:var(--text-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-row .plan-badge{margin-left:auto;flex:none}.btn.outlined{border-color:var(--accent)}.btn.settings-toggle{width:100%;text-align:left;background:var(--surface-2);font-weight:600}.btn.settings-toggle:hover{border-color:var(--accent)}.error{color:var(--error);background:var(--error-soft);border-radius:6px;padding:8px 10px}.rec-status{display:flex;align-items:center;gap:8px;font-weight:600}.rec-dot{width:10px;height:10px;border-radius:50%;background:var(--red);animation:pulse 1.2s ease-in-out infinite}.rec-dot.paused{background:var(--amber, #d98a00);animation:none}@keyframes pulse{50%{opacity:.3}}.settings-toggle{text-align:left;font-weight:600}.settings-section{display:flex;flex-direction:column;gap:8px;margin-top:4px;padding-top:8px;border-top:1px solid var(--border, rgba(128, 128, 128, .25))}.counts{color:var(--dim)}.recent{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:12px;min-height:20px}.recent code{background:var(--surface-2);border-radius:4px;padding:0 4px}.check{display:flex;align-items:center;gap:8px;cursor:pointer}.check input{width:auto}.hint.indent{margin-left:24px;margin-top:-6px}.hint.indent-0{margin-top:-6px}.hint.warn{color:var(--warn)}.audio-row{display:flex;align-items:center;gap:8px}.meter{flex:1;height:8px;background:var(--line);border-radius:4px;overflow:hidden}.meter-fill{height:100%;background:var(--ok);border-radius:4px;transition:width .12s linear}.mictest{border:1px dashed var(--line);border-radius:6px;padding:10px;display:flex;flex-direction:column;gap:8px}.auto{margin-left:6px;font-size:10px;color:var(--dim);border:1px solid var(--line);border-radius:999px;padding:0 5px;vertical-align:middle}.btn.subtle{color:var(--dim)}.btn-link{font:inherit;background:none;border:none;padding:0;color:var(--accent);cursor:pointer;text-decoration:underline}.hint.account{margin:-4px 2px 0}.divider{display:flex;align-items:center;gap:8px;color:var(--dim);font-size:11px}.divider:before,.divider:after{content:"";flex:1;border-top:1px solid var(--line)}code.wrap{word-break:break-all;background:var(--surface-2);border-radius:4px;padding:0 4px}.card.replay{border-color:var(--replay-border);background:var(--replay-bg)}.replay-head{display:flex;align-items:center;gap:8px}.replay-badge{display:inline-flex;align-items:center;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-dark);background:var(--accent-soft);border-radius:999px;padding:3px 8px;white-space:nowrap}.replay-title{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.replay-close{flex:none;border:none;background:transparent;color:var(--text-muted);font-size:20px;line-height:1;padding:0 4px;border-radius:6px;cursor:pointer}.replay-close:hover{color:var(--accent-dark);background:var(--accent-soft)}.replay-close:disabled{opacity:.5;cursor:default}.replay-meta{margin-top:-6px}.replay-transport{display:flex;align-items:center;gap:12px}.play-btn{flex:none;width:46px;height:46px;border-radius:50%;border:none;background:#7c3aed;color:#fff;font-size:15px;cursor:pointer;box-shadow:0 2px 6px #7c3aed59;transition:background .15s,transform .05s}.play-btn:hover{background:#6d28d9}.play-btn:active{transform:scale(.96)}.replay-time{font-size:16px;font-variant-numeric:tabular-nums}.replay-time .total{color:var(--dim);font-size:12px}.seek-slider{width:100%;accent-color:#7c3aed;height:22px;padding:0}.speed-row{display:flex;align-items:center;gap:8px}.speed-label{font-size:10px;color:var(--dim);text-transform:uppercase;letter-spacing:.05em}.speed-slider{flex:1;accent-color:var(--text-muted);height:14px;padding:0}.speed-pill{font:inherit;font-weight:600;min-width:3.8em;border:1px solid var(--replay-border);color:var(--accent-dark);background:var(--surface);border-radius:999px;padding:4px 10px;cursor:pointer}.speed-pill:hover{background:var(--accent-soft)}.speed-stepper{margin-left:auto;display:flex;align-items:center;gap:6px}.speed-step{font:inherit;font-weight:600;font-size:12px;border:1px solid var(--replay-border);color:var(--accent-dark);background:var(--surface);border-radius:8px;padding:5px 8px;cursor:pointer;transition:background .12s}.speed-step:hover:not(:disabled){background:var(--accent-soft)}.speed-step:disabled{opacity:.4;cursor:default}.speed-val{min-width:3.2em;text-align:center;font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent-dark)}.replay-tabs{display:flex;border-bottom:1px solid var(--line);margin-top:4px}.replay-tabs button{flex:1;border:none;background:none;padding:6px 8px;font:inherit;color:var(--dim);border-bottom:2px solid transparent;cursor:pointer}.replay-tabs button.active{color:var(--accent-dark);font-weight:600;border-bottom-color:var(--accent)}.replay-list{list-style:none;margin:0;padding:4px 0;max-height:220px;overflow-y:auto}.spotlight-banner{margin:0 0 8px;padding:6px 10px;border-radius:8px;font-size:12px;border:1px solid var(--accent, #7a5af8);background:var(--accent-soft, rgba(122, 90, 248, .12));color:var(--accent, #7a5af8)}.spotlight-banner .spotlight-sub{opacity:.7}.replay-list .item{display:flex;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;align-items:baseline}.replay-list .item:hover{background:var(--replay-hover)}.replay-list .item.active{background:var(--accent-soft)}.replay-list .item.note.active{background:var(--note-soft)}.replay-list .item.future{opacity:.45}.replay-list .item .when{color:var(--dim);font-size:12px;min-width:34px;font-variant-numeric:tabular-nums}.replay-list .item .body{display:flex;flex-direction:column;gap:2px;min-width:0}.replay-list .cellref{font-family:Consolas,monospace;font-size:12px;color:var(--accent)}.replay-list .item.note .cellref{color:var(--note)}.replay-list .auto{margin-left:6px;font-size:10px;color:var(--dim);border:1px solid var(--line);border-radius:999px;padding:0 5px}.replay-list .dim{color:var(--dim)}.replay-list .how{font-size:11px;color:var(--dim);font-style:italic;overflow-wrap:anywhere}.replay-list .empty{color:var(--dim);padding:12px 8px}.error .report-bug{display:block;margin-top:6px;color:inherit}.report-foot{text-align:center}.check.disabled{opacity:.55;cursor:default}.card.upgrade{border-color:var(--accent-soft);background:var(--accent-soft)}.card.upgrade strong{text-transform:capitalize}.seg-strip{display:flex;flex-direction:column;gap:4px;margin-bottom:4px}.seg-chip{display:flex;align-items:baseline;gap:6px;width:100%;text-align:left;font:inherit;font-size:11px;cursor:pointer;padding:4px 8px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--text)}.seg-chip.active{border-color:var(--accent);background:var(--accent-soft)}.seg-chip.gap{color:var(--dim);border-style:dashed}.seg-disc{color:var(--dim)}.seg-name{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seg-chip.gap .seg-name{font-weight:500}.seg-range{flex:none;font-variant-numeric:tabular-nums;color:var(--dim);font-size:10px}.author-chip{margin-left:6px;font-size:10px;color:var(--accent-dark);background:var(--accent-soft);border-radius:999px;padding:0 6px;vertical-align:middle;white-space:nowrap}.gap-badge{margin-left:6px;font-size:10px;color:var(--dim);border:1px dashed var(--line);border-radius:999px;padding:0 5px;vertical-align:middle;white-space:nowrap}.auto.cross-file{color:#b45309;border-color:#b45309}.ext-refs{border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:8px 0;display:flex;flex-direction:column;gap:6px}.ref-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.ref-list li{display:flex;align-items:center;gap:6px;font-size:12px}.ref-status{color:var(--dim)}.ref-status.ok{color:#15803d}.ref-name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ref-size{color:var(--dim);white-space:nowrap}.ref-open-hint{flex-basis:100%;margin-left:20px;color:var(--dim);font-size:11px}.seek-wrap{position:relative}.seek-tick{position:absolute;top:3px;bottom:3px;width:2px;margin-left:-1px;pointer-events:none;background:var(--dim)}.seek-tick.gap{background:#b45309}.seg-strip{max-height:120px;overflow-y:auto}.seg-chip.gap{padding:2px 8px}.card.resume-replace{border-color:var(--warn);background:var(--warn-soft)}.hint.autosave{color:var(--text-muted)}.card.branch-merge .bm-cols{display:flex;gap:8px;margin:4px 0;font-size:12px;font-weight:600}.bm-head{flex:1}.bm-a{color:var(--accent)}.bm-b{color:var(--text-muted)}.bm-list{list-style:none;margin:6px 0;padding:4px;max-height:240px;overflow-y:auto;border:1px solid var(--border);border-radius:6px}.bm-row{padding:5px 6px;border-radius:5px;margin-bottom:3px}.bm-row.conflict{background:var(--warn-soft)}.bm-row.ok{background:var(--ok-soft)}.bm-cell{font-family:Consolas,monospace;font-size:12px;color:var(--accent)}.bm-vals{display:flex;align-items:center;gap:6px;font-size:12px;margin-top:2px}.bm-val{flex:1;min-width:0;display:flex;align-items:center;gap:4px;overflow-wrap:anywhere}.bm-vs{color:var(--text-muted);flex:0 0 auto}.companion-block{border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:8px 0 0;display:flex;flex-direction:column;gap:6px}.hint.link{color:var(--accent);text-decoration:underline;width:fit-content}.cell-history{border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:8px 0 0}.ch-query{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ch-label{font-weight:600;font-size:12px}.ch-sheet,.ch-cell{border:1px solid var(--line);border-radius:6px;background:var(--surface);color:inherit;font:inherit;padding:3px 6px}.ch-cell{width:64px}.ch-btn{border:1px solid var(--line);border-radius:6px;background:var(--surface-2);color:inherit;font:inherit;padding:3px 8px;cursor:pointer}.ch-btn:hover{background:var(--accent-soft)}.ch-result-head{font-weight:600;font-size:12px;margin:8px 0 2px}.ch-list{max-height:160px}.ch-list .item{cursor:pointer}.ch-list .item:hover{background:var(--replay-hover)}.ch-list .item.active{background:var(--accent-soft)}.ch-list .item.future{opacity:.55}.ch-list .item.baseline{cursor:default}.ch-badges{display:flex;flex-wrap:wrap;gap:4px}.companion-pill{display:flex;align-items:center;gap:6px;margin:2px 0 6px;padding:3px 8px;border-radius:999px;font-size:11px;border:1px solid var(--line);background:var(--surface-2);color:var(--muted, inherit)}.companion-pill-dot{width:7px;height:7px;border-radius:50%;background:var(--muted, #9aa0a6);flex:0 0 auto}.companion-pill.detected{border-color:#d9a441;color:#a9741a}.companion-pill.detected .companion-pill-dot{background:#e0a33a}.companion-pill.on{border-color:#3fae6b;color:#2f8a54}.companion-pill.on .companion-pill-dot{background:#3fae6b}.companion-pill-label{flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.companion-pill-connect{border:1px solid currentColor;border-radius:6px;background:transparent;color:inherit;font:inherit;font-size:11px;padding:1px 8px;cursor:pointer;flex:0 0 auto}.companion-pill-connect:hover{background:var(--accent-soft)}.pip{position:fixed;right:10px;bottom:10px;width:140px;z-index:40;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#000;box-shadow:0 4px 14px #00000059;cursor:grab;touch-action:none}.pip:active{cursor:grabbing}.pip video{display:block;width:100%;height:auto;pointer-events:none}.pip-hide{position:absolute;top:3px;right:3px;z-index:1;width:20px;height:20px;border:none;border-radius:50%;background:#0000008c;color:#fff;font-size:11px;line-height:1;cursor:pointer}.pip-hide:hover{background:#000c}.pip-show{position:fixed;right:10px;bottom:10px;z-index:40;padding:5px 9px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:12px;cursor:pointer}.kiosk-idbar{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:-12px -12px 12px;padding:8px 12px;background:var(--accent);color:#fff;font-size:12.5px;font-weight:600;border-radius:8px 8px 0 0}.kiosk-idbar .kiosk-sep{opacity:.6}.kiosk-idbar .kiosk-org{font-weight:700}.kiosk-idbar .kiosk-student{margin-left:auto;opacity:.95}.exam-picker{border:1px solid var(--accent);background:var(--accent-soft);border-radius:8px;padding:10px;margin-bottom:10px;display:flex;flex-direction:column;gap:6px}.kiosk-gate{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13px}.kiosk-gate li{display:flex;gap:6px;align-items:baseline}.kiosk-gate li.ok{color:var(--ok)}.kiosk-gate li.bad{color:var(--error)}.kiosk-gate li.muted{color:var(--text-muted)}.kiosk-timer{display:flex;flex-direction:column;align-items:center;gap:2px;margin:8px 0 4px}.kiosk-timer-num{font-size:40px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent);line-height:1}.kiosk-timer.low .kiosk-timer-num{color:var(--error)}.kiosk-timer-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.kiosk-rec{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-muted);margin-bottom:6px}.kiosk-hash{font-size:11px;word-break:break-all;background:var(--surface-2);padding:2px 4px;border-radius:4px}.kiosk-submit.ok strong{color:var(--ok)}
