:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#151b19;--ink:#f5eee0;--muted:#b3bcb0;--accent:#d8ef9a;--line:#e5f2d622;--glass:#202b26ed;--radius:19px;font-family:Inter,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0}button,input,select{font:inherit}button,select{cursor:pointer}button{color:inherit;touch-action:manipulation;background:0 0;border:0;border-radius:12px;min-height:42px;padding:0 14px;font-size:.85rem;font-weight:650}button:hover:not(:disabled){background:#f1f6e617}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,svg:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button[aria-pressed=true]{color:var(--accent);background:#d7ef9824}svg{vertical-align:middle;flex:none;width:19px;height:19px}select,input{max-width:100%;color:var(--ink);border:1px solid var(--line);background:#18211d;border-radius:10px;padding:10px}select{min-height:42px}label{color:var(--muted);gap:7px;font-size:.8rem;display:grid}h1,h2,h3,p{margin:0}p{color:var(--muted);line-height:1.55}em{color:var(--accent);font-style:normal}[hidden]{display:none!important}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.glass{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(17px);backdrop-filter:blur(17px);box-shadow:0 12px 30px #10181552}.primary{background:var(--accent);color:#202919;justify-content:center;align-items:center;gap:10px;display:inline-flex}.primary:hover:not(:disabled){background:#e6f7ba}.quiet{color:var(--muted)}.subtle{border:1px solid var(--line);background:#f1f6e60d}.danger{color:#ffb09e}.eyebrow{color:var(--accent);letter-spacing:.17em;font:700 .64rem/1.3 ui-monospace,monospace}.brand{letter-spacing:-.055em;flex:none;align-items:center;gap:10px;font-size:1.35rem;font-weight:760;line-height:1;display:flex}.brand>span{width:40px;height:40px;color:var(--accent);background:#d8ef9a18;border-radius:13px;place-items:center;display:grid}.brand>span svg{width:24px;height:24px}.brand div>span{color:var(--accent);margin-left:3px}.brand small{color:var(--muted);letter-spacing:.12em;margin-top:5px;font:600 .52rem/1.5 ui-monospace,monospace;display:block}.auth{grid-template-columns:1.12fr 1fr;align-items:stretch;gap:20px;min-height:100dvh;padding:18px;display:grid}.auth-art{border:1px solid var(--line);background:radial-gradient(at 50% 45%,#5c6d4d,#252e28 61%,#1c2621);border-radius:28px;place-items:center;min-height:480px;display:grid;position:relative;overflow:hidden}.auth-art>span{letter-spacing:.16em;color:#e4eccf;font:.7rem ui-monospace,monospace;position:absolute;bottom:28px;left:32px}.orbit-ring{aspect-ratio:1;border:1px solid #d8ef9a40;border-radius:50%;width:min(39vw,470px);position:absolute;box-shadow:0 0 0 50px #d8ef9a0a,0 0 0 105px #d8ef9a09}.auth-cube{color:var(--accent);filter:drop-shadow(0 12px 32px #0e150d77)}.auth-cube svg{stroke-width:.65px;width:min(27vw,300px);height:auto}.auth-box{gap:15px;width:min(100%,470px);margin:auto;padding:32px;display:grid}.auth-box .brand{margin-bottom:38px}.auth-box h1,.empty-card h1{letter-spacing:-.078em;text-wrap:balance;font-size:clamp(2.55rem,5.4vw,5.45rem);line-height:.97}.auth-box form{gap:12px;margin-top:9px;display:grid}.auth-box form button{min-height:49px;margin-top:6px}.error{color:#ffb09e;min-height:1em;font-size:.82rem}.studio{background:radial-gradient(at 55%,#3b4b3e,#222e27 65%,#19211d);height:100dvh;min-height:530px;position:relative;overflow:hidden}#workbench{grid-template-columns:1fr;display:grid;position:absolute;inset:0}#viewer,#plan{min-width:0;min-height:0;position:relative;overflow:hidden}#viewer canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block}#viewer canvas:active{cursor:grabbing}[data-view=empty] #viewer{opacity:.73;transform:translate(11%)scale(1.02)}[data-view=empty] #plan,[data-view="3d"] #plan,[data-view="2d"] #viewer{display:none}[data-view=mixed] #workbench{grid-template-columns:1fr 1fr}[data-view=mixed] #plan{border-right:1px solid #f1f6e622}#plan{background:#202d28}#plan:after{content:attr(data-hint);border:1px solid var(--line);width:max-content;max-width:70%;color:var(--muted);pointer-events:none;background:#17221de8;border-radius:12px;padding:8px 12px;font-size:.72rem;position:absolute;bottom:76px;left:50%;transform:translate(-50%)}.studio:has(#catalog .catalog-cards) #plan:after{bottom:266px}.plan-svg{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.plan-svg[data-tool=wall],.plan-svg[data-tool=place]{cursor:crosshair}.plan-svg[data-tool=pan]{cursor:grab}.room{fill:#b2bc8c22;cursor:pointer}.room.selected{fill:#d8ef9a38}.wall{stroke:#e6d9bf;stroke-linecap:round;cursor:pointer}.wall.selected{stroke:var(--accent)}.opening{stroke:#9bded3;fill:none;cursor:pointer}.opening.door{stroke:#d6ad80}.opening.selected{stroke:var(--accent)}.door-arc,.window-mark{stroke-width:.024px}.preview-wall{stroke:var(--accent);stroke-width:.11px;stroke-linecap:round;opacity:.75}.preview-dot{fill:var(--accent)}.wall-handle,.rotation-handle{fill:var(--accent);stroke:#26321f;stroke-width:.035px;cursor:grab}.wall-handle:active,.rotation-handle:active{cursor:grabbing}.rotation-stem{stroke:var(--accent);stroke-width:.025px;pointer-events:none}.drag-footprint{pointer-events:none;opacity:.72}.drag-footprint rect{fill:#d8ef9a42;stroke:var(--accent);stroke-width:.04px;stroke-dasharray:.1 .06}.rotation-value{fill:var(--accent)}.dimension,.room-name,.furniture text{fill:#dbe4ce;text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:#25352b;stroke-width:.035px;stroke-linejoin:round;font-size:.14px}.room-name{font-size:.185px;font-weight:700}.furniture{cursor:move}.furniture rect{fill:#83956e;stroke:#c3cda3;stroke-width:.018px}.furniture.selected rect{stroke:var(--accent);stroke-width:.045px}.furniture text{fill:#fff;font-size:.12px}.topbar{z-index:3;pointer-events:none;background:linear-gradient(#131b17e8,#15201a00);align-items:center;gap:18px;padding:18px 25px;display:flex;position:absolute;inset:0 0 auto}.topbar>*{pointer-events:auto}#homes,.top-actions{align-items:center;gap:8px;display:flex}#homes select{max-width:180px}.top-actions{margin-left:auto}#save-status{color:var(--muted);margin-right:6px;font-size:.73rem}.mode-tabs{z-index:4;white-space:nowrap;border-radius:16px;gap:3px;margin-left:-5px;padding:4px;display:flex;position:absolute;top:82px;left:50%;transform:translate(-100%)}.view-tabs{z-index:3;white-space:nowrap;border-radius:16px;gap:3px;margin-left:5px;padding:4px;display:flex;position:absolute;top:82px;left:50%;transform:none}.view-tabs button,.mode-tabs button{min-height:37px}#scene-label{pointer-events:none;max-width:36%;position:absolute;top:109px;left:26px}#scene-label h1{letter-spacing:-.065em;overflow-wrap:anywhere;margin:8px 0;font-size:clamp(1.25rem,3.2vw,3.2rem);line-height:1.02}#scene-label>span{color:var(--muted);font-size:.78rem;display:block}.edit-home{pointer-events:auto;min-height:46px;margin-top:16px}.rail{z-index:2;gap:2px;padding:5px;display:grid;position:absolute;top:50%;left:24px;transform:translateY(-50%)}.rail hr{border:0;border-top:1px solid var(--line);width:72%;margin:3px auto}.icon-btn{place-items:center;min-width:41px;min-height:41px;padding:0;display:grid}#context{z-index:4;width:min(285px,100vw - 104px);max-height:calc(100% - 220px);padding:16px;position:absolute;top:142px;right:23px;overflow:auto}[data-view="2d"] #context,[data-view=mixed] #context{max-height:calc(100% - 300px)}.panel-head{justify-content:space-between;align-items:start;gap:10px;margin-bottom:12px;display:flex}.panel-head h2{overflow-wrap:anywhere;margin-top:4px;font-size:1.25rem;line-height:1.14}#context p{font-size:.81rem}#context .power{width:100%;margin-bottom:6px}.device-state{color:var(--muted);align-items:center;gap:8px;margin:12px 0;font-size:.8rem;display:flex}.device-dot{background:#718178;border-radius:50%;width:8px;height:8px}.device-dot.on{background:#ffcb76;box-shadow:0 0 12px #ffcb76}.device-group{margin-top:10px}.device-group h3{color:var(--muted);overflow-wrap:anywhere;padding:4px;font-size:.75rem}.device-row{text-align:left;align-items:center;gap:8px;width:100%;padding:6px;display:flex}.device-row small{color:var(--muted);margin-left:auto}.field-grid{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;display:grid}.field-grid input{width:100%;min-width:0;padding:8px}.field-grid label:only-of-type{grid-column:1/-1}.rotation-buttons{grid-template-columns:1fr 1fr;gap:7px;margin-bottom:8px;display:grid}.edit-actions{justify-content:flex-end;margin-top:6px;display:flex}#foot{bottom:18px;z-index:3;pointer-events:none;justify-content:space-between;align-items:end;gap:8px;display:flex;position:absolute;inset-inline:24px}#foot>*{pointer-events:auto}.floor-bar,.scene-actions,.wall-modes{align-items:center;gap:6px;display:flex}.floor-bar{padding:4px 6px}.floor-bar select{background:0 0;border:none;max-width:150px}.floor-icon{color:var(--accent);margin-left:6px}.scene-actions button{white-space:nowrap}.wall-modes{padding:3px 8px}.wall-modes select{background:0 0;border:none}#catalog{z-index:3;width:min(690px,100% - 403px);padding:9px 12px;position:absolute;bottom:77px;left:91px}.catalog-head{justify-content:space-between;align-items:center;display:flex}.catalog-head button{min-height:30px}.catalog-head svg{width:14px;height:14px}.catalog-categories,.catalog-cards{scrollbar-width:thin;gap:5px;padding:4px;display:flex;overflow:auto}.catalog-categories button{white-space:nowrap;min-height:32px;font-size:.74rem}.catalog-card{border:1px solid var(--line);cursor:grab;background:#131c187d;grid-template-rows:62px auto;place-items:center;min-width:98px;padding:4px;display:grid}.catalog-card img{object-fit:contain}.catalog-card>svg{width:35px;height:35px;color:var(--accent)}.catalog-card span{padding:4px;font-size:.7rem}#empty{pointer-events:none;position:absolute;top:50%;left:clamp(24px,6vw,110px);transform:translateY(-46%)}.empty-card{max-width:min(540px,55vw)}.empty-card h1{margin:14px 0}.empty-card p{max-width:320px}.empty-card button{pointer-events:auto;min-height:48px;margin-top:20px}#notice{z-index:7;color:#25301d;background:#d8ef9a;border-radius:12px;width:max-content;max-width:85%;padding:10px 16px;font-size:.85rem;position:absolute;bottom:25px;left:50%;transform:translate(-50%)}#notice[data-kind=error]{color:#3d211b;background:#ffb09e}#notice:empty{display:none}dialog{color:var(--ink);overscroll-behavior:contain;width:min(390px,90vw);padding:24px}dialog::backdrop{background:#0c120ec2}dialog h2{margin:6px 0 17px}.dialog-actions{justify-content:flex-end;gap:8px;margin:16px 0 4px;display:flex}.webgl-error,.startup-error{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:20px;display:flex;position:absolute;inset:0}@media (width<=840px){#scene-label{top:122px}#catalog{width:min(565px,100% - 132px)}#context{right:14px}.studio:has(#context:not([hidden])) #catalog{width:calc(100% - 381px)}}@media (width<=640px){.auth{grid-template-columns:1fr;gap:6px;padding:12px}.auth-art{min-height:150px;max-height:220px}.auth-art>span{font-size:.55rem;bottom:13px;left:15px}.auth-box{padding:20px 14px}.auth-box .brand{margin-bottom:12px}.topbar{gap:8px;padding:10px 12px}.brand{gap:5px;font-size:1.05rem}.brand>span{border-radius:9px;width:31px;height:31px}.brand>span svg{width:18px;height:18px}.brand small,#save-status{display:none}#homes,.top-actions{gap:3px}#homes select{max-width:93px;padding:5px;font-size:.73rem}.top-actions button{padding-inline:8px;font-size:.73rem}.topbar .icon-btn{min-width:32px}.mode-tabs{margin-left:0;top:58px;left:50%;transform:translate(-50%)}.view-tabs{margin-left:0;top:105px;left:50%;transform:translate(-50%)}#scene-label{max-width:72%;top:115px;left:13px}#scene-label .eyebrow{font-size:.52rem}.rail{padding:2px;left:8px}.rail .icon-btn{min-width:35px;min-height:35px}#context{width:min(244px,100vw - 65px);padding:12px;top:146px;right:9px}#foot{inset-inline:9px;bottom:9px}.floor-bar select{max-width:96px;padding-inline:4px;font-size:.73rem}.wall-modes span,.floor-icon{display:none}.wall-modes select,.scene-actions button{padding-inline:6px;font-size:.73rem}#catalog{width:calc(100% - 57px);padding:5px 7px;bottom:64px;left:48px}.studio:has(#context:not([hidden])) #catalog{width:calc(100% - 57px);padding:5px 7px;bottom:64px;left:48px}#plan:after{font-size:.65rem;bottom:113px}.studio:has(#catalog .catalog-cards) #plan:after{bottom:224px}[data-view=mixed] #workbench{grid-template-rows:1fr 1fr;grid-template-columns:1fr}[data-view=mixed] #plan{border-right:0;border-bottom:1px solid var(--line)}[data-view=mixed] #plan:after{display:none}[data-view=empty] #viewer{transform:translateY(-13%)scale(1.03)}#empty{top:auto;bottom:30px;left:16px;transform:none}.empty-card{max-width:calc(100vw - 32px)}.empty-card h1{font-size:clamp(2.6rem,11vw,4.2rem)}}@media (height<=660px){#scene-label .eyebrow{display:none}#context{top:110px}.rail{gap:0}.rail .icon-btn{min-height:34px}}.primary[aria-pressed=true]{background:var(--accent);color:#202919}@media (width>=841px){[data-view="2d"] #plan:after{max-width:38%;bottom:83px;left:auto;right:24px;transform:none}.studio[data-view="2d"]:has(#context:not([hidden])) #plan:after{bottom:83px}}.catalog-search{flex:1;min-width:0;margin:0 8px}.catalog-search input{width:100%;height:30px;min-height:30px}#context .location-inventory{width:100%;margin-top:12px}#entity-form{border-top:1px solid var(--line);gap:8px;margin-top:14px;padding-top:12px;display:grid}#entity-form small{color:var(--muted)}#inventory-dialog{width:min(880px,100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto}#inventory-dialog h2{margin:5px 0 12px}.inventory-layout{grid-template-columns:1fr 1fr;gap:24px;display:grid}.inventory-results,#inventory-form{align-content:start;gap:9px;min-width:0;display:grid}#inventory-editor{min-width:0}#inventory-editor h3{margin:0 0 10px}#inventory-count{color:var(--muted);margin:2px 0;font-size:.8rem}#inventory-list{gap:5px;max-height:48dvh;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.inventory-row{text-align:left;overflow-wrap:anywhere;grid-template-columns:1fr auto;align-items:start;gap:4px 8px;width:100%;padding:8px 10px;display:grid}.inventory-row small{color:var(--muted);grid-column:1/-1}#inventory-editor details{color:var(--muted);margin:0 0 12px;font-size:.82rem}#inventory-editor summary{cursor:pointer;padding:5px 0}.product-suggestions{flex-wrap:wrap;gap:4px;padding:6px 0;display:flex}.product-suggestions button{align-items:center;gap:5px;font-size:.75rem;display:flex}.product-suggestions svg{color:var(--accent);flex:none}#inventory-form textarea{resize:vertical;border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#17201c;border-radius:10px;padding:9px}#inventory-form .error:empty{display:none}.inventory-actions{flex-wrap:wrap;gap:6px;display:flex}@media (width<=640px){#inventory-dialog{padding:14px}.inventory-layout{grid-template-columns:1fr;gap:18px}#inventory-list{max-height:22dvh}#foot{align-items:end}.scene-actions{flex-wrap:wrap;justify-content:flex-end}.catalog-title{display:none}}.inventory-row span{font-variant-numeric:tabular-nums}#inventory-list li{content-visibility:auto;contain-intrinsic-block-size:auto 56px}#shopping-dialog{overscroll-behavior:contain;width:min(920px,100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto}#shopping-dialog [hidden]{display:none}#shopping-dialog h2{margin:5px 0 14px}#shopping-dialog h3{margin:0 0 12px}#shopping-dialog label{min-width:0}#shopping-dialog form,#shopping-dialog fieldset,.shop-product-fields{gap:10px;min-width:0;display:grid}#shopping-dialog textarea{resize:vertical;border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#17201c;border-radius:10px;padding:9px}#shopping-dialog select{width:100%;min-width:0}#shopping-dialog input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent,#d7ec99);flex:none}.shop-summary,.shop-nav,.shop-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.shop-summary{border:1px solid var(--line);font-variant-numeric:tabular-nums;background:#17201c;border-radius:12px;gap:8px 18px;padding:12px 14px}.shop-summary svg,.shop-row svg,.shop-stock svg{color:#d7ec99;flex:none}.shop-nav{margin:12px 0}.shop-nav [aria-pressed=true]{color:#18221a;background:#d7ec99}.shop-columns{grid-template-columns:1fr 1fr;gap:24px;display:grid}.shop-columns>section{min-width:0}.shop-muted,.shop-list small,.shop-history time{color:var(--muted);font-size:.84rem}.shop-list{overflow-wrap:anywhere;gap:6px;margin:8px 0 12px;padding:0;list-style:none;display:grid}.shop-list>li{border:1px solid var(--line);content-visibility:auto;contain-intrinsic-block-size:auto 66px;font-variant-numeric:tabular-nums;border-radius:10px;padding:9px 10px}.shop-list small{display:block}.shop-row,.shop-stock-title{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;display:grid}#shopping-dialog .shop-check{flex-direction:row;align-items:center;gap:7px;min-height:32px;display:flex}.shop-stock-title{grid-template-columns:auto minmax(0,1fr) auto}#shopping-dialog .shop-stock form{align-items:end;margin-top:7px;display:flex}.shop-stock input[type=number]{width:100px}.shop-import{border-top:1px solid var(--line);margin-top:16px;padding-top:10px}.shop-import summary{cursor:pointer;margin-bottom:8px}.shop-review-row{border:1px solid var(--line);overflow-wrap:anywhere;border-radius:12px;margin:0;padding:12px}.shop-review-row legend{max-width:100%;padding:0 6px;font-weight:700}.shop-review-row p{margin:0}.shop-review-flag{color:#ffd394;font-size:.85rem}.shop-history time{margin-bottom:4px;display:block}.shop-history ul{padding-left:18px}.shop-message{color:#d7ec99}.shop-message:empty,.shop-error:empty{display:none}@media (width<=650px){#shopping-dialog{padding:14px}.shop-columns{grid-template-columns:1fr;gap:18px}.shop-summary{gap:6px 12px;padding:10px;font-size:.83rem}}.mobile-nav,.view-controls,[data-action=properties],[data-action=install],.receipt-camera,.scene-actions [data-action=shopping] svg,.scene-actions [data-action=inventory] svg{display:none}.scene-actions [data-action=devices] svg{margin-inline-end:4px}#connection{z-index:5;top:calc(8px + env(safe-area-inset-top));color:#ffe0ab;pointer-events:none;background:#392d20;border-radius:10px;width:max-content;max-width:90%;padding:6px 10px;font-size:.75rem;position:absolute;left:50%;transform:translate(-50%)}@media (width<=640px),(height<=560px) and (pointer:coarse){.studio{--left:max(12px,env(safe-area-inset-left));--right:max(12px,env(safe-area-inset-right));--top:env(safe-area-inset-top);--bottom:env(safe-area-inset-bottom);--dock:calc(68px + var(--bottom));min-height:0}.studio .glass{-webkit-backdrop-filter:none;backdrop-filter:none}.topbar{padding:calc(7px + var(--top)) var(--right) 6px var(--left);gap:5px}.topbar .brand{gap:5px;font-size:1rem}.topbar .brand>span{width:28px;height:30px}.topbar .brand>span svg{width:19px}.topbar .brand small,.studio #mode,.edit-home{display:none}#save-status{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;display:block;position:absolute;overflow:hidden}.studio[data-dirty=true] [data-action=save]:after{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.studio [data-action=save]{gap:4px}#homes,.top-actions{gap:0}#homes{flex:1;min-width:0}#homes select{flex:1;min-width:0;max-width:100%;padding:5px;font-size:.76rem}.top-actions button{padding-inline:5px;font-size:.75rem}.topbar button,.topbar select{min-height:44px}.topbar .icon-btn{min-width:34px}[data-action=install]{display:grid}.view-tabs{top:calc(54px + var(--top));margin:0;padding:2px;left:50%;transform:translate(-50%)}.view-tabs button{min-height:44px;padding-inline:10px}#scene-label{top:calc(71px + var(--top));left:var(--left);max-width:calc(100% - 88px)}#scene-label h1{text-wrap:balance;margin:4px 0;font-size:clamp(1.7rem,7vw,2.6rem)}#scene-label .eyebrow{font-size:.56rem;display:block}[data-mode=edit] #scene-label{display:none}#foot{inset-inline:0;display:block;bottom:0}.floor-bar{bottom:calc(var(--dock) + 9px);left:var(--left);padding:0 3px;position:absolute}.floor-bar select{max-width:120px;font-size:.8rem}.floor-bar .icon-btn{min-width:44px;min-height:44px}.scene-actions{padding:3px var(--right) calc(5px + var(--bottom)) var(--left);border-top:1px solid var(--line);background:#1b2520;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;display:grid}.mobile-nav{display:contents}.scene-actions button{min-height:58px;box-shadow:none;background:0 0;border:0;border-radius:10px;align-content:center;place-items:center;gap:3px;padding:3px 0;font-size:clamp(.59rem,2.55vw,.76rem);display:grid}.scene-actions button[aria-pressed=true]{background:#d7ef9820}.scene-actions [data-action] svg{width:21px;height:21px;margin:0;display:block}.wall-modes{right:var(--right);bottom:calc(var(--dock) + 9px);padding:0 4px;position:absolute}.wall-modes span{display:none}.wall-modes select{font-size:.8rem}.rail,.view-controls{top:auto;left:auto;right:var(--right);bottom:calc(var(--dock) + 64px);flex-direction:column;gap:0;padding:2px;display:flex;transform:none}.rail .icon-btn{min-width:44px;min-height:44px}.rail hr{display:none}[data-view="2d"] .rail,[data-view=mixed] .rail{bottom:auto;top:calc(107px + var(--top))}#catalog{left:var(--left);right:var(--right);width:auto;bottom:calc(var(--dock) + 62px);max-height:36%;padding:4px 9px;overflow:auto}.studio:has(#context:not([hidden])) #catalog{left:var(--left);right:var(--right);width:auto;bottom:calc(var(--dock) + 62px);max-height:36%;padding:4px 9px;overflow:auto}.catalog-head button,.catalog-categories button{min-height:44px}#plan:after{bottom:calc(var(--dock) + 126px);max-width:68%;font-size:.65rem}.studio:has(#catalog .catalog-cards) #plan:after{bottom:calc(var(--dock) + 126px);max-width:68%;font-size:.65rem}.studio:has(#catalog .catalog-cards) #plan:after{display:none}.studio:has(#context:not([hidden])) #plan:after{display:none}#context,[data-view="2d"] #context,[data-view=mixed] #context{top:auto;right:var(--right);left:var(--left);bottom:calc(var(--dock) + 61px);width:auto;max-height:calc(100% - var(--top) - var(--dock) - 122px);overscroll-behavior:contain;padding:9px 12px}[data-view="2d"] #context,[data-view=mixed] #context{bottom:calc(var(--dock) + 121px);max-height:calc(100% - var(--top) - var(--dock) - 181px)}.context-actions{align-items:center;display:flex}[data-view="2d"] [data-action=properties],[data-view=mixed] [data-action=properties]{display:block}[data-view="2d"] #context:not([data-expanded=true]) #context-body,[data-view=mixed] #context:not([data-expanded=true]) #context-body{display:none}#context .panel-head{align-items:center;margin-bottom:2px}#context .panel-head button{min-height:44px}#context .panel-head h2{font-size:1rem}.wall-handle,.rotation-handle{r:.21px}#notice{bottom:calc(var(--dock) + 10px)}#connection{top:auto;bottom:calc(var(--dock) + 61px)}#empty{inset-inline:var(--left) var(--right);bottom:calc(20px + var(--bottom))}.auth{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}dialog input,dialog textarea,dialog select,#context input,#context select,.catalog-search input,.auth input{font-size:16px}#shopping-dialog button,#inventory-dialog button,#shopping-dialog .shop-check{min-height:44px}.inventory-layout,.shop-columns{grid-template-columns:minmax(0,1fr)}#inventory-dialog label{min-width:0}#inventory-dialog input,#inventory-dialog select{width:100%;min-width:0}.inventory-row{grid-template-columns:minmax(0,1fr) auto}.inventory-row>*{min-width:0}}@media (height<=560px) and (pointer:coarse){.studio{--dock:calc(50px + var(--bottom))}.scene-actions button{grid-auto-flow:column;justify-content:center;min-height:43px}.scene-actions [data-action] svg{width:16px;height:16px}[data-view="2d"] .rail,[data-view=mixed] .rail{top:calc(var(--top) + 55px);right:var(--right);flex-direction:row}[data-mode=edit] .view-tabs{left:var(--left);transform:none}[data-view="2d"] #context,[data-view=mixed] #context{width:min(280px,42vw);left:auto;bottom:calc(var(--dock) + 62px);max-height:calc(100% - var(--top) - var(--dock) - 174px)}#catalog{width:min(360px,51vw);right:auto}.studio:has(#context:not([hidden])) #catalog{width:min(360px,51vw);right:auto}#plan:after{display:none}}.mobile-receipt{display:none}@media (width<=640px),(height<=560px) and (pointer:coarse){.mobile-receipt{flex-wrap:wrap;gap:8px;margin:4px 0 16px;display:flex}.shop-import{scroll-margin-top:60px}[data-view="2d"] .rail{max-height:calc(100% - var(--top) - var(--dock) - 174px);overflow:auto}}.configure-actions{width:100%;margin-top:12px}#context[data-compact=true]{inset:var(--popover-top,0px) auto auto var(--popover-left,0px);width:var(--popover-width,270px);max-height:var(--popover-height,280px);overscroll-behavior:contain;background:#202b26f7;border-color:#aec39d50;padding:10px 12px;position:fixed;overflow:auto}#context[data-compact=true] .panel-head{align-items:center;margin:0 0 6px}#context[data-compact=true] .panel-head h2{font-size:1rem}#context[data-compact=true] [data-action=properties]{display:none}.daily-controls{gap:5px;display:grid}.daily-controls svg{width:16px;height:16px;color:var(--accent)}.daily-row,.daily-slider{color:var(--ink);min-height:44px;font-size:.82rem}.daily-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.daily-row>span,.daily-slider>span{overflow-wrap:anywhere;min-width:0}.daily-row select{min-width:0;max-width:55%;padding-inline:6px}.daily-row output{overflow-wrap:anywhere;max-width:48%;color:var(--accent)}.daily-switch input{appearance:none;background:radial-gradient(circle at 10px 50%,var(--muted) 0 5px,transparent 6px) #151e19;border-radius:999px;flex:none;width:38px;height:22px;margin:0;padding:0}.daily-switch input:checked{background:radial-gradient(circle at 27px 50%,#24301e 0 5px,transparent 6px) var(--accent)}.daily-switch input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.daily-slider{grid-template-columns:1fr auto;align-items:center;gap:0 6px;display:grid}.daily-slider input{width:100%;accent-color:var(--accent);grid-column:1/-1;min-height:32px;margin:0;padding:0}.daily-slider output{color:var(--accent);font-variant-numeric:tabular-nums}.daily-command{text-align:left;overflow-wrap:anywhere;width:100%}#actions-dialog{width:min(620px,100% - 24px);max-height:calc(100dvh - 24px);overflow:auto}#actions-dialog form{gap:12px;display:grid}#actions-dialog h2{margin:4px 0}#actions-dialog .action-check{align-items:center;gap:8px;min-height:44px;display:flex}.action-check input{width:20px;height:20px;accent-color:var(--accent)}.action-cards,.action-fields,.action-binding{gap:9px;display:grid}.action-cards>details{border:1px solid var(--line);border-radius:12px;padding:8px 12px}.action-cards summary{cursor:pointer;overflow-wrap:anywhere;padding-block:8px}.action-cards summary small{color:var(--muted);margin-inline-start:4px}.action-fields label{min-width:0}.action-fields input,.action-fields select,.action-fields textarea{width:100%;min-width:0}.action-fields textarea{font:inherit;border:1px solid var(--line);color:var(--ink);background:#18211d;border-radius:10px;padding:9px}.action-binding label+label{margin-top:8px}.action-order,.action-editor-footer{flex-wrap:wrap;gap:6px;display:flex}.action-editor-footer{align-items:end}.action-editor-footer label{flex:1;min-width:130px}#actions-dialog .error:empty{display:none}@media (width<=640px),(height<=560px) and (pointer:coarse){.studio{--safe-left:env(safe-area-inset-left);--safe-right:env(safe-area-inset-right)}.studio input:not([type=range]),.studio select,.studio textarea,.auth input,:is(#shopping-dialog,#inventory-dialog,#actions-dialog) :is(input:not([type=range]),select,textarea){font-size:16px}.studio select,.studio summary,.studio label,.studio input,.studio textarea{touch-action:manipulation}.scene-actions button{white-space:normal;overflow-wrap:anywhere;min-width:0;line-height:1.1}.studio button,.studio summary{-webkit-tap-highlight-color:transparent}#shopping-dialog .shop-import label{grid-template-columns:minmax(0,1fr)}#shopping-dialog input[type=file]{width:100%;min-width:0;overflow:hidden}.topbar .brand{font-size:.92rem}.topbar .icon-btn{min-width:36px}#homes select,.floor-bar select,.wall-modes select{appearance:none;text-overflow:ellipsis;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' stroke='%23f5eee0' stroke-width='1.6' fill='none'/%3E%3C/svg%3E");background-position:right 6px center;background-repeat:no-repeat;padding-inline:7px 22px}#shopping-dialog,#inventory-dialog,#actions-dialog{inset:var(--visible-top,0px) auto auto var(--visible-left,0px);width:var(--visible-width,100vw);max-width:none;height:var(--visible-height,100dvh);max-height:none;padding:0 max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));overscroll-behavior:contain;scroll-padding-block:calc(72px + env(safe-area-inset-top)) 28px;background:#202b26;border:0;border-radius:0;margin:0;position:fixed;overflow:auto}#shopping-dialog .panel-head,#inventory-dialog .panel-head,#actions-dialog .panel-head{z-index:1;padding:calc(9px + env(safe-area-inset-top)) 0 8px;border-bottom:1px solid var(--line);background:#202b26;gap:6px;margin:0 0 12px;position:sticky;top:0}:is(#shopping-dialog,#inventory-dialog,#actions-dialog) .panel-head>div{min-width:0}:is(#shopping-dialog,#inventory-dialog,#actions-dialog) .panel-head .eyebrow{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#shopping-dialog .panel-head h2,#inventory-dialog .panel-head h2,#actions-dialog h2{margin:3px 0}#inventory-list{max-height:none;overflow:visible}.daily-slider input{touch-action:pan-y}#actions-dialog button{min-height:44px}}@media (width<=360px){.topbar .brand>span{display:none}.topbar{gap:3px}.scene-actions{padding-inline:max(6px,env(safe-area-inset-left)) max(6px,env(safe-area-inset-right))}}.node-entry{width:100%;margin-bottom:8px}#nodes-dialog{background:#202b26ef;width:min(460px,100vw - 24px);max-height:min(720px,80dvh);margin-inline:16px auto;overflow:auto}#nodes-dialog::backdrop{background:#10181239}#nodes-dialog .panel-head{z-index:1;background:#202b26;padding:9px 0;position:sticky;top:-24px}#nodes-dialog h2{margin:4px 0}.node-tabs,.node-buttons,.node-checks{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.node-tabs button{padding-inline:8px}.node-tools,#nodes-dialog form{gap:9px;margin:8px 0;display:grid}#nodes-dialog input:not([type=checkbox]),#nodes-dialog select{width:100%;min-width:0}#nodes-dialog fieldset{border:1px solid var(--line);border-radius:10px;min-width:0}.node-checks label,.node-check{align-items:center;gap:5px;min-height:40px;display:flex}.node-live h3{margin-top:15px;font-size:.93rem}.node-live ul{margin:5px 0 12px;padding:0;list-style:none}.node-live li{border-bottom:1px solid var(--line);overflow-wrap:anywhere;gap:4px;padding:7px 0;display:grid}.node-live small{color:var(--muted)}#nodes-dialog .error:empty{display:none}#tracking-legend{z-index:2;pointer-events:none;padding:8px 10px;font-size:.73rem;position:absolute;top:36%;left:16px}#tracking-legend span{overflow-wrap:anywhere;display:block}#tracking-legend span:before{content:"";background:var(--marker);border-radius:50%;width:7px;height:7px;margin-inline-end:6px;display:inline-block}@media (width<=640px),(height<=560px) and (pointer:coarse){#shopping-dialog,#inventory-dialog,#nodes-dialog{--panel-left:max(12px,env(safe-area-inset-left));--panel-right:max(12px,env(safe-area-inset-right));--panel-bottom:max(12px,env(safe-area-inset-bottom));inset:auto auto calc(var(--visible-bottom,0px) + var(--panel-bottom)) calc(var(--visible-left,0px) + var(--panel-left));width:min(450px,calc(var(--visible-width,100vw) - var(--panel-left) - var(--panel-right)));height:auto;max-height:min(calc(var(--visible-height,100dvh) * .68),calc(var(--visible-height,100dvh) - env(safe-area-inset-top) - var(--panel-bottom) - 14px));background:#202b26e6;border:1px solid #afc6a450;border-radius:20px;margin:0;padding:0 14px 15px;scroll-padding-block:65px 22px;position:fixed}:is(#shopping-dialog,#inventory-dialog,#nodes-dialog)::backdrop{background:#1018123b}:is(#shopping-dialog,#inventory-dialog,#nodes-dialog) .panel-head{background:#202b26;padding:9px 0 8px;position:sticky;top:0}#nodes-dialog :is(input:not([type=checkbox]),select){font-size:16px}#tracking-legend{top:auto;bottom:calc(var(--dock) + 60px);left:var(--left);max-width:55%}}#physical-dialog{background:#202b26f5;width:min(485px,100vw - 24px);max-height:75dvh;overflow:auto}#physical-dialog h2{margin:4px 0}#physical-dialog form,.physical-key:not(:empty),.physical-card{gap:8px;margin-block:9px;display:grid}#physical-dialog input,#physical-dialog select,.physical-card input,.physical-card select{width:100%;min-width:0}.physical-buttons{flex-wrap:wrap;gap:5px;display:flex}.physical-list{padding:0;list-style:none}.physical-list>li{border-top:1px solid var(--line);padding:9px 0}.physical-list small,.physical-card p{color:var(--muted);font-size:.78rem}.physical-list ul{color:var(--muted);padding:5px 0 5px 16px;font-size:.78rem}.physical-card button{text-align:left;min-height:42px}.physical-card strong{overflow-wrap:anywhere}.physical-brightness{gap:2px;display:grid}.physical-brightness>span{justify-content:space-between;gap:8px;display:flex}[data-brightness-value]{color:var(--accent);font-variant-numeric:tabular-nums}.physical-card input[type=range]{accent-color:var(--accent);min-height:44px;margin:0;padding:0}.physical-input-row{align-items:end;gap:6px;display:flex}.physical-input-row label{flex:1;min-width:0}.physical-card .physical-status,.physical-card .physical-details p{margin:0}.physical-status:empty{display:none}.physical-status[data-error=true]{color:#ffb5a9}.physical-details{border-top:1px solid var(--line);color:var(--muted);padding-top:4px;font-size:.78rem}.physical-details summary{cursor:pointer;align-content:center;min-height:30px}.physical-download{min-height:44px;color:var(--accent);align-items:center;display:inline-flex}@media (width<=640px),(height<=560px) and (pointer:coarse){#physical-dialog{inset:auto auto calc(var(--visible-bottom,0px) + max(12px,env(safe-area-inset-bottom))) calc(var(--visible-left,0px) + max(12px,env(safe-area-inset-left)));width:min(460px,calc(var(--visible-width,100vw) - max(12px,env(safe-area-inset-left)) - max(12px,env(safe-area-inset-right))));max-height:calc(var(--visible-height,100dvh)*.72);margin:0;padding:12px 14px;position:fixed}#physical-dialog .panel-head{z-index:1;background:#202b26;padding:7px 0;position:sticky;top:-12px}#physical-dialog :is(input,select),.physical-card select{font-size:16px}}#bluetooth-dialog{width:min(680px,100% - 24px);max-height:85dvh;padding:18px}#bluetooth-dialog h2{margin:0}.bluetooth-content{overflow-wrap:anywhere}.bluetooth-content details{border-bottom:1px solid var(--line,#647087);padding:10px 0}.bluetooth-content summary{cursor:pointer}.bluetooth-content form{gap:10px;margin:12px 0;display:grid}.bluetooth-content label{gap:4px;display:grid}.bluetooth-content label.bluetooth-check{align-items:center;gap:8px;display:flex}.bluetooth-content input,.bluetooth-content select{min-width:0;font-size:16px}.bluetooth-actions{flex-wrap:wrap;gap:8px;display:flex}#context .property-actions,#context .edit-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:8px 0;display:grid}#context .property-actions button,#context .rotation-buttons button{justify-content:center;align-items:center;gap:6px;display:flex}#context .property-readout{color:var(--muted);align-content:start;gap:5px;font-size:.76rem;display:grid}#context .property-readout strong{color:var(--ink);overflow-wrap:anywhere}#node-properties fieldset{margin:0;padding:6px 8px}.plan-svg [data-type=node]{cursor:grab}.plan-svg [data-type=node]:focus-visible rect{stroke:#d7ec99;stroke-width:.065px}@media (width<=640px){[data-view="2d"] #context,[data-view=mixed] #context{max-height:min(39dvh,calc(100% - var(--top) - var(--dock) - 181px))}}.computer-dialog{width:min(960px,100vw - 24px);max-height:90dvh;padding:18px;overflow:auto}.computer-dialog :is(input,select,textarea){width:100%;min-width:0;color:var(--ink);border:1px solid var(--line);background:#151b19;border-radius:8px;padding:8px;font-size:16px}.computer-dialog h2,.computer-dialog h3{margin:0}.computer-dialog button{min-height:44px}.computer-dialog :is(p,summary,label){color:var(--muted)}.computer-dialog summary{cursor:pointer;padding:10px 0}.computer-dialog label{gap:4px;font-size:.83rem;display:grid}.computer-dialog .computer-check{align-items:center;gap:8px;display:flex}.computer-check input{width:auto}.computer-dialog .panel-head{z-index:1;background:#202b26;padding:12px 0;position:sticky;top:-18px}.computer-shell{grid-template-columns:minmax(155px,.85fr) minmax(0,3fr);gap:18px;display:grid}.computer-library{border-right:1px solid var(--line);align-content:start;gap:7px;padding-right:14px;display:grid}.computer-library h3,.computer-history h3{padding:10px 0 4px;font-size:.92rem}.computer-library button{text-align:left;overflow-wrap:anywhere}.computer-scenarios{gap:6px;max-height:15rem;display:grid;overflow:auto}.computer-scenarios button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.computer-editor{align-content:start;gap:10px;min-width:0;display:grid}.computer-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:5px 0;display:grid}.computer-wide{grid-column:1/-1}.computer-toolbar,.computer-history-row{flex-wrap:wrap;gap:6px;display:flex}.computer-history-row{margin-bottom:5px}.computer-status{margin:0;font-size:.86rem}.computer-steps{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.computer-steps>li{border-bottom:1px solid var(--line);padding:10px 0}.computer-step-head{grid-template-columns:28px minmax(0,1fr) repeat(3,44px);align-items:center;gap:4px;display:grid}.computer-number{color:var(--accent);font-variant-numeric:tabular-nums}.computer-add{border-style:dashed}.computer-history{border-top:1px solid var(--line)}.physical-input-row input{width:100%;min-width:0;font-size:16px}[data-shortcut]{overflow-wrap:anywhere}@media (width<=640px){.computer-dialog{width:calc(100% - 16px);max-height:calc(var(--visible-height,100dvh) - 28px);padding:12px}.computer-dialog .panel-head{top:-12px}.computer-shell{grid-template-columns:minmax(0,1fr);gap:12px}.computer-library{border:0;border-bottom:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));padding:0 0 10px}.computer-library :is(h3,.computer-scenarios,.computer-import){grid-column:1/-1}}#context[data-remote=true]{padding:12px 14px}#context[data-remote=true] .eyebrow{font-size:.63rem}#context[data-remote=true] .panel-head h2{overflow-wrap:anywhere}.pc-remote{gap:7px;min-width:0;margin:0}.pc-remote button,.remote-app-dialog button{touch-action:manipulation}.pc-remote button:enabled:hover{border-color:var(--accent)}.remote-transport,.remote-power{align-items:center;gap:5px;display:flex}.remote-transport .remote-key{flex:1}.pc-remote .remote-key{background:#151e19;border:1px solid #a4b99b40;border-radius:10px;place-items:center;min-width:44px;min-height:44px;padding:0;display:grid}.pc-remote [data-value=play-pause]{background:var(--accent);color:#172119}.pc-remote [aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--accent)}.remote-system{grid-template-columns:1fr auto;align-items:center;gap:5px;display:grid}.remote-system .physical-details{border:0;grid-column:2;padding:0}.remote-system .physical-details[open]{grid-column:1/-1}.remote-system .physical-details summary{min-height:44px}.remote-power .remote-key{background:0 0}.remote-power svg{width:18px;height:18px}.remote-volume{color:var(--muted);grid-template-columns:auto minmax(0,1fr) 3.4em;align-items:center;gap:10px;font-size:.78rem;display:grid}.remote-volume output{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}.remote-group{border-top:1px solid #a4b99b35;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 8px;min-width:0;padding-top:5px;display:grid}.remote-group h3{grid-column:1/-1;margin:0;font-size:.76rem}.pc-remote .remote-manage{grid-column:2}.pc-remote .remote-manage,.pc-remote .remote-run button{min-height:44px;color:var(--accent);background:0 0;border:0;padding:0 5px;font-size:.75rem}.remote-strip{scrollbar-width:thin;overscroll-behavior-inline:contain;gap:6px;padding:2px;display:flex;overflow-x:auto}.remote-strip:empty{display:none}.remote-strip small{color:var(--muted);font-size:.73rem}.pc-remote .remote-strip button{background:#151e19;border:1px solid #a4b99b40;border-radius:9px;flex:none;align-items:center;gap:6px;max-width:175px;min-height:44px;padding:4px 9px;font-size:.78rem;display:flex}.remote-strip button>div{gap:1px;min-width:0;display:grid}.remote-strip b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.remote-strip button>span{font-size:1rem}.remote-run{overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:6px;font-size:.76rem;display:flex}.remote-run[data-running=true]{border-inline-start:2px solid var(--accent);padding-inline-start:8px}.pc-remote :is([data-remote-error],[data-remote-status],.physical-status):empty{display:none}.pc-remote [data-remote-error]{color:#ffbdb1;margin:0}.pc-remote :focus-visible,.remote-app-dialog :focus-visible{outline:2px solid var(--accent);outline-offset:1px}.remote-app-dialog{overscroll-behavior:contain;width:min(420px,100% - 24px);max-height:calc(100dvh - 24px);color:var(--ink);background:#202b26;padding:16px;overflow:auto}.remote-app-dialog form,.remote-app-dialog label,.remote-app-dialog details[open]{gap:8px;display:grid}.remote-app-dialog :is(button,summary,input,select){min-height:44px}.remote-app-dialog :is(input,select){width:100%;font-size:16px}.remote-app-dialog summary{align-content:center;display:list-item}.remote-app-dialog .panel-head h2,.remote-app-dialog p{margin:0}.remote-app-actions{flex-wrap:wrap;gap:6px;display:flex}.computer-parameters [hidden]{display:none}.computer-parameters fieldset{flex-wrap:wrap;grid-column:1/-1;gap:4px 10px;min-width:0;display:flex}.computer-parameters fieldset label{align-items:center;gap:4px;min-height:44px;display:flex}.computer-dialog input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);flex:none;padding:0}
