*{box-sizing:border-box}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.5;font-weight:400;color:#e5e7eb;background-color:#111827;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}#root{min-height:100vh}.app-shell{display:grid;grid-template-columns:220px 1fr 340px;grid-template-rows:1fr auto;height:100vh}.sidebar{grid-row:1 / 3;border-right:1px solid #374151;padding:12px;overflow-y:auto}.sidebar h1{font-size:16px;margin:0 0 12px}.sidebar select{width:100%;margin-bottom:12px}.video-list{list-style:none;margin:0;padding:0}.video-item{padding:6px 8px;border-radius:4px;cursor:pointer;font-size:13px;display:flex;gap:6px;align-items:center}.video-item:hover{background:#1f2937}.video-item.selected{background:#374151}.video-item .dot{width:8px;height:8px;border-radius:50%;background:#34d399;flex-shrink:0}.video-item.no-artefacts .dot{background:#6b7280}.main-pane{display:flex;flex-direction:column;min-width:0}.right-pane{border-left:1px solid #374151;display:flex;flex-direction:column;min-height:0}.banner{padding:6px 12px;font-size:12px}.banner.error{background:#7f1d1d}.banner.warn{background:#78350f}.empty{color:#6b7280;display:grid;place-items:center;flex:1}.video-pane{position:relative;flex:1;min-height:0;background:#000}.video-pane canvas{position:absolute;inset:0;width:100%;height:100%}.toolbar{display:flex;gap:10px;align-items:center;padding:6px 10px;font-size:12px;border-bottom:1px solid #374151;flex-wrap:wrap}.toolbar .time{font-variant-numeric:tabular-nums}.toolbar .offset{display:inline-flex;gap:4px;align-items:center}.toolbar .court-chip{margin-left:auto;color:#9ca3af}.topdown-canvas{width:100%;height:55%;min-height:320px;display:block}.viewer-timeline{grid-column:2 / 4;position:relative;border-top:1px solid #374151;padding:4px 0}.timeline-track{display:flex;height:18px;margin:2px 0;cursor:pointer}.track-label{width:56px;flex-shrink:0;font-size:10px;text-align:right;padding-right:6px;line-height:18px}.track-content{position:relative;flex:1;background:#1f2937;border-radius:2px}.timeline-segment{position:absolute;top:1px;bottom:1px;border-radius:2px;min-width:2px;opacity:.85}.timeline-segment.selected{outline:1px solid #fff;opacity:1}.timeline-marker{position:absolute;width:3px;height:50%}.timeline-playhead{position:absolute;top:0;bottom:0;width:1px;background:#f9fafb;pointer-events:none}.stats-panel{padding:8px;font-size:12px;overflow-y:auto}.stats-nav{display:flex;gap:8px;align-items:center;margin-bottom:6px}.stats-table{width:100%;border-collapse:collapse}.stats-table th,.stats-table td{text-align:right;padding:2px 4px;border-bottom:1px solid #1f2937;font-weight:400}.stats-table td:first-child,.stats-table th:first-child{text-align:left}.open-folder{width:100%;padding:8px;margin-bottom:12px}.folder-info{margin-bottom:12px;font-size:12px}.folder-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.artefact-status.ok{color:#34d399}.artefact-status.missing{color:#f87171}.hint{font-size:12px;color:#9ca3af}.hint code{font-size:11px}.signed-url-form{margin-bottom:12px}.signed-url-form input{width:100%;box-sizing:border-box;padding:6px 8px;font-size:12px;background:#1f2937;border:1px solid #374151;border-radius:4px;color:inherit}.fit-trust.ok{color:#34d399}.fit-trust.advisory{color:#fbbf24}.fit-trust.reject{color:#f87171;font-weight:700}.event-log{flex:1;min-height:80px;overflow-y:auto;border-top:1px solid #374151;font-size:12px}.event-log ol{list-style:none;margin:0;padding:4px 0}.event-row{display:flex;gap:7px;align-items:center;padding:2px 10px;cursor:pointer;white-space:nowrap}.event-row:hover{background:#1f2937}.event-row.current{background:#1e293b;box-shadow:inset 2px 0 #f9fafb}.event-row.rally{font-weight:700;margin-top:3px}.event-time{font-variant-numeric:tabular-nums;color:#9ca3af}.event-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.display-settings{margin-top:auto;padding-top:12px;border-top:1px solid #374151;display:flex;flex-direction:column;gap:4px;font-size:12px}.display-settings h2{font-size:11px;text-transform:uppercase;color:#9ca3af;margin:0 0 4px}.sidebar{display:flex;flex-direction:column}
