.lab-banner{position:relative;margin:14px 14px 0;border-radius:24px;overflow:hidden;display:flex;align-items:stretch;cursor:pointer;border:1px solid rgba(59,130,246,.35);background:radial-gradient(110% 120% at 100% 0%,rgba(59,130,246,.35),transparent 60%),radial-gradient(90% 90% at 0% 100%,rgba(34,197,94,.18),transparent 60%),linear-gradient(160deg,#0f1c3a,#0a1226);box-shadow:0 18px 44px -20px #3b82f680}.lab-banner .lb-art{position:absolute;right:-10px;top:50%;transform:translateY(-50%);width:42%;max-width:330px;opacity:.95;pointer-events:none}.lab-banner .lb-content{position:relative;padding:18px 16px 16px;max-width:56%}.lab-banner h2{margin:12px 0 6px;font-family:var(--display);font-size:24px;line-height:1.1}.lab-banner h2 .grad{background:linear-gradient(135deg,#22d3ee,#22c55e);-webkit-background-clip:text;background-clip:text;color:transparent}.lab-banner p{margin:0 0 14px;color:#b8c4dc;font-size:13px;line-height:1.45}.lab-banner .hero-actions .btn{height:40px;font-size:13.5px;padding:0 13px}.lab-banner:active{transform:scale(.99)}@media (max-width: 640px){.lab-banner{flex-direction:column}.lab-banner .lb-art{position:relative;right:auto;top:auto;transform:none;width:100%;max-width:none;height:150px;margin-top:-4px;order:2}.lab-banner .lb-content{max-width:none;padding-bottom:4px}}.lab-art{width:100%;height:100%}.lab-intro{margin:0 14px;border-radius:22px;padding:14px;display:flex;flex-direction:column;gap:6px;background:linear-gradient(160deg,#111d3b,#0b1226);border:1px solid rgba(59,130,246,.3)}.lab-intro .lb-art{height:170px}.lab-intro h2{margin:2px 0 4px;font-family:var(--display);font-size:21px}.lab-intro p{margin:0 0 10px;color:#b8c4dc;font-size:13.5px;line-height:1.5}.li-feats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.li-feats .pill{padding:5px 10px;font-size:12px}@media (min-width: 700px){.lab-intro{flex-direction:row;align-items:center}.lab-intro .lb-art{width:42%;flex-shrink:0;height:210px}}.lab-thumb{background:radial-gradient(circle at 50% 40%,#16224a,#0b1226)}.lab-thumb img{width:100%;height:100%;object-fit:cover}.lab-ex-thumb{background:radial-gradient(circle at 50% 30%,#172552,#0a1124);padding:4px}.dr-new-badge{font-size:10.5px;font-weight:800;color:#04121a;background:linear-gradient(135deg,#22d3ee,#22c55e);padding:2px 7px;border-radius:99px}.lab-new .board-item{text-align:left;width:100%}.lab .lab-main{flex:1;position:relative;overflow:hidden}.lab-pane{position:absolute;inset:0;display:none!important;flex-direction:column;min-width:0;min-height:0}.lab-pane.show{display:flex!important}.lab.split .lab-main{display:flex}.lab.split .lab-pane.show{position:relative;inset:auto;flex:1}.lab.split .pane-panel{flex:1.25!important;border-right:1px solid var(--line2)}.lab.fs .lab-top,.lab.fs .lab-nav{display:none}.lab{--dock-b: 12px}.lab.tab-panel,.lab.split{--dock-b: 54px}.lab.tab-ladder:not(.split),.lab.tab-hmi:not(.split){--dock-b: 44px}.lab.fs .lab-fs-bar{display:flex;flex-direction:row;flex-wrap:wrap;gap:4px;position:absolute;left:0;top:0;z-index:21;padding:5px;border-radius:20px}.lab.fs .lab-fs-bar .fs-btn{flex-shrink:0}.lab.fs .lab-status{position:absolute;left:0;right:0;margin:0 auto;width:max-content;max-width:calc(100% - 24px - var(--safe-l) - var(--safe-r));bottom:calc(var(--dock-b) + var(--safe-b) + 62px);height:34px;border-radius:99px;z-index:20}.lab.fs .lab-fs-bar.fs-bar,.lab.fs .lab-status.sim-status{background:#0a10206b!important;border:1px solid rgba(148,163,184,.24)!important;backdrop-filter:blur(18px) saturate(160%)!important;-webkit-backdrop-filter:blur(18px) saturate(160%)!important;box-shadow:0 14px 36px -16px #000000b3!important}.lab.fs:not(.fs-clean) .lab-status{animation:fsMenuIn .22s cubic-bezier(.2,.9,.3,1.1)}.lab.fs .pane-panel .lab-mode{left:calc(10px + var(--safe-l))}.lab.fs .lab-pane:not(.pane-panel){padding-left:var(--safe-l)}.lab.fs .panel-view .lab-mode,.lab.fs .panel-view .lab-view-seg,.lab.fs .lab-tools,.lab.fs .task-pill{background:#0a102080;backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%)}.lab.fs:not(.fs-clean) .lad-host,.lab.fs:not(.fs-clean) .mv-body,.lab.fs:not(.fs-clean) .vfd-view{padding-bottom:132px}.lab.kb .lab-nav{display:none}.lab-nav .nav-tab{font-size:11px}.lab-status{gap:8px;overflow-x:auto;scrollbar-width:none;white-space:nowrap}.lab-status::-webkit-scrollbar{display:none}.ls-chip{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:99px;font-size:11.5px;font-weight:800;letter-spacing:.3px;background:#94a3b824;color:#cbd5e1;flex-shrink:0}.ls-chip.ok{background:#22c55e2e;color:#86efac}.ls-chip.warn{background:#f59e0b2e;color:#fcd34d}.ls-chip.err{background:#ef444433;color:#fca5a5}.ls-chip.hz{background:#22d3ee29;color:#a5f3fc;font-family:var(--mono)}.ls-dim{color:var(--muted);font-family:var(--mono);font-size:11.5px;flex-shrink:0}.panel-view{position:relative;overflow:hidden;background:#0a1226}.lab-3d-host{position:absolute;inset:0;touch-action:none}.lab-3d{display:block;width:100%;height:100%;touch-action:none;user-select:none;-webkit-user-select:none;outline:none}.lab-mode{position:absolute;top:10px;left:calc(10px + var(--safe-l));z-index:3;background:#0a1020c7;border-color:var(--line2);backdrop-filter:blur(12px)}.lab-mode .seg{height:34px}.mode-operate .lab-mode .seg.active{color:#86efac}.mode-wire .lab-mode .seg.active{color:#fcd34d}.lab-tools{top:10px}.lab-tools.multi{display:grid;grid-auto-flow:column;grid-template-rows:repeat(var(--tool-rows, 6),auto)}.lab-tools.multi .tool-sep{display:none}.lab-chips{position:absolute;left:0;right:var(--safe-r);bottom:10px;z-index:3;display:flex;gap:6px;overflow-x:auto;padding:0 10px;scrollbar-width:none}.panel-view .lab-chips{margin-right:var(--chips-extra, 0px)}.lab-chips.more-r{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 36px),transparent)}.lab-chips.more-l{-webkit-mask-image:linear-gradient(90deg,transparent,#000 28px);mask-image:linear-gradient(90deg,transparent,#000 28px)}.lab-chips.more-l.more-r{-webkit-mask-image:linear-gradient(90deg,transparent,#000 28px,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(90deg,transparent,#000 28px,#000 calc(100% - 36px),transparent)}.lab-chips::-webkit-scrollbar{display:none}.lab-chip{height:32px;padding:0 11px;background:#0a1020cc;backdrop-filter:blur(10px);color:#dbe5f7;border-color:#94a3b847;flex-shrink:0}.lab-chip:active{background:#22d3ee2e}.panel-view .sel-bar{bottom:52px}.lab-wirebar{top:54px;bottom:auto!important}.lab-wirebar .wire-info{color:#fde68a}.lab-wirebar .wire-info b{color:#fff}.lab-hint{top:54px;left:10px;right:64px}.color-dot.auto{position:relative;background:conic-gradient(#dc2626,#f97316,#eab308,#22c55e,#2563eb,#a855f7,#dc2626)!important}.color-dot.auto .auto-dot{position:absolute;inset:7px;border-radius:50%;border:2px solid #0b1226}.color-dot.pe,.conn-dot.pe{background:repeating-linear-gradient(45deg,#2f9e44 0 5px,#f5d90a 5px 10px)!important}.port-chooser{position:absolute;z-index:8;min-width:180px;padding:6px;border-radius:16px;background:#0f172bf7;border:1px solid rgba(34,211,238,.4);box-shadow:0 18px 40px -12px #000c;animation:barIn .16s ease}.pc-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);padding:4px 8px 6px}.pc-item{width:100%;display:flex;align-items:baseline;gap:8px;padding:9px 10px;border-radius:11px;text-align:left}.pc-item b{font-family:var(--mono);font-size:15px;color:#a5f3fc;min-width:46px}.pc-item small{color:var(--muted);font-size:12px}.pc-item:active{background:#22d3ee24}.pot-card{position:absolute;left:10px;right:10px;bottom:52px;z-index:6;padding:12px 46px 8px 14px;border-radius:18px;background:#0c1326f0;border:1px solid var(--line2);backdrop-filter:blur(14px);animation:barIn .2s ease}.pot-card .sel-close{position:absolute;right:6px;top:6px}.pot-card .ctl-head b{color:var(--accent);font-family:var(--mono)}.mb-card .ctl-head+.range{margin-bottom:6px}.mb-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}.mb-chips .chip{height:32px;font-size:12.5px}.dev-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr))}.dev-card .lib-thumb{height:86px}.dev-card .lib-thumb img,.dev-props .props-thumb img{width:100%;height:100%;object-fit:contain}.dev-card.disabled{opacity:.42}.dev-card .lib-sub{margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.dev-lib .lib-cat{margin-top:16px}.conn-list{display:flex;flex-direction:column;border-radius:14px;border:1px solid var(--line);overflow:hidden}.conn-row{display:flex;align-items:flex-start;gap:10px;padding:8px 10px}.conn-row+.conn-row{border-top:1px solid var(--line)}.conn-row.empty{opacity:.55}.conn-port{min-width:56px;font-family:var(--mono);font-weight:700;color:#a5f3fc;font-size:13px;padding-top:3px}.conn-targets{flex:1;display:flex;flex-wrap:wrap;gap:6px}.conn-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 4px 3px 8px;border-radius:9px;background:#94a3b81a;font-size:12.5px}.conn-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0;box-shadow:inset 0 0 0 1px #ffffff4d}.conn-x{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;color:var(--muted)}.conn-x:active{background:#ef444433;color:#fca5a5}.wiring-list{display:flex;flex-direction:column;gap:6px}.add-conn{padding:12px;display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.add-row{display:flex;gap:8px}.add-row .select{flex:1;min-width:0;height:40px;font-size:13px}.add-conn .btn{align-self:flex-end}.wl-row{display:flex;align-items:center;gap:10px;padding:9px 6px 9px 10px;border-radius:12px;background:#94a3b80d;cursor:pointer}.wl-row:active{background:#22d3ee1a}.wl-text{flex:1;min-width:0;display:flex;flex-direction:column;font-size:13px}.wl-text b{font-weight:700}.wl-text span{color:var(--muted)}.issue-list{display:flex;flex-direction:column;gap:8px;padding-bottom:8px}.issue{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border-radius:14px;border:1px solid var(--line);background:#94a3b80d}.issue-error{border-color:#ef444466;background:#ef444414}.issue-error .issue-ic{color:#f87171}.issue-warn{border-color:#f59e0b59;background:#f59e0b12}.issue-warn .issue-ic{color:#fbbf24}.issue-info .issue-ic{color:var(--accent)}.issue-text{flex:1;font-size:13.5px;line-height:1.45}.issue .btn{flex-shrink:0}.empty-state.small{padding:22px 14px}.lab-help p{margin:0 0 10px;line-height:1.5;font-size:14px}.lab-help ul{margin:4px 0 10px;padding-left:18px}.lab-help li{margin:5px 0;font-size:13.5px;line-height:1.45}.lab-help code{font-family:var(--mono);color:#a5f3fc;font-size:12.5px}.ladder-view{background:#0a1020}.lad-bar{display:flex;align-items:center;gap:4px;padding:6px 8px;overflow-x:auto;scrollbar-width:none;background:#0e1630;border-bottom:1px solid var(--line2);flex-shrink:0}.lad-bar::-webkit-scrollbar{display:none}.lb{height:40px;min-width:44px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border-radius:11px;background:#18233f;border:1px solid rgba(148,163,184,.16);color:#e2e8f0;font-size:12.5px;font-weight:700;flex-shrink:0;transition:transform .1s,background .15s}.lb:active{transform:scale(.92);background:#24345c}.lb .lsym{color:#e2e8f0}.lb-txt b{font-family:var(--mono);font-size:12.5px;color:#fbbf24}.lb-dl{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:transparent;color:#fff;padding:0 12px}.lb-run{color:#86efac}.lb-stop{color:#fca5a5}.lb-run.active{background:#22c55e38;border-color:#22c55e8c}.lb-stop.active{background:#ef444433;border-color:#ef444480}.lb.dim{opacity:.45}.lb-mon{color:var(--muted)}.lb-mon.on{color:#a5f3fc;border-color:#22d3ee73;background:#22d3ee1a}.lb-del{color:#fca5a5}.lb-sep{width:1px;height:26px;background:var(--line2);margin:0 3px;flex-shrink:0}.lad-host{flex:1;min-height:0;position:relative;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.35) transparent;background:#0a1020}.lad-svg{display:block;width:100%;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;font-family:var(--mono);background:linear-gradient(180deg,#0f1a36 0,#0a1020 420px)}.lad-banner{display:flex;align-items:center;gap:8px;padding:7px 12px;font-size:12.5px;flex-shrink:0;border-bottom:1px solid var(--line)}.lad-banner.info{background:#3b82f61a;color:#bfdbfe}.lad-banner.warn{background:#f59e0b1f;color:#fde68a}.lad-banner.ok{background:#22c55e1a;color:#bbf7d0}.lad-banner .dot{width:8px;height:8px;border-radius:50%;background:#94a3b8;flex-shrink:0}.lad-banner .dot.live{background:var(--ok)}.lad-foot{display:flex;align-items:center;gap:12px;padding:6px 12px;font-size:12px;font-family:var(--mono);color:var(--muted);background:#0e1630;border-top:1px solid var(--line);flex-shrink:0;cursor:pointer;white-space:nowrap;overflow-x:auto;scrollbar-width:none}.lad-foot span{display:inline-flex;align-items:center;gap:4px}.lf-pos{color:#a5f3fc}.lf-ok{color:#86efac}.lf-err{color:#fca5a5}.lf-warn{color:#fcd34d}.lf-steps{margin-left:auto}.lad-out{max-height:38%;display:flex;flex-direction:column;background:#0b1226;border-top:1px solid var(--line2);flex-shrink:0}.lo-head{display:flex;align-items:center;gap:10px;padding:6px 6px 6px 12px;border-bottom:1px solid var(--line)}.lo-head b{font-size:13px}.lo-head .muted{flex:1}.lo-list{overflow-y:auto;padding:4px 6px 8px}.lo-row{width:100%;display:flex;align-items:flex-start;gap:8px;padding:7px 8px;border-radius:9px;font-size:12.5px;text-align:left;line-height:1.4}.lo-row.err{color:#fecaca}.lo-row.warn{color:#fde68a}.lo-row.ok{color:#bbf7d0}.lo-row:active{background:#94a3b81a}.lr-bg{fill:#94a3b80a;stroke:#94a3b81a;stroke-width:1}.lr-bg.sel{fill:#22d3ee0d;stroke:#22d3ee59}.lr-numbg{fill:#94a3b824}.lr-numbg.sel{fill:#22d3ee38}.lr-num{fill:#cbd5e1;font-size:11px;font-weight:800}.lr-ptr{fill:#a855f738;stroke:#c084fc99;stroke-width:1}.lr-ptrt{fill:#e9d5ff;font-size:11px;font-weight:800}.lr-cmt{fill:#86efac;font-size:12px;font-family:var(--font);font-style:italic;opacity:.92}.lr-cmt.ph{fill:#475569}.lr-rail{stroke:#94a3b8;stroke-width:3.2;stroke-linecap:round}.lr-rail.on{stroke:#22c55e;filter:drop-shadow(0 0 3px rgba(34,197,94,.6))}.lr-rail.stl{stroke-width:5}.lr-rail.r{stroke:#94a3b838;stroke-width:2;stroke-dasharray:3 5}.lw{stroke:#cbd5e1;stroke-width:2;stroke-linecap:round}.lw.on{stroke:#22c55e;stroke-width:3.4;filter:drop-shadow(0 0 3px rgba(34,197,94,.7))}.lr-sym{stroke:#f1f5f9;stroke-width:2.4;fill:none;stroke-linecap:round}.lr-sym.thin{stroke-width:1.6}.lr-sym.err{stroke:#f87171}.lr-fill{fill:#22c55e;opacity:.9}.lr-op{fill:#7dd3fc;font-size:13px;font-weight:700}.lr-op.sm{font-size:11px}.lr-op.err{fill:#f87171}.lr-cm{fill:#94a3b8;font-size:9.5px;font-family:var(--font);font-weight:600}.lr-box{fill:#0f1b33;stroke:#cbd5e1;stroke-width:1.5}.lr-box.flow{fill:#1a1233;stroke:#c084fc}.lr-box.on{stroke:#22c55e;fill:#22c55e24}.lr-box.err{stroke:#f87171}.lr-mn{fill:#fbbf24;font-size:12px;font-weight:800}.lr-mn.flow{fill:#d8b4fe}.lr-stl{fill:#1a1233;stroke:#c084fc;stroke-width:1.8}.lr-stl.on{fill:#22c55e40;stroke:#22c55e}.lr-stl.err{stroke:#f87171}.lr-stlt{fill:#e9d5ff;font-weight:800}.lr-ops{fill:#e2e8f0;font-size:11.5px;font-weight:600}.lr-val{fill:#22d3ee;font-size:10.5px;font-weight:700}.lr-cc{fill:#fbbf24;font-size:14px;font-weight:800}.lr-coilt{fill:#f1f5f9;font-size:11px;font-weight:800}.lr-dot{fill:#94a3b847}.lr-cursor{fill:#22d3ee14;stroke:#22d3ee;stroke-width:2}.lr-end rect:first-child{fill:#94a3b80d;stroke:#94a3b833;stroke-dasharray:4 4}.lr-endt{fill:#94a3b8;font-size:13px;font-weight:800;letter-spacing:1px}.lr-addbg{fill:#22d3ee1f;stroke:#22d3ee66}.lr-add{fill:#a5f3fc;font-size:12.5px;font-weight:700;font-family:var(--font)}.kp-sheet .sheet-body{padding-bottom:10px}.kp{display:flex;flex-direction:column;gap:9px}.kp-head{display:flex;align-items:center;gap:10px}.kp-mn{font-family:var(--mono);font-weight:800;font-size:15px;padding:4px 10px;border-radius:9px;background:#fbbf2424;color:#fbbf24}.kp-name{color:var(--muted);font-size:13px}.kp-ops{display:flex;gap:4px}.kp-op{flex:1;height:38px;border-radius:10px;border:1px solid var(--line2);background:#94a3b80f;font-family:var(--mono);font-weight:800;font-size:15px}.kp-op.active{border-color:#fbbf24;background:#fbbf2426;color:#fde68a}.kp-pulse{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;border:1px dashed var(--line2);color:var(--muted);font-size:12.5px;text-align:left}.kp-pulse.active{border-style:solid;border-color:#22d3ee80;color:#a5f3fc;background:#22d3ee14}.kp-fields{display:flex;gap:6px;flex-wrap:wrap}.kp-field{flex:1;min-width:84px;display:flex;flex-direction:column;align-items:flex-start;padding:7px 10px;border-radius:12px;border:1.5px solid var(--line2);background:#0a1122}.kp-field small{font-size:10.5px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.5px}.kp-field b{font-family:var(--mono);font-size:20px;color:#e2e8f0}.kp-field.active{border-color:#22d3ee;box-shadow:0 0 0 3px #22d3ee26}.kp-field.active b{color:#a5f3fc}.kp-field.bad{border-color:#ef4444b3}.kp-err{min-height:0;color:#fca5a5;font-size:12.5px}.kp-err:empty,.kp-info:empty{display:none}.kp-info{color:#94a3b8;font-size:12.5px}.kp-devs{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}.kp-opts{display:flex;flex-direction:column;gap:6px}.kp-dbl.active{border-color:#a78bfa8c;color:#ddd6fe;background:#a78bfa1a}.ip-chips{display:flex;gap:6px;overflow-x:auto;padding:8px 0 4px;scrollbar-width:none;flex:none}.ip-chips::-webkit-scrollbar{display:none}.ip-chips .chip{flex:none}.kp-devs.few{grid-template-columns:repeat(4,1fr)}.kp-digits{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.kp-digits.hex{grid-template-columns:repeat(4,1fr)}.kp-key{height:48px;border-radius:12px;background:#18233f;border:1px solid rgba(148,163,184,.16);font-family:var(--mono);font-size:19px;font-weight:700}.kp-key:active{background:#2a3d6a;transform:scale(.95)}.kp-key:disabled{opacity:.25}.kp-key.dev{height:42px;font-size:16px;color:#fbbf24;padding:0}.kp-key.dev.active{background:#fbbf2433;border-color:#fbbf24}.kp-key.back{color:#fca5a5}.kp-key.wide{grid-column:span 4}.kp-quick{display:flex;flex-wrap:wrap;gap:6px}.kp-quick:empty{display:none}.kp-chip{height:30px;padding:0 10px;font-family:var(--mono);color:#cffafe}.kp-chip small{font-family:var(--font);color:var(--muted);font-weight:500;margin-left:4px}.kp-comment{height:40px;font-size:13.5px}.kp-actions{display:flex;gap:8px;justify-content:flex-end}.kp-actions .btn-primary{min-width:110px}@media (max-height: 640px){.kp-key{height:40px}.kp-key.dev{height:36px}.kp-field b{font-size:17px}}.instr-picker,.hv-addlist{display:flex;flex-direction:column;gap:4px;padding-bottom:10px}.ip-row{display:flex;align-items:center;gap:12px;padding:10px;border-radius:14px;text-align:left;background:#94a3b80a}.ip-row:active{background:#22d3ee1a}.ip-search{margin:2px 0 6px}.ip-list{display:flex;flex-direction:column;gap:4px}.ip-contact .ip-mn{background:#22d3ee1f;color:#67e8f9}.ip-flow .ip-mn{background:#a855f729;color:#d8b4fe}.ip-mn{min-width:64px;height:34px;display:grid;place-items:center;border-radius:10px;background:#fbbf241f;color:#fbbf24;font-family:var(--mono);font-weight:800;font-size:12.5px}.ip-text{flex:1;display:flex;flex-direction:column}.ip-text b{font-size:14px}.ip-text small{color:var(--muted);font-size:12px}.il-list{font-family:var(--mono);font-size:13px;padding-bottom:12px}.il-net{margin:12px 0 4px;font-family:var(--font);font-size:12px;font-weight:700;color:#86efac}.il-row{display:grid;grid-template-columns:46px 64px 1fr auto;gap:6px;padding:3px 4px;border-radius:6px}.il-row:nth-child(2n){background:#94a3b80a}.il-step{color:#64748b}.il-mn{color:#fbbf24;font-weight:800}.il-ops{color:#e2e8f0}.il-cm{color:#64748b;font-family:var(--font);font-size:11.5px}.il-row.err .il-ops{color:#fca5a5}.cm-list{display:flex;flex-direction:column;gap:6px;padding-bottom:12px}.cm-row{display:flex;align-items:center;gap:10px}.cm-row b{min-width:62px;font-family:var(--mono);color:#a5f3fc}.cm-row .input{height:40px}.dl-progress{width:min(360px,90vw);padding:18px;border-radius:20px;background:#121c36;border:1px solid var(--line2);box-shadow:0 30px 70px -20px #000}.dl-text{display:flex;align-items:center;gap:10px;font-weight:600;margin-bottom:12px}.dl-text span:nth-child(2){flex:1}.dl-text b{font-family:var(--mono);color:var(--accent)}.dl-bar{height:8px;border-radius:8px;background:#94a3b826;overflow:hidden}.dl-bar i{display:block;height:100%;width:0;background:var(--grad);border-radius:8px}.hmi-view{background:#0a1020}.hv-bar{display:flex;align-items:center;gap:8px;padding:7px 8px;flex-wrap:nowrap;background:#0e1630;border-bottom:1px solid var(--line2);flex-shrink:0}.hv-screens{display:flex;gap:6px;overflow-x:auto;flex:1;min-width:0;scrollbar-width:none}.hv-screens::-webkit-scrollbar{display:none}.hv-screens .chip{height:32px;flex-shrink:0}.hv-tools{display:flex;align-items:center;gap:4px}.hv-tools .btn:disabled,.hv-tools .icon-btn:disabled{opacity:.35}.hv-stage{touch-action:none;flex:1;position:relative;display:grid;place-items:center;overflow:hidden;padding:12px;background:radial-gradient(90% 70% at 50% 30%,#17264b,#0a1020 75%)}.hv-device{position:relative;padding:14px 14px 30px;border-radius:14px;background:linear-gradient(165deg,#2b2e35,#1a1c21 45%,#111317);box-shadow:0 24px 60px -18px #000000e6,inset 0 1px #ffffff1a,inset 0 -2px #00000080,0 0 0 1px #050608}.hv-device:before{content:"";position:absolute;inset:7px 7px 24px;border-radius:8px;background:#08090b;box-shadow:inset 0 2px 6px #000c,0 1px #ffffff0f;pointer-events:none}.hv-screen{position:relative;border-radius:3px;overflow:hidden;background:#020305;box-shadow:inset 0 0 0 2px #0b0c0f}.hv-screen:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(125deg,#ffffff12,#fff0 38%)}.hv-brand em{font-style:normal;font-size:9px;font-weight:700;color:#6b7685;letter-spacing:.4px}.hv-led.com.on{background:#ffb020;box-shadow:0 0 8px #ffb020;animation:hv-blink .5s steps(2) infinite}@keyframes hv-blink{50%{opacity:.35}}.hmi-canvas{display:block;width:100%;height:100%;touch-action:none}.hv-brand{position:absolute;left:16px;right:16px;bottom:6px;display:flex;align-items:center;gap:10px;font-size:11px;color:#9aa6b8}.hv-brand b{font-family:var(--display);color:#e8eef9;letter-spacing:.5px}.hv-brand span{flex:1;text-align:right;font-weight:600}.hv-led{width:7px;height:7px;border-radius:50%;background:#1f3a2a}.hv-led.on{background:#36ff6a;box-shadow:0 0 8px #36ff6a}.hv-device{transform-origin:50% 50%;will-change:transform}.hv-zoom{display:flex;align-items:center;gap:0;padding:1px;border-radius:10px;flex-shrink:0;background:#94a3b814;border:1px solid var(--line2)}.hv-zoom button{width:28px;height:30px;display:grid;place-items:center;border-radius:8px;color:var(--text)}.hv-zoom button:active{background:#94a3b833}.hv-zoom button.hidden{display:none}.hv-bar{gap:6px}.hv-bar .segmented{flex-shrink:0}.hv-bar .segmented .seg{padding:0 10px;gap:5px}.hv-bar .hv-screens .chip{padding:0 10px}.hv-bar.narrow{flex-wrap:wrap;row-gap:6px}.hv-bar.narrow .hv-screens{order:5;flex:1 0 100%}.hv-bar.narrow .hv-tools,.hv-bar.narrow .hv-zoom{margin-left:auto}.hv-bar.narrow .hv-tools+.hv-zoom{margin-left:0}.hv-overlay{position:absolute;inset:0;pointer-events:none}.hv-sel{position:absolute;border:2px dashed #22d3ee;border-radius:4px;pointer-events:auto;box-shadow:0 0 0 2000px #02060e1f;touch-action:none}.hv-sel-tag{position:absolute;left:-2px;bottom:calc(100% + 3px);white-space:nowrap;font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:6px;background:#22d3ee;color:#04121a}.hv-handle{position:absolute;right:-10px;bottom:-10px;width:20px;height:20px;border-radius:6px;background:#22d3ee;border:2px solid #04121a;cursor:nwse-resize;touch-action:none}.hv-off{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:16px;color:#94a3b8;background:#020305db}.hv-off b{color:#e2e8f0;font-size:15px}.hv-off p{margin:0 0 6px;font-size:12.5px;max-width:360px;line-height:1.45}.hv-info{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:7px 12px;font-size:12px;color:var(--muted);background:#0e1630;border-top:1px solid var(--line);flex-shrink:0;flex-wrap:wrap}.hv-st{font-weight:700}.hv-st.ok{color:#86efac}.hv-st.err{color:#fca5a5}.hv-st.off{color:#64748b}.hv-props .props-cat{margin-bottom:4px}.hv-geo{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.hv-geo label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--muted);font-weight:700}.hv-geo .input{height:40px;padding:0 8px}.input.mono{font-family:var(--mono);text-transform:uppercase}.field-help.bad{color:#fca5a5}.chips-wrap{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.chip.sm{height:28px;padding:0 9px;font-size:12px;font-family:var(--mono)}.vfd-view{overflow-y:auto;background:#0a1020}.vv-body{display:grid;grid-template-columns:1fr;gap:14px;padding:12px}.lab.wide:not(.split) .vv-body,.vfd-view.widepane .vv-body{grid-template-columns:minmax(300px,380px) 1fr;align-items:start}@media (min-width: 900px){.lab:not(.split) .vv-body{grid-template-columns:minmax(300px,380px) 1fr;align-items:start}}.vv-left{display:flex;flex-direction:column;gap:8px}.vv-pick{display:flex;gap:6px;flex-wrap:wrap}.vv-pick:empty{display:none}.vv-pad{padding:10px 10px 12px;border-radius:16px;background:linear-gradient(180deg,#4b4e54,#3d4045);border:1px solid rgba(255,255,255,.07);box-shadow:0 22px 50px -22px #000,inset 0 1px #ffffff14;max-width:380px;width:100%;margin:0 auto}.vv-pad.off .vv-window{filter:brightness(.55)}.vv-face{padding:10px 12px 14px;border-radius:10px;background:#131417;border:3px solid #2b2e33;box-shadow:inset 0 2px 6px #000}.vv-logo{display:flex;align-items:center;gap:5px;color:#f1f4f8;margin:0 0 6px 18px}.vv-logo b,.vv-cover-logo b{font-family:var(--display);font-weight:800;letter-spacing:.5px;font-size:14px}.vv-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:start;column-gap:8px}.vv-top>.vv-leds-l,.vv-top>.vv-leds-r{padding-top:4px}.vv-leds-l,.vv-leds-r{display:flex;flex-direction:column;gap:5px}.vv-leds-l span,.vv-leds-r span{display:flex;align-items:center;gap:4px;font-family:var(--display);font-size:10px;font-weight:800;color:#d5dae2;line-height:1}.vv-leds-l i,.vv-leds-r i{width:7px;height:5px;border-radius:2px;background:#33373d}.vv-leds-l span.on i,.vv-leds-r span.on i{background:#36ff6a;box-shadow:0 0 7px #36ff6a}.vv-leds-r span[data-led=STOP].on i{background:#ff3b30;box-shadow:0 0 7px #ff3b30}.vv-window{padding:4px 6px;border-radius:4px;background:#0b0303;box-shadow:inset 0 2px 6px #000;min-width:0}.vv-disp{width:100%;display:block;aspect-ratio:400 / 120}.vv-dial{display:flex;flex-direction:column;align-items:center;gap:4px;width:60px;padding:2px 0 0}.vv-knob{--a: -135deg;position:relative;width:46px;height:46px;border-radius:50%;touch-action:none;cursor:grab;background:radial-gradient(circle at 40% 35%,#4a4d53,#232528 70%);box-shadow:0 0 0 3px #131417,0 0 0 5px #eef1f5d9,0 3px 6px #000;-webkit-mask:none;margin:4px 0 2px}.vv-knob:before{content:"";position:absolute;inset:-7px;border-radius:50%;background:repeating-conic-gradient(from -135deg,transparent 0 4deg,rgba(0,0,0,0) 4deg 6deg)}.vv-knob i{position:absolute;left:50%;top:50%;width:3px;height:20px;margin-left:-1.5px;border-radius:2px;background:#a5abb3;transform-origin:50% 0;transform:rotate(calc(var(--a) + 180deg))}.vv-knob-val{font-size:9.5px;font-weight:700;color:#9ee7ff;text-align:center;line-height:1.2;max-width:60px}.vv-knob-val.off{color:#6b7280}.vv-keys{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 14px;margin-top:18px}.vv-key{height:46px;border-radius:7px;font-family:var(--display);font-weight:800;font-size:16px;line-height:1.05;touch-action:none;user-select:none;-webkit-user-select:none;background:linear-gradient(180deg,#e4e6ea,#b9bdc4);color:#14161a;box-shadow:0 3px #6c7078,inset 0 1px #ffffff80}.vv-key:active,.vv-key.down{transform:translateY(2px);box-shadow:0 1px #6c7078;filter:brightness(1.08)}.vv-key.k-run{background:linear-gradient(180deg,#33c48a,#1a9466);color:#f1fff8;box-shadow:0 3px #0d5c3e;font-size:18px}.vv-key.k-stop{background:linear-gradient(180deg,#f2585d,#d1282f);color:#fff4f4;box-shadow:0 3px #7d1418;font-size:14px}.vv-key.k-enter{background:linear-gradient(180deg,#2db0ec,#1288c4);color:#f2fbff;box-shadow:0 3px #0b5277}.vv-key.k-up,.vv-key.k-ld{font-size:20px}.vv-cover{margin-top:10px;padding:12px 8px 8px;border-radius:8px;background:linear-gradient(180deg,#4f5258,#44474d);text-align:center;color:#e7eaee}.vv-cover-logo{display:flex;align-items:center;justify-content:center;gap:6px}.vv-cover-logo b{font-size:19px}.vv-cover-model{font-family:var(--display);font-weight:800;font-size:24px;letter-spacing:.5px;margin-top:2px}.vv-help{margin-top:10px;font-size:11.5px;line-height:1.45;color:#94a3b8}.vv-help b{color:#cbd5e1}.vv-model{margin-top:6px;font-size:11px;color:#b4bcc8;text-align:center;font-weight:600}.vv-note{grid-column:1 / -1;padding:8px 12px;border-radius:12px;background:#22d3ee14;border:1px solid rgba(34,211,238,.3);color:#cffafe;font-size:12.5px;line-height:1.45}.mb-row.sim code{color:#fca5a5}.mb-row em{color:#f87171;font-style:normal;font-weight:700}.vv-right{display:flex;flex-direction:column;gap:14px;min-width:0}.vv-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.vv-card{padding:10px 12px;border-radius:14px;background:var(--surface);border:1px solid var(--line);display:flex;flex-direction:column;gap:3px;min-width:0}.vv-card small{color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}.vv-card b{font-family:var(--mono);font-size:18px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vv-card b span{font-family:var(--font);font-size:12px;color:var(--muted);margin-left:4px}.vv-card.wide b{font-family:var(--font);font-size:13.5px;font-weight:700;white-space:normal}.vv-card.ok{border-color:#22c55e66}.vv-card.ok b{color:#86efac}.vv-card.err{border-color:#ef444480}.vv-card.err b{color:#fca5a5}.vv-card.hz b{color:#a5f3fc}.vv-fault{grid-column:1 / -1;padding:10px 12px;border-radius:12px;background:#ef44441f;border:1px solid rgba(239,68,68,.4);color:#fecaca;font-size:13px;line-height:1.45}.vv-fault b{font-family:var(--mono);margin-right:8px;color:#f87171}.vv-sec h4{margin:0 0 8px;font-size:12px;letter-spacing:.9px;text-transform:uppercase;color:#a5f3fc}.vv-chart{width:100%;height:150px;display:block;border-radius:14px;background:#070c19;border:1px solid var(--line)}.vv-params{display:flex;flex-direction:column;margin-top:8px;border-radius:14px;border:1px solid var(--line);overflow:hidden}.vp-group{padding:8px 12px;font-size:12px;font-weight:800;color:#a5f3fc;background:#22d3ee0f;border-top:1px solid var(--line)}.vp-group:first-child{border-top:0}.vp-row{display:grid;grid-template-columns:52px 1fr auto;gap:10px;align-items:center;padding:9px 12px;text-align:left;border-top:1px solid var(--line);font-size:13px}.vp-row:active{background:#94a3b814}.vp-id{font-family:var(--mono);font-weight:700;color:#fbbf24}.vp-name{color:#cbd5e1;min-width:0}.vp-val{font-family:var(--mono);color:#e2e8f0;text-align:right;max-width:46vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vp-row.changed .vp-val{color:#22d3ee;font-weight:700}.vp-row.ro{opacity:.6}.vp-opt{width:100%;display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;text-align:left;margin-bottom:4px;background:#94a3b80d;border:1px solid transparent}.vp-opt b{min-width:30px;font-family:var(--mono);color:#fbbf24}.vp-opt.active{border-color:#22d3ee99;background:#22d3ee1a}.mb-ref{display:flex;flex-direction:column;gap:2px;border-radius:14px;border:1px solid var(--line);padding:6px 10px}.mb-row{display:grid;grid-template-columns:58px 34px 1fr;gap:8px;padding:5px 0;font-size:12.5px;border-bottom:1px solid var(--line)}.mb-row code{font-family:var(--mono);color:#fbbf24;font-weight:700}.mb-rw{color:var(--muted);font-weight:700}.mb-ref p{margin:8px 0 2px}.vv-empty{margin:30px 16px}.monitor-view{background:#0a1020}.mv-head{padding:8px;border-bottom:1px solid var(--line2);background:#0e1630;flex-shrink:0}.mv-seg{width:100%;display:flex}.mv-seg .seg{flex:1;justify-content:center}.mv-body{flex:1;overflow-y:auto;padding:10px 12px 20px}.mv-sec{margin-bottom:16px}.mv-sec h4{margin:0 0 8px;font-size:12px;letter-spacing:.9px;text-transform:uppercase;color:#a5f3fc}.mv-bits{display:grid;grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:6px}.mv-bit{min-height:48px;padding:5px 4px;border-radius:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:#121b33;border:1px solid rgba(148,163,184,.14);transition:background .12s,border .12s}.mv-bit b{font-family:var(--mono);font-size:13.5px;color:#94a3b8}.mv-bit small{font-size:9.5px;color:#64748b;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mv-bit.on{background:#22c55e33;border-color:#22c55eb3;box-shadow:0 0 12px -2px #22c55e99}.mv-bit.on b{color:#bbf7d0}.mv-bit.forced{outline:2px solid #f59e0b;outline-offset:1px}.mv-words{display:flex;flex-direction:column;border-radius:14px;border:1px solid var(--line);overflow:hidden}.mv-word{display:flex;align-items:center;gap:10px;padding:9px 10px 9px 12px;text-align:left;width:100%}.mv-word+.mv-word{border-top:1px solid var(--line)}.mv-addr{min-width:56px;font-family:var(--mono);font-weight:700;color:#a5f3fc}.mv-cm{flex:1;color:var(--muted);font-size:12.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mv-val{font-family:var(--mono);font-size:15px;color:#f8fafc}.mv-val.on{color:#86efac}.mv-led{width:10px;height:10px;border-radius:50%;background:#334155;flex-shrink:0}.mv-led.on{background:#22c55e;box-shadow:0 0 8px #22c55e}.mv-add{display:flex;gap:8px;margin-bottom:12px}.mv-filter{padding:0 0 10px;margin:0}.mv-log{display:flex;flex-direction:column;gap:6px}.ml-row{padding:8px 10px;border-radius:12px;background:#0e1630;border:1px solid var(--line);border-left:3px solid #3b82f6}.ml-row.rx{border-left-color:#22c55e}.ml-row.err{border-left-color:#ef4444;background:#ef44440f}.ml-top{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:12px}.ml-t{font-family:var(--mono);color:#64748b}.ml-link{font-weight:800;color:#a5f3fc}.ml-dir{font-weight:800;font-size:10.5px;padding:1px 6px;border-radius:5px;background:#3b82f633;color:#93c5fd}.rx .ml-dir{background:#22c55e33;color:#86efac}.err .ml-dir{background:#ef444433;color:#fca5a5}.ml-who{color:#cbd5e1;font-weight:600}.ml-info{color:#fde68a;flex-basis:100%}.err .ml-info{color:#fecaca}.ml-frame{display:block;margin-top:5px;font-family:var(--mono);font-size:12px;color:#e2e8f0;word-break:break-all;line-height:1.5}.mv-empty{margin-top:20px}@media (max-height: 520px){.lad-bar{padding:4px 6px}.lb{height:34px;min-width:38px}.lab-chips{bottom:6px}.lab-chip{height:28px}}.lab-top .board-chip{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.lab.simulating .lab-tools .tool{display:grid}@media (max-height: 520px){.lab-tools{gap:2px;padding:4px;top:8px}.lab-tools .tool{width:34px;height:34px}.lab-tools .tool svg{width:18px;height:18px}.lab-mode{top:8px}.lab-mode .seg{height:30px;font-size:12px}.panel-view .sel-bar{bottom:44px}}.lab-no3d{position:absolute;left:16px;right:70px;top:70px}.task-pill{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:3;display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:99px;background:#0a1020d1;border:1px solid rgba(251,191,36,.45);color:#fde68a;font-size:12.5px;font-weight:700;backdrop-filter:blur(10px);white-space:nowrap}.task-pill b{font-family:var(--mono)}.task-pill.all{border-color:#22c55e99;color:#86efac}@media (max-width: 480px){.task-pill{top:52px;left:10px;transform:none}.panel-view .lab-hint,.panel-view .lab-wirebar{top:94px}}.task-list{display:flex;flex-direction:column;gap:8px;padding-bottom:6px}.task-progress{height:8px;border-radius:8px;background:#94a3b826;overflow:hidden;margin-bottom:4px}.task-progress i{display:block;height:100%;background:linear-gradient(90deg,#f59e0b,#22c55e);border-radius:8px}.task{display:flex;gap:12px;align-items:flex-start;padding:11px 12px;border-radius:14px;background:#94a3b80d;border:1px solid var(--line)}.task-ic{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;font-weight:800;font-size:12.5px;background:#94a3b824;color:var(--muted)}.task-text{flex:1;display:flex;flex-direction:column;gap:3px}.task-text b{font-size:13.8px;font-weight:600;line-height:1.4}.task-text small{color:var(--muted);font-size:12px}.task.current{border-color:#fbbf2480;background:#fbbf2412}.task.current .task-ic{background:#f59e0b;color:#1c1203}.task.done{opacity:.7}.task.done .task-ic{background:#22c55e;color:#052e12}.task.done b{text-decoration:line-through;text-decoration-color:#94a3b880}.lab-loading{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:#02050e8c}.ll-box{display:flex;align-items:center;gap:12px;padding:16px 20px;border-radius:18px;background:#121c36;border:1px solid var(--line2);font-weight:600}.ll-spin{width:22px;height:22px;border-radius:50%;border:3px solid rgba(34,211,238,.25);border-top-color:#22d3ee;animation:spin .8s linear infinite}.lab-view-seg{position:absolute;left:calc(10px + var(--safe-l));bottom:10px;z-index:4;padding:2px;background:#0a1020d6;border-color:var(--line2);backdrop-filter:blur(12px)}.lab-view-seg .seg{height:28px;padding:0 9px;gap:5px;font-size:12.5px;font-weight:800}.lab-view-seg .seg.active{background:#22d3ee33;color:#a5f3fc;box-shadow:none}.panel-view.loading-3d:after{content:"Loading 3D\2026";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:6;padding:10px 18px;border-radius:999px;background:#0a1020e6;border:1px solid var(--line2);color:#a5f3fc;font-size:13px;font-weight:800;pointer-events:none}.panel-view.loading-3d .lab-view-seg .seg[data-view="3d"]{animation:lab-loading .8s ease-in-out infinite alternate}@keyframes lab-loading{0%{opacity:1}to{opacity:.45}}.panel-view .lab-chips{left:calc(134px + var(--safe-l));padding-left:0}.lab-3d-host.view-2d .lab-3d,.lab-3d-host.view-3d .schem{display:none!important}.panel-view.select-tool .lab-3d-host{cursor:crosshair}.schem{display:block;width:100%;height:100%;touch-action:none;user-select:none;-webkit-user-select:none;background:radial-gradient(130% 90% at 50% 0%,#0f1a36,#0a1124 55%,#070c1a)}.schem text{font-family:var(--font);text-anchor:middle;fill:#cbd5e1;pointer-events:none}.schem-duct{fill:#94a3b80f;stroke:#94a3b824;stroke-dasharray:2 6}.sd-body{fill:#18223a;stroke:#3a4a6b;stroke-width:1.5}.sd-term{fill:#cbd5e1;stroke:#64748b;stroke-width:1}.sd-term.sock{fill:#111827;stroke:#94a3b8}.sd-comm{fill:#0b1222;stroke-width:2}.sd-tlabel{font-size:9px;font-weight:700;fill:#94a3b8;font-family:var(--mono)}.sd-tlabel.comm{fill:#e2e8f0}.sd-title{font-family:var(--display);font-size:15px;font-weight:700;fill:#e2e8f0}.sd-title.big{font-size:22px}.sd-sub{font-size:9px;fill:#64748b}.sd-mini{font-size:8px;font-weight:700;fill:#94a3b8}.sd-mini.l{text-anchor:start}.sd-mini.r{text-anchor:end}.sd-plcface{fill:#121418;stroke:#2c3038;stroke-width:2}.sd-plcslide{fill:#d03a33;transition:x .12s}.sd-plcdin{fill:#08090b;stroke:#3a3e45;stroke-width:3}.sd-plcpin{fill:#9aa1ab}.schem .sd-plclogo{font-family:var(--display);font-size:15px;font-weight:800;fill:#eef0f2;text-anchor:start}.schem .sd-plcmodel{font-family:var(--display);font-size:19px;font-weight:800;fill:#eef0f2;text-anchor:start}.schem .sd-plcspec{font-size:9px;font-weight:700;fill:#eef0f2;text-anchor:start}.sd-plcbox{fill:none;stroke:#cbd5e1;stroke-width:1}.sd-plcbadge{fill:#f4f5f6}.schem .sd-plcbadge-t{font-size:13px;font-weight:800;fill:#111;text-anchor:middle}.sd-mini.err,.sd-state.err{fill:#f87171}.sd-label{font-size:11px;font-weight:800;fill:#e2e8f0;letter-spacing:.3px}.sd-state{font-size:12px;font-weight:800;fill:#94a3b8}.sd-state.ok{fill:#4ade80}.sd-led{fill:#1f2937;stroke:#0b1222;stroke-width:1}.sd-led.on{fill:var(--on);stroke:var(--on);stroke-opacity:.35;stroke-width:4}.sd-well,.sd-bezel{fill:#0b1222;stroke:#334155}.sd-knob{fill:#cbd5e1;transition:y .12s}.sd-lever{fill:#64748b;transition:y .12s}.sd-lever.on{fill:#22c55e}.sd-bezelr{fill:#9ca3af;stroke:#475569;stroke-width:1.5}.sd-cap{stroke:#00000059;stroke-width:2;transition:r .08s}.sd-cap.down{filter:brightness(.75)}.sd-ring{stroke:#b45309}.sd-lens{opacity:.42;stroke:#0000004d;stroke-width:1.5}.sd-lens.on{opacity:1}.sd-glow{opacity:0}.sd-glow.on{opacity:.32}.sd-wave{fill:none;stroke:#ffd34d;stroke-width:2;opacity:0}.sd-wave.on{animation:sdWave .7s linear infinite}@keyframes sdWave{0%{opacity:.9;r:22px}to{opacity:0;r:34px}}.sd-target{fill:#8892a0;opacity:.35;transition:x .15s}.sd-target.on{opacity:1;fill:#cbd5e1}.sd-target.liquid{fill:#38bdf8}.sd-target.box{fill:#b07a43}.sd-beam{stroke:#ef4444;stroke-width:2;stroke-dasharray:3 3;opacity:0}.sd-beam.on{opacity:.8}.sd-water{fill:#2f8de4;opacity:.75;transition:y .2s,height .2s}.sd-value{font-family:var(--mono);font-size:13px;font-weight:700;fill:#4ade80}.sd-bridge{stroke:#64748b;stroke-width:2;stroke-dasharray:3 3}.sd-poles line{stroke:#94a3b8;stroke-width:2.5;stroke-linecap:round;transition:transform .1s}.sd-poles.on line{stroke:#f43f5e;transform:translateY(-4px)}.sd-knobc{fill:#111827;stroke:#64748b;stroke-width:1.5}.sd-ptr{stroke:#fff;stroke-width:2.5;stroke-linecap:round}.sd-lcd{fill:#1a0505;stroke:#3f1d1d}.schem .sd-seg{font-family:var(--mono);font-size:22px;font-weight:600;fill:#ff3b2f;text-anchor:end;letter-spacing:1px}.schem .sd-seg.blink{fill:#ff7b72}.schem .sd-seg.sv{fill:#3dff6e;font-size:17px}.schem .sd-seg.pv{font-size:19px}.schem .sd-seg.lcd{fill:#1d2419;font-size:15px;letter-spacing:0}.schem .sd-lcd.lcd-g{fill:#b9c7ae;stroke:#6b7a63}.sd-key{fill:#4a505b;stroke:#0006}.sd-key.down{filter:brightness(1.6)}.sd-key-t{font-size:9px;font-weight:800;fill:#fff}.sd-kpface{fill:#111316;stroke:#2c2f34;stroke-width:3}.sd-key.run{fill:#1f9d69}.sd-key.stop{fill:#e0383e}.sd-key.enter{fill:#1597d6}.sd-key.grey{fill:#c9ccd2}.sd-key-t.grey{fill:#15171b;font-size:10px}.sd-dial{fill:#2a2c30;stroke:#000;stroke-width:1.5}.sd-dial-arc{fill:none;stroke:#eef1f5;stroke-width:2.4;stroke-dasharray:5 3}.sd-dial-mark{stroke:#9aa0a8;stroke-width:2.4;stroke-linecap:round}.sd-screen-edge{fill:none;stroke:#1e293b}.sd-screen{image-rendering:auto}.sd-motor{fill:#475569;stroke:#94a3b8;stroke-width:2}.sd-motor-in{fill:#334155}.sd-fan line{stroke:#94a3b8;stroke-width:4;stroke-linecap:round}.sd-fan.on line{stroke:#cbd5e1}.schem.far .sd-tlabel,.schem.far .sd-mini,.schem.far .sd-sub{display:none}.sw path{fill:none;stroke-linecap:round;stroke-linejoin:round}.sw-hl{stroke:transparent;stroke-width:12}.sw-out{stroke:#030712bf;stroke-width:4.2}.sw-core{stroke-width:2.4}.sw.comm .sw-out{stroke-width:7}.sw.comm .sw-core{stroke-width:4.2;stroke-dasharray:10 3}.sw-pe{stroke:#f5d90a;stroke-width:2.4;stroke-dasharray:5 5}.sw-flow{stroke:#ffffffd9;stroke-width:1.4;stroke-dasharray:2 12;opacity:0}.sw.flow .sw-flow{opacity:.8;animation:swFlow .9s linear infinite}.sw.data .sw-flow{opacity:1;stroke:#e0f2fe;stroke-width:2.4;stroke-dasharray:3 9;animation:swFlow .35s linear infinite}@keyframes swFlow{to{stroke-dashoffset:-14}}.sw.selected .sw-hl{stroke:#22d3ee73}.sw-end{fill:#e2e8f0}.sm{fill:#34d3992e;stroke-width:2.5}.sm.pulse{animation:smPulse .8s ease-in-out infinite alternate}@keyframes smPulse{0%{stroke-width:2;opacity:.7}to{stroke-width:4;opacity:1}}.ssel{fill:#22d3ee0d;stroke:#22d3ee;stroke-width:2;stroke-dasharray:7 5}@media (max-width: 480px){.lab.fs .pane-panel .task-pill,.lab.fs .pane-panel .lab-hint{left:calc(10px + var(--safe-l))}}.panel-view .lab-mode{background:#0a1020d6;border-color:var(--line2)}.panel-view .lab-view-seg{background:#0a1020db;border-color:var(--line2)}.panel-view .lab-chip{height:32px;background:#0a1020d6;color:#dbe5f7;border-color:#94a3b847}.panel-view .lab-mode .seg:not(.active){color:#aab6cc}.panel-view .lab-hint{top:54px;left:10px;right:64px}@media (max-width: 480px){.panel-view .lab-hint{top:94px}}.lab.fs .pane-panel .lab-mode,.lab.fs .pane-panel .task-pill{top:calc(10px + var(--safe-t))}.lab.fs .pane-panel .lab-hint,.lab.fs .pane-panel .lab-wirebar{top:calc(54px + var(--safe-t))}.lab.fs .pane-panel .lab-view-seg,.lab.fs .pane-panel .lab-chips{bottom:calc(10px + var(--safe-b))}@media (max-width: 480px){.lab.fs .pane-panel .task-pill{top:calc(52px + var(--safe-t))}.lab.fs .pane-panel .lab-hint,.lab.fs .pane-panel .lab-wirebar{top:calc(94px + var(--safe-t))}}.lab.fs .lad-bar{padding-top:calc(6px + var(--safe-t))}.lab.fs .hv-bar{padding-top:calc(7px + var(--safe-t))}.lab.fs .mv-head{padding-top:calc(8px + var(--safe-t))}.lab.fs[data-dock-x=r][data-dock-y=t] .lad-bar,.lab.fs[data-dock-x=r][data-dock-y=t] .hv-bar,.lab.fs[data-dock-x=r][data-dock-y=t] .mv-head{padding-right:calc(48px + var(--safe-r))}.lab.fs .pane-vfd{padding-top:var(--safe-t)}.lab.fs .lab-pane:not(.pane-panel){padding-right:var(--safe-r);padding-bottom:var(--safe-b)}.lr-tag{fill:#c4b5fd;font-family:var(--mono);font-weight:800}.lad-bar .lb-hot b{color:#fbbf24}.net-chip.active{background:linear-gradient(135deg,#a78bfa61,#38bdf842);border-color:#a78bfacc;color:#f5f3ff;box-shadow:0 0 0 1px #a78bfa40,0 4px 18px #8b5cf659}.net-legend{position:absolute;left:calc(10px + var(--safe-l));right:calc(10px + var(--safe-r));bottom:52px;z-index:4;padding:8px 12px;border-radius:16px;background:#090d1cdb;border:1px solid rgba(167,139,250,.38);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-size:12px;color:#cbd5e1;max-width:560px;animation:barIn .2s ease}.net-legend .nl-keys{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-weight:700;font-size:11.5px}.net-legend .nl-k:before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:-1px;box-shadow:0 0 8px currentColor;background:currentColor}.net-legend .nl-k.req{color:#fbbf24}.net-legend .nl-k.res{color:#34d399}.net-legend .nl-k.err{color:#f87171}.net-legend .nl-sep{width:1px;height:12px;background:#94a3b859}.net-legend .nl-b:before{content:"";display:inline-block;width:16px;height:4px;border-radius:2px;margin-right:5px;vertical-align:2px;background:currentColor}.net-legend .nl-b.rs485{color:#a78bfa}.net-legend .nl-b.rs232{color:#fbbf24}.net-legend .nl-b.usb{color:#38bdf8}.net-legend .nl-line{margin-top:5px;color:#e2e8f0;font-weight:600;padding-right:74px;line-height:1.35}.net-legend .nl-stats{margin-top:4px;display:flex;flex-wrap:wrap;gap:4px 12px;font-family:var(--mono);font-size:11.5px;color:#94a3b8}.net-legend .nl-st b{color:#e2e8f0;font-weight:700}.net-legend .nl-st.ok b{color:#6ee7b7}.net-legend .nl-st.err b{color:#fca5a5}.net-legend .nl-more{position:absolute;right:8px;bottom:8px;display:inline-flex;align-items:center;gap:2px;height:28px;padding:0 8px 0 11px;border-radius:99px;border:1px solid rgba(167,139,250,.5);background:#8b5cf62e;color:#ede9fe;font-size:12px;font-weight:700}.panel-view.net-on .pot-card{bottom:128px}@media (max-height: 680px){.net-legend{bottom:44px}}.schem.net-view .sd:not(.net-dev){opacity:.22}.schem.net-view .sw:not(.comm){opacity:.1}.schem.net-view .sw.comm .sw-core{stroke-width:4.5;filter:drop-shadow(0 0 3px rgba(167,139,250,.75))}.schem.net-view .schem-ducts{opacity:.35}@media (max-width: 430px){.mv-seg .seg{padding:0 4px;gap:4px;font-size:12px}.mv-seg .seg svg{width:14px;height:14px}}.nw{display:flex;flex-direction:column;gap:12px}.nw-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.nw-top-t{display:flex;flex-direction:column}.nw-top-t b{font-family:var(--display);font-size:17px;color:#e2e8f0}.nw-top-t span{font-size:12px;color:var(--muted)}.nw-issues:empty{display:none}.nw-issues{display:flex;flex-direction:column;gap:6px}.nw-issue{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border-radius:12px;font-size:12.5px;line-height:1.35;background:#f59e0b1a;border:1px solid rgba(245,158,11,.35);color:#fde68a}.nw-issue.error{background:#ef44441a;border-color:#ef444466;color:#fecaca}.nw-issue svg{flex-shrink:0;margin-top:1px}.nw-card{border-radius:18px;border:1px solid var(--line2);background:linear-gradient(180deg,#141c36e6,#0c1224e6);padding:10px 10px 8px;--bus: #a78bfa}.nw-card.bus-rs232{--bus: #fbbf24}.nw-card.bus-usb{--bus: #38bdf8}.nw-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:2px 2px 8px}.nw-bus{font-size:11.5px;font-weight:800;padding:3px 8px;border-radius:99px;color:#0b1220;background:var(--bus)}.nw-title{color:#e2e8f0;font-size:14px}.nw-sub{color:var(--muted);font-size:12px;margin-left:auto}.nw-chain{position:relative;display:flex;flex-direction:column;gap:6px;padding-left:18px}.nw-chain:before{content:"";position:absolute;left:7px;top:18px;bottom:18px;width:3px;border-radius:2px;background:var(--bus);box-shadow:0 0 10px var(--bus);opacity:.85}.nw-node{position:relative;border-radius:13px;background:#94a3b80f;border:1px solid rgba(148,163,184,.16)}.nw-node:before{content:"";position:absolute;left:-13px;top:18px;width:13px;height:3px;background:var(--bus);opacity:.85}.nw-main{width:100%;display:flex;align-items:center;gap:9px;padding:8px 10px;text-align:left;color:inherit;background:none;border:0}.nw-dot{width:10px;height:10px;border-radius:50%;background:#475569;flex-shrink:0}.nw-dot.ok{background:#34d399;box-shadow:0 0 8px #34d399}.nw-dot.err{background:#f87171;box-shadow:0 0 8px #f87171;animation:nwBlink 1s steps(2) infinite}.nw-dot.master{background:#60a5fa;box-shadow:0 0 8px #60a5fa}@keyframes nwBlink{50%{opacity:.35}}.nw-name{flex:1;min-width:0;display:flex;flex-direction:column}.nw-name b{font-size:13.5px;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nw-name small{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nw-id{font-family:var(--mono);font-size:12px;font-weight:700;color:#ede9fe;background:#8b5cf638;border:1px solid rgba(167,139,250,.45);padding:2px 7px;border-radius:8px;white-space:nowrap}.nw-id:empty{display:none}.nw-state{font-family:var(--mono);font-size:11.5px;color:#94a3b8;white-space:nowrap;min-width:64px;text-align:right}.nw-last{font-size:12px;color:#a5b4fc;padding:0 10px 8px 29px;font-family:var(--mono);line-height:1.35;word-break:break-word}.nw-last:empty{display:none}.nw-term{position:absolute;left:-17px;top:-8px;font-size:9.5px;font-weight:800;color:#fde68a;background:#0b1220;border:1px solid rgba(253,230,138,.6);border-radius:6px;padding:0 3px}.nw-node.end:last-child .nw-term{top:auto;bottom:-8px}.nw-regs{padding:0 8px 8px;overflow-x:auto}.nw-regs table{width:100%;border-collapse:collapse;font-size:12px}.nw-regs th{text-align:left;font-weight:700;color:var(--muted);padding:4px 6px;border-bottom:1px solid var(--line2)}.nw-regs td{padding:5px 6px;border-bottom:1px solid rgba(148,163,184,.1);color:#cbd5e1;vertical-align:top}.nw-regs td.a{font-family:var(--mono);color:#c4b5fd;white-space:nowrap}.nw-regs td.a small{display:block;font-size:10px;color:var(--muted)}.nw-regs td.v{font-family:var(--mono);color:#6ee7b7;white-space:nowrap;text-align:right}.nw-regs td.rw{font-size:10.5px;color:var(--muted)}.nw-facts{margin-top:8px;font-size:12.5px;color:#cbd5e1}.nw-facts summary{cursor:pointer;color:#c4b5fd;font-weight:700;padding:4px 2px}.nw-facts ul{margin:4px 0 2px;padding-left:18px;line-height:1.45}.nw-log{align-self:center}.cs{display:flex;flex-direction:column;gap:10px}.cs-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cs-top b{font-size:14px;color:#e2e8f0}.cs-svg{display:block;max-width:460px;align-self:center;border-radius:14px;background:#0b1224;border:1px solid var(--line2);padding:6px 0}.cs-svg .cs-h{font:700 11px var(--font, Inter, sans-serif);fill:#e2e8f0;text-anchor:middle}.cs-svg .cs-s{font:600 9px var(--font, Inter, sans-serif);fill:#94a3b8;text-anchor:middle}.cs-svg .cs-box{fill:#94a3b80f;stroke:#94a3b840}.cs-svg .cs-pin{font:700 11px var(--mono, monospace);fill:#fbbf24}.cs-svg .cs-sig{font:700 11px var(--font, Inter, sans-serif);fill:#e2e8f0}.cs-svg .off{fill:#475569}.cs-set{border-radius:14px;border:1px solid var(--line2);overflow:hidden}.cs-set-h{font-size:11.5px;color:var(--muted);padding:7px 10px;background:#94a3b80f}.cs-row{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:8px 10px;border-top:1px solid var(--line);font-size:13px}.cs-row b{color:#ede9fe;font-family:var(--mono);text-align:right}.cs-row code{font-family:var(--mono);color:#6ee7b7;font-size:12px}.cs-row small{color:var(--muted);text-align:right;font-size:11px}.cs-note{font-size:12.5px;color:#cbd5e1;line-height:1.45;margin:0}.cs-facts{margin:0;padding-left:18px;font-size:12.5px;line-height:1.45;color:#cbd5e1}.lab-empty{position:absolute;left:42%;top:50%;transform:translate(-50%,-50%);z-index:6;width:min(72%,320px);display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 16px 16px;border-radius:22px;text-align:center;background:#0a1020b8;border:1px solid rgba(34,211,238,.3);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 24px 60px -24px #000}.lab-empty.hidden{display:none}.lab-empty .le-ic{width:54px;height:54px;display:grid;place-items:center;border-radius:18px;color:var(--accent);background:#22d3ee1f}.lab-empty b{font-family:var(--display);font-size:19px}.lab-empty p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.5}
