._viewport_1wkhe_3{--viewport-paper: var(--color-paper, oklch(97% .012 85));--viewport-paper-2: var(--color-paper-2, oklch(94% .016 85));--viewport-ink: var(--color-ink, oklch(27% .02 75));--viewport-accent: var(--color-accent, oklch(40% .055 155));--viewport-rule: var(--color-rule, oklch(84% .02 85));--viewport-muted: oklch(48% .025 75);--viewport-white: oklch(100% 0 0);position:relative;width:100%;height:100%;min-height:360px;min-width:0;overflow:clip;isolation:isolate;color:var(--viewport-ink);background:var(--viewport-paper-2)}._canvasHost_1wkhe_21{position:absolute;inset:0}._canvasHost_1wkhe_21 canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}._canvasHost_1wkhe_21 canvas:focus-visible{outline:2px solid var(--viewport-accent);outline-offset:-3px}._dimensions_1wkhe_36{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}._toolbar_1wkhe_43{position:absolute;z-index:2;top:16px;right:16px;display:flex;max-width:min(450px,calc(100% - 32px));flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:3px;padding:4px;border:1px solid var(--viewport-rule);border-radius:5px;background:var(--viewport-paper)}._toolbar_1wkhe_43 button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:30px;padding:5px 8px;border:0;border-radius:3px;background:transparent;color:var(--viewport-muted);font:inherit;font-size:11px;font-weight:550;white-space:nowrap;cursor:pointer}._toolbar_1wkhe_43 button:hover{background:var(--viewport-paper-2);color:var(--viewport-ink)}._toolbar_1wkhe_43 button[aria-pressed=true],._toolbar_1wkhe_43 button[aria-pressed=true]:hover{background:var(--viewport-accent);color:var(--viewport-white)}._toolbar_1wkhe_43 button:active{transform:translateY(1px)}._toolbar_1wkhe_43 button:focus-visible{outline:2px solid var(--viewport-accent);outline-offset:2px}._toolbar_1wkhe_43 button:disabled{opacity:.45;cursor:not-allowed}._divider_1wkhe_96{width:1px;height:18px;background:var(--viewport-rule);margin:0 3px}._doorControls_1wkhe_102{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:3px;flex-basis:100%;border-top:1px solid var(--viewport-rule);padding-top:4px}._doorSelector_1wkhe_111{display:flex;align-items:center;gap:var(--space-sm);min-width:0;font-size:var(--text-sm)}._doorSelector_1wkhe_111 select{width:auto;min-width:0;min-height:30px;padding:var(--space-xs) var(--space-sm);font:inherit}._inspectionNote_1wkhe_125{flex-basis:100%;max-width:380px;margin:3px 6px;color:var(--viewport-muted);font-size:10px;line-height:1.5;text-align:right}._bottomBar_1wkhe_134{position:absolute;left:20px;right:20px;bottom:16px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;pointer-events:none}._bottomBar_1wkhe_134 p{margin:0;color:var(--viewport-muted);font-size:10px;line-height:1.8}._bottomBar_1wkhe_134 p span{margin:0 5px;opacity:.6}._bottomBar_1wkhe_134 ._readOnlyHint_1wkhe_155{padding:8px 12px;border:1px solid var(--viewport-rule);border-radius:5px;background:var(--viewport-paper);color:var(--viewport-ink);font-size:11px}._bottomBar_1wkhe_134 ._dragFeedback_1wkhe_163{flex-shrink:0;padding:5px 9px;border:1px solid var(--viewport-accent);border-radius:3px;color:var(--viewport-accent);background:var(--viewport-paper);font-size:11px;font-weight:600}._fallback_1wkhe_173{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:clamp(24px,7vw,72px);background:var(--viewport-paper-2)}._fallback_1wkhe_173 h2{font-size:20px;font-weight:550;margin:0 0 12px}._fallback_1wkhe_173 p{max-width:54ch;font-size:13px;line-height:1.7;overflow-wrap:anywhere;color:var(--viewport-muted)}@media(max-width:600px){._toolbar_1wkhe_43{top:12px;right:12px}._toolbar_1wkhe_43 button{padding:5px 6px}._bottomBar_1wkhe_134{left:12px;right:12px;bottom:12px}._bottomBar_1wkhe_134 p{font-size:9px}}._transformPanel_1wkhe_212{position:absolute;left:var(--space-lg);bottom:var(--space-lg);z-index:4;width:min(320px,calc(100% - 32px));max-height:calc(100% - 220px);overflow:auto;padding:var(--space-md);border:var(--rule-width) solid var(--viewport-rule);border-radius:var(--radius-md);background:var(--viewport-paper);color:var(--viewport-ink)}._transformHeading_1wkhe_226{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-sm)}._transformHeading_1wkhe_226 span,._transformPanel_1wkhe_212 p,._transformSnap_1wkhe_235 span{color:var(--color-muted);font-size:var(--text-xs)}._transformPanel_1wkhe_212 p{margin:var(--space-xs) 0 0;line-height:1.5}._transformPanel_1wkhe_212 form{display:grid;gap:var(--space-sm)}._transformFields_1wkhe_247{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:end;gap:var(--space-xs)}._transformPanel_1wkhe_212 label{min-width:0;display:grid;gap:var(--space-xs);font-size:var(--text-xs)}._transformPanel_1wkhe_212 input,._transformPanel_1wkhe_212 select{width:100%;min-width:0;min-height:36px;padding:var(--space-xs);border:var(--rule-width) solid var(--viewport-rule);border-radius:var(--radius-sm);background:var(--viewport-paper);color:var(--viewport-ink);font:inherit}._transformPanel_1wkhe_212 input:focus-visible,._transformPanel_1wkhe_212 select:focus-visible{outline:2px solid var(--viewport-accent);outline-offset:2px}._transformSnap_1wkhe_235{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}._transformSnap_1wkhe_235 label{display:flex;align-items:center;gap:var(--space-sm)}._transformSnap_1wkhe_235 select{width:64px}@media(max-width:899px){._viewport_1wkhe_3[data-interaction=orbit]{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}._viewport_1wkhe_3[data-interaction=orbit] ._toolbar_1wkhe_43{position:static;grid-area:1 / 1 / 2 / 2;max-width:none;justify-content:center;border:0;border-bottom:var(--rule-width) solid var(--viewport-rule);border-radius:0}._viewport_1wkhe_3[data-interaction=orbit] ._canvasHost_1wkhe_21{grid-area:2 / 1 / 3 / 2;position:relative;inset:auto;min-height:0}._viewport_1wkhe_3[data-interaction=orbit] ._dimensions_1wkhe_36{grid-area:2 / 1 / 3 / 2}._viewport_1wkhe_3[data-interaction=orbit] ._doorControls_1wkhe_102{justify-content:center}._viewport_1wkhe_3[data-interaction=orbit] ._inspectionNote_1wkhe_125{text-align:center}._viewport_1wkhe_3[data-interaction=orbit] ._toolbar_1wkhe_43>button:disabled,._viewport_1wkhe_3[data-interaction=orbit] ._divider_1wkhe_96,._viewport_1wkhe_3[data-interaction=orbit] ._bottomBar_1wkhe_134{display:none}}.sheet-planner{padding:var(--space-lg);min-width:0}.sheet-planner form,.sheet-results,.sheet-material{display:grid;gap:var(--space-md);min-width:0}.sheet-planner form{margin-bottom:var(--space-xl)}.sheet-planner h3,.sheet-planner p{margin:0}.sheet-planner p,.sheet-planner li{font-size:var(--text-sm);line-height:1.6}.sheet-planner h3,.sheet-planner legend,.sheet-parts strong{overflow-wrap:anywhere;min-width:0}.sheet-planner label{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}.sheet-planner input,.sheet-planner select{min-width:0;width:100%}.sheet-planner fieldset{display:grid;gap:var(--space-md);min-width:0;margin:0;padding:var(--space-md);border:var(--rule-width) solid var(--color-rule)}.sheet-planner legend{padding-inline:var(--space-xs);font-weight:650}.sheet-planner form>button{justify-self:start}.sheet-summary{padding:var(--space-md);background:var(--color-accent-soft)}.sheet-error{padding:var(--space-md);color:var(--color-error);background:var(--color-error-soft)}.sheet-note{color:var(--color-muted)}.sheet-map{display:block;width:100%;height:auto;max-height:420px;margin-block:var(--space-md)}.sheet-stock{fill:var(--color-paper-3)}.sheet-usable{fill:var(--color-paper);stroke:var(--color-muted);stroke-dasharray:4 4}.sheet-piece{fill:var(--color-accent-soft);stroke:var(--color-accent)}.sheet-map rect{vector-effect:non-scaling-stroke;stroke-width:1px}.sheet-map text{fill:var(--color-ink);font-family:var(--font-body)}.sheet-parts{padding-left:var(--space-xl)}.sheet-parts li{margin-bottom:var(--space-sm);padding-left:var(--space-xs)}.sheet-parts span{display:block;color:var(--color-muted);font-variant-numeric:tabular-nums}.remnant-inventory,.sheet-booking{border:var(--rule-width) solid var(--color-rule);padding:var(--space-md);margin-bottom:var(--space-lg)}.sheet-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-sm)}.sheet-cuts{padding-left:var(--space-xl)}.sheet-cuts li{padding:var(--space-sm) 0;border-bottom:var(--rule-width) solid var(--color-rule)}.sheet-cuts span{display:block;font-variant-numeric:tabular-nums}.sheet-planner code{overflow-wrap:anywhere;font-size:.85em}.sheet-planner .sheet-retain{display:flex;align-items:start;gap:var(--space-sm);margin:var(--space-sm) 0}.sheet-planner .sheet-retain input{width:auto;flex:0 0 auto}.geometry-editor{display:grid;gap:12px;padding:var(--space-lg)}.geometry-editor h3{margin:0}.geometry-editor form{display:grid;gap:12px}.geometry-editor fieldset{min-width:0;margin:0;padding:12px;border:1px solid var(--color-border, #d6d0c4);border-radius:8px}.geometry-editor legend{padding:0 5px;font-size:13px;font-weight:600}.geometry-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.geometry-actions{display:flex;flex-wrap:wrap;gap:8px}.geometry-editor .hint{margin:0;font-size:12px;line-height:1.5}.geometry-editor input,.geometry-editor select{min-width:0;width:100%}@media(max-width:480px){.geometry-fields{grid-template-columns:1fr}}.session-panel{display:grid;gap:var(--space-xl);padding:var(--space-lg);min-width:0}.session-panel header,.session-panel section{display:grid;gap:var(--space-md);min-width:0}.session-panel h3,.session-panel p{margin:0}.session-panel p,.session-panel li,.session-panel dd,.session-panel dt{font-size:var(--text-sm);line-height:1.6}.session-panel button,.session-panel select{min-height:44px;max-width:100%;white-space:normal}.session-panel button{justify-self:start}.session-status{display:grid;gap:var(--space-xs);padding:var(--space-md);background:var(--color-paper-3);border-left:3px solid var(--color-muted)}.session-status--connected{background:var(--color-accent-soft);border-color:var(--color-accent)}.session-status--error,.session-error{color:var(--color-error);background:var(--color-error-soft)}.session-error{padding:var(--space-md)}.session-status span,.session-note,.session-identifiers dt{color:var(--color-muted);font-size:var(--text-sm)}.session-identifiers{display:grid;gap:var(--space-sm);margin:0}.session-identifiers dd{margin:0}.session-panel code,.session-panel strong,.session-panel dd{overflow-wrap:anywhere}.session-panel pre{margin:var(--space-sm) 0 0;padding:var(--space-md);background:var(--color-paper-3);white-space:pre-wrap;word-break:break-word;font-size:var(--text-sm)}.session-instructions{display:grid;gap:var(--space-md);margin:0;padding-left:var(--space-lg)}.session-permission{display:grid;gap:var(--space-xs);font-size:var(--text-sm)}.session-permission select{width:100%;min-width:0}.session-pair-code{display:grid;gap:var(--space-sm);padding:var(--space-md);border:var(--rule-width) solid var(--color-accent)}.session-pair-code>code{font-size:1.6rem;letter-spacing:.12em;-webkit-user-select:all;user-select:all}.session-pair-code>span{font-size:var(--text-sm);font-variant-numeric:tabular-nums}.session-section-title,.session-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm)}.session-section-title{justify-content:space-between}.session-connections{display:grid;gap:var(--space-md);margin:0;padding:0;list-style:none}.session-connections li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-sm);padding-bottom:var(--space-md);border-bottom:var(--rule-width) solid var(--color-rule)}.session-connections li>div{display:grid;min-width:0}.session-connections span{color:var(--color-muted)}.session-confirm{display:grid;gap:var(--space-md);padding:var(--space-md);border:var(--rule-width) solid var(--color-rule)}@media(max-width:420px){.session-panel{padding:var(--space-md)}.session-actions>button,.session-connections button{flex:1 1 auto}}:root{--color-paper: oklch(97% .012 85);--color-paper-2: oklch(94% .016 85);--color-paper-3: oklch(91% .02 85);--color-ink: oklch(27% .02 75);--color-muted: oklch(48% .02 75);--color-accent: oklch(40% .055 155);--color-accent-hover: oklch(34% .055 155);--color-accent-soft: oklch(91% .027 155);--color-on-accent: oklch(98% .008 85);--color-wood: oklch(64% .09 65);--color-rule: oklch(84% .02 85);--color-focus: oklch(44% .11 155);--color-error: oklch(43% .14 28);--color-error-soft: oklch(94% .025 28);--color-warning: oklch(48% .09 75);--color-transparent: transparent;--font-display: "Avenir Next", "Trebuchet MS", sans-serif;--font-body: "Avenir Next", "Segoe UI", sans-serif;--font-mono: "SFMono-Regular", Consolas, monospace;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 48px;--text-xs: 10px;--text-sm: 11px;--text-base: 12px;--text-lg: 14px;--text-xl: 18px;--text-display: 30px;--radius-sm: 3px;--radius-md: 5px;--rule-width: 1px;--ease-out: cubic-bezier(.2, 0, 0, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--dur-fast: .12s}*{box-sizing:border-box}html,body{margin:0;overflow-x:clip}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);line-height:1.5}button,input,select{font:inherit;color:inherit}button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:36px;padding:6px 12px;border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper);cursor:pointer;white-space:nowrap;line-height:1.3}button svg{flex-shrink:0}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.42;cursor:not-allowed}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}button.primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent);font-weight:600}button.subtle{border-color:var(--color-transparent);background:var(--color-transparent)}button.danger{color:var(--color-error)}button.icon-button{width:36px;padding:6px;border-color:var(--color-transparent);background:var(--color-transparent)}button[aria-pressed=true]{color:var(--color-accent);background:var(--color-accent-soft)}input,select{min-width:0;width:100%;min-height:36px;padding:6px 8px;background:var(--color-paper);border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius-sm)}input[type=number]{font-family:var(--font-mono);font-size:var(--text-sm)}input[type=checkbox]{width:15px;min-height:15px;margin:0;accent-color:var(--color-accent)}input[type=color]{padding:4px}input:disabled,select:disabled{opacity:.5;cursor:not-allowed}input[aria-invalid=true]{border-color:var(--color-error)}input:user-invalid{border-color:var(--color-error)}h1,h2,h3,p{margin:0}h1,h2,h3{min-width:0;overflow-wrap:anywhere;font-family:var(--font-display);font-style:normal}h2{font-size:var(--text-base);font-weight:650}h3{font-size:var(--text-lg);font-weight:650;margin-bottom:var(--space-md)}small{font-size:var(--text-sm)}summary{cursor:pointer;color:var(--color-muted);padding:var(--space-sm) 0}details>form,details>.field-grid{margin-top:var(--space-sm)}.woodbuilder{min-height:100dvh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;gap:var(--space-lg);padding:12px 16px;border-bottom:var(--rule-width) solid var(--color-rule);flex-wrap:wrap}.wordmark{display:flex;align-items:center;gap:9px;font-size:20px;letter-spacing:-.8px;font-weight:750;white-space:nowrap}.wordmark-light{font-weight:400}.brand-symbol{color:var(--color-accent);display:flex;align-items:center}.project-identity{display:flex;align-items:baseline;gap:var(--space-md);flex:1;min-width:0}.project-identity>input{background:var(--color-transparent);border-color:var(--color-transparent);font-weight:600;width:180px;text-overflow:ellipsis}.save-state{display:inline-flex;align-items:center;gap:var(--space-xs);color:var(--color-warning);font-size:var(--text-xs);white-space:nowrap}.save-state.saved{color:var(--color-muted)}.file-actions{display:flex;align-items:center;gap:var(--space-xs)}.work-toolbar{display:flex;align-items:center;gap:var(--space-sm);padding:6px 12px;background:var(--color-paper-2);border-bottom:var(--rule-width) solid var(--color-rule);flex-wrap:wrap}.toolbar-group{display:flex;align-items:center;gap:var(--space-xs);padding-right:var(--space-sm);border-right:var(--rule-width) solid var(--color-rule)}.selection-status{color:var(--color-muted);display:flex;align-items:center;margin-left:var(--space-sm);font-size:var(--text-sm)}.toolbar-units{margin-left:auto;color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs)}.mobile-navigation{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:var(--rule-width) solid var(--color-rule);padding:var(--space-xs)}.mobile-navigation button{border:0;min-height:44px}.workspace{display:flex;flex:1;min-height:0;min-width:0}.panel{background:var(--color-paper);min-width:0}.left-panel,.inspector{display:none;width:100%}.center-panel{min-width:0;width:100%;display:flex;flex-direction:column}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);gap:var(--space-sm)}.unit-note,.count{color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs)}.project-tree{border-bottom:var(--rule-width) solid var(--color-rule)}.tree-empty{padding:0 16px 24px;font-size:var(--text-sm);line-height:1.8;color:var(--color-muted)}.tree-rows{padding:0 8px 12px}.tree-assembly{display:flex;align-items:center}.tree-item{border:0;border-radius:var(--radius-sm);background:var(--color-transparent);width:100%;justify-content:flex-start;padding:6px 8px;gap:var(--space-sm);min-width:0;min-height:31px}.tree-item span{overflow:hidden;text-overflow:ellipsis}.tree-item svg{color:var(--color-muted)}.tree-item[aria-pressed=true]{font-weight:600}.tree-item[aria-pressed=true] svg{color:var(--color-accent)}.tree-toggle{padding:0;width:20px;flex-shrink:0;min-height:30px;border:0;background:var(--color-transparent)}.tree-children{margin-left:15px;border-left:var(--rule-width) solid var(--color-rule);padding-left:5px}.generated-tree{margin-left:16px;color:var(--color-muted);font-size:var(--text-xs)}.generated-tree .tree-item{font-size:var(--text-sm)}.tree-help{padding:0 16px 12px}.create-panel{padding-bottom:var(--space-xl)}.creation-tabs{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-lg)}.creation-tabs button{flex:1;padding:6px 8px;font-size:var(--text-sm);min-height:32px}.create-panel>.creation-tabs,.create-panel>form{margin-inline:var(--space-lg)}.stack-form{display:flex;flex-direction:column;gap:var(--space-md)}.field{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}.field>span{color:var(--color-muted);font-size:var(--text-sm)}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md)}.check-field{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-sm);min-height:28px}.help{color:var(--color-muted);font-size:var(--text-sm);line-height:1.65}.field>.field-error,.field-error{color:var(--color-error);font-size:var(--text-sm);line-height:1.5}.interior-composer>.help,.interior-composer>.field-error{margin-block:var(--space-md)}.interior-list{display:flex;flex-direction:column;gap:var(--space-sm);padding:0;list-style:none;margin-block:var(--space-md)}.interior-group{border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius-md);padding:var(--space-xs)}.interior-group.is-active{border-color:var(--color-accent)}.interior-group-select{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-xs);width:100%;text-align:left;border:0}.interior-group-select>span{color:var(--color-muted);font-size:var(--text-xs)}.interior-group-actions{display:flex;gap:var(--space-xs);padding:var(--space-xs)}.interior-group-actions>button{min-height:30px}.interior-group-actions>button:last-child{margin-left:auto}.interior-fields{border:0;padding:0;margin:0;min-width:0}.interior-fields>legend{font-weight:600;padding:0 0 var(--space-md)}.drawer-height-list{display:flex;flex-direction:column;gap:var(--space-sm)}.drawer-height{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius-md)}.interior-preview,.interior-error{padding:var(--space-md);border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:1.5}.interior-preview{margin-bottom:var(--space-md)}.interior-error{border-color:var(--color-error)}.viewport-panel{display:flex;flex-direction:column;min-height:480px;flex:1}.canvas-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);min-height:42px;padding:8px 16px;font-size:var(--text-sm);border-bottom:var(--rule-width) solid var(--color-rule)}.canvas-heading>div{display:flex;align-items:center;gap:var(--space-sm);font-weight:600}.canvas-heading>span{font-size:var(--text-xs);color:var(--color-muted)}.viewport-container{position:relative;flex:1;min-height:440px;display:flex}.viewport-container>:first-child{width:100%}.empty-workbench{position:absolute;top:25%;left:24px;right:24px;pointer-events:none;max-width:380px}.empty-workbench-rule{display:block;width:34px;height:3px;background:var(--color-wood);margin-bottom:var(--space-lg)}.empty-workbench h1{font-size:var(--text-display);letter-spacing:-1px;font-weight:550;margin-bottom:var(--space-md)}.empty-workbench p{color:var(--color-muted);font-size:var(--text-lg);line-height:1.8;margin-bottom:var(--space-xl)}.empty-workbench button{pointer-events:auto;padding-inline:var(--space-lg)}.empty-workbench small{display:block;margin-top:var(--space-md);color:var(--color-muted);font-size:var(--text-xs)}.inspector-content{padding:0 16px 24px}.inspector-content>section{padding-top:var(--space-xl);margin-top:var(--space-xl);border-top:var(--rule-width) solid var(--color-rule)}.inspector-content>section:first-child{margin-top:0;padding-top:0;border:0}.inspector-content>details{margin-block:var(--space-lg)}.inspector-empty{padding:24px 20px;color:var(--color-muted)}.inspector-empty h3{color:var(--color-ink);font-size:var(--text-xl);font-weight:500;line-height:1.45}.inspector-empty p{font-size:var(--text-base);line-height:1.85}.empty-mark{font-family:var(--font-mono);font-size:28px;color:var(--color-wood);margin-bottom:var(--space-xl)}.shortcut-list{margin-top:var(--space-3xl);font-size:var(--text-sm)}.shortcut-list>div{display:flex;align-items:center;margin:var(--space-sm) 0}.shortcut-list dt{font-family:var(--font-mono);background:var(--color-paper-2);border:var(--rule-width) solid var(--color-rule);min-width:32px;text-align:center;border-radius:var(--radius-sm);padding:2px 4px}.shortcut-list dd{margin-left:var(--space-md)}.opening-link{display:flex;justify-content:space-between;width:100%;background:var(--color-accent-soft);color:var(--color-accent);margin-block:var(--space-md);border-color:var(--color-transparent)}.opening-link>span:first-child{overflow:hidden;text-overflow:ellipsis}.opening-measure{font-family:var(--font-mono);font-size:var(--text-base);margin-bottom:var(--space-lg)}.opening-measure span{font-size:var(--text-xs);color:var(--color-muted)}.semantic-label{color:var(--color-accent);font-size:var(--text-xs);display:inline-block;padding:4px 6px;background:var(--color-accent-soft);margin-bottom:var(--space-md)}.measurement-list{font-size:var(--text-sm)}.measurement-list>div{display:flex;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) 0;border-bottom:var(--rule-width) solid var(--color-rule)}.measurement-list dt{color:var(--color-muted)}.measurement-list dd{margin:0;text-align:right}.relation-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);border-bottom:var(--rule-width) solid var(--color-rule);padding-block:var(--space-sm);font-size:var(--text-sm)}.full-width{width:100%;margin-top:var(--space-md)}.output-panel{border-top:var(--rule-width) solid var(--color-rule);background:var(--color-paper);display:none;flex-direction:column;min-width:0}.output-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-sm);padding:10px 16px}.output-title{display:flex;align-items:center;gap:var(--space-sm)}.output-title>span{color:var(--color-muted);font-size:var(--text-xs);margin-left:var(--space-sm)}.output-tabs{display:flex;padding:0 16px;gap:var(--space-lg);border-bottom:var(--rule-width) solid var(--color-rule)}.output-tabs button{border:0;border-radius:0;border-bottom:2px solid var(--color-transparent);font-size:var(--text-sm);background:var(--color-transparent);padding:8px 0}.output-tabs button[aria-selected=true]{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:650}.output-content{min-height:150px;overflow:auto}.output-content table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.output-content th{font-size:var(--text-xs);text-align:right;font-weight:500;color:var(--color-muted);background:var(--color-paper-2);padding:8px 12px}.output-content th:first-child{text-align:left;padding-left:var(--space-lg)}.output-content td{padding:8px 12px;text-align:right;border-bottom:var(--rule-width) solid var(--color-rule);font-family:var(--font-mono)}.output-content td:first-child{text-align:left;font-family:var(--font-body);padding-left:var(--space-lg)}.output-content td strong{font-weight:550}.output-content td small{display:block;color:var(--color-muted);font-size:var(--text-xs);margin-top:2px}.output-empty{padding:24px 16px;font-size:var(--text-sm);color:var(--color-muted)}.output-footnote{padding:8px 16px;border-top:var(--rule-width) solid var(--color-rule);font-size:var(--text-xs);color:var(--color-muted)}.cut-group{padding:12px 16px}.cut-group h3{font-size:var(--text-base);margin-bottom:var(--space-sm)}.cut-group h3 span{font-weight:400;color:var(--color-muted)}.cut-row{display:grid;grid-template-columns:35px minmax(0,1fr);gap:4px 12px;border-top:var(--rule-width) solid var(--color-rule);padding-block:var(--space-sm);font-family:var(--font-mono);font-size:var(--text-sm)}.cut-row small{grid-column:2;font-family:var(--font-body);color:var(--color-muted)}.validation-ok{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-lg);color:var(--color-accent);font-size:var(--text-sm)}.validation-ok svg{flex-shrink:0}.warnings-list{list-style:none;margin:0;padding:8px 16px}.warnings-list li{display:flex;gap:var(--space-sm);padding-block:var(--space-md);color:var(--color-warning);border-bottom:var(--rule-width) solid var(--color-rule)}.warnings-list svg{flex-shrink:0;margin-top:2px}.warnings-list strong{font-size:var(--text-xs);font-family:var(--font-mono)}.warnings-list p{color:var(--color-ink);font-size:var(--text-sm)}.warnings-list .error{color:var(--color-error)}.error-banner{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-md);padding:8px 16px;background:var(--color-error-soft);color:var(--color-error);border-bottom:var(--rule-width) solid var(--color-error)}.error-banner>button{margin-left:auto}.error-banner>span{flex:1;min-width:140px}.group-form{display:flex;flex-wrap:wrap;align-items:end;gap:var(--space-sm);padding:12px 16px;border-bottom:var(--rule-width) solid var(--color-rule)}.group-form label{display:grid;gap:var(--space-xs)}.status-bar{display:flex;gap:var(--space-lg);align-items:center;justify-content:space-between;padding:7px 16px;border-top:var(--rule-width) solid var(--color-rule);font-size:var(--text-xs);color:var(--color-muted);background:var(--color-paper-2)}.status-bar>span:first-child{display:flex;align-items:center;gap:var(--space-sm)}.status-dot{width:5px;height:5px;background:var(--color-accent);border-radius:50%}.status-divider{margin-inline:var(--space-sm);color:var(--color-rule)}.status-bar>span:not(:first-child){display:none}[data-mobile-panel=parts] .left-panel,[data-mobile-panel=properties] .inspector{display:block}[data-mobile-panel=parts] .center-panel,[data-mobile-panel=properties] .center-panel,[data-mobile-panel=list] .viewport-panel{display:none}[data-mobile-panel=list] .output-panel{display:flex}.mobile-unit{display:inline}@media(hover:hover){button:hover:not(:disabled),input:hover,select:hover{background:var(--color-paper-3)}button.primary:hover:not(:disabled){background:var(--color-accent-hover)}button[aria-pressed=true]:hover{background:var(--color-accent-soft)}button.danger:hover:not(:disabled){background:var(--color-error-soft)}}@media(max-width:39.99rem){.app-header{gap:8px;padding:10px 12px}.wordmark{font-size:18px}.project-identity{flex-direction:column;align-items:flex-end;gap:0}.project-identity>input{width:145px;text-align:right}.file-actions{width:100%;justify-content:space-between}.file-actions button{min-height:44px}.work-toolbar{gap:0;padding:4px}.toolbar-group{gap:0;padding-right:4px}.toolbar-group button{min-width:44px;min-height:44px;padding:8px}.toolbar-group button span,.toolbar-units{display:none}.selection-status{font-size:var(--text-xs);margin-left:8px}.creation-tabs button,.field input,.field select,.tree-item{min-height:44px}.canvas-heading{padding-inline:12px}.canvas-heading>span{font-size:9px}.empty-workbench{left:20px;right:20px}.empty-workbench h1{font-size:27px}.output-tabs{gap:14px;padding-inline:12px}.output-tabs button{min-height:44px}.output-content table,.output-content tbody{display:block}.output-content thead{display:none}.output-content tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:8px 12px;border-bottom:var(--rule-width) solid var(--color-rule)}.output-content td{display:block;border:0;text-align:left;padding:4px}.output-content td:first-child{grid-column:1 / -1;padding:4px}.output-content td[data-label]:before{content:attr(data-label) ": ";font-family:var(--font-body);color:var(--color-muted)}}@media(min-width:40rem){.empty-workbench{left:48px}.mobile-unit{display:none}.status-bar>span:nth-child(2){display:inline}}@media(min-width:64rem){.woodbuilder{height:100dvh;min-height:680px}.app-header{flex-wrap:nowrap;min-height:67px;padding-inline:20px}.wordmark{min-width:220px}.work-toolbar{min-height:48px}.mobile-navigation{display:none}.workspace{display:grid;grid-template-columns:254px minmax(0,1fr) 286px}.left-panel,.inspector,[data-mobile-panel=parts] .left-panel,[data-mobile-panel=properties] .inspector{display:block;overflow-y:auto}.left-panel{border-right:var(--rule-width) solid var(--color-rule)}.inspector{border-left:var(--rule-width) solid var(--color-rule)}.center-panel,[data-mobile-panel=parts] .center-panel,[data-mobile-panel=properties] .center-panel{display:flex;min-height:0}.viewport-panel,[data-mobile-panel=list] .viewport-panel{display:flex;min-height:300px}.viewport-container{min-height:260px}.output-panel,[data-mobile-panel=list] .output-panel{display:flex;height:260px;min-height:200px;flex-shrink:0}.output-content{min-height:60px;flex:1}.empty-workbench{left:32px;top:21%}.empty-workbench h1{font-size:29px}.status-bar>span{display:inline}}@media(min-width:90rem){.workspace{grid-template-columns:270px minmax(0,1fr) 310px}.wordmark{min-width:236px}.output-panel,[data-mobile-panel=list] .output-panel{height:280px}.empty-workbench{left:56px}.empty-workbench h1{font-size:34px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.woodbuilder.canvas-editor{height:100dvh;min-height:0;overflow:clip;position:relative}.canvas-header{display:flex;align-items:center;gap:var(--space-lg);min-height:60px;padding:var(--space-sm) var(--space-lg);border-bottom:var(--rule-width) solid var(--color-rule);background:var(--color-paper);flex-shrink:0}.canvas-brand{display:flex;align-items:center;gap:var(--space-sm);font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;letter-spacing:-.6px;white-space:nowrap}.canvas-brand>svg{color:var(--color-accent)}.canvas-project-button{min-width:0;max-width:280px;justify-content:flex-start}.canvas-project-button>span{overflow:hidden;text-overflow:ellipsis}.canvas-tools{display:flex;align-items:center;gap:var(--space-xs);margin-left:auto;flex-shrink:0}.canvas-language{width:58px;min-height:36px;padding:var(--space-xs);font:inherit;color:var(--color-ink);background:var(--color-paper);border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius-sm)}.canvas-file-drop{position:absolute;inset:var(--space-md);z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-lg);border:2px dashed var(--color-accent);border-radius:var(--radius-sm);background:var(--color-paper);color:var(--color-ink);text-align:center;pointer-events:none}.canvas-tool-divider{height:20px;width:var(--rule-width);background:var(--color-rule);margin-inline:var(--space-xs)}.canvas-workspace{position:relative;flex:1;min-height:0;min-width:0;display:flex}.canvas-workspace>section{width:100%;height:100%;min-height:0}.canvas-start{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);pointer-events:none}.canvas-start button{pointer-events:auto}.canvas-start p{color:var(--color-muted);font-size:var(--text-lg)}.canvas-menu{position:fixed;z-index:30;width:256px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow-y:auto;padding:var(--space-xs);background:var(--color-paper);border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius-md);box-shadow:0 12px 36px color-mix(in oklch,var(--color-ink) 14%,var(--color-transparent))}.canvas-menu-title{padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-xs);color:var(--color-muted);font-size:var(--text-sm);border-bottom:var(--rule-width) solid var(--color-rule);overflow-wrap:anywhere}.canvas-menu>button{display:flex;justify-content:space-between;gap:var(--space-md);width:100%;text-align:left;border-color:var(--color-transparent);background:var(--color-transparent);min-height:40px;padding:var(--space-sm) var(--space-md)}.canvas-menu>button>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.canvas-menu kbd{color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-sm)}.canvas-menu>button:focus-visible{outline-offset:-2px;background:var(--color-accent-soft)}.canvas-dialog{color:var(--color-ink);background:var(--color-paper);border:var(--rule-width) solid var(--color-rule);border-radius:var(--radius-md);padding:0;width:min(440px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 96px);margin:auto;overflow:hidden;box-shadow:0 16px 56px color-mix(in oklch,var(--color-ink) 18%,var(--color-transparent))}.canvas-dialog[open]{display:flex;flex-direction:column}.canvas-dialog::backdrop{background:color-mix(in oklch,var(--color-ink) 16%,var(--color-transparent))}.canvas-dialog-heading{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-lg);border-bottom:var(--rule-width) solid var(--color-rule);flex-shrink:0}.canvas-dialog-heading h2{font-size:var(--text-lg)}.canvas-dialog-body{overflow:auto;overscroll-behavior:contain;min-height:0}.canvas-dialog-tree{width:min(320px,calc(100vw - 32px));margin:76px auto auto var(--space-lg)}.canvas-dialog-output{width:min(960px,calc(100vw - 32px))}.canvas-editor .canvas-dialog .inspector{display:block;width:100%;border:0;overflow:visible}.canvas-editor .canvas-dialog .output-panel{display:flex;width:100%;height:auto;min-height:0;border:0}.canvas-editor .canvas-dialog .output-content{max-height:55dvh}.canvas-dialog .inspector>.panel-heading,.canvas-dialog .project-tree>.panel-heading,.canvas-dialog .create-panel>.panel-heading{display:none}.canvas-dialog .inspector-content{padding-top:var(--space-lg)}.canvas-dialog .project-tree{padding-top:var(--space-md);border:0}.canvas-dialog .creation-tabs{flex-wrap:wrap}.canvas-dialog .creation-tabs>button{flex:1 0 auto}.canvas-dialog .create-panel>.creation-tabs{display:none}.canvas-dialog .output-tabs{flex-wrap:wrap;gap:var(--space-md)}.canvas-dialog .tree-item{min-height:40px}.canvas-simple-form{padding:var(--space-lg)}.canvas-panel-content{min-width:0;margin:0;padding:0;border:0}.canvas-session-button[data-status=connected]{color:var(--color-accent)}.canvas-session-button:not([data-status=connected]){color:var(--color-warning)}.canvas-editor>.canvas-error{position:absolute;z-index:20;left:var(--space-lg);right:var(--space-lg);bottom:var(--space-lg);max-width:680px;margin-inline:auto;border:var(--rule-width) solid var(--color-error);border-radius:var(--radius-md)}.canvas-error{align-items:flex-start}.canvas-error>div{flex:1;min-width:0;overflow-wrap:anywhere}.canvas-error p{margin-top:var(--space-xs)}@media(max-width:767px){.canvas-header{gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);min-height:56px}.canvas-brand>span{display:none}.canvas-project-button{padding-inline:var(--space-xs);flex:1}.canvas-tools{gap:0}.canvas-tools .icon-button{width:40px;min-height:44px}.canvas-tools .canvas-add{min-width:40px;min-height:44px;padding-inline:var(--space-sm)}.canvas-add>span,.canvas-tool-divider{display:none}.canvas-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.canvas-dialog-tree{margin:auto}.canvas-menu>button{min-height:44px}.canvas-dialog .tree-item{min-height:44px}}@media(max-width:374px){.canvas-project-button{font-size:var(--text-sm)}}.canvas-part-tools{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-sm);border-top:var(--rule-width) solid var(--color-rule);background:var(--color-paper)}.canvas-part-tools>button{width:40px;min-height:44px;padding:var(--space-xs)}.woodbuilder.canvas-editor-docked{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,440px);grid-template-rows:auto minmax(0,1fr)}.canvas-editor-docked>.canvas-header{grid-column:1 / -1}.canvas-editor-docked>.canvas-workspace{grid-column:1;grid-row:2}.canvas-sidebar{grid-column:2;grid-row:2;min-width:0;min-height:0;display:flex;flex-direction:column;color:var(--color-ink);background:var(--color-paper);border-left:var(--rule-width) solid var(--color-rule)}.canvas-sidebar>.canvas-dialog-heading{gap:var(--space-sm)}.canvas-sidebar-hint{padding:var(--space-sm) var(--space-lg);color:var(--color-muted);font-size:var(--text-xs);border-bottom:var(--rule-width) solid var(--color-rule)}.canvas-editor .canvas-sidebar .inspector{display:block;width:100%;border:0;overflow:visible}.canvas-sidebar .inspector>.panel-heading,.canvas-sidebar .create-panel>.panel-heading,.canvas-sidebar .create-panel>.creation-tabs{display:none}.canvas-sidebar .inspector-content,.canvas-sidebar .create-panel>form{padding-top:var(--space-lg)}.canvas-sidebar .creation-tabs{flex-wrap:wrap}.canvas-sidebar .creation-tabs>button{flex:1 0 auto}.canvas-sidebar .field,.canvas-sidebar .field-grid>*,.canvas-sidebar .interior-group-select{min-width:0}.canvas-sidebar .interior-group-select{overflow-wrap:anywhere}.draft-preview-status{padding:var(--space-sm);border-left:2px solid var(--color-accent);background:var(--color-paper-2)}@media(max-width:899px){.woodbuilder.canvas-editor-docked{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(220px,45fr) minmax(0,55fr)}.canvas-sidebar{grid-column:1;grid-row:3;border-left:0;border-top:var(--rule-width) solid var(--color-rule)}.canvas-sidebar .canvas-dialog-heading,.canvas-sidebar-hint{padding:var(--space-xs) var(--space-md)}}@media(max-width:420px){.canvas-header{flex-wrap:wrap}.canvas-brand>span{display:inline}.canvas-tools{width:100%;justify-content:space-between}.canvas-language{min-height:44px}}
