body[data-active-trade="plumbing"] [data-hvac-layer],body[data-active-trade="plumbing"] #how{display:none!important}
body[data-active-trade="plumbing"]:not([data-workflow-step="3"]) .house-stage,body[data-active-trade="plumbing"]:not([data-workflow-step="3"]) .builder-header> :not(.scene-header),body[data-active-trade="plumbing"] #equipment-review,body[data-active-trade="plumbing"] #options,body[data-active-trade="plumbing"] #workflow-results,body[data-active-trade="plumbing"] #next-workspace{display:none!important}
body[data-active-trade="plumbing"] .visual-column{display:block!important}#plumbing-workspace{width:100%;padding:20px;background:var(--pipeology-background);border-radius:12px}#plumbing-workspace[hidden]{display:none}#plumbing-workspace button,.plumbing-dialog button{margin:4px;padding:9px 12px;border:1px solid var(--pipeology-border);border-radius:7px;background:var(--pipeology-surface);color:var(--pipeology-text)}#plumbing-workspace button[aria-pressed="true"],#plumbing-workspace .plumbing-known-confirmed span{background:var(--pipeology-primary);color:var(--pipeology-on-primary)}.plumbing-tools{display:flex;flex-wrap:wrap;gap:5px}#plumbing-workspace label{display:grid;gap:6px;margin:10px 0}#plumbing-workspace select,#plumbing-workspace input{padding:10px;max-width:100%;border:1px solid var(--pipeology-border);border-radius:6px}#plumbing-plan{width:100%;min-height:320px;touch-action:none;background:var(--pipeology-surface);border:1px solid var(--pipeology-border)}.plumbing-room{fill:var(--pipeology-blue-faint,var(--pipeology-background));stroke:var(--pipeology-border);stroke-width:3}.plumbing-room-label{font-size:14px;fill:var(--pipeology-muted);pointer-events:none}.plumbing-opening{fill:var(--pipeology-primary)}.plumbing-route{fill:none;stroke:var(--pipeology-primary);stroke-width:5;stroke-linejoin:round;cursor:pointer}.plumbing-route.hot{stroke:var(--pipeology-accent)}.plumbing-route.drain{stroke:var(--pipeology-text)}.plumbing-route.vent{stroke:var(--pipeology-muted);stroke-dasharray:9 5}.plumbing-fixture{fill:var(--pipeology-surface);stroke:var(--pipeology-primary);stroke-width:4;cursor:grab}.plumbing-fixture.selected{fill:var(--pipeology-primary)}.plumbing-route.selected{stroke-width:9}.plumbing-fixture-label{font-size:10px;fill:var(--pipeology-text);pointer-events:none}.plumbing-dialog{max-width:640px;border:1px solid var(--pipeology-border);border-radius:12px;padding:24px}
body[data-active-trade="plumbing"] #plumbing-workspace:not([hidden]){display:block!important}
body[data-active-trade="plumbing"]:not([data-workflow-step="3"]) #arrange-status,body[data-active-trade="plumbing"]:not([data-workflow-step="3"]) #arrange-help{display:none!important}
.plumbing-price-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:20px 0}.plumbing-price-groups section{background:var(--pipeology-surface);border:1px solid var(--pipeology-border);border-radius:10px;padding:16px}.plumbing-price-groups h3{font-size:13px;margin:0 0 12px}.plumbing-price-groups strong{font-size:20px;color:var(--pipeology-text)}.plumbing-price-groups p{font-size:12px;color:var(--pipeology-muted)}
body[data-active-trade="plumbing"] .visual-column{grid-column:1;grid-row:1;min-width:0}
body[data-active-trade="plumbing"] .configuration{grid-column:2!important;grid-row:1!important;align-self:start}
body[data-active-trade="plumbing"] #plumbing-workspace{background:var(--pipeology-blue-faint,var(--pipeology-background))}
@media(max-width:760px){body[data-active-trade="plumbing"] .configuration{grid-column:1!important;grid-row:2!important}}
body[data-active-trade="plumbing"]:not([data-workflow-step="3"]) .builder-header{display:none!important}

/* Same workspace-local tool row used by HVAC; never overlays the house. */
#plumbing-workspace .plumbing-tools{align-items:center;justify-content:space-between}
#plumbing-workspace .trade-tool-dock{text-align:center;margin:12px auto;width:100%;border:1px solid var(--pipeology-border);border-radius:12px;background:var(--pipeology-surface)}
#plumbing-workspace .trade-tool-row button{margin:0;min-height:44px;font:inherit;font-size:13px;font-weight:650}
#plumbing-workspace .trade-tool-dock p{font-size:12px;color:var(--pipeology-muted)}
#plumbing-workspace button:hover:not([aria-pressed="true"]){background:var(--pipeology-blue-soft)}
#plumbing-workspace button:focus-visible{outline:3px solid var(--pipeology-primary);outline-offset:2px}
#plumbing-plan.routing,#plumbing-plan.routing .plumbing-fixture{cursor:crosshair}
.plumbing-preview{opacity:1;stroke-dasharray:6 4;pointer-events:none}
.plumbing-snap,.plumbing-vertex{fill:var(--pipeology-surface);stroke:var(--pipeology-primary);stroke-width:3}
.plumbing-snap{pointer-events:none}.plumbing-vertex{cursor:move}
.plumbing-fixture:hover{stroke-width:6}.plumbing-fixture.invalid-drop{opacity:.4}

#plumbing-plan .route-hit{fill:none;stroke:transparent;stroke-width:22;pointer-events:stroke}
#plumbing-plan .plumbing-route.cold{stroke:var(--pipeology-route-cold)}
#plumbing-plan .plumbing-route.hot{stroke:var(--pipeology-route-hot)}
#plumbing-plan .plumbing-route.drain{stroke:var(--pipeology-route-drain)}
#plumbing-plan .plumbing-route.vent{stroke:var(--pipeology-route-vent);stroke-dasharray:none}
#plumbing-workspace .route-mode-label{font-size:13px;font-weight:700;letter-spacing:.04em;padding:10px;color:var(--pipeology-text)}
.plumbing-legend{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;padding:12px;font-size:12px}
.plumbing-legend span{display:inline-flex;align-items:center;gap:6px}.plumbing-legend span:before{content:'';width:24px;border-top:4px solid var(--route-colour)}
.plumbing-legend .hot{--route-colour:var(--pipeology-route-hot)}.plumbing-legend .cold{--route-colour:var(--pipeology-route-cold)}.plumbing-legend .drain{--route-colour:var(--pipeology-route-drain)}.plumbing-legend .vent{--route-colour:var(--pipeology-route-vent)}
#plumbing-workspace .plumbing-detail-card{min-width:0;margin:16px 0;padding:20px;border:1px solid var(--pipeology-border);border-radius:12px;background:var(--pipeology-surface)}
#plumbing-workspace .plumbing-detail-card h3,#plumbing-workspace .plumbing-detail-card legend{font-size:14px;font-weight:750;letter-spacing:.03em;margin:0 0 12px}
#plumbing-workspace .plumbing-detail-card legend{padding:0 6px;margin:0}
.plumbing-detail-choices{display:flex;flex-wrap:wrap;gap:8px}.plumbing-detail-choices button{min-height:44px}
.plumbing-known{display:flex;flex-wrap:wrap;gap:10px}.plumbing-known span{padding:8px 12px;border:1px solid var(--pipeology-border);border-radius:7px;background:var(--pipeology-blue-faint);cursor:default;max-width:100%;overflow-wrap:anywhere}
.plumbing-fixture-supply{padding:10px 0;border-top:1px solid var(--pipeology-border)}
.plumbing-site-review{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;font-size:13px}.plumbing-site-review dd{margin:0;color:var(--pipeology-muted)}
#plumbing-workspace textarea{width:100%;box-sizing:border-box;padding:12px;border:1px solid var(--pipeology-border);border-radius:8px;font:inherit}
#plumbing-workspace .plumbing-details-continue{background:var(--pipeology-primary);color:var(--pipeology-on-primary);min-height:48px;padding:12px 20px;font-weight:700}
@media(max-width:600px){.plumbing-site-review{grid-template-columns:1fr}.plumbing-site-review dd{margin-bottom:8px}}
/* Override the HVAC Step 5 builder filter for the Plumbing questionnaire only. */
body[data-active-trade="plumbing"][data-workflow-step="4"] .builder-body>#plumbing-workspace:not([hidden]){display:block!important}
/* Both plan presentations consume the same routes. White casing separates crossings;
   only explicit canonical connections receive a junction dot. */
#plumbing-plan .plumbing-route{stroke-width:4;stroke-linejoin:miter;paint-order:stroke}
#plumbing-plan .plumbing-route.selected{stroke-width:6}
#plumbing-plan .route-hit{stroke-width:10}
#plumbing-plan .plumbing-port,#plumbing-plan .plumbing-junction{fill:currentColor;stroke:var(--pipeology-surface);stroke-width:1.5;pointer-events:none}
#plumbing-plan .hot{color:var(--pipeology-route-hot)}
#plumbing-plan .cold{color:var(--pipeology-route-cold)}
#plumbing-plan .drain{color:var(--pipeology-route-drain)}
#plumbing-plan .vent{color:var(--pipeology-route-vent)}
#plumbing-plan .plumbing-port-lead,#plumbing-plan .plumbing-flow{fill:none;stroke:currentColor;stroke-width:2;pointer-events:none}
#plumbing-plan .plumbing-route-detail,#plumbing-plan .plumbing-fixture-tag,#plumbing-plan .plumbing-port-label{font-size:10px;fill:var(--pipeology-text);paint-order:stroke;stroke:var(--pipeology-surface);stroke-width:3px;stroke-linejoin:round;pointer-events:none}
#plumbing-plan .plumbing-port-label{font-size:8px}
.plumbing-route-context{background:var(--pipeology-blue-faint);border:1px solid var(--pipeology-border);border-radius:12px;padding:14px;margin-top:12px}
.plumbing-route-context button{margin-right:8px}
#plumbing-plan .plumbing-crossing-casing{fill:none;stroke:var(--pipeology-surface);stroke-width:8;stroke-linejoin:miter;pointer-events:none}
#plumbing-plan .plumbing-terminal{fill:var(--pipeology-surface);stroke:currentColor;stroke-width:1.5;pointer-events:none}

#plumbing-fixture-palette[hidden]{display:none!important}
#plumbing-fixture-palette{margin-top:18px;padding-top:14px;border-top:1px solid var(--pipeology-border)}
#plumbing-fixture-palette h3{font-size:14px;margin:0 0 8px}
#plumbing-fixture-palette p{font-size:12px;color:var(--pipeology-muted)}
.plumbing-fixture-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-height:520px;overflow:auto}
.plumbing-fixture-grid button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:78px;padding:8px 3px;background:var(--pipeology-surface);border:1px solid var(--pipeology-border);border-radius:8px;font-size:10px;color:var(--pipeology-text)}
.plumbing-fixture-grid button:hover{background:var(--pipeology-blue-soft);border-color:var(--pipeology-primary)}
.plumbing-fixture-grid button:focus-visible{outline:3px solid var(--pipeology-primary)}
.plumbing-fixture-icon{width:28px;height:28px;fill:none;stroke:var(--pipeology-primary);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.plumbing-map-icon{fill:none;stroke:var(--pipeology-primary);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.plumbing-map-icon.selected{stroke:var(--pipeology-on-primary)}
.plumbing-special-placement{display:grid;gap:6px;margin-top:10px}
.plumbing-special-placement button{background:var(--pipeology-surface);border:1px solid var(--pipeology-border);border-radius:7px;padding:9px;color:var(--pipeology-text)}
body[data-active-trade="plumbing"][data-workflow-step] .builder-body>#plumbing-workspace:not([hidden]){display:block!important}

#plumbing-plan .plumbing-route.recommended{stroke-dasharray:8 5;opacity:.8}
#plumbing-plan .plumbing-fixture.recommended{stroke-dasharray:4 3}
.plumbing-plan-status{background:var(--pipeology-surface);border:1px solid var(--pipeology-border);border-radius:12px;padding:16px;margin-bottom:14px}
.plumbing-plan-status p{font-size:13px;color:var(--pipeology-muted)}

.plumbing-recommendation-tag{font-size:8px;fill:var(--pipeology-muted);paint-order:stroke;stroke:var(--pipeology-surface);stroke-width:2px;pointer-events:none}

body[data-workflow-step="3"] .plumbing-tray-item{touch-action:none;user-select:none;cursor:grab}
body[data-workflow-step="3"] .plumbing-tray-item:active{cursor:grabbing}
.plumbing-tray-ghost{position:fixed;z-index:10000;pointer-events:none;transform:translate(-50%,-50%);opacity:.5;border:1px dashed var(--pipeology-border);border-radius:50%;padding:5px;background:var(--pipeology-surface)}
.plumbing-tray-ghost[hidden]{display:none}
.plumbing-tray-preview{pointer-events:none}
.plumbing-tray-preview>circle{fill:var(--pipeology-blue-faint);stroke:var(--pipeology-primary);stroke-width:2}
.plumbing-tray-preview .plumbing-fixture-icon{width:20px;height:20px}

/* Desktop editor menu reuses the application palette. */
.plumbing-editor-menu{z-index:1000;display:flex;flex-direction:column;min-width:160px;padding:6px;background:var(--pipeology-surface);border:1px solid var(--pipeology-border);border-radius:8px;box-shadow:0 4px 16px color-mix(in srgb,var(--pipeology-text) 14%,transparent)}
.plumbing-editor-menu button{text-align:left;padding:8px 12px}
#plumbing-plan:focus-visible{outline:2px solid var(--pipeology-primary);outline-offset:2px}

/* Plumbing uses the shared house art and established blue workspace palette. */
body[data-active-trade="plumbing"] .house-stage{background:var(--pipeology-blue-faint)}
body[data-active-trade="plumbing"] #house-tools.house-add-rail{background:var(--pipeology-blue-soft);border-color:var(--pipeology-border)}
body[data-active-trade="plumbing"] .plan-room>rect,
body[data-active-trade="plumbing"] .plan-room>polygon,
body[data-active-trade="plumbing"] .plan-room>.room-shape{fill:var(--pipeology-blue-faint);stroke:var(--pipeology-border)}
body[data-active-trade="plumbing"] .plan-room.selected>rect,
body[data-active-trade="plumbing"] .plan-room.selected>polygon,
body[data-active-trade="plumbing"] .plan-room.selected>.room-shape{fill:var(--pipeology-blue-soft);stroke:var(--pipeology-primary)}
body[data-active-trade="plumbing"] .plan-room [data-reshape],
body[data-active-trade="plumbing"] [data-opening-end]{fill:var(--pipeology-primary)}
body[data-active-trade="plumbing"] .plan-room text{fill:var(--pipeology-text)}
body[data-active-trade="plumbing"] .plan-room .plan-room-type,
body[data-active-trade="plumbing"] .plan-compass{fill:var(--pipeology-muted)}
body[data-active-trade="plumbing"] .plan-empty{fill:var(--pipeology-surface);stroke:var(--pipeology-border)}
body[data-active-trade="plumbing"] .drop-slot{fill:var(--pipeology-blue-soft);stroke:var(--pipeology-primary)}
body[data-active-trade="plumbing"] .valid-drop{fill:var(--pipeology-blue-soft);stroke:var(--pipeology-primary)}
.plumbing-house-layer{pointer-events:none}

/* Physical service anchors share the same icon path in every presentation. */
.plumbing-special-placement{grid-template-columns:repeat(2,minmax(0,1fr))}
.plumbing-special-placement .plumbing-tray-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center;min-height:90px}
.plumbing-special-placement .plumbing-fixture-icon{width:30px;height:30px}
.plumbing-special-placement span{font-size:12px;line-height:1.25}
.plumbing-fixture-icon[data-symbol="water_entry"],.plumbing-map-icon[data-symbol="water_entry"]{stroke:var(--pipeology-primary)}
.plumbing-fixture-icon[data-symbol="main_stack"],.plumbing-map-icon[data-symbol="main_stack"]{stroke:var(--pipeology-text)}
.plumbing-fixture[data-symbol="main_stack"]{stroke:var(--pipeology-text)}
.plumbing-fixture[data-symbol="water_entry"].selected,.plumbing-fixture[data-symbol="main_stack"].selected{fill:var(--pipeology-blue-soft);stroke:var(--pipeology-primary);stroke-width:5}
body[data-workflow-step="4"] .plumbing-tray-item{touch-action:none;user-select:none;cursor:grab}
body[data-workflow-step="4"] .plumbing-tray-item:active{cursor:grabbing}
/* Straight runs retain their service colour inside an independent selection halo. */
.plumbing-segment-hit {stroke:transparent;stroke-width:14;fill:none;pointer-events:stroke;cursor:move}
.plumbing-segment-hit:hover,.plumbing-segment-hit.segment-selected {stroke:var(--pipeology-primary);stroke-opacity:.22;stroke-width:15}
.plumbing-segment-handle {fill:var(--pipeology-surface);stroke:var(--pipeology-primary);stroke-width:2;pointer-events:none}
.plumbing-segment-preview {pointer-events:none;stroke-dasharray:6 3}
.trade-tool-row .plumbing-connect-pipes {background:var(--pipeology-primary);color:var(--pipeology-surface);border-color:var(--pipeology-primary)}
.plumbing-connection-status {display:flex;flex-wrap:wrap;gap:4px 18px;font-size:12px}
.plumbing-connection-status p {margin:2px 0}
/* Trade visibility is presentation only. Canonical HVAC data stays in the project. */
body[data-active-trade="plumbing"] #sizing-overlay,
body[data-active-trade="plumbing"] #sizing-results,
body[data-active-trade="plumbing"] #sizing-panel {display:none!important}
.trade-reference-overlay,.trade-reference-overlay * {pointer-events:none!important}
.trade-reference-overlay {opacity:.8}
.plumbing-map-with-commands {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start}
.plumbing-map-with-commands #plumbing-plan {min-width:0;width:100%}
.plumbing-map-commands {display:flex;flex-direction:column;gap:6px;padding-top:12px}
.plumbing-map-commands button {font-size:11px;padding:8px;white-space:nowrap}
#plumbing-plan.pipes-hidden .plumbing-route,
#plumbing-plan.pipes-hidden .plumbing-crossing-casing,
#plumbing-plan.pipes-hidden .route-hit,
#plumbing-plan.pipes-hidden .plumbing-vertex,
#plumbing-plan.pipes-hidden .plumbing-junction,
#plumbing-plan.pipes-hidden .plumbing-port-lead,
#plumbing-plan.pipes-hidden .plumbing-terminal,
#plumbing-plan.pipes-hidden .plumbing-flow,
#plumbing-plan.pipes-hidden .plumbing-route-detail,
#plumbing-plan.pipes-hidden .plumbing-segment-handle {display:none}
.plumbing-material-summary section{padding:12px 0;border-bottom:1px solid var(--pipeology-border)}
.plumbing-material-summary section p{display:flex;justify-content:space-between;gap:16px;margin:6px 0}
.plumbing-material-summary section small{display:block;color:var(--pipeology-muted)}
.plumbing-material-summary h3{margin:8px 0}
/* Inspection uses the same canonical straight-run selection as Hand editing. */
.plumbing-run-popover {fill:var(--pipeology-surface);stroke:var(--pipeology-primary);stroke-width:1.5;pointer-events:none;filter:drop-shadow(0 2px 3px #0002)}
.plumbing-run-popover-text {fill:var(--pipeology-text);font-size:12px;pointer-events:none}
.plumbing-run-popover-title {font-weight:750}
#plumbing-plan.inspecting-routes .plumbing-segment-hit {cursor:pointer}
.plumbing-water-heater-dialog{width:min(900px,90vw);max-width:900px;max-height:85vh;overflow:auto;background:var(--pipeology-surface);color:var(--pipeology-text)}
.plumbing-heater-options,.plumbing-heater-products{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:16px 0}
.plumbing-heater-options button{background:var(--pipeology-blue-faint);color:var(--pipeology-text)}
.plumbing-heater-options button[aria-pressed="true"],.plumbing-heater-products article[aria-selected="true"]{background:var(--pipeology-primary);color:var(--pipeology-on-primary)}
.plumbing-heater-products article{padding:16px;border:1px solid var(--pipeology-border);border-radius:12px;display:flex;flex-direction:column;gap:10px}.plumbing-heater-products article img{height:150px;width:100%;object-fit:contain;background:var(--pipeology-surface)}.plumbing-heater-products article a{color:inherit}.plumbing-heater-products article button{margin-top:auto}
/* Shared Results / Review Quote dashboard. */
.plumbing-price-groups .plumbing-summary-card{position:relative;display:flex;flex-direction:column;gap:.65rem;align-items:flex-start;text-align:left;padding:1.1rem 2rem 1.1rem 1.1rem;border:1px solid var(--pipeology-border);border-radius:14px;background:var(--pipeology-blue-faint,var(--pipeology-primary-light));color:var(--pipeology-text);min-width:0;width:100%}
.plumbing-summary-card strong{font-size:1.45rem}.plumbing-summary-card small{font-weight:normal}.plumbing-summary-chevron{position:absolute;right:.8rem;top:1rem;font-size:1.6rem}
.plumbing-price-groups .plumbing-summary-card.is-open,.plumbing-price-groups .plumbing-summary-grand{background:var(--pipeology-primary);color:white;border-color:var(--pipeology-primary)}
.plumbing-summary-card:focus-visible{outline:3px solid var(--pipeology-primary);outline-offset:3px}
.plumbing-total-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--pipeology-border);border-radius:14px;overflow:hidden;margin-top:1rem}.plumbing-total-bar>div{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:var(--pipeology-blue-faint,var(--pipeology-primary-light))}.plumbing-total-bar>div:last-child{background:var(--pipeology-primary);color:white}.plumbing-total-bar strong{font-size:1.3rem}
.plumbing-dialog.plumbing-breakdown{width:min(850px,92vw);max-height:88dvh;overflow:auto;background:var(--pipeology-surface);color:var(--pipeology-text)}
.plumbing-breakdown-pair{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--pipeology-border)}.plumbing-breakdown-pair strong{text-align:right}.plumbing-breakdown-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.plumbing-breakdown-products article{padding:1rem;border:1px solid var(--pipeology-border);border-radius:12px}.plumbing-breakdown-products img{max-height:100px;max-width:100%;object-fit:contain}.plumbing-breakdown h4{overflow-wrap:anywhere}
@media(max-width:640px){.plumbing-dialog.plumbing-breakdown{box-sizing:border-box;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0;padding:1rem}.plumbing-breakdown-products{grid-template-columns:1fr}.plumbing-total-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.plumbing-breakdown-pair{flex-wrap:wrap}}
.plumbing-price-groups .plumbing-summary-card strong{color:inherit}.plumbing-summary-grand strong{font-size:1.7rem}

.plumbing-pathways,.plumbing-service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px;margin:20px 0}.plumbing-pathways article{display:flex;flex-direction:column;padding:24px}.plumbing-pathways article button{margin-top:auto!important;background:var(--pipeology-primary)!important;color:var(--pipeology-on-primary)!important}.plumbing-repair-editor{width:min(720px,90vw);max-height:85vh;overflow:auto}.plumbing-repair-editor fieldset{margin:12px 0}.plumbing-repair-editor button[aria-pressed="true"]{background:var(--pipeology-primary);color:var(--pipeology-on-primary)}.plumbing-repair-editor label{display:grid;gap:8px}.plumbing-repair-editor input,.plumbing-repair-editor select{max-width:100%;padding:8px}

/* Service Visit Builder: shared theme, touch-friendly single-question guidance. */
.repair-visit { width:100%; max-width:960px; min-width:0; }
.repair-choice-grid,.repair-job-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:12px; margin:16px 0; }
.repair-visit button { min-height:48px; white-space:normal; }
.repair-choice-grid button { display:flex; align-items:center; justify-content:center; gap:12px; padding:18px; }
.repair-visit .plumbing-fixture-icon { width:30px; height:30px; flex:none; fill:none; stroke:currentColor; stroke-width:1.6; }
.repair-visit h3 { display:flex; align-items:center; gap:10px; }
.repair-visit textarea,.repair-visit input,.repair-visit select { width:100%; box-sizing:border-box; padding:14px; font:inherit; max-width:100%; }
.repair-visit textarea { min-height:100px; }
.repair-actions,.repair-quantity { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:12px 0; }
.repair-job ul { padding:0; list-style:none; line-height:1.8; }
.repair-job small { display:block; }
.repair-job-price { font-weight:700; }
.repair-totals { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px; padding:20px; border:1px solid var(--pipeology-border); border-radius:12px; background:var(--pipeology-surface); }
.repair-totals dd { margin:0; text-align:right; font-weight:700; overflow-wrap:anywhere; }
@media(max-width:600px){.repair-choice-grid,.repair-job-grid{grid-template-columns:1fr}.repair-totals{grid-template-columns:1fr}.repair-totals dd{text-align:left;margin-bottom:12px}.repair-actions>*{flex:1}.repair-visit{overflow-wrap:anywhere}}
body[data-active-trade="plumbing"]:not([data-workflow-step="3"]) .scene-footer{display:none!important}
#plumbing-workspace .repair-visit button.primary{background:var(--pipeology-primary);color:var(--pipeology-on-primary)}
@media(max-width:600px){.repair-actions>*{flex:1 1 120px;min-width:120px}}
.repair-scope-next{padding:16px;border:1px solid var(--pipeology-border);border-radius:12px;background:var(--pipeology-surface);margin:16px 0}
#plumbing-workspace .repair-visit button:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:600px){.repair-scope-next{position:sticky;bottom:8px;z-index:3;box-shadow:0 2px 12px #0002}.repair-scope-next p{font-size:12px}.repair-scope-next button{width:100%;margin:8px 0 0!important}}
