: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: rgba(176, 138, 74, .2);--highlight-bg: rgba(176, 138, 74, .15);--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: rgba(212, 165, 116, .3);--highlight-bg: rgba(212, 165, 116, .2);--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{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;transition:background-color .2s ease,color .2s ease}#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:transparent}::-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{background:#fff!important;color:#000!important}header,nav.tabs,.tab-actions,.panes>.inputs,.head-actions,footer,.no-print{display:none!important}.app{padding:0!important;max-width:none!important}.panes{display:block!important;grid-template-columns:none!important;gap:0!important}.output{display:block!important;gap:8px!important}.output-info{display:flex!important;flex-direction:column!important;gap:8px!important}.output-info>*,.scroller{page-break-inside:avoid}.summary,.materials,.stock-inventory,.banner{background:#fff!important;border:1px solid #ccc!important;box-shadow:none!important;color:#000!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{background:#fff!important;border:1px solid #ccc!important;max-height:none!important;overflow:visible!important;page-break-inside:avoid;padding:8px!important}.scroller>svg{max-width:100%!important;height:auto!important;page-break-inside:avoid}.legend{background:#fff!important;border:1px solid #ccc!important}.print-only{display:block!important}}.print-only{display:none}.num-input.svelte-dv122j{display:inline-flex;align-items:center;gap:4px;background:var(--paper);border:1px solid var(--rule-strong);border-radius:6px;padding:4px 8px;font-size:.9rem}.num-field.svelte-dv122j{display:inline-flex;align-items:center;gap:4px;min-width:0}.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);font-size:.8rem;margin-right:4px}input.svelte-dv122j{border:none;outline:none;background:transparent;width:5rem;font:inherit;color:var(--ink)}input[type=number].svelte-dv122j::-webkit-outer-spin-button,input[type=number].svelte-dv122j::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.unit-suffix.svelte-dv122j{color:var(--ink-faint);font-size:.8rem;-webkit-user-select:none;user-select:none}.stock-editor.svelte-108fimv{background:var(--paper-alt);border:1px solid var(--rule);border-radius:8px;padding:12px 14px}.head.svelte-108fimv{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}h3.svelte-108fimv{margin:0;font-size:.95rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.add.svelte-108fimv{background:var(--accent);color:#fff;border:none;border-radius:4px;padding:4px 10px;cursor:pointer;font-size:.8rem}.add.svelte-108fimv:hover{background:var(--accent-strong)}.empty.svelte-108fimv{color:var(--ink-faint);font-style:italic;margin:0}.rows.svelte-108fimv{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.row.svelte-108fimv{display:flex;flex-direction:column;gap:6px;background:var(--paper);border:1px solid var(--rule);border-radius:6px;padding:6px 8px}.row-head.svelte-108fimv{display:flex;align-items:center;gap:8px}.row-controls.svelte-108fimv{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.name.svelte-108fimv{flex:1 1 auto;min-width:0;border:none;outline:none;background:transparent;font:inherit;color:var(--ink)}.name.svelte-108fimv:focus{background:var(--focus-bg);border-radius:4px}.qty.svelte-108fimv,.price.svelte-108fimv{display:inline-flex;align-items:center;gap:4px;background:var(--paper);border:1px solid var(--rule-strong);border-radius:6px;padding:3px 8px;font-size:.85rem;flex-shrink:1;min-width:0}.qty.svelte-108fimv span:where(.svelte-108fimv),.price.svelte-108fimv span:where(.svelte-108fimv){color:var(--ink-soft);font-size:.75rem;white-space:nowrap}.qty.svelte-108fimv input:where(.svelte-108fimv),.price.svelte-108fimv input:where(.svelte-108fimv){border:none;outline:none;background:transparent;width:2.5rem;font:inherit;min-width:0;color:var(--ink)}.price.svelte-108fimv input:where(.svelte-108fimv){width:3.5rem}.del.svelte-108fimv{background:transparent;border:1px solid transparent;border-radius:4px;color:var(--danger);cursor:pointer;font-size:1.2rem;line-height:1;padding:0 6px;flex-shrink:0}.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{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}h3.svelte-1linobg{margin:0;font-size:.95rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.add.svelte-1linobg{background:var(--accent);color:#fff;border:none;border-radius:4px;padding:4px 10px;cursor:pointer;font-size:.8rem}.add.svelte-1linobg:hover{background:var(--accent-strong)}.empty.svelte-1linobg{color:var(--ink-faint);font-style:italic;margin:0}.rows.svelte-1linobg{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.row.svelte-1linobg{display:flex;flex-direction:column;gap:6px;background:var(--paper);border:1px solid var(--rule);border-radius:6px;padding:6px 8px}.row-head.svelte-1linobg{display:flex;align-items:center;gap:8px}.swatch.svelte-1linobg{display:inline-block;width:16px;height:16px;border-radius:3px;border:1.5px solid;flex-shrink:0}.row-controls.svelte-1linobg{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.name.svelte-1linobg{flex:1 1 auto;min-width:0;border:none;outline:none;background:transparent;font:inherit;color:var(--ink)}.name.svelte-1linobg:focus{background:var(--focus-bg);border-radius:4px}.miter.svelte-1linobg,.qty.svelte-1linobg,.stock-pin.svelte-1linobg{display:inline-flex;align-items:center;gap:4px;background:var(--paper);border:1px solid var(--rule-strong);border-radius:6px;padding:3px 8px;font-size:.85rem;min-width:0;flex-shrink:1}.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);font-size:.75rem;white-space:nowrap}.miter.svelte-1linobg input:where(.svelte-1linobg),.qty.svelte-1linobg input:where(.svelte-1linobg){border:none;outline:none;background:transparent;width:2.5rem;font:inherit;min-width:0;color:var(--ink)}.stock-pin.svelte-1linobg{flex:1 1 auto;min-width:0}.stock-pin.svelte-1linobg select:where(.svelte-1linobg){border:none;outline:none;background:transparent;font:inherit;color:var(--ink);min-width:0;max-width:100%;width:100%;text-overflow:ellipsis;overflow:hidden}.deg.svelte-1linobg{color:var(--ink-soft)}.del.svelte-1linobg{background:transparent;border:1px solid transparent;border-radius:4px;color:var(--danger);cursor:pointer;font-size:1.2rem;line-height:1;padding:0 6px;flex-shrink:0}.del.svelte-1linobg:hover{border-color:var(--danger)}.dup.svelte-1linobg{background:transparent;border:1px solid transparent;border-radius:4px;color:var(--ink-soft);cursor:pointer;font-size:1.05rem;line-height:1;padding:0 6px;flex-shrink:0}.dup.svelte-1linobg:hover{border-color:var(--rule-strong);color:var(--ink)}.scroller.svelte-1wxmjyc{overflow:auto;max-height:75vh;background:var(--paper);border:1px solid var(--rule);border-radius:8px;padding:12px}.scroller.svelte-1wxmjyc>svg:where(.svelte-1wxmjyc){display:block;margin:0 auto;max-width:100%}.empty.svelte-1wxmjyc{color:var(--ink-faint);font-style:italic;padding:24px;text-align:center;background:var(--paper);border:1px dashed var(--rule-dashed);border-radius:8px}.legend.svelte-1wxmjyc{display:flex;flex-wrap:wrap;gap:8px 14px;padding:8px 12px;background:var(--paper-alt);border:1px solid var(--rule);border-radius:6px;margin-bottom:8px;font-size:.8rem}.legend-item.svelte-1wxmjyc{display:inline-flex;align-items:center;gap:5px}.legend-swatch.svelte-1wxmjyc{display:inline-block;width:12px;height:12px;border-radius:2px;border:1.5px solid}.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)}.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:.5}.setup-kerf.svelte-1wxmjyc{stroke:var(--warn-border);stroke-width:.8}.highlighted-kerf.svelte-1wxmjyc{filter:drop-shadow(0 0 4px var(--accent))}g.common-cut-badge.svelte-1wxmjyc{cursor:pointer}g.common-cut-badge.highlighted.svelte-1wxmjyc{filter:drop-shadow(0 0 4px var(--accent))}g.cut-group.svelte-1wxmjyc rect:where(.svelte-1wxmjyc){cursor:pointer}@media(max-width:600px){.scroller.svelte-1wxmjyc>svg:where(.svelte-1wxmjyc){min-width:680px;max-width:none}}.linear-cut.svelte-xp5xqb{display:flex;flex-direction:column;gap:16px}.panes.svelte-xp5xqb{display:grid;grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:16px}@media(max-width:900px){.panes.svelte-xp5xqb{grid-template-columns:1fr}}.inputs.svelte-xp5xqb{display:flex;flex-direction:column;gap:12px}.project-meta.svelte-xp5xqb{display:flex;flex-direction:column;gap:8px;background:var(--paper-alt);border:1px solid var(--rule);border-radius:8px;padding:10px 12px}.meta-title.svelte-xp5xqb{color:var(--ink-soft);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;font-weight:600}.meta-fields.svelte-xp5xqb{display:flex;gap:12px;align-items:flex-end}.meta-fields.svelte-xp5xqb>label:where(.svelte-xp5xqb){display:flex;flex-direction:column;gap:4px;flex:1}.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);border-radius:4px;padding:4px 6px;font:inherit;background:var(--paper);color:var(--ink)}.output.svelte-xp5xqb{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:12px;align-items:start;min-width:0}@media(max-width:1100px){.output.svelte-xp5xqb{grid-template-columns:1fr}}.output-info.svelte-xp5xqb{display:flex;flex-direction:column;gap:12px}.preview.svelte-xp5xqb{display:flex;flex-direction:column;gap:12px;min-width:0}.output-head.svelte-xp5xqb{display:flex;justify-content:space-between;align-items:baseline}h2.svelte-xp5xqb{margin:0;font-size:1.2rem;color:var(--ink-strong)}.head-actions.svelte-xp5xqb{display:flex;gap:6px}.export.svelte-xp5xqb{background:var(--button-secondary);color:var(--paper);border:none;border-radius:4px;padding:6px 12px;cursor:pointer;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{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border:1px solid var(--info-border);border-radius:8px;background:var(--info-bg);color:var(--info-ink);font-size:.82rem}.solve-status.svelte-xp5xqb>div:where(.svelte-xp5xqb){display:flex;flex-direction:column;gap:2px}.solve-status.svelte-xp5xqb button:where(.svelte-xp5xqb){border:1px solid currentColor;border-radius:4px;padding:4px 10px;background:transparent;color:inherit;cursor:pointer}.solve-error.svelte-xp5xqb{border-color:var(--warn-border);background:var(--warn-bg);color:var(--danger)}.previous-result.svelte-xp5xqb{padding:7px 10px;border-left:3px solid var(--warn-border);color:var(--warn-ink);font-size:.82rem}.preview-pending.svelte-xp5xqb{padding:24px;border:1px dashed var(--rule-strong);border-radius:8px;color:var(--ink-soft);text-align:center}.summary.svelte-xp5xqb{display:flex;flex-wrap:wrap;gap:12px;background:var(--paper-alt);border:1px solid var(--rule);border-radius:8px;padding:10px 14px}.stat.svelte-xp5xqb{display:flex;flex-direction:column;gap:2px}.stat.svelte-xp5xqb .label:where(.svelte-xp5xqb){font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint)}.stat.svelte-xp5xqb .value:where(.svelte-xp5xqb){font-size:1rem;font-weight:600;color:var(--ink)}.stat.warn.svelte-xp5xqb .value:where(.svelte-xp5xqb){color:var(--danger)}.banner.svelte-xp5xqb{display:flex;flex-direction:column;gap:6px;border-radius:8px;padding:10px 14px;font-size:.9rem}.banner.svelte-xp5xqb strong:where(.svelte-xp5xqb){color:var(--ink-strong)}.banner-sub.svelte-xp5xqb{color:var(--ink-soft);font-size:.8rem;margin-left:4px}.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;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-weight:600}.stock-inventory.svelte-xp5xqb .muted:where(.svelte-xp5xqb){font-weight:400;color:var(--ink-very-faint);text-transform:none;letter-spacing:0}.inv-list.svelte-xp5xqb{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:4px}.inv-list.svelte-xp5xqb li:where(.svelte-xp5xqb){display:flex;justify-content:space-between;align-items:center;font-size:.9rem;padding:4px 6px;background:var(--paper);border-radius:4px}.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{list-style:none;padding:0;margin:4px 0 0;display:flex;flex-direction:column;gap:4px}.shop-list.svelte-xp5xqb li:where(.svelte-xp5xqb){display:flex;align-items:center;gap:8px;background:var(--paper);border-radius:4px;padding:6px 10px;font-size:.9rem;flex-wrap:wrap}.shop-qty.svelte-xp5xqb{font-weight:700;color:var(--accent);min-width:1.5rem}.shop-name.svelte-xp5xqb{color:var(--ink);font-weight:500}.shop-for.svelte-xp5xqb{color:var(--ink-soft);font-size:.85rem;flex:1}.shop-toobig.svelte-xp5xqb .shop-for:where(.svelte-xp5xqb){color:var(--danger)}.shop-buy.svelte-xp5xqb{background:var(--accent);color:#fff;border:none;border-radius:4px;padding:3px 10px;cursor:pointer;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;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-weight:600}.materials.svelte-xp5xqb .muted:where(.svelte-xp5xqb){font-weight:400;color:var(--ink-very-faint);text-transform:none;letter-spacing:0}.mat-list.svelte-xp5xqb{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:4px}.mat-list.svelte-xp5xqb li:where(.svelte-xp5xqb){display:flex;align-items:baseline;gap:8px;font-size:.9rem;background:var(--paper);border-radius:4px;padding:5px 10px;flex-wrap:wrap}.mat-qty.svelte-xp5xqb{font-weight:700;color:var(--accent);min-width:1.8rem}.mat-name.svelte-xp5xqb{color:var(--ink);font-weight:500}.mat-dim.svelte-xp5xqb{color:var(--ink-soft);font-size:.85rem;flex:1}.print-only.svelte-xp5xqb{display:none}.print-header.svelte-xp5xqb{font-size:1rem;color:var(--ink-strong);padding:4px 0 8px;border-bottom:1px solid var(--rule);display:flex;justify-content:space-between;align-items:baseline}.print-meta.svelte-xp5xqb{font-size:.8rem;color:var(--ink-soft)}.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;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-weight:600}.cut-sequence.svelte-xp5xqb .muted:where(.svelte-xp5xqb){font-weight:400;color:var(--ink-very-faint);text-transform:none;letter-spacing:0}.seq-hint.svelte-xp5xqb{margin:6px 0 8px;font-size:.8rem;color:var(--ink-soft);font-style:italic}.seq-list.svelte-xp5xqb{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.instruction-board.svelte-xp5xqb{background:var(--paper);border:1px solid var(--rule);border-radius:6px;overflow:hidden}.instruction-board-head.svelte-xp5xqb{display:flex;justify-content:space-between;align-items:baseline;gap:8px;border-bottom:1px solid var(--rule);padding:7px 10px;background:var(--paper-alt);flex-wrap:wrap}.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{list-style:none;padding:0;margin:0}.instruction-step.svelte-xp5xqb{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:6px;font-size:.82rem;padding:7px 10px;color:var(--ink);cursor:default;border-bottom:1px dashed var(--rule);transition:background .15s}.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{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(130px,1fr) minmax(120px,1fr);gap:8px 12px}.instruction-action.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{font-weight:700;color:var(--accent);min-width:1.6rem;text-align:right}@media(max-width:600px){.meta-fields.svelte-xp5xqb,.output-head.svelte-xp5xqb{align-items:stretch;flex-direction:column}.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{overflow:auto;max-height:80vh;background:var(--paper);border:1px solid var(--rule);border-radius:8px;padding:12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:12px;justify-items:center}.scroller.svelte-m9u5q0 .sheet-svg:where(.svelte-m9u5q0){display:block;max-width:100%;height:auto}.empty.svelte-m9u5q0{color:var(--ink-faint);font-style:italic;padding:24px;text-align:center;background:var(--paper);border:1px dashed var(--rule-dashed);border-radius:8px}.legend.svelte-m9u5q0{display:flex;flex-wrap:wrap;gap:8px 14px;padding:8px 12px;background:var(--paper-alt);border:1px solid var(--rule);border-radius:6px;margin-bottom:8px;font-size:.85rem}.legend-item.svelte-m9u5q0{display:inline-flex;align-items:center;gap:5px}.legend-swatch.svelte-m9u5q0{display:inline-block;width:12px;height:12px;border-radius:2px;border:1.5px solid}.legend-name.svelte-m9u5q0{color:var(--ink)}.panel-head.svelte-m9u5q0{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.panel-title.svelte-m9u5q0{font-size:.95rem;font-weight:600;color:var(--ink-strong)}.panel-meta.svelte-m9u5q0{font-weight:400;color:var(--ink-faint);margin-left:8px;font-size:.8rem}.popover-btn.svelte-m9u5q0{background:var(--paper);border:1px solid var(--rule-strong);border-radius:6px;padding:4px 10px;cursor:pointer;font-size:1.1rem;color:var(--ink-soft);line-height:1}.popover-btn.svelte-m9u5q0:hover{background:var(--paper-alt);color:var(--ink)}.popover-backdrop.svelte-m9u5q0{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#00000080;display:flex;align-items:center;justify-content:center;padding:24px}.popover-box.svelte-m9u5q0{background:var(--paper);border:1px solid var(--rule);border-radius:10px;width:95vw;max-width:1400px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 40px #0000004d}.popover-head.svelte-m9u5q0{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--rule);flex-shrink:0}.popover-close.svelte-m9u5q0{background:transparent;border:1px solid transparent;border-radius:4px;padding:4px 10px;cursor:pointer;font-size:1.1rem;color:var(--ink-soft);line-height:1}.popover-close.svelte-m9u5q0:hover{border-color:var(--rule-strong);color:var(--ink)}.popover-grid.svelte-m9u5q0{overflow:auto;flex:1;padding:16px;background:var(--paper);display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:16px;justify-items:center}.actual-cut.svelte-m9u5q0{stroke:var(--danger);stroke-width:2.5;stroke-dasharray:6 3;vector-effect:non-scaling-stroke;cursor:pointer}.actual-cut.highlighted-cut.svelte-m9u5q0{stroke:var(--accent);stroke-width:5;stroke-dasharray:none;filter:drop-shadow(0 0 3px var(--accent))}.sheet-cut.svelte-buk2rj{display:flex;flex-direction:column;gap:16px}.panes.svelte-buk2rj{display:grid;grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:16px}@media(max-width:900px){.panes.svelte-buk2rj{grid-template-columns:1fr}}.inputs.svelte-buk2rj{display:flex;flex-direction:column;gap:12px}.project-meta.svelte-buk2rj{display:flex;flex-direction:column;gap:8px;background:var(--paper-alt);border:1px solid var(--rule);border-radius:8px;padding:10px 12px}.meta-title.svelte-buk2rj{color:var(--ink-soft);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;font-weight:600}.meta-fields.svelte-buk2rj{display:flex;gap:12px;align-items:flex-end}.output.svelte-buk2rj{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:12px;align-items:start;min-width:0}@media(max-width:1100px){.output.svelte-buk2rj{grid-template-columns:1fr}}.output-info.svelte-buk2rj{display:flex;flex-direction:column;gap:12px}.preview.svelte-buk2rj{display:flex;flex-direction:column;gap:12px;min-width:0}.output-head.svelte-buk2rj{display:flex;justify-content:space-between;align-items:baseline}h2.svelte-buk2rj{margin:0;font-size:1.2rem;color:var(--ink-strong)}.head-actions.svelte-buk2rj{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.export.svelte-buk2rj{background:var(--button-secondary);color:var(--paper);border:none;border-radius:4px;padding:6px 12px;cursor:pointer;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{padding:7px 10px;border-left:3px solid var(--danger);color:var(--danger);font-size:.82rem}.solve-status.svelte-buk2rj{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border:1px solid var(--info-border);border-radius:8px;background:var(--info-bg);color:var(--info-ink);font-size:.82rem}.solve-status.svelte-buk2rj>div:where(.svelte-buk2rj){display:flex;flex-direction:column;gap:2px}.solve-status.svelte-buk2rj button:where(.svelte-buk2rj){border:1px solid currentColor;border-radius:4px;padding:4px 10px;background:transparent;color:inherit;cursor:pointer}.solve-error.svelte-buk2rj{border-color:var(--warn-border);background:var(--warn-bg);color:var(--danger)}.previous-result.svelte-buk2rj{padding:7px 10px;border-left:3px solid var(--warn-border);color:var(--warn-ink);font-size:.82rem}.preview-pending.svelte-buk2rj{padding:24px;border:1px dashed var(--rule-strong);border-radius:8px;color:var(--ink-soft);text-align:center}.summary.svelte-buk2rj{display:flex;flex-wrap:wrap;gap:12px;background:var(--paper-alt);border:1px solid var(--rule);border-radius:8px;padding:10px 14px}.stat.svelte-buk2rj{display:flex;flex-direction:column;gap:2px}.stat.svelte-buk2rj .label:where(.svelte-buk2rj){font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint)}.stat.svelte-buk2rj .value:where(.svelte-buk2rj){font-size:1rem;font-weight:600;color:var(--ink)}.stat.warn.svelte-buk2rj .value:where(.svelte-buk2rj){color:var(--danger)}.banner.svelte-buk2rj{display:flex;flex-direction:column;gap:6px;border-radius:8px;padding:10px 14px;font-size:.9rem}.banner.svelte-buk2rj strong:where(.svelte-buk2rj){color:var(--ink-strong)}.banner-sub.svelte-buk2rj{color:var(--ink-soft);font-size:.8rem;margin-left:4px}.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;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-weight:600}.stock-inventory.svelte-buk2rj .muted:where(.svelte-buk2rj){font-weight:400;color:var(--ink-very-faint);text-transform:none;letter-spacing:0}.inv-list.svelte-buk2rj{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:4px}.inv-list.svelte-buk2rj li:where(.svelte-buk2rj){display:flex;justify-content:space-between;align-items:center;font-size:.9rem;padding:4px 6px;background:var(--paper);border-radius:4px}.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{list-style:none;padding:0;margin:4px 0 0;display:flex;flex-direction:column;gap:4px}.shop-list.svelte-buk2rj li:where(.svelte-buk2rj){display:flex;align-items:center;gap:8px;background:var(--paper);border-radius:4px;padding:6px 10px;font-size:.9rem;flex-wrap:wrap}.shop-qty.svelte-buk2rj{font-weight:700;color:var(--accent);min-width:1.5rem}.shop-name.svelte-buk2rj{color:var(--ink);font-weight:500}.shop-for.svelte-buk2rj{color:var(--ink-soft);font-size:.85rem;flex:1}.shop-toobig.svelte-buk2rj .shop-for:where(.svelte-buk2rj){color:var(--danger)}.shop-buy.svelte-buk2rj{background:var(--accent);color:#fff;border:none;border-radius:4px;padding:3px 10px;cursor:pointer;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;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-weight:600}.materials.svelte-buk2rj .muted:where(.svelte-buk2rj){font-weight:400;color:var(--ink-very-faint);text-transform:none;letter-spacing:0}.mat-list.svelte-buk2rj{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:4px}.mat-list.svelte-buk2rj li:where(.svelte-buk2rj){display:flex;align-items:baseline;gap:8px;font-size:.9rem;background:var(--paper);border-radius:4px;padding:5px 10px;flex-wrap:wrap}.mat-qty.svelte-buk2rj{font-weight:700;color:var(--accent);min-width:1.8rem}.mat-name.svelte-buk2rj{color:var(--ink);font-weight:500}.mat-dim.svelte-buk2rj{color:var(--ink-soft);font-size:.85rem;flex:1}.print-only.svelte-buk2rj{display:none}.print-header.svelte-buk2rj{font-size:1rem;color:var(--ink-strong);padding:4px 0 8px;border-bottom:1px solid var(--rule);display:flex;justify-content:space-between;align-items:baseline}.print-meta.svelte-buk2rj{font-size:.8rem;color:var(--ink-soft)}.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;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-weight:600}.cut-sequence.svelte-buk2rj .muted:where(.svelte-buk2rj){font-weight:400;color:var(--ink-very-faint);text-transform:none;letter-spacing:0}.seq-hint.svelte-buk2rj{margin:6px 0 8px;font-size:.8rem;color:var(--ink-soft);font-style:italic}.seq-list.svelte-buk2rj{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.seq-list.svelte-buk2rj li:where(.svelte-buk2rj){display:flex;align-items:baseline;gap:6px;background:var(--paper);border:1px solid var(--rule);border-radius:6px;padding:6px 10px;font-size:.85rem;color:var(--ink);cursor:default;transition:background .15s}.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{font-weight:700;color:var(--accent);min-width:1.6rem;text-align:right}.seq-instruction.svelte-buk2rj{line-height:1.4}.unit-selector.svelte-1yokvjp{display:flex;align-items:center;gap:7px;min-width:0;margin:0;padding:0;border:0;color:var(--ink-soft);font-size:.78rem}legend.svelte-1yokvjp{float:left;padding:0;font-size:.85rem}.systems.svelte-1yokvjp{display:flex;align-items:center;gap:7px}.system.svelte-1yokvjp{display:flex;align-items:center;gap:4px}.system.svelte-1yokvjp+.system:where(.svelte-1yokvjp){padding-left:7px;border-left:1px solid var(--rule)}.system-label.svelte-1yokvjp{color:var(--ink-faint)}.segments.svelte-1yokvjp{display:inline-flex}label.svelte-1yokvjp{position:relative;cursor:pointer}input.svelte-1yokvjp{position:absolute;width:1px;height:1px;opacity:0}label.svelte-1yokvjp span:where(.svelte-1yokvjp){display:block;min-width:2rem;padding:5px 7px;border:1px solid var(--rule-strong);border-left-width:0;background:var(--paper);color:var(--ink-strong);text-align:center;line-height:1}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){position:relative;z-index:1;outline:2px solid var(--focus-ring);outline-offset:2px}@media(max-width:700px){.unit-selector.svelte-1yokvjp{align-items:flex-start}.systems.svelte-1yokvjp{align-items:stretch;flex-direction:column;gap:5px}.system.svelte-1yokvjp{justify-content:space-between}.system.svelte-1yokvjp+.system:where(.svelte-1yokvjp){padding-top:5px;padding-left:0;border-top:1px solid var(--rule);border-left:0}.system-label.svelte-1yokvjp{min-width:3.5rem}}.global-stock-editor.svelte-63qigi{display:flex;flex-direction:column;gap:16px}h3.svelte-63qigi{margin:0 0 8px;font-size:.9rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.app.svelte-1n46o8q{margin:0 auto;padding:16px max(20px,4vw) 40px}header.svelte-1n46o8q{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;flex-wrap:wrap}.brand.svelte-1n46o8q{display:flex;align-items:center;gap:12px}.brand.svelte-1n46o8q h1:where(.svelte-1n46o8q){margin:0;font-size:1.4rem;color:var(--ink-strong)}.brand.svelte-1n46o8q p:where(.svelte-1n46o8q){margin:2px 0 0;font-size:.85rem;color:var(--ink-faint)}.controls.svelte-1n46o8q{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.controls.svelte-1n46o8q button:where(.svelte-1n46o8q),.controls.svelte-1n46o8q select:where(.svelte-1n46o8q){background:var(--paper);border:1px solid var(--rule-strong);border-radius:6px;padding:5px 10px;cursor:pointer;font:inherit;font-size:.85rem;color:var(--ink-strong)}.controls.svelte-1n46o8q button:where(.svelte-1n46o8q):hover{background:var(--paper-alt)}.project-bar.svelte-1n46o8q{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;margin-bottom:12px;padding:8px 10px;border:1px solid var(--rule);border-radius:8px;background:var(--paper-alt)}.project-bar.svelte-1n46o8q label:where(.svelte-1n46o8q){display:flex;flex-direction:column;gap:4px;font-size:.78rem;color:var(--ink-soft)}.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);border-radius:4px;padding:4px 6px;font:inherit;background:var(--paper);color:var(--ink)}.project-name.svelte-1n46o8q{flex:1 1 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);border-radius:6px;padding:5px 10px;cursor:pointer;font:inherit;font-size:.85rem;color:var(--ink-strong)}.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{display:flex;gap:4px;border-bottom:1px solid var(--rule);margin-bottom:16px}nav.tabs.svelte-1n46o8q button:where(.svelte-1n46o8q){background:transparent;border:none;border-bottom:2px solid transparent;padding:8px 16px;cursor:pointer;font:inherit;color:var(--ink-soft);margin-bottom:-1px}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);font-weight:400;margin-left:4px;font-size:.85em}.tab-actions.svelte-1n46o8q{display:flex;justify-content:flex-end;margin-bottom:8px}.tab-actions.svelte-1n46o8q button:where(.svelte-1n46o8q){background:var(--paper);border:1px solid var(--rule-strong);border-radius:6px;padding:4px 10px;cursor:pointer;font:inherit;font-size:.8rem;color:var(--ink-strong)}.tab-actions.svelte-1n46o8q button:where(.svelte-1n46o8q):hover{background:var(--paper-alt)}.storage-warning.svelte-1n46o8q{margin-bottom:16px;border:1px solid var(--danger-border);border-radius:6px;padding:8px 12px;color:var(--danger);background:var(--paper-alt)}main.svelte-1n46o8q{min-width:0}footer.svelte-1n46o8q{margin-top:24px;text-align:center;color:var(--ink-very-faint);font-size:.8rem}.theme-toggle.svelte-1n46o8q{display:inline-flex;align-items:center;gap:4px;font-size:.85rem;color:var(--ink-soft)}.theme-toggle.svelte-1n46o8q select:where(.svelte-1n46o8q){background:var(--paper);border:1px solid var(--rule-strong);border-radius:6px;padding:5px 10px;cursor:pointer;font:inherit;font-size:.85rem;color:var(--ink-strong)}.theme-toggle.svelte-1n46o8q select:where(.svelte-1n46o8q):hover{background:var(--paper-alt)}.modal-backdrop.svelte-1n46o8q{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:10}.modal.svelte-1n46o8q{background:var(--paper);border:1px solid var(--rule);border-radius:8px;padding:16px;max-width:640px;width:calc(100% - 32px);max-height:85vh;overflow:auto}.modal-head.svelte-1n46o8q{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.modal-head.svelte-1n46o8q h2:where(.svelte-1n46o8q){margin:0;font-size:1.1rem;color:var(--ink-strong)}.modal-close.svelte-1n46o8q{background:transparent;border:1px solid transparent;border-radius:4px;color:var(--ink-soft);cursor:pointer;font-size:1.2rem;line-height:1;padding:0 6px}.modal-close.svelte-1n46o8q:hover{color:var(--ink-strong)}
