html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17202a;background:#eef1f3;font-synthesis:none}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}#root>.ant-app{height:100%;min-height:0}button,input{font:inherit;letter-spacing:0}.app-shell{height:100%;display:grid;grid-template-rows:56px 48px minmax(0,1fr);background:#eef1f3}.topbar{display:flex;align-items:center;gap:26px;padding:0 16px;color:#fff;background:#182126;border-bottom:1px solid #0d1519}.brand{width:236px;display:flex;align-items:center;gap:10px;flex:0 0 auto}.brand-mark{width:32px;height:32px;display:grid;place-items:center;background:#0f766e;border:1px solid #34a99e;border-radius:6px}.brand div:last-child{display:grid;line-height:1.05}.brand strong{font-size:15px;letter-spacing:0}.brand span{margin-top:4px;color:#9caab2;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.project-meta{min-width:0;display:flex;align-items:center;gap:10px}.project-meta strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.project-code,.save-state{padding:3px 7px;border-radius:4px;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.project-code{color:#b7c3c9;background:#29353a}.save-state{color:#f5c86d;border:1px solid #665329}.save-state.saved{color:#9de0c2;border-color:#315f4d}.save-state.saving,.save-state.loading{color:#f5c86d}.save-state.error{color:#fecaca;border-color:#7f1d1d}.top-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.top-actions .ant-select{width:104px}.top-actions .ant-select-selector{color:#dbe3e7!important;background:#29353a!important;border-color:#435158!important}.top-actions>.ant-btn:not(.ant-btn-primary){color:#e6ecef;background:#29353a;border-color:#435158}.top-actions>.ant-btn:not(.ant-btn-primary):hover{color:#fff!important;background:#344248!important;border-color:#5c6d75!important}.app-nav{display:flex;align-items:center;gap:2px}.app-nav .ant-btn{color:#aebbc1}.app-nav .ant-btn:hover,.app-nav .ant-btn.active{color:#fff!important;background:#2b383e!important}.file-input{display:none}.actionbar{display:flex;align-items:center;gap:10px;padding:7px 12px;background:#fff;border-bottom:1px solid #cfd6da;box-shadow:0 1px 2px #0f172a0a}.action-group{display:flex;align-items:center;gap:6px}.action-separator{width:1px;height:24px;background:#dce1e4}.action-spacer{flex:1}.layer-assign .ant-select{width:220px}.workspace{min-height:0;display:grid;grid-template-columns:260px minmax(420px,1fr) 360px;grid-template-rows:minmax(0,1fr);overflow:hidden}.left-panel,.right-panel{min-height:0;background:#f9fafb}.left-panel{display:flex;flex-direction:column;border-right:1px solid #ccd4d8}.right-panel{overflow-y:auto;border-left:1px solid #ccd4d8}.panel-heading{min-height:55px;display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #dce1e4}.panel-heading>div{display:grid;gap:3px}.panel-heading span,.section-label span{color:#78868e;font-size:10px;font-weight:700;letter-spacing:.08em}.panel-heading strong{font-size:13px;font-weight:650}.object-heading{min-height:48px;margin-top:4px;border-top:1px solid #dce1e4}.layer-list{padding:6px}.layer-row{width:100%;min-height:48px;display:grid;grid-template-columns:10px 1fr 24px;align-items:center;gap:9px;padding:5px 7px;color:inherit;text-align:left;background:transparent;border:1px solid transparent;border-radius:5px;cursor:pointer}.layer-row:hover{background:#f0f3f4}.layer-row.active{background:#e9f4f2;border-color:#acd3ce}.layer-swatch{width:9px;height:32px;border-radius:2px;background:#b9c1c6}.layer-copy,.object-copy{min-width:0;display:grid;gap:3px}.layer-copy strong,.object-copy strong{overflow:hidden;font-size:12px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.layer-copy small,.object-copy small{overflow:hidden;color:#7b8991;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.layer-count{width:23px;height:21px;display:grid;place-items:center;color:#607078;font-size:10px;background:#e5eaed;border-radius:4px}.unassigned .layer-swatch{border:1px dashed #7f8c94;background:transparent}.cutting-layer .layer-swatch{background:#b45309}.object-list{position:relative;min-height:0;flex:1;overflow-y:auto;padding:0 6px}.object-list-spacer{position:relative;width:100%}.object-row{position:absolute;left:0;right:0;height:43px;display:grid;grid-template-columns:20px 28px 1fr 60px;align-items:center;gap:7px;padding:4px 7px;border:1px solid transparent;border-radius:5px;cursor:pointer}.object-row:hover{background:#f0f3f4}.object-row.selected{background:#e9f4f2;border-color:#acd3ce}.object-color{width:27px;height:27px;display:grid;place-items:center;color:#263238;font-size:10px;font-weight:700;background:#fff;border:2px solid;border-radius:4px}.object-flags{width:60px;display:flex;align-items:center;justify-content:flex-end;gap:4px}.under20-flag{min-width:23px;height:17px;display:grid;place-items:center;color:#b42318;font-size:9px;font-weight:750;background:#fff1f0;border:1px solid #f3b7b2;border-radius:3px}.punctuation-flag{min-width:27px;height:17px;display:grid;place-items:center;color:#52616a;font-size:8px;font-weight:750;background:#eef2f3;border:1px solid #cbd5d8;border-radius:3px}.nest-flag{color:#0f766e}.cutting-flag{color:#b45309}.group-flag{color:#475569;flex:0 0 auto}.canvas-section{min-width:0;min-height:0;display:grid;grid-template-rows:43px minmax(0,1fr) 29px;background:#dfe4e6}.canvas-toolbar{display:flex;align-items:center;justify-content:space-between;padding:5px 10px;background:#f8fafb;border-bottom:1px solid #cbd3d7}.canvas-tool-controls{display:flex;align-items:center;gap:2px;flex:0 0 auto}.canvas-tool-divider{width:1px;height:22px;margin:0 4px;background:#dce1e4}.zoom-controls{display:flex;align-items:center;gap:2px}.zoom-controls span{width:44px;color:#66757d;font-size:10px;text-align:center}.canvas-stage{position:relative;min-height:0;overflow:auto;background:#dfe4e6}.drawing-canvas-wrap{width:100%;height:100%}.drawing-canvas{width:100%;height:100%;display:block;cursor:crosshair;touch-action:none}.canvas-edit-entry{position:absolute;z-index:5;left:50%;bottom:24px;width:min(340px,calc(100% - 32px));display:grid;gap:8px;padding:14px;text-align:center;background:#fffffff5;border:1px solid #b9ccc8;border-radius:10px;box-shadow:0 8px 24px #0f172a29;transform:translate(-50%)}.canvas-edit-entry strong{color:#184b46;font-size:13px}.canvas-edit-entry span{color:#627279;font-size:11px;line-height:1.45}.canvas-edit-entry .ant-btn{min-height:40px}.canvas-edit-mode{position:fixed;z-index:1200;inset:0;grid-template-rows:58px minmax(0,1fr);background:#dfe4e6}.canvas-edit-mode .canvas-toolbar{padding:8px 12px}.canvas-edit-mode .canvas-toolbar>.ant-segmented{display:none}.canvas-edit-mode .canvas-tool-controls{width:100%;justify-content:space-between}.canvas-edit-mode .canvas-status{display:none}.canvas-finish-button{min-height:40px;margin-left:auto}.canvas-edit-actions{position:absolute;z-index:6;right:0;bottom:0;left:0;display:grid;gap:8px;padding:10px 12px max(12px,env(safe-area-inset-bottom));background:linear-gradient(to top,#f8fafbfc 80%,#f8fafb00)}.canvas-action-strip,.canvas-layer-picker>div{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.canvas-action-strip::-webkit-scrollbar,.canvas-layer-picker>div::-webkit-scrollbar{display:none}.canvas-action-strip .ant-btn{min-width:max-content;min-height:44px;flex:0 0 auto}.canvas-layer-picker{display:grid;gap:7px;padding:10px;background:#fff;border:1px solid #c7d3d6;border-radius:10px;box-shadow:0 5px 18px #0f172a1f}.canvas-layer-picker>span{color:#65747b;font-size:11px;font-weight:700}.canvas-layer-picker .ant-btn{min-width:max-content;min-height:42px;display:inline-flex;align-items:center;gap:7px;flex:0 0 auto}.canvas-layer-picker .ant-btn i{width:8px;height:22px;display:inline-block;border-radius:3px}.canvas-layer-picker .active-layer{color:#075f57;background:#e8f5f2;border-color:#69aaa1}.canvas-loading{position:absolute;z-index:3;inset:0;display:grid;place-content:center;justify-items:center;gap:12px;color:#233239;background:#f7f8f8d1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.canvas-loading strong{font-size:13px}.drop-overlay{position:absolute;z-index:4;inset:10px;display:grid;place-content:center;justify-items:center;gap:10px;color:#0f766e;background:#ecf8f6eb;border:2px dashed #0f766e;border-radius:6px;pointer-events:none}.drop-overlay strong{font-size:13px}.canvas-status{display:flex;align-items:center;gap:18px;padding:0 12px;color:#66757d;font-size:10px;background:#f8fafb;border-top:1px solid #cbd3d7}.status-dot{width:7px;height:7px;display:inline-block;margin-right:5px;border-radius:50%}.selected-dot{background:#dc2626}.nest-dot{background:#0f766e}.under20-dot{background:#dc2626}.punctuation-dot{background:#64748b}.cutting-dot{background:#b45309}.empty-state{height:100%;display:grid;place-content:center;justify-items:center;gap:10px;color:#7b8991}.empty-state strong{font-size:12px}.nest-results{min-height:100%;display:flex;align-items:flex-start;gap:20px;padding:24px}.nest-sheet{min-width:280px;flex:0 0 auto;background:#fff;border:1px solid #bfc9ce;box-shadow:0 4px 14px #0f172a14}.sheet-meta{display:flex;justify-content:space-between;padding:7px 9px;font-size:10px;border-bottom:1px solid #d9e0e3}.sheet-meta span{color:#708087}.nest-svg{padding:8px}.nest-svg svg{width:min(820px,62vw);min-width:560px;height:auto;display:block}.nest-svg .bin{fill:none;stroke:#263238}.nest-svg path{fill:none;stroke:#0f766e;vector-effect:non-scaling-stroke}.labor-area-results{min-height:100%;padding:24px;background:#f6f8f9}.labor-area-total{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:0 0 14px;border-bottom:1px solid #cbd3d7}.labor-area-total span{color:#66757d;font-size:11px;font-weight:650;text-transform:uppercase}.labor-area-total strong{color:#0f625b;font-size:18px}.labor-area-list{display:grid;margin-top:8px}.labor-area-row{min-height:42px;display:grid;grid-template-columns:minmax(90px,1fr) minmax(150px,auto) 90px;align-items:center;gap:20px;padding:7px 4px;border-bottom:1px solid #dce2e5}.labor-area-row strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.labor-area-row span{color:#68777e;font-size:11px;text-align:right}.labor-area-row b{font-size:11px;text-align:right}.canvas-context-menu{position:fixed;z-index:1100;width:224px;max-height:calc(100vh - 16px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:5px;background:#fff;border:1px solid #bec8cd;border-radius:6px;box-shadow:0 10px 30px #0f172a2e}.canvas-context-menu .context-title{position:sticky;z-index:1;top:0;padding:7px 9px 5px;color:#77858c;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:#fff}.canvas-context-menu button{width:100%;min-height:34px;display:grid;grid-template-columns:18px 1fr;align-items:center;gap:8px;padding:5px 8px;color:#253238;text-align:left;background:transparent;border:0;border-radius:4px;cursor:pointer}.canvas-context-menu button:hover{background:#edf5f3}.canvas-context-menu button i{width:12px;height:24px;border-radius:2px}.canvas-context-menu button span{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.context-divider{height:1px;margin:4px 5px;background:#e1e6e8}.price-form{display:grid;gap:10px;padding:12px}.price-form label,.strip-price-list label,.modal-form label{display:grid;gap:5px}.price-form label>span,.strip-price-list label>span,.modal-form label>span{color:#536168;font-size:11px;font-weight:600}.price-form .ant-input-number,.strip-price-list .ant-input-number,.modal-form .ant-input-number,.modal-form .ant-select{width:100%}.input-unit{display:grid;grid-template-columns:minmax(0,1fr) auto}.input-unit .ant-input-number{border-radius:6px 0 0 6px}.input-unit>i{min-width:36px;display:grid;place-items:center;padding:0 8px;color:#67757c;font-size:11px;font-style:normal;background:#f1f3f4;border:1px solid #d9d9d9;border-left:0;border-radius:0 6px 6px 0}.sheet-size-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.section-label{padding:11px 12px 7px;border-top:1px solid #dce1e4}.strip-price-list{display:grid;padding:0 12px 13px}.strip-price-list label>span{display:flex;align-items:center;gap:6px}.strip-price-row{padding:10px 0 12px;border-bottom:1px solid #dce1e4}.strip-price-row:last-child{border-bottom:0}.strip-price-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}.strip-price-title>span{display:flex;align-items:center;gap:6px;color:#39484f;font-size:11px;font-weight:700}.strip-price-title>span>i{width:8px;height:18px;display:inline-block;border-radius:2px}.strip-price-title strong{color:#0f625b;font-size:11px}.strip-price-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.strip-price-fields label:nth-child(4){grid-column:1 / -1}.quote-summary{padding:0 10px 14px;background:#f4f6f7;border-top:1px solid #cbd3d7}.accounting-section{padding-top:12px}.accounting-section+.accounting-section{margin-top:4px;padding-top:14px;border-top:1px solid #d8dee1}.quote-summary .report-heading{min-height:31px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:0 2px 7px}.quote-summary .report-heading>div{min-width:0;display:grid;gap:2px}.quote-summary .report-heading span{color:#526169;font-size:10px;font-weight:750;letter-spacing:0}.quote-summary .report-heading strong{color:#7a878d;font-size:10px;font-weight:600}.quote-summary .report-heading em{min-width:27px;padding:3px 5px;color:#9f3d30;font-size:9px;font-style:normal;font-weight:750;text-align:center;background:#fff0ed;border:1px solid #e8bbb4;border-radius:4px}.quote-summary .customer-section .report-heading em{color:#0c665e;background:#e8f5f2;border-color:#aed8d1}.quote-summary .control-section .report-heading em{color:#72520b;background:#fff7df;border-color:#e5d19a}.accounting-box{overflow:hidden;background:#fff;border:1px solid #cbd4d8;border-radius:6px}.accounting-box+.accounting-box{margin-top:8px}.accounting-box-heading{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 9px;background:#f8f9fa;border-bottom:1px solid #dce2e5}.accounting-box-heading strong{color:#344249;font-size:10px;font-weight:750}.accounting-box-heading span{color:#7a878d;font-size:9px;text-align:right}.measurement-report,.accounting-lines{margin:0;padding:3px 9px 7px}.measurement-report>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:5px 0;font-size:10px;border-bottom:1px solid #edf0f2}.measurement-report>div:last-child{border-bottom:0}.measurement-report dt{color:#65737a;line-height:1.35}.measurement-report dd{flex:0 0 auto;margin:0;color:#344249;font-weight:700;text-align:right}.accounting-lines>div{min-height:48px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:9px;padding:7px 0;border-bottom:1px solid #e7ebed}.accounting-lines>div:last-child{border-bottom:0}.accounting-lines dt{min-width:0;display:grid;grid-template-columns:31px minmax(0,1fr);align-items:center;gap:7px}.accounting-lines dd{margin:0;color:#26343a;font-size:11px;font-weight:750;text-align:right;white-space:nowrap}.quote-lines>.quote-entry{grid-template-columns:minmax(0,1fr);align-items:stretch}.quote-lines .quote-entry>dt{grid-template-columns:18px 31px minmax(0,1fr)}.quote-lines .ant-checkbox-wrapper{margin:0}.quote-line-values{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:9px;margin-top:7px!important;text-align:left!important;white-space:normal!important}.quote-unit-editor{min-width:0;display:grid;gap:4px}.quote-unit-editor>span{color:#68767c;font-size:9px;font-weight:650}.quote-rate-control{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto auto}.quote-rate-control .ant-input-number{width:100%;border-radius:5px 0 0 5px}.quote-rate-control>i{min-width:37px;display:grid;place-items:center;padding:0 6px;color:#68767c;font-size:9px;font-style:normal;font-weight:600;background:#f1f3f4;border:1px solid #d9dfe2;border-left:0}.quote-rate-control>i:last-child{border-radius:0 5px 5px 0}.quote-rate-control .ant-btn{width:25px;min-width:25px;height:24px;padding:0;color:#607078;background:#f8f9fa;border:1px solid #d9dfe2;border-left:0;border-radius:0 5px 5px 0}.quote-line-amount{min-width:84px;display:grid;justify-items:end;gap:4px}.quote-line-amount small{color:#7b888e;font-size:9px;font-weight:600;line-height:1.25;text-align:right}.quote-line-amount strong{color:#0c665e;font-size:12px;font-weight:800}.quote-entry.excluded .entry-code,.quote-entry.excluded .entry-copy,.quote-entry.excluded .quote-line-values{opacity:.48}.quote-entry.excluded .quote-line-amount strong{color:#68767c;text-decoration:line-through}.entry-code{min-width:31px;height:22px;display:grid;place-items:center;font-size:9px;font-weight:800;border-radius:4px}.cost-code{color:#9f3d30;background:#fff0ed;border:1px solid #e8bbb4}.quote-code{color:#0c665e;background:#e8f5f2;border:1px solid #aed8d1}.control-code{color:#72520b;background:#fff7df;border:1px solid #e5d19a}.entry-copy{min-width:0;display:grid;gap:2px}.entry-copy strong{overflow:hidden;color:#3f4c52;font-size:10px;font-weight:700;line-height:1.3;text-overflow:ellipsis}.entry-copy small{color:#7b888e;font-size:9px;line-height:1.35}.accounting-total{padding:9px;border-top:1px solid}.cost-total{color:#953b2e;background:#fff6f4;border-color:#e6bcb5}.quote-total{color:#0b625b;background:#eef8f6;border-color:#b8d9d3}.total-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.total-main>span,.margin-row>span,.control-summary span{min-width:0;display:grid;gap:2px;font-size:11px;font-weight:750}.total-main small,.margin-row small,.control-summary small{color:#78868c;font-size:9px;font-weight:600;line-height:1.35}.total-main>strong{flex:0 0 auto;font-size:15px}.total-formula{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;margin-top:8px;padding-top:7px;border-top:1px dashed currentColor}.total-formula span{font-size:9px;font-weight:650;opacity:.78}.total-formula code{overflow-wrap:anywhere;font-family:inherit;font-size:9px;font-weight:800;text-align:right}.margin-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 9px;border-top:1px solid #dce2e5}.margin-row>strong{flex:0 0 auto;font-size:11px}.margin-row{background:#fff}.commission-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:#faf5ff;border-top:1px solid #e9d5ff;color:#6b21a8}.commission-row>span{min-width:0;display:grid;gap:2px;font-size:12px;font-weight:700;color:#7e22ce}.commission-row small{color:#9333ea;font-size:9.5px;font-weight:600}.commission-row .commission-amount{flex:0 0 auto;font-size:16px;font-weight:800;color:#7e22ce}.compact-lines>div{min-height:44px}.allocation-note{color:#87620d!important}.control-summary{border-top:1px solid #dce2e5}.control-summary>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 9px;background:#fafbfb;border-bottom:1px solid #e6eaec}.control-summary>div:last-child{border-bottom:0}.control-summary strong{flex:0 0 auto;color:#344249;font-size:11px}.control-summary strong.positive-value{color:#0f766e}.control-summary strong.negative-value{color:#b42318}.control-summary .control-margin{padding-top:9px;padding-bottom:9px;background:#fffdf7}.positive-value{color:#0f766e}.negative-value{color:#b42318}.warning-list{display:grid;gap:5px;margin-top:12px;color:#87530c;font-size:10px}.warning-list span{padding:7px 8px;line-height:1.4;background:#fff8e8;border:1px solid #ead39d;border-left:3px solid #d97706;border-radius:4px}.modal-form{display:grid;gap:14px;padding:10px 0}.app-shell.management-mode{grid-template-rows:56px minmax(0,1fr)}.management-page{min-width:0;min-height:0;overflow-y:auto;background:#fff}.management-header{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 24px;border-bottom:1px solid #d7dee2}.management-header>div{min-width:0;display:flex;align-items:center;gap:10px}.management-header>div>div{min-width:0;display:grid;gap:2px}.management-header span,.band-heading span{color:#718087;font-size:10px;font-weight:700}.management-header h1{margin:0;overflow:hidden;color:#1d2a30;font-size:20px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.settings-band{padding:18px 24px 22px;background:#f5f7f8;border-bottom:1px solid #d7dee2}.band-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:13px}.band-heading strong{color:#2d3a40;font-size:13px}.management-fields{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.management-fields label,.layer-modal-grid label{min-width:0;display:grid;gap:5px}.management-fields label>span,.layer-modal-grid label>span,.switch-row>span{color:#536168;font-size:11px;font-weight:600}.management-fields .ant-input-number,.layer-modal-grid .ant-input-number{width:100%}.derived-setting>strong{min-width:0;display:flex;align-items:center;padding:0 11px;overflow:hidden;color:#263238;font-size:13px;background:#fff;border:1px solid #d9d9d9;border-radius:6px 0 0 6px;text-overflow:ellipsis;white-space:nowrap}.layer-table-section,.quotation-list-section{padding:20px 24px 32px}.table-scroll{width:100%;overflow-x:auto;border:1px solid #d4dce0}.management-table{width:100%;min-width:1000px;border-collapse:collapse;background:#fff}.management-table th{height:38px;padding:8px 10px;color:#64737a;font-size:10px;font-weight:700;text-align:left;background:#f4f6f7;border-bottom:1px solid #d4dce0;white-space:nowrap}.management-table td{height:52px;padding:8px 10px;color:#3d4a50;font-size:12px;border-bottom:1px solid #e4e9eb;white-space:nowrap}.management-table tbody tr:last-child td{border-bottom:0}.management-table tbody tr:hover{background:#f8faf9}.management-table th:last-child,.management-table td:last-child{width:108px;text-align:right}.table-layer{display:flex;align-items:center;gap:9px}.table-layer i{width:9px;height:30px;display:block;border-radius:2px}.table-layer strong{color:#26343a;font-size:12px}.cost-value,.quoted-value{color:#0f625b}.status-on,.status-off{display:inline-flex;align-items:center;min-height:22px;padding:2px 7px;font-size:10px;border-radius:4px}.status-on{color:#0c6b4f;background:#e5f5ee}.status-off{color:#8a6415;background:#fff6d8}.row-actions{display:flex;justify-content:flex-end;gap:1px}.layer-modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:10px 0}.layer-modal-grid .span-2{grid-column:1 / -1}.color-field{min-height:34px;display:flex;align-items:center;gap:12px}.color-field>input{width:42px;height:34px;padding:2px;background:#fff;border:1px solid #cfd7db;border-radius:4px;cursor:pointer}.color-swatches{display:flex;align-items:center;gap:7px}.color-swatches button{width:23px;height:23px;padding:0;border:2px solid #fff;border-radius:4px;outline:1px solid #c7d0d4;cursor:pointer}.color-swatches button.active{outline:2px solid #1d2a30}.derived-price{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 9px;background:#eef5f3;border:1px solid #c7ddd8;border-radius:5px}.derived-price span{color:#58676d;font-size:11px}.derived-price strong{color:#0f625b;font-size:12px}.switch-row{min-height:34px;display:flex!important;grid-template-columns:1fr auto;align-items:center;justify-content:space-between;padding:4px 0}.quotation-table{min-width:1050px}.quotation-number{color:#25353c}.quotation-table .quotation-number+small{display:block;margin-top:2px;color:#7a888f;font-size:10px;font-weight:600}.quotation-name-input{width:220px}.session-file{min-width:110px;display:grid;gap:2px}.session-file strong{max-width:190px;overflow:hidden;font-size:11px;font-weight:650;text-overflow:ellipsis}.session-file small{color:#7b888e;font-size:9px}.session-available strong{color:#0f625b}.session-missing strong{color:#8a969b;font-weight:500}.management-loading{min-height:250px;display:grid;place-content:center;justify-items:center;gap:10px;color:#68777e;font-size:12px}.quotation-list-section>.ant-empty{margin:80px 0}.quotation-detail{padding-top:4px}.quote-detail-meta{display:flex;justify-content:space-between;gap:20px;padding:8px 0 14px;color:#69777e;font-size:11px;border-bottom:1px solid #dce2e5}.quotation-detail table{width:100%;border-collapse:collapse}.quote-item-section{margin-top:14px}.quote-item-section h3{margin:0;padding:8px 7px;color:#536168;font-size:10px;letter-spacing:0;background:#eef2f3;border-bottom:1px solid #dce2e5}.quotation-detail th,.quotation-detail td{padding:9px 7px;font-size:11px;text-align:right;border-bottom:1px solid #e5eaec}.quotation-detail th:first-child,.quotation-detail td:first-child{text-align:left}.quotation-detail th{color:#66757c;background:#f6f8f9}.quotation-detail td strong,.quotation-detail td small{display:block}.quotation-detail td small{margin-top:2px;color:#7a888f}.quotation-detail dl{margin:12px 0 0 auto;width:min(100%,340px)}.quotation-detail dl>div{display:flex;justify-content:space-between;gap:20px;padding:7px}.quotation-detail dl>div:last-child{color:#0f625b;font-size:15px;font-weight:700;border-top:1px solid #cfd8dc}.quotation-detail dd{margin:0}@media(max-width:1100px){.workspace{grid-template-columns:220px minmax(380px,1fr) 320px}.brand{width:190px}.actionbar .action-group:first-child,.project-meta{display:none}.management-fields{grid-template-columns:repeat(3,minmax(150px,1fr))}}@media(max-width:820px){html,body,#root{height:auto;min-height:100%;overflow-x:hidden;overflow-y:visible}#root>.ant-app{min-height:100%;height:auto}body{min-height:100vh}.app-shell{min-height:100%;height:auto;grid-template-rows:56px auto auto}.project-meta{display:none}.brand{width:auto}.top-actions{min-width:0}.top-actions .ant-select{display:none}.app-nav{margin-left:auto}.topbar{gap:8px;padding:0 10px}.app-nav .ant-btn,.top-actions .ant-btn{width:42px;min-width:42px;height:42px;padding-inline:0}.app-nav .ant-btn>span:not(.ant-btn-icon),.top-actions .ant-btn>span:not(.ant-btn-icon){display:none}.actionbar{min-width:0;min-height:58px;flex-wrap:nowrap;padding:7px 10px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.actionbar::-webkit-scrollbar,.canvas-toolbar::-webkit-scrollbar{display:none}.actionbar .action-group{min-width:max-content}.actionbar .ant-btn{min-height:42px}.layer-assign{flex:0 0 auto}.layer-assign .ant-select{min-width:0;width:auto;flex:1}.action-separator{display:none}.workspace{width:100%;min-width:0;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(52vh,560px) auto;overflow:visible}.left-panel{border-right:0;border-bottom:1px solid #ccd4d8}.layer-list{min-width:0;display:flex;gap:7px;overflow-x:auto;overscroll-behavior-x:contain;padding:8px 10px 10px;scrollbar-width:none}.layer-list::-webkit-scrollbar{display:none}.layer-row{min-width:176px;min-height:58px;flex:0 0 176px;padding:8px}.layer-copy strong,.layer-copy small{max-width:120px}.object-heading,.object-list{display:none}.right-panel{border-left:0;border-top:1px solid #ccd4d8;padding-bottom:max(16px,env(safe-area-inset-bottom))}.canvas-section{width:100%;max-width:100%;overflow:hidden}.canvas-toolbar{min-width:0;min-height:56px;gap:10px;padding:6px 10px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.canvas-toolbar>.ant-segmented{flex:0 0 auto}.canvas-toolbar .ant-segmented-item{min-height:40px;display:inline-flex;align-items:center}.canvas-tool-controls .ant-btn{width:42px;min-width:42px;height:42px}.zoom-controls span{width:48px;font-size:11px}.canvas-stage{width:100%;max-width:100%}.nest-results{padding:12px}.nest-sheet{width:calc(100vw - 24px);min-width:0}.nest-svg svg{width:100%;min-width:0}.labor-area-results{padding:16px}.labor-area-row{grid-template-columns:minmax(0,1fr) auto;gap:3px 12px}.labor-area-row span{grid-column:1 / -1;text-align:left}.app-shell.management-mode{min-height:100vh;grid-template-rows:56px minmax(calc(100vh - 56px),auto)}.management-header{min-height:68px;padding:10px 12px}.management-header h1{font-size:17px}.settings-band,.layer-table-section,.quotation-list-section{padding:16px 12px 24px}.quotation-name-input{width:160px}.management-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.layer-modal-grid{grid-template-columns:minmax(0,1fr)}.layer-modal-grid .span-2{grid-column:auto}.color-swatches{min-width:0;flex-wrap:wrap}.canvas-context-menu{left:8px!important;right:8px;bottom:max(8px,env(safe-area-inset-bottom))!important;top:auto!important;width:auto;max-height:min(60vh,520px);padding:8px;border-radius:12px}.canvas-context-menu button{min-height:46px;padding:9px 10px}.canvas-context-menu button span{font-size:14px}.canvas-context-menu .context-title{padding:8px 10px}}@media(max-width:480px){.brand span,.brand-mark{display:none}.brand strong{font-size:14px}.app-nav{gap:0}.app-nav .ant-btn,.top-actions .ant-btn{width:38px;min-width:38px}.workspace{grid-template-rows:auto minmax(48vh,460px) auto}.layer-row{min-width:156px;flex-basis:156px}.layer-copy strong,.layer-copy small{max-width:102px}.sheet-size-fields,.management-fields,.quote-line-values{grid-template-columns:minmax(0,1fr)}.quote-line-amount{justify-items:start;text-align:left}.quote-line-amount small{text-align:left}}.user-kpi-band,.quote-kpi-band{padding:16px 24px 8px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.kpi-stat-card{border-radius:10px;box-shadow:0 1px 3px #0f172a0f;background:#fff;transition:all .2s ease;height:100%}.kpi-stat-card:hover{box-shadow:0 4px 12px #0f172a14;transform:translateY(-1px)}.kpi-stat-card .ant-card-body{padding:14px 16px;display:flex;align-items:center;gap:14px}.kpi-icon-box{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.kpi-content{display:flex;flex-direction:column;min-width:0}.kpi-label{font-size:11.5px;font-weight:600;text-transform:uppercase;color:#64748b;letter-spacing:.4px;line-height:1.2}.kpi-number{font-size:20px;font-weight:700;color:#0f172a;line-height:1.3;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi-sub{font-size:11.5px;color:#94a3b8;line-height:1.2;margin-top:2px}.user-filter-bar,.quotation-filter-bar{display:flex;align-items:center;gap:12px;padding:12px 24px;background:#fff;border-bottom:1px solid #e2e8f0;flex-wrap:wrap}.printable-quote-document{background:#fff;padding:16px 20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:#1e293b}.print-quote-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.print-company-info h2{font-size:17px;font-weight:800;color:#0f172a;margin:0 0 4px;letter-spacing:.5px}.print-company-info p{margin:2px 0;font-size:12px;color:#475569}.print-quote-meta{text-align:right;background:#f8fafc;padding:8px 14px;border-radius:8px;border:1px solid #e2e8f0;min-width:180px}.print-quote-meta .meta-box{margin-bottom:4px;display:flex;justify-content:space-between;gap:8px;font-size:12px}.print-quote-meta .meta-box:last-child{margin-bottom:0}.print-quote-meta .meta-label{color:#64748b}.print-quote-meta .meta-value{color:#0f172a;font-weight:700}.print-project-info{margin-bottom:16px;background:#f1f5f9;padding:10px 14px;border-radius:6px;font-size:13px}.print-project-info .info-row{display:flex;align-items:baseline;gap:6px;margin-bottom:4px}.print-project-info .info-row:last-child{margin-bottom:0}.print-project-info .label{color:#64748b;font-size:12px;min-width:110px}.print-table-wrap{margin-bottom:16px}.print-items-table{width:100%;border-collapse:collapse;font-size:13px}.print-items-table th,.print-items-table td{border:1px solid #cbd5e1;padding:8px 10px}.print-items-table th{background:#f8fafc;font-weight:700;color:#1e293b;font-size:12px}.print-items-table tfoot td{background:#f8fafc;border-top:2px solid #0f172a}.print-notes{background:#fffbeb;border:1px solid #fef3c7;padding:10px 14px;border-radius:6px;font-size:11.5px;color:#92400e;margin-bottom:24px}.print-notes ul{margin:4px 0 0;padding-left:18px}.print-notes li{margin-bottom:2px}.print-signature-row{display:flex;justify-content:space-around;text-align:center;margin-top:24px;padding-bottom:16px}.print-signature-row .sig-box{min-width:180px}.print-signature-row p{margin:0 0 2px;font-size:13px}.print-signature-row small{color:#94a3b8;font-style:italic;font-size:11px}@media print{body *{visibility:hidden}#print-area,#print-area *{visibility:visible}#print-area{position:absolute;left:0;top:0;width:100%;margin:0;padding:20px;box-shadow:none;border:none}.ant-modal-mask,.ant-modal-wrap,.ant-modal-footer,.ant-modal-close,.ant-modal-header{display:none!important}}
