:root{--bg:#f4eedb;--paper:#fffdf6;--paper-alt:#faf6ee;--ink:#1f1d18;--ink-strong:#3a3122;--ink-mid:#3a3a3a;--ink-soft:#6b6557;--ink-faint:#8a8470;--ink-very-faint:#a8a293;--rule:#e0d9c5;--rule-strong:#c8c2b6;--rule-dashed:#d0c9b5;--accent:#b08a4a;--accent-strong:#94743b;--accent-soft:#c8b88a;--danger:#c0392b;--danger-border:#e6b8b0;--warn-bg:#fdf2e3;--warn-border:#e6b87a;--info-bg:#f4eedb;--info-border:#c8b88a;--info-ink:#6b6557;--warn-ink:#6b4a1f;--stock-fill:#f0e6d0;--stock-stroke:#7a6a48;--offcut-stroke:#a89b7e;--hatch-stroke:#bbb09a;--dim:#444;--miter:#c0392b;--focus-bg:#fdf8e8;--focus-ring:#b08a4a33;--highlight-bg:#b08a4a26;--button-secondary:#6b6557;--button-secondary-hover:#564f43;--logo-board:#d4a574;--logo-edge:#3a3122;--logo-cut:#c0392b;--scrollbar-thumb:#c8c2b6;--scrollbar-thumb-hover:#a89b7e}:root.dark{--bg:#1a1814;--paper:#25221c;--paper-alt:#2a261f;--ink:#e8e2d4;--ink-strong:#f0e8d8;--ink-mid:#c8c2b6;--ink-soft:#a8a293;--ink-faint:#6b6557;--ink-very-faint:#4a4538;--rule:#3a352c;--rule-strong:#4a4538;--rule-dashed:#3a352c;--accent:#d4a574;--accent-strong:#e8b988;--accent-soft:#5a4a30;--danger:#e07a6b;--danger-border:#6a3a3a;--warn-bg:#2f2a1a;--warn-border:#8a6a3a;--info-bg:#2a261f;--info-border:#5a4a30;--info-ink:#a8a293;--warn-ink:#d4a574;--stock-fill:#3a342a;--stock-stroke:#8a7a58;--offcut-stroke:#6a5a3e;--hatch-stroke:#5a4a3a;--dim:#a8a293;--miter:#e07a6b;--focus-bg:#3a352c;--focus-ring:#d4a5744d;--highlight-bg:#d4a57433;--button-secondary:#a8a293;--button-secondary-hover:#c8c2b6;--logo-board:#a87a4a;--logo-edge:#c8c2b6;--logo-cut:#e07a6b;--scrollbar-thumb:#3a352c;--scrollbar-thumb-hover:#4a4538}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.45;transition:background-color .2s,color .2s}#app{min-height:100vh}h1,h2,h3,h4{color:var(--ink-strong)}button,input[type=text],input[type=number]{font-family:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}@media (prefers-reduced-motion:reduce){html,body{transition:none}}@media print{@page{size:A4 portrait;margin:12mm}html,body{color:#000!important;background:#fff!important}header,nav.tabs,.tab-actions,.panes>.inputs,.head-actions,footer,.no-print{display:none!important}.app{max-width:none!important;padding:0!important}.panes{grid-template-columns:none!important;gap:0!important;display:block!important}.output{gap:8px!important;display:block!important}.output-info{flex-direction:column!important;gap:8px!important;display:flex!important}.output-info>*,.scroller{page-break-inside:avoid}.summary,.materials,.stock-inventory,.banner{box-shadow:none!important;color:#000!important;background:#fff!important;border:1px solid #ccc!important}.stat .label,.stat .value,.mat-name,.mat-dim,.mat-qty,.inv-name,.inv-counts,.banner strong,.banner-sub,h1,h2,h3,h4{color:#000!important}.inv-list li,.mat-list li,.shop-list li{background:#fff!important;border:1px solid #ddd!important}.scroller{page-break-inside:avoid;background:#fff!important;border:1px solid #ccc!important;max-height:none!important;padding:8px!important;overflow:visible!important}.scroller>svg{page-break-inside:avoid;max-width:100%!important;height:auto!important}.legend{background:#fff!important;border:1px solid #ccc!important}.print-only{display:block!important}}.print-only{display:none}.num-input.svelte-dv122j{background:var(--paper);border:1px solid var(--rule-strong);border-radius:6px;align-items:center;gap:4px;padding:4px 8px;font-size:.9rem;display:inline-flex}.num-field.svelte-dv122j{align-items:center;gap:4px;min-width:0;display:inline-flex}.num-input.stacked.svelte-dv122j{flex-direction:column;align-items:stretch;gap:2px;padding:5px 8px}.num-input.stacked.svelte-dv122j .num-label:where(.svelte-dv122j){margin-right:0}.num-input.svelte-dv122j:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px var(--focus-ring)}.num-label.svelte-dv122j{color:var(--ink-soft);margin-right:4px;font-size:.8rem}input.svelte-dv122j{width:5rem;font:inherit;color:var(--ink);background:0 0;border:none;outline:none}input[type=number].svelte-dv122j::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number].svelte-dv122j::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.unit-suffix.svelte-dv122j{color:var(--ink-faint);-webkit-user-select:none;user-select:none;font-size:.8rem}.stock-editor.svelte-108fimv{background:var(--paper-alt);border:1px solid var(--rule);border-radius:8px;padding:12px 14px}.head.svelte-108fimv{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}h3.svelte-108fimv{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:.95rem}.add.svelte-108fimv{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:4px 10px;font-size:.8rem}.add.svelte-108fimv:hover{background:var(--accent-strong)}.empty.svelte-108fimv{color:var(--ink-faint);margin:0;font-style:italic}.rows.svelte-108fimv{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.row.svelte-108fimv{background:var(--paper);border:1px solid var(--rule);border-radius:6px;flex-direction:column;gap:6px;padding:6px 8px;display:flex}.row-head.svelte-108fimv{align-items:center;gap:8px;display:flex}.row-controls.svelte-108fimv{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.name.svelte-108fimv{min-width:0;font:inherit;color:var(--ink);background:0 0;border:none;outline:none;flex:auto}.name.svelte-108fimv:focus{background:var(--focus-bg);border-radius:4px}.material.svelte-108fimv,.qty.svelte-108fimv,.price.svelte-108fimv{background:var(--paper);border:1px solid var(--rule-strong);border-radius:6px;flex-shrink:1;align-items:center;gap:4px;min-width:0;padding:3px 8px;font-size:.85rem;display:inline-flex}.material.svelte-108fimv span:where(.svelte-108fimv),.qty.svelte-108fimv span:where(.svelte-108fimv),.price.svelte-108fimv span:where(.svelte-108fimv){color:var(--ink-soft);white-space:nowrap;font-size:.75rem}.material.svelte-108fimv input:where(.svelte-108fimv),.qty.svelte-108fimv input:where(.svelte-108fimv),.price.svelte-108fimv input:where(.svelte-108fimv){width:2.5rem;font:inherit;min-width:0;color:var(--ink);background:0 0;border:none;outline:none}.price.svelte-108fimv input:where(.svelte-108fimv){width:3.5rem}.material.svelte-108fimv input:where(.svelte-108fimv){width:7rem}.del.svelte-108fimv{color:var(--danger);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:1.2rem;line-height:1}.del.svelte-108fimv:hover{border-color:var(--danger)}.part-editor.svelte-1linobg{background:var(--paper-alt);border:1px solid var(--rule);border-radius:8px;padding:12px 14px}.head.svelte-1linobg{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}h3.svelte-1linobg{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:.95rem}.add.svelte-1linobg{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:4px 10px;font-size:.8rem}.add.svelte-1linobg:hover{background:var(--accent-strong)}.empty.svelte-1linobg{color:var(--ink-faint);margin:0;font-style:italic}.rows.svelte-1linobg{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.row.svelte-1linobg{background:var(--paper);border:1px solid var(--rule);border-radius:6px;flex-direction:column;gap:6px;padding:6px 8px;display:flex}.row-head.svelte-1linobg{align-items:center;gap:8px;display:flex}.swatch.svelte-1linobg{border:1.5px solid;border-radius:3px;flex-shrink:0;width:16px;height:16px;display:inline-block}.row-controls.svelte-1linobg{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.name.svelte-1linobg{min-width:0;font:inherit;color:var(--ink);background:0 0;border:none;outline:none;flex:auto}.name.svelte-1linobg:focus{background:var(--focus-bg);border-radius:4px}.material.svelte-1linobg,.miter.svelte-1linobg,.qty.svelte-1linobg,.stock-pin.svelte-1linobg{background:var(--paper);border:1px solid var(--rule-strong);border-radius:6px;flex-shrink:1;align-items:center;gap:4px;min-width:0;padding:3px 8px;font-size:.85rem;display:inline-flex}.material.svelte-1linobg span:where(.svelte-1linobg),.miter.svelte-1linobg span:where(.svelte-1linobg),.qty.svelte-1linobg span:where(.svelte-1linobg),.stock-pin.svelte-1linobg span:where(.svelte-1linobg){color:var(--ink-soft);white-space:nowrap;font-size:.75rem}.material.svelte-1linobg input:where(.svelte-1linobg),.miter.svelte-1linobg input:where(.svelte-1linobg),.qty.svelte-1linobg input:where(.svelte-1linobg){width:2.5rem;font:inherit;min-width:0;color:var(--ink);background:0 0;border:none;outline:none}.stock-pin.svelte-1linobg{flex:auto;min-width:0}.material.svelte-1linobg input:where(.svelte-1linobg){width:7rem}.stock-pin.svelte-1linobg select:where(.svelte-1linobg){font:inherit;color:var(--ink);text-overflow:ellipsis;background:0 0;border:none;outline:none;width:100%;min-width:0;max-width:100%;overflow:hidden}.deg.svelte-1linobg{color:var(--ink-soft)}.del.svelte-1linobg{color:var(--danger);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:1.2rem;line-height:1}.del.svelte-1linobg:hover{border-color:var(--danger)}.dup.svelte-1linobg{color:var(--ink-soft);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:1.05rem;line-height:1}.dup.svelte-1linobg:hover{border-color:var(--rule-strong);color:var(--ink)}.scroller.svelte-1wxmjyc{background:var(--paper);border:1px solid var(--rule);border-radius:8px;max-height:75vh;padding:12px;overflow:auto}.scroller.svelte-1wxmjyc>svg:where(.svelte-1wxmjyc){max-width:100%;margin:0 auto;display:block}.empty.svelte-1wxmjyc{color:var(--ink-faint);text-align:center;background:var(--paper);border:1px dashed var(--rule-dashed);border-radius:8px;padding:24px;font-style:italic}.legend.svelte-1wxmjyc{background:var(--paper-alt);border:1px solid var(--rule);border-radius:6px;flex-wrap:wrap;gap:8px 14px;margin-bottom:8px;padding:8px 12px;font-size:.8rem;display:flex}.legend-item.svelte-1wxmjyc{align-items:center;gap:5px;display:inline-flex}.legend-swatch.svelte-1wxmjyc{border:1.5px solid;border-radius:2px;width:12px;height:12px;display:inline-block}.legend-name.svelte-1wxmjyc{color:var(--ink)}.end-kerf-swatch.svelte-1wxmjyc{border-color:var(--stock-stroke);background:linear-gradient(90deg, var(--paper) 38%, var(--stock-stroke) 38% 62%, var(--paper) 62%)}.setup-kerf-swatch.svelte-1wxmjyc{border-color:var(--warn-border);background:repeating-linear-gradient(135deg, var(--warn-bg) 0 3px, var(--warn-border) 3px 5px)}.trim-swatch.svelte-1wxmjyc{border-color:var(--offcut-stroke);background:repeating-linear-gradient(135deg, var(--paper) 0 3px, var(--offcut-stroke) 3px 5px)}.highlighted-cut.svelte-1wxmjyc{filter:hue-rotate(150deg) drop-shadow(0 0 5px var(--accent))}.separating-kerf.svelte-1wxmjyc{fill:var(--paper);stroke:var(--stock-stroke);stroke-width:.5px}.setup-kerf.svelte-1wxmjyc{stroke:var(--warn-border);stroke-width:.8px}.highlighted-kerf.svelte-1wxmjyc{stroke:var(--accent);stroke-width:3px;filter:drop-shadow(0 0 6px var(--accent))}.cut-beacon.svelte-1wxmjyc{filter:drop-shadow(0 0 8px var(--accent))}.cut-beacon-isolation.svelte-1wxmjyc{stroke:var(--paper);stroke-width:13px}.cut-beacon-line.svelte-1wxmjyc{stroke:var(--accent);stroke-width:7px}.cut-beacon-dot.svelte-1wxmjyc{fill:var(--accent)}.cut-beacon-dot-isolation.svelte-1wxmjyc{fill:var(--paper)}.highlighted-trim.svelte-1wxmjyc{filter:drop-shadow(0 0 4px var(--accent))}g.cut-group.svelte-1wxmjyc rect:where(.svelte-1wxmjyc){cursor:pointer}@media (width<=600px){.scroller.svelte-1wxmjyc>svg:where(.svelte-1wxmjyc){min-width:680px;max-width:none}}.linear-cut.svelte-xp5xqb{flex-direction:column;gap:16px;display:flex}.panes.svelte-xp5xqb{grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:16px;display:grid}@media (width<=900px){.panes.svelte-xp5xqb{grid-template-columns:1fr}}.inputs.svelte-xp5xqb{flex-direction:column;gap:12px;display:flex}.project-meta.svelte-xp5xqb{background:var(--paper-alt);border:1px solid var(--rule);border-radius:8px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.meta-title.svelte-xp5xqb{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.meta-fields.svelte-xp5xqb{grid-template-columns:repeat(2,minmax(0,1fr));align-items:flex-end;gap:12px;display:grid}.meta-fields.svelte-xp5xqb>label:where(.svelte-xp5xqb){flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.meta-fields.svelte-xp5xqb>label:where(.svelte-xp5xqb)>span:where(.svelte-xp5xqb){color:var(--ink-soft);font-size:.8rem}.project-meta.svelte-xp5xqb select:where(.svelte-xp5xqb){border:1px solid var(--rule-strong);width:100%;min-width:0;font:inherit;background:var(--paper);color:var(--ink);border-radius:4px;padding:4px 6px}.output.svelte-xp5xqb{grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:start;gap:12px;min-width:0;display:grid}@media (width<=1100px){.output.svelte-xp5xqb{grid-template-columns:1fr}}.output-info.svelte-xp5xqb{flex-direction:column;gap:12px;display:flex}.preview.svelte-xp5xqb{flex-direction:column;gap:12px;min-width:0;display:flex}.output-head.svelte-xp5xqb{justify-content:space-between;align-items:baseline;display:flex}h2.svelte-xp5xqb{color:var(--ink-strong);margin:0;font-size:1.2rem}.head-actions.svelte-xp5xqb{gap:6px;display:flex}.export.svelte-xp5xqb{background:var(--button-secondary);color:var(--paper);cursor:pointer;border:none;border-radius:4px;padding:6px 12px;font-size:.85rem}.export.svelte-xp5xqb:hover:not(:disabled){background:var(--button-secondary-hover)}.export.svelte-xp5xqb:disabled{opacity:.4;cursor:not-allowed}.solve-status.svelte-xp5xqb{border:1px solid var(--info-border);background:var(--info-bg);color:var(--info-ink);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;font-size:.82rem;display:flex}.solve-status.svelte-xp5xqb>div:where(.svelte-xp5xqb){flex-direction:column;gap:2px;display:flex}.solve-status.svelte-xp5xqb button:where(.svelte-xp5xqb){color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:4px;padding:4px 10px}.solve-error.svelte-xp5xqb{border-color:var(--warn-border);background:var(--warn-bg);color:var(--danger)}.previous-result.svelte-xp5xqb{border-left:3px solid var(--warn-border);color:var(--warn-ink);padding:7px 10px;font-size:.82rem}.preview-pending.svelte-xp5xqb{border:1px dashed var(--rule-strong);color:var(--ink-soft);text-align:center;border-radius:8px;padding:24px}.summary.svelte-xp5xqb{background:var(--paper-alt);border:1px solid var(--rule);border-radius:8px;flex-wrap:wrap;gap:12px;padding:10px 14px;display:flex}.stat.svelte-xp5xqb{flex-direction:column;gap:2px;display:flex}.stat.svelte-xp5xqb .label:where(.svelte-xp5xqb){text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-size:.7rem}.stat.svelte-xp5xqb .value:where(.svelte-xp5xqb){color:var(--ink);font-size:1rem;font-weight:600}.stat.warn.svelte-xp5xqb .value:where(.svelte-xp5xqb){color:var(--danger)}.banner.svelte-xp5xqb{border-radius:8px;flex-direction:column;gap:6px;padding:10px 14px;font-size:.9rem;display:flex}.banner.svelte-xp5xqb strong:where(.svelte-xp5xqb){color:var(--ink-strong)}.banner-sub.svelte-xp5xqb{color:var(--ink-soft);margin-left:4px;font-size:.8rem}.banner-info.svelte-xp5xqb{background:var(--info-bg);border:1px dashed var(--info-border);color:var(--info-ink)}.banner-warn.svelte-xp5xqb{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn-ink)}.stock-inventory.svelte-xp5xqb{background:var(--paper-alt);border:1px solid var(--rule);border-radius:8px;padding:8px 12px}.stock-inventory.svelte-xp5xqb summary:where(.svelte-xp5xqb){cursor:pointer;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-size:.8rem;font-weight:600}.stock-inventory.svelte-xp5xqb .muted:where(.svelte-xp5xqb){color:var(--ink-very-faint);text-transform:none;letter-spacing:0;font-weight:400}.inv-list.svelte-xp5xqb{flex-direction:column;gap:4px;margin:6px 0 0;padding:0;list-style:none;display:flex}.inv-list.svelte-xp5xqb li:where(.svelte-xp5xqb){background:var(--paper);border-radius:4px;justify-content:space-between;align-items:center;padding:4px 6px;font-size:.9rem;display:flex}.inv-list.svelte-xp5xqb li.low:where(.svelte-xp5xqb){background:var(--warn-bg)}.inv-name.svelte-xp5xqb{color:var(--ink)}.inv-counts.svelte-xp5xqb{color:var(--ink-soft);font-size:.85rem}.inv-counts.svelte-xp5xqb .over:where(.svelte-xp5xqb){color:var(--danger);font-weight:600}.shop-list.svelte-xp5xqb{flex-direction:column;gap:4px;margin:4px 0 0;padding:0;list-style:none;display:flex}.shop-list.svelte-xp5xqb li:where(.svelte-xp5xqb){background:var(--paper);border-radius:4px;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;font-size:.9rem;display:flex}.shop-qty.svelte-xp5xqb{color:var(--accent);min-width:1.5rem;font-weight:700}.shop-name.svelte-xp5xqb{color:var(--ink);font-weight:500}.shop-for.svelte-xp5xqb{color:var(--ink-soft);flex:1;font-size:.85rem}.shop-toobig.svelte-xp5xqb .shop-for:where(.svelte-xp5xqb){color:var(--danger)}.shop-buy.svelte-xp5xqb{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:3px 10px;font-size:.8rem}.shop-buy.svelte-xp5xqb:hover{background:var(--accent-strong)}.shop-buy.svelte-xp5xqb:disabled{opacity:.45;cursor:not-allowed}.materials.svelte-xp5xqb{background:var(--paper-alt);border:1px solid var(--rule);border-radius:8px;padding:8px 12px}.materials.svelte-xp5xqb summary:where(.svelte-xp5xqb){cursor:pointer;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-size:.8rem;font-weight:600}.materials.svelte-xp5xqb .muted:where(.svelte-xp5xqb){color:var(--ink-very-faint);text-transform:none;letter-spacing:0;font-weight:400}.mat-list.svelte-xp5xqb{flex-direction:column;gap:4px;margin:6px 0 0;padding:0;list-style:none;display:flex}.mat-list.svelte-xp5xqb li:where(.svelte-xp5xqb){background:var(--paper);border-radius:4px;flex-wrap:wrap;align-items:baseline;gap:8px;padding:5px 10px;font-size:.9rem;display:flex}.mat-qty.svelte-xp5xqb{color:var(--accent);min-width:1.8rem;font-weight:700}.mat-name.svelte-xp5xqb{color:var(--ink);font-weight:500}.mat-dim.svelte-xp5xqb{color:var(--ink-soft);flex:1;font-size:.85rem}.print-only.svelte-xp5xqb{display:none}.print-header.svelte-xp5xqb{color:var(--ink-strong);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;padding:4px 0 8px;font-size:1rem;display:flex}.print-meta.svelte-xp5xqb{color:var(--ink-soft);font-size:.8rem}.cut-sequence.svelte-xp5xqb{background:var(--paper-alt);border:1px solid var(--rule);border-radius:8px;padding:8px 12px}.cut-sequence.svelte-xp5xqb summary:where(.svelte-xp5xqb){cursor:pointer;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-size:.8rem;font-weight:600}.cut-sequence.svelte-xp5xqb .muted:where(.svelte-xp5xqb){color:var(--ink-very-faint);text-transform:none;letter-spacing:0;font-weight:400}.seq-hint.svelte-xp5xqb{color:var(--ink-soft);margin:6px 0 8px;font-size:.8rem;font-style:italic}.seq-list.svelte-xp5xqb{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.instruction-board.svelte-xp5xqb,.saw-run.svelte-xp5xqb{background:var(--paper);border:1px solid var(--rule);border-radius:6px;overflow:hidden}.saw-run-head.svelte-xp5xqb{border-bottom:1px solid var(--rule);background:var(--paper-alt);color:var(--ink-soft);justify-content:space-between;gap:8px;padding:7px 10px;font-size:.8rem;display:flex}.saw-run-head.svelte-xp5xqb strong:where(.svelte-xp5xqb){color:var(--ink-strong)}.instruction-board-head.svelte-xp5xqb{border-bottom:1px solid var(--rule);background:var(--paper-alt);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;padding:7px 10px;display:flex}.instruction-board-head.svelte-xp5xqb strong:where(.svelte-xp5xqb){color:var(--ink-strong);font-size:.85rem}.instruction-board-head.svelte-xp5xqb span:where(.svelte-xp5xqb){color:var(--ink-soft);font-size:.75rem}.instruction-steps.svelte-xp5xqb{margin:0;padding:0;list-style:none}.instruction-step.svelte-xp5xqb{color:var(--ink);cursor:default;border-bottom:1px dashed var(--rule);grid-template-columns:2rem minmax(0,1fr);gap:6px;padding:7px 10px;font-size:.82rem;transition:background .15s;display:grid}.instruction-step.svelte-xp5xqb:last-child{border-bottom:0}.instruction-step.svelte-xp5xqb:hover,.instruction-step.highlighted-seq.svelte-xp5xqb{background:var(--highlight-bg)}.instruction-actions.svelte-xp5xqb{grid-template-columns:minmax(150px,1.2fr) minmax(130px,1fr) minmax(120px,1fr);gap:8px 12px;display:grid}.instruction-action.svelte-xp5xqb,.saw-operation.svelte-xp5xqb{min-width:0}.instruction-action.svelte-xp5xqb+.instruction-action:where(.svelte-xp5xqb){border-left:1px solid var(--rule);padding-left:12px}.seq-num.svelte-xp5xqb{color:var(--accent);text-align:right;min-width:1.6rem;font-weight:700}@media (width<=600px){.meta-fields.svelte-xp5xqb{grid-template-columns:1fr}.output-head.svelte-xp5xqb{flex-direction:column;align-items:stretch}.head-actions.svelte-xp5xqb{flex-wrap:wrap}.instruction-actions.svelte-xp5xqb{grid-template-columns:1fr;gap:4px}.instruction-action.svelte-xp5xqb+.instruction-action:where(.svelte-xp5xqb){border-left:0;padding-left:0}}.scroller.svelte-m9u5q0{background:var(--paper);border:1px solid var(--rule);border-radius:8px;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));justify-items:center;gap:12px;max-height:80vh;padding:12px;display:grid;overflow:auto}.scroller.svelte-m9u5q0 .sheet-svg:where(.svelte-m9u5q0){max-width:100%;height:auto;display:block}.empty.svelte-m9u5q0{color:var(--ink-faint);text-align:center;background:var(--paper);border:1px dashed var(--rule-dashed);border-radius:8px;padding:24px;font-style:italic}.legend.svelte-m9u5q0{background:var(--paper-alt);border:1px solid var(--rule);border-radius:6px;flex-wrap:wrap;gap:8px 14px;margin-bottom:8px;padding:8px 12px;font-size:.85rem;display:flex}.legend-item.svelte-m9u5q0{align-items:center;gap:5px;display:inline-flex}.legend-swatch.svelte-m9u5q0{border:1.5px solid;border-radius:2px;width:12px;height:12px;display:inline-block}.legend-name.svelte-m9u5q0{color:var(--ink)}.panel-head.svelte-m9u5q0{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.panel-title.svelte-m9u5q0{color:var(--ink-strong);font-size:.95rem;font-weight:600}.panel-meta.svelte-m9u5q0{color:var(--ink-faint);margin-left:8px;font-size:.8rem;font-weight:400}.popover-btn.svelte-m9u5q0{background:var(--paper);border:1px solid var(--rule-strong);cursor:pointer;color:var(--ink-soft);border-radius:6px;padding:4px 10px;font-size:1.1rem;line-height:1}.popover-btn.svelte-m9u5q0:hover{background:var(--paper-alt);color:var(--ink)}.popover-backdrop.svelte-m9u5q0{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.popover-box.svelte-m9u5q0{background:var(--paper);border:1px solid var(--rule);border-radius:10px;flex-direction:column;width:95vw;max-width:1400px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 8px 40px #0000004d}.popover-head.svelte-m9u5q0{border-bottom:1px solid var(--rule);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.popover-close.svelte-m9u5q0{cursor:pointer;color:var(--ink-soft);background:0 0;border:1px solid #0000;border-radius:4px;padding:4px 10px;font-size:1.1rem;line-height:1}.popover-close.svelte-m9u5q0:hover{border-color:var(--rule-strong);color:var(--ink)}.popover-grid.svelte-m9u5q0{background:var(--paper);flex:1;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));justify-items:center;gap:16px;padding:16px;display:grid;overflow:auto}.actual-cut.svelte-m9u5q0{stroke:var(--danger);stroke-width:2.5px;stroke-dasharray:6 3;vector-effect:non-scaling-stroke;cursor:pointer}.actual-cut.highlighted-cut.svelte-m9u5q0{stroke:var(--accent);stroke-width:5px;stroke-dasharray:none;filter:drop-shadow(0 0 3px var(--accent))}.sheet-cut.svelte-buk2rj{flex-direction:column;gap:16px;display:flex}.panes.svelte-buk2rj{grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:16px;display:grid}@media (width<=900px){.panes.svelte-buk2rj{grid-template-columns:1fr}}.inputs.svelte-buk2rj{flex-direction:column;gap:12px;display:flex}.project-meta.svelte-buk2rj{background:var(--paper-alt);border:1px solid var(--rule);border-radius:8px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.meta-title.svelte-buk2rj{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.meta-fields.svelte-buk2rj{align-items:flex-end;gap:12px;display:flex}.output.svelte-buk2rj{grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:start;gap:12px;min-width:0;display:grid}@media (width<=1100px){.output.svelte-buk2rj{grid-template-columns:1fr}}.output-info.svelte-buk2rj{flex-direction:column;gap:12px;display:flex}.preview.svelte-buk2rj{flex-direction:column;gap:12px;min-width:0;display:flex}.output-head.svelte-buk2rj{justify-content:space-between;align-items:baseline;display:flex}h2.svelte-buk2rj{color:var(--ink-strong);margin:0;font-size:1.2rem}.head-actions.svelte-buk2rj{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.solver-scope.svelte-buk2rj{color:var(--ink-soft);margin:-4px 0 0;font-size:.82rem;line-height:1.4}.export.svelte-buk2rj{background:var(--button-secondary);color:var(--paper);cursor:pointer;border:none;border-radius:4px;padding:6px 12px;font-size:.85rem}.export.svelte-buk2rj:hover:not(:disabled){background:var(--button-secondary-hover)}.export.svelte-buk2rj:disabled{opacity:.4;cursor:not-allowed}.export-error.svelte-buk2rj{border-left:3px solid var(--danger);color:var(--danger);padding:7px 10px;font-size:.82rem}.solve-status.svelte-buk2rj{border:1px solid var(--info-border);background:var(--info-bg);color:var(--info-ink);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;font-size:.82rem;display:flex}.solve-status.svelte-buk2rj>div:where(.svelte-buk2rj){flex-direction:column;gap:2px;display:flex}.solve-status.svelte-buk2rj button:where(.svelte-buk2rj){color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:4px;padding:4px 10px}.solve-error.svelte-buk2rj{border-color:var(--warn-border);background:var(--warn-bg);color:var(--danger)}.previous-result.svelte-buk2rj{border-left:3px solid var(--warn-border);color:var(--warn-ink);padding:7px 10px;font-size:.82rem}.preview-pending.svelte-buk2rj{border:1px dashed var(--rule-strong);color:var(--ink-soft);text-align:center;border-radius:8px;padding:24px}.summary.svelte-buk2rj{background:var(--paper-alt);border:1px solid var(--rule);border-radius:8px;flex-wrap:wrap;gap:12px;padding:10px 14px;display:flex}.stat.svelte-buk2rj{flex-direction:column;gap:2px;display:flex}.stat.svelte-buk2rj .label:where(.svelte-buk2rj){text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-size:.7rem}.stat.svelte-buk2rj .value:where(.svelte-buk2rj){color:var(--ink);font-size:1rem;font-weight:600}.stat.warn.svelte-buk2rj .value:where(.svelte-buk2rj){color:var(--danger)}.banner.svelte-buk2rj{border-radius:8px;flex-direction:column;gap:6px;padding:10px 14px;font-size:.9rem;display:flex}.banner.svelte-buk2rj strong:where(.svelte-buk2rj){color:var(--ink-strong)}.banner-sub.svelte-buk2rj{color:var(--ink-soft);margin-left:4px;font-size:.8rem}.banner-info.svelte-buk2rj{background:var(--info-bg);border:1px dashed var(--info-border);color:var(--info-ink)}.banner-warn.svelte-buk2rj{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn-ink)}.stock-inventory.svelte-buk2rj{background:var(--paper-alt);border:1px solid var(--rule);border-radius:8px;padding:8px 12px}.stock-inventory.svelte-buk2rj summary:where(.svelte-buk2rj){cursor:pointer;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-size:.8rem;font-weight:600}.stock-inventory.svelte-buk2rj .muted:where(.svelte-buk2rj){color:var(--ink-very-faint);text-transform:none;letter-spacing:0;font-weight:400}.inv-list.svelte-buk2rj{flex-direction:column;gap:4px;margin:6px 0 0;padding:0;list-style:none;display:flex}.inv-list.svelte-buk2rj li:where(.svelte-buk2rj){background:var(--paper);border-radius:4px;justify-content:space-between;align-items:center;padding:4px 6px;font-size:.9rem;display:flex}.inv-list.svelte-buk2rj li.low:where(.svelte-buk2rj){background:var(--warn-bg)}.inv-name.svelte-buk2rj{color:var(--ink)}.inv-counts.svelte-buk2rj{color:var(--ink-soft);font-size:.85rem}.inv-counts.svelte-buk2rj .over:where(.svelte-buk2rj){color:var(--danger);font-weight:600}.shop-list.svelte-buk2rj{flex-direction:column;gap:4px;margin:4px 0 0;padding:0;list-style:none;display:flex}.shop-list.svelte-buk2rj li:where(.svelte-buk2rj){background:var(--paper);border-radius:4px;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;font-size:.9rem;display:flex}.shop-qty.svelte-buk2rj{color:var(--accent);min-width:1.5rem;font-weight:700}.shop-name.svelte-buk2rj{color:var(--ink);font-weight:500}.shop-for.svelte-buk2rj{color:var(--ink-soft);flex:1;font-size:.85rem}.shop-toobig.svelte-buk2rj .shop-for:where(.svelte-buk2rj){color:var(--danger)}.shop-buy.svelte-buk2rj{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:3px 10px;font-size:.8rem}.shop-buy.svelte-buk2rj:hover{background:var(--accent-strong)}.shop-buy.svelte-buk2rj:disabled{opacity:.45;cursor:not-allowed}.materials.svelte-buk2rj{background:var(--paper-alt);border:1px solid var(--rule);border-radius:8px;padding:8px 12px}.materials.svelte-buk2rj summary:where(.svelte-buk2rj){cursor:pointer;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-size:.8rem;font-weight:600}.materials.svelte-buk2rj .muted:where(.svelte-buk2rj){color:var(--ink-very-faint);text-transform:none;letter-spacing:0;font-weight:400}.mat-list.svelte-buk2rj{flex-direction:column;gap:4px;margin:6px 0 0;padding:0;list-style:none;display:flex}.mat-list.svelte-buk2rj li:where(.svelte-buk2rj){background:var(--paper);border-radius:4px;flex-wrap:wrap;align-items:baseline;gap:8px;padding:5px 10px;font-size:.9rem;display:flex}.mat-qty.svelte-buk2rj{color:var(--accent);min-width:1.8rem;font-weight:700}.mat-name.svelte-buk2rj{color:var(--ink);font-weight:500}.mat-dim.svelte-buk2rj{color:var(--ink-soft);flex:1;font-size:.85rem}.print-only.svelte-buk2rj{display:none}.print-header.svelte-buk2rj{color:var(--ink-strong);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;padding:4px 0 8px;font-size:1rem;display:flex}.print-meta.svelte-buk2rj{color:var(--ink-soft);font-size:.8rem}.cut-sequence.svelte-buk2rj{background:var(--paper-alt);border:1px solid var(--rule);border-radius:8px;padding:8px 12px}.cut-sequence.svelte-buk2rj summary:where(.svelte-buk2rj){cursor:pointer;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-size:.8rem;font-weight:600}.cut-sequence.svelte-buk2rj .muted:where(.svelte-buk2rj){color:var(--ink-very-faint);text-transform:none;letter-spacing:0;font-weight:400}.seq-hint.svelte-buk2rj{color:var(--ink-soft);margin:6px 0 8px;font-size:.8rem;font-style:italic}.seq-list.svelte-buk2rj{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.seq-list.svelte-buk2rj li:where(.svelte-buk2rj){background:var(--paper);border:1px solid var(--rule);color:var(--ink);cursor:default;border-radius:6px;align-items:baseline;gap:6px;padding:6px 10px;font-size:.85rem;transition:background .15s;display:flex}.seq-list.svelte-buk2rj li:where(.svelte-buk2rj):hover,.seq-list.svelte-buk2rj li.highlighted-seq:where(.svelte-buk2rj){background:var(--highlight-bg)}.seq-num.svelte-buk2rj{color:var(--accent);text-align:right;min-width:1.6rem;font-weight:700}.seq-instruction.svelte-buk2rj{line-height:1.4}.unit-selector.svelte-1yokvjp{min-width:0;color:var(--ink-soft);border:0;align-items:center;gap:7px;margin:0;padding:0;font-size:.78rem;display:flex}legend.svelte-1yokvjp{float:left;padding:0;font-size:.85rem}.systems.svelte-1yokvjp{align-items:center;gap:7px;display:flex}.system.svelte-1yokvjp{align-items:center;gap:4px;display:flex}.system.svelte-1yokvjp+.system:where(.svelte-1yokvjp){border-left:1px solid var(--rule);padding-left:7px}.system-label.svelte-1yokvjp{color:var(--ink-faint)}.segments.svelte-1yokvjp{display:inline-flex}label.svelte-1yokvjp{cursor:pointer;position:relative}input.svelte-1yokvjp{opacity:0;width:1px;height:1px;position:absolute}label.svelte-1yokvjp span:where(.svelte-1yokvjp){border:1px solid var(--rule-strong);background:var(--paper);min-width:2rem;color:var(--ink-strong);text-align:center;border-left-width:0;padding:5px 7px;line-height:1;display:block}label.svelte-1yokvjp:first-child span:where(.svelte-1yokvjp){border-left-width:1px;border-radius:6px 0 0 6px}label.svelte-1yokvjp:last-child span:where(.svelte-1yokvjp){border-radius:0 6px 6px 0}label.active.svelte-1yokvjp span:where(.svelte-1yokvjp){border-color:var(--accent);background:var(--accent);color:#fff}label.svelte-1yokvjp:has(input:where(.svelte-1yokvjp):focus-visible) span:where(.svelte-1yokvjp){z-index:1;outline:2px solid var(--focus-ring);outline-offset:2px;position:relative}@media (width<=700px){.unit-selector.svelte-1yokvjp{align-items:flex-start}.systems.svelte-1yokvjp{flex-direction:column;align-items:stretch;gap:5px}.system.svelte-1yokvjp{justify-content:space-between}.system.svelte-1yokvjp+.system:where(.svelte-1yokvjp){border-top:1px solid var(--rule);border-left:0;padding-top:5px;padding-left:0}.system-label.svelte-1yokvjp{min-width:3.5rem}}.global-stock-editor.svelte-63qigi{flex-direction:column;gap:16px;display:flex}h3.svelte-63qigi{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin:0 0 8px;font-size:.9rem}.cloud-sync.svelte-14fkvte{flex-wrap:wrap;align-items:center;gap:8px;font-size:.85rem;display:inline-flex}.cloud-sync.svelte-14fkvte button:where(.svelte-14fkvte){background:var(--paper);border:1px solid var(--rule-strong);cursor:pointer;font:inherit;color:var(--ink-strong);border-radius:6px;padding:5px 10px;font-size:.85rem}.cloud-sync.svelte-14fkvte button.link:where(.svelte-14fkvte){color:var(--ink-soft);background:0 0;border:none;text-decoration:underline}.cloud-sync.svelte-14fkvte input:where(.svelte-14fkvte){border:1px solid var(--rule-strong);font:inherit;background:var(--paper);color:var(--ink);border-radius:4px;max-width:140px;padding:4px 6px}.cloud-badge.svelte-14fkvte{color:var(--accent);font-weight:600}.cloud-warning.svelte-14fkvte{color:var(--danger)}.cloud-message.svelte-14fkvte,.cloud-meta.svelte-14fkvte{color:var(--ink-soft)}.app.svelte-1n46o8q{margin:0 auto;padding:16px max(20px,4vw) 40px}header.svelte-1n46o8q{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.brand.svelte-1n46o8q{align-items:center;gap:12px;display:flex}.brand.svelte-1n46o8q h1:where(.svelte-1n46o8q){color:var(--ink-strong);margin:0;font-size:1.4rem}.brand.svelte-1n46o8q p:where(.svelte-1n46o8q){color:var(--ink-faint);margin:2px 0 0;font-size:.85rem}.controls.svelte-1n46o8q{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.controls.svelte-1n46o8q button:where(.svelte-1n46o8q),.controls.svelte-1n46o8q select:where(.svelte-1n46o8q){background:var(--paper);border:1px solid var(--rule-strong);cursor:pointer;font:inherit;color:var(--ink-strong);border-radius:6px;padding:5px 10px;font-size:.85rem}.controls.svelte-1n46o8q button:where(.svelte-1n46o8q):hover{background:var(--paper-alt)}.project-bar.svelte-1n46o8q{border:1px solid var(--rule);background:var(--paper-alt);border-radius:8px;flex-wrap:wrap;align-items:flex-end;gap:8px;margin-bottom:12px;padding:8px 10px;display:flex}.project-bar.svelte-1n46o8q label:where(.svelte-1n46o8q){color:var(--ink-soft);flex-direction:column;gap:4px;font-size:.78rem;display:flex}.project-bar.svelte-1n46o8q label:where(.svelte-1n46o8q) input[type=text]:where(.svelte-1n46o8q),.project-bar.svelte-1n46o8q label:where(.svelte-1n46o8q) select:where(.svelte-1n46o8q){border:1px solid var(--rule-strong);font:inherit;background:var(--paper);color:var(--ink);border-radius:4px;padding:4px 6px}.project-name.svelte-1n46o8q{flex:160px;min-width:0}.project-picker.svelte-1n46o8q select:where(.svelte-1n46o8q){min-width:120px}.project-bar.svelte-1n46o8q button:where(.svelte-1n46o8q){background:var(--paper);border:1px solid var(--rule-strong);cursor:pointer;font:inherit;color:var(--ink-strong);border-radius:6px;padding:5px 10px;font-size:.85rem}.project-bar.svelte-1n46o8q button:where(.svelte-1n46o8q):hover{background:var(--paper-alt)}.project-bar.svelte-1n46o8q button.danger:where(.svelte-1n46o8q){color:var(--danger);border-color:var(--danger-border)}.project-bar.svelte-1n46o8q .use-offcuts:where(.svelte-1n46o8q){flex-direction:row;align-items:center;gap:6px}nav.tabs.svelte-1n46o8q{border-bottom:1px solid var(--rule);gap:4px;margin-bottom:16px;display:flex}nav.tabs.svelte-1n46o8q button:where(.svelte-1n46o8q){cursor:pointer;font:inherit;color:var(--ink-soft);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 16px}nav.tabs.svelte-1n46o8q button.active:where(.svelte-1n46o8q){color:var(--ink-strong);border-bottom-color:var(--accent);font-weight:600}nav.tabs.svelte-1n46o8q button:where(.svelte-1n46o8q):hover{color:var(--ink-strong)}.tab-meta.svelte-1n46o8q{color:var(--ink-very-faint);margin-left:4px;font-size:.85em;font-weight:400}.tab-actions.svelte-1n46o8q{justify-content:flex-end;margin-bottom:8px;display:flex}.tab-actions.svelte-1n46o8q button:where(.svelte-1n46o8q){background:var(--paper);border:1px solid var(--rule-strong);cursor:pointer;font:inherit;color:var(--ink-strong);border-radius:6px;padding:4px 10px;font-size:.8rem}.tab-actions.svelte-1n46o8q button:where(.svelte-1n46o8q):hover{background:var(--paper-alt)}.storage-warning.svelte-1n46o8q{border:1px solid var(--danger-border);color:var(--danger);background:var(--paper-alt);border-radius:6px;margin-bottom:16px;padding:8px 12px}main.svelte-1n46o8q{min-width:0}footer.svelte-1n46o8q{text-align:center;color:var(--ink-very-faint);margin-top:24px;font-size:.8rem}.theme-toggle.svelte-1n46o8q{color:var(--ink-soft);align-items:center;gap:4px;font-size:.85rem;display:inline-flex}.theme-toggle.svelte-1n46o8q select:where(.svelte-1n46o8q){background:var(--paper);border:1px solid var(--rule-strong);cursor:pointer;font:inherit;color:var(--ink-strong);border-radius:6px;padding:5px 10px;font-size:.85rem}.theme-toggle.svelte-1n46o8q select:where(.svelte-1n46o8q):hover{background:var(--paper-alt)}.modal-backdrop.svelte-1n46o8q{z-index:10;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal.svelte-1n46o8q{background:var(--paper);border:1px solid var(--rule);border-radius:8px;width:calc(100% - 32px);max-width:640px;max-height:85vh;padding:16px;overflow:auto}.modal-head.svelte-1n46o8q{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.modal-head.svelte-1n46o8q h2:where(.svelte-1n46o8q){color:var(--ink-strong);margin:0;font-size:1.1rem}.modal-close.svelte-1n46o8q{color:var(--ink-soft);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:0 6px;font-size:1.2rem;line-height:1}.modal-close.svelte-1n46o8q:hover{color:var(--ink-strong)}
