:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-color:#212830;--edge-color:#e8ebee;--panel-bg:#262e37;--panel-text:#d3d9df;--panel-muted:#8b95a1;--panel-border:#3a4451;--accent:#4dabf7}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-color:#fff;--edge-color:#000;--panel-bg:#fff;--panel-text:#1a1a1a;--panel-muted:#555;--panel-border:#ccc;--accent:#1971c2}html,body{background:var(--bg-color);height:100%;margin:0}#app{background:var(--bg-color);height:100%;color:var(--panel-text);flex-direction:column;font-family:system-ui,sans-serif;display:flex}.toolbar{background:var(--panel-bg);border-bottom:1px solid var(--panel-border);align-items:center;gap:1rem;padding:.5rem 1rem;font-size:.85rem;display:flex}.stats{color:var(--panel-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.layer-toggles{background:var(--panel-bg);border-bottom:1px solid var(--panel-border);color:var(--panel-text);padding:.4rem 1rem;font-size:.8rem;display:flex}.layer-dropdown{position:relative}.layer-dropdown>summary{border:1px solid var(--panel-border);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;align-items:center;gap:.4rem;padding:.2rem .6rem;list-style:none;display:inline-flex}.layer-dropdown>summary::-webkit-details-marker{display:none}.layer-dropdown>summary:after{content:"▾";opacity:.6}.layer-dropdown[open]>summary:after{content:"▴"}.layer-dropdown>summary .count{color:var(--panel-muted)}.layer-menu{z-index:10;background:var(--panel-bg);border:1px solid var(--panel-border);white-space:nowrap;border-radius:4px;flex-direction:column;gap:.25rem;max-height:60vh;padding:.5rem .75rem;display:flex;position:absolute;top:calc(100% + .25rem);left:0;overflow-y:auto;box-shadow:0 4px 12px #00000040}.layer-menu label{align-items:center;gap:.35rem;padding-left:.4rem;display:flex}.layer-group{flex-direction:column;gap:.2rem;display:flex}.layer-group+.layer-group{border-top:1px solid var(--panel-border);margin-top:.4rem;padding-top:.4rem}.layer-group-head{color:var(--panel-muted);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;background:0 0;border:0;justify-content:space-between;gap:1rem;padding:0;font-size:.72rem;font-weight:600;display:flex}.layer-group-head:hover{color:var(--panel-text)}.layer-menu>button{margin-top:.5rem}.svg-container{cursor:grab;background:var(--bg-color);flex:1;min-height:0;padding:1.5rem;overflow:hidden}.svg-container svg{display:block}.svg-container svg [data-edge-id]{stroke:var(--edge-color)}.stats{opacity:.85;padding:4px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.5}.main{flex:1;min-height:0;display:flex}.main .svg-container{flex:1;min-width:0}.room-list{border-left:1px solid #80808059;width:380px;padding:8px 10px;font-size:13px;overflow-y:auto}.room-list h3{align-items:baseline;gap:6px;margin:0 0 8px;padding:7px 0;font-size:13px;font-weight:600;display:flex}.room-list h3 .count{opacity:.6;font-weight:400}.room-list h3 .total{margin-left:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.legend-note{opacity:.6;margin:0 0 10px;font-size:12px;line-height:1.4}.room-list th{text-align:left;text-transform:uppercase;letter-spacing:.04em;opacity:.5;border-bottom:1px solid #80808059;padding:0 4px 4px;font-size:11px;font-weight:500}.room-list th.num{text-align:right}.room-list tbody tr:hover{cursor:default;background:#80808026}.swatch-cell{width:14px;padding-right:0!important}.swatch{border-radius:2px;width:10px;height:10px;display:block}.err{margin-left:5px;font-size:10px}.err.ok{color:#2f9e44}.err.off{color:#e8590c}.room-list table{border-collapse:collapse;width:100%}.room-list td{border-bottom:1px solid #80808033;padding:3px 4px}.room-list td.num{text-align:right;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.room-list td.stated{opacity:.6;font-size:12px}.room-list tr.low{opacity:.65}.merged-tag{color:#fff;vertical-align:middle;background:#e8590c;border-radius:3px;margin-left:4px;padding:0 4px;font-size:9px;display:inline-block}.costing-controls{border-bottom:1px solid var(--panel-border);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;padding:6px 0 8px;font-size:11px;display:flex}.costing-controls input[type=number]{background:var(--bg-color);width:58px;color:var(--panel-text);border:1px solid var(--panel-border);font:inherit;border-radius:3px;padding:2px 4px}.project-total{align-items:baseline;gap:6px;margin-left:auto;display:flex}.project-total span{opacity:.6}.project-total strong{color:var(--accent);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.room-rows{margin:0;padding:0;list-style:none}.room-rows>li{border-bottom:1px solid #80808033}.room-rows>li.low{opacity:.7}.room-rows>li.picked{box-shadow:inset 3px 0 #f08c00}.room-rows>li.picked>details>summary{background:#f08c001f}.room-rows summary{cursor:pointer;align-items:center;gap:6px;padding:5px 2px;list-style-position:inside;display:flex}.room-rows summary:hover{background:#80808026}.room-rows summary .swatch{flex:none}.room-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.room-area{opacity:.65;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.room-cost{color:var(--accent);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.room-body{padding:2px 2px 8px 20px}.room-meta{opacity:.55;margin:0 0 6px;font-size:11px;line-height:1.45}.bundle+.bundle{margin-top:3px}.bundle-head{cursor:pointer;align-items:center;gap:4px;padding:2px 0;display:flex}.bundle-label{flex:1}.bundle-subtotal{opacity:.8;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.bundle-lines{margin:1px 0 6px 18px;padding:0;font-size:11px;list-style:none}.bundle-lines>li{padding:2px 0}.line-top{align-items:baseline;gap:6px;display:flex}.line-label{opacity:.8;flex:1;min-width:0}.line-amount{white-space:nowrap;flex:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.line-basis{opacity:.5;font-size:10px;line-height:1.35;display:block}.rate-note{border-top:1px solid var(--panel-border);opacity:.45;margin-top:10px;padding-top:6px;font-size:11px}.rate-note code{font-size:11px}.plan-panel{border-right:1px solid #80808059;flex:none;width:235px;padding:8px 10px;font-size:13px;overflow-y:auto}.plan-panel h3{align-items:baseline;gap:6px;margin:0 0 8px;padding:7px 0;font-size:13px;font-weight:600;display:flex}.plan-panel h3 .count{opacity:.6;font-weight:400}.door-schedule{border-collapse:collapse;width:100%}.door-schedule th{text-align:left;text-transform:uppercase;letter-spacing:.04em;opacity:.5;border-bottom:1px solid #80808059;padding:0 4px 4px;font-size:11px;font-weight:500}.door-schedule th.num,.door-schedule td.num{text-align:right}.door-schedule td{border-bottom:1px solid #80808026;padding:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.door-schedule tr.low td{opacity:.6}.door-schedule+.legend-note{margin-top:10px}.wall-readout{border-bottom:1px solid #80808059;border-left:3px solid #f08c00;margin-bottom:14px;margin-left:-8px;padding-bottom:10px;padding-left:8px}.wall-readout dl{grid-template-columns:auto 1fr;gap:3px 10px;margin:0 0 8px;display:grid}.wall-readout dt{text-transform:uppercase;letter-spacing:.04em;opacity:.5;align-self:baseline;font-size:11px}.wall-readout .unfronted{opacity:.55;font-style:italic}.wall-readout dd{text-overflow:ellipsis;white-space:nowrap;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;overflow:hidden}.plan-panel,.room-list{transition:width .12s;position:relative}.plan-panel.collapsed,.room-list.collapsed{width:26px;padding:0;overflow:hidden}.panel-rail{width:100%;height:100%;color:inherit;font:inherit;cursor:pointer;opacity:.65;writing-mode:vertical-rl;letter-spacing:.03em;white-space:nowrap;background:0 0;border:0;justify-content:flex-end;align-items:center;padding:10px 0;font-size:11px;display:flex;transform:rotate(180deg)}.panel-rail:hover{opacity:1}.panel-rail .count{opacity:.6;margin-top:6px}.panel-collapse{z-index:1;width:18px;height:18px;color:inherit;cursor:pointer;opacity:.6;background:#8080802e;border:0;border-radius:3px;padding:0;font-size:13px;line-height:1;position:absolute;top:4px;right:6px}.panel-collapse.right{left:6px;right:auto}.panel-collapse:hover{opacity:1;background:#80808059}.room-list>h3{padding-left:22px}
