:root{color-scheme:dark;--bg:#10171e;--panel:#151e27;--panel2:#1b2630;--line:#29343d;--muted:#84919a;--text:#edf2f3;--green:#63d39a;--green2:#163a2e;--amber:#edb95b;--red:#e17676;--blue:#77aaff;--grid:rgba(132,155,170,.075);font:13px 'DM Sans',system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);height:100dvh;display:flex;flex-direction:column;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer}.topbar{height:58px;flex:none;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:28px;padding:0 18px;background:#121a21}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#f4f5f4;font-weight:700;font-size:16px;letter-spacing:.2px;min-width:190px}.brand-mark{width:31px;height:31px;border-radius:9px;background:var(--green);color:#092217;display:grid;place-items:center;font-weight:800;font-size:20px}.brand-soft{color:var(--green)}.brand small{display:block;font-size:8px;letter-spacing:1.8px;color:#849198;font-weight:600;margin-top:1px}.project-name{display:flex;align-items:center;gap:8px}.live-dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 8px #63d39a99}.project-name button{border:0;background:transparent;font-weight:600}.chevron{font-size:10px;color:var(--muted);margin-left:8px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.save-state{font-size:11px;color:var(--muted);margin-right:12px}.icon-button,.subtle-button,.tab-add{border:1px solid var(--line);background:#19232c;color:#b8c2c7;width:31px;height:29px;border-radius:7px}.icon-button{font-size:14px}.toolbar{height:49px;flex:none;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 14px;gap:10px;background:#151e27;overflow-x:auto}.tool-group{display:flex;align-items:center;gap:4px;border-right:1px solid var(--line);padding-right:11px}.tool-group:last-child{border:0}.tool-group button{background:transparent;border:0;color:#b6c2c7;border-radius:5px;height:31px;padding:0 9px;font-size:13px;white-space:nowrap}.tool-group button:hover,.tool-group button.active{background:#27343e;color:#fff}.tool-group button span{font-size:11px;margin-left:4px}.tool-group .run-button{background:var(--green2);color:var(--green);padding:0 12px;font-weight:700}.tool-group .stop-button{color:#e79595}.zoom-tools{margin-left:auto;gap:9px;color:var(--muted);font-size:11px}.zoom-tools button{padding:0 7px}.workspace{display:grid;grid-template-columns:218px minmax(420px,1fr) 245px;flex:1;min-height:0}.sidebar{background:#141c24;min-width:0;display:flex;flex-direction:column}.left-sidebar{border-right:1px solid var(--line)}.right-sidebar{border-left:1px solid var(--line)}.panel-heading{height:38px;padding:0 13px;display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:1.3px;font-weight:700;color:#89969d}.panel-heading .subtle-button{width:23px;height:22px}.project-tree{padding:9px 9px 15px;border-bottom:1px solid var(--line)}.tree-project,.tree-item{width:100%;height:31px;display:flex;align-items:center;gap:8px;padding:0 8px;border:0;border-radius:5px;background:transparent;text-align:left;color:#aab6bc;font-size:11px}.tree-project{color:#e3e9eb;font-weight:600}.tree-item{padding-left:24px}.tree-item.selected{background:#213b34;color:#79dfa9}.side-card{padding:4px 0 12px;border-bottom:1px solid var(--line)}.count-pill{border-radius:4px;background:#25333d;padding:2px 6px;color:#aab7bd;font-size:10px;letter-spacing:0}.io-list{padding:0 10px;display:grid;gap:5px}.io-row{display:flex;align-items:center;gap:8px;border:1px solid #29343d;background:#18232b;border-radius:6px;padding:7px 8px;font-size:11px}.io-row label{display:flex;align-items:center;gap:7px;flex:1;min-width:0}.io-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.io-address{font:10px 'DM Mono',monospace;color:#78868e}.switch{accent-color:var(--green);width:27px;height:15px}.io-lamp{width:8px;height:8px;border-radius:50%;background:#4a555b;box-shadow:inset 0 0 0 1px #ffffff18}.io-lamp.on{background:var(--green);box-shadow:0 0 10px #63d39a99}.output-card{flex:1;overflow:auto}.sidebar-footer{padding:12px;display:flex;align-items:center;gap:9px;color:#829099;font-size:10px;line-height:1.5}.safe-icon{display:grid;place-items:center;width:23px;height:23px;border-radius:6px;background:#22392e;color:var(--green);font-weight:bold}.sidebar-footer b{color:#c7d0d3;font-weight:500}.editor-area{min-width:0;display:flex;flex-direction:column;background:#10171e}.editor-tabs{height:38px;display:flex;align-items:center;border-bottom:1px solid var(--line);padding:0 11px;gap:8px}.tab{height:38px;padding:0 10px;display:flex;gap:9px;align-items:center;color:#dfe6e7;border-bottom:2px solid var(--green);font-size:11px}.tab em{font-style:normal;font-size:8px;border:1px solid #3d5650;padding:2px 4px;color:var(--green);border-radius:3px}.tab-add{height:23px;width:23px}.editor-spacer{flex:1}.subtle-button{font-size:11px}.editor-subbar{height:39px;padding:0 15px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #202a32;font-size:11px}.crumb{color:#7c898f}.crumb-sep{padding:0 8px;color:#536067}.badge{font-size:8px;letter-spacing:1px;background:#252f38;color:#9fb0b6;border-radius:4px;padding:4px 6px;margin-left:11px}.editor-opts{display:flex;align-items:center;gap:15px;font-size:10px;color:#87959b}.editor-opts input{accent-color:var(--green);vertical-align:middle}.canvas-wrap{position:relative;overflow:auto;flex:1;background-color:#111920;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px;padding:0 20px 36px}.canvas-wrap.no-grid{background-image:none}.canvas-ruler{height:33px;display:flex;justify-content:space-between;align-items:center;color:#64747d;font-size:9px;letter-spacing:1px;font-weight:600;border-bottom:1px solid #29343d;margin:0 -2px 15px}.canvas-ruler span{font:9px 'DM Mono',monospace;color:#76858d}.ladder-canvas{display:grid;gap:16px;min-width:540px;transform-origin:top left}.rung{position:relative;background:rgba(20,29,37,.8);border:1px solid #2a3740;border-radius:8px;min-height:126px;padding:12px 15px 13px;overflow:hidden;transition:border-color .15s}.rung:hover{border-color:#41515a}.rung.selected{border-color:#4ea77a;box-shadow:0 0 0 1px #4ea77a22}.rung-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;color:#819097;font:10px 'DM Mono',monospace}.rung-num{color:#a9b4b9}.rung-comment{background:transparent;border:0;border-bottom:1px dashed #45535a;color:#aebbbd;width:min(260px,60%);text-align:left;padding:3px 5px;font-size:10px}.rung-comment:focus{outline:none;border-color:var(--green)}.rail{position:absolute;left:25px;top:48px;bottom:14px;width:2px;background:#8b969a}.rung-wire{position:absolute;left:27px;right:31px;top:68px;height:2px;background:#77848a}.rung-logic{position:relative;margin-left:35px;margin-right:26px;min-height:40px;display:flex;align-items:center;gap:0;z-index:1}.logic-branch{display:flex;align-items:center;flex:1;min-width:0}.contact{position:relative;z-index:1;display:flex;align-items:center;flex:1;min-width:67px;max-width:155px;height:44px;cursor:pointer}.contact:before,.contact:after{content:"";height:2px;background:#77848a;flex:1}.contact-bars{height:20px;width:20px;position:relative;flex:none}.contact-bars:before,.contact-bars:after{content:"";position:absolute;top:0;bottom:0;width:2px;background:#c3cccb;left:5px}.contact-bars:after{left:14px}.contact.nc .contact-bars i{position:absolute;width:23px;height:2px;background:#e49570;transform:rotate(-54deg);left:-2px;top:9px}.contact.energized:before,.contact.energized:after{background:var(--green);box-shadow:0 0 6px #63d39a77}.contact.energized .contact-bars:before,.contact.energized .contact-bars:after{background:var(--green);box-shadow:0 0 7px #63d39a}.contact-label{position:absolute;top:45px;left:50%;transform:translateX(-50%);font:9px 'DM Mono',monospace;color:#b5c1c3;white-space:nowrap}.contact.selected .contact-bars:before,.contact.selected .contact-bars:after{background:var(--amber)}.branch-break{height:37px;min-width:32px;max-width:50px;flex:1;position:relative;border-top:2px solid #748087;border-bottom:2px solid #748087}.branch-break:before,.branch-break:after{content:"";position:absolute;left:0;right:0;height:2px;background:#748087}.coil{width:42px;height:30px;position:relative;display:grid;place-items:center;margin-left:5px;cursor:pointer}.coil:before,.coil:after{content:"(";font:30px Georgia;color:#c3cccb;position:absolute;left:0;top:-5px}.coil:after{content:")";left:auto;right:0}.coil.energized:before,.coil.energized:after{color:var(--green);text-shadow:0 0 8px #63d39a}.coil-label{position:absolute;top:40px;right:-2px;font:9px 'DM Mono',monospace;color:#c1cbcc;white-space:nowrap}.rung-tools{display:none;position:absolute;right:9px;top:7px;gap:4px}.rung:hover .rung-tools{display:flex}.rung-tools button{width:22px;height:22px;border:1px solid #3a484f;border-radius:5px;background:#1b2730;color:#bfc8cb}.timer-chip{position:absolute;right:72px;top:14px;border:1px solid #53626a;border-radius:5px;background:#1b2730;color:#b7c3c5;padding:5px 8px;font:9px 'DM Mono',monospace}.timer-chip.active{color:var(--green);border-color:#49956e}.editor-footer{height:30px;border-top:1px solid #26323a;display:flex;align-items:center;gap:16px;padding:0 13px;color:#78868d;font-size:9px;flex:none}.editor-footer kbd{font:9px 'DM Mono';border:1px solid #3a464e;border-radius:3px;padding:2px 4px;color:#a9b4b9}.offline-label{margin-left:auto}.offline-label i,.status-indicator{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:5px}.inspector-tabs{height:38px;display:flex;border-bottom:1px solid var(--line);padding-left:12px;gap:15px}.inspector-tabs button{background:transparent;border:0;color:#7c898f;font-size:9px;letter-spacing:1px}.inspector-tabs button.active{border-bottom:2px solid var(--green);color:#c7d1d3}.inspector-content{padding:17px 14px;flex:1}.empty-inspector{text-align:center;color:#8a979c;margin:38px 8px}.inspector-icon{width:38px;height:38px;border:1px solid #34424a;border-radius:10px;display:grid;place-items:center;margin:0 auto 12px;font-size:20px;color:#90a09f}.empty-inspector b{color:#d4dddf;font-size:11px}.empty-inspector p{font-size:10px;line-height:1.6}.property-form{display:grid;gap:13px}.property-form h3{font-size:10px;color:#89979c;text-transform:uppercase;letter-spacing:1px;margin:0 0 2px}.field{display:grid;gap:6px;color:#93a0a5;font-size:10px}.field input,.field select{background:#1b252e;border:1px solid #34414a;border-radius:5px;height:31px;padding:0 8px;color:#e7eded;min-width:0}.field-help{font-size:9px;color:#708087}.diagnostic-panel{border-top:1px solid var(--line);padding:7px 0 13px}.diagnostic-ok{color:var(--green);font-size:8px;letter-spacing:.7px}.diagnostic-line{display:flex;align-items:center;gap:7px;padding:7px 12px;color:#abb7ba;font-size:10px}.diagnostic-check{color:var(--green)}.muted{margin-left:auto;color:#738087;font-size:9px}.version-card{border-top:1px solid var(--line);padding:13px 14px;color:#8a969b;font-size:9px}.version-card span{color:#b5c6c4;letter-spacing:1px;font-weight:700}.version-card small{display:block;font-size:7px;letter-spacing:1.3px;margin:3px 0 7px}.statusbar{height:25px;flex:none;display:flex;align-items:center;gap:20px;background:#17212a;border-top:1px solid #29343d;padding:0 12px;color:#819097;font-size:9px}.statusbar b{color:#c2cbcd;font:9px 'DM Mono'}.status-spacer{flex:1}.status-indicator{background:#89959a}.statusbar.running .status-indicator{background:var(--green);box-shadow:0 0 7px var(--green)}.minimap{position:absolute;right:16px;bottom:15px;width:150px;height:92px;background:#18232aee;border:1px solid #52616a;border-radius:6px;padding:8px;font-size:8px;color:#87969b;z-index:4}.minimap div{margin-top:9px;display:grid;gap:4px}.mini-rung{height:7px;border:1px solid #637179;border-radius:2px}.toast{position:fixed;left:50%;bottom:45px;transform:translate(-50%,15px);opacity:0;pointer-events:none;z-index:20;background:#d8f6e6;color:#10251a;padding:9px 14px;border-radius:6px;box-shadow:0 6px 20px #0007;transition:.2s;font-size:11px}.toast.show{opacity:1;transform:translate(-50%,0)}.hidden{display:none!important}.modal{border:1px solid #3b4a53;background:#151f28;color:var(--text);border-radius:12px;width:min(590px,calc(100vw - 28px));max-height:82dvh;padding:0;box-shadow:0 22px 80px #000a}.modal::backdrop{background:#02070bb8;backdrop-filter:blur(3px)}.modal-head{display:flex;align-items:center;padding:16px 19px;border-bottom:1px solid var(--line);gap:12px}.modal-head h2{font-size:15px;margin:0}.modal-head p{font-size:10px;color:var(--muted);margin:5px 0 0}.modal-close{margin-left:auto;background:transparent;border:0;color:#aab5ba;font-size:20px}.modal-body{padding:16px 19px;overflow:auto;max-height:calc(82dvh - 67px)}.example-tools{display:flex;gap:9px;margin-bottom:12px}.example-tools input,.example-tools select,.palette-input{background:#202b34;border:1px solid #394851;border-radius:6px;padding:9px;color:#eaf0f0}.example-tools input{flex:1;min-width:80px}.example-list{display:grid;gap:6px}.example-row{border:1px solid #2d3a43;border-radius:7px;background:#19242c;padding:10px;display:grid;grid-template-columns:45px 1fr auto;gap:10px;align-items:center;text-align:left}.example-row:hover{border-color:#5a9878}.example-id{font:9px 'DM Mono';color:#74d5a1}.example-row b{font-size:11px}.example-row small{display:block;color:#839198;font-size:9px;margin-top:4px}.example-diff{font-size:8px;color:#c2a468;background:#3b3222;border-radius:4px;padding:4px 6px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.primary,.secondary,.danger-button{border:0;border-radius:6px;padding:8px 12px;font-weight:600;font-size:10px}.primary{background:var(--green);color:#10271b}.secondary{background:#29363f;color:#d3dcde}.danger-button{background:#48272a;color:#f1a6a6}.project-list{display:grid;gap:7px}.project-row{display:flex;align-items:center;gap:9px;background:#1b262f;border:1px solid #2e3a42;border-radius:7px;padding:10px}.project-row button{border:0;background:transparent;color:#dfe7e8}.project-row .project-open{flex:1;text-align:left}.project-row small{display:block;color:#839097;font-size:9px;margin-top:4px}.palette-input{width:100%;font-size:13px}.palette-commands{display:grid;gap:5px;margin-top:10px}.palette-command{text-align:left;border:0;background:transparent;color:#dce4e5;padding:9px;border-radius:5px}.palette-command:hover{background:#24333c}.safety-copy{font-size:12px;line-height:1.65;color:#b2bec2}.safety-copy strong{color:#f2c777}.tag-table{width:100%;border-collapse:collapse;font-size:10px}.tag-table th,.tag-table td{text-align:left;border-bottom:1px solid #2e3a42;padding:8px 5px}.tag-table th{color:#85949a}.tag-table td{color:#c9d2d4}
@media(max-width:1050px){.workspace{grid-template-columns:190px minmax(380px,1fr)}.right-sidebar{display:none}.topbar{gap:15px}.brand{min-width:165px}}
@media(max-width:760px){body{height:100dvh}.topbar{height:51px;padding:0 11px;gap:10px}.brand{min-width:0;font-size:14px}.brand-mark{width:28px;height:28px}.brand small{display:none}.project-name{margin-left:auto}.project-name button{max-width:135px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.save-state{display:none}.top-actions{margin-left:2px;gap:5px}.icon-button{width:27px;height:27px}.toolbar{height:44px;padding:0 7px;gap:6px}.tool-group{padding-right:5px}.tool-group button{padding:0 7px;height:29px}.tool-group button span{display:none}.zoom-tools{margin-left:0}.workspace{display:flex;flex-direction:column}.left-sidebar{display:none}.editor-area{flex:1;min-height:0}.editor-tabs{height:34px}.editor-subbar{height:34px;padding:0 10px}.editor-opts{gap:8px}.canvas-wrap{padding:0 10px 27px}.canvas-ruler{height:27px;margin-bottom:10px}.ladder-canvas{min-width:450px;gap:12px}.rung{min-height:119px;padding:10px 12px}.rung-head{margin-bottom:16px}.rail{left:20px;top:43px}.rung-wire{left:22px;top:63px}.rung-logic{margin-left:28px;margin-right:22px}.contact{min-width:58px}.contact-label{font-size:8px}.coil{transform:scale(.9)}.timer-chip{top:10px;right:59px}.editor-footer{height:26px;padding:0 8px;font-size:8px;gap:8px}.editor-footer>span:first-child{display:none}.statusbar{height:22px;gap:11px;padding:0 8px;font-size:8px}.statusbar>span:last-child{display:none}.modal-head{padding:13px 15px}.modal-body{padding:12px}.example-row{grid-template-columns:39px 1fr auto;padding:8px}.example-row small{line-height:1.4}.minimap{width:115px;height:70px;right:8px;bottom:8px}}
.io-modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.io-modal-grid h3{font-size:9px;letter-spacing:1px;color:#96a3a8;margin:0 0 9px;padding-left:2px}
.tag-table{min-width:560px}.tag-table td{padding:5px 4px}.tag-edit{width:100%;min-width:70px;max-width:150px;height:29px;border:1px solid #34414a;border-radius:4px;background:#1b252e;padding:0 6px;color:#dbe4e5;font-size:10px}.tag-remove{border:0;background:transparent;color:#e89b9b;font-size:17px}.validation-list{display:grid;gap:5px;margin-top:12px}.validation-item{font-size:10px;padding:7px 9px;border-radius:5px;background:#3b2929;color:#f1abab}.validation-item.warning{background:#3b3426;color:#eacb86}.validation-item.ok{background:#20372e;color:#8cdeb0}
.tag-table{min-width:650px}.parallel-paths{position:relative;display:flex;flex-direction:column;flex:1;min-width:0;padding:0 8px}.parallel-paths:before,.parallel-paths:after{content:"";position:absolute;top:25px;bottom:25px;width:2px;background:#77848a}.parallel-paths:before{left:0}.parallel-paths:after{right:0}.parallel-paths .logic-branch{height:50px;min-height:50px;flex:none;position:relative}.parallel-paths .logic-branch:before,.parallel-paths .logic-branch:after{content:"";position:absolute;top:24px;width:9px;height:2px;background:#77848a}.parallel-paths .logic-branch:before{left:0}.parallel-paths .logic-branch:after{right:0}.has-parallel{min-height:164px}.has-parallel .rung-logic{align-items:center}.has-parallel .contact-label{top:43px}.diagnostic-error{color:#f09595!important}
.badge#ladderBadge{font:8px 'DM Sans',sans-serif;appearance:none;cursor:pointer}.st-pane{flex:1;display:flex;flex-direction:column;min-height:0;background:#111920}.st-toolbar{height:40px;flex:none;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:0 14px;font-size:10px;color:#829198}.st-toolbar .primary{padding:6px 12px}.st-toolbar #stModeNotice{margin-left:auto;color:#d6b777}.st-pane textarea{flex:1;resize:none;border:0;outline:0;background:#10171e;color:#d7e2df;padding:18px;font:13px/1.8 'DM Mono',Consolas,monospace;tab-size:4;white-space:pre;overflow:auto}.st-errors{max-height:115px;overflow:auto;padding:0 14px}.compile-good{color:var(--green)}.compile-bad{color:#f09595}
.editor-pane{flex:1;min-height:0;overflow:auto;padding:15px;background:#111920}.pane-toolbar{height:38px;display:flex;align-items:center;gap:8px;color:#89979c;font-size:9px;letter-spacing:1px}.pane-toolbar span{margin-right:auto}.pane-toolbar button{font-size:10px;padding:7px 10px}.fbd-blocks{display:grid;gap:10px;margin-top:9px}.fbd-block{position:relative;display:flex;align-items:flex-end;gap:10px;padding:15px 35px 14px 44px;background:#19242c;border:1px solid #33414a;border-radius:8px}.fbd-index{position:absolute;left:13px;top:17px;color:#62d198;font:10px 'DM Mono'}.fbd-block label{display:grid;gap:5px;min-width:80px;flex:1;color:#8f9da2;font-size:9px}.fbd-block input,.fbd-block select,.sfc-step input,.sfc-transition input,.sfc-transition select{height:30px;min-width:70px;border:1px solid #394851;border-radius:5px;background:#202b34;color:#e4ebeb;padding:0 7px;font-size:10px}.fbd-value{font:9px 'DM Mono';color:#82dca8;white-space:nowrap;padding:8px 2px}.fbd-block>.tag-remove{position:absolute;right:9px;top:8px}.empty-message{font-size:11px;color:#839198;padding:15px}.sfc-chart{padding:12px 3px}.sfc-steps{display:grid;gap:8px;max-width:700px;margin:0 auto}.sfc-step{position:relative;display:grid;grid-template-columns:24px 1fr 2fr 25px;gap:9px;align-items:center;border:1px solid #34424a;border-radius:7px;background:#1a252d;padding:10px}.sfc-step.active{border-color:#63d39a;box-shadow:0 0 12px #63d39a29}.step-number{color:#6cd49c;font:15px 'DM Mono';text-align:center}.sfc-step label{display:grid;gap:5px;color:#8e9a9f;font-size:9px}.sfc-transitions{max-width:700px;margin:16px auto;border-top:1px solid #2d3a42;padding-top:10px}.sfc-transitions h3{font-size:9px;letter-spacing:1px;color:#839198}.sfc-transition{display:flex;align-items:center;gap:8px;padding:6px 0}.sfc-transition select,.sfc-transition input{flex:1}.sfc-transition span{color:#66d59c}.sfc-transition select:last-of-type{flex:0 0 62px}.sfc-transition .tag-remove{flex:0 0 24px}
.mode-select{font-size:9px;color:#a7b6bb;background:#1b2931;border:1px solid #34434a;border-radius:4px;padding:4px 6px;margin-left:10px;max-width:185px}.badge#ladderBadge{font:8px 'DM Sans',sans-serif}
.find-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.find-fields label{display:grid;gap:5px;color:#94a1a6;font-size:10px}.find-fields input{height:32px;border:1px solid #394851;border-radius:5px;background:#202b34;padding:0 8px;color:#edf2f3}
.fbd-blocks{position:relative;min-width:500px;min-height:100%;overflow:visible}.fbd-wires{position:absolute;inset:0;z-index:0;overflow:visible;pointer-events:none}.fbd-wires path{fill:none;stroke:#60d399;stroke-width:2;stroke-linecap:round}.fbd-wires .fbd-wire-preview{stroke:#f0c777;stroke-dasharray:5 4}.fbd-block{z-index:1;margin-left:28px;margin-right:32px}.fbd-port{position:absolute;z-index:2;min-height:25px;border:1px solid #4d7763;border-radius:12px;background:#16261f;color:#b8f1d0;font:9px 'DM Mono';white-space:nowrap;touch-action:none}.fbd-input-ports{position:absolute;left:-9px;top:50%;display:grid;gap:5px;transform:translate(-100%,-50%)}.fbd-input-port{position:relative;max-width:145px;overflow:hidden;text-overflow:ellipsis;padding:3px 9px}.fbd-output-port{right:-9px;top:50%;padding:3px 9px;transform:translate(100%,-50%)}.fbd-blocks.wiring [data-fbd-input-handle]{border-color:#f0c777;box-shadow:0 0 0 2px #f0c77755}
.context-menu{position:fixed;z-index:1000;min-width:190px;max-width:min(260px,calc(100vw - 16px));display:grid;gap:3px;padding:5px;background:#1a252d;border:1px solid #3a4a53;border-radius:8px;box-shadow:0 12px 36px #0009}.context-menu[hidden]{display:none}.context-menu button{min-height:34px;border:0;border-radius:5px;background:transparent;color:#e0e8e8;text-align:left;padding:7px 10px;font-size:11px}.context-menu button:hover,.context-menu button:focus-visible{background:#293943;outline:1px solid #64d69d}.context-menu button.danger{color:#f3aaaa}.context-menu .menu-separator{height:1px;background:#344149;margin:3px 5px}
.context-menu.help-guide-menu{display:block;overflow:auto;overscroll-behavior:contain;padding:0;min-width:0;max-width:calc(100vw - 16px);background:var(--panel);color:var(--text)}.help-guide-content{padding:14px 18px 22px;font-size:12px;line-height:1.55}.help-guide-content h1{font-size:19px;margin:0 0 12px}.help-guide-content h2{font-size:15px;margin:20px 0 8px;padding-top:8px;border-top:1px solid var(--line);scroll-margin-top:10px}.help-guide-content h3{font-size:13px;margin:16px 0 6px}.help-guide-content p{margin:8px 0}.help-guide-content ol,.help-guide-content ul{padding-left:22px;margin:8px 0}.help-guide-content li{padding:2px 0}.help-guide-content a{color:var(--blue)}.help-guide-content code{font-family:'DM Mono',monospace;background:var(--panel2);padding:1px 4px;border-radius:3px}.help-guide-content .help-table-wrap{overflow:auto;margin:8px 0}.help-guide-content table{width:100%;border-collapse:collapse;font-size:11px}.help-guide-content th,.help-guide-content td{text-align:left;vertical-align:top;padding:6px 8px;border:1px solid var(--line)}.help-guide-content th{background:var(--panel2)}.help-guide-content .help-guide-actions{display:flex;gap:8px;border-top:1px solid var(--line);padding-top:12px;margin-top:20px}.context-menu.help-guide-menu .help-guide-actions button{border:1px solid var(--line);background:var(--panel2);color:var(--text)}.help-guide-loading{padding:18px;font-size:12px;color:var(--muted)}body[data-theme="light"] .context-menu.help-guide-menu{background:var(--panel);color:var(--text)}
.guest-session-status{font-size:10px;color:var(--muted);white-space:nowrap}.guest-expiry-notice{position:fixed;z-index:1300;top:66px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;max-width:min(720px,calc(100vw - 24px));padding:10px 12px;border:1px solid var(--amber);border-radius:9px;background:var(--panel);color:var(--text);box-shadow:0 10px 32px #0008;font-size:12px}.guest-expiry-notice[hidden]{display:none}.guest-expiry-notice span{flex:1}.guest-expiry-notice button{border:1px solid var(--line);border-radius:6px;background:var(--panel2);color:var(--text);padding:6px 9px;white-space:nowrap}.guest-expiry-notice button:last-child{border-color:var(--green);background:var(--green);color:#071811}
@media(max-width:720px){.guest-session-status{display:none}.guest-expiry-notice{top:60px;align-items:flex-start;flex-wrap:wrap}.guest-expiry-notice span{flex:1 1 100%}}
@media print{body{display:block;height:auto;overflow:visible;background:#fff;color:#111}.topbar,.toolbar,.left-sidebar,.right-sidebar,.editor-tabs,.editor-subbar,.editor-footer,.statusbar,.rung-tools{display:none!important}.workspace{display:block}.editor-area{display:block;background:#fff}.canvas-wrap{overflow:visible;padding:0;background:#fff!important}.canvas-ruler{color:#333}.ladder-canvas{transform:none!important;gap:8px}.rung{break-inside:avoid;background:#fff;border:1px solid #aaa;color:#111}.rung-num,.rung-comment,.contact-label,.coil-label{color:#222}.rail,.rung-wire,.contact:before,.contact:after{background:#222}.contact-bars:before,.contact-bars:after,.coil:before,.coil:after{color:#111;background:#111}.timer-chip{background:#fff;color:#111}.st-pane textarea{background:#fff;color:#111}.editor-pane{background:#fff;color:#111}}

body.high-contrast{--line:#788991;--muted:#d3dddd;--text:#fff;background:#05090c}body.high-contrast .sidebar,body.high-contrast .toolbar{background:#080d11}body.readable-font,body.readable-font button,body.readable-font input,body.readable-font select{font-family:Arial,Helvetica,sans-serif!important}

.watch-list{display:grid;gap:6px}.watch-row{display:grid;grid-template-columns:minmax(80px,1fr) 90px 120px;align-items:center;gap:8px;padding:7px;border:1px solid #303c44;border-radius:5px;background:#19232b}.watch-row b{font:10px 'DM Mono';color:#a9e0bd}.watch-row select{background:#202b34;border:1px solid #394851;border-radius:4px;padding:5px;color:#eaf0f0;font-size:9px}

.rung-tools button.active{color:#ffbf69;border-color:#b67b2c;background:#352a1b}.rung-tools button:disabled{opacity:.35;cursor:not-allowed}

.event-list{display:grid;gap:5px;max-height:48vh;overflow:auto}.event-row{display:grid;grid-template-columns:78px 85px minmax(0,1fr);gap:8px;align-items:start;padding:7px;background:#19232b;border:1px solid #303c44;border-radius:5px;font-size:9px}.event-row time{color:#88969c;font-family:monospace}.event-row b{color:#86d2a5}.event-row span{overflow-wrap:anywhere}

.editor-area.hmi-mode .editor-subbar{display:none}.pane-toolbar label{display:flex;align-items:center;gap:7px;color:#9daab0}.pane-toolbar input{height:27px;width:min(190px,28vw);background:#1b252e;border:1px solid #34414a;border-radius:5px;padding:0 7px;color:#eef3f3}.safety-chip{margin-left:auto;color:#e6c276;font-size:8px;letter-spacing:.7px}.hmi-board{flex:1;min-height:0;overflow:auto;padding:18px;display:grid;grid-template-columns:repeat(6,minmax(115px,1fr));grid-auto-rows:minmax(125px,auto);gap:12px;background-color:#101820;background-image:linear-gradient(#24313a55 1px,transparent 1px),linear-gradient(90deg,#24313a55 1px,transparent 1px);background-size:24px 24px}.hmi-widget{min-width:0;border:1px solid #40505a;border-radius:8px;background:#1a252e;box-shadow:0 5px 18px #0004;padding:9px;display:flex;flex-direction:column;gap:8px}.hmi-widget-title{font-size:10px;font-weight:700;color:#dce5e6}.hmi-widget-body{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:40px}.hmi-widget-body small{font:9px 'DM Mono';color:#829198}.hmi-switch{border:1px solid #53646d;border-radius:7px;background:#283640;padding:10px 16px;min-width:72px;font-weight:700;font-size:11px}.hmi-switch.on{background:#235a42;border-color:#63d39a;color:#d8ffea}.hmi-lamp{display:flex;align-items:center;gap:8px;font:700 10px 'DM Mono';color:#87969b}.hmi-lamp i{width:24px;height:24px;border-radius:50%;background:#38434a;border:2px solid #69777e}.hmi-lamp.on{color:#95e6b7}.hmi-lamp.on i{background:#63d39a;box-shadow:0 0 16px #63d39a99}.hmi-value{font:700 19px 'DM Mono';color:#c7dcf3}.hmi-trend{height:42px;flex:1;display:flex;align-items:end;gap:2px;padding:3px;border-bottom:1px solid #53616a}.hmi-trend i{flex:1;min-width:2px;background:#65c9a0;border-radius:2px 2px 0 0}.hmi-widget-controls{display:grid;grid-template-columns:1fr 1fr;gap:4px}.hmi-widget-controls input,.hmi-widget-controls select{min-width:0;width:100%;height:25px;background:#202b34;border:1px solid #394851;border-radius:4px;padding:0 5px;color:#eaf0f0;font-size:8px}.hmi-widget-controls span{grid-column:1/-1;display:flex;justify-content:space-between}.hmi-widget-controls button{border:1px solid #36444d;background:#202b34;border-radius:4px;padding:2px 6px;color:#c7d1d4;font-size:11px}.hmi-widget-controls button:hover{border-color:#68c997}

.editor-tabs .tab{border:0;border-bottom:2px solid transparent;background:transparent;box-shadow:none}.editor-tabs .tab.active{border-bottom-color:var(--green)}.editor-tabs .tab:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}

.hmi-alarm-panel{flex:none;max-height:170px;overflow:auto;border-top:1px solid #35434b;padding:8px 12px;background:#141d24}.alarm-panel-head{display:flex;justify-content:space-between;color:#aab6ba;font-size:9px;letter-spacing:.8px;margin-bottom:6px}.alarm-row{display:grid;grid-template-columns:50px minmax(100px,1fr) minmax(100px,auto) auto auto auto;gap:7px;align-items:center;padding:6px 8px;margin:4px 0;border:1px solid #60404a;border-radius:5px;background:#302129;font-size:9px}.alarm-row strong{color:#fa9999}.alarm-row.priority-medium{border-color:#665432;background:#302a1c}.alarm-row.priority-medium strong{color:#f0cc7b}.alarm-row.priority-low{border-color:#35534a;background:#1d2a27}.alarm-row.priority-low strong{color:#91d6ae}.alarm-row.suppressed{opacity:.6}.alarm-row small{color:#b3bec1}.alarm-row button{border:1px solid #46545b;border-radius:4px;background:#222d35;padding:4px 6px;font-size:8px}.alarm-row button:disabled{opacity:.4;cursor:default}@media(max-width:760px){.alarm-row{grid-template-columns:45px 1fr auto}.alarm-row small{grid-column:2}.alarm-row button{grid-row:1 / span 2}.hmi-alarm-panel{max-height:210px}}

.process-panel{flex:none;max-height:190px;overflow:auto;padding:9px 12px;border-top:1px solid #35434b;background:#131c23}.process-panel-title{font-size:8px;letter-spacing:1px;color:#a1adb2;margin:0 0 7px}.process-cards{display:flex;gap:8px;overflow-x:auto}.process-card{flex:0 0 130px;min-height:90px;border:1px solid #36464e;border-radius:6px;background:#1b272f;padding:7px;display:grid;grid-template-columns:1fr auto;gap:4px;align-items:center}.process-card>b{font-size:9px;color:#dfe7e8}.process-card>span{grid-column:1/-1;font-size:8px;color:#83949a}.process-card>strong{font:10px 'DM Mono';color:#8ed7ae;text-align:right}.process-meter{grid-column:1/-1;height:8px;background:#29363e;border-radius:5px;overflow:hidden}.process-meter i{display:block;background:#64cd99;border-radius:5px;max-height:100%;max-width:100%}.process-meter.thermal i{background:#eea95b}.process-meter.pump i,.process-meter.pid i{background:#78b8f0}.process-meter.tank{height:38px;width:15px;grid-row:3;grid-column:1}.process-meter.tank i{width:100%;margin-top:auto;background:#4ebad1}.process-meter.tank{display:flex;align-items:end}.process-meter.conveyor i{background:linear-gradient(90deg,#63d39a 0 30%,#414f57 30%)}.process-param-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}.process-param-grid input{height:30px;background:#202b34;border:1px solid #394851;border-radius:5px;padding:0 7px;color:#eaf0f0}@media(max-width:760px){.process-panel{max-height:160px}.process-card{flex-basis:118px}}

.brand-logo{width:72px;aspect-ratio:3/1;object-fit:contain;border-radius:3px}.header-brand-attribution{max-width:230px;color:#9daab0;font-size:8px;line-height:1.2}.brand-attribution{color:#94dcb4;font-size:11px}.about-brand{padding:8px 10px;border-left:2px solid var(--green);background:#17231f}.about-brand h3{margin:0;font-size:12px}.about-brand p{margin:5px 0 0}.welcome-brand-logo{display:block;width:min(260px,80%);aspect-ratio:3/1;object-fit:contain;margin:2px auto 8px}.statusbar #footerBrandAttribution{font-size:8px;color:#a6b5b7}.print-brand-attribution{display:none}@media(max-width:900px){.header-brand-attribution{display:none}}@media print{.print-brand-attribution{display:block!important;margin-top:14px;border-top:1px solid #555;padding-top:6px;font:10px Arial,sans-serif;color:#222}}

.process-twin-wrap{overflow:auto;border:1px solid #2e4148;border-radius:7px;background:radial-gradient(ellipse at 50% 0,#23343a,#111a20 75%);margin:0 0 8px}.process-twin-svg{display:block;max-width:none;height:140px}.process-twin-svg .twin-shell{fill:#26343a;stroke:#8aa0a2;stroke-width:2}.process-twin-svg .twin-liquid{fill:#38a9c0;opacity:.75}.process-twin-svg .twin-level{stroke:#83e0e7;stroke-width:2}.process-twin-svg .twin-pipe{fill:none;stroke:#526b69;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.process-twin-svg .twin-belt{fill:#34434a;stroke:#94a4a3;stroke-width:2}.process-twin-svg .twin-roller{fill:#819394}.process-twin-svg .twin-box{fill:#e6b65e;stroke:#ffe1a2;stroke-width:1}.process-twin-svg .twin-box.alt{fill:#79c9aa}.process-twin-svg .twin-rotor{fill:#63d39a;stroke:#d5ffdf;stroke-width:2}.process-twin-svg .twin-spokes{fill:none;stroke:#153d32;stroke-width:3;stroke-linecap:round}.process-twin-svg .twin-coil{fill:none;stroke:#eea95b;stroke-linecap:round;filter:drop-shadow(0 0 4px #eea95b99)}.process-twin-svg .twin-gauge{fill:none;stroke:#607981;stroke-width:8;stroke-linecap:round}.process-twin-svg .twin-needle{stroke:#f0ba62;stroke-width:4;stroke-linecap:round}.process-twin-svg .twin-label{font:700 10px system-ui,sans-serif;fill:#e0ebea;text-anchor:middle}.process-twin-svg .twin-value{font:8px monospace;fill:#94dcb4;text-anchor:middle}

.hmi-widget-title{cursor:grab;touch-action:none}.hmi-widget.drag-ready{outline:2px solid var(--green);opacity:.85;cursor:grabbing}

.brand{min-width:0;gap:0}.brand-product-logo{display:block;width:130px;height:34px;object-fit:contain}.company-brand{display:flex;flex-direction:column;justify-content:center;gap:1px;min-width:0}.company-wordmark{display:block;width:112px;height:25px;object-fit:contain}.company-brand #headerBrandAttribution{display:block;max-width:270px;color:#a9b8b2;font-size:8px;line-height:1.15}.footer-company-brand{display:flex;align-items:center;gap:6px}.footer-company-brand .company-wordmark{width:75px;height:20px}.footer-company-brand span{font-size:8px;color:#a6b5b7}.welcome-brand-lockup{display:flex;align-items:center;flex-direction:column;gap:8px;margin-bottom:8px}.welcome-product-logo{width:min(300px,90%);height:auto;object-fit:contain}.welcome-company-wordmark{width:min(230px,75%);height:auto;object-fit:contain}.about-brand-logos{display:flex;align-items:center;flex-direction:column;gap:6px}.about-brand-logos img:first-child{width:min(270px,90%);height:auto}.about-brand-logos img:last-child{width:min(210px,70%);height:auto}.print-brand-attribution{align-items:center;gap:8px}.print-product-logo{width:150px;height:auto}.print-brand-attribution .company-wordmark{width:120px;height:28px}@media(max-width:900px){.company-brand{display:none}.brand-product-logo{width:116px}.footer-company-brand .company-wordmark{display:none}}@media print{.print-brand-attribution{display:flex!important;margin-top:14px;border-top:1px solid #555;padding-top:6px;font:10px Arial,sans-serif;color:#222}}

.canvas-wrap.pan-enabled{cursor:grab}.canvas-wrap.is-panning{cursor:grabbing;user-select:none;touch-action:none}.canvas-wrap{overscroll-behavior:contain}

.analog-value{width:86px;padding:4px 6px;background:#10171e;border:1px solid #41515a;border-radius:4px}.analog-output{min-width:52px;color:#a8e8c2;font-variant-numeric:tabular-nums}

.minimap div{max-height:calc(100% - 18px);overflow:auto}.mini-rung{width:100%;padding:0;background:#24333c;cursor:pointer}.mini-rung:hover,.mini-rung:focus-visible{background:var(--green);outline:1px solid var(--green)}.logic-outline{position:absolute;left:12px;top:52px;z-index:5;max-width:min(260px,calc(100% - 24px));font-size:10px}.logic-outline summary{cursor:pointer;padding:7px 9px;border:1px solid #52616a;border-radius:5px;background:#18232aee;color:#d9e4e6}.logic-outline[open]{width:min(260px,calc(100% - 24px));background:#18232aee;border:1px solid #52616a;border-radius:5px}.logic-outline[open] summary{border:0;border-bottom:1px solid #52616a;border-radius:0}#logicOutline{max-height:50dvh;overflow:auto;padding:5px}.outline-node{padding:4px;color:#c7d5d8}.outline-node>span{display:block;padding:4px 3px;font-weight:700}.outline-node [role=group]{display:grid;gap:2px;margin-left:12px;border-left:1px solid #425159;padding-left:7px}.outline-node button{width:100%;text-align:left;border:0;border-radius:3px;padding:5px;background:transparent;color:#aebfc3;font-size:10px}.outline-node button:hover,.outline-node button:focus-visible{background:#263740;color:#fff;outline:1px solid var(--green)}

.io-print-report{display:none}@media print{body{display:block!important;height:auto!important;overflow:visible!important;background:#fff!important;color:#111!important}body>:not(#ioPrintReport){display:none!important}#ioPrintReport{display:block!important;position:static!important;width:100%;padding:0;color:#111;background:#fff;font:11pt Arial,sans-serif}.io-report-header{margin:0 0 18px;padding:0 0 12px;border-bottom:2px solid #222}.io-report-logos{display:flex;align-items:center;gap:18px;margin-bottom:14px}.io-report-logos img:first-child{width:180px;max-height:46px;object-fit:contain}.io-report-logos img:last-child{width:210px;max-height:44px;object-fit:contain}.io-report-header h1{margin:6px 0;font-size:20pt}.io-report-header p{margin:4px 0}.io-report-table{width:100%;border-collapse:collapse;font-size:9pt}.io-report-table th,.io-report-table td{border:1px solid #777;padding:6px 7px;text-align:left;overflow-wrap:anywhere}.io-report-table th{background:#e9efed!important;color:#111;font-weight:700;-webkit-print-color-adjust:exact;print-color-adjust:exact}.io-report-safety{margin-top:18px;padding-top:8px;border-top:1px solid #777;font-size:8pt}
}
.workspace.panels-left-hidden{grid-template-columns:minmax(0,1fr) 245px}.workspace.panels-right-hidden{grid-template-columns:218px minmax(0,1fr)}.workspace.panels-left-hidden.panels-right-hidden{grid-template-columns:minmax(0,1fr)}.workspace.panels-left-hidden .left-sidebar,.workspace.panels-right-hidden .right-sidebar{display:none}.panel-layout-choice{display:flex;align-items:center;gap:10px}.panel-layout-choice input{width:17px;height:17px;accent-color:var(--green)}
@media(max-width:1050px){.workspace:not(.panels-right-hidden){grid-template-columns:160px minmax(320px,1fr) 220px}.workspace:not(.panels-right-hidden) .right-sidebar{display:flex}.workspace.panels-left-hidden:not(.panels-right-hidden){grid-template-columns:minmax(0,1fr) 220px}.workspace.panels-right-hidden{grid-template-columns:190px minmax(0,1fr)}.workspace.panels-left-hidden.panels-right-hidden{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){.workspace .left-sidebar,.workspace .right-sidebar{display:none}}
@media(max-width:760px){.workspace{position:relative}.workspace.mobile-left-open .left-sidebar,.workspace.mobile-right-open .right-sidebar{display:flex;position:absolute;z-index:50;top:0;bottom:0;width:min(86vw,320px);box-shadow:0 8px 30px #0009}.workspace.mobile-left-open .left-sidebar{left:0}.workspace.mobile-right-open .right-sidebar{right:0}.panel-layout-button{width:100%;min-height:42px;text-align:left;margin-bottom:8px}}
.contact.edge-contact .contact-bars{outline:1px solid #718b99;border-radius:3px}.contact-bars .edge-mark{position:absolute;inset:0;display:grid;place-items:center;z-index:1;background:var(--panel,#17232b);color:#d7e4e7;font:700 9px/1 Arial,sans-serif}

.contact{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.contact.is-dragging{opacity:.38}.contact.drop-target{outline:2px solid var(--green);outline-offset:3px}.logic-branch.drop-target{background:#63d39a18;outline:1px dashed var(--green);outline-offset:4px}


.ops-settings{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ops-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:7px;margin:12px 0}.ops-summary article{display:grid;gap:5px;padding:9px;border:1px solid var(--line);border-radius:6px;background:#18232b}.ops-summary small{color:var(--muted);font-size:9px}.ops-summary b{font:600 12px 'DM Mono',monospace}.ops-table-wrap{overflow:auto;max-height:38dvh}.ops-table{width:100%;border-collapse:collapse;font-size:10px}.ops-table th,.ops-table td{padding:7px 5px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.ops-table input{width:88px;min-height:30px;padding:4px;background:#202b34;border:1px solid #394851;border-radius:4px}.ops-advisory{display:block;color:var(--amber);font-size:9px;white-space:normal}@media(max-width:600px){.ops-settings{grid-template-columns:1fr}.ops-summary{grid-template-columns:repeat(2,1fr)}}
.app-menus{height:30px;display:flex;align-items:center;gap:3px;padding:0 10px;background:#141d24;border-bottom:1px solid #27343b;overflow-x:auto}.app-menus button{flex:none;border:0;border-radius:5px;background:transparent;color:#bac5ca;padding:5px 10px;font-size:12px}.app-menus button:hover,.app-menus button:focus-visible{background:#26343b;color:#fff;outline:1px solid #55c9a4}@media(max-width:700px){.app-menus{height:28px;padding:0 6px}.app-menus button{padding:4px 8px}}@media print{.app-menus{display:none}}
body[data-theme="light"]{color-scheme:light;--bg:#f4f7f5;--panel:#fff;--panel2:#edf2f3;--line:#cbd6d8;--muted:#53656d;--text:#18262c;--green:#167452;--green2:#dcefe6;--grid:rgba(59,90,81,.10)}body[data-theme="light"] .topbar,body[data-theme="light"] .toolbar,body[data-theme="light"] .sidebar,body[data-theme="light"] .app-menus,body[data-theme="light"] .statusbar,body[data-theme="light"] .hmi-alarm-panel,body[data-theme="light"] .process-panel{background:#fff;color:var(--text);border-color:var(--line)}body[data-theme="light"] .editor-area,body[data-theme="light"] .st-pane,body[data-theme="light"] .st-pane textarea,body[data-theme="light"] .editor-pane,body[data-theme="light"] .canvas-wrap{background:#f8faf9!important;color:var(--text)}body[data-theme="light"] .icon-button,body[data-theme="light"] .subtle-button,body[data-theme="light"] .tab-add,body[data-theme="light"] .rung-tools button,body[data-theme="light"] .timer-chip,body[data-theme="light"] .fbd-block,body[data-theme="light"] .sfc-step,body[data-theme="light"] .mode-select,body[data-theme="light"] .context-menu,body[data-theme="light"] .watch-row,body[data-theme="light"] .event-row,body[data-theme="light"] .hmi-widget{background:#edf2f1;color:var(--text);border-color:var(--line)}body[data-theme="light"] .tool-group button:hover,body[data-theme="light"] .tool-group button.active,body[data-theme="light"] .context-menu button:hover,body[data-theme="light"] .context-menu button:focus-visible,body[data-theme="light"] .palette-command:hover{background:#dce8e4;color:#17392e}body[data-theme="light"] .field input,body[data-theme="light"] .field select,body[data-theme="light"] .example-tools input,body[data-theme="light"] .example-tools select,body[data-theme="light"] .palette-input,body[data-theme="light"] .tag-edit,body[data-theme="light"] .fbd-block input,body[data-theme="light"] .fbd-block select,body[data-theme="light"] .sfc-step input,body[data-theme="light"] .sfc-transition input,body[data-theme="light"] .sfc-transition select,body[data-theme="light"] .find-fields input,body[data-theme="light"] .watch-row select,body[data-theme="light"] .pane-toolbar input{background:#fff;color:var(--text);border-color:#bccbce}body[data-theme="light"] .rung,body[data-theme="light"] .example-row,body[data-theme="light"] .project-row,body[data-theme="light"] .fbd-port{background:#fff;color:var(--text);border-color:var(--line)}body[data-theme="light"] .topbar .brand,body[data-theme="light"] .topbar .project-name button,body[data-theme="light"] .company-brand{color:var(--text)}body[data-theme="light"] .context-menu .menu-separator{background:#cbd6d8}body[data-theme="light"] .modal{background:#fff;color:var(--text);border-color:var(--line)}body[data-theme="light"] .secondary{background:#e5ecea;color:#23343b}body[data-theme="light"] .rung-num,body[data-theme="light"] .pane-toolbar,body[data-theme="light"] .inspector-tabs button{color:#465961}body[data-theme="light"] .modal::backdrop{background:#18262c80}
.fbd-blocks{display:block;min-height:180px;padding:0 12px 24px;background-image:linear-gradient(rgba(120,150,140,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(120,150,140,.08) 1px,transparent 1px);background-size:24px 24px}.fbd-block{position:absolute;box-sizing:border-box;width:330px;min-height:196px;margin:0;padding:42px 35px 38px 44px;display:flex;flex-wrap:wrap;align-content:flex-start;align-items:flex-end;box-shadow:0 6px 18px #0002}.fbd-block.selected{outline:2px solid #63d39a;outline-offset:2px}.fbd-drag-handle{position:absolute;z-index:3;left:8px;top:7px;min-width:27px;min-height:27px;padding:2px 5px;border:1px solid #40534b;border-radius:5px;background:#202d32;color:#b4e8c9;cursor:grab;touch-action:none}.fbd-drag-handle:active{cursor:grabbing}.fbd-block .fbd-index{left:13px;top:39px}.fbd-block label{flex:1 1 115px;min-width:95px}.fbd-block .fbd-value{flex:1 0 100%;padding:6px 2px}.fbd-blocks.wiring .fbd-block{z-index:2}#fbdPane.pan-enabled{cursor:grab}#fbdPane.is-panning{cursor:grabbing;user-select:none}body[data-theme="light"] .fbd-blocks{background-image:linear-gradient(rgba(40,70,60,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(40,70,60,.12) 1px,transparent 1px)}body[data-theme="light"] .fbd-drag-handle{background:#fff;color:#18563e;border-color:#9bb7a9}.fbd-validation-feedback{flex:1 0 100%;padding:5px 7px;border-radius:4px;font-size:9px;line-height:1.4}.fbd-validation-feedback.is-valid{color:#80d9a2;background:#14261f}.fbd-validation-feedback.has-errors{color:#ffd28a;background:#382a18;border:1px solid #80613a}body[data-theme="light"] .fbd-validation-feedback.is-valid{color:#145c3d;background:#e3f2e9}body[data-theme="light"] .fbd-validation-feedback.has-errors{color:#684208;background:#fff3d8;border-color:#d7b56e}
body[data-theme="light"] .left-sidebar,body[data-theme="light"] .right-sidebar{background:#fff;color:var(--text);border-color:var(--line)}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.fbd-blocks.keyboard-wiring .fbd-input-port{outline:2px solid var(--green);outline-offset:2px}.fbd-logic-outline [role=treeitem],.sfc-logic-outline [role=treeitem]{display:block;width:100%;text-align:left;border:0;border-radius:3px;padding:6px;background:transparent;color:var(--text);font-size:11px}.fbd-logic-outline [role=treeitem]:hover,.fbd-logic-outline [role=treeitem]:focus-visible,.sfc-logic-outline [role=treeitem]:hover,.sfc-logic-outline [role=treeitem]:focus-visible{background:var(--green2);outline:1px solid var(--green)}
/* Virtual spacers preserve the full ladder's scroll height while distant rungs stay out of the DOM. */
#ladderCanvas > .rung-virtual-spacer { grid-column:1 / -1; width:100%; min-width:0; pointer-events:none; visibility:hidden; }
@media (min-width: 761px) { .workspace { grid-template-rows:minmax(0, 1fr); } .workspace > .editor-area, .workspace > .sidebar { min-height:0; } }
:root{--ai-user:#17352a;--ai-assistant:#1b2630}.ai-messages{display:flex;flex-direction:column;gap:10px;max-height:36vh;overflow:auto;padding:8px;border:1px solid var(--line);border-radius:10px}.ai-message{padding:10px 12px;border-radius:9px;background:var(--ai-assistant)}.ai-message.user{background:var(--ai-user);align-self:flex-end;max-width:90%}.ai-message p{margin:4px 0 0;white-space:pre-wrap}.ai-form textarea{width:100%;min-height:68px;resize:vertical;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:9px;color:var(--text)}

.resource-list{display:grid;gap:9px;max-height:38vh;overflow:auto}.resource-card{display:grid;gap:5px;padding:11px;border:1px solid var(--line);border-radius:8px;background:var(--panel2)}.resource-card code,.resource-url{overflow-wrap:anywhere;font-size:11px;color:var(--muted)}.resource-card .modal-actions{justify-content:flex-start;flex-wrap:wrap}.ai-message.user{background:var(--green2);color:var(--text)}body[data-theme="light"] .ai-message.user{background:#dcefe4;color:#183326}body[data-theme="light"] .ai-message.assistant{background:#f1f4f3;color:#223038}
.ladder-scale-block{align-self:center;max-width:320px;margin:8px 12px;padding:8px 11px;border:2px solid #7a68c7;border-radius:5px;background:#f0edff;color:#332663;font:600 12px/1.35 ui-monospace,SFMono-Regular,Consolas,monospace;box-shadow:0 2px 5px #171d2414}.io-value{font:600 12px ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--accent)}body[data-theme="dark"] .ladder-scale-block{background:#292448;color:#e3ddff;border-color:#a99aef}body[data-theme="dark"] .analog-value{max-width:92px;background:#1b242a;color:var(--text);border:1px solid var(--line);border-radius:5px}
.statusbar-main{display:flex;align-items:center;gap:11px;flex:1;min-width:0}
.corporate-footer{display:flex;align-items:center;gap:9px;flex:none;white-space:nowrap}
.corporate-footer nav{display:flex;align-items:center;gap:8px;min-width:0}
.footer-company-brand{min-width:0;max-width:260px}
.footer-company-brand #footerBrandAttribution{display:block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:900px){
  .statusbar{height:auto;min-height:38px;flex-direction:column;align-items:stretch;gap:2px;padding:3px 8px}
  .statusbar-main{width:100%;gap:8px}
  .statusbar-main>span:nth-child(2),.statusbar-main>span:nth-child(3),.statusbar-main>span:nth-child(4),.statusbar-main>#languageStatus{display:none}
  .status-spacer{flex:1 1 auto;min-width:2px}
  .footer-company-brand{max-width:48vw}
  .footer-company-brand #footerBrandAttribution{max-width:48vw}
  .corporate-footer{width:100%;justify-content:space-between;gap:6px}
  .corporate-footer nav{gap:6px;overflow:hidden}
}
@media(max-width:420px){
  #savedOnDeviceLabel{display:none}
  .footer-company-brand,.footer-company-brand #footerBrandAttribution{max-width:42vw}
  .corporate-footer nav{display:none}
}

.password-input-wrap{display:flex;align-items:center;gap:8px}.password-input-wrap input{flex:1;min-width:0}.password-visibility{flex:none;min-height:42px;padding:0 12px}

.io-allocator-capacities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.io-allocator-table-wrap{max-height:42vh;overflow:auto;border:1px solid var(--line);border-radius:6px}.io-allocator-table{width:100%;border-collapse:collapse;font-size:10px}.io-allocator-table th,.io-allocator-table td{padding:7px 6px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.io-allocator-table th{position:sticky;top:0;background:var(--panel2);z-index:1}.io-allocator-table .io-address-edit{min-width:105px}.modal-actions button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:600px){.io-allocator-capacities{grid-template-columns:1fr}}
.bot-ladder-preview{max-height:28vh;overflow:auto;padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--panel2);white-space:pre-wrap;font:11px/1.6 monospace}.modal-body .table-wrap{max-height:32vh;overflow:auto}.modal-body .table-wrap table{min-width:620px;border-collapse:collapse;font-size:11px}.modal-body .table-wrap th,.modal-body .table-wrap td{padding:6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
#botPreviewGuard{position:fixed;inset:0;z-index:10000;display:flex;justify-content:center;align-items:flex-start;background:transparent}.bot-preview-banner{display:flex;flex-wrap:wrap;align-items:center;gap:8px;width:min(940px,calc(100vw - 24px));margin:8px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);box-shadow:0 5px 28px #0009}.bot-preview-banner strong{font-size:14px}.bot-preview-banner span{flex:1 1 100%;font-size:12px;color:var(--muted)}.bot-preview-banner button{padding:8px 12px;border:1px solid var(--line);border-radius:7px;background:var(--panel2);color:var(--text)}.bot-preview-banner #botPreviewCommit{background:var(--blue);color:#fff}
.rung-label{font-size:10px;font-weight:600;color:var(--blue);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
.copilot-panel{position:fixed;right:22px;bottom:82px;z-index:6000;width:min(360px,calc(100vw - 28px));padding:14px;border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:10px;background:var(--panel);color:var(--text);box-shadow:0 8px 28px #0005}.copilot-panel[hidden]{display:none}.copilot-panel h3{margin:0 0 6px;font-size:14px}.copilot-panel p{margin:5px 0 10px;font-size:12px;line-height:1.5;color:var(--muted)}.copilot-panel .copilot-more{padding-top:8px;border-top:1px solid var(--line)}.copilot-panel .modal-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.copilot-panel button{padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:var(--panel2);color:var(--text);cursor:pointer}.copilot-panel button.copilot-accept{background:var(--blue);color:#fff}@media(max-width:600px){.copilot-panel{right:12px;bottom:74px;width:min(340px,calc(100vw - 24px))}}
.floating-bot{position:fixed;right:22px;bottom:42px;z-index:88;display:flex;align-items:center;gap:8px;padding:11px 14px;border:1px solid #3b5d50;border-radius:999px;background:#18392d;color:#a8f2c8;box-shadow:0 8px 30px #0007;font-weight:700}.floating-bot:hover,.floating-bot:focus-visible{background:#24543f;outline:2px solid var(--green)}.bot-unread-badge{display:none;width:8px;height:8px;border-radius:50%;background:#ff6464;box-shadow:0 0 0 3px #ff646433}.floating-bot.has-unread .bot-unread-badge{display:inline-block}.bot-window{position:fixed;z-index:89;display:flex;flex-direction:column;overflow:hidden;min-width:320px;min-height:400px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);border:1px solid #3b5049;border-radius:12px;background:var(--panel);color:var(--text);box-shadow:0 16px 55px #0008}.bot-window[hidden]{display:none}.bot-window-titlebar{height:48px;flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 10px 0 14px;border-bottom:1px solid var(--line);background:var(--panel2);cursor:move;touch-action:none;user-select:none}.bot-window-heading{display:grid;gap:2px;min-width:0}.bot-window-heading strong{font-size:13px}.bot-window-heading span{font-size:10px;color:var(--muted)}.bot-window-controls{display:flex;gap:5px}.bot-window-controls button{width:29px;height:28px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text);font-size:16px}.bot-window-content{min-height:0;flex:1;overflow:auto}.bot-window-content .modal-body{padding:13px}.bot-window-content .ai-messages{max-height:none;min-height:100px}.bot-window-resize{position:absolute;right:2px;bottom:2px;width:20px;height:20px;border:0;background:linear-gradient(135deg,transparent 48%,var(--muted) 50%,transparent 57%,transparent 67%,var(--muted) 69%,transparent 76%);cursor:nwse-resize;touch-action:none}.bot-window.is-minimized{min-height:48px!important}.bot-window.is-maximized{border-radius:8px}.bot-window:focus-visible{outline:2px solid var(--green)}@media(max-width:600px){.floating-bot{right:12px;bottom:30px}.bot-window{min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;border:0;border-radius:0}.bot-window-titlebar{height:56px;cursor:default}.bot-window-content .modal-body{padding:12px}.bot-window.is-minimized{max-height:56px!important}.bot-window-resize{display:none}}
.floating-bot{position:fixed;right:22px;bottom:42px;z-index:5999;display:flex;align-items:center;gap:8px;padding:11px 14px;border:1px solid #3b5d50;border-radius:999px;background:#18392d;color:#a8f2c8;box-shadow:0 8px 30px #0007;font-weight:700}.floating-bot:hover,.floating-bot:focus-visible{background:#24543f;outline:2px solid var(--green)}.bot-unread-badge{display:none;width:8px;height:8px;border-radius:50%;background:#ff6464;box-shadow:0 0 0 3px #ff646433}.floating-bot.has-unread .bot-unread-badge{display:inline-block}.bot-window{position:fixed;z-index:6001;display:flex;flex-direction:column;overflow:hidden;min-width:320px;min-height:400px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);border:1px solid #3b5049;border-radius:12px;background:var(--panel);color:var(--text);box-shadow:0 16px 55px #0008}.bot-window[hidden]{display:none}.bot-window-titlebar{height:48px;flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 10px 0 14px;border-bottom:1px solid var(--line);background:var(--panel2);cursor:move;touch-action:none;user-select:none}.bot-window-heading{display:grid;gap:2px;min-width:0}.bot-window-heading strong{font-size:13px}.bot-window-heading span{font-size:10px;color:var(--muted)}.bot-window-controls{display:flex;gap:5px}.bot-window-controls button{width:29px;height:28px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text);font-size:16px}.bot-window-content{min-height:0;flex:1;overflow:auto}.bot-window-content .modal-body{padding:13px}.bot-window-content .ai-messages{max-height:none;min-height:100px}.bot-window-resize{position:absolute;right:2px;bottom:2px;width:20px;height:20px;border:0;background:linear-gradient(135deg,transparent 48%,var(--muted) 50%,transparent 57%,transparent 67%,var(--muted) 69%,transparent 76%);cursor:nwse-resize;touch-action:none}.bot-window.is-minimized{min-height:48px!important}.bot-window.is-maximized{border-radius:8px}.bot-window:focus-visible{outline:2px solid var(--green)}@media(max-width:600px){.floating-bot{right:12px;bottom:30px}.bot-window{min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;border:0;border-radius:0}.bot-window-titlebar{height:56px;cursor:default}.bot-window-content .modal-body{padding:12px}.bot-window.is-minimized{max-height:56px!important}.bot-window-resize{display:none}}

/* Account status icon and non-overlapping top-bar controls. */
.top-actions{gap:12px;flex:0 0 auto;min-width:max-content}
.top-actions>.icon-button{flex:0 0 36px;width:36px;height:36px}
.top-actions>#languageButton{flex-basis:44px;width:44px}
.account-button{position:relative;display:grid;place-items:center;padding:0}
.account-button svg{display:block;width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.account-button .account-avatar-image{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;object-fit:cover}
.account-status-dot{position:absolute;right:1px;bottom:1px;width:9px;height:9px;border:2px solid #121a21;border-radius:50%;background:#879198}
.account-button.is-signed-in .account-status-dot{background:#46c37b}
.account-button.is-guest .account-status-dot{background:#879198}
.account-button.is-unavailable .account-status-dot{background:#d76c6c}
@media(max-width:760px){
  .topbar{gap:8px;padding:0 8px}
  .product-brand{display:none}
  .brand{min-width:0;flex:0 1 78px;width:78px;overflow:hidden}
  .brand img{max-width:100%;height:auto}
  .project-name{flex:1 1 auto;min-width:40px;margin-left:0}
  .project-name button{max-width:clamp(54px,20vw,118px)}
  .top-actions{margin-left:2px;gap:6px}
  .top-actions>.icon-button{flex-basis:30px;width:30px;height:30px}
  .top-actions>#languageButton{flex-basis:38px;width:38px}
}
@media(max-width:360px){
  .brand{flex-basis:54px;width:54px}
  .project-name button{max-width:54px}
  .top-actions{gap:6px}
  .top-actions>.icon-button{flex-basis:27px;width:27px;height:27px}
  .top-actions>#languageButton{flex-basis:34px;width:34px}
}

