/* Isolated Interactive House presentation. */
:root{font-family:Arial,Helvetica,sans-serif;color:var(--pipeology-text);background:var(--pipeology-background);font-synthesis:none;--green:var(--pipeology-selection);--line:var(--pipeology-border);--muted:var(--pipeology-muted)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,summary{ -webkit-tap-highlight-color:transparent}button{border:1px solid var(--pipeology-border);background:var(--pipeology-background);color:var(--pipeology-text);border-radius:7px;padding:10px 14px;cursor:pointer}button:hover{background:var(--pipeology-background)}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--pipeology-border);outline-offset:3px}[hidden]{display:none!important}.primary{background:var(--pipeology-primary-dark);color:var(--pipeology-on-primary);border-color:var(--pipeology-border)}.primary:hover{background:var(--pipeology-primary-dark)}.quiet{background:transparent;border-color:transparent}.fine,.subtle{font-size:13px;color:var(--muted);line-height:1.6}h1,h2,h3,p{margin-top:0}h2{font-size:27px;letter-spacing:-.6px}h3{font-size:18px}p{line-height:1.6}a{color:inherit}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;margin-bottom:14px}.skip{position:absolute;left:-9999px}.skip:focus{left:20px;top:20px;background:var(--pipeology-surface);z-index:30;padding:15px}.topbar{max-width:1440px;margin:auto;padding:28px 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:12px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:800;font-size:18px;letter-spacing:2px}.brand small{display:block;font-size:9px;letter-spacing:2px;margin-top:4px}.brand-icon{display:block;background:var(--pipeology-primary-dark);color:var(--pipeology-primary-light);border-radius:50%;width:42px;height:42px;text-align:center;line-height:42px;position:relative}.brand-icon span{position:absolute;font-size:15px;right:4px;top:-6px}.preview-tag{color:var(--muted);font-size:10px;letter-spacing:2px}.preview-tag span{padding:0 10px}main{max-width:1440px;margin:auto;padding:0 40px}.intro{display:flex;justify-content:space-between;align-items:center;padding:55px 0 38px}.intro h1{font-size:clamp(38px,4vw,62px);font-weight:500;letter-spacing:-2px;line-height:1.05;margin:0 0 22px}.intro em{font-family:Georgia,serif;font-weight:400;color:var(--pipeology-primary)}.intro p{color:var(--pipeology-muted)}.intro-note{padding:0 50px;font-family:Georgia,serif;font-size:20px}.intro-note>span:last-child{font:10px Arial,sans-serif;letter-spacing:1px}.small-orbit{font-size:54px;color:var(--pipeology-muted)}.categories,.system-families{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.category small{font-size:10px}.category-message{font-size:13px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:30px;align-items:start}.visual-column{min-width:0}.configuration{background:var(--pipeology-background);border:1px solid var(--line);border-radius:16px;padding:24px;min-width:0}.configuration h2{font-size:29px}.configuration label,label{display:grid;gap:8px;font-size:13px;font-weight:600;margin-bottom:16px}input,select,textarea{width:100%;min-width:0;border:1px solid var(--pipeology-border);border-radius:6px;background:var(--pipeology-surface);color:var(--pipeology-text);padding:10px}input[type=checkbox],input[type=radio]{width:auto}input[type=range]{padding:0;accent-color:var(--pipeology-text)}.pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}details{border-top:1px solid var(--line);padding:14px 0}summary{cursor:pointer;font-weight:600;line-height:1.5}summary span{display:block;font-size:12px;font-weight:400}.route-editor{padding:14px 0;border-bottom:1px solid var(--line)}.length-input{display:flex;align-items:center;gap:8px}.scene-header{display:flex;justify-content:space-between;gap:10px;padding:18px 0}.scene-header h2{font-size:24px}.scene-header p{font-size:13px;margin-bottom:7px}.zone-count{align-self:start;white-space:nowrap;border:1px solid var(--line);border-radius:20px;padding:8px 12px;font-size:12px}.house-stage{background:var(--pipeology-background);border:1px solid var(--pipeology-border);border-radius:18px;position:relative;overflow:hidden}.floor-caption{display:block;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;padding:16px}.house-scroll{overflow:auto;min-width:0;overscroll-behavior:contain}#house{display:block;width:100%;height:auto;min-width:580px;font-family:Arial,Helvetica,sans-serif}#house text{user-select:none}.scene-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;padding:16px;font-size:10px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.refrigerant{background:var(--pipeology-canvas-df7850)}.control{background:var(--pipeology-canvas-688898)}.drain{background:var(--pipeology-canvas-4c93a9)}.power{background:var(--pipeology-canvas-c89732)}.duct{background:var(--pipeology-canvas-798d9a)}.vent{background:var(--pipeology-canvas-88759d)}.scene-footer{display:flex;justify-content:space-between;align-items:center;padding:14px 0;font-size:12px;gap:12px}.error,#sizing-error{color:var(--pipeology-danger);font-size:13px}.how{display:flex;justify-content:space-between;padding:24px 0;font-size:12px}.how strong{display:block;margin-top:6px}.estimate,.heating-efficiency,.sizing-results{margin:32px 0;padding:32px;border:1px solid var(--line);border-radius:16px;background:var(--pipeology-background)}.estimate{display:grid;grid-template-columns:1fr 1.5fr;gap:34px}.demo,.efficiency-demo{font-size:10px;letter-spacing:1px;color:var(--pipeology-muted)}.prices{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;gap:12px}.prices span{font-size:11px;letter-spacing:1px}.prices strong{display:block;font-size:30px;margin:14px 0}.prices small{font-size:11px;color:var(--muted)}.typical{color:var(--pipeology-text)}.range-track{height:8px;margin:28px 0;background:var(--pipeology-background);border-radius:8px}.confidence{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.confidence progress{width:110px;accent-color:var(--pipeology-text)}.explanation{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin:40px 0;line-height:1.65}.explanation li{margin-bottom:10px}.explanation h2{font-size:25px}.contributor{margin:12px 0}.contributor-bar{height:5px;background:var(--pipeology-primary)}footer{border-top:1px solid var(--line);padding:28px 0;font-size:12px}footer span{float:right}footer p{font-size:11px;color:var(--muted);margin:12px 0 0}dialog{border:1px solid var(--line);border-radius:16px;padding:28px;max-width:760px;width:calc(100% - 32px);max-height:85vh;overflow:auto;color:var(--pipeology-text);background:var(--pipeology-background)}dialog::backdrop{background:var(--pipeology-overlay-183a3070)}.dialog-top{display:flex;justify-content:space-between;gap:20px}table{border-collapse:collapse;width:100%;font-size:12px}td,th{padding:9px;border-bottom:1px solid var(--line);text-align:left}.room-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}
#plan-view{display:none}.plan-mode #plan-view{display:block}.plan-mode #house-art,.plan-mode #routes,.plan-mode #cover,.plan-mode #room-targets,.plan-mode #equipment,.plan-mode #house-objects,.plan-mode #object-targets,.plan-mode #grade-target{display:none}.room-target{fill:transparent;stroke:transparent;cursor:pointer}.room-target:hover,.room-target:focus{fill:var(--pipeology-canvas-92bb9440);stroke:var(--pipeology-canvas-326d55);stroke-width:3}.room-target.selected{stroke:var(--pipeology-selection);stroke-width:4}.arranging [data-room],.arranging [data-object]{cursor:grab}.arranging [data-room]:active,.arranging [data-object]:active{cursor:grabbing}.drag-lift{opacity:.65;filter:drop-shadow(0 4px 6px color-mix(in srgb, var(--pipeology-text) 31%, transparent))}.drop-slot{fill:var(--pipeology-canvas-87c29622);stroke:var(--pipeology-canvas-79ab8c);stroke-width:2;stroke-dasharray:8 5}.valid-drop{fill:var(--pipeology-canvas-79c69766);stroke:var(--pipeology-canvas-28694d);stroke-width:4}.plan-empty{fill:var(--pipeology-canvas-fffdf538);stroke:var(--pipeology-canvas-8eab982e);stroke-dasharray:8 5}.plan-room>rect{stroke:var(--pipeology-canvas-839b86);stroke-width:4}.plan-room:hover>rect{stroke:var(--pipeology-canvas-3d7553)}.plan-room.selected>rect,.plan-room.edit-selected>rect{stroke:var(--pipeology-selection);stroke-width:6;stroke-dasharray:10 4}.plan-room text{font-size:18px;fill:var(--pipeology-canvas-30483a);pointer-events:none}.plan-room .plan-room-type{font-size:11px;fill:var(--pipeology-canvas-687b6b)}.plan-opening,.plan-anchor,.plan-head{cursor:grab}.plan-compass{font-size:11px;letter-spacing:3px;fill:var(--pipeology-canvas-708878)}.head-wall-target{fill:none;stroke:var(--pipeology-canvas-398552);stroke-width:8;stroke-opacity:.35}.head-wall-snap{fill:var(--pipeology-canvas-55dc60);stroke:var(--pipeology-canvas-123b26);stroke-width:3}.edit-selected{filter:drop-shadow(0 0 4px var(--pipeology-text))}.plan-opening.edit-selected>rect:nth-child(2),.edit-selected .object-hit{stroke:var(--pipeology-selection);stroke-width:5;stroke-dasharray:6 3}.object-hit{fill:transparent;stroke:transparent;pointer-events:all}.needs-review{opacity:.65}.layout-settled [data-room],.layout-settled [data-object]{transition:opacity .18s ease,filter .18s ease}.arrange-minimal,.view-toolbar,.move-buttons,.sizing-actions,#object-edit-actions,#level-tabs,.room-context{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.arrange-minimal span,.touch-hint{font-size:12px;color:var(--pipeology-muted)}.arrange-minimal{padding:12px 0}.touch-hint{margin:0 0 10px}.arrange-extras{font-size:12px}.room-context:empty{display:none}.view-toolbar{justify-content:flex-end;margin:10px 0}.view-toolbar button{padding:7px 12px}.level-navigation{margin:12px 0}.level-navigation p{font-size:12px;margin:10px 0}.house-bottom-views{display:flex;justify-content:center;margin:14px 0}.house-bottom-views button{margin:0 4px}#object-edit-actions{margin:10px 0}#house-tools.house-add-rail{display:flex;flex-direction:column;gap:12px;padding:16px 12px;background:var(--pipeology-canvas-e0e9da);border-left:1px solid var(--pipeology-canvas-cedac8)}#house-tools button{min-height:48px;font-weight:650;text-align:left;font-size:13px}.house-stage:has(#house-tools:not([hidden])){display:grid;grid-template-columns:minmax(0,1fr) 164px}.house-stage>.floor-caption,.house-stage>.scene-legend{grid-column:1/-1}.house-stage>.house-scroll{grid-column:1}.house-stage>#house-tools{grid-column:2;grid-row:2}.equipment-review{padding:12px 16px;border-left:3px solid var(--pipeology-border);font-size:12px;background:var(--pipeology-background)}.route-clean{fill:none;stroke:var(--pipeology-canvas-ed2424);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.route-hit{fill:none;stroke:transparent;stroke-width:22;pointer-events:stroke}.route-rough{fill:none;stroke:var(--pipeology-canvas-ed2424);stroke-width:4;stroke-dasharray:8 4}.route-anchor{fill:var(--pipeology-canvas-ed2424);stroke:var(--pipeology-on-primary);stroke-width:2}.line-route text{font-size:12px;fill:var(--pipeology-canvas-a21c1c);paint-order:stroke;stroke:var(--pipeology-canvas-fffdf6);stroke-width:4}.line-route.edit-selected .route-clean{stroke-width:7;stroke-dasharray:10 3}#line-route-summary{font-size:12px;border-top:1px solid var(--line);padding-top:14px}
.efficiency-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0}.efficiency-cards article{border:1px solid var(--line);border-radius:10px;padding:22px;background:var(--pipeology-background)}.efficiency-cards h3{font-size:12px;letter-spacing:2px}.efficiency-cards strong{font-size:34px;display:block;margin:14px 0}.efficiency-cards p,.efficiency-cards small{font-size:12px;line-height:1.6}.efficiency-pump{background:var(--pipeology-background)!important}.efficiency-slider{max-width:700px;margin:30px auto}.efficiency-scale{display:flex;justify-content:space-between;font-size:12px}.efficiency-slider output{display:block;text-align:center;font-weight:700;padding:12px}.efficiency-note{font-size:12px;color:var(--muted)}.sizing-actions{margin:16px 0}.sizing-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}.sizing-totals>div{padding:20px;background:var(--pipeology-background);border-radius:9px}.sizing-totals strong{display:block;font-size:26px;margin:10px 0}.sizing-area-list label{display:grid;grid-template-columns:1fr 140px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-weight:500}.sizing-area-list label span{display:flex;align-items:center;gap:6px}.sizing-area-list input{width:110px}.sizing-selected-room{background:var(--pipeology-selection-light);border-radius:10px;padding:18px;margin:16px 0}.sizing-badge rect{fill:var(--pipeology-canvas-fffdf0);stroke:var(--pipeology-canvas-aebf99)}.sizing-badge text{font-size:11px;fill:var(--pipeology-canvas-345733)}#sizing-panel{margin-top:22px}#sizing-done{margin-top:12px}#sizing-question p{font-size:13px}.sizing-count button{font-size:12px;margin:4px}
@media(max-width:1000px){main{padding:0 20px}.workspace{grid-template-columns:minmax(0,1fr) 300px;gap:18px}.configuration{padding:18px}.intro-note{padding:0 10px}.prices strong{font-size:24px}}
@media(max-width:760px){.workspace{grid-template-columns:1fr}.configuration{grid-row:1}.topbar{padding:18px 20px}.preview-tag,.intro-note{display:none}.intro{padding:34px 0 20px}.intro h1{font-size:42px}.estimate,.explanation{grid-template-columns:1fr;gap:24px}.house-scroll{max-width:100%}.configuration{padding:20px}.sizing-totals{gap:8px}.sizing-totals>div{padding:12px}.sizing-totals strong{font-size:20px}footer span{float:none;display:block;margin-top:10px}}
@media(max-width:600px){.efficiency-cards{grid-template-columns:1fr}.house-stage:has(#house-tools:not([hidden])){grid-template-columns:minmax(0,1fr) 112px}#house-tools.house-add-rail{padding:10px 7px;gap:8px}#house-tools button{font-size:12px;padding:8px}.estimate,.heating-efficiency,.sizing-results{padding:20px}.room-choices{grid-template-columns:1fr 1fr}.scene-header h2{font-size:21px}.scene-footer{align-items:flex-start}.zone-count{display:none}.prices strong{font-size:23px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* One customer journey, over the existing editors. */
#customer-workflow{display:grid;gap:10px;margin:20px 0}#customer-workflow button{width:100%;text-align:left;padding:15px 16px;border:1px solid var(--pipeology-border);border-radius:10px;background:var(--pipeology-background);color:var(--pipeology-text);font-size:16px;font-weight:650}#customer-workflow button[aria-current="step"]{background:var(--pipeology-selection);color:var(--pipeology-on-primary);border:2px solid var(--pipeology-selection);box-shadow:0 0 0 3px var(--pipeology-primary-light)}#customer-workflow button[data-complete="true"]:not([aria-current="step"]){background:var(--pipeology-selection-light)}#workflow-status{font-size:14px;line-height:1.5}#workflow-continue{width:100%;margin-bottom:18px}.configuration fieldset{border:0;border-top:1px solid var(--pipeology-border);padding:18px 0;margin:10px 0}.configuration legend{font-size:18px;font-weight:750;padding-right:8px}.results-intro{max-width:1000px;margin:32px auto;padding:20px;background:var(--pipeology-background);border-radius:12px}
body[data-workflow-step] .categories,body[data-workflow-step] #system-families,body[data-workflow-step] #category-message,body[data-workflow-step] #how,body[data-workflow-step] .configuration>.subtle{display:none}:is(body:not([data-active-trade="plumbing"])[data-workflow-step="2"],body[data-active-trade="plumbing"][data-workflow-step="3"]) #options,body[data-workflow-step="3"] #options,body[data-workflow-step="4"] #options,body[data-workflow-step="6"] #options{display:none}body:not([data-workflow-step="4"]) #line-route-summary{display:none}
.plan-head .head-body{fill:var(--pipeology-canvas-57ec54);stroke:var(--pipeology-canvas-164c24);stroke-width:2.5}.plan-outdoor rect{fill:var(--pipeology-canvas-168cff);stroke:var(--pipeology-canvas-083b70);stroke-width:3}.plan-outdoor circle{stroke:var(--pipeology-canvas-082b4b);stroke-width:2}.plan-panel rect{fill:var(--pipeology-canvas-19201e);stroke:var(--pipeology-canvas-050807);stroke-width:3}.plan-panel text{fill:var(--pipeology-on-primary);font-weight:750}.plan-panel{cursor:grab}.route-clean{stroke:var(--pipeology-canvas-ee2424);stroke-width:5}.route-rough{stroke:var(--pipeology-canvas-ee2424)}.line-route.edit-selected .route-clean{stroke:var(--pipeology-canvas-ee2424);stroke-width:7;stroke-dasharray:10 3}.plan-head.edit-selected .head-body,.plan-outdoor.edit-selected rect,.plan-panel.edit-selected rect{stroke:var(--pipeology-selection);stroke-width:4;stroke-dasharray:5 2;filter:drop-shadow(0 0 3px white)}

body[data-workflow-step="3"] #workflow-results .estimate,body[data-workflow-step="3"] #workflow-results .heating-efficiency,body[data-workflow-step="3"] #workflow-results .explanation{display:none}

body[data-workflow-step="4"] .arrange-minimal span,body[data-workflow-step="4"] .touch-hint,body[data-workflow-step="4"] .room-context,body[data-workflow-step="4"] .arrange-extras,body[data-workflow-step="4"] .plan-room-type{display:none}.route{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.route.refrigerant{stroke:var(--pipeology-canvas-dd7950)}.route.control{stroke:var(--pipeology-canvas-688898)}.route.drain{stroke:var(--pipeology-canvas-4c93a9)}.route.power{stroke:var(--pipeology-canvas-c89732)}.route.duct{stroke:var(--pipeology-canvas-798d9a);stroke-width:9}.route.vent{stroke:var(--pipeology-canvas-88759d)}.room-hit{fill:transparent;stroke:transparent;cursor:grab}.room-hit:hover,.arrange-selected .room-hit{fill:var(--pipeology-selection-light);stroke:var(--pipeology-selection);stroke-width:3}.summary-totals{display:flex;gap:25px;margin:20px 0}.summary-totals strong{display:block;font-size:24px}.table-scroll{overflow:auto}.configuration .eyebrow{color:var(--pipeology-muted)}

.room-label-bg{fill:var(--pipeology-canvas-fffdf0);fill-opacity:.92;stroke:var(--pipeology-canvas-bdcbb6);stroke-width:1}.room-label{fill:var(--pipeology-canvas-294b37);font-size:12px;font-weight:600;pointer-events:none}.room-button[aria-pressed="true"] .room-label-bg{fill:var(--pipeology-selection)}.room-button[aria-pressed="true"] .room-label{fill:var(--pipeology-on-primary)}.room-button:focus-visible .room-hit,.room-button.arrange-selected .room-hit{stroke:var(--pipeology-selection);stroke-width:4;stroke-dasharray:9 4;fill:var(--pipeology-selection-light)}.pipe-cover{fill:none;stroke:var(--green);stroke-linecap:round;stroke-linejoin:round}.cover6{stroke-width:12}.cover3{stroke-width:7}.route-length{font-size:11px;fill:var(--pipeology-canvas-516649);paint-order:stroke;stroke:var(--pipeology-canvas-f6f5e9);stroke-width:3}.route-focused{filter:drop-shadow(0 0 3px #c59026)}.air{fill:none;stroke:var(--pipeology-canvas-83bdae);stroke-width:2;opacity:.6}.grade-handle path{fill:none;stroke:var(--pipeology-canvas-729569);stroke-width:6;stroke-dasharray:7 4}.grade-handle text{fill:var(--pipeology-canvas-395631);font-size:12px;font-weight:700}.panel>rect:first-child{fill:var(--pipeology-canvas-19201e);stroke:var(--pipeology-canvas-040906)}.panel text{fill:var(--pipeology-canvas-ffffff)}.route.gas{stroke:var(--pipeology-canvas-cc9c48)}.route.water-cold{stroke:var(--pipeology-canvas-428caf)}.route.water-hot{stroke:var(--pipeology-canvas-c56852)}

/* Local project submission flow */
.online-bar{display:flex;align-items:center;gap:1rem;padding:.7rem 1rem;border:1px dashed var(--pipeology-border);background:var(--pipeology-background);font-size:.8rem}.online-bar button{margin-left:auto}#submission-dialog{width:min(580px,94vw);max-height:90vh;overflow:auto}#submission-screen form{display:grid;gap:1rem}#submission-screen label{display:grid;gap:.4rem}#submission-screen input{padding:.7rem;border:1px solid var(--pipeology-border);border-radius:6px;font:inherit}#submission-screen button{margin:.5rem .5rem .5rem 0}#submission-error{color:var(--pipeology-danger)}

.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:24px 0}.choice-grid button{padding:22px;text-align:left;font-weight:700}.choice-grid button:disabled{opacity:.55;cursor:not-allowed}#completed-actions{display:flex;flex-wrap:wrap;gap:14px;padding:28px 0}#completed-actions[hidden]{display:none}#system-change-warning{max-width:550px}#system-change-confirm{background:var(--pipeology-warning);color:var(--pipeology-on-primary)}body[data-workflow-step="1"] #options{display:none}

#house-setup{width:min(820px,94vw);max-height:88vh;overflow:auto}#house-setup fieldset{margin:16px 0;border:1px solid var(--line);border-radius:10px;padding:14px}.setup-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px}.setup-counts>div{display:flex;align-items:center;gap:8px}.setup-counts span{flex:1}.setup-counts button{padding:6px 12px}.setup-counts output{min-width:22px;text-align:center}

/* Arrange: toolbar belongs to the house; canvas and workflow share row two. */
body[data-workflow-step]:not([data-workflow-step="1"]) .workspace{row-gap:12px}
body[data-workflow-step]:not([data-workflow-step="1"]) .visual-column{display:contents}
body[data-workflow-step]:not([data-workflow-step="1"]) .builder-header{grid-column:1;grid-row:1;display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
body[data-workflow-step]:not([data-workflow-step="1"]) .builder-body{grid-column:1;grid-row:2;min-width:0}
body[data-workflow-step]:not([data-workflow-step="1"]) .configuration{grid-column:2;grid-row:2;align-self:start}
body[data-workflow-step]:not([data-workflow-step="1"]) #arrange-controls:not([hidden]){display:contents}
body[data-workflow-step]:not([data-workflow-step="1"]) .builder-header .scene-header,
body[data-workflow-step]:not([data-workflow-step="1"]) .arrange-minimal span,
body[data-workflow-step]:not([data-workflow-step="1"]) .touch-hint,
body[data-workflow-step]:not([data-workflow-step="1"]) #opening-add-controls,
body[data-workflow-step]:not([data-workflow-step="1"]) #opening-context,
body[data-workflow-step]:not([data-workflow-step="1"]) .room-context,
body[data-workflow-step]:not([data-workflow-step="1"]) .arrange-extras,
body[data-workflow-step]:not([data-workflow-step="1"]) #object-edit-actions,
body[data-workflow-step]:not([data-workflow-step="1"]) .level-navigation p,
body[data-workflow-step]:not([data-workflow-step="1"]) .scene-footer{display:none!important}
body[data-workflow-step]:not([data-workflow-step="1"]) .level-navigation{order:1;display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0}
body[data-workflow-step]:not([data-workflow-step="1"]) #level-tabs{gap:8px}
body[data-workflow-step]:not([data-workflow-step="1"]) #level-tabs button{text-transform:uppercase}
body[data-workflow-step]:not([data-workflow-step="1"]) .view-toolbar{order:2;margin:0}
body[data-workflow-step]:not([data-workflow-step="1"]) .arrange-minimal{order:3;margin-left:auto;padding:0}
/* Keep existing editing feedback available to assistive technology. */
body[data-workflow-step]:not([data-workflow-step="1"]) #arrange-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:760px){
 body[data-workflow-step]:not([data-workflow-step="1"]) .configuration{grid-column:1;grid-row:3}
 body[data-workflow-step]:not([data-workflow-step="1"]) .arrange-minimal{margin-left:0}
}

/* One persistent shell for steps 2–6. Hidden toolbar controls retain their
   natural footprint so changing steps does not move the workflow card. */
body[data-workflow-step]:not([data-workflow-step="1"]) .builder-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}
body[data-workflow-step]:not([data-workflow-step="1"]) #arrange-controls[hidden]{display:contents!important}
body[data-workflow-step]:not([data-workflow-step="1"]) #arrange-controls[hidden] .arrange-minimal{visibility:hidden}
body[data-workflow-step]:not([data-workflow-step="1"]) .level-navigation{grid-column:1;grid-row:1;order:initial}
body[data-workflow-step]:not([data-workflow-step="1"]) #level-navigation[hidden]{display:flex!important;visibility:hidden}
body[data-workflow-step]:not([data-workflow-step="1"]) .view-toolbar{grid-column:1;grid-row:1;order:initial;justify-content:flex-start;justify-self:start}
body[data-workflow-step]:not([data-workflow-step="1"]) .arrange-minimal{grid-column:2;grid-row:1;order:initial;margin:0;flex-wrap:nowrap}
body[data-workflow-step]:not([data-workflow-step="1"]) #layout-reset[hidden]{display:block!important;visibility:hidden}
body[data-workflow-step="3"] .view-toolbar,body[data-workflow-step="5"] .view-toolbar,body[data-workflow-step="6"] .view-toolbar{visibility:hidden}
body[data-workflow-step="5"] .builder-body>:not(#options):not(.step-end-actions),body[data-workflow-step="6"] .builder-body>:not(#workflow-results){display:none!important}
#sizing-panel,#options{background:var(--pipeology-background);border:1px solid var(--line);border-radius:16px;padding:24px;min-width:0;margin:0 0 20px}
#options fieldset{border:0;border-top:1px solid var(--pipeology-border);padding:18px 0;margin:10px 0;min-width:0}
#options legend{font-size:18px;font-weight:750;padding-right:8px}
#workflow-results{min-width:0}
#workflow-results>.results-intro{margin:0;padding:24px;border:1px solid var(--line);border-radius:16px}
#workflow-results .estimate,#workflow-results .explanation{min-width:0;gap:24px}
#workflow-results .estimate>*,#workflow-results .explanation>*{min-width:0}
body[data-workflow-step="3"] #workflow-results{margin-top:20px}
@media(max-width:760px){
 body[data-workflow-step]:not([data-workflow-step="1"]) .builder-header{grid-template-columns:1fr}
 body[data-workflow-step]:not([data-workflow-step="1"]) .arrange-minimal{grid-column:1;grid-row:2}
 #workflow-results .estimate,#workflow-results .explanation{grid-template-columns:1fr}
}

/* Do not anchor page scrolling to content replaced during a step change. */
body[data-workflow-step] .workspace{overflow-anchor:none}
.step-end-actions{display:flex;justify-content:flex-end;margin:24px 0}
.step-end-actions #workflow-continue{width:auto;margin:0}
body[data-workflow-step="1"] .step-end-actions,body[data-workflow-step="6"] .step-end-actions{display:none}
body[data-workflow-step="3"] .view-toolbar{visibility:visible}
body[data-workflow-step="3"] #add-level[hidden]{display:block!important;visibility:hidden}

body[data-workflow-step="3"] .plan-room-type{display:none}

.plan-dimensions{pointer-events:none}.plan-dimensions path{stroke:var(--pipeology-canvas-758b79);stroke-width:1;fill:none}.plan-dimensions text{font-size:12px;fill:var(--pipeology-canvas-506855)}.route-outdoor-reference rect{fill:var(--pipeology-canvas-168cff);stroke:var(--pipeology-canvas-083b70);stroke-width:2;stroke-dasharray:4 3}.route-outdoor-reference text{font-size:11px;fill:var(--pipeology-canvas-24587b)}

/* One canonical system; only Place Equipment exposes its visual/editing layers. */
body:not([data-workflow-step="4"]) [data-hvac-layer]{display:none!important}
body:not([data-workflow-step="3"]) #sizing-overlay{display:none!important}

.plan-central{cursor:grab}.plan-central:active{cursor:grabbing}.plan-central.edit-selected>rect{stroke:var(--pipeology-selection);stroke-width:5;stroke-dasharray:6 3}

#route-service-controls{grid-column:1/-1}.trade-tool-row{display:flex;gap:8px;justify-content:center;padding:10px;flex-wrap:wrap}
#route-service-controls[hidden]{display:none}
.service-dot{display:inline-block;width:18px;height:4px;margin-right:5px;vertical-align:middle;background:var(--pipeology-danger)}
.service-dot.service-venting{background:var(--pipeology-primary)}.service-dot.service-gas{background:var(--pipeology-primary-dark)}
.line-route.service-venting .route-clean,.route-rough.service-venting{stroke:var(--pipeology-canvas-2671c8)}
.line-route.service-gas .route-clean,.route-rough.service-gas{stroke:var(--pipeology-canvas-202020)}

.plan-central text{font-size:11px;letter-spacing:0;font-weight:700;pointer-events:none}

/* Power retains the established gold electrical route color. */
.service-dot.service-power{background:var(--pipeology-warning)}
.line-route.service-power .route-clean,.route-rough.service-power{stroke:var(--pipeology-canvas-c89732)}

/* The route is the control: generous invisible hit area, unchanged visible pipe width. */
.equipment-mode .line-route,.equipment-mode .line-route .route-hit{cursor:pointer}
.line-route .route-hit{stroke-width:24;stroke-linecap:round;stroke-linejoin:round}
.line-route .route-clean{pointer-events:none}
.line-route.edit-selected .route-clean{filter:drop-shadow(0 0 2px #fff);stroke-dasharray:10 3}

.material-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.material-summary section{padding:12px;background:var(--pipeology-background);border-radius:8px}.material-summary p{margin:6px 0 0}.service-amps{display:flex;gap:8px;flex-wrap:wrap}.confirmed-footage{margin-top:14px}

.pipe-cover-estimate dl{display:grid;grid-template-columns:minmax(140px,1fr) 1fr;gap:8px}.pipe-cover-estimate dd{margin:0;font-weight:650}.pipe-cover-estimate li{font-size:12px;margin:6px 0}

.electrical-summary{border-top:1px solid var(--pipeology-border);margin-top:20px;padding-top:16px;font-size:.9rem}.electrical-summary h3{font-size:.85rem;letter-spacing:.12em}.electrical-summary dl{display:grid;grid-template-columns:minmax(110px,1fr) 2fr;gap:6px 16px}.electrical-summary dd{margin:0}.electrical-summary p{margin:8px 0}.electrical-summary[hidden]{display:none}

/* Universal choice contract: render aria-pressed/aria-selected from state.
   Actions without these attributes retain their normal styling. */
button:is([aria-pressed],[aria-selected]){background:var(--pipeology-selection-light);color:var(--pipeology-selection-dark);box-shadow:none}
button:is([aria-pressed],[aria-selected]):hover:not([aria-pressed="true"]):not([aria-selected="true"]):not(:disabled):not([aria-disabled="true"]){background:var(--pipeology-selection-light)}
button:is([aria-pressed="true"],[aria-selected="true"]):not(:disabled):not([aria-disabled="true"]){background:var(--green);color:var(--pipeology-on-primary);border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green);font-weight:700}
button:is([aria-pressed],[aria-selected]):is(:disabled,[aria-disabled="true"]){background:var(--pipeology-selection-light);color:var(--pipeology-selection-dark);box-shadow:none;opacity:.55;cursor:default}
button:focus-visible{outline:3px solid var(--pipeology-border);outline-offset:3px}

/* Steps 7/8 use the established left-content/right-workflow shell. */
body[data-workflow-step]:is([data-workflow-step="7"],[data-workflow-step="8"],[data-workflow-step="9"],[data-workflow-step="10"]) .visual-column{display:none}
body[data-workflow-step]:is([data-workflow-step="7"],[data-workflow-step="8"],[data-workflow-step="9"],[data-workflow-step="10"]) #options{display:none}
#next-workspace{grid-column:1;grid-row:1;padding:28px;background:var(--pipeology-background);border:1px solid var(--line);border-radius:16px}
body[data-workflow-step]:is([data-workflow-step="7"],[data-workflow-step="8"],[data-workflow-step="9"],[data-workflow-step="10"]) .configuration{grid-column:2;grid-row:1}
.persistent-choices{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.rebate-result{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.external-program{display:inline-block;margin:12px 0;font-weight:700}
@media(max-width:760px){body[data-workflow-step]:is([data-workflow-step="7"],[data-workflow-step="8"],[data-workflow-step="9"],[data-workflow-step="10"]) .configuration{grid-column:1;grid-row:auto}}
.rebate-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:16px;margin:20px 0}.rebate-option{padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--pipeology-background)}.rebate-option h4{margin:0 0 10px}.rebate-option summary{cursor:pointer;font-weight:700}.current-design{display:inline-block;background:var(--green);color:var(--pipeology-on-primary);padding:5px 9px;border-radius:6px;font-size:.75rem}
#heating-cost{margin-top:24px}#heating-cost details{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:8px}#heating-cost summary{cursor:pointer;font-weight:700}#heating-cost .cost-table{overflow-x:auto}#heating-cost th,#heating-cost td{padding:12px;text-align:left}#heating-cost input{max-width:180px;display:block}
.heating-comparison{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:20px 0}.heating-comparison>article{grid-column:var(--card-column);padding:18px 12px;border:1px solid var(--line);border-radius:12px;background:var(--pipeology-background);min-width:0}.heating-comparison .system-card{grid-row:1;min-height:220px}.heating-comparison .operating-card{grid-row:2;min-height:190px;background:var(--pipeology-background)}.heating-comparison h3{font-size:12px;letter-spacing:.05em}.heating-comparison strong{font-size:26px;display:block;margin:16px 0}.heating-comparison p,.heating-comparison label{font-size:12px}.heating-comparison select{width:100%;min-width:0}.heating-comparison .operating-money,.heating-comparison .upgrade-cost-impact b{font-size:32px;font-weight:700}.operating-card label{font-size:0}.operating-card select{font-size:14px}#cost-method{font-size:13px}
@media(max-width:800px){.heating-comparison{grid-template-columns:1fr 1fr}.heating-comparison>.system-card,.heating-comparison>.operating-card{grid-column:auto;grid-row:auto}.heating-comparison>.system-card{grid-column:1}.heating-comparison>.operating-card{grid-column:2}}
@media(max-width:480px){.heating-comparison{grid-template-columns:1fr}.heating-comparison>.system-card,.heating-comparison>.operating-card{grid-column:1;min-height:0}.heating-comparison>.operating-card{margin-top:-12px}}

.system-electric,.cost-electric{--card-column:1}.system-pump,.cost-pump{--card-column:2}.system-gas,.cost-gas{--card-column:3}.system-dual,.cost-dual{--card-column:4}.system-current,.cost-current{--card-column:5}

.system-upgrades,.cost-upgrades{--card-column:6}.upgrade-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.home-upgrades-panel{padding:20px;border:1px solid var(--line);border-radius:12px}.upgrade-field select{width:100%}.upgrade-cost-impact{line-height:1.6}

.heating-comparison .upgrade-cost-impact b{line-height:normal;overflow-wrap:anywhere}

/* Both cards derive this highlight from the canonical proposed system, never current equipment. */
.heating-comparison>article.your-system{position:relative;border-color:var(--pipeology-warning);box-shadow:0 0 0 2px var(--pipeology-warning)}
.your-system-badge{position:absolute;top:-11px;left:10px;background:var(--pipeology-warning-light);color:var(--pipeology-warning);border:1px solid var(--pipeology-warning);border-radius:5px;padding:3px 7px;font-size:10px;font-weight:700;letter-spacing:.06em;line-height:1.3}

/* HOME hero: local artwork, real accessible copy, existing cream/green palette. */
.intro.cabin-hero{position:relative;isolation:isolate;display:flex;align-items:center;min-height:460px;aspect-ratio:2/1;padding:clamp(24px,4vw,60px);margin:28px 0 34px;overflow:hidden;border-radius:14px;background:var(--pipeology-primary-dark)}
.cabin-hero picture,.cabin-hero picture img{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:-2}.cabin-hero picture img{object-fit:cover;object-position:center}
.cabin-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--pipeology-overlay-effect-1),var(--pipeology-overlay-effect-2) 42%,transparent 66%)}
.cabin-hero-copy{max-width:570px}.intro.cabin-hero h1{color:var(--pipeology-primary-light);font-size:clamp(38px,4.5vw,64px);font-weight:500;letter-spacing:-1.8px;line-height:1.07;text-shadow:0 2px 14px var(--pipeology-overlay-142c2440)}.intro.cabin-hero em{color:var(--pipeology-primary-light)}.intro.cabin-hero p{color:var(--pipeology-primary-light);font-size:clamp(14px,1.4vw,18px);margin:0;max-width:330px}
@media(max-width:700px){.intro.cabin-hero{aspect-ratio:auto;min-height:0;display:block;padding:0;margin-top:18px}.cabin-hero picture{position:relative;aspect-ratio:2/1;z-index:auto}.cabin-hero picture img{z-index:auto;object-position:center}.cabin-hero::before{display:none}.cabin-hero-copy{padding:24px}.intro.cabin-hero h1{font-size:38px;letter-spacing:-1px;margin-bottom:16px}.intro.cabin-hero p{font-size:14px}}


/* Customer guidance uses the same result-banner dimensions and finish. */
#workflow-results>.home-start-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.home-start-banner strong{font-weight:600}.home-start-arrow{font-size:42px;line-height:1;color:var(--pipeology-primary);flex:none}

/* HOME is a transient landing view, never a replacement project snapshot. */
body[data-home-landing="true"] .visual-column,body[data-home-landing="true"] .builder-header,body[data-home-landing="true"] .builder-body,body[data-home-landing="true"] #next-workspace{display:none!important}
body[data-home-landing="true"] .workspace{align-items:start}
body[data-home-landing="true"] #home-landing{grid-column:1;grid-row:2;min-width:0}
body[data-home-landing="true"] .configuration{grid-column:2;grid-row:2}
body[data-home-landing="true"] #workflow-continue,body[data-home-landing="true"] #completed-actions{display:none!important}
#home-landing .home-start-banner{width:100%;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:32px 28px;border:1px solid var(--line);border-radius:16px;background:var(--pipeology-background);color:var(--pipeology-primary);margin:0 0 12px}
#home-landing .home-start-banner:hover{background:var(--pipeology-background);border-color:var(--pipeology-border)}
.home-start-kicker{display:block;font-size:12px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase;margin-bottom:20px}
#home-landing .home-start-banner strong{display:block;font-family:Georgia,serif;font-weight:400;font-size:clamp(38px,4.3vw,64px);line-height:1.05;letter-spacing:-1.8px}
#home-landing .home-start-arrow{font-size:clamp(70px,8vw,120px);line-height:1;flex:none}
#home-landing>.results-intro{margin:0;padding:24px;border:1px solid var(--line);border-radius:16px;line-height:1.6}
@media(max-width:760px){body[data-home-landing="true"] #home-landing{grid-column:1;grid-row:1}body[data-home-landing="true"] .configuration{grid-column:1;grid-row:2}#home-landing .home-start-banner{padding:24px 20px}.home-start-kicker{font-size:10px}#home-landing .home-start-arrow{font-size:60px}}

/* Only completed Step 3 results explain preliminary calculation status. */
#heat-loss-preliminary-notice{display:none;margin:0 0 24px;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--pipeology-background);font-size:14px;line-height:1.6}
body[data-workflow-step="3"] #sizing-results:not([hidden])>#heat-loss-preliminary-notice{display:block}

/* Shared grid row stretches both HOME columns to identical top/bottom edges. */
body[data-home-landing="true"] .workspace{align-items:stretch}
body[data-home-landing="true"] #home-landing{display:flex;flex-direction:column;align-self:stretch;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--pipeology-background)}
body[data-home-landing="true"] .configuration{align-self:stretch}
#home-landing .home-start-banner{flex:none;margin:0;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:32px 28px}
.home-video-preview{display:flex;flex-direction:column;flex:1;padding:28px;min-height:280px}
.home-video-preview>.eyebrow{margin-bottom:8px}.home-video-preview>p:not(.eyebrow){font-size:14px;color:var(--muted);margin-bottom:20px}
.home-video-poster{flex:1;min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;border-radius:12px;text-align:center;color:var(--pipeology-primary-light);background:linear-gradient(135deg,var(--pipeology-primary-dark),var(--pipeology-primary));border:1px solid var(--pipeology-border)}
.home-video-play{display:grid;place-items:center;width:62px;height:62px;padding-left:4px;border:1px solid var(--pipeology-overlay-faf3d8a0);border-radius:50%;background:var(--pipeology-overlay-ffffff12);font-size:23px}
.home-video-caption{font-family:Georgia,serif;font-size:22px}.home-video-soon{font-size:11px;letter-spacing:1px;color:var(--pipeology-primary-light)}
@media(max-width:760px){body[data-home-landing="true"] #home-landing,body[data-home-landing="true"] .configuration{align-self:start}.home-video-preview{min-height:0;padding:24px 20px}.home-video-poster{min-height:210px}#home-landing .home-start-banner{padding:24px 20px}}

/* One destructive reset at the end of Collect Rebates; Undo remains intact. */
#layout-reset,#reset,#sizing-reset{display:none!important}
.project-reset-action{color:var(--pipeology-danger);background:transparent;border-color:var(--pipeology-border);margin-top:20px;font-size:12px;font-weight:700;letter-spacing:1px}
.project-reset-action:hover{background:var(--pipeology-background)}

.start-here-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.start-here-header h2{margin:0}.reset-new-project{font-size:10px;letter-spacing:1px;padding:7px 10px;background:transparent;flex:none}
.new-project-choices{display:grid;gap:12px;margin:24px 0}.new-project-choices button{padding:18px;text-align:left;font-size:13px}#reset-project-dialog{max-width:580px}
body[data-no-house="true"] .house-stage,body[data-no-house="true"] .house-bottom-views{visibility:hidden}

.plan-mode #stack-line-routes,.plan-mode #stack-route-stroke{display:none}.stack-route-label{font-size:12px;fill:var(--pipeology-canvas-94302a);paint-order:stroke;stroke:var(--pipeology-canvas-fffdf6);stroke-width:3px;pointer-events:none}
body[data-workflow-step="4"] #object-edit-actions[data-route-selected="true"]:not([hidden]){display:flex!important}
body[data-workflow-step="4"] #object-edit-actions[data-route-selected="true"]>button:not(#object-remove){display:none}
/* Physical material layer shares canonical editing; it is not a refrigerant route. */
body[data-workflow-step="4"] #house-objects .installed{display:none}
.plan-mode #physical-cover-layer{display:none}
.physical-cover{cursor:grab;fill:var(--pipeology-primary);stroke:var(--pipeology-primary);stroke-width:2}
.physical-cover path{stroke:var(--pipeology-canvas-fffdf5)}
.physical-cover .cover-body{stroke:var(--pipeology-primary);stroke-linecap:butt}
.cover-hit{stroke:transparent;stroke-width:28;pointer-events:stroke}
.physical-cover.edit-selected{filter:drop-shadow(0 0 4px #d4ad47)}
.physical-cover.edit-selected .cover-body{stroke:var(--green)}
.capacity-warning{color:var(--pipeology-warning)}.physical-cover.capacity-warning .cover-body{stroke:var(--pipeology-primary)}
#cover-palette{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--pipeology-background);display:flex;gap:12px;flex-wrap:wrap;align-items:center}
#cover-palette label{font-size:12px}#cover-palette .fine{flex-basis:100%;margin:0}
#physical-cover-summary{font-size:12px;border-top:1px solid var(--line);padding:12px 0}
#house[data-drawing-layer="cover"] .line-route:not(.edit-selected){opacity:.4}
#house:not([data-drawing-layer="cover"]) .physical-cover:not(.edit-selected){opacity:1}
#house[data-drawing-layer="power"] .line-route:not(.service-power):not(.edit-selected){opacity:.4}
#house[data-drawing-layer="refrigerant"] .service-power:not(.edit-selected){opacity:.4}
.stack-equipment.edit-selected>rect{stroke:var(--pipeology-selection);stroke-width:4}

/* Shared Step 4 input contract: Hand moves; Pencil only draws. */
#house.equipment-mode[data-edit-mode="hand"] [data-object]{cursor:grab}
#house.equipment-mode[data-edit-mode="pencil"],#house.equipment-mode[data-edit-mode="pencil"] *{cursor:crosshair!important}
#connection-mode{grid-column:1/-1;justify-self:stretch;text-align:center;font-weight:700;color:var(--green,var(--pipeology-text));display:block;padding:12px 10px 0;margin:0}
body[data-workflow-step="4"] #object-electricalPanel{display:none}
#remote-panel-status{padding:.65rem;background:var(--pipeology-background);border-radius:8px}
#remote-panel-dialog{max-width:420px;border:1px solid var(--pipeology-border);border-radius:14px;padding:1.5rem;background:var(--pipeology-background)}
#remote-panel-dialog::backdrop{background:var(--pipeology-overlay-102d2266)}
#remote-panel-dialog input{width:8rem;padding:.5rem}
.stack-panel text{font-size:12px;pointer-events:none}

/* Connection tools are a subordinate submenu, never an always-open toolbar. */
#cover-palette[hidden],#service-legend[hidden]{display:none!important}

#indoor-style-dialog{max-width:440px;border:1px solid var(--pipeology-primary);border-radius:16px;padding:24px;background:var(--cream,var(--pipeology-background))}
.indoor-style-choices{display:grid;gap:12px;margin:20px 0}.indoor-style-choices button{padding:16px}

/* Explicit room-list checkpoint: input, calculate, then review. */
.setup-calculate-checkpoint{margin-block:3rem;text-align:center}.setup-calculate-checkpoint p{margin:0 0 .65rem;color:var(--muted)}

.plan-room.room-overlap>rect:first-child{stroke:var(--pipeology-canvas-b17b36);stroke-width:3;stroke-dasharray:7 4}

/* Heat-loss hierarchy: house → floor → room; retain the existing result cards. */
#sizing-total-label,.sizing-floor-results>h3{font-weight:800;line-height:1.15;text-transform:uppercase;letter-spacing:.015em;margin-bottom:10px}
#sizing-total-label{font-size:clamp(30px,3vw,38px);margin-top:40px}
.sizing-floor-results>h3{font-size:clamp(26px,2.6vw,32px);margin-top:48px}
#sizing-total-label+.sizing-totals,.sizing-floor-results>h3+.sizing-totals{margin-top:0}

/* Custom room boundaries share the normal room selection language. */
.plan-room>polygon,.plan-room>path.room-shape{stroke:var(--pipeology-canvas-839b86);stroke-width:4}.plan-room.selected>polygon,.plan-room.edit-selected>polygon,.plan-room.selected>path.room-shape,.plan-room.edit-selected>path.room-shape{stroke:var(--pipeology-selection);stroke-width:6;stroke-dasharray:10 4}.plan-room.room-overlap>polygon,.plan-room.room-overlap>path.room-shape{stroke:var(--pipeology-canvas-b17b36);stroke-width:3;stroke-dasharray:7 4}.plan-room text[data-room-area]{pointer-events:auto;text-decoration:underline}#floor-area-summary{font-weight:700;color:var(--pipeology-text)}

/* Room actions belong to the visible Step 2 header, alongside Undo / Fit Rooms. */
:is(body:not([data-active-trade="plumbing"])[data-workflow-step="2"],body[data-active-trade="plumbing"][data-workflow-step="3"]) #room-intent-controls:not([hidden]){display:flex;grid-column:1/-1;gap:8px;flex-wrap:wrap;align-items:center}:is(body:not([data-active-trade="plumbing"])[data-workflow-step="2"],body[data-active-trade="plumbing"][data-workflow-step="3"]) #floor-area-summary{grid-column:1/-1;margin:4px 0}

/* Combine selects existing canonical rooms; it never starts a drawing tool. */
#combine-controls{display:flex;gap:8px;grid-column:1/-1}
#combine-controls[hidden]{display:none}
#house.combining-rooms [data-room]{cursor:pointer}
.plan-room.combine-selected>rect,.plan-room.combine-selected>polygon,.plan-room.combine-selected>path.room-shape{fill:var(--pipeology-selection-light);stroke:var(--pipeology-selection);stroke-width:7}
#combine-dialog label{display:grid;gap:8px}
#combine-dialog button{margin:12px 8px 0 0}
/* Step 2 room tools stay together beside the canvas; other steps keep their docks. */
#plan-level-dock{display:none}
:is(body:not([data-active-trade="plumbing"])[data-workflow-step="2"],body[data-active-trade="plumbing"][data-workflow-step="3"]) #plan-level-dock:not([hidden]){display:flex;grid-column:1;grid-row:2;align-items:center;justify-content:center;gap:14px;padding:12px 14px;flex-wrap:wrap}
:is(body:not([data-active-trade="plumbing"])[data-workflow-step="2"],body[data-active-trade="plumbing"][data-workflow-step="3"]) #plan-level-dock>span{font-size:11px;letter-spacing:3px;color:var(--pipeology-muted)}
:is(body:not([data-active-trade="plumbing"])[data-workflow-step="2"],body[data-active-trade="plumbing"][data-workflow-step="3"]) .house-stage:has(#plan-level-dock:not([hidden]))>.house-scroll{grid-row:3}
:is(body:not([data-active-trade="plumbing"])[data-workflow-step="2"],body[data-active-trade="plumbing"][data-workflow-step="3"]) .house-stage>#house-tools{grid-row:2 / span 2}
:is(body:not([data-active-trade="plumbing"])[data-workflow-step="2"],body[data-active-trade="plumbing"][data-workflow-step="3"]) #plan-objects .plan-compass:nth-of-type(2){display:none}
#room-edit-tools:not([hidden]){display:flex;flex-direction:column;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--pipeology-border)}
#room-edit-tools[hidden]{display:none}
:is(body:not([data-active-trade="plumbing"])[data-workflow-step="2"],body[data-active-trade="plumbing"][data-workflow-step="3"]) #room-edit-tools #combine-controls,
:is(body:not([data-active-trade="plumbing"])[data-workflow-step="2"],body[data-active-trade="plumbing"][data-workflow-step="3"]) #room-edit-tools #room-intent-controls{flex-direction:column;align-items:stretch;gap:10px}
#room-edit-tools button{width:100%}
#recalculate-status{font-size:12px;line-height:1.45;margin:0;color:var(--pipeology-text)}
.plan-room.reshape-selected>rect,.plan-room.reshape-selected>polygon,.plan-room.reshape-selected>path.room-shape{fill:var(--pipeology-selection-light);stroke:var(--pipeology-selection);stroke-width:7}
/* Opening setup belongs to the right tool column, never the page/modal corner. */
#opening-setup-dock:empty{display:none}
#room-edit-tools #door-kind-dialog,
#room-edit-tools #opening-context{
 position:static;inset:auto;margin:0;box-sizing:border-box;width:100%;min-width:0;max-width:100%;
 padding:12px 8px;border:1px solid var(--pipeology-border);border-radius:10px;background:var(--cream,var(--pipeology-background));color:var(--pipeology-text);
}
#room-edit-tools #door-kind-dialog:not([open]){display:none}
:is(body:not([data-active-trade="plumbing"])[data-workflow-step="2"],body[data-active-trade="plumbing"][data-workflow-step="3"]) #room-edit-tools #opening-context:not([hidden]){display:block!important}
#opening-setup-dock h2,#opening-setup-dock h3{font-size:15px;line-height:1.3;margin:0 0 10px}
#opening-setup-dock .sizing-actions{display:flex;flex-direction:column;gap:8px}
#opening-setup-dock label{font-size:12px;display:block}
#opening-setup-dock label[hidden]{display:none}
#opening-setup-dock input{width:100%;min-width:0;box-sizing:border-box}
#opening-setup-dock p{font-size:12px;line-height:1.4}
#opening-setup-dock button{white-space:normal;overflow-wrap:anywhere;margin-top:8px}

/* Continuous exterior opening placement; screen-space strokes stay subtle at any zoom. */
.opening-wall-surface{stroke:var(--pipeology-canvas-47805b);stroke-width:5;opacity:.4;vector-effect:non-scaling-stroke;pointer-events:none}
.opening-live-preview{stroke-width:9;vector-effect:non-scaling-stroke;pointer-events:none;stroke:var(--pipeology-canvas-397eaa)}
.opening-live-preview.door{stroke:var(--pipeology-canvas-97652b)}
#opening-staging{text-align:center;margin-top:10px}#opening-staging[hidden]{display:none}#staged-opening{touch-action:none;cursor:grab;width:100%;padding:6px;background:transparent;border:1px dashed var(--pipeology-border);position:relative;z-index:30;text-align:center!important}#staged-opening:active{cursor:grabbing}#staged-opening svg{display:block;width:100%;height:72px;pointer-events:none}#staged-opening span{display:block}#opening-staging p{font-size:12px;color:var(--pipeology-primary);margin:6px 0}#staged-opening:focus-visible{outline:3px solid var(--pipeology-border);outline-offset:3px}

#reshape-selection{font-size:.78rem}#reshape-room-choices label{display:flex;align-items:center;gap:.4rem;margin:.4rem 0}#reshape-room-choices input{width:auto}

/* Step 2 uses the one Undo docked in its right tool column. No top-row remnant. */
:is(body:not([data-active-trade="plumbing"])[data-workflow-step="2"],body[data-active-trade="plumbing"][data-workflow-step="3"]) .arrange-minimal,:is(body:not([data-active-trade="plumbing"])[data-workflow-step="2"],body[data-active-trade="plumbing"][data-workflow-step="3"]) #undo{display:none!important}

.plan-room.dead-space>rect:not([data-reshape]),.plan-room.dead-space>polygon,.plan-room.dead-space>path.room-shape{fill:var(--pipeology-canvas-ebe7da);stroke-dasharray:5 4}
.plan-room.dead-space.reshape-selected>rect:not([data-reshape]),.plan-room.dead-space.reshape-selected>polygon,.plan-room.dead-space.reshape-selected>path.room-shape{fill:var(--pipeology-selection-light)}
#dead-space-load{font-size:12px;font-weight:700}#dead-space-load>div{display:flex;gap:6px;margin-top:6px}#dead-space-load button{text-align:center;min-height:36px}

body:not([data-workflow-step="6"]) #mini-split-recommendations{display:none}
#mini-split-recommendations{margin-top:40px}.mini-recommendation-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.mini-recommendation-cards article{background:var(--pipeology-background);border-radius:9px;padding:20px}.mini-recommendation-cards strong{font-size:20px}@media(max-width:700px){.mini-recommendation-cards{grid-template-columns:1fr}}

body:not([data-workflow-step="6"]) #catalog-product-quote{display:none}
#catalog-product-quote{margin-top:2rem}#catalog-product-quote li{margin-bottom:1rem;overflow-wrap:anywhere}#catalog-product-quote ul{padding-left:1.1rem}

/* HVAC serving groups preserve individual room boundaries. */
.hvac-zone-member>rect,.hvac-zone-member>polygon,.hvac-zone-member>path{stroke:var(--pipeology-canvas-b08b32)!important;stroke-width:3!important}
.hvac-zone-draft>rect,.hvac-zone-draft>polygon,.hvac-zone-draft>path{fill:var(--pipeology-canvas-d4e8cb)!important;stroke:var(--pipeology-canvas-286444)!important;stroke-width:3!important}
#hvac-zone-controls{margin-top:12px;display:grid;gap:8px}#zone-draft p,#zone-summary{font-size:12px}

/* Whole-card guidance for the Step 3 questionnaire; no layout changes. */
#sizing-panel[data-questionnaire="true"]{background:var(--pipeology-background);border-color:var(--pipeology-border);box-shadow:0 5px 18px var(--pipeology-overlay-effect-3)}
#sizing-panel[data-attention="true"]{border-color:var(--pipeology-warning);outline:2px solid var(--pipeology-warning);outline-offset:0;box-shadow:0 0 18px var(--pipeology-overlay-effect-4);animation:questionnaire-attention 2.8s ease-in-out infinite}
@keyframes questionnaire-attention{0%,100%{border-color:var(--pipeology-warning);outline-color:var(--pipeology-warning);box-shadow:0 0 18px var(--pipeology-overlay-effect-4)}50%{border-color:var(--pipeology-warning);outline-color:var(--pipeology-warning);box-shadow:0 0 7px var(--pipeology-overlay-effect-5)}}
@media(prefers-reduced-motion:reduce){#sizing-panel[data-attention="true"]{animation:none}}

#routing-explanation{font-size:18px;font-weight:700;line-height:1.65;max-width:68ch;margin:28px 0 32px;white-space:pre-line;color:var(--pipeology-primary)}

/* Step 2 HVAC zone membership; independent of room reshaping. */
#zone-members{display:grid;gap:8px}#zone-members label{display:flex;align-items:center;gap:8px;font-size:13px}#zone-members input{width:auto;accent-color:var(--pipeology-text)}#zone-select{max-width:100%;width:100%}

.catalog-price-summary{margin-top:28px;padding-top:20px;border-top:2px solid var(--pipeology-border)}.catalog-price-summary p{margin:0 0 18px}.catalog-final-price{margin-top:22px;padding-top:20px;border-top:1px solid var(--pipeology-border)}.catalog-final-price h4{margin:0 0 10px}.mini-recommendation-cards .catalog-final-amount{display:block;font-size:clamp(2rem,3.2vw,3.25rem);font-weight:800;line-height:1.1;color:var(--pipeology-text);overflow-wrap:anywhere}.catalog-price-review{font-size:14px;padding-left:20px}

.catalog-product-list{list-style:none;padding:0;margin:12px 0 24px}.catalog-product-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:20px}.catalog-product-picture{width:64px;height:64px;flex:0 0 64px;position:relative;overflow:hidden;border-radius:7px;background:var(--pipeology-background);border:1px solid var(--pipeology-border)}.catalog-product-picture img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:var(--pipeology-background)}.catalog-image-placeholder{display:flex;align-items:center;justify-content:center;text-align:center;height:100%;font-size:10px;line-height:1.3;color:var(--pipeology-muted)}.catalog-product-details{min-width:0;overflow-wrap:anywhere;flex:1}@media(max-width:420px){.catalog-product-row{gap:8px}.catalog-product-picture{width:56px;height:56px;flex-basis:56px}}

.matched-equipment{padding:24px;margin:20px 0;border:1px solid var(--pipeology-border);border-radius:14px;background:var(--pipeology-background);color:var(--pipeology-text)}.matched-equipment h2{font-size:14px;letter-spacing:.1em;margin:0 0 14px}.matched-machine{display:flex;gap:20px;align-items:center;margin:18px 0}.matched-machine h3{font-size:23px;margin:0 0 6px}.matched-machine p{margin:6px 0}.matched-machine .catalog-product-picture{width:112px;height:112px;flex:0 0 112px;background:var(--pipeology-surface);border-radius:8px;overflow:hidden}.matched-machine img{width:112px;height:112px;object-fit:contain}.equipment-spec-link{display:inline-block;margin-top:10px;padding:12px 16px;background:var(--pipeology-primary-dark);color:var(--pipeology-on-primary);border-radius:6px;font-size:12px;font-weight:700;text-decoration:none}.equipment-scenarios{display:flex;gap:8px;flex-wrap:wrap}.equipment-scenarios button{padding:8px 14px;background:var(--pipeology-surface);color:var(--pipeology-text);border:1px solid var(--pipeology-border);border-radius:6px}.equipment-scenarios button[aria-pressed=true]{background:var(--pipeology-selection);color:var(--pipeology-on-primary)}.equipment-sell-price{font-weight:700}.heating-efficiency .matched-equipment .fine{color:var(--pipeology-primary)}@media(max-width:500px){.matched-machine{align-items:flex-start;gap:12px}.matched-machine .catalog-product-picture{width:72px;height:72px;flex-basis:72px}.matched-machine img{width:72px;height:72px}.matched-machine h3{font-size:19px}.matched-equipment{padding:16px}}
.electrical-estimate{width:100%;box-sizing:border-box;margin-top:32px;padding:24px;border:1px solid var(--pipeology-border);border-radius:14px;background:var(--pipeology-background);color:var(--pipeology-text)}.electrical-estimate>h2{margin-top:0}.electrical-estimate .catalog-product-list{max-width:900px}.electrical-estimate details{font-size:.85rem}.electrical-estimate .catalog-product-row{margin-bottom:12px}

.electrical-methods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.electrical-method{min-width:0;padding:16px;border:1px solid var(--pipeology-border);border-radius:10px;background:var(--pipeology-surface);display:flex;flex-direction:column}.electrical-method h3{margin-top:0}.electrical-method .catalog-product-row{align-items:flex-start}.electrical-method .catalog-product-details{min-width:0;overflow-wrap:anywhere}.electrical-method-totals{margin-top:auto;border-top:1px solid var(--pipeology-border)}.electrical-method-totals small{font-weight:normal}@media(max-width:950px){.electrical-methods{grid-template-columns:1fr}}

.electrical-method-totals{display:flex;flex-direction:column;flex:1}.electrical-method-totals>p:first-child{margin-top:auto;padding-top:16px}.electrical-final-price{border-top:2px solid var(--pipeology-border);padding-top:16px;margin-top:8px;display:flex;flex-direction:column;gap:8px}.electrical-final-price>span{font-size:11px;font-weight:700;letter-spacing:.06em}.electrical-final-price .electrical-price-amount{font-size:34px;line-height:1.15;font-weight:800;font-variant-numeric:tabular-nums}.electrical-price-pending{font-size:14px;line-height:1.4}

.electrical-diagnostics{font-size:12px;color:var(--pipeology-muted)}.electrical-method-totals>p{display:flex;justify-content:space-between;gap:8px;font-size:12px}.electrical-method-totals>p br{display:none}

#mini-split-recommendations{margin-top:0}.system-requirements-label{font-size:12px;font-weight:700;letter-spacing:.06em}.system-scenario-cards article{padding:18px}.system-scenario-cards article p{margin:10px 0;font-size:13px}.system-scenario-cards article h3{margin:0 0 14px}.system-scenario-cards article h4{margin:14px 0 6px}.system-scenario-cards .system-head{margin:5px 0}.system-review-status{font-size:12px;opacity:.85}.installation-heading{margin:24px 0 12px}.installation-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.installation-tile{border:1px solid var(--pipeology-border);border-radius:10px;background:var(--pipeology-background);padding:16px;min-width:0}.installation-tile h4{font-size:11px;letter-spacing:.06em;color:var(--pipeology-text);margin:0 0 8px}.installation-value{display:block;font-size:24px;line-height:1.2;color:var(--pipeology-text)}.installation-tile:last-child .installation-value{font-size:18px;text-transform:capitalize}.installation-detail{font-size:12px;color:var(--pipeology-muted);margin-top:8px}.installation-detail p{margin:5px 0}.installation-detail p strong{white-space:nowrap}.system-diagnostics{font-size:12px;color:var(--pipeology-muted);margin-top:16px}@media(max-width:700px){.installation-summary{grid-template-columns:1fr}.system-scenario-cards{grid-template-columns:1fr}}

.electrical-packages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.electrical-package{border:1px solid var(--pipeology-border);border-radius:10px;padding:16px;background:var(--pipeology-surface)}.electrical-package small{display:block;margin-top:6px;font-weight:700}@media(max-width:600px){.electrical-packages{grid-template-columns:1fr}}#best-price-project{margin-top:24px;padding:28px;border:1px solid var(--pipeology-border);border-radius:16px;background:var(--pipeology-surface)}.project-total-lines>div{display:flex;justify-content:space-between;gap:16px;padding:10px 0}.project-total-lines dd{margin:0;font-weight:700}.project-total-hero{border-top:2px solid var(--pipeology-border);padding-top:20px;display:flex;flex-direction:column;gap:10px}.project-total-hero strong{font-size:clamp(32px,4vw,48px);font-weight:800;color:var(--pipeology-text)}.project-total-hero span{font-size:12px;font-weight:700;letter-spacing:.08em}.best-price-cta,.best-price-confirmation{margin-top:24px;padding:24px;background:var(--pipeology-background);border-radius:12px}.best-price-cta .primary{font-size:17px;padding:16px 24px}#best-price-dialog{max-width:480px;width:calc(100% - 40px);border:1px solid var(--pipeology-border);border-radius:14px;padding:24px}#best-price-dialog label{display:block;margin:12px 0}#best-price-dialog input{width:100%;box-sizing:border-box}.best-price-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}

.service-thermostat-wire .route-clean,.route-rough.service-thermostat-wire{stroke:var(--pipeology-canvas-d63384);stroke-dasharray:6 4}.service-dot.service-thermostat-wire{background:var(--pipeology-primary)}
.prices [role="button"]{cursor:pointer;border:1px solid transparent;border-radius:8px;padding:10px 6px}.prices [role="button"][aria-pressed="true"]{background:var(--pipeology-selection-light);border-color:var(--green);color:var(--green)}.prices [role="button"]:focus-visible{outline:3px solid var(--pipeology-border);outline-offset:3px}
.package-save{margin-top:36px;border-top:1px solid var(--line);padding-top:30px}.package-save h3{font-size:28px}.package-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.package-option{display:flex;flex-direction:column;align-items:stretch;text-align:left;padding:22px 18px;border:2px solid var(--line);border-radius:14px;background:var(--pipeology-background);min-width:0;color:var(--pipeology-text)}.package-option[aria-pressed="true"],.package-option[aria-pressed="true"]:hover{border-color:var(--green);background:var(--pipeology-selection-light);box-shadow:0 0 0 1px var(--green)}.package-choice{font-size:10px;letter-spacing:1.2px;font-weight:700;color:var(--pipeology-primary);margin-bottom:14px}.package-title{font-size:17px;font-weight:800;line-height:1.3;min-height:66px}.package-saving-badge{align-self:flex-start;background:var(--pipeology-primary);color:var(--pipeology-on-primary);padding:7px 12px;border-radius:25px;font-size:17px;font-weight:800;margin:8px 0 16px}.package-saving-badge.neutral{background:var(--pipeology-background);color:var(--pipeology-primary);font-size:11px}.package-images{display:flex;align-items:center;justify-content:center;gap:5px;min-height:150px;background:var(--pipeology-surface);border-radius:8px;padding:10px;margin-bottom:16px}.package-images figure{margin:0;flex:1;min-width:0}.package-images img{display:block;width:100%;height:115px;object-fit:contain}.package-images figcaption{font-size:9px;overflow-wrap:anywhere;text-align:center;color:var(--pipeology-muted)}.package-includes{font-size:13px;line-height:1.5}.package-water-price{font-size:12px;margin-top:8px}.package-math{margin-top:auto;padding-top:24px;font-size:10px}.package-math>span{display:flex;justify-content:space-between;gap:8px;margin:10px 0}.package-math b{font-size:13px;white-space:nowrap}.package-price-label{font-size:10px;letter-spacing:1px;margin-top:16px}.package-price{font-size:clamp(25px,2.5vw,36px);letter-spacing:-1px;margin:8px 0}.package-customer-total{margin:24px 0;padding:25px;background:var(--pipeology-primary);color:var(--pipeology-on-primary);border-radius:12px}.package-customer-total>span{font-size:11px;letter-spacing:1px}.package-customer-total p{margin:10px 0}.package-customer-total strong{display:block;font-size:38px}.package-customer-total small{display:block;margin-top:8px}.package-option .fine{font-size:11px;margin-top:4px}@media(max-width:800px){.package-options{grid-template-columns:1fr}.package-title{min-height:0}.package-images{max-width:100%;}.package-price{font-size:34px}}
.package-options .package-option[aria-pressed="true"] .package-choice,.package-options .package-option[aria-pressed="true"] .fine{color:inherit}

.package-subtitle{display:block;font-size:16px;font-weight:700;line-height:1.4;margin:4px 0 12px}

.rebate-preview{margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}.rebate-preview h3{font-size:26px}.rebate-preview-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin:24px 0}.rebate-preview-cards article{padding:24px;background:var(--pipeology-background);border-radius:12px}.rebate-preview-cards h4{margin:0}.rebate-preview-cards strong{display:block;font-size:32px;color:var(--pipeology-primary)}#rebate-body fieldset{border:1px solid var(--line);border-radius:8px;margin:18px 0;padding:16px}#rebate-body legend{font-weight:700}

/* Shared Step 6/7 rebate choices and income disclosure. */
.rebate-source .persistent-choices {display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.rebate-source button {min-height:58px;text-align:left;font-size:16px}
.rebate-source button[aria-pressed="true"],#rebate-body button[aria-pressed="true"] {background:var(--pipeology-selection);color:var(--pipeology-on-primary);border-color:var(--pipeology-selection)}
.income-table-panel {margin:20px 0;padding:16px;border:1px solid var(--pipeology-border);border-radius:12px;background:var(--pipeology-background)}
.income-table-scroll {overflow-x:auto}
.income-table-panel table {width:100%;border-collapse:collapse;font-size:16px}
.income-table-panel th,.income-table-panel td {padding:12px 10px;text-align:left;border-bottom:1px solid var(--pipeology-border);white-space:nowrap}
.income-table-panel thead {background:var(--pipeology-background)}
#rebate-body .rebate-preview-cards strong {display:block;font-size:32px;color:var(--pipeology-text);margin:12px 0}
@media(max-width:600px){.income-table-panel{padding:8px}.income-table-panel th,.income-table-panel td{padding:10px 7px;font-size:14px}}

/* Source selection + prominent rebate opportunity; one column on small screens. */
.rebate-preview-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;align-items:start;margin-top:24px}
.rebate-preview-layout .rebate-source{margin:0;border:0;padding:0;min-width:0}
.rebate-preview-layout .rebate-source legend{font-weight:750;margin-bottom:16px}
.rebate-result-column{background:var(--pipeology-background);border:1px solid var(--pipeology-border);border-radius:20px;padding:28px;min-width:0}
.rebate-opportunity .eyebrow{font-size:13px;letter-spacing:.1em;color:var(--pipeology-text);font-weight:750;margin:0 0 12px}
.rebate-opportunity-amount{display:block;font-size:clamp(40px,4.5vw,64px);line-height:1.08;letter-spacing:-.04em;color:var(--pipeology-text);margin:0 0 24px;font-weight:850}
.rebate-opportunity-amount span{display:block;font-size:16px;letter-spacing:.08em;margin-bottom:6px}
.rebate-opportunity h4{font-size:20px;margin:0 0 6px}
.rebate-opportunity .rebate-program-name{margin:0 0 16px;font-weight:650}
.rebate-preview-action{width:100%;margin-top:22px;min-height:52px;font-weight:750}
.rebate-result-column .rebate-opportunity+.rebate-opportunity{border-top:1px solid var(--pipeology-border);margin-top:22px;padding-top:22px}
#rebate-body .rebate-opportunity{background:var(--pipeology-background);border-radius:16px;padding:24px;margin:20px 0}
.rebate-details{display:inline-block;padding:14px 18px;border-radius:9px;text-decoration:none}
@media(max-width:760px){.rebate-preview-layout{grid-template-columns:1fr;gap:20px}.rebate-result-column{padding:24px}.rebate-opportunity-amount{font-size:48px}}

#f280-rebate-notice{box-sizing:border-box;position:fixed;width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:32px 38px;background:var(--pipeology-background);border:1px solid var(--pipeology-border);border-radius:22px;color:var(--pipeology-text);box-shadow:0 24px 90px var(--pipeology-overlay-142c3540)}
#f280-rebate-notice::backdrop{background:var(--pipeology-overlay-effect-6)}
.f280-notice-close{position:absolute;right:14px;top:12px}
.f280-report-icon{margin:0 auto 14px;width:64px;border-radius:12px;background:var(--pipeology-background);text-align:center;color:var(--pipeology-text);font-size:30px;line-height:1.15;padding:10px}.f280-report-icon span{display:block;font-size:12px;font-weight:800;letter-spacing:.12em}
#f280-notice-title{text-align:center;font-size:clamp(21px,2.4vw,28px);line-height:1.25;margin:0 15px 24px}
.f280-notice-rows section{display:flex;gap:16px;border-top:1px solid var(--pipeology-border);padding:17px 0}.f280-notice-rows section>span{font-size:25px;color:var(--pipeology-primary);flex:0 0 27px}.f280-notice-rows h3{font-size:15px;margin:0 0 8px}.f280-notice-rows p{margin:7px 0;line-height:1.5}
.f280-notice-actions{display:grid;grid-template-columns:1fr 1fr;gap:18px;border-top:1px solid var(--pipeology-border);padding-top:22px}.f280-notice-actions button{width:100%;min-height:52px;font-weight:750}.f280-notice-actions p{font-size:13px;line-height:1.45;margin:9px 0 0;text-align:center}
@media(max-width:600px){#f280-rebate-notice{padding:25px 20px}.f280-notice-actions{grid-template-columns:1fr}.f280-notice-rows section{gap:10px}#f280-notice-title{margin-left:0;margin-right:0}}
@media(min-width:601px){#f280-rebate-notice{padding:22px 32px}.f280-report-icon{font-size:24px;width:48px;padding:7px;margin-bottom:10px}#f280-notice-title{font-size:25px;margin-bottom:16px}.f280-notice-rows section{padding:12px 0}.f280-notice-rows p{font-size:14px;line-height:1.4;margin:6px 0}.f280-notice-rows .fine{font-size:12px}.f280-notice-actions{padding-top:16px}}

.package-price-selector{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.package-quick-choice{display:flex;flex-direction:column;gap:12px;padding:20px 14px;text-align:left;border:1px solid var(--pipeology-border);border-radius:14px;background:var(--pipeology-background);min-width:0}.package-quick-choice>span{font-weight:800}.package-quick-choice>b{color:var(--pipeology-text)}.package-quick-choice strong{font-size:clamp(23px,2.5vw,34px);margin-top:auto}.package-quick-choice[aria-pressed="true"]{background:var(--pipeology-selection);color:var(--pipeology-on-primary);border-color:var(--pipeology-selection)}.package-quick-choice[aria-pressed="true"] b{color:var(--pipeology-on-primary)}.package-inclusion{display:block;font-size:14px;font-weight:800;margin:8px 0 16px}.package-price-selector:empty{display:none}#scenario-price-legacy[hidden]{display:none}@media(max-width:650px){.package-price-selector{grid-template-columns:1fr}}
.estimate:has(#package-price-selector){grid-template-columns:minmax(0,1fr);gap:22px}.estimate:has(#package-price-selector) .range-track{display:none}.package-quick-choice strong{font-size:clamp(23px,2.3vw,30px);white-space:nowrap}.package-quick-choice small{line-height:1.4}

.project-value-summary{margin:24px 0 16px;display:flex;flex-direction:column;gap:24px}.project-value-summary>div{display:flex;flex-direction:column;gap:8px}.project-value-summary dt{font-size:13px;font-weight:750;letter-spacing:.08em}.project-value-summary dd{margin:0;font-size:clamp(32px,4vw,46px);line-height:1.15;font-weight:750;color:var(--pipeology-text)}.project-value-summary .project-value-total{border-top:2px solid var(--pipeology-border);padding-top:24px}.project-value-summary .project-value-total dd{font-size:clamp(36px,4.5vw,52px);font-weight:850}

.furnace-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.furnace-option{min-width:0;padding:1.25rem;border:2px solid var(--line,var(--pipeology-border));border-radius:18px;background:var(--pipeology-surface)}.furnace-option>button{width:100%;font:inherit;font-weight:800;padding:1rem;border-radius:10px}.furnace-option>button[aria-pressed=true]{background:var(--pipeology-selection);color:var(--pipeology-on-primary)}.furnace-option .electrical-methods{grid-template-columns:1fr}.f280-price-breakdown{padding:1rem;border-radius:14px;background:var(--pipeology-background)}.f280-price-breakdown p{display:flex;justify-content:space-between;gap:1rem}.f280-price-breakdown p:last-child{border-top:1px solid var(--pipeology-border);padding-top:1rem;font-size:1.35rem}@media(max-width:760px){.furnace-options{grid-template-columns:1fr}}

/* Brand colours only. Layout, spacing and typography remain in the existing rules. */
.topbar{background:var(--pipeology-primary-dark);color:var(--pipeology-on-primary)}
.topbar .preview-tag,.topbar .brand small{color:var(--pipeology-on-primary)}
h1,h2,h3,h4{color:var(--pipeology-text)}
a{color:var(--pipeology-primary-dark)}
.topbar a,.primary,.equipment-spec-link{color:var(--pipeology-on-primary)}
.primary,.equipment-spec-link,.brand-icon{background:var(--pipeology-primary);border-color:var(--pipeology-primary)}
.primary:hover,.equipment-spec-link:hover{background:var(--pipeology-primary-dark)}
button:hover{background:var(--pipeology-primary-light)}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:var(--pipeology-focus)}
input,select,textarea,.configuration,.estimate,.heating-efficiency,.sizing-results{background:var(--pipeology-surface);color:var(--pipeology-text)}
input[type=range],input[type=checkbox],input[type=radio],progress{accent-color:var(--pipeology-selection)}
.configuration{border-color:var(--pipeology-primary)}
.rebate-result-column,#rebate-body .rebate-opportunity,.f280-price-breakdown{background:var(--pipeology-primary-light);color:var(--pipeology-text)}
.rebate-opportunity-amount,.catalog-final-amount,.electrical-price-amount,.project-value-summary strong{color:var(--pipeology-text)}
button:is([aria-pressed=true],[aria-selected=true]):not(:disabled):not([aria-disabled=true]),button:is([aria-pressed=true],[aria-selected=true]):not(:disabled):hover{background:var(--pipeology-selection);border-color:var(--pipeology-selection);color:var(--pipeology-on-primary)}
.package-options .package-option[aria-pressed=true],.package-options .package-option[aria-pressed=true]:hover{background:var(--pipeology-selection);border-color:var(--pipeology-selection);color:var(--pipeology-on-primary)}
.package-option[aria-pressed=true] .package-choice,.package-option[aria-pressed=true] .fine,.package-quick-choice[aria-pressed=true] b{color:var(--pipeology-on-primary)}
.package-option[aria-pressed=true] .package-saving-badge{background:var(--pipeology-selection-light);color:var(--pipeology-selection-dark)}
/* Option states are centralized in option-cards.css. */
.package-customer-total,.package-customer-total h3{color:var(--pipeology-on-primary)}
.cabin-hero h1,.cabin-hero h2{color:var(--pipeology-on-primary)}

/* Selected = Pipeology blue. Semantic route colours remain unchanged. */
.package-option,.package-quick-choice,.furnace-option{background:var(--pipeology-surface)}
.package-price,.package-quick-choice strong,.project-value-summary dd,.catalog-final-amount,.electrical-price-amount{color:var(--pipeology-text)}
.package-option[aria-pressed=true] .package-price,.package-quick-choice[aria-pressed=true] strong{color:var(--pipeology-on-primary)}

.rebate-result-column,#rebate-body .rebate-opportunity,.f280-price-breakdown{background:var(--pipeology-secondary)}
button:disabled,button[aria-disabled=true]{background:var(--pipeology-secondary);color:var(--pipeology-muted)}

/* White content cards sit on subtle brand-blue section layers. Colours only. */
#mini-split-recommendations,.estimate,.heating-efficiency,.sizing-results,
#catalog-product-quote,.electrical-estimate,#best-price-project,.rebate-preview{
  background:var(--pipeology-blue-faint);
}
.rebate-result-column,#rebate-body .rebate-opportunity{
  background:var(--pipeology-blue-soft);
}
.installation-tile,.mini-recommendation-cards article,.efficiency-cards article,
.matched-equipment,.income-table-panel,.rebate-preview-cards article{
  background:var(--pipeology-surface);
}

.service-combustion-air .route-clean,.route-rough.service-combustion-air{stroke:var(--pipeology-primary);stroke-dasharray:3 5}.service-dot.service-combustion-air{background:var(--pipeology-primary)}

/* Shared architectural presentation: all trades, both house projections. */
.house-stage{background:var(--pipeology-blue-faint)}
#house-tools.house-add-rail{background:var(--pipeology-blue-soft);border-color:var(--pipeology-border)}
.plan-room>rect,.plan-room>polygon,.plan-room>.room-shape{fill:var(--pipeology-blue-faint);stroke:var(--pipeology-border)}
.plan-room.selected>rect,.plan-room.selected>polygon,.plan-room.selected>.room-shape,
.plan-room.edit-selected>rect,.plan-room.edit-selected>polygon,.plan-room.edit-selected>.room-shape{fill:var(--pipeology-blue-soft);stroke:var(--pipeology-primary)}
.plan-room [data-reshape],[data-opening-end]{fill:var(--pipeology-primary)}
.plan-room text,.room-label{fill:var(--pipeology-text)}
.plan-room .plan-room-type,.plan-compass{fill:var(--pipeology-muted)}
.plan-empty{fill:var(--pipeology-surface);stroke:var(--pipeology-border)}
.room-target:hover,.room-target:focus,.drop-slot,.valid-drop{fill:var(--pipeology-blue-soft);stroke:var(--pipeology-primary)}
.grade-handle path{stroke:var(--pipeology-primary)}
.grade-handle text{fill:var(--pipeology-text)}
#view-stack[aria-pressed="true"],#view-plan[aria-pressed="true"],#level-tabs [aria-pressed="true"]{background:var(--pipeology-primary);color:var(--pipeology-on-primary);border-color:var(--pipeology-primary)}
/* Retain readable architectural edges on pale surfaces. */
.wall-opening>rect{stroke:var(--pipeology-border)}
.plan-opening>rect:nth-of-type(2){stroke:var(--pipeology-primary)}
/* Physical pipe-cover palette: placement stays in Hand mode. */
#house-tools #cover-palette{padding:8px;display:block;min-width:0;background:var(--pipeology-surface)}
#cover-palette h3{font-size:12px;margin:0 0 10px}#cover-parts{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}
#house-tools .cover-part-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;padding:6px;font-size:10px;min-width:0;touch-action:none;cursor:grab;background:var(--pipeology-surface);color:var(--pipeology-primary);border:1px solid var(--pipeology-border)}
.cover-part-tile svg,.cover-drag-ghost svg{width:30px;height:30px}.cover-symbol-body{fill:var(--pipeology-surface);stroke:currentColor;stroke-width:2}
.cover-drag-ghost{position:fixed;z-index:10000;pointer-events:none;transform:translate(-50%,-50%);display:flex;align-items:center;gap:6px;padding:8px;background:var(--pipeology-surface);border:2px solid var(--pipeology-primary);color:var(--pipeology-primary);border-radius:8px;font-size:11px}.cover-drag-ghost.invalid{opacity:.5}
.cover-drop-preview{pointer-events:none;opacity:.6;color:var(--pipeology-primary)}
body[data-workflow-step="4"] #object-edit-actions[data-cover-selected="true"]>button:not([hidden]){display:inline-block!important}

/* Keep the missing dedicated indoor run actionable beside electrical results. */
.indoor-feeder-input{margin:20px 0;padding:20px;border:2px solid var(--pipeology-primary);border-radius:12px;background:var(--pipeology-background)}
.indoor-feeder-input label{display:flex;flex-direction:column;gap:8px;font-weight:700;max-width:420px}
.indoor-feeder-input input{box-sizing:border-box;width:100%;max-width:240px;padding:12px;border:1px solid var(--pipeology-border);border-radius:7px}
.indoor-feeder-input button{margin-top:8px;max-width:100%;white-space:normal}

/* Customer electrical quote hierarchy; calculated values remain server-owned. */
.electrical-estimate .electrical-equipment-heading{font-size:clamp(1.4rem,2.5vw,1.9rem);font-weight:800;line-height:1.2;margin:1.5rem 0 1rem}
.electrical-combined-final{display:flex;flex-direction:column;gap:.5rem;border-top:2px solid var(--pipeology-border);margin-top:1.5rem;padding-top:1.25rem;min-width:0}
.electrical-combined-final>span{font-size:1rem;font-weight:800;letter-spacing:.04em}
.electrical-combined-final>strong{font-size:clamp(2rem,5vw,3.2rem);font-weight:800;line-height:1.15;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
