:root{font-family:Arial,"Helvetica Neue",sans-serif;font-size:12px;color:#303b45;--accent:#00858d;--line:#b4bcc3;--left:255px;--right:250px;--bottom:184px}*{box-sizing:border-box}body{margin:0;background:#cbd1d5;overflow:hidden}button,input,select,textarea{font:inherit}button{color:inherit;cursor:pointer;border:1px solid transparent;background:transparent;border-radius:0;min-height:25px;padding:3px 8px}button:hover{background:#e4f0f9;border-color:#9abed7}button:active{background:#cce1ef}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid #268ab8;outline-offset:-2px}input,select,textarea{border:1px solid #aeb8c0;padding:5px 7px;background:#fff;color:#283943;border-radius:0}input:disabled,textarea:disabled{background:#eef1f3}input[type=checkbox]{accent-color:var(--accent)}input[type=number]{width:100%}[hidden]{display:none!important}#app{height:100dvh;display:grid;grid-template-rows:31px 26px 38px minmax(0,1fr) 25px;min-width:760px}.titlebar{display:flex;align-items:center;padding:0 8px;background:#ecedef;border-bottom:1px solid #c0c6cc;gap:8px}.brand-mark{display:inline-flex;align-items:center;justify-content:center;background:#007e87;color:#fff;width:22px;height:22px;font-size:19px;font-weight:700}.brand-mark span{font-size:12px;color:#b9edec;margin-top:9px}.titlebar strong{font-weight:400}.title-spacer,.toolbar-spacer{flex:1}.app-title{color:#56636e}.prototype-badge{font-size:9px;color:#677989;letter-spacing:.8px;border:1px solid #b6c4cc;background:#e9f0f3;padding:3px 7px}.titlebar>button{min-height:21px;padding:0 6px}.menubar{display:flex;align-items:stretch;gap:1px;padding-left:6px;background:#f4f4f5;border-bottom:1px solid #c5cbd0;z-index:30}.menu{position:relative}.menu>button{min-height:25px;padding:2px 10px}.menu-panel{position:absolute;top:25px;left:0;min-width:255px;background:#fafbfc;border:1px solid #a6b1bb;box-shadow:3px 5px 10px #34455833;padding:4px;display:none;z-index:40}.menu.open .menu-panel{display:block}.menu-panel button{display:flex;width:100%;text-align:left;justify-content:space-between;gap:20px;padding:7px 10px}.menu-panel kbd{font:11px Arial;color:#7a8791}.menu-separator{height:1px;background:#d2d8de;margin:4px 9px}.toolbar{display:flex;align-items:center;gap:3px;padding:3px 8px;background:linear-gradient(#f7f8f9,#e4e7eb);border-bottom:1px solid #9ba7b1;white-space:nowrap}.toolbar button{display:flex;align-items:center;gap:6px;min-height:28px}.toolbar i{height:22px;width:1px;background:#b6bfc7;margin:0 5px}.ico{font-size:18px;color:#6c7e8a;line-height:16px}.blue{color:#357faa}.gold{color:#b68c31}.green{color:#318b54}.red{color:#af5753}.safe-label{font-size:10px;letter-spacing:.4px;color:#657784;padding-right:8px;display:flex;align-items:center;gap:6px}.status-dot,.offline-dot{width:7px;height:7px;background:#7b93a3;display:inline-block;border-radius:50%}.workbench{display:grid;grid-template-columns:var(--left) 5px minmax(320px,1fr) 5px var(--right);overflow:hidden}.project-pane,.task-pane{background:#f0f2f4;min-width:0;display:flex;flex-direction:column;overflow:hidden}.pane-heading{height:27px;flex-shrink:0;display:flex;justify-content:space-between;align-items:center;padding:0 9px;color:#2c414f;font-weight:700;background:linear-gradient(#e6e9ed,#cfd5dc);border-bottom:1px solid #aeb9c3}.pane-heading>span:last-child{font-size:11px;color:#647582;font-weight:400}.pane-tabs,.task-tabs{display:flex;align-items:stretch;border-bottom:1px solid #b6c0c8;background:#e8ebee;padding:3px 6px 0;gap:1px;min-height:31px}.pane-tabs button,.task-tabs button{padding:4px 10px;font-size:11px;border-bottom:0;white-space:nowrap}.pane-tabs .active,.task-tabs .active{border:1px solid #b6c0c8;border-bottom-color:#f0f2f4;background:#f0f2f4;font-weight:700}.searchbox{display:flex;align-items:center;background:#fff;border:1px solid #bec8d0;margin:7px;gap:5px;padding:0 5px;min-height:27px}.searchbox span{font-size:20px;color:#8192a0}.searchbox input{width:100%;min-width:0;border:0;padding:4px 0;font-size:11px;outline:none}.searchbox kbd{white-space:nowrap;color:#a0acb7;font:9px Arial}.tree{overflow:auto;flex:1;padding:1px 0 16px}.tree-row{display:flex;align-items:center;width:100%;height:27px;text-align:left;padding:3px 8px;border:1px solid transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;gap:6px}.tree-row:hover{background:#e0ebf3}.tree-row.active{background:#d0e3f3;border-color:#b0c8dc}.tree-row .tree-icon{width:15px;text-align:center;color:#517b96;font-size:13px}.tree-row .tree-arrow{font-size:9px;color:#707b85;width:8px}.tree-row span:last-child{overflow:hidden;text-overflow:ellipsis}.tree-folder{font-weight:700;color:#415261}.tree-folder .tree-icon{color:#a98b46}.tree-row small{color:#7e8d98;margin-left:auto;font-size:10px}.tree-footer{border-top:1px solid #c5cdd4;padding:9px;display:flex;gap:7px;align-items:center;font-size:10px;color:#7c8d99}.tree-footer>span:last-child{margin-left:auto}.splitter{background:#d5dbe0;border-left:1px solid #aeb9c3;border-right:1px solid #e9edf0;cursor:col-resize}.splitter:hover,.bottom-splitter:hover{background:#7eb1cb}.center-pane{display:grid;grid-template-rows:27px 34px 31px minmax(150px,1fr) 29px 5px var(--bottom);min-width:0;min-height:0;overflow:hidden}.breadcrumb{display:flex;justify-content:space-between;align-items:center;background:#62788d;color:#fff;padding:0 10px;font-size:11px;white-space:nowrap;gap:8px;overflow:hidden}.breadcrumb span:first-child{overflow:hidden;text-overflow:ellipsis}.editor-title{background:#f9fafb;border-bottom:1px solid #cad1d7;display:flex;align-items:center;gap:8px;padding:0 10px}.editor-title strong{font-size:14px;font-weight:600}.document-icon{color:#5481a0;font-size:20px}#language-badge{font-size:10px;background:#e7edf2;border:1px solid #c9d4dc;color:#697d8d;padding:2px 6px;margin-left:5px}.editor-tools{display:flex;align-items:center;gap:3px;padding:2px 6px;background:#edf0f2;border-bottom:1px solid #b4bec7;white-space:nowrap;overflow:hidden}.editor-tools button{font-size:11px;min-height:25px;padding:3px 7px}.editor-tools .symbol{font:14px monospace;color:#2c526b}.editor-tools .tool-divider{height:18px;width:1px;background:#c1ccd5;margin:0 4px}.editor-body{display:flex;flex-direction:column;min-height:0;overflow:hidden;background:#fff}.declarations{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 10px;min-height:29px;background:#f3f5f7;border-bottom:1px solid #c7d1d9;font-size:10px;color:#718393;white-space:nowrap;overflow:hidden}.declarations span:first-child{font-size:11px;color:#435969}.viewport{position:relative;min-height:0;flex:1;overflow:hidden;touch-action:none;background:#fff}.viewport canvas{position:absolute;inset:0;display:block;width:100%;height:100%}#labels{pointer-events:none}#scroll-thumb{position:absolute;right:3px;top:3px;width:6px;background:#adb8c277;border-radius:3px;pointer-events:none}.html-editor{overflow:auto;height:100%;background:#fff}.document-tabs{display:flex;align-items:stretch;overflow:auto;background:#e4e8ec;padding:2px 4px 0;border-top:1px solid #b2bec8;gap:2px;scrollbar-width:none}.document-tabs button{display:flex;gap:7px;align-items:center;padding:4px 13px;background:#edf0f4;border:1px solid #b9c4ce;border-bottom:0;white-space:nowrap;font-size:11px}.document-tabs button.active{background:#fff;border-top:2px solid #2683a1;font-weight:700}.document-tabs .tab-icon{color:#5f8298}.bottom-splitter{cursor:row-resize;background:#d2dae0;border-top:1px solid #aebbc5;border-bottom:1px solid #b4c0ca}.output-pane{display:flex;flex-direction:column;min-height:0;background:#fff;overflow:hidden}.output-tabs{display:flex;align-items:center;background:#e8edf1;border-bottom:1px solid #b8c4ce;padding:0 4px;min-height:29px;white-space:nowrap}.output-tabs button{font-size:11px;border-right:1px solid #b8c4ce;padding:5px 11px}.output-tabs button.active{background:#fff;border-bottom-color:#fff;font-weight:700}.output-tabs button span{font-size:9px;background:#d2e1ec;margin-left:5px;padding:1px 4px}.output-tabs>span:last-child{font-size:10px;padding:0 7px;color:#7a8b98}.output-content{overflow:auto;flex:1;font-size:11px}.data-table{width:100%;border-collapse:collapse;font-size:11px;white-space:nowrap}.data-table th{position:sticky;top:0;text-align:left;font-weight:400;background:#e9edf1;border-right:1px solid #c4cfd8;border-bottom:1px solid #b7c4cf;height:26px;padding:4px 8px;color:#506575;z-index:1}.data-table td{height:27px;border-right:1px solid #e1e7ec;border-bottom:1px solid #e5eaf0;padding:4px 8px;max-width:420px;overflow:hidden;text-overflow:ellipsis}.data-table tbody tr:nth-child(even){background:#f7f9fb}.data-table tbody tr:hover{background:#eaf2f8}.data-table tbody tr.selected{background:#dbeaf6}.data-table .row-number{text-align:right;color:#8f9ca6;width:35px;background:#f2f4f6}.data-table .tag-name{color:#28668d}.data-table .type-cell{color:#607f96}.data-table .live-value{font:11px Consolas,monospace;color:#19855f;font-weight:700}.data-table .editable-row{cursor:pointer}.data-table button{min-height:21px;font-size:10px;padding:2px 7px;border:1px solid #b9c8d4;background:#f0f5f9}.task-content{overflow:auto;flex:1}.task-content details{border-bottom:1px solid #ccd5dd}.task-content summary{cursor:pointer;padding:8px;font-weight:700;background:#e6ebef;font-size:11px}.palette-heading{padding:8px 10px;color:#748998;font-size:10px;background:#f7f9fa;border-bottom:1px solid #d6dfe5}.palette-button{display:flex;width:100%;align-items:center;text-align:left;gap:9px;padding:7px 10px 7px 15px;min-height:32px;border:1px solid transparent}.palette-button .glyph{width:35px;text-align:center;font:15px Consolas,monospace;color:#405e75}.palette-button small{display:block;font-size:9px;color:#80909d;margin-top:2px}.palette-button span:last-child{flex:1}.task-footer{font-size:9px;padding:10px 7px;border-top:1px solid #c2cdd6;color:#758995;white-space:nowrap;overflow:hidden}.property-heading{font-weight:700;padding:10px;border-bottom:1px solid #cbd6de;background:#e5edf2}.property-description{color:#7a8b98;font-size:10px;padding:9px 10px;line-height:1.5}.property-form{padding:8px 10px;display:grid;gap:8px}.property-form label{display:grid;gap:4px;font-size:11px;color:#596e7e}.property-form input,.property-form select{width:100%;min-width:0;font-size:11px}.property-form .pair{display:grid;grid-template-columns:1fr 1fr;gap:7px}.property-form .primary,.primary{background:#117e8b;color:white;border:1px solid #006571;min-height:29px}.primary:hover{background:#0d919d;color:#fff}.property-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}.property-actions button{border:1px solid #acbecb;background:#edf3f7;font-size:10px}.muted{color:#7b8d9b}.statusbar{display:flex;align-items:center;background:#e4e9ee;border-top:1px solid #a4b3c0;font-size:10px;gap:9px;white-space:nowrap;padding-right:10px}.statusbar button{font-size:10px;height:24px;min-height:24px}.portal-switch{background:#d2dde7;border-right:1px solid #a4b3c0;padding:3px 13px}.status-separator{height:15px;background:#b8c5cf;width:1px}#status-message{overflow:hidden;text-overflow:ellipsis}#runtime-state{font-weight:700;color:#876d48}#runtime-state.running{color:#198050}#runtime-state.fault{color:#b84343}#runtime-metrics{color:#6d8191;min-width:80px}#backend{color:#617e90}.empty{padding:30px;color:#748b9d;line-height:1.8}.source-wrap{display:flex;flex-direction:column;height:100%}.source-heading{height:29px;display:flex;align-items:center;padding:0 14px;background:#f2f5f8;border-bottom:1px solid #c5d3dd;color:#708697;font:11px Consolas,monospace}.source-area{display:grid;grid-template-columns:46px 1fr;min-height:0;flex:1}.line-numbers{padding:14px 8px;text-align:right;white-space:pre;font:13px/22px Consolas,monospace;background:#f5f7f9;color:#98a7b2;border-right:1px solid #e4e9ee;overflow:hidden}#scl-source{width:100%;height:100%;resize:none;border:0;padding:14px;font:13px/22px Consolas,"Courier New",monospace;white-space:pre;tab-size:4;outline:none;background:#fff;color:#285a80;min-height:250px}.source-footer{padding:8px 13px;font-size:10px;background:#f4f7fa;border-top:1px solid #d2dce4;color:#7690a2}.portal{padding:32px;background:linear-gradient(125deg,#f8fafc,#e8eff4);min-height:100%}.portal-eyebrow{font-size:10px;letter-spacing:1.5px;color:#57849a;margin-bottom:15px}.portal h1{font-size:32px;font-weight:400;color:#34566e;margin:0 0 7px}.portal p{color:#7890a1;line-height:1.7}.portal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-top:27px}.portal-card{padding:20px;background:#fff;border:1px solid #ccd9e3;text-align:left;min-height:135px;display:flex;flex-direction:column;align-items:start;gap:10px}.portal-card b{font-size:14px;font-weight:400;color:#3a617a}.portal-card .card-icon{font-size:25px;color:#2a8c9a}.portal-card small{color:#8297a7;line-height:1.6}.portal-note{margin-top:25px;padding:15px;border-left:3px solid #91abbf;background:#e0e9f0;font-size:11px;line-height:1.7;color:#617a8e}.input-controls{display:flex;gap:8px;padding:13px;flex-wrap:wrap}.input-card{min-width:150px;border:1px solid #c3d2dd;background:#f7fafc;padding:10px 12px;display:flex;gap:15px;align-items:center}.input-card strong{display:block;font-size:11px;color:#43627a;margin-bottom:4px}.input-card small{font-size:10px;color:#8297a5}.input-card button{margin-left:auto;border:1px solid #a9bdcc;background:#e3ecf3;width:47px;font-size:10px}.input-card button.on{background:#20905f;color:#fff;border-color:#147c4f}.diagnostic-list{padding:12px 15px;display:grid;grid-template-columns:1fr 1fr;gap:9px 20px}.diagnostic-list span{color:#8798a7}.diagnostic-list b{font-weight:400;color:#35546d}.message-icon{color:#418797;padding:0 5px}.message-error{color:#b74a4a}.message-warning{color:#b48c32}.empty-hint{padding:12px 15px;font-size:11px;color:#7891a4}.instructions-list{padding:10px;display:grid;gap:3px}.instructions-list button{text-align:left;font-size:10px;border:1px solid #d0dce5;background:#f7fafc;overflow:hidden;text-overflow:ellipsis}.instructions-list button.active{background:#d9eaf5;border-color:#88afc9}dialog{width:min(640px,90vw);padding:0;border:1px solid #879fae;box-shadow:0 20px 70px #233d5466;color:#3e596d}dialog::backdrop{background:#203a5144}.modal-heading{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#e4ecf2;border-bottom:1px solid #bfd0dc}.modal-heading strong{font-size:14px;font-weight:600}#modal-body{padding:22px;line-height:1.8}#modal-body h2{font-size:25px;font-weight:400;margin-top:0;color:#26798b}#modal-body p{margin:0 0 14px}.modal-footer{padding:10px 15px;border-top:1px solid #d0dce5;text-align:right;background:#f4f7f9}.modal-footer button{min-width:80px}#toast{position:fixed;right:25px;bottom:43px;max-width:430px;padding:13px 18px;border:1px solid #92aab9;border-left:4px solid #27879a;background:#f8fbfd;box-shadow:0 4px 20px #31495733;z-index:100;line-height:1.5}#toast.error{border-left-color:#b14d4d;color:#914747}.kbd-note{font-size:10px;padding:10px;color:#8294a2;border-top:1px solid #d5dfe6}.info-banner{padding:10px 14px;background:#eef4f8;border-bottom:1px solid #c9d9e5;color:#6d879a;font-size:11px}.network-list button{width:100%;text-align:left}.network-editor{padding:15px}.network-editor input{width:100%}.network-editor textarea{width:100%;height:70px;resize:vertical}.network-editor label{display:block;margin:0 0 10px;color:#668195}.device-help{margin:16px;padding:12px;background:#eef4f8;border:1px solid #cbdce8;color:#69879d;line-height:1.7}@media(max-width:1200px){:root{--left:215px;--right:220px}.toolbar button{padding:3px 5px;font-size:11px}.safe-label{display:none}.declarations span:nth-child(2){display:none}.prototype-badge{font-size:8px}.output-tabs button{padding:5px 7px}.editor-tools button{padding:3px 5px}#backend{display:none}}@media(max-width:900px){:root{--left:185px;--right:190px;--bottom:160px}.toolbar button{gap:3px}.monitor-command{display:none!important}.app-title{display:none}.project-search kbd{display:none}.task-tabs button{padding:4px 6px}.breadcrumb{font-size:10px}.statusbar{gap:5px}.editor-title strong{font-size:12px}.editor-tools{gap:0}.editor-tools button{font-size:10px}.prototype-badge{letter-spacing:0}}

.palette-button .glyph{width:42px;flex:0 0 42px;white-space:nowrap;font-size:13px}.menubar>.menu{flex:0 0 auto}
