@font-face{font-family:Barlow;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/barlow-400-qiz4-Cze.woff2)format("woff2")}@font-face{font-family:Barlow;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/barlow-500-BPAOfeC8.woff2)format("woff2")}@font-face{font-family:Barlow;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/barlow-600-DILqtrty.woff2)format("woff2")}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/barlow-semi-condensed-400-DlzeKIMS.woff2)format("woff2")}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/barlow-semi-condensed-500-G0uxJNrM.woff2)format("woff2")}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/barlow-semi-condensed-600-BkLiAYu4.woff2)format("woff2")}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/dm-mono-400-4GdczIuU.woff2)format("woff2")}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/dm-mono-500-DRMDZjhP.woff2)format("woff2")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}body{margin:0;font:14px system-ui,sans-serif}img{max-width:100%}[hidden]{display:none!important}:root{--desk:#e6ebe9;--sheet:#fafbfa;--panel:#f3f6f5;--ink:#141b1f;--mute:#55636a;--line:#cbd4d2;--accent:#017a74;--accent-soft:#d3ebe8;--window:#5c63b1;--wall:#141b1f;--floor:#fff;--tile:#eef2f4;--deck:#e3e7e5;--warn:#b45309;--bad:#c0261b;--tape:#f6c933;--tape-ink:#9a6b00;--tape-on:#fff8dc;--f-display:"Barlow Semi Condensed", "Arial Narrow", Arial, sans-serif;--f-body:"Barlow", "Helvetica Neue", Arial, sans-serif;--f-data:"DM Mono", ui-monospace, Menlo, Consolas, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--desk:#0f1518;--sheet:#171f23;--panel:#141b1f;--ink:#e6ecea;--mute:#95a3a7;--line:#2e3a3f;--accent:#3cc8be;--accent-soft:#143a39;--window:#a3a9ec;--wall:#d9e0dd;--floor:#1e272c;--tile:#232e34;--deck:#1a2327;--warn:#f0a44b;--bad:#ff7b6e;--tape:#f6c933;--tape-ink:#f0b92a;--tape-on:#141b1f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--desk:#0f1518;--sheet:#171f23;--panel:#141b1f;--ink:#e6ecea;--mute:#95a3a7;--line:#2e3a3f;--accent:#3cc8be;--accent-soft:#143a39;--window:#a3a9ec;--wall:#d9e0dd;--floor:#1e272c;--tile:#232e34;--deck:#1a2327;--warn:#f0a44b;--bad:#ff7b6e;--tape:#f6c933;--tape-ink:#f0b92a;--tape-on:#141b1f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body{height:100%}body{background:var(--desk);color:var(--ink);font:400 14px/1.4 var(--f-body);box-sizing:border-box}*,:before,:after{box-sizing:inherit}button,input,select{font:inherit;color:inherit}h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0;font-weight:600}#app{height:100%;padding-left:max(0px, env(safe-area-inset-left,0px));padding-right:max(0px, env(safe-area-inset-right,0px));grid-template-rows:auto auto auto minmax(0,1fr);display:grid}.top{padding-block:10px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));background:var(--sheet);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.brand{flex-wrap:wrap;align-items:baseline;gap:10px;min-width:0;display:flex}.brand h1{letter-spacing:.01em;font-size:21px}.brand p{color:var(--mute);font:400 12px var(--f-data);font-variant-numeric:tabular-nums;margin:0}.spacer{flex:auto}.seg{border:1px solid var(--line);background:var(--panel);border-radius:4px;display:inline-flex;overflow:hidden}.seg button{cursor:pointer;background:0 0;border:0;padding:6px 12px;font-weight:500}.seg button+button{border-left:1px solid var(--line)}.seg button[aria-pressed=true]{background:var(--ink);color:var(--sheet)}.btn{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:4px;padding:6px 10px;font-weight:500}@media (hover:hover){.btn:not(.primary):hover:not(:disabled),.seg button:hover:not([aria-pressed=true]){background:var(--accent-soft)}.btn.primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 85%, var(--ink));border-color:color-mix(in srgb, var(--accent) 85%, var(--ink))}}.btn:disabled{opacity:.45;cursor:default}a.btn{color:inherit;text-decoration:none;display:inline-block}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--sheet)}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}#saveState{font:400 12px var(--f-data);color:var(--mute);white-space:nowrap}.who{min-width:0;color:var(--ink);align-items:center;gap:8px;font-size:13px;text-decoration:none;display:inline-flex}.who[hidden]{display:none}#acctWho{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.who:hover #acctWho{text-decoration:underline}.who .tier{font:600 11px/1 var(--f-body);letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--accent);color:var(--accent);background:var(--accent-soft);white-space:nowrap;border-radius:99px;padding:3px 7px}.menus{gap:6px;display:flex}.menu{position:relative}.menu>.btn[aria-expanded=true]{background:var(--ink);color:var(--sheet);border-color:var(--ink)}.menu-list{z-index:30;background:var(--sheet);border:1px solid var(--line);border-radius:6px;flex-direction:column;min-width:230px;padding:5px;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 12px 32px #0000002e}.menu-list [role=menuitem]{text-align:left;width:100%;color:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:4px;padding:6px 9px;font-weight:500;text-decoration:none;display:block}.menu-list [role=menuitem]:hover,.menu-list [role=menuitem]:focus-visible{background:var(--accent-soft);outline:0}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;flex:none;gap:2px;margin:14px 0 4px;display:flex}.tabs [role=tab]{cursor:pointer;color:var(--mute);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;flex:none;margin-bottom:-1px;padding:7px 11px;font-weight:500}.tabs [role=tab]:hover{color:var(--ink)}.tabs [role=tab][aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}.tabs [role=tab]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.tab-panel{padding-top:6px}.fb-kind{margin-bottom:12px;display:flex}.fb-kind label{cursor:pointer;flex:1;justify-content:center;align-items:center;padding:7px 12px;font-weight:500;display:flex}.fb-kind label+label{border-left:1px solid var(--line)}.fb-kind input{opacity:0;pointer-events:none;position:absolute}.fb-kind label:has(input:checked){background:var(--ink);color:var(--sheet)}.fb-kind label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:-2px}.fb-ask{margin-bottom:6px;font-weight:500;display:block}.fb textarea{resize:vertical;background:var(--sheet);width:100%;min-height:140px;color:var(--ink);border:1px solid var(--line);font:inherit;border-radius:4px;padding:8px;line-height:1.45}.fb-layout{align-items:center;gap:6px;margin-top:8px;font-size:13px;display:flex}.fb-error{color:var(--bad);min-height:1em;margin:6px 0 0;font-size:13px}.menu-head{color:var(--mute);margin:5px 9px 1px;font-size:11.5px;font-weight:600}.menu-list hr{border:0;border-top:1px solid var(--line);width:auto;margin:4px 2px}.menu-field{gap:3px;padding:4px 9px 8px;display:grid}.menu-field label{color:var(--mute);font-size:12px}.menu-field select{background:var(--panel);border:1px solid var(--line);border-radius:3px;width:100%;padding:5px 7px}.menu-foot{font:400 11.5px var(--f-data);color:var(--mute);margin:0;padding:3px 9px 2px}.top :is(.btn,.seg button),.toolbar :is(.btn,.seg button){box-sizing:border-box;min-height:32px}.btn.help{background:var(--accent);border-color:var(--accent);width:32px;height:32px;color:var(--sheet);border-radius:50%;padding:0;font-weight:700}.btn.help:hover{background:var(--ink);border-color:var(--ink)}.toolbar{padding-block:6px 10px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px 14px;display:flex;position:relative}.toolbar:after{content:"";pointer-events:none;opacity:.8;background:repeating-linear-gradient(90deg, var(--mute) 0 1px, transparent 1px 50px) left bottom/100% 6px no-repeat, repeating-linear-gradient(90deg, var(--line) 0 1px, transparent 1px 10px) left bottom/100% 3px no-repeat;height:6px;position:absolute;inset:auto 0 0}.tools button{align-items:center;gap:6px;display:inline-flex}.tabs-bar{padding:6px max(16px, env(safe-area-inset-right,0px)) 0 max(16px, env(safe-area-inset-left,0px));background:var(--desk);border-bottom:1px solid var(--line);align-items:flex-end;gap:6px;display:flex}.ltabs{scrollbar-width:thin;align-items:flex-end;gap:2px;min-width:0;margin-bottom:-1px;display:flex;overflow:auto hidden}.ltab{border:1px solid var(--line);background:var(--panel);border-bottom:0;border-radius:5px 5px 0 0;flex:none;align-items:center;max-width:220px;display:flex}.ltab.on{background:var(--sheet);box-shadow:inset 0 2px 0 var(--accent);z-index:1;position:relative}.ltab-name{color:var(--mute);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;min-width:0;padding:6px 10px;font-weight:500;overflow:hidden}.ltab.on .ltab-name{color:var(--ink)}.ltab-x{color:var(--mute);cursor:pointer;background:0 0;border:0;padding:4px 8px 4px 2px;font-size:15px;line-height:1}.ltab.dragging{opacity:.5}.ltab.drop-before{box-shadow:inset 2px 0 0 var(--accent)}.ltab.drop-after{box-shadow:inset -2px 0 0 var(--accent)}.ltab-x:hover{color:var(--ink)}.ltab-edit{border:1px solid var(--accent);background:var(--sheet);width:150px;color:var(--ink);border-radius:3px;margin:3px 4px;padding:3px 6px}.tab-add{flex:none;margin-bottom:4px;position:relative}.tab-add .btn{padding:2px 10px;font-size:16px;line-height:1.3}.tab-add .menu-list{min-width:190px}.rd-list{border:1px solid var(--line);border-radius:4px;margin:0;padding:6px 10px 8px}.rd-list legend{color:var(--mute);padding:0 4px;font-size:13px}.rd-list>div{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:4px 12px;display:grid}.rd-list label{align-items:center;gap:6px;min-width:0;font-size:13px;display:flex}.rd-size select{margin-left:6px}.rd-count{color:var(--mute);align-self:center;font-size:13px}.rd-state{min-height:1.3em;margin:0;font-size:13px}.ti{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linejoin:round;stroke-linecap:round;flex:none;width:16px;height:16px}.undo .btn{align-items:center;gap:6px;display:inline-flex}.undo .btn:disabled .ti{opacity:.55}.btn.lang{align-items:center;gap:6px;display:inline-flex}.lang-menu{z-index:50;background:var(--sheet);border:1px solid var(--line);border-radius:8px;flex-direction:column;padding:4px;display:flex;position:fixed;box-shadow:0 8px 24px #0000002e}.lang-menu button{color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:center;gap:8px;padding:6px 12px;display:flex}.lang-menu button:hover,.lang-menu button:focus-visible{background:var(--accent-soft)}.lang-menu button[aria-checked=true]{font-weight:600}.flag{border-radius:1.5px;flex:none;width:auto;height:11px;box-shadow:0 0 0 1px #0000002e}.tool-opts{flex-wrap:wrap;flex:260px;align-items:center;gap:6px 10px;min-width:0;display:flex}.tool-set{flex-wrap:wrap;flex:0 auto;align-items:center;gap:6px;min-width:0;max-width:100%;display:inline-flex}.tool-set select{background:var(--sheet);color:var(--ink);border:1px solid var(--line);border-radius:4px;min-width:0;max-width:100%;min-height:32px;padding:5px 6px}.tool-hint{color:var(--mute);flex:240px;max-width:62ch;margin:0;font-size:12.5px;line-height:1.3}.undo{gap:6px;margin-left:auto;display:flex}#plan[data-tool=measure],#plan[data-tool=lamps]{cursor:crosshair}.m-meas{pointer-events:none}.m-line{fill:none;stroke:var(--tape-ink);stroke-linejoin:round}.m-tick,.m-rubber{stroke:var(--tape-ink)}.m-area{fill:var(--tape);fill-opacity:.16;stroke:none}.m-tag rect{fill:var(--tape);stroke:var(--tape-ink);stroke-width:calc(var(--u) * 1px)}.m-tag text{fill:#141b1f;font-family:var(--f-data);font-weight:500;font-size:calc(var(--u) * 10.5px);text-anchor:middle;dominant-baseline:central;font-variant-numeric:tabular-nums}.m-sum rect{fill:var(--tape-ink)}.m-sum text{fill:var(--tape-on)}.m-on .m-line,.m-on .m-tick{stroke-width:calc(var(--u) * 2.6px)}.m-on .m-area{fill-opacity:.26}.m-pt{fill:var(--sheet);stroke:var(--tape-ink);stroke-width:calc(var(--u) * 1.5px);pointer-events:none}.m-hit{fill:none;stroke:#0000;pointer-events:stroke;cursor:pointer}.m-list{flex-direction:column;gap:3px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.m-list li,.m-total{justify-content:space-between;gap:12px;display:flex}.m-list b,.m-total b{font:500 13px var(--f-data);font-variant-numeric:tabular-nums}.m-total{border-top:1px solid var(--line);margin:8px 0 0;padding-top:6px;font-size:13px}.tour-ring{z-index:40;border:2px solid var(--accent);pointer-events:none;border-radius:6px;position:fixed;box-shadow:0 0 0 9999px #0f151861}.tour{z-index:41;background:var(--sheet);border:1px solid var(--line);border-radius:6px;flex-direction:column;gap:10px;width:min(330px,100vw - 24px);padding:12px 14px;display:flex;position:fixed;overflow:hidden;box-shadow:0 18px 50px #0000004d}.tour p{margin:0;font-size:14px}.tour:before{content:"";height:3px;width:calc(var(--done,0) * 100%);background:var(--accent);border-radius:6px 0 0;position:absolute;top:0;left:0}.tour-foot{align-items:center;gap:6px;display:flex}.tour-foot span{font:400 12px var(--f-data);color:var(--mute);flex:auto}.work{grid-template-columns:232px minmax(0,1fr) 268px;min-height:0;display:grid}.side{background:var(--panel);flex-direction:column;gap:16px;min-height:0;padding:14px;display:flex;position:relative;overflow:auto}.fold{z-index:1;border:1px solid var(--line);background:var(--sheet);min-width:26px;height:26px;color:var(--mute);cursor:pointer;font:500 15px/1 var(--f-body);border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:0 6px;display:inline-flex;position:absolute;top:10px;right:10px}.fold:hover{background:var(--accent-soft);color:var(--ink)}.fold-lab{font:600 13px var(--f-display);letter-spacing:.06em;text-transform:uppercase;display:none}.side.folded{padding:0;overflow:hidden}.side.folded>:not(.fold){display:none!important}.side.folded .fold{background:0 0;border:0;border-radius:0;flex-direction:column;justify-content:flex-start;gap:10px;width:100%;height:100%;padding:12px 0;position:static}.side.folded .fold:hover{background:var(--accent-soft)}.side.folded .fold-lab{writing-mode:vertical-rl;display:block}.side.left.folded .fold-lab{transform:rotate(180deg)}.work.fold-l{grid-template-columns:34px minmax(0,1fr) 268px}.work.fold-r{grid-template-columns:232px minmax(0,1fr) 34px}.work.fold-l.fold-r{grid-template-columns:34px minmax(0,1fr) 34px}.side.left{border-right:1px solid var(--line)}.side.right{border-left:1px solid var(--line)}.side h2{letter-spacing:.06em;text-transform:uppercase;color:var(--mute);font-size:15px}.group{border:0;padding:0}.group>summary{margin-bottom:2px;font-size:14px;list-style-position:inside}.add-row{align-items:center;display:flex}.add-x{color:var(--mute);cursor:pointer;background:0 0;border:0;border-radius:3px;padding:2px 6px;font-size:15px;line-height:1}.add-x:hover{background:var(--accent-soft);color:var(--bad)}.add{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:3px;justify-content:space-between;gap:8px;width:100%;padding:4px 6px;display:flex}.add:hover{background:var(--accent-soft)}.add span:last-child{font:400 11.5px var(--f-data);color:var(--mute);white-space:nowrap;font-variant-numeric:tabular-nums}.stage{grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;display:grid}.stage.split{grid-template-columns:minmax(0, var(--f1,57.45fr)) 0 minmax(0, var(--f2,42.55fr))}.stage.split[data-dir=col]{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0, var(--f1,50fr)) 0 minmax(0, var(--f2,50fr))}.stage.split[data-dir=col] #pane3d{border-left:0;border-top:1px solid var(--line)}.split-bar{z-index:6;touch-action:none;outline:0;display:none;position:relative}.stage.split .split-bar{display:block}.split-bar:before{content:"";cursor:col-resize;position:absolute;inset:0 -5px}.stage.split[data-dir=col] .split-bar:before{cursor:row-resize;inset:-5px 0}.split-bar:after{content:"";pointer-events:none;transition:background .12s;position:absolute;inset:0 -2px}.stage.split[data-dir=col] .split-bar:after{inset:-2px 0}.split-bar:hover:after,.split-bar.on:after,.split-bar:focus-visible:after{background:var(--accent)}.split-ctl svg{vertical-align:-3px;fill:none;stroke:currentColor;stroke-width:1.3px}.pane{background:var(--sheet);min-width:0;min-height:0;position:relative}.stage.split #pane3d{border-left:1px solid var(--line)}.stage.plan #pane3d,.stage.three #pane2d{display:none}#plan{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;width:100%;height:100%;display:block}#plan.dragging{cursor:grabbing}.overlay-ctl{flex-wrap:wrap;align-items:center;gap:6px;display:flex;position:absolute}.tl{top:10px;left:10px;right:10px}.br{bottom:10px;right:10px}.chip{background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:4px 8px;font-size:13px;display:inline-flex}.chip input{accent-color:var(--accent);margin:0}.zoom button{width:32px;height:32px;padding:0}#view3d{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}#msg3d{text-align:center;color:var(--mute);place-items:center;padding:24px;display:grid;position:absolute;inset:0}.bot3d{pointer-events:none;flex-direction:column;gap:6px;display:flex;position:absolute;bottom:10px;left:10px;right:10px}.bot3d>*{pointer-events:auto}.botrow{pointer-events:none;justify-content:space-between;align-items:flex-end;gap:8px;display:flex}.sunbar{background:var(--panel);border:1px solid var(--line);border-radius:4px;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:6px 10px;font-size:13px;display:flex}.sunbar label{align-items:center;gap:6px;display:inline-flex}.sunbar output{font:400 12px var(--f-data);font-variant-numeric:tabular-nums}.sunbar input[type=range]{width:120px;accent-color:var(--accent)}.sunbar select,.sunbar input[type=number]{background:var(--sheet);border:1px solid var(--line);border-radius:3px;padding:2px 4px}.sunbar input[type=number]{width:64px;font-family:var(--f-data)}.rooms3d{flex-wrap:wrap;gap:4px;display:none}.walk .rooms3d{display:flex}.pad{pointer-events:auto;grid-template-columns:repeat(3,36px);gap:3px;margin-left:auto;display:none}.walk .pad{display:grid}.pad button{height:36px;padding:0}.pad button:first-child{grid-column:2}.pad button:nth-child(2){grid-column:1}.lightpanel{pointer-events:auto;background:var(--panel);border:1px solid var(--line);border-radius:4px;flex-direction:column;align-self:flex-start;gap:9px;width:min(430px,100%);padding:10px 12px;font-size:13px;display:flex}.lp-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.lp-head h3{font-size:15px}.lp-head .seg button{padding:4px 10px}.lp-rooms{flex-wrap:wrap;gap:4px;display:flex}.lp-scenes{flex-wrap:wrap;justify-content:flex-end}.lp-wrap{flex-wrap:wrap;gap:6px}.ls-list input:not([type]){flex:1;width:auto;min-width:0}.ls-list span{flex:none}.lp-rooms .chip{padding:3px 7px;font-size:12.5px}.lp-rooms .chip:has(input:checked){background:var(--accent-soft);border-color:var(--accent)}.lp-row{align-items:center;gap:8px;display:flex}.lp-row input[type=range]{accent-color:var(--accent);flex:auto}.lp-row output{text-align:right;min-width:46px;font:400 12px var(--f-data);font-variant-numeric:tabular-nums}#lToggle{padding:2px 8px}#lToggle[aria-expanded=true]{background:var(--ink);color:var(--sheet);border-color:var(--ink)}#pane3d.looking:after{content:"";pointer-events:none;background:#fff;border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 1.5px #000000a6}#pane3d.looking #view3d{cursor:none}.hint{color:var(--mute);background:var(--panel);border:1px solid var(--line);border-radius:4px;min-width:0;padding:3px 7px;font-size:12.5px}.empty{color:var(--mute);margin:0}.field{grid-template-columns:1fr;gap:3px;display:grid}.field label,.lab{color:var(--mute);letter-spacing:.02em;font-size:12px}.field select,.field input{background:var(--sheet);border:1px solid var(--line);border-radius:3px;width:100%;padding:5px 7px}.field input[type=number]{font-family:var(--f-data);font-variant-numeric:tabular-nums}.tri{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.row{flex-wrap:wrap;gap:6px;display:flex}.swatches{gap:6px;display:flex}.swatches button{border:1px solid var(--line);cursor:pointer;border-radius:3px;width:26px;height:26px;padding:0}.swatches button[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:1px}.checks{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.checks button{text-align:left;border:0;border-left:3px solid var(--warn);cursor:pointer;background:0 0;width:100%;padding:4px 6px 4px 8px;font-size:13px}.checks .bad button{border-left-color:var(--bad)}.checks button:hover{background:var(--accent-soft)}.ok{color:var(--accent);align-items:center;gap:6px;margin:0;font-weight:500;display:flex}details{border-top:1px solid var(--line);padding-top:10px}summary{cursor:pointer;font-family:var(--f-display);font-size:15px;font-weight:600}details p,details li{color:var(--mute);font-size:13px}details ul{flex-direction:column;gap:5px;margin:6px 0 0;padding-left:16px;display:flex}.facts{grid-template-columns:auto 1fr;gap:4px 10px;margin:8px 0 0;font-size:13px;display:grid}.facts dt{color:var(--mute)}.facts dd{margin:0}.project{margin-top:10px}kbd{box-sizing:border-box;text-align:center;min-width:1.75em;font:500 11px/1.55 var(--f-data);background:var(--panel);border:1px solid var(--line);vertical-align:1px;border-bottom-width:2px;border-radius:4px;padding:0 4px;display:inline-block}#placeDlg,.dlg{border:1px solid var(--line);background:var(--sheet);width:min(520px,100vw - 32px);max-height:min(640px,100vh - 48px);color:var(--ink);border-radius:6px;padding:16px;box-shadow:0 18px 50px #00000040}#placeDlg{width:min(760px,100vw - 32px);max-height:calc(100vh - 32px)}#placeDlg[open],.dlg[open]{flex-direction:column;gap:12px;display:flex}#placeDlg::backdrop,.dlg::backdrop{background:#0f151859}#helpDlg{width:min(620px,100vw - 32px);max-height:calc(100vh - 48px)}#helpAgents code{border:1px solid var(--line);width:fit-content;max-width:100%;font:400 12px var(--f-data);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;border-radius:3px;margin-top:4px;padding:2px 6px;display:block}.dlg-body{flex-direction:column;gap:8px;min-height:0;display:flex;overflow:auto}.dlg h3{margin-top:6px;font-size:16px}.dlg p,.dlg li{font-size:13.5px}.dlg p{margin:0}.steps{flex-direction:column;gap:5px;margin:0;padding-left:20px;display:flex}.steps:has(.substeps){counter-reset:step;padding-left:0;list-style:none}.steps:has(.substeps)>li{counter-increment:step;padding-left:2em;position:relative}.steps:has(.substeps)>li:before{content:counter(step) ".";font-weight:600;position:absolute;left:0}.substeps{counter-reset:sub;flex-direction:column;gap:6px;margin:6px 0 2px;padding:0;list-style:none;display:flex}.substeps>li{counter-increment:sub;padding-left:2.4em;position:relative}.substeps>li:before{content:counter(step) "." counter(sub);color:var(--mute);font:500 12px var(--f-data);position:absolute;top:.15em;left:0}.can-list{grid-template-columns:max-content minmax(0,1fr);gap:7px 14px;margin:0;display:grid}.can-list dt{color:var(--accent);font-weight:600}.can-list dd{margin:0}#helpAgents .steps{margin:8px 0 4px}#helpTools>h3{border-top:1px solid var(--line);margin:18px 0 10px;padding-top:14px}#helpAgents .note,#helpTools>.note{color:var(--mute);margin:12px 0 0;font-size:13px}.tabs.subtabs{border-bottom:0;gap:6px;margin:12px 0 2px}.tabs.subtabs [role=tab]{border:1px solid var(--line);border-radius:999px;margin:0;padding:4px 11px;font-size:13px}.tabs.subtabs [role=tab][aria-selected=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}#helpAgents>.agent-url{margin-top:10px}#helpAgents>.tab-panel{padding-top:2px}@media (width<=560px){.can-list{grid-template-columns:minmax(0,1fr);gap:1px}.can-list dd{margin-bottom:9px}.steps:has(.substeps)>li{padding-left:1.5em}.substeps>li{padding-left:2.1em}}#planDlg ul{color:var(--mute);flex-direction:column;gap:5px;margin:6px 0 0;padding-left:16px;display:flex}#planDlg .facts{margin:0}.dlg-code{box-sizing:border-box;border:1px solid var(--line);width:100%;color:inherit;font:12px/1.45 var(--f-data);resize:vertical;background:0 0;border-radius:6px;flex:none;margin:0;padding:8px 10px;display:block;overflow:auto}pre.dlg-code{white-space:pre;resize:none;max-height:190px}.dlg-head{justify-content:space-between;align-items:center;gap:8px;margin:0;display:flex}.dlg-head h2{font-size:19px}.dlg-note{color:var(--mute);margin:0;font-size:13px}.dlg-save{gap:6px;display:flex}.dlg-save input{background:var(--panel);border:1px solid var(--line);border-radius:4px;flex:auto;min-width:0;padding:6px 8px}.setup-list{border-top:1px solid var(--line);flex-direction:column;gap:2px;min-height:0;margin:0;padding:8px 0 0;list-style:none;display:flex;overflow:auto}.setup-list li{border-radius:4px;align-items:center;gap:6px;padding:5px 6px;display:flex}.setup-list li:hover{background:var(--panel)}.setup-list .sl-name{flex-direction:column;flex:auto;min-width:0;display:flex}.setup-list .sl-name b{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.setup-list .sl-name span{font:400 11.5px var(--f-data);color:var(--mute)}.setup-list .btn{padding:3px 8px;font-size:13px}.setup-list .empty{padding:6px}.dlg-foot{border-top:1px solid var(--line);flex-wrap:wrap;gap:6px;padding-top:10px;display:flex}.place-map{border:1px solid var(--line);background:var(--panel);height:min(380px,45vh);min-height:220px;color:var(--mute);border-radius:4px;justify-content:center;align-items:center;font-size:13px;display:flex}.place-results{color:var(--mute);flex-direction:column;gap:2px;font-size:13px;display:flex}.place-results:empty{display:none}.place-results .result{text-align:left;padding:4px 8px;font-size:13px}.place-fields{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.place-fields .field{margin:0}.place-fields input,.place-fields select{width:100%}#toast{left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--sheet);z-index:20;border-radius:4px;padding:7px 12px;font-size:13px;position:fixed;transform:translate(-50%)}.s-wall{fill:var(--wall)}.s-floor{fill:var(--floor)}.s-tile{fill:var(--tile)}.s-deck{fill:var(--deck)}.s-frame{fill:none;stroke:var(--mute);stroke-width:.012px}.s-post{fill:var(--mute)}.s-rail{fill:none;stroke:var(--ink);stroke-width:.02px}.s-glass{stroke:var(--window);stroke-width:.022px;fill:none}.s-door{stroke:var(--ink);stroke-width:.022px;fill:none}.s-shut{stroke-width:.04px}.s-doorhit{fill:var(--accent);fill-opacity:0;stroke:none;pointer-events:all;cursor:pointer}.s-doorhit:hover{fill-opacity:.12}.s-open{fill:var(--accent);fill-opacity:.18;stroke:var(--accent);stroke-width:.012px;pointer-events:none}.s-winleaf{stroke:var(--window);stroke-width:.03px}.s-swing{stroke:var(--mute);stroke-width:.01px;stroke-dasharray:.05 .04;fill:none}.s-fix{fill:var(--panel);stroke:var(--ink);stroke-width:.012px}.s-duct{fill:var(--line);stroke:var(--ink);stroke-width:.012px}.s-sym{fill:none;stroke:var(--mute);stroke-width:.01px}.s-fixlab{fill:var(--mute);font-family:var(--f-body);font-weight:500;font-size:calc(var(--u) * 10.5px);text-anchor:middle;dominant-baseline:central;pointer-events:none}.s-room{fill:var(--ink);font-family:var(--f-display);font-weight:600;font-size:calc(var(--u) * 13.5px);text-anchor:middle;pointer-events:none}.s-area{fill:var(--mute);font-family:var(--f-data);font-size:calc(var(--u) * 10px);text-anchor:middle;pointer-events:none}.s-dim{stroke:var(--accent);stroke-width:.008px}.s-dimt{fill:var(--accent);font-family:var(--f-data);font-weight:500;font-size:calc(var(--u) * 10.5px);text-anchor:middle;dominant-baseline:central;paint-order:stroke;stroke:var(--sheet);stroke-width:calc(var(--u) * 3px)}.s-item{cursor:move}.s-box{stroke:#26343a;stroke-width:.014px}.s-tick{stroke:#26343a;stroke-width:.03px}.s-name{fill:#10181b;font-family:var(--f-display);font-weight:600;font-size:calc(var(--u) * 11.5px);text-anchor:middle;pointer-events:none}.s-size{fill:#2f3d43;font-family:var(--f-data);font-size:calc(var(--u) * 9.5px);text-anchor:middle;pointer-events:none}.s-ghost{fill-opacity:0;stroke-dasharray:.04 .03;stroke-width:.008px;pointer-events:all}.p-ln{fill:none;stroke:#26343a;stroke-width:.01px}.p-dk{fill:#26343a;fill-opacity:.2;stroke:#26343a;stroke-width:.01px}.p-lt{fill:#fff;fill-opacity:.75;stroke:#26343a;stroke-width:.01px}.p-leaf{fill:#6b9653;fill-opacity:.85;stroke:#3e6537;stroke-width:.006px}.s-rug{fill-opacity:.55;stroke-dasharray:.03 .02}.s-high{fill-opacity:.45;stroke-dasharray:.06 .03}.p-dash{stroke-dasharray:.05 .035}.s-sel{fill:none;stroke:var(--accent);stroke-width:.03px;pointer-events:none}.s-overlap{fill:none;stroke:var(--bad);stroke-width:.03px;pointer-events:none}.s-block{fill:none;stroke:var(--warn);stroke-width:.03px;stroke-dasharray:.08 .05;pointer-events:none}.s-h{fill:var(--sheet);stroke:var(--accent);cursor:pointer}.s-lamp{cursor:move}.s-lamphit{fill:#0000;stroke:none}.s-lampc{fill:var(--sheet);stroke:#8a6a1e;stroke-width:.014px}.s-lamp-on .s-lampc{fill:#ffd66b}.s-lampx{fill:none;stroke:#8a6a1e;stroke-width:.012px}.s-lampdot{fill:#8a6a1e}.s-lamp-sel .s-lampc{stroke:var(--accent)}.s-gl{stroke:var(--accent);stroke-dasharray:.05 .035}.s-glt{fill:var(--accent);font-family:var(--f-data);font-weight:500;font-size:calc(var(--u) * 11px);text-anchor:middle;dominant-baseline:central;paint-order:stroke;stroke:var(--sheet);stroke-width:calc(var(--u) * 4px);pointer-events:none}#ovimg{mix-blend-mode:multiply;pointer-events:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) #ovimg{filter:invert();mix-blend-mode:screen}}:root[data-theme=dark] #ovimg{filter:invert();mix-blend-mode:screen}@media (width<=1100px){.work{grid-template-rows:minmax(0,1fr) 190px;grid-template-columns:minmax(0,1fr) 250px}.side.left{border-right:0;border-top:1px solid var(--line);flex-direction:row;grid-area:2/1/auto/-1;overflow:auto}.side.left .group{min-width:190px}.side.left>h2{display:none}.stage{grid-area:1/1}.side.right{grid-area:1/2}.work.fold-l,.work.fold-r,.work.fold-l.fold-r{grid-template-columns:minmax(0,1fr) 250px}.work.fold-l{grid-template-rows:minmax(0,1fr) 38px}.work.fold-r,.work.fold-l.fold-r{grid-template-columns:minmax(0,1fr) 34px}.side.left.folded .fold{flex-direction:row;padding:0 12px}.side.left.folded .fold-lab{writing-mode:horizontal-tb;transform:none}.side.left .fold span:first-child{transform:rotate(-90deg)}}@media (width<=760px){html,body{height:auto}#app{height:auto;display:block}.work,.stage,.stage.split{flex-direction:column;display:flex}.pane{flex:none;height:min(82vw,62vh);min-height:300px}#pane2d{flex-direction:column;height:auto;display:flex}#pane2d .tl{padding:8px 16px 0;position:static}#plan{height:min(82vw,56vh);min-height:280px}.stage.split #pane3d{border-left:0;border-top:1px solid var(--line)}.split-bar,.stage.split .split-bar,.split-ctl{display:none}.side{padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));overflow:visible}.side.left{border-top:1px solid var(--line);flex-direction:row;order:3;overflow-x:auto}.side.right{border-left:0;border-top:1px solid var(--line);order:2}.hint{display:none}.side.folded{height:40px}.side.folded .fold{flex-direction:row;padding:0 16px}.side.folded .fold-lab{writing-mode:horizontal-tb;transform:none}.fold span:first-child{transform:rotate(-90deg)}.top{gap:10px 8px}.brand{flex:1 1 0}.spacer{flex:1 0 100%;order:1;height:0}.top>.seg,#saveState,#feedbackOpen{order:2}#feedbackOpen{margin-left:auto}#acctWho{display:none}.toolbar{gap:8px}.tools{flex:100%;order:1;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}.toolbar .tools button{flex-direction:column;gap:2px;min-width:0;padding:6px 2px;font-size:12px}.tool-opts{flex:100%;order:2}.tour{top:auto;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom,0px));border-radius:10px;width:auto;padding:14px 16px 12px}.tour:before{border-radius:10px 0 0}.tour p{font-size:15px;line-height:1.45}.tour .btn{min-height:40px;padding:0 14px}html.touring body{padding-bottom:calc(var(--tour-h,0px) + 24px)}}@media (prefers-reduced-motion:no-preference){.add,.btn{transition:background-color .12s}}.s-up{stroke-width:.025px}.s-slope{fill:none;stroke:var(--mute);stroke-width:.012px;stroke-dasharray:.08 .05;pointer-events:none}.s-slope-low{fill:var(--mute);fill-opacity:.12;stroke:none;pointer-events:none}.s-slope-18{stroke:var(--mute);stroke-width:.012px;stroke-dasharray:.03 .03;pointer-events:none}.s-slope-t{fill:var(--mute);font:500 calc(var(--u) * 10px) var(--f-data);text-anchor:middle;dominant-baseline:central;pointer-events:none}.s-walker{pointer-events:none}.s-walk-in{stop-color:var(--accent);stop-opacity:.42}.s-walk-out{stop-color:var(--accent);stop-opacity:0}.s-walk-halo{fill:var(--accent);fill-opacity:.2}.s-walk-dot{fill:var(--accent);stroke:var(--sheet)}.s-roofwin{fill:var(--window);fill-opacity:.18;stroke:var(--window);stroke-width:.015px;pointer-events:none}.s-roofwin-x{stroke:var(--window);stroke-width:.008px;fill:none;pointer-events:none}.place-site svg{border:1px solid var(--line);cursor:crosshair;background:#fff;width:100%;max-height:52vh;display:block}.place-site .row{align-items:center;gap:8px;margin:6px 0;display:flex}.site-flat{fill:#1f7a8c;stroke:#1f7a8c}.site-own{fill:#d9822b33;stroke:#d9822b}.decor-part{align-items:center;gap:6px;display:flex}.decor-part select{background:var(--sheet);min-width:0;color:var(--ink);border:1px solid var(--line);border-radius:3px;flex:1;padding:5px 7px}.decor-part input[type=color]{border:1px solid var(--line);background:var(--sheet);border-radius:3px;width:38px;height:30px;padding:2px}.decor-pat{flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.decor-pat input{width:64px}.decor-pat input,.decor-pat select,.decor-faces select,.decor-h input{background:var(--sheet);color:var(--ink);border:1px solid var(--line);border-radius:3px;padding:4px 6px}.decor-h{white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:flex}.decor-h input{width:92px}.decor-faces{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.decor-faces li{align-items:center;gap:8px;display:flex}.decor-faces span{flex:0 0 9.5em;font-size:13px}.decor-faces select{flex:1;min-width:0}.decor-faces input[type=color]{border:1px solid var(--line);background:var(--sheet);border-radius:3px;width:38px;height:30px;padding:2px}.decor-images{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.decor-images li{align-items:center;gap:8px;display:flex}.decor-images img{object-fit:cover;border:1px solid var(--line);border-radius:3px;width:36px;height:36px}.decor-images span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.decor-images input{background:var(--sheet);width:70px;color:var(--ink);border:1px solid var(--line);border-radius:3px;padding:4px 6px}.mat-row{align-items:center;gap:6px;display:flex}.mat-row select{flex:1;min-width:0}#helpDlg{width:min(690px,100vw - 32px)}#helpDlg .tab-panel{min-height:320px}.keys{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));align-items:start;gap:14px 30px;display:grid}.keys h3{border-top:1px solid var(--line);margin:0 0 6px;padding-top:10px;font-size:14px}.key-list{grid-template-columns:7.2em minmax(0,1fr);align-items:baseline;gap:6px 12px;margin:0;display:grid}.key-list dt{white-space:nowrap;justify-content:flex-end;gap:3px;display:flex}.key-list dd{margin:0;font-size:13.5px}.kplus{color:var(--mute);align-self:center;font-size:12px}.tool-list{grid-template-columns:max-content 1fr;gap:6px 12px;margin:4px 0 0;font-size:13.5px;display:grid}.tool-list dt{font:500 12px var(--f-data);color:var(--accent);padding-top:2px}.tool-list dd{margin:0}.changes{flex-direction:column;gap:10px;display:flex}.changes h4{margin:0;font-size:13.5px}.changes time{color:var(--mute);font:400 12px var(--f-data);margin-left:6px}.changes ul{margin:4px 0 0;padding-left:18px}.changes summary{cursor:pointer;color:var(--mute);margin-bottom:6px;font-size:13.5px}.changes details section+section{margin-top:10px}.decor-lay{margin-top:6px}.decor-lay input[type=number]{width:58px}.decor-lay input[type=color]{border:1px solid var(--line);background:var(--sheet);border-radius:3px;width:34px;height:28px;padding:2px}.s-surf{fill-opacity:.38;stroke:var(--ink);stroke-opacity:.55;pointer-events:none}.s-span{fill:none;stroke-opacity:.85;stroke-linecap:butt}.s-surf-on{stroke:var(--accent);stroke-opacity:1;fill-opacity:.5}.s-span.s-surf-on{stroke-opacity:1}#plan[data-tool=surfaces] .s-surf{pointer-events:visiblePainted;cursor:pointer}.s-fit{fill:var(--accent);fill-opacity:.08;stroke:var(--accent);stroke-opacity:.6;stroke-dasharray:.06 .04;cursor:move}.s-fit:hover{fill-opacity:.18}.s-fit-on{fill-opacity:.22;stroke-opacity:1;stroke-dasharray:none}#plan[data-tool=fittings] .s-item{opacity:.35;pointer-events:none}#plan[data-tool=surfaces]{cursor:crosshair}.s-draft{fill:none;stroke:var(--accent)}.surf-kind{display:inline-flex}.surf-kind label{cursor:pointer;align-items:center;padding:5px 10px;font-size:13px;font-weight:500;display:flex}.surf-kind label+label{border-left:1px solid var(--line)}.surf-kind input{opacity:0;pointer-events:none;position:absolute}.surf-kind label:has(input:checked){background:var(--ink);color:var(--sheet)}.surf-kind label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:-2px}.op-look{flex-direction:column;gap:6px;display:flex}.op-row{align-items:center;gap:6px;font-size:13px;display:flex}.op-row span{color:var(--mute);flex:0 0 7.5em}.op-row select{background:var(--sheet);min-width:0;color:var(--ink);border:1px solid var(--line);border-radius:3px;flex:1;padding:5px 7px}.op-row input[type=color]{border:1px solid var(--line);background:var(--sheet);border-radius:3px;width:38px;height:30px;padding:2px}@media (width<=560px){.tabs{border-bottom:0;gap:6px;margin-top:10px}.tabs [role=tab]{border:1px solid var(--line);border-radius:999px;margin:0;padding:5px 12px;font-size:13px}.tabs [role=tab][aria-selected=true]{background:var(--ink);color:var(--sheet);border-color:var(--ink)}.tool-list{grid-template-columns:minmax(0,1fr);gap:1px}.tool-list dd{margin-bottom:9px}}.donate{border-top:1px solid var(--line);margin-top:18px;padding-top:12px;font-size:13.5px}.donate summary{cursor:pointer;color:var(--mute)}.donate p{margin:8px 0}.donate-ways{flex-direction:column;align-items:flex-start;gap:8px;margin:0;padding:0;list-style:none;display:flex}.donate-btc{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.donate-btc code{font:400 12px var(--f-data);word-break:break-all}
