*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.top-0{top:0}.z-30{z-index:30}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mt-1{margin-top:.25rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-14{height:3.5rem}.h-20{height:5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-8{height:2rem}.h-9{height:2.25rem}.min-h-screen{min-height:100vh}.w-28{width:7rem}.w-3{width:.75rem}.w-4{width:1rem}.w-8{width:2rem}.w-full{width:100%}.max-w-\[1680px\]{max-width:1680px}.max-w-xs{max-width:20rem}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-ink{--tw-border-opacity: 1;border-color:rgb(24 33 31 / var(--tw-border-opacity, 1))}.border-line{--tw-border-opacity: 1;border-color:rgb(219 228 223 / var(--tw-border-opacity, 1))}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-green-200{--tw-bg-opacity: 1;background-color:rgb(187 247 208 / var(--tw-bg-opacity, 1))}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-ink{--tw-bg-opacity: 1;background-color:rgb(24 33 31 / var(--tw-bg-opacity, 1))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-sky-100{--tw-bg-opacity: 1;background-color:rgb(224 242 254 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity, 1))}.p-4{padding:1rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.text-right{text-align:right}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-none{line-height:1}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-wide{letter-spacing:.025em}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-emerald-800{--tw-text-opacity: 1;color:rgb(6 95 70 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-green-900{--tw-text-opacity: 1;color:rgb(20 83 45 / var(--tw-text-opacity, 1))}.text-indigo-800{--tw-text-opacity: 1;color:rgb(55 48 163 / var(--tw-text-opacity, 1))}.text-ink{--tw-text-opacity: 1;color:rgb(24 33 31 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-sky-700{--tw-text-opacity: 1;color:rgb(3 105 161 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.line-through{text-decoration-line:line-through}.opacity-50{opacity:.5}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-offset-1{--tw-ring-offset-width: 1px}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--paper: #fbfbf8;--workspace: #eef1ec;--wash: #e4ebe6;--line: #cfd8d1;--ink: #17211c;--muted: #68766f;--accent: #0f766e;--accent-dark: #0b4f4a;--warning: #b7791f;--danger: #b42318}body{margin:0;background:var(--workspace);color:var(--ink);font-family:Aptos,Bahnschrift,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}code{border:1px solid #d8ded9;border-radius:4px;background:#f4f6f3;padding:1px 5px;font-size:12px;color:#24443d}.bg-workspace{background:var(--workspace)}.bg-paper{background:var(--paper)}.bg-wash{background:var(--wash)}.text-paper{color:var(--paper)}.text-ink{color:var(--ink)}.text-muted{color:var(--muted)}.bg-ink{background:var(--ink)}.border-line{border-color:var(--line)}.btn{display:inline-flex;height:36px;align-items:center;justify-content:center;gap:8px;border-radius:6px;border:1px solid var(--line);background:var(--paper);padding:0 12px;color:var(--ink);font-size:13px;font-weight:650;white-space:nowrap}.btn:hover{border-color:var(--accent);color:var(--accent-dark)}.btn-primary{border-color:var(--accent);background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark);color:#fff}.input{height:36px;min-width:0;border-radius:6px;border:1px solid var(--line);background:#fff;padding:0 10px;font-size:13px;outline:none}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0f766e1f}.module-header{display:flex;min-height:0;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:8px 14px;position:sticky;top:0;z-index:30}.module-header h2{margin:0;font-size:18px;line-height:1.1}.module-header p{margin:2px 0 0;color:var(--muted);font-size:11px}.sheet-panel{border:1px solid var(--line);border-radius:8px;background:var(--paper)}.kpi-strip,.resource-switcher,.pricing-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.kpi-card,.resource-card,.margin-card,.total-card{border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:12px;text-align:left}.kpi-card span,.resource-card span,.margin-card span,.total-card span{display:block;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.kpi-card strong,.resource-card strong,.total-card strong{display:block;margin-top:4px;font-size:22px;line-height:1.05}.resource-card{cursor:pointer}.resource-card small{color:var(--muted)}.resource-card.active{border-color:var(--ink);box-shadow:inset 4px 0 0 var(--accent)}.resource-switcher{position:sticky;top:88px;z-index:28;background:var(--workspace);padding-bottom:4px;gap:8px}.resource-switcher .resource-card{padding:7px 10px}.resource-switcher .resource-card strong{margin-top:1px;font-size:16px}.resource-switcher .resource-card span{font-size:10px}.tab-bar{display:flex;gap:2px;border-bottom:1px solid var(--line);position:sticky;top:50px;z-index:29;background:var(--workspace)}.tab-bar button{border:0;border-bottom:3px solid transparent;background:transparent;padding:7px 16px;color:var(--muted);font-weight:700}.tab-bar button.active{border-color:var(--accent);color:var(--accent-dark)}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;border-radius:999px;font-size:.7rem;font-weight:700;padding:0 .3rem;margin-left:.35rem;background:var(--muted-bg);color:var(--text-muted)}.tab-badge-error{background:#fee2e2;color:#b91c1c}.tab-badge-warning{background:#fef3c7;color:#92400e}.sheet-toolbar{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:6px 8px;position:sticky;top:150px;z-index:27}.search-box{display:flex;min-width:260px;flex:1;align-items:center;gap:8px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:0 10px}.search-box input{height:34px;width:100%;border:0;outline:none}.row-count{color:var(--muted);font-size:12px;font-weight:700}.sheet-table{width:100%;border-collapse:collapse;font-size:13px}.sheet-table th{position:sticky;top:0;z-index:2;border-bottom:1px solid var(--line);background:#e9eee9;padding:9px 10px;color:#52635a;font-size:11px;letter-spacing:.05em;text-align:left;text-transform:uppercase}.sheet-table td{border-bottom:1px solid #e2e7e3;padding:8px 10px;vertical-align:middle}.click-row{cursor:pointer}.click-row:hover,.click-row:focus,.task-row:hover{background:#f2f6f3}.click-row:focus{outline:2px solid rgba(15,118,110,.35);outline-offset:-2px}.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.btn-compact{height:30px;padding:0 9px}.group-row{background:#dfe8e2;cursor:pointer}.group-row td{background:#dfe8e2;color:#26362f;font-weight:800;padding-left:var(--group-indent, 12px)}.group-row td>svg,.group-row td>span,.group-row td>em{vertical-align:middle}.group-row td>svg{display:inline-block;margin-right:8px}.group-row td>span{display:inline-block}.task-line{display:flex;align-items:center;gap:8px}.group-row em{float:right;color:var(--muted);font-size:12px;font-style:normal}.group-row:nth-child(odd) td{background:#e8eee9}.group-row:nth-child(2n) td{background:#f0f4f1}.task-row td{background:#fff;cursor:pointer}.task-line strong{min-width:260px}.task-line span{color:var(--muted)}.calc-chip{border-radius:999px;background:#e7f6f3;color:#0f766e!important;padding:2px 8px;font-size:11px;font-weight:800;text-transform:uppercase}.scope-task-special{border-left:3px solid #0f766e;background:#edf8f4;padding:4px 6px}.detail-row td{background:#fff}.pricing-resource-material td{background:#eaf4ff}.pricing-resource-labor td{background:#edf8f0}.pricing-resource-equipment td{background:#fff7df}.pricing-sheet-table .pricing-group-row td{padding-left:10px;text-align:right}.pricing-sheet-table .pricing-group-row td:nth-child(2){padding-left:var(--group-indent, 12px);text-align:left}.pricing-sheet-table .pricing-group-row td:first-child,.pricing-sheet-table .pricing-task-row td:first-child{width:32px;text-align:center}.pricing-sheet-table .pricing-task-row td:nth-child(n+4),.pricing-sheet-table .detail-row td:nth-child(n+7){text-align:right}.pricing-task-row small,.pricing-group-row small{display:block;margin-top:3px;color:var(--muted);font-size:11px;font-weight:650}.total-card-muted{background:#24443d}.variant-row td,.add-row td{background:#fbfaf1;color:#6f5b20;font-weight:700}.add-row td{cursor:pointer;color:var(--accent-dark)}.resource-name{display:grid;gap:2px}.resource-name span,.detail-row small{color:var(--muted);font-size:11px}.cell-input{width:82px;height:28px;border:1px solid #d5ddd7;border-radius:5px;background:#fff;padding:0 7px;text-align:right}.cell-input:focus{border-color:var(--accent);outline:none}.cell-select,.cell-text{min-height:30px;border:1px solid #d5ddd7;border-radius:5px;background:#fff;padding:0 8px}.cell-select{width:min(220px,100%)}.cell-text{width:min(240px,100%)}.resource-picker{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1.4fr) auto;align-items:center;gap:8px}.resource-picker .cell-select,.resource-search{width:100%}.formula-input{width:220px}.measurement-grid{display:flex;flex-wrap:wrap;align-items:end;gap:8px}.measurement-stack{display:grid;gap:8px}.opening-editor{display:grid;gap:8px;border-left:3px solid #d7b46a;padding-left:10px}.opening-editor-title{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.opening-row{align-items:center}.measurement-field{display:grid;gap:3px;color:var(--muted);font-size:11px;font-weight:750}.measurement-note{align-self:center;max-width:180px}.edit-row td{background:#f7fbf9}.resource-picker{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.resource-picker span{color:var(--muted);font-size:12px}.resource-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(72px,1fr));gap:6px}.resource-mini-grid label{display:grid;gap:3px;color:var(--muted);font-size:11px;font-weight:700}.resource-add-row .cell-select{width:min(360px,100%)}.calculator-row td{background:#f7fbf9}.calculator-panel{display:grid;gap:10px;padding:8px 0}.calculator-header,.calculator-fields,.calculator-lines,.segmented-control{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.calculator-header span,.calculator-lines span{color:var(--muted);font-size:12px}.calculator-lines span,.calculator-derived .derived-line{display:inline-flex;gap:6px;border:1px solid var(--line);border-radius:5px;padding:4px 7px;background:#fff}.calculator-banner{display:flex;align-items:center;gap:10px;border-left:4px solid #0f766e;background:#edf8f4;padding:8px 12px;border-radius:6px}.calculator-banner strong{color:#0f5b54;font-size:14px}.corrected-base{display:grid;gap:2px;border:1px solid #f0b429;background:#fffaf0;border-radius:6px;padding:10px 12px}.corrected-base span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.corrected-base strong{font-size:20px;color:#92600a}.corrected-base em{color:var(--muted);font-size:12px;font-style:normal}.calculator-derived{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.calculator-derived .muted-note{margin-right:4px}.calculator-derived .derived-line{background:#f6f7f4}.calculator-estimation{margin-top:10px}.calculator-estimation .muted-note{display:block;margin-bottom:6px}.calc-estimation-table{width:100%;border-collapse:collapse;font-size:13px}.calc-estimation-table td{padding:4px 8px;border-bottom:1px solid #ececec}.calc-estimation-table td:nth-child(2),.calc-estimation-table td:nth-child(3){text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.calc-estimation-table td:nth-child(3){color:#2563eb}.calc-estimation-table tr.calc-out-warning td{background:#fff7ed}.calc-estimation-table code{margin-right:4px}.round-up-tag{color:#b45309;font-size:11px;font-weight:600}.calc-instance-card{border:1px solid #e2e4dd;border-radius:8px;padding:10px 12px;margin-bottom:10px;background:#fcfcfa}.calc-instance-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.calc-instance-label{flex:1;min-width:120px}.calc-instance-base{font-size:12px;color:#555;white-space:nowrap}.calc-instance-fields{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}.calc-add-row{display:flex;align-items:center;gap:10px;margin:6px 0 10px}.calc-consolidated{border-top:2px solid #d6d8d0;padding-top:8px}.calc-consolidated .calc-estimation-table td{font-weight:600}.calc-dqe{border:1px solid #c7d2c0;border-left:3px solid #4a7c59;border-radius:6px;background:#f4f8f2;padding:8px 10px;margin:8px 0}.calc-dqe-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.calc-chip-recipe{background:#4a7c59;color:#fff}.calc-dqe-warnings{margin:6px 0 0;padding-left:16px}.calc-dqe-warnings li{color:#9a6700}.dqe-trace{display:inline-block;margin-left:8px}.dqe-trace summary{cursor:pointer;display:inline;font-size:.75rem}.dqe-formula{display:inline-block;background:#eef2ec;padding:1px 6px;border-radius:4px;font-size:.78rem}.dqe-editor-grid{display:grid;grid-template-columns:260px 1fr;gap:16px;align-items:start}.dqe-recipe-list{border:1px solid #d6d8d0;border-radius:6px;padding:8px}.dqe-list-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.dqe-recipe-item{display:flex;flex-direction:column;align-items:flex-start;width:100%;text-align:left;padding:6px 8px;border:none;background:transparent;border-radius:4px;cursor:pointer}.dqe-recipe-item:hover{background:#f1f3ee}.dqe-recipe-item.active{background:#e3ece0;font-weight:600}.dqe-recipe-form{border:1px solid #d6d8d0;border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:10px}.dqe-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dqe-checkbox{flex-direction:row;align-items:center;gap:6px}.dqe-json{width:100%;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.8rem;border:1px solid #c7cabf;border-radius:4px;padding:8px}.dqe-form-actions{display:flex;gap:8px}.btn-sm{padding:2px 8px;font-size:.8rem}.snapshot-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.snapshot-import .btn{position:relative;cursor:pointer}.btn.btn-danger{background:#fde8e8;color:#b91c1c;border-color:#f5c2c2}.task-code{display:inline-block;background:#eef2f1;color:var(--accent-dark);border-radius:4px;padding:1px 6px;font-size:11px;font-weight:700;letter-spacing:.3px}.pricing-task-name{display:flex;align-items:center;gap:8px}.resource-draggable .drag-handle{display:inline-flex;align-items:center;justify-content:center;color:#9aa6a0;cursor:grab}.resource-draggable{cursor:grab}.resource-draggable.dragging{opacity:.4}.resource-draggable:hover .drag-handle{color:var(--accent-dark)}.scope-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.scope-catalog-tree{max-height:calc(88vh - 120px);overflow-y:auto}.scope-task-leaf{cursor:pointer}.scope-task-leaf .scope-task-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scope-task-leaf code{color:var(--accent-dark)}.scope-task-existing{opacity:.7}.scope-existing-note{font-size:11px;font-weight:700;color:#92600a;background:#fffaf0;border:1px solid #f0b429;border-radius:999px;padding:1px 8px;white-space:nowrap}.scope-check{flex:none}.segmented-control button{height:32px;border:1px solid var(--line);background:#fff;padding:0 10px;font-weight:750}.segmented-control button.active{border-color:var(--accent);background:var(--accent);color:#fff}.add-row+.add-row,.resource-add-row+.add-row{display:none}.icon-button{display:inline-grid;height:30px;width:30px;place-items:center;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--muted)}.icon-button:hover{border-color:var(--danger);color:var(--danger)}.badge{display:inline-flex;align-items:center;border-radius:4px;padding:3px 7px;font-size:11px;font-weight:750}.vsb-wrapper{display:inline-flex;align-items:center;gap:4px}.vsb{display:inline-flex;align-items:center;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600;white-space:nowrap}.vsb-default{background:#e0f2fe;color:#0369a1}.vsb-modified{background:#fef3c7;color:#92400e}.vsb-validated{background:#d1fae5;color:#065f46}.vsb-review{background:#fef9c3;color:#854d0e}.vsb-deprecated{background:#f1f5f9;color:#94a3b8;text-decoration:line-through}.vsb-reset{display:inline-flex;align-items:center;justify-content:center;padding:2px;border:none;background:transparent;cursor:pointer;color:#92400e;border-radius:3px}.vsb-reset:hover{background:#fde68a}.vsb-reset:disabled{opacity:.5;cursor:not-allowed}.vsb-reset .spin{animation:spin .8s linear infinite}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:#17211c6b;padding:24px}.modal-content-wrapper{display:contents}.task-fields{display:flex;flex-wrap:wrap;gap:12px;padding:6px 0}.task-fields .measurement-field{display:flex;flex-direction:column;gap:2px}.variant-input{display:inline-block;width:160px;margin-left:6px;font-weight:700}.scope-modal{display:grid;grid-template-columns:1fr 280px;width:min(1120px,96vw);height:min(88vh,760px);max-height:88vh;min-height:0;overflow:hidden;border-radius:8px;background:var(--paper)}.scope-modal section,.scope-modal aside,.task-modal{padding:16px}.scope-modal section{min-height:0;overflow-y:auto}.scope-modal aside{display:grid;align-content:start;gap:10px;min-height:0;overflow-y:auto;border-left:1px solid var(--line);background:#f6f7f4}.scope-tree{display:grid;gap:10px;padding-bottom:96px}.scope-section,.scope-operation{margin-left:18px;margin-top:6px}.scope-task,.chip{display:flex;align-items:center;gap:8px;font-size:13px}.chip{border:1px solid var(--line);border-radius:999px;background:#fff;padding:6px 10px}.task-modal{width:min(720px,96vw);border-radius:8px;background:var(--paper)}.field-line{display:grid;gap:5px;color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase}.margin-card{display:grid;gap:4px}.margin-card b{font-size:15px}.total-card{background:var(--ink);color:#fff}.total-card span,.total-card small{color:#cdd8d1}.macro-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px}.macro-head{grid-column:1 / -1}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.choice{min-height:72px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px;text-align:left;font-weight:800}.choice.active{border-color:var(--accent);box-shadow:inset 4px 0 0 var(--accent)}.macro-result{display:grid;align-content:start;gap:10px;padding:18px}.macro-result span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.macro-result strong{font-size:32px}.macro-result b{color:var(--accent-dark);font-size:24px}.ref-error{border:1px solid var(--danger);background:#b4231814;color:var(--danger);border-radius:8px;padding:8px 12px;font-size:13px;font-weight:600}.select-field{display:flex;flex-direction:column;gap:2px}.select-field .cell-select{width:min(220px,100%)}.manage-list-link{align-self:flex-start;border:0;background:none;color:var(--accent-dark);font-size:11px;font-weight:700;cursor:pointer;padding:0}.manage-list-link:hover{text-decoration:underline}.catalog-tree{padding:6px}.tree-empty{padding:16px;color:var(--muted);font-size:13px}.tree-row{display:flex;align-items:center;gap:8px;border-radius:6px;padding:4px 8px}.tree-row:hover{background:#f2f6f3}.tree-lot>.tree-row{background:#dfe8e2;font-weight:800}.tree-caret{display:inline-flex;align-items:center;justify-content:center;width:20px;border:0;background:none;color:var(--muted);cursor:pointer}.tree-dot{width:6px;height:6px;border-radius:999px;background:#b6c2bb}.tree-label{display:flex;align-items:center;gap:8px;flex:1;border:0;background:none;text-align:left;cursor:pointer;font-size:13px;color:inherit;min-width:0}.tree-label code{color:var(--accent-dark)}.tree-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-leaf .tree-label:hover span{text-decoration:underline}.tree-actions{display:flex;align-items:center;gap:2px;opacity:.35;transition:opacity .12s}.tree-row:hover .tree-actions{opacity:1}.variant-modal{display:flex;flex-direction:column;gap:12px;width:min(960px,96vw);max-height:88vh;overflow:auto;border-radius:10px;background:var(--paper);padding:18px}.variant-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.variant-modal-head p{color:var(--muted);font-size:12px}.variant-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.variant-tabs>button{border:1px solid var(--line);border-radius:999px;background:#fff;padding:5px 12px;font-size:12px;font-weight:700;cursor:pointer}.variant-tabs>button.active{border-color:var(--accent);color:var(--accent-dark);background:#eef5f0}.variant-tabs em{margin-left:6px;font-style:normal;color:var(--muted)}.variant-lines{display:flex;flex-direction:column;gap:10px}.variant-add-line{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;border-top:1px dashed var(--line);padding-top:10px}.variant-add-line .cell-select.grow{flex:1;min-width:220px}.va-field{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--muted);font-weight:700}.va-field .cell-input{width:80px}.template-variant-switch{display:inline-flex;align-items:center;gap:8px}.muted-note{color:var(--muted);font-size:12px}.calc-options{display:grid;gap:4px;margin:6px 0}.calc-options-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.calc-option{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:#fff;overflow:hidden}.calc-option button{border:0;background:none;padding:3px 10px;font-size:12px;font-weight:700;color:var(--muted);cursor:pointer}.calc-option.primary{border-color:#0f766e;background:#e7f6f3}.calc-option.primary button{color:#0f5b54}.calc-option-remove{padding:3px 8px!important;color:var(--danger)!important;border-left:1px solid var(--line)!important}.calc-chip-muted{background:#eef2f1!important;color:#6b7771!important}.btn-xs{padding:3px 8px;font-size:12px;line-height:1.2}.error-text{color:var(--danger);font-size:12px;margin:4px 0 0}.link-danger{border:0;background:none;color:var(--danger);font-weight:800;cursor:pointer}.level-manager{position:relative}.level-popover{position:absolute;right:0;top:calc(100% + 6px);z-index:40;width:280px;border:1px solid var(--line);border-radius:8px;background:var(--paper);box-shadow:0 8px 24px #17211c2e;padding:10px;display:grid;gap:8px}.level-actions{display:flex;gap:6px}.level-list{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:260px;overflow-y:auto}.level-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;padding:3px 4px;border-radius:4px}.level-list li:hover{background:#f2f6f3}.level-list code{color:var(--accent-dark);font-weight:700}.dqe-tree-table th.num,.dqe-tree-table td.num{text-align:right;white-space:nowrap}.dqe-tree-table .dqe-lot td{background:#dfe8e2;font-weight:800;text-transform:uppercase;letter-spacing:.02em;border-top:2px solid var(--accent-dark)}.dqe-tree-table .dqe-sec td{background:#eef2f1;font-weight:700;padding-left:22px}.dqe-tree-table .dqe-ope td{font-style:italic;color:#3a4a42;padding-left:38px}.dqe-tree-table .dqe-task td:first-child{padding-left:44px}.dqe-tree-table .dqe-subtotal td{background:#edf8f4;font-weight:700;color:#0f5b54;border-bottom:1px solid var(--line)}.dqe-tree-table .dqe-grand td{background:#17211c;color:#fff;font-weight:800;font-size:14px}.settings-page{max-width:1100px}.settings-section{display:flex;flex-direction:column;gap:24px}.settings-group{background:var(--paper);border:1px solid var(--line);border-radius:8px;overflow:hidden}.settings-group-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:10px 16px;background:var(--wash);border-bottom:1px solid var(--line);margin:0}.settings-table{width:100%;border-collapse:collapse;font-size:13px}.settings-table th{text-align:left;padding:8px 12px;background:var(--wash);border-bottom:1px solid var(--line);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.settings-table td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.settings-table tr:last-child td{border-bottom:none}.settings-row-override{background:#fffbeb}.editable-value{cursor:pointer;border-bottom:1px dashed var(--muted);padding-bottom:1px}.editable-value:hover{color:var(--accent)}.inline-edit-group{display:inline-flex;align-items:center;gap:4px}.inline-input{padding:3px 7px;border:1px solid var(--line);border-radius:4px;font-size:13px;width:120px}.inline-input:focus{outline:none;border-color:var(--accent)}.btn-danger{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.btn-danger:hover{background:#fecaca}.settings-profiles-layout{display:grid;grid-template-columns:240px 1fr;gap:20px;align-items:start}.settings-profiles-list{background:var(--paper);border:1px solid var(--line);border-radius:8px;overflow:hidden}.settings-profiles-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line)}.settings-profiles-header h3{margin:0;font-size:13px;font-weight:700}.settings-profile-create{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line)}.settings-profile-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:10px 12px;border:none;background:transparent;cursor:pointer;border-bottom:1px solid var(--line);text-align:left}.settings-profile-item:last-child{border-bottom:none}.settings-profile-item:hover{background:var(--wash)}.settings-profile-item.selected{background:#e0f2fe}.settings-profiles-detail{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:16px}.toast-stack{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:9999;pointer-events:none}.toast{padding:10px 16px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;pointer-events:all;max-width:360px;box-shadow:0 4px 12px #00000026;animation:toast-in .2s ease}.toast-success{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7}.toast-error{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.toast-info{background:var(--paper);color:var(--ink);border:1px solid var(--line)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toolbar-toggle{display:inline-flex;align-items:center;gap:4px;font-size:12px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.error-boundary{padding:32px;text-align:center}.error-boundary pre{background:var(--wash);border:1px solid var(--line);border-radius:6px;padding:12px;font-size:12px;margin:12px auto;max-width:600px;text-align:left;white-space:pre-wrap}.modal-overlay{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:#17211c6b;padding:24px}.modal-box{background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 32px #0000002e;width:100%;max-height:85vh;overflow-y:auto;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 10px;border-bottom:1px solid var(--line);gap:10px}.modal-header h3{font-size:14px;font-weight:600;margin:0;display:flex;align-items:center;gap:6px}.modal-close{background:none;border:none;cursor:pointer;color:var(--muted);padding:2px;line-height:1}.modal-close:hover{color:var(--ink)}.modal-body{padding:16px 18px;flex:1}.history-timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.history-entry{border-left:3px solid var(--line);padding-left:12px}.history-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:4px;font-size:12px}.history-action{font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:11px;background:var(--wash);padding:1px 6px;border-radius:4px}.history-user{color:var(--muted)}.history-date{color:var(--muted);margin-left:auto}.history-cost{color:#15803d;font-weight:600}.history-diffs{display:flex;flex-direction:column;gap:3px}.history-diff-row{display:flex;gap:6px;align-items:center;font-size:12px;flex-wrap:wrap}.history-diff-key{font-family:monospace;font-size:11px;color:var(--muted);min-width:100px}.history-diff-old{color:#b91c1c;text-decoration:line-through}.history-diff-arrow{color:var(--muted)}.history-diff-new{color:#15803d;font-weight:600}.badge-success{background:#dcfce7;color:#15803d}.btn-danger{background:#fee2e2;color:#b91c1c;border:1px solid #fca5a5}.btn-danger:hover{background:#fca5a5}.empty-state{padding:48px 24px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:8px;margin:12px 0}.empty-state p{margin:4px 0}.task-row-loading td{opacity:.6}@keyframes aria-busy-pulse{0%,to{opacity:1}50%{opacity:.5}}[aria-busy=true]{animation:aria-busy-pulse 1.4s ease-in-out infinite}
