﻿:root{--background:#f6f4eb;--surface:#ffffff;--text:#172648;--primary:#174bca;--accent:#e84924;--muted:#536079;--line:#c7ccda;--error:#9e2914;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text);background:var(--background);font-synthesis:none}*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.55}header,main,footer{max-width:1200px;margin:auto}header{display:flex;justify-content:space-between;align-items:center;padding:24px 0;border-bottom:1px solid var(--text)}a{color:inherit;text-underline-offset:4px}.brand{display:flex;gap:12px;align-items:center;font-weight:750;font-size:23px;text-decoration:none}.brand svg{color:var(--primary)}.intro{display:grid;grid-template-columns:1fr 1fr;gap:64px;padding:40px 0;align-items:center}h1,h2,h3{font-family:Georgia,serif;font-weight:400}h1{font-size:60px;line-height:1;letter-spacing:-2px;margin:0}h2{font-size:28px;line-height:1.2;margin:0}h2>span{font:600 14px system-ui;color:var(--primary);margin-right:16px}.summary{font-size:21px;line-height:1.45;margin:0 0 16px}.intro p:last-child{margin-bottom:0;color:var(--muted)}p{max-width:85ch}button,input,textarea{font:inherit;color:inherit;border-radius:0}button{min-height:44px;padding:10px 16px;border:1px solid var(--line);background:var(--surface);cursor:pointer}button:hover:enabled{border-color:var(--primary);background:var(--background)}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--primary);border-color:var(--primary);color:var(--surface);font-weight:600}.primary:hover:enabled{background:var(--text);color:var(--surface)}:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.primary:focus-visible{outline-color:var(--text)}input{display:block;min-height:44px;width:100%;background:var(--surface);border:1px solid var(--line);padding:9px 12px;font-variant-numeric:tabular-nums}label{display:block;font-size:14px;font-weight:600}label input{margin-top:6px}.stock-settings{border-top:2px solid var(--text);display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:24px;padding:24px 0}.stock-settings h2{align-self:center}#limits{grid-column:2 / -1;font-size:14px;color:var(--muted);margin:0}.parts-panel{background:var(--surface);padding:24px;border:1px solid var(--line)}.section-heading,.actions{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.hint{font-size:14px;color:var(--muted);margin:12px 0 20px}.part-row{display:grid;grid-template-columns:36px minmax(100px,2fr) minmax(90px,1fr) minmax(70px,.65fr) auto;gap:16px;align-items:end;padding:16px 0;border-top:1px solid var(--line)}.row-number{padding-bottom:10px;color:var(--primary);font-variant-numeric:tabular-nums}.remove{font-size:14px}.parts-panel .actions{margin-top:16px}#row-count{font-size:14px;color:var(--muted)}.main-actions{justify-content:flex-start;margin-top:24px}#status{color:var(--muted);margin:16px 0 32px}#error{padding:16px;background:var(--surface);border-left:4px solid var(--error);color:var(--error)}.results{border-top:2px solid var(--text);padding-top:24px}.results>p{font-size:14px}.assumption{font-weight:600}#empty{padding:40px 24px;background:var(--surface);border:1px solid var(--line);color:var(--muted)}.totals{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:24px 0;border-bottom:1px solid var(--line)}.totals strong{display:block;font:32px Georgia,serif;font-variant-numeric:tabular-nums}.totals span{font-size:14px}.legend{font-size:14px}.part-key{color:var(--primary)}.bar-block{padding:20px 0;border-bottom:1px solid var(--line)}.bar-title{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.bar-title h3{font-size:23px;margin:0}.bar-title span{font-size:14px}.strip{display:flex;height:52px;background:var(--background);border:1px solid var(--line);overflow:hidden}.segment{display:flex;align-items:center;justify-content:center;overflow:hidden;white-space:nowrap;min-width:0;background:var(--primary);color:var(--surface);font-size:14px;border-right:1px solid var(--surface)}.kerf{background:var(--accent);flex-shrink:0}.bar-pieces{font-size:14px;overflow-wrap:anywhere;margin:10px 0 0}.table-scroll{max-width:100%;overflow:auto;margin-top:24px;background:var(--surface)}table{border-collapse:collapse;width:100%;min-width:690px;font-variant-numeric:tabular-nums;font-size:14px}caption{text-align:left;padding:16px 12px;font-weight:600}td,th{padding:12px;text-align:right;border-bottom:1px solid var(--line)}th{font-weight:600}td:nth-child(-n+3),th:nth-child(-n+3){text-align:left}td:nth-child(3){max-width:240px;overflow-wrap:anywhere}.bar-total{font-weight:600}.fallback{margin-top:24px}summary{cursor:pointer;min-height:44px;padding:14px 0;font-weight:600}textarea{width:100%;height:300px;background:var(--surface);padding:16px;line-height:1.6;border:1px solid var(--line)}.faq{padding:48px 0;display:grid;grid-template-columns:1fr 2fr;gap:0 48px}.faq h2{grid-row:span 4}.faq details{border-top:1px solid var(--line)}details p{font-size:14px;margin-top:0;color:var(--muted)}footer{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--text);padding:24px 0 32px;font-size:14px}.skip{position:absolute;top:-100px;left:16px;padding:12px;background:var(--surface);z-index:1}.skip:focus{top:8px}[hidden]{display:none!important}#output{animation:reveal .18s ease-out}@keyframes reveal{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}@media(max-width:1280px){header,main,footer{margin-left:40px;margin-right:40px}}@media(max-width:850px){header,main,footer{margin-left:24px;margin-right:24px}.intro{gap:32px}h1{font-size:48px}.stock-settings{grid-template-columns:1fr 1fr}.stock-settings h2{grid-column:1/-1}#limits{grid-column:1/-1}.part-row{gap:10px;grid-template-columns:24px minmax(100px,2fr) 1fr .7fr auto}.parts-panel{padding:16px}.faq{gap:0 24px}}@media(max-width:600px){header,main,footer{margin-left:16px;margin-right:16px}.brand{font-size:20px}.intro{grid-template-columns:1fr;gap:24px;padding:32px 0}h1{font-size:38px;letter-spacing:-1px}.summary{font-size:19px}h2{font-size:25px}.stock-settings{gap:16px}.part-row{grid-template-columns:24px 1fr 1fr;gap:12px}.part-row label:first-of-type{grid-column:2/-1}.part-row label:nth-of-type(2){grid-column:2}.row-number{grid-row:1;align-self:center;padding:0}.remove{grid-column:2/-1}.totals{grid-template-columns:1fr 1fr;gap:20px}.totals strong{font-size:28px}.faq{display:block}.faq h2{margin-bottom:24px}footer{flex-direction:column}.section-heading{align-items:flex-start}.section-heading .primary{width:100%}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
