*,:before,:after{box-sizing:border-box}body{min-width:320px;margin:0}.blueprint-panel{flex-direction:column;min-height:0;display:flex}.blueprint-toolbar{flex-wrap:wrap;align-items:end;gap:.65rem;margin-bottom:.65rem;display:flex}.blueprint-product{flex:1;min-width:12rem}.blueprint-tools,.blueprint-selected-actions,.blueprint-history,.blueprint-zoom{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.blueprint-angle-field{color:var(--muted);flex-direction:column;gap:.15rem;min-width:5.5rem;font-size:.72rem;display:flex}.blueprint-angle-input{color:var(--ink);align-items:center;gap:.2rem;font-size:.9rem;display:flex}.blueprint-angle-input input{width:4.2rem;margin:0;padding:.35rem .45rem}.blueprint-zoom{border:1px solid var(--line);background:#f3efe68c;border-radius:10px;padding:.15rem}.zoom-label{text-align:center;font-variant-numeric:tabular-nums;min-width:3.2rem;color:var(--muted);font-size:.82rem;font-weight:700}.btn.active-tool{border-color:#3d6f96;box-shadow:inset 0 0 0 1px #3d6f96}.blueprint-hint{margin-bottom:.55rem}.blueprint-canvas-wrap{touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;background:#f4f8fc;border:1px solid #8eb0cc;border-radius:4px;outline:none;height:min(68vh,640px);min-height:360px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #3d6f9626}.blueprint-canvas-wrap:focus-visible{box-shadow:inset 0 0 0 1px #3d6f9626,0 0 0 2px #3d6f9659}.blueprint-panel.wide .blueprint-canvas-wrap{height:min(82vh,900px);min-height:480px}.blueprint-canvas{cursor:default;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;width:100%;height:calc(100% - 1.6rem);display:block}.blueprint-canvas text{-webkit-user-select:none;user-select:none}.blueprint-canvas.tool-place,.blueprint-canvas.tool-cut,.blueprint-canvas.tool-ruler{cursor:crosshair}.bp-paper{fill:#f4f8fc}.bp-piece-hit{fill:#0000;stroke:none;pointer-events:all}.bp-fragment-fill{fill:#fff;pointer-events:none}.bp-fragment-hatch{fill:url(#bp-hatch);pointer-events:none}.bp-fragment-hatch.selected{fill:url(#bp-hatch-selected)}.bp-fragment-stroke{fill:none;stroke:#1e3a55;stroke-width:1.5px;vector-effect:non-scaling-stroke;pointer-events:none}.bp-piece-outline{fill:none;stroke:#1e3a55;stroke-width:2.25px;vector-effect:non-scaling-stroke;pointer-events:none}.bp-piece.selected .bp-piece-outline{stroke:#0b5cab;stroke-width:2.75px}.bp-cut,.bp-cut-preview{stroke:#b42318;stroke-width:2px;stroke-dasharray:10 6;vector-effect:non-scaling-stroke;pointer-events:none}.bp-cut-glow{stroke:#ffd6d2;stroke-width:6px;vector-effect:non-scaling-stroke;pointer-events:none}.bp-cut-preview{stroke:#e05a4f;opacity:.85}.bp-cut-draft{fill:#b42318;stroke:#fff;stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:none}.bp-dimension{pointer-events:none}.bp-dim-ext,.bp-dim-line,.bp-dim-tick{stroke:#1e3a55;stroke-width:1.25px;vector-effect:non-scaling-stroke;fill:none}.bp-dim-ext{stroke-dasharray:4 3;opacity:.75}.bp-length-label{fill:#0b5cab;text-anchor:middle;cursor:pointer;pointer-events:all;paint-order:stroke;stroke:#f4f8fc;stroke-width:5px;font-family:Cascadia Mono,SF Mono,ui-monospace,Menlo,Consolas,monospace;font-size:26px;font-weight:700}.bp-angle-label{fill:#8a4b12;text-anchor:middle;cursor:pointer;pointer-events:all;paint-order:stroke;stroke:#f4f8fc;stroke-width:5px;font-family:Cascadia Mono,SF Mono,ui-monospace,Menlo,Consolas,monospace;font-size:22px;font-weight:700}.bp-part-label{fill:#3d5a73;text-anchor:middle;pointer-events:none;letter-spacing:.02em;font-family:Cascadia Mono,SF Mono,ui-monospace,Menlo,Consolas,monospace;font-size:20px}.bp-frag-note{fill:#b42318;text-anchor:middle;pointer-events:none;font-family:Cascadia Mono,SF Mono,ui-monospace,Menlo,Consolas,monospace;font-size:18px}.bp-handle{fill:#f4f8fc;stroke:#0b5cab;stroke-width:2.5px;vector-effect:non-scaling-stroke;cursor:ew-resize;pointer-events:all}.bp-handle.rotate{cursor:grab;stroke:#8a4b12;fill:#fff8ef}.bp-rotate-arm{stroke:#8a4b12;stroke-width:1.5px;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;pointer-events:none}.bp-snap-guide{stroke:#e11d48;stroke-width:1.5px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke;pointer-events:none;opacity:.9}.bp-measurement{pointer-events:all}.bp-measure-line{stroke:#0f766e;stroke-width:1.75px;vector-effect:non-scaling-stroke;pointer-events:stroke;cursor:grab}.bp-measure-hit{stroke:#0000;stroke-width:16px;vector-effect:non-scaling-stroke;pointer-events:stroke;cursor:grab}.bp-measure-ext{stroke:#0f766e;stroke-width:1.25px;vector-effect:non-scaling-stroke;pointer-events:none;opacity:.85}.bp-measure-dot{fill:#0f766e;stroke:#f4f8fc;stroke-width:1.5px;vector-effect:non-scaling-stroke;pointer-events:none}.bp-measure-label{fill:#0f766e;text-anchor:middle;dominant-baseline:middle;cursor:pointer;pointer-events:all;paint-order:stroke;stroke:#f4f8fc;stroke-width:5px;font-family:Cascadia Mono,SF Mono,ui-monospace,Menlo,Consolas,monospace;font-size:24px;font-weight:700}.bp-measurement.selected .bp-measure-line,.bp-measurement.selected .bp-measure-ext{stroke:#b45309;stroke-width:2.25px}.bp-measurement.selected .bp-measure-dot,.bp-measurement.selected .bp-measure-label{fill:#b45309}.bp-measure-preview{pointer-events:none;opacity:.72}.bp-measure-preview .bp-measure-label{cursor:default}.bp-ruler-edge-active,.bp-ruler-edge-hover{fill:none;stroke-width:4px;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none}.bp-ruler-edge-active{stroke:#0f766e}.bp-ruler-edge-hover{stroke:#14b8a6;opacity:.85}.blueprint-canvas-footer{color:#3d5a73;background:#e7eef6;border-top:1px solid #8eb0cc;justify-content:space-between;align-items:center;gap:.75rem;padding:.3rem .65rem;font-family:Cascadia Mono,SF Mono,ui-monospace,Menlo,Consolas,monospace;font-size:.72rem;display:flex}.blueprint-size-toggle{background:#d5e3f0;border-radius:999px;gap:.2rem;padding:.15rem;display:inline-flex}.size-chip{color:#3d5a73;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.25rem .7rem;font-family:inherit;font-size:.72rem;font-weight:700}.size-chip.active{color:#f4f8fc;background:#0b5cab}@media (width<=899px){.blueprint-canvas-wrap{height:min(58vh,520px)}.blueprint-panel.wide .blueprint-canvas-wrap{height:min(75vh,720px)}.blueprint-toolbar{align-items:stretch}.blueprint-tools,.blueprint-selected-actions,.blueprint-history,.blueprint-zoom{width:100%}.blueprint-canvas-footer{flex-wrap:wrap;justify-content:center;gap:.35rem}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3efe6;--bg-deep:#e7e0d2;--surface:#fffdf8;--ink:#1c1914;--muted:#6b6458;--line:#d4cbb8;--accent:#2f6f4e;--accent-ink:#f4fff8;--warn:#8a4b12;--warn-bg:#f8e7d2;--danger:#9b2c2c;--shadow:0 10px 30px #1c191414;--radius:14px;--font:"Segoe UI", "Helvetica Neue", sans-serif;--mono:ui-monospace, "Cascadia Code", "SF Mono", Menlo, Consolas, monospace;font-family:var(--font);color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%, #efe6d4 0%, transparent 55%), radial-gradient(900px 500px at 100% 0%, #dfece4 0%, transparent 50%), var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:1.45}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}button,input,select{font:inherit}button{cursor:pointer}h1,h2,h3{letter-spacing:-.02em;margin:0}p{margin:0}.app{max-width:1100px;margin:0 auto;padding:1rem 1rem 3rem}.app.app-draw-wide{max-width:min(1600px,100%)}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.brand{align-items:center;gap:.85rem;display:flex}.brand-mark{background:linear-gradient(145deg,#7a5230 0%,#c08a4f 45%,#ead7b5 100%);border-radius:.7rem;width:2.4rem;height:2.4rem;box-shadow:inset 0 0 0 1px #0000001f}.brand h1{font-size:1.35rem}.brand p{color:var(--muted);font-size:.9rem}.tabs{border:1px solid var(--line);background:#fffdf8cc;border-radius:999px;padding:.25rem;display:inline-flex}.tab{color:var(--muted);background:0 0;border:0;border-radius:999px;padding:.55rem 1rem;font-weight:600}.tab.active{background:var(--ink);color:#fff}.layout{gap:1rem;display:grid}@media (width>=900px){.layout{grid-template-columns:minmax(0,1.35fr) minmax(280px,.9fr);align-items:start}.layout.layout-draw-wide{grid-template-columns:1fr}.layout.layout-draw-wide .summary{position:static}}.panel,.summary{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.panel-header,.summary-header,.stock-block-header{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.panel-header{margin-bottom:1rem}.muted{color:var(--muted)}.tiny{font-size:.85rem}.empty{border:1px dashed var(--line);color:var(--muted);background:#f3efe673;border-radius:12px;padding:1.25rem}.empty.compact{margin:.75rem 0;padding:.85rem}.btn{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;padding:.55rem .9rem;font-weight:600}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:#245a3f}.btn.secondary{background:var(--bg-deep)}.btn.ghost{background:0 0}.btn.danger{color:var(--danger);background:#fff5f5;border-color:#e2b4b4}.btn.icon{align-self:end;width:2.5rem;padding-inline:0;font-size:1.25rem;line-height:1}.btn.block{width:100%}label{color:var(--muted);gap:.35rem;font-size:.85rem;font-weight:600;display:grid}input,select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:10px;padding:.65rem .75rem}input:focus,select:focus{border-color:var(--accent);outline:2px solid #2f6f4e59}.row-2,.stock-row,.cut-row{gap:.65rem;display:grid}.row-2{grid-template-columns:1fr 1fr}.stock-row,.cut-row{grid-template-columns:1fr 1fr auto;align-items:end;margin-bottom:.55rem}.stock-row.single{grid-template-columns:1fr auto}.product-list,.plan-list,.buy-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.product-card,.plan-card{border:1px solid var(--line);background:#fffcf6;border-radius:12px;overflow:hidden}.plan-card-summary{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1rem;list-style:none;display:flex}.plan-card-summary::-webkit-details-marker{display:none}.plan-card-summary-text{gap:.15rem;min-width:0;display:grid}.plan-card-summary-text strong{font-size:.98rem}.plan-card-summary:after{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);flex-shrink:0;order:-1;width:.45rem;height:.45rem;margin-right:.15rem;transition:transform .15s;transform:rotate(45deg)}.plan-card[open]>.plan-card-summary:after{transform:rotate(225deg)translateY(.15rem)}.plan-card-body{border-top:1px solid var(--line);padding:0 1rem 1rem;gap:.35rem;padding-top:.85rem;display:grid}.product-card-toggle{text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:1rem;width:100%;padding:.9rem 1rem;display:flex}.product-card-title{font-weight:700}.product-editor{border-top:1px solid var(--line);gap:.75rem;padding:1rem;display:grid}.stock-block{gap:.35rem;display:grid}.stock-block h3{font-size:.95rem}.editor-actions{justify-content:flex-end;display:flex}.prefer-lengths{border:1px solid var(--line);background:#f3efe68c;border-radius:10px;margin:.65rem 0 .85rem;padding:.65rem .75rem .75rem}.prefer-lengths legend{color:var(--ink);padding:0 .25rem;font-size:.85rem;font-weight:700}.prefer-length-list{flex-wrap:wrap;gap:.45rem;margin-top:.45rem;display:flex}.prefer-length-option{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:999px;align-items:center;gap:.4rem;margin:0;padding:.4rem .65rem;font-size:.85rem;font-weight:600;display:inline-flex}.prefer-length-option input{width:auto;accent-color:var(--accent);margin:0}.prefer-length-option:has(input:not(:checked)){opacity:.55;background:0 0}.cut-rows{gap:.35rem;margin-top:.75rem;display:grid}.cut-row-incomplete input{background:#fffaf3;border-color:#d4a36a}.warn{background:var(--warn-bg);color:var(--warn);border-radius:10px;margin-top:.75rem;padding:.65rem .75rem;font-size:.9rem}.summary{position:sticky;top:.75rem}.summary-header{align-items:center;gap:.75rem;margin-bottom:.35rem}.summary-settings{flex-wrap:wrap;justify-content:flex-end;gap:.4rem;display:flex}.setting-chip{border:1px solid var(--line);background:var(--bg);color:var(--ink);white-space:nowrap;border-radius:999px;padding:.35rem .7rem;font-size:.8rem;font-weight:600}.setting-chip:hover{border-color:var(--accent);background:#fff}.setting-backdrop{z-index:40;background:#1c191473;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.setting-popup{background:var(--surface);border:1px solid var(--line);width:min(100%,320px);box-shadow:var(--shadow);border-radius:14px;gap:.75rem;padding:1rem;display:grid}.setting-popup h3{font-size:1.05rem}.setting-popup-actions{justify-content:flex-end;gap:.5rem;display:flex}.stats{grid-template-columns:1fr 1fr;gap:.55rem;margin:.85rem 0;display:grid}.stat{background:var(--bg);border:1px solid var(--line);border-radius:12px;gap:.15rem;padding:.7rem .8rem;display:grid}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:600}.stat-value{font-size:1.05rem;font-weight:700}.buy-list{margin-bottom:.85rem}.buy-list>li{border-bottom:1px solid var(--line);gap:.25rem;padding:.65rem 0;display:grid}.buy-list ul{margin:0;padding-left:1.1rem}.cut-details{border:1px solid var(--line);background:#fffcf6;border-radius:12px;margin:.35rem 0 1rem;overflow:hidden}.cut-details-summary{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem .85rem;font-weight:700;list-style:none;display:flex}.cut-details-summary::-webkit-details-marker{display:none}.cut-details-summary:after{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);flex-shrink:0;width:.45rem;height:.45rem;margin-left:auto;transition:transform .15s;transform:rotate(45deg)}.cut-details[open]>.cut-details-summary:after{transform:rotate(225deg)translateY(.15rem)}.cut-details-body{border-top:1px solid var(--line);gap:.75rem;padding:.75rem .85rem .85rem;display:grid}.cut-details h4{margin-bottom:.45rem;font-size:.92rem}.cut-product{gap:.45rem;display:grid}.board-list{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.board-card{border:1px solid var(--line);background:var(--bg);border-radius:10px;gap:.45rem;padding:.65rem .7rem;display:grid}.board-card-header{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.cut-bar{background:#d8d0c0;border:1px solid #b9ae98;border-radius:6px;height:1.85rem;display:flex;overflow:hidden}.cut-seg{color:#f4fff8;background:linear-gradient(#6f9f7f 0%,#3f7a58 100%);border-right:1px solid #1c19142e;place-items:center;min-width:0;font-size:.68rem;font-weight:700;display:grid}.cut-seg:last-child{border-right:0}.cut-seg.kerf{background:#1c1914;border-right:0;min-width:3px}.cut-seg.scrap{color:#2a1a05;background:linear-gradient(#f0b35a 0%,#c47a1a 100%);border-right:0}.cut-seg-label{text-overflow:ellipsis;white-space:nowrap;padding:0 .2rem;overflow:hidden}.cut-seg-label.scrap-label{font-size:.65rem}.cut-sequence{font-size:.86rem}.copy-block{color:#f4efe4;font-family:var(--mono);white-space:pre-wrap;background:#1c1914;border-radius:12px;max-height:360px;margin:0 0 .75rem;padding:.85rem;font-size:.78rem;line-height:1.5;overflow:auto}@media (width<=899px){.summary{position:static}.stock-row,.cut-row{grid-template-columns:1fr 1fr}.stock-row.single{grid-template-columns:1fr auto}.stock-row .btn.icon,.cut-row .btn.icon{grid-column:2;justify-self:end}.stock-row.single .btn.icon{grid-column:auto}}
