:root{color-scheme:dark;--paxini-blue-deep: #0054ab;--paxini-blue: #0084ff;--paxini-cyan: #00eaff;--paxini-blue-bright: #2c85ff;--paxini-cyan-soft: #43c6ff;--gray-1: #000;--gray-2: #0a1018;--gray-3: #121a26;--gray-10: #8094ac;--gray-11: #b2c0d1;--gray-12: #f2f6fb;--color-bg: #0b111a;--color-nav: #0e1520;--color-surface: #131c2a;--color-surface-raised: #1a2435;--color-surface-hover: #222e42;--color-surface-well: #0c121c;--color-border: rgba(160, 185, 215, .14);--color-border-strong: rgba(130, 175, 230, .28);--color-divider: rgba(160, 185, 215, .1);--color-text: var(--gray-12);--color-text-muted: var(--gray-11);--color-text-subtle: var(--gray-10);--color-primary: var(--paxini-blue);--color-primary-hover: var(--paxini-cyan-soft);--color-primary-deep: var(--paxini-blue-deep);--color-primary-soft: color-mix(in srgb, var(--paxini-blue) 14%, transparent);--color-accent: var(--paxini-cyan-soft);--color-on-primary: #fff;--color-focus: var(--paxini-blue-bright);--color-brand-gradient: linear-gradient(180deg, #2f8dff 0%, #0076ea 100%);--shadow-panel: 0 1px 0 rgba(255, 255, 255, .05) inset, 0 8px 22px rgba(0, 0, 0, .22);--shadow-well: 0 1px 0 rgba(255, 255, 255, .04) inset, 0 1px 2px rgba(0, 0, 0, .35) inset;--color-info: var(--paxini-cyan-soft);--color-success: #34d399;--color-warning: #fbbf24;--color-danger: #fb7185;--color-hand-left: #2dd4bf;--color-hand-right: #a78bfa;--color-head: #f59e0b;--color-timeline: var(--paxini-blue);--color-series-1: #3BA7E6;--color-series-2: #E08A45;--color-series-3: #3CBB8A;--color-series-4: #D970A8;--color-series-5: #8F7AE0;--color-series-6: #D9A63A;--color-series-7: #2BB8A8;--color-series-8: #5B96E0;--radius-control: 3px;--radius-panel: 5px;--radius-media: 4px;--font-ui: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--font-size-body: 14px;--font-size-compact: 13px;--font-size-caption: 12px;--font-size-micro: 12px;color:var(--color-text);background:var(--color-bg);font-family:var(--font-ui);font-size:var(--font-size-body);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:1180px;min-height:100vh;background:linear-gradient(180deg,#121a26 0%,var(--color-bg) 42%,#090e16 100%)}button,select{font:inherit}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid color-mix(in srgb,var(--color-focus) 55%,transparent);outline-offset:2px}button:disabled,select:disabled{cursor:not-allowed;opacity:.45}.file-input{display:none}.app-shell{min-height:100vh;background:transparent}.topbar{align-items:center;background:linear-gradient(90deg,rgba(0,132,255,.08),transparent 30%,transparent 70%,rgba(0,234,255,.04)),color-mix(in srgb,var(--color-nav) 94%,transparent);backdrop-filter:blur(16px);border-bottom:1px solid var(--color-border-strong);display:grid;gap:28px;grid-template-columns:minmax(300px,1fr) auto auto;min-height:72px;padding:10px 24px;position:sticky;top:0;z-index:10}.brand{align-items:center;display:flex;gap:13px;min-width:0}.brand-mark{align-items:center;background:var(--color-brand-gradient);border:1px solid rgba(255,255,255,.2);border-radius:6px;box-shadow:0 0 20px #0084ff40,0 1px #ffffff2e inset;color:var(--color-on-primary);display:flex;height:40px;justify-content:center;width:40px}.brand-copy{min-width:0}.brand h1{color:var(--color-text);font-size:16px;font-weight:700;letter-spacing:.02em;line-height:1.1;margin:0}.brand h1 span{color:var(--color-text-muted);font-weight:500}.brand p{color:var(--color-text-subtle);font-size:var(--font-size-caption);letter-spacing:.04em;margin:5px 0 0}.topbar-actions{align-items:center;display:flex;gap:14px;justify-content:flex-end;min-width:0}.topbar-actions .tabs{flex:none}.language-select{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);flex:none;padding:6px 8px}.dataset-summary{align-items:stretch;color:var(--color-text-subtle);display:flex;font-family:var(--font-mono);font-size:var(--font-size-caption);min-width:0}.dataset-summary>span{border-left:1px solid var(--color-divider);display:flex;flex-direction:column;gap:3px;justify-content:center;min-width:52px;padding:0 12px;white-space:nowrap}.dataset-summary>span:first-child{min-width:220px}.dataset-summary>span:last-of-type{border-right:0}.dataset-summary small{color:var(--color-text-subtle);font-family:var(--font-ui);font-size:var(--font-size-micro);letter-spacing:.04em}.dataset-summary strong{color:var(--color-text);font-weight:600;margin-left:0}.dataset-summary .dataset-file strong{max-width:230px;overflow:hidden;text-overflow:ellipsis}.open-button,.empty-action{align-items:center;background:var(--color-brand-gradient);border:1px solid rgba(255,255,255,.12);border-radius:4px;box-shadow:0 0 18px #0084ff29,0 1px #ffffff1f inset;color:var(--color-on-primary);cursor:pointer;display:inline-flex;font-size:var(--font-size-compact);font-weight:600;gap:7px;padding:9px 14px}.open-button:hover,.empty-action:hover{background:linear-gradient(180deg,#3a95ff,#0084ff)}.tabs{background:#080f196b;border:1px solid var(--color-divider);border-radius:6px;display:flex;gap:3px;padding:3px}.tab{align-items:center;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--color-text-muted);cursor:pointer;display:inline-flex;font-size:var(--font-size-compact);font-weight:600;gap:7px;padding:8px 14px;transition:background .18s ease,border-color .18s ease,color .18s ease}.tab:hover{background:var(--color-surface-hover);color:var(--color-text)}.tab.active{background:linear-gradient(180deg,#0084ff38,#0054ab29);border-color:color-mix(in srgb,var(--color-primary) 55%,transparent);box-shadow:0 0 14px #0084ff1f inset;color:var(--color-text)}.workspace{min-height:calc(100vh - 72px);padding:14px 18px 16px}.loaded-state{min-height:calc(100vh - 102px)}.empty-state{align-items:center;background:var(--color-surface);border-radius:var(--radius-panel);color:var(--color-text-muted);display:flex;flex-direction:column;justify-content:center;min-height:calc(100vh - 102px);text-align:center}.empty-state h2{color:var(--color-text);font-size:18px;font-weight:600;margin:16px 0 8px}.empty-state p{color:var(--color-text-subtle);font-size:var(--font-size-compact);margin:0 0 20px;max-width:420px}.empty-state progress{accent-color:var(--color-primary);margin-bottom:10px;width:min(360px,80%)}.error-banner,.warning-banner{border:0;border-radius:var(--radius-control);font-size:var(--font-size-compact);margin-bottom:8px;padding:10px 12px}.error-banner{background:color-mix(in srgb,var(--color-danger) 14%,transparent);color:var(--color-danger)}.warning-banner{background:color-mix(in srgb,var(--color-warning) 12%,transparent);color:var(--color-warning)}.playback-workspace{display:flex;flex-direction:column;gap:12px;height:calc(100vh - 102px);min-height:0}.playback-body{--video-pane: 43%;display:grid;flex:1;gap:0;grid-template-columns:minmax(280px,var(--video-pane)) 8px minmax(0,1fr);min-height:0}.pane-splitter{align-self:stretch;background:transparent;cursor:col-resize;position:relative;touch-action:none;z-index:4}.pane-splitter:before{background:var(--color-divider);border-radius:1px;content:"";inset:12% 3px;opacity:.9;position:absolute;transition:background .15s ease,opacity .15s ease}.pane-splitter:hover:before,.pane-splitter:focus-visible:before{background:var(--color-primary);opacity:1}.pane-splitter:focus-visible{outline:none}.playback-left{display:flex;flex-direction:column;gap:10px;min-height:0;min-width:0}.playback-right{display:grid;gap:12px;grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1fr) minmax(0,1fr);min-height:0;min-width:0}.playback-right:not(.without-trajectory),.playback-right.without-trajectory{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,3fr) minmax(0,1fr)}.data-panel{background:linear-gradient(180deg,rgba(255,255,255,.03),transparent 26%),var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel);display:flex;flex-direction:column;min-height:0;overflow:hidden;position:relative}.panel-badge{align-items:center;background:#0e1520e6;border:1px solid var(--color-border-strong);border-radius:var(--radius-control);color:var(--color-text);display:inline-flex;font-size:var(--font-size-compact);gap:6px;left:10px;max-width:calc(100% - 20px);padding:5px 9px;pointer-events:none;position:absolute;top:10px;z-index:3}.panel-badge strong{font-size:var(--font-size-compact);font-weight:600;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-badge span{color:var(--color-primary-hover);flex:none;font-family:var(--font-mono);font-size:var(--font-size-micro);margin-left:2px}.panel-content{flex:1;min-height:0;padding:10px}.panel-empty{align-items:center;color:var(--color-text-subtle);display:flex;flex-direction:column;gap:8px;height:100%;justify-content:center;min-height:120px;text-align:center}.panel-empty svg{opacity:.35}.panel-empty span{font-size:var(--font-size-compact)}.camera-mosaic-shell{background:linear-gradient(180deg,rgba(255,255,255,.035),transparent 30%),var(--color-surface-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel);display:flex;flex:1 1 auto;flex-direction:column;min-height:0;min-width:0;overflow:hidden}.camera-mosaic{display:flex;flex:1 1 auto;flex-direction:column;gap:0;min-height:0;min-width:0;overflow:auto;padding:0;scrollbar-color:color-mix(in srgb,var(--color-text-subtle) 28%,transparent) transparent;scrollbar-width:thin}.camera-row{display:flex;flex:0 0 auto}.camera-slot{aspect-ratio:var(--camera-tile-aspect, 16 / 9);flex:0 1 auto;min-width:0;position:relative}.camera-slot>.camera-card{height:100%}.camera-mosaic .camera-card,.camera-mosaic .camera-slot-media{border-radius:0}.camera-slot-clock:after{border:2px solid color-mix(in srgb,var(--color-primary) 70%,transparent);content:"";inset:0;pointer-events:none;position:absolute;z-index:2}.camera-slot-media{background:#0a1018;inset:0;overflow:hidden;position:absolute}.camera-mosaic::-webkit-scrollbar{width:4px;height:4px}.camera-mosaic::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--color-text-subtle) 35%,transparent);border-radius:2px}.camera-mosaic-empty{flex:1 1 auto;min-height:200px}.camera-viewport{align-items:center;background:#0a1018;display:flex;height:100%;justify-content:center;overflow:hidden;position:relative;width:100%}.main-camera-canvas{display:block;height:100%;max-height:100%;max-width:100%;object-fit:contain;width:100%}.camera-status{align-items:center;background:#05070b;color:var(--color-text-muted);display:flex;flex-direction:column;gap:7px;inset:0;justify-content:center;position:absolute;text-align:center}.camera-status strong{color:var(--color-text);font-size:14px;font-weight:500}.camera-status small{color:var(--color-danger);max-width:80%}.camera-indexing{background:color-mix(in srgb,#05070b 72%,transparent);border-radius:var(--radius-control);color:var(--color-text-muted);font-size:var(--font-size-caption);left:50%;padding:4px 9px;position:absolute;top:10px;transform:translate(-50%);z-index:1}.camera-actions{bottom:10px;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;max-width:calc(100% - 20px);position:absolute;right:10px;z-index:1}.camera-actions button{align-items:center;background:color-mix(in srgb,#05070b 72%,transparent);border:0;border-radius:var(--radius-control);color:var(--color-text);display:flex;font-size:var(--font-size-caption);justify-content:center;min-height:28px;padding:5px 9px}.camera-actions button:hover{background:color-mix(in srgb,#05070b 55%,var(--color-primary))}.camera-card{align-items:center;background:#0a1018;border:1px solid var(--color-border);border-radius:var(--radius-media);color:var(--color-text);cursor:pointer;display:flex;justify-content:center;min-width:0;opacity:.96;overflow:hidden;padding:0;position:relative;text-align:center;transition:transform .28s cubic-bezier(.22,1,.36,1),opacity .2s ease,box-shadow .2s ease,border-color .2s ease;width:100%}.camera-card:hover{border-color:var(--color-border-strong);box-shadow:0 1px #ffffff0f inset;opacity:1;transform:scale(1.015);z-index:1}.camera-card:active{transform:scale(.98)}.camera-card:fullscreen:hover{transform:none}.camera-card.selected{border-color:#82afe680;box-shadow:0 1px #ffffff14 inset;opacity:1}.camera-card>span{background:#0a1018c7;border:1px solid var(--color-border);border-radius:2px;color:var(--color-text);font-size:var(--font-size-compact);font-weight:600;left:8px;max-width:calc(100% - 16px);overflow:hidden;padding:3px 7px;position:absolute;text-overflow:ellipsis;top:8px;white-space:nowrap;z-index:1}.camera-card canvas{display:block;height:100%;max-height:100%;max-width:100%;object-fit:contain;width:100%}.thumbnail-status{align-items:center;background:color-mix(in srgb,#05070b 55%,transparent);color:var(--color-text-subtle);display:flex;font-size:var(--font-size-compact);inset:0;justify-content:center;position:absolute}.thumbnail-status.error{color:var(--color-danger)}.player-progress{display:grid;gap:6px;min-width:0}.sop-rail{align-items:end;display:grid;gap:6px 12px;grid-template-columns:auto minmax(0,1fr);min-width:0}.sop-rail-meta{align-items:baseline;color:var(--color-text-subtle);display:inline-flex;font-family:var(--font-ui);font-size:var(--font-size-compact);font-weight:500;gap:6px;padding-bottom:2px;white-space:nowrap}.sop-rail-meta em{color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--font-size-compact);font-style:normal;font-variant-numeric:tabular-nums;font-weight:600}.sop-translation-status{align-items:center;color:var(--color-text-subtle);display:flex;flex-wrap:wrap;font-size:var(--font-size-caption);gap:8px;grid-column:1 / -1}.sop-translation-status button{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);padding:3px 8px}.sop-labels{height:26px;min-width:0;overflow:hidden;position:relative;width:100%}.sop-label{align-items:center;background:transparent;border:0;color:var(--color-text-muted);cursor:pointer;display:inline-flex;font-family:var(--font-ui);gap:5px;height:100%;justify-content:flex-start;min-width:0;padding:0 3px;position:absolute;top:0}.sop-label-mark{border-radius:50%;flex:none;height:6px;width:6px}.sop-label.tone-1 .sop-label-mark{background:var(--color-series-1)}.sop-label.tone-2 .sop-label-mark{background:var(--color-series-2)}.sop-label.tone-3 .sop-label-mark{background:var(--color-series-3)}.sop-label.tone-4 .sop-label-mark{background:var(--color-series-4)}.sop-label.tone-5 .sop-label-mark{background:var(--color-series-5)}.sop-label.tone-6 .sop-label-mark{background:var(--color-series-6)}.sop-label.tone-7 .sop-label-mark{background:var(--color-series-7)}.sop-label.tone-8 .sop-label-mark{background:var(--color-series-8)}.sop-label-text{flex:1 1 auto;font-size:var(--font-size-compact);font-weight:500;line-height:1.25;min-width:0;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.sop-label.sop-completed{opacity:.72}.sop-label.sop-current{color:var(--color-text);opacity:1;z-index:1}.sop-label.sop-current .sop-label-text{font-weight:600}.sop-label.sop-upcoming{opacity:.55}.sop-label:hover:not(:disabled){color:var(--color-text);opacity:1}.sop-label:disabled{cursor:default}.player-timeline-track{align-items:center;display:grid;min-height:30px;position:relative;width:100%}.player-timeline-segments{background:var(--color-surface-well);border:1px solid var(--color-border);border-radius:var(--radius-control);box-shadow:var(--shadow-well);height:10px;left:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:1}.player-timeline-segment{bottom:0;display:block;filter:saturate(.92) brightness(.92);opacity:.88;position:absolute;top:0}.subtabs{display:flex;gap:2px;margin-bottom:8px}.subtabs button{background:transparent;border:0;border-radius:2px;color:var(--color-text-subtle);font-size:var(--font-size-caption);padding:5px 8px}.subtabs button.active{background:var(--color-surface-raised);color:var(--color-text)}.trajectory-panel{grid-column:1 / -1}.playback-right:not(.without-trajectory) .trajectory-panel,.playback-right:not(.without-trajectory) .tactile-curves-panel{grid-column:auto}.trajectory-panel .panel-content{display:flex;flex-direction:column}.trajectory-panel .panel-empty{flex:1}.trajectory-panel .panel-empty span{color:var(--color-text-subtle)}.trajectory-view{display:flex;flex-direction:column;height:100%;min-height:0;position:relative}.trajectory-view .hand-model-view{flex:1;min-height:0}.trajectory-overlay{align-items:flex-start;display:flex;flex-wrap:wrap;gap:6px 12px;justify-content:space-between;left:10px;pointer-events:none;position:absolute;right:10px;top:42px;z-index:3}.trajectory-overlay>*{pointer-events:auto}.trajectory-legend{align-items:center;background:color-mix(in srgb,var(--color-surface) 72%,transparent);border-radius:var(--radius-control);display:flex;flex-wrap:wrap;gap:10px;padding:3px 8px}.trajectory-legend-item{align-items:center;color:var(--color-text-subtle);display:flex;font-size:10px;gap:4px}.trajectory-legend-item:before{border-radius:50%;content:"";height:6px;width:6px}.trajectory-legend-left:before{background:#38bdf8}.trajectory-legend-right:before{background:#ffa64d}.trajectory-legend-hint{color:var(--color-text-subtle);font-size:10px}.trajectory-toolbar{display:flex;flex-wrap:wrap;gap:6px}.trajectory-toolbar button{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text-muted);cursor:pointer;font-size:11px;padding:3px 8px}.trajectory-toolbar button:hover{background:var(--color-surface-hover);color:var(--color-text)}.trajectory-toolbar button[aria-pressed=true]{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.hand-model-view{background:var(--color-surface-well);border:1px solid var(--color-border);border-radius:var(--radius-media);box-shadow:var(--shadow-well);min-height:120px;overflow:hidden;position:relative}.hand-model-view canvas{display:block;height:100%;width:100%}.hand-model-view>span{align-items:center;color:var(--color-text-subtle);display:flex;font-size:var(--font-size-caption);inset:0;justify-content:center;position:absolute}.hand-model-view>span.error{color:var(--color-danger)}.hand-model-empty{align-items:center;background:var(--color-surface-well);border:1px solid var(--color-border);border-radius:var(--radius-media);color:var(--color-text-subtle);display:flex;font-size:var(--font-size-caption);justify-content:center;min-height:120px}.tactile-panel .panel-content{overflow:hidden}.tactile-heatmap-view,.tactile-heatmap-view .hand-model-view{height:100%;min-height:0}.tactile-curves-panel .panel-content{overflow:hidden;padding:8px 10px 10px}.tactile-curves{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr);height:100%;min-height:0}.tactile-curve-section{background:linear-gradient(180deg,rgba(255,255,255,.025),transparent 45%),var(--color-surface-well);border:1px solid var(--color-border);border-radius:var(--radius-media);display:grid;gap:6px;grid-template-rows:auto minmax(0,1fr);min-height:0;overflow:hidden;padding:9px 10px 8px}.tactile-curve-section>header{align-items:center;border-bottom:1px solid var(--color-divider);display:flex;gap:8px;justify-content:flex-start;min-height:24px;padding-bottom:7px}.tactile-curve-section>header strong{color:var(--color-text);font-size:var(--font-size-compact);font-weight:700}.tactile-curve-section>header span{color:var(--color-text-subtle);font-size:var(--font-size-caption);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tactile-curves-panel .tactile-curve-section:first-child{grid-template-rows:auto minmax(0,1fr)}.tactile-curves-panel .tactile-curve-section:first-child>header{position:static}.tactile-curve-section>.panel-empty{min-height:0}.tactile-chart{display:flex;flex-direction:column;gap:7px;min-height:0}.tactile-chart-plot{background:linear-gradient(180deg,rgba(0,132,255,.035),transparent 45%),#0003;border:1px solid rgba(160,185,215,.1);border-radius:4px;display:grid;flex:1;gap:8px;grid-template-columns:38px minmax(0,1fr);min-height:55px;padding:6px 7px 6px 4px;position:relative}.tactile-chart-y-axis{min-width:0;position:relative}.tactile-chart-y-axis span{color:var(--color-text-subtle);font-size:var(--font-size-micro);font-variant-numeric:tabular-nums;position:absolute;right:0;text-align:right;transform:translateY(-50%);white-space:nowrap}.tactile-chart-plot>svg{background:transparent;border:0;cursor:crosshair;height:100%;min-height:0;overflow:visible;width:100%}.tactile-hover-line{stroke:var(--color-text-muted);stroke-dasharray:1 2;stroke-width:1;vector-effect:non-scaling-stroke}.tactile-chart-tooltip{background:#0a101af0;border:1px solid var(--color-border-strong);border-radius:var(--radius-control);box-shadow:var(--shadow-panel);display:grid;gap:2px;padding:5px 8px;pointer-events:none;position:absolute;transform:translate(10px,-50%);white-space:nowrap;z-index:2}.tactile-chart-tooltip.flip{transform:translate(calc(-100% - 10px),-50%)}.tactile-chart-tooltip span{align-items:center;color:var(--color-text-subtle);display:flex;font-size:var(--font-size-micro);gap:5px}.tactile-chart-tooltip span i{border-radius:50%;display:inline-block;flex:none;height:6px;width:6px}.tactile-chart-tooltip strong{color:var(--color-text);font-size:var(--font-size-caption);font-variant-numeric:tabular-nums;font-weight:600}.tactile-chart-header{align-items:center;color:var(--color-text-subtle);display:flex;font-size:var(--font-size-caption);gap:5px;line-height:1.3}.tactile-chart-header button{align-items:center;background:transparent;border:0;color:var(--color-primary-hover);cursor:pointer;display:flex;font-size:var(--font-size-caption);gap:3px;padding:0}.tactile-chart-header strong{color:var(--color-text);font-size:var(--font-size-caption);font-weight:600}.tactile-chart-header span{color:var(--color-text-subtle)}.tactile-chart-legends{align-items:center;display:flex;flex-wrap:wrap;gap:5px;min-height:28px}.tactile-legend-item{align-items:center;background:#1a24358c;border:1px solid var(--color-divider);border-radius:4px;display:flex;min-width:0;overflow:hidden}.tactile-legend-item:has(.tactile-detail-button:hover),.tactile-legend-item:has(.tactile-legend-button:hover){border-color:var(--color-border-strong)}.tactile-legend-button{align-items:center;background:transparent;border:0;border-right:1px solid var(--color-divider);color:var(--color-text-subtle);cursor:pointer;display:flex;font-size:var(--font-size-micro);gap:5px;padding:4px 6px}.tactile-legend-button:hover,.tactile-detail-button:hover{background:var(--color-surface-raised);color:var(--color-text)}.tactile-legend-button.hidden{opacity:.4}.tactile-legend-button:disabled,.tactile-detail-button:disabled{cursor:not-allowed;opacity:.4}.tactile-detail-button{align-items:center;background:transparent;border:0;color:var(--color-text-muted);cursor:pointer;display:flex;font-size:var(--font-size-micro);gap:4px;padding:4px 6px}.tactile-legend-dot,.tactile-sensor-name i{background:var(--color-primary);border-radius:50%;display:inline-block;flex:none;height:7px;width:7px}.tactile-sensor-name{align-items:center;color:var(--color-text-subtle);display:inline-flex;font-size:var(--font-size-micro);gap:5px;margin-left:3px;padding:4px 6px}.tactile-chart i{height:2px;width:9px}.player-bar{background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 30%),var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel);display:grid;gap:10px;padding:12px 14px}.player-timeline{-webkit-appearance:none;appearance:none;background:transparent!important;height:28px;margin:0;position:relative;width:100%;z-index:2}.player-timeline::-webkit-slider-runnable-track{background:transparent!important;border:0;height:12px}.player-timeline::-moz-range-track{background:transparent!important;border:0;height:12px}.player-timeline::-moz-range-progress{background:transparent!important}.player-timeline::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#fff;border:2px solid #0b1220;border-radius:50%;box-shadow:0 0 0 2px color-mix(in srgb,#fff 55%,transparent);cursor:pointer;height:16px;margin-top:-2px;position:relative;width:16px;z-index:3}.player-timeline::-moz-range-thumb{background:#fff;border:2px solid #0b1220;border-radius:50%;box-shadow:0 0 0 2px color-mix(in srgb,#fff 55%,transparent);cursor:pointer;height:16px;width:16px}.player-timeline-track:not(.has-sop) .player-timeline::-webkit-slider-runnable-track,.player-timeline-track:not(.has-sop) .player-timeline::-moz-range-track{background:var(--color-surface-raised)!important;border-radius:var(--radius-control)}.player-controls{align-items:center;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);min-width:0}.player-controls select{appearance:none;background:var(--color-surface-raised);border:1px solid color-mix(in srgb,var(--paxini-blue-bright) 14%,transparent);border-radius:var(--radius-control);color:var(--color-text);font-size:var(--font-size-caption);padding:6px 8px}.time-readout{color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--font-size-compact);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.time-readout small{color:var(--color-text-subtle);font-size:var(--font-size-caption)}.transport-controls{align-items:center;display:flex;gap:4px}.player-actions{align-items:center;display:flex;gap:6px;justify-content:flex-end}.transport-controls button,.player-action{background:var(--color-surface-raised);border:1px solid color-mix(in srgb,var(--paxini-blue-bright) 14%,transparent);border-radius:var(--radius-control);color:var(--color-text);min-height:32px;padding:6px 10px}.transport-controls button{align-items:center;display:flex;justify-content:center}.transport-controls button:hover,.player-action:hover{background:var(--color-surface-hover);border-color:color-mix(in srgb,var(--color-primary) 45%,transparent);color:var(--color-primary-hover)}.transport-controls .play-button{background:var(--color-brand-gradient);border:1px solid rgba(255,255,255,.16);border-radius:50%;box-shadow:0 1px #ffffff24 inset;color:var(--color-on-primary);height:40px;width:40px}.transport-controls .play-button:hover{background:linear-gradient(180deg,#3a95ff,#0084ff)}.flip-icon{transform:scaleX(-1)}.player-action{font-size:var(--font-size-compact);white-space:nowrap}.raw-workspace{background:var(--color-surface);border:1px solid var(--color-border);display:flex;flex-direction:column;height:calc(100vh - 102px);min-height:0;padding:14px}.eyebrow{color:var(--color-primary);font-size:var(--font-size-compact);letter-spacing:.12em;margin:0 0 4px}.file-summary{align-items:flex-start;border-bottom:1px solid var(--color-border);display:flex;gap:20px;justify-content:space-between;padding-bottom:12px}.file-summary h2{font-size:18px;margin:7px 0;overflow-wrap:anywhere}.file-summary p:last-child{color:var(--color-text-muted);font-size:var(--font-size-compact);margin:0}.file-actions{display:flex;gap:8px}.raw-error{margin:8px 0 0}.raw-browser{display:grid;flex:1;grid-template-columns:minmax(160px,.16fr) minmax(0,1fr);min-height:0;padding-top:12px}.raw-tree-panel{border-right:1px solid var(--color-border);min-height:0;overflow:auto;padding-right:10px}.raw-search{align-items:center;background:var(--color-surface-raised);border:1px solid var(--color-border);display:grid;gap:6px;grid-template-columns:auto 1fr auto;margin-bottom:8px;padding:5px 7px;position:sticky;top:0;z-index:2}.raw-search input{background:transparent;border:0;color:var(--color-text);font:inherit;font-size:var(--font-size-compact);min-width:0;outline:0}.raw-search button,.raw-search-back,.raw-slice-controls button,.raw-detail-header button,.raw-section-actions button,.raw-text-viewer-actions button{background:transparent;border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;font-size:var(--font-size-caption);padding:4px 7px}.raw-tree,.raw-tree ul{list-style:none;margin:0;padding:0}.raw-tree-row{align-items:center;display:grid;grid-template-columns:22px minmax(0,1fr);padding-left:calc(var(--tree-depth) * 14px)}.raw-tree-row:hover,.raw-tree-row.selected{background:var(--color-surface-hover)}.raw-tree-row.selected{box-shadow:inset 2px 0 var(--color-primary)}.raw-tree-toggle,.raw-tree-name{align-items:center;background:transparent;border:0;color:var(--color-text-muted);cursor:pointer;display:flex;min-height:28px;padding:4px}.raw-tree-toggle:disabled{cursor:wait}.raw-tree-spacer{width:22px}.raw-tree-name{color:var(--color-text);gap:5px;min-width:0;text-align:left;width:100%}.raw-tree-name span{font-size:var(--font-size-compact);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.raw-tree-name small{color:var(--color-text-subtle);font-size:var(--font-size-caption);margin-left:auto;white-space:nowrap}.raw-tree-message,.raw-search-results p{color:var(--color-text-subtle);font-size:var(--font-size-compact);padding:8px}.raw-search-results{display:grid;gap:4px}.raw-search-results>button:not(.raw-search-back){background:var(--color-surface-raised);border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;display:grid;gap:3px;padding:7px;text-align:left}.raw-search-results strong{font-size:var(--font-size-compact)}.raw-search-results small{color:var(--color-text-subtle);font-size:var(--font-size-caption);overflow:hidden;text-overflow:ellipsis}.raw-detail-panel{min-height:0;overflow:hidden;padding-left:12px}.raw-detail-panel>.panel-empty{height:100%}.raw-detail-header{align-items:center;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:2px 0 10px}.raw-detail-header span{color:var(--color-primary-hover);font-size:var(--font-size-caption)}.raw-detail-header h3{font-size:15px;margin:4px 0 0;overflow-wrap:anywhere}.raw-detail-header button{align-items:center;display:flex;gap:5px}.raw-detail-scroll{height:calc(100% - 54px);overflow:auto}.raw-detail-section{border-bottom:1px solid var(--color-border);padding:12px 0}.raw-detail-section h4{font-size:var(--font-size-compact);margin:0 0 8px}.raw-section-heading{align-items:center;display:flex;justify-content:space-between}.raw-section-heading span,.raw-muted{color:var(--color-text-subtle);font-size:var(--font-size-compact)}.raw-section-actions{align-items:center;display:flex;gap:10px}.raw-text-viewer-backdrop{align-items:center;background:#04060ab8;display:flex;inset:0;justify-content:center;position:fixed;z-index:20}.raw-text-viewer{background:var(--color-surface);border:1px solid var(--color-border);display:flex;flex-direction:column;max-height:82vh;max-width:min(960px,86vw);min-height:0;padding:12px 14px;width:100%}.raw-text-viewer-header{align-items:center;display:flex;gap:12px;justify-content:space-between;padding-bottom:8px}.raw-text-viewer-header strong{font-size:var(--font-size-compact);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.raw-text-viewer-actions{display:flex;flex-shrink:0;gap:6px}.raw-text-viewer-content{background:var(--color-surface-raised);border:1px solid var(--color-border);flex:1;font-size:var(--font-size-compact);margin:0;min-height:0;overflow:auto;padding:10px;white-space:pre}.raw-text-viewer-error{color:var(--color-danger);font-size:var(--font-size-compact)}.raw-metadata{display:grid;gap:6px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.raw-metadata>div{background:var(--color-surface-raised);border:1px solid var(--color-border);min-width:0;padding:7px}.raw-metadata dt{color:var(--color-text-subtle);font-size:var(--font-size-caption);margin-bottom:3px}.raw-metadata dd{font-size:var(--font-size-compact);margin:0;overflow-wrap:anywhere}.raw-attributes,.raw-preview-table-wrap{border:1px solid var(--color-border);max-height:640px;overflow:auto}.raw-attributes table{border-collapse:collapse;font-size:var(--font-size-compact);width:100%}.raw-attributes th,.raw-attributes td{border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);max-width:420px;padding:6px 8px;text-align:left;overflow-wrap:anywhere}.raw-preview-table{border-collapse:collapse;font-size:var(--font-size-compact);min-width:100%;width:max-content}.raw-preview-table th,.raw-preview-table td{border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);max-width:360px;overflow:hidden;padding:6px 10px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.raw-attributes th,.raw-preview-table th{background:var(--color-surface-raised);color:var(--color-text-muted);position:sticky;top:0;z-index:1}.raw-preview-table th:first-child,.raw-preview-table td:first-child{min-width:56px;width:56px}.raw-slice-controls{align-items:end;display:flex;flex-wrap:wrap;gap:7px;margin:7px 0}.raw-slice-controls label{color:var(--color-text-subtle);display:grid;font-size:var(--font-size-compact);gap:3px}.raw-slice-controls input{background:var(--color-surface-raised);border:1px solid var(--color-border);color:var(--color-text);font:inherit;padding:4px;width:80px}.raw-pager{align-items:center;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text-subtle);display:flex;flex-wrap:wrap;font-size:var(--font-size-compact);gap:6px 10px;margin:8px 0 0 auto;padding:5px 9px;width:fit-content}.raw-pager-size{align-items:center;display:flex;gap:5px}.raw-pager-size select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);font:inherit;padding:3px 5px}.raw-pager-total{color:var(--color-text-muted)}.raw-pager-nav{align-items:center;display:flex;gap:4px}.raw-pager-nav button{align-items:center;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text-muted);cursor:pointer;display:flex;height:26px;justify-content:center;padding:0;width:26px}.raw-pager-nav button:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.raw-pager-page{color:var(--color-text-muted);font-variant-numeric:tabular-nums;min-width:54px;text-align:center}@media(max-width:1599px){.playback-workspace{height:auto;min-height:0}.playback-body{gap:10px;grid-template-columns:1fr;grid-template-rows:minmax(480px,58vh) auto}.pane-splitter{display:none}.playback-left{min-height:480px}.playback-right{grid-template-columns:1fr 1fr;grid-template-rows:280px 280px;min-height:572px}.playback-right:not(.without-trajectory),.playback-right.without-trajectory{grid-template-columns:minmax(0,1fr);grid-template-rows:280px 140px;min-height:432px}}
