@font-face{font-family:Noto Sans Thai Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/noto-sans-thai-thai-wght-normal.woff2) format("woff2-variations");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Noto Sans Thai Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/noto-sans-thai-latin-ext-wght-normal.woff2) format("woff2-variations");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Noto Sans Thai Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/noto-sans-thai-latin-wght-normal.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--bg:#f4f7fb;--ink:#1c3047;--muted:#8492a5;--line:#e4ebf3;--blue:#327ced;--green:#16876d;--red:#d25964}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Noto Sans Thai Variable,Tahoma,Arial,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer;transition:background .16s,transform .16s;border:0;color:inherit}button:disabled{opacity:.42;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #8dc3fc;outline-offset:2px}button:active:not(:disabled){transform:translateY(1px)}h1,h2,h3,p{margin:0}h1{font-size:29px;letter-spacing:-.7px}h1,h2{font-weight:650}h2{font-size:17px}h3{font-size:15px}p{line-height:1.7;color:#7b8a9c}small{font-size:11px}input,select,textarea{border:1px solid #dce5ef;background:#fff;border-radius:9px;padding:10px 12px;color:var(--ink);min-width:0;width:100%}input[type=checkbox]{width:16px;height:16px;accent-color:var(--blue)}input[readonly]{background:#f3f6fa;color:#8d9bab}label{display:block;color:#66798e;font-size:12px;font-weight:550}label input,label select{display:block;margin-top:7px}summary{cursor:pointer;color:#667b94;padding:12px 0}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}.topbar{height:86px;padding:0 4%;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line)}.brand,.topbar{display:flex;align-items:center}.brand{gap:12px;background:none;font-size:24px;letter-spacing:-1px;font-weight:750;text-align:left}.brand-icon{display:grid;place-items:center;background:#eaf2ff;color:var(--blue);width:43px;height:43px;border-radius:13px}.brand-light{font-weight:400;color:#6891bb}.brand small{display:block;font-size:8px;letter-spacing:2.2px;margin-top:4px;color:#8b9bac}.header-right,.row{display:flex;align-items:center;gap:10px}.header-right{gap:22px}.network{display:flex;gap:7px;align-items:center;color:#9a8a62;font-size:11px}.dot,.network i{width:7px;height:7px;border-radius:100%;background:#b5bfca;display:inline-block;flex-shrink:0}.network.online{color:var(--green)}.green,.network.online i{background:#20a888}.version{font-size:10px;color:#8494a8;background:#f3f6fa;border-radius:6px;padding:6px 9px}.icon-button{display:grid;place-items:center;background:transparent;border-radius:8px;padding:7px;color:#8092a8}.icon-button:hover{background:#edf3fb}.demo-banner{padding:9px 5%;background:#fff1d5;color:#997024;display:flex;align-items:center;justify-content:center;gap:8px;font-size:11px}.warning{background:#ffe9e9;padding:12px;color:#a53e47}.model-page{max-width:1360px;margin:auto;padding:62px 5%}.eyebrow{font-size:9px;font-weight:700;letter-spacing:1.8px;color:#8d9db0}.model-page h1{font-size:43px;margin-top:14px;letter-spacing:-1.3px}.model-page h1 span{color:#4489ed}.lead{margin-top:14px;font-size:14px}.model-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:21px;margin-top:38px}.model-card{text-align:left;border:1px solid #e1e8f1;border-radius:17px;background:white;padding:20px 20px 0;overflow:hidden;box-shadow:0 4px 8px #243d5d03}.model-card:hover{border-color:#86b4f2;box-shadow:0 12px 32px #2d6eaf12;transform:translateY(-4px)}.model-top{display:flex;justify-content:space-between;align-items:center}.pill{background:#f0f5fc;color:#7290b2;border-radius:5px;padding:5px 8px;font-size:8px;letter-spacing:1px;font-weight:650}.model-number{font-size:11px;color:#b6c3d3}.cabinet-illustration{width:142px;height:188px;margin:24px auto 26px;filter:drop-shadow(8px 14px 9px #254f7d13);transform:perspective(800px) rotateY(-9deg)}.cabinet-top{height:13px;background:#d6e3f1;border-radius:7px 7px 0 0;display:flex;justify-content:center;gap:20px;align-items:center}.cabinet-top i{width:22px;height:2px;background:#a8bfd8}.cabinet-front{display:flex;background:linear-gradient(100deg,#ebf2f9,#dbe6f2);padding:9px 8px;gap:7px;height:166px;border-radius:0 0 5px 5px;border:1px solid #bdcfe2;border-right:6px solid #c3d4e6}.mini-slots{display:grid;gap:3px;flex:1 1;grid-template-rows:repeat(5,1fr);padding:3px;background:#e0e9f3}.mini-slots i{background:linear-gradient(#f7faff,#eaf1f8);border:1px solid #c2d2e2;position:relative}.mini-slots i:after{content:"";position:absolute;bottom:4px;left:30%;width:40%;height:2px;background:#a4bcd7}.mini-service{width:26px;padding-top:21px}.mini-screen{height:29px;background:#496b8b;border:3px solid #adc3d8;border-radius:2px}.mini-qr{height:6px;width:7px;background:#8aa4bd;margin:8px auto 18px}.mini-door{height:19px;margin-bottom:7px;background:#b8cde0;border:2px solid #cdddeb;border-radius:2px}.cabinet-feet{display:flex;justify-content:space-between;padding:0 13px}.cabinet-feet i{height:6px;width:13px;background:#9eafbf;border-radius:0 0 3px 3px}.sterile .mini-slots{grid-template-rows:repeat(6,1fr)}.model-copy h2{font-size:19px;margin-bottom:8px}.model-copy p{font-size:11px}.model-copy p span{padding:0 4px}.model-tools{display:flex;gap:13px;margin:17px 0 23px;color:#8596aa}.model-tools span{display:flex;align-items:center;gap:5px;font-size:10px}.model-footer{border-top:1px solid #eaf0f7;margin:0 -20px;padding:16px 20px;display:flex;justify-content:space-between;font-size:11px;color:#6587ad}.start-note{display:flex;align-items:center;gap:15px;margin-top:30px;padding:19px 22px;border:1px dashed #d9e4ef;border-radius:12px;color:#8ea4ba}.start-note b{font-size:12px;color:#627d98}.start-note p{font-size:11px}.start-note>svg:last-child{margin-left:auto}.workspace-shell{display:flex;min-height:calc(100vh - 86px)}.sidebar{width:218px;flex-shrink:0;background:#fff;border-right:1px solid var(--line);padding:25px 17px;display:flex;flex-direction:column}.back{background:none;display:flex;gap:8px;align-items:center;color:#91a0b3;font-size:11px;padding:5px 6px}.current-model{margin:28px 9px 35px}.current-model h2{margin-top:10px;font-size:19px}.current-model p{font-size:11px;margin-top:6px}.nav-caption{font-size:8px;letter-spacing:1.7px;color:#a5b1c1;padding:0 12px;margin-bottom:14px}nav button{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:none;padding:13px;color:#7e8fa5;font-size:12px;border-radius:9px;margin-bottom:6px}nav button.active{background:#edf4ff;color:#3179e1;font-weight:600}nav button.active svg:last-child{margin-left:auto}.sidebar-bottom{margin-top:auto;padding:40px 10px 0}.mode-chip{display:flex;gap:6px;align-items:center;font-size:11px;color:#5c7d98}.mode-chip.sim{color:#b18a45}.sidebar-bottom p{font-size:10px;margin-top:15px}.work-main{padding:30px;flex:1 1;max-width:1800px}.work-heading{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:23px}.work-heading h1{margin-top:8px;font-size:26px}.outline,.primary{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:8px;padding:10px 14px;font-size:11px;font-weight:550;white-space:nowrap}.outline{border:1px solid #dce6f0;background:#fff;color:#6a819a}.outline:hover{background:#f2f7fd}.primary{background:#347ee9;color:white;border:1px solid #347ee9;box-shadow:0 3px 6px #2f78e41a}.primary:hover{background:#246bce}.connection-strip{display:flex;align-items:center;gap:0;background:#edf2f8;border:1px solid #e3eaf2;border-radius:10px;padding:10px 13px;margin-bottom:24px;flex-wrap:wrap}.connection-strip>button{display:flex;align-items:center;gap:7px;background:none;font-size:10px;padding:5px 15px;border-right:1px solid #d9e3ee}.connection-strip>button:first-child{padding-left:0}.connection-strip b{font-size:10px;font-weight:550;color:#6c829b}.connection-strip button>span:last-child{color:#98a7b9;font-size:9px}.simulation-toggle{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:10px;white-space:nowrap}.simulation-toggle input{margin:0}.test-layout{display:grid;grid-template-columns:minmax(0,1fr) 315px;gap:21px;align-items:start}.panel{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden;box-shadow:0 2px 5px #183e6502}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px;border-bottom:1px solid #edf1f6}.panel-heading p{font-size:11px;margin-top:5px}.panel-heading>svg{color:#97adc5}.panel-heading .eyebrow{margin-bottom:9px}.grid-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:15px 21px;flex-wrap:wrap}.grid-toolbar>span{font-size:9px;color:#91a0b2}.segmented{display:inline-flex;background:#f0f4f9;padding:3px;border-radius:8px;gap:2px}.segmented button{font-size:10px;padding:7px 11px;background:transparent;color:#8093a9;border-radius:6px}.segmented .chosen{background:white;color:#347ae2;box-shadow:0 1px 4px #24466b15}.cabinet-map{padding:16px 20px 25px;overflow-x:auto;background:linear-gradient(#fff,#fafcff)}.adm-row{display:flex;align-items:center;margin:0 0 12px;min-width:max-content;gap:9px}.floor-label{width:26px;text-align:center;flex-shrink:0}.floor-label small{font-size:8px;color:#a2b0c0;display:block}.floor-label b{font-size:17px;color:#7791af}.slot-row{display:grid;gap:3px;flex:1 1}.slot{height:53px;min-width:28px;padding:6px 1px;display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;background:#f4f7fc;color:#7f97b1;border:1px solid #dce7f3;border-radius:5px;font-size:9px}.slot.group-start:not(:first-child){margin-left:5px}.slot:hover{border-color:#82b0ee;background:#edf5ff}.locker-cell.selected,.slot.selected{outline:2px solid #4794f5;outline-offset:1px;background:#e7f1ff;color:#2f78d7}.locker-cell.running,.slot.running{background:#3985eb;color:white;border-color:#3985eb;box-shadow:0 0 0 3px #d5e8ff;animation:glow 1.5s infinite}.locker-cell.waiting,.slot.waiting{background:#eff3fe;border-color:#b7c8ee;color:#758ec4}.locker-cell.success,.slot.success{background:#edf8f3;color:#258970;border-color:#c3e6d8}.locker-cell.error,.slot.error{background:#fff0f0;color:#c85d65;border-color:#edc2c6}.slot small{font-size:7px;background:#dce5fa;border-radius:3px;padding:1px 3px}.legend{display:flex;gap:15px;justify-content:center;padding:8px 10px 20px;font-size:9px;color:#93a1b3}.legend span{display:flex;gap:5px;align-items:center}.legend i{width:7px;height:7px;border-radius:2px}.legend .waiting{background:#bdcbee}.legend .running{background:#3985eb}.legend .success{background:#65b59a}.legend .error{background:#d88188}.selection-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 22px;background:#f8fbff;border-top:1px solid #e8eff7}.selection-bar b{display:block;font-size:12px;margin:6px 0}.selection-bar small{color:#95a4b6;font-size:9px}.text-button{color:#8a9caf;background:none;font-size:10px;padding:7px}.inline-note{display:flex;gap:9px;align-items:center;background:#f5f8fd;padding:13px 18px;font-size:10px;color:#8b9bb0;line-height:1.7}.inline-note svg{flex-shrink:0}.inline-note button{margin-left:auto}.queue-panel{position:sticky;top:20px}.count{font-size:10px;border-radius:5px;padding:2px 6px;color:#6995ce;background:#eaf2fe;margin-left:5px}.queue-stats{display:flex;padding:20px 12px}.queue-stats div{flex:1 1;text-align:center;border-right:1px solid #edf1f6}.queue-stats div:last-child{border:0}.queue-stats b{display:block;font-size:23px;font-weight:550}.queue-stats span{font-size:9px;color:#9aa9ba;display:block;margin-top:6px}.text-green{color:#319d7f}.danger-text,.text-red{color:#c8626c}.queue-actions{padding:0 15px 15px;display:flex;justify-content:space-between;border-bottom:1px solid #edf1f6}.queue-actions .outline{font-size:10px;padding:7px 10px}.queue-list{max-height:510px;overflow:auto}.empty{padding:50px 20px;text-align:center;color:#b1bfce}.empty>svg{margin-bottom:16px}.empty h3{font-size:12px;color:#8399b1;margin-bottom:9px}.empty p{font-size:10px;color:#9aabbe}.queue-item{display:flex;gap:11px;align-items:flex-start;padding:17px 15px;border-bottom:1px solid #edf2f7}.queue-item.running{background:#f0f6ff}.queue-index{width:27px;height:27px;flex-shrink:0;display:grid;place-items:center;background:#eff3f9;border-radius:7px;font-size:10px;color:#8da0b5}.queue-item.running .queue-index{background:#dceaff;color:#3981e7}.queue-item.success .queue-index{background:#e8f6ef;color:#3b9f80}.queue-item.error .queue-index{background:#fff0f0;color:#ce6972}.queue-item>div{flex:1 1;min-width:0}.queue-item b{font-size:10px;line-height:1.7;display:block}.queue-item span:not(.queue-index){display:block;font-size:9px;color:#93a2b5;margin-top:5px}.queue-item small{display:block;font-size:9px;line-height:1.7;color:#a2afbf;margin-top:4px}.queue-footer{padding:14px;font-size:8px;color:#9aaabd;background:#fafcff;display:flex;justify-content:space-between;gap:8px}.queue-footer button{background:none;font-size:8px;color:#7295bd}.queue-warning{background:#fff4e3;font-size:10px;padding:11px;color:#ad8246;margin:0 14px 14px;border-radius:6px}.locker-sides{display:grid;grid-template-columns:1fr 1fr;gap:17px;max-width:560px;margin:auto}.side-label{text-align:center;font-size:9px;color:#8b9db2;margin:0 0 12px}.locker-side{display:grid;gap:4px;padding:7px;background:#e7eef7;border:1px solid #d9e3ee;border-radius:7px;grid-auto-rows:15px}.locker-cell{border:1px solid #d8e4f0;border-radius:3px;background:#f9fcff;display:flex;align-items:center;justify-content:space-between;padding:9px;color:#7a92ad;position:relative;min-height:0}.locker-cell b{font-size:9px;font-weight:500}.handle{height:13px;width:3px;border-radius:2px;background:#9db5cd}.locker-cell.unmapped{background:#f1f4f8;color:#a9b6c5}.locker-cell small{font-size:7px;position:absolute;bottom:2px;left:6px;color:#a5b1c0}.locker-map{padding:25px}.form-content{padding:24px;display:flex;flex-direction:column;gap:20px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-content>.primary{align-self:flex-start}.row.end{justify-content:flex-end}.qr-value{padding:45px 30px;display:flex;flex-direction:column;align-items:center;gap:17px;color:#7ca5d3}.qr-value strong{font-size:20px;color:#617c9c;text-align:center;overflow-wrap:anywhere;max-width:100%}.qr-panel{margin-bottom:20px}.qr-hid-input{display:grid;gap:7px;margin:0 24px 18px;color:var(--ink);font-size:12px;font-weight:600}.qr-hid-input input{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);outline-color:var(--blue)}.qr-hid-input small{color:var(--muted);font-weight:400}.debug-toolbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}.serial-preview{min-width:0;border:1px solid var(--line);border-radius:12px;padding:14px}.template-picker{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:10px}.command-workspace{display:grid;grid-template-columns:minmax(230px,.8fr) minmax(0,1.7fr);gap:18px;align-items:start}.model-command-list{min-width:0;display:grid;gap:14px;padding:14px;border:1px solid var(--line);border-radius:12px;max-height:75vh;overflow:auto}.model-command-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.model-command-list-heading h3{font-size:15px;margin:0}.model-command-list-heading small{white-space:nowrap;color:var(--muted)}.model-command-group h4{margin:0 0 8px;color:var(--muted);font-size:12px}.model-command-group>button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:58px;margin:6px 0;padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--panel,#fff);text-align:left}.model-command-group>button.selected{border-color:var(--blue);box-shadow:inset 3px 0 var(--blue)}.model-command-group button>span{min-width:0}.model-command-group button small{display:block;margin-top:5px;color:var(--muted);font-size:11px;overflow-wrap:anywhere}.model-command-group button>svg{flex-shrink:0;color:var(--blue)}.command-editor{display:grid;gap:16px;min-width:0}.command-editor-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px;border:1px solid var(--blue);border-radius:10px;overflow-wrap:anywhere}.command-editor-heading h3{margin:6px 0}.command-editor-heading small{color:var(--blue)}.modal.command-create-modal{padding:0;border:1px solid var(--line);background:var(--panel,#fff);color:var(--ink);width:min(820px,94vw);max-width:820px;margin:auto}.command-create-modal::backdrop{background:#102a4680}.command-create-modal .row.end{position:sticky;bottom:0;background:var(--panel,#fff);padding:12px 0}@media (max-width:850px){.command-workspace{grid-template-columns:minmax(0,1fr)}.model-command-list{max-height:360px}.command-editor-heading{flex-wrap:wrap}}.template-picker-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px}.template-picker-summary button{min-height:40px}.template-picker .footnote{margin:0}.vending-frame-editor{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:12px}.vending-frame-layout{display:flex;flex-wrap:wrap;gap:6px}.vending-frame-layout>div{padding:8px 10px;background:var(--bg);border:1px solid var(--line);border-radius:7px;min-width:65px}.vending-frame-layout code,.vending-frame-layout small{display:block}.vending-frame-layout small{color:var(--muted);margin-bottom:5px}.command-advanced{padding:14px;border:1px solid var(--line);border-radius:10px}.command-advanced[open]>summary{margin-bottom:16px}.command-advanced[open]{display:grid;gap:14px}.command-assignment{display:grid;gap:12px}.accepted-codes-editor{min-width:0;margin:0;padding:12px;border:1px solid var(--line);border-radius:10px}.accepted-codes-editor legend{padding:0 6px;font-size:12px}.accepted-codes-editor .row>input{min-width:0;flex:1 1}.accepted-code-list{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.accepted-code-list>span{display:inline-flex;align-items:center;gap:10px;padding:4px 6px 4px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.accepted-code-list button{display:grid;place-items:center;min-width:36px;min-height:36px;border-radius:6px;background:transparent}.response-settings-preview{display:grid;gap:10px}.response-settings-preview h4{margin:0}.response-example{display:grid;gap:6px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.response-example>code{white-space:pre-wrap;overflow-wrap:anywhere}.response-example small{color:var(--muted)}.serial-preview p{margin:8px 0;overflow-wrap:anywhere}.serial-preview pre{max-height:200px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;padding:12px;font:12px/1.6 monospace}.serial-preview pre,.terminal{background:#182b40;color:#bacbde}.terminal{border-radius:12px;overflow:hidden;border:1px solid #223c58}.terminal-title{display:flex;justify-content:space-between;padding:17px 20px;background:#20344a;font-size:9px;letter-spacing:1px}.terminal-title span{display:flex;align-items:center;gap:7px}.terminal-title i{width:6px;height:6px;background:#5cc7ac;border-radius:50%}.terminal-title small{font-size:8px;color:#829bb6}.terminal-body{height:420px;overflow:auto;padding:12px 20px}.terminal-empty{padding:80px 0;text-align:center;font-size:11px;color:#7690ac}.log-line{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid #284058;align-items:flex-start;font:10px/1.8 monospace}.log-line time{color:#67829e;white-space:nowrap}.direction{font-weight:700;color:#b6c7db;min-width:25px}.direction.rx{color:#74d4b7}.direction.tx{color:#81b6f7}.direction.err{color:#ee999f}.log-channel{color:#597693;min-width:33px}.log-line code{overflow-wrap:anywhere;white-space:pre-wrap;color:#c0d0e3}.footnote{font-size:10px;color:#95a4b5;line-height:1.9;margin-top:12px}.error-item{padding:0 22px;border-bottom:1px solid var(--line)}.error-item summary{display:flex;gap:10px;color:#c46a72;align-items:center;padding:18px 0}.error-item b{font-size:12px}.error-item small{display:block;margin-top:6px;color:#92a3b7}.error-item pre{background:#f8fafd;padding:15px;border-radius:7px;color:#7589a1}.login-panel{max-width:510px;margin:35px auto;padding:35px;text-align:center}.login-icon{display:grid;place-items:center;margin:0 auto 20px;background:#eff5ff;width:62px;height:62px;border-radius:18px;color:#4d8ce2}.login-panel p{font-size:11px;margin-top:12px}.login-panel form{text-align:left;display:flex;flex-direction:column;gap:20px;margin-top:25px}.settings-status,.settings-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:20px;flex-wrap:wrap}.settings-status b{font-size:12px}.settings-status p{font-size:10px}.settings-editor h3{margin-top:7px}.json-editor textarea{background:#f8fafd;font:11px/1.9 monospace;resize:vertical;tab-size:2;border-color:#e0e8f1}.json-editor small{display:block;margin-top:8px}.confirm-check{display:flex;align-items:center;gap:10px;background:#eef7f3;padding:15px;border-radius:8px;color:#509179}.confirm-check input{margin:0}.publish-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:18px;background:white;border:1px solid var(--line);padding:18px 22px;border-radius:12px;position:sticky;bottom:10px;box-shadow:0 4px 20px #2146690a}.publish-bar label{max-width:240px}.cell-editor{background:#f8fbff;padding:18px;border-radius:10px}.preview-box{background:#20364f;color:#c8dff7;padding:15px;border-radius:8px}.modal-backdrop{position:fixed;inset:0;z-index:50;background:#162c4660;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:25px}.modal{background:white;border-radius:16px;max-width:620px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 20px 90px #0d274a33}.toast{position:fixed;bottom:27px;left:50%;transform:translateX(-50%);z-index:100;background:#243e5b;color:#eef6ff;padding:15px 18px;display:flex;gap:12px;align-items:center;max-width:min(90vw,750px);font-size:12px;line-height:1.7;border-radius:11px;box-shadow:0 5px 30px #20385733}.toast button{background:none;color:#a2bad3}.toast>svg{flex-shrink:0}.toast.error{max-width:min(94vw,680px);padding:18px 20px;border:2px solid #d93645;background:#fff0f1;color:#781d27;box-shadow:0 10px 36px #871d2d44;font-size:14px}.toast.error>svg{color:#c52636}.toast.success{border:1px solid #1b8f6a;background:#e9f8f1;color:#155b45}.toast-message{display:grid;gap:3px;min-width:0}.toast-message b{font-size:15px}.toast-message span{overflow-wrap:anywhere}[data-theme=dark] .toast.error{border-color:#ff737e;background:#431e24;color:#ffe3e5}[data-theme=dark] .toast.error>svg{color:#ff8992}[data-theme=dark] .toast.success{border-color:#4ac49b;background:#17382f;color:#d6fff0}.loading{height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;color:#5687bc}.loading p{max-width:650px}.loading button{padding:10px 20px;border-radius:8px}.spin{animation:spin 1.1s linear infinite}.mono{font-family:monospace}@keyframes spin{to{transform:rotate(1turn)}}@keyframes glow{50%{box-shadow:0 0 0 4px #d6e8fd}}@media (min-width:1700px){.slot-row{gap:5px}.slot{min-width:31px;height:65px}.work-main{padding:35px 40px}}@media (max-width:1250px){.sidebar{width:185px;padding:23px 12px}.work-main{padding:23px 20px}.test-layout{grid-template-columns:minmax(0,1fr) 280px}.panel-heading{padding:18px}.selection-bar{flex-wrap:wrap}.connection-strip>button{padding:5px 8px}.connection-strip button>span:last-child{display:none}.model-grid{gap:13px}.model-card{padding:16px 15px 0}.model-footer{margin:0 -15px;padding:15px}.model-copy h2{font-size:16px}.model-tools{gap:8px}}@media (max-width:1020px){.test-layout{grid-template-columns:1fr}.queue-panel{position:static}.queue-list{max-height:350px}.slot-row{grid-template-columns:inherit}.model-grid{grid-template-columns:repeat(2,1fr)}.model-page{max-width:800px}.sidebar{width:175px}.header-right{gap:10px}.model-page h1{font-size:34px}}@media (max-width:700px){.topbar{height:72px;padding:0 18px}.brand{font-size:21px}.network{display:none}.version{font-size:8px}.workspace-shell{display:block}.sidebar{width:auto;padding:12px 16px;border-bottom:1px solid var(--line)}.current-model,.nav-caption,.sidebar-bottom{display:none}.sidebar nav{display:flex;overflow:auto;gap:4px;margin-top:12px}.sidebar nav button{width:auto;white-space:nowrap;font-size:10px;padding:9px;gap:6px}.sidebar nav button svg:last-child:not(:first-child){display:none}.work-main{padding:22px 14px}.work-heading h1{font-size:22px}.work-heading>.outline{padding:9px;font-size:9px}.connection-strip{padding:8px}.connection-strip b{font-size:9px}.form-grid{grid-template-columns:1fr 1fr}.publish-bar{flex-wrap:wrap;position:static}.model-page{padding:38px 18px}.model-page h1{font-size:30px}.model-grid{gap:12px}.model-tools{gap:7px}.model-tools span{font-size:8px}.model-copy h2{font-size:15px}.model-copy p{font-size:9px}.cabinet-illustration{width:115px;height:166px}.cabinet-front{height:144px}.model-number{display:none}.model-card{padding:14px 12px 0}.model-footer{font-size:9px}.lead{font-size:12px}.start-note{padding:15px}.start-note p{font-size:9px}.model-top .pill{font-size:7px}.modal-backdrop{padding:12px}.terminal-body{padding:8px 12px}.log-line{gap:8px;font-size:9px}.log-channel{display:none}.debug-toolbar .row{gap:5px}.debug-toolbar .outline{font-size:9px;padding:8px}.selection-bar .row{margin-left:auto}}nav button{font-size:13px}.slot{font-size:11px;height:58px}.queue-item b{font-size:12px}.grid-toolbar>span,.legend,.queue-item small,.queue-item span:not(.queue-index),.queue-stats span{font-size:11px}.selection-bar b{font-size:14px}.locker-cell b,.selection-bar small{font-size:11px}.model-copy p,.model-footer,.outline,.panel-heading p,.primary{font-size:12px}.led-colors{display:flex;gap:8px;flex-wrap:wrap}.led-swatch{border:1px solid #e0e8f3;width:31px;height:31px;border-radius:8px}.led-rows{display:flex;gap:7px;flex-wrap:wrap}.led-rows button{display:flex;flex-direction:column;gap:4px;align-items:center}.led-rows small{font-size:9px}.led-color-input{height:43px;padding:3px}.cell-editor .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.command-palette{display:flex;flex-direction:column;gap:20px;padding-bottom:20px;border-bottom:1px solid #e9eff6}.command-category h3{font-size:11px;color:#8296ad;margin-bottom:10px;font-weight:500}.command-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.command-choice{background:#fafcff;border:1px solid #e0e9f4;border-radius:10px;padding:13px 12px;text-align:left;display:flex;flex-direction:column;gap:7px;min-height:73px}.command-choice span{font-size:12px;font-weight:550;line-height:1.5}.command-choice small{font-size:9px;color:#99aabe}.command-choice:hover{border-color:#a9c8f0;background:#f3f8ff}.command-choice.active{border-color:#5b9bf0;background:#eaf3ff;box-shadow:0 0 0 1px #5b9bf0;color:#2f77db}.command-choice.active small{color:#75a1d5}.raw-command-form{display:flex;flex-direction:column;gap:14px}@media (max-width:1100px){.command-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}.command-group-tabs{display:flex;gap:5px;border-bottom:1px solid #e6edf6;padding-bottom:13px}.command-group-tabs button{font-size:11px;background:#f3f6fb;border-radius:7px;padding:9px 11px;color:#7b8fa8}.command-group-tabs button.active{background:#e5f0ff;color:#327ce6;font-weight:600}.command-category{display:none}.command-category.category-active{display:block}.command-palette{gap:0;padding-bottom:15px}.command-category h3{margin-bottom:12px}:root{--panel:#fff;--soft:#f5f8fd;--terminal:#fbfdff;--terminal-head:#f0f5fc;--terminal-ink:#435e7a;--terminal-line:#e3ebf5}.theme-toggle{display:flex;align-items:center;gap:7px;background:#edf3fb;border:1px solid #dfe8f3;color:#6d88aa;border-radius:9px;padding:9px 12px;font-size:11px}.live-monitor-section{margin-top:24px}.rich-terminal{background:var(--terminal);border:1px solid var(--terminal-line);color:var(--terminal-ink)}.rich-terminal .terminal-title{background:var(--terminal-head);padding:14px 18px;color:#7292b5;align-items:center;gap:12px;letter-spacing:1px}.rich-terminal .terminal-title>span{gap:9px}.rich-terminal .terminal-title>span>small{font-size:8px;letter-spacing:.4px}.terminal-options{display:flex;align-items:center;gap:5px}.terminal-options button{background:transparent;color:#8ca4bd;font:9px monospace;padding:5px 8px;border-radius:5px}.terminal-options button.active{background:#deebfc;color:#387dd6}.terminal-options>small{margin-left:8px;white-space:nowrap}.rich-terminal .terminal-body{padding:0;height:440px}.monitor-entry{padding:16px 19px;border-bottom:1px solid var(--terminal-line);border-left:3px solid transparent}.monitor-entry.write{border-left-color:#629ef3;background:#478dff04}.monitor-entry.response{border-left-color:#4aaf9b}.monitor-entry.error{border-left-color:#dc7682;background:#f06b7d07}.monitor-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font:10px/1.5 monospace;color:#91a6bc}.monitor-meta time{letter-spacing:.2px}.payload-kind{font-size:9px;font-weight:700;padding:3px 6px;border-radius:4px;letter-spacing:.6px}.payload-kind.write{background:#e4efff;color:#4186e1}.payload-kind.res{background:#e3f5ee;color:#298e75}.monitor-channel{font-size:9px;text-transform:uppercase;color:#a3b3c5}.sim-badge{font-size:8px;color:#b09968;border:1px solid #e8dfcb;padding:1px 4px;border-radius:3px}.response-time{color:#8a78c1;font-size:10px;margin-left:auto}.result-badge{font:8px/1.5 monospace;letter-spacing:.5px;padding:2px 5px;border-radius:4px;background:#edf2f8;color:#90a2b7}.result-badge.success{color:#2b9679;background:#e7f6ee}.result-badge.error{color:#ce6471;background:#fff0f2}.result-badge.accepted,.result-badge.unknown{color:#ae873b;background:#fff5dd}.result-badge.event{color:#9683be;background:#f1ecfa}.copy-payload{color:#829bb6;background:transparent;border-radius:6px;padding:5px;display:grid;place-items:center;margin-left:auto}.response-time~.copy-payload{margin-left:0}.copy-payload:hover{background:#e4eefb;color:#3279d6}.monitor-command{font-size:11px;font-weight:550;color:#6f8eaf;margin:8px 0}.byte-stream{display:flex;flex-wrap:wrap;gap:3px;margin-top:10px;font:11px/1.8 monospace;letter-spacing:.6px}.payload-byte{padding:1px 4px;border-radius:3px;color:#8b9eb5;background:#eff3f8}.payload-byte.header{color:#6483ab}.payload-byte.address{color:#9daebf}.payload-byte.command{color:#6a7fc2;background:#eaf0ff}.payload-byte.length{color:#9c9ab5}.payload-byte.data{color:#227e9d;background:#e2f2f9}.payload-byte.status{color:#268c6e;background:#dff2e9;box-shadow:inset 0 -2px #83cbb2}.payload-byte.error{color:#c64c61;background:#ffe6ec;box-shadow:inset 0 -2px #e997a5}.payload-byte.checksum{color:#a398b9;background:#f0edf5}.monitor-message{font-size:11px;line-height:1.9;color:#859cb6;margin-top:8px;overflow-wrap:anywhere}.monitor-text{font:11px/1.9 monospace;background:#eaf0f650;border-radius:6px;padding:10px;color:#5b7c9e;white-space:pre-wrap}.decode-toggle{display:flex;align-items:center;gap:5px;background:none;font-size:9px;color:#97abc1;padding:8px 0 0}.decoded-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px}.decoded-fields>div{padding:9px 11px;border:1px solid var(--terminal-line);border-radius:6px;background:#fff5;display:grid;grid-template-columns:auto 1fr;gap:4px 9px}.decoded-fields span{font:8px monospace;color:#a2b0c3}.decoded-fields b{font-size:10px;font-weight:500;color:#839ab4}.decoded-fields strong{font-size:11px;grid-column:2;font-weight:550;color:#4c859f}.decoded-fields .error strong{color:#d06b79}.decoded-fields .success strong{color:#3b9a7d}.decoded-fields small{grid-column:1/-1;font-size:9px;line-height:1.8;color:#a7b3c4}.monitor-legend{display:flex;align-items:center;gap:15px;padding:11px 18px;background:var(--terminal-head);font:8px monospace;color:#8fa6bf;flex-wrap:wrap}.monitor-legend span{display:flex;align-items:center;gap:5px}.monitor-legend i{width:6px;height:6px;border-radius:2px}.legend-write{background:#629ef3}.legend-res{background:#4aaf9b}.legend-data{background:#6db0c9}.legend-error{background:#d97789}.monitor-legend small{margin-left:auto;font-size:9px;letter-spacing:0}.manual-composer{padding:20px;background:var(--panel);border-radius:0 0 12px 12px;border:1px solid var(--line);border-top:0}.rich-terminal>.manual-composer{border:0;border-top:1px solid var(--terminal-line);border-radius:0;color:var(--ink)}.reuse-payload{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid var(--terminal-line);border-radius:6px;background:transparent;color:var(--terminal-ink);font-size:11px}.composer-heading{display:flex;gap:8px;align-items:center;margin-bottom:13px;color:#7b95b3}.composer-heading b{font-size:11px;font-weight:550}.composer-heading>span{font-size:9px;margin-left:auto;color:#a1b0c3}.manual-composer textarea{font-size:12px;line-height:1.8;background:var(--soft)}.composer-actions{display:flex;justify-content:space-between;gap:12px;margin-top:12px}.composer-actions select{max-width:260px;font-size:11px}.db-reload-note{display:flex;align-items:center;gap:15px;padding:15px;margin-bottom:20px;border:1px dashed var(--line);border-radius:10px}.db-reload-note>span{font-size:11px;color:#94a6bb}.door-state{bottom:2px!important;left:6px!important}.door-state.open{color:#c9984c!important}.door-state.closed{color:#3da98c!important}html[data-theme=dark]{color-scheme:dark;--bg:#111b29;--ink:#d5e1f0;--muted:#8295b1;--line:#293a50;--panel:#192638;--soft:#142133;--terminal:#111d2b;--terminal-head:#1b2c40;--terminal-ink:#b5cae2;--terminal-line:#2a3b50}[data-theme=dark] body{background:var(--bg);color:var(--ink)}[data-theme=dark] .modal,[data-theme=dark] .model-card,[data-theme=dark] .panel,[data-theme=dark] .publish-bar,[data-theme=dark] .sidebar,[data-theme=dark] .topbar{background:var(--panel);border-color:var(--line)}[data-theme=dark] .brand{color:#dae7f6}[data-theme=dark] .brand-icon,[data-theme=dark] .login-icon{background:#243c5d;color:#80b7ff}[data-theme=dark] .count,[data-theme=dark] .pill,[data-theme=dark] .version{background:#24364e;color:#8eafd6}[data-theme=dark] p{color:#90a3bc}[data-theme=dark] .outline,[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:#152235;color:#c4d6ed;border-color:#344a65}[data-theme=dark] input[readonly]{background:#1a2b40;color:#7d94b1}[data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder{color:#667e9d}[data-theme=dark] label{color:#9aafcb}[data-theme=dark] .outline:hover{background:#253b57}[data-theme=dark] .theme-toggle{background:#263b56;border-color:#3a506c;color:#a5c5ee}[data-theme=dark] .demo-banner{background:#3a2f1b;color:#c8aa6c}[data-theme=dark] nav button.active{background:#233e60;color:#8fc2ff}[data-theme=dark] nav button{color:#94aac6}[data-theme=dark] .connection-strip{background:#172638;border-color:#2a3e57}[data-theme=dark] .connection-strip b{color:#adc1db}[data-theme=dark] .connection-strip>button{border-color:#31455f}[data-theme=dark] .panel-heading,[data-theme=dark] .queue-actions,[data-theme=dark] .queue-item{border-color:#2b3d55}[data-theme=dark] .command-group-tabs button,[data-theme=dark] .segmented{background:#142236;color:#8ca8cc}[data-theme=dark] .command-group-tabs button.active,[data-theme=dark] .segmented .chosen{background:#29486e;color:#95c4ff}[data-theme=dark] .command-group-tabs,[data-theme=dark] .command-palette{border-color:#304359}[data-theme=dark] .command-choice{background:#172438;border-color:#30455f;color:#c2d3e9}[data-theme=dark] .command-choice.active{background:#234369;border-color:#6499dc;color:#c4e0ff}[data-theme=dark] .command-choice:hover{background:#223851}[data-theme=dark] .cabinet-map{background:linear-gradient(#192638,#172437)}[data-theme=dark] .locker-cell,[data-theme=dark] .slot{background:#1a2c43;border-color:#36506e;color:#9eb6d4}[data-theme=dark] .locker-side{background:#111d2d;border-color:#2d4561}[data-theme=dark] .locker-cell.selected,[data-theme=dark] .slot.selected{background:#264e7d;color:#b9d9ff}[data-theme=dark] .locker-cell.waiting,[data-theme=dark] .slot.waiting{background:#2b3557;border-color:#4d5e8b;color:#b0c2f0}[data-theme=dark] .locker-cell.running,[data-theme=dark] .slot.running{background:#3978c7;color:white;border-color:#6199e2;box-shadow:0 0 0 3px #2c4b72}[data-theme=dark] .locker-cell.success,[data-theme=dark] .slot.success{background:#1d443f;color:#83d4b9;border-color:#366f63}[data-theme=dark] .locker-cell.error,[data-theme=dark] .slot.error{background:#4c2b3b;color:#eea5b4;border-color:#885163}[data-theme=dark] .cell-editor,[data-theme=dark] .inline-note,[data-theme=dark] .queue-footer,[data-theme=dark] .selection-bar{background:#152438;border-color:#2d425e;color:#8ca8c7}[data-theme=dark] .queue-item.running{background:#203b5d}[data-theme=dark] .queue-index{background:#253a54;color:#adc2df}[data-theme=dark] .queue-item.success .queue-index{background:#254c40;color:#80c8ad}[data-theme=dark] .queue-item.error .queue-index{background:#553444;color:#e4a1b4}[data-theme=dark] .queue-warning{background:#423921;color:#d3b678}[data-theme=dark] .queue-stats div{border-color:#2b405b}[data-theme=dark] .confirm-check{background:#1d3c37;color:#8cc6b2}[data-theme=dark] .error-item pre,[data-theme=dark] .json-editor textarea{background:#132135;border-color:#314861;color:#a2b9d7}[data-theme=dark] .start-note{border-color:#34495f}[data-theme=dark] .model-footer{border-color:#304157;color:#8caed7}[data-theme=dark] .terminal-options button.active{background:#2b466b;color:#9ec9ff}[data-theme=dark] .payload-kind.write{background:#233e62;color:#8bbbff}[data-theme=dark] .payload-kind.res{background:#1e473f;color:#7bd2b2}[data-theme=dark] .payload-byte{background:#1b2c42;color:#a0b5d1}[data-theme=dark] .payload-byte.header{color:#8fb5e4}[data-theme=dark] .payload-byte.address{color:#758fae}[data-theme=dark] .payload-byte.command{background:#303755;color:#b8b4ed}[data-theme=dark] .payload-byte.data{background:#1c3a4d;color:#7bc4dd}[data-theme=dark] .payload-byte.status{background:#205041;color:#8ddbb4;box-shadow:inset 0 -2px #3e9876}[data-theme=dark] .payload-byte.error{background:#592f42;color:#f2a5b8;box-shadow:inset 0 -2px #bc6882}[data-theme=dark] .payload-byte.checksum{background:#322d45;color:#aa9ac2}[data-theme=dark] .result-badge.success{background:#204738;color:#88ceb0}[data-theme=dark] .result-badge.error{background:#4b2d3c;color:#e99db0}[data-theme=dark] .result-badge.accepted{background:#453b27;color:#d2b56c}[data-theme=dark] .decoded-fields>div{background:#172639}[data-theme=dark] .decoded-fields strong{color:#83b8d0}[data-theme=dark] .monitor-text{background:#182b40;color:#9cbfdf}[data-theme=dark] .copy-payload:hover{background:#2c4361;color:#acd0ff}[data-theme=dark] .icon-button:hover{background:#2b3c52}[data-theme=dark] .preview-box{background:#101b2d}[data-theme=dark] .queue-item.cancelled{opacity:.5}@media (max-width:700px){.decoded-fields{grid-template-columns:1fr}.terminal-title{flex-wrap:wrap}.composer-heading>span,.rich-terminal .terminal-title>span>small{display:none}.composer-actions{flex-wrap:wrap}.response-time{margin-left:0}.copy-payload{margin-left:auto}.byte-stream{font-size:10px}.monitor-entry{padding:13px}.theme-toggle span{display:none}.db-reload-note{flex-wrap:wrap}}.payload-byte.working{background:#fff1d8;color:#ae8131;box-shadow:inset 0 -2px #dfbb73}[data-theme=dark] .payload-byte.working{background:#4a3b23;color:#e3c07e;box-shadow:inset 0 -2px #977e45}.json-editor textarea,.monitor-text,.mono{font-family:SFMono-Regular,Consolas,Liberation Mono,Noto Sans Thai Variable,monospace}.monitor-legend small{font-family:Noto Sans Thai Variable,Tahoma,sans-serif}[role=button],a,button,input,select,summary{touch-action:manipulation}button,summary{-webkit-tap-highlight-color:transparent}.work-main,.workspace-shell{min-width:0}.work-main{padding:22px}.sidebar{width:188px;padding:20px 12px}.sidebar nav button{min-height:50px;font-size:13px}.current-model{margin:18px 8px 22px}.test-layout{grid-template-columns:minmax(0,1fr);gap:14px}.touch-queue{margin-top:14px;position:static;width:100%}.monitor-drawer summary,.touch-queue summary{display:flex;align-items:center;gap:12px;padding:16px 20px;cursor:pointer;min-height:58px;list-style:none}.monitor-drawer summary::-webkit-details-marker,.touch-queue summary::-webkit-details-marker{display:none}.touch-queue summary b{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.touch-queue summary span{font-size:12px;color:var(--muted)}.touch-queue .queue-list{max-height:300px;overflow:auto}.touch-panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 24px;border-bottom:1px solid var(--line)}.touch-panel-title h2{margin:4px 0 0}.segmented button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 16px}.touch-map{padding:20px 24px 12px}.touch-slots.led-mode .slot-detail,.touch-slots.led-mode .touch-map{display:none}.led-rail-panel{grid-column:1/-1;margin:14px 24px 18px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#f7f9fc}.led-rail-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.led-rail-heading b,.led-rail-heading small{display:block}.led-rail-heading small{margin-top:3px;color:var(--muted);font-size:11px}.led-rail-heading>span{flex:0 0 auto;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:650}.led-rail-heading .range-ready{background:#fff0d7;color:#915600}.led-rail-heading .range-empty{background:#eaf0f6;color:#60758b}.led-rail-rows{display:grid;gap:7px}.led-rail-row{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:10px}.led-rail-label b,.led-rail-label small{display:block}.led-rail-label b{font-size:12px}.led-rail-label small{margin-top:2px;color:var(--muted);font-size:10px}.led-rail-cells{display:grid;min-width:0;gap:3px}.led-rail-cells button{min-width:0;min-height:38px;padding:3px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px solid #d6e0ea;border-radius:6px;background:#fff;color:#294860}.led-rail-cells button>i{width:5px;height:5px;border-radius:50%;background:#95a8b9}.led-rail-cells button>span{font-size:clamp(7px,.85vw,10px);line-height:1}.led-rail-cells button.led-preview{border-color:#e99b27;background:#fff0d7;color:#744600}.led-rail-cells button.led-preview>i{background:#e99b27}.led-rail-cells button.running{box-shadow:inset 0 0 0 2px #f3ac37}.led-rail-cells button.waiting{border-color:#9599e7;background:#f0f0ff}@media (max-width:700px){.led-rail-panel{margin:8px 10px 12px;padding:10px 8px}.led-rail-row{grid-template-columns:38px minmax(0,1fr);gap:5px}.led-rail-cells{gap:2px}.led-rail-cells button{min-height:34px;border-radius:4px}.led-rail-cells button>i{width:4px;height:4px}.led-rail-cells button>span{font-size:7px}}.touch-floor{display:flex;gap:14px;align-items:center;margin-bottom:9px}.touch-floor>span{width:43px;flex-shrink:0;color:var(--muted);font-size:12px}.touch-floor>span b{color:var(--ink);font-size:18px}.touch-groups{display:grid;gap:8px;flex:1 1;min-width:0}.slot-group{min-width:0;min-height:58px;background:#eef3f8;border:1px solid transparent;padding:8px 5px 5px;border-radius:9px;color:#60788e}.slot-group.focused{border-color:#259db2;background:#e4f8f7;box-shadow:0 0 0 2px #259db214}.mini-slots{display:flex;gap:2px;height:20px}.mini-slots i{min-width:0;flex:1 1;display:flex;justify-content:center;align-items:center;font-style:normal;font-size:8px;background:#ccd9e5;border-radius:2px}.mini-slots i.running{background:#f59e0b;color:#fff;animation:pulse 1s infinite}.mini-slots i.waiting{background:#b5b9fa}.mini-slots i.success{background:#65d3ab}.mini-slots i.error{background:#fb8d8d}.mini-slots i.selected{background:#158eab;color:#fff}.mini-slots i.led-preview{background:#ffad33;color:#492900;box-shadow:inset 0 0 0 1px #d77b00}.slot-group>small{font-size:10px}.slot-detail{margin:0 24px 16px;padding:16px;background:#f5f8fc;border:1px solid var(--line);border-radius:12px}.slot-detail-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.slot-detail-heading b{display:flex;align-items:center;gap:8px;font-size:14px}.slot-detail-heading button{min-height:44px}.large-slots{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.large-slots.led-grid{grid-template-columns:repeat(auto-fit,minmax(42px,1fr));gap:6px}.large-slots.led-grid>button{min-height:58px;border-radius:8px}.large-slots.led-grid strong{font-size:17px}.led-floor-tabs{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:14px}.led-floor-tabs>div:first-child b,.led-floor-tabs>div:first-child small{display:block}.led-floor-tabs>div:first-child small{margin-top:3px;color:var(--muted);font-size:11px}.led-floor-tab-buttons{display:flex;flex-wrap:wrap;gap:6px}.led-floor-tab-buttons button{min-width:66px;min-height:42px;padding:5px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}.led-floor-tab-buttons button.chosen{border-color:var(--blue);background:#edf5ff;color:var(--blue)}.led-floor-tab-buttons small{display:block;margin-top:2px;font-size:9px;opacity:.7}.large-slots>button{min-height:76px;display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px solid #d2dfe9;border-radius:10px;background:white;color:#284b67;position:relative}.large-slots strong{font-size:24px;line-height:1.2}.large-slots small{font-size:11px;opacity:.6}.large-slots svg{position:absolute;top:6px;right:6px}.large-slots .chosen{background:#117b91;color:white;border-color:#117b91}.large-slots .led-preview{background:#fff1d8;border-color:#e39a22;color:#6c470d}.large-slots .running{box-shadow:inset 0 0 0 3px #f3ac37}.large-slots .success:not(.chosen){background:#e6f8f0;border-color:#74cba4}.large-slots .error:not(.chosen){background:#fff0f0;border-color:#f68b8b}.touch-hint{color:var(--muted);font-size:12px;margin:10px 0 0}.touch-send{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 24px;border-top:1px solid var(--line)}.touch-send small{display:block;color:var(--muted);margin-top:4px;font-size:12px}.touch-send b{font-size:14px}.touch-send button{min-height:52px;white-space:nowrap}.touch-slots>.legend{padding:0 24px 15px}.touch-slots>.touch-hint{padding:0 24px 12px}.touch-led{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding:0 24px 18px}.touch-swatches{display:flex;gap:10px}.touch-swatches button{width:46px;height:46px;border-radius:50%;border:3px solid #d8e3eb;color:#183e53;display:grid;place-items:center}.touch-swatches .selected{outline:2px solid #2b8d9d;outline-offset:3px}.touch-led-range{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.touch-led-range b,.touch-led-range small{display:block}.touch-led-range small{color:var(--muted);font-size:11px}.touch-options{display:flex;flex-wrap:wrap;gap:9px;margin:8px 0 14px}.touch-options button{min-height:50px;padding:12px 20px;border-radius:9px;background:#edf3f9;border:1px solid var(--line);color:var(--ink)}.touch-options button.chosen{background:#137d94;border-color:#137d94;color:#fff}.touch-stepper{display:flex;align-items:center;margin-top:8px}.touch-stepper button{min-width:48px;min-height:50px;border:1px solid var(--line);background:#edf3f9;color:var(--ink);font-size:24px;border-radius:8px}.touch-stepper input{min-width:0;width:100%;text-align:center;margin:0 6px}.command-palette{margin-bottom:16px}.command-cards{display:flex;flex-wrap:wrap;gap:8px}.command-choice{min-height:52px;flex:0 1 auto;padding:12px 17px}.command-category h3,.command-choice small{display:none}.command-choice.active{color:white;background:#137d94;border-color:#137d94}.command-group-tabs{flex-wrap:wrap;overflow:visible}.command-group-tabs button{min-height:48px}.form-content{padding:18px 22px}.command-empty{padding:20px;min-height:0}.form-grid{gap:14px}.live-monitor-section{margin-top:14px}.latest-response .terminal-legend,.latest-response .terminal-options{display:none}.latest-response .terminal{border-radius:12px}.latest-response .terminal-body{min-height:80px}.monitor-drawer{border:1px solid var(--line);background:var(--surface,#fff);border-radius:12px;margin-top:10px;overflow:hidden}.monitor-drawer summary{font-weight:600;font-size:13px}.monitor-drawer summary svg:last-child{margin-left:auto}.touch-lockers{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:18px 24px;max-width:780px;margin:auto}.touch-lockers h3{font-size:13px;margin:0 0 10px}.virtual-panel{display:grid;grid-template-columns:240px minmax(0,1fr);padding:30px;gap:20px;background:radial-gradient(ellipse at 75% 38%,#e6f3f4,transparent 65%),#fff}.virtual-copy h2{font-size:30px;letter-spacing:-1px;line-height:1.4;margin:18px 0}.virtual-copy em{font-style:normal;color:#298e9d}.virtual-copy p{color:var(--muted);font-size:14px;line-height:1.8}.virtual-part-list{display:grid;gap:7px;margin-top:22px}.virtual-part-list button{display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 15px;border-radius:10px;background:transparent;color:var(--ink);text-align:left}.virtual-part-list .chosen{background:#dff3f2;color:#13788a}.virtual-stage{max-width:620px;width:100%;margin:auto;min-width:0}.virtual-stage svg{display:block;width:100%;max-height:510px;overflow:visible}.cabinet-hit{cursor:pointer;outline:none}.cabinet-hit rect{fill:transparent;stroke:transparent;stroke-width:3;transition:fill .15s,stroke .15s}.cabinet-hit:focus rect,.cabinet-hit:hover rect{fill:#72f5df22;stroke:#9fffee}.cabinet-hit.active rect{fill:#72f5df18;stroke:#6af0d9}.virtual-selected{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#15394b;color:#fff;padding:14px 18px;border-radius:12px}.virtual-selected small{display:block;color:#a3c1ce;margin-bottom:4px;font-size:11px}.virtual-selected .primary{min-height:48px;background:#48c8b4;color:#08353e}[data-theme=dark] .slot-detail,[data-theme=dark] .slot-group,[data-theme=dark] .touch-options button,[data-theme=dark] .touch-stepper button{background:#1c3042;color:#b9ccdb}[data-theme=dark] .large-slots .chosen,[data-theme=dark] .slot-group.focused,[data-theme=dark] .touch-options .chosen{background:#13788a;color:#fff}[data-theme=dark] .large-slots>button{background:#253a4c;color:#c8dce7;border-color:#456074}[data-theme=dark] .large-slots .success:not(.chosen){background:#174537}[data-theme=dark] .large-slots .error:not(.chosen){background:#562e39}[data-theme=dark] .led-rail-panel{background:#142236;border-color:#304359}[data-theme=dark] .led-rail-heading small,[data-theme=dark] .led-rail-label small,[data-theme=dark] .touch-led-range small{color:#91a7c2}[data-theme=dark] .led-rail-heading .range-ready{background:#45351c;color:#f4c16d}[data-theme=dark] .led-rail-heading .range-empty{background:#20334a;color:#a7bbd4}[data-theme=dark] .led-rail-cells button{background:#1c3042;border-color:#344a65;color:#c4d6ed}[data-theme=dark] .led-rail-cells button>i{background:#7890aa}[data-theme=dark] .led-rail-cells button.led-preview{background:#45351c;border-color:#a46b1b;color:#f4c16d}[data-theme=dark] .led-rail-cells button.led-preview>i{background:#e6a43a}[data-theme=dark] .led-rail-cells button.waiting{background:#2b3557;border-color:#4d5e8b;color:#b0c2f0}[data-theme=dark] .virtual-panel{background:radial-gradient(ellipse at 75% 38%,#183e49,transparent 65%),#142638}[data-theme=dark] .virtual-part-list .chosen{background:#1a4c57;color:#a0f5df}[data-theme=dark] .monitor-drawer{background:#142638}@media (min-width:1600px){.work-main{max-width:1540px;margin:auto;width:calc(100% - 188px)}}@media (max-width:1100px){.workspace-shell{display:block}.sidebar{width:100%;padding:8px 16px;border-right:0;border-bottom:1px solid var(--line)}.sidebar .current-model,.sidebar .nav-caption,.sidebar .sidebar-bottom{display:none}.sidebar .back{position:absolute;top:25px;right:180px;font-size:12px}.sidebar nav{display:flex;flex-wrap:wrap;gap:6px}.sidebar nav button{flex:1 0 105px;justify-content:center;padding:9px 10px;min-height:48px;margin:0;font-size:12px}.sidebar nav button>svg:last-child:not(:first-child){display:none}.work-heading{margin-bottom:12px}.connection-strip{margin-bottom:14px}.work-main{padding:18px}.touch-panel-title{padding:16px 20px}.virtual-stage svg{max-height:510px}}@media (max-width:650px){.work-main{padding:10px}.work-heading h1{font-size:22px}.sidebar{padding:8px}.sidebar .back{position:static;padding:7px}.sidebar nav button{flex-basis:95px;font-size:11px;gap:5px}.touch-panel-title{flex-wrap:wrap;padding:14px}.touch-panel-title h2{font-size:19px}.segmented button{padding:9px 13px}.touch-map{padding:14px 10px 6px}.touch-floor{gap:6px;margin-bottom:7px}.touch-floor>span{width:30px;font-size:10px}.touch-floor>span b{font-size:14px}.touch-groups{gap:4px}.slot-group{padding:6px 3px}.mini-slots i{font-size:0}.mini-slots{gap:1px;height:22px}.slot-group>small{font-size:9px}.slot-detail{margin:0 12px 12px;padding:12px}.large-slots{gap:5px}.large-slots>button{min-height:68px}.large-slots strong{font-size:21px}.large-slots svg{width:13px;right:3px;top:3px}.touch-send{padding:14px;flex-wrap:wrap}.touch-send>button{width:100%;justify-content:center}.touch-led{padding:0 14px 16px}.touch-swatches{gap:8px}.touch-swatches button{width:40px;height:40px}.touch-queue summary{padding:14px 12px;gap:7px;flex-wrap:wrap}.touch-queue summary b{font-size:13px}.touch-queue summary span{width:100%;padding-left:26px;order:4}.touch-lockers{gap:12px;padding:14px}.touch-lockers .locker-cell{min-width:0}.form-content{padding:14px}.form-grid{grid-template-columns:1fr}.command-choice{flex:1 1 120px}.touch-options button{flex:1 1 90px;padding:10px}.virtual-panel{padding:18px;grid-template-columns:1fr;gap:5px}.virtual-copy h2{font-size:24px;margin:6px 0}.virtual-copy h2 br,.virtual-copy p{display:none}.virtual-part-list{display:flex;flex-wrap:wrap;margin:12px 0 0;gap:3px}.virtual-part-list button{min-height:46px;padding:9px 10px;font-size:12px}.virtual-stage svg{max-height:400px}.virtual-selected{padding:12px}.connection-strip button{min-height:44px}.connection-strip button>span:last-child{display:none}}.advanced-fields{margin:4px 0 14px;color:var(--muted);font-size:12px}.advanced-fields summary{cursor:pointer;padding:12px 0;min-height:44px}.advanced-fields[open]{border-top:1px solid var(--line);padding-top:8px}.touch-led-scope{display:flex;gap:8px}.touch-led-scope button{min-height:44px}.touch-led-quick{width:100%;display:grid;gap:9px}.touch-led-quick-buttons{display:flex;flex-wrap:wrap;gap:8px}.touch-led-quick-buttons button{min-height:44px}.touch-led-quick-buttons small{display:block}.latest-response .monitor-legend{display:none}.latest-response .terminal-body{height:auto;max-height:260px}@media (min-width:1200px){.live-monitor-section{display:grid;grid-template-columns:minmax(0,1fr)}}@media (min-width:900px){.touch-slots{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start}.touch-led,.touch-panel-title,.touch-send,.touch-slots>.legend,.touch-slots>.touch-hint{grid-column:1/-1}.touch-map{padding:18px 12px 12px 20px}.slot-detail{margin:18px 20px 14px 0;padding:14px}.large-slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.large-slots>button{min-height:72px}.slot-group{min-height:48px;padding:6px 3px 4px}.mini-slots{height:17px;gap:1px}.mini-slots i{font-size:0}.touch-floor{margin-bottom:7px;gap:8px}.touch-groups{gap:5px}.touch-send{padding:14px 20px}.touch-slots>.legend{justify-content:flex-end}.touch-lockers{grid-column:1/-1;width:100%}.touch-panel-title{padding:14px 20px}.touch-panel-title .eyebrow{display:none}.touch-slots.led-mode{grid-template-columns:minmax(0,1fr)}.touch-slots.led-mode .slot-detail{grid-column:1/-1;margin:18px 24px 14px}}.latest-response .terminal-title{padding:10px 16px}.latest-response .monitor-entry{padding:10px 14px}.latest-response .decode-toggle,.latest-response .monitor-command,.latest-response .monitor-message{display:none}.latest-response .terminal-body{max-height:185px}.sidebar .back{position:static}@media (min-width:900px) and (max-height:950px){.work-heading{margin-bottom:10px}.work-heading .eyebrow{display:none}.work-heading h1{font-size:23px}.connection-strip{margin-bottom:12px;min-height:40px}.work-main{padding:14px 18px}.touch-led{padding:0 20px 12px}.touch-swatches button{width:40px;height:40px}.touch-queue summary{padding:12px 16px;min-height:50px}}.form-content{gap:10px}.form-content .command-palette{margin-bottom:0;padding-bottom:12px}.form-content .advanced-fields{margin:0}.form-content .touch-options{margin-bottom:4px}.form-content>.primary{min-height:52px;padding:12px 24px}.test-layout>.panel>.panel-heading{padding:16px 22px}.test-layout>.panel>.panel-heading p{display:none}.latest-response .monitor-message{display:block;font-size:12px;margin-top:6px}.latest-response .terminal-body{max-height:230px}.custom-led-color{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted)}.custom-led-color input{width:44px;height:44px;padding:3px;border-radius:8px}@media (min-width:900px) and (max-height:950px){.touch-panel-title{padding:10px 20px}.touch-map{padding-top:12px}.slot-group{min-height:42px}.touch-floor{margin-bottom:5px}.slot-detail{margin-top:12px;padding:12px}.large-slots>button{min-height:61px}.slot-detail-heading{margin-bottom:8px}.touch-send{padding:10px 20px}.touch-send button{min-height:48px}.touch-slots>.legend{padding-bottom:10px}}.back-to-cabinet{margin-bottom:12px;min-height:46px}.visual-heading{display:flex;gap:16px;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}.visual-heading h2{flex:1 1;font-size:18px}.equipment-test-navigation{padding:14px 20px;border-bottom:1px solid var(--line)}.equipment-test-groups,.equipment-test-options,.physical-target-options{display:flex;flex-wrap:wrap;gap:8px}.equipment-test-options{margin-top:12px}.equipment-test-groups button,.equipment-test-options button,.physical-target-options button{min-height:50px;padding:10px 16px;border:1px solid var(--line);border-radius:9px;background:var(--panel,#fff);color:var(--ink)}.equipment-test-groups button{flex:1 1}.test-picture{display:block;width:160px;max-width:100%;height:auto;flex-shrink:0}.equipment-test-groups button{display:flex;align-items:center;justify-content:center;gap:8px}.equipment-test-groups .test-picture{width:56px}.equipment-test-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.equipment-test-options button{display:flex;flex-direction:column;align-items:center;gap:6px}.equipment-test-options .test-picture{width:88px}.equipment-test-options.picture-choices{grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px;margin:18px auto 0;gap:16px}.equipment-test-options.picture-choices button{padding:16px;font-size:17px}.equipment-test-options.picture-choices .test-picture{width:200px}.realistic-cabinet-copy .virtual-part-list .test-picture{width:82px}.service-tiles .test-picture{width:128px}.lift-home .test-picture,.relearn-shortcut .test-picture{width:64px}.compressor-buttons .test-picture{width:110px}.door-operation button{display:flex;align-items:center;gap:6px}.door-operation.center{margin-inline:auto}.door-operation .test-picture{width:90px}.physical-door-instructions>.test-picture{width:220px;margin:12px 0}.physical-extra-sensors .physical-target-options button{display:flex;align-items:center;gap:8px}.physical-extra-sensors .test-picture{width:90px}.equipment-test-groups button[aria-pressed=true],.equipment-test-options button[aria-pressed=true],.physical-target-options button[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:#fff}.equipment-test-navigation>p{margin:18px 0 8px;color:var(--muted);line-height:1.8}.physical-target-options button{flex:1 1;min-width:90px}.physical-extra-sensors{margin:12px 20px}.physical-extra-sensors .physical-target-options{margin-top:10px}.visual-heading button{min-height:46px}.visual-send{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--line);padding:18px 24px}.visual-send small{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.visual-send b{font-size:15px}.visual-send .primary{min-height:52px;padding:12px 24px}.scene-caption{display:block;color:var(--muted);font-size:12px;margin-bottom:14px}.lift-scene{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(160px,1fr);gap:32px;padding:24px;max-width:1000px;margin:auto}.lift-shelves{display:flex;flex-direction:column;gap:8px}.lift-shelves>.scene-caption,.lift-stations>.scene-caption{margin-bottom:4px}.lift-floor{display:flex;align-items:center;gap:16px;padding:10px 16px;min-height:65px;border:1px solid #cedfe6;background:#f1f6f9;border-radius:10px;color:#36556a}.lift-floor .floor-number{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:#e0eaf0;font-size:18px;flex-shrink:0}.shelf-drawing{display:flex;flex:1 1;gap:5px;align-self:stretch;border-bottom:5px solid #84acba;padding-bottom:4px;min-width:0}.shelf-drawing i{display:block;flex:1 1;border-radius:3px 3px 0 0;background:linear-gradient(#87c7c7,#5398a7);margin-top:3px}.shelf-drawing i:nth-child(3n){background:linear-gradient(#b6c0d7,#8497b9)}.lift-floor b{white-space:nowrap}.lift-home{display:flex;justify-content:center;align-items:center;gap:12px;min-height:58px;border-radius:10px;background:#e8f2f4;color:#38768a}.lift-stations{display:flex;flex-direction:column;gap:10px}.station-target{display:flex;align-items:center;gap:13px;min-height:88px;padding:10px;border:1px solid #cddfe7;background:#f4f8fa;border-radius:12px;color:#36556a;text-align:left}.station-target>.door-picture{width:45%;max-width:120px}.station-target span{font-size:12px}.station-target strong{display:block;font-size:26px;color:#2f7d8c}.relearn-shortcut{display:flex;align-items:center;justify-content:center;gap:10px;min-height:54px;border:1px dashed #aac2ce;border-radius:10px;background:transparent;color:#52798e;margin-top:auto}.belt-buttons button.chosen,.door-buttons button.chosen,.lift-scene button.chosen,.service-tiles button.chosen,.station-doors button.chosen{background:#e0f5ef;border-color:#219d9c;box-shadow:0 0 0 2px #219d9c22;color:#176f79}.lift-scene .chosen .floor-number{background:#15899a;color:white}.station-doors{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:20px;max-width:820px;margin:0 auto}.station-doors>button{display:flex;flex-direction:column;align-items:center;border:1px solid #d1e1e9;border-radius:14px;padding:15px;background:#f3f7fa;color:#426779;min-width:0}.station-doors>button strong{font-size:28px;margin:3px 0}.station-doors>button span{font-size:12px}.door-picture{display:block;width:100%;max-width:180px}.door-scene,.sensor-scene{padding:24px;text-align:center}.door-buttons{gap:16px;margin-top:24px}.door-buttons,.door-buttons>button{display:flex;justify-content:center}.door-buttons>button{align-items:center;gap:14px;border:1px solid #d1e1e9;background:#f4f8fa;border-radius:12px;padding:10px 20px;min-height:70px;color:#426779}.door-buttons .door-picture{width:65px}.sensor-scene>.segmented{display:inline-flex;margin-bottom:22px}.sensor-picture{width:100%;max-width:210px}.extra-sensor{margin:18px auto 0;min-height:48px}.belt-scene{text-align:center;padding:26px;max-width:850px;margin:auto}.belt-visual{position:relative;padding-top:65px;max-width:560px;margin:0 auto 28px}.belt-track{height:70px;border:7px solid #234c60;border-radius:35px;background:#a1c0cc;display:flex;gap:8px;padding:6px 13px;overflow:hidden}.belt-track i{display:block;flex:1 1;border-radius:10px;background:linear-gradient(90deg,#587c93,#d1e1e7,#587c93)}.belt-wheels{display:flex;justify-content:space-between;padding:0 34px}.belt-wheels i{width:55px;height:12px;background:#3c6479;border-radius:0 0 6px 6px}.belt-package{position:absolute;top:12px;left:calc(50% - 27px);color:#328d9c}.belt-buttons{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:560px;margin:auto}.belt-buttons button{display:flex;flex-direction:column;align-items:center;gap:6px;border:1px solid #d0e1e7;border-radius:14px;padding:16px;background:#eff5f8;color:#38697e}.belt-buttons small{color:var(--muted);font-size:11px}.belt-seconds{justify-content:center;gap:10px;margin:24px auto 0;max-width:400px}.belt-seconds input{max-width:85px}.belt-seconds span{font-size:12px}.service-scene{padding:22px}.service-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px}.service-tiles>button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:18px 13px;min-height:125px;border:1px solid #d4e2ea;background:#f2f7fa;color:#487287;border-radius:13px}.service-tiles b{font-size:13px}.service-tiles small{color:var(--muted);font-size:11px}.service-form{padding:20px;margin-top:20px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.service-form h3{font-size:16px;margin-bottom:18px}.visual-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.visual-fields label{font-size:12px;color:var(--muted)}.visual-fields .touch-options button{flex:1 1}.service-form details{margin-top:14px;font-size:12px}.service-form details summary{min-height:44px;padding:12px 0;cursor:pointer}.visual-config-editor{border:1px solid var(--line);padding:15px;border-radius:12px;margin:16px 0}.visual-config-editor>summary{cursor:pointer;min-height:44px;font-weight:600}[data-theme=dark] .belt-buttons button,[data-theme=dark] .door-buttons button,[data-theme=dark] .lift-floor,[data-theme=dark] .lift-home,[data-theme=dark] .service-tiles button,[data-theme=dark] .station-doors button,[data-theme=dark] .station-target{background:#1f3547;color:#b6d0dc;border-color:#35566b}[data-theme=dark] .belt-buttons button.chosen,[data-theme=dark] .door-buttons button.chosen,[data-theme=dark] .lift-scene button.chosen,[data-theme=dark] .service-tiles button.chosen,[data-theme=dark] .station-doors button.chosen{background:#16545c;border-color:#54c5b7;color:#d6fff1}[data-theme=dark] .station-target strong{color:#67d6c3}[data-theme=dark] .lift-floor .floor-number{background:#375264}@media (max-width:650px){.visual-heading{flex-wrap:wrap;padding:12px;gap:10px}.visual-heading h2{font-size:16px;order:3;flex-basis:100%}.visual-heading>button:last-child{margin-left:auto}.lift-scene{padding:14px;gap:12px;grid-template-columns:minmax(0,1.3fr) minmax(110px,1fr)}.lift-floor{min-height:62px;gap:8px;padding:8px}.lift-floor>.shelf-drawing{display:none}.lift-floor b{flex:1 1;font-size:13px}.lift-floor>.floor-number{width:28px;height:28px;font-size:15px}.station-target{flex-direction:column;gap:0;padding:7px}.station-target>.door-picture{width:95%;max-width:100px}.station-target strong{font-size:23px}.station-target span{text-align:center}.relearn-shortcut{font-size:11px;padding:9px}.station-doors{gap:8px;grid-template-columns:repeat(auto-fit,minmax(85px,1fr))}.station-doors>button{padding:8px}.station-doors>button strong{font-size:23px}.station-doors>button span{font-size:10px}.door-scene,.sensor-scene{padding:16px 12px}.door-buttons{gap:10px}.door-buttons>button{padding:8px;flex:1 1;gap:5px;font-size:13px}.door-buttons .door-picture{width:45px}.visual-send{flex-wrap:wrap;padding:14px}.visual-send .primary{width:100%;justify-content:center}.service-scene{padding:14px}.service-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.service-tiles>button{min-height:120px}.service-form{padding:14px}.belt-scene{padding:18px}.belt-buttons{gap:10px}.belt-buttons button{padding:12px}.belt-seconds{flex-wrap:wrap}}.large-slots .slot-bulb{position:static;width:20px;height:20px;color:#dcaa24;margin:3px 0}.large-slots .chosen .slot-bulb{color:#ffdf76}.visual-capabilities{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 20px}.visual-capabilities label{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:12px}.visual-capabilities input{width:18px;height:18px;margin:0}.visual-settings h3{margin:24px 0 14px}.visual-settings-floors{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:12px 0}.station-settings{padding:16px;border:1px solid var(--line);border-radius:10px;margin:12px 0}.station-settings>button{margin-top:12px;min-height:44px}.visual-settings .outline{min-height:46px}.visual-settings>label{display:block}.glass-door-picture{width:48px;height:54px}.compressor-buttons button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:58px}.virtual-stage>.touch-hint{text-align:center}.cabinet-portrait{display:block;width:100%;height:auto;overflow:visible;font-family:Noto Sans Thai Variable,sans-serif}.real-model-portrait{height:320px;display:flex;align-items:center;justify-content:center;margin:12px auto 4px;max-width:270px}.real-model-portrait .cabinet-portrait{width:auto;height:100%;max-width:100%}.realistic-cabinet-panel{display:grid;grid-template-columns:minmax(230px,.85fr) minmax(0,1.3fr);gap:20px;padding:28px 32px;background:radial-gradient(ellipse at 74% 45%,#e6f2f5,transparent 65%),var(--panel)}.realistic-cabinet-copy{align-self:center}.realistic-cabinet-copy h2{font-size:29px;letter-spacing:-.6px;line-height:1.5;margin:15px 0 20px}.realistic-cabinet-copy h2 em{font-style:normal;color:#2c8c9e;font-size:21px;font-weight:500}.realistic-cabinet-copy p{font-size:13px;line-height:1.9;color:var(--muted)}.realistic-cabinet-copy .virtual-part-list{margin-top:22px}.realistic-cabinet-copy .virtual-part-list button{background:transparent;border:1px solid #d1e6e3}.realistic-cabinet-copy .virtual-part-list button:hover{background:#e2f2f4;border-color:#abd4db}.realistic-cabinet-stage{width:100%;max-width:530px;margin:auto;min-width:0}.realistic-cabinet-stage .cabinet-portrait{max-height:700px}.physical-hit{cursor:pointer;outline:none;touch-action:manipulation}.physical-hit>rect{fill:#45d0c0;fill-opacity:.1;stroke:#35bba9;stroke-opacity:.45;stroke-width:3;animation:physical-hit-pulse 1.6s ease-in-out infinite;transition:fill .12s,stroke .12s}@keyframes physical-hit-pulse{0%,to{fill-opacity:.02;stroke-opacity:.12}50%{fill-opacity:.2;stroke-opacity:1}}.physical-hit:focus-visible>rect,.physical-hit:hover>rect{fill:#45d0c0;stroke:#35bba9;stroke-opacity:1}.physical-station{outline:none;touch-action:manipulation}.physical-station.can-act:not(.disabled){cursor:pointer}.hatch-touch-outline{fill:#62d5bb12;stroke:#199b91;stroke-width:3;stroke-dasharray:6 4}.physical-station.can-act:focus-visible .hatch-touch-outline,.physical-station.can-act:hover .hatch-touch-outline{stroke:#087a80;stroke-width:5;fill:#56ddbd33;stroke-dasharray:none}.physical-station.disabled .hatch-touch-outline{stroke:#a4b3ba;fill:transparent}.physical-door-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:18px 24px;border-bottom:1px solid var(--line)}.physical-door-toolbar .segmented button{min-height:54px;font-size:13px}.physical-door-stage{display:grid;grid-template-columns:minmax(190px,.85fr) minmax(0,1.3fr);align-items:center;gap:16px;padding:10px 30px;max-width:1050px;margin:auto}.physical-door-stage>.cabinet-portrait{max-height:680px}.physical-door-instructions h3{font-size:31px;line-height:1.6;margin:14px 0 20px}.physical-door-instructions h3 em{color:#288994;font-style:normal;font-weight:500;font-size:22px}.physical-door-instructions p{font-size:13px;line-height:1.9;color:var(--muted)}.tap-action-note{display:flex;align-items:center;gap:10px;margin:25px 0 18px;border-radius:10px;padding:14px;background:#e7f5f2;color:#27817e}.tap-action-note b{font-size:12px}.touch-pulse{width:10px;height:10px;border-radius:50%;background:#36bda5;box-shadow:0 0 0 5px #36bda51c;flex-shrink:0}.physical-live-note{text-align:center;color:var(--muted);font-size:11px;padding:0 14px 18px}.physical-position-field select{min-height:46px}[data-theme=dark] .realistic-cabinet-panel{background:radial-gradient(ellipse at 75% 48%,#24434c,transparent 65%),var(--panel)}[data-theme=dark] .realistic-cabinet-copy .virtual-part-list button:hover{background:#23414d;border-color:#397281}[data-theme=dark] .tap-action-note{background:#1c4248;color:#90dfcf}[data-theme=dark] .physical-door-instructions h3 em,[data-theme=dark] .realistic-cabinet-copy h2 em{color:#78c8c6}@media (max-width:1100px){.real-model-portrait{height:300px}.realistic-cabinet-panel{padding:22px;gap:8px}.realistic-cabinet-copy h2{font-size:25px}.realistic-cabinet-copy h2 em{font-size:18px}}@media (max-width:650px){.real-model-portrait{height:250px;max-width:200px}.realistic-cabinet-panel{display:flex;flex-direction:column;padding:18px 12px}.realistic-cabinet-copy{width:100%;padding:0 6px}.realistic-cabinet-copy h2{font-size:24px;margin:6px 0 12px}.realistic-cabinet-copy h2 br{display:none}.realistic-cabinet-copy h2 em{display:block;font-size:17px}.realistic-cabinet-copy p{display:none}.realistic-cabinet-copy .virtual-part-list{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px}.realistic-cabinet-copy .virtual-part-list button{padding:9px;font-size:11px;min-height:44px}.realistic-cabinet-stage{max-width:430px}.realistic-cabinet-stage .cabinet-portrait{max-height:570px}.physical-door-toolbar{padding:12px;gap:10px;justify-content:center}.physical-door-toolbar .segmented{width:100%}.physical-door-toolbar .segmented button{flex:1 1;padding:9px;min-height:50px;font-size:11px}.physical-door-stage{display:flex;flex-direction:column;padding:12px 8px;gap:0}.physical-door-instructions{width:100%;padding:0 10px}.physical-door-instructions h3 br,.physical-door-instructions>.eyebrow,.physical-door-instructions>.touch-hint,.physical-door-instructions>p:not(.touch-hint){display:none}.physical-door-instructions h3{font-size:20px;margin:4px 0 10px}.physical-door-instructions h3 em{font-size:16px;display:block}.tap-action-note{margin:4px 0;padding:10px}.physical-door-stage>.cabinet-portrait{width:100%;max-height:650px}}.lift-stations>.cabinet-portrait{height:370px;max-width:100%}.physical-sensor-workspace>.extra-sensor{margin:0 auto 16px}@media (max-width:650px){.lift-stations>.cabinet-portrait{height:410px}}.physical-station.running .hatch-touch-outline{fill:#4ba8f32b;stroke:#398fe1;stroke-width:5;stroke-dasharray:none}.physical-station.waiting .hatch-touch-outline{fill:#f4b34716;stroke:#dca640;stroke-width:4}.physical-station.can-act.selected:not(.running):not(.waiting) .hatch-touch-outline{fill:#327ced26;stroke:#327ced;stroke-width:5;stroke-dasharray:none}@media (hover:none){.physical-station.can-act:hover:not(.running):not(.waiting):not(.selected) .hatch-touch-outline{stroke:#199b91;stroke-width:3;fill:#62d5bb12;stroke-dasharray:6 4}}.lift-stations>.cabinet-portrait.focused{width:auto;height:420px;max-width:100%;aspect-ratio:275/930;overflow:hidden;align-self:center}.work-main:has(.physical-door-workspace)>.work-heading,.work-main:has(.physical-sensor-workspace)>.work-heading{display:none}.physical-door-stage>.cabinet-portrait{height:clamp(300px,calc(100dvh - 390px),630px);max-height:630px}@media (max-width:650px){.physical-door-stage>.cabinet-portrait{height:500px;max-height:650px}.lift-stations>.cabinet-portrait.focused{height:420px}}.visual-controls .physical-door-stage>.cabinet-portrait{height:clamp(300px,calc(100dvh - 420px),460px);max-height:460px}.visual-controls .physical-door-stage{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(0,1fr);gap:16px}.visual-controls .physical-door-instructions h3{font-size:22px;margin:8px 0 14px}.visual-controls .physical-door-toolbar>span{color:var(--muted);font-size:13px}.physical-door-workspace>.visual-send,.physical-sensor-workspace>.visual-send,.visual-controls>.visual-send{position:sticky;bottom:0;background:var(--panel,#fff);z-index:2}@media (max-width:650px){.equipment-test-navigation{padding:12px}.equipment-test-groups button,.equipment-test-options button{flex:1 1 40%;padding:10px}.visual-controls .physical-door-stage>.cabinet-portrait{height:340px}.equipment-test-groups button{flex-direction:column}.equipment-test-options:not(.picture-choices){grid-template-columns:repeat(2,minmax(0,1fr))}.equipment-test-options:not(.picture-choices) button{flex-direction:row;font-size:12px}.equipment-test-options:not(.picture-choices) .test-picture{width:56px}.equipment-test-options.picture-choices{gap:8px}.equipment-test-options.picture-choices button{padding:10px;font-size:14px}.physical-door-instructions>.test-picture{width:130px}.physical-door-workspace>.visual-send,.physical-sensor-workspace>.visual-send{padding:12px}}.combined-test-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:16px;align-items:stretch}.combined-test-pane{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}.combined-test-pane>h3{margin:0;padding:16px;font-size:18px;border-bottom:1px solid var(--line)}.combined-test-pane .visual-heading{padding:10px 14px;gap:8px}.combined-test-pane .visual-heading h2{font-size:18px}.combined-test-pane .lift-scene{grid-template-columns:minmax(0,1fr) minmax(86px,.65fr);gap:12px;padding:14px;width:100%}.combined-test-pane .lift-floor{gap:6px;padding:8px;min-height:58px}.combined-test-pane .floor-number{width:26px;height:26px;flex-shrink:0}.combined-test-pane .lift-floor b{font-size:12px}.combined-test-pane .lift-stations>.cabinet-portrait.focused{height:300px}.combined-test-pane .belt-scene{padding:20px 14px}.combined-test-pane .visual-send{position:static;margin-top:auto;padding:14px;gap:10px;flex-wrap:wrap}.combined-test-pane .visual-send b{font-size:13px}.combined-picture-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px}.combined-picture-switch button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;min-width:0;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--panel,#fff)}.combined-picture-switch button[aria-pressed=true]{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue);color:var(--blue)}.combined-picture-switch .test-picture{width:105px}.combined-test-pane .physical-door-stage{display:flex;flex-direction:column;padding:10px;gap:8px}.combined-test-pane .physical-door-instructions>.test-picture{display:none}.combined-test-pane .physical-door-instructions h3{font-size:16px;margin:0}.combined-test-pane .physical-door-stage>.cabinet-portrait{height:330px;max-width:100%}.combined-test-pane .physical-door-toolbar{padding:8px 12px}.combined-test-pane .door-operation .test-picture{width:62px}.combined-test-pane .physical-door-workspace,.combined-test-pane .physical-sensor-workspace{display:flex;flex-direction:column;flex:1 1}@media (max-width:650px){.combined-test-columns{gap:10px;padding:10px}.combined-test-pane .lift-scene{display:flex;flex-direction:column}.combined-test-pane .lift-stations>.cabinet-portrait.focused{height:230px}.combined-test-pane .door-operation button{padding:6px}.combined-test-pane .door-operation .test-picture{width:44px}}@media (max-width:480px){.combined-test-columns{grid-template-columns:minmax(0,1fr)}}.response-meanings{margin:16px 0;padding:16px;border:1px solid #dce5ee;border-radius:12px}.response-meanings summary{cursor:pointer;font-weight:700}.response-meaning-rows{max-height:480px;overflow:auto;margin:12px 0}.response-meaning-row{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px 12px;padding:12px 0;border-bottom:1px solid #e4ebf2}.response-meaning-row>div{grid-row:span 2;display:flex;flex-direction:column;gap:6px}.response-meaning-row label{min-width:0}.response-meaning-row small{font-size:12px}.response-meanings>button{margin:6px}@media (max-width:600px){.response-meaning-row{grid-template-columns:65px minmax(0,1fr)}}.cmd-docs{display:grid;gap:14px}.cmd-doc-heading{align-items:flex-start}.cmd-doc-provenance{font-size:12px;line-height:1.5;color:#64748b}.cmd-doc-search{display:flex;align-items:center;gap:8px;max-width:520px;padding:0 10px;border:1px solid #dce5ee;border-radius:9px}.cmd-doc-search input{width:100%;border:0;outline:0;background:transparent}.cmd-doc-count{margin:0;color:var(--muted,#64748b);font-size:13px}.cmd-doc-workspace{display:grid;grid-template-columns:minmax(175px,230px) minmax(0,1fr);gap:12px;align-items:start}.cmd-doc-list{display:grid;gap:5px;max-height:68vh;overflow:auto}.cmd-doc-list button{display:grid;gap:3px;padding:9px 10px;border:1px solid #dce5ee;border-radius:8px;background:transparent;color:inherit;text-align:left;cursor:pointer}.cmd-doc-list button.selected{border-color:#5b8def;background:#eef4ff}.cmd-doc-list small{color:#64748b}.cmd-doc-entry{border:1px solid #dce5ee;border-radius:12px;padding:12px}.cmd-doc-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.cmd-doc-title h3{margin:0 0 3px}.cmd-doc-title small{color:#64748b}.cmd-doc-type{margin-bottom:3px;color:#0f766e;font-size:12px;font-weight:800;letter-spacing:.02em}.cmd-doc-status{padding:4px 8px;border-radius:999px;white-space:nowrap;font-size:11px}.cmd-doc-status.confirmed{background:#e6f6eb;color:#176334}.cmd-doc-status.unconfirmed{background:#fff1df;color:#89510b}.cmd-doc-example{margin-top:14px;padding:12px;border-radius:10px;background:#f7f9fc}.cmd-doc-example h4{margin:0 0 8px}.cmd-byte-line{display:flex;flex-wrap:wrap;gap:5px;padding:11px;border:1px solid #dce5ee;border-radius:9px;background:white;font:700 15px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.cmd-byte-segment{padding:2px 5px;border-radius:5px}.cmd-byte-segment.fixed,.cmd-byte-segment.meta,.cmd-byte-swatch.fixed,.cmd-byte-swatch.meta{background:#edf1f5;color:#475569}.cmd-byte-segment.parameter,.cmd-byte-swatch.parameter{background:#bae6fd;color:#075985}.cmd-byte-segment.address,.cmd-byte-swatch.address{background:#f1f5f9;color:#94a3b8}.cmd-byte-segment.data,.cmd-byte-swatch.data{background:#86efac;color:#14532d}.cmd-byte-segment.command,.cmd-byte-swatch.command{background:#fdba74;color:#7c2d12}.cmd-byte-segment.length,.cmd-byte-swatch.length{background:#f1f5f9;color:#94a3b8}.cmd-byte-segment.checksum,.cmd-byte-swatch.checksum{background:#e2e8f0;color:#64748b}.cmd-byte-segment.status,.cmd-byte-swatch.status{background:#c9f2d4;color:#166534}.cmd-byte-key{display:flex;flex-wrap:wrap;align-items:center;gap:7px 16px;margin:8px 0 10px;font-size:12px}.cmd-byte-key>span{display:inline-flex;align-items:center;gap:5px}.cmd-byte-key>small{color:#94a3b8}.cmd-byte-swatch{width:10px;height:10px;border-radius:3px}.cmd-meaning-table{width:100%;border-collapse:collapse;font-size:13px}.cmd-meaning-table td,.cmd-meaning-table th{padding:8px;border-bottom:1px solid #e4ebf2;text-align:left;vertical-align:top}.cmd-meaning-table th{color:#475569;font-size:12px}.cmd-meaning-table .cmd-address-row{color:#64748b;background:#fafbfc;font-size:12px}.cmd-meaning-table .cmd-address-row code{color:#64748b}.cmd-doc-muted{margin:6px 0;color:#64748b;font-size:12px}.cmd-doc-provenance{margin:0;padding-top:8px;border-top:1px solid #e4ebf2}@media (max-width:800px){.cmd-doc-workspace{grid-template-columns:minmax(0,1fr)}.cmd-doc-list{display:flex;max-height:none;overflow-x:auto;padding-bottom:4px}.cmd-doc-list button{min-width:150px}}@media print{body:has(.cmd-docs) *{visibility:hidden!important}body:has(.cmd-docs) .cmd-docs,body:has(.cmd-docs) .cmd-docs *{visibility:visible!important}body:has(.cmd-docs) .cmd-docs{position:absolute;inset:0;width:auto;border:0;box-shadow:none}.no-print{display:none!important}.cmd-doc-entry{page-break-inside:avoid;break-inside:avoid}}