:root{--ink:#192b28;--muted:#74817b;--green:#234d41;--accent:#d8ed78;--line:#e1e5dd;--bg:#f5f6f1;--white:#fff;--radius:14px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 'Segoe UI',Arial,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #8ea846;outline-offset:3px}header{height:80px;padding:0 36px;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;text-decoration:none;color:var(--ink);font-size:23px;font-weight:800;letter-spacing:2px}.logo{font-size:38px;color:var(--green);margin-right:10px;font-weight:400}.brand-sub{font-size:10px;letter-spacing:1.8px;border-left:1px solid #cbd2c7;padding-left:16px;margin-left:16px;font-weight:600}.header-note{margin-left:auto;color:var(--muted);font-size:12px}.shell{display:grid;grid-template-columns:220px 1fr;max-width:1700px;margin:auto}.nav{padding:40px 22px;position:sticky;top:80px;height:calc(100vh - 80px);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:9px}.nav-label{font-size:9px;letter-spacing:1.7px;color:var(--muted);margin:0 12px 20px}.nav>a{padding:12px 14px;display:flex;gap:14px;text-decoration:none;color:#67716a;font-size:13px;border-radius:8px}.nav>a.active{background:#e5ebdf;color:var(--green);font-weight:600}.nav-bottom{margin-top:auto;font-size:11px;color:var(--muted);padding:15px 12px}.nav-bottom p{font-size:11px;line-height:1.7}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#688259;margin-right:5px}main{padding:40px 42px 0;min-width:0;max-width:1300px;width:100%;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:26px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:600;color:var(--muted)}h1{font-size:38px;letter-spacing:-1.6px;font-weight:600;line-height:1.15;margin:12px 0}h1+p{color:var(--muted);margin:0;font-size:14px}.tag{font-size:10px;letter-spacing:.7px;border:1px solid #d8dfd0;border-radius:30px;padding:7px 12px;white-space:nowrap}.demo-note{padding:12px 16px;border:1px solid #dce4cc;border-radius:9px;background:#edf1e4;display:flex;gap:12px;align-items:center;font-size:11px;color:#576746;margin-bottom:24px}.demo-note .text-btn{margin-left:auto;white-space:nowrap}.work-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px;align-items:start}.card{padding:25px;background:white;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:20px}.section-heading{display:flex;align-items:center;gap:11px;margin-bottom:22px}.step{width:26px;height:26px;display:grid;place-items:center;border:1px solid #dce3d5;background:#f7f9f3;border-radius:7px;font-size:10px;color:#5a6b4c}h2{font-size:16px;font-weight:600;letter-spacing:-.3px;margin:0}h3{font-size:13px;margin:0 0 22px;font-weight:600}.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.wide{grid-column:1/-1}label{display:block;font-size:11px;font-weight:600;color:#52615b}label small{font-weight:400;color:#8a938d;float:right;font-size:10px}input,select,textarea{display:block;width:100%;border:1px solid #dce2d7;background:#fcfdf9;border-radius:7px;padding:10px 11px;color:var(--ink);margin-top:7px;outline:none;min-height:41px}input:focus,select:focus,textarea:focus{border-color:#68834a;box-shadow:0 0 0 3px #e9efdb}input[type=number]{font-variant-numeric:tabular-nums}textarea{resize:vertical}input:invalid{border-color:#b66c59}.input-unit{position:relative}.input-unit input{padding-right:40px}.input-unit>span{position:absolute;right:12px;top:11px;font-weight:400;color:#8a938d}.help{font-size:11px;line-height:1.7;color:#7a867e;margin:16px 0 0}.intro{margin:-7px 0 18px}.material-summary{display:flex;justify-content:space-between;background:#f3f6ed;border-radius:7px;padding:10px 12px;margin-top:18px;font-size:11px;color:#69785c}.operation{padding:15px;background:#f8faf4;border:1px solid #e0e7d8;border-radius:10px;margin-bottom:12px}.op-top{display:flex;align-items:center;gap:10px;margin-bottom:12px}.op-top input{margin:0;background:white;font-size:12px;min-width:0}.op-num{font-size:11px;color:#879277}.delete-op{border:0;background:transparent;font-size:21px;color:#8a9586;padding:2px 5px}.operation-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.operation-fields label{font-size:10px}.operation-fields small{float:none;display:block;margin-top:2px}.operation-fields input{background:white}.add-btn{background:transparent;color:var(--green);border:1px dashed #becdb2;width:100%;padding:10px;border-radius:7px;font-size:12px}.formula{padding:10px 0 0;font-size:11px;color:#657354}.formula p{font-size:10px;color:var(--muted);margin:8px 0}.results{position:sticky;top:104px}.result-main{border-radius:14px;background:var(--green);color:white;padding:28px;margin-bottom:14px;position:relative;overflow:hidden}.result-main:after{content:'+';position:absolute;right:17px;top:3px;color:#628270;font:40px monospace}.result-main .eyebrow{color:#bdcbb7;font-size:9px}.result-label{font-size:12px;color:#d2decc;margin-top:30px}.big-number{font-size:45px;letter-spacing:-2px;font-weight:600;line-height:1.3;font-variant-numeric:tabular-nums;margin:4px 0 14px}.lot-total{display:flex;justify-content:space-between;gap:12px;font-size:11px;color:#c7d7bf}.lot-total strong{color:white;white-space:nowrap}.divider{height:1px;background:#52705a;margin:23px 0}.sell-label{font-size:12px}.sell-label span{font-size:9px;color:#b6c9ad;float:right;margin-top:2px}.sell-number{font-size:30px;color:var(--accent);letter-spacing:-.8px;font-weight:600;margin-top:4px}.profit-line{font-size:10px;color:#c0d0b5;margin-top:6px}.breakdown{padding:24px}.cost-bar{display:flex;height:7px;border-radius:4px;overflow:hidden;gap:2px;margin-bottom:24px}.cost-bar span{min-width:0}.cost-row{display:flex;align-items:center;gap:8px;justify-content:space-between;font-size:11px;margin:13px 0}.cost-row .dot{width:7px;height:7px;border-radius:2px;flex-shrink:0}.cost-row .label{flex:1;color:#748073}.cost-row strong{font-weight:500;font-variant-numeric:tabular-nums}.total-line{display:flex;justify-content:space-between;font-size:12px;padding-top:17px;margin-top:18px;border-top:1px solid var(--line)}.time-box{margin:20px 0;background:#f4f6ee;border-radius:8px;padding:12px;display:flex;flex-wrap:wrap;justify-content:space-between;font-size:10px;gap:5px}.time-box small{width:100%;color:#84907e;font-size:9px}.primary,.secondary{border-radius:7px;font-size:11px;font-weight:600;padding:11px 15px;border:1px solid #d7dece;background:transparent;color:var(--green)}.primary{background:var(--green);color:white;border-color:var(--green);width:100%}.secondary:hover,.add-btn:hover{background:#e9efdf}.primary:hover{background:#163b30}.full{width:100%;margin-top:8px}.text-btn{border:0;background:none;color:var(--green);font-size:11px;padding:3px 0;text-decoration:none}.result-foot{font-size:10px;line-height:1.7;color:#8c9687;text-align:center;padding:0 15px}.series{margin-top:8px}.series .help{margin:-10px 0 20px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px;text-align:right;white-space:nowrap}th{font-weight:500;color:#8b9585;font-size:10px;padding:10px 13px;border-bottom:1px solid var(--line)}td{padding:14px 13px;border-bottom:1px solid #eff2e9;font-variant-numeric:tabular-nums}th:first-child,td:first-child{text-align:left}.current{background:#eef3e4;font-weight:600}.current td:first-child{color:var(--green)}.empty{font-size:12px;color:#899281;padding:5px 0 8px}.saved-item{display:flex;gap:15px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.saved-info{flex:1;min-width:0}.saved-info strong{display:block;font-size:12px;overflow-wrap:anywhere}.saved-info small{font-size:10px;color:#86917e}.saved-item button{white-space:nowrap}footer{padding:16px 0 28px;font-size:9px;letter-spacing:1px;color:#89957f;display:flex;justify-content:space-between;gap:20px}footer span{letter-spacing:0}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#1d382d;color:white;border-radius:9px;padding:12px 20px;font-size:12px;box-shadow:0 8px 30px #0002;z-index:15;max-width:90vw;display:none}#errors{background:#fff0e8;color:#9c3b21;padding:15px;border:1px solid #efc5b0;border-radius:9px;margin-bottom:14px;font-size:12px}[hidden]{display:none!important}@media(min-width:1450px){main{padding:48px 55px 0}.work-grid{grid-template-columns:minmax(0,1fr) 360px;gap:30px}.card{padding:28px}}@media(max-width:1150px){.shell{grid-template-columns:170px 1fr}.nav{padding:30px 12px}main{padding:30px 24px 0}.work-grid{grid-template-columns:minmax(0,1fr) 295px;gap:16px}.card{padding:20px}.result-main{padding:23px}.big-number{font-size:39px}.header-note{display:none}header>.secondary{margin-left:auto}.operation-fields{gap:7px}}@media(max-width:950px){.shell{grid-template-columns:1fr}.nav{display:none}main{max-width:850px}.work-grid{grid-template-columns:minmax(0,1fr) 300px}}@media(max-width:700px){header{height:65px;padding:0 17px}.brand{font-size:20px}.brand-sub{font-size:8px;padding-left:10px;margin-left:10px}.logo{font-size:30px}header>.secondary{padding:9px 10px;font-size:10px}main{padding:26px 16px 0}.page-heading{align-items:flex-start}.page-heading .tag{display:none}h1{font-size:32px}.demo-note{align-items:flex-start;flex-wrap:wrap;gap:7px}.demo-note>div{flex:1}.demo-note .text-btn{margin-left:23px}.work-grid{display:flex;flex-direction:column;gap:0}form{width:100%}.results{position:static;width:100%;margin-bottom:20px}.result-main{padding:26px}.result-label{margin-top:22px}.big-number{font-size:48px}.card{padding:20px}.fields{gap:16px 12px}.operation{padding:12px}.operation-fields label{font-size:9px}.operation-fields input{padding:9px 7px}.series h2{font-size:14px}.saved-item{gap:10px;flex-wrap:wrap}footer{line-height:1.7}.result-foot{text-align:left}.eyebrow{font-size:9px}.results .breakdown{margin-bottom:0}}@media print{header{position:static;height:auto;padding:0 0 15px;background:white}header button,.nav,.demo-note,.add-btn,.delete-op,.results button,#saved,#toast,footer,.header-note{display:none!important}body{background:white;font-size:10px}main{padding:15px 0;max-width:none}.shell{display:block}.work-grid{display:block}form{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}.card{break-inside:avoid;margin:0 0 12px;padding:13px;border-radius:5px}.results{position:static;display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:15px}.result-main{background:#f0f4e7!important;color:#173c35!important;break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}.result-main *{color:#173c35!important}.results .result-foot{grid-column:1/-1}input,select,textarea{padding:5px;min-height:25px;background:white;font-size:11px}.help{font-size:9px}.section-heading{margin-bottom:12px}h1{font-size:25px}.series{margin-top:15px}#series{break-inside:avoid}}
.header-save{width:auto}.model-card{border:1px solid #d6dfcf;border-radius:14px;overflow:hidden;background:#fff;margin-bottom:18px}.model-top{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;border-bottom:1px solid var(--line)}.model-top h2{font-size:14px}.model-top p{margin:5px 0 0;font-size:11px;color:#8a9580;max-width:50vw;overflow-wrap:anywhere}.upload-btn{background:#e6edda;border:1px solid #cedabc;border-radius:7px;padding:10px 15px;cursor:pointer;color:var(--green)}#viewer{height:360px;position:relative;background:radial-gradient(ellipse at 50% 40%,#e8eee3,#dce4d4);overflow:hidden}#viewer canvas{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:none}.viewer-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:2;padding:20px;text-align:center;pointer-events:none}.viewer-placeholder strong{font-size:21px;font-weight:500;letter-spacing:-.5px}.viewer-placeholder p{font-size:12px;color:#79856e}.part-icon{font-size:65px;color:#8a9c74;line-height:1;margin-bottom:18px}.demo-actions{display:flex;gap:10px;pointer-events:auto;margin-top:10px}.demo-actions button{border:1px solid #bac9a7;border-radius:7px;padding:9px 13px;background:#f3f6ee;color:var(--green);font-size:11px}.viewer-tools{position:absolute;top:16px;left:18px;display:flex;gap:8px;z-index:3}.viewer-tools button,.viewer-tools label{border:1px solid #cbd7bf;border-radius:6px;background:#f4f7eddd;padding:6px 10px;font-size:10px;display:flex;align-items:center;gap:6px;font-weight:500}.viewer-tools input{margin:0;min-height:0;width:auto}.viewer-tools{display:none}.has-model .viewer-tools{display:flex}#viewer-caption{position:absolute;bottom:13px;left:18px;font-size:10px;color:#7e8c70;z-index:2;pointer-events:none}#viewer-axis{position:absolute;bottom:13px;right:20px;font:11px monospace;word-spacing:10px;color:#aa715d;z-index:2}#viewer-axis span{color:#688c4e}#viewer-axis b{color:#6086a7;font-weight:400}.import-status{padding:10px 25px;font-size:11px;color:#77856b;background:#f7f9f3;border-top:1px solid #e3e9db}.import-status.error{color:#a64325;background:#fff0e9}.geometry-stats{display:grid;grid-template-columns:1.5fr 1.1fr 1fr 1.2fr;padding:20px 25px;gap:15px}.geometry-stats>div{border-right:1px solid #e2e8da}.geometry-stats>div:last-child{border:0}.geometry-stats span{display:block;font-size:10px;color:#8a9580}.geometry-stats strong{display:block;font-size:13px;font-weight:500;margin-top:4px}.body-select{padding:15px 25px;background:#f7f9f2}.recommendation{padding:13px 14px;border-radius:7px;background:#f0f5e6;color:#526942;font-size:12px;margin-bottom:20px}.recommendation strong{display:block;margin-bottom:5px;font-size:13px}.recommendation button{margin-top:8px;font-size:11px;color:var(--green);border:0;background:transparent;text-decoration:underline;padding:0}.switch-label{display:flex;align-items:center;gap:12px;padding:13px;background:#f3f6ec;border-radius:8px;margin-bottom:18px}.switch-label input{width:18px;min-height:18px;margin:0;accent-color:var(--green);flex-shrink:0}.switch-label span{flex:1}.switch-label strong{display:block;font-size:12px}.switch-label small{float:none;display:block;font-size:10px;margin-top:3px}.fixture{border:1px solid #dce4d2;border-radius:9px;margin-bottom:12px;padding:16px}.fixture-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;font-size:12px}.fixture-title span{font-size:9px;letter-spacing:1px;background:#e8efdb;padding:3px 7px;border-radius:4px}.fixture .fields{gap:12px}.fixture label{font-size:10px}.face-pick{display:flex;align-items:center;gap:10px;margin-top:14px}.face-pick button{font-size:10px;border:1px solid #c6d5b5;background:#f4f7ed;border-radius:5px;padding:8px 10px;color:#4c673c}.face-pick span{font-size:10px;color:#829275;flex:1}.face-pick button.picking{background:#d8ed78}.fixture-note{font-size:10px;color:#8a947f;margin:10px 0 0}.inline-warning{font-size:11px;color:#9a4525;background:#fff1e5;padding:12px;border-radius:7px;margin-top:12px}.plan-status{font-size:11px;color:#6f805e;margin-bottom:12px}.plan-status.dirty{color:#9e6326}.operations-intro{margin:15px 0 18px}.op-top input[type=checkbox]{width:17px;min-width:17px;min-height:17px;margin:0;accent-color:var(--green)}.operation.off{opacity:.55}.operation .op-num{display:none}.operation-fields{grid-template-columns:repeat(3,1fr)}.operation-fields select{padding:9px 7px;font-size:11px;background:white}.op-reason{font-size:10px;color:#87947b;line-height:1.6;margin:12px 0 0}.op-badge{font-size:9px;background:#e4edd8;border-radius:4px;padding:2px 5px;color:#638049;display:inline-block;margin-bottom:6px}.assumptions{margin-top:20px;border-top:1px solid #e2e8da;padding-top:16px}.assumptions summary{font-size:12px;color:#63794e;cursor:pointer}.assumptions .fields{margin-top:16px}.scenario{background:#2c5647;border:1px solid #52754d;border-radius:7px;padding:10px 12px;margin-top:19px;display:flex;flex-wrap:wrap;justify-content:space-between;font-size:10px;color:#c9d7be;gap:5px}.scenario strong{font-weight:500;color:#e1ecce}.scenario small{width:100%;font-size:9px;color:#a7bc99}.licenses{font-size:10px;color:#839077;margin-bottom:25px}.licenses summary{cursor:pointer}.licenses a{color:inherit}.version{font-size:8px;letter-spacing:1.2px}.dragging{outline:3px dashed #749c4e;outline-offset:-6px}.has-model .viewer-placeholder{display:none}.picking-face{cursor:crosshair}.results button:disabled,button:disabled{opacity:.5;cursor:not-allowed}.page-heading h1{font-size:34px}.results{top:95px}.result-main .result-label{margin-top:24px}@media(max-width:700px){header{gap:8px}.brand-sub{display:none}.header-save{font-size:10px;padding:9px 10px}header>.secondary{font-size:9px;padding:9px 8px}.page-heading h1{font-size:29px}.model-top{padding:17px}.model-top h2{font-size:12px}.upload-btn{padding:9px 11px;font-size:11px}#viewer{height:300px}.geometry-stats{grid-template-columns:1fr 1fr;padding:17px;row-gap:18px}.geometry-stats>div:nth-child(2){border:0}.import-status{padding:10px 17px}.viewer-placeholder strong{font-size:18px}.demo-actions{gap:6px}.demo-actions button{font-size:10px;padding:8px 9px}.fixture{padding:13px}.face-pick{flex-wrap:wrap}.model-top p{font-size:10px}.scenario{max-width:100%}}@media print{.model-card{break-inside:avoid}.model-top{padding:10px}.upload-btn,.viewer-tools,#viewer-caption,#viewer-axis,.demo-actions,.assumptions,.licenses,.face-pick button,#generate-plan{display:none!important}#viewer{height:230px}.model-card:not(.has-model) #viewer{display:none}.geometry-stats{padding:10px}form{display:block}.results{display:grid}.model-card,.card{margin-bottom:12px}.fixture{break-inside:avoid}.scenario{background:transparent}.operation{break-inside:avoid}.operation.off{display:none}.result-foot{color:#555}.demo-note{display:block!important;font-size:10px}.work-grid{display:block}#viewer canvas{position:relative}.body-select select{border:0}.saved-info{width:auto}}
.fixture-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 20px}.fixture-toolbar button{font-size:10px}.fixture-count{margin-left:auto;font-size:10px;color:#849176;white-space:nowrap}.fixture-toggle{display:flex;align-items:center;gap:8px}.fixture-toggle input{margin:0;min-height:16px;width:16px;accent-color:var(--green)}.fixture-actions{display:flex;gap:4px}.fixture-actions button{font-size:11px;border:1px solid #d4dfc8;border-radius:5px;background:#f7f9f1;color:var(--green);padding:4px 8px}.fixture-actions button:hover{background:#e7efd9}.fixture-disabled{background:#f5f5f1;border-style:dashed}.fixture-disabled .fields,.fixture-disabled .face-pick{opacity:.6}.fixture-title{gap:8px}.fixture-count+.help{margin-top:0}.setup-cost-details{border-top:1px solid #e1e7d9;margin-top:20px;padding-top:16px}.setup-cost-details summary{font-size:12px;font-weight:600;cursor:pointer}.setup-cost-details table{margin-top:12px;font-size:10px}.setup-cost-details th{font-size:9px;padding:8px}.setup-cost-details td{padding:10px 8px}.setup-cost-details td:first-child{min-width:140px;white-space:normal}.setup-cost-details td small{display:block;color:#87947b;font-size:9px;margin-top:3px}.operation-filter{margin:18px 0}.rate-link{margin-top:9px;font-size:10px}.viewer-tools{max-width:calc(100% - 30px);flex-wrap:wrap}.viewer-tools .view-setup-label{padding:0 8px;font-size:10px}.viewer-tools select{margin:0 0 0 6px;padding:5px;min-height:29px;max-width:190px;background:transparent;border:none;font-size:10px}.face-pick{flex-wrap:wrap}.face-pick span{flex:1;min-width:45px}#viewer-caption{right:65px;max-width:calc(100% - 80px);font-size:9px}#orient-view{white-space:nowrap}.fixture-toolbar .secondary{padding:9px 11px}.fixture-note{line-height:1.6}@media(max-width:700px){.fixture-count{font-size:9px}.fixture-actions button{padding:4px 6px;font-size:10px}.fixture-actions button[data-view-fixture]{font-size:9px}.viewer-tools{gap:5px;left:12px;top:12px}.viewer-tools select{max-width:135px}.fixture-title{align-items:flex-start}.fixture-toolbar{gap:7px}.fixture-toolbar button{font-size:9px}.face-pick span{font-size:9px}}@media print{.fixture-toolbar,.fixture-actions,.fixture-toggle input,.operation-filter,.rate-link{display:none!important}.fixture-disabled{display:none}.fixture-title{margin-bottom:10px}.setup-cost-details{break-inside:avoid}.setup-cost-details table{font-size:9px}.setup-cost-details th{font-size:8px}.fixture-count{margin-left:12px}.fixture .fields{grid-template-columns:repeat(2,1fr)}.fixture .face-pick span{font-size:9px}.setup-cost-details summary{list-style:none}}

@media screen and (min-width:1101px){.results{max-height:calc(100dvh - 110px);overflow-y:auto;scrollbar-width:thin;scroll-padding-block:16px}}
