*,*:before,*:after{box-sizing:border-box}*{margin:0}html{interpolate-size:allow-keywords}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p{overflow-wrap:break-word;text-wrap:pretty}h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;text-wrap:balance}#root,#app{isolation:isolate}:root{--charcoal: #1e2a26;--pine: #1f6b4a;--tan: #dda153;--offwhite: #f7edd6;--shell: #ece0c4;--card: #fdf7e8;--ink: var(--charcoal);--ink-soft: rgba(30, 42, 38, .6);--rule: rgba(30, 42, 38, .16);--accent: var(--pine);--accent-ink: var(--offwhite);--warm: #b5762a;--danger: #a33a2a;--bar: var(--charcoal);--bar-ink: var(--offwhite);--radius: 5px;--gap: .75rem;--shadow: 0 1px 0 rgba(30, 42, 38, .16), 0 2px 8px rgba(30, 42, 38, .08);--tap: .12s cubic-bezier(.2, .8, .3, 1);--font-head: "Archivo Narrow", "Roboto Condensed", "Oswald", "Helvetica Neue Condensed", "Arial Narrow", "Liberation Sans Narrow", system-ui, sans-serif;--font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;font-family:var(--font-body);color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--shell: #111a17;--card: #1d2925;--ink: #f0e6d0;--ink-soft: rgba(240, 230, 208, .62);--rule: rgba(240, 230, 208, .18);--accent: #2d8a5e;--warm: var(--tan);--danger: #d4685a;--bar: #0d1513;--shadow: 0 1px 0 rgba(0, 0, 0, .5), 0 2px 10px rgba(0, 0, 0, .35)}}body{min-height:100dvh;background-color:var(--shell);color:var(--ink)}button,.tabs__link{touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}h1,h2,h3,.wordmark,.totalbar__value,.summary__value,.cutrow__bf-value{font-family:var(--font-head);font-stretch:87.5%;letter-spacing:.01em}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.app{max-width:40rem;margin-inline:auto;padding-bottom:calc(4.75rem + env(safe-area-inset-bottom))}.topbar{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:var(--gap);padding:.6rem 1rem;padding-top:calc(.6rem + env(safe-area-inset-top));background-color:var(--bar);color:var(--bar-ink);border-bottom:3px solid var(--accent)}.wordmark{font-size:1.5rem;font-weight:700;line-height:1;text-transform:uppercase;letter-spacing:.06em}.wordmark__accent{color:var(--tan)}.tabs{position:sticky;top:0;z-index:2;display:flex;background-color:var(--bar);padding:0 .5rem .4rem}.tabs__link{flex:1;padding:.5rem .25rem;border-radius:var(--radius);color:#f7edd69e;font-family:var(--font-head);font-stretch:87.5%;font-size:.9rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-align:center;text-decoration:none;transition:color var(--tap),background-color var(--tap)}.tabs__link:hover{color:var(--offwhite)}.tabs__link.active{background-color:#f7edd61f;color:var(--offwhite);box-shadow:inset 0 -2px 0 var(--tan)}.screen{display:flex;flex-direction:column;gap:var(--gap);padding:var(--gap) .75rem 0}.screen__head{padding:.25rem .25rem 0}.screen__title{font-size:1.75rem;font-weight:700;line-height:1.05;text-transform:uppercase}.screen__lede{color:var(--ink-soft);font-size:.9rem}.card{background-color:var(--card);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow);padding:.85rem}.card--summary{border-top:4px solid var(--accent)}.card--tally{border-top:4px solid var(--tan)}.card__head{display:flex;align-items:center;justify-content:space-between;gap:var(--gap)}.card__title{font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.6rem}.card__head .card__title{margin-bottom:.6rem}.empty{color:var(--ink-soft);font-size:.9rem;padding:.35rem 0}.partform__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}@media(min-width:32rem){.partform__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.field{display:flex;flex-direction:column;gap:.2rem}.field--wide{grid-column:1 / -1}.field--inline{flex-direction:row;align-items:center;gap:.5rem}.field--title{margin-top:.5rem}.field__label{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.field__input{width:100%;padding:.55rem .6rem;background-color:var(--card);color:var(--ink);border:1px solid var(--rule);border-bottom-width:2px;border-radius:var(--radius);font-size:1rem;transition:border-color var(--tap),box-shadow var(--tap)}.field__input:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.field__input--short{width:5rem}.field__input--title{font-family:var(--font-head);font-stretch:87.5%;font-size:1.2rem;font-weight:600}.button{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;min-height:2.5rem;padding:.45rem .9rem;background-color:transparent;color:var(--ink);border:1px solid var(--rule);border-radius:var(--radius);font-family:var(--font-head);font-stretch:87.5%;font-size:.9rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:transform var(--tap),background-color var(--tap),border-color var(--tap)}.button:active{transform:translateY(1px) scale(.99)}.button--primary{background-color:var(--accent);color:var(--accent-ink);border-color:transparent;box-shadow:0 2px color-mix(in srgb,var(--accent) 65%,black)}.button--primary:active{box-shadow:0 1px color-mix(in srgb,var(--accent) 65%,black)}.button--ghost{color:var(--ink-soft)}.button--tiny{min-height:2rem;padding:.25rem .55rem;font-size:.78rem}.button--danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent);font-size:1.1rem;line-height:1}.chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}.chip{min-height:2rem;padding:.2rem .6rem;background-color:transparent;color:var(--ink-soft);border:1px dashed var(--rule);border-radius:999px;font-family:var(--font-head);font-stretch:87.5%;font-size:.85rem;font-weight:600;cursor:pointer;transition:transform var(--tap),background-color var(--tap),color var(--tap),border-color var(--tap)}.chip:active{transform:scale(.96)}.chip[aria-pressed=true]{background-color:color-mix(in srgb,var(--tan) 30%,transparent);border-style:solid;border-color:var(--warm);color:var(--ink)}.segmented{display:flex;align-items:center;gap:.5rem;margin-top:.6rem}.segmented__label{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.segmented__options{display:flex;border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden}.segmented__option{min-height:2rem;padding:.25rem .7rem;background-color:transparent;color:var(--ink-soft);border:0;font-family:var(--font-head);font-stretch:87.5%;font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background-color var(--tap),color var(--tap)}.segmented__option[aria-pressed=true]{background-color:var(--ink);color:var(--card)}.segmented__option--finish[aria-pressed=true]{background-color:var(--accent);color:var(--accent-ink)}.unittoggle{display:flex;border:1px solid rgba(247,237,214,.35);border-radius:var(--radius);overflow:hidden}.unittoggle__option{min-width:2.5rem;min-height:2rem;padding:.2rem .55rem;background-color:transparent;color:#f7edd6b3;border:0;font-family:var(--font-head);font-stretch:87.5%;font-size:.85rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background-color var(--tap),color var(--tap)}.unittoggle__option[aria-pressed=true]{background-color:var(--tan);color:var(--charcoal)}.partform__actions{display:flex;align-items:center;justify-content:space-between;gap:var(--gap);margin-top:.75rem;padding-top:.65rem;border-top:1px dashed var(--rule)}.partform__actions--end{justify-content:flex-end;border-top:0}.partform__buttons{display:flex;gap:.4rem}.partform__readout{display:flex;flex-direction:column;line-height:1.1}.partform__readout-label{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.partform__readout-value{font-family:var(--font-head);font-stretch:87.5%;font-size:1.5rem;font-weight:700}.partform__error{margin-top:.5rem;color:var(--danger);font-size:.85rem}.cutlist,.scraplist,.suggestions,.stocklist{list-style:none;padding:0}.cutrow{display:flex;align-items:center;gap:.6rem;padding:.55rem .15rem;border-bottom:1px solid var(--rule)}.cutrow:last-child{border-bottom:0}.cutrow__main{flex:1;min-width:0}.cutrow__name{font-weight:600;line-height:1.2}.cutrow__dims{color:var(--ink-soft);font-size:.85rem;font-variant-numeric:tabular-nums}.cutrow__bf{display:flex;align-items:baseline;gap:.15rem;font-variant-numeric:tabular-nums}.cutrow__bf-value{font-size:1.1rem;font-weight:700}.cutrow__bf-unit{color:var(--ink-soft);font-size:.7rem;text-transform:uppercase}.cutrow__controls{display:flex;align-items:center;gap:.35rem}.cutrow__controls .segmented{margin-top:0}.badge{padding:.15rem .45rem;border-radius:999px;font-family:var(--font-head);font-stretch:87.5%;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.badge--rough{background-color:color-mix(in srgb,var(--tan) 35%,transparent);color:var(--warm)}.badge--finish{background-color:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--accent)}@keyframes cutrow-slide-in{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes cutrow-flash{0%{background-color:color-mix(in srgb,var(--tan) 38%,transparent)}to{background-color:transparent}}.cutrow--fresh{animation:cutrow-slide-in .18s cubic-bezier(.2,.8,.3,1),cutrow-flash .7s ease-out}.summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}@media(min-width:32rem){.summary{grid-template-columns:repeat(4,minmax(0,1fr))}}.summary__stat{display:flex;flex-direction:column;padding:.45rem .55rem;background-color:color-mix(in srgb,var(--tan) 14%,transparent);border-radius:var(--radius);line-height:1.15}.summary__stat--lead{background-color:var(--accent);color:var(--accent-ink)}.summary__label{font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;opacity:.75}.summary__value{font-size:1.4rem;font-weight:700;font-variant-numeric:tabular-nums}.stocklist{margin-top:.65rem;border-top:1px dashed var(--rule)}.stocklist__item{display:flex;align-items:baseline;gap:.5rem;padding:.4rem .15rem;border-bottom:1px dashed var(--rule);font-variant-numeric:tabular-nums}.stocklist__thickness{min-width:3rem;font-family:var(--font-head);font-stretch:87.5%;font-size:1rem;font-weight:700}.stocklist__bf{flex:1;font-weight:600}.stocklist__pieces{color:var(--ink-soft);font-size:.85rem}.tally{font-variant-numeric:tabular-nums}.tally__row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--gap);padding:.35rem .15rem;border-bottom:1px dashed var(--rule)}.tally__row dt{color:var(--ink-soft);font-size:.9rem}.tally__row dd{font-weight:600}.tally__row--total{border-bottom:0;border-top:2px solid var(--ink);margin-top:.2rem;padding-top:.5rem}.tally__row--total dt{color:var(--ink);font-family:var(--font-head);font-stretch:87.5%;font-size:1rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.tally__row--total dd{font-family:var(--font-head);font-stretch:87.5%;font-size:1.5rem;font-weight:700}.waste{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.75rem;padding-top:.65rem;border-top:1px dashed var(--rule)}.waste .chips{margin-top:0}.scrapcard{padding:.6rem .15rem;border-bottom:1px solid var(--rule)}.scrapcard:last-child{border-bottom:0}.scrapcard__head{display:flex;align-items:center;gap:.5rem}.scrapcard__dims{flex:1;font-weight:600;font-variant-numeric:tabular-nums}.scrapcard__bf{color:var(--ink-soft);font-size:.85rem;font-variant-numeric:tabular-nums}.scrapcard__note{color:var(--ink-soft);font-size:.85rem;font-style:italic}.scrapcard__verdict{margin-top:.4rem;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.scrapcard__verdict--none{color:var(--ink-soft);font-size:.85rem;font-weight:400;letter-spacing:0;text-transform:none}.suggestions{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.3rem}.suggestion{display:flex;align-items:baseline;gap:.35rem;padding:.25rem .55rem;background-color:color-mix(in srgb,var(--accent) 14%,transparent);border-radius:var(--radius)}.suggestion__name{font-weight:600;font-size:.9rem}.suggestion__count{color:var(--ink-soft);font-size:.78rem}.totalbar{position:fixed;inset-inline:0;bottom:0;z-index:4;display:flex;align-items:center;gap:.5rem;max-width:40rem;margin-inline:auto;padding:.5rem 1rem;padding-bottom:calc(.5rem + env(safe-area-inset-bottom));background-color:var(--bar);color:var(--bar-ink);border-top:3px solid var(--tan)}.totalbar__cell{display:flex;flex:1;flex-direction:column;line-height:1.1}.totalbar__cell--buy{align-items:flex-end;text-align:right}.totalbar__label{font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#f7edd6a6}.totalbar__value{font-size:1.25rem;font-weight:700;font-variant-numeric:tabular-nums}.totalbar__value--lead{color:var(--tan);font-size:1.6rem}.page{max-width:40rem;margin-inline:auto;padding:2rem 1rem}.page h1{font-size:3rem;text-transform:uppercase}.page a{color:var(--accent)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
