:root{color-scheme:dark;--bg:#050c27;--panel:#101527;--line:#302d4d;--muted:#a8aec9;--purple:#b643ff;--cyan:#26a1ec;--pink:#f92880;--text:#f5f4ff}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 52% -12%,#26123e 0,transparent 44%),var(--bg);color:var(--text);font:15px/1.55 system-ui,-apple-system,sans-serif}main{max-width:1240px;margin:auto;padding:40px 24px 60px}header{padding:12px 0 18px}.eyebrow{font-size:11px;letter-spacing:.15em;font-weight:750;color:#87d6ff;margin-bottom:12px}h1{font-size:clamp(32px,4.5vw,52px);line-height:1.1;margin:0 0 14px;letter-spacing:-.04em;background:linear-gradient(100deg,#fff 10%,#ddbaff 55%,#8bd9ff);background-clip:text;color:transparent}h2{font-size:21px;margin:0;letter-spacing:-.02em}h3{font-size:14px;font-weight:600;margin:12px 0 8px;overflow-wrap:anywhere}.lede{color:var(--muted);font-size:17px;margin:0 0 20px}.panel{background:linear-gradient(145deg,#151a32f7,#0d1227fa);border:1px solid var(--line);border-radius:16px;padding:24px;margin-top:20px;box-shadow:0 12px 32px #0002}.compact{padding:18px 24px}.compact h2{font-size:16px;margin-bottom:12px}.toolbar,.actions,.tabs,.section-heading{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.toolbar{justify-content:space-between}.actions{margin-top:16px}.tabs{margin:18px 0}.section-heading{margin-bottom:16px}.step{width:32px;height:32px;display:grid;place-items:center;background:#b643ff18;border:1px solid #b643ff55;border-radius:10px;font-size:12px;color:#dfb1ff;font-weight:700}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full{grid-column:1/-1}.field{display:flex;flex-direction:column;gap:7px;font-weight:600}.field small{font-weight:400}.grow{flex:1}.push{margin-left:auto}.hint,.muted,small{color:var(--muted)}.hint{font-size:13px}.error{color:#ff93be;white-space:pre-wrap}.badge{font-size:11px;font-weight:700;padding:4px 10px;border:1px solid #4a4265;border-radius:50px;color:#d8c7ef;background:#171c36}.badge.strong{color:#96e9e1;border-color:#2692a166}.badge.review{color:#ffd38b;border-color:#826230}.badge.saved{color:#a4dafd;border-color:#3d6e94}label{font-size:13px}input,select,button{font:inherit;color:inherit}input[type=text],input[type=number],select{background:#091026;border:1px solid var(--line);border-radius:8px;padding:9px 11px;min-width:0}input[type=text]{width:100%}input[type=number]{width:82px}#review-offset{width:125px}input[type=file]{width:100%;background:#0b1128;border:1px dashed #524a72;border-radius:10px;padding:16px;font-size:13px}input[type=checkbox]{accent-color:var(--purple);width:17px;height:17px}input[type=range]{accent-color:var(--purple)}.toggle{display:flex;align-items:center;gap:8px;white-space:nowrap}button{border:0;border-radius:9px;padding:11px 16px;background:linear-gradient(105deg,var(--purple),#793deb 57%,var(--cyan));font-weight:650;font-size:13px;cursor:pointer;box-shadow:0 5px 16px #793deb22}button:disabled{opacity:.42;cursor:default;box-shadow:none}button.secondary{background:#191f3a;border:1px solid #393450;box-shadow:none;font-weight:550}button.secondary:hover:enabled,button.secondary.active{border-color:var(--purple);background:#272045}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}a{color:#a9dfff;font-size:13px;text-decoration:none}a:hover{text-decoration:underline}progress{appearance:none;width:100%;height:7px;border:none;border-radius:8px;overflow:hidden;background:#25263f;margin-top:18px}progress::-webkit-progress-bar{background:#25263f}progress::-webkit-progress-value{background:linear-gradient(90deg,var(--purple),var(--cyan))}progress::-moz-progress-bar{background:linear-gradient(90deg,var(--purple),var(--cyan))}.history{display:flex;gap:9px;overflow-x:auto;padding-bottom:3px}.history button{min-width:170px;max-width:250px;text-align:left;flex-shrink:0}.history small{display:block;font-size:11px;margin-top:4px}.cal-stage{position:relative;margin-top:20px;background:#030719;border-radius:10px;overflow:hidden;max-width:900px}.cal-stage img,.cal-stage video{display:block;width:100%;height:100%;object-fit:contain}.cal-stage canvas{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair;touch-action:none}.cal-stage.disabled canvas{pointer-events:none}.diagnostic{width:min(100%,700px);border:1px solid var(--line);border-radius:10px}details{margin-top:18px}summary{cursor:pointer;color:#d4c5eb;font-size:14px;font-weight:600}details[open]>summary{margin-bottom:16px}.pair-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.pair-card{background:linear-gradient(135deg,#191a35,#121b32);color:var(--text);border:1px solid #3a3354;padding:16px;text-align:left;box-shadow:none;overflow:hidden}.pair-card:hover,.pair-card.active{border-color:var(--purple)}.pair-card .names{font-size:13px;overflow-wrap:anywhere;margin:10px 0}.pair-card .names span{display:block}.pair-card .names span+span{color:#b6cae5}.pair-card small{display:block}.unmatched-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:10px 0}.unmatched-row span{overflow-wrap:anywhere;font-size:13px}.video-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}.video-pair video{width:100%;aspect-ratio:16/9;background:#020619;object-fit:contain;border:1px solid var(--line);border-radius:10px}.pair-controls{display:flex;align-items:center;gap:9px;margin-top:18px;flex-wrap:wrap}.pair-controls input{flex:1;min-width:140px}.pair-controls span{font-size:12px;min-width:120px;text-align:right;font-variant-numeric:tabular-nums}.overlap-bars{margin-top:16px}.interval-row{display:grid;grid-template-columns:85px 1fr;gap:12px;margin-top:10px;align-items:center;font-size:11px;color:var(--muted)}.interval-track{height:12px;background:#292b42;border-radius:5px;overflow:hidden;display:flex}.interval-shared{background:linear-gradient(90deg,#b643ff99,#26a1ecbb)}.interval-label{margin-left:97px;font-size:11px;color:var(--muted);margin-top:2px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line)}th{color:#bab3d2;font-weight:550;white-space:nowrap}td:first-child,td:nth-child(2){max-width:260px;overflow-wrap:anywhere}td button{padding:6px 9px;font-size:11px}.settings input,.settings select{margin-left:5px}.plots{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.plots img{width:100%;border-radius:9px}.export-row{border-top:1px solid var(--line);padding:15px 0}.export-row .actions{margin-top:8px}.export-row p{font-size:13px;margin:4px 0}.hidden{display:none!important}footer{color:#737f9f;font-size:12px;padding-top:32px;text-align:center}@media(max-width:720px){main{padding:20px 14px 40px}.panel{padding:18px}.grid,.video-pair{grid-template-columns:1fr}.pair-controls input{flex-basis:100%;order:4}.push{margin-left:0}input[type=file]{padding:12px}.settings label{flex:1;min-width:140px}.toolbar{font-size:12px}.pair-controls button{padding:9px}.cal-stage{max-width:100%}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* Grid tracks and long camera filenames must shrink inside narrow panels. */
.grid,.video-pair{grid-template-columns:repeat(2,minmax(0,1fr))}.field,.grid>*,.video-pair>*{min-width:0}.field select{width:100%}a{overflow-wrap:anywhere}.export-row .actions{align-items:flex-start}.video-pair.stacked{grid-template-columns:minmax(0,1fr)}.motion-synced-preview{border-top:1px solid var(--line);padding-top:10px;margin-top:18px}
@media(max-width:720px){.grid,.video-pair{grid-template-columns:minmax(0,1fr)}}
.video-file-list{max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:9px}.video-file-row{display:flex;align-items:center;gap:9px;padding:9px 10px;border-bottom:1px solid var(--line);font-size:12px}.video-file-row span{flex:1;overflow-wrap:anywhere}.video-file-row small{font-size:10px;white-space:normal;max-width:44%;color:var(--muted)}.video-file-row small.video-identifiers{max-width:100%;flex-basis:100%;margin-left:27px}.video-file-row input{flex-shrink:0}
.timing-suggestion-list{display:grid;gap:8px;margin-top:10px}.timing-suggestion-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(260px,1.5fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:9px}.timing-suggestion-row span{overflow-wrap:anywhere}.timing-suggestion-row small{color:var(--muted)}@media(max-width:760px){.timing-suggestion-row{grid-template-columns:1fr}.video-file-row{flex-wrap:wrap}.video-file-row small{max-width:calc(100% - 35px)}}
.actions>label,select{max-width:100%}.panel p,.history button{overflow-wrap:anywhere}
.folder-input-row{display:flex;gap:8px}.folder-input-row input{flex:1}.folder-input-row button{flex:none}.browse-folder{padding:9px 12px}#folder-picker{width:min(720px,calc(100vw - 32px));max-height:min(80vh,760px);padding:24px;background:#11172d;color:var(--text);border:1px solid #494264;border-radius:16px;box-shadow:0 24px 90px #000b}#folder-picker::backdrop{background:#030611c9;backdrop-filter:blur(3px)}.folder-picker-heading,.folder-picker-footer,.folder-current{display:flex;align-items:center;justify-content:space-between;gap:12px}.folder-picker-heading h2{margin-top:5px}.folder-current{justify-content:flex-start;margin:18px 0 10px}.folder-current code{min-width:0;overflow-wrap:anywhere;color:#bcd8ff;font-size:12px}.folder-entries{max-height:42vh;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#090f23}.folder-entry{display:flex;align-items:center;gap:10px;min-height:44px;padding:5px 10px;border-bottom:1px solid #ffffff0d}.folder-entry:last-child{border-bottom:0}.folder-entry-icon{color:var(--cyan);width:18px}.folder-entry-name{min-width:0;flex:1;overflow-wrap:anywhere;font-size:13px}.folder-entry small{white-space:nowrap}.folder-entry button{padding:6px 10px;font-size:11px}.folder-video{color:#aab5d2}.folder-video .folder-entry-icon{color:#9f73d2}.folder-picker-footer{margin-top:16px}.folder-picker-footer .muted{font-size:12px}
.folder-network-shares{display:grid;gap:8px;padding:12px;border:1px solid #343451;border-radius:10px;background:#16172e}.folder-network-shares>span{font-size:12px}.folder-network-shares>div{display:flex;flex-wrap:wrap;gap:8px}.folder-network-shares button{padding:7px 11px}
@media(max-width:520px){#folder-picker{padding:18px}.folder-picker-footer{align-items:flex-start;flex-direction:column}.folder-current{align-items:flex-start}}

.motion-chart{margin:18px 0;background:#090f23;border:1px solid var(--line);border-radius:12px;padding:12px 14px}.motion-chart h3{margin:0 0 6px}.motion-chart canvas{display:block;width:100%;height:230px;touch-action:none;cursor:crosshair}.motion-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;margin-bottom:5px}.motion-legend label{display:flex;align-items:center;gap:5px}.motion-legend input{accent-color:currentColor}.motion-legend small{color:var(--muted);font-variant-numeric:tabular-nums}#motion-cursor{font-variant-numeric:tabular-nums}#motion-note{border-left:2px solid var(--cyan);padding-left:12px}

#radio-stabilize-media{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-top:12px}#radio-stabilize-media video,#radio-stabilize-media canvas{width:100%;background:#020619;border:1px solid var(--line);border-radius:10px;align-self:center}#radio-stabilize-status{grid-column:1/-1;margin:0}@media(max-width:720px){#radio-stabilize-media{grid-template-columns:minmax(0,1fr)}}

.extraction-progress-list{display:grid;gap:12px}.extraction-progress-row{padding:10px 12px;border:1px solid var(--line);border-radius:9px;display:grid;gap:4px}.extraction-progress-row span{font-size:12px;overflow-wrap:anywhere}.extraction-progress-row small{color:var(--muted)}#motion-progress-bar{width:100%;margin-top:12px}

.portrait-workspace{display:grid;grid-template-columns:minmax(240px,380px) minmax(0,1fr);gap:24px;margin-top:16px}.portrait-preview canvas{display:block;width:100%;aspect-ratio:9/16;background:#000;border:1px solid var(--line);border-radius:10px}.portrait-settings fieldset{border:1px solid var(--line);border-radius:10px;padding:12px;margin:14px 0}.portrait-settings legend{font-size:13px;color:var(--muted);padding:0 6px}.portrait-settings .grid{gap:12px}.portrait-settings input[type=range]{width:100%}.portrait-preview{align-self:start;position:sticky;top:16px}#portrait-time{font-variant-numeric:tabular-nums}@media(max-width:820px){.portrait-workspace{grid-template-columns:minmax(0,1fr)}.portrait-preview{width:min(100%,360px);margin:auto;position:static}}
.audio-chart canvas{height:140px}.stick-data-table{max-height:340px;overflow:auto}#stick-data-log{max-height:220px;overflow:auto}.cache-ready{color:#72cf6b}.match-evidence-key{color:#72cf6b}

/* Keep frame navigation, suggestions, marker tools and confirmation beside the preview. */
.calibration-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,320px);align-items:start;gap:18px;margin-top:18px}
.cal-stage{margin-top:0;max-width:none;min-width:0}
.calibration-controls{min-width:0;padding:16px;border:1px solid var(--line);border-radius:12px;background:#090f24}
.calibration-controls h3{margin:0 0 10px;font-size:15px}
.calibration-preview{min-width:0}
.calibration-preview .marker-group,.calibration-playback-controls{margin-top:12px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#090f24}
.calibration-preview h4{font-size:13px;margin:0}
.calibration-preview .actions{gap:8px;margin-top:10px}
.calibration-preview button{flex:1 1 160px;padding:9px 10px}
.calibration-preview .hint{font-size:12px;margin-bottom:0}
.calibration-controls .actions{gap:8px;margin-top:10px}
.calibration-frame-controls label{display:flex;align-items:center;gap:7px}
.calibration-controls button{flex:1 1 calc(50% - 8px);padding:9px 10px}
.calibration-controls details{margin-top:12px}
.calibration-controls .hint{font-size:12px;margin-bottom:4px}
.calibration-preview .calibration-save-controls #save-calibration{background:linear-gradient(105deg,var(--purple),#793deb 57%,var(--cyan))}
.stick-progress-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.stick-progress-card{min-width:0;padding:14px 16px;background:#090f24;border:1px solid var(--line);border-radius:12px}
.stick-progress-card h4{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:14px}
.stick-progress-card progress{display:block;width:100%;margin:8px 0}
.stick-progress-card .hint{margin:8px 0 0}
.stick-current-name{overflow-wrap:anywhere;font-size:13px;margin:0 0 10px}
.stick-estimate-note,.stick-progress-videos{grid-column:1/-1;margin:0}
.stick-derivation-queue{max-height:320px;overflow:auto;margin-top:10px}
.stick-derivation-queue td:first-child{overflow-wrap:anywhere}
.stick-derivation-queue thead th{position:sticky;top:0;background:#090f24;z-index:1}
.stick-derivation-queue progress{width:100px;margin:0 8px 0 0;vertical-align:middle}
@media(max-width:600px){.stick-progress-summary{grid-template-columns:1fr}}
@media(max-width:900px){.calibration-workspace{grid-template-columns:1fr}.calibration-controls{order:2}}
/* Leave room for Windows system-font descenders in the gradient title. */
h1{line-height:1.2;padding-bottom:.08em;overflow:visible;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

.matching-evidence{border:1px solid var(--border,#3d414b);border-radius:10px;padding:18px;margin:18px 0 24px;min-width:0}.matching-evidence legend{padding:0 8px;font-weight:700}.evidence-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.evidence-option{display:flex;align-items:flex-start;gap:10px;padding:13px;background:rgba(255,255,255,.035);border-radius:7px;cursor:pointer}.evidence-option input{flex:none;margin-top:4px;accent-color:var(--accent,#ffce00)}.evidence-option small{display:block;font-weight:400;color:var(--muted,#aaa);font-size:.82rem;margin-top:6px;line-height:1.45}.evidence-option span{min-width:0;line-height:1.4}@media(max-width:1000px){.evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.evidence-grid{grid-template-columns:1fr}}

/* Major panels remain collapsed until opened by the user or an explicit navigation action. */
.panel-summary{display:flex;align-items:center;gap:10px;list-style:none;cursor:pointer;margin:0}.panel-summary::-webkit-details-marker{display:none}.panel-summary::before{content:"▸";color:var(--cyan);flex:none}details[open]>.panel-summary::before{content:"▾"}details[open]>.panel-summary{margin-bottom:16px}.panel-summary>.section-heading{margin:0;flex:1;min-width:0}.panel-summary h2{margin:0}.panel-summary:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}.toolbar{flex-wrap:wrap}#fpv-data-log{max-height:220px;overflow:auto}

.cal-stage.cal-rotated-180>img,.cal-stage.cal-rotated-180>video{transform:rotate(180deg)}
#folder-picker{width:min(960px,calc(100vw - 32px));height:min(88dvh,880px);max-height:calc(100dvh - 32px);box-sizing:border-box;overflow:hidden}#folder-picker[open]{display:flex;flex-direction:column;gap:10px}#folder-picker>*{flex-shrink:0}#folder-picker .folder-entries{flex:1;min-height:0;max-height:none;overflow:auto}#folder-picker .folder-current,#folder-picker .folder-picker-footer{margin:0}#folder-picker p{margin:0}#folder-purpose{margin-left:10px}#folder-network-shares{max-height:120px;overflow:auto}
.history button{width:224px;padding:10px}.session-thumbnail,.session-thumbnail-placeholder{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#070c1b;border-radius:6px;margin-bottom:9px}.session-thumbnail-placeholder{display:grid;place-items:center;font-size:11px;color:var(--muted)}.session-title{display:block;font-weight:650}#radio-shape-preview{display:block;max-width:100%;height:auto;border:1px solid var(--line);border-radius:8px;margin-top:10px;background:#0b1023}

/* Guided workflow keeps preparation tools available on demand. */
body:not(.show-technical) .technical-panel:not(.guided-open){display:none!important}
.workflow-panel{border-color:#8a66c6;background:linear-gradient(140deg,#211c38,#11172d)}
.workflow-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}
.workflow-stat{padding:12px;border:1px solid var(--line);border-radius:10px;background:#080e2199}
.workflow-stat strong{display:block;font-size:23px;color:var(--cyan)}.workflow-stat span{font-size:12px;color:var(--muted)}
.workflow-exception{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.workflow-exception>span{flex:1;min-width:0;overflow-wrap:anywhere;font-size:12px}
#source-status{max-height:320px;overflow:auto}#workflow-progress{width:100%}
@media(max-width:720px){.workflow-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-exception{flex-wrap:wrap}}

#pair-cards{max-height:600px;overflow:auto;padding-right:4px}
.calibration-frame-controls #calibration-message{flex:1 1 100%;padding:10px;border:1px solid var(--line);border-radius:8px;line-height:1.5;overflow-wrap:anywhere}
.calibration-frame-controls #calibration-message:empty{display:none}
#calibration-message.warning{color:#ffd166;border-color:#ffd16688;background:#ffd1660b}
#fpv-visual-review{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
#fpv-visual-review-title{overflow-wrap:anywhere;min-width:0}
#fpv-visual-review-video{display:block;width:100%;max-height:34vh;background:#050816;border-radius:8px;margin:12px 0}
#fpv-visual-review-seek{width:100%;margin:12px 0}
#fpv-visual-review-canvas{display:block;width:100%;height:390px;background:#080e21;border:1px solid var(--line);border-radius:8px;cursor:crosshair}

#stick-live-canvas { width:100%; height:300px; display:block; background:#0a0d19; border:1px solid #ffffff18; border-radius:8px; }

/* Keep each file name readable and show data availability as a compact table below it. */
.video-file-row{display:block;padding:8px 10px}
.video-file-header{display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:9px;align-items:start;min-width:0;cursor:pointer}
.video-file-header input{grid-column:1;align-self:start;margin:2px 0 0}
.video-file-header span{grid-column:2;min-width:0;width:100%;overflow-wrap:anywhere}
.video-file-heading{display:flex;gap:10px;align-items:flex-start;min-width:0}
.video-file-heading>.video-file-header,.video-file-heading>span{flex:1;min-width:0;overflow-wrap:anywhere}
.video-file-heading>.recording-scope-button{flex:none;font-size:11px;padding:5px 9px;min-height:30px;line-height:1.3}
.ignored-recording-row{background:#ffffff03}
#fingerprint-plots .motion-chart{padding:10px;margin-top:10px}
#fingerprint-plots .motion-chart h3{margin:0 0 6px;font-size:14px}
#fingerprint-plots .motion-chart label{display:flex;align-items:center;gap:10px;margin:0 0 6px}
#fingerprint-plots .motion-chart select{max-width:min(100%,400px);padding:4px 8px;min-height:30px}
#fingerprint-plots .motion-chart canvas{height:180px}
.video-file-row>.video-file-summary{display:block;width:auto;max-width:none;margin:3px 0 5px 29px;line-height:1.35}
.identifier-table{width:calc(100% - 29px);margin:0 0 0 29px;border-collapse:collapse;table-layout:fixed;font-size:10px;line-height:1.25}
.identifier-table tr{display:grid;grid-template-columns:18px minmax(82px,.8fr) minmax(0,1.2fr);align-items:start;border-bottom:1px solid #ffffff0b}
.identifier-table tr:last-child{border-bottom:0}
.identifier-table th,.identifier-table td{max-width:none;padding:3px 2px;border:0;text-align:left;vertical-align:top;overflow-wrap:anywhere;white-space:normal}
.identifier-table th{font-weight:500;color:var(--muted)}
.identifier-table td:first-child{padding-left:0}
.identifier-mark{display:inline-block;width:14px;text-align:center;font-size:12px;font-weight:800}
.identifier-mark.available{color:#65e6a0}
.identifier-mark.missing{color:#ff6f78}
.identifier-mark.warning{color:#ffd166}
.identifier-mark.unknown{color:#8190ae}
.identifier-key{margin:8px 2px 0;color:var(--muted);font-size:11px}

.stick-review-actions>label{display:flex;align-items:center;gap:8px}
.stick-review-actions select{max-width:min(50vw,480px)}
.stick-review-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:14px;align-items:start}
.stick-review-player,.stick-review-editor{min-width:0;padding:14px;border:1px solid var(--line);border-radius:12px;background:#090f24}
.stick-review-video-stage{position:relative;width:100%;aspect-ratio:16/9;min-height:200px;max-height:58vh;background:#020619;border-radius:8px;overflow:hidden}
.stick-review-video-stage video,.stick-review-video-stage canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.stick-review-video-stage canvas{pointer-events:none;cursor:crosshair;touch-action:none}
.stick-review-video-stage{cursor:crosshair}
.stick-review-controls{gap:10px;margin-top:8px}
.stick-review-controls label{display:flex;flex-direction:column;gap:5px;font-size:12px}
.stick-review-editor textarea{width:100%;resize:vertical}
.stick-review-chart canvas{height:340px;cursor:crosshair}
.stick-review-chart .motion-legend{justify-content:space-between}
.stick-review-table{max-height:300px;overflow:auto;margin-top:14px}
.stick-review-table th:first-child,.stick-review-table td:first-child{white-space:nowrap}
.stick-review-table td:last-child{white-space:nowrap}
@media(max-width:800px){.stick-review-grid{grid-template-columns:minmax(0,1fr)}.stick-review-actions>label{flex:1 1 100%}.stick-review-actions select{max-width:none;min-width:0}}
@media(max-width:430px){.identifier-table tr{grid-template-columns:17px minmax(68px,.85fr) minmax(0,1.15fr)}.identifier-table{font-size:9px}}
.counterpart-selection{align-items:flex-end}.counterpart-selection .grow{min-width:min(100%,300px)}.counterpart-selection select{width:100%;max-width:100%}.counterpart-selection button{flex-shrink:0}.counterpart-visual{margin-top:16px;white-space:normal}.counterpart-table td{vertical-align:top}.counterpart-table td:first-child{min-width:180px;width:27%}.counterpart-table td:nth-child(2){min-width:240px;max-width:none;width:40%}.counterpart-table td:nth-child(3){min-width:135px}.counterpart-table small{display:block;margin-top:6px;line-height:1.45}.counterpart-table .badge{display:inline-block}.counterpart-table td:last-child button{white-space:nowrap}.counterpart-notes .actions{align-items:flex-start;margin-top:8px}.counterpart-notes .actions>span{flex:1;min-width:180px;overflow-wrap:anywhere}#counterpart-panel>.section-heading h3{margin:0}#counterpart-scope{overflow-wrap:anywhere}

/* Split recordings on the full StickCam timeline. */
.flight-timeline {position:relative;height:48px;margin:16px 0;background:#101510;border:1px solid var(--line);border-radius:4px;overflow:hidden;cursor:pointer}
.flight-time-labels {display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}
.flight-part {position:absolute;top:4px;height:40px;padding:4px;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#285572;border:1px solid #4a86a9;border-radius:3px;font-size:.75rem}
.flight-part.confirmed {background:#355e39;border-color:#6aa979}.flight-part.later {background:#796a2c}
.flight-cursor {position:absolute;top:0;bottom:0;left:0;width:2px;background:var(--text);pointer-events:none;z-index:2}
.flight-part-row {display:flex;align-items:center;gap:12px;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.flight-part-row span {min-width:0}.flight-part-row small {display:block}.flight-part-row button {flex-shrink:0}.flight-conflict {border-left:3px solid #b15d47;padding-left:12px}
#flight-preview video {display:block;width:100%;max-height:50vh;background:#000} #flight-seek {width:100%}
#flight-preview .buffer-overlay {position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:8px;background:#111b;pointer-events:none}#flight-preview .buffer-overlay[hidden] {display:none}
@media(max-width:650px){.flight-part-row{flex-wrap:wrap}}

.flight-candidate-list{max-height:360px;overflow:auto;margin-bottom:12px}

.rhythm-match{color:#9fd8a9;border-left:3px solid #6aa979;padding-left:10px}#pair-rhythm-sections{max-height:260px;overflow:auto}

/* One StickCam viewport serves starting calibration and timed tracking corrections. */
.stick-workspace-heading{align-items:center;margin:0 0 10px!important}
.stick-workspace-heading .hint{margin:0;min-width:0;overflow-wrap:anywhere}
#cal-stage #stick-review-overlay{pointer-events:none;cursor:default}
#cal-stage.watching #roi-canvas{display:none}
.stick-playhead-label{display:flex;align-items:center;gap:12px;margin-top:14px;font-size:12px;color:var(--muted)}
#stick-playhead{flex:1;min-width:0;accent-color:var(--cyan);padding:0}
.stick-review-landmarks{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:12px}
#stick-review-unsaved{white-space:normal;line-height:1.4}
.calibration-preview .stick-review-chart{margin-top:14px}
.calibration-preview .stick-review-chart canvas{height:280px}
.calibration-preview .stick-review-table{max-height:300px}
.calibration-preview .stick-review-editor{margin-top:12px}
@media(max-width:600px){.stick-workspace-heading{align-items:flex-start}.stick-playhead-label{align-items:stretch;flex-direction:column}.calibration-preview .stick-review-chart canvas{height:240px}}

.manual-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:16px}
.manual-video-grid.stacked{grid-template-columns:minmax(0,1fr)}
.manual-source{min-width:0;border:1px solid var(--line);border-radius:10px;padding:14px}
.manual-source h3{margin:0 0 10px}
.manual-source video{width:100%;aspect-ratio:16/9;object-fit:contain;background:#020402;border-radius:6px;display:block}
.manual-source select{width:100%;min-width:0}
.manual-source input[type=number]{width:110px}
.manual-source .actions{gap:8px}
.manual-source .actions button{padding:8px 10px}
.manual-source .hint{overflow-wrap:anywhere}
.manual-recorder{margin-top:18px}
@media(max-width:800px){.manual-video-grid{grid-template-columns:minmax(0,1fr)}}
