/* PhoneMen RepairFlow stage — production integration from Design Lab (auto-scoped) */
/* PhoneMen Design Lab — shared position tokens (local only, not production) */
:root {
  --pm-lab-width: 1120px;
  --pm-repairflow-max-width: 980px;
  --pm-repairflow-safe-top: 24px;
  --pm-repairflow-safe-bottom: 24px;

  /* Legacy (full-repairflow lab) */
  --pm-heading-duration: 720ms;
  --pm-heading-handoff: 280ms;
  --pm-heading-ease: cubic-bezier(0.22, 1, 0.36, 1);

  /* Premium heading animation (shared: heading-lab-shared.css) */
  --pm-heading-out-ms: 320ms;
  --pm-heading-in-ms: 480ms;
  --pm-heading-gap-ms: 100ms;
  --pm-heading-in-delay-ms: 30ms;
  --pm-heading-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --pm-heading-ease-in: cubic-bezier(0.18, 1, 0.32, 1);
  --pm-heading-blur: 10px;
  --pm-heading-out-shift: -4px;
  --pm-heading-in-shift: 5px;

  --pm-shell-max-height: 680px;
  --pm-shell-viewport-offset: 220px;
  --pm-shell-extra-reserve-full: 52px;
  --pm-lab-content-out-ms: 280ms;
  --pm-shell-height-duration: 420ms;
  --pm-shell-height-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --pm-flow-toolbar-space: 2.25rem;

  /* Lab scrollbars (scoped via .pm-lab-scroll — not global) */
  --pm-lab-scroll-size: 8px;
  --pm-lab-scroll-track: rgba(7, 92, 255, 0.06);
  --pm-lab-scroll-thumb-top: rgba(7, 92, 255, 0.34);
  --pm-lab-scroll-thumb-bottom: rgba(7, 92, 255, 0.16);
  --pm-lab-scroll-thumb-border: rgba(255, 255, 255, 0.88);
  --pm-lab-scroll-thumb-hover-top: rgba(7, 92, 255, 0.5);
  --pm-lab-scroll-thumb-hover-bottom: rgba(7, 92, 255, 0.24);
}

/* Shared premium heading animation — heading-animation + full-repairflow */
.pm-repairflow-integrated .repair-flow-heading-wrap {
  width: 100%;
}

.pm-repairflow-integrated .pm-heading-stage {
  position: relative;
  width: 100%;
  min-height: max(clamp(64px, 8vh, 96px), var(--pm-heading-slot-h, 0px));
  display: grid;
  place-items: center;
  justify-items: center;
  text-align: center;
  overflow: visible;
}

.pm-repairflow-integrated .pm-heading-layer {
  grid-area: 1 / 1;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  text-align: center;
  font-size: 46px;
  line-height: 1.05;
  letter-spacing: 0;
  font-weight: 900;
  font-family: inherit;
  color: inherit;
  transform-origin: center center;
  backface-visibility: hidden;
  will-change: opacity, filter, transform;
}

@media (max-width: 760px) {
  .pm-repairflow-integrated .pm-heading-layer {
    font-size: clamp(1.65rem, 7vw, 2.2rem);
    line-height: 1.08;
  }
}

.pm-repairflow-integrated .pm-heading-layer.is-hidden {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

.pm-repairflow-integrated .pm-heading-current {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
  transition: none;
}

.pm-repairflow-integrated .pm-heading-outgoing {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
  transition:
    opacity var(--pm-heading-out-ms) var(--pm-heading-ease-out),
    filter var(--pm-heading-out-ms) var(--pm-heading-ease-out),
    transform var(--pm-heading-out-ms) var(--pm-heading-ease-out);
}

.pm-repairflow-integrated .pm-heading-outgoing.is-exiting {
  opacity: 0;
  filter: blur(var(--pm-heading-blur));
  transform: translateY(var(--pm-heading-out-shift));
}

.pm-repairflow-integrated .pm-heading-incoming {
  opacity: 0;
  filter: blur(var(--pm-heading-blur));
  transform: translateY(var(--pm-heading-in-shift));
  transition:
    opacity var(--pm-heading-in-ms) var(--pm-heading-ease-in),
    filter calc(var(--pm-heading-in-ms) * 1.12) var(--pm-heading-ease-in),
    transform calc(var(--pm-heading-in-ms) * 1.08) var(--pm-heading-ease-in);
}

.pm-repairflow-integrated .pm-heading-incoming.is-visible {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
}

/* Full RepairFlow: hide native repair-search title layers */
.pm-repairflow-integrated [data-repair-flow-title] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.pm-repairflow-integrated .repair-flow-title-measure,
.pm-repairflow-integrated .repair-flow-title-layer--outgoing {
  display: none !important;
}

.pm-repairflow-integrated .repair-flow-heading-wrap.is-heading-animating,
.pm-repairflow-integrated .repair-flow-heading-wrap.is-heading-liquid {
  min-height: unset !important;
  contain: layout style !important;
}

@media (prefers-reduced-motion: reduce) {
  .pm-repairflow-integrated .pm-heading-outgoing,
  .pm-repairflow-integrated .pm-heading-incoming {
    transition-duration: 0.01ms !important;
  }

  .pm-repairflow-integrated .pm-heading-outgoing.is-exiting,
  .pm-repairflow-integrated .pm-heading-incoming {
    filter: none !important;
    transform: none !important;
  }
}

.pm-lab-content-stage > .repair-flow-panel[hidden] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Device Search Einzeltest + Full RepairFlow — kein Production-Selected-Chip */
.pm-lab--device-search [data-selected-device-pill],
.pm-repairflow-integrated [data-selected-device-pill] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Device Search: Marken/Beliebt ausblenden bei aktiver Suche */
.pm-repairflow-integrated .device-search-mount.is-lab-search-filtering [data-device-brand-chips],
.pm-repairflow-integrated .device-search-mount.is-lab-search-filtering .brand-chip-slider,
.pm-repairflow-integrated .device-search-mount.is-lab-search-filtering [data-popular-devices] {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  visibility: hidden !important;
}

/* Repair Options: Lab-Accordion statt hartem display:none */
.pm-repairflow-integrated .repair-variant-panel.pm-lab-variant-panel {
  display: grid;
  overflow: hidden;
  will-change: height;
  box-sizing: border-box;
}

.pm-repairflow-integrated .repair-variant-panel.pm-lab-variant-panel .pm-lab-variant-panel-inner {
  display: grid;
  gap: 8px;
  will-change: opacity, transform;
}

.pm-repairflow-integrated .repair-variant-panel.pm-lab-variant-panel.is-lab-closing {
  pointer-events: none;
}

.pm-repairflow-integrated .repair-variant-panel.pm-lab-variant-panel.is-hidden:not(.is-lab-open):not(.is-lab-closing) {
  display: grid !important;
  height: 0 !important;
  margin: 0 0 0 12px !important;
  padding: 0 !important;
  border-left-width: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  overflow: hidden !important;
}

.pm-repairflow-integrated .repair-picker-scroll,
.pm-repairflow-integrated .repair-compact-list {
  min-height: 0;
}

.pm-repairflow-integrated [data-lab-shell-window].is-overflowing [data-lab-shell-inner] {
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

/* ── Shared lab shell window (repair-shell + full-repairflow) ── */
[data-lab-shell-window],
.pm-lab--repair-shell .pm-shell-demo-window {
  width: 100%;
  overflow: hidden;
  height: auto;
  min-height: 0;
  box-sizing: border-box;
  will-change: height;
}

[data-lab-shell-inner],
.pm-lab--repair-shell .pm-shell-demo-inner {
  margin: 0;
  min-height: 0;
}

[data-lab-shell-window].is-overflowing [data-lab-shell-inner],
.pm-lab--repair-shell .pm-shell-demo-window.is-overflowing .pm-shell-demo-inner {
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding-right: 2px;
}

[data-lab-shell-inner],
.pm-lab--repair-shell .pm-shell-demo-inner {
  overflow-x: hidden;
}

/* ── Lab scrollbar (scoped — .pm-lab-scroll / .pm-repairflow-scroll alias) ── */
.pm-lab-scroll,
.pm-repairflow-scroll {
  scrollbar-width: thin;
  scrollbar-color: var(--pm-lab-scroll-thumb-top) var(--pm-lab-scroll-track);
}

.pm-lab-scroll::-webkit-scrollbar,
.pm-repairflow-scroll::-webkit-scrollbar {
  width: var(--pm-lab-scroll-size);
  height: var(--pm-lab-scroll-size);
}

.pm-lab-scroll::-webkit-scrollbar-track,
.pm-repairflow-scroll::-webkit-scrollbar-track {
  background: var(--pm-lab-scroll-track);
  border-radius: 999px;
}

.pm-lab-scroll::-webkit-scrollbar-thumb,
.pm-repairflow-scroll::-webkit-scrollbar-thumb {
  background: linear-gradient(
    180deg,
    var(--pm-lab-scroll-thumb-top),
    var(--pm-lab-scroll-thumb-bottom)
  );
  border-radius: 999px;
  border: 2px solid var(--pm-lab-scroll-thumb-border);
  background-clip: padding-box;
}

.pm-lab-scroll::-webkit-scrollbar-thumb:hover,
.pm-repairflow-scroll::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(
    180deg,
    var(--pm-lab-scroll-thumb-hover-top),
    var(--pm-lab-scroll-thumb-hover-bottom)
  );
  border: 2px solid var(--pm-lab-scroll-thumb-border);
  background-clip: padding-box;
}

.pm-lab-scroll::-webkit-scrollbar-corner,
.pm-repairflow-scroll::-webkit-scrollbar-corner {
  background: transparent;
}

.pm-lab--repair-shell .pm-shell-line {
  margin: 0 0 10px;
}

.pm-lab--repair-shell .pm-shell-line:last-child {
  margin-bottom: 0;
}

.pm-lab--repair-shell .pm-shell-mini-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.pm-lab--repair-shell .pm-shell-mini-card {
  display: grid;
  gap: 4px;
  padding: 14px 16px;
  border-radius: 16px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: rgba(255, 255, 255, 0.88);
}

.pm-lab--repair-shell .pm-shell-mini-card strong {
  font-size: 0.98rem;
}

.pm-lab--repair-shell .pm-shell-mini-card span {
  font-size: 0.88rem;
  opacity: 0.78;
}

.pm-lab--repair-shell .pm-shell-demo-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-top: 18px;
  min-height: 44px;
  align-items: center;
}

.pm-lab--repair-shell .pm-shell-demo-controls .button {
  min-width: 0;
  min-height: 36px;
  transform: none !important;
}

.pm-lab--repair-shell .pm-shell-demo-controls .button:active,
.pm-lab--repair-shell .pm-shell-demo-controls .button:focus {
  transform: none !important;
}

[data-lab-shell-window].is-overflowing [data-lab-shell-inner],
.pm-lab--repair-shell .pm-shell-demo-window.is-overflowing .pm-shell-demo-inner {
  scrollbar-gutter: stable;
}

/* Suppress inner scrollbar during shell measure / content transition gaps */
[data-lab-shell-window].is-lab-shell-measuring [data-lab-shell-inner],
[data-lab-shell-window].is-lab-content-transitioning [data-lab-shell-inner],
.pm-lab--repair-shell .pm-shell-demo-window.is-lab-shell-measuring .pm-shell-demo-inner,
.pm-lab--repair-shell .pm-shell-demo-window.is-lab-content-transitioning .pm-shell-demo-inner {
  overflow-y: hidden !important;
  scrollbar-gutter: auto !important;
}

@media (prefers-reduced-motion: reduce) {
  .pm-lab--repair-shell .pm-shell-demo-window {
    transition: none !important;
  }
}

/* Full RepairFlow Lab — centered layout (matches heading-animation lab) */
.pm-repairflow-integrated {
  min-height: 100dvh;
  scrollbar-gutter: stable both-edges;
  overflow-anchor: none;
}

html:has(body.pm-repairflow-integrated) {
  overflow-x: hidden;
  scrollbar-gutter: stable both-edges;
}

.pm-repairflow-integrated .pm-lab-stage {
  min-height: 100dvh;
  width: 100%;
  max-width: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding-top: clamp(56px, 10vh, 120px);
  padding-bottom: var(--pm-repairflow-safe-bottom);
  padding-inline: 16px;
  box-sizing: border-box;
  position: relative;
  z-index: 1;
  overflow-anchor: none;
}

.pm-repairflow-integrated .pm-repairflow-mount {
  width: min(calc(100% - 32px), var(--pm-repairflow-max-width));
  margin-inline: auto;
  text-align: center;
  position: relative;
  z-index: 1;
  overflow-anchor: none;
  transform: translateZ(0);
  backface-visibility: hidden;
}

.pm-repairflow-integrated .section-head.repair-flow-head {
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
}

.pm-repairflow-integrated .device-search-section {
  padding-top: 0;
  background: transparent;
}

.pm-repairflow-integrated .device-search-card {
  margin-inline: auto;
  text-align: left;
  overflow-anchor: none;
  transform: translateZ(0);
  backface-visibility: hidden;
}

.pm-repairflow-integrated .pm-lab-aurora--viewport {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.pm-repairflow-integrated .pm-lab-note {
  text-align: center;
}

/* Lab scrollbar on RepairFlow inner scroll targets */
.pm-repairflow-integrated .device-search-card .pm-lab-scroll,
.pm-repairflow-integrated .device-search-card .pm-repairflow-scroll {
  min-width: 0;
}

.pm-repairflow-integrated .search-results-panel.pm-lab-scroll {
  padding-right: 2px;
}

.pm-repairflow-integrated [data-lab-shell-window].is-lab-search-transitioning,
.pm-repairflow-integrated [data-lab-shell-window].is-lab-search-transitioning.is-overflowing {
  overflow: hidden !important;
}

.pm-repairflow-integrated [data-lab-shell-window].is-lab-search-transitioning [data-lab-shell-inner][data-repair-flow-stage] {
  overflow-y: hidden !important;
  overflow-x: visible !important;
  scrollbar-gutter: auto !important;
  max-height: none !important;
}

.pm-repairflow-integrated [data-lab-shell-window]:not(.is-overflowing):not(.is-lab-content-transitioning):not(.is-lab-shell-measuring):not(.is-lab-search-transitioning) [data-lab-shell-inner][data-repair-flow-stage] {
  overflow: visible !important;
}

.pm-repairflow-integrated .device-search-mount {
  width: min(100%, 640px);
  margin-inline: auto;
  padding: 8px;
  box-sizing: border-box;
  text-align: left;
  overflow: visible;
}

.pm-repairflow-integrated .device-search-mount .hero-search-row {
  padding: 4px;
  margin: -4px -4px 0;
  overflow: visible;
  pointer-events: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.pm-repairflow-integrated [data-device-search-input] {
  pointer-events: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.pm-repairflow-integrated [data-device-search-mount] {
  pointer-events: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.pm-repairflow-integrated .device-search-mount [data-device-search-dropdown],
.pm-repairflow-integrated .device-search-mount .device-search-dropdown-inner {
  box-sizing: border-box;
  scrollbar-width: none;
}

.pm-repairflow-integrated .device-search-mount [data-device-search-dropdown]::-webkit-scrollbar,
.pm-repairflow-integrated .device-search-mount .device-search-dropdown-inner::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.pm-repairflow-integrated .repair-flow-shell[data-repair-flow-step="device"] [data-lab-shell-inner][data-repair-flow-stage] {
  overflow-x: visible !important;
  overflow-y: visible !important;
  scrollbar-gutter: auto !important;
}

.pm-repairflow-integrated [data-lab-shell-window].is-lab-search-transitioning,
.pm-repairflow-integrated [data-lab-shell-window].is-lab-search-transitioning [data-lab-shell-inner][data-repair-flow-stage] {
  overflow-x: visible !important;
}

.pm-repairflow-integrated [data-lab-shell-window].is-lab-search-transitioning [data-lab-shell-inner][data-repair-flow-stage],
.pm-repairflow-integrated .repair-flow-shell[data-repair-flow-step="device"] [data-lab-shell-inner][data-repair-flow-stage] {
  scrollbar-width: none !important;
}

.pm-repairflow-integrated [data-lab-shell-window].is-lab-search-transitioning [data-lab-shell-inner][data-repair-flow-stage]::-webkit-scrollbar,
.pm-repairflow-integrated .repair-flow-shell[data-repair-flow-step="device"] [data-lab-shell-inner][data-repair-flow-stage]::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

.pm-repairflow-integrated [data-device-search-mount][data-lab-search-mode="browse"] [data-device-search-results],
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-mode="results"] [data-device-brand-chips],
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-mode="results"] [data-popular-devices],
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="open-empty"] [data-device-search-results],
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="open-searching"] [data-device-brand-chips],
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="open-searching"] [data-popular-devices] {
  display: none !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 0 !important;
  overflow: hidden !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="closed"] [data-device-search-dropdown] {
  display: none !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 0 !important;
  overflow: hidden !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.pm-repairflow-integrated [data-popular-devices] {
  min-height: 72px;
}

.pm-repairflow-integrated .popular-devices-row {
  min-height: 44px;
  max-height: 44px;
  overflow: hidden;
}

.pm-repairflow-integrated .popular-devices-row.is-carousel-active {
  overflow: hidden;
}

.pm-repairflow-integrated [data-device-search-results].is-lab-search-results-scroll:not(.is-lab-scroll-deferred) {
  overflow-y: auto !important;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.pm-repairflow-integrated [data-device-search-mount] [data-device-search-dropdown].is-lab-dropdown-scroll:not(.is-lab-scroll-deferred) {
  max-height: min(58vh, 560px);
  overflow-y: auto !important;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.pm-repairflow-integrated .is-lab-scroll-deferred {
  overflow: hidden !important;
  scrollbar-width: none !important;
}

.pm-repairflow-integrated .is-lab-scroll-deferred::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

/* Search open: content remains measurable, then fades in with the shell height animation */
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-state="opening"] [data-device-search-dropdown],
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="opening"] [data-device-search-dropdown],
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="measuring"] [data-device-search-dropdown],
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-reveal="pending"] [data-device-search-dropdown] {
  overflow: hidden !important;
  scrollbar-width: none !important;
  pointer-events: none !important;
}

.pm-repairflow-integrated [data-device-search-mount][data-lab-search-state="opening"] [data-device-search-dropdown]::-webkit-scrollbar,
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-state="closing"] [data-device-search-dropdown]::-webkit-scrollbar,
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-reveal="pending"] [data-device-search-dropdown]::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

.pm-repairflow-integrated [data-device-search-mount][data-lab-search-state="opening"] .device-search-dropdown-inner,
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="opening"] .device-search-dropdown-inner,
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="measuring"] .device-search-dropdown-inner,
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-reveal="pending"] .device-search-dropdown-inner,
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-state="opening"] [data-device-brand-chips],
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="opening"] [data-device-brand-chips],
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="measuring"] [data-device-brand-chips],
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-reveal="pending"] [data-device-brand-chips],
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-state="opening"] [data-popular-devices],
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="opening"] [data-popular-devices],
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="measuring"] [data-popular-devices],
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-reveal="pending"] [data-popular-devices],
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-state="opening"] [data-device-search-results],
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="opening"] [data-device-search-results],
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="measuring"] [data-device-search-results],
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-reveal="pending"] [data-device-search-results] {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.pm-repairflow-integrated [data-device-search-mount][data-lab-search-reveal="active"] .device-search-dropdown-inner,
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-reveal="active"] [data-device-brand-chips],
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-reveal="active"] [data-popular-devices],
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-reveal="active"] [data-device-search-results] {
  opacity: 1 !important;
  visibility: visible !important;
  transition: opacity var(--pm-shell-height-duration, 360ms) cubic-bezier(0.22, 1, 0.36, 1) !important;
}

/* Shell stability: keep search chrome measurable/clip-visible while shell closes */
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-state="closing"] [data-device-search-dropdown],
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="closing"] [data-device-search-dropdown] {
  grid-template-rows: 1fr !important;
  max-height: min(58vh, 560px) !important;
  margin-top: 14px !important;
  padding: 12px 14px 14px !important;
  opacity: 1 !important;
  visibility: visible !important;
  overflow: hidden !important;
  scrollbar-width: none !important;
  pointer-events: none !important;
  transform: translateY(0) scaleY(1) !important;
}

.pm-repairflow-integrated [data-device-search-mount][data-lab-search-state="closing"] .device-search-dropdown-inner,
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="closing"] .device-search-dropdown-inner,
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-state="closing"] [data-device-brand-chips],
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="closing"] [data-device-brand-chips],
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-state="closing"] [data-popular-devices],
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="closing"] [data-popular-devices],
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-state="closing"] [data-device-search-results],
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="closing"] [data-device-search-results],
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-state="closing"] [data-device-search-dropdown] > *,
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="closing"] [data-device-search-dropdown] > *,
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-state="closing"] [data-popular-devices] > *,
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="closing"] [data-popular-devices] > *,
.pm-repairflow-integrated [data-device-search-mount][data-lab-search-state="closing"] [data-device-search-results] > *,
.pm-repairflow-integrated [data-device-search-mount][data-lab-device-search-state="closing"] [data-device-search-results] > * {
  max-height: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none !important;
  transform: none !important;
}

/* Lab: Aurora sichtbar, ohne RepairFlow-Layout zu verschieben */
body.pm-repairflow-integrated.is-aurora-lab.is-repair-focus .repair-focus-target {
  transform: none;
}

body.pm-repairflow-integrated.is-aurora-lab.is-repair-focus .device-search-card {
  transform: none;
  margin-top: 0;
}

/* Lab content transition — extends shared .pm-lab-content-stage (design-lab-frame.css) */
.pm-repairflow-integrated [data-lab-shell-inner].pm-lab-repairflow-panels.pm-lab-content-stage {
  display: grid;
  overflow-anchor: none;
}

.pm-repairflow-integrated [data-lab-shell-inner].pm-lab-repairflow-panels.pm-lab-content-stage > .repair-flow-panel.is-entering,
.pm-repairflow-integrated [data-lab-shell-inner].pm-lab-repairflow-panels.pm-lab-content-stage > .repair-flow-panel.is-exiting,
.pm-repairflow-integrated .repair-flow-panel.is-entering,
.pm-repairflow-integrated .repair-flow-panel.is-exiting {
  transition:
    opacity var(--pm-lab-content-out-ms, 280ms) cubic-bezier(0.22, 1, 0.36, 1),
    transform var(--pm-lab-content-out-ms, 280ms) cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.pm-repairflow-integrated .repair-flow-panel.is-exiting {
  transform: translateY(-8px) !important;
}

.pm-repairflow-integrated .repair-flow-panel.is-entering {
  transform: translateY(10px) !important;
}

.pm-repairflow-integrated .repair-flow-panel.is-active {
  transform: translateY(0) !important;
}

.pm-repairflow-integrated .repair-picker-scroll {
  max-height: none !important;
  overflow: visible;
}

.pm-repairflow-integrated .repair-offer-grid[data-repair-offers] {
  max-height: none !important;
  overflow: visible;
}

.pm-repairflow-integrated [data-lab-shell-window].is-overflowing [data-lab-shell-inner][data-repair-flow-stage] {
  max-height: var(--pm-lab-shell-inner-max) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-gutter: stable;
}

.pm-repairflow-integrated [data-lab-shell-window].is-overflowing:has([data-repair-flow][data-repair-flow-step="device"]) [data-lab-shell-inner][data-repair-flow-stage] {
  max-height: none !important;
  overflow-y: visible !important;
  overflow-x: visible !important;
  scrollbar-gutter: auto !important;
}

.pm-repairflow-integrated [data-lab-shell-window].is-overflowing .repair-picker-scroll,
.pm-repairflow-integrated [data-lab-shell-window].is-overflowing .repair-offer-grid[data-repair-offers] {
  overflow: visible !important;
  max-height: none !important;
}

.pm-repairflow-integrated [data-repair-flow-panel] .repair-flow-panel-scroll,
.pm-repairflow-integrated .repair-variant-panel {
  max-height: none !important;
}

.pm-repairflow-integrated .repair-variant-panel.pm-lab-variant-panel {
  gap: 0 !important;
  margin: 0 0 0 12px !important;
  padding: 0 !important;
  border-left: 0 !important;
}

.pm-repairflow-integrated .repair-variant-panel.pm-lab-variant-panel .pm-lab-variant-panel-inner {
  gap: 8px;
  padding: 4px 0 18px 12px;
  border-left: 2px solid rgba(37, 99, 235, 0.15);
  box-sizing: border-box;
}

.pm-repairflow-integrated .repair-variant-panel.pm-lab-variant-panel.is-hidden:not(.is-lab-open):not(.is-lab-closing) {
  margin: 0 0 0 12px !important;
  padding: 0 !important;
  border-left: 0 !important;
}

/* Lab shell: toolbar layout only — height/overflow owned by design-lab-frame.css + shell controller */
.pm-repairflow-integrated [data-lab-shell-window] {
  margin-inline: auto;
  text-align: left;
  transform-origin: top center;
  overflow-anchor: none;
}

.pm-repairflow-integrated .repair-flow-shell {
  display: flex;
  flex-direction: column;
  position: relative;
  min-height: 0;
}

.pm-repairflow-integrated .pm-lab-flow-subtitle {
  text-align: center;
}

/* Stufe-2 heading visual — exact parity with combo-heading-shell-content + repair-focus neutralizer */
.pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] {
  min-height: max(clamp(64px, 8vh, 96px), var(--pm-heading-slot-h, 0px)) !important;
  contain: none !important;
}

body.is-repair-focus.pm-repairflow-integrated.pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active],
body.is-repair-focus-enter.pm-repairflow-integrated.pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active],
body.is-repair-focus-exit.pm-repairflow-integrated.pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] {
  min-height: max(clamp(64px, 8vh, 96px), var(--pm-heading-slot-h, 0px)) !important;
}

body.is-repair-focus.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer,
body.is-repair-focus-enter.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer,
body.is-repair-focus-exit.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer {
  display: block !important;
  position: relative !important;
  text-align: center !important;
  transform: translateY(0) !important;
  transition: none !important;
  opacity: unset;
  filter: unset;
}

body.is-repair-focus.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer.is-hidden,
body.is-repair-focus-enter.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer.is-hidden,
body.is-repair-focus-exit.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer.is-hidden {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.is-repair-focus.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer.pm-heading-current,
body.is-repair-focus-enter.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer.pm-heading-current,
body.is-repair-focus-exit.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer.pm-heading-current {
  opacity: 1 !important;
  filter: blur(0) !important;
  transform: translateY(0) !important;
  transition: none !important;
}

body.is-repair-focus.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer.pm-heading-outgoing,
body.is-repair-focus-enter.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer.pm-heading-outgoing,
body.is-repair-focus-exit.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer.pm-heading-outgoing {
  opacity: 1 !important;
  filter: blur(0) !important;
  transform: translateY(0) !important;
  transition:
    opacity var(--pm-heading-out-ms) var(--pm-heading-ease-out),
    filter var(--pm-heading-out-ms) var(--pm-heading-ease-out),
    transform var(--pm-heading-out-ms) var(--pm-heading-ease-out) !important;
}

body.is-repair-focus.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer.pm-heading-outgoing.is-exiting,
body.is-repair-focus-enter.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer.pm-heading-outgoing.is-exiting,
body.is-repair-focus-exit.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer.pm-heading-outgoing.is-exiting {
  opacity: 0 !important;
  filter: blur(var(--pm-heading-blur)) !important;
  transform: translateY(var(--pm-heading-out-shift)) !important;
}

body.is-repair-focus.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer.pm-heading-incoming,
body.is-repair-focus-enter.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer.pm-heading-incoming,
body.is-repair-focus-exit.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer.pm-heading-incoming {
  opacity: 0 !important;
  filter: blur(var(--pm-heading-blur)) !important;
  transform: translateY(var(--pm-heading-in-shift)) !important;
  transition:
    opacity var(--pm-heading-in-ms) var(--pm-heading-ease-in),
    filter calc(var(--pm-heading-in-ms) * 1.12) var(--pm-heading-ease-in),
    transform calc(var(--pm-heading-in-ms) * 1.08) var(--pm-heading-ease-in) !important;
}

body.is-repair-focus.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer.pm-heading-incoming.is-visible,
body.is-repair-focus-enter.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer.pm-heading-incoming.is-visible,
body.is-repair-focus-exit.pm-repairflow-integrated.pm-repairflow-integrated .repair-focus-target > .container > .section-head.repair-flow-head .pm-heading-stage h2.pm-heading-layer.pm-heading-incoming.is-visible {
  opacity: 1 !important;
  filter: blur(0) !important;
  transform: translateY(0) !important;
}

.pm-repairflow-integrated [data-lab-shell-inner].pm-lab-scroll {
  padding-right: 2px;
  flex: 1 1 auto;
  min-height: 0;
}

/* Lab-only scroll test mode (?scrollTest=1) */
.pm-repairflow-integrated.pm-lab-scrolltest {
  overflow-y: auto;
  overflow-x: hidden;
  min-height: 100dvh;
  height: auto;
}

.pm-repairflow-integrated.pm-lab-scrolltest .pm-lab-stage {
  min-height: 140dvh;
  padding-top: 18vh;
  padding-bottom: 40vh;
}

.pm-repairflow-integrated.pm-lab-scrolltest .pm-repairflow-mount {
  margin-bottom: 12vh;
}
/* ── Production overrides (integrated section on index / repair-flow, not full-page lab) ── */
.pm-repairflow-integrated.pm-repairflow-integrated {
  min-height: unset;
  height: auto;
  overflow: visible;
  scrollbar-gutter: unset;
  display: block;
  margin: 0;
  place-items: unset;
}

.pm-repairflow-integrated .pm-lab-note,
.pm-repairflow-integrated .pm-lab-aurora--viewport {
  display: none !important;
}

.pm-repairflow-integrated.device-search-section {
  padding-top: inherit;
  background: inherit;
}

.pm-repairflow-integrated .section-head.repair-flow-head {
  max-width: none;
  text-align: inherit;
}

.pm-repairflow-integrated .device-search-section {
  background: transparent;
}

.pm-repairflow-integrated .pm-lab-flow-subtitle {
  text-align: inherit;
}

/* Focus-mode heading parity (body has is-repair-focus, section has integration class) */
body.is-repair-focus .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active],
body.is-repair-focus-enter .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active],
body.is-repair-focus-exit .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] {
  min-height: max(clamp(64px, 8vh, 96px), var(--pm-heading-slot-h, 0px)) !important;
  contain: none !important;
}

body.is-repair-focus .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer,
body.is-repair-focus-enter .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer,
body.is-repair-focus-exit .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer {
  display: block !important;
  position: relative !important;
  text-align: center !important;
  transform: translateY(0) !important;
  transition: none !important;
}

body.is-repair-focus .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer.is-hidden,
body.is-repair-focus-enter .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer.is-hidden,
body.is-repair-focus-exit .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer.is-hidden {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.is-repair-focus .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer.pm-heading-current,
body.is-repair-focus-enter .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer.pm-heading-current,
body.is-repair-focus-exit .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer.pm-heading-current {
  opacity: 1 !important;
  filter: blur(0) !important;
  transform: translateY(0) !important;
  transition: none !important;
}

body.is-repair-focus .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer.pm-heading-outgoing,
body.is-repair-focus-enter .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer.pm-heading-outgoing,
body.is-repair-focus-exit .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer.pm-heading-outgoing {
  opacity: 1 !important;
  filter: blur(0) !important;
  transform: translateY(0) !important;
  transition:
    opacity var(--pm-heading-out-ms) var(--pm-heading-ease-out),
    filter var(--pm-heading-out-ms) var(--pm-heading-ease-out),
    transform var(--pm-heading-out-ms) var(--pm-heading-ease-out) !important;
}

body.is-repair-focus .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer.pm-heading-outgoing.is-exiting,
body.is-repair-focus-enter .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer.pm-heading-outgoing.is-exiting,
body.is-repair-focus-exit .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer.pm-heading-outgoing.is-exiting {
  opacity: 0 !important;
  filter: blur(var(--pm-heading-blur)) !important;
  transform: translateY(var(--pm-heading-out-shift)) !important;
}

body.is-repair-focus .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer.pm-heading-incoming,
body.is-repair-focus-enter .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer.pm-heading-incoming,
body.is-repair-focus-exit .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer.pm-heading-incoming {
  opacity: 0 !important;
  filter: blur(var(--pm-heading-blur)) !important;
  transform: translateY(var(--pm-heading-in-shift)) !important;
  transition:
    opacity var(--pm-heading-in-ms) var(--pm-heading-ease-in),
    filter calc(var(--pm-heading-in-ms) * 1.12) var(--pm-heading-ease-in),
    transform calc(var(--pm-heading-in-ms) * 1.08) var(--pm-heading-ease-in) !important;
}

body.is-repair-focus .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer.pm-heading-incoming.is-visible,
body.is-repair-focus-enter .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer.pm-heading-incoming.is-visible,
body.is-repair-focus-exit .pm-repairflow-integrated .repair-flow-heading-wrap[data-lab-heading-active] .pm-heading-stage h2.pm-heading-layer.pm-heading-incoming.is-visible {
  opacity: 1 !important;
  filter: blur(0) !important;
  transform: translateY(0) !important;
}

body.is-repair-focus .pm-repairflow-integrated.repair-focus-target,
body.is-repair-focus .pm-repairflow-integrated .device-search-card {
  transform: none;
  margin-top: 0;
}
