/* v20260923-13: last portal canvas overrides */
html body.mibBrandTheme.theme-dark.portalLocked > main:not(#content),
html body.mibBrandTheme.theme-dark.portalPageMode > main:not(#content) {
  background: #101416 !important;
  color: #edf2f3 !important;
}

html body.mibBrandTheme.theme-light.portalLocked > main:not(#content),
html body.mibBrandTheme.theme-light.portalPageMode > main:not(#content) {
  background: #d9dfe1 !important;
  color: #162024 !important;
  background-image: none !important;
}

/* v20260923-14: the customer portal follows the public MIB dark shell. */
html body.mibBrandTheme,
html body.mibBrandTheme.theme-light,
html body.mibBrandTheme.theme-dark {
  --mib-portal-bg: #0b1012;
  --mib-portal-surface: #151c1f;
  --mib-portal-raised: #1b2529;
  --mib-portal-line: #34454b;
  --mib-portal-text: #f0f4f5;
  --mib-portal-muted: #aab8bd;
  --mib-portal-gold: #f4bd3e;
  --mib-portal-cyan: #53d7ea;
  background: #0b1012 !important;
  color: #f0f4f5 !important;
}

html body.mibBrandTheme > main,
html body.mibBrandTheme.theme-light > main,
html body.mibBrandTheme.theme-dark > main {
  background: #0b1012 !important;
  color: #f0f4f5 !important;
  background-image: none !important;
}

html body.mibBrandTheme :is(#themeToggle, #portalThemeToggle, #themeToggleSide, #portalDensityToggle, #portalMobileDensityToggle) {
  display: none !important;
}

html body.mibBrandTheme > main > .mobileTopbar {
  min-height: 68px !important;
  padding: 10px 18px !important;
  background: #080c0e !important;
  border-bottom: 1px solid #26363c !important;
}

html body.mibBrandTheme > main > .mobileTopbar .mobileBrand {
  gap: 10px !important;
}

html body.mibBrandTheme > main > .mobileTopbar .mobileBrand img {
  width: 36px !important;
  height: 36px !important;
  object-fit: contain !important;
}

html body.mibBrandTheme > main > .mobileTopbar .mobileBrand :is(strong, span) {
  color: #f0f4f5 !important;
}

html body.mibBrandTheme > main > .mobileTopbar .mobileBrand span {
  color: #9cabb0 !important;
}

html body.mibBrandTheme > main > .mobileTopbar .mobileActions .menuToggle,
html body.mibBrandTheme > main > header .portalHeaderActions .menuToggle {
  min-width: 42px !important;
  min-height: 42px !important;
  padding: 8px 10px !important;
  border: 1px solid #34454b !important;
  border-radius: 6px !important;
  background: #151c1f !important;
  color: #f0f4f5 !important;
  font-size: 20px !important;
  line-height: 1 !important;
}

html body.mibBrandTheme > main > .mobileTopbar #menuToggle {
  width: 42px !important;
  padding: 8px !important;
  border-color: #f4bd3e !important;
  background: transparent !important;
  color: transparent !important;
  font-size: 0 !important;
}

html body.mibBrandTheme > main > .mobileTopbar #menuToggle::before {
  content: "☰" !important;
  color: #f4bd3e !important;
  font-size: 20px !important;
  line-height: 1 !important;
}

html body.mibBrandTheme.portalLocked #portalEntryShell,
html body.mibBrandTheme.portalPageMode > main > #rentalPanel {
  border-color: #34454b !important;
  border-top: 2px solid #f4bd3e !important;
  border-radius: 6px !important;
  background: #151c1f !important;
  color: #f0f4f5 !important;
  box-shadow: none !important;
}

html body.mibBrandTheme.portalPageMode > main > #rentalPanel {
  width: min(1040px, calc(100% - 32px)) !important;
  margin: 16px auto 0 !important;
  padding: 22px !important;
}

html body.mibBrandTheme.portalPageMode > main > #rentalPanel .portalSectionHead {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 18px !important;
  padding-bottom: 16px !important;
  border-bottom: 1px solid #34454b !important;
}

html body.mibBrandTheme.portalPageMode > main > #rentalPanel .portalSectionHead h2,
html body.mibBrandTheme.portalPageMode > main > #rentalPanel .portalSectionHead p {
  color: #f0f4f5 !important;
}

html body.mibBrandTheme.portalPageMode > main > #rentalPanel .portalSectionHead p,
html body.mibBrandTheme.portalPageMode > main > #rentalPanel .muted {
  color: #aab8bd !important;
}

html body.mibBrandTheme.portalPageMode > main > #rentalPanel .rentalLiveBadge {
  flex: 0 0 auto !important;
  padding: 8px 10px !important;
  border: 1px solid #39707a !important;
  border-radius: 4px !important;
  background: #10262b !important;
  color: #53d7ea !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
}

html body.mibBrandTheme.portalPageMode > main > #rentalPanel .rentalFormGrid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
  margin: 18px 0 14px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

html body.mibBrandTheme.portalPageMode > main > #rentalPanel .rentalFormGrid label {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 6px !important;
  min-width: 0 !important;
  color: #aab8bd !important;
  font-size: 13px !important;
  font-weight: 750 !important;
}

html body.mibBrandTheme.portalPageMode > main > #rentalPanel :is(input, select, textarea) {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 46px !important;
  border: 1px solid #34454b !important;
  border-radius: 5px !important;
  background: #0d1315 !important;
  color: #f0f4f5 !important;
  font: inherit !important;
  color-scheme: dark !important;
}

html body.mibBrandTheme.portalPageMode > main > #rentalPanel :is(input, select, textarea):focus {
  border-color: #53d7ea !important;
  outline: 2px solid rgba(83, 215, 234, .16) !important;
  outline-offset: 1px !important;
}

html body.mibBrandTheme.portalPageMode > main > #rentalPanel textarea {
  display: block !important;
  min-height: 104px !important;
  margin: 0 0 14px !important;
  padding: 12px !important;
  resize: vertical !important;
}

html body.mibBrandTheme.portalPageMode > main > #rentalPanel .rentalConsent {
  display: flex !important;
  align-items: flex-start !important;
  gap: 9px !important;
  margin: 0 0 14px !important;
  color: #aab8bd !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
}

html body.mibBrandTheme.portalPageMode > main > #rentalPanel .rentalConsent input {
  flex: 0 0 auto !important;
  width: 18px !important;
  min-height: 18px !important;
  height: 18px !important;
  accent-color: #f4bd3e !important;
}

html body.mibBrandTheme.portalPageMode > main > #rentalPanel #sendRentalRequest {
  min-height: 46px !important;
  width: 100% !important;
  border: 1px solid #b68c24 !important;
  border-radius: 5px !important;
  background: #f4bd3e !important;
  color: #101416 !important;
  font-size: 15px !important;
  font-weight: 850 !important;
}

html body.mibBrandTheme.portalPageMode > main > #rentalPanel .rentalHistoryHead {
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin-top: 22px !important;
  padding-top: 16px !important;
  border-top: 1px solid #34454b !important;
}

html body.mibBrandTheme.portalPageMode > main > #rentalPanel .rentalHistoryHead :is(h3, span) {
  color: #f0f4f5 !important;
}

/* Match the public website's five-colour bottom navigation. */
@media (max-width: 760px) {
  html body.mibBrandTheme.portalPageMode #customerQuickNav {
    bottom: max(var(--mib-visual-bottom, 0px), env(safe-area-inset-bottom)) !important;
    display: flex !important;
    align-items: stretch !important;
    gap: 4px !important;
    min-height: 72px !important;
    padding: 7px 8px max(7px, env(safe-area-inset-bottom)) !important;
    background: #080c0e !important;
    border-top: 1px solid #26363c !important;
    box-shadow: 0 -8px 22px rgba(0, 0, 0, .24) !important;
    overflow-x: hidden !important;
  }

  html body.mibBrandTheme.portalPageMode #customerQuickNav button {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    min-height: 58px !important;
    padding: 3px 2px !important;
    border: 1px solid transparent !important;
    border-radius: 7px !important;
    background: transparent !important;
    color: #aab8bd !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
  }

  html body.mibBrandTheme.portalPageMode #customerQuickNav button .customerNavIcon {
    display: grid !important;
    width: 34px !important;
    height: 30px !important;
    margin: 0 auto 3px !important;
    place-items: center !important;
    border: 1px solid currentColor !important;
    border-radius: 7px !important;
    background: #15252a !important;
    background: color-mix(in srgb, currentColor 18%, #101719) !important;
    color: inherit !important;
    font-size: 17px !important;
    font-weight: 850 !important;
    line-height: 1 !important;
  }

  html body.mibBrandTheme.portalPageMode #customerQuickNav button:nth-child(1) { --customer-nav-accent: #53d7ea; color: #53d7ea !important; }
  html body.mibBrandTheme.portalPageMode #customerQuickNav button:nth-child(2) { --customer-nav-accent: #79d89a; color: #79d89a !important; }
  html body.mibBrandTheme.portalPageMode #customerQuickNav button:nth-child(3) { --customer-nav-accent: #7eafff; color: #7eafff !important; }
  html body.mibBrandTheme.portalPageMode #customerQuickNav button:nth-child(4) { --customer-nav-accent: #f4bd3e; color: #f4bd3e !important; }
  html body.mibBrandTheme.portalPageMode #customerQuickNav button:nth-child(5) { --customer-nav-accent: #c19cff; color: #c19cff !important; }

  html body.mibBrandTheme.portalPageMode #customerQuickNav button[aria-current="page"] {
    background: #382f1d !important;
    border-color: color-mix(in srgb, var(--customer-nav-accent) 48%, #34454b) !important;
    background: #172326 !important;
    background: color-mix(in srgb, var(--customer-nav-accent) 13%, #11191c) !important;
    color: #f0f4f5 !important;
  }

  html body.mibBrandTheme.portalPageMode #customerQuickNav button[aria-current="page"] .customerNavIcon {
    border-color: var(--customer-nav-accent) !important;
    background: #1b2d31 !important;
    background: color-mix(in srgb, var(--customer-nav-accent) 24%, #101719) !important;
    color: var(--customer-nav-accent) !important;
  }

  html body.mibBrandTheme.portalPageMode #rentalPanel {
    width: calc(100% - 24px) !important;
    margin: 12px auto 0 !important;
    padding: 16px !important;
  }

  html body.mibBrandTheme.portalPageMode > main > #rentalPanel .portalSectionHead {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  html body.mibBrandTheme.portalPageMode > main > #rentalPanel .rentalLiveBadge {
    width: fit-content !important;
  }

  html body.mibBrandTheme.portalPageMode > main > #rentalPanel .rentalFormGrid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    margin-top: 16px !important;
  }

  html body.mibBrandTheme.portalPageMode > main > #rentalPanel .rentalFormGrid label {
    grid-template-columns: 1fr !important;
  }

  html body.mibBrandTheme.portalPageMode #customerQuickNav + .assistantBox,
  html body.mibBrandTheme.portalPageMode :is(#assistantToggle, .assistantToggle, #mibAiToggle, .mibAiFab) {
    display: none !important;
  }
}

@media (min-width: 761px) {
  html body.mibBrandTheme.portalPageMode > aside#sideMenu .portalNavBrand {
    display: grid !important;
    grid-template-columns: 72px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 10px !important;
    min-width: 0 !important;
    padding: 14px 12px !important;
  }

  html body.mibBrandTheme.portalPageMode > aside#sideMenu .portalNavBrand img {
    width: 72px !important;
    height: 72px !important;
    min-width: 72px !important;
    object-fit: contain !important;
  }

  html body.mibBrandTheme.portalPageMode > aside#sideMenu .portalNavBrand > div {
    min-width: 0 !important;
  }

  html body.mibBrandTheme.portalPageMode > aside#sideMenu .portalNavBrand strong,
  html body.mibBrandTheme.portalPageMode > aside#sideMenu .portalNavBrand span {
    display: block !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  html body.mibBrandTheme.portalPageMode > aside#sideMenu .portalNavBrand strong {
    font-size: 16px !important;
    line-height: 1.1 !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
  }

  html body.mibBrandTheme.portalPageMode > aside#sideMenu .portalNavBrand span {
    margin-top: 4px !important;
    font-size: 11px !important;
    white-space: nowrap !important;
  }

  html body.mibBrandTheme.portalPageMode > aside#sideMenu .portalNavBrand > button {
    display: none !important;
  }

  html body.mibBrandTheme.portalPageMode > main > #rentalPanel #sendRentalRequest {
    width: min(360px, 100%) !important;
  }
}

/* v20260924-01: keep Safari dark and lift fixed navigation above its visual viewport. */
:root {
  --mib-visual-bottom: 0px;
}

html {
  background: #080c0e !important;
  color-scheme: dark !important;
  overscroll-behavior-y: none !important;
}

html body.mibBrandTheme {
  background: #080c0e !important;
  color-scheme: dark !important;
  overscroll-behavior-y: none !important;
  -webkit-text-size-adjust: 100% !important;
}

html body.mibBrandTheme :is(button, input, select, textarea) {
  color-scheme: dark !important;
}

@media (max-width: 760px) {
  html body.mibBrandTheme.portalPageMode {
    padding-bottom: calc(86px + env(safe-area-inset-bottom) + var(--mib-visual-bottom, 0px)) !important;
  }

  html body.mibBrandTheme #cookieConsent {
    bottom: calc(86px + env(safe-area-inset-bottom) + var(--mib-visual-bottom, 0px)) !important;
  }

  html body.mibBrandTheme.portalPageMode,
  html body.mibBrandTheme.portalLocked,
  html body.mibBrandTheme.portalPageMode > main,
  html body.mibBrandTheme.portalLocked > main {
    background: #080c0e !important;
    background-image: none !important;
  }

  html body.mibBrandTheme.portalLocked > main > #portalEntryShell,
  html body.mibBrandTheme.portalPageMode > main > #portalCommandBar {
    background: #151c1f !important;
    color: #f0f4f5 !important;
  }

  html body.mibBrandTheme.portalPageMode.menuOpen,
  html body.mibBrandTheme.portalPageMode.portalNavDrawerOpen {
    overflow: hidden !important;
  }

  html body.mibBrandTheme.portalPageMode > aside#sideMenu {
    z-index: 1301 !important;
    top: 0 !important;
    right: auto !important;
    bottom: 0 !important;
    left: 0 !important;
    width: min(320px, calc(100vw - 40px)) !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    padding: max(14px, env(safe-area-inset-top)) 12px max(18px, env(safe-area-inset-bottom)) !important;
    overflow: hidden auto !important;
    transform: translateX(-105%) !important;
    visibility: hidden !important;
    opacity: 1 !important;
    pointer-events: none !important;
    background: #0b1012 !important;
    color: #f0f4f5 !important;
    border-right: 1px solid #34454b !important;
    box-shadow: 12px 0 32px rgba(0, 0, 0, .42) !important;
  }

  html body.mibBrandTheme.portalPageMode.menuOpen > aside#sideMenu,
  html body.mibBrandTheme.portalPageMode.portalNavDrawerOpen > aside#sideMenu {
    transform: translateX(0) !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  html body.mibBrandTheme.theme-dark.portalPageMode.menuOpen.portalNavDrawerOpen > aside#sideMenu {
    background: #0b1012 !important;
    background-color: #0b1012 !important;
  }

  html body.mibBrandTheme.portalPageMode > .portalNavBackdrop {
    z-index: 1300 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: rgba(0, 0, 0, .58) !important;
    color: transparent !important;
    box-shadow: none !important;
    backdrop-filter: blur(2px) !important;
  }

  html body.mibBrandTheme.portalPageMode.menuOpen.portalNavDrawerOpen > .portalNavBackdrop,
  html body.mibBrandTheme.portalPageMode.portalNavDrawerOpen.menuOpen > .portalNavBackdrop {
    z-index: 1300 !important;
    display: block !important;
    background: #080c0e !important;
    background-color: #080c0e !important;
    background-image: none !important;
  }

  html body.mibBrandTheme.theme-dark.portalPageMode.menuOpen.portalNavDrawerOpen > button.portalNavBackdrop {
    background: #080c0e !important;
    background-color: #080c0e !important;
  }

  html body.mibBrandTheme.portalPageMode > aside#sideMenu .portalNavBrand {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    min-height: 60px !important;
    margin: 0 0 12px !important;
    padding: 8px !important;
    border: 1px solid #34454b !important;
    border-radius: 6px !important;
    background: #151c1f !important;
  }

  html body.mibBrandTheme.portalPageMode > aside#sideMenu .portalNavBrand img {
    width: 48px !important;
    height: 48px !important;
    flex: 0 0 48px !important;
    object-fit: contain !important;
  }

  html body.mibBrandTheme.portalPageMode > aside#sideMenu .portalNavBrand > div {
    min-width: 0 !important;
    flex: 1 1 auto !important;
  }

  html body.mibBrandTheme.portalPageMode > aside#sideMenu .portalNavBrand :is(strong, span) {
    display: block !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    color: #f0f4f5 !important;
  }

  html body.mibBrandTheme.portalPageMode > aside#sideMenu .portalNavBrand span {
    margin-top: 3px !important;
    color: #aab8bd !important;
    font-size: 11px !important;
  }

  html body.mibBrandTheme.portalPageMode > aside#sideMenu .portalNavBrand > button {
    display: inline-grid !important;
    flex: 0 0 34px !important;
    width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    margin: 0 !important;
    place-items: center !important;
    border: 1px solid #f4bd3e !important;
    border-radius: 5px !important;
    background: transparent !important;
    color: #f4bd3e !important;
    font-size: 21px !important;
    line-height: 1 !important;
  }

  html body.mibBrandTheme.portalPageMode > aside#sideMenu .navScroll {
    display: block !important;
    width: 100% !important;
    max-height: calc(100dvh - 104px) !important;
    margin: 0 !important;
    padding: 0 2px max(24px, env(safe-area-inset-bottom)) !important;
    overflow: auto !important;
    background: transparent !important;
  }

  html body.mibBrandTheme.portalPageMode > aside#sideMenu .navScroll :is(summary, button, a, select) {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 44px !important;
    margin: 0 0 6px !important;
    padding: 10px 12px !important;
    border: 1px solid transparent !important;
    border-radius: 5px !important;
    background: #151c1f !important;
    color: #dce5e8 !important;
    font-size: 14px !important;
    font-weight: 750 !important;
    text-align: left !important;
    text-decoration: none !important;
  }

  html body.mibBrandTheme.portalPageMode > aside#sideMenu .navScroll :is(summary:hover, summary:focus-visible, button:hover, button:focus-visible, a:hover, a:focus-visible, button.navActive, button[aria-current="page"]) {
    border-color: #4c6c73 !important;
    background: #1b3035 !important;
    color: #53d7ea !important;
    outline: none !important;
  }
}

/* Safari fallback: this portal intentionally has no light mobile variant. */
html body.mibBrandTheme.theme-light,
html body.mibBrandTheme.theme-light > main,
html body.mibBrandTheme.theme-light > aside#sideMenu,
html body.mibBrandTheme.theme-light #customerQuickNav {
  background: #0b1012 !important;
  color: #f0f4f5 !important;
}

html body.mibBrandTheme.theme-light.portalLocked > main:not(#content),
html body.mibBrandTheme.theme-light.portalPageMode > main:not(#content) {
  background: #101416 !important;
  background-image: none !important;
  color: #edf2f3 !important;
}

/* v20260924-02: keep IDs, prices and point totals readable in every metric row. */
html body.mibBrandTheme.portalPageMode #portalCommandBar .portalCommandMetrics,
html body.mibBrandTheme.portalPageMode #accountSummary {
  grid-template-columns: minmax(220px, 1.35fr) repeat(4, minmax(130px, 1fr)) !important;
  align-items: stretch !important;
}

html body.mibBrandTheme.portalPageMode #portalCommandBar .portalCommandMetrics > span,
html body.mibBrandTheme.portalPageMode #accountSummary .stat {
  min-width: 0 !important;
  box-sizing: border-box !important;
  padding-inline: 18px !important;
  overflow: hidden !important;
}

html body.mibBrandTheme.portalPageMode #portalCommandBar .portalCommandMetrics > span {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  gap: 4px !important;
}

html body.mibBrandTheme.portalPageMode #portalCommandBar .portalCommandMetrics > span > b,
html body.mibBrandTheme.portalPageMode #accountSummary .stat > strong {
  display: block !important;
  max-width: 100% !important;
  overflow: visible !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  white-space: nowrap !important;
  font-variant-numeric: tabular-nums !important;
  letter-spacing: .01em !important;
}

html body.mibBrandTheme.portalPageMode #portalCommandBar .portalCommandMetrics > span > span,
html body.mibBrandTheme.portalPageMode #accountSummary .stat > span {
  display: block !important;
  max-width: 100% !important;
  line-height: 1.25 !important;
  overflow-wrap: normal !important;
}

@media (min-width: 761px) and (max-width: 1180px) {
  html body.mibBrandTheme.portalPageMode #portalCommandBar .portalCommandMetrics,
  html body.mibBrandTheme.portalPageMode #accountSummary {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  html body.mibBrandTheme.portalPageMode #portalCommandBar .portalCommandMetrics,
  html body.mibBrandTheme.portalPageMode #accountSummary {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  html body.mibBrandTheme.portalPageMode #portalCommandBar .portalCommandMetrics > span > b,
  html body.mibBrandTheme.portalPageMode #accountSummary .stat > strong {
    font-size: clamp(19px, 5.8vw, 26px) !important;
    line-height: 1.12 !important;
  }
}

/* ============================================================================
   v20261018-atelier: Warmes Berliner Musik-Atelier & Meisterwerkstatt Design
   ============================================================================ */
:root,
html body.mibBrandTheme,
html body.mibBrandTheme.theme-light,
html body.mibBrandTheme.theme-dark {
  --bg: #0c0b0a;
  --surface: #141210;
  --surface2: #1c1916;
  --surface3: #25211d;
  --border: #2c2722;
  --gold: #c59b47;
  --gold-dim: rgba(197, 155, 71, 0.14);
  --text: #f2ede4;
  --muted: #9a9286;
  --green: #3d9970;
  --red: #c94a4a;

  --mib-portal-bg: #0c0b0a !important;
  --mib-portal-surface: #141210 !important;
  --mib-portal-raised: #1c1916 !important;
  --mib-portal-line: #2c2722 !important;
  --mib-portal-text: #f2ede4 !important;
  --mib-portal-muted: #9a9286 !important;
  --mib-portal-gold: #c59b47 !important;
  --mib-portal-cyan: #c59b47 !important;

  background: #0c0b0a !important;
  color: #f2ede4 !important;
}

html,
html body.mibBrandTheme > main,
html body.mibBrandTheme.theme-light > main,
html body.mibBrandTheme.theme-dark > main,
html body.mibBrandTheme.theme-dark.portalLocked > main:not(#content),
html body.mibBrandTheme.theme-dark.portalPageMode > main:not(#content),
html body.mibBrandTheme.theme-light.portalLocked > main:not(#content),
html body.mibBrandTheme.theme-light.portalPageMode > main:not(#content) {
  background: #0c0b0a !important;
  color: #f2ede4 !important;
  background-image: none !important;
}

/* Modern Web Guidance: Dialog scroll containment */
dialog:modal {
  overscroll-behavior: contain;
}
dialog::backdrop {
  overflow: hidden;
  overscroll-behavior: contain;
}

/* Modern Web Guidance: Form validation feedback only after interaction */
html body.mibBrandTheme :is(input, textarea, select):user-invalid,
html body.mibBrandTheme :is(input, textarea, select).user-invalid-fallback {
  border-color: var(--red, #c94a4a) !important;
  background-color: rgba(201, 74, 74, 0.14) !important;
}

html body.mibBrandTheme :is(input, textarea, select):user-valid,
html body.mibBrandTheme :is(input, textarea, select).user-valid-fallback {
  border-color: var(--green, #3d9970) !important;
}

/* Tabular numerals across all metrics, prices, IDs and intervals */
.tabular,
.atelier-metric-val,
.atelier-step-num,
html body.mibBrandTheme :is(.stat strong, .receiptClaimPoints strong, #rentalCount, #expressOrderInput) {
  font-variant-numeric: tabular-nums !important;
}

/* Warm Walnut Cards & Brass Borders */
html body.mibBrandTheme :is(.card, #portalEntryShell, #sideMenu, header, .mobileTopbar) {
  background-color: #141210 !important;
  border-color: #2c2722 !important;
  color: #f2ede4 !important;
}

html body.mibBrandTheme .expressCheckCard,
html body.mibBrandTheme .damageCheckCard {
  background: linear-gradient(135deg, #1c1916 0%, #141210 100%) !important;
  border: 1px solid #2c2722 !important;
  border-left: 4px solid #c59b47 !important;
}

html body.mibBrandTheme .expressBadge {
  background: rgba(197, 155, 71, 0.14) !important;
  color: #c59b47 !important;
  border: 1px solid rgba(197, 155, 71, 0.4) !important;
}

/* MIB Atelier Schnellleiste & Digitaler Instrumenten-Pass */
.mibAtelierPassSection {
  margin: 0 0 22px !important;
  padding: 20px 22px !important;
  background: linear-gradient(155deg, #181512 0%, #141210 100%) !important;
  border: 1px solid #2c2722 !important;
  border-top: 2px solid #c59b47 !important;
  border-radius: 10px !important;
  color: #f2ede4 !important;
}

.mibAtelierQuickbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding-bottom: 16px;
  margin-bottom: 18px;
  border-bottom: 1px solid #2c2722;
}

.mibAtelierBrandTitle {
  display: flex;
  align-items: center;
  gap: 10px;
}

.mibAtelierBadge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 6px;
  background: rgba(197, 155, 71, 0.14);
  border: 1px solid rgba(197, 155, 71, 0.42);
  color: #c59b47;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.mibAtelierSwitchLinks {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.mibAtelierSwitchLink {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 13px;
  border-radius: 7px;
  border: 1px solid #2c2722;
  background: #1c1916;
  color: #f2ede4;
  font-size: 12.5px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: border-color 0.16s, color 0.16s, background 0.16s;
}

.mibAtelierSwitchLink:hover,
.mibAtelierSwitchLink:focus-visible {
  border-color: #c59b47;
  color: #c59b47;
  outline: none;
}

.mibAtelierSwitchLink.active {
  background: #c59b47;
  border-color: #c59b47;
  color: #0c0b0a;
}

/* 5-Step Workshop Stepper */
.mibWorkshopStepper {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0 18px;
}

.mibStepCard {
  background: #1c1916;
  border: 1px solid #2c2722;
  border-radius: 8px;
  padding: 12px;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.mibStepCard.done {
  border-color: rgba(61, 153, 112, 0.55);
  background: linear-gradient(160deg, rgba(61, 153, 112, 0.12), #1c1916);
}

.mibStepCard.current {
  border-color: #c59b47;
  background: linear-gradient(160deg, rgba(197, 155, 71, 0.16), #1c1916);
}

.mibStepHeader {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 11px;
  font-weight: 800;
  color: #c59b47;
  font-variant-numeric: tabular-nums;
}

.mibStepCard.done .mibStepHeader {
  color: #3d9970;
}

.mibStepTitle {
  font-size: 13px;
  font-weight: 750;
  color: #f2ede4;
}

.mibStepDesc {
  font-size: 11.5px;
  color: #9a9286;
  line-height: 1.35;
}

/* Instrument Pass Telemetry & Setup Grid */
.mibPassMetricsGrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.mibPassMetricCard {
  background: #1c1916;
  border: 1px solid #2c2722;
  border-radius: 8px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.mibPassMetricLabel {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #9a9286;
  font-weight: 700;
}

.mibPassMetricValue {
  font-size: 16px;
  font-weight: 800;
  color: #f2ede4;
  font-variant-numeric: tabular-nums;
}

.mibPassMetricSub {
  font-size: 12px;
  color: #c59b47;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 960px) {
  .mibWorkshopStepper {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .mibPassMetricsGrid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .mibWorkshopStepper {
    grid-template-columns: 1fr;
  }
  .mibAtelierSwitchLinks {
    width: 100%;
  }
  .mibAtelierSwitchLink {
    flex: 1 1 auto;
    justify-content: center;
  }
}
