:root{color-scheme:dark;--bg: #090d12;--surface: #10161e;--surface-2: #151d27;--surface-3: #1b2531;--text: #f6f8fb;--muted: #9aa7b6;--faint: #687687;--line: rgba(255, 255, 255, .09);--primary: #ff6b2c;--primary-strong: #ff7a3e;--primary-soft: rgba(255, 107, 44, .13);--green: #4ed79a;--blue: #58a6ff;--danger: #ff6464;--radius: 16px;--shadow: 0 24px 70px rgba(0, 0, 0, .28);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;overflow-x:clip;background:radial-gradient(circle at 75% -10%,rgba(255,107,44,.08),transparent 27%),var(--bg);color:var(--text);overflow-wrap:anywhere}button,input,select{font:inherit}button,select,input[type=range]{cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible,video:focus-visible{outline:3px solid rgba(255,107,44,.38);outline-offset:3px}[hidden]{display:none!important}svg{width:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.skip-link{position:fixed;top:8px;left:8px;z-index:1000;padding:10px 14px;border-radius:8px;background:var(--text);color:var(--bg);transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.environment-unsupported body>:not(.environment-warning):not(script){display:none!important}.environment-warning{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;min-width:320px;min-height:100dvh;padding:24px;display:grid;place-items:center;overflow-y:auto;background:radial-gradient(circle at 50% 20%,rgba(255,107,44,.1),transparent 34%),var(--bg)}.environment-warning[hidden]{display:none!important}.environment-warning-card{width:min(560px,100%);padding:clamp(28px,6vw,48px);border:1px solid rgba(255,255,255,.12);border-radius:20px;background:linear-gradient(145deg,rgba(255,107,44,.06),transparent 42%),var(--surface);box-shadow:0 36px 100px #00000094;text-align:center}.environment-warning-icon{width:64px;height:64px;margin:0 auto 22px;display:grid;place-items:center;border-radius:18px;background:var(--primary-soft);color:var(--primary)}.environment-warning-icon svg{width:32px}.environment-warning h1{font-size:clamp(28px,5vw,42px);line-height:1.12}.environment-warning h1:focus{outline:none}.environment-warning-card>p:not(.panel-kicker):not(.environment-warning-note){margin:16px auto 0;max-width:460px;color:var(--muted);font-size:16px;line-height:1.7}.environment-warning-actions{margin-top:26px;display:flex;justify-content:center}.environment-warning-actions .button{min-width:180px}.environment-warning details{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;text-align:left}.environment-warning summary{min-height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text);font-weight:700}.environment-warning ul{margin:8px auto 0;padding-left:22px;width:fit-content;line-height:1.8}.environment-warning .environment-warning-note{margin:20px 0 0;color:var(--faint);font-size:12px;line-height:1.6}.noscript-warning{display:grid}.topbar{height:64px;padding:0 max(24px,calc((100vw - 1440px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#090d12e0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:sticky;top:0;z-index:50}.brand{min-height:44px;color:var(--text);text-decoration:none;display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.1em}.brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--primary);color:#111}.brand-mark svg{width:24px;fill:none;stroke-width:1.6}.beta{padding:3px 6px;border:1px solid var(--line);border-radius:5px;color:var(--muted);font-size:9px;letter-spacing:.08em}.privacy-pill,.meta-chip,.status-dot{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.privacy-pill svg{width:17px;color:var(--green)}.topbar-actions{display:flex;align-items:center;gap:14px}.language-switcher{display:inline-flex;align-items:center;padding:3px;border:1px solid var(--line);border-radius:10px;background:#ffffff06}.language-switcher button{min-width:40px;min-height:36px;padding:0 9px;border:0;border-radius:7px;background:transparent;color:var(--muted);font:700 11px/1 inherit;letter-spacing:.04em;cursor:pointer;transition:color .2s ease,background-color .2s ease,box-shadow .2s ease}.language-switcher button:hover{color:var(--text)}.language-switcher button.active{background:var(--primary);color:#111;box-shadow:0 4px 14px #ff99332e}.language-switcher button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.shell{max-width:1440px;margin:0 auto;padding:44px 24px 72px}.intro{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:30px}.intro>div{max-width:720px}.eyebrow,.panel-kicker{margin:0 0 9px;color:var(--primary);font-size:11px;font-weight:800;letter-spacing:.17em}h1{margin:0;font-size:clamp(34px,4vw,58px);line-height:1.05;letter-spacing:-.045em}.intro p:last-child{margin:16px 0 0;color:var(--muted);font-size:16px;line-height:1.7}.stepper{list-style:none;display:flex;gap:0;margin:0;padding:0}.stepper li{min-width:72px;display:grid;grid-template-columns:28px 1fr;align-items:center;gap:8px;color:var(--faint);font-size:12px}.stepper li:not(:last-child):after{content:"";grid-column:1 / -1;width:100%;height:1px;margin:-15px 0 0 28px;background:var(--line)}.stepper span{position:relative;z-index:1;width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--bg);font:600 11px ui-monospace,monospace}.stepper li.active,.stepper li.done{color:var(--text)}.stepper li.active span{border-color:var(--primary);background:var(--primary);color:#111}.stepper li.done span{border-color:var(--green);color:var(--green)}.workspace-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(330px,.75fr);gap:18px;align-items:start}.side-stack{display:grid;gap:18px}.panel{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,rgba(255,255,255,.018),transparent 38%),var(--surface);box-shadow:var(--shadow)}.viewer-panel,.control-panel,.results-panel{padding:22px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.panel-heading.compact{align-items:center}.panel-heading h2{margin:0;font-size:20px;letter-spacing:-.02em}.meta-chip{padding:7px 10px;border-radius:7px;border:1px solid var(--line);background:var(--surface-2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.status-dot i{width:7px;height:7px;border-radius:50%;background:var(--faint);box-shadow:0 0 0 4px #6876871a}.status-dot.ready i{background:var(--green);box-shadow:0 0 0 4px #4ed79a1a}.status-dot.working i{background:var(--primary);box-shadow:0 0 0 4px var(--primary-soft);animation:pulse 1s infinite}.drop-zone{min-height:450px;padding:40px 24px;border:1px dashed rgba(255,255,255,.18);border-radius:12px;background:linear-gradient(#ffffff03,#ffffff01),repeating-linear-gradient(90deg,transparent 0 59px,rgba(255,255,255,.013) 60px),repeating-linear-gradient(0deg,transparent 0 59px,rgba(255,255,255,.013) 60px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transition:border-color .2s,background-color .2s;position:relative}.drop-zone.dragging{border-color:var(--primary);background-color:var(--primary-soft)}.drop-zone input{position:absolute;width:1px;height:1px;opacity:0}.drop-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:16px;background:var(--primary-soft);color:var(--primary);margin-bottom:18px}.drop-icon svg{width:28px}.drop-zone h3{margin:0;font-size:22px}.drop-zone p{margin:9px 0 22px;color:var(--muted);line-height:1.55}.drop-zone>span{margin-top:15px;color:var(--faint);font-size:12px}.button{min-height:44px;border:1px solid transparent;border-radius:9px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;color:var(--text);font-weight:700;font-size:13px;transition:background .2s,border-color .2s,transform .15s,opacity .2s}.button:hover:not(:disabled){transform:translateY(-1px)}.button:active:not(:disabled){transform:translateY(0)}.button:disabled{cursor:not-allowed;opacity:.4}.button.primary{background:var(--primary);color:#17100d}.button.primary:hover:not(:disabled){background:var(--primary-strong)}.button.secondary{border-color:var(--line);background:var(--surface-2)}.button.secondary:hover:not(:disabled){border-color:#fff3;background:var(--surface-3)}.button.full{width:100%}.video-dock-sentinel{height:1px}.video-stage-slot{position:relative}.video-stage{position:relative;overflow:hidden;min-height:360px;display:grid;place-items:center;border-radius:12px;background:#020304}.video-stage video{display:block;width:100%;max-height:660px;object-fit:contain}.mobile-video-controls{min-height:58px;padding:6px 8px;display:grid;grid-template-columns:46px auto minmax(64px,1fr) 46px;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.12);border-top:0;border-radius:0 0 11px 11px;background:#0b1016}.mobile-video-control-button{width:46px;height:46px;padding:0;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--text);touch-action:manipulation}.mobile-video-control-button:active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.mobile-video-control-button svg{width:20px}.mobile-video-time{color:var(--muted);font:10px ui-monospace,SFMono-Regular,monospace;font-variant-numeric:tabular-nums;white-space:nowrap}.mobile-video-seek{--video-progress: 0%;width:100%;min-width:0;height:44px;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;touch-action:manipulation}.mobile-video-seek::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:linear-gradient(90deg,var(--primary) 0 var(--video-progress),var(--surface-3) var(--video-progress) 100%)}.mobile-video-seek::-webkit-slider-thumb{width:20px;height:20px;margin-top:-8px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:3px solid #0b1016;border-radius:50%;background:var(--primary);box-shadow:0 0 0 1px var(--primary)}.mobile-video-seek::-moz-range-track{height:4px;border-radius:999px;background:var(--surface-3)}.mobile-video-seek::-moz-range-progress{height:4px;border-radius:999px;background:var(--primary)}.mobile-video-seek::-moz-range-thumb{width:16px;height:16px;border:2px solid #0b1016;border-radius:50%;background:var(--primary)}.video-player-shell:fullscreen{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);display:flex;flex-direction:column;justify-content:center;background:#000}.video-player-shell:fullscreen .video-stage{width:100%;max-height:calc(100dvh - 62px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border-radius:0}.video-player-shell:fullscreen .video-stage video{max-height:calc(100dvh - 62px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.video-player-shell:fullscreen .mobile-video-controls{flex:0 0 auto;width:100%;border-inline:0;border-radius:0}.video-player-shell.is-docked{position:fixed;top:80px;left:24px;z-index:40;width:min(760px,calc(100vw - 48px));min-height:0;border:1px solid rgba(255,255,255,.16);border-radius:13px;background:#020304;box-shadow:0 28px 80px #00000094,0 0 0 1px #0006;animation:dock-in .2s ease-out}.video-player-shell.is-docked .video-stage video{max-height:480px}.dock-return{position:absolute;z-index:7;top:10px;left:10px;min-height:36px;padding:0 11px;display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:#06090cd6;color:var(--text);font-size:11px;font-weight:700;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dock-return:hover{background:#1b2531f2}.dock-return svg{width:15px}.review-decision{position:absolute;z-index:9;left:50%;bottom:56px;width:min(390px,calc(100% - 28px));padding:12px;transform:translate(-50%);display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(255,255,255,.2);border-radius:11px;background:#080c11f0;box-shadow:0 16px 40px #00000080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.review-decision[hidden]{display:none}.review-decision>span{min-width:0;color:var(--text);font-size:12px;font-weight:700;line-height:1.4}.review-decision>div{flex:0 0 auto;display:flex;gap:7px}.review-decision button{min-height:36px;padding:0 11px;border:1px solid var(--line);border-radius:7px;color:var(--text);font-size:11px;font-weight:700}.review-decision-exclude{background:var(--surface-3)}.review-decision-keep{border-color:var(--primary)!important;background:var(--primary);color:#17100d!important}body.video-docked .results-panel{margin-left:800px}#overlayCanvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none;cursor:crosshair}.calibration-hint{width:100%;margin-top:10px;display:flex;align-items:center;gap:12px;padding:12px;border:1px solid rgba(255,255,255,.13);border-radius:10px;background:var(--surface-2);font-size:12px}.calibration-hint.has-controls{justify-content:space-between}.calibration-copy{min-width:0;display:flex;align-items:center;gap:8px;line-height:1.45}.calibration-copy>svg{width:16px;flex:0 0 auto;color:var(--primary)}.calibration-controls{flex:0 0 auto;display:grid;grid-template-columns:1fr 1fr;gap:8px}.calibration-controls button{min-height:44px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid rgba(255,255,255,.14);border-radius:7px;background:var(--surface-2);color:var(--text);font-size:12px;font-weight:700;transition:background .2s,border-color .2s,opacity .2s}.calibration-controls button:hover:not(:disabled){border-color:#ffffff40;background:var(--surface-3)}.calibration-controls button.primary{border-color:var(--primary);background:var(--primary);color:#17100d}.calibration-controls button.primary:hover:not(:disabled){background:var(--primary-strong)}.calibration-controls button.primary.is-playing{border-color:var(--blue);background:var(--blue);color:#07111d}.calibration-controls button:disabled{cursor:wait;opacity:.55}.calibration-controls svg{width:16px}.mobile-calibration-editor{margin-top:12px;padding:12px;border:1px solid rgba(255,107,44,.3);border-radius:12px;background:linear-gradient(145deg,rgba(255,107,44,.08),transparent 42%),var(--surface-2)}.mobile-calibration-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.mobile-calibration-heading h3{margin:0;font-size:16px;line-height:1.25}.mobile-calibration-heading output{flex:0 0 auto;padding:6px 8px;border:1px solid var(--line);border-radius:7px;color:var(--muted);font:11px ui-monospace,SFMono-Regular,monospace}.mobile-calibration-editor canvas{display:block;width:100%;height:auto;aspect-ratio:16 / 9;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#020304}.mobile-calibration-help{margin:8px 2px 10px;color:var(--muted);font-size:11px;line-height:1.45}.mobile-calibration-controls{display:grid;grid-template-columns:140px minmax(0,1fr);align-items:stretch;gap:8px}.mobile-calibration-pad{width:140px;display:grid;grid-template:repeat(2,44px) / repeat(3,44px);gap:4px}.mobile-calibration-pad button,.mobile-calibration-size-controls button{min-width:44px;min-height:44px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.14);border-radius:9px;background:var(--surface-3);color:var(--text);font-size:18px;font-weight:700;touch-action:manipulation}.mobile-calibration-pad button:active,.mobile-calibration-size-controls button:active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.mobile-calibration-pad button[data-hoop-adjust=up]{grid-column:2}.mobile-calibration-pad button[data-hoop-adjust=left]{grid-column:1;grid-row:2}.mobile-calibration-pad button[data-hoop-adjust=right]{grid-column:3;grid-row:2}.mobile-calibration-pad button[data-hoop-adjust=down]{grid-column:2;grid-row:2}.mobile-calibration-size-controls{display:grid;grid-template-rows:repeat(2,44px);gap:4px}.mobile-calibration-size-controls>div{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 44px 44px;align-items:center;gap:4px}.mobile-calibration-size-controls span{min-width:0;color:var(--muted);font-size:11px;font-weight:700;line-height:1.2}.mobile-calibration-actions{margin-top:10px;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:8px}.mobile-calibration-actions .button{min-height:44px;padding-inline:10px}.processing-shade{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;background:#040608d1;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.processing-shade span:last-child{color:var(--muted);font-size:13px}.spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.timeline{margin-top:15px}.timeline-track{height:8px;border-radius:10px;background:var(--surface-3);position:relative;overflow:visible}.timeline-progress{position:absolute;inset:0 auto 0 0;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--primary),#ffb25a)}#timelineMarkers{position:absolute;top:0;right:0;bottom:0;left:0}.timeline-marker{position:absolute;top:-4px;width:3px;height:16px;border-radius:2px;background:var(--green);box-shadow:0 0 8px #4ed79a99}.timeline-marker.is-suspected{background:#f2b84b;box-shadow:0 0 8px #f2b84ba6}.camera-marker{position:absolute;top:-7px;width:14px;height:14px;padding:0;transform:translate(-7px) rotate(45deg);border:2px solid #07111d;border-radius:3px;background:var(--blue);box-shadow:0 0 10px #58a6ffa6}.camera-marker:hover,.camera-marker:focus-visible{z-index:2;background:#8bc2ff}.timeline-labels{display:flex;justify-content:space-between;margin-top:8px;color:var(--faint);font:11px ui-monospace,monospace}.control-empty{min-height:340px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;color:var(--muted)}.control-empty svg{width:36px;color:var(--faint)}.control-empty p{max-width:240px;margin:0;line-height:1.6}.setting-block{padding:17px 0;border-top:1px solid var(--line)}.setting-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px;color:var(--text);font-size:13px;font-weight:700}.text-button{min-height:36px;padding:0;border:0;background:transparent;color:var(--primary);font-size:12px}.calibration-status{padding:12px;border-radius:9px;display:flex;align-items:center;gap:11px;border:1px solid var(--line);background:var(--surface-2)}.calibration-status svg{width:22px;flex:0 0 auto}.calibration-status.pending{color:var(--muted)}.calibration-status.complete{border-color:#4ed79a42;background:#4ed79a14;color:var(--green)}.calibration-status.recalibrate{border-color:#58a6ff57;background:#58a6ff1a;color:var(--blue)}.calibration-status div{display:flex;flex-direction:column;gap:3px}.calibration-status strong{color:var(--text);font-size:13px}.calibration-status span{color:var(--muted);font-size:11px}input[type=range]{width:100%;height:4px;border-radius:8px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(90deg,var(--primary) 0 51%,var(--surface-3) 51%)}input[type=range]::-webkit-slider-thumb{width:17px;height:17px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:3px solid var(--surface);border-radius:50%;background:var(--primary);box-shadow:0 0 0 1px var(--primary)}.range-labels{display:flex;justify-content:space-between;margin-top:8px;color:var(--faint);font-size:10px}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px}.two-cols label{color:var(--muted);font-size:11px}select{width:100%;min-height:42px;margin-top:7px;padding:0 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--text);font-size:12px}.analysis-start-setting .setting-title{margin-bottom:8px}.time-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.time-input-row input{min-width:0;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--text);font:700 13px ui-monospace,SFMono-Regular,monospace;font-variant-numeric:tabular-nums}.time-input-row input[aria-invalid=true]{border-color:var(--danger)}.time-input-row .button{padding-inline:12px;white-space:nowrap}.field-help{margin:8px 2px 0;color:var(--faint);font-size:10px;line-height:1.5}.field-help.error{color:var(--danger)}.diagnostic-setting{display:grid;gap:12px}.diagnostic-toggle{min-height:52px;display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:10px;cursor:pointer}.diagnostic-toggle>input{width:1px;height:1px;position:absolute;opacity:0}.diagnostic-toggle-track{width:36px;height:20px;padding:2px;grid-column:1;border:1px solid var(--line);border-radius:999px;background:var(--surface-3);transition:border-color .2s,background .2s}.diagnostic-toggle-track i{display:block;width:14px;height:14px;border-radius:50%;background:var(--muted);transition:transform .2s,background .2s}.diagnostic-toggle>input:checked+.diagnostic-toggle-track{border-color:#58a6ff73;background:#58a6ff2e}.diagnostic-toggle>input:checked+.diagnostic-toggle-track i{transform:translate(16px);background:var(--blue)}.diagnostic-toggle>input:focus-visible+.diagnostic-toggle-track{outline:3px solid rgba(88,166,255,.3);outline-offset:3px}.diagnostic-toggle>span:last-child{grid-column:2;display:flex;flex-direction:column;gap:3px}.diagnostic-toggle:has(input:disabled){cursor:not-allowed;opacity:.55}.diagnostic-toggle strong{font-size:13px}.diagnostic-toggle small{color:var(--muted);font-size:10px;line-height:1.45}.diagnostic-actions{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px}.diagnostic-overlay-option{min-height:44px;padding:0 11px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--muted);font-size:11px;font-weight:700;cursor:pointer}.diagnostic-overlay-option:has(input:disabled){cursor:not-allowed;opacity:.45}.diagnostic-overlay-option input{width:16px;height:16px;margin:0;accent-color:var(--blue)}.diagnostic-status{margin:0;min-height:32px;padding:8px 10px;border-left:2px solid var(--blue);border-radius:0 7px 7px 0;background:#58a6ff12;color:var(--muted);font:10px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums}.analysis-start-marker{position:absolute;top:-6px;width:2px;height:20px;padding:0;transform:translate(-1px);border:0;background:var(--primary);box-shadow:0 0 8px #ff6b2ca6}.analysis-start-marker:after{content:"";position:absolute;top:-1px;left:50%;width:7px;height:7px;border-radius:50%;background:var(--primary);transform:translate(-50%,-50%)}.microcopy{margin:12px 5px 0;color:var(--faint);font-size:11px;line-height:1.55;text-align:center}.stats-panel{padding:17px 20px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat{min-width:0;display:flex;flex-direction:column;gap:7px}.stat:not(:last-child){border-right:1px solid var(--line)}.stat span{color:var(--muted);font-size:10px}.stat strong{font:700 21px ui-monospace,SFMono-Regular,monospace}.accuracy-panel{padding:18px 20px}.accuracy-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:15px}.accuracy-heading h2{margin:0;font-size:18px;letter-spacing:-.02em}.accuracy-status{flex:0 0 auto;padding:5px 8px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:10px}.accuracy-status.ready{border-color:#4ed79a3d;background:#4ed79a14;color:var(--green)}.accuracy-grid{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line)}.accuracy-stat{min-width:0;padding:14px 10px;display:flex;flex-direction:column;gap:7px}.accuracy-stat:first-child{padding-left:0}.accuracy-stat:last-child{padding-right:0}.accuracy-stat:not(:last-child){border-right:1px solid var(--line)}.accuracy-stat span{color:var(--muted);font-size:10px;white-space:nowrap}.accuracy-stat strong{font:700 21px ui-monospace,SFMono-Regular,monospace;font-variant-numeric:tabular-nums}.accuracy-stat.featured strong{color:var(--green)}.accuracy-note{margin:12px 0 0;color:var(--faint);font-size:11px;line-height:1.55}.results-panel{margin-top:18px}.results-heading{margin-bottom:14px}.results-heading>div{max-width:700px}.results-heading p:last-child{margin:7px 0 0;color:var(--muted);font-size:13px}.candidate-sticky-stack{position:sticky;top:76px;z-index:30;margin-bottom:12px}.candidate-toolbar{position:relative;padding:12px;border:1px solid rgba(255,255,255,.13);border-radius:12px;background:#10161ef0;box-shadow:0 16px 40px #00000047;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.candidate-toolbar-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}.candidate-toolbar-summary{min-width:145px;display:flex;flex-direction:column;gap:3px}.candidate-toolbar-summary>span{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.12em}.candidate-toolbar-summary strong{font:700 12px ui-monospace,SFMono-Regular,monospace;font-variant-numeric:tabular-nums}.candidate-toolbar-summary small{color:var(--faint);font-size:10px;font-weight:600;line-height:1.35}.candidate-review-options{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.candidate-actions{padding-top:10px;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.candidate-actions .button{min-height:42px;padding-inline:13px;white-space:nowrap}.candidate-actions .primary{flex:0 0 auto;min-width:132px}.preview-speed{min-height:44px;padding:0 10px 0 13px;display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--muted);font-size:12px;font-weight:700}.preview-speed select{width:auto;min-width:65px;min-height:32px;margin:0;border:0;background:var(--surface-3);color:var(--text);font-weight:700}.preview-speed:has(select:disabled){opacity:.4}.candidate-more-actions{position:relative}.candidate-more-actions>summary{min-height:42px;padding:0 12px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--text);cursor:pointer;font-size:13px;font-weight:700;list-style:none;-webkit-user-select:none;user-select:none}.candidate-more-actions>summary::-webkit-details-marker{display:none}.candidate-more-actions>summary:hover,.candidate-more-actions[open]>summary{border-color:#ffffff38;background:var(--surface-3)}.candidate-more-actions>summary svg{width:18px}.candidate-more-panel{position:absolute;z-index:60;top:calc(100% + 8px);right:0;width:min(600px,calc(100vw - 56px));padding:10px;display:grid;gap:8px;border:1px solid rgba(255,255,255,.14);border-radius:11px;background:var(--surface);box-shadow:0 22px 55px #0000008c}.candidate-more-panel>.button{width:100%}.export-options{position:relative}.export-options summary{min-height:42px;padding:0 11px;display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--text);cursor:pointer;font-size:13px;font-weight:700;list-style:none;-webkit-user-select:none;user-select:none}.export-options summary::-webkit-details-marker{display:none}.export-options summary:hover{border-color:#fff3;background:var(--surface-3)}.export-options summary>svg{width:17px;color:var(--muted)}.export-options .export-options-chevron{width:14px;transition:transform .2s ease}.export-options[open] .export-options-chevron{transform:rotate(180deg)}.export-options-panel{width:100%;margin-top:8px;padding:10px;border:1px solid rgba(255,255,255,.1);border-radius:9px;background:var(--surface-2)}.export-settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.export-setting{min-height:44px;padding:0 9px 0 13px;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--muted);font-size:12px;font-weight:700}.export-setting select{width:auto;min-width:82px;min-height:32px;margin:0;border:0;background:var(--surface-3);color:var(--text);font-weight:700}.export-setting:has(select:disabled){opacity:.4}.export-setting small{margin-left:3px;color:var(--faint);font-size:9px;font-weight:600;white-space:nowrap}.export-estimate{width:100%;min-height:40px;margin-top:8px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(78,215,154,.2);border-radius:9px;background:#4ed79a0f;color:var(--green);font:700 11px ui-monospace,SFMono-Regular,monospace;font-variant-numeric:tabular-nums;text-align:center}.results-empty{min-height:225px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.results-empty p{margin:7px 0 0;color:var(--muted);font-size:13px}.empty-orbit{width:50px;height:50px;margin-bottom:15px;display:grid;place-items:center;border:1px dashed rgba(255,255,255,.15);border-radius:50%}.empty-orbit span{width:9px;height:9px;border-radius:50%;background:var(--primary);box-shadow:0 0 15px var(--primary)}.results-list{display:grid;gap:7px}.result-row{min-height:60px;display:grid;grid-template-columns:auto 68px 1fr auto;gap:10px;align-items:center;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.result-row:hover{border-color:#ffffff29}.result-row.is-playing{border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 3px 0 var(--primary)}.result-row.is-suspected-pending{border-color:#f2b84bb3;background:#f2b84b14;box-shadow:inset 3px 0 #f2b84b}.result-row.is-suspected-pending .confidence i{background:#f2b84b}.result-row.is-suspected-pending .confidence span{color:#f2c76d}.result-row.is-excluded{opacity:.55}.result-row.is-excluded .result-time,.result-row.is-excluded .confidence{text-decoration:line-through;text-decoration-color:var(--faint)}.result-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.result-select{width:44px;height:44px;display:grid;place-items:center;cursor:pointer}.result-time{font:700 16px ui-monospace,SFMono-Regular,monospace}.confidence{display:flex;flex-direction:column;gap:5px}.confidence>div{height:4px;border-radius:4px;overflow:hidden;background:var(--surface-3)}.confidence i{display:block;height:100%;background:var(--green)}.confidence span{color:var(--muted);font-size:10px}.result-controls{display:flex;gap:8px}.icon-button{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--muted)}.icon-button:hover{background:var(--surface-3);color:var(--text)}.icon-button.danger:hover{color:var(--danger)}.notice{margin-top:18px;padding:18px 20px;display:flex;align-items:flex-start;gap:13px;border:1px solid rgba(78,215,154,.16);border-radius:12px;background:#4ed79a0b}.notice svg{color:var(--green);flex:0 0 auto}.notice strong{font-size:13px}.notice p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.6}.build-footer{margin-top:28px;color:var(--faint);text-align:center}.build-footer p{margin:0;font:500 12px/1.65 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;letter-spacing:.015em}.toast{position:fixed;left:50%;bottom:28px;z-index:100;max-width:min(520px,calc(100vw - 32px));padding:12px 16px;border:1px solid var(--line);border-radius:9px;background:#202a36;box-shadow:var(--shadow);color:var(--text);font-size:13px;opacity:0;transform:translate(-50%,18px);pointer-events:none;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translate(-50%)}.draft-dialog{width:min(520px,calc(100vw - 32px));padding:28px;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:linear-gradient(145deg,rgba(255,107,44,.055),transparent 42%),var(--surface);color:var(--text);box-shadow:0 36px 100px #000000b8}.draft-dialog::backdrop{background:#020407c7;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.draft-dialog[open]{animation:dialog-in .2s ease-out}.draft-dialog-icon{width:52px;height:52px;margin-bottom:18px;display:grid;place-items:center;border-radius:14px;background:var(--primary-soft);color:var(--primary)}.draft-dialog-icon svg{width:27px}.draft-dialog h2{margin:0;font-size:24px;letter-spacing:-.025em}.draft-dialog>p:not(.panel-kicker):not(.draft-footnote){margin:10px 0 20px;color:var(--muted);line-height:1.65}.draft-summary{margin:0;padding:4px 0;display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line)}.draft-summary div{min-width:0;padding:14px 12px}.draft-summary div:not(:last-child){border-right:1px solid var(--line)}.draft-summary dt{margin-bottom:6px;color:var(--muted);font-size:11px}.draft-summary dd{margin:0;font:700 14px ui-monospace,SFMono-Regular,monospace;overflow-wrap:anywhere}.draft-dialog-actions{margin-top:22px;display:grid;grid-template-columns:1fr 1.35fr;gap:10px}.draft-reuse-calibration{grid-column:1 / -1;min-height:44px}.draft-footnote{margin:12px 0 0;color:var(--faint);font-size:11px;line-height:1.55;text-align:center}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.45}}@keyframes dock-in{0%{opacity:0;transform:translateY(-8px) scale(.98)}}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px) scale(.98)}}@media(max-width:1160px){.video-player-shell.is-docked{width:560px}.video-player-shell.is-docked .video-stage video{max-height:360px}body.video-docked .results-panel{margin-left:588px}body.video-docked .candidate-toolbar-top{align-items:stretch;flex-direction:column}body.video-docked .candidate-review-options{justify-content:stretch}body.video-docked .candidate-review-options>label{flex:1 1 180px;justify-content:space-between}body.video-docked .candidate-actions>*{flex:1 1 140px}}@media(max-width:980px){.intro{align-items:flex-start;flex-direction:column}.workspace-grid{grid-template-columns:1fr}.side-stack{grid-template-columns:1.3fr .7fr}.video-player-shell.is-docked{left:16px;width:min(420px,calc(100vw - 32px))}body.video-docked .results-panel{margin-left:0}}@media(max-width:700px){.topbar{height:calc(60px + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left))}.brand{gap:8px;font-size:14px}.brand-mark{width:32px;height:32px}.privacy-pill{width:44px;height:44px;justify-content:center;font-size:0}.privacy-pill svg{width:20px}.topbar-actions{gap:6px}.language-switcher{padding:2px}.language-switcher button{min-width:36px;min-height:38px;padding-inline:7px}.shell{padding:24px max(12px,env(safe-area-inset-right)) calc(40px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.intro{gap:24px;margin-bottom:24px}h1{font-size:clamp(32px,10vw,42px);line-height:1.08}.intro p:last-child{margin-top:12px;font-size:15px;line-height:1.65}.stepper{width:100%}.stepper li{flex:1;min-width:0;grid-template-columns:1fr;justify-items:center;gap:6px;font-size:11px}.stepper li:not(:last-child):after{width:calc(100% - 14px);margin:-28px 0 0 calc(50% + 14px)}.stepper b{display:block;font-size:11px;font-weight:600}.workspace-grid,.side-stack{gap:12px}.panel{border-radius:12px;box-shadow:0 14px 40px #00000038}.viewer-panel,.control-panel,.results-panel{padding:16px 14px}.panel-heading{gap:10px;margin-bottom:14px}.panel-heading h2{font-size:18px}.meta-chip{max-width:46%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drop-zone{min-height:300px;padding:28px 16px}.drop-zone h3{font-size:20px}.drop-zone p{margin-bottom:18px}.drop-zone .button{width:100%;max-width:260px}.button,.calibration-controls button,.candidate-actions .button,.export-options summary{min-height:48px;touch-action:manipulation}.text-button{min-height:44px}.video-stage{min-height:0;aspect-ratio:16 / 9}.video-stage video{max-height:min(62dvh,520px)}.video-stage:has(+.mobile-video-controls:not([hidden])){border-radius:11px 11px 0 0}.calibration-hint.has-controls{align-items:stretch;flex-direction:column}.calibration-controls{width:100%}.mobile-calibration-editor:not([hidden]){display:block}.side-stack{grid-template-columns:1fr}.control-empty{min-height:220px}.two-cols,.time-input-row{grid-template-columns:1fr}select,.time-input-row input{min-height:48px;font-size:16px}.time-input-row .button{width:100%}.stats-panel{padding:16px 14px}.stat{gap:5px;text-align:center}.stat strong,.accuracy-stat strong{font-size:19px}.accuracy-panel{padding:16px 14px}.accuracy-stat{padding-inline:7px}.accuracy-stat span{white-space:normal;line-height:1.35}.results-panel{margin-top:12px}.results-heading p:last-child{font-size:14px;line-height:1.6}.candidate-sticky-stack{position:-webkit-sticky;position:sticky;top:calc(60px + env(safe-area-inset-top));z-index:42;margin:0 -4px 8px;padding:4px;border-radius:13px;background:#090d12f5;box-shadow:0 14px 36px #0000007a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mobile-review-player-slot,body.video-docked .mobile-review-player-slot{position:static;margin:0 0 6px;padding:0;border-radius:11px;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}body.video-docked .results-panel{overflow:visible}.video-player-shell.is-mobile-review{width:100%;border:1px solid rgba(255,255,255,.14);border-radius:11px;overflow:hidden;background:#020304}.video-player-shell.is-mobile-review .video-stage{min-height:0;aspect-ratio:16 / 9;border-radius:10px 10px 0 0}.video-player-shell.is-mobile-review .video-stage video{max-height:min(26dvh,190px)}.video-player-shell.is-mobile-review .dock-return{width:44px;min-height:44px;padding:0;justify-content:center;font-size:0}.video-player-shell.is-mobile-review .dock-return svg{width:18px}.candidate-toolbar{padding:8px;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.candidate-toolbar-top,body.video-docked .candidate-toolbar-top{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding-bottom:8px}.candidate-toolbar-summary{min-width:0}.candidate-toolbar-summary>span{display:none}.candidate-toolbar-summary strong{font-size:11px}.candidate-toolbar-summary small{overflow:hidden;font-size:10px;white-space:nowrap;text-overflow:ellipsis}.candidate-review-options,body.video-docked .candidate-review-options{width:auto;display:block}.preview-speed{flex:0 0 auto;min-height:44px;padding:0 6px;gap:4px}.preview-speed>span{display:none}.preview-speed select{min-width:58px;min-height:34px;padding-inline:7px;font-size:16px}.candidate-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));justify-content:stretch;gap:6px;padding-top:8px}.candidate-actions>*{min-width:0;width:100%}.candidate-actions .primary{min-width:0}.candidate-actions .button{min-height:44px;padding-inline:6px;font-size:11px}.candidate-actions .button svg{width:17px}.candidate-actions #playAllButton,.candidate-actions #addMarkerButton{grid-column:span 2}.candidate-actions #exportButton{grid-column:span 3}.candidate-actions .candidate-more-actions{grid-column:span 1}.candidate-more-actions>summary{min-height:44px;padding-inline:6px;gap:5px;font-size:11px}.candidate-more-actions>summary svg{width:17px}.candidate-more-panel{top:calc(100% + 7px);right:-1px;width:min(420px,calc(100vw - 32px));max-height:min(52dvh,430px);overflow-y:auto;padding:8px}.candidate-more-panel>.button{min-height:44px}.candidate-more-panel .export-options summary{min-height:44px;padding-inline:10px;justify-content:space-between;font-size:11px}.export-options-panel{width:100%;margin-top:7px;padding:8px;box-shadow:none}.export-settings-grid{grid-template-columns:1fr}.export-setting{min-height:48px;justify-content:space-between}.export-setting select{min-height:36px;font-size:16px}.results-empty{min-height:200px;padding:20px 4px}.results-empty p{line-height:1.55}.results-list{gap:6px}.result-row{min-height:62px;grid-template-columns:44px 64px minmax(0,1fr) auto;gap:6px;padding:7px 8px}.result-row input[type=checkbox]{width:20px;height:20px}.result-time{font-size:13px;white-space:nowrap}.confidence{min-width:0;gap:4px}.confidence span{overflow:hidden;font-size:9px;white-space:nowrap;text-overflow:ellipsis}.result-controls{grid-column:auto;display:flex;gap:8px}.icon-button{width:44px;height:44px}.review-decision{bottom:48px;align-items:stretch;flex-direction:column}.review-decision>div{display:grid;grid-template-columns:1fr 1fr}.review-decision button{min-height:44px}.notice{margin-top:12px;padding:16px 14px}.toast{bottom:calc(16px + env(safe-area-inset-bottom))}.draft-dialog{padding:22px 18px}.draft-dialog{max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto}.draft-summary{grid-template-columns:1fr}.draft-summary div{display:flex;justify-content:space-between;gap:16px}.draft-summary div:not(:last-child){border-right:0;border-bottom:1px solid var(--line)}.draft-dialog-actions{grid-template-columns:1fr}.draft-reuse-calibration{grid-column:auto}.draft-dialog-actions .primary{order:-1}.diagnostic-actions{grid-template-columns:1fr}.diagnostic-actions .button{width:100%}}@media(max-width:380px){.beta{display:none}.shell{padding-inline:10px}.viewer-panel,.control-panel,.results-panel{padding-inline:12px}.preview-speed{width:auto}.mobile-video-controls{grid-template-columns:44px auto minmax(48px,1fr) 44px;gap:5px;padding-inline:6px}.mobile-video-control-button{width:44px;height:44px}.mobile-video-time{font-size:9px}}@media(max-width:950px)and (max-height:500px){.shell{padding-top:18px}.intro{gap:16px}.video-stage video{max-height:74dvh}select,.time-input-row input,.preview-speed select,.export-setting select{font-size:16px}.candidate-actions .button,.export-options summary{min-height:44px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
