.scene-canvas, .scene-pins { max-width: 100%; max-height: 100%; }
.scene-canvas { overflow: hidden; }
.scene-pins .sector-metric[hidden] { display: none; }
.sector-metric.metric-selected { border-color: #93ad69; box-shadow: 0 4px 16px #516f3c1a; }

.config-dialog .builder-main.config-main {
  height: auto;
  padding: 18px 4% 18px;
  overflow-x: hidden;
}
.config-dialog .workspace-heading { margin-bottom: 12px; align-items: center; }
.config-dialog .workspace-heading h1 { font-size:32.5px; margin-top: 6px; }
.config-dialog .scan-wizard { margin-bottom: 12px; }
.config-dialog .scan-wizard-steps button { padding: 10px 14px; }
.config-dialog .builder-profile-summary { margin-bottom: 12px; padding: 10px 16px; }
.config-dialog .builder-map-heading { padding: 12px 16px; flex: none; }
.config-dialog .builder-map-bottom { padding: 0 14px 10px; flex: none; }
.config-dialog .builder-map-bottom > span { font-size:11.25px; line-height: 1.5; max-width: 180px; }
.config-dialog .builder-totals {
  padding: 10px 16px;
  gap: 10px;
  grid-template-columns: .8fr 1.4fr .8fr;
  flex: none;
}
.config-dialog .builder-totals > div:last-child { display: block; }
.config-dialog .builder-totals strong { margin-top: 4px; font-size:23.75px; }
.config-dialog .map-data-note { padding: 0 16px 10px; font-size:11.25px; line-height: 1.6; margin: 0; flex: none; }
.config-dialog .builder-empty { padding: 0 16px 10px; flex: none; }
.config-dialog .builder-map-panel { overflow: hidden; }
.config-dialog .map-mobile-toggle { display: none; }
.config-dialog #builder-scene { height: auto; min-height: 0; flex: 1; }
.config-dialog .result-action-sticky { bottom: 0; }

@media (min-width: 901px) {
  .config-dialog:is([data-stage="2"], [data-stage="3"]) .config-main { overflow: hidden; }
  .config-dialog:is([data-stage="2"], [data-stage="3"]) #config-content {
    height: 100%; min-height: 0; display: flex; flex-direction: column;
  }
  .config-dialog #builder-body { flex: 1; min-height: 0; display: flex; flex-direction: column; }
  .config-dialog .workspace-heading,
  .config-dialog .scan-wizard,
  .config-dialog .builder-profile-summary { flex: none; }
  .config-dialog .builder-grid,
  .config-dialog .business-result-layout,
  .config-dialog .business-result-layout.wide-map {
    display: grid;
    flex: 1; min-height: 0;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    grid-template-rows: minmax(0, 1fr);
    gap: 22px; align-items: start;
  }
  .config-dialog .business-result-layout { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
  .config-dialog .business-result-layout.wide-map { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
  .config-dialog .builder-map-panel {
    position: relative; top: auto;
    height: 100%; max-height: 560px; min-height: 0;
    width: 100%; margin: 0;
  }
  .config-dialog .builder-map-panel .builder-map-inner,
  .config-dialog .builder-map-panel.map-expanded .builder-map-inner {
    display: flex; flex-direction: column;
    height: 100%; min-height: 0;
  }
  .config-dialog .business-result-layout > .builder-map-panel { grid-column: 2; grid-row: 1; position: relative; margin: 0; top: auto; }
  .config-dialog .business-result-layout > #builder-results { grid-column: 1; grid-row: 1; }
  .config-dialog .team-editor,
  .config-dialog .business-result-layout > #builder-results {
    height: 100%; min-height: 0; min-width: 0;
    overflow: auto; overscroll-behavior: contain;
    padding: 0 8px 12px 0; margin: 0; border: 0; max-width: none;
  }
  .config-dialog .team-editor-heading { margin-bottom: 12px; }
  .config-dialog .team-editor-heading h2 { font-size:27.5px; margin: 6px 0; }
  .config-dialog .team-editor-heading p { line-height: 1.6; }
  .config-dialog .team-stage-actions { position: sticky; bottom: 0; background: var(--paper); z-index: 3; padding: 12px 0 0; }
  .config-dialog .team-editor:has(#employee-form) .team-stage-actions { display: none; }
  .config-dialog .module-library { flex: none; margin-top: 12px; position: relative; }
  .config-dialog .module-library > summary { padding: 12px 16px; }
  .config-dialog .module-library[open] .module-library-grid {
    position: absolute; bottom: calc(100% + 8px); width: 100%;
    max-height: min(420px, calc(100dvh - 170px)); overflow: auto;
    z-index: 15; background: #fff; border: 1px solid var(--line);
    border-radius: 14px; padding: 16px; box-shadow: 0 12px 40px #1c302d24;
  }
  .config-dialog .team-editor .field-flow { padding: 20px; }
  .config-dialog .team-editor .flow-progress { margin-bottom: 20px; }
  .config-dialog .team-editor .flow-question { margin-bottom: 18px; }
  .config-dialog .team-editor .flow-actions { margin-top: 20px; }
  .config-dialog .team-editor .flow-footnote { margin-top: 12px; }
}
@media (max-width: 900px) {
  .config-dialog .builder-main.config-main { padding: 18px 18px 30px; }
  .config-dialog .builder-grid > .builder-map-panel { order: -2; }
  .config-dialog .builder-grid .team-editor { order: 0; }
  .config-dialog .builder-map-panel { position: relative; max-height: calc(100dvh - 82px); }
  .config-dialog .map-mobile-toggle { display: flex; }
  .config-dialog .builder-map-inner { display: none; }
  .config-dialog .builder-map-panel.map-expanded .builder-map-inner {
    display: flex; flex-direction: column; max-height: calc(100dvh - 130px);
  }
  .config-dialog #builder-scene { height: clamp(150px, calc(100dvh - 310px), 380px); flex: 1 1 auto; }
  .config-dialog .business-result-layout.wide-map { display: flex; flex-direction: column; }
  .config-dialog .builder-map-heading { padding: 10px 14px; }
  .config-dialog .builder-totals strong { font-size:22.5px; }
  .config-dialog .workspace-heading h1 { font-size:30px; }
  .config-dialog .scan-wizard-steps button { font-size:12.5px; gap: 7px; padding: 10px; }
}
@media (max-width: 640px) {
  .config-dialog .builder-main.config-main { padding-inline: 14px; }
  .config-dialog .workspace-heading { margin-bottom: 12px; }
  .config-dialog .workspace-heading > .back-link { margin-top: 8px; }
  .config-dialog .builder-profile-summary { padding: 10px 12px; }
  .config-dialog .builder-profile-summary span { line-height: 1.5; }
  .config-dialog .builder-totals { padding-inline: 12px; }
  .config-dialog .builder-totals strong { font-size:20px; }
  .config-dialog .map-data-note { padding-inline: 12px; }
  .config-dialog .builder-map-bottom > span { max-width: 135px; }
}
@media (min-width: 901px) and (max-height: 700px) {
  .config-dialog .builder-main.config-main { padding-block: 12px; }
  .config-dialog .workspace-heading h1 { font-size:27.5px; }
  .config-dialog .workspace-heading .eyebrow { display: none; }
  .config-dialog .scan-wizard-steps button { padding-block: 8px; }
  .config-dialog .builder-totals { padding-block: 8px; }
  .config-dialog .map-data-note { font-size:10px; }
}
.home-visual.hero-film { max-height: min(560px, calc(100dvh - 140px)); }
.home-visual.hero-film > img, .hero-film-video { max-height: inherit; object-fit: contain; }
/* A counter stays on its anchor; metric cards already name the working zone. */
.builder-mode .map-pin { width: 28px; height: 28px; display: grid; place-items: center; }
.builder-mode .pin-label { display: none; }
.scene-popover { max-height: calc(100% - 16px); overflow-y: auto; overscroll-behavior: contain; }
@media (max-width: 480px) {
  .builder-mode.dense-scene.metrics-collapsed .pin-dot { width: 20px; height: 20px; font-size:11.25px; }
  .builder-mode.dense-scene.metrics-collapsed .pin-dot:before { top: 18px; height: 10px; }
}
.business-explainer > img { max-height: min(440px, calc(100dvh - 100px)); object-fit: contain; }
