:root{--bg:#f5f6f8;--surface:#fff;--text:#16181d;--muted:#5f6672;--border:#dde0e6;--accent:#1f6feb;--accent-text:#fff;--ok:#1a7f37;--ok-bg:#dafbe1;--warn:#8a5a00;--warn-bg:#fff4d6;--bad:#b42318;--bad-bg:#fde8e7;--radius:8px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.45}@media (prefers-color-scheme:dark){:root{--bg:#111317;--surface:#1a1d23;--text:#e8eaee;--muted:#9aa1ad;--border:#2e333c;--accent:#4c8dff;--ok:#4ac26b;--ok-bg:#12301c;--warn:#e3b341;--warn-bg:#3a2e10;--bad:#ff7b72;--bad-bg:#3d1614;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}h1,h2{margin:0;line-height:1.2}h1{font-size:1.5rem}h2{margin-bottom:.75rem;font-size:1.1rem}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}input,select,button,.button{font:inherit;color:inherit;border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:.45rem .7rem}button,.button{cursor:pointer;white-space:nowrap}button:hover,.button:hover{border-color:var(--muted);text-decoration:none}button:disabled{opacity:.6;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}button.danger{color:var(--bad)}button.link{color:var(--accent);background:0 0;border:none;padding:0}label{gap:.25rem;font-weight:500;display:grid}.app{min-height:100vh}.topbar{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.brand{color:var(--text);font-weight:700}main{max-width:1100px;margin:0 auto;padding:1.5rem 1rem 4rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.stack-sm{gap:.35rem;display:grid}.stack{gap:.75rem;display:grid}.stack-lg{gap:1.25rem;display:grid}.row{align-items:center;gap:.6rem;display:flex}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.spacer{flex:1}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.muted{color:var(--muted)}.small{font-size:.85rem}.error{color:var(--bad)}.warning{color:var(--warn)}.ok{color:var(--ok)}.login{place-items:center;min-height:100vh;padding:1rem;display:grid}.login form{width:min(360px,100%)}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:.55rem .5rem}th{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem;font-weight:600}.num{text-align:right;font-variant-numeric:tabular-nums}td.actions{text-align:right;white-space:nowrap}td.actions>*+*{margin-left:.4rem}.badge{white-space:nowrap;border-radius:999px;padding:.1rem .5rem;font-size:.8rem;font-weight:600;display:inline-block}.badge-ok{color:var(--ok);background:var(--ok-bg)}.badge-limited{color:var(--warn);background:var(--warn-bg)}.badge-unsupported{color:var(--bad);background:var(--bad-bg)}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;background:var(--surface);gap:.4rem;padding:1.5rem 1rem;display:grid}.dropzone.dragging{border-color:var(--accent)}.upload{border-bottom:1px solid var(--border);padding-bottom:.75rem}.upload:last-child{border-bottom:none;padding-bottom:0}progress{width:100%;height:8px;accent-color:var(--accent)}.status{font-size:.85rem;font-weight:600}.status-done{color:var(--ok)}.status-error{color:var(--bad)}.status-paused{color:var(--warn)}.video-stage{gap:.5rem;display:grid}.stage{border-radius:var(--radius);cursor:pointer;background:#000;margin:0 auto;position:relative;overflow:hidden}.stage video{object-fit:contain;position:absolute;top:50%;left:50%}.controls{align-items:center;gap:.6rem;display:flex}.timeline{flex:1;align-items:center;display:flex;position:relative}.timeline input{width:100%;accent-color:var(--accent);position:relative}.trim-out{background:var(--bad-bg);border-radius:3px;height:10px;position:absolute;top:50%;transform:translateY(-50%)}.timecode{font-variant-numeric:tabular-nums;white-space:nowrap}.edit-label{min-width:5rem}.video-stage:fullscreen{background:#000;grid-template-rows:1fr auto;padding:.5rem}.video-stage:fullscreen .stage{border-radius:0;height:100%;aspect-ratio:auto!important;width:100%!important}.video-stage:fullscreen .controls{color:#fff}.nav{gap:.25rem;display:flex}.nav a{color:var(--muted);border-radius:6px;padding:.3rem .6rem}.nav a.active{color:var(--text);background:var(--bg)}.part-tabs{flex-wrap:wrap;gap:.4rem;display:flex}.part-tabs a{border:1px solid var(--border);color:var(--text);border-radius:999px;padding:.3rem .8rem}.part-tabs a.active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.button-group{flex-wrap:wrap;gap:.25rem;display:inline-flex}.controls{flex-wrap:wrap}.controls button.play{min-width:4.5rem}kbd{font:inherit;border:1px solid var(--border);background:var(--surface);border-bottom-width:2px;border-radius:4px;padding:0 .3em;font-size:.8em}.editable{align-items:center;gap:.35rem;min-width:0;display:inline-flex}.editable input{font:inherit;min-width:12rem}button.icon{color:var(--muted);padding:.1rem .4rem;font-size:.85rem;line-height:1.2}h1 button.icon{font-size:.9rem}.editor-layout{grid-template-columns:minmax(0,1fr);gap:1.25rem;display:grid}@media (width>=960px){.editor-layout{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start}.editor-layout aside{max-height:calc(100vh - 2rem);position:sticky;top:1rem;overflow-y:auto}}.title-input{font-size:1.2rem;font-weight:600}.list-row{border-bottom:1px solid var(--border);padding-bottom:.5rem}.list-row input[type=color]{width:2.4rem;height:2.2rem;padding:.15rem}.hotkey{text-align:center;text-transform:uppercase;width:2.6rem}.key{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem}.item-actions{gap:.2rem;display:inline-flex}.item-card{border:1px solid var(--border);border-radius:var(--radius);padding:.75rem}.options{border-left:3px solid var(--border);padding-left:1rem}.applies{flex-wrap:wrap;align-items:center;gap:.3rem .9rem;display:flex}.inline-label{align-items:center;gap:.3rem;font-weight:400;display:inline-flex}.add-row{padding-top:.25rem}.save-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:.5rem;padding:.75rem 1rem;display:grid;position:sticky;bottom:0;box-shadow:0 -4px 16px #0000000f}.problems{margin:0;padding-left:1.2rem}.small-gap{margin-left:.5rem}.event-buttons{flex-wrap:wrap;gap:.4rem;display:flex}.event-button{border:2px solid var(--event-color);color:var(--text);align-items:center;gap:.45rem;display:inline-flex}.event-button.selected{background:var(--event-color);color:#fff}.event-button kbd{color:var(--text)}.field{gap:.3rem;display:grid}.field-label{font-size:.9rem;font-weight:600}.chips{flex-wrap:wrap;gap:.3rem;display:flex}.chips textarea,.chips input{width:100%;font:inherit}.chip{border-radius:999px;padding:.2rem .75rem;font-size:.9rem}.chip.selected{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.diagram{gap:.3rem;margin:0;display:grid}.diagram svg{background:var(--bg);border-radius:6px;width:100%;height:auto;max-height:60vh}.diagram svg.pickable{cursor:crosshair}.diagram.thumb svg{max-width:260px;max-height:180px}.sync-badge{border-radius:999px;padding:.15rem .6rem;font-size:.8rem;font-weight:600}.sync-ok{color:var(--ok);background:var(--ok-bg)}.sync-busy{color:var(--muted);background:var(--bg)}.sync-warn{color:var(--warn);background:var(--warn-bg)}.scene-timeline{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:6px;min-height:22px;position:relative;overflow:hidden}.scene-timeline .segment{opacity:.85;cursor:pointer;border:none;border-radius:3px;height:10px;padding:0;position:absolute}.scene-timeline .segment.pending{opacity:.5;outline:1px dashed var(--text)}.scene-timeline .segment.selected{opacity:1;outline:2px solid var(--text);outline-offset:1px}.scene-timeline .playhead{background:var(--accent);pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.timeline-out{background:repeating-linear-gradient(135deg, transparent 0 4px, var(--bg) 4px 8px);pointer-events:none;position:absolute;top:0;bottom:0}.mark-bar{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.mark-button{background:var(--accent);border-color:var(--accent);color:var(--accent-text);align-items:center;gap:.6rem;padding:.8rem 1.4rem;font-size:1.15rem;font-weight:700;display:inline-flex}.mark-button kbd{color:var(--text)}.mark-button.armed{background:var(--warn);border-color:var(--warn)}.mark-bar .event-button{padding:.6rem .9rem}.flash{min-height:1.3em;color:var(--muted);opacity:0;transition:opacity .2s}.flash.visible{opacity:1;color:var(--text)}.selected-mark input{width:100%}.mark-list{gap:.15rem;margin:0;padding:0;list-style:none;display:grid}.mark-row{text-align:left;background:0 0;border-color:#0000;align-items:center;gap:.7rem;width:100%;display:flex}.mark-row.selected{border-color:var(--accent)}.mark-row .dot{background:#8b949e;border-radius:50%;flex:none;width:.75rem;height:.75rem}a.button.primary-link{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.review-layout{grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}@media (width>=960px){.review-layout{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start}}.review-field{border-left:3px solid #0000;border-radius:6px;gap:.3rem;padding:.5rem;display:grid}.review-field.flagged-uncertain{border-left-color:var(--warn);background:var(--warn-bg)}.review-field.flagged-unknown{border-left-color:var(--muted);background:var(--bg)}.certainty{gap:.3rem;display:inline-flex}.chip.small{padding:.1rem .55rem;font-size:.75rem}.range-bar{background:var(--bg);border:1px solid var(--border);cursor:pointer;touch-action:none;border-radius:6px;height:34px;position:relative}.range-selected{background:var(--accent);opacity:.35;pointer-events:none;border-radius:3px;position:absolute;top:6px;bottom:6px}.range-handle{background:var(--accent);cursor:ew-resize;border-radius:4px;width:12px;margin-left:-6px;position:absolute;top:2px;bottom:2px}.range-bar .playhead{background:var(--text);pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.status-badge.status-unreviewed{color:var(--muted);background:var(--bg)}.status-badge.status-reviewed{color:var(--ok);background:var(--ok-bg)}.status-badge.status-rejected,.status-badge.status-duplicate{color:var(--bad);background:var(--bad-bg)}.history{gap:.2rem;margin:0;padding-left:1.1rem;display:grid}a.mark-row.button{color:var(--text)}.stage{touch-action:pan-y}.stage.zoomed{touch-action:none;cursor:grab}.stage.zoomed:active{cursor:grabbing}.zoom-layer{transform-origin:50%;will-change:transform;position:absolute;inset:0}.zoom-level{font-variant-numeric:tabular-nums;min-width:3.6rem}.tagger-layout{grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}@media (width>=1000px){main:has(.tagger-layout){max-width:1400px}.tagger-layout{grid-template-columns:minmax(0,1fr) minmax(320px,360px);align-items:start}.tagger-side{flex-direction:column;max-height:calc(100vh - 2rem);display:flex;position:sticky;top:1rem}.tagger-side .marks-card{min-height:0;overflow-y:auto}}.tagger-side .mark-bar{gap:.5rem;display:grid}.tagger-side .mark-button{justify-content:center;padding:.55rem .9rem;font-size:1rem}.event-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;display:grid}.tagger-side .event-button{justify-content:space-between;min-width:0;padding:.3rem .5rem;font-size:.85rem}.tagger-side .card{padding:.75rem}.tagger-side h2{margin-bottom:.5rem;font-size:.95rem}.mark-text{flex:1;min-width:0;display:grid}.tagger-side .mark-row{padding:.3rem .4rem;font-size:.9rem}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236b7280' stroke-width='1.6'/%3E%3C/svg%3E");background-position:right .7rem center;background-repeat:no-repeat;padding-right:2rem;line-height:1.45}input,select,button,.button{min-height:2.35rem;font-size:1rem}.chip,.chip.small,button.icon,button.link,.range-handle,.segment,.point-mark,.mark-row{min-height:0}.small input,.small select,.small button{min-height:2.1rem;font-size:.9rem}.form-grid{grid-template-columns:minmax(0,1fr);gap:.75rem 1rem;display:grid}@media (width>=720px){.form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.two{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}}.segmented{display:flex}.segmented button{border-radius:0;flex:1}.segmented button:first-child{border-radius:6px 0 0 6px}.segmented button:last-child{border-radius:0 6px 6px 0;margin-left:-1px}.segmented button.selected{background:var(--accent);border-color:var(--accent);color:var(--accent-text);position:relative}.new-session{border-color:var(--accent)}.chip.removable{align-items:center;gap:.35rem;padding-right:.35rem;display:inline-flex}.chip.removable button{color:inherit;background:0 0;border:none;min-height:0;padding:0 .2rem;font-size:.8rem}.athlete-picker{align-items:center}table.clickable-rows tbody tr{cursor:pointer}table.clickable-rows tbody tr:hover,table.clickable-rows tbody tr:focus-visible{background:var(--bg);outline:none}.scene-timeline .point-mark{cursor:pointer;border:none;width:3px;margin-left:-1px;padding:0;position:absolute;top:0;bottom:0}.scene-timeline .point-mark.selected{outline:1px solid var(--text);width:5px;margin-left:-2px}.scene-timeline .point-mark.pending{opacity:.5}.event-button .count{font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;font-size:.8rem;font-weight:700}.mark-row .dot.point{border-radius:2px;width:.35rem}.session-info{overflow-wrap:anywhere}.tagger-side,.tagger-side>*{min-width:0}.tagger-side button,.tagger-side .button{text-overflow:ellipsis;max-width:100%;overflow:hidden}.tagger-side .event-button{align-items:center;gap:.3rem;display:flex;overflow:hidden}.tagger-side .event-button .count{flex:none;font-size:.75rem}.tagger-side .event-button kbd{flex:none;font-size:.7rem}.tagger-side .mark-tools{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.tagger-side .mark-tools label{flex:10rem;min-width:0}.tagger-side .mark-tools select{flex:1;min-width:0}
