:root{color-scheme:dark;--brand-accent:#8641A9;--preview-cyan:#46d1d8;--connection-green:#55d49f;--safety-orange:#e1a64a;--danger:#e33d34;--ink:#f3f5f4;--muted:#94a0a3;--line:#3b474a;--panel:#1b2326;--panel-solid:#1b2326;--field:#151d1f;--deep:#0f1416;--shadow:0 18px 50px rgba(0,0,0,.38);font-family:"Bahnschrift","DIN Alternate","Microsoft YaHei",sans-serif}*{box-sizing:border-box}html,body{margin:0;min-width:320px;width:100%;height:100%;background:var(--deep);color:var(--ink)}body{height:100vh;overflow:hidden}button,input,select{font:inherit}button{border:0;cursor:pointer;font-weight:800;letter-spacing:0;transition:border-color 150ms ease,background 150ms ease,transform 150ms ease,opacity 150ms ease}button:hover:not(:disabled){transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.38}h1,h2,h3,p{margin-top:0}h1,h2{letter-spacing:0}.app-shell{min-height:100vh;background:#111719}.topbar{position:relative;z-index:20;display:flex;align-items:center;height:60px;padding:0 20px;border-bottom:1px solid #343e41;background:#171e20}.topbar:after{position:absolute;bottom:-1px;left:0;width:224px;height:2px;background:var(--brand-accent);content:""}.brand{display:flex;align-items:center;gap:12px;flex:0 0 auto}.brand img{width:40px;height:40px;object-fit:contain}.brand strong,.brand small{display:block}.brand strong{font-size:14px;letter-spacing:.06em}.brand small{margin-top:2px;color:#748084;font-size:8px;letter-spacing:.12em}.product-tabs{align-self:stretch;display:flex;margin-left:40px}.product-tabs button{padding:0 16px;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:#879396;font-size:11px;white-space:nowrap}.product-tabs button.active{border-bottom-color:var(--brand-accent);background:#20282b;color:#fff}.product-tabs small{padding:2px 5px;border:1px solid #475255;border-radius:2px;color:#778286;font-size:7px}.top-state{display:flex;align-items:center;gap:9px;margin-left:auto;color:#a6b0b2;font-size:10px}.service-state{display:flex;align-items:center;gap:7px}.service-state i{width:7px;height:7px;border-radius:50%;background:var(--safety-orange);box-shadow:0 0 0 4px rgba(225,166,74,.1)}.service-state.ok i{background:var(--connection-green);box-shadow:0 0 0 4px rgba(85,212,159,.1)}.service-state.error i{background:var(--danger)}.version{color:#748084;white-space:nowrap}.language-switch{position:relative;display:grid;grid-template-columns:28px 42px 42px;align-items:center;height:34px;padding:3px;border:1px solid #405055;border-radius:5px;background:#0d1416;box-shadow:inset 0 1px #ffffff08,0 5px 16px #0005;isolation:isolate}.language-switch:before{content:"";position:absolute;z-index:-1;top:3px;bottom:3px;left:31px;width:42px;border:1px solid #4ba9a3;border-radius:3px;background:#1e5a57;box-shadow:0 0 12px #4fd1c820}.language-icon{display:grid;place-items:center;width:25px;height:26px;color:#fff;border-right:1px solid #263337}.language-icon svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.7}.language-switch button{height:28px;padding:0;background:transparent;color:#778588;font:700 10px/28px ui-monospace,monospace}.language-switch button.active{color:#efffff}.emergency{min-height:36px;padding:0 14px;border:1px solid #ff8881;border-radius:3px;background:var(--danger);color:#fff;font-size:11px;box-shadow:0 0 0 3px rgba(227,61,52,.1)}.workflow{height:54px;display:flex;align-items:stretch;padding:0 20px;border-bottom:1px solid #313b3e;background:#151c1e}.workflow button{display:flex;align-items:center;gap:9px;padding:0 21px;border-bottom:2px solid transparent;background:transparent;color:#7e8a8d;font-size:11px}.workflow button span{font:8px ui-monospace,monospace;color:#667276}.workflow button.active{border-bottom-color:var(--preview-cyan);background:#1c2528;color:#fff}.workflow button.active span{color:var(--preview-cyan)}.workflow-meta{display:flex;align-items:center;gap:8px;margin-left:auto;color:#657174;font:8px ui-monospace,monospace;letter-spacing:.1em}.workflow-meta i{width:6px;height:6px;border-radius:50%;background:var(--connection-green)}main{height:calc(100vh - 114px);min-height:0;overflow:hidden;background:radial-gradient(circle at 50% 0,#263033 0,transparent 34%),#111719}.view{display:none}.view.active{opacity:1}.capture-grid.active{display:grid;grid-template-columns:300px minmax(520px,1fr) 286px;gap:10px;height:calc(100vh - 114px);min-height:0;padding:10px;overflow:hidden}.capture-setup,.capture-inspector{display:flex;min-width:0;min-height:0;overflow:hidden;flex-direction:column;gap:10px}.capture-setup{display:flex;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.capture-setup>.panel{flex:0 0 auto}.device-panel{display:flex;min-height:0;overflow:visible;flex-direction:column}.device-panel>.panel-head{flex:0 0 auto}.device-panel .panel-body{min-height:0;overflow:visible}.capture-inspector{overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.capture-stage{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.panel,.workspace-panel{min-width:0;border:1px solid rgba(75,88,92,.82);border-radius:5px;background:var(--panel-solid);box-shadow:0 8px 24px rgba(0,0,0,.24);backdrop-filter:none}.panel-head,.workspace-panel>header{min-height:55px;padding:12px 14px;border-bottom:1px solid #394447;display:flex;align-items:center;justify-content:space-between;gap:10px}.panel-head h1,.panel-head h2,.workspace-panel h2{margin:0;font-size:15px}.kicker{margin:0 0 4px;color:var(--safety-orange);font-size:8px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.panel-body{padding:14px}.panel-inset{margin:0 14px 14px}.tag{display:inline-flex;align-items:center;min-height:23px;padding:3px 8px;border:1px solid #465154;border-radius:3px;background:#202a2d;color:#aeb8ba;font-size:8px;white-space:nowrap}.tag.cyan{border-color:#2f7478;background:#174c50;color:#aaf9fb}.tag.blocked{border-color:#76532b;background:#322719;color:#efbd70}.tag.ready{border-color:#347b60;background:#18372d;color:#a8f2d2}.tag.subtle{color:#849093}label{display:grid;gap:6px;margin-top:11px;color:var(--muted);font-size:9px;font-weight:800}input,select{width:100%;min-width:0;padding:9px;border:1px solid #4a575a;border-radius:3px;outline:none;background:var(--field);color:#f3f5f4;font-size:10px}input:focus,select:focus{border-color:var(--preview-cyan);box-shadow:0 0 0 2px rgba(70,209,216,.08)}.primary,.ghost,.bind-button{min-height:34px;padding:8px 11px;border-radius:3px;font-size:9px}.primary{background:#293438;color:#fff;box-shadow:inset 0 0 0 1px #526064}.ghost{background:#242e31;color:#dce1df;box-shadow:inset 0 0 0 1px #465256}.wide{width:100%;margin-top:13px}.dataset-list{display:grid;gap:7px}.dataset{display:grid;gap:3px;padding:9px;border:1px solid #344043;background:#182124}.dataset b{font-size:10px}.dataset span{color:var(--muted);font:8px ui-monospace,monospace}.notice{margin:0;color:var(--muted);font-size:9px}.icon-button{display:grid;place-items:center;width:31px;height:31px;border:1px solid #465154;border-radius:3px;background:#242e31;color:#dce1df;font-size:18px}.device-stack{display:grid;gap:10px}.device-card{padding:10px;border:1px solid #364144;border-left:2px solid #566467;border-radius:3px;background:#182124}.device-card[data-role=leader]{border-left-color:var(--preview-cyan)}.device-card[data-role=follower]{border-left-color:var(--connection-green)}.cameras-card{border-left-color:var(--safety-orange)}.device-title{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center}.device-icon{display:grid;place-items:center;width:28px;height:28px;border:1px solid #4b585c;border-radius:3px;background:#202a2d;color:var(--preview-cyan);font:800 11px ui-monospace,monospace}.device-title strong,.device-title small{display:block}.device-title strong{font-size:10px}.device-title small{margin-top:2px;color:#748184;font-size:8px}.status-badge{padding:3px 5px;border:1px solid #475255;border-radius:2px;color:#788487;font:7px ui-monospace,monospace}.status-badge.on{border-color:#347b60;background:#18372d;color:var(--connection-green)}.status-badge.pending{border-color:#76532b;background:#322719;color:var(--safety-orange)}.device-actions{display:grid;grid-template-columns:1fr 72px;gap:6px;margin-top:9px}.bind-button{width:100%;border:1px solid #3aa9af;background:#174c50;color:#aaf9fb}.binding-status{padding:9px 10px;border-left:2px solid var(--safety-orange);background:#292317;color:#d5b478;font-size:8px;line-height:1.5}.capture-stage{position:relative;min-width:0;overflow-y:auto;overflow-x:hidden;border:1px solid #344043;border-radius:5px;background:radial-gradient(circle at 52% 38%,#354246 0,#232d30 28%,#171e20 62%,#101618 100%);box-shadow:var(--shadow)}.capture-stage:before{display:none;content:none}.capture-stage>*{position:relative;z-index:1}.stage-head{display:flex;align-items:center;justify-content:space-between;padding:17px 18px 13px}.stage-head h2{margin:0;font-size:16px}.stage-gate{display:grid;gap:4px;text-align:right}.stage-gate>span{color:#6f7b7e;font:7px ui-monospace,monospace;letter-spacing:.12em}.camera-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:0 14px}.camera-view{position:relative;width:100%;min-height:0;aspect-ratio:16/9;overflow:hidden;border:1px solid #445154;border-radius:4px;background:#0b1012}.camera-view video,.camera-view .native-preview{display:none;width:100%;height:100%;min-height:0;object-fit:cover}.camera-view .native-preview{position:absolute;inset:0;z-index:1;opacity:0}.camera-view.native-streaming .native-preview{display:block}.camera-view.native-streaming .native-preview.active{opacity:1}.camera-view.streaming video{display:block}.camera-view.streaming .camera-empty,.camera-view.native-streaming .camera-empty{display:none}.camera-empty{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:8px;color:#839093;background:radial-gradient(circle,#1f2b2e,#0c1214 70%)}.camera-empty:before,.camera-empty:after{position:absolute;content:"";background:#38474a}.camera-empty:before{top:50%;left:12%;right:12%;height:1px}.camera-empty:after{top:14%;bottom:14%;left:50%;width:1px}.camera-empty b{z-index:1;font-size:10px}.camera-empty small{z-index:1;color:#5f6d70;font-size:8px}.camera-reticle{z-index:1;width:44px;height:44px;border:1px solid #527579;border-radius:50%;box-shadow:inset 0 0 0 8px #132124}.camera-view footer{position:absolute;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:space-between;padding:10px 11px;background:linear-gradient(transparent,rgba(5,9,10,.94));font-size:8px}.camera-view footer div{display:flex;align-items:center;gap:6px}.camera-view footer i{width:5px;height:5px;border-radius:50%;background:#667275}.camera-view.streaming footer i{background:var(--connection-green);box-shadow:0 0 0 3px rgba(85,212,159,.12)}.camera-view footer strong{color:#a9b4b6;font:8px ui-monospace,monospace}.metric-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:10px 14px 0;border:1px solid #394649;background:#394649}.metric-strip>div{display:grid;gap:4px;padding:10px;background:#182124}.metric-strip span{color:#758184;font-size:7px;letter-spacing:.08em}.metric-strip strong{color:#e3e8e7;font:12px ui-monospace,monospace}.sync-console{margin:9px 14px 0;padding:11px;border:1px solid #394649;background:rgba(15,21,23,.82)}.waveform-head,.waveform-head>div:first-child,.waveform-controls,.sync-sources,.capture-command{display:flex;align-items:center}.waveform-head{gap:10px;justify-content:space-between}.waveform-head>div:first-child{gap:7px}.waveform-head b,.waveform-head small{display:block}.waveform-head b{font-size:9px}.waveform-head small{margin-top:3px;color:#697679;font:7px ui-monospace,monospace}.pulse{width:6px;height:6px;border-radius:50%;background:var(--safety-orange);box-shadow:0 0 0 4px rgba(225,166,74,.1)}.waveform-mode{display:flex;padding:2px;border:1px solid #3d494c;border-radius:3px;background:#12191b}.waveform-mode button{min-width:42px;height:24px;padding:0 9px;border-radius:2px;background:transparent;color:#768285;font-size:8px}.waveform-mode button.active{background:#293336;color:#fff}.waveform-status{margin-left:auto;color:var(--safety-orange);font-size:8px}.waveform-status.live{color:var(--connection-green)}.waveform-status.error{color:#ff8d87}.waveform-stage{position:relative;height:112px;margin:9px 0;border:1px solid #303c3e;background:#111719;overflow:hidden}.waveform-stage canvas{display:block;width:100%;height:100%}.waveform-empty{position:absolute;inset:0;display:grid;place-content:center;gap:4px;text-align:center;pointer-events:none}.waveform-empty.hidden{display:none}.waveform-empty b{font-size:9px}.waveform-empty span{color:#687578;font-size:7px}.waveform-controls{min-width:0;gap:10px;justify-content:space-between}.joint-selector{display:flex;flex:0 0 auto}.joint-selector button{width:29px;height:25px;border:1px solid #364245;border-right:0;background:#151d1f;color:#748184;font:8px ui-monospace,monospace}.joint-selector button:first-child{border-radius:3px 0 0 3px}.joint-selector button:last-child{border-right:1px solid #364245;border-radius:0 3px 3px 0}.joint-selector button.active{border-color:#438589;background:#1a4244;color:#aee8e6}.joint-selector.hidden{display:none}.waveform-legend{display:flex;min-width:0;gap:9px;color:#778386;font-size:7px}.waveform-legend span{display:flex;align-items:center;gap:4px;white-space:nowrap}.waveform-legend i{width:13px;height:2px;background:var(--brand-accent)}.waveform-legend .follower i{background:var(--preview-cyan)}.waveform-legend .tolerance i{background:var(--safety-orange)}.waveform-metrics{display:flex;flex:0 0 auto;gap:9px;color:#687578;font-size:7px}.waveform-metrics b{color:#b8c2c3;font:8px ui-monospace,monospace}.sync-sources,.capture-command{justify-content:space-between}.sync-sources{gap:6px;margin-top:9px}.sync-sources>div{display:grid;flex:1;gap:3px;padding:6px 8px;border-left:2px solid #566164;background:#182124}.sync-sources span{color:#6f7b7e;font-size:7px}.sync-sources strong{overflow:hidden;color:#c6cecf;font:8px ui-monospace,monospace;text-overflow:ellipsis;white-space:nowrap}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.capture-command{gap:14px;margin:9px 14px 14px;padding:11px;border:1px solid #4b585c;background:#182124}.capture-command>div{display:grid;gap:4px}.capture-command span{color:#748184;font-size:7px}.capture-command strong{font-size:9px}.record{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;border:1px solid #b23c36;border-radius:3px;background:#6b2d29;color:#fff;font-size:10px;white-space:nowrap}.record>span{width:8px;height:8px;border-radius:50%;background:#ff7168}.review{margin:0 14px 14px;padding:12px;border:1px solid #526064;background:#1c2528}.review.hidden{display:none}.review h3{margin-bottom:5px;font-size:11px}.review p{color:var(--muted);font-size:9px}.review>div{display:flex;gap:6px}.danger-outline{min-height:34px;padding:8px 11px;border:1px solid #95423c;border-radius:3px;background:#3b2220;color:#ffc0bc;font-size:9px}.joint-bars{display:grid;gap:8px}.joint-row{display:grid;grid-template-columns:22px minmax(0,1fr) 42px;gap:7px;align-items:center}.joint-row b{font:9px ui-monospace,monospace}.joint-track{height:5px;overflow:hidden;border-radius:5px;background:#303c3f}.joint-track i{display:block;height:100%;width:50%;background:linear-gradient(90deg,#246f73,var(--preview-cyan))}.joint-row output{color:var(--preview-cyan);font:8px ui-monospace,monospace;text-align:right}.pipeline-steps{display:grid;gap:7px}.pipeline-steps>div{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px;border:1px solid #344043;background:#182124}.pipeline-steps>div>span{display:grid;place-items:center;width:28px;height:28px;border:1px solid #465154;color:#768285;font:8px ui-monospace,monospace}.pipeline-steps b,.pipeline-steps small{display:block}.pipeline-steps b{font-size:9px}.pipeline-steps small{margin-top:3px;color:#748184;font-size:7px}.pipeline-steps em{color:#677376;font-size:7px;font-style:normal}.pipeline-steps .active{border-color:#2f7478;background:#173336}.pipeline-steps .active>span{border-color:var(--preview-cyan);color:var(--preview-cyan)}.pipeline-steps .active em{color:var(--preview-cyan)}.pipeline-count{color:var(--preview-cyan);font:8px ui-monospace,monospace}.cap-row{display:flex;align-items:center;justify-content:space-between;padding:7px 0;border-bottom:1px solid #303b3e;font-size:8px}.cap-row span{color:var(--muted)}.cap-row b.ok{color:var(--connection-green)}.cap-row b.bad{color:var(--safety-orange)}.local-note{margin:0 14px 14px;padding:9px;border-left:2px solid var(--brand-accent);background:#211a25;color:#9e90a5;font-size:8px;line-height:1.5}.single-view.active{display:block;height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:26px max(18px,calc((100% - 1120px)/2))}.workspace-panel>header{padding:16px 18px}.workspace-panel>header h2{font-size:17px}.empty-state{display:grid;place-items:center;max-width:650px;margin:auto;padding:80px 30px;text-align:center}.empty-state p{max-width:500px;color:var(--muted)}.empty-state label{width:min(390px,100%)}.empty-state button{margin-top:14px}.status-mark{display:grid;place-items:center;width:64px;height:64px;margin-bottom:15px;border:1px solid #4a575a;border-radius:50%;background:#202a2d;color:var(--safety-orange);font:800 10px ui-monospace,monospace}.gate-list{display:grid;gap:8px;width:min(720px,calc(100% - 32px));margin:28px auto}.gate-list>div{display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;padding:14px;border:1px solid #394649;background:#182124}.gate-list span{display:grid;place-items:center;width:28px;height:28px;border:1px solid #465154}.gate-list em{color:var(--safety-orange);font-style:normal}.hold{display:block;width:min(720px,calc(100% - 32px));min-height:72px;margin:16px auto;border:1px solid #93423d;border-radius:3px;background:#4a2623;color:#ffd1ce}.danger-note{width:min(720px,calc(100% - 32px));margin:12px auto;color:#e3a19c;font-size:9px;text-align:center}pre{max-width:100%;overflow:auto;color:#d7e0df;text-align:left}.binding-status,.review,.local-note,.danger-note{line-height:1.5}#toast{position:fixed;right:20px;bottom:20px;z-index:100;max-width:min(420px,calc(100% - 32px));padding:11px 14px;border:1px solid #526064;border-radius:3px;background:#1b2326;color:#fff;box-shadow:var(--shadow);font-size:10px;opacity:0;pointer-events:none;transform:translateY(8px);transition:.2s}#toast.show{opacity:1;transform:none}@media(max-width:1260px){.product-tabs{margin-left:18px}.product-tabs button{padding:0 10px}.capture-grid.active{grid-template-columns:280px minmax(460px,1fr) 260px}.top-state .version{display:none}}@media(max-width:1040px){.product-tabs button:not(.active){display:none}.capture-grid.active{grid-template-columns:260px minmax(420px,1fr) 240px}.top-state{gap:6px}}@media(max-width:900px){body{height:auto;min-height:100vh;overflow-y:auto}main{height:auto;min-height:calc(100vh - 114px);overflow:visible}.capture-grid.active{display:flex;height:auto;min-height:calc(100vh - 114px);overflow:visible;flex-direction:column}.capture-stage{order:1;height:auto;overflow:visible}.capture-setup{order:2;display:flex;overflow:visible}.capture-inspector{order:3;display:grid;overflow:visible;grid-template-columns:repeat(3,1fr)}.device-panel,.device-panel .panel-body{overflow:visible}}@media(max-width:720px){.topbar{height:auto;min-height:64px;flex-wrap:wrap;padding:9px 12px;gap:8px}.brand{order:1}.brand img{width:34px;height:34px}.product-tabs{order:3;width:100%;height:38px;margin:0;overflow-x:auto}.product-tabs button{display:block!important;padding:0 12px}.top-state{order:2;margin-left:auto}.service-state,.language-switch{display:none}.emergency{min-height:34px;padding:0 10px}.workflow{height:46px;padding:0 5px;overflow-x:auto}.workflow button{padding:0 12px;white-space:nowrap}.workflow-meta{display:none}main{min-height:calc(100vh - 148px)}.capture-grid.active{display:flex;flex-direction:column;padding:8px}.capture-stage{order:1}.capture-setup{order:2}.capture-inspector{order:3;display:flex}.camera-grid{grid-template-columns:1fr}.metric-strip{grid-template-columns:repeat(2,1fr)}.sync-sources{align-items:stretch;flex-direction:column}.capture-command{align-items:stretch;flex-direction:column}.record{justify-content:center}.panel-head{min-height:52px}.device-actions{grid-template-columns:1fr 80px}.single-view.active{padding:10px}.gate-list{width:calc(100% - 20px)}.gate-list>div{grid-template-columns:28px minmax(0,1fr)}.gate-list em{grid-column:2}.capture-stage,.panel,.workspace-panel{border-radius:4px}}
.form-status,.next-action{margin:0;padding:9px 10px;border:1px solid #3b474a;border-radius:4px;background:#151d1f;color:#aeb8ba;font-size:10px;line-height:1.45}.form-status.success{border-color:rgba(85,212,159,.48);background:rgba(85,212,159,.08);color:#8be2ba}.form-status.error{border-color:rgba(227,61,52,.55);background:rgba(227,61,52,.08);color:#ff9c96}.form-status.pending{border-color:rgba(70,209,216,.45);color:#8ee7eb}.next-action{border-color:rgba(225,166,74,.48);background:rgba(225,166,74,.08);color:#f0c880;font-weight:800}.next-action.ready{border-color:rgba(85,212,159,.48);background:rgba(85,212,159,.08);color:#8be2ba}.camera-actions{display:grid;grid-template-columns:1fr 1fr}.camera-actions .ghost{grid-column:1/-1}
.setup-panel .panel-head{min-height:46px;padding:9px 12px}.setup-panel .panel-body{display:grid;grid-template-columns:1fr 1fr;gap:7px 8px;padding:9px 12px}.setup-panel .panel-body label{margin:0}.setup-panel .panel-body label:first-child{grid-column:1/-1}.setup-panel .panel-body .wide{margin:0}.setup-panel .form-status{grid-column:1/-1;padding:7px 9px}.setup-panel .dataset-list{display:none}.capture-run-panel{display:grid;grid-template-columns:118px 118px minmax(150px,1fr) 190px;gap:1px;margin:10px 14px 0;border:1px solid #465154;background:#394649}.capture-run-panel>div{min-height:64px;padding:9px 10px;background:#182124}.capture-run-panel label,.capture-run-panel span{display:block;margin:0;color:#748184;font-size:7px}.round-target input{width:72px;height:28px;margin-top:6px;padding:4px 7px}.round-progress-copy strong{display:block;margin-top:7px;font:16px ui-monospace,monospace}.round-progress-copy em{color:#788487;font-size:9px;font-style:normal}.round-progress-track{position:relative}.round-progress-track:before{display:block;height:6px;margin-top:10px;background:#303b3e;content:""}.round-progress-track i{position:absolute;top:29px;left:10px;height:6px;width:0;max-width:calc(100% - 20px);background:var(--preview-cyan);transition:width .2s}.round-progress-track span{margin-top:9px;color:#d0a75e}.round-actions{display:grid;grid-template-columns:minmax(0,1fr) 54px;gap:6px;align-items:center}.round-actions .record,.round-actions .ghost{min-width:0;height:38px;padding:0 8px}.capture-run-panel>p{grid-column:1/-1;margin:0;padding:7px 10px;border-top:1px solid #394649;background:#151d1f;color:#8e9a9c;font-size:8px}.quality-verdict{padding:4px 6px;border:1px solid #475255;border-radius:3px;color:#849093;font:700 8px ui-monospace,monospace}.quality-verdict.good{border-color:#347b60;background:#18372d;color:var(--connection-green)}.quality-verdict.retry{border-color:#76532b;background:#322719;color:var(--safety-orange)}.quality-summary{padding:11px;border-left:2px solid var(--preview-cyan);background:#151d1f}.quality-summary span,.quality-summary small{display:block;color:#748184;font-size:7px}.quality-summary b{display:block;margin:5px 0;color:#e8eeee;font:20px ui-monospace,monospace}.quality-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:8px;border:1px solid #394649;background:#394649}.quality-grid>div{padding:9px;background:#182124}.quality-grid span,.camera-quality span{display:block;color:#748184;font-size:7px}.quality-grid b{display:block;margin-top:5px;font:11px ui-monospace,monospace}.camera-quality{display:grid;gap:6px;margin-top:8px}.camera-quality>div{padding:8px;border:1px solid #354144;background:#151d1f}.camera-quality b{display:block;margin-top:4px;color:#b9c4c5;font:8px ui-monospace,monospace;line-height:1.4}.quality-note{margin:8px 0 0;color:#718083;font-size:7px;line-height:1.5}.waveform-workspace{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:10px;align-items:stretch}.waveform-workspace.sync-view{grid-template-columns:1fr}.waveform-stage{height:260px;margin:9px 0;border:1px solid #303c3e;background:#0b1012;overflow:hidden}.waveform-stage canvas{display:block;width:100%;height:100%}.channel-legend{display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:4px 7px;max-height:260px;overflow-y:auto;padding:9px;border:1px solid #303c3e;background:#111719}.channel-legend.hidden{display:none}.channel-legend b{grid-column:1/-1;padding:3px 0 2px;color:#aeb8ba;font:700 8px/1.2 ui-monospace,monospace}.channel-legend label{display:flex;grid-template-columns:none;align-items:center;gap:4px;margin:0;color:#849093;font:8px/1.2 ui-monospace,monospace;cursor:pointer}.channel-legend input{position:absolute;opacity:0;width:1px;height:1px}.channel-legend i{width:8px;height:8px;border-radius:50%;border:1px solid #849093}.channel-legend label:nth-of-type(1) i{background:hsl(276 58% 62%)}.channel-legend label:nth-of-type(2) i{background:hsl(268 58% 60%)}.channel-legend label:nth-of-type(3) i{background:hsl(260 58% 58%)}.channel-legend label:nth-of-type(4) i{background:hsl(252 58% 56%)}.channel-legend label:nth-of-type(5) i{background:hsl(244 58% 54%)}.channel-legend label:nth-of-type(6) i{background:hsl(236 58% 52%)}.channel-legend label:nth-of-type(7) i{background:hsl(228 58% 50%)}.channel-legend label:nth-of-type(8) i{background:hsl(184 63% 58%)}.channel-legend label:nth-of-type(9) i{background:hsl(177 63% 56%)}.channel-legend label:nth-of-type(10) i{background:hsl(170 63% 54%)}.channel-legend label:nth-of-type(11) i{background:hsl(163 63% 52%)}.channel-legend label:nth-of-type(12) i{background:hsl(156 63% 50%)}.channel-legend label:nth-of-type(13) i{background:hsl(149 63% 48%)}.channel-legend label:nth-of-type(14) i{background:hsl(142 63% 46%)}.channel-legend input:not(:checked)+i{background:transparent;opacity:.4}.joint-selector button:first-child{width:38px;color:#f0c451}.waveform-panel .waveform-controls{align-items:flex-start}.waveform-panel .waveform-legend{display:none}@media(max-width:760px){.capture-run-panel{grid-template-columns:1fr 1fr}.round-progress-track,.round-actions{grid-column:1/-1}.waveform-workspace{grid-template-columns:1fr}.waveform-stage{height:220px}.channel-legend{grid-template-columns:repeat(4,1fr);max-height:none}.channel-legend b{grid-column:1/-1}}
.dataset-manager{display:grid;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:#161e21}.dataset-manager label{display:grid;gap:5px;margin:0;color:#8d999c;font-size:9px}.dataset-manager select{width:100%;min-width:0;height:30px}.dataset-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.dataset-stats span{overflow:hidden;padding:5px 6px;border:1px solid #344043;background:#12191b;color:#9ca7a9;font:700 8px ui-monospace,monospace;white-space:nowrap;text-overflow:ellipsis}.dataset-stats .ok{border-color:rgba(85,212,159,.38);color:var(--connection-green)}.dataset-stats .bad{border-color:rgba(225,166,74,.4);color:var(--safety-orange)}.dataset-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.dataset-actions button{min-width:0;height:30px;padding:0 8px}.dataset-manager .form-status{padding:7px 8px}.active-dataset-copy{display:flex;min-width:0;flex-direction:column;justify-content:center}.active-dataset-copy strong{overflow:hidden;margin-top:5px;color:#eef3f2;font-size:10px;white-space:nowrap;text-overflow:ellipsis}.active-dataset-copy small{margin-top:3px;color:#758184;font:7px ui-monospace,monospace}.capture-run-panel{grid-template-columns:minmax(130px,1.2fr) 92px 110px minmax(150px,1fr) 190px}
.training-workspace{width:min(1400px,calc(100% - 28px));max-width:none;margin:0 auto}.training-page-head>div>p:last-child{margin:4px 0 0;color:#788588;font-size:9px}.training-console{display:grid;gap:12px;padding:14px}.training-setup-bar{display:grid;grid-template-columns:minmax(260px,1fr) minmax(260px,1.5fr) auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);background:#182124}.training-status{display:flex;align-items:center;gap:12px;min-width:0}.training-status .status-mark{flex:0 0 auto;width:42px;height:42px;font-size:10px}.training-status h2{overflow:hidden;margin:0 0 4px;font-size:13px;white-space:nowrap;text-overflow:ellipsis}.training-status p{overflow:hidden;margin:0;color:var(--muted);font-size:9px;line-height:1.45;white-space:nowrap;text-overflow:ellipsis}.training-progress{display:grid;gap:7px;padding:10px;border:1px solid var(--line);background:var(--field)}.training-progress>div,.training-overall>div{display:flex;justify-content:space-between;color:#aeb8ba;font-size:9px}.training-progress progress,.training-overall progress{width:100%;height:8px;accent-color:var(--preview-cyan)}.training-actions{display:flex;gap:8px}.training-actions button,.training-ready>button{height:34px;padding:0 14px}.training-ready{grid-column:1/-1;display:grid;grid-template-columns:minmax(220px,1fr) minmax(330px,1.2fr) auto;align-items:end;gap:10px;padding-top:11px;border-top:1px solid var(--line)}.training-ready>label,.training-parameters label{display:grid;gap:5px;color:#8d999c;font-size:8px}.training-parameters{display:grid;grid-template-columns:repeat(3,minmax(90px,1fr));gap:8px}.training-ready select,.training-parameters input{height:32px}.training-dashboard{display:grid;gap:0;border:1px solid #3c484b;background:#141b1d}.training-run-head{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;padding:9px 12px;border-bottom:1px solid #3c484b;background:#1b2427}.training-run-head>div:first-child{display:flex;align-items:center;gap:10px;min-width:0}.training-run-head small,.training-run-head strong{display:block}.training-run-head small{margin-bottom:3px;color:#728083;font-size:7px}.training-run-head strong{overflow:hidden;font:10px ui-monospace,monospace;white-space:nowrap;text-overflow:ellipsis}.training-run-actions{display:flex;gap:7px}.training-run-actions button{height:30px;padding:0 11px;font-size:9px}.training-live-dot{width:9px;height:9px;border-radius:50%;background:#596568}.training-live-dot.active{background:var(--preview-cyan);box-shadow:0 0 0 4px rgba(70,209,216,.12)}.training-live-dot.failed{background:var(--danger);box-shadow:0 0 0 4px rgba(227,61,52,.12)}.training-failure{display:grid;grid-template-columns:210px minmax(0,1fr);gap:14px;padding:12px;border-bottom:1px solid #773934;background:#28191a}.training-failure div{display:grid;align-content:center;gap:4px}.training-failure b{color:#ffaaa5;font-size:12px}.training-failure span{color:#d47d78;font:8px ui-monospace,monospace}.training-failure pre{overflow:auto;max-height:92px;margin:0;padding:8px 10px;border-left:2px solid var(--danger);background:#1c1415;color:#ffc1bd;font:9px/1.5 ui-monospace,monospace;white-space:pre-wrap}.training-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-bottom:1px solid #3c484b}.training-kpis>div{min-width:0;min-height:82px;padding:13px 14px;border-right:1px solid #303b3e;background:#161e20}.training-kpis>div:last-child{border-right:0}.training-kpis span,.training-kpis b,.training-kpis small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.training-kpis span{color:#778487;font-size:8px}.training-kpis b{margin-top:8px;color:#edf3f2;font:17px ui-monospace,monospace}.training-kpis small{margin-top:6px;color:#829093;font-size:8px}.training-state.running{color:var(--preview-cyan)}.training-state.failed{color:#ff817a}.training-state.completed{color:var(--connection-green)}.training-overall{display:grid;gap:7px;padding:12px 14px;border-bottom:1px solid #3c484b;background:#192225}.training-overall>small{color:#829093;font-size:8px}.training-data-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,.75fr);min-height:260px;border-bottom:1px solid #3c484b}.training-plot,.training-checkpoints{min-width:0;background:#141b1d}.training-plot{border-right:1px solid #3c484b}.training-plot header,.training-checkpoints header,.training-log-panel header{display:flex;align-items:center;justify-content:space-between;min-height:45px;padding:9px 12px;border-bottom:1px solid #303b3e;background:#182124}.training-plot header b,.training-plot header small,.training-checkpoints header b,.training-checkpoints header small,.training-log-panel header b,.training-log-panel header small{display:block}.training-plot header b,.training-checkpoints header b,.training-log-panel header b{font-size:10px}.training-plot header small,.training-checkpoints header small,.training-log-panel header small{margin-top:3px;color:#718083;font-size:7px}.training-plot header>span,.training-log-panel header>span{color:#788689;font:8px ui-monospace,monospace}.training-chart-stage{position:relative;height:215px}.training-chart-stage canvas{display:block;width:100%;height:100%}.training-chart-empty{position:absolute;inset:0;display:grid;place-items:center;color:#657275;font:9px ui-monospace,monospace}.training-checkpoint-list{overflow:auto;max-height:215px;padding:4px 12px}.training-checkpoint-list>div{position:relative;display:grid;grid-template-columns:12px 1fr;gap:2px 8px;padding:10px 0;border-bottom:1px solid #293437}.training-checkpoint-list>div>span{grid-row:1/3;width:7px;height:7px;margin-top:3px;border-radius:50%;background:var(--connection-green)}.training-checkpoint-list b{font:10px ui-monospace,monospace}.training-checkpoint-list small{color:#748184;font-size:7px}.training-checkpoint-list p{margin:24px 0;text-align:center;color:#667376;font-size:9px}.training-log-panel{min-width:0}.training-log-panel pre{overflow:auto;height:180px;margin:0;padding:11px 13px;background:#0f1517;color:#a8b9b6;font:9px/1.55 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.training-result{min-height:0;margin:0;color:#ff9c96;font:9px/1.5 ui-monospace,monospace;white-space:pre-wrap}@media(max-width:1180px){.training-setup-bar{grid-template-columns:1fr auto}.training-progress{grid-column:1/-1}.training-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.training-kpis>div{border-bottom:1px solid #303b3e}.training-data-grid{grid-template-columns:minmax(0,1.5fr) minmax(220px,.75fr)}}@media(max-width:760px){.training-workspace{width:calc(100% - 16px)}.training-setup-bar,.training-ready,.training-data-grid,.training-failure{grid-template-columns:1fr}.training-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.training-run-head{align-items:flex-start;flex-direction:column}.training-run-actions{width:100%;flex-wrap:wrap}.training-plot{border-right:0;border-bottom:1px solid #3c484b}}.model-list{display:grid;gap:8px;padding:14px}.model-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:16px;border:1px solid #2a394a;background:#111b25;padding:12px}.model-row div{display:grid;gap:4px}.model-row small{color:#8596a8}.model-row span{color:#d8e2eb}.model-row b{color:#63d2a1}.hidden{display:none!important}.capture-run-panel>.review{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:64px;padding:9px 10px;border-top:1px solid #4b585b;background:#1c2729}.capture-run-panel>.review.hidden{display:none}.capture-run-panel>.review h3{margin:0 0 4px;color:#f2f5f4;font-size:11px}.capture-run-panel>.review p{margin:0;color:#a8b3b5;font-size:9px;line-height:1.4}.review-actions{display:grid;grid-template-columns:repeat(3,max-content);gap:6px}.review-actions button{height:34px;padding:0 10px;font-size:9px}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}@media(max-width:1180px){.capture-run-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.capture-run-panel>.round-progress-track,.capture-run-panel>.round-actions{grid-column:auto}.capture-run-panel>.review{grid-column:1/-1}.review-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.review-actions button{padding:0 6px}}@media(max-width:720px){.capture-run-panel{grid-template-columns:1fr}.capture-run-panel>div,.capture-run-panel>.review{grid-column:1}.capture-run-panel>.review{grid-template-columns:1fr}.review-actions{grid-template-columns:1fr}.dataset-stats{grid-template-columns:1fr 1fr}}

#model-list .model-row{grid-template-columns:minmax(0,1fr) auto auto auto auto}#model-import-status{padding:0 12px}#model-list .model-row button{white-space:nowrap}@media(max-width:800px){#model-list .model-row{grid-template-columns:minmax(0,1fr) auto;gap:10px}}

.calibration-dialog{width:min(780px,94vw);max-height:90vh;overflow:auto;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:24px}.calibration-dialog::backdrop{background:rgba(0,0,0,.75)}.calibration-dialog p{line-height:1.7}.calibration-dialog label{display:block;margin:14px 0}.calibration-dialog .device-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.calibration-dialog button{padding:12px}.calibration-joint-row{display:grid;grid-template-columns:48px 1fr 1fr;gap:10px;padding:8px;border-bottom:1px solid var(--line)}
.calibration-dialog input[type="checkbox"]{width:auto;display:inline-block;margin-right:8px}
.calibration-dialog .form-status{padding:10px;border:1px solid var(--line);background:var(--field);white-space:normal;min-height:42px;line-height:1.6}

.training-setup-bar.windows-runtime{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,360px);align-items:start;gap:22px;padding:26px}.windows-runtime .training-status{min-width:0;align-self:center}.windows-runtime .training-status h2{font-size:20px;line-height:1.5}.windows-runtime .training-status p{font-size:12px;line-height:1.7}.windows-runtime #windows-runtime-backend{font-size:12px;gap:10px}.windows-runtime #runtime-backend{min-height:44px;font-size:13px}.windows-runtime #windows-runtime-note{grid-column:1/-1;margin:0;padding:18px 20px;border:1px solid #3b555d;border-left:3px solid var(--preview-cyan);border-radius:10px;background:#142227;color:#b8d1d6;font-size:13px;line-height:1.8}.windows-runtime .training-progress,.windows-runtime .training-actions,.windows-runtime .runtime-onboarding{grid-column:1/-1}@media(max-width:720px){.training-setup-bar.windows-runtime{grid-template-columns:1fr;padding:18px}.windows-runtime .training-status h2{font-size:17px}}
