:root{color:#222825;font-synthesis:none;text-rendering:optimizelegibility;--canvas:#f7f3ed;--surface:#fffdf9;--surface-soft:#faf6ef;--line:#e8e0d5;--line-strong:#d8cdbc;--text:#222825;--muted:#6f736f;--copper:#bf720d;--copper-dark:#9b5907;--copper-soft:#fbf0de;--teal:#147569;--teal-soft:#eaf5f1;--danger:#d74435;--danger-soft:#fff0ed;--shadow:0 12px 36px #4c3a1f0f;--radius:18px;--control-height:40px;--control-radius:10px;--control-border:#d9cdbc;--control-border-hover:#cdbda8;background:#f7f3ed;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{background:var(--canvas)}body{background:radial-gradient(circle at 50% -20%, #fff 0, var(--canvas) 48%);min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}input,select,textarea{border:1px solid var(--control-border);border-radius:var(--control-radius);width:100%;color:var(--text);background:#fff;outline:none;padding:8px 12px;transition:border-color .18s,box-shadow .18s,background-color .18s;box-shadow:inset 0 1px #ffffffbf}input,select{min-height:var(--control-height)}textarea{min-height:86px}input:hover,select:hover,textarea:hover{border-color:var(--control-border-hover)}input:focus,select:focus,textarea:focus{border-color:var(--copper);box-shadow:0 0 0 2px #bf720d1f}textarea{resize:vertical}.app-shell{min-height:100vh}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:30;background:#fffdf9f0;justify-content:space-between;align-items:stretch;height:72px;padding:0 28px;display:flex;position:sticky;top:0}.brand{color:#161b18;letter-spacing:-.02em;background:0 0;border:0;align-items:center;gap:12px;font-size:22px;font-weight:750;display:flex}.brand-mark{width:37px;height:37px;color:var(--copper);background:var(--copper-soft);border-radius:11px;place-items:center;display:grid;transform:rotate(-8deg)}.topbar-market-price{color:var(--muted);grid-template-columns:auto minmax(140px,210px);align-self:center;align-items:center;gap:7px 9px;margin-left:auto;margin-right:18px;font-size:11px;font-weight:650;display:grid}.topbar-market-price input{height:34px;min-height:34px;color:var(--copper-dark);background:#fffaf3;border-color:#ead7b9;font-size:13px;font-weight:700}.desktop-nav{align-items:stretch;gap:5px;display:flex}.nav-item{color:#525854;background:0 0;border:0;align-items:center;gap:8px;padding:0 20px;font-weight:560;display:flex;position:relative}.nav-item:after{content:"";background:0 0;height:2px;position:absolute;bottom:0;left:18px;right:18px}.nav-item:hover,.nav-item.active{color:var(--copper-dark)}.nav-item.active:after{background:var(--copper)}.mobile-nav{display:none}.workspace{grid-template-columns:minmax(250px,.78fr) minmax(0,1.75fr) minmax(300px,.95fr);align-items:start;gap:16px;width:min(1540px,100% - 40px);margin:22px auto 60px;display:grid}.panel{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fffdf9f2}.quote-product-tabs{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.quote-product-tabs button{border:1px solid var(--line);color:#535a55;text-align:left;background:#fffdf9eb;border-radius:13px;min-height:46px;padding:8px 12px;transition:border-color .16s,background .16s,color .16s,transform .16s;box-shadow:0 6px 18px #4c3a1f0b}.quote-product-tabs button:hover{color:var(--copper-dark);border-color:#d6bd97;transform:translateY(-1px)}.quote-product-tabs button.active{background:var(--copper-soft);color:var(--copper-dark);border-color:#bf720d73}.quote-product-tabs strong{margin-bottom:1px;font-size:14px;line-height:1.25;display:block}.quote-product-tabs small{color:inherit;opacity:.72;font-size:10px;line-height:1.25}.quote-placeholder-panel{grid-column:1/-1;padding:22px}.quote-placeholder-panel h2{margin:0 0 8px;font-size:19px}.quote-placeholder-panel p{color:var(--muted);margin:0;font-size:13px;line-height:1.7}.block-product-selected>.requirements-panel,.block-product-selected>.material-panel,.block-product-selected>.result-panel,.block-product-selected>.mobile-action-bar{display:none}.requirements-panel,.material-panel,.result-panel{padding:20px}.result-panel{position:sticky;top:94px}.panel-heading{border-bottom:1px solid var(--line);min-height:36px;color:var(--copper);align-items:center;gap:10px;margin-bottom:18px;padding-bottom:16px;display:flex}.panel-heading h2{color:var(--text);letter-spacing:-.01em;margin:0;font-size:18px}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.requirements-panel .field-grid{grid-template-columns:1fr}.form-field{flex-direction:column;gap:7px;margin-bottom:14px;display:flex}.field-label-row{justify-content:space-between;align-items:baseline;gap:8px;min-width:0;display:flex}.field-label{color:#555b57;font-size:13px;font-weight:620}.field-hint{color:var(--muted);font-size:11px;line-height:1.45}.field-hint.inline{text-align:right;white-space:nowrap}.important-hole-field .field-label,.important-hole-field input{color:var(--danger);font-weight:850}.important-hole-field .field-hint{color:#b65245;font-weight:700}.processing-fee-field .field-label,.processing-fee-field input{color:#d86d00;font-weight:850}.process-row{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));align-items:start;gap:14px;padding:2px 0 16px;display:grid}.process-row input,.process-row select{height:var(--control-height)}.process-row .form-field{min-width:0}.waste-range-field{align-self:end;align-items:flex-start;width:100%;min-width:0;max-width:100%}.add-length-control{display:block;position:relative}.add-length-control input{padding-right:46px}.add-length-control button{width:32px;height:calc(var(--control-height) - 8px);border:1px solid var(--copper);background:var(--copper);color:#fff;border-radius:8px;place-items:center;display:grid;position:absolute;top:4px;right:4px;box-shadow:0 6px 14px #bf720d24}.add-length-control button:disabled{border-color:var(--line-strong);color:#a69b8c;box-shadow:none;background:#f4eee5}.range-inputs{grid-template-columns:minmax(74px,1fr) auto minmax(74px,1fr) auto;align-items:center;gap:4px;width:100%;display:grid}.range-inputs span,.range-inputs small{color:var(--muted)}.range-inputs input{text-align:center}.validation-box{color:var(--danger);background:var(--danger-soft);border:1px solid #f5c8c0;border-radius:12px;gap:10px;margin-bottom:14px;padding:12px;font-size:13px;display:flex}.validation-box p{margin:0 0 4px}.candidate-table{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:hidden}.candidate-head,.candidate-row{grid-template-columns:1.05fr .95fr .85fr 1fr .85fr;align-items:center;gap:12px;display:grid}.candidate-head{color:var(--muted);border-bottom:1px solid var(--line);background:#fbf9f5;padding:10px 16px;font-size:12px}.candidate-row{text-align:left;width:100%;color:var(--text);background:#fff;border:0;border-bottom:1px solid #eee8df;padding:15px 16px;transition:background .17s,box-shadow .17s}.candidate-row:last-child{border-bottom:0}.candidate-row:hover{background:#fdfaf5}.candidate-row.selected{z-index:1;box-shadow:inset 0 0 0 1.5px var(--teal);background:linear-gradient(90deg,#f0f8f5,#fbfdfc);position:relative}.candidate-row.warning .waste-value{color:var(--danger)}.candidate-row small{color:var(--muted);margin-left:4px;font-size:11px}.length-cell{align-items:center;font-size:18px;font-weight:650;display:flex}.radio-dot{border:1.5px solid #bebcb7;border-radius:50%;width:17px;height:17px;margin-right:10px;position:relative}.selected .radio-dot{border-color:var(--teal);background:var(--teal)}.selected .radio-dot:after{content:"";background:#fff;border-radius:50%;position:absolute;inset:5px}.status-cell{color:var(--muted);justify-content:flex-end;align-items:center;gap:5px;font-size:12px;display:flex}.selected .status-cell{color:var(--teal);font-weight:700}.warning .status-cell{color:var(--danger)}.recommendation{color:var(--teal);background:var(--teal-soft);border:1px solid #cae6df;border-radius:12px;align-items:flex-start;gap:9px;margin-top:14px;padding:12px 14px;font-size:13px;line-height:1.55;display:flex}.block-dimension-section{background:#fbf8f2;border:1px solid #e5ddd1;border-radius:15px;margin:10px 0 14px;padding:12px}.block-dimension-section+.block-dimension-section{margin-top:0}.block-dimension-section h3{color:var(--copper-dark);letter-spacing:-.01em;align-items:center;gap:7px;margin:0 0 12px;font-size:13px;display:flex}.block-dimension-section h3:before{content:"";opacity:.45;background:currentColor;border-radius:999px;width:7px;height:7px}.product-dimensions{background:linear-gradient(#f7fcfa,#f1f8f5);border-color:#cfe5de}.product-dimensions h3{color:var(--teal)}.block-dimension-row{grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:12px;display:grid}.block-dimension-row .form-field{min-width:0;margin-bottom:0}.block-dimension-row input{width:100%}.block-notes-field textarea{resize:none;height:40px;min-height:40px}.magnet-face-field{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0;position:relative}.magnet-face-field .field-label{color:var(--danger);letter-spacing:-.01em;font-weight:850}.magnet-face-field input{border-color:var(--control-border);color:var(--danger);background:#fff;font-weight:850;box-shadow:inset 0 1px #ffffffbf}.magnet-face-field input:focus{border-color:var(--danger);box-shadow:0 0 0 3px #d744351f}.block-parameter-heading h2{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.block-inline-rule{color:var(--muted);letter-spacing:0;align-items:center;gap:6px;font-size:11px;font-weight:650;display:inline-flex}.block-inline-rule:before{content:"规则";background:var(--teal-soft);color:var(--teal);border-radius:999px;padding:2px 5px;font-size:10px;font-weight:800}.block-process-row{grid-template-columns:minmax(112px,.7fr) minmax(122px,.75fr) minmax(180px,1.4fr);align-items:end;gap:18px}.block-kerf-field{width:100%;min-width:0;max-width:none}.block-kerf-field select{width:100%;min-width:0;max-width:none;padding-right:34px}.block-material-price-field{max-width:none}.block-yield-field{width:100%;min-width:0}.block-yield-field .inline-percent-input{min-height:var(--control-height);border:1px solid var(--control-border);border-radius:var(--control-radius);color:var(--teal);background:#fff;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px;padding:8px 10px;display:grid;box-shadow:inset 0 1px #ffffffbf}.block-yield-field input{border:1px solid var(--control-border);width:100%;height:auto;min-height:0;color:var(--text);border:0;padding:0;font-size:16px;font-weight:650}.block-yield-field input:focus{box-shadow:none}.block-material-input-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.block-required-inline{color:var(--muted);white-space:nowrap;align-self:center;font-size:11px;font-weight:700}.block-parameter-note{color:#315f58;background:#f3fbf8;border:1px solid #d9ebe6;border-radius:10px;margin:-4px 0 12px;padding:7px 9px;font-size:11px;line-height:1.5;display:inline-block}.block-plan-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,370px),1fr));align-items:stretch;gap:12px;display:grid}.block-plan-card{border:1px solid var(--line);background:#fff;border-radius:16px;grid-template-rows:auto auto 1fr;min-width:0;padding:14px;display:grid;box-shadow:0 8px 20px #4c3a1f09}.block-plan-card.selected{background:linear-gradient(#f4fbf8,#fff);border-color:#147569b8;box-shadow:inset 0 0 0 1px #1475692e,0 10px 22px #14756912}.block-plan-title{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.block-plan-title h3{color:var(--text);overflow-wrap:anywhere;margin:0 0 3px;font-size:15px;line-height:1.25}.block-plan-title h3 span{color:var(--copper-dark);font-weight:900}.block-plan-title p{color:var(--muted);margin:0;font-size:11px;line-height:1.45}.block-plan-title>span{background:var(--teal);color:#fff;white-space:nowrap;border-radius:999px;flex:0 auto;align-items:center;gap:4px;min-width:0;padding:5px 8px;font-size:10px;font-weight:750;display:inline-flex}.block-axis-table{background:#fffdf9;border:1px solid #eee2d2;border-radius:12px;margin-bottom:11px;overflow:hidden}.block-axis-head,.block-axis-row{grid-template-columns:minmax(74px,1fr) repeat(3,minmax(0,.9fr));align-items:center;gap:8px;display:grid}.block-axis-head{color:var(--muted);background:#fbf9f5;padding:8px 10px;font-size:10px;font-weight:700}.block-axis-head span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.block-axis-row{border-top:1px solid #f0e7dc;padding:9px 10px;font-size:12px}.block-axis-row span{color:#4d5550;gap:1px;min-width:0;font-weight:700;display:grid}.block-axis-row small{color:var(--muted);font-size:9px;font-weight:550}.block-axis-row strong{text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;gap:1px;min-width:0;display:grid;overflow:hidden}.block-axis-value-label{color:var(--muted);font-size:9px;font-style:normal;font-weight:750;line-height:1;display:none}.block-axis-total-row{background:#fff4cf;border-top:1px solid #e6d5bd;grid-template-columns:minmax(86px,1.05fr) minmax(0,2.4fr);align-items:baseline;gap:8px;padding:9px 10px;display:grid}.block-axis-total-row span{color:#44504b;font-size:12px;font-weight:850}.block-axis-total-row strong{text-align:center;color:#1f2925;font-variant-numeric:tabular-nums;margin:0;font-size:13px;font-weight:900}.block-result-tags{flex-wrap:wrap;gap:6px;min-width:0;margin:0 0 10px;display:flex}.block-data-tag{color:#59605b;white-space:normal;overflow-wrap:anywhere;background:#fffaf3;border:1px solid #e3d8c8;border-radius:999px;min-width:0;max-width:100%;padding:4px 7px;font-size:10px;line-height:1.2}.block-plan-metrics{align-self:end;gap:9px;margin:0;display:grid}.block-plan-metric-group{background:#fffaf3;border:1px solid #eee2d2;border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:9px;display:grid}.block-plan-metric-group.plating{background:#f4fbf8;border-color:#d9ebe6}.block-plan-metric-title{color:var(--copper-dark);grid-column:1/-1;font-size:12px;font-weight:850}.block-plan-metric-group.plating .block-plan-metric-title{color:var(--teal)}.block-plan-metric-group div{background:#fff;border:1px solid #eee2d2;border-radius:10px;min-width:0;padding:7px 8px}.block-plan-metric-group.plating div{border-color:#d9ebe6}.block-plan-metric-group dt{color:var(--muted);margin-bottom:2px;font-size:10px}.block-plan-metric-group dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0;font-size:12px;font-weight:800}.block-material-piece-cost,.block-plating-piece-cost{box-shadow:inset 3px 0 #bf720d73;background:#fff7ed!important;border-color:#e8d4bf!important}.block-material-piece-cost dt,.block-plating-piece-cost dt{color:var(--copper-dark);font-weight:800}.block-selected-summary{background:var(--teal-soft);border:1px solid #cfe5de;border-radius:11px;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:4px 8px;margin:10px 0;padding:8px 10px;display:grid}.block-selected-summary span{color:var(--muted);font-size:11px;font-weight:700}.block-selected-summary strong{color:var(--teal);text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-top:0;font-size:14px;display:block;overflow:hidden}.block-selected-summary p{color:#315f58;grid-column:1/-1;margin:0;font-size:11px;line-height:1.45}.block-cost-list{margin:10px 0 14px;display:block}.block-cost-list div{background:0 0;border:0;border-bottom:1px solid #efe7dd;border-radius:0;justify-content:space-between;align-items:baseline;gap:10px;min-height:0;padding:9px 0;display:flex;position:relative}.block-cost-list dt{color:#5b605c;min-width:0;font-size:13px;line-height:1.3}.block-cost-list dd{text-align:right;white-space:normal;overflow-wrap:anywhere;max-width:58%;margin:0;font-size:14px;font-weight:750}.block-cost-list .cost-total{background:var(--teal-soft);border:1px dashed #cfe5de;border-radius:12px;grid-column:auto;margin-top:5px;padding:10px;display:flex}.block-cost-list .cost-total dd{max-width:52%;color:var(--teal);white-space:normal;font-size:22px}.block-result-markup{border-top:1px solid var(--line);grid-template-columns:auto minmax(96px,136px);align-items:center;gap:8px;margin:6px 0 10px;padding-top:10px;display:grid}.block-result-markup .field-label-row{justify-content:flex-start}.block-result-markup .field-label{min-height:var(--control-height);align-items:center;display:flex}.block-result-markup .percent-input{justify-content:flex-end}.block-result-markup input{width:100%}.block-summary-lines{gap:3px;margin-top:3px;display:grid}.block-summary-line{overflow-wrap:anywhere;margin:0!important}.price-source{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:baseline;gap:6px;padding-bottom:18px;display:grid}.price-source strong{color:var(--copper-dark);font-size:24px}.price-source strong small{margin-left:5px;font-size:12px}.price-source em{color:var(--muted);grid-column:1/-1;font-size:11px;font-style:normal}.detail-block{border:1px solid var(--line);background:#fffaf3;border-radius:13px;margin:14px 0;padding:12px}.detail-block h3{color:var(--copper-dark);margin:0 0 10px;font-size:14px}.hole-detail-block{background:#f4fbf8;border-color:#cfe5de}.hole-detail-block h3{color:var(--teal)}.hole-detail-block .detail-grid div{border-color:#d9ebe6}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.detail-grid div{background:#fff;border:1px solid #eee2d2;border-radius:9px;min-width:0;padding:8px 9px}.detail-grid dt{color:var(--muted);margin-bottom:4px;font-size:11px}.detail-grid dd{font-variant-numeric:tabular-nums;margin:0;font-size:13px;font-weight:700}.detail-edit.yield-rate-card{padding-left:13px;transition:border-color .18s,box-shadow .18s;position:relative;overflow:hidden;background:#fff!important;border-color:#cbe6df!important}.detail-edit.yield-rate-card:before{content:"";background:var(--teal);border-radius:0 3px 3px 0;width:3px;position:absolute;inset:7px auto 7px 0}.detail-edit.yield-rate-card:hover{border-color:#9fcfc4!important}.detail-edit.yield-rate-card:focus-within{box-shadow:0 0 0 2px #1475691a;border-color:var(--teal)!important}.inline-percent-input{align-items:baseline;gap:6px;display:inline-flex}.inline-percent-input input{width:64px;height:auto;min-height:0;box-shadow:none;text-align:left;font-size:13px;font-weight:700;line-height:inherit;appearance:textfield;background:0 0;border:0;border-radius:0;padding:0}.inline-percent-input input::-webkit-inner-spin-button{appearance:none;margin:0}.inline-percent-input input::-webkit-outer-spin-button{appearance:none;margin:0}.inline-percent-input input:focus{box-shadow:none;border:0}.inline-percent-input .percent-unit{color:var(--teal);font-weight:700}.cost-list{margin:10px 0 20px}.cost-list div{justify-content:space-between;align-items:baseline;padding:9px 0;display:flex;position:relative}.cost-list dt{color:#5b605c;font-size:13px}.cost-list dd{font-variant-numeric:tabular-nums;margin:0}.cost-list .cost-total{border-top:1px dashed var(--line-strong);margin-top:8px;padding-top:16px}.cost-total dt{color:var(--text);font-weight:700}.cost-total dd{color:var(--teal);align-items:baseline;gap:8px;font-size:24px;font-weight:750;display:inline-flex}.tax-state-badge{color:var(--teal);white-space:nowrap;vertical-align:baseline;background:#14756914;border:1px solid #14756938;border-radius:999px;justify-content:center;align-items:center;padding:2px 7px;font-size:11px;font-weight:750;line-height:1.45;display:inline-flex;transform:translateY(-2px)}.product-summary{border:1px solid #e5ddd1;border-left:3px solid var(--teal);color:#555d58;background:#fbf8f2;border-radius:9px;margin:-7px 0 16px;padding:8px 10px;font-size:11px;line-height:1.6}.product-summary span{color:var(--teal);font-weight:700}.product-summary p{overflow-wrap:anywhere;margin:2px 0 0}.formula-value{cursor:help;border-bottom:1px dotted #147569a6;outline:none;align-items:center;display:inline-flex;position:relative}.formula-value:after{content:attr(data-formula);z-index:90;color:#26413c;white-space:normal;text-align:left;opacity:0;visibility:hidden;pointer-events:none;background:#fcfffcfa;border:1px solid #c9dfd9;border-radius:12px;width:min(360px,100vw - 40px);max-width:calc(100vw - 40px);max-height:42vh;padding:11px 12px;font-size:12px;font-weight:560;line-height:1.65;transition:opacity .16s,transform .16s,visibility .16s;position:absolute;bottom:calc(100% + 9px);right:0;overflow:auto;transform:translateY(4px);box-shadow:0 12px 28px #1f352d29}.formula-value:before{content:"";z-index:91;opacity:0;visibility:hidden;pointer-events:none;background:#fcfffcfa;border-bottom:1px solid #c9dfd9;border-right:1px solid #c9dfd9;width:10px;height:10px;transition:opacity .16s,visibility .16s;position:absolute;bottom:calc(100% + 3px);right:18px;transform:rotate(45deg)}.formula-value:hover:after,.formula-value:focus:after,.formula-value:active:after,.formula-value:hover:before,.formula-value:focus:before,.formula-value:active:before{opacity:1;visibility:visible;transform:translateY(0)}.percent-input{align-items:center;gap:8px;display:flex}.percent-input input{text-align:right}.markup-field{align-items:flex-end}.markup-field .field-label{color:var(--danger);text-align:right;font-weight:750}.markup-field .percent-input{width:auto;color:var(--danger);justify-content:flex-end;font-weight:750}.markup-field .percent-input input{width:clamp(120px,28vw,180px);max-width:55vw;color:var(--danger);flex:none;font-weight:750}.quote-highlight{border-top:1px solid var(--line);grid-template-columns:1fr auto auto;align-items:baseline;margin-top:4px;padding:16px 0 8px;display:grid}.quote-highlight strong{color:var(--copper-dark);font-variant-numeric:tabular-nums;align-items:baseline;gap:8px;font-size:30px;display:inline-flex}.quote-highlight .tax-state-badge{color:var(--copper-dark);background:#bf700917;border-color:#a961083d}.quote-highlight small{color:var(--copper-dark);margin-left:5px}.purchase-info{background:#f4fbf8;border:1px solid #cfe5de;border-radius:12px;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0 9px;padding:8px 10px;display:grid}.purchase-info>div{justify-content:space-between;align-items:baseline;gap:8px;min-width:0;display:flex}.purchase-info>div+div{border-left:1px solid #d9ebe6;padding-left:10px}.purchase-info span{color:#5f6d68;white-space:nowrap;font-size:11px;font-weight:650}.purchase-info strong{color:var(--teal);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:17px;font-weight:850}.compact-purchase-info{gap:0;padding:6px 8px}.purchase-info.compact-purchase-info>div{grid-template-columns:auto minmax(0,1fr);justify-content:stretch;align-items:baseline;gap:8px;padding:2px 8px;display:grid}.purchase-info.compact-purchase-info>div+div{border-left:1px solid #cfe5de;padding-left:8px}.compact-purchase-info span{white-space:nowrap}.compact-purchase-info strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.quote-total{background:#fbf5eb;border:1px solid #ead8bc;border-radius:12px;justify-content:space-between;align-items:baseline;margin:13px 0;padding:14px;display:flex}.quote-total span{color:var(--muted);font-size:12px}.quote-total strong{color:#9b620d;font-size:20px}.primary-button{background:var(--copper);color:#fff;border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;padding:13px 17px;font-weight:700;transition:transform .15s,background .15s;display:flex;box-shadow:0 7px 18px #a961082e}.primary-button:hover{background:var(--copper-dark);transform:translateY(-1px)}.primary-button.compact{width:auto;padding:10px 17px}.saved-message,.success-text{color:var(--teal);justify-content:center;align-items:center;gap:7px;padding:10px;font-size:13px;display:flex}.secondary-button{border:1px solid var(--line-strong);color:#484e4a;background:#fff;border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:10px 12px;display:flex}.secondary-button:hover{color:var(--copper-dark);border-color:#c89958}.empty-result,.empty-state{text-align:center;color:var(--muted);padding:70px 20px}.mobile-action-bar{display:none}.content-page{width:min(1180px,100% - 40px);margin:32px auto 90px}.page-title{justify-content:space-between;align-items:end;margin-bottom:24px;display:flex}.page-title>div{color:var(--copper);align-items:center;gap:11px;display:flex}.page-title h1{color:var(--text);margin:0;font-size:27px}.page-title p{color:var(--muted);margin:0;font-size:13px}.toolbar{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.history-toolbar-actions{color:var(--muted);justify-content:flex-end;align-items:center;gap:7px;font-size:11px;line-height:1;display:flex}.history-count{align-items:center;min-height:32px;line-height:1.25;display:inline-flex}.history-manage-toggle{border:1px solid var(--line-strong);color:#555;white-space:nowrap;background:#fff;border-radius:10px;justify-content:center;align-items:center;gap:4px;min-height:32px;padding:0 9px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.history-manage-toggle.active{border-color:var(--copper);color:var(--copper-dark);background:var(--copper-soft)}.search-box{border:1px solid var(--line);width:min(340px,100%);color:var(--muted);background:#fff;border-radius:11px;align-items:center;gap:7px;padding:0 10px;display:flex}.search-box input{box-shadow:none;background:0 0;border:0}.history-filters{border:1px solid var(--line);background:#fffdf9b8;border-radius:13px;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) minmax(0,.9fr) auto;gap:7px;margin:-2px 0 9px;padding:8px;display:grid}.history-filters label{gap:3px;display:grid}.history-filters span{color:var(--muted);font-size:10px;font-weight:700}.history-filters input{height:32px;min-height:32px;padding:6px 9px;font-size:12px}.history-filter-actions{align-items:end;gap:6px;display:flex}.history-filter-actions .icon-button{border:1px solid var(--line-strong);color:#555;background:#fff;border-radius:10px;place-items:center;width:32px;height:32px;display:grid}.history-filter-actions .icon-button.primary{background:var(--copper);border-color:var(--copper);color:#fff}.history-manage-bar{justify-content:space-between;align-items:center;gap:7px;margin:-3px 0 9px;display:flex}.history-manage-bar .secondary-button{border-radius:10px;width:auto;min-height:30px;padding:6px 10px;font-size:11px}.history-list{gap:8px;display:grid}.history-card{background:var(--surface);border:1px solid var(--line);border-radius:13px;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:7px 10px;padding:8px 10px;display:grid}.history-card:not(:has(.history-select)){grid-template-columns:minmax(0,1fr) auto}.history-card.expanded{align-items:start}.history-select{grid-row:1/span 2;justify-content:center;align-self:center;align-items:center;display:flex}.history-select input{width:17px;height:17px;min-height:17px;box-shadow:none;padding:0}.history-main>span{color:var(--muted);font-size:11px}.history-main h2{letter-spacing:-.03em;margin:1px 0;font-size:17px}.history-main p{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:min(520px,62vw);margin:0;font-size:11px;line-height:1.35;overflow:hidden}.history-price{text-align:right;padding-top:7px}.history-price em{color:var(--muted);margin-bottom:2px;font-size:10px;font-style:normal;font-weight:650;display:block}.history-price strong{color:var(--copper-dark);font-size:20px}.history-price span{margin-left:4px;font-size:11px}.history-price small{color:var(--muted);margin-top:0;font-size:11px;display:block}.history-actions{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.history-select+.history-main~.history-actions{grid-column:2/-1}.history-actions button{border:1px solid var(--line);color:#555;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:3px;min-height:28px;padding:5px 4px;font-size:10px;line-height:1.1;display:flex}.history-detail{border-top:1px dashed var(--line-strong);grid-column:1/-1;margin-top:0;padding-top:9px}.history-detail-heading{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:7px;display:flex}.history-detail h3{color:var(--teal);margin:0;font-size:14px}.history-detail-heading span{color:var(--muted);font-size:10px}.history-detail dl{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0;display:grid}.history-detail dl div{border:1px solid var(--line);background:#fbf8f2;border-radius:8px;padding:6px 7px}.history-detail dt{color:var(--muted);margin-bottom:3px;font-size:9px}.history-detail dd{color:var(--text);font-variant-numeric:tabular-nums;margin:0;font-size:12px;font-weight:650}.history-notes{background:var(--teal-soft);color:#315f58;white-space:pre-wrap;border-radius:9px;margin:8px 0 0;padding:7px 9px;font-size:11px}.danger,.text-danger{color:var(--danger)!important}.data-layout{grid-template-columns:175px 1fr;align-items:start;gap:18px;display:grid}.data-tabs{gap:5px;display:grid;position:sticky;top:96px}.data-tabs button{text-align:left;color:#59605b;background:0 0;border:0;border-radius:10px;padding:11px 13px}.data-tabs button.active{color:var(--copper-dark);background:var(--copper-soft);font-weight:700}.data-editor{min-width:0;padding:22px}.editor-heading,.editor-footer{justify-content:space-between;align-items:center;display:flex}.editor-heading{border-bottom:1px solid var(--line);margin-bottom:16px;padding-bottom:14px}.editor-heading h2{margin:0;font-size:19px}.editor-footer{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;margin-top:18px;padding-top:17px}.editable-list{gap:8px;display:grid}.editable-row{grid-template-columns:1fr auto;align-items:center;gap:10px;display:grid}.editable-row.process-edit{grid-template-columns:minmax(180px,1fr) auto auto}.editable-row.kerf-edit{grid-template-columns:minmax(180px,1fr) auto auto auto}.editable-row.length-edit{grid-template-columns:auto minmax(240px,1fr) auto}.editable-row.three{grid-template-columns:1fr 180px 90px}.editable-row label{color:var(--muted);align-items:center;gap:7px;font-size:13px;line-height:1;display:flex}.editable-row label input{width:auto}.value-with-unit{white-space:nowrap;min-width:0;color:var(--muted);align-items:center;gap:7px;display:inline-flex}.value-with-unit input{width:clamp(82px,12vw,132px);min-width:0}.length-edit .value-with-unit:first-child input{width:78px}.length-edit .value-with-unit:nth-child(2),.length-edit .value-with-unit:nth-child(2) input{width:100%}.row-actions,.sort-buttons{justify-content:flex-end;align-items:center;gap:6px;display:inline-flex}.row-actions{align-self:center;gap:8px}.sort-buttons{color:var(--muted)}.drag-handle{cursor:grab;color:#87908b;touch-action:none}.drag-handle:active{cursor:grabbing;color:var(--teal)}.dragging-row{opacity:.72;box-shadow:0 8px 24px #14756929, inset 0 0 0 1.5px var(--teal)!important}.icon-button:disabled{opacity:.25}.price-table-wrap{border:1px solid var(--line);border-radius:12px;max-height:62vh;overflow:auto}.data-table{border-collapse:collapse;width:100%;min-width:800px}.data-table th{z-index:2;text-align:left;color:var(--muted);background:#f8f4ed;padding:11px;font-size:12px;position:sticky;top:0}.data-table td{border-top:1px solid var(--line);padding:7px}.data-table td:first-child{align-items:center;gap:5px;display:flex}.data-table input,.data-table select{padding:8px}.data-table td:first-child input{width:70px}.icon-button{background:0 0;border:0;padding:7px}.settings-grid{grid-template-columns:1.15fr .85fr;align-items:start;gap:16px;display:grid}.settings-card{padding:22px}.settings-card h2{margin:0 0 20px;font-size:19px}.backup-card{grid-column:2}.backup-card p{color:var(--muted);font-size:13px;line-height:1.7}.stack-actions{gap:9px;display:grid}.text-danger{background:0 0;border:0;justify-content:center;align-items:center;gap:6px;padding:10px;display:flex}.settings-save{color:var(--teal);justify-content:flex-end;align-items:center;gap:13px;margin-top:18px;display:flex}.app-loading,.app-error{min-height:100vh;color:var(--muted);justify-content:center;align-items:center;gap:12px;display:flex}.app-loading span{border:2px solid var(--line);border-top-color:var(--copper);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}.page-enter{animation:.24s both enter}@keyframes spin{to{transform:rotate(360deg)}}@keyframes enter{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media (width<=1100px){.workspace{grid-template-columns:minmax(250px,.8fr) minmax(440px,1.45fr)}.result-panel{grid-column:1/-1;grid-template-columns:1.1fr 1fr;gap:0 28px;display:grid;position:static}.result-panel .panel-heading,.result-panel .primary-button,.result-panel .saved-message{grid-column:1/-1}.formula-value:after{word-break:break-word;overscroll-behavior:contain;width:min(280px,100vw - 64px);max-height:34vh;position:absolute;top:auto;bottom:calc(100% + 9px);overflow:auto;transform:translateY(8px)}.formula-value:hover:after,.formula-value:focus:after,.formula-value:active:after{transform:translateY(0)}.detail-grid>div,.history-detail dl div,.cost-list div{position:relative}.detail-grid .formula-value,.history-detail .formula-value,.cost-list .formula-value{position:static}.detail-grid>div:nth-child(odd) .formula-value:after,.history-detail dl div:nth-child(odd) .formula-value:after{left:0;right:auto}.detail-grid>div:nth-child(odd) .formula-value:before,.history-detail dl div:nth-child(odd) .formula-value:before{left:18px;right:auto}.detail-grid>div:nth-child(2n) .formula-value:after,.history-detail dl div:nth-child(2n) .formula-value:after{left:auto;right:0}.detail-grid>div:nth-child(2n) .formula-value:before,.history-detail dl div:nth-child(2n) .formula-value:before{left:auto;right:18px}.cost-list .formula-value:after{left:auto;right:0}.cost-list .formula-value:before{left:auto;right:18px}}@media (width<=760px){body{background:var(--canvas)}.topbar{height:54px;padding:0 14px}.brand{gap:8px;font-size:18px}.brand-mark{border-radius:10px;width:31px;height:31px}.desktop-nav{display:none}.topbar-market-price{white-space:nowrap;grid-template-columns:auto minmax(0,1fr);gap:6px;width:min(46vw,220px);margin:0 0 0 auto;font-size:10px}.topbar-market-price input{height:32px;min-height:32px;padding:5px 8px;font-size:12px}.mobile-nav{height:calc(68px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);z-index:50;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffdf9f7;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-nav button{color:#747875;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:11px;display:flex}.mobile-nav button.active{color:var(--copper)}.workspace,.content-page{width:calc(100% - 20px);margin:10px auto 188px;display:block}.workspace .panel{margin-bottom:10px}.quote-product-tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-bottom:10px;padding:0;display:grid;overflow:visible}.quote-product-tabs button{text-align:center;border-radius:11px;min-width:0;min-height:38px;padding:6px 4px;box-shadow:0 4px 10px #4c3a1f09}.quote-product-tabs button:hover{transform:none}.quote-product-tabs strong{white-space:nowrap;text-overflow:ellipsis;margin-bottom:1px;font-size:11px;overflow:hidden}.quote-product-tabs small{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:8px;display:block;overflow:hidden}.quote-placeholder-panel,.requirements-panel,.material-panel,.result-panel{padding:13px}.result-panel{display:block;position:static}.panel-heading{gap:8px;min-height:30px;margin-bottom:10px;padding-bottom:9px}.panel-heading h2{font-size:17px}.requirements-panel .field-grid,.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px}.requirements-panel .form-field:last-child{grid-column:auto}.block-dimension-section{border-radius:12px;margin:8px 0 10px;padding:9px}.block-dimension-section h3{margin-bottom:7px;font-size:12px}.block-dimension-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.block-dimension-row .field-label-row{display:block}.block-dimension-row .field-label{min-height:25px;font-size:10px;line-height:1.25;display:block}.block-dimension-row input{min-height:36px;padding:7px 8px;font-size:15px}.form-field{gap:4px;margin-bottom:6px}.field-label{font-size:12px}.field-hint{font-size:10px;line-height:1.35}.field-hint.inline{letter-spacing:-.01em;font-size:10px}input,select,textarea{padding:8px 10px;font-size:16px}input,select{min-height:38px}textarea{min-height:68px}.process-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px 12px;padding-bottom:10px}.block-parameter-heading h2{display:block}.block-inline-rule{margin-top:4px;font-size:10px;display:flex}.block-process-row{grid-template-columns:104px 112px;align-items:end;gap:14px}.block-material-price-field{grid-column:1/-1;max-width:190px}.block-process-row .block-yield-field{grid-column:auto;width:100%}.block-kerf-field{width:100%;min-width:0;max-width:104px}.block-kerf-field select{width:100%;min-width:0;max-width:none}.process-row .form-field{width:100%;min-width:0;max-width:100%}.process-row select{width:auto;min-width:168px;max-width:calc(100vw - 48px);padding-right:42px}.block-process-row .block-kerf-field select{min-width:0;max-width:none;padding-right:34px}.process-row .waste-range-field{grid-column:1/-1;width:fit-content;max-width:100%}.range-inputs{grid-template-columns:92px auto 92px auto;gap:4px}.material-price-field input,.custom-length-field{width:100%;max-width:100%}.custom-length-field input{min-width:0}.add-length-control input{padding-right:44px}.add-length-control button{width:30px;height:30px}.formula-value:after{max-height:34vh;font-size:13px;line-height:1.7}.formula-value:before{display:block}.candidate-head{display:none}.candidate-row{grid-template-columns:.9fr .8fr .75fr .8fr;gap:4px;padding:10px 9px}.candidate-row>span:nth-child(4){display:none}.length-cell{font-size:15px}.radio-dot{width:15px;height:15px;margin-right:8px}.status-cell{font-size:10px}.recommendation{margin-top:10px;padding:9px 11px;font-size:12px;line-height:1.45}.block-plan-grid{grid-template-columns:1fr;gap:10px}.block-plan-card{border-radius:14px;padding:12px}.block-plan-title{gap:8px;margin-bottom:9px;display:grid}.block-plan-title>span{justify-self:start}.block-axis-head{display:none}.block-axis-row{grid-template-columns:minmax(82px,1fr) repeat(3,minmax(54px,.75fr));gap:6px;padding:9px 8px;font-size:12px}.block-axis-row,.block-plan-metric-group div{position:relative;overflow:visible}.block-axis-row strong{text-align:left;font-size:14px;line-height:1.15}.block-axis-value-label{display:block}.block-plan-card .formula-value{max-width:100%;position:static}.block-plan-card .formula-value:after{width:min(280px,100% - 16px);max-width:calc(100% - 16px);max-height:34vh;padding:11px 12px;font-size:12px;line-height:1.65;position:absolute;bottom:calc(100% + 9px);left:auto;right:0}.block-plan-card .formula-value:before{left:auto;right:18px}.block-plan-metrics{gap:7px}.block-plan-metric-group{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:7px}.block-plan-metric-group div{padding:7px}.block-plan-metric-group dd{overflow-wrap:anywhere}.price-source{padding-bottom:12px}.price-source strong{font-size:22px}.detail-block{margin:10px 0;padding:10px}.detail-block h3{margin-bottom:8px;font-size:13px}.detail-grid{gap:6px}.detail-grid div{padding:7px 8px}.cost-list{margin:8px 0 14px}.cost-list div{padding:7px 0}.cost-list .cost-total{margin-top:6px;padding-top:12px}.block-cost-list{margin-top:8px}.block-cost-list div{padding:8px 0}.block-cost-list dd{text-overflow:ellipsis;max-width:52vw;overflow:hidden}.block-cost-list .cost-total{padding:10px 9px}.block-cost-list .cost-total dd{text-overflow:ellipsis;max-width:52vw;font-size:clamp(22px,8vw,30px);overflow:hidden}.product-summary{margin:-4px 0 12px;padding:7px 9px;line-height:1.5}.block-summary-lines{gap:4px}.quote-highlight{grid-template-columns:minmax(0,1fr) auto auto;gap:5px;padding:12px 0 8px}.quote-highlight strong{min-width:0;font-size:clamp(24px,8vw,28px)}.result-panel{padding-bottom:112px}.result-panel>.primary-button,.result-panel>.saved-message{display:none}.percent-input{justify-content:flex-start}.percent-input input{flex:none;width:136px;max-width:60vw}.mobile-action-bar{left:10px;right:10px;bottom:calc(72px + env(safe-area-inset-bottom));z-index:45;border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffdf9f7;border-radius:14px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:70px;padding:8px 10px 8px 13px;display:grid;position:fixed;box-shadow:0 10px 35px #36271329}.mobile-action-bar div{flex-direction:column;min-width:0;display:flex}.mobile-action-bar span{color:var(--muted);font-size:10px}.mobile-action-bar strong{color:var(--copper-dark);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:clamp(19px,6vw,21px);overflow:hidden}.mobile-action-bar small{margin-left:3px;font-size:10px}.mobile-action-bar button{background:var(--copper);color:#fff;white-space:nowrap;border:0;border-radius:10px;align-items:center;gap:7px;padding:11px 13px;font-weight:700;display:flex}.page-title{margin:10px 0 8px;display:block}.page-title h1{font-size:21px}.page-title p{margin-top:3px;font-size:11px;line-height:1.45}.toolbar{align-items:center;gap:6px;margin-bottom:6px}.search-box{flex:auto;min-width:0;padding:0 8px}.search-box input{height:34px;min-height:34px;padding:6px 0;font-size:13px}.history-toolbar-actions{flex:none;align-items:center;gap:5px;font-size:10px}.history-count{min-height:34px}.history-manage-toggle{border-radius:9px;min-height:34px;padding:0 8px;font-size:10px}.history-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(78px,.7fr) auto;gap:5px;margin-bottom:7px;padding:6px}.history-filters input{height:30px;min-height:30px;padding:5px 7px;font-size:12px}.history-filter-actions{gap:4px}.history-filter-actions .icon-button{border-radius:9px;width:30px;height:30px}.history-card{grid-template-columns:minmax(0,1fr) auto;gap:5px 7px;padding:7px 8px}.history-card:has(.history-select){grid-template-columns:22px minmax(0,1fr) auto}.history-select{grid-row:1/span 2;align-self:stretch;align-items:center}.history-select input{width:15px;height:15px;min-height:15px}.history-main h2{font-size:16px}.history-main p{max-width:min(430px,54vw)}.history-price{padding-top:9px}.history-price em{font-size:9px}.history-price strong{font-size:19px}.history-actions{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.history-select+.history-main~.history-actions{grid-column:2/-1}.history-actions button{min-height:28px;padding:5px 3px;font-size:10px}.history-detail-heading{display:block}.history-detail-heading span{margin-top:4px;display:block}.history-detail dl{grid-template-columns:repeat(2,minmax(0,1fr))}.data-layout{display:block}.data-tabs{gap:4px;padding-bottom:7px;display:flex;position:static;overflow-x:auto}.data-tabs button{white-space:nowrap;padding:8px 10px}.data-editor{padding:12px}.editor-heading{margin-bottom:10px;padding-bottom:10px}.editor-heading h2{font-size:17px}.editor-heading .secondary-button{padding:8px 10px}.editable-list,.editable-row{gap:7px}.editable-row.option-edit,.editable-row.process-edit,.editable-row.kerf-edit,.editable-row.length-edit{border:1px solid var(--line);background:#fffdf9;border-radius:12px;align-items:center;padding:8px}.editable-row.option-edit{grid-template-columns:minmax(0,1fr) auto}.editable-row.process-edit{grid-template-columns:minmax(0,1fr) auto auto}.editable-row.kerf-edit{grid-template-columns:minmax(0,1fr) auto auto auto}.editable-row.length-edit{grid-template-columns:auto minmax(0,1fr) auto}.compact-edit-row>input:first-child,.option-edit>input:first-child{width:100%;min-width:0}.value-with-unit{justify-self:end;gap:5px;font-size:12px}.value-with-unit input{text-align:left;width:clamp(58px,18vw,88px);padding:8px 9px}.length-edit .value-with-unit:first-child input{width:58px}.length-edit .value-with-unit:nth-child(2){justify-self:stretch;width:100%}.length-edit .value-with-unit:nth-child(2) input{width:100%}.kerf-edit>label{justify-self:start}.row-actions{place-self:center end;gap:6px;margin-top:0}.row-actions label{font-size:12px}.row-actions .icon-button{padding:3px}.sort-buttons{gap:2px}.editable-row.three{grid-template-columns:1fr 110px 60px}.settings-grid{display:block}.settings-card{margin-bottom:12px;padding:16px}}@media print{.topbar,.mobile-nav,.mobile-action-bar{display:none!important}}
