:root{color:#20262d;font-synthesis:none;background:#e9edf1;font-family:Segoe UI,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}button,input{font:inherit}button{color:inherit}.app-shell{--topbar-height:56px;--sidebar-width:288px;grid-template-columns:var(--sidebar-width) minmax(0, 1fr);grid-template-rows:var(--topbar-height) minmax(0, 1fr);background:#e9edf1;width:100%;height:100%;display:grid;position:relative}.app-shell.sidebar-collapsed{grid-template-columns:0 minmax(0,1fr)}.topbar{min-height:var(--topbar-height);z-index:5;background:#fff;border-top:3px solid #2457d6;border-bottom:1px solid #cbd2d9;grid-column:1/-1;grid-template-columns:minmax(238px,auto) minmax(260px,1fr) auto;align-items:center;gap:20px;padding:0 16px;display:grid}.brand-block,.workspace-identity,.top-actions,.sidebar-head,.analysis-head,.analysis-actions,.metric-context,.timeline-head,.timeline-head>div,.cursor-head{align-items:center;display:flex}.brand-block{gap:10px}.brand-mark{color:#2457d6;background:#eef3ff;border:1px solid #c8d5f5;border-radius:3px;place-items:center;width:30px;height:30px;display:grid}h1,h2,h3,p{margin:0}.brand-block h1{letter-spacing:0;font-size:14px;font-weight:700;line-height:1.2}.brand-block p{color:#7a8287;margin-top:2px;font-size:11px}.workspace-identity{color:#5e666b;border-left:1px solid #e2e5e6;gap:9px;min-width:0;padding-left:18px}.workspace-identity>div{min-width:0}.workspace-identity strong,.workspace-identity span{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.workspace-identity strong{color:#303639;font-size:12px;font-weight:600}.workspace-identity span{max-width:44vw;margin-top:2px;font-size:10px}.top-actions{justify-content:flex-end;gap:8px}.sync-status{color:#687176;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;max-width:260px;font-size:11px;display:flex;overflow:hidden}.sync-status>span{background:#1c8b72;border-radius:50%;flex:none;width:7px;height:7px}.sync-loading>span{background:#ca7a1b;animation:1s infinite pulse}.sync-error>span{background:#c2413b}.command-button,.icon-button{cursor:pointer;background:#fff;border:1px solid #cbd0d2;border-radius:3px;justify-content:center;align-items:center;height:34px;display:inline-flex}.command-button{color:#fff;background:#2457d6;border-color:#2457d6;gap:7px;padding:0 12px;font-size:12px;font-weight:600}.command-button-secondary{color:#39434a;background:#fff;border-color:#aeb7bd}.command-button-secondary:hover{color:#20262d;background:#f7f9f9;border-color:#7d8b90}.command-button:hover,.icon-button:hover{background:#f7f9f9;border-color:#7d8b90}.command-button:hover{color:#fff;background:#1e49b6;border-color:#1e49b6}.command-button:focus-visible,.icon-button:focus-visible,.view-action-button:focus-visible,.view-layout-switch button:focus-visible,.tree-row:focus-visible,.view-series-bar button:focus-visible{outline-offset:1px;outline:2px solid #2457d6}.command-button:disabled,.icon-button:disabled{opacity:.45;cursor:default}.icon-button{color:#596267;width:34px;padding:0}.view-action-button{color:#39434a;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #aeb7bd;border-radius:3px;justify-content:center;align-items:center;gap:5px;height:32px;padding:0 9px;font-size:11px;display:inline-flex}.view-action-button:hover{background:#f7f9f9;border-color:#7d8b90}.view-layout-switch{border:1px solid #aeb7bd;border-radius:3px;height:32px;display:inline-flex;overflow:hidden}.view-layout-switch button{color:#647078;cursor:pointer;background:#fff;border:0;border-left:1px solid #d7dcdf;place-items:center;width:30px;padding:0;display:grid}.view-layout-switch button:first-child{border-left:0}.view-layout-switch button.is-active{color:#fff;background:#465a68}.sidebar{background:#f7f8fa;border-right:1px solid #d4d8da;flex-direction:column;grid-area:2/1;min-width:0;transition:opacity .16s;display:flex;overflow:hidden}.sidebar-collapsed .sidebar{opacity:0;pointer-events:none}.sidebar-head{border-bottom:1px solid #e4e6e7;justify-content:space-between;min-height:54px;padding:0 12px 0 16px}.sidebar-head h2{font-size:13px;display:inline}.sidebar-head span{color:#858d91;margin-left:8px;font-size:10px}.sidebar-head .icon-button{border-color:#0000;width:30px;height:30px}.workspace-warning{color:#73511f;background:#fff8eb;border-left:3px solid #c47b1b;align-items:flex-start;gap:7px;margin:10px 12px 2px;padding:8px 9px;font-size:10px;line-height:1.45;display:flex}.workspace-warning svg{flex:none;margin-top:1px}.data-browser{flex-direction:column;flex:1;min-height:0;display:flex}.tree-search{color:#7c858a;background:#fff;border:1px solid #d6dadc;border-radius:4px;align-items:center;gap:7px;min-height:32px;margin:10px 12px 8px;padding:0 8px;display:flex}.tree-search:focus-within{border-color:#5a7fda;box-shadow:0 0 0 2px #2457d61a}.tree-search input{color:#303638;background:0 0;border:0;outline:0;width:100%;min-width:0;font-size:11px}.tree-search button{color:#737d81;cursor:pointer;background:0 0;border:0;place-items:center;padding:2px;display:grid}.tree-scroll{flex:1;min-height:0;padding:0 8px 8px;overflow:auto}.tree-empty{color:#7a8389;place-content:center;justify-items:center;gap:10px;min-height:160px;font-size:12px;display:grid}.tree-branch{border-left:1px solid #e0e3e4;margin-left:13px;padding-left:6px}.tree-row{color:#3a4246;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:3px;align-items:center;gap:6px;width:100%;min-height:30px;padding:3px 5px;display:flex}.tree-row:hover{background:#e9edf3}.tree-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.dataset-row{font-size:11px;font-weight:600}.dataset-row>svg:nth-child(2){color:#59656a}.side-row{color:#535d61;font-size:11px;font-weight:600}.arm-indicator{border-radius:2px;width:7px;height:7px}.arm-left{background:#2457d6}.arm-right{background:#b76727}.joint-row{color:#596267;font-size:11px}.joint-index{color:#526066;background:#e9edee;border-radius:3px;place-items:center;width:23px;height:18px;font-size:9px;font-weight:700;display:inline-grid}.channel-branch{margin-left:22px}.channel-row{color:#5d666a;min-height:28px;font-size:10px}.channel-row>svg{color:#9aa1a4;cursor:grab}.channel-row.is-selected{color:#1f4ebf;background:#e7edfc}.channel-row:disabled{opacity:.45;cursor:not-allowed}.channel-dot{background:#7a8589;border-radius:50%;width:6px;height:6px}.kind-reference,.kind-target_position{background:#2563eb}.kind-actual{background:#0f766e}.kind-error{background:#c2410c}.kind-velocity{background:#7c3aed}.kind-current{background:#a16207}.kind-control_current{background:#be123c}.kind-target_velocity{background:#0369a1}.kind-target_current{background:#4d7c0f}.channel-unit{color:#9aa1a4;font-size:9px}.status-badge{border-radius:3px;padding:1px 5px;font-size:8px;font-weight:600}.status-complete{color:#296a5b;background:#e4f2ed}.status-incomplete{color:#8a5d1e;background:#fff0d6}.status-damaged{color:#9e3535;background:#fbe5e5}.tree-hint{color:#899195;border-top:1px solid #e5e7e8;align-items:center;gap:5px;padding:9px 14px;font-size:9px;display:flex}.workspace-main{grid-area:2/2;grid-template-rows:46px 58px 82px minmax(220px,1fr) 64px 96px;min-width:0;min-height:0;padding:0 14px 10px;display:grid;position:relative;overflow:hidden}.sidebar-restore{z-index:8;cursor:pointer;background:#fff;border:1px solid #cbd0d2;border-radius:5px;place-items:center;width:32px;height:32px;display:grid;position:fixed;top:74px;left:10px;box-shadow:0 2px 8px #1f272a1a}.analysis-head{border-bottom:1px solid #cfd5dc;justify-content:space-between}.analysis-head h2{font-size:14px}.analysis-head p{color:#7c8589;margin-top:2px;font-size:10px}.analysis-actions{color:#7b8488;gap:9px;font-size:10px}.analysis-actions .icon-button{background:0 0;width:29px;height:29px}.integrity-banner{color:#79571c;background:#fff8e8;border:1px solid #ead8ae;border-radius:4px;align-items:center;gap:6px;min-width:0;max-width:44%;margin-left:auto;padding:5px 8px;font-size:9px;display:flex}.integrity-banner span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.integrity-banner strong{flex:none}.metric-strip{background:#fff;border:1px solid #cfd5dc;border-radius:2px;grid-template-columns:repeat(4,minmax(100px,1fr));align-items:stretch;margin:6px 0;display:grid;overflow:hidden}.metric:first-child{border-left:0}.series-inspector-bar{background:#fff;border:1px solid #c8d0d8;border-bottom:0;min-width:0;margin-top:6px;overflow:hidden}.series-inspector{align-items:center;gap:18px;min-width:0;height:100%;padding:7px 12px;display:flex;overflow-x:auto}.inspector-title{color:#69737c;align-items:center;gap:6px;min-width:0;font-size:10px;display:flex}.inspector-title svg{color:#2457d6}.inspector-title strong{color:#252d35;text-overflow:ellipsis;white-space:nowrap;min-width:100px;max-width:220px;font-size:11px;overflow:hidden}.inspector-controls{flex:1;align-items:center;gap:16px;min-width:max-content;display:flex}.inspector-controls label{color:#707a83;white-space:nowrap;align-items:center;gap:6px;font-size:9px;display:flex}.inspector-controls select{color:#2d353d;background:#fff;border:1px solid #c5ccd3;border-radius:2px;width:108px;height:26px;padding:0 24px 0 7px;font-size:10px}.line-width-setting input{accent-color:#2457d6;width:96px}.line-width-setting output{color:#303841;font-variant-numeric:tabular-nums;min-width:39px;font-size:10px}.color-settings{color:#707a83;align-items:center;gap:6px;min-width:0;font-size:9px;display:flex}.color-settings>span{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.color-swatches{align-items:center;gap:4px;display:flex}.color-swatches button{background:var(--swatch-color);cursor:pointer;border:1px solid #1d242b2e;border-radius:2px;width:15px;height:15px;padding:0}.color-swatches button.is-selected{outline-offset:1px;outline:2px solid #20262d}.color-settings input[type=color]{cursor:pointer;background:#fff;border:1px solid #c5ccd3;border-radius:2px;width:23px;height:21px;padding:1px}.eyebrow,.metric>span{color:#858d91;font-size:9px}.metric{border-left:1px solid #e3e5e6;flex-direction:column;justify-content:center;gap:5px;padding:7px 12px;display:flex}.metric>strong{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.chart-panel{background:#fff;border:1px solid #c8d0d8;border-radius:2px;min-width:0;min-height:0;position:relative;overflow:hidden}.view-grid{gap:8px;min-width:0;min-height:0;display:grid;overflow:auto}.view-grid.layout-vertical{grid-auto-rows:minmax(240px,1fr);grid-auto-flow:row}.view-grid.layout-horizontal{grid-auto-columns:minmax(420px,1fr);grid-auto-flow:column;overflow:auto hidden}.chart-view{grid-template-rows:29px minmax(150px,1fr) 35px;min-width:0;min-height:240px;display:grid}.layout-horizontal .chart-view{min-width:420px;min-height:0}.chart-view-head{color:#58636b;background:#f7f8f9;border:1px solid #c8d0d8;border-bottom:0;justify-content:space-between;align-items:center;min-width:0;padding:0 5px 0 9px;display:flex}.chart-view.is-active .chart-view-head{background:#f1f4fb;border-color:#8ca5df}.chart-view-head>div{align-items:center;gap:8px;min-width:0;display:flex}.chart-view-head strong{color:#303940;font-size:10px}.chart-view-head span{color:#879096;font-size:9px}.chart-view-actions{gap:2px!important}.chart-view-actions .icon-button{background:0 0;border:0;width:24px;height:23px}.view-series-bar{background:#f7f8f9;border:1px solid #c8d0d8;border-top:0;align-items:center;gap:5px;min-width:0;padding:4px 6px;display:flex;overflow-x:auto}.view-series-empty{color:#90989d;font-size:9px}.chart-panel.is-drop-active{border-color:#2457d6;box-shadow:inset 0 0 0 2px #2457d624}.chart-diagnostics{z-index:2;gap:5px;display:flex;position:absolute;top:8px;right:12px}.chart-diagnostics span{color:#815221;background:#fff8ecf0;border:1px solid #e4c6a3;border-radius:3px;padding:3px 6px;font-size:9px}.legend-item{color:#525b5f;background:#fffffff0;border:1px solid #dce0e1;border-radius:4px;flex:none;align-items:center;max-width:230px;height:25px;font-size:9px;display:inline-flex;overflow:hidden}.legend-item.is-active{color:#283033;background:#edf2ff;border-color:#829de0}.legend-item.is-hidden{opacity:.55}.legend-main,.legend-action{cursor:pointer;background:0 0;border:0;align-items:center;height:100%;display:inline-flex}.legend-main{flex:1;gap:6px;min-width:0;padding:0 6px 0 7px}.legend-action{color:#7e888c;border-left:1px solid #e2e5e6;flex:0 0 24px;justify-content:center;width:24px;padding:0}.legend-action:hover{color:#2457d6;background:#edf2ff}.legend-swatch{width:13px;height:var(--series-width,2px);background:var(--series-color);flex:none;max-height:6px}.legend-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.legend-remove:hover{color:#a83434;background:#f6eaea}.main-chart{width:100%;height:100%!important}.chart-cursor-overlay{z-index:3;pointer-events:none;border-left:1px dashed #b42318;width:0;position:absolute;top:30px;bottom:54px}.chart-cursor-tooltip{color:#f8fafc;background:#1f262df5;border:1px solid #303942;border-radius:2px;min-width:176px;max-width:260px;padding:7px 9px;position:absolute;top:8px;left:8px;box-shadow:0 4px 12px #12181d2e}.chart-cursor-overlay.is-right .chart-cursor-tooltip{left:auto;right:8px}.chart-cursor-tooltip>strong{color:#fff;font-variant-numeric:tabular-nums;margin-bottom:5px;font-size:10px;display:block}.chart-cursor-tooltip>div{grid-template-columns:11px minmax(72px,1fr) auto;align-items:center;gap:5px;margin-top:3px;font-size:9px;display:grid}.chart-cursor-tooltip>div>span:first-child{background:var(--series-color);width:10px;height:3px}.chart-cursor-label{color:#d7dde3;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chart-cursor-tooltip b{color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:9px;font-weight:600}.chart-empty{color:#748085;text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.chart-empty>div{color:#307b73;background:#f5f9f8;border:1px solid #d6dcdd;border-radius:6px;place-items:center;width:52px;height:52px;margin-bottom:10px;display:grid}.chart-empty h3{color:#3f494d;font-size:13px}.chart-empty p{margin-top:5px;font-size:10px}.drop-overlay{z-index:4;color:#12675f;pointer-events:none;background:#eef8f6e6;place-content:center;justify-items:center;gap:9px;font-size:13px;display:grid;position:absolute;inset:0}.file-drop-overlay{z-index:20;color:#124f91;pointer-events:none;background:#edf3fce0;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.file-drop-card{background:#fffffff5;border:1px solid #9bb3e5;border-radius:4px;place-items:center;gap:8px;min-width:min(360px,88vw);padding:26px 30px;display:grid;box-shadow:0 10px 30px #1f272a2e}.file-drop-card svg{color:#2457d6}.file-drop-card strong{color:#1f4ebf;font-size:15px}.file-drop-card span{color:#687176;font-size:11px}.window-navigator{background:#fff;border:1px solid #c8d0d8;border-radius:2px;min-width:0;margin-bottom:6px;padding:6px 10px 4px}.timeline-head{justify-content:space-between;margin-bottom:5px}.timeline-head>div{gap:10px}.timeline-head span{color:#838b8f;font-size:9px}.timeline-head strong{font-variant-numeric:tabular-nums;font-size:10px;font-weight:600}.overview-track{touch-action:none;background:#f4f6f8;border:1px solid #d7dde3;height:38px;position:relative;overflow:hidden}.overview-track svg{width:100%;height:34px;position:absolute;inset:3px 0 5px}.overview-track svg path{fill:none;stroke:#dfe4e5;stroke-width:.5px;vector-effect:non-scaling-stroke}.overview-track svg polyline{fill:none;stroke:#5174c8;stroke-width:1.2px;vector-effect:non-scaling-stroke;opacity:.78}.range-muted{z-index:1;pointer-events:none;background:#56626730;position:absolute;top:0;bottom:0}.range-muted-left{left:0}.range-muted-right{right:0}.range-window{z-index:2;cursor:grab;background:#2457d612;border:1px solid #2457d6;border-width:1px 0;min-width:4px;position:absolute;top:0;bottom:0}.range-window:active{cursor:grabbing}.range-handle{background:#fff;border:1px solid #2457d6;width:9px;position:absolute;top:-1px;bottom:-1px}.range-handle:after{content:"";background:#2457d6;width:1px;height:14px;position:absolute;top:11px;left:3px}.range-handle-left{left:-4px}.range-handle-right{right:-4px}.range-grip{color:#2457d6;background:#ffffffe0;border-radius:2px;place-items:center;width:19px;height:21px;margin:-10px 0 0 -9px;display:grid;position:absolute;top:50%;left:50%}.range-input{z-index:3;appearance:none;pointer-events:none;background:0 0;width:100%;height:0;margin:0;position:absolute;left:0}.range-input-start{top:11px}.range-input-end{top:32px}.range-input::-webkit-slider-thumb{appearance:none;cursor:ew-resize;pointer-events:auto;background:0 0;border:0;width:14px;height:22px}.range-input::-moz-range-thumb{cursor:ew-resize;pointer-events:auto;background:0 0;border:0;width:14px;height:22px}.timeline-scale{color:#929a9e;font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:3px;font-size:8px;display:flex}.cursor-navigator{background:#fff;border:1px solid #c8d0d8;border-top:0;border-radius:0 0 2px 2px;min-width:0;padding:6px 10px 5px}.cursor-head{color:#838b8f;justify-content:space-between;font-size:9px}.cursor-head output{color:#a02a22;font-variant-numeric:tabular-nums;font-size:10px;font-weight:700}.cursor-input{accent-color:#b42318;cursor:ew-resize;width:100%;height:18px;margin:2px 0 0;display:block}.cursor-scale{color:#929a9e;font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:-1px;font-size:8px;display:flex}.cursor-values{border-top:1px solid #edf0f2;gap:14px;min-width:0;margin-top:4px;padding-top:5px;display:flex;overflow-x:auto}.cursor-value{color:#69737b;flex:none;align-items:center;gap:5px;min-width:0;font-size:9px;display:flex}.cursor-value-swatch{background:var(--series-color);width:12px;height:3px}.cursor-value-label{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.cursor-value strong{color:#252c33;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:10px}.cursor-values-empty{color:#929a9e;font-size:9px}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.35}}@media (width<=1040px){.app-shell{--sidebar-width:260px}.topbar{grid-template-columns:minmax(210px,auto) minmax(180px,1fr) auto;gap:12px}.sync-status{display:none}.top-actions{gap:5px}.command-button{padding:0 9px}.metric-strip{grid-template-columns:repeat(3,minmax(92px,1fr))}.metric-samples{display:none}.series-inspector{gap:10px;padding-left:8px;padding-right:8px}.inspector-title strong{min-width:80px;max-width:120px}.inspector-controls{gap:10px}.color-settings>span{display:none}}@media (width<=760px){html,body,#root{overflow:auto}.app-shell,.app-shell.sidebar-collapsed{min-width:0;height:auto;min-height:100%;display:block}.topbar{grid-template-columns:minmax(0,1fr) auto;gap:8px;height:auto;min-height:58px;padding:8px 10px;display:grid;position:sticky;top:0}.brand-block p,.workspace-identity,.top-actions>.icon-button,.view-layout-switch{display:none}.command-button{height:32px}.sidebar{z-index:10;width:min(86vw,320px);position:fixed;top:58px;bottom:0;left:0;box-shadow:8px 0 28px #1a23262e}.sidebar-collapsed .sidebar{transform:translate(-102%)}.sidebar-restore{top:68px}.workspace-main{grid-template-rows:50px 66px 82px minmax(280px,1fr) 116px 96px;height:calc(100vh - 58px);min-height:748px;padding:0 8px 8px;display:grid}.sidebar-collapsed .analysis-head{padding-left:42px}.metric-strip{grid-template-columns:repeat(3,1fr);margin-top:7px}.series-inspector-bar{margin-top:6px}.series-inspector{flex-direction:column;align-items:stretch;gap:7px;height:100%;padding:8px;overflow:hidden}.inspector-title strong{max-width:none}.inspector-controls{grid-template-columns:minmax(140px,.9fr) minmax(170px,1.1fr);gap:7px 10px;min-width:0;display:grid}.inspector-controls label{gap:4px}.line-width-setting input{width:78px;min-width:0}.color-settings{grid-column:1/-1}.color-settings>span{display:inline-flex}.color-swatches{gap:3px}.color-swatches button{width:14px;height:14px}.metric{min-width:0;padding:7px 8px}.metric>strong{text-overflow:ellipsis;font-size:10px;overflow:hidden}.metric-samples,.analysis-head p{display:none}.integrity-banner{max-width:42%}.chart-panel{border-radius:2px}.view-grid.layout-horizontal{grid-auto-columns:minmax(360px,88vw)}.layout-horizontal .chart-view{min-width:360px}.window-navigator,.cursor-navigator{padding-left:6px;padding-right:6px}.timeline-head>div{gap:5px;min-width:0}.timeline-head strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}}
