/* Scoped widget: the host keeps the existing EAF page layout and brand roles. */
.cad-hero-builder { display: grid; grid-template-columns: minmax(240px, 320px) minmax(0, 1fr); gap: 24px; color: var(--site-text); }
.cad-hero-builder [hidden] { display: none !important; }
.cad-hero-builder button, .cad-hero-builder input, .cad-hero-builder select { font: inherit; min-height: 40px; border: 1px solid var(--site-card-border); border-radius: 3px; color: var(--site-text); background: var(--site-card-bg); }
.cad-hero-builder button { padding: 8px 12px; cursor: pointer; }
.cad-hero-builder button[aria-pressed="true"] { border-color: var(--site-text); font-weight: 700; }
.cad-hero-builder :focus-visible { outline: 2px solid var(--site-focus-ring); outline-offset: 2px; }
.cad-hero-builder h2 { margin: 0 0 8px; font-size: 22px; }
.cad-hero-basis, .cad-hero-assumption { color: var(--site-secondary-text); margin: 0 0 16px; font-size: 13px; }
.cad-hero-field { display: grid; gap: 5px; margin: 0 0 12px; font-size: 14px; }
.cad-hero-field-line { display: flex; align-items: center; gap: 8px; }
.cad-hero-field input, .cad-hero-field select { width: 100%; box-sizing: border-box; padding: 7px 9px; }
.cad-hero-field-line input { width: calc(100% - 28px); }
.cad-hero-field-error { font-weight: 600; }
.cad-hero-field [aria-invalid="true"] { border: 2px solid var(--site-text); }
.cad-hero-history, .cad-hero-view-controls { display: flex; gap: 8px; }
.cad-hero-history { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--site-divider); margin-top: 16px; padding-top: 12px; }
.cad-hero-history button { min-width: 0; padding: 8px 6px; font-size: 14px; }
.cad-hero-openings { border-top: 1px solid var(--site-divider); padding-top: 12px; }
.cad-hero-openings summary { cursor: pointer; padding: 6px 0 12px; }
.cad-hero-preview { min-width: 0; }
.cad-hero-plan, .cad-hero-preview-3d { width: 100%; height: 390px; background: var(--cad-plan-paper); border: 1px solid var(--site-card-border); box-sizing: border-box; margin-top: 10px; }
.cad-hero-zone { fill: var(--cad-hull-heated-fill); stroke: none; }
.cad-hero-wall { fill: var(--cad-plan-body-fill); stroke: var(--cad-plan-body-edge); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.cad-hero-opening { stroke: var(--cad-plan-paper); stroke-width: 5px; vector-effect: non-scaling-stroke; }
.cad-hero-plan-measure { fill: var(--cad-plan-label); font-weight: 600; }
.cad-hero-preview-3d { position: relative; overflow: hidden; }
.cad-hero-preview-3d canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.cad-hero-preview-3d > :not(canvas):not(.cad-plan3d-error) { display: none; }
.cad-hero-detail { color: var(--site-secondary-text); margin: 10px 0; font-size: 14px; }
.cad-hero-status { min-height: 24px; margin: 12px 0; font-size: 14px; }
.cad-hero-continue { width: 100%; font-weight: 700; }

.cad-hero-preview-3d > .cad-plan3d-transition { pointer-events: none; opacity: 0; }
.cad-hero-preview-3d > .cad-plan3d-canvas { touch-action: none; }

.cad-hero-active-wall { stroke: var(--cad-plan-body-edge); stroke-width: 2px; vector-effect: non-scaling-stroke; }
