*{margin:0;padding:0;box-sizing:border-box}body{font-family:Public Sans,Avenir Next,Segoe UI,sans-serif;background:#f3efe6;color:#1c1915}#root{width:100%;height:100vh}:root{--ink: #1c1915;--ink-soft: #5c564c;--paper: #f3efe6;--sheet: #fbfaf6;--rule: #d9d2c5;--cut: #9e2b1e;--crease: #2f6f4e;--serif: "Newsreader", "Iowan Old Style", Palatino, serif;--sans: "Public Sans", "Avenir Next", "Segoe UI", sans-serif}.press{height:100vh;display:flex;flex-direction:column;background:radial-gradient(circle at 12% -10%,#fff 0,transparent 42%),var(--paper);color:var(--ink);font-family:var(--sans)}.mast{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding:14px 22px 12px;border-bottom:1px solid var(--rule)}.mast h1{margin:0;font-family:var(--serif);font-weight:500;font-size:28px;letter-spacing:-.03em;line-height:1}.mast-kicker{margin:0 0 2px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.mast-code{margin:0;font-variant-numeric:tabular-nums;letter-spacing:.04em;color:var(--ink-soft);font-size:13px}.workspace{flex:1;min-height:0;display:grid;grid-template-columns:340px 1fr 300px;grid-template-rows:minmax(0,1fr)}.rail{min-height:0;overflow:auto;padding:18px 16px 28px}.rail-left{display:flex;flex-direction:column;overflow:hidden;padding:0;border-right:1px solid var(--rule)}.rail-right{border-left:1px solid var(--rule);background:#ffffff59}.stage{position:relative;min-width:0;min-height:0;display:flex;flex-direction:column;padding:18px 22px 22px}.stage-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}.stage-title{min-width:0}.stage-code{margin:3px 0 0;color:var(--ink-soft);font-size:12px;letter-spacing:.05em;font-variant-numeric:tabular-nums}.stage-aside{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}.stage-actions{display:flex;gap:14px}.stage-head h2{margin:0;font-family:var(--serif);font-weight:500;font-size:22px;letter-spacing:-.02em}.stage-meta{margin:0;color:var(--ink-soft);font-size:12px;font-variant-numeric:tabular-nums}.legend{display:flex;align-items:center;gap:8px}.swatch{width:18px;height:0;border-top:2px solid var(--ink);margin-left:8px}.swatch-crease{border-top-style:dashed;border-top-color:var(--crease)}.sheet{flex:1;min-height:0;background:var(--sheet);border:1px solid var(--rule);position:relative}.sheet:before,.sheet:after{content:"";position:absolute;width:14px;height:14px;border-color:var(--ink);border-style:solid;opacity:.35;pointer-events:none}.sheet:before{top:8px;left:8px;border-width:1px 0 0 1px}.sheet:after{right:8px;bottom:8px;border-width:0 1px 1px 0}.preview{position:relative;width:100%;height:100%;min-height:0;display:flex;align-items:stretch}.param-callout{cursor:pointer}.param-callout line{stroke:var(--ink-soft)}.param-callout text{fill:var(--ink);stroke:none}.callout-field{position:absolute;z-index:3;width:4.2rem;margin:0;transform:translate(-50%,-50%);border:none;border-bottom:1px solid var(--ink);background:var(--sheet);color:var(--ink);font-family:var(--sans);font-size:13px;font-variant-numeric:tabular-nums;text-align:center;padding:0 2px 1px}.callout-field:focus{outline:none;border-bottom-color:var(--ink)}.preview-svg{flex:1 1 0;width:0;min-width:0;height:100%;display:block}.knife-card{flex:0 0 auto;align-self:flex-start;margin:16px 16px 0 0;padding:8px 10px;max-width:11.5rem;background:#fffffff0;border:1px solid var(--rule);color:var(--ink-soft);font-size:12px;line-height:1.45;font-variant-numeric:tabular-nums;position:relative;z-index:1}.knife-card p{margin:0}.library-pane{height:100%;min-height:0;display:flex;flex-direction:column}.library{position:relative;z-index:1;isolation:isolate;flex:1;min-height:0;overflow:auto;padding:18px 16px 16px}.search-wrap{position:relative;z-index:3;margin-bottom:12px}.search{display:block}.suggest{position:absolute;z-index:1;left:0;right:0;top:calc(100% + 6px);max-height:280px;overflow:auto;background:var(--sheet);border:1px solid var(--ink);padding:6px 0}.suggest-kicker{margin:0;padding:4px 12px 6px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.suggest-option{display:block;width:100%;padding:7px 12px;border:none;background:transparent;color:var(--ink);font-family:var(--serif);font-size:16px;font-weight:500;letter-spacing:-.01em;line-height:1.3;text-align:left;cursor:pointer}.suggest-option.is-active,.suggest-option:hover{background:var(--paper)}.search input::placeholder{color:var(--ink-soft);opacity:.8}.search input,.measure input{width:100%;border:none;border-bottom:1px solid var(--ink);background:transparent;color:var(--ink);font:inherit;font-size:14px;padding:6px 0;border-radius:0}.measure input{font-size:15px;text-align:right;font-variant-numeric:tabular-nums}.search input:focus,.measure input:focus{outline:none;border-bottom-color:var(--cut)}.rail-right h3,.parts h2{margin:0 0 8px;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.chips{display:flex;gap:18px;margin:0 0 14px}.chip{font:inherit;font-size:13px;color:var(--ink-soft);background:none;border:none;border-bottom:1px solid transparent;padding:2px 0 4px;cursor:pointer}.chip.is-on{color:var(--ink);border-bottom-color:var(--ink)}.lib-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.lib-card,.part-row,.part-choice{font:inherit;color:var(--ink);background:transparent;border:1px solid var(--rule);text-align:left;cursor:pointer}.lib-card{padding:6px 6px 8px;min-height:108px}.lib-card.is-on,.part-row:hover,.part-choice.is-on,.lib-card:hover,.part-choice:hover{border-color:var(--ink-soft)}.lib-card.is-on,.part.is-open .part-row,.part-choice.is-on{border-color:var(--ink);background:var(--sheet)}.lib-name,.part-name,.part-choice-name{display:block;font-family:var(--serif);font-weight:500;letter-spacing:-.01em;line-height:1.25}.lib-name{margin-top:6px;font-size:15px}.lib-code{display:block;margin-top:2px;color:var(--ink-soft);font-size:11px;letter-spacing:.04em;font-variant-numeric:tabular-nums}.mini-die{display:block;width:100%;height:52px;overflow:hidden;pointer-events:none}.parts{position:relative;z-index:2;flex:none;border-top:1px solid var(--rule);padding:12px 16px 16px;background:var(--paper)}.part+.part{margin-top:8px}.part-row{display:grid;grid-template-columns:76px 1fr 14px;align-items:center;gap:8px;width:100%;padding:6px}.part-row .mini-die{height:44px}.part-edge,.part-choice-note{display:block;color:var(--ink-soft);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.part-name{font-size:16px}.chevron{width:12px;height:12px;color:var(--ink-soft)}.chevron.is-open{transform:rotate(180deg)}.part-menu{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:42vh;overflow:auto;margin-top:6px}.tuck-pair{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:6px}.part-choice{display:grid;grid-template-columns:54px 1fr;align-items:center;gap:6px;padding:4px;min-height:52px}.part-choice .mini-die{height:40px}.part-choice-name{font-size:13px}.lib-card:focus-visible,.part-row:focus-visible,.part-choice:focus-visible,.chip:focus-visible,.search input:focus-visible,.suggest-option:focus-visible{outline:1px solid var(--ink);outline-offset:2px}.empty{margin:0;color:var(--ink-soft);font-size:13px}.notice{margin:0 0 14px;padding:10px 0 10px 12px;border-left:2px solid var(--cut);color:var(--ink);font-size:13px;line-height:1.4}.notice p{margin:0 0 8px}.notice p:last-child{margin-bottom:0}.measure.field-bad input{border-bottom-color:var(--cut);color:var(--cut)}.measures .notice{margin-top:12px}.job-name{margin:0;font-family:var(--serif);font-weight:500;font-size:22px;letter-spacing:-.02em;line-height:1.15}.job-code{margin:3px 0 16px;color:var(--ink-soft);font-size:12px;letter-spacing:.05em;font-variant-numeric:tabular-nums}.measure{display:grid;grid-template-columns:1fr 4.75rem 1.6rem;align-items:baseline;column-gap:8px;margin:0 0 2px;cursor:text}.unit{color:var(--ink-soft);font-size:12px}.sheet-options{display:flex;flex-direction:column;gap:8px;margin:14px 0 20px}.check{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.check input{width:14px;height:14px;margin:0;accent-color:var(--ink)}.downloads{display:flex;gap:8px}.download,.download-quiet{font-family:inherit;cursor:pointer}.download{flex:1;padding:9px 10px;background:var(--ink);color:var(--sheet);border:1px solid var(--ink);font-size:12px;font-weight:600;letter-spacing:.14em}.download-3d{width:100%;margin-top:8px}.pdf3d-note{margin:5px 0 2px;font-size:11px;line-height:1.35;color:var(--ink-soft)}.download:disabled,.download-quiet:disabled{opacity:.35;cursor:default}.download-quiet{display:block;margin-top:8px;padding:0;background:none;border:none;color:var(--ink-soft);font-size:12px;letter-spacing:.08em;text-decoration:underline;text-underline-offset:3px}.download:focus-visible,.download-quiet:focus-visible,.check input:focus-visible{outline:1px solid var(--ink);outline-offset:2px}.rail-right .export-note{margin-top:10px;font-size:12px;line-height:1.4;color:var(--cut)}.faces{position:sticky;top:-18px;z-index:2;display:flex;gap:18px;margin:-18px -16px 14px;padding:18px 16px 8px;background:var(--paper)}.detail-block h3,.fold-kicker{padding:0;margin:0;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.detail-block h3{margin:0 0 8px}.detail-fold{border-bottom:1px solid var(--rule)}.detail-fold>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:11px 0;color:inherit;cursor:pointer;list-style:none}.details>.detail-block{margin-top:18px}.detail-fold>summary::-webkit-details-marker,.detail-fold>summary::marker{display:none;content:""}.detail-fold>summary:focus-visible{outline:1px solid var(--ink);outline-offset:2px}.detail-fold[open]>summary .chevron{transform:rotate(180deg)}.detail-fold[open]>summary.fold-kicker{color:var(--ink)}.fold-body{padding-bottom:8px}.detail-group{margin:0;font-family:var(--serif);font-weight:500;font-size:16px;letter-spacing:-.01em;line-height:1.2}.choice{display:grid;grid-template-columns:14px 1fr;gap:8px;align-items:start;margin:0;padding:7px 0;border-bottom:1px solid var(--rule);color:var(--ink-soft);font-size:13px;line-height:1.35;cursor:pointer}.choice.is-on{color:var(--ink)}.choice input,.check input{accent-color:var(--ink)}.choice input{width:14px;height:14px;margin:1px 0 0}.readout{display:grid;grid-template-columns:1fr auto auto;column-gap:10px;align-items:baseline;padding:5px 0;border-bottom:1px solid var(--rule);font-size:13px;line-height:1.35}.readout .code{color:var(--ink-soft);font-size:11px;letter-spacing:.04em}.readout .value{display:flex;justify-content:flex-end;align-items:baseline;gap:6px;min-width:4.6rem;text-align:right;font-variant-numeric:tabular-nums}.readout.is-edit{grid-template-columns:minmax(0,1fr) auto;row-gap:2px}.readout.is-edit .code{grid-column:2;grid-row:1}.readout.is-edit .value{grid-column:1 / -1;grid-row:2}.readout input{width:4.6rem;border:none;border-bottom:1px solid var(--ink);background:transparent;color:inherit;font:inherit;font-size:13px;text-align:right;font-variant-numeric:tabular-nums;padding:1px 0 2px}.readout input:focus{outline:none;border-bottom-color:var(--cut)}.readout.field-bad input{border-bottom-color:var(--cut);color:var(--cut)}.readout button.formula{border:none;background:none;color:var(--ink-soft);font:inherit;font-size:11px;letter-spacing:.02em;padding:0;cursor:pointer}.detail-note{margin:8px 0 0;color:var(--ink-soft);font-size:12px;line-height:1.45}.details .check{margin-bottom:4px}.rail-right button{font-family:inherit}.view-toggle{font:inherit;font-size:13px;color:var(--ink);background:none;border:none;border-bottom:1px solid var(--ink);padding:2px 0 4px;cursor:pointer}.view-toggle:focus-visible{outline:1px solid var(--ink);outline-offset:2px}.view-3d{position:relative;width:100%;height:100%;touch-action:none;background:linear-gradient(#acacac,#e6e6e6)}.view-3d canvas{display:block;width:100%;height:100%;cursor:grab}.fold-range{position:absolute;z-index:2;top:14px;left:18px;display:flex;align-items:center;gap:8px;margin:0;color:var(--ink-soft);font-size:12px;letter-spacing:.04em}.fold-range input[type=range]{appearance:none;width:148px;height:1px;margin:0;background:var(--ink);cursor:pointer}.fold-range input[type=range]::-webkit-slider-thumb{appearance:none;width:11px;height:11px;border:1px solid var(--ink);border-radius:50%;background:var(--sheet)}.fold-range input[type=range]::-moz-range-track{height:1px;background:var(--ink)}.fold-range input[type=range]::-moz-range-thumb{width:11px;height:11px;border:1px solid var(--ink);border-radius:50%;background:var(--sheet)}.fold-note{position:absolute;z-index:2;left:18px;right:18px;bottom:16px;margin:0;color:var(--ink-soft);font-size:13px;line-height:1.4;pointer-events:none}.job-desk{margin-top:18px;padding-top:14px;border-top:1px solid var(--rule)}.open-job{margin:0 0 10px;font-family:var(--serif);font-size:18px;font-weight:500;letter-spacing:-.02em;line-height:1.2}.open-job-number{display:block;margin-bottom:2px;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.job-field{display:block;margin:0 0 8px}.job-field span{display:block;margin-bottom:2px;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.job-field input{width:100%;border:none;border-bottom:1px solid var(--ink);background:transparent;color:var(--ink);font:inherit;font-size:15px;padding:4px 0 6px;border-radius:0}.job-field input:focus{outline:none;border-bottom-color:var(--cut)}.job-note{margin:0 0 10px;font-size:13px;line-height:1.4;color:var(--cut)}.job-note.is-quiet{color:var(--ink-soft)}.job-actions{display:flex;gap:8px}.job-actions button{flex:1;font-family:inherit;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:9px 8px;background:transparent;color:var(--ink);border:1px solid var(--ink);cursor:pointer}.job-actions button.is-on{background:var(--ink);color:var(--sheet)}.job-actions button:focus-visible,.job-field input:focus-visible,.job-row:focus-visible{outline:1px solid var(--ink);outline-offset:2px}.job-desk .download-quiet{margin-top:10px}.job-board{flex:1;min-height:0;display:flex;flex-direction:column}.job-board-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:14px}.job-board-head h2{margin:0;font-family:var(--serif);font-weight:500;font-size:22px;letter-spacing:-.02em}.job-board .search{margin:0 0 12px}.job-table-wrap{flex:1;min-height:0;overflow:auto;border-top:1px solid var(--ink)}.job-head,.job-row{display:grid;grid-template-columns:.7fr 1.4fr 1.2fr .7fr .9fr;gap:8px;align-items:baseline;width:100%}.job-head{padding:8px 10px;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--rule)}.job-row{font:inherit;color:inherit;text-align:left;background:none;border:none;border-bottom:1px solid var(--rule);padding:9px 10px;cursor:pointer}.job-row:hover{background:#ffffffb3}.job-row .col-name{font-family:var(--serif);font-size:16px}.job-row .col-number,.job-row .col-date{font-variant-numeric:tabular-nums}.job-empty{margin:12px 10px 0;color:var(--ink-soft);font-size:14px}@media(max-width:1100px){.workspace{grid-template-columns:280px 1fr 260px}}.mast-account{position:relative;flex:none;text-align:right}.mast-shop{margin:0;font-family:var(--serif);font-size:18px;font-weight:500;letter-spacing:-.02em;line-height:1.1}.mast-person{margin:2px 0 0;color:var(--ink-soft);font-size:12px}.mast-links{display:flex;justify-content:flex-end;gap:14px;margin-top:6px}.shop-entry{margin-bottom:12px}.shop-entry .detail-note{margin:0 0 10px}.account-slip{position:absolute;z-index:6;right:0;top:calc(100% + 8px);width:260px;padding:14px 14px 12px;text-align:left;background:var(--sheet);border:1px solid var(--ink)}.account-slip.is-key{width:360px}.erp-key{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.45;word-break:break-all;-webkit-user-select:all;user-select:all}.job-signed-out{color:var(--ink-soft);font-size:14px;line-height:1.45}.job-signed-out p{margin:0 0 10px}.import-veil{position:absolute;z-index:4;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;background:#f3efe6d1}.import-card{width:min(420px,100%);padding:22px 22px 18px;background:var(--sheet);border:1px solid var(--ink)}.import-card h2{margin:0 0 8px;font-family:var(--serif);font-weight:500;font-size:22px;letter-spacing:-.02em}.import-card p{margin:0 0 14px;font-size:14px;line-height:1.45}.erp{min-height:100%;background:radial-gradient(circle at 8% -18%,#fff 0,transparent 34%),#f3efe6;color:#1c1915;font-family:Public Sans,Avenir Next,Segoe UI,sans-serif}.erp-sheet{max-width:920px;margin:0 auto;padding:52px 44px 72px}.erp-kicker{margin:0 0 8px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#5c564c}.erp h1{margin:0 0 36px;padding-bottom:14px;border-bottom:1px solid #1c1915;font-family:Newsreader,Iowan Old Style,Palatino,serif;font-weight:500;font-size:36px;letter-spacing:-.03em;line-height:1}.erp-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:start}.erp-write{padding-right:40px;border-right:1px solid #d9d2c5}.erp h2{margin:0 0 22px;font-family:Newsreader,Iowan Old Style,Palatino,serif;font-weight:500;font-size:26px;letter-spacing:-.02em;line-height:1.15}.erp-field{display:grid;gap:4px;margin:0 0 16px}.erp-field>span,.erp-field>label{font-size:12px;letter-spacing:.04em;color:#5c564c}.erp-measures{display:grid;grid-template-columns:1fr 1fr;column-gap:22px}.erp-field input{width:100%;border:none;border-bottom:1px solid #1c1915;border-radius:0;background:transparent;color:inherit;font:inherit;font-size:18px;font-variant-numeric:tabular-nums;padding:6px 0 8px}.erp-field input::placeholder{color:#8a8378;font-size:15px}.erp-field input:focus{outline:none;border-bottom-color:#9e2b1e}.erp-field input:focus-visible,.erp-go:focus-visible,.erp-again:focus-visible,.erp-card:focus-visible,.erp-see:focus-visible{outline:1px solid #1c1915;outline-offset:3px}.erp-chosen{margin:2px 0 16px}.erp-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:280px;overflow:auto;margin:0 0 18px}.erp-card{display:flex;flex-direction:column;align-items:stretch;width:100%;margin:0;padding:8px 8px 10px;border:1px solid #d9d2c5;border-radius:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.erp-card.is-on,.erp-card:hover{border-color:#1c1915}.erp-card.is-on{background:#fbfaf6}.erp-die{display:block;width:100%;height:64px;overflow:hidden;pointer-events:none}.erp-die-empty{background:transparent}.erp-card>span{display:block;margin-top:6px;font-family:Newsreader,Iowan Old Style,Palatino,serif;font-size:15px;font-weight:500;letter-spacing:-.01em;line-height:1.25;overflow-wrap:break-word}.erp-chosen .erp-card{display:grid;grid-template-columns:108px minmax(0,1fr);align-items:center;column-gap:12px;padding:8px 12px}.erp-chosen .erp-die{height:76px}.erp-chosen .erp-card>span{margin-top:0;font-size:18px}.erp-empty{margin:0 0 16px;color:#5c564c;font-size:14px}.erp-go{margin-top:10px;border:1px solid #1c1915;border-radius:0;background:#1c1915;color:#fbfaf6;font:inherit;font-size:15px;padding:10px 16px;cursor:pointer}.erp-go:hover{background:#2c2823}.erp-receipt p{margin:0 0 14px;max-width:36ch;font-family:Newsreader,Iowan Old Style,Palatino,serif;font-size:20px;line-height:1.35}.erp-order-label{margin:0 0 2px;font-size:12px;letter-spacing:.04em;color:#5c564c}.erp-order-num{margin:0 0 14px;font-size:18px;font-variant-numeric:tabular-nums}.erp-order-name{margin:0 0 4px;font-family:Newsreader,Iowan Old Style,Palatino,serif;font-size:22px;font-weight:500;letter-spacing:-.02em;line-height:1.2}.erp-order-measures{margin:0;color:#5c564c;font-size:15px;line-height:1.4}.erp-owned{margin:22px 0 12px;font-family:Newsreader,Iowan Old Style,Palatino,serif;font-size:22px;font-weight:500;letter-spacing:-.02em;line-height:1.3}.erp-file{padding:10px 12px 12px;border:1px solid #d9d2c5;background:#fbfaf6}.erp-file-name{margin:0;font-size:15px;line-height:1.35;overflow-wrap:break-word}.erp-file-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:4px 0 0;color:#5c564c;font-size:13px}.erp-see{flex:none;margin:0;padding:0;border:none;background:none;color:#8a8378;font:inherit;font-size:13px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.erp-see:hover{color:#1c1915}.erp-again{margin-top:18px;padding:2px 0 4px;border:none;border-bottom:1px solid #1c1915;border-radius:0;background:none;color:#1c1915;font:inherit;font-size:16px;cursor:pointer}.erp-again:hover{color:#9e2b1e;border-bottom-color:#9e2b1e}.erp-note{margin-top:48px;padding-top:20px;border-top:1px solid #d9d2c5;max-width:68ch}.erp-note p{margin:0 0 8px;color:#5c564c;font-size:14px;line-height:1.45}@media(max-width:760px){.erp-sheet{padding:28px 20px 48px}.erp-columns{grid-template-columns:1fr;gap:28px}.erp-write{padding-right:0;padding-bottom:28px;border-right:none;border-bottom:1px solid #d9d2c5}.erp h1{font-size:32px}}@media(prefers-reduced-motion:no-preference){.erp-receipt p,.erp-order{animation:erp-arrive .18s ease}}@keyframes erp-arrive{0%{opacity:0}to{opacity:1}}
