/* Local fullscreen interface experiment. Kept separate from the production styles. */
.model-selection-summary {
  display: none;
}

/* Niveaus: verticale regelaar met afzonderlijke bouwlaagkeuzes. */
body.is-customize-step .scene-actions .scene-levels-menu .levels-panel {
  width: 330px;
}


body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher {
  width: 100%;
  padding: 16px;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 8px;
  color: #fff;
  background:
    linear-gradient(155deg, rgba(49, 70, 83, .94), rgba(27, 43, 43, .92));
  box-shadow: 0 20px 46px rgba(9, 18, 28, .3);
  backdrop-filter: blur(20px) saturate(118%);
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher-head {
  gap: 2px;
  margin-bottom: 10px;
  padding: 0 4px 10px;
  border-bottom: 1px solid rgba(255, 255, 255, .14);
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher-head strong {
  color: #fff;
  font-size: 16px;
  font-weight: 850;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher-head small {
  color: rgba(255, 255, 255, .66);
  font-size: 10px;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher-body {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  min-height: calc(var(--level-count) * 64px);
  border-radius: 6px;
  background: rgba(8, 20, 29, .18);
  overflow: hidden;
  cursor: ns-resize;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher-body::before {
  display: none;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher-body input[type="range"] {
  left: 24px;
  top: 16px;
  z-index: 8;
  width: calc(100% - 32px);
  height: 48px;
  pointer-events: none;
  transform: translateX(-50%) rotate(90deg);
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher-rail {
  position: absolute;
  left: 23px;
  top: 20px;
  bottom: 20px;
  z-index: 2;
  width: 3px;
  border-radius: 999px;
  background:
    linear-gradient(
      to bottom,
      rgba(255, 255, 255, .98) 0%,
      rgba(255, 255, 255, .98) var(--level-fill-percent),
      rgba(255, 255, 255, .25) var(--level-fill-percent),
      rgba(255, 255, 255, .28) 100%
    );
  box-shadow:
    0 0 0 1px rgba(8, 20, 29, .12),
    0 0 8px rgba(255, 255, 255, .16);
  transition: background .08s linear;
  touch-action: none;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher-markers {
  position: absolute;
  left: 19px;
  top: 14px;
  bottom: 14px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  pointer-events: none;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher-markers i {
  width: 11px;
  height: 11px;
  border: 2px solid rgba(255, 255, 255, .18);
  border-radius: 50%;
  background: #65737d;
  box-shadow: 0 2px 5px rgba(5, 12, 18, .25);
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher-handle {
  left: 13px;
  right: auto;
  top: calc(((100% - 40px) / var(--level-steps)) * var(--active-level-index) + 8.5px);
  width: 23px;
  height: 23px;
  border: 2px solid rgba(255, 255, 255, .82);
  background: var(--accent);
  box-shadow: 0 4px 14px rgba(238, 139, 32, .42);
  cursor: ns-resize;
  touch-action: none;
  transition: top .1s cubic-bezier(.22, 1, .36, 1), background .16s ease, box-shadow .16s ease;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher-handle.is-dragging {
  transition: none;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher-handle::before {
  display: none;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher-options {
  grid-column: 2;
  min-width: 0;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher-options button {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  align-items: center;
  cursor: pointer;
  min-height: 64px;
  padding: 7px 10px;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .09);
  border-radius: 0;
  color: rgba(255, 255, 255, .82);
  background: transparent;
  box-shadow: none;
  transform: none;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-option-thumb {
  position: relative;
  inset: auto;
  display: grid;
  width: 54px;
  height: 42px;
  min-height: 0;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 5px;
  background:
    linear-gradient(145deg, rgba(164, 191, 202, .2), rgba(16, 31, 40, .3));
  background-position: center;
  background-size: cover;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
  overflow: hidden;
  opacity: 1;
  transform: none;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-option-thumb::after {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(90deg, rgba(10, 24, 33, .15), rgba(10, 24, 33, .02));
  content: "";
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-option-thumb.is-rendered .levels-option-level-icon {
  opacity: 0;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher-options button:last-child {
  border-bottom: 0;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher-options button:hover {
  color: #fff;
  background: rgba(255, 255, 255, .06);
  box-shadow: none;
  transform: none;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher-options button[aria-pressed="true"] {
  color: #f39a2e;
  background: linear-gradient(90deg, rgba(238, 139, 32, .13), rgba(238, 139, 32, .02));
  box-shadow: inset 3px 0 0 #ee8b20;
  text-shadow: none;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-option-level-icon {
  position: relative;
  display: block;
  width: 30px;
  height: 30px;
  color: currentColor;
  z-index: 1;
  transition: opacity .16s ease;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-option-level-icon i,
body.is-customize-step .scene-actions .scene-levels-menu .levels-option-level-icon::before,
body.is-customize-step .scene-actions .scene-levels-menu .levels-option-level-icon::after {
  position: absolute;
  display: block;
  content: "";
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-option-level-icon i {
  left: 5px;
  right: 5px;
  bottom: 3px;
  height: 18px;
  border: 2px solid currentColor;
  border-radius: 2px;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-option-level-icon.is-house::before,
body.is-customize-step .scene-actions .scene-levels-menu .levels-option-level-icon.is-attic::before {
  left: 5px;
  top: 2px;
  width: 18px;
  height: 18px;
  border-top: 2px solid currentColor;
  border-left: 2px solid currentColor;
  transform: rotate(45deg);
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-option-level-icon.is-floor i::after,
body.is-customize-step .scene-actions .scene-levels-menu .levels-option-level-icon.is-ground i::after {
  left: 2px;
  right: 2px;
  bottom: 5px;
  border-top: 2px solid currentColor;
  content: "";
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-option-level-icon.is-floor i::before {
  left: 2px;
  right: 2px;
  top: 5px;
  border-top: 2px solid currentColor;
  content: "";
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-option-level-copy {
  display: grid;
  gap: 1px;
  min-width: 0;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-option-level-copy strong,
body.is-customize-step .scene-actions .scene-levels-menu .levels-option-level-copy small {
  display: block;
  color: inherit;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-option-level-copy strong {
  font-size: 14px;
  font-weight: 820;
  line-height: 1.1;
}

body.is-customize-step .scene-actions .scene-levels-menu .levels-option-level-copy small {
  font-size: 11px;
  font-weight: 700;
  opacity: .78;
}

@media (max-width: 640px) {
  body.is-customize-step .scene-actions .scene-levels-menu .levels-panel {
    width: min(310px, calc(100vw - 20px));
  }

  body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher {
    padding: 12px;
  }

  body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher-body {
    min-height: calc(var(--level-count) * 56px);
  }

  body.is-customize-step .scene-actions .scene-levels-menu .levels-switcher-options button {
    min-height: 56px;
  }
}

#expandView {
  display: none !important;
}

@media (min-width: 1000px) and (min-height: 680px) {
  body.is-customize-step #expandView {
    display: none !important;
  }

  body.is-customize-step .scene-hud {
    top: 18px;
    right: 22px;
  }

  body.is-customize-step .scene-actions {
    gap: 0;
    min-height: 44px;
    padding: 4px;
    border: 1px solid rgba(255, 255, 255, .32);
    border-radius: 8px;
    color: #fff;
    background:
      linear-gradient(155deg, rgba(55, 78, 91, .78), rgba(35, 52, 48, .72));
    box-shadow: 0 16px 38px rgba(11, 22, 31, .22);
    backdrop-filter: blur(18px) saturate(116%);
  }

  body.is-customize-step .scene-navigation-toggle,
  body.is-customize-step .viewer-mode-toggle,
  body.is-customize-step .scene-actions .scene-levels-menu {
    min-height: 36px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  body.is-customize-step .scene-navigation-toggle,
  body.is-customize-step .viewer-mode-toggle {
    gap: 2px;
    padding-right: 4px;
    margin-right: 4px;
    border-right: 1px solid rgba(255, 255, 255, .18);
  }

  body.is-customize-step .scene-navigation-option,
  body.is-customize-step .viewer-mode-button,
  body.is-customize-step .sunlight-menu > summary,
  body.is-customize-step .scene-actions .scene-levels-menu summary {
    min-height: 36px;
    border: 1px solid transparent;
    border-radius: 5px;
    color: rgba(255, 255, 255, .86);
    background: transparent;
    box-shadow: none;
    font-size: 12px;
    font-weight: 800;
    transition:
      color .18s ease,
      background .18s ease,
      border-color .18s ease;
  }

  body.is-customize-step .scene-navigation-option {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 11px;
  }

  body.is-customize-step .scene-navigation-option::before {
    display: inline-grid;
    width: 16px;
    height: 16px;
    place-items: center;
    color: rgba(255, 255, 255, .72);
    font-size: 15px;
    line-height: 1;
  }

  body.is-customize-step .scene-navigation-option-orbit::before {
    content: "●";
  }

  body.is-customize-step .scene-navigation-option-walk::before {
    content: "↟";
  }

  body.is-customize-step .scene-navigation-option:has(input:checked) {
    border-color: rgba(239, 143, 42, .76);
    color: #fff;
    background: rgba(18, 31, 43, .36);
    box-shadow: inset 0 0 0 1px rgba(239, 143, 42, .16);
  }

  body.is-customize-step .scene-navigation-option:has(input:checked)::before {
    color: var(--accent);
  }

  body.is-customize-step .viewer-mode-button {
    min-width: 42px;
    padding: 7px 10px;
  }

  body.is-customize-step .sunlight-menu {
    position: relative;
    align-self: stretch;
  }

  body.is-customize-step .sunlight-menu > summary {
    display: inline-flex;
    height: 100%;
    min-width: 64px;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 7px 10px;
    cursor: pointer;
    list-style: none;
  }

  body.is-customize-step .sunlight-menu > summary::-webkit-details-marker {
    display: none;
  }

  body.is-customize-step .sunlight-menu > summary > span:first-child {
    color: #ffd27a;
    font-size: 16px;
    line-height: 1;
  }

  body.is-customize-step .sunlight-menu[open] > summary {
    border-color: var(--accent);
    color: #fff;
    background: rgba(18, 31, 43, .36);
    box-shadow: inset 0 0 0 1px rgba(239, 143, 42, .16);
  }

  body.is-customize-step .viewer-mode-button[data-view-mode="measure"] {
    min-width: 116px;
  }

  body.is-customize-step .viewer-mode-button[data-view-mode="measure"]::before {
    margin-right: 7px;
    content: "⌁";
    font-size: 15px;
  }

  body.is-customize-step .viewer-mode-button.is-active {
    border-color: var(--accent);
    color: #fff;
    background: var(--accent);
    box-shadow: 0 7px 16px rgba(233, 138, 42, .24);
  }

  body.is-customize-step .scene-actions .scene-levels-menu summary {
    padding: 0 10px;
  }

  body.is-customize-step .scene-actions .scene-levels-menu summary::before {
    width: 18px;
    height: 18px;
    margin-right: 7px;
    border-radius: 0;
    color: rgba(255, 255, 255, .78);
    background: transparent;
    content: "▱";
    font-size: 16px;
  }

  body.is-customize-step .scene-actions .scene-levels-menu summary::after {
    border-color: rgba(255, 255, 255, .66);
  }

  body.is-customize-step .scene-actions .scene-levels-menu[open] summary,
  body.is-customize-step .scene-actions .scene-levels-menu summary.is-active {
    border-color: rgba(239, 143, 42, .76);
    color: #fff;
    background: rgba(18, 31, 43, .36);
    box-shadow: inset 0 0 0 1px rgba(239, 143, 42, .16);
  }
}

.sunlight-menu[hidden],
.sunlight-panel[hidden] {
  display: none !important;
}

.sunlight-menu {
  position: relative;
}

.sunlight-menu > summary {
  cursor: pointer;
  list-style: none;
}

.sunlight-menu > summary::-webkit-details-marker {
  display: none;
}

.sunlight-panel {
  position: absolute;
  z-index: 80;
  top: calc(100% + 12px);
  left: 50%;
  display: grid;
  width: 238px;
  gap: 11px;
  padding: 13px;
  border: 1px solid rgba(255, 255, 255, .34);
  border-radius: 9px;
  color: #fff;
  background:
    linear-gradient(155deg, rgba(50, 73, 86, .94), rgba(25, 43, 45, .92));
  box-shadow: 0 20px 48px rgba(8, 20, 28, .28);
  backdrop-filter: blur(20px) saturate(120%);
  transform: translateX(-50%);
  animation: step3OptionsIn .2s ease both;
}

.sunlight-panel::before {
  position: absolute;
  top: -6px;
  left: 50%;
  width: 11px;
  height: 11px;
  border-top: 1px solid rgba(255, 255, 255, .34);
  border-left: 1px solid rgba(255, 255, 255, .34);
  background: rgba(48, 70, 81, .96);
  content: "";
  transform: translateX(-50%) rotate(45deg);
}

.sunlight-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.sunlight-panel-head > span:first-child {
  display: grid;
  gap: 2px;
}

.sunlight-panel-head strong {
  font-size: 13px;
}

.sunlight-panel-head small {
  color: rgba(255, 255, 255, .68);
  font-size: 10px;
  font-weight: 700;
}

.sunlight-current-icon {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 1px solid rgba(255, 205, 109, .45);
  border-radius: 50%;
  color: #ffd16f;
  background: rgba(255, 183, 62, .12);
  font-size: 17px;
}

.sunlight-dial {
  position: relative;
  display: block;
  width: 188px;
  height: 188px;
  margin: 0 auto;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .23);
  border-radius: 50%;
  color: #fff;
  background:
    radial-gradient(circle at 50% 50%, rgba(255, 255, 255, .13) 0 18%, transparent 19%),
    radial-gradient(circle at 50% 50%, rgba(255, 199, 91, .08), rgba(6, 25, 35, .25) 68%),
    conic-gradient(from -22.5deg, rgba(255, 255, 255, .045), transparent 12.5%, rgba(255, 255, 255, .045) 25%, transparent 37.5%, rgba(255, 255, 255, .045) 50%, transparent 62.5%, rgba(255, 255, 255, .045) 75%, transparent 87.5%, rgba(255, 255, 255, .045));
  box-shadow: inset 0 0 30px rgba(0, 0, 0, .18);
  cursor: crosshair;
  touch-action: none;
}

.sunlight-dial:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.sunlight-dial.is-adjusting {
  cursor: grabbing;
}

.sunlight-orbit {
  position: absolute;
  top: 50%;
  left: 50%;
  border: 1px solid rgba(255, 255, 255, .23);
  border-radius: 50%;
  pointer-events: none;
  transform: translate(-50%, -50%);
}

.sunlight-orbit.is-outer {
  width: 78%;
  height: 78%;
}

.sunlight-orbit.is-inner {
  width: 47%;
  height: 47%;
  border-style: dashed;
  border-color: rgba(255, 255, 255, .17);
}

.sunlight-direction {
  position: absolute;
  z-index: 2;
  color: rgba(255, 255, 255, .56);
  font-size: 9px;
  font-weight: 900;
  pointer-events: none;
}

.sunlight-direction.is-north { top: 7px; left: 50%; transform: translateX(-50%); }
.sunlight-direction.is-east { top: 50%; right: 8px; transform: translateY(-50%); }
.sunlight-direction.is-south { bottom: 7px; left: 50%; transform: translateX(-50%); }
.sunlight-direction.is-west { top: 50%; left: 8px; transform: translateY(-50%); }

.sunlight-house {
  position: absolute;
  z-index: 4;
  top: 50%;
  left: 50%;
  display: grid;
  width: 31px;
  height: 31px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .56);
  border-radius: 50%;
  color: #fff;
  background: rgba(18, 37, 47, .92);
  box-shadow: 0 5px 14px rgba(4, 15, 22, .28);
  font-size: 18px;
  pointer-events: none;
  transform: translate(-50%, -50%);
}

.sunlight-marker {
  position: absolute;
  z-index: 5;
  top: var(--sunlight-marker-y, 18%);
  left: var(--sunlight-marker-x, 24%);
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 2px solid rgba(255, 245, 205, .94);
  border-radius: 50%;
  color: #fff7cf;
  background: var(--accent);
  box-shadow: 0 0 0 5px rgba(242, 139, 34, .15), 0 7px 18px rgba(9, 23, 31, .34);
  font-size: 15px;
  pointer-events: none;
  transform: translate(-50%, -50%);
  transition: top .08s linear, left .08s linear, box-shadow .15s ease;
}

.sunlight-dial.is-adjusting .sunlight-marker {
  box-shadow: 0 0 0 8px rgba(242, 139, 34, .2), 0 7px 18px rgba(9, 23, 31, .34);
}

.sunlight-presets {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
}

.sunlight-presets button {
  min-height: 31px;
  padding: 5px 4px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 5px;
  color: rgba(255, 255, 255, .78);
  background: rgba(255, 255, 255, .07);
  cursor: pointer;
  font-size: 9px;
  font-weight: 800;
}

.sunlight-presets button:hover,
.sunlight-presets button.is-active {
  border-color: var(--accent);
  color: #fff;
  background: rgba(242, 139, 34, .18);
}

@media (max-width: 860px) {
  body.is-customize-step .scene-actions {
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }

  body.is-customize-step .scene-actions::-webkit-scrollbar {
    display: none;
  }

  body.is-customize-step .scene-navigation-toggle,
  body.is-customize-step .viewer-mode-toggle,
  body.is-customize-step .scene-levels-menu {
    flex: 0 0 auto;
  }

  body.is-customize-step .viewer-mode-toggle {
    max-width: none;
  }

  .sunlight-panel {
    position: fixed;
    top: 70px;
    right: 12px;
    left: auto;
    width: min(238px, calc(100vw - 24px));
    transform: none;
  }

  .sunlight-panel::before {
    display: none;
  }
}

.step3-panel-footer {
  display: none;
}

.mobile-model-picker,
.mobile-customize-header,
.mobile-customize-price,
.mobile-customize-more,
.mobile-customize-nav {
  display: none;
}

@media (max-width: 860px) {
  body.is-model-step {
    width: 100%;
    height: 100dvh;
    overflow: hidden;
    background: #dce5ea;
  }

  body.is-model-step .app-shell,
  body.is-model-step .configurator,
  body.is-model-step .preview-area,
  body.is-model-step .visual-stage {
    width: 100%;
    height: 100dvh;
    min-height: 0;
    margin: 0;
    padding: 0;
  }

  body.is-model-step .app-shell,
  body.is-model-step .configurator {
    display: block;
    overflow: hidden;
  }

  body.is-model-step .preview-area {
    position: fixed;
    inset: 0;
    z-index: 1;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  body.is-model-step .visual-stage {
    position: absolute;
    inset: 0;
    border: 0;
    border-radius: 0;
    background: #dce5ea;
  }

  body.is-model-step .control-panel,
  body.is-model-step .quote-panel,
  body.is-model-step .preview-toolbar,
  body.is-model-step .preview-footer,
  body.is-model-step .scene-hud,
  body.is-model-step .step3-view-controls,
  body.is-model-step .viewer-watermark {
    display: none !important;
  }

  body.is-model-step .mobile-model-picker {
    position: absolute;
    inset: 0;
    z-index: 12;
    display: block;
    color: var(--steel);
    pointer-events: none;
  }

  .mobile-model-picker-header {
    position: absolute;
    top: max(18px, env(safe-area-inset-top));
    right: 20px;
    left: 20px;
    display: flex;
    min-height: 48px;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(255, 255, 255, .5);
  }

  .mobile-model-picker-header img {
    display: block;
    width: 142px;
    height: 42px;
    object-fit: contain;
    object-position: left center;
    filter: drop-shadow(0 2px 6px rgba(13, 25, 38, .2));
  }

  .mobile-model-picker-count {
    min-width: 44px;
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    text-align: right;
    text-shadow: 0 1px 5px rgba(13, 25, 38, .45);
  }

  .mobile-model-picker-progress {
    position: absolute;
    top: max(94px, calc(env(safe-area-inset-top) + 76px));
    left: 50%;
    display: flex;
    gap: 13px;
    transform: translateX(-50%);
    pointer-events: auto;
  }

  .mobile-model-picker-progress button {
    width: 10px;
    height: 10px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .58);
    box-shadow: 0 1px 5px rgba(13, 25, 38, .18);
    cursor: pointer;
    transition: background .2s ease, transform .2s ease;
  }

  .mobile-model-picker-progress button.is-active {
    background: var(--accent);
    transform: scale(1.2);
  }

  .mobile-model-picker-arrow {
    position: absolute;
    top: 48%;
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    padding: 0 0 4px;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 50%;
    color: var(--steel);
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 9px 24px rgba(13, 25, 38, .2);
    backdrop-filter: blur(12px);
    cursor: pointer;
    font-size: 36px;
    font-weight: 400;
    line-height: 1;
    pointer-events: auto;
    transform: translateY(-50%);
  }

  .mobile-model-picker-arrow:active {
    transform: translateY(-50%) scale(.94);
  }

  .mobile-model-picker-arrow.is-previous {
    left: 18px;
  }

  .mobile-model-picker-arrow.is-next {
    right: 18px;
  }

  .mobile-model-picker-card {
    position: absolute;
    right: 16px;
    bottom: max(16px, env(safe-area-inset-bottom));
    left: 16px;
    display: grid;
    gap: 16px;
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 8px;
    background: rgba(250, 251, 252, .94);
    box-shadow: 0 18px 48px rgba(13, 25, 38, .24);
    backdrop-filter: blur(18px) saturate(110%);
    pointer-events: auto;
  }

  .mobile-model-picker-card h2 {
    margin: 0;
    color: var(--steel);
    font-family: "Bebas Neue", "Arial Narrow", Impact, sans-serif;
    font-size: 25px;
    line-height: 1;
    text-transform: uppercase;
  }

  .mobile-model-picker-card p {
    display: -webkit-box;
    margin: 8px 0 0;
    overflow: hidden;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.45;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .mobile-model-picker-card > button {
    width: 100%;
    min-height: 52px;
    padding: 11px 16px;
    border: 0;
    border-radius: 7px;
    color: var(--steel);
    background: var(--accent);
    box-shadow: 0 8px 20px rgba(233, 138, 42, .28);
    cursor: pointer;
    font: inherit;
    font-size: 15px;
    font-weight: 800;
  }

  body.is-customize-step {
    width: 100%;
    height: 100dvh;
    overflow: hidden;
    background: #dce5ea;
  }

  body.is-customize-step .app-shell,
  body.is-customize-step .configurator,
  body.is-customize-step .preview-area,
  body.is-customize-step .visual-stage {
    width: 100%;
    height: 100dvh;
    min-height: 0;
    margin: 0;
    padding: 0;
  }

  body.is-customize-step .app-shell,
  body.is-customize-step .configurator {
    display: block;
    overflow: hidden;
  }

  body.is-customize-step .preview-area,
  body.is-customize-step .visual-stage {
    position: fixed;
    inset: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  body.is-customize-step .control-panel,
  body.is-customize-step .preview-toolbar,
  body.is-customize-step .preview-footer,
  body.is-customize-step .step3-view-controls,
  body.is-customize-step .viewer-watermark {
    display: none !important;
  }

  body.is-customize-step .mobile-customize-header {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 14;
    display: block;
    min-height: calc(max(14px, env(safe-area-inset-top)) + 44px);
    padding: max(14px, env(safe-area-inset-top)) 14px 8px;
    color: var(--steel);
    background: linear-gradient(180deg, rgba(231, 243, 250, .96), rgba(231, 243, 250, .72) 78%, transparent);
    pointer-events: none;
  }

  .mobile-customize-topline {
    display: grid;
    grid-template-columns: 40px minmax(0, 116px);
    align-items: center;
    gap: 10px;
  }

  .mobile-customize-topline > button {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    padding: 0 0 4px;
    border: 1px solid rgba(255, 255, 255, .48);
    border-radius: 8px;
    color: #fff;
    background: rgba(30, 49, 61, .86);
    box-shadow: 0 8px 20px rgba(13, 25, 38, .16);
    cursor: pointer;
    font-size: 30px;
    line-height: 1;
    pointer-events: auto;
  }

  .mobile-customize-topline img {
    width: 112px;
    height: 36px;
    object-fit: contain;
    object-position: left center;
  }

  body.is-customize-step .scene-hud {
    position: fixed;
    top: max(14px, env(safe-area-inset-top));
    right: 14px;
    left: clamp(154px, 47vw, 184px);
    z-index: 16;
    display: flex !important;
    width: auto;
    min-height: 40px;
    align-items: flex-start;
    justify-content: space-between;
    pointer-events: none;
  }

  body.is-customize-step .scene-actions {
    position: relative;
    display: block;
    width: 100%;
    min-height: 88px;
    max-width: none;
    justify-content: space-between;
    overflow: visible;
    pointer-events: none;
  }

  body.is-customize-step .scene-navigation-toggle,
  body.is-customize-step .viewer-mode-toggle > [data-view-mode="measure"] {
    display: none !important;
  }

  body.is-customize-step .viewer-mode-toggle,
  body.is-customize-step .scene-levels-menu {
    min-height: 40px;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 8px;
    color: #fff;
    background: rgba(30, 49, 61, .86);
    box-shadow: 0 10px 26px rgba(13, 25, 38, .18);
    backdrop-filter: blur(14px) saturate(115%);
    pointer-events: auto;
  }

  body.is-customize-step .viewer-mode-toggle {
    position: absolute;
    top: 0;
    right: 0;
    display: flex;
    width: auto;
    max-width: none;
    overflow: visible;
  }

  body.is-customize-step .viewer-mode-button,
  body.is-customize-step .sunlight-menu summary,
  body.is-customize-step .scene-levels-menu summary {
    min-width: 42px;
    min-height: 38px;
    padding: 8px 9px;
    border-radius: 6px;
    color: rgba(255, 255, 255, .82);
    font-size: 12px;
  }

  body.is-customize-step .viewer-mode-button.is-active {
    color: #fff;
    background: var(--accent);
  }

  body.is-customize-step .sunlight-menu summary span:last-child,
  body.is-customize-step .scene-levels-menu summary {
    font-weight: 800;
  }

  body.is-customize-step .sunlight-menu[open] > summary,
  body.is-customize-step .scene-levels-menu[open] > summary {
    border-color: rgba(242, 139, 34, .78);
    color: #fff;
    background: rgba(242, 139, 34, .92);
    box-shadow: 0 6px 16px rgba(233, 138, 42, .24);
  }

  body.is-customize-step .scene-levels-menu > summary.is-active {
    border-color: rgba(242, 139, 34, .7);
    color: #fff;
    background: rgba(242, 139, 34, .18);
    box-shadow: inset 0 0 0 1px rgba(242, 139, 34, .18);
  }

  body.is-customize-step .scene-levels-menu {
    position: absolute;
    top: 48px;
    right: 0;
  }

  body.is-customize-step .sunlight-panel,
  body.is-customize-step .scene-actions .scene-levels-menu .levels-panel {
    position: fixed !important;
    top: calc(max(14px, env(safe-area-inset-top)) + 96px) !important;
    right: 12px !important;
    bottom: auto !important;
    left: auto !important;
    z-index: 40;
    width: min(330px, calc(100vw - 24px));
    max-height: calc(100dvh - 190px);
    overflow: auto;
    transform: none !important;
  }

  body.is-customize-step .step3-config-panel,
  body.is-customize-step .visual-stage.is-expanded .step3-config-panel {
    position: fixed;
    top: auto;
    right: 10px;
    bottom: calc(72px + env(safe-area-inset-bottom));
    left: 10px;
    z-index: 18;
    display: flex;
    width: auto;
    height: min(44dvh, 390px);
    max-height: min(44dvh, 390px);
    border: 1px solid rgba(255, 255, 255, .26);
    border-radius: 8px 8px 0 0;
    color: #fff;
    background: linear-gradient(155deg, rgba(40, 61, 73, .96), rgba(24, 41, 43, .96));
    box-shadow: 0 -12px 30px rgba(11, 22, 31, .22);
    contain: layout paint;
    transform: translate3d(0, 0, 0);
    will-change: transform, opacity;
    animation: mobileSheetIn .18s cubic-bezier(.22, 1, .36, 1) both;
  }

  body.is-customize-step .step3-config-panel[data-active-category=""] {
    display: none !important;
  }

  body.is-customize-step .step3-panel-brand,
  body.is-customize-step .step3-panel-head {
    display: none !important;
  }

  body.is-customize-step .step3-category-list {
    display: block;
    width: 100%;
    padding: 8px;
    overflow-x: hidden;
    overflow-y: auto;
  }

  body.is-customize-step .step3-category {
    display: none !important;
    max-height: none;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  body.is-customize-step .step3-category.is-step3-active {
    display: block !important;
    max-height: none;
    border: 0;
    background: transparent;
    box-shadow: none;
    animation: mobileCategoryIn .15s ease both;
  }

  body.is-customize-step .step3-category-summary {
    position: sticky;
    top: 0;
    z-index: 2;
    min-height: 54px;
    padding: 8px 9px;
    border-bottom: 1px solid rgba(255, 255, 255, .16);
    color: #fff;
    background: rgba(29, 48, 57, .94);
  }

  body.is-customize-step .step3-category-title strong,
  body.is-customize-step .step3-option-label span {
    color: #fff;
  }

  body.is-customize-step .step3-category-title small {
    color: rgba(255, 255, 255, .58);
  }

  body.is-customize-step .step3-category-body {
    max-height: none;
    color: #fff;
    background: transparent;
  }

  body.is-customize-step .step3-category-body-inner {
    padding: 10px 2px 14px;
    background: transparent;
  }

  body.is-customize-step .step3-option-buttons {
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }

  body.is-customize-step .step3-option-buttons::-webkit-scrollbar {
    display: none;
  }

  body.is-customize-step .step3-option-row {
    color: #fff;
    background: transparent;
  }

  body.is-customize-step .step3-option-label,
  body.is-customize-step .step3-option-label span {
    color: rgba(255, 255, 255, .76);
  }

  body.is-customize-step .step3-option-buttons {
    gap: 5px;
    padding: 5px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 7px;
    background: #243a45;
  }

  body.is-customize-step .step3-option-buttons button {
    border: 1px solid rgba(255, 255, 255, .14);
    color: rgba(255, 255, 255, .82);
    background: #314955;
    box-shadow: none;
  }

  body.is-customize-step .step3-option-buttons button.is-active {
    border-color: var(--accent);
    color: var(--steel);
    background: #f4f5f3;
    box-shadow: 0 5px 14px rgba(8, 18, 28, .18), inset 0 -2px 0 var(--accent);
  }

  body.is-customize-step .step3-option-row[data-step3-option-row="extensions.items"] .step3-option-buttons {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    overflow: visible;
  }

  body.is-customize-step .step3-option-buttons button[data-step3-category="extensions"] {
    display: grid;
    grid-template-rows: 40px auto;
    min-width: 0;
    min-height: 70px;
    place-items: center;
    gap: 3px;
    padding: 6px 3px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 7px;
    color: rgba(255, 255, 255, .8);
    background: rgba(255, 255, 255, .07);
    font-size: 10px;
    font-weight: 750;
    line-height: 1.1;
  }

  body.is-customize-step .step3-option-buttons button[data-step3-category="extensions"] .extension-sketch {
    display: block;
    width: 58px;
    max-width: 92%;
    height: 40px;
    color: currentColor;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  body.is-customize-step .step3-option-buttons button[data-step3-category="extensions"].is-active,
  body.is-customize-step .step3-option-buttons button[data-step3-category="extensions"].is-submenu-open {
    border-color: var(--accent);
    color: var(--steel);
    background: #f4f5f3;
    box-shadow: 0 5px 14px rgba(8, 18, 28, .18), inset 0 -2px 0 var(--accent);
  }

  body.is-customize-step .step3-option-row[data-step3-option-row="facade.color"] .step3-option-buttons {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    overflow: visible;
  }

  body.is-customize-step .step3-option-buttons button[data-step3-category="facade"][data-step3-option="color"] {
    display: grid;
    grid-template-rows: 48px auto;
    min-width: 0;
    min-height: 78px;
    align-content: start;
    gap: 5px;
    padding: 5px;
    overflow: hidden;
    font-size: 9px;
    line-height: 1.08;
    white-space: normal;
  }

  body.is-customize-step .step3-option-buttons button[data-step3-category="facade"][data-step3-option="color"]::before {
    display: block;
    width: 100%;
    height: 48px;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 5px;
    background-color: #8d765f;
    background-image: var(--step3-option-texture, none);
    background-position: center;
    background-size: cover;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .2);
    content: "";
  }

  body.is-customize-step .step3-option-buttons button[data-step3-category="facade"][data-step3-option="color"][data-step3-original="true"]::before {
    background-image:
      linear-gradient(135deg, rgba(255, 255, 255, .2), transparent),
      repeating-linear-gradient(0deg, #9e715a 0 6px, #d6c0ac 6px 8px);
  }

  body.is-customize-step .step3-carport-panel {
    display: grid;
    gap: 8px;
    margin-top: 8px;
    padding: 10px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 7px;
    color: #fff;
    background: #243a45;
  }

  body.is-customize-step .step3-carport-panel[hidden] {
    display: none;
  }

  body.is-customize-step .step3-carport-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
  }

  body.is-customize-step .step3-carport-panel-head > span {
    display: grid;
    gap: 2px;
  }

  body.is-customize-step .step3-carport-panel-head strong {
    color: #fff;
    font-size: 12px;
  }

  body.is-customize-step .step3-carport-panel-head small {
    color: rgba(255, 255, 255, .62);
    font-size: 9px;
  }

  body.is-customize-step .step3-carport-price-badge {
    flex: 0 0 auto;
    padding: 5px 7px;
    border-radius: 999px;
    color: #fff;
    background: var(--accent);
    font-size: 9px !important;
  }

  body.is-customize-step .step3-carport-choices {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
  }

  body.is-customize-step .step3-carport-choices button {
    position: relative;
    display: grid;
    grid-template-rows: 46px minmax(28px, auto) auto;
    min-width: 0;
    min-height: 116px;
    place-items: center;
    align-content: center;
    gap: 4px;
    padding: 8px 6px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 7px;
    color: rgba(255, 255, 255, .82);
    background: #314955;
  }

  body.is-customize-step .step3-carport-choices button.is-active {
    border-color: var(--accent);
    color: #fff;
    background: rgba(242, 139, 34, .15);
    box-shadow: inset 0 0 0 1px rgba(242, 139, 34, .36);
  }

  body.is-customize-step .step3-carport-choices button.is-active::after {
    position: absolute;
    top: 6px;
    right: 6px;
    display: grid;
    width: 17px;
    height: 17px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--accent);
    content: "✓";
    font-size: 10px;
    font-weight: 900;
  }

  body.is-customize-step .step3-carport-choice-sketch {
    width: 64px;
    max-width: 88%;
    height: 44px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  body.is-customize-step .step3-carport-choices button > span {
    color: currentColor;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.15;
    text-align: center;
  }

  body.is-customize-step .step3-carport-choices button > small {
    color: currentColor;
    font-size: 9px;
    font-weight: 800;
  }

  body.is-customize-step .step3-price-notice {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    min-height: 54px;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
    padding: 8px 10px;
    border: 1px solid rgba(242, 139, 34, .58);
    border-radius: 7px;
    color: #fff;
    background: rgba(7, 20, 29, .46);
  }

  body.is-customize-step .step3-price-notice[hidden] {
    display: none;
  }

  body.is-customize-step .step3-price-icon {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
  }

  body.is-customize-step .step3-price-carport-sketch {
    display: block;
    width: 34px;
    height: 28px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  body.is-customize-step .step3-price-copy {
    display: grid;
    gap: 2px;
    min-width: 0;
  }

  body.is-customize-step .step3-price-copy strong,
  body.is-customize-step .step3-price-amount {
    color: #fff;
    font-size: 11px;
  }

  body.is-customize-step .step3-price-copy small {
    color: rgba(255, 255, 255, .58);
    font-size: 9px;
  }

  body.is-customize-step .step3-price-amount {
    color: #ffad58;
  }

  body.is-customize-step .quote-panel {
    display: none !important;
  }

  body.is-customize-step[data-mobile-customize-sheet="overview"] .quote-panel {
    position: fixed;
    top: auto;
    right: 10px;
    bottom: calc(72px + env(safe-area-inset-bottom));
    left: 10px;
    z-index: 18;
    display: block !important;
    width: auto;
    height: min(48dvh, 420px);
    max-height: min(48dvh, 420px);
    overflow-y: auto;
    border: 1px solid rgba(255, 255, 255, .26);
    border-radius: 8px 8px 0 0;
    color: #fff;
    background: linear-gradient(155deg, rgba(40, 61, 73, .97), rgba(24, 41, 43, .97));
    box-shadow: 0 -18px 42px rgba(11, 22, 31, .26);
    animation: mobileSheetIn .28s cubic-bezier(.22, 1, .36, 1) both;
  }

  body.is-customize-step[data-mobile-customize-sheet="overview"] .quote-card {
    border: 0;
    color: #fff;
    background: transparent;
    box-shadow: none;
  }

  body.is-customize-step[data-mobile-customize-sheet="overview"] .quote-card h2,
  body.is-customize-step[data-mobile-customize-sheet="overview"] .quote-card dt,
  body.is-customize-step[data-mobile-customize-sheet="overview"] .quote-card dd {
    color: #fff;
  }

  body.is-customize-step[data-mobile-customize-sheet="overview"] .quote-card {
    display: grid;
    gap: 10px;
    padding: 14px 16px 18px;
  }

  body.is-customize-step[data-mobile-customize-sheet="overview"] .quote-card h2 {
    margin: 0;
    font-size: 20px;
    line-height: 1;
  }

  body.is-customize-step[data-mobile-customize-sheet="overview"] #summaryList {
    display: grid;
    gap: 0;
    margin: 0;
    overflow: visible;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 7px;
    background: rgba(255, 255, 255, .07);
  }

  body.is-customize-step[data-mobile-customize-sheet="overview"] #summaryList > div {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.25fr);
    gap: 12px;
    align-items: center;
    min-height: 42px;
    padding: 8px 10px;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  body.is-customize-step[data-mobile-customize-sheet="overview"] #summaryList > div:last-child {
    border-bottom: 0;
  }

  body.is-customize-step[data-mobile-customize-sheet="overview"] #summaryList dt,
  body.is-customize-step[data-mobile-customize-sheet="overview"] #summaryList dd {
    margin: 0;
    line-height: 1.25;
  }

  body.is-customize-step[data-mobile-customize-sheet="overview"] #summaryList dt {
    color: rgba(255, 255, 255, .58);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
  }

  body.is-customize-step[data-mobile-customize-sheet="overview"] #summaryList dd {
    color: #fff;
    font-size: 12px;
    font-weight: 750;
    text-align: right;
  }

  body.is-customize-step[data-mobile-customize-sheet="overview"] .notes {
    display: none;
  }

  body.is-customize-step .mobile-customize-price {
    position: fixed;
    right: 12px;
    bottom: calc(84px + env(safe-area-inset-bottom));
    z-index: 17;
    display: flex;
    min-height: 44px;
    align-items: center;
    gap: 5px;
    padding: 8px 10px 8px 13px;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 8px;
    color: #fff;
    background: rgba(30, 49, 61, .9);
    box-shadow: 0 10px 28px rgba(13, 25, 38, .2);
    backdrop-filter: blur(14px);
    transition: bottom .28s cubic-bezier(.22, 1, .36, 1);
  }

  body.is-customize-step:is([data-mobile-customize-sheet="extensions"], [data-mobile-customize-sheet="facade"], [data-mobile-customize-sheet="frames"], [data-mobile-customize-sheet="roof"], [data-mobile-customize-sheet="doors"], [data-mobile-customize-sheet="energy"], [data-mobile-customize-sheet="overview"]) .mobile-customize-price {
    bottom: calc(min(44dvh, 390px) + 84px + env(safe-area-inset-bottom));
  }

  body.is-customize-step[data-mobile-customize-sheet="overview"] .mobile-customize-price {
    bottom: calc(min(48dvh, 420px) + 84px + env(safe-area-inset-bottom));
  }

  .mobile-customize-price span {
    color: rgba(255, 255, 255, .65);
    font-size: 11px;
  }

  .mobile-customize-price strong {
    font-size: 14px;
  }

  .mobile-customize-price button {
    display: grid;
    width: 24px;
    height: 24px;
    margin-left: 4px;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .55);
    border-radius: 50%;
    color: #fff;
    background: transparent;
    cursor: pointer;
    font-size: 12px;
  }

  body.is-customize-step .mobile-customize-more {
    position: fixed;
    right: 76px;
    bottom: calc(82px + env(safe-area-inset-bottom));
    z-index: 20;
    grid-template-columns: repeat(2, 1fr);
    gap: 6px;
    width: min(190px, calc(100vw - 24px));
    padding: 8px;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 8px;
    background: rgba(30, 49, 61, .96);
    box-shadow: 0 12px 32px rgba(13, 25, 38, .28);
    backdrop-filter: blur(16px);
  }

  body.is-customize-step .mobile-customize-more:not([hidden]) {
    display: grid;
  }

  .mobile-customize-more button {
    min-height: 42px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 6px;
    color: #fff;
    background: rgba(255, 255, 255, .08);
    font: inherit;
    font-size: 12px;
    font-weight: 800;
  }

  body.is-customize-step .mobile-customize-nav {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 21;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    min-height: calc(72px + env(safe-area-inset-bottom));
    padding: 7px 5px max(7px, env(safe-area-inset-bottom));
    border-top: 1px solid rgba(255, 255, 255, .18);
    color: #fff;
    background: rgba(22, 39, 47, .97);
    box-shadow: 0 -12px 30px rgba(11, 22, 31, .2);
    backdrop-filter: blur(18px) saturate(110%);
  }

  .mobile-customize-nav > button {
    position: relative;
    display: grid;
    min-width: 0;
    min-height: 56px;
    place-items: center;
    align-content: center;
    gap: 4px;
    padding: 4px 2px;
    border: 0;
    border-right: 1px solid rgba(255, 255, 255, .12);
    color: rgba(255, 255, 255, .72);
    background: transparent;
    cursor: pointer;
  }

  .mobile-customize-nav > button:last-child {
    border-right: 0;
  }

  .mobile-customize-nav > button span {
    min-height: 22px;
    color: currentColor;
    font-size: 21px;
    line-height: 1;
  }

  .mobile-customize-nav > button strong {
    max-width: 100%;
    overflow: hidden;
    font-size: 10px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mobile-customize-nav > button[data-mobile-customize-category="frames"] strong {
    line-height: 1.05;
    text-overflow: clip;
    white-space: normal;
  }

  .mobile-customize-nav > button.is-active {
    color: var(--accent);
  }

  .mobile-customize-nav > button.is-active::after {
    position: absolute;
    right: 16px;
    bottom: 1px;
    left: 16px;
    height: 3px;
    border-radius: 3px;
    background: var(--accent);
    content: "";
  }

  @keyframes mobileSheetIn {
    from { opacity: 0; transform: translate3d(0, 16px, 0); }
    to { opacity: 1; transform: translate3d(0, 0, 0); }
  }

  @keyframes mobileCategoryIn {
    from { opacity: 0; transform: translate3d(0, 5px, 0); }
    to { opacity: 1; transform: translate3d(0, 0, 0); }
  }
}

@media (min-width: 1000px) and (min-height: 680px) {
  html,
  body {
    width: 100%;
    height: 100%;
    overflow: hidden;
  }

  body {
    background: #dce5ea;
  }

  .app-shell {
    width: 100%;
    height: 100svh;
    min-height: 0;
    padding: 0;
    overflow: hidden;
  }

  .configurator,
  body:not(.is-model-step) .configurator,
  body.is-build-step .configurator,
  body.is-customize-step .configurator {
    position: relative;
    display: block;
    width: 100%;
    max-width: none;
    height: 100svh;
    margin: 0;
    overflow: hidden;
  }

  .preview-area,
  body.is-build-step .preview-area,
  body.is-customize-step .preview-area {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: block;
    min-height: 0;
  }

  .visual-stage,
  body.is-build-step .visual-stage,
  body.is-customize-step .visual-stage {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .preview-toolbar {
    position: absolute;
    left: 20px;
    right: 20px;
    top: 16px;
    z-index: 12;
    min-height: 48px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    pointer-events: none;
  }

  .preview-toolbar .view-toggle {
    margin-left: auto;
    pointer-events: auto;
  }

  .client-identity {
    min-width: 0;
    width: auto;
    padding: 6px 10px;
    border: 1px solid rgba(255, 255, 255, .28);
    background: rgba(20, 34, 50, .16);
    box-shadow: 0 8px 26px rgba(20, 35, 50, .12);
    backdrop-filter: blur(12px);
  }

  .brand-logo {
    width: 150px;
    height: 42px;
  }

  .preview-title {
    padding: 7px 12px;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 7px;
    background: rgba(20, 34, 50, .22);
    box-shadow: 0 8px 26px rgba(20, 35, 50, .1);
    backdrop-filter: blur(12px);
  }

  .preview-title .eyebrow {
    margin-bottom: 3px;
    font-size: 9px;
  }

  .preview-toolbar h2 {
    font-size: 20px;
  }

  .preview-toolbar .view-toggle {
    border-color: rgba(255, 255, 255, .42);
    background: rgba(255, 255, 255, .76);
    box-shadow: 0 8px 26px rgba(20, 35, 50, .12);
    backdrop-filter: blur(14px);
  }

  .preview-toolbar .view-toggle label {
    min-height: 34px;
    padding: 7px 11px;
    color: #40515f;
  }

  .preview-toolbar .view-toggle label:has(input:checked) {
    color: #fff;
    background: var(--steel);
  }

  .control-panel {
    position: absolute;
    left: 22px;
    top: 82px;
    bottom: 250px;
    z-index: 10;
    display: flex;
    width: 410px;
    min-height: 0;
    padding: 18px;
    border-color: rgba(255, 255, 255, .34);
    color: #fff;
    background:
      linear-gradient(155deg, rgba(51, 74, 89, .7), rgba(37, 54, 49, .62));
    box-shadow: 0 24px 70px rgba(18, 31, 44, .19);
    backdrop-filter: blur(20px) saturate(116%);
    overflow: hidden;
  }

  body.is-customize-step .control-panel,
  body.is-build-step .control-panel {
    display: none;
  }

  body.is-model-step .control-panel {
    top: 14px;
    bottom: 14px;
  }

  body.is-model-step .control-panel > .client-identity {
    display: flex;
    flex: 0 0 auto;
    width: 100%;
    min-height: 55px;
    justify-content: flex-start;
    margin: 0 0 16px;
    padding: 0 0 14px;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .2);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }

  body.is-model-step .control-panel > .client-identity .brand-logo {
    width: 154px;
    height: 42px;
    object-position: left center;
  }

  body.is-model-step .control-panel > .client-identity .brand-copy {
    color: #fff;
  }

  .panel-head h1 {
    color: #fff;
    font-size: 22px;
  }

  .panel-head p:last-child {
    margin-top: 5px;
    font-size: 12px;
    line-height: 1.35;
    color: rgba(255, 255, 255, .78);
  }

  .steps {
    flex: 0 0 auto;
    min-height: 0;
    padding: 14px 2px 12px 0;
    overflow: visible;
  }

  body.is-model-step .step-pane.is-active {
    min-height: 0;
  }

  body.is-model-step .model-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: calc((100% - 8px) / 2);
    height: clamp(282px, 40vh, 356px);
    padding-right: 5px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-color: rgba(255, 255, 255, .42) transparent;
    scrollbar-width: thin;
  }

  .choice-grid {
    gap: 8px;
  }

  .choice-card {
    min-height: 0;
    gap: 6px;
    padding: 8px;
    border-color: rgba(255, 255, 255, .3);
    color: #fff;
    background: rgba(255, 255, 255, .13);
    box-shadow: 0 7px 18px rgba(20, 35, 50, .07);
    backdrop-filter: blur(8px);
  }

  .choice-card strong {
    color: #fff;
    font-size: 14px;
  }

  .choice-card small {
    color: rgba(255, 255, 255, .78);
    font-size: 10px;
    line-height: 1.25;
  }

  body.is-model-step .choice-card {
    grid-template-rows: minmax(60px, 82px) auto 1fr;
    height: 100%;
    align-content: start;
  }

  body.is-model-step .choice-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  body.is-model-step .choice-card.is-selected {
    border-color: var(--accent);
    background: rgba(255, 255, 255, .2);
    box-shadow: inset 0 0 0 1px var(--accent), 0 12px 25px rgba(20, 35, 50, .16);
  }

  body.is-model-step .model-selection-summary {
    display: block;
    flex: 0 0 auto;
    margin-top: 2px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 8px;
    background: rgba(17, 29, 28, .2);
    overflow: hidden;
  }

  .model-selection-summary h2 {
    margin: 0;
    padding: 12px 14px 6px;
    color: #fff;
    font-size: 12px;
    text-transform: uppercase;
  }

  .model-selection-summary dl {
    display: grid;
    gap: 5px;
    margin: 0;
    padding: 5px 14px 12px;
  }

  .model-selection-summary dl div {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: 12px;
  }

  .model-selection-summary dt,
  .model-selection-summary dd {
    margin: 0;
    font-size: 11px;
    line-height: 1.25;
  }

  .model-selection-summary dt {
    color: rgba(255, 255, 255, .66);
  }

  .model-selection-summary dd {
    color: #fff;
    font-weight: 700;
  }

  .model-selection-summary button {
    display: flex;
    width: 100%;
    min-height: 40px;
    align-items: center;
    justify-content: space-between;
    padding: 9px 14px;
    border: 0;
    border-top: 1px solid rgba(255, 255, 255, .18);
    color: #fff;
    background: rgba(255, 255, 255, .08);
    font: inherit;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
  }

  .model-selection-summary button:hover {
    background: rgba(255, 255, 255, .16);
  }

  body.is-model-step .quote-panel {
    display: none;
  }

  .control-panel > .panel-actions {
    flex: 0 0 auto;
  }

  .control-panel > .panel-actions .primary-button {
    min-height: 42px;
  }

  .quote-panel {
    position: absolute;
    left: 22px;
    bottom: 14px;
    z-index: 11;
    display: block;
    width: 410px;
    pointer-events: auto;
  }

  .quote-card {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 7px 8px;
    height: 180px;
    max-height: 180px;
    padding: 12px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-top: 1px solid rgba(255, 255, 255, .16);
    border-radius: 0 0 8px 8px;
    color: #fff;
    background:
      linear-gradient(155deg, rgba(48, 69, 81, .78), rgba(31, 47, 44, .72));
    box-shadow: 0 18px 44px rgba(11, 22, 31, .24);
    backdrop-filter: blur(20px) saturate(116%);
    overflow: hidden;
  }

  .quote-card h2 {
    grid-column: 1 / -1;
  }

  .quote-card h2 {
    margin: 0;
    color: #fff;
    font-size: 12px;
    text-transform: uppercase;
  }

  .quote-card dl {
    display: grid;
    grid-column: 1 / -1;
    grid-row: auto;
    grid-template-columns: minmax(0, 1fr);
    gap: 5px;
    min-height: 0;
    margin: 0;
    padding: 0 2px 2px;
  }

  .quote-card div {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    width: 100%;
    min-height: 0;
    gap: 12px;
    padding: 0 2px;
    border: 0;
    background: transparent;
  }

  .quote-card dt {
    color: rgba(255, 255, 255, .66);
    font-size: 11px;
  }

  .quote-card dd {
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.25;
  }

  .quote-card .full-width,
  .quote-card .ghost-button.full-width {
    grid-column: auto;
    min-width: 0;
    min-height: 34px;
    width: 100%;
    margin: 0;
    padding: 7px 9px;
    font-size: 10px;
  }

  .quote-card .ghost-button.full-width {
    color: #fff;
    border-color: rgba(255, 255, 255, .2);
    background: rgba(255, 255, 255, .08);
  }

  .quote-status {
    grid-column: 1 / -1;
    padding: 7px 8px;
    font-size: 10px;
  }

  .notes {
    display: none;
  }

  .preview-footer {
    position: absolute;
    right: 20px;
    bottom: 18px;
    z-index: 10;
    display: flex;
    width: auto;
    max-width: min(660px, calc(100vw - 420px));
    align-items: stretch;
    justify-content: flex-end;
    gap: 8px;
    margin: 0;
    pointer-events: none;
  }

  .preview-footer > * {
    pointer-events: auto;
  }

  .preview-footer > .summary-band {
    order: 2;
    width: 250px;
  }

  .summary-band article {
    min-height: 74px;
    padding: 12px 14px;
    border-color: rgba(255, 255, 255, .2);
    color: #fff;
    background: rgba(18, 31, 47, .82);
    box-shadow: 0 18px 45px rgba(11, 21, 32, .24);
    backdrop-filter: blur(16px);
  }

  .summary-band span,
  .summary-band small {
    color: rgba(255, 255, 255, .64);
  }

  .summary-band strong {
    color: #fff;
  }

  .preview-footer > .panel-actions {
    order: 1;
    grid-template-columns: repeat(2, minmax(104px, 1fr));
    width: auto;
  }

  .preview-footer .primary-button,
  .preview-footer .ghost-button {
    min-height: 74px;
    padding-inline: 18px;
    box-shadow: 0 18px 45px rgba(11, 21, 32, .18);
  }

  .scene-hud {
    left: auto;
    right: 20px;
    top: 78px;
  }

  body.is-customize-step .step3-config-panel {
    left: 22px;
    top: 14px;
    bottom: 254px;
    width: 410px;
    border: 1px solid rgba(255, 255, 255, .34);
    border-radius: 8px 8px 0 0;
    color: #fff;
    background:
      linear-gradient(155deg, rgba(55, 78, 91, .72), rgba(35, 52, 48, .66));
    box-shadow: 0 24px 70px rgba(11, 22, 31, .3);
    backdrop-filter: blur(20px) saturate(116%);
    transition:
      left .36s cubic-bezier(.22, 1, .36, 1),
      box-shadow .24s ease;
    will-change: left;
  }

  body.is-customize-step .step3-panel-brand {
    display: flex;
    flex: 0 0 auto;
    min-height: 58px;
    align-items: center;
    padding: 9px 13px;
    border-bottom: 1px solid rgba(255, 255, 255, .2);
    color: #fff;
    background: rgba(17, 30, 35, .16);
    text-decoration: none;
  }

  body.is-customize-step .step3-panel-brand img {
    display: block;
    width: 154px;
    height: 40px;
    object-fit: contain;
    object-position: left center;
  }

  body.is-customize-step .step3-panel-brand.is-text {
    font-size: 18px;
    font-weight: 900;
    text-transform: uppercase;
  }

  body.is-customize-step .step3-panel-head {
    border-bottom-color: rgba(255, 255, 255, .2);
    background: rgba(17, 30, 35, .18);
    backdrop-filter: blur(12px);
  }

  body.is-customize-step .step3-breadcrumb,
  body.is-customize-step .step3-panel-head > small {
    display: none;
  }

  body.is-customize-step .step3-panel-head strong,
  body.is-customize-step .step3-breadcrumb,
  body.is-customize-step .step3-breadcrumb strong,
  body.is-customize-step .step3-category-title strong,
  body.is-customize-step .step3-option-label span {
    color: #fff;
  }

  body.is-customize-step .step3-panel-head small,
  body.is-customize-step .step3-category-title small {
    color: rgba(255, 255, 255, .62);
  }

  body.is-customize-step .step3-collapse-button,
  body.is-customize-step .step3-reset-button {
    border-color: rgba(255, 255, 255, .24);
    color: #fff;
    background: rgba(255, 255, 255, .11);
  }

  body.is-customize-step .step3-collapse-button::before {
    border-color: rgba(255, 255, 255, .82);
  }

  body.is-customize-step .step3-category-list {
    gap: 7px;
    padding: 9px;
    background: transparent;
  }

  body.is-customize-step .step3-category {
    border-color: rgba(255, 255, 255, .22);
    background:
      linear-gradient(90deg, color-mix(in srgb, var(--part-accent) 18%, transparent), transparent 42%),
      rgba(255, 255, 255, .09);
    box-shadow: 0 7px 18px rgba(10, 22, 28, .12);
    backdrop-filter: blur(8px);
  }

  body.is-customize-step .step3-category.is-open,
  body.is-customize-step .step3-config-panel.is-filtered .step3-category.is-step3-active {
    border-color: rgba(255, 255, 255, .42);
    background:
      linear-gradient(145deg, rgba(255, 255, 255, .2), rgba(255, 255, 255, .1));
    box-shadow: 0 14px 32px rgba(10, 22, 28, .18);
  }

  body.is-customize-step .step3-category-summary {
    min-height: 44px;
    padding: 7px 9px;
  }

  body.is-customize-step .step3-category-summary::before {
    width: 3px;
  }

  body.is-customize-step .step3-category-icon {
    width: 27px;
    height: 27px;
    border: 1px solid rgba(255, 255, 255, .42);
    border-radius: 6px;
    font-size: 13px;
  }

  body.is-customize-step .step3-category-body-inner {
    gap: 9px;
    padding: 1px 9px 10px;
  }

  body.is-customize-step .step3-option-buttons {
    gap: 4px;
    padding: 3px;
    border-color: rgba(255, 255, 255, .18);
    background: rgba(9, 22, 26, .2);
  }

  body.is-customize-step .step3-option-buttons button {
    min-height: 30px;
    color: #fff;
    background: rgba(255, 255, 255, .1);
  }

  body.is-customize-step .step3-option-buttons button:hover {
    background: rgba(255, 255, 255, .2);
  }

  body.is-customize-step .step3-option-buttons button.is-active {
    border-color: rgba(255, 255, 255, .92);
    color: #243746;
    background: rgba(255, 255, 255, .9);
    box-shadow: inset 0 -2px 0 var(--accent), 0 5px 12px rgba(28, 44, 77, .14);
  }

  body.is-customize-step .step3-option-row[data-step3-option-row="extensions.items"] .step3-option-label {
    display: none;
  }

  body.is-customize-step .step3-option-row[data-step3-option-row="extensions.items"] .step3-option-buttons {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 3px;
  }

  body.is-customize-step .step3-option-buttons button[data-step3-category="extensions"] {
    display: grid;
    grid-template-rows: 34px auto;
    min-width: 0;
    min-height: 61px;
    place-items: center;
    gap: 2px;
    padding: 4px 2px 5px;
    font-size: 9px;
    line-height: 1.05;
  }

  body.is-customize-step .step3-option-buttons button[data-step3-category="extensions"] .extension-sketch {
    display: block;
    width: 48px;
    max-width: 100%;
    height: 34px;
    color: rgba(255, 255, 255, .78);
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: color .16s ease, transform .16s ease;
  }

  body.is-customize-step .step3-option-buttons button[data-step3-category="extensions"]:hover .extension-sketch {
    color: #fff;
    transform: translateY(-1px);
  }

  body.is-customize-step .step3-option-buttons button[data-step3-category="extensions"].is-active .extension-sketch {
    color: var(--steel);
  }

  body.is-customize-step .step3-option-buttons button[data-step3-category="extensions"].is-submenu-open {
    border-color: var(--accent);
    background: rgba(242, 139, 34, .16);
    box-shadow: inset 0 0 0 1px rgba(242, 139, 34, .32);
  }

  body.is-customize-step .step3-option-buttons button[data-step3-category="extensions"].is-submenu-open .extension-sketch {
    color: #fff;
  }

  body.is-customize-step .step3-option-buttons button[data-step3-category="extensions"] > span {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.is-customize-step .step3-option-buttons button[data-step3-category="extensions"] .step3-price-button-hint {
    color: #ffad58;
    font-size: 7.5px;
    line-height: 1;
    opacity: 1;
  }

  body.is-customize-step .step3-carport-panel {
    display: grid;
    gap: 8px;
    margin-top: 7px;
    padding: 9px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 7px;
    background: rgba(7, 20, 29, .32);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04);
    animation: step3OptionsIn .2s ease both;
  }

  body.is-customize-step .step3-carport-panel[hidden] {
    display: none;
  }

  body.is-customize-step .step3-carport-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
  }

  body.is-customize-step .step3-carport-panel-head > span {
    display: grid;
    gap: 2px;
    min-width: 0;
  }

  body.is-customize-step .step3-carport-panel-head strong {
    color: #fff;
    font-size: 11px;
  }

  body.is-customize-step .step3-carport-panel-head small {
    color: rgba(255, 255, 255, .62);
    font-size: 8.5px;
    line-height: 1.25;
  }

  body.is-customize-step .step3-carport-panel-head .step3-carport-price-badge {
    flex: 0 0 auto;
    padding: 4px 7px;
    border: 1px solid rgba(242, 139, 34, .72);
    border-radius: 999px;
    color: #fff;
    background: var(--accent);
    font-size: 9px;
    line-height: 1;
  }

  body.is-customize-step .step3-carport-choices {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }

  body.is-customize-step .step3-carport-choices button {
    position: relative;
    display: grid;
    min-width: 0;
    min-height: 88px;
    place-items: center;
    align-content: center;
    gap: 3px;
    padding: 7px 6px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 7px;
    color: rgba(255, 255, 255, .84);
    background: rgba(255, 255, 255, .07);
    cursor: pointer;
    transition: border-color .16s ease, background .16s ease, transform .16s ease;
  }

  body.is-customize-step .step3-carport-choices button:hover {
    border-color: rgba(255, 255, 255, .42);
    background: rgba(255, 255, 255, .12);
    transform: translateY(-1px);
  }

  body.is-customize-step .step3-carport-choices button.is-active {
    border-color: var(--accent);
    color: #fff;
    background: rgba(242, 139, 34, .14);
    box-shadow: inset 0 0 0 1px rgba(242, 139, 34, .4);
  }

  body.is-customize-step .step3-carport-choices button.is-active::after {
    content: "✓";
    position: absolute;
    top: 6px;
    right: 6px;
    display: grid;
    width: 16px;
    height: 16px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--accent);
    font-size: 10px;
    font-weight: 900;
  }

  body.is-customize-step .step3-carport-choice-sketch {
    width: 56px;
    max-width: 88%;
    height: 40px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  body.is-customize-step .step3-carport-choices button > span {
    font-size: 9.5px;
    font-weight: 750;
    line-height: 1.15;
    text-align: center;
  }

  body.is-customize-step .step3-carport-choices button > small {
    color: currentColor;
    font-size: 8.5px;
    font-weight: 800;
    opacity: .76;
  }

  body.is-customize-step .step3-carport-choices button[data-step3-carport-choice="attached"] > small {
    color: #ffad58;
    opacity: 1;
  }

  body.is-customize-step .step3-price-notice {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    min-height: 52px;
    align-items: center;
    gap: 9px;
    padding: 8px 10px;
    border: 1px solid color-mix(in srgb, var(--accent) 58%, rgba(255, 255, 255, .2));
    border-radius: 7px;
    color: #fff;
    background: rgba(12, 29, 39, .42);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04);
    animation: step3OptionsIn .2s ease both;
  }

  body.is-customize-step .step3-price-notice[hidden] {
    display: none;
  }

  body.is-customize-step .step3-option-buttons button[data-step3-category="energy"][data-step3-option="battery"][data-step3-value="true"] {
    display: grid;
    place-content: center;
    gap: 0;
    line-height: 1.05;
  }

  body.is-customize-step .step3-price-button-hint {
    color: currentColor;
    font-size: 8px;
    font-weight: 650;
    opacity: .7;
  }

  body.is-customize-step .step3-price-icon {
    display: grid;
    width: 28px;
    height: 34px;
    place-items: center;
    border: 2px solid rgba(255, 255, 255, .76);
    border-radius: 4px;
    color: #fff;
    font-size: 17px;
    font-weight: 900;
  }

  body.is-customize-step .step3-price-icon.is-carport {
    width: 34px;
    padding: 3px;
    border-width: 1px;
  }

  body.is-customize-step .step3-price-carport-sketch {
    display: block;
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  body.is-customize-step .step3-price-copy {
    display: grid;
    gap: 2px;
    min-width: 0;
  }

  body.is-customize-step .step3-price-copy strong {
    color: #fff;
    font-size: 12px;
  }

  body.is-customize-step .step3-price-copy small {
    color: rgba(255, 255, 255, .62);
    font-size: 9px;
  }

  body.is-customize-step .step3-price-amount {
    color: var(--accent);
    font-size: 16px;
    white-space: nowrap;
  }

  /* Gevelstenen krijgen in de proefinterface een echte materiaalpreview. */
  body.is-customize-step .step3-option-buttons button[data-step3-category="facade"][data-step3-option="color"] {
    display: grid;
    grid-template-rows: 42px auto;
    min-width: 0;
    min-height: 68px;
    place-items: center;
    gap: 4px;
    padding: 5px 3px;
    line-height: 1.05;
  }

  body.is-customize-step .step3-option-buttons button[data-step3-category="facade"][data-step3-option="color"]::before {
    width: 100%;
    height: 38px;
    border: 1px solid rgba(28, 44, 77, .18);
    border-radius: 4px;
    background-color: #d7d2c8;
    background-position: center;
    background-size: cover;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .38), 0 4px 10px rgba(20, 35, 50, .12);
    content: "";
  }

  body.is-customize-step .step3-option-buttons button[data-step3-category="facade"][data-step3-option="color"][data-step3-original="true"]::before {
    background:
      linear-gradient(135deg, rgba(255, 255, 255, .65), transparent),
      repeating-linear-gradient(0deg, #9e715a 0 5px, #d6c0ac 5px 7px);
  }

  body.is-customize-step .step3-config-panel.is-collapsed {
    left: -410px;
    top: 14px;
    bottom: 254px;
    width: 410px;
    border-radius: 8px 8px 0 0;
    overflow: visible;
    box-shadow: none;
  }

  body.is-customize-step .step3-config-panel.is-collapsed .step3-panel-head {
    position: static;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
  }

  body.is-customize-step .step3-config-panel.is-collapsed .step3-panel-title {
    display: block;
    position: static;
    min-height: 0;
  }

  body.is-customize-step .step3-config-panel.is-collapsed .step3-panel-title > :not(.step3-collapse-button),
  body.is-customize-step .step3-config-panel.is-collapsed .step3-breadcrumb,
  body.is-customize-step .step3-config-panel.is-collapsed .step3-panel-head > small,
  body.is-customize-step .step3-config-panel.is-collapsed .step3-panel-actions,
  body.is-customize-step .step3-config-panel.is-collapsed .step3-category-list {
    display: none;
  }

  body.is-customize-step .step3-config-panel.is-collapsed .step3-collapse-button {
    position: absolute;
    top: calc(50svh - 56px);
    right: -36px;
    z-index: 4;
    width: 36px;
    height: 84px;
    margin: 0;
    border: 1px solid rgba(255, 255, 255, .32);
    border-left: 0;
    border-radius: 0 8px 8px 0;
    color: #fff;
    background:
      linear-gradient(155deg, rgba(48, 69, 81, .94), rgba(31, 47, 44, .92));
    box-shadow: 10px 12px 28px rgba(11, 22, 31, .24);
    transform: none;
    backdrop-filter: blur(14px) saturate(116%);
  }

  body.is-customize-step .step3-config-panel.is-collapsed .step3-collapse-button::before {
    border-color: #fff;
    transform: rotate(225deg);
  }

  .step3-panel-footer[hidden] {
    display: none !important;
  }

  body.is-customize-step .step3-panel-footer:not([hidden]) {
    position: absolute;
    left: 22px;
    bottom: 194px;
    z-index: 12;
    display: block;
    width: 410px;
    padding: 8px;
    border: 1px solid rgba(255, 255, 255, .34);
    border-top: 1px solid rgba(255, 255, 255, .16);
    border-radius: 0;
    background:
      linear-gradient(155deg, rgba(48, 69, 81, .78), rgba(31, 47, 44, .72));
    box-shadow: 0 18px 44px rgba(11, 22, 31, .24);
    backdrop-filter: blur(20px) saturate(116%);
    transform: translateX(0);
    transition:
      transform .36s cubic-bezier(.22, 1, .36, 1),
      opacity .2s ease;
    will-change: transform;
  }

  body.is-customize-step .step3-panel-footer .panel-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
  }

  body.is-customize-step .step3-panel-footer .ghost-button,
  body.is-customize-step .step3-panel-footer .primary-button {
    min-height: 42px;
    margin: 0;
    padding: 9px 12px;
    box-shadow: none;
  }

  body.is-customize-step .step3-panel-footer .ghost-button {
    border-color: rgba(255, 255, 255, .24);
    color: #fff;
    background: rgba(255, 255, 255, .1);
  }

  body.is-customize-step .step3-config-panel.is-collapsed + .step3-panel-footer {
    opacity: 0;
    pointer-events: none;
    transform: translateX(calc(-100% - 22px));
  }

  body.is-customize-step.is-step3-menu-collapsed .quote-panel {
    opacity: 0;
    pointer-events: none;
    transform: translateX(calc(-100% - 22px));
  }

  body.is-customize-step .step3-config-panel.is-collapsed .step3-panel-brand {
    display: none;
  }

  body.is-customize-step .quote-panel {
    transform: translateX(0);
    transition:
      transform .36s cubic-bezier(.22, 1, .36, 1),
      opacity .2s ease;
    will-change: transform;
  }

  body.is-customize-step .visual-stage.is-expanded .step3-config-panel {
    bottom: 78px;
  }

  body.is-customize-step .visual-stage.is-expanded .step3-panel-footer:not([hidden]) {
    bottom: 18px;
  }

  body.is-customize-step .step3-view-controls {
    bottom: 18px;
  }

  .viewer-watermark {
    right: 22px;
    bottom: 108px;
  }
}

/* Gebruik één volledige gevelsteenpreview; de oude ::before-laag legde een licht vak over de textuur. */
body.is-customize-step .step3-option-buttons button[data-step3-category="facade"][data-step3-option="color"] {
  grid-template-rows: 1fr;
  place-items: end start;
  min-height: 68px;
  padding: 8px;
}

body.is-customize-step .step3-option-buttons button[data-step3-category="facade"][data-step3-option="color"]::before,
body.is-customize-step .step3-option-buttons button[data-step3-category="facade"][data-step3-option="color"][data-step3-original="true"]::before {
  display: none !important;
  content: none;
}

body.is-customize-step .step3-option-buttons button[data-step3-category="facade"][data-step3-option="color"][data-step3-original="true"] {
  background-image:
    linear-gradient(180deg, transparent 38%, rgba(13, 21, 24, .82) 100%),
    repeating-linear-gradient(0deg, #9e715a 0 6px, #d6c0ac 6px 8px);
}

/* Gevelplint sluit visueel aan op de gevelstenen en toont het verschil direct. */
body.is-customize-step .step3-option-row[data-step3-option-row="facade.plinth"] .step3-option-buttons {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  padding: 0;
  border: 0;
  background: transparent;
}

body.is-customize-step .step3-option-row[data-step3-option-row="facade.plinth"] .step3-option-buttons button,
body.is-customize-step .step3-option-row[data-step3-option-row="facade.plinth"] .step3-option-buttons button.is-active {
  display: grid;
  min-width: 0;
  min-height: 0;
  place-items: center;
  gap: 4px;
  padding: 3px 3px 6px;
  color: #fff;
  background: rgba(10, 28, 34, .42);
  line-height: 1.05;
}

body.is-customize-step .step3-option-row[data-step3-option-row="facade.plinth"] .step3-option-buttons button.is-active {
  border-color: var(--accent);
  box-shadow: 0 4px 12px rgba(8, 24, 30, .24);
}

body.is-customize-step .step3-option-row[data-step3-option-row="facade.color"] .step3-option-buttons button[data-step3-value],
body.is-customize-step .step3-option-row[data-step3-option-row="facade.color"] .step3-option-buttons button[data-step3-original="true"],
body.is-customize-step .step3-option-row[data-step3-option-row="facade.color"] .step3-option-buttons button[data-step3-value].is-active,
body.is-customize-step .step3-option-row[data-step3-option-row="facade.color"] .step3-option-buttons button[data-step3-original="true"].is-active {
  grid-template-rows: auto auto;
  min-height: 0;
  place-items: center;
  gap: 4px;
  padding: 3px 3px 5px;
  color: #fff;
  background: rgba(10, 28, 34, .42) !important;
  background-image: none !important;
  text-align: center;
  text-shadow: none;
}

body.is-customize-step .step3-option-row[data-step3-option-row="facade.color"] .step3-option-buttons button.is-active {
  border-color: var(--accent);
  box-shadow: 0 4px 12px rgba(8, 24, 30, .24);
}

body.is-customize-step .step3-option-row[data-step3-option-row="facade.color"] .step3-option-buttons {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.is-customize-step .step3-category[data-step3-category="energy"] .step3-price-notice {
  background:
    linear-gradient(90deg, rgba(8, 25, 32, .96), rgba(8, 25, 32, .56)),
    url("./assets/ui/energy/energy-options.png") 93.4% 64.5% / 482% 535% no-repeat;
}

body.is-customize-step .step3-config-panel.is-filtered .step3-category.is-step3-active,
body.is-customize-step .step3-category.is-open {
  border-color: rgba(255, 255, 255, .3) !important;
  color: #fff;
  background:
    radial-gradient(circle at 82% 8%, rgba(132, 169, 137, .14), transparent 35%),
    linear-gradient(145deg, rgba(38, 71, 72, .96), rgba(28, 51, 58, .97)) !important;
}

body.is-customize-step .step3-category-body,
body.is-customize-step .step3-category-body-inner {
  color: #fff;
  background: transparent !important;
}

body.is-customize-step .step3-category[data-step3-category]:not([data-step3-category="storage"]) > .step3-category-summary {
  min-height: 66px;
  padding: 8px 9px;
  border-radius: 9px;
  background: linear-gradient(90deg, rgba(17, 42, 50, .98), rgba(22, 51, 57, .82));
}

body.is-customize-step .step3-category[data-step3-category]:not([data-step3-category="storage"]) .step3-category-icon {
  width: 40px;
  height: 40px;
  border-color: rgba(255, 255, 255, .48);
  border-radius: 9px;
  color: #fff;
  background:
    radial-gradient(circle at 45% 20%, rgba(255, 255, 255, .28), transparent 42%),
    color-mix(in srgb, var(--part-accent) 60%, rgba(16, 39, 48, .88));
}

body.is-customize-step .step3-category[data-step3-category]:not([data-step3-category="storage"]) .step3-category-title strong {
  color: #fff;
  font-size: 13px;
}

body.is-customize-step .step3-category[data-step3-category]:not([data-step3-category="storage"]) .step3-category-title small {
  color: rgba(232, 242, 241, .72);
  font-size: 10px;
}

body.is-customize-step .step3-category[data-step3-category]:not([data-step3-category="storage"]) .step3-category-chevron,
body.is-customize-step .step3-category[data-step3-category]:not([data-step3-category="storage"]).is-open .step3-category-chevron {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 50%;
  background: rgba(31, 63, 69, .72);
  transform: none;
}

/* Keep the larger menu artwork and controls inside the card. */
body.is-customize-step .step3-category[data-step3-category]:not([data-step3-category="storage"]) > .step3-category-summary {
  box-sizing: border-box;
  grid-template-columns: 5px 40px minmax(0, 1fr) 30px;
  gap: 8px;
  width: 100%;
  min-width: 0;
}

body.is-customize-step .step3-category-title {
  min-width: 0;
}

/* Animate the content track instead of a large arbitrary max-height. */
body.is-customize-step .step3-category,
body.is-customize-step .step3-config-panel.is-filtered .step3-category.is-step3-active,
body.is-customize-step .step3-category.is-open {
  max-height: none;
  transition:
    border-color .2s ease,
    background-color .2s ease,
    box-shadow .2s ease;
}

body.is-customize-step .step3-category-body {
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  visibility: hidden;
  transition:
    grid-template-rows .26s cubic-bezier(.22, 1, .36, 1),
    opacity .16s ease,
    visibility 0s linear .26s;
}

body.is-customize-step .step3-category.is-open > .step3-category-body,
body.is-customize-step .step3-config-panel.is-filtered .step3-category.is-step3-active > .step3-category-body {
  grid-template-rows: 1fr;
  opacity: 1;
  visibility: visible;
  transition:
    grid-template-rows .3s cubic-bezier(.22, 1, .36, 1),
    opacity .2s ease .04s,
    visibility 0s;
}

body.is-customize-step .step3-category-body-inner {
  min-height: 0;
  animation: none;
}

body.is-customize-step .step3-config-panel.is-switching .step3-category.is-step3-active {
  animation: none;
}

@media (min-width: 901px) {
  /* Transform animation stays on the compositor and avoids repainting the viewer. */
  body.is-customize-step .step3-config-panel {
    animation: none;
    transform: translateX(0);
    transition:
      transform .34s cubic-bezier(.22, 1, .36, 1),
      box-shadow .2s ease;
    will-change: transform;
  }

  body.is-customize-step .step3-config-panel.is-collapsed {
    left: 22px;
    transform: translateX(calc(-100% - 22px));
  }
}

/* Mobile bottom sheets leave more of the house visible and keep their contents scrollable. */
@media (max-width: 860px) {
  body.is-customize-step {
    --mobile-config-sheet-height: min(34dvh, 290px);
    --mobile-overview-sheet-height: min(39dvh, 330px);
  }

  body.is-customize-step .step3-config-panel,
  body.is-customize-step .visual-stage.is-expanded .step3-config-panel {
    height: var(--mobile-config-sheet-height);
    max-height: var(--mobile-config-sheet-height);
  }

  body.is-customize-step[data-mobile-customize-sheet="overview"] .quote-panel {
    height: var(--mobile-overview-sheet-height);
    max-height: var(--mobile-overview-sheet-height);
  }

  body.is-customize-step:is([data-mobile-customize-sheet="extensions"], [data-mobile-customize-sheet="facade"], [data-mobile-customize-sheet="frames"], [data-mobile-customize-sheet="roof"], [data-mobile-customize-sheet="doors"], [data-mobile-customize-sheet="energy"]) .mobile-customize-price {
    bottom: calc(var(--mobile-config-sheet-height) + 84px + env(safe-area-inset-bottom));
  }

  body.is-customize-step[data-mobile-customize-sheet="overview"] .mobile-customize-price {
    bottom: calc(var(--mobile-overview-sheet-height) + 84px + env(safe-area-inset-bottom));
  }

  body.is-customize-step .step3-category-list {
    overscroll-behavior-y: contain;
    scroll-padding-block: 58px 12px;
  }
}

@media (max-width: 860px) and (max-height: 620px) {
  body.is-customize-step {
    --mobile-config-sheet-height: min(38dvh, 220px);
    --mobile-overview-sheet-height: min(43dvh, 250px);
  }
}

/* Step 1 summary uses the same icon language as the configuration overview. */
.model-selection-summary h2 {
  display: flex;
  align-items: center;
  gap: 9px;
}

.model-selection-summary .model-summary-title-icon,
.model-selection-summary .model-summary-row-icon,
.model-selection-summary .model-summary-document-icon {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  color: rgba(225, 239, 239, .88);
}

.model-selection-summary .model-summary-title-icon {
  width: 28px;
  height: 28px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 7px;
  color: #ffad58;
  background: rgba(255, 255, 255, .07);
}

.model-selection-summary .model-summary-row-icon {
  width: 20px;
  height: 20px;
}

.model-selection-summary .model-summary-document-icon {
  width: 22px;
  height: 22px;
}

.model-selection-summary .model-summary-title-icon svg,
.model-selection-summary .model-summary-row-icon svg,
.model-selection-summary .model-summary-document-icon svg {
  width: 68%;
  height: 68%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.model-selection-summary dl div {
  grid-template-columns: 20px minmax(78px, .72fr) minmax(0, 1.28fr);
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.model-selection-summary dt,
.model-selection-summary dd {
  min-width: 0;
  white-space: normal;
}

.model-selection-summary button {
  gap: 10px;
}

.model-selection-summary button > span:nth-child(2) {
  flex: 1 1 auto;
  text-align: left;
}

.model-selection-summary .model-summary-button-arrow {
  flex: 0 0 auto;
  font-size: 20px;
  line-height: 1;
}

/* Stable, slightly more compact step 2 category rows. */
body.is-customize-step .step3-category-list {
  scrollbar-gutter: stable;
  overflow-anchor: none;
}

body.is-customize-step .step3-category {
  overflow-anchor: none;
}

body.is-customize-step .step3-category[data-step3-category]:not([data-step3-category="storage"]) > .step3-category-summary {
  grid-template-columns: 5px 36px minmax(0, 1fr) 27px;
  height: 61px;
  min-height: 61px;
  gap: 7px;
  padding: 7px 8px;
}

body.is-customize-step .step3-category[data-step3-category]:not([data-step3-category="storage"]) .step3-category-icon {
  width: 36px;
  height: 36px;
  border-radius: 8px;
}

body.is-customize-step .step3-category[data-step3-category]:not([data-step3-category="storage"]) .step3-category-chevron,
body.is-customize-step .step3-category[data-step3-category]:not([data-step3-category="storage"]).is-open .step3-category-chevron {
  width: 27px;
  height: 27px;
}

body.is-customize-step .step3-option-buttons button.is-active,
body.is-customize-step .step3-option-buttons button.is-original-option.is-active {
  box-shadow: 0 4px 10px rgba(8, 18, 28, .16) !important;
}

@media (max-width: 900px) {
  body.is-customize-step .step3-category[data-step3-category]:not([data-step3-category="storage"]) > .step3-category-summary {
    grid-template-columns: 4px 34px minmax(0, 1fr) 26px;
    height: 58px;
    min-height: 58px;
    gap: 7px;
  }

  body.is-customize-step .step3-category[data-step3-category]:not([data-step3-category="storage"]) .step3-category-icon {
    width: 34px;
    height: 34px;
  }

  body.is-customize-step .step3-category[data-step3-category]:not([data-step3-category="storage"]) .step3-category-chevron,
  body.is-customize-step .step3-category[data-step3-category]:not([data-step3-category="storage"]).is-open .step3-category-chevron {
    width: 26px;
    height: 26px;
  }
}

/* A closed category must end exactly at its image; inner padding otherwise leaves a dark strip. */
body.is-customize-step .step3-category-body {
  overflow: hidden;
}

body.is-customize-step .step3-category-body-inner,
body.is-customize-step .step3-category[data-step3-category="frames"] .step3-category-body-inner {
  padding: 0 9px;
  transition: padding .22s cubic-bezier(.22, 1, .36, 1);
}

body.is-customize-step .step3-category.is-open > .step3-category-body .step3-category-body-inner,
body.is-customize-step .step3-config-panel.is-filtered .step3-category.is-step3-active > .step3-category-body .step3-category-body-inner {
  padding: 1px 9px 10px;
}

@media (prefers-reduced-motion: reduce) {
  body.is-customize-step .step3-config-panel,
  body.is-customize-step .step3-category,
  body.is-customize-step .step3-category-body {
    transition-duration: .01ms !important;
  }
}

/* Step 2 summary: recognizable icons without reducing room for the values. */
body.is-customize-step #summaryList > div {
  grid-template-columns: 26px minmax(0, .8fr) minmax(0, 1.2fr);
  align-items: center;
  column-gap: 8px;
}

body.is-customize-step #summaryList .summary-row-icon {
  display: grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 6px;
  color: rgba(226, 240, 240, .9);
  background: linear-gradient(145deg, rgba(255, 255, 255, .12), rgba(255, 255, 255, .04));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
}

body.is-customize-step #summaryList .summary-row-icon svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (max-width: 900px) {
  body.is-customize-step[data-mobile-customize-sheet="overview"] #summaryList > div {
    grid-template-columns: 28px minmax(0, .75fr) minmax(0, 1.15fr);
    gap: 9px;
  }

  body.is-customize-step[data-mobile-customize-sheet="overview"] #summaryList .summary-row-icon {
    width: 28px;
    height: 28px;
  }
}

/* Keep option interaction in the dark menu palette; this also removes Safari's white tap flash. */
body.is-customize-step .step3-config-panel button,
body.is-customize-step .step3-panel-footer button {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

body.is-customize-step .step3-option-buttons button.is-active {
  border-color: var(--accent);
  color: #fff;
  background-color: rgba(17, 42, 50, .92);
  box-shadow: inset 0 0 0 1px rgba(255, 166, 72, .28), 0 5px 14px rgba(8, 18, 28, .16);
}

body.is-customize-step .loading-badge {
  border-color: rgba(255, 255, 255, .26);
  color: #fff;
  background: linear-gradient(155deg, rgba(40, 61, 73, .94), rgba(24, 41, 43, .94));
  box-shadow: 0 18px 46px rgba(8, 18, 28, .24);
  backdrop-filter: blur(12px);
}

body.is-customize-step .loading-badge span {
  color: rgba(236, 244, 244, .72);
}

body.is-customize-step .loading-badge::before {
  border-color: rgba(255, 255, 255, .22);
  border-top-color: var(--accent);
}

@media (min-width: 901px) {
  body.is-customize-step #summaryList > div {
    grid-template-columns: 20px minmax(76px, .78fr) minmax(0, 1.22fr);
    min-width: 0;
    column-gap: 7px;
  }

  body.is-customize-step #summaryList .summary-row-icon {
    width: 20px;
    height: 20px;
    border-radius: 5px;
  }

  body.is-customize-step #summaryList .summary-row-icon svg {
    width: 13px;
    height: 13px;
  }

  body.is-customize-step #summaryList dt,
  body.is-customize-step #summaryList dd {
    min-width: 0;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
  }
}
