@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff")}:root{--ground: #f9fbfc;--surface: #ffffff;--raised: #f4f6f8;--active: #ebedee;--border: #e8eaec;--rule: #f0f1f2;--control: #cdced1;--text: #131416;--muted: #5d5f60;--accent: #1b6c80;--accent-soft: rgba(27, 108, 128, .1);--negative: #c4242a;--pill-neutral-bg: #ebedee;--pill-neutral-ink: #353736;--pill-negative-bg: #ffedea;--pill-negative-ink: #831c1e;--pill-warning-bg: #fffbeb;--pill-warning-ink: #92400e;--pill-warning-edge: #fde68a;--plan-well: #f4f6f8;--plan-grid: #e6e9ec;--wall: #131416;--floor-wood-oak: #f6efe6;--floor-wood-walnut: #efe6dd;--floor-tile-grey: #edf0f2;--floor-paint-white: #ffffff;--radius-sheet: 16px;--radius-card: 8px;--radius-control: 6px;--inset: 8px;--gap: 12px;--pad: 16px;--control-height: 32px;--palette-width: 232px;--inspector-width: 264px;--font: "IBM Plex Sans", Inter, system-ui, sans-serif;--fs-title: 16px;--fs-body: 14px;--fs-small: 12px;--fs-hint: 13px;font-family:var(--font);font-size:var(--fs-body);line-height:20px;color:var(--text);background:var(--ground);-webkit-font-smoothing:antialiased}@media(prefers-color-scheme:dark){:root{--ground: #000000;--surface: #111111;--raised: #0a0a0a;--active: #222222;--border: #232323;--rule: #1a1a1a;--control: #444444;--text: #ffffff;--muted: #b4b4b4;--accent: #4fb3c9;--accent-soft: rgba(79, 179, 201, .16);--negative: #e5566f;--pill-neutral-bg: #222222;--pill-neutral-ink: #d4d4d4;--pill-negative-bg: #2c1a20;--pill-negative-ink: #e5566f;--pill-warning-bg: #2a2110;--pill-warning-ink: #f5c463;--pill-warning-edge: #4a3a16;--plan-well: #0a0a0a;--plan-grid: #1a1a1a;--wall: #e9e9e9;--floor-wood-oak: #221d17;--floor-wood-walnut: #1f1a16;--floor-tile-grey: #1a1c1e;--floor-paint-white: #161616}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}button,input,select{font:inherit;color:inherit}.num{font-variant-numeric:tabular-nums}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.app{display:grid;grid-template-rows:44px 1fr;height:100%;touch-action:pan-x pan-y}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 var(--inset) 0 var(--inset);min-width:0}.topbar-left,.topbar-right{display:flex;align-items:center;gap:8px;min-width:0}.topbar-divider{width:1px;height:20px;background:var(--border);flex:none}.brand{display:flex;align-items:center;gap:8px;height:var(--control-height);padding:0 8px 0 6px;border:0;border-radius:var(--radius-control);background:transparent;cursor:pointer;font-weight:600;flex:none}.brand:hover{background:var(--active)}.brand svg:last-child{color:var(--muted)}.project-name{font-size:var(--fs-title);font-weight:600;height:var(--control-height);padding:0 8px;border:1px solid transparent;border-radius:var(--radius-control);background:transparent;min-width:0;max-width:40vw;text-overflow:ellipsis}.project-name:hover{border-color:var(--border)}.project-name:focus{border-color:var(--control);background:var(--surface);outline:none}.pill{flex:none;white-space:nowrap;font-size:var(--fs-small);line-height:20px;padding:0 8px;border-radius:999px;font-weight:500}.pill-neutral{background:var(--pill-neutral-bg);color:var(--pill-neutral-ink)}.pill-negative{background:var(--pill-negative-bg);color:var(--pill-negative-ink)}.workspace{display:grid;grid-template-columns:var(--palette-width) minmax(0,1fr) var(--inspector-width);gap:var(--gap);padding:0 var(--inset) var(--inset);min-height:0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sheet);min-height:0;min-width:0}.icon-btn{display:inline-grid;place-items:center;width:var(--control-height);height:var(--control-height);border:0;border-radius:var(--radius-control);background:transparent;color:var(--muted);cursor:pointer;flex:none}.icon-btn:hover:not(:disabled){background:var(--active);color:var(--text)}.icon-btn:disabled{color:var(--control);cursor:default}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--control-height);padding:0 12px;border:1px solid var(--control);border-radius:var(--radius-control);background:var(--surface);cursor:pointer;font-weight:500}.btn:hover{background:var(--raised)}.btn-primary{background:var(--text);border-color:var(--text);color:var(--surface)}.btn-primary:hover{background:var(--text);opacity:.9}.link-btn{padding:0;border:0;background:none;color:var(--accent);text-decoration:underline;text-underline-offset:2px;cursor:pointer;font-size:inherit;text-align:left}.btn-block{width:100%}.btn-small{height:28px;padding:0 8px;font-size:var(--fs-small)}.btn:disabled{opacity:.5;cursor:default}.error-text{color:var(--negative)!important}.slider{display:grid;gap:6px;margin:8px 0;font-size:var(--fs-small);color:var(--muted)}.slider input{accent-color:var(--accent)}.rotation-row{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--border);border-radius:var(--radius-control);padding:2px}.rotation-value{min-width:36px;text-align:center;align-self:center;color:var(--text)}.btn-danger{color:var(--negative);border-color:var(--border);align-self:flex-start}.button-row{display:flex;gap:8px}.segmented{display:inline-flex;gap:2px;padding:2px;margin:0;border:0;border-radius:calc(var(--radius-control) + 2px);background:var(--active);flex:none}.segmented button{height:28px;padding:0 12px;white-space:nowrap;border:1px solid transparent;border-radius:var(--radius-control);background:transparent;color:var(--muted);cursor:pointer;font-weight:500}.segmented-fill{display:flex;width:100%}.segmented-fill button{flex:1 1 0;min-width:0;padding:0 4px}.field-label{font-weight:500}.segmented button[aria-pressed=true]{background:var(--surface);border-color:var(--border);color:var(--text)}.menu-anchor{position:relative}.topbar{position:relative;z-index:30}.menu{position:absolute;top:calc(100% + 4px);left:0;z-index:20;min-width:240px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:0 8px 24px #0000001f;display:grid}.menu button{text-align:left;height:34px;padding:0 10px;border:0;border-radius:var(--radius-control);background:transparent;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu button:hover{background:var(--active)}.menu-rule{margin:6px 4px;border:0;border-top:1px solid var(--border)}.menu-label{margin:8px 10px 4px;font-size:var(--fs-small);color:var(--muted)}.dialog{width:min(480px,calc(100vw - 32px));max-height:min(640px,calc(100dvh - 32px));padding:0;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:0 16px 48px #0000002e}.dialog[open]{display:flex;flex-direction:column}.dialog::backdrop{background:#0f121652}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 0 20px}.dialog-head h2{margin:0;font-size:var(--fs-title)}.dialog-note{margin:4px 20px 12px;font-size:var(--fs-small);color:var(--muted)}.dialog-foot{display:grid;gap:8px;padding:12px 20px 16px;border-top:1px solid var(--border)}.dialog-foot>.btn{justify-self:start}.dialog-foot output:empty{display:none}.dialog-confirm p{margin:0 0 8px}.plan-list{margin:0;padding:0 8px 8px;list-style:none;overflow:auto}.plan-list li{display:flex;align-items:center;gap:8px;padding-right:12px;border-radius:var(--radius-control)}.plan-list li.asking{background:var(--active)}.plan-list-open{display:grid;flex:1;min-width:0;gap:2px;padding:8px 12px;text-align:left;color:inherit;font:inherit;background:none;border:0;border-radius:var(--radius-control);cursor:pointer}.plan-list-open:hover{background:var(--active)}.plan-list-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:500}.plan-list-meta,.plan-list-kept{font-size:var(--fs-small);color:var(--muted)}.plan-list-kept{padding:0 8px}.palette{padding:var(--pad) 12px;overflow:auto}.panel-heading{margin:0 4px 8px;font-size:var(--fs-body);font-weight:500;color:var(--muted)}.tool-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}.tool{position:relative;display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:10px;width:100%;height:38px;padding:0 8px 0 6px;border:0;border-radius:var(--radius-card);background:transparent;color:var(--text);text-align:left;cursor:pointer}.tool:hover{background:var(--raised)}.tool[aria-pressed=true]{background:var(--active);font-weight:500}.tool-icon{display:grid;place-items:center;color:var(--muted)}.tool[aria-pressed=true] .tool-icon{color:var(--text)}.tool-key{font:inherit;font-size:var(--fs-small);color:var(--muted);min-width:20px;text-align:center}.tool-options{margin-top:16px}.choice-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}.choice-list button{display:flex;justify-content:space-between;width:100%;height:32px;padding:0 10px;border:0;border-radius:var(--radius-control);background:transparent;cursor:pointer}.choice-list button:hover{background:var(--raised)}.choice-list button[aria-pressed=true]{background:var(--active);font-weight:500}.choice-note{color:var(--muted);font-size:var(--fs-small)}.tool-hint{margin:16px 4px 0;font-size:var(--fs-hint);line-height:18px;color:var(--muted)}.stage{position:relative;display:flex;flex-direction:column;overflow:hidden;background:var(--plan-well)}.stage-views{position:relative;flex:1;display:grid;min-height:0}.stage-split .stage-views{grid-template-columns:1fr 1fr}.stage-split .viewport{border-left:1px solid var(--border)}.sample-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 8px 8px 16px;background:var(--surface);border-bottom:1px solid var(--border);font-size:var(--fs-small)}.toast{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:5;display:flex;gap:16px;align-items:center;padding:8px 14px;border-radius:var(--radius-card);background:var(--text);color:var(--surface);font-size:var(--fs-small);box-shadow:0 6px 20px #0000002e}.toast .link-btn{color:inherit;font-weight:600}.viewport-empty{display:grid;place-items:center;color:var(--muted);font-size:var(--fs-small);padding:16px;text-align:center}.viewport-action{position:absolute;top:12px;right:12px}.sun-control{position:absolute;top:12px;left:12px;display:grid;gap:2px;width:168px;padding:8px 12px 6px;background:color-mix(in srgb,var(--surface) 90%,transparent);border:1px solid var(--border);border-radius:var(--radius-card);font-size:var(--fs-small);color:var(--muted)}.sun-control-label{display:flex;justify-content:space-between}.sun-control-label .num{color:var(--text)}input[type=range]{touch-action:pan-y}.sun-control input{width:100%;margin:0;accent-color:var(--accent)}.crash{display:grid;place-content:center;gap:12px;min-height:100vh;padding:24px;text-align:center;background:var(--ground);color:var(--muted)}.crash-title{color:var(--text);font-size:var(--fs-title);font-weight:600;margin:0}.minimap{position:absolute;right:12px;bottom:40px;background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid var(--border);border-radius:var(--radius-card);pointer-events:none}.minimap-room{fill:var(--accent-soft)}.minimap-wall{fill:var(--text)}.minimap-view{fill:var(--accent);opacity:.35}.minimap-you{fill:var(--accent);stroke:#fff;stroke-width:1.5}.joystick{position:absolute;left:24px;bottom:48px;width:112px;height:112px;border-radius:50%;background:#14181c6b;border:2px solid rgba(255,255,255,.85);box-shadow:0 2px 12px #0000004d;display:grid;place-items:center;touch-action:none}.joystick-knob{width:48px;height:48px;border-radius:50%;background:var(--accent);border:2px solid #ffffff;box-shadow:0 2px 8px #00000040;pointer-events:none}.viewport-hint{position:absolute;left:12px;bottom:12px;max-width:calc(100% - 24px);margin:0;padding:2px 8px;font-size:var(--fs-small);color:var(--muted);background:color-mix(in srgb,var(--surface) 85%,transparent);border-radius:var(--radius-control);pointer-events:none}.muted{color:var(--muted)}.tool:disabled{opacity:.4;cursor:default}.notice{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 12px 0;padding:6px 6px 6px 12px;font-size:var(--fs-hint);background:var(--pill-warning-bg);color:var(--pill-warning-ink);border:1px solid var(--pill-warning-edge);border-radius:var(--radius-card)}.notice-error{background:var(--pill-negative-bg);color:var(--pill-negative-ink);border-color:transparent}.notice .icon-btn{width:24px;height:24px;color:inherit}.plan,.viewport{position:relative;min-width:0;min-height:0;overflow:hidden}.plan-svg{display:block;touch-action:none;-webkit-user-select:none;user-select:none}.plan-svg:focus,.plan-svg:focus-visible{outline:none}.plan-svg[data-ring]{outline:2px solid var(--accent);outline-offset:-2px}.plan-svg *{vector-effect:non-scaling-stroke}.grid-line{fill:none;stroke:var(--plan-grid);stroke-width:1}.room{stroke:none}.floor-wood-oak{fill:var(--floor-wood-oak);background:var(--floor-wood-oak)}.floor-wood-walnut{fill:var(--floor-wood-walnut);background:var(--floor-wood-walnut)}.floor-tile-grey{fill:var(--floor-tile-grey);background:var(--floor-tile-grey)}.floor-paint-white{fill:var(--floor-paint-white);background:var(--floor-paint-white)}.wall{fill:var(--wall);stroke:transparent;stroke-width:12px}.hub{stroke:none}.door-hit,.gap{fill:transparent}.window-frame{fill:var(--surface);stroke:var(--wall);stroke-width:1}.glazing{stroke:var(--wall);stroke-width:1}.door-leaf{stroke:var(--wall);stroke-width:1.5}.door-arc{fill:none;stroke:var(--muted);stroke-width:1}.boundary{stroke:var(--muted);stroke-width:1.5;stroke-dasharray:6 4}.boundary-hit{stroke:transparent;stroke-width:12px}.boundary-mark{stroke-width:3;stroke-dasharray:6 4}.hover{fill:var(--accent);fill-opacity:.4;stroke:var(--accent);stroke-width:1}.selected{fill:var(--accent);stroke:var(--accent);stroke-width:1.5}.room-outline.selected,.room-outline.hover{fill:var(--accent-soft);stroke-width:2}.room-name{font-size:14px;font-weight:600;fill:var(--text)}.room-area{font-size:13px;fill:var(--muted)}.dimension line{stroke:var(--accent);stroke-width:1}.dimension rect,.measure rect{fill:var(--surface);stroke:var(--accent);stroke-width:1}.dimension text,.measure text{font-size:var(--fs-small);font-weight:500;fill:var(--accent)}.measure line{stroke:var(--accent);stroke-width:1.5;stroke-dasharray:4 3}.measure circle{fill:var(--surface);stroke:var(--accent);stroke-width:1.5}.vertex{fill:var(--surface);stroke:var(--accent);stroke-width:1.5}.vertex-hit{fill:transparent}.plan-corner{position:absolute;display:flex;gap:2px}.plan-corner-br{right:16px;bottom:16px;padding:2px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card)}.plan-compass{position:absolute;top:12px;right:16px;display:grid;padding:0;border:0;border-radius:50%;background:none;cursor:pointer}.plan-compass:hover .compass-ring{stroke:var(--accent)}.compass-ring{fill:color-mix(in srgb,var(--surface) 90%,transparent);stroke:var(--border)}.compass-needle{fill:var(--text)}.compass-n{fill:var(--text);font-size:8px;font-weight:600}.north-row{display:flex;align-items:center;gap:12px}h3.field-label{margin:0;font-size:inherit}.north-row+.north-row{margin-top:6px}.north-row .segmented{flex:1}.north-row .segmented button{padding-inline:0;font-size:var(--fs-small)}.north-row input{flex:1;accent-color:var(--accent)}.north-deg{min-width:4ch;text-align:right;font-size:var(--fs-small)}.plan-corner-bl{left:16px;bottom:16px}.scale-bar{align-items:center;gap:8px;font-size:var(--fs-small);color:var(--muted)}.scale-bar-line{height:6px;border:2px solid var(--text);border-top:0}.plan-dropping:after{content:"Drop to use as your plan image";position:absolute;top:12px;right:12px;bottom:12px;left:12px;display:grid;place-items:center;border:2px dashed var(--accent);border-radius:var(--radius-card);background:var(--accent-soft);color:var(--accent);font-weight:500;pointer-events:none}.canvas-banner{display:inline-block;padding:6px 12px;border-radius:var(--radius-card);background:var(--text);color:var(--surface);font-size:var(--fs-small);font-weight:500;line-height:18px}.tool-panel,.inspector-toggle{display:none}@media(max-width:1100px){.tool-panel{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding-bottom:12px;border-bottom:1px solid var(--border)}.tool-panel .panel-heading,.tool-panel .tool-options{position:static;width:auto;height:auto;overflow:visible;clip:auto}.tool-panel .choice-list{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:6px;scrollbar-width:none}.tool-panel .choice-list button{align-items:center;gap:6px;white-space:nowrap;min-height:40px;border:1px solid var(--border);border-radius:var(--radius-control);padding:0 10px}}.tool-panel-title{margin:0;font-weight:600}.tool-panel-hint{margin:0;font-size:var(--fs-small);color:var(--muted)}.draw-bar{display:flex;flex-direction:column;gap:6px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:0 4px 16px #0000001f;max-width:460px;margin:0 auto}.draw-bar .input{flex:1;min-width:0}.draw-bar .btn{flex:none}.draw-bar-row{display:flex;gap:6px;min-width:0}.draw-bar .segmented{display:flex;flex:1}.draw-bar .segmented button{flex:1 1 0;min-width:0;height:36px}.draw-bar-notice{flex-direction:row;align-items:center;justify-content:space-between;font-size:var(--fs-small)}.pending-corner{fill:var(--accent);stroke:var(--surface);stroke-width:2}.draw-bar-error{align-self:center;color:var(--negative);font-size:var(--fs-small)}.inspector-body{display:flex;flex-direction:column;gap:16px;margin:0;padding:0;border:0;min-width:0}.share-menu{left:auto;right:0;width:min(340px,calc(100vw - 24px));display:grid;gap:10px;padding:12px}.copy-row{display:flex;gap:6px}.copy-row .input{flex:1;min-width:0}.check-row{display:flex;gap:8px;align-items:center}.canvas-form{display:grid;gap:6px;max-width:360px}.canvas-form-row{display:flex;gap:6px}.canvas-form .input{flex:1;min-width:0;color:var(--text)}.plan-empty{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(360px,calc(100% - 32px));padding:20px;border:1px dashed var(--control);border-radius:var(--radius-card);background:var(--plan-well);color:var(--muted);display:grid;gap:8px}.plan-empty p{margin:0}.plan-empty{pointer-events:none;touch-action:none}.plan-empty button{pointer-events:auto}.plan-empty-title{color:var(--text);font-weight:600;margin-bottom:4px!important}.guide{stroke:var(--accent);stroke-width:1;stroke-dasharray:4 4;opacity:.6}.ghost-wall{stroke:var(--accent);stroke-opacity:.45;stroke-linecap:square}.draw-overlay rect:not(.snap-marker):not(.typed){fill:var(--surface);stroke:var(--accent)}.draw-overlay text{font-size:var(--fs-small);font-weight:500;fill:var(--accent)}.typed{fill:var(--surface);stroke:var(--control)}.typed.error{stroke:var(--negative)}.snap-marker{fill:none;stroke:var(--accent);stroke-width:2}.snap-dot{fill:var(--accent)}.ghost-room{fill:var(--accent);fill-opacity:.08;stroke:var(--accent);stroke-width:2;stroke-dasharray:6 4}.ghost-opening{fill:var(--accent);fill-opacity:.35;stroke:var(--accent);stroke-width:1.5}.ghost-opening.invalid{fill:var(--negative);stroke:var(--negative)}.ghost-item{fill:var(--accent);fill-opacity:.12;stroke:var(--accent);stroke-width:1.5;stroke-dasharray:5 3}.ghost-item-front{stroke:var(--accent);stroke-width:3}.ghost-item-label{fill:var(--text);font-size:var(--fs-small);font-weight:500;paint-order:stroke;stroke:var(--surface);stroke-width:3px}.item polygon{fill:var(--surface);fill-opacity:.85;stroke:var(--muted);stroke-width:1px;vector-effect:non-scaling-stroke}.item .item-front{stroke:var(--text);stroke-width:2px;vector-effect:non-scaling-stroke}.item:hover polygon{stroke:var(--accent)}.item-overhead circle,.item-overhead path{fill:var(--surface);fill-opacity:.01;stroke:var(--text);stroke-width:1.25px;vector-effect:non-scaling-stroke}.item-overhead:hover circle,.item-overhead:hover path{stroke:var(--accent)}.catalogue .input{margin-bottom:4px}.catalogue-group+.catalogue-group{margin-top:6px}.catalogue-heading{margin:6px 0 2px;font-size:var(--fs-small);color:var(--muted);font-weight:500}.inspector{padding:var(--pad);overflow:auto;display:flex;flex-direction:column;gap:16px}.inspector-head{display:flex;align-items:center;justify-content:space-between;min-height:var(--control-height)}.panel-title{margin:0;font-size:var(--fs-title);font-weight:600}.stack{display:grid;gap:12px}.stack>.section-title{margin:0}.section-title{margin:0 0 6px;font-size:var(--fs-body);font-weight:500;color:var(--muted)}.room-list{list-style:none;margin:0;padding:0}.room-list button{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;height:34px;padding:0 8px;margin:0 -8px;width:calc(100% + 16px);border:0;border-radius:var(--radius-control);background:transparent;text-align:left;cursor:pointer}.room-list button:hover{background:var(--raised)}.room-list-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.total{display:flex;justify-content:space-between;align-items:baseline;margin:8px 0 0;padding-top:8px;border-top:1px solid var(--rule);font-weight:500}.total-figure{font-size:22px;line-height:28px;font-weight:400}.facts{display:grid;grid-template-columns:repeat(3,1fr);margin:0;border:1px solid var(--border);border-radius:var(--radius-card)}.facts div{padding:8px 12px}.facts div+div{border-left:1px solid var(--border)}.facts dt{font-size:var(--fs-small);color:var(--muted)}.facts dd{margin:0;font-size:var(--fs-title)}.empty-line,.note,.field-hint{margin:0;font-size:var(--fs-hint);line-height:18px;color:var(--muted)}.field{display:grid;gap:6px}.field label{font-weight:500}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.input{height:var(--control-height);width:100%;padding:0 10px;border:1px solid var(--control);border-radius:var(--radius-control);background:var(--surface)}.input::placeholder{color:#6b6b6b}.input.invalid{border-color:var(--negative)}.input.invalid+.field-hint{color:var(--negative)}@media(max-width:1100px){:root{--palette-width: 56px;--inspector-width: 248px}.palette{padding:12px 6px}.panel-heading,.tool-label,.tool-key,.tool-hint,.tool-options{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.palette .tool-options,.palette .tool-hint{display:none}.tool{grid-template-columns:1fr;justify-items:center;padding:0}}@media(max-width:720px){.app{grid-template-rows:48px 1fr auto;overflow-x:hidden}.workspace>.panel,.topbar-left,.topbar-right{min-width:0}.brand-name,.topbar-divider{display:none}.topbar .pill{width:10px;min-width:10px;height:10px;padding:0;border-radius:50%;font-size:0;flex:none}.topbar .pill.pill-neutral{background:var(--control)}.topbar .pill.pill-negative{background:var(--negative)}.topbar .pill-old{max-width:18vw;overflow:hidden;text-overflow:ellipsis;padding:0 6px}.project-name{font-size:var(--fs-body);max-width:24vw}.share-btn-label{display:none}.share-btn{padding:0 10px}.topbar-left,.topbar-right{gap:4px}.topbar .segmented button:nth-child(2){display:none}.topbar .segmented button{padding:0 6px}.topbar{gap:6px;padding:0 6px}.topbar .icon-btn{width:28px}.sample-banner{flex-wrap:wrap;gap:6px;padding:6px 8px 6px 12px}.sample-banner .btn{white-space:nowrap}.tool-list{overflow-x:auto}.workspace{grid-template-columns:1fr;grid-template-rows:1fr auto auto;padding:0;gap:0}.workspace>.panel{border-radius:0;border-left:0;border-right:0}.stage{grid-row:1}.stage-split .stage-views{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.stage-split .viewport{border-left:0;border-top:1px solid var(--border)}.inspector{grid-row:2;max-height:40vh}.palette{grid-row:3;padding:4px 8px}.tool-list{grid-auto-flow:column;justify-content:start}.tool{width:38px;height:44px}.inspector{max-height:32vh}.tool-panel-hint{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.inspector-toggle{display:block;width:100%;min-height:40px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--muted);font-weight:500;text-align:left;padding:0}.inspector-folded{padding-top:4px;padding-bottom:4px}.inspector-folded>:not(.inspector-toggle){display:none}.inspector-folded .inspector-toggle{border-bottom:0}.sample-banner{padding:4px 6px 4px 12px;font-size:var(--fs-small)}.sample-banner span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sample-banner{flex-wrap:nowrap}.app-walking .sample-banner{display:none}html,body{overscroll-behavior:none}.app-walking .inspector,.app-walking .palette{display:none}}@media(pointer:coarse){.icon-btn,.btn,.segmented button{min-height:40px}.icon-btn{min-width:40px}.input,.room-list button,.menu button{min-height:44px}.plan-corner button{width:44px;height:44px}.plan-corner-br button:not([aria-label^=Fit]){display:none}}.share-btn-icon{display:none}@media(max-width:720px){.share-btn-icon{display:inline-flex}}.loading-veil{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;gap:10px;background:color-mix(in srgb,var(--surface) 70%,transparent);color:var(--muted);font-weight:500}.loading-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);animation:loading-pulse 1s ease-in-out infinite alternate}@keyframes loading-pulse{0%{opacity:.25}to{opacity:1}}@media(prefers-reduced-motion:reduce){.loading-dot{animation:none}}.app-walking canvas{touch-action:none}.swatches{display:flex;flex-wrap:wrap;gap:6px}.swatch{width:28px;height:28px;border-radius:50%;border:1px solid var(--border);cursor:pointer;padding:0}.swatch[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:2px}@media(pointer:coarse){.swatch{width:36px;height:36px}}@media(max-width:720px){.tool-panel .catalogue>.panel-heading,.tool-panel .catalogue-heading{display:none}.tool-panel .catalogue-list{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}.tool-panel .catalogue-group,.tool-panel .catalogue .choice-list{display:contents}.tool-panel .catalogue-list li{flex:none}.inspector{overscroll-behavior:contain}}
