:root{font-family:'Segoe UI',-apple-system,BlinkMacSystemFont,Arial,sans-serif;color:#344b5e;background:#e6edf3;font-size:12px;--blue:#2085c1;--line:#c7d3de;--left:234px;--right:258px;--bottom:202px;--shadow:0 8px 28px #142e4426}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.4}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #2196cf;outline-offset:1px}button{border:0;background:none}input,select,textarea{border:1px solid #c6d2dd;border-radius:3px;background:#fff;color:#304b60;padding:6px 8px;min-width:0}input[type=checkbox]{accent-color:#258ac3;width:13px;height:13px;margin:0 5px 0 0;vertical-align:middle}input[type=range]{accent-color:#288bcb;padding:0;height:20px;border:none}input[type=color]{padding:2px;height:30px}select{padding:5px 24px 5px 7px}input:disabled{background:#edf1f4;color:#7b91a0}svg.icon{width:16px;height:16px;display:inline-block;vertical-align:middle;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}kbd{font-family:inherit;font-size:10px;color:#879ba9}#app{height:100dvh;min-height:400px;display:flex;flex-direction:column}.titlebar{height:43px;background:#20364a;color:#d7e5ef;display:flex;align-items:center;gap:12px;padding:0 15px;flex-shrink:0}.brand-mark{width:27px;height:27px;border-radius:6px;background:#268ac2;display:flex;align-items:center;justify-content:center;color:white;font-weight:700;letter-spacing:-3px;font-size:19px;padding-right:3px}.brand-mark span{font-size:15px;transform:translateY(3px)}.brand{font-size:17px;font-weight:600;letter-spacing:-.3px;display:flex;align-items:baseline;gap:10px}.brand span{font-size:8px;letter-spacing:1.5px;font-weight:400;color:#88abc5}.title-divider{height:19px;width:1px;background:#476075;margin:0 4px}#projectTitle{font-size:11px}.title-extension{font-size:11px;color:#91a9bd;margin-left:-6px}.title-spacer,.ribbon-spacer,.status-spacer{flex:1}.local-badge{font-size:9px;letter-spacing:.9px;background:#2e475b;padding:6px 9px;border-radius:4px;color:#aac8db}.local-badge i{display:inline-block;width:5px;height:5px;background:#53bfaa;border-radius:50%;margin-right:7px}.title-help{border:1px solid #617b91;border-radius:50%;width:19px;height:19px;font-size:11px;color:#b9cfdf}.menubar{height:28px;background:#f9fbfc;border-bottom:1px solid #d5dfe7;display:flex;align-items:center;padding:0 8px;flex-shrink:0}#menus{display:flex;height:100%}.menu{position:relative}.menu>button{padding:0 11px;height:100%;font-size:11px}.menu>button:hover,.menu.open>button{background:#e2eef7}.menu-popover{display:none;position:absolute;z-index:60;top:27px;left:0;background:#fff;min-width:240px;box-shadow:var(--shadow);border:1px solid var(--line);padding:5px}.menu.open .menu-popover{display:block}.menu-popover button{display:flex;width:100%;text-align:left;padding:8px 10px;gap:24px;justify-content:space-between;white-space:nowrap}.menu-popover button:hover{background:#e8f3fc}.menu-popover hr{border:0;border-top:1px solid #e2e9f0;margin:5px}.menubar-note{margin-left:auto;color:#93a5b3;font-size:10px;padding-right:10px}.ribbon{height:62px;display:flex;align-items:center;gap:10px;padding:6px 12px;background:linear-gradient(#fbfcfd,#edf2f6);border-bottom:1px solid #c2cfdb;flex-shrink:0;overflow-x:auto;overflow-y:hidden}.ribbon-group{display:flex;gap:4px;align-items:center;flex-shrink:0}.ribbon-separator{width:1px;height:34px;background:#cfdbe4;margin:0 2px;flex-shrink:0}.tool-button{min-width:48px;height:47px;border:1px solid transparent;border-radius:3px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:4px 10px;font-size:10px;white-space:nowrap}.tool-button svg{width:19px;height:19px}.tool-button:hover{background:#e2eef6;border-color:#c0d4e2}.tool-button.active{background:#d9ecfa;border-color:#94c2e0;color:#1576b2}.tool-button.primary{color:#177aaf}.tool-button.run{color:#25915f}.tool-button.stop{color:#b16727}.tool-button.small{min-width:30px;padding:4px 5px}.cpu-badge{display:grid;grid-template-columns:9px 1fr;column-gap:8px;min-width:168px;padding:5px 14px;border-left:1px solid #cad7e1}.cpu-badge .led{width:7px;height:7px;border-radius:50%;background:#d58d35;margin-top:3px;grid-row:1/3}.cpu-badge b{font-size:10px;letter-spacing:.5px}.cpu-badge small{font-size:9px;color:#8297a7;margin-top:5px}.cpu-badge.running .led{background:#22a575;box-shadow:0 0 0 3px #20aa7217}.cpu-badge.fault .led{background:#d14d55}.workspace{display:grid;grid-template-columns:var(--left) 4px minmax(240px,1fr) 4px var(--right);flex:1;min-height:0}.project-pane{display:flex;flex-direction:column;background:#f4f7fa;min-width:0;overflow:hidden}.pane-caption{height:31px;padding:0 11px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d2dce5;background:#e8eff5;font-weight:600;font-size:11px;flex-shrink:0}.pane-caption button{font-size:13px;color:#6c8aa0}.tree-search{display:flex;align-items:center;margin:11px 10px 8px;gap:5px;border:1px solid #cdd9e2;border-radius:3px;padding:0 7px;background:white}.tree-search span{font-size:19px;color:#8aa1b1}.tree-search input{border:0;width:100%;padding:6px 0;font-size:10px;outline:none}.tree-search kbd{white-space:nowrap;font-size:9px}.project-tree{padding:5px 0;overflow-y:auto;flex:1;min-height:0}.tree-row{width:100%;text-align:left;padding:6px 8px;display:flex;align-items:center;gap:6px;font-size:11px;min-height:29px;white-space:nowrap}.tree-row:hover{background:#e6eff6}.tree-row.selected{background:#d6e9f8;box-shadow:inset 3px 0 #2b8ac1;color:#166d9f}.tree-row .chevron{color:#7c93a6;font-size:10px;width:10px;flex-shrink:0}.tree-row .tree-label{overflow:hidden;text-overflow:ellipsis}.tree-row .tag-count{font-size:9px;margin-left:auto;color:#8d9eab;padding-right:3px}.tree-row.level-1{padding-left:19px}.tree-row.level-2{padding-left:31px}.tree-row.level-3{padding-left:46px}.tree-row.level-4{padding-left:60px;font-size:10px}.tree-icon{width:17px;height:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#528db3}.tree-icon.lang{font-size:7px;font-weight:700;border:1px solid #8fb3cc;border-radius:2px;background:#ecf6fd;width:19px;height:17px}.tree-icon.ob{border-color:#6aacce;color:#267ca7}.tree-icon.fc{border-color:#a397c5;color:#8073a6}.tree-section{font-size:9px;font-weight:600;color:#8ca0b0;letter-spacing:.9px;padding:19px 16px 5px}.tree-add{color:#548fb5}.project-footer{padding:13px 13px 12px;border-top:1px solid #d8e2ea;background:#f9fbfc;flex-shrink:0}.device-mini{display:flex;gap:10px;align-items:center;margin-bottom:14px}.cpu-mini{position:relative;background:linear-gradient(90deg,#8399a8 24%,#b7c6d0 24%);border:1px solid #8ba4b5;border-radius:2px;width:32px;height:38px;padding:5px;display:flex;flex-direction:column;gap:4px}.cpu-mini i{width:3px;height:3px;background:#6dc398}.cpu-mini span{position:absolute;right:3px;bottom:4px;font-size:8px;font-weight:bold;color:#4f6d82}.device-mini b{font-size:10px;display:block}.device-mini span{font-size:9px;color:#8b9eac;display:block;margin-top:5px}.device-mini strong{font-weight:400}.project-meta{display:flex;justify-content:space-between;font-size:9px;color:#8aa0b0;margin-top:8px}.project-meta b{font-weight:400;color:#617f96}.split-handle{background:#d4dfe8;cursor:col-resize;z-index:5}.split-handle:hover,.bottom-resizer:hover{background:#5facdd}.work-pane{min-width:0;min-height:0;display:flex;flex-direction:column;background:#fff}.document-tabs{height:33px;background:#e7eef5;display:flex;align-items:stretch;flex-shrink:0;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid #cbd8e3}.document-tab{padding:0 14px;display:flex;align-items:center;gap:7px;font-size:10px;white-space:nowrap;border-right:1px solid #ccd9e3;position:relative;color:#6b859a}.document-tab.active{background:#fff;color:#28658e;box-shadow:inset 0 3px #2d8ec7;font-weight:600}.document-tab .dot{width:4px;height:4px;border-radius:50%;background:#bc9345}.document-tab svg{width:12px;height:12px}.document-heading{height:69px;display:flex;align-items:center;justify-content:space-between;padding:10px 22px;flex-shrink:0;border-bottom:1px solid #e0e7ed}.breadcrumb{font-size:9px;color:#8ca0af;margin-bottom:6px}.breadcrumb span{padding:0 6px;color:#a8b8c4}h1{font-size:19px;font-weight:500;margin:0;letter-spacing:-.2px;color:#2d4c64}h1 span{font-weight:400;font-size:15px;color:#7793a7;margin-left:5px}.document-meta{display:flex;align-items:center;gap:12px;font-size:9px;color:#8299aa;white-space:nowrap}.language-pill{font-weight:600;border:1px solid #b9d3e4;border-radius:3px;padding:4px 8px;color:#4389b4;background:#f0f7fc;letter-spacing:.5px}.monitor-pill{font-size:9px;color:#298c65;background:#ebf7f0;border:1px solid #cae8d8;border-radius:3px;padding:4px 7px}.editor-toolbar{display:flex;align-items:center;gap:4px;min-height:34px;height:34px;border-bottom:1px solid #d8e2e9;background:#f9fbfd;padding:3px 12px;flex-shrink:0;overflow-x:auto;white-space:nowrap}.editor-toolbar button{display:flex;align-items:center;gap:6px;font-size:10px;padding:5px 8px;border:1px solid transparent;border-radius:3px}.editor-toolbar button:hover,.editor-toolbar button.active{background:#e0eff9;border-color:#a9cde4;color:#147db8}.editor-toolbar .tool-separator{width:1px;background:#d1dee6;height:17px;margin:0 6px;flex-shrink:0}.editor-toolbar .toolbar-note{margin-left:auto;color:#96a7b4;font-size:9px}.editor-toolbar select{font-size:10px;height:26px;padding:3px 25px 3px 7px}.editor-area{position:relative;flex:1;min-height:100px;overflow:hidden;background:#f7fafc}.graph-stage{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:default}.vector-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.graph-hud{position:absolute;bottom:12px;right:13px;z-index:4;display:flex;align-items:center;background:#ffffffeb;border:1px solid #ccdce7;border-radius:4px;box-shadow:0 2px 9px #34536610;height:27px;padding:0 4px;color:#63849b}.graph-hud button{height:25px;padding:0 8px;min-width:24px;font-size:12px}.graph-hud span{font-size:9px;min-width:36px;text-align:center}.graph-hint{position:absolute;bottom:16px;left:16px;z-index:3;pointer-events:none;font-size:9px;color:#8da2b2;background:#f7fafbd9;padding:3px 6px;border-radius:2px}.bottom-resizer{height:4px;flex-shrink:0;background:#cddae4;cursor:row-resize;z-index:6}.bottom-panel{height:var(--bottom);min-height:70px;max-height:65vh;display:flex;flex-direction:column;flex-shrink:0}.bottom-tabs{height:30px;background:#eaf0f5;display:flex;align-items:stretch;border-bottom:1px solid #c8d7e2;flex-shrink:0}.bottom-tabs button{font-size:10px;padding:0 15px;display:flex;align-items:center;gap:6px;border-right:1px solid #d4dfe7}.bottom-tabs button.active{background:#fff;box-shadow:inset 0 2px #348fc2;color:#227dad;font-weight:600}.bottom-tabs .bottom-note{margin-left:auto;align-self:center;font-size:9px;color:#8b9fae;padding-right:12px;white-space:nowrap}.bottom-content{flex:1;overflow:auto;position:relative;background:white}.bottom-content .trace-stage{position:absolute;inset:0}.task-pane{display:flex;flex-direction:column;background:#f8fafc;min-height:0;min-width:0}.task-tabs{display:flex;height:33px;flex-shrink:0;background:#e8eff5;border-bottom:1px solid #cbd8e3}.task-tabs button{width:50%;font-size:10px}.task-tabs button.active{background:#f8fafc;box-shadow:inset 0 3px #3792c6;color:#227aa9;font-weight:600}.task-content{flex:1;overflow:auto;padding:13px 13px 16px;min-height:100px}.task-search{position:relative;margin-bottom:16px}.task-search input{width:100%;font-size:10px;background:white;padding:7px 9px}.instruction-heading{font-size:10px;font-weight:600;display:flex;align-items:center;gap:7px;margin:15px 0 8px;color:#637e92}.instruction-heading:first-of-type{margin-top:4px}.instruction-heading span{font-size:8px;color:#91a7b5}.instruction-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}.instruction{border:1px solid #d0dee8;border-radius:3px;background:#fff;min-height:48px;text-align:left;padding:7px 8px;display:flex;flex-direction:column;gap:5px}.instruction:hover{background:#e8f4fc;border-color:#7fb5d5;color:#197bad}.instruction .symbol{font-family:Consolas,'SFMono-Regular',monospace;font-size:14px;color:#5484a7;font-weight:600}.instruction small{font-size:9px;color:#8a9dab}.instruction.wide{grid-column:span 2;flex-direction:row;align-items:center;gap:12px;min-height:35px}.instruction-note{font-size:10px;line-height:1.65;color:#8ca1b1;margin-top:14px}.io-panel{height:278px;border-top:1px solid #c9d9e3;flex-shrink:0;display:flex;flex-direction:column;background:#fff}.io-panel .pane-caption{font-size:9px;letter-spacing:.8px}.plant-switch{font-size:9px;font-weight:400;color:#68859b;display:flex;align-items:center;letter-spacing:0}.io-content{padding:8px 12px;overflow:auto;flex:1}.io-row{display:flex;align-items:center;gap:7px;padding:5px 0;font-size:10px}.io-row .address{font-size:8px;color:#8a9dad;min-width:35px}.io-row .io-label{flex:1;overflow:hidden;text-overflow:ellipsis}.io-led{width:6px;height:6px;flex-shrink:0;border-radius:50%;background:#b9c6d0}.io-led.on{background:#27a46f;box-shadow:0 0 0 3px #27a46f13}.io-led.forced{background:#e0942b}.toggle{width:29px;height:16px;border-radius:10px;background:#d8e2ea;position:relative;flex-shrink:0;padding:0;border:1px solid #bdccd8}.toggle:after{content:'';position:absolute;width:10px;height:10px;top:2px;left:2px;border-radius:50%;background:white;box-shadow:0 1px 2px #3b587044}.toggle.on{background:#339ed0;border-color:#339ed0}.toggle.on:after{left:14px}.io-analog{padding:7px 0 4px;border-top:1px solid #e5ecf2;margin-top:4px}.io-analog>div{display:flex;justify-content:space-between;font-size:10px}.io-analog input{width:100%;margin-top:7px}.io-analog b{font-size:9px;font-weight:500;color:#2388bc}.io-caption{font-size:8px;color:#9aabb8;padding:7px 10px;border-top:1px solid #e7edf2;white-space:nowrap}.statusbar{height:25px;display:flex;align-items:center;gap:13px;padding:0 12px;background:#edf3f7;border-top:1px solid #c6d5e0;flex-shrink:0;font-size:9px;color:#718d9f;white-space:nowrap;overflow:hidden}.statusbar b{font-size:8px;font-weight:500;color:#889eae;letter-spacing:.4px}.statusbar #mobileProject{display:none}.status-separator{width:1px;height:11px;background:#c7d7e3}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#b8945e;margin-right:6px}.status-dot.running{background:#25a477}.status-dot.fault{background:#ce5967}table{border-collapse:collapse;width:100%;font-size:10px}th{background:#eff4f8;color:#728ba0;font-size:9px;font-weight:500;text-align:left;padding:7px 10px;border-right:1px solid #dce6ee;border-bottom:1px solid #cedce6;white-space:nowrap;position:sticky;top:0;z-index:2}td{padding:5px 10px;border-right:1px solid #e7edf2;border-bottom:1px solid #e5edf3;height:28px;white-space:nowrap}tr:nth-child(even) td{background:#fbfcfd}tr:hover td{background:#f0f7fc}.row-number{width:31px;color:#9aabb7;background:#f5f8fa;text-align:right}.type-cell{color:#818caf;font-size:9px}.address-cell{font-family:Consolas,'SFMono-Regular',monospace;color:#8a9dab;font-size:9px}.live-value{font-family:Consolas,'SFMono-Regular',monospace;color:#327a9f;font-size:10px}.live-value.true{color:#168760;font-weight:600}.live-value.forced{color:#b98023;font-weight:600}.table-wrap{position:absolute;inset:0;overflow:auto;background:white}.table-input{width:100%;min-width:60px;font-size:10px;padding:4px 5px;height:25px;border-color:transparent;background:transparent}.table-input:hover,.table-input:focus{border-color:#b8cddd;background:white}.table-input.comment{min-width:220px}.table-input.name{min-width:130px}.value-input{width:74px;padding:3px 5px;height:22px;font-family:Consolas,monospace;font-size:10px}.tiny-button{border:1px solid #cbdce8;background:#f7fafc;border-radius:3px;font-size:9px;padding:3px 7px;min-width:39px}.tiny-button:hover{border-color:#78b4d7;background:#e8f4fc;color:#187fb4}.tiny-button.force-active{color:#ac701c;background:#fff3db;border-color:#e6bd73}.empty-state{padding:25px;color:#8fa1af;line-height:1.8;font-size:11px}.diagnostic-row{display:grid;grid-template-columns:18px 65px minmax(140px,1fr) 105px;gap:10px;padding:8px 12px;border-bottom:1px solid #e6edf3;align-items:start;font-size:10px}.diagnostic-row .severity{font-weight:600}.diagnostic-row.error .severity,.diagnostic-row.error .diagnostic-icon{color:#c44d5d}.diagnostic-row.warning .severity,.diagnostic-row.warning .diagnostic-icon{color:#bf8b35}.diagnostic-row.info .diagnostic-icon{color:#279069}.diagnostic-row button{text-align:left;color:#2e80ad;font-size:9px}.property-heading{font-size:12px;font-weight:600;margin:0 0 4px;display:flex;gap:7px;align-items:center}.property-kind{color:#8ca2b2;font-size:9px;margin-bottom:16px}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:11px}.field>label{font-size:9px;color:#7a93a6}.field input,.field select,.field textarea{width:100%;font-size:10px}.field textarea{resize:vertical;min-height:52px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.field-inline{display:flex;align-items:center;gap:5px;font-size:10px;margin:9px 0 13px}.property-section{margin-top:15px;border-top:1px solid #d7e2ea;padding-top:11px}.property-section h3{font-size:9px;text-transform:uppercase;letter-spacing:.6px;color:#859dac;margin:0 0 9px}.chip-row{display:flex;gap:4px;align-items:center;margin-bottom:5px}.contact-chip{background:#ecf3f8;border:1px solid #cadae6;border-radius:3px;padding:5px 7px;font-size:9px;flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-chip.selected{background:#dcecfa;color:#247fab}.chip-remove{color:#98aab7;font-size:13px;padding:3px 5px}.branch-box{border:1px dashed #c4d6e3;border-radius:3px;padding:7px;margin:6px 0}.branch-header{display:flex;justify-content:space-between;font-size:9px;color:#889eaf;margin-bottom:5px}.subtle-button{color:#458bb6;font-size:10px;padding:5px 0;display:flex;align-items:center;gap:5px}.danger-button{color:#b9606b;font-size:10px;border:1px solid #e1cbd0;border-radius:3px;padding:6px 9px;margin-top:10px}.button-row{display:flex;gap:5px;flex-wrap:wrap}.button-row>button{border:1px solid #cbdbe6;padding:5px 8px;font-size:9px;border-radius:3px;background:#fff}.property-help{font-size:9px;color:#8da2b1;line-height:1.7;margin-top:10px}.code-view{height:100%;display:flex;flex-direction:column;background:#fff}.code-header{height:28px;background:#f4f8fb;border-bottom:1px solid #e2ebf1;display:flex;align-items:center;gap:14px;padding:0 16px;font-size:9px;color:#829cac;flex-shrink:0}.code-scroll{position:relative;flex:1;min-height:0;overflow:hidden}.line-numbers{position:absolute;top:0;bottom:0;left:0;width:48px;padding:17px 11px 20px 0;background:#f8fafc;border-right:1px solid #e3ebf2;text-align:right;white-space:pre;font:12px/22px Consolas,'SFMono-Regular',monospace;color:#a5b6c2;overflow:hidden;user-select:none}.code-pre,.code-input{position:absolute;top:0;left:48px;right:0;bottom:0;margin:0;padding:17px 22px;font:12px/22px Consolas,'SFMono-Regular',Menlo,monospace;tab-size:4;white-space:pre;overflow:auto;border:0;border-radius:0;background:transparent;text-align:left;letter-spacing:0;resize:none}.code-pre{pointer-events:none;color:#38576b;scrollbar-width:none}.code-input{color:transparent;caret-color:#1a6da0;-webkit-text-fill-color:transparent;outline:none!important;min-width:0;width:calc(100% - 48px)}.code-input::selection{background:#78bcec50;color:transparent}.st-keyword{color:#1d7cae;font-weight:600}.st-number{color:#aa7140}.st-comment{color:#829f8d;font-style:italic}.st-time{color:#af5e9c}.st-function{color:#885ab0}.code-footer{display:flex;justify-content:space-between;height:26px;align-items:center;padding:0 15px;border-top:1px solid #e3ecf3;font-size:9px;color:#8ba1b1;background:#fafcfd}.trace-stage{position:absolute;inset:0}.hmi-viewport{position:absolute;inset:0;overflow:auto;background:#dbe5ed;display:block;padding:22px}.hmi-screen{width:900px;height:520px;position:relative;background:#172a3c;box-shadow:0 9px 28px #19334826;transform-origin:top left;border-radius:5px;overflow:hidden}.hmi-screen.design:before{content:'';position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(#5e789029 1px,transparent 1px);background-size:10px 10px;z-index:1}.hmi-widget{position:absolute;user-select:none;touch-action:none;color:#dbeaf4}.hmi-widget.design{cursor:move}.hmi-widget.selected{outline:1px solid #77bced;outline-offset:3px;z-index:10}.hmi-widget .resize-handle{position:absolute;width:8px;height:8px;right:-7px;bottom:-7px;background:#c7e7fc;border:1px solid #368cc1;cursor:nwse-resize;z-index:4}.hmi-label{display:flex;align-items:center;font-size:16px;letter-spacing:1px}.hmi-button button{width:100%;height:100%;border:1px solid #ffffff19;border-radius:5px;font-size:11px;font-weight:600;letter-spacing:1.1px;color:#e8f4fb;box-shadow:inset 0 1px #ffffff0e}.hmi-button button:active{filter:brightness(1.25);transform:translateY(1px)}.hmi-widget.design>*{pointer-events:none}.hmi-panel,.hmi-lamp,.hmi-value,.hmi-gauge{background:#20384c;border:1px solid #325067;border-radius:6px;padding:16px}.hmi-lamp{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px}.hmi-lamp .lamp-bulb{width:16px;height:16px;border-radius:50%;background:#52697a;border:4px solid #20384c;box-shadow:0 0 0 1px #617f9480}.hmi-lamp .lamp-bulb.on{background:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 15px color-mix(in srgb,var(--accent) 45%,transparent)}.hmi-lamp .widget-label{font-size:8px;letter-spacing:1px;color:#a5bfd1}.hmi-value .widget-label,.hmi-gauge .widget-label{font-size:9px;letter-spacing:1.1px;color:#8cabc1}.hmi-value .big-value{font-family:'Segoe UI',sans-serif;font-size:33px;font-weight:300;margin-top:10px;color:var(--accent);line-height:1}.hmi-value .unit{font-size:10px;color:#6f94af;margin-left:8px}.hmi-tank{padding:0 25px 27px}.tank-body{position:relative;height:calc(100% - 28px);border:2px solid #54839f;border-radius:13px 13px 24px 24px;background:#213a4d;overflow:hidden}.tank-fill{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(0deg,color-mix(in srgb,var(--accent) 45%,#173149),color-mix(in srgb,var(--accent) 80%,#173149));border-top:2px solid var(--accent);transition:height .15s linear}.tank-ticks{position:absolute;inset:16px 0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 22px,#8abed65c 22px,#8abed65c 23px);width:10px;left:12px}.tank-value{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:30px;font-weight:300;color:#e3f7fc;text-shadow:0 1px 6px #102a39}.tank-value small{font-size:10px;color:#acd0e0;margin-top:6px}.tank-title{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:9px;letter-spacing:1.4px;color:#8fb2c8}.tank-pipe{position:absolute;right:0;top:40%;width:26px;height:9px;background:#3b647f;border:1px solid #6595b3}.hmi-gauge .gauge-face{position:relative;width:156px;height:80px;overflow:hidden;margin:17px auto 0}.gauge-track{position:absolute;top:0;left:0;width:156px;height:156px;border-radius:50%;border:12px solid #31516a}.gauge-progress{position:absolute;top:0;left:0;width:156px;height:156px;border-radius:50%;background:conic-gradient(from 270deg,var(--accent) 0deg,var(--accent) var(--angle),transparent var(--angle));mask:radial-gradient(transparent 65px,#000 66px);-webkit-mask:radial-gradient(transparent 65px,#000 66px)}.gauge-number{position:absolute;bottom:1px;left:0;right:0;text-align:center;font-size:28px;font-weight:300;color:#d8ebf8}.gauge-unit{font-size:10px;color:#7096b0;text-align:center;margin-top:9px}.hmi-slider{padding:4px 0}.hmi-slider>div{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.6px;color:#91b3cc}.hmi-slider output{color:#d7ebf8;font-size:11px}.hmi-slider input{width:100%;margin-top:13px;accent-color:var(--accent);height:16px;background:transparent}.hmi-runtime-note{position:absolute;bottom:4px;right:10px;font-size:7px;color:#7193ab;letter-spacing:1px;pointer-events:none}.toast-area{position:fixed;right:20px;bottom:40px;z-index:200;display:flex;flex-direction:column;gap:8px;max-width:400px}.toast{padding:12px 16px;background:#233d52;color:#dfedf7;border:1px solid #496a84;border-radius:5px;box-shadow:var(--shadow);font-size:11px;line-height:1.5;animation:toast-in .2s ease}.toast.error{border-left:4px solid #d36a78}.toast.success{border-left:4px solid #4bbc95}@keyframes toast-in{from{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}dialog{border:1px solid #a9c0d1;border-radius:7px;padding:0;background:#f9fbfd;color:#3b556a;box-shadow:0 24px 80px #122e4860;width:min(660px,92vw);max-height:88vh}dialog::backdrop{background:#1c344d60;backdrop-filter:blur(2px)}.dialog-title{padding:18px 22px;background:#eaf2f8;border-bottom:1px solid #cadce9;display:flex;align-items:center;justify-content:space-between;font-size:15px;font-weight:500}.dialog-title button{font-size:20px;color:#8ca4b5}.dialog-body{padding:22px;overflow:auto;max-height:63vh;line-height:1.7;font-size:11px}.dialog-body h3{font-size:12px;color:#397b9f;margin:20px 0 8px}.dialog-body h3:first-child{margin-top:0}.dialog-body p{margin:8px 0 13px}.dialog-body code{background:#eaf1f6;padding:1px 4px;border-radius:2px;font-size:10px}.dialog-body pre{padding:12px;background:#eaf1f6;border-radius:4px;overflow:auto;font:11px/1.7 Consolas,monospace}.dialog-footer{padding:12px 22px;border-top:1px solid #d8e3ec;display:flex;gap:9px;justify-content:flex-end;background:#f1f6fa}.dialog-footer button{padding:7px 16px;border:1px solid #bed2e1;border-radius:4px;background:#fff;font-size:11px}.dialog-footer button.primary-button{background:#2387be;border-color:#2083ba;color:#fff}.dialog-error{color:#bc4c5c;font-size:10px;padding:0 22px 10px;min-height:0}.callout{padding:11px 13px;background:#eef6fa;border-left:3px solid #4b9bcb;margin:15px 0;color:#597e96}.help-keys{display:grid;grid-template-columns:1fr 1fr;gap:8px}.help-keys span{background:#f0f5f9;padding:7px 9px;border-radius:3px}.help-keys kbd{float:right;color:#367eab}.warning-banner{padding:8px 12px;background:#fff4db;border-bottom:1px solid #ead49b;font-size:10px;color:#99742f}.trace-config{display:flex;gap:7px;flex-wrap:wrap;padding:10px}.trace-chip{border:1px solid #cadce8;border-radius:4px;padding:5px 8px;font-size:10px;background:#f4f8fb}.trace-chip button{margin-left:8px;color:#98a7b2}.dashboard-card{padding:18px;border:1px solid #cedeea;background:#fff;border-radius:5px;margin:15px}.dashboard-card h2{font-size:14px;font-weight:500;margin:0 0 15px}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat-tile{background:#f4f8fb;padding:15px;border:1px solid #dde7ee;border-radius:4px}.stat-tile span{font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:#87a0b3;display:block}.stat-tile strong{font-size:22px;font-weight:400;display:block;color:#2e7da9;margin-top:10px}.online-dashboard{position:absolute;inset:0;overflow:auto;background:#eef4f8;padding:8px}.program-json{font:10px/1.6 Consolas,monospace;white-space:pre-wrap;word-break:break-word;padding:15px;color:#4b6d84}.badge-count{background:#d4e4ef;font-size:8px;border-radius:3px;padding:1px 4px;margin-left:3px}.unbound-tag{color:#d68d41}.red{color:#c64f61!important}.green{color:#238963!important}@media(max-width:1200px){:root{--left:195px;--right:228px}.title-extension,.brand span,.menubar-note{display:none}.ribbon{gap:4px;padding-left:5px;padding-right:5px}.tool-button{padding-left:7px;padding-right:7px;min-width:42px}.cpu-badge{min-width:144px;padding:5px 8px}.document-heading{padding:10px 15px}.document-meta{gap:6px}.statusbar{gap:8px}.project-footer{padding:10px}.tree-row.level-3{padding-left:35px}.tree-row.level-4{padding-left:45px}}@media(max-width:950px){:root{--left:177px;--right:0px}.task-pane,.right-handle{display:none}.workspace{grid-template-columns:var(--left) 4px minmax(200px,1fr)}.cpu-badge{display:none}.document-meta>span:not(.language-pill){display:none}.titlebar{height:39px}.local-badge{font-size:8px}.statusbar b{display:none}.bottom-tabs .bottom-note{display:none}.statusbar #rendererStatus{max-width:150px;overflow:hidden;text-overflow:ellipsis}}@media(max-width:620px){.project-pane,.left-handle{display:none}.workspace{grid-template-columns:minmax(200px,1fr)}.workspace.show-project{grid-template-columns:190px minmax(200px,1fr)}.workspace.show-project .project-pane{display:flex}.titlebar{gap:8px;padding:0 10px}.brand{font-size:15px}.title-divider{margin:0}.local-badge{display:none}.ribbon{height:57px}.ribbon .tool-button{height:43px;font-size:9px;min-width:40px}.document-heading{height:61px}.document-title{font-size:17px}.document-tabs{height:31px}.document-tab{padding:0 10px}.bottom-tabs button{padding:0 10px}.statusbar{font-size:8px;padding:0 7px;gap:6px}.statusbar #mobileProject{display:block}.statusbar #runtimeStats{max-width:132px;overflow:hidden}.statusbar #compileStatus{display:none}.graph-hint{display:none}.editor-toolbar .toolbar-note{display:none}.bottom-panel{height:174px}#rendererStatus{display:none}.editor-toolbar button{font-size:9px}.titlebar #projectTitle{font-size:10px}.hmi-viewport{padding:10px}.toast-area{right:10px;left:10px;max-width:none}.dashboard-grid{grid-template-columns:1fr}.help-keys{grid-template-columns:1fr}}
