:root{--page:#f5f7fa;--surface:#fff;--surface-subtle:#edf2f7;--stage:#10151c;--stage-surface:#1c2531;--stage-text:#e8eef5;--stage-text-muted:#9fb1c7;--stage-accent:#2dd4bf;--stage-warning:#fbbf24;--stage-error:#fca5a5;--nav:#122238;--nav-hover:#203a5c;--nav-divider:#2d4668;--nav-control:#59708d;--nav-text:#e8eef5;--nav-text-muted:#9fb1c7;--text:#17212f;--text-secondary:#526174;--border:#d6dee8;--border-strong:#838c97;--accent:#0f766e;--accent-hover:#115e59;--accent-text:#fff;--warning:#92400e;--warning-surface:#fffbeb;--warning-border:#fed7aa;--error:#b42318;--error-surface:#fef3f2;--error-border:#fecaca;--focus-ring:2px;--focus-color:#0f766e;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--radius:8px;--radius-dialog:12px;--text-xs:12px;--text-sm:13px;--text-base:14px;--text-md:16px;--text-section:20px;--text-page:28px}.tabular,.timeline,[data-numeric]{font-variant-numeric:tabular-nums}:focus-visible{outline:var(--focus-ring) solid var(--focus-color);outline-offset:2px}:root{color:var(--text);background:var(--page);font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--nav);color:var(--surface-subtle);flex-direction:column;padding:24px 18px;display:flex}.brand{margin-bottom:28px;font-size:18px;font-weight:700}.nav-link{color:var(--nav-text-muted);border-radius:6px;margin-bottom:8px;padding:10px 12px;display:block}.nav-link-active,.nav-link:hover{background:var(--nav-hover);color:var(--surface)}.sidebar-footer{border-top:1px solid var(--nav-divider);gap:6px;margin-top:auto;padding-top:18px;display:grid}.sidebar-footer small{color:var(--nav-text-muted)}.sidebar-footer button{border:1px solid var(--nav-control);color:var(--surface);cursor:pointer;background:0 0;border-radius:6px;min-height:36px;margin-top:8px}.main-content{padding:32px}.page{max-width:1120px}.page-header-row{justify-content:space-between;align-items:start;gap:16px;display:flex}.page-subtitle{color:var(--text-secondary);max-width:720px;margin-top:-14px}.eyebrow{color:var(--text-secondary);letter-spacing:0;text-transform:uppercase;margin:0 0 6px;font-size:13px;font-weight:700}h1,h2,p{margin-top:0}h1{color:var(--stage);margin-bottom:24px;font-size:34px;line-height:1.2}.panel-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.panel,.empty-state,.login-panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 1px 2px #0f172a0a}.panel{min-height:128px;padding:20px}.metric{color:var(--accent);margin-bottom:12px;font-size:36px;font-weight:800;display:block}.empty-state{max-width:640px;padding:24px}.empty-state p,.panel p{color:var(--text-secondary)}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-panel{width:100%;max-width:420px;padding:28px}.login-panel form{gap:16px;display:grid}.login-panel label,.settings-form label{color:var(--text-secondary);gap:8px;font-size:14px;font-weight:700;display:grid}.login-panel input,.settings-form input,.settings-form select,.settings-form textarea{background:var(--surface);border:1px solid var(--border-strong);border-radius:6px;padding:10px 12px}.login-panel button,.settings-form button,.upload-form button,.class-card button,.danger-button{background:var(--accent);color:var(--surface);cursor:pointer;border:0;border-radius:6px;min-height:42px;padding:10px 14px;font-weight:700}.login-panel button:disabled{cursor:progress;opacity:.65}.form-error{background:var(--error-surface);border:1px solid var(--error-border);color:var(--error);border-radius:6px;padding:10px 12px}.loading-page{place-items:center;min-height:100vh;display:grid}.settings-form{background:var(--surface);border:1px solid var(--border);border-radius:8px;gap:16px;margin-bottom:24px;padding:20px;display:grid}.settings-form h2,.list-section h2{margin-bottom:4px;font-size:20px}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.wide-field{grid-column:1/-1}.settings-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.checkbox-label{align-items:center;gap:8px;display:flex}.checkbox-label input{width:auto}.list-section{gap:14px;display:grid}.project-list,.class-list,.video-list,.user-list{gap:12px;display:grid}.project-row,.video-row,.user-row{background:var(--surface);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;padding:16px;display:flex}.project-row:hover,.video-row:hover,.user-row:hover{border-color:var(--accent)}.project-row div,.video-row div,.user-row div{gap:4px;display:grid}.project-row span,.project-row small,.video-row span,.video-row small,.user-row span,.user-row small,.empty-copy{color:var(--text-secondary)}.user-row button{background:var(--surface);border:1px solid var(--border-strong);color:var(--text);cursor:pointer;border-radius:6px;min-height:36px;padding:8px 10px;font-weight:700}.upload-form{background:var(--surface);border:1px solid var(--border);border-radius:8px;align-items:center;gap:12px;padding:14px;display:flex}.upload-form input{flex:1}.chunk-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.chunk-card{background:var(--surface);border:1px solid var(--border);color:inherit;cursor:pointer;text-align:left;border-radius:8px;gap:8px;padding:14px;display:grid}.chunk-card:hover{border-color:var(--accent)}.chunk-card-active{border-color:var(--accent);box-shadow:0 0 0 2px #126b571f}.chunk-card[aria-pressed=true]:after{content:"Showing";background:var(--accent);color:var(--accent-text);font-size:var(--text-sm);border-radius:999px;padding:1px 8px}.thumbnail-box{aspect-ratio:16/9;background:var(--border);color:var(--text-secondary);border-radius:6px;justify-content:center;align-items:center;display:flex;overflow:hidden}.thumbnail-box img{object-fit:cover;width:100%;height:100%}.chunk-preview{background:var(--surface);border:1px solid var(--border);border-radius:8px;grid-template-columns:1fr 280px;align-items:center;gap:20px;margin-bottom:20px;padding:18px;display:grid}.chunk-preview h2{margin-bottom:8px}.chunk-preview a{color:var(--accent);font-weight:700}.preview-thumbnail{width:100%}.button-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.workflow-section{margin-top:24px}.job-list{gap:12px;display:grid}.job-row{background:var(--surface);border:1px solid var(--border);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px;display:grid}.job-row div:first-child{gap:4px;display:grid}.job-row span,.job-row small{color:var(--text-secondary)}.job-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.job-actions button,.return-form button{background:var(--accent);color:var(--surface);cursor:pointer;border:0;border-radius:6px;min-height:36px;padding:8px 10px;font-weight:700}.return-form{gap:8px;display:flex}.return-form input{border:1px solid var(--border-strong);border-radius:6px;min-height:36px;padding:8px 10px}.annotation-loading{place-items:center;min-height:100vh;display:grid}.editor-shell{grid-template-rows:auto minmax(0,1fr);height:100dvh;min-height:0;display:grid;overflow:hidden}.editor-context{background:var(--nav);color:var(--nav-text);align-items:center;gap:var(--space-3);min-height:52px;padding:0 var(--space-4);display:flex}.editor-context-back{color:var(--nav-text);font-size:var(--text-base);padding:var(--space-2) 0}.editor-context-spacer{flex:1}.editor-context-identity{color:var(--nav-text-muted);font-size:var(--text-sm)}.editor-context .ui-button-quiet{color:var(--nav-text-muted)}.editor-context .ui-button-quiet:hover{background:var(--nav-hover);color:var(--nav-text)}.annotation-workspace{grid-template:"toolbar toolbar toolbar""comments comments comments""tracks stage attributes"minmax(0,1fr)/220px minmax(0,1fr) 300px;gap:0;height:100%;min-height:0;display:grid;overflow:hidden}.annotation-workspace .track-list,.annotation-workspace .attribute-panel{min-height:0;overflow-y:auto}.annotation-workspace .annotation-stage{min-height:0;overflow:hidden}.annotation-toolbar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;grid-area:toolbar;align-items:center;gap:10px;padding:12px;display:flex}.annotation-toolbar button,.track-list button{background:var(--surface);border:1px solid var(--border-strong);color:var(--text);cursor:pointer;border-radius:6px;min-height:36px;padding:8px 10px;font-weight:700}.annotation-toolbar select{background:var(--surface);border:1px solid var(--border-strong);color:var(--text);border-radius:6px;min-height:36px;padding:7px 10px}.annotation-toolbar button:disabled{cursor:not-allowed;opacity:.5}.annotation-toolbar .active-tool{background:var(--accent);border-color:var(--accent);color:var(--surface)}.review-comment-strip{background:var(--warning-surface);border-bottom:1px solid var(--warning-border);color:var(--warning);flex-wrap:wrap;grid-area:comments;gap:8px;padding:8px 12px;display:flex}.review-comment-strip span{background:var(--warning-surface);border-radius:6px;padding:6px 8px}.track-list{background:var(--surface-subtle);border-right:1px solid var(--border);grid-area:tracks;align-content:start;gap:8px;padding:14px;display:grid}.track-list h2,.attribute-panel h2{margin-bottom:8px;font-size:18px}.track-list button{justify-content:flex-start;align-items:center;gap:8px;min-width:0;display:flex}.track-list button span:last-of-type{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.track-list button small{color:var(--text-secondary);margin-left:auto}.track-list .track-active{border-color:var(--accent);box-shadow:0 0 0 2px #126b571f}.annotation-stage{background:var(--stage);grid-area:stage;grid-template-rows:1fr auto;min-width:0;padding:16px;display:grid}.video-canvas-wrap{place-self:center;max-width:100%;max-height:calc(100vh - 150px);position:relative}.video-canvas-wrap video{aspect-ratio:16/9;width:min(100%,1100px);max-width:100%;max-height:calc(100vh - 170px);display:block}.video-canvas-wrap video::-webkit-media-controls-fullscreen-button{display:none}.video-canvas-wrap canvas{cursor:crosshair;z-index:2;position:absolute}.annotation-workspace:fullscreen{background:var(--stage);grid-template-columns:220px minmax(0,1fr) 320px;width:100vw;height:100vh}.annotation-workspace:fullscreen .annotation-toolbar{z-index:3}.annotation-workspace:fullscreen .annotation-stage{padding:10px}.annotation-workspace:fullscreen .video-canvas-wrap{place-self:stretch stretch;max-width:none;max-height:none;display:grid}.annotation-workspace:fullscreen .video-canvas-wrap video{grid-area:1/1;place-self:center;width:100%;max-width:100%;max-height:calc(100vh - 120px)}.timeline{width:100%;margin-top:14px}.attribute-panel{background:var(--surface);border-left:1px solid var(--border);grid-area:attributes;align-content:start;gap:14px;padding:16px;display:grid;overflow-y:auto}.attribute-panel label{color:var(--text-secondary);gap:8px;font-size:14px;font-weight:700;display:grid}.attribute-panel input,.attribute-panel select,.attribute-panel textarea{border:1px solid var(--border-strong);border-radius:6px;padding:9px 10px}.attribute-panel textarea{resize:vertical;min-height:76px}.track-editor{border-bottom:1px solid var(--border);gap:10px;padding-bottom:14px;display:grid}.button-row.tight{gap:8px}.button-row.tight button,.danger-button.compact{min-height:34px;margin-bottom:0;padding:7px 10px}.shortcut-help{border-top:1px solid var(--border);color:var(--text-secondary);padding-top:12px}.shortcut-help p{line-height:1.5}.class-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px}.class-card header{grid-template-columns:auto 1fr auto;align-items:center;gap:12px;display:grid}.class-card button{background:var(--text-secondary)}.class-card ul{gap:8px;margin:14px 0 0;padding:0;list-style:none;display:grid}.class-card li{border-top:1px solid var(--surface-subtle);grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding-top:8px;display:grid}.class-card small{color:var(--text-secondary)}.color-swatch{border-radius:999px;width:18px;height:18px;display:inline-block}.danger-button{background:var(--error);margin-bottom:20px}.secondary-button{border:1px solid var(--border-strong);color:var(--text);border-radius:6px;align-items:center;width:fit-content;min-height:38px;padding:8px 12px;font-weight:700;display:inline-flex}.secondary-button:hover{background:var(--surface-subtle)}.muted-text{color:var(--text-secondary);text-decoration:line-through}@media (width<=760px){.app-shell{grid-template-columns:1fr}.sidebar{padding:16px}.brand{margin-bottom:14px}.nav-link{margin-right:8px;display:inline-block}.main-content{padding:20px}.panel-grid,.form-grid,.settings-columns{grid-template-columns:1fr}.project-row,.video-row,.upload-form{align-items:start;display:grid}.chunk-grid,.chunk-preview{grid-template-columns:1fr}.annotation-workspace{grid-template:"toolbar""comments""stage""attributes""tracks"/1fr;height:auto;min-height:100%;overflow:visible}.annotation-workspace .annotation-stage,.annotation-workspace .track-list,.annotation-workspace .attribute-panel{min-height:0;overflow:visible}.annotation-workspace .video-canvas-wrap,.annotation-workspace .video-canvas-wrap video{max-height:60vh}.track-list,.attribute-panel{border:0}}.ui-button{justify-content:center;align-items:center;gap:var(--space-2);min-height:36px;padding:0 var(--space-3);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:var(--text-base);cursor:pointer;border:1px solid #0000;display:inline-flex}.ui-button:disabled{opacity:.55;cursor:not-allowed}.ui-button-compact{min-height:28px;padding:0 var(--space-2);font-size:var(--text-sm)}.ui-button-primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.ui-button-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.ui-button-secondary{border-color:var(--border-strong)}.ui-button-secondary:hover:not(:disabled){background:var(--surface-subtle)}.ui-button-destructive{border-color:var(--error);color:var(--error);background:var(--error-surface)}.ui-button-quiet{color:var(--text-secondary);background:0 0;border-color:#0000}.ui-button-quiet:hover:not(:disabled){background:var(--surface-subtle);color:var(--text)}.ui-chip{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface-subtle);color:var(--text-secondary);font-size:var(--text-sm);font-variant-numeric:tabular-nums;display:inline-flex}.ui-chip-progress{border-color:var(--accent);color:var(--accent);background:var(--surface)}.ui-chip-warning{border-color:var(--warning-border);color:var(--warning);background:var(--warning-surface)}.ui-chip-error{border-color:var(--error-border);color:var(--error);background:var(--error-surface)}.ui-chip-good{border-color:var(--accent);color:var(--accent);background:var(--surface)}.track-list button{align-items:center;column-gap:var(--space-2);text-align:left;grid-template-columns:auto 1fr auto;grid-template-areas:"swatch label label""swatch class presence";display:grid}.track-list .color-swatch{grid-area:swatch}.track-list .track-label{grid-area:label}.track-list .track-class{color:var(--text-secondary);grid-area:class}.track-list .track-presence{color:var(--text-secondary);grid-area:presence}.track-list .track-gap .track-presence{color:var(--warning);font-weight:600}.track-list .track-absent .track-label{opacity:.75}.track-list .track-undecided{color:var(--accent);grid-area:presence}.track-list .track-flag{color:var(--text-secondary);grid-area:presence}.attribute-panel .attribute-invalid input,.attribute-panel .attribute-invalid select{border-color:var(--error)}.attribute-panel .attribute-problem{color:var(--error);margin-top:var(--space-1);display:block}.timeline-row{align-items:center;gap:var(--space-3);padding:0 var(--space-3);display:flex}.timeline-row .timeline{flex:1}.timeline-readout{color:var(--stage-text-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums;white-space:nowrap}.video-zoom-layer{will-change:transform;position:relative}.queue-filter{align-items:end;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.queue-filter input{min-width:280px}.job-count{color:var(--text-secondary);font-size:var(--text-sm);font-variant-numeric:tabular-nums;font-weight:400}.job-partial{color:var(--text-secondary);font-style:italic;display:block}.next-action{align-items:start;gap:var(--space-2);margin-bottom:var(--space-6);display:grid}.next-action h2{color:var(--text-secondary);font-size:var(--text-sm);letter-spacing:.04em;text-transform:uppercase;margin:0}.next-action-reason{color:var(--text-secondary);margin:0}.next-action-idle .ui-button-primary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.panel-link{color:inherit;display:block}.panel-link:hover{border-color:var(--accent)}.field-hint{color:var(--text-secondary);margin-top:var(--space-1);display:block}.upload-progress{gap:var(--space-1);margin-top:var(--space-2);display:grid}.upload-progress progress{width:100%}.upload-progress small{color:var(--text-secondary);font-variant-numeric:tabular-nums}.tool-rail{gap:var(--space-1);background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius);padding:2px;display:inline-flex}.tool-rail-button{min-width:56px}.tool-rail-active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.tool-rail-active:hover:not(:disabled){background:var(--accent-hover);color:var(--accent-text)}.frame-jump label,.playback-speed{color:var(--text-secondary);font-size:var(--text-sm);align-items:center;gap:var(--space-2);white-space:nowrap;display:flex}.frame-jump input{width:6rem}.video-canvas-wrap{overflow:hidden}.thumbnail-placeholder{color:var(--text-secondary);font-size:var(--text-sm)}.attribute-hint{color:var(--text-secondary);font-size:var(--text-sm);margin:0}.timeline-track{flex:260px;min-width:180px;position:relative}.timeline-track .timeline{width:100%}.timeline-marks{pointer-events:none;height:6px;position:absolute;bottom:0;left:0;right:0}.timeline-mark{border-radius:1px;width:3px;height:6px;display:inline-block;position:absolute;transform:translate(-50%)}.timeline-mark-comment{background:var(--stage-warning)}.timeline-mark-proposal{background:var(--stage-accent)}.timeline-mark-attribute{background:var(--stage-error)}.timeline-mark-gap{background:var(--stage-text-muted)}.issue-nav{align-items:center;gap:var(--space-2);display:flex}.issue-total{color:var(--stage-text-muted);font-size:var(--text-sm)}.timeline-legend{gap:var(--space-3);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.timeline-legend li{color:var(--stage-text-muted);font-size:var(--text-sm);align-items:center;gap:var(--space-1,4px);display:flex}.timeline-legend .timeline-mark{position:static;transform:none}.issue-arrival{color:var(--stage-text-muted);font-size:var(--text-sm);min-height:1.2em;margin:0}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.track-search{gap:var(--space-1);margin-bottom:var(--space-2);display:grid}.track-search input{width:100%}.track-search-state{color:var(--text-secondary);font-size:var(--text-sm);align-items:center;gap:var(--space-2);justify-content:space-between;margin:0;display:flex}.inspector-tabs{gap:var(--space-2);grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid}.inspector-tablist{border-bottom:1px solid var(--border);gap:var(--space-1);display:flex}.inspector-tab{color:var(--text-secondary);cursor:pointer;gap:var(--space-1);min-height:36px;padding:0 var(--space-2);background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;display:flex}.inspector-tab-active{border-bottom-color:var(--accent);color:var(--text);font-weight:600}.inspector-tab-badge{background:var(--surface-subtle);font-size:var(--text-sm);font-variant-numeric:tabular-nums;border-radius:999px;padding:0 6px}.inspector-panel{gap:var(--space-3);min-height:0;display:grid;overflow-y:auto}.inspector-panel:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.comment-list,.history-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.comment-list li,.history-list li{border-bottom:1px solid var(--border);align-items:center;gap:var(--space-2);padding-bottom:var(--space-2);flex-wrap:wrap;display:flex}.comment-list li span,.history-list li span{flex:60%}.comment-list small,.history-list small{color:var(--text-secondary)}.comment-resolved span{text-decoration:line-through}.review-comment-strip{align-items:center;gap:var(--space-2);justify-content:space-between;display:flex}.queue-tabs{margin-top:var(--space-3)}.queue-tabs .inspector-panel{overflow:visible}.queue-tabs .workflow-section{margin:0}.video-progress{border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);padding:var(--space-3);flex-wrap:wrap;display:flex}.video-progress progress{flex:160px}.video-progress small{color:var(--text-secondary);flex-basis:100%}.video-state{border-radius:999px;padding:2px 8px;font-weight:600}.video-state-failed{background:var(--error-surface);border-color:var(--error-border);color:var(--error)}.video-state-ready{background:var(--surface-subtle);color:var(--text)}.video-state-processing,.video-state-uploading,.video-state-queued{background:var(--warning-surface);border-color:var(--warning-border);color:var(--warning)}.settings-tabs .inspector-panel{overflow:visible}.overview-facts{gap:var(--space-3);margin:0 0 var(--space-3);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.overview-facts dt{color:var(--text-secondary);font-size:var(--text-sm)}.overview-facts dd{font-size:var(--text-lg,18px);margin:0}.overview-facts dd[data-numeric]{font-variant-numeric:tabular-nums}.track-list,.attribute-panel{position:relative}.panel-head{align-items:center;gap:var(--space-2);justify-content:space-between;display:flex}.panel-head h2{margin:0}.panel-toggle{flex:none;min-width:28px;min-height:28px;padding:0}.panel-collapsed>:not(.panel-head){display:none}.panel-collapsed{padding:var(--space-2) 2px;overflow:hidden}.panel-collapsed .panel-head{justify-content:center}.panel-resize{cursor:col-resize;z-index:2;width:6px;position:absolute;inset-block:0}.panel-resize-right{right:-3px}.panel-resize-left{left:-3px}.panel-resize:hover,.panel-resize:focus-visible{background:var(--accent);outline:none}@media (width<=760px){.annotation-workspace{grid-template-columns:1fr!important}.panel-resize{display:none}}.attribute-choices{gap:var(--space-1);display:grid}
