:root{--twb-bg: #f7f7f5;--twb-panel: #ffffff;--twb-line: #dcd7c9;--twb-line-strong: #b9b9b1;--twb-ink: #2c3639;--twb-muted: #6a7172;--twb-accent: #3f4e4f;--twb-accent-strong: #2c3639;--twb-accent-soft: #e7ebeb;--twb-accent-on-ink: #9fb1b2;--twb-ok: #6a7172;--twb-ok-soft: #e9eaea;--twb-warn: #a27b5c;--twb-warn-soft: #ffead8;--twb-bad: #8c5e54;--twb-bad-soft: #eee7e5;--twb-font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--twb-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--twb-logo-font: "Helvetica Neue", Helvetica, Arial, "Liberation Sans", sans-serif;--twb-text: 13px;--twb-text-small: 11px;--twb-control: 28px;--twb-radius: 4px;--twb-radius-lg: 6px;--sk-text: var(--twb-ink);--sk-muted: var(--twb-muted);--sk-panel: var(--twb-panel);--sk-border: var(--twb-line);--sk-border-strong: var(--twb-line-strong);--sk-accent: var(--twb-accent);--sk-accent-soft: var(--twb-accent-soft);--sk-radius: var(--twb-radius);--sk-control: var(--twb-control)}:root{--fm-hover: #2f80ed;--sk-plan-hover: var(--fm-hover);--sk-plan-selection: var(--twb-accent)}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--twb-bg);color:var(--twb-ink);font:var(--twb-text) / 1.4 var(--twb-font)}#app{display:grid;grid-template:"top" auto "plan" 1fr "status" auto / 1fr;height:100vh}button{font:inherit;color:inherit}h2{margin:12px 0 6px;font-size:var(--twb-text-small);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--twb-muted)}.fm-top{grid-area:top;display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--twb-panel);border-bottom:1px solid var(--twb-line)}.fm-mark{font:700 15px var(--twb-logo-font);letter-spacing:.02em}.fm-mark b{color:var(--twb-accent)}.fm-app{font-weight:400;margin-left:2px}.fm-file{color:var(--twb-muted);margin-left:12px}.fm-spacer{flex:1}.fm-btn{height:var(--twb-control);padding:0 10px;border:1px solid var(--twb-line-strong);border-radius:var(--twb-radius);background:var(--twb-panel);cursor:pointer}.fm-btn:hover{border-color:var(--twb-accent)}.fm-search,.fm-changes-anchor{position:relative}.fm-search{margin-left:12px}.fm-search input[type=search]{width:220px;height:var(--twb-control);padding:0 8px;border:1px solid var(--twb-line-strong);border-radius:var(--twb-radius);font:inherit}.fm-popover{position:absolute;top:calc(100% + 6px);z-index:10;width:320px;max-height:60vh;overflow:auto;padding:6px;background:var(--twb-panel);border:1px solid var(--twb-line);border-radius:var(--twb-radius-lg);box-shadow:0 4px 16px #0000001f}.fm-search .fm-popover{left:0}.fm-changes{right:0}.fm-popover[hidden]{display:none}.fm-list{display:flex;flex-direction:column;gap:1px}.fm-row{display:flex;align-items:center;gap:6px;width:100%;padding:4px 6px;border:0;border-radius:var(--twb-radius);background:none;text-align:left;cursor:pointer}.fm-row:hover{background:var(--twb-accent-soft)}.fm-row[aria-current=true]{background:var(--twb-accent-soft);font-weight:600}.fm-row .fm-meta{margin-left:auto;color:var(--twb-muted);font-size:var(--twb-text-small);white-space:nowrap}.fm-row .fm-title{flex:1;min-width:0}.fm-row .fm-revert{border:1px solid var(--twb-line);border-radius:var(--twb-radius);background:var(--twb-panel);font-size:var(--twb-text-small);padding:1px 6px;cursor:pointer}.fm-group{margin:10px 0 2px;font-size:var(--twb-text-small);color:var(--twb-muted)}.fm-none{color:var(--twb-muted);padding:4px 6px}.fm-plan{grid-area:plan;position:relative;min-width:0;min-height:0}.fm-plan-host,.fm-3d-host{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--twb-bg)}.fm-3d-host[hidden]{display:none}.fm-rail{position:absolute;top:50%;left:12px;transform:translateY(-50%);z-index:2}.fm-corner-left{position:absolute;top:12px;left:12px;z-index:3;display:flex;flex-direction:column;align-items:flex-start;gap:8px;pointer-events:none}.fm-corner-left>*{pointer-events:auto}.fm-tool-options{padding:4px 8px;background:var(--twb-panel);border:1px solid var(--twb-line);border-radius:var(--twb-radius-lg)}.fm-rail[hidden],.fm-tool-options[hidden]{display:none}.fm-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--twb-muted);z-index:1}.fm-empty[hidden],.fm-layer-builder[hidden]{display:none}.fm-navbar{position:absolute;bottom:12px;left:50%;transform:translate(-50%);z-index:2;display:flex}.fm-navbar[hidden]{display:none}.fm-corner{position:absolute;top:12px;right:12px;bottom:12px;z-index:3;display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none}.fm-corner>*{pointer-events:auto}.fm-room-panel{flex:0 0 auto;min-height:0;max-height:100%}.fm-corner-toggles{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:8px 6px;width:min(460px,100%);flex-shrink:0;pointer-events:none}.fm-corner-toggles>*{pointer-events:auto}.fm-corner-toggles:after{content:"";order:1;flex-basis:100%;height:0}.fm-corner-toggles>:not([folded]){order:2;max-height:45vh}.fm-corner>fm-room-panel,.fm-corner>fm-element-panel{flex-shrink:1;min-height:200px}.fm-room-panel[hidden]{display:none}.fm-layer-builder{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;overflow-y:auto;background:var(--twb-bg)}.fm-status{grid-area:status;padding:4px 12px;background:var(--twb-panel);border-top:1px solid var(--twb-line);color:var(--twb-muted);font-size:var(--twb-text-small);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fm-plan-host{overflow:hidden;--sk-dim-ink: var(--twb-accent);--sk-dim-surface: var(--twb-panel);--sk-dim-text: var(--twb-ink);--sk-dim-muted: var(--twb-muted);--sk-dim-danger: var(--twb-bad)}.fm-card-host{position:absolute;right:12px;bottom:64px;z-index:4;width:min(460px,calc(100% - 24px));max-height:calc(100% - 140px);overflow:auto;border:1px solid var(--twb-line);border-radius:8px;background:var(--twb-panel);box-shadow:0 4px 18px #00000029}.fm-card-host.is-full{position:fixed;top:12px;right:12px;bottom:12px;left:12px;width:auto;max-height:none;z-index:50;display:flex;flex-direction:column}.fm-card-host[hidden],.fm-card-host.is-full[hidden]{display:none}.fm-section-view{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;overflow-y:auto;background:var(--twb-bg)}.fm-section-view[hidden]{display:none}.fm-plan:has(>#section-view:not([hidden]))>.fm-corner{top:64px;z-index:6}.fm-plan:has(>#section-view:not([hidden]))>.fm-corner>:not(#element-panel){display:none}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .tool-group{display:flex;align-items:center;gap:4px}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .tool-group-end{margin-left:auto}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .tool-btn{font:inherit;padding:5px 12px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:4px;cursor:pointer}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .tool-btn:hover{border-color:var(--muted)}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .tool-btn.is-active{background:var(--accent);border-color:var(--accent);color:#fff}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .tool-btn.is-danger:hover{border-color:var(--danger);color:var(--danger)}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .tool-btn:disabled{color:var(--muted);cursor:default;opacity:.6}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .tool-btn:disabled:hover{border-color:var(--border)}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .kind-swatch{display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:2px;border:1px solid rgb(0 0 0 / 20%);vertical-align:-1px}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .kind-swatch.is-floor{background:#8fbf9a}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .kind-swatch.is-wall{background:#e8b86d}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .kind-swatch.is-roof{background:#d48a7a}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .kind-swatch.is-interior-wall{background:#f3dcb3}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .kind-swatch.is-surfaces{background:#f4f2ea}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .kind-swatch.is-column{background:#8f5f2c}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .kind-swatch.is-beam{background:#a87339}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .kind-swatch.is-line{background:#a87339}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .tool-btn-icon{display:flex;align-items:center;justify-content:center;padding:5px 8px}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .nav-btn{display:flex;align-items:center;gap:6px;font:inherit;padding:7px;background:transparent;color:var(--text);border:0;border-radius:999px;cursor:pointer}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .nav-btn:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .nav-btn.is-active{background:var(--accent);color:#fff}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .nav-btn[hidden]{display:none}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .framing-select{flex:1;min-width:0;font:inherit;font-size:12px;padding:3px 4px;border:1px solid var(--border);border-radius:3px;background:var(--panel);color:var(--text)}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .zone-empty{margin:0;font-size:12px;color:var(--muted)}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .lb-header{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .lb-title{margin:0;font-size:18px;font-weight:600}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .lb-title-input{font-family:inherit;color:inherit;background:transparent;border:1px solid transparent;border-radius:4px;padding:2px 6px;min-width:12em}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .lb-title-input:hover,:where(.joint-wizard,.node-card,.section-view,.plan-sections) .lb-title-input:focus{border-color:var(--border);outline:none}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .lb-field{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .lb-field .framing-select{min-width:150px}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .lb-actions{display:flex;gap:6px;margin-left:auto}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .legend-tabs{display:flex;gap:2px;padding:2px;margin-bottom:2px;border:1px solid var(--border);border-radius:999px}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .cam-toggle{margin:0}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .framing-select.is-edited{border-color:#b26a00;background:#fff4e0}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .override-badge{display:inline-flex;align-items:center;padding:1px 7px;border-radius:999px;background:var(--twb-accent);color:#fff;font-size:11px;font-weight:600;line-height:16px;white-space:nowrap}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .docs-paper{background:#fff;border:1px solid var(--border);box-shadow:0 1px 4px #00000014;line-height:0}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .docs-paper{overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .docs-paper.is-zoomed{cursor:grab}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .docs-paper.is-zoomed.is-panning{cursor:grabbing}:where(.joint-wizard,.node-card,.section-view,.plan-sections) .docs-paper svg{width:100%;height:auto;display:block}.joint-wizard,.node-card,.section-view,.plan-sections{--bg: var(--twb-bg);--panel: var(--twb-panel);--border: var(--twb-line);--text: var(--twb-ink);--muted: var(--twb-muted);--accent: var(--twb-accent);--danger: #c0392b}.joint-wizard{display:flex;flex-direction:column;gap:8px;padding:10px 12px 12px}.jw-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.jw-faces{flex:1;display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.jw-tag{display:inline-grid;place-items:center;flex:none;width:18px;height:18px;border-radius:4px;background:var(--accent);color:#fff;font-size:11px;font-weight:600}.jw-presets{display:flex;gap:6px;flex-wrap:wrap}.jw-presets[hidden]{display:none}.jw-section{width:100%;height:300px;border:1px solid var(--border);border-radius:6px;background:var(--bg)}.jw-layer{stroke:#3a4149;stroke-width:1;vector-effect:non-scaling-stroke;cursor:pointer;pointer-events:all}.jw-member{fill:#d9b98a;fill-opacity:.85;stroke:#5b4630;stroke-width:1.2;vector-effect:non-scaling-stroke;pointer-events:none}.jw-member.is-beyond{fill-opacity:.35;stroke-dasharray:4 3}.jw-member.is-batten{cursor:pointer;pointer-events:all}.jw-member.is-batten:hover{stroke:var(--accent);stroke-width:2}.jw-member.is-picked{stroke:#e8742c;stroke-width:2.5}.jw-hatch{fill:none;stroke:#6b5a3e;stroke-width:.8;vector-effect:non-scaling-stroke;pointer-events:none}.jw-hatch.is-context{opacity:.45}.jw-leader{stroke:#3a4149;stroke-width:.8;vector-effect:non-scaling-stroke;pointer-events:none}.jw-leader-dot{fill:#3a4149;pointer-events:none}.jw-thin-label{fill:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.jw-thin-label:hover{fill:var(--accent)}.jw-member-cross{stroke:#5b4630;stroke-width:.8;vector-effect:non-scaling-stroke;pointer-events:none}.jw-context{stroke:#9aa4ae;stroke-width:1;vector-effect:non-scaling-stroke;opacity:.55;pointer-events:none}.jw-layer:hover{stroke:var(--accent);stroke-width:2}.jw-layer.is-air{stroke:#9aa4ae;stroke-dasharray:3 3}.jw-layer.is-picked{stroke:#e8742c;stroke-width:2.5}.jw-face{stroke:#3a4149;stroke-width:1;stroke-dasharray:8 3 2 3;vector-effect:non-scaling-stroke;pointer-events:none}.jw-label{fill:var(--muted);font-weight:600;text-anchor:middle;dominant-baseline:middle;pointer-events:none}.jw-miter{stroke:#9aa4ae;stroke-dasharray:4 4;vector-effect:non-scaling-stroke;pointer-events:none}.jw-target{stroke:var(--accent);stroke-width:1.5;stroke-dasharray:6 4;vector-effect:non-scaling-stroke;pointer-events:none}.jw-target.is-miter{stroke:var(--muted)}.jw-target.is-on{stroke:#e8742c;stroke-width:2;stroke-dasharray:none}.jw-target.is-hover{stroke-width:3}.jw-target-hit{stroke:transparent;stroke-width:12;vector-effect:non-scaling-stroke;cursor:pointer;pointer-events:stroke}#joint-wizard.is-full .joint-wizard,#opening-wizard.is-full .joint-wizard{flex:1;min-height:0}#joint-wizard.is-full .jw-canvas,#opening-wizard.is-full .jw-canvas{flex:1;min-height:0;display:flex;flex-direction:column}#joint-wizard.is-full .jw-section,#opening-wizard.is-full .jw-section{flex:1;height:auto;min-height:0}.jw-canvas{position:relative}.jw-canvas>.jw-section{display:block}.jw-navbar{position:absolute;bottom:8px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:2px;padding:2px;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--panel) 92%,transparent);box-shadow:0 2px 8px #0000001a}.jw-navbar .nav-btn:disabled{opacity:.35;cursor:default;background:transparent}.jw-section{touch-action:none;cursor:grab}.jw-section:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.jw-section.is-drawing{cursor:crosshair}.jw-kind{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.jw-kind>span{flex:1;min-width:180px}.jw-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.jw-tools-gap{flex:1}.jw-trim{stroke:#3a4149;stroke-width:1;vector-effect:non-scaling-stroke;cursor:pointer;pointer-events:all}.jw-trim:hover{stroke:var(--accent);stroke-width:2}.jw-trim.is-picked{stroke:#e8742c;stroke-width:2.5;cursor:move}.jw-layer.is-knifed{stroke:#e8742c;stroke-width:2.5;filter:brightness(1.08)}.jw-knife{stroke:#e8742c;stroke-width:1.5;stroke-dasharray:10 4 2 4;vector-effect:non-scaling-stroke;pointer-events:none}.jw-knife-dot{fill:#fff;stroke:#e8742c;stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:none}.jw-knife-dot.is-start{fill:#e8742c}.jw-knife-label{fill:#b4541a;font-weight:600;paint-order:stroke;stroke:var(--bg);stroke-width:3px;pointer-events:none}.jw-trim.is-draft{fill:#e8742c40;stroke:#e8742c;stroke-dasharray:4 3;pointer-events:none}.jw-status{display:flex;align-items:center;gap:8px;font-size:13px}.jw-status>span:nth-child(2){flex:1}.jw-status>select{flex:none;width:auto}.jw-hint{margin:0;font-size:12px;color:var(--muted)}.jw-hint.is-warning{color:var(--twb-warn)}.jw-more{padding:6px 8px;border-left:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent)}.jw-recipe{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--border, #ddd);padding-top:8px}.jw-recipe h3{margin:0;font-size:13px}.jw-recipe dl{margin:0;display:grid;grid-template-columns:max-content 1fr;gap:2px 10px;font-size:12px}.jw-recipe dt{grid-column:1;font-weight:600}.jw-recipe dd{grid-column:2;margin:0}.jw-overhang{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.jw-wall-foot{display:flex;flex-direction:column;gap:6px;padding-top:6px;border-top:1px solid var(--border)}.jw-overhang .lb-field{display:flex;align-items:center;gap:6px}.jw-overhang .jw-overhang-input{flex:none;width:90px}.nc-meeting{display:flex;flex-direction:column;gap:6px}.nc-meeting+.nc-meeting{padding-top:8px;border-top:1px solid var(--border)}.nc-title{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;font-weight:600}.nc-kind{margin-left:auto;font-weight:400;color:var(--muted)}.nc-plan{width:100%;height:240px;border:1px solid var(--border);border-radius:6px;background:var(--bg)}.nc-rule{margin:0;font-size:12px;color:var(--muted)}.nc-trims{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;font-size:12px}.nc-trims li{display:flex;align-items:baseline;gap:6px}.nc-trims .kind-swatch{flex:none;margin-right:0}.nc-trim{display:flex;flex-direction:column}.nc-trim span{color:var(--muted)}.nc-edge{flex:none;color:var(--muted)}.section-view{display:flex;flex-direction:column;gap:12px;height:100%;box-sizing:border-box;padding:16px 20px;outline:none}.section-view-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center}.section-view-paper,.section-view-paper.is-zoomed{cursor:grab}.section-view-paper svg{height:100%}.section-view-paper g.is-pick-hover>path:first-child{fill:color-mix(in srgb,#2f7bff 22%,white)}.section-view-paper g.is-pick-picked>path:first-child{fill:color-mix(in srgb,#2f7bff 45%,white)}.section-view-paper g.is-pick-hover path[stroke="#000"],.section-view-paper g.is-pick-picked path[stroke="#000"]{stroke:#2f7bff}.plan-sections{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;overflow:hidden}.plan-sections-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.plan-section-line{stroke:var(--text);stroke-width:1.2;stroke-dasharray:14 4 2 4}.plan-section-line.is-draft{stroke:var(--accent)}.plan-section-arrow{stroke:var(--text);stroke-width:2}.plan-section-head{fill:var(--text)}.plan-section-line.is-left-out,.plan-section-arrow.is-left-out{stroke:var(--muted);stroke-opacity:.6}.plan-section-head.is-left-out{fill:var(--muted);fill-opacity:.6}.plan-section-mark{position:absolute;transform:translate(-11px,-50%);display:flex;align-items:center;gap:3px;pointer-events:auto}.plan-section-letter{width:22px;height:22px;padding:0;border-radius:50%;border:1.5px solid var(--text);background:var(--panel);color:var(--text);font-size:12px;font-weight:600;line-height:1;cursor:pointer}.plan-section-letter:hover{border-color:var(--accent);color:var(--accent)}.plan-section-letter.is-left-out{border-color:var(--muted);color:var(--muted);border-style:dashed}.plan-section-tools{display:flex;gap:2px}.plan-section-tool{display:grid;place-items:center;width:20px;height:20px;padding:0;border:1px solid var(--border);border-radius:4px;background:var(--panel);color:var(--muted);cursor:pointer}.plan-section-tool:hover{color:var(--text)}.plan-section-docs.is-active{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.plan-section-extra{display:none}.plan-section-mark:hover .plan-section-extra{display:grid}:where(.layer-builder) .tool-btn{font:inherit;padding:5px 12px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:4px;cursor:pointer}:where(.layer-builder) .tool-btn:hover{border-color:var(--muted)}:where(.layer-builder) .tool-btn:disabled{color:var(--muted);cursor:default;opacity:.6}:where(.layer-builder) .framing-select{flex:1;min-width:0;font:inherit;font-size:12px;padding:3px 4px;border:1px solid var(--border);border-radius:3px;background:var(--panel);color:var(--text)}:where(.layer-builder) .tool-number{font:inherit;width:56px;border:1px solid var(--border);border-radius:3px;padding:3px 4px}:where(.layer-builder) .zone-summary-num{font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}:where(.layer-builder) .zone-swatch{flex:none;width:12px;height:12px;border-radius:2px}:where(.layer-builder) .zone-problem{font-size:11px;color:var(--danger)}:where(.layer-builder) .hvac-summary{display:flex;flex-direction:column;gap:3px;font-size:12px}:where(.layer-builder) .hvac-stat{display:flex;justify-content:space-between;gap:8px}:where(.layer-builder) .hvac-stat.is-total{font-weight:600;padding-top:3px;border-top:1px solid var(--border)}:where(.layer-builder) .envelope-check.is-pass{color:#1e7a3c}:where(.layer-builder) .envelope-check.is-fail{color:var(--twb-bad)}.layer-builder{--bg: var(--twb-bg);--panel: var(--twb-panel);--border: var(--twb-line);--text: var(--twb-ink);--muted: var(--twb-muted);--accent: var(--twb-accent);--danger: #c0392b;max-width:1180px;margin:0 auto;padding:16px 20px 24px;display:flex;flex-direction:column;gap:12px}.lb-header{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}.lb-title{margin:0;font-size:18px;font-weight:600;text-transform:none;letter-spacing:normal;color:var(--text)}.lb-title-input{font-family:inherit;color:inherit;background:transparent;border:1px solid transparent;border-radius:4px;padding:2px 6px;min-width:12em}.lb-title-input:hover,.lb-title-input:focus{border-color:var(--border);outline:none}.lb-type-of{font-size:12px;color:var(--muted)}.lb-field{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.lb-field .framing-select{min-width:150px}.lb-actions{display:flex;gap:6px;margin-left:auto}.lb-body{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:12px}.lb-layers{grid-column:1 / -1}.lb-body.is-light{grid-template-columns:minmax(0,1fr)}@media(max-width:900px){.lb-body{grid-template-columns:minmax(0,1fr)}}.lb-card{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--panel);border:1px solid var(--border);border-radius:8px;min-width:0}.lb-card-head{display:flex;justify-content:space-between;gap:8px;font-weight:600}.lb-svg{width:100%;height:auto;display:block}.lb-band-fill{stroke:#00000040;stroke-width:.5}.lb-member{stroke:#00000073;stroke-width:.6}.lb-band.is-core .lb-band-fill{stroke:var(--text);stroke-width:1.2}.lb-band.is-ignored{opacity:.4}.lb-band.is-hot .lb-band-fill{stroke:var(--accent);stroke-width:2}.lb-band-num,.lb-side,.lb-note{font-size:11px;fill:var(--muted)}.lb-side{font-size:12px;fill:var(--text)}.lb-cut{stroke:var(--danger);stroke-width:1;stroke-dasharray:4 3}.lb-u{display:flex;align-items:baseline;gap:6px}.lb-u-num{font-size:32px;font-weight:600;font-variant-numeric:tabular-nums}.lb-u-unit{color:var(--muted)}.lb-table-wrap{overflow-x:auto}.lb-table{width:100%;border-collapse:collapse;font-size:12px}.lb-table th{text-align:left;font-weight:500;color:var(--muted);padding:4px 6px;border-bottom:1px solid var(--border);white-space:nowrap}.lb-table td{padding:4px 6px;border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent);vertical-align:middle}.lb-table tr:hover td{background:color-mix(in srgb,var(--accent) 5%,transparent)}.lb-table tr.is-core td{background:color-mix(in srgb,var(--accent) 7%,transparent)}.lb-table tr.is-marked td{background:color-mix(in srgb,var(--accent) 16%,transparent)}.lb-table tr.is-marked td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.lb-table tr.is-ignored td{color:var(--muted)}.lb-table tr.is-ignored .framing-select,.lb-table tr.is-ignored .lb-number{opacity:.6}.lb-num{color:var(--muted);font-variant-numeric:tabular-nums;width:24px}.lb-name{display:flex;align-items:center;gap:6px;min-width:220px}.lb-core-tag{flex:none;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:999px;color:#fff;background:var(--accent)}.lb-number{width:64px}.lb-members{white-space:nowrap}.lb-members-row{display:inline-flex;align-items:center;gap:4px}.lb-x{color:var(--muted)}.lb-figure{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.lb-row-actions{white-space:nowrap;text-align:right}.lb-icon-btn{font:inherit;width:24px;height:24px;padding:0;background:transparent;color:var(--text);border:1px solid transparent;border-radius:4px;cursor:pointer}.lb-icon-btn:hover:not(:disabled){border-color:var(--border);background:var(--panel)}.lb-icon-btn:disabled{color:color-mix(in srgb,var(--muted) 45%,transparent);cursor:default}.lb-link{font:inherit;font-size:11px;padding:0 4px;background:none;border:0;color:var(--accent);cursor:pointer}.lb-link:hover{text-decoration:underline}.lb-add{display:flex;align-items:center;gap:6px;max-width:520px}.lb-core-source{font-size:11px;color:var(--muted);white-space:normal;max-width:360px}.lb-fixed{display:inline-block;width:64px;padding:3px 4px;font-variant-numeric:tabular-nums;color:var(--muted)}.lb-boards{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.lb-fit{gap:6px;font-size:12px;color:var(--muted);cursor:pointer}.lb-board-label{display:inline-block;min-width:48px}.lb-run{margin-left:6px}.lb-check{display:flex;align-items:center;gap:8px}.lb-check .zone-problem{flex:1;margin:4px 0}.lb-fix{flex:none}.lb-table td.lb-row-actions{position:sticky;right:0;background:var(--panel);box-shadow:-6px 0 6px -6px #0000002e}.lb-table tr.is-core td.lb-row-actions{background:linear-gradient(color-mix(in srgb,var(--accent) 7%,transparent),color-mix(in srgb,var(--accent) 7%,transparent)),var(--panel)}.lb-table tr:hover td.lb-row-actions{background:linear-gradient(color-mix(in srgb,var(--accent) 5%,transparent),color-mix(in srgb,var(--accent) 5%,transparent)),var(--panel)}.lb-icon-btn.is-delete{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}.lb-icon-btn.is-delete:hover:not(:disabled){color:var(--danger)}
