.rsn-scene{--scene-border:#344752;position:relative;isolation:isolate;min-width:0;min-height:340px;height:100%;width:100%;overflow:hidden;background:#222d36;color:#dbe7ea;border:1px solid var(--scene-border);border-radius:12px;box-shadow:inset 0 1px #ffffff12}.rsn-scene-canvas{position:absolute!important;top:0;right:0;bottom:0;left:0;width:100%!important;height:100%!important}.rsn-scene-canvas canvas{display:block;outline:none;touch-action:none}.rsn-scene-head{position:absolute;top:17px;left:18px;display:grid;gap:6px;z-index:7;pointer-events:none}.rsn-scene-kicker{display:flex;gap:8px;align-items:center;letter-spacing:.1em;font-size:11px;line-height:1;font-weight:680;font-family:var(--mono,Consolas,"Courier New",monospace),sans-serif;color:#e0ecee}.rsn-scene-kicker i{width:7px;height:7px;border:1px solid #93e8d7;background:#5ed6bb;border-radius:50%;box-shadow:0 0 11px #80e9dc70}.rsn-scene-kicker b{font-weight:500;color:#7f969f}.rsn-scene-sub{padding-left:15px;font-size:10px;letter-spacing:.075em;color:#a4b8c4;font-family:var(--mono,Consolas,"Courier New",monospace),sans-serif}.rsn-scene-tools{position:absolute;top:13px;right:13px;z-index:8;display:flex;align-items:center;gap:2px;padding:3px;border:1px solid #adc5cc37;border-radius:8px;background:#182129e8;box-shadow:0 3px 12px #131c255e}.rsn-scene .rsn-scene-tools button{display:grid;place-items:center;min-width:39px;min-height:39px;width:39px;height:39px;padding:0;color:#cadde0;border:1px solid transparent;background:transparent;border-radius:5px;box-shadow:none;cursor:pointer}.rsn-scene .rsn-scene-tools button[aria-pressed=true]{background:#334b59;color:#b3f3e7;border-color:#9ee9d22a}.rsn-scene .rsn-scene-tools button:hover:not(:disabled){background:#425665;color:#fff}.rsn-scene .rsn-scene-tools button:focus-visible{outline:2px solid #89e3cf;outline-offset:2px}.rsn-scene .rsn-scene-tools button:disabled{opacity:.42;cursor:not-allowed}.rsn-scene-tools>span{width:1px;height:17px;background:#adbec03b;margin:0 2px}.rsn-scene-footer{pointer-events:none;position:absolute;bottom:0;left:0;right:0;z-index:6;display:flex;justify-content:space-between;align-items:center;padding:12px 16px;gap:12px;color:#adbec8;background:linear-gradient(0deg,#18222ceb,transparent);font-size:10px;line-height:1;font-family:var(--mono,Consolas,"Courier New",monospace),sans-serif}.rsn-scene-footer>span:first-child{white-space:nowrap;display:flex;align-items:center;gap:5px}.rsn-scene-footer i{font-style:normal;padding:3px 4px;border-radius:3px;background:#1d2934}.rsn-axis-x{color:#ffaf70}.rsn-axis-y{color:#79e3af}.rsn-axis-z{color:#74b8ff}.rsn-scene-type{padding:5px 8px;background:#23343f;border:1px solid #526771;border-radius:4px;color:#d4e2e6}.rsn-scene-html{-webkit-user-select:none;user-select:none;pointer-events:none!important}.rsn-scene-label,.rsn-axis-label{display:block;width:max-content;white-space:nowrap;font-size:9px;letter-spacing:.055em;font-family:var(--mono,Consolas,"Courier New",monospace),sans-serif;padding:4px 5px;border-radius:3px;background:#17222ce8;color:#f4f8fa;line-height:1}.rsn-scene-label{border-left:2px solid #89d2de;border-bottom:1px solid #a8c0c633}.rsn-axis-label{padding:2px 3px;font-size:9px;font-weight:700}.rsn-scene-label-tcp{border-left-color:#66d8eb;color:#94edff}.rsn-scene-label-point{border-left-color:#ffce86;color:#ffe0ae;max-width:120px;overflow:hidden;text-overflow:ellipsis}.rsn-scene-fallback{display:grid;justify-items:center;align-content:center;position:absolute;top:0;right:0;bottom:0;left:0;gap:13px;padding:25px;text-align:center;color:#bacfd8;background:radial-gradient(ellipse at 45% 48%,#2d404c,#202b35);font-size:13px}.rsn-scene-fallback strong{color:#eef5f6;font-size:18px}@media (max-width:720px){.rsn-scene{min-height:310px}.rsn-scene-head{left:12px;top:13px}.rsn-scene-sub{font-size:9px}.rsn-scene-tools{top:55px;right:10px}.rsn-scene .rsn-scene-tools button{min-width:43px;min-height:43px;width:43px;height:43px}.rsn-scene-footer{padding-inline:10px}}@media (pointer:coarse){.rsn-scene .rsn-scene-tools button{min-width:48px;min-height:48px;width:48px;height:48px}}@media (max-width:390px){.rsn-scene-gesture{display:none}}.ops-page{--op-ink:#162942;--op-secondary:#415874;--op-muted:#556b85;--op-line:#dce5ef;--op-surface:#fff;--op-recess:#f6f8fb;--op-blue:#185ce0;--op-blue-tint:#ecf3ff;--op-red:#b32938;--op-red-tint:#fff1f2;--op-green:#087052;--op-green-tint:#eaf7f1;--op-amber:#895516;--op-amber-tint:#fff6e6;--op-mono:Consolas,"Cascadia Mono","DejaVu Sans Mono","RSN Sans SC",monospace;min-width:0;color:var(--op-ink);display:grid;align-content:start;gap:16px}.ops-page *,.op-dialog *{box-sizing:border-box}.ops-page .op-head{padding:0 0 2px;margin:0;min-height:74px;display:flex;align-items:flex-end;justify-content:space-between;gap:14px 24px;color:var(--op-ink);background:none;flex-wrap:wrap;border:0}.op-kicker,.op-mini-cap{display:flex;align-items:center;gap:8px;color:var(--op-secondary);font:700 10px/1.3 var(--op-mono);letter-spacing:.14em}.op-kicker i,.op-mini-cap i{height:5px;width:13px;background:#235edc;border-radius:1px;display:inline-block}.op-head h1{font-size:clamp(27px,2.35vw,36px);letter-spacing:.01em;line-height:1.16;margin:5px 0 6px;font-weight:750}.op-head p{margin:0;color:var(--op-muted);font-size:13px;line-height:1.5}.op-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.op-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:0 13px;color:var(--op-ink,#162942);background:var(--op-surface,#fff);border:1px solid var(--op-line,#dce5ef);border-radius:7px;white-space:nowrap;font:inherit;font-size:13px;font-weight:700;text-decoration:none;transition:background .14s ease,border-color .14s ease,color .14s ease;cursor:pointer}.op-btn:not(:disabled):hover{background:#f0f5ff;border-color:#a6bde7;color:#154eae}.op-btn:disabled{color:#74839a;opacity:.65;cursor:not-allowed}.op-btn svg,.op-library-item svg,.op-tree-row svg,.op-run-alert svg{flex:none}.op-btn:focus-visible,.op-library-item:focus-visible,.op-tree-row:focus-visible,.op-timeline-row:focus-visible,.op-validation-toggle:focus-visible,.op-issues button:focus-visible,.op-filters button:focus-visible,.op-run-alert:focus-visible{outline:2px solid var(--op-blue);outline-offset:2px;z-index:1}.op-btn-primary{background:#185ce0;border-color:#185ce0;color:#fff}.op-btn-primary:not(:disabled):hover{background:#104ec7;border-color:#104ec7;color:#fff}.op-btn-danger{color:#fff;background:#ba3040;border-color:#ba3040}.op-btn-danger:not(:disabled):hover{background:#a82232;border-color:#a82232;color:#fff}.op-btn-text-danger{color:#b32938}.op-btn-text-danger:not(:disabled):hover{color:#9a2632;background:#fff1f2;border-color:#e8b7bc}.op-btn-pause{background:#fff3d6;border-color:#f1d498;color:#73470b}.op-btn-pause:not(:disabled):hover{background:#ffe8b3;border-color:#e5c172;color:#603e0c}.op-btn-text{color:#1654bb;border-color:transparent;background:none;padding:0 6px;min-height:40px}.op-btn-text:not(:disabled):hover{border-color:transparent}.op-panel{min-width:0;background:var(--op-surface);border:1px solid var(--op-line);border-radius:10px}.op-panel-head{display:flex;min-height:65px;align-items:center;justify-content:space-between;gap:8px;padding:11px 14px;border-bottom:1px solid var(--op-line)}.op-panel-title{display:flex;align-items:center;min-width:0;gap:9px}.op-panel-icon{flex:none;width:34px;height:34px;border-radius:6px;background:#eaf0fa;color:#235399;display:grid;place-items:center}.op-panel-title h2{font-size:15px;line-height:1.25;white-space:nowrap;margin:3px 0 0;font-weight:750}.op-panel-title small{display:block;font:700 9px/1.1 var(--op-mono);letter-spacing:.1em;color:var(--op-muted);white-space:nowrap}.op-index-tag{padding:5px 8px;border:1px solid #dbe4ee;color:var(--op-secondary);background:#f7f9fc;border-radius:4px;white-space:nowrap;font:700 11px/1.1 var(--op-mono)}.op-badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:25px;padding:3px 7px;font-size:11px;font-weight:750;border:1px solid var(--op-line);border-radius:4px;background:#f5f8fc;color:var(--op-secondary);white-space:nowrap}.op-badge i,.op-panel-foot i,.op-event-level i{flex:none;display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor}.op-badge-ok,.op-state-completed{background:var(--op-green-tint);border-color:#c8e5d7;color:var(--op-green)}.op-badge-error,.op-state-fault{background:var(--op-red-tint);border-color:#f3ced3;color:var(--op-red)}.op-state-paused{background:var(--op-amber-tint);border-color:#f1dfbd;color:var(--op-amber)}.op-state-running{background:var(--op-blue-tint);border-color:#c8dafe;color:#1458ce}.op-inline-banner{display:flex;align-items:center;gap:8px;padding:10px 13px;border:1px solid #f1dfbd;background:var(--op-amber-tint);color:var(--op-amber);border-radius:7px;font-size:13px}.op-program-grid{display:grid;grid-template-columns:minmax(185px,.7fr) minmax(340px,1.75fr) minmax(265px,1fr);align-items:start;gap:14px}.op-library-list{display:grid;gap:7px;padding:12px 10px}.op-library-item{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:8px;align-items:center;width:100%;min-height:58px;padding:7px;text-align:left;border:1px solid var(--op-line);border-radius:6px;background:var(--op-recess);color:var(--op-ink);transition:background .14s ease,border-color .14s ease;cursor:pointer}.op-library-item:not(:disabled):hover{background:var(--op-blue-tint);border-color:#b1c8f3}.op-library-item:disabled{opacity:.55;cursor:not-allowed}.op-library-item b{display:block;font:800 14px/1.2 var(--op-mono)}.op-library-item small{display:block;margin-top:3px;color:var(--op-muted);font-size:10px;line-height:1.3}.op-library-plus{color:#1c58be}.op-block-icon{flex:none;width:34px;height:34px;border-radius:6px;display:grid;place-items:center;color:#1a58ba;background:#e6efff}.op-block-icon.op-MoveJ{color:#1559bd;background:#e5efff}.op-block-icon.op-Wait{color:#855508;background:#fff1d0}.op-block-icon.op-SetDO{color:#0a735c;background:#e0f4ed}.op-library-foot{padding:15px 13px 10px;border-top:1px solid var(--op-line)}.op-library-foot strong{display:block;margin:8px 0 5px;font-size:14px}.op-library-foot p{font-size:12px;line-height:1.5;margin:0 0 4px;color:var(--op-muted)}.op-library-foot .op-btn-text{margin-left:-6px;font-size:12px;gap:6px}.op-tree{overflow:hidden}.op-tree-main{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#f6f8fc;color:var(--op-muted);margin:10px 11px 0;min-height:40px;padding:0 10px;border:1px solid var(--op-line);border-radius:5px;font:700 10px/1.2 var(--op-mono)}.op-tree-main-left{display:flex;gap:8px;align-items:center}.op-tree-main-left svg{color:#275aab}.op-tree-main-left b{font-size:13px;color:var(--op-ink)}.op-tree-main-left span{font:650 11px/1.2 sans-serif}.op-tree-scroll{max-height:clamp(220px,calc(100dvh - 366px),580px);overflow:auto;scrollbar-width:thin;padding:3px 10px 9px}.op-tree-rows,.op-run-list ol,.op-event-table ul{list-style:none;margin:0;padding:0}.op-tree-rows{position:relative;padding:3px 0 0 12px}.op-tree-rows:before{position:absolute;content:"";left:5px;top:0;bottom:29px;border-left:1px solid #c5d1df}.op-tree-rows li{position:relative;padding:3px 0}.op-tree-rows li:before{position:absolute;content:"";left:-6px;top:50%;width:7px;border-top:1px solid #c5d1df}.op-tree-row{display:grid;grid-template-columns:22px 34px minmax(55px,1fr) auto 15px;align-items:center;gap:7px;width:100%;min-height:54px;background:#fff;border:1px solid var(--op-line);padding:6px 9px;text-align:left;border-radius:5px;color:var(--op-ink);cursor:pointer;position:relative;transition:border-color .14s ease,background .14s ease}.op-tree-row:hover{background:#f5f8fe;border-color:#abc2e9}.op-tree-row.is-selected{border-color:#4483ee;background:#edf4ff;box-shadow:inset 2px 0 #1f66e6}.op-tree-row.is-invalid:not(.is-selected){border-color:#eddcbf;background:#fffdf8}.op-stepno{font:700 11px/1 var(--op-mono);color:var(--op-muted)}.op-tree-text,.op-timeline-title{display:grid;align-content:center;gap:4px;min-width:0}.op-tree-label,.op-timeline-title b{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:750;font-size:13px}.op-tree-text small,.op-timeline-title small{color:var(--op-muted);font:600 10px/1.2 var(--op-mono);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.op-tree-text i,.op-timeline-title i{display:inline-block;width:3px;height:3px;border-radius:50%;background:#8094ae;vertical-align:middle;margin:0 6px}.op-tree-type{font:750 10px/1 var(--op-mono);border:1px solid #dce6f3;color:#315b97;background:#f7faff;border-radius:4px;padding:4px 5px}.op-tree-arrow{color:#587395}.op-tree-warn{color:#8b5b18}.op-tree-footer{padding:8px 10px;background:#f8fafd;border-top:1px solid var(--op-line)}.op-validation-toggle{width:100%;min-height:39px;padding:0 8px;display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid #efddba;border-radius:5px;background:var(--op-amber-tint);color:var(--op-amber);cursor:pointer;font-weight:700}.op-validation-toggle:hover{background:#fff0d6}.op-validation-toggle span,.op-validation-ok{display:flex;align-items:center;gap:6px}.op-validation-toggle span:last-child{font-size:11px;font-weight:650;white-space:nowrap}.op-validation-warn{font-size:12px}.op-validation-ok{min-height:35px;color:var(--op-green);font-size:12px;font-weight:750;padding:0 6px}.op-validation-ok span{color:var(--op-muted);margin-left:auto;font-weight:600}.op-issues{list-style:none;display:grid;gap:4px;padding:5px 2px 0;margin:0;max-height:160px;overflow:auto}.op-issues li{color:var(--op-amber);font-size:12px;padding:0 3px;line-height:1.4}.op-issues li>span{display:block;padding:5px 4px}.op-issues button{min-height:38px;border:0;background:none;display:flex;width:100%;align-items:center;gap:8px;text-align:left;color:var(--op-amber);cursor:pointer;font:inherit}.op-issues button:hover{text-decoration:underline}.op-issues button span{flex:1}.op-issues svg{flex:none}.op-inspector-ident{display:flex;align-items:center;gap:10px;margin:11px 12px 0;min-height:54px;padding:7px 9px;background:#f6f8fc;border:1px solid var(--op-line);border-radius:5px}.op-inspector-ident>div{display:grid;gap:3px}.op-inspector-ident strong{font:800 15px/1 var(--op-mono)}.op-inspector-ident div span{font-size:11px;color:var(--op-muted)}.op-inspector-ident .op-index-tag{margin-left:auto}.op-form{border:0;min-inline-size:0;margin:0;padding:10px 12px 12px;display:grid;gap:10px}.op-form label{display:grid;gap:5px;color:var(--op-secondary);font-size:12px;font-weight:750}.op-form input,.op-form select{font:inherit;color:var(--op-ink);background:#fff;border:1px solid #cbd8e8;border-radius:6px;width:100%;min-width:0;min-height:41px;padding:0 8px;outline-offset:2px;font-size:13px}.op-form input:focus-visible,.op-form select:focus-visible{outline:2px solid var(--op-blue)}.op-form :is(input,select):disabled{background:#f1f5fa;opacity:.75;color:var(--op-muted)}.op-form select{padding-right:5px}.op-input-unit{display:grid;align-items:center;grid-template-columns:minmax(0,1fr) 39px}.op-input-unit input{border-radius:6px 0 0 6px;font-family:var(--op-mono)}.op-input-unit>span{align-self:stretch;display:grid;place-items:center;border:1px solid #cbd8e8;border-left:none;border-radius:0 6px 6px 0;background:#f5f8fc;font:700 12px/1 var(--op-mono)}.op-position-readout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;border:1px solid var(--op-line);background:#f8fafd;padding:4px;border-radius:5px}.op-position-readout span{display:flex;justify-content:space-between;gap:2px;padding:4px 3px;color:var(--op-secondary);font:650 10px/1.2 var(--op-mono)}.op-position-readout small{color:var(--op-muted);font-size:9px}.op-position-readout b{color:var(--op-ink);white-space:nowrap}.op-field-note{margin:0;color:var(--op-muted);line-height:1.5;font-size:11px}.op-do-channel{display:flex;gap:6px;align-items:center;padding:6px;background:#f4f8fb;border-radius:4px}.op-do-channel b{font-family:var(--op-mono)}.op-field-error{margin:0;color:var(--op-amber);background:var(--op-amber-tint);border-radius:5px;padding:6px;font-size:11px;line-height:1.45;display:flex;align-items:flex-start;gap:5px}.op-field-error svg{flex:none}.op-inspector-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:9px 11px;border-top:1px solid var(--op-line)}.op-inspector-actions .op-btn{padding:0 5px;gap:4px}.op-empty{padding:22px 16px;text-align:center}.op-empty-icon{background:#edf2fa;color:#57749b;display:grid;place-items:center;width:46px;height:46px;margin:auto;border-radius:8px}.op-empty h3{margin:10px 0 4px;font-size:14px}.op-empty p{margin:0;color:var(--op-muted);font-size:12px;line-height:1.65}.op-dialog{max-width:min(420px,calc(100vw - 34px));padding:20px;border:1px solid #c9d6e7;border-radius:10px;color:#162942;background:#fff;box-shadow:0 12px 50px #101c3555}.op-dialog::backdrop{background:#101d3b72}.op-dialog-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:6px;color:#1955bd;background:#edf3ff}.op-dialog h2{font-size:19px;margin:12px 0 7px}.op-dialog p{color:#556b85;margin:0;font-size:13px;line-height:1.6}.op-dialog-buttons{display:flex;justify-content:flex-end;gap:8px;margin-top:17px}.op-run-grid{display:grid;align-items:start;grid-template-columns:minmax(0,1.9fr) minmax(325px,1fr);gap:14px}.op-run-left{display:grid;min-width:0;gap:10px;align-content:start}.op-run-scene{min-width:0;height:clamp(345px,calc(100dvh - 316px),700px);display:grid}.op-runtime-scene{min-width:0;width:100%;height:100%;min-height:0}.op-runtime-status{min-height:36px;padding:0 11px;font-size:12px}.op-run-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.op-run-metrics>div{display:flex;align-items:center;gap:9px;min-height:59px;padding:8px 10px;background:#fff;border:1px solid var(--op-line);border-radius:7px}.op-run-metrics svg{flex:none;color:#40689e}.op-run-metrics>div>span{min-width:0;display:grid;gap:3px}.op-run-metrics small{color:var(--op-muted);font-size:10px;white-space:nowrap}.op-run-metrics strong{font:750 15px/1.2 var(--op-mono)}.op-run-metrics strong.op-io-on{color:var(--op-green)}.op-run-metrics i{font-size:10px;font-style:normal;color:var(--op-muted)}.op-run-controls{display:grid;grid-template-columns:minmax(100px,1.4fr) repeat(3,minmax(58px,1fr));gap:6px;padding:10px 11px}.op-run-controls .op-btn{padding:0 5px;gap:4px}.op-progress{display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px;margin:0 12px;padding:8px 0}.op-progress span{font-size:11px;font-weight:700;color:var(--op-muted)}.op-progress output{color:#1b59c5;font:800 13px/1 var(--op-mono)}.op-progress progress{grid-column:1 / -1;display:block;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;width:100%;height:5px;background:#e5edf8;border-radius:20px;overflow:hidden;color:#2367e4}.op-progress progress::-webkit-progress-bar{background:#e5edf8}.op-progress progress::-webkit-progress-value{background:#2367e4;transition:width .14s linear}.op-progress progress::-moz-progress-bar{background:#2367e4}.op-run-alert{margin:1px 11px;border:1px solid #ead7b5;background:var(--op-amber-tint);color:var(--op-amber);border-radius:5px;display:flex;align-items:center;gap:7px;padding:8px;text-align:left;width:calc(100% - 22px);min-height:47px;cursor:pointer}.op-run-alert:hover{border-color:#b98e44}.op-run-alert span{display:grid;gap:4px;flex:1}.op-run-alert b{font-size:12px}.op-run-alert small{font-size:11px;line-height:1.3}.op-run-alert-error{border-color:#f0c3c9;color:var(--op-red);background:var(--op-red-tint)}.op-run-alert-error:hover{border-color:#cb7884}.op-run-list{margin:3px 0 0;padding:0 10px 8px;max-height:clamp(160px,calc(100dvh - 450px),560px);overflow:auto;scrollbar-width:thin}.op-run-list ol{display:grid;gap:5px}.op-timeline-row{width:100%;min-height:43px;display:grid;grid-template-columns:23px minmax(65px,1fr) auto;gap:7px;align-items:center;text-align:left;background:#f8fafd;color:var(--op-ink);border:1px solid var(--op-line);border-radius:5px;padding:5px 7px;cursor:pointer}.op-timeline-row:hover{border-color:#8cafea}.op-timeline-row.is-current{background:#eaf3ff;border-color:#6b9ff5;box-shadow:inset 2px 0 #1c63da}.op-timeline-row.is-done{background:#f4faf6;border-color:#dbece3}.op-timeline-num{display:grid;place-items:center;border-radius:4px;width:22px;height:22px;background:#e9eff8;color:#425f85;font:750 10px/1 var(--op-mono)}.op-timeline-row.is-current .op-timeline-num{color:#fff;background:#1c63da}.op-timeline-row.is-done .op-timeline-num{color:var(--op-green);background:#e1f3e9}.op-timeline-title{gap:2px}.op-timeline-title b{font-size:12px}.op-timeline-title small{font-size:10px}.op-timeline-state{color:var(--op-muted);font-size:10px;white-space:nowrap}.op-timeline-row.is-current .op-timeline-state{color:#1458ce;font-weight:750}.op-panel-foot{min-height:47px;padding:3px 10px;border-top:1px solid var(--op-line);display:flex;justify-content:space-between;align-items:center;gap:6px}.op-panel-foot>span{display:flex;align-items:center;gap:6px;color:var(--op-muted);font:700 10px/1.1 var(--op-mono)}.op-panel-foot i{color:var(--op-green)}.op-diag-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.op-diag-card{display:flex;align-items:center;gap:10px;min-height:66px;padding:9px 12px}.op-diag-card>div{display:grid;gap:5px;min-width:0}.op-diag-card small{color:var(--op-muted);font-size:11px;white-space:nowrap}.op-diag-card b{font:750 15px/1.2 var(--op-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.op-diag-card .op-badge{margin-left:auto}.op-filters{display:flex;gap:6px;flex-wrap:wrap;padding:10px 13px}.op-filters button{display:flex;align-items:center;gap:6px;min-height:38px;padding:0 9px;background:#f6f8fc;color:var(--op-secondary);border:1px solid var(--op-line);border-radius:5px;cursor:pointer;font-size:12px;font-weight:700}.op-filters button:hover{border-color:#a6bde7}.op-filters button.is-active{background:#eaf2ff;color:#1955bc;border-color:#aac6f7}.op-filters button span{font:700 10px/1 var(--op-mono);padding:4px;background:#e7edf7;border-radius:4px}.op-event-table{margin:0 13px 12px;border:1px solid var(--op-line);border-radius:6px;overflow:hidden}.op-event-table ul{max-height:clamp(190px,calc(100dvh - 405px),640px);overflow:auto;scrollbar-width:thin}.op-event-header,.op-event-row{display:grid;grid-template-columns:86px 64px minmax(95px,1fr) 112px;align-items:center;gap:10px;padding:3px 10px}.op-event-header{min-height:36px;background:#f4f7fb;color:var(--op-secondary);font-size:11px;font-weight:750}.op-event-row{min-height:49px;font-size:13px;border-top:1px solid var(--op-line)}.op-event-row.op-event-error{background:#fff8f8}.op-event-row.op-event-warn{background:#fffdf8}.op-event-row time{font:700 11px/1 var(--op-mono);color:var(--op-muted)}.op-event-level{display:inline-flex;width:max-content;align-items:center;gap:4px;color:#245aa3;background:#eaf2ff;border:1px solid #dbe7fb;border-radius:4px;padding:4px;font-size:10px;font-weight:750;white-space:nowrap}.op-level-warn{color:var(--op-amber);background:var(--op-amber-tint);border-color:#efdfc0}.op-level-error{color:var(--op-red);background:var(--op-red-tint);border-color:#f1cdd4}.op-event-message{min-width:0;overflow-wrap:anywhere;line-height:1.45}.op-event-action{color:var(--op-muted);font-size:11px}.op-event-action .op-btn{min-height:41px;font-size:12px}@media (min-width:1500px){.ops-page{gap:20px}.op-program-grid,.op-run-grid{gap:17px}.op-library-list{padding:14px;gap:8px}.op-library-item{min-height:64px;padding:8px 10px;gap:9px}.op-tree-row{min-height:60px;gap:10px;padding:7px 10px}.op-timeline-row{min-height:49px}}@media (max-width:1040px){.op-program-grid{grid-template-columns:minmax(290px,1.45fr) minmax(255px,1fr)}.op-library{grid-column:1 / -1}.op-library-list{grid-template-columns:repeat(3,minmax(0,1fr))}.op-library-foot{display:none}.op-run-grid{grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr)}}@media (max-width:740px){.ops-page{gap:12px}.op-program-grid,.op-run-grid{grid-template-columns:minmax(0,1fr);gap:10px}.op-run-scene{height:clamp(330px,56vw,460px)}.op-diag-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.op-diag-card{padding:6px 8px;gap:6px}.op-diag-card:last-child{grid-column:1 / -1}.op-library-list{padding:8px;gap:5px}.op-library-item{grid-template-columns:auto minmax(0,1fr);gap:5px;padding:5px}.op-library-item b{font-size:12px}.op-library-item small,.op-library-plus{display:none}.op-library-item .op-block-icon{width:26px;height:26px}.op-tree-scroll{max-height:320px}.op-run-list{max-height:300px}.op-event-header,.op-event-row{grid-template-columns:64px 40px minmax(56px,1fr) 78px;gap:5px;padding:2px 5px}.op-event-row time,.op-event-action .op-btn{font-size:10px}.op-event-action .op-btn{padding:0 2px;gap:3px}.op-event-action .op-btn svg{width:12px}.op-event-table{margin:0 6px 8px}}@media (max-width:375px){.op-tree-row{grid-template-columns:19px 30px minmax(50px,1fr) 14px;gap:5px;padding:5px}.op-tree-row .op-block-icon{width:29px;height:29px}.op-tree-type{display:none}.op-run-controls .op-btn{font-size:12px}.op-run-controls .op-btn svg{width:14px}.op-run-metrics{gap:4px}.op-run-metrics>div{padding:5px;gap:4px}.op-run-metrics svg{width:13px}.op-run-metrics strong{font-size:13px}}@media (pointer:coarse){.op-btn,.op-filters button,.op-validation-toggle{min-height:46px}.op-form :is(input,select){min-height:46px}}@media (prefers-reduced-motion:reduce){.ops-page *{transition:none!important}}@font-face{font-family:RSN Sans SC;src:url(/assets/RSN-Sans-SC-DfHolp9c.woff2) format("woff2");font-style:normal;font-weight:100 900;font-display:swap}:root{font-family:Microsoft YaHei UI,Noto Sans CJK SC,PingFang SC,RSN Sans SC,sans-serif;color:#17283b;background:#e9eef4;font-synthesis:none;text-rendering:optimizeLegibility;--nav:#101e31;--nav2:#162840;--ink:#17283b;--muted:#54677c;--line:#d5dee8;--panel:#fcfdff;--canvas:#edf2f7;--accent:#075aca;--accent-soft:#e7f1fe;--danger:#b5283d;--mono:"Bahnschrift","Cascadia Mono","DejaVu Sans Mono","RSN Sans SC",monospace;--radius:11px}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit}svg{flex:none}h1,h2,p{margin:0}h2{font-size:15px;font-weight:800;letter-spacing:.012em}small{font-size:12px}button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid #2587f4;outline-offset:3px}button,input,select{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.studio-shell{min-height:100dvh;display:flex;flex-direction:column}.topbar{height:64px;background:var(--nav);color:#eaf1fa;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(17px,3vw,44px);gap:12px;border-bottom:1px solid #243650;flex:none;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:11px;white-space:nowrap;text-decoration:none}.brandmark{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;border:1px solid #5d9cf1;background:#1566d8;color:#fff;box-shadow:0 5px 16px #051e54}.brand-copy{display:grid;gap:3px}.brand-copy b{font:650 21px/1 var(--mono);letter-spacing:-.045em}.next-word{color:#8fcbff}.brand-copy small{color:#a8bad0;font-size:10px;letter-spacing:.15em}.top-tools{display:flex;align-items:center;gap:16px}.mode-badge{height:30px;display:flex;align-items:center;gap:7px;padding:0 9px;background:#193445;border:1px solid #2d5364;border-radius:5px;font:700 12px var(--mono);letter-spacing:.08em;color:#92ead7;white-space:nowrap}.mode-badge span,.top-state span,.stage-live span{width:7px;height:7px;border-radius:50%;background:#55d6aa;box-shadow:0 0 0 3px #54d5a721}.mode-badge small{font:600 10px Microsoft YaHei UI,sans-serif;letter-spacing:0;color:#c4ede4}.top-divider{width:1px;height:25px;background:#33465d}.model-select{position:relative;display:flex;align-items:center;gap:9px;padding:0 9px 0 11px;border:1px solid #3d536d;background:#1b2d47;color:#adc5e0;border-radius:6px;height:40px}.model-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:#f0f6ff;height:100%;padding:0 20px 0 0;font:650 13px var(--mono);min-width:114px;cursor:pointer}.model-select select option{background:#1b2d47}.model-select select:disabled{opacity:.66;cursor:not-allowed}.model-select svg:last-child{pointer-events:none;position:absolute;right:8px}.top-state{display:flex;gap:9px;align-items:center;font-size:12px;color:#b8cbe0;min-width:64px;white-space:nowrap}.top-state.running span{background:#55b7ff;box-shadow:0 0 0 3px #55b7ff26}.top-state.paused span{background:#f6b64e;box-shadow:0 0 0 3px #f6b64e26}.top-state.fault span{background:#ff7182;box-shadow:0 0 0 3px #ff718229}.studio-main{flex:1;width:100%;max-width:1880px;align-self:center;padding:26px clamp(18px,3vw,44px) 24px}.workspace{min-width:0}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:15px;margin-bottom:22px}.eyebrow{font:650 11px/1.2 var(--mono);letter-spacing:.13em;color:#466581;display:flex;align-items:center;gap:8px}.index-mark{height:13px;width:13px;background:repeating-linear-gradient(125deg,#0e65d9 0 2px,transparent 2px 4px);clip-path:polygon(20% 0,100% 0,100% 80%,80% 100%,0 100%,0 20%)}.slash{color:#8496a9}.page-head h1{font-size:clamp(26px,2.45vw,41px);line-height:1.18;letter-spacing:-.045em;margin:9px 0 7px;font-weight:850}.page-head p{font-size:13px;line-height:1.55;color:var(--muted)}.head-meta{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.spec-stamp{display:flex;align-items:center;gap:7px;padding:8px 10px;background:#f9fbfd;border:1px solid #d2dde8;border-radius:5px;color:#36536f;font-weight:700;font-size:12px;white-space:nowrap}.spec-stamp svg{color:#356baa}.btn{border:1px solid #c6d2df;min-height:44px;border-radius:7px;background:#fff;color:#213b55;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 14px;font-size:13px;font-weight:750;white-space:nowrap;transition:background .14s,border-color .14s}.btn:not(:disabled):hover{background:#f1f6fb;border-color:#8eadd0}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:not(:disabled):hover{background:#074eab;border-color:#074eab}.btn.danger{color:var(--danger);border-color:#dfb7be}.btn.danger:not(:disabled):hover{background:#fff1f3;border-color:#d68b99}.btn.ghost{background:#f6f9fd}.btn.small{min-height:40px;padding:0 10px}.btn:disabled{opacity:.44}.tag,.status-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid #cddae7;background:#eef4fa;padding:5px 8px;border-radius:5px;font-weight:750;font-size:11px;white-space:nowrap;color:#385a79}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:0;box-shadow:0 3px 9px #24456c08;overflow:hidden}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 15px;border-bottom:1px solid #e1e7ee;min-height:59px}.panel-head>div{display:flex;align-items:center;gap:10px;min-width:0}.panel-head small{display:block;margin-top:3px;font:650 10px var(--mono);color:#627890;letter-spacing:.065em}.panel-icon{width:32px;height:32px;display:grid;place-items:center;color:#155ba9;background:#e7f1fc;border:1px solid #d6e5f7;border-radius:7px;flex:none}.work-grid,.jog-grid{display:grid;gap:17px;grid-template-columns:minmax(0,1fr) clamp(310px,29vw,392px);align-items:start}.hero-stage{background:#f9fbfd}.stage-live{display:flex;align-items:center;gap:9px;font-size:12px;color:#395c74;font-weight:650}.stage-live span{background:#318669;box-shadow:0 0 0 3px #2a996a19}.work-scene{height:clamp(390px,calc(100dvh - 306px),780px)}.jog-scene{height:clamp(400px,calc(100dvh - 325px),770px)}.stage-caption{padding:11px 14px;display:flex;justify-content:space-between;color:#49617a;font-size:11px;align-items:center}.stage-caption span:first-child{display:flex;align-items:center;gap:6px;font:650 12px var(--mono)}.work-rail,.jog-rail{display:grid;gap:14px;min-width:0}.workflow-list{display:grid;padding:8px 13px}.workflow-row{display:grid;grid-template-columns:36px minmax(0,1fr) 19px;align-items:center;gap:12px;min-height:66px;text-align:left;border:0;border-bottom:1px solid #e4ebf3;color:#24415c;background:none;padding:8px 1px}.workflow-row:last-child{border-bottom:0}.workflow-row:hover{color:#075ac3}.task-no{background:#ecf3fb;border:1px solid #dbe8f5;border-radius:6px;width:32px;height:30px;display:grid;place-items:center;color:#1a589c;font-size:13px;font-weight:750}.task-copy{display:grid;gap:4px}.task-copy b{font-size:14px}.task-copy small{color:var(--muted);font-size:11px}.workflow-row>svg{color:#285f9d}.model-body{padding:16px}.model-body strong{font-size:20px;color:#14375b;letter-spacing:-.04em}.model-body dl{margin:14px 0 0;display:grid;grid-template-columns:1fr 1.4fr}.model-body dl>div{border-right:1px solid #e0e8f0}.model-body dl>div:last-child{padding-left:16px;border:0}.model-body dt{color:var(--muted);font-size:11px;margin-bottom:5px}.model-body dd{margin:0;font:700 23px var(--mono);color:#1c3857}.model-body dd small{font-size:11px;color:#546982}.project-strip{display:flex;justify-content:space-between;gap:6px;padding:11px 12px;color:#375a7a;background:#e2eaf3;border:1px solid #d4e0ec;border-radius:7px;font-size:11px;font-weight:700}.project-strip span{display:flex;align-items:center;gap:6px}.jog-grid{grid-template-columns:minmax(0,1fr) clamp(330px,32vw,420px)}.axis-chip{background:#e7f2ff;color:#075ac3;border-color:#c8dff9}.jog-settings{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid #e8edf3;font-size:12px;color:#49647c;font-weight:650}.segmented{display:flex;background:#e9eff6;border:1px solid #d9e2ec;border-radius:6px;padding:2px;gap:2px}.segmented button{min-height:34px;min-width:45px;background:transparent;border:1px solid transparent;border-radius:4px;color:#46637e;font:650 12px var(--mono)}.segmented button[aria-pressed=true]{background:#fff;border-color:#d4deea;color:#0958bb}.joint-list{padding:5px 10px}.joint-line{display:grid;grid-template-columns:1.12fr 42px .9fr 42px;gap:7px;align-items:center;min-height:48px;border-bottom:1px solid #e6edf4;padding:2px 4px;border-radius:5px}.joint-line:last-child{border-bottom:0}.joint-line.selected{background:#eaf3ff}.axis-select{align-self:stretch;display:flex;align-items:center;gap:8px;text-align:left;background:none;border:0;padding:0 5px;color:#173756}.axis-select b{font:750 15px var(--mono)}.axis-select small{font:600 10px var(--mono);color:#5b7391;white-space:nowrap}.joint-angle{text-align:center;color:#173756;font-weight:700;font-size:15px;white-space:nowrap}.jog-pad{min-height:40px;display:grid;place-items:center;background:#fff;color:#1c5289;border:1px solid #c6d7e8;border-radius:5px;touch-action:none;-webkit-user-select:none;user-select:none}.jog-pad:active:not(:disabled){background:#d4e8ff;border-color:#5597e2}.jog-pad:disabled{opacity:.38}.jog-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid #e5ecf4;padding:8px 11px;color:#5c7286;font-size:11px}.record-form{display:flex;gap:8px;padding:11px}.record-form input{width:0;flex:1 1 auto;min-height:44px;background:#f6f9fc;border:1px solid #cbd8e6;border-radius:6px;padding:0 9px;color:#21384d;font-size:12px}.record-form .btn{padding:0 9px}.record-feedback{color:#1155a1;font-size:11px;padding:0 11px 8px}.point-tiles{display:flex;gap:6px;flex-wrap:wrap;padding:0 11px 11px;max-height:115px;overflow:auto}.point-tiles p{font-size:12px}.point-tile{display:flex;align-items:center;gap:5px;min-height:37px;padding:0 8px;font:650 11px var(--mono);border:1px solid #cddce9;border-radius:5px;color:#24547e;background:#f2f7fc;max-width:100%}.point-tile span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.point-tile[aria-pressed=true]{background:#e5f1ff;border-color:#488fe8;color:#0952af}.tcp-readout{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;min-height:52px}.tcp-readout>div{padding:8px 12px;display:flex;align-items:center;gap:8px;border-right:1px solid #dee7f0;font:700 13px var(--mono);color:#23415e}.tcp-readout>div:last-child{border-right:0}.tcp-readout span small{display:block;color:#586f85;font:600 10px Microsoft YaHei UI,sans-serif;margin-top:2px}.tcp-readout b{color:#486a89}.tcp-readout output{white-space:nowrap}.tcp-readout output small{font-size:10px;color:#596e82}.studio-foot{min-height:64px;position:sticky;bottom:0;z-index:9;background:var(--nav);color:#afc4db;border-top:1px solid #263952;display:grid;align-items:center;grid-template-columns:1fr auto 1fr;gap:12px;padding:0 clamp(17px,3vw,44px)}.foot-rail{display:flex;align-items:center;gap:8px;font-size:10px;white-space:nowrap;color:#a9bbcf}.foot-build{justify-self:end}.foot-mode{font:700 10px var(--mono);color:#98edda;border:1px solid #3a665d;border-radius:3px;padding:3px 4px}.foot-build .mono{color:#c3d4e9}.dock{display:flex;align-items:center;gap:6px;height:100%}.dock button{height:47px;min-width:96px;display:flex;align-items:center;justify-content:center;gap:7px;color:#b8cce3;background:none;border:1px solid transparent;border-radius:7px;font-size:12px;font-weight:750;padding:0 10px;white-space:nowrap}.dock button:hover{background:#1a3150}.dock button[aria-current=page]{color:#f1f7ff;background:#1b3b61;border-color:#325a87;box-shadow:inset 0 -2px #66b9ff}.dock button[aria-current=page] svg{color:#82caff}.storage-banner{padding:9px 12px;margin-bottom:12px;border:1px solid #deb968;background:#fff4d9;color:#704c0a;font-size:12px;display:flex;align-items:center;gap:8px;border-radius:6px}@media (max-width:1190px){.studio-main{padding-top:20px}.page-head{margin-bottom:16px}.jog-grid,.work-grid{gap:13px}.joint-line{min-height:46px}.jog-pad{min-height:38px}.tcp-readout>div{padding:7px 8px}}@media (max-width:950px){.studio-foot{grid-template-columns:1fr;justify-items:center;padding:0 8px}.foot-rail{display:none}.dock button{min-width:92px}.head-meta{display:none}.jog-grid{grid-template-columns:minmax(0,1fr) 330px}.work-grid{grid-template-columns:minmax(0,1fr) 290px}.work-scene,.jog-scene{height:clamp(380px,calc(100dvh - 287px),610px)}}@media (max-width:720px){.topbar{height:57px;padding:0 12px}.brandmark{width:33px;height:33px}.brand-copy b{font-size:16px}.brand-copy small,.mode-badge small,.top-divider,.model-select>svg:first-child,.top-state{display:none}.top-tools{gap:6px}.mode-badge{padding:0 6px}.model-select{height:38px;padding-left:7px}.model-select select{font-size:11px;min-width:102px}.studio-main{padding:16px 11px}.page-head{align-items:flex-start}.page-head p{font-size:12px}.jog-head .btn{padding:0 8px;font-size:11px;margin-top:13px}.work-grid,.jog-grid{grid-template-columns:minmax(0,1fr)}.work-scene,.jog-scene{height:clamp(330px,52vh,510px)}.dock{gap:0;width:min(100%,485px);justify-content:space-around}.dock button{height:49px;min-width:0;flex:1;gap:2px;flex-direction:column;padding:0 2px;font-size:10px}.studio-foot{min-height:57px;padding-bottom:env(safe-area-inset-bottom)}.joint-line{min-height:50px;grid-template-columns:1fr 48px .8fr 48px}.jog-pad,.axis-select{min-height:45px}.tcp-readout{min-height:46px;grid-template-columns:.9fr 1fr 1fr 1fr}.tcp-readout>div{font-size:11px;gap:4px}.tcp-readout>div:first-child>svg{display:none}.model-body dd{font-size:20px}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}@media (min-width:951px){.studio-main .work-scene{height:clamp(355px,calc(100dvh - 384px),780px)}.studio-main .jog-scene{height:clamp(355px,calc(100dvh - 395px),770px)}.studio-main .op-run-scene{height:clamp(345px,calc(100dvh - 384px),760px)}.studio-main .op-tree-scroll{max-height:clamp(220px,calc(100dvh - 410px),730px)}.studio-main .op-run-list{max-height:clamp(170px,calc(100dvh - 490px),640px)}}@media (min-width:951px) and (max-height:960px){.jog-page .panel-head{min-height:50px;padding-top:9px;padding-bottom:9px}.jog-settings{padding-top:5px;padding-bottom:5px}.jog-rail{gap:12px}.joint-line{min-height:44px}.jog-pad{min-height:37px}.jog-foot{padding-top:5px;padding-bottom:5px}.point-tiles{max-height:88px}.record-form{padding-top:8px;padding-bottom:8px}}@media (pointer:coarse){.joint-line{min-height:52px;grid-template-columns:1.12fr 48px .9fr 48px}.jog-pad,.axis-select,.point-tile,.record-form .btn{min-height:48px}}@media (max-width:720px){.topbar .brand{flex:1 1 auto;min-width:0}.brandmark{flex:none}.brand-copy{min-width:0}.brand-copy b{overflow:hidden;text-overflow:ellipsis}.top-tools{flex:none}}@media (max-width:420px){.topbar,.brand{gap:5px}.brand-copy b{font-size:13px}.model-select select{min-width:87px;padding-right:13px}.model-select svg:last-child{right:5px}}.rail-tabs{display:none}.mode-badge small,.tcp-readout span small,.op-tree-main-left span{font-family:Microsoft YaHei UI,Noto Sans CJK SC,PingFang SC,RSN Sans SC,sans-serif}@media (min-width:721px) and (max-height:860px){.rail-tabs{display:flex;gap:4px;padding:3px;border:1px solid #cedbe9;border-radius:7px;background:#e1eaf4}.rail-tabs button{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px;border:1px solid transparent;border-radius:5px;background:transparent;color:#345b7e;font-weight:750;font-size:12px}.rail-tabs button[aria-pressed=true]{background:#fbfdff;border-color:#c9d9e9;color:#075aca}.rail-tabs button span{font:700 11px var(--mono)}.show-joints .points-panel,.show-points .joint-panel{display:none}.jog-rail{gap:9px}.jog-page .joint-line{min-height:40px}.jog-page .jog-pad{min-height:38px}.jog-page .jog-foot .btn{min-height:36px}.jog-page .jog-foot{padding-top:4px;padding-bottom:4px}.show-points .point-tiles{max-height:280px}}
