/* =========================================================
   v1589M1: query-gated mobile viewport foundation, shared
   app shell, one static global footer, and home-screen pilot.
   All rules are inert unless the preview and home-active
   classes are present together.
========================================================= */


html.lrsMobilePreviewV1589M1 {
  --lrs-mobile-page-title-font-v1589m6:
    Inter,
    ui-sans-serif,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;
  --lrs-mobile-page-title-size-v1589m6: clamp(22px, 5.6vw, 28px);
  --lrs-mobile-page-title-weight-v1589m6: 900;
  --lrs-mobile-page-title-line-v1589m6: 1.12;
  --lrs-mobile-page-title-spacing-v1589m6: .01em;
  --lrs-mobile-page-title-color-v1589m6: #fff0bd;
}

@media (max-height: 500px) {
  html.lrsMobilePreviewV1589M1 {
    --lrs-mobile-page-title-size-v1589m6: clamp(20px, 3vw, 24px);
  }
}

#lrsMobileGlobalFooterV1589M1[hidden] {
  display: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  overflow: hidden !important;
  overscroll-behavior: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 {
  position: fixed !important;
  left: var(--lrs-mobile-vv-left-v1589m1, 0px) !important;
  top: var(--lrs-mobile-vv-top-v1589m1, 0px) !important;
  width: var(--lrs-mobile-vv-width-v1589m1, 100vw) !important;
  height: var(--lrs-mobile-vv-height-v1589m1, 100dvh) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  transform: none !important;
  scale: 1 !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  transform: none !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) > .simpleHome {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto minmax(0, 1fr) !important;
  grid-template-areas:
    "mobile-notice"
    "mobile-header"
    "mobile-content" !important;
  overflow: hidden !important;
  border-radius: 0 !important;
  transform: none !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) #lsIntroGuildNoticeCard {
  grid-area: mobile-notice !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  border-radius: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) #lsIntroGuildNoticeCard[hidden] {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .lsHomeV3Header {
  grid-area: mobile-header !important;
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 8px !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding:
    calc(10px + env(safe-area-inset-top, 0px))
    max(12px, env(safe-area-inset-right, 0px))
    8px
    max(12px, env(safe-area-inset-left, 0px)) !important;
  overflow: hidden !important;
  z-index: 4 !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .lsHomeV3Title,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .lsHomeV3Right {
  min-width: 0 !important;
  width: 100% !important;
  margin: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .lsHomeV3Title h1,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .v1382HomeTitleLineMain {
  max-width: 100% !important;
  margin: 0 !important;
  font-size: var(--lrs-mobile-page-title-size-v1589m6) !important;
  line-height: var(--lrs-mobile-page-title-line-v1589m6) !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .lsHomeV3Right {
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  touch-action: pan-x !important;
  overscroll-behavior-x: contain !important;
  scrollbar-width: thin !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .lsHomeV3ResourceBar {
  width: max-content !important;
  min-width: 100% !important;
  max-width: none !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 0 2px !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .lsHomeV3ResourceBar > span {
  flex: 0 0 auto !important;
  min-height: 36px !important;
  white-space: nowrap !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .homeAppContent {
  grid-area: mobile-content !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-content: start !important;
  gap: 12px !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  height: 100% !important;
  max-height: 100% !important;
  align-self: stretch !important;
  margin: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior-y: contain !important;
  -webkit-overflow-scrolling: touch !important;
  touch-action: pan-y !important;
  padding:
    12px
    max(12px, env(safe-area-inset-right, 0px))
    calc(
      var(--lrs-mobile-footer-height-v1589m1, 64px)
      + var(--lrs-mobile-actions-height-v1589m1, 64px)
      + 28px
    )
    max(12px, env(safe-area-inset-left, 0px)) !important;
  scrollbar-gutter: stable !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .homeAppVisualColumn,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .homeAppQuestColumn {
  min-width: 0 !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  align-content: start !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .mainVisualStage {
  position: relative !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: clamp(220px, 32svh, 340px) !important;
  height: clamp(220px, 32svh, 340px) !important;
  max-height: 380px !important;
  margin: 0 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) #heroImg,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .mainVisualStage > img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center top !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .visualCopy {
  padding: clamp(12px, 3.5vw, 20px) !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .visualCopy h1,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .visualCopy p {
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .quickQuestPanel,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) #lsGuildNoticeCard {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin-inline: 0 !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .questLine {
  min-width: 0 !important;
  flex-wrap: wrap !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .nfHomeFloorPickerInfo {
  min-width: 0 !important;
  flex: 1 1 220px !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) #homePartyPreview {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px !important;
  min-width: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) #quickStartBtn {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 56px !important;
  margin: 0 !important;
  touch-action: manipulation !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .homeCtaStack {
  position: fixed !important;
  left:
    calc(
      var(--lrs-mobile-vv-left-v1589m1, 0px)
      + max(12px, env(safe-area-inset-left, 0px))
    ) !important;
  right: auto !important;
  top: auto !important;
  bottom:
    calc(
      var(--lrs-mobile-vv-bottom-gap-v1589m1, 0px)
      + var(--lrs-mobile-footer-height-v1589m1, 64px)
      + 8px
    ) !important;
  width:
    calc(
      var(--lrs-mobile-vv-width-v1589m1, 100vw)
      - max(12px, env(safe-area-inset-left, 0px))
      - max(12px, env(safe-area-inset-right, 0px))
    ) !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  z-index: 37 !important;
  pointer-events: auto !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-content: start !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) > .simpleHome > .lsGameFooter {
  display: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #lrsMobileGlobalFooterV1589M1 {
  position: fixed !important;
  left: var(--lrs-mobile-vv-left-v1589m1, 0px) !important;
  right: auto !important;
  top: auto !important;
  bottom: var(--lrs-mobile-vv-bottom-gap-v1589m1, 0px) !important;
  width: var(--lrs-mobile-vv-width-v1589m1, 100vw) !important;
  min-width: 0 !important;
  min-height: 58px !important;
  max-width: none !important;
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  align-items: stretch !important;
  gap: 2px !important;
  padding:
    5px
    max(5px, env(safe-area-inset-right, 0px))
    calc(5px + env(safe-area-inset-bottom, 0px))
    max(5px, env(safe-area-inset-left, 0px)) !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  background:
    linear-gradient(
      180deg,
      rgba(31, 15, 43, .96),
      rgba(9, 6, 18, .99)
    ) !important;
  border: 0 !important;
  border-top: 1px solid rgba(255, 226, 122, .24) !important;
  border-radius: 0 !important;
  box-shadow: 0 -12px 36px rgba(0, 0, 0, .38) !important;
  transform: none !important;
  z-index: 38 !important;
  pointer-events: auto !important;
  isolation: isolate !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #lrsMobileGlobalFooterV1589M1 > .lsGameFooterButton {
  position: relative !important;
  min-width: 0 !important;
  min-height: 48px !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 4px 2px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 1px !important;
  border-radius: 12px !important;
  touch-action: manipulation !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #lrsMobileGlobalFooterV1589M1 > .lsGameFooterButton:active {
  transform: translateY(1px) scale(.98) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #lrsMobileGlobalFooterV1589M1 > .lsGameFooterButton:focus-visible {
  outline: 2px solid rgba(255, 236, 162, .94) !important;
  outline-offset: 1px !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #lrsMobileGlobalFooterV1589M1 .lsGameFooterIcon,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #lrsMobileGlobalFooterV1589M1 .lsFooterMoonGateGlyph {
  font-size: clamp(18px, 5vw, 24px) !important;
  line-height: 1 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #lrsMobileGlobalFooterV1589M1 .lsFooterMoonGateText {
  min-width: 0 !important;
  display: grid !important;
  justify-items: center !important;
  line-height: 1.05 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #lrsMobileGlobalFooterV1589M1 .lsGameFooterLabel {
  max-width: 100% !important;
  font-size: clamp(10px, 2.8vw, 13px) !important;
  line-height: 1.1 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: clip !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #lrsMobileGlobalFooterV1589M1 .lsFooterMoonGateSub {
  font-size: clamp(7px, 1.9vw, 9px) !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #lrsMobileGlobalFooterV1589M1 > .lsGameFooterButton.is-active {
  color: #fff2b5 !important;
  background: linear-gradient(180deg, rgba(255, 226, 122, .18), rgba(255, 226, 122, .05)) !important;
  box-shadow: inset 0 0 0 1px rgba(255, 226, 122, .24) !important;
}

@media (max-width: 379px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #lrsMobileGlobalFooterV1589M1 .lsFooterMoonGateSub {
    display: none !important;
  }
}

@media (orientation: landscape) and (max-height: 600px) {
  html.lrsMobilePreviewV1589M1.lrsMobileLandscapeV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .homeAppContent {
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr) !important;
    align-items: stretch !important;
  }

  html.lrsMobilePreviewV1589M1.lrsMobileLandscapeV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .mainVisualStage {
    height: 100% !important;
    min-height: 240px !important;
    max-height: none !important;
  }

  html.lrsMobilePreviewV1589M1.lrsMobileLandscapeV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .homeAppQuestColumn {
    min-height: 0 !important;
  }

  html.lrsMobilePreviewV1589M1.lrsMobileLandscapeV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .quickQuestPanel {
    height: auto !important;
  }
}

html.lrsMobilePreviewV1589M1.lrsMobileShortV1589M1 body.lrsMobileHomeActiveV1589M1 #homePanel .lsHomeV3Header {
  gap: 4px !important;
  padding:
    calc(6px + env(safe-area-inset-top, 0px))
    max(8px, env(safe-area-inset-right, 0px))
    5px
    max(8px, env(safe-area-inset-left, 0px)) !important;
}

html.lrsMobilePreviewV1589M1.lrsMobileShortV1589M1 body.lrsMobileHomeActiveV1589M1 #homePanel .homeAppContent {
  gap: 8px !important;
  padding:
    8px
    max(8px, env(safe-area-inset-right, 0px))
    calc(
      var(--lrs-mobile-footer-height-v1589m1, 56px)
      + var(--lrs-mobile-actions-height-v1589m1, 52px)
      + 20px
    )
    max(8px, env(safe-area-inset-left, 0px)) !important;
}

html.lrsMobilePreviewV1589M1.lrsMobileShortV1589M1 body.lrsMobileHomeActiveV1589M1 #homePanel .mainVisualStage {
  min-height: 220px !important;
}

html.lrsMobilePreviewV1589M1.lrsMobileShortV1589M1 body.lrsMobileHomeActiveV1589M1 #homePanel #quickStartBtn {
  min-height: 48px !important;
  font-size: max(11px, 2.2vw) !important;
}

html.lrsMobilePreviewV1589M1.lrsMobileShortV1589M1 body.lrsMobileHomeActiveV1589M1 #lrsMobileGlobalFooterV1589M1 {
  min-height: 52px !important;
  padding-top: 3px !important;
  padding-bottom: calc(3px + env(safe-area-inset-bottom, 0px)) !important;
}

html.lrsMobilePreviewV1589M1.lrsMobileShortV1589M1 body.lrsMobileHomeActiveV1589M1 #lrsMobileGlobalFooterV1589M1 > .lsGameFooterButton {
  min-height: 44px !important;
}

@media (prefers-reduced-motion: reduce) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #lrsMobileGlobalFooterV1589M1 > .lsGameFooterButton,
  html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .homeCtaStack {
    transition: none !important;
    animation: none !important;
  }
}

/* v1589M1 mobile home overflow hardening: keep the existing resource and party
   content inside the shared shell without changing the desktop rules. */
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .lsHomeV3Right {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  overscroll-behavior-x: contain !important;
  -webkit-overflow-scrolling: touch !important;
  touch-action: pan-x !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .lsHomeV3ResourceBar {
  width: max-content !important;
  min-width: 100% !important;
  max-width: none !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: flex-start !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .lsHomeV3ResourceBar > span {
  width: auto !important;
  min-width: max-content !important;
  max-width: none !important;
  flex: 0 0 auto !important;
  grid-template-columns: 18px auto !important;
  padding-inline: 8px !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .lsHomeV3ResourceBar > span > b {
  width: auto !important;
  min-width: 1ch !important;
  max-width: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .homeAppQuestColumn,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .quickQuestPanel,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) #homePartyPreview {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) #homePartyPreview > .partyPreviewCard {
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  padding: 7px 6px !important;
  gap: 5px !important;
  display: grid !important;
  grid-template-columns: minmax(30px, 38px) minmax(0, 1fr) !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) #homePartyPreview > .partyPreviewCard img {
  width: 36px !important;
  height: 36px !important;
  max-width: 100% !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) #homePartyPreview .partyPreviewText {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: hidden !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) #homePartyPreview .partyPreviewText > span,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) #homePartyPreview .partyPreviewText > b {
  width: 100% !important;
  max-width: 100% !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* v1589M1: final home-header sizing wins over the later common-frame runtime skin. */
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .lsHomeV3Header {
  grid-template-rows: auto auto !important;
  height: auto !important;
  min-height: 72px !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .lsHomeV3Title {
  display: block !important;
  height: auto !important;
  min-height: 24px !important;
  overflow: visible !important;
  align-self: start !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .lsHomeV3Title h1 {
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .lsHomeV3Right {
  min-height: 36px !important;
  align-self: end !important;
}

html.lrsMobilePreviewV1589M1.lrsMobileShortV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .lsHomeV3Header {
  min-height: 60px !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .lsHomeV3Header {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  align-content: start !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .lsHomeV3Title,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .lsHomeV3Right {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
}

/* v1589M1: the shared page body is the sole vertical scroll owner.
   Later desktop/common-frame rules give the quest column and party area
   their own scroll boxes; neutralize those only while the mobile home pilot
   is active so content can contribute to the page body's scroll height. */
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .homeAppVisualColumn,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .homeAppQuestColumn,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .quickQuestPanel,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) #homePartyPreview {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .homeAppVisualColumn,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .homeAppQuestColumn,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .quickQuestPanel,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) #homePartyPreview {
  overflow-y: visible !important;
}

/* v1589M1: `overflow-y: visible` computes to `auto` when the other axis is
   hidden. Use the two-axis shorthand on nested home sections so only
   `.homeAppContent` becomes a scroll container. Child width constraints above
   continue to prevent horizontal page overflow. */
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .homeAppVisualColumn,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .homeAppQuestColumn,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .quickQuestPanel,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) #homePartyPreview {
  overflow: visible !important;
}

/* v1589M1: reserve a real final grid row, not only padding, so overflow from
   the desktop quest column can always be scrolled completely above the fixed
   CTA and global footer. */
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .homeAppContent::after {
  content: "" !important;
  display: block !important;
  grid-column: 1 / -1 !important;
  width: 100% !important;
  height:
    calc(
      var(--lrs-mobile-footer-height-v1589m1, 64px)
      + var(--lrs-mobile-actions-height-v1589m1, 64px)
      + 28px
    ) !important;
  pointer-events: none !important;
}

/* v1589M1: do not let the fixed-height page grid compress its home sections
   into fractional rows. Natural max-content rows make the overflow belong to
   `.homeAppContent`, while the final spacer sits after the real content. */
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .homeAppContent {
  grid-template-rows: none !important;
  grid-auto-rows: max-content !important;
}

/* =========================================================
   v1589M2: Japanese-only footer, fail-closed run lifecycle,
   and shared roster / party / floor-selection mobile shells.
========================================================= */

#lrsMobileGlobalFooterV1589M1 .lsFooterMoonGateSub {
  display: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRunTransitionV1589M2 #lrsMobileGlobalFooterV1589M1,
html.lrsMobilePreviewV1589M1 body.battleMode #lrsMobileGlobalFooterV1589M1,
html.lrsMobilePreviewV1589M1 body.lrsScreenLoadingActiveV1586R2 #lrsMobileGlobalFooterV1589M1,
html.lrsMobilePreviewV1589M1 body.lrsFailureExactFrameV1584 #lrsMobileGlobalFooterV1589M1,
html.lrsMobilePreviewV1589M1 body.lrsFailureFieldBackgroundSuppressedV1585 #lrsMobileGlobalFooterV1589M1 {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2 {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  overflow: hidden !important;
  overscroll-behavior: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2 #app.lrsMobilePageActiveV1589M2 {
  position: fixed !important;
  left: var(--lrs-mobile-vv-left-v1589m1, 0px) !important;
  top: var(--lrs-mobile-vv-top-v1589m1, 0px) !important;
  width: var(--lrs-mobile-vv-width-v1589m1, 100vw) !important;
  height: var(--lrs-mobile-vv-height-v1589m1, 100dvh) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  transform: none !important;
  scale: 1 !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2 [data-lrs-mobile-page].lrsMobilePageActiveV1589M2 {
  position: fixed !important;
  left: var(--lrs-mobile-vv-left-v1589m1, 0px) !important;
  top: var(--lrs-mobile-vv-top-v1589m1, 0px) !important;
  width: var(--lrs-mobile-vv-width-v1589m1, 100vw) !important;
  height: var(--lrs-mobile-vv-height-v1589m1, 100dvh) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  transform: none !important;
  place-items: stretch !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2 [data-lrs-mobile-page].lrsMobilePageActiveV1589M2 > [data-lrs-mobile-role="frame"] {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  overflow: hidden !important;
  transform: none !important;
  border-radius: 0 !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2 [data-lrs-mobile-role="header"] {
  position: relative !important;
  min-width: 0 !important;
  max-width: none !important;
  flex-shrink: 0 !important;
  padding-top: calc(8px + env(safe-area-inset-top, 0px)) !important;
  z-index: 4 !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2 [data-lrs-mobile-role="body"] {
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior-y: contain !important;
  -webkit-overflow-scrolling: touch !important;
  touch-action: pan-y !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2.lrsMobileRosterActiveV1589M2 #charListModal .lsGameFooter,
html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2.lrsMobilePartyActiveV1589M2 #partyModal .lsGameFooter {
  display: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2 #lrsMobileGlobalFooterV1589M1 {
  position: fixed !important;
  left: var(--lrs-mobile-vv-left-v1589m1, 0px) !important;
  right: auto !important;
  top: auto !important;
  bottom: var(--lrs-mobile-vv-bottom-gap-v1589m1, 0px) !important;
  width: var(--lrs-mobile-vv-width-v1589m1, 100vw) !important;
  min-width: 0 !important;
  min-height: 58px !important;
  max-width: none !important;
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  align-items: stretch !important;
  gap: 2px !important;
  padding: 5px max(5px, env(safe-area-inset-right, 0px)) calc(5px + env(safe-area-inset-bottom, 0px)) max(5px, env(safe-area-inset-left, 0px)) !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  background: linear-gradient(180deg, rgba(31, 15, 43, .96), rgba(9, 6, 18, .99)) !important;
  border: 0 !important;
  border-top: 1px solid rgba(255, 226, 122, .24) !important;
  border-radius: 0 !important;
  box-shadow: 0 -12px 36px rgba(0, 0, 0, .38) !important;
  transform: none !important;
  z-index: 38 !important;
  pointer-events: auto !important;
  isolation: isolate !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2 #lrsMobileGlobalFooterV1589M1 > .lsGameFooterButton {
  min-width: 0 !important;
  min-height: 48px !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 4px 2px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 3px !important;
  border-radius: 12px !important;
  touch-action: manipulation !important;
  pointer-events: auto !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2 #lrsMobileGlobalFooterV1589M1 .lsGameFooterIcon,
html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2 #lrsMobileGlobalFooterV1589M1 .lsFooterMoonGateGlyph {
  font-size: clamp(19px, 5.2vw, 25px) !important;
  line-height: 1 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2 #lrsMobileGlobalFooterV1589M1 .lsFooterMoonGateText {
  min-width: 0 !important;
  display: grid !important;
  justify-items: center !important;
  line-height: 1.05 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2 #lrsMobileGlobalFooterV1589M1 .lsGameFooterLabel {
  max-width: 100% !important;
  font-size: clamp(11px, 3.1vw, 14px) !important;
  line-height: 1.1 !important;
  font-weight: 900 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: clip !important;
}

/* Roster */
html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal > .v1372AppFrameBox--roster {
  grid-template-rows: auto minmax(0, 1fr) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .lsCoreHeader--roster {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 8px !important;
  padding: calc(9px + env(safe-area-inset-top, 0px)) max(10px, env(safe-area-inset-right, 0px)) 8px max(10px, env(safe-area-inset-left, 0px)) !important;
  overflow: hidden !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .lsCoreHeaderRight,
html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .lsCoreHeaderTabs {
  min-width: 0 !important;
  width: 100% !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .lsCoreHeaderTabs {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  touch-action: pan-x !important;
  -webkit-overflow-scrolling: touch !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .lsCoreHeaderTab {
  flex: 0 0 auto !important;
  min-height: 44px !important;
  padding: 9px 14px !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .v1372RosterContent {
  display: block !important;
  padding: 10px max(10px, env(safe-area-inset-right, 0px)) calc(var(--lrs-mobile-footer-height-v1589m1, 58px) + 18px) max(10px, env(safe-area-inset-left, 0px)) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .lsRosterV6Panels,
html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .lsRosterV6Panel {
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .lsRosterV6Grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  padding: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .lsRosterV6Card {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .lsRosterV6Card .charSplash,
html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .lsRosterV6Card img {
  max-width: 100% !important;
  object-fit: contain !important;
}

/* Party */
html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal > .v1372AppFrameBox--party {
  grid-template-rows: auto minmax(0, 1fr) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal .lsCoreHeader--party {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  padding: calc(9px + env(safe-area-inset-top, 0px)) max(10px, env(safe-area-inset-right, 0px)) 8px max(10px, env(safe-area-inset-left, 0px)) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal .v1372PartyContent {
  display: block !important;
  padding: 10px max(10px, env(safe-area-inset-right, 0px)) calc(var(--lrs-mobile-footer-height-v1589m1, 58px) + var(--lrs-mobile-actions-height-v1589m1, 60px) + 28px) max(10px, env(safe-area-inset-left, 0px)) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal .partyBuilderLayout {
  display: block !important;
  min-width: 0 !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal .partyStatusPanel,
html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal .partyPickPanel {
  position: relative !important;
  top: auto !important;
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 0 12px !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal #partySlotSelector {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;
  width: 100% !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x proximity !important;
  touch-action: pan-x !important;
  -webkit-overflow-scrolling: touch !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal #partySlotSelector > * {
  flex: 0 0 116px !important;
  width: 116px !important;
  min-width: 116px !important;
  min-height: 78px !important;
  height: auto !important;
  scroll-snap-align: start !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal #partySynergyPreview {
  max-height: 96px !important;
  overflow-y: auto !important;
  padding: 8px !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal #partySelectGrid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal #partySelectGrid .partyChoice {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  min-height: 210px !important;
  max-height: none !important;
  overflow: hidden !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal .partyRosterActions {
  position: fixed !important;
  left: calc(var(--lrs-mobile-vv-left-v1589m1, 0px) + max(10px, env(safe-area-inset-left, 0px))) !important;
  right: auto !important;
  top: auto !important;
  bottom: calc(var(--lrs-mobile-vv-bottom-gap-v1589m1, 0px) + var(--lrs-mobile-footer-height-v1589m1, 58px) + 8px) !important;
  width: calc(var(--lrs-mobile-vv-width-v1589m1, 100vw) - max(10px, env(safe-area-inset-left, 0px)) - max(10px, env(safe-area-inset-right, 0px))) !important;
  display: grid !important;
  grid-template-columns: 1fr 1.35fr !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
  z-index: 37 !important;
  pointer-events: auto !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal #savePartyBtn { min-height: 52px !important; }
html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal #confirmStartBtn { min-height: 56px !important; }

/* Floor selection */
html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal > .nfFloorSelectFrame {
  grid-template-rows: auto auto minmax(0, 1fr) auto !important;
  padding: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal .nfFloorSelectHeader {
  padding: calc(10px + env(safe-area-inset-top, 0px)) max(10px, env(safe-area-inset-right, 0px)) 8px max(10px, env(safe-area-inset-left, 0px)) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal #nfFloorBandTabs {
  position: relative !important;
  min-width: 0 !important;
  width: 100% !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 6px max(10px, env(safe-area-inset-right, 0px)) 6px max(10px, env(safe-area-inset-left, 0px)) !important;
  touch-action: pan-x !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal #floorSelectGrid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-content: start !important;
  gap: 10px !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  padding: 10px max(10px, env(safe-area-inset-right, 0px)) 12px max(10px, env(safe-area-inset-left, 0px)) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal .floorSelectCard {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 44px !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal .nfFloorSelectFooter {
  position: sticky !important;
  bottom: 0 !important;
  min-height: 52px !important;
  padding: 6px max(10px, env(safe-area-inset-right, 0px)) calc(6px + env(safe-area-inset-bottom, 0px)) max(10px, env(safe-area-inset-left, 0px)) !important;
  z-index: 12 !important;
}

@media (max-width: 319px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .lsRosterV6Grid,
  html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal #partySelectGrid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

@media (min-width: 430px) and (max-width: 599px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .lsRosterV6Grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal #floorSelectGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 600px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .lsRosterV6Grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
  }
  html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal #partySelectGrid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
  }
}

@media (min-width: 768px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal #floorSelectGrid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2 #lrsMobileGlobalFooterV1589M1 > .lsGameFooterButton,
  html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal .partyRosterActions {
    transition: none !important;
    animation: none !important;
  }
}

/* =========================================================
   v1589M2 final mobile-page authority.
   These selectors intentionally outrank later runtime-injected
   desktop common-frame styles without touching normal PC routes.
========================================================= */

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.lrsMobileRosterActiveV1589M2,
html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal.lrsMobilePartyActiveV1589M2,
html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal.lrsMobileFloorSelectActiveV1589M2 {
  position: fixed !important;
  left: var(--lrs-mobile-vv-left-v1589m1, 0px) !important;
  top: var(--lrs-mobile-vv-top-v1589m1, 0px) !important;
  right: auto !important;
  bottom: auto !important;
  width: var(--lrs-mobile-vv-width-v1589m1, 100vw) !important;
  height: var(--lrs-mobile-vv-height-v1589m1, 100dvh) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  transform: none !important;
  place-items: stretch !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.lrsMobileRosterActiveV1589M2 > .v1372AppFrameBox--roster,
html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal.lrsMobilePartyActiveV1589M2 > .v1372AppFrameBox--party,
html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal.lrsMobileFloorSelectActiveV1589M2 > .nfFloorSelectFrame {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  overflow: hidden !important;
  transform: none !important;
  border-radius: 0 !important;
  box-sizing: border-box !important;
}

/* Roster final authority */
html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.lrsMobileRosterActiveV1589M2 > .v1372AppFrameBox--roster {
  grid-template-rows: auto minmax(0, 1fr) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.lrsMobileRosterActiveV1589M2 .lsCoreHeader--roster {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 106px !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 !important;
  padding: calc(9px + env(safe-area-inset-top, 0px)) max(12px, env(safe-area-inset-right, 0px)) 9px max(12px, env(safe-area-inset-left, 0px)) !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  grid-template-areas: "roster-title" "roster-tabs" !important;
  gap: 7px !important;
  align-items: center !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .lsCoreHeader--roster .lsCoreHeaderTitle {
  grid-area: roster-title !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  display: flex !important;
  justify-content: flex-start !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .lsCoreHeader--roster .lsCoreHeaderTitle h1 {
  width: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
  font-size: var(--lrs-mobile-page-title-size-v1589m6) !important;
  line-height: var(--lrs-mobile-page-title-line-v1589m6) !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .lsCoreHeader--roster .lsCoreHeaderCenter {
  display: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .lsCoreHeader--roster .lsCoreHeaderRight {
  grid-area: roster-tabs !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  display: block !important;
  overflow: hidden !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .lsCoreHeader--roster .lsCoreHeaderTabs {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  touch-action: pan-x !important;
  -webkit-overflow-scrolling: touch !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .lsCoreHeader--roster .lsCoreHeaderTab {
  flex: 1 0 min(148px, 47vw) !important;
  width: auto !important;
  min-width: 116px !important;
  min-height: 44px !important;
  height: 44px !important;
  margin: 0 !important;
  padding: 8px 12px !important;
  overflow: visible !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .v1372RosterContent {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 10px max(10px, env(safe-area-inset-right, 0px)) calc(var(--lrs-mobile-footer-height-v1589m1, 58px) + 18px) max(10px, env(safe-area-inset-left, 0px)) !important;
  display: block !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .lsRosterV6Grid {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-auto-rows: max-content !important;
  align-content: start !important;
  gap: 10px !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .lsRosterV6Card {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .lsRosterV6Card img {
  max-width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
}

/* Party final authority */
html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal.lrsMobilePartyActiveV1589M2 > .v1372AppFrameBox--party {
  grid-template-rows: auto minmax(0, 1fr) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal .lsCoreHeader--party {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 58px !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 !important;
  padding: calc(10px + env(safe-area-inset-top, 0px)) max(12px, env(safe-area-inset-right, 0px)) 8px max(12px, env(safe-area-inset-left, 0px)) !important;
  display: flex !important;
  align-items: center !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal .lsCoreHeader--party h1 {
  margin: 0 !important;
  font-size: var(--lrs-mobile-page-title-size-v1589m6) !important;
  line-height: var(--lrs-mobile-page-title-line-v1589m6) !important;
  white-space: nowrap !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal .v1372PartyContent {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 max(10px, env(safe-area-inset-right, 0px)) calc(var(--lrs-mobile-footer-height-v1589m1, 58px) + var(--lrs-mobile-actions-height-v1589m1, 56px) + 24px) max(10px, env(safe-area-inset-left, 0px)) !important;
  display: block !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal .v1372PageLead {
  margin: 4px 0 10px !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal .partyBuilderLayout {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  gap: 12px !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal .partyStatusPanel {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 12px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  gap: 10px !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySlotSelector {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 108px !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 1px 1px 7px !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  gap: 8px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x proximity !important;
  touch-action: pan-x !important;
  -webkit-overflow-scrolling: touch !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySlotSelector > .slotChoice {
  flex: 0 0 138px !important;
  width: 138px !important;
  min-width: 138px !important;
  max-width: 138px !important;
  min-height: 98px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 9px !important;
  display: grid !important;
  grid-template-columns: 42px minmax(0, 1fr) !important;
  grid-template-rows: auto auto minmax(0, 1fr) !important;
  grid-template-areas: "portrait role" "portrait name" "detail detail" !important;
  column-gap: 8px !important;
  row-gap: 2px !important;
  align-items: center !important;
  scroll-snap-align: start !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySlotSelector > .slotChoice > span {
  grid-area: role !important;
  min-width: 0 !important;
  font-size: 10px !important;
  line-height: 1.1 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySlotSelector > .slotChoice > .slotPortrait {
  grid-area: portrait !important;
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  min-height: 42px !important;
  margin: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySlotSelector > .slotChoice > b {
  grid-area: name !important;
  min-width: 0 !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
  white-space: normal !important;
  overflow: hidden !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySlotSelector > .slotChoice > small {
  grid-area: detail !important;
  min-width: 0 !important;
  font-size: 10px !important;
  line-height: 1.25 !important;
  white-space: normal !important;
  overflow: hidden !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySynergyPreview {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 44px !important;
  height: auto !important;
  max-height: 96px !important;
  margin: 0 !important;
  padding: 8px 10px !important;
  display: block !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal .partyPickPanel {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 220px !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 10px !important;
  display: block !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySelectGrid {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  margin: 10px 0 0 !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-auto-rows: max-content !important;
  align-content: start !important;
  gap: 10px !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal .partyRosterActions {
  position: fixed !important;
  left: calc(var(--lrs-mobile-vv-left-v1589m1, 0px) + max(10px, env(safe-area-inset-left, 0px))) !important;
  right: auto !important;
  top: auto !important;
  bottom: calc(var(--lrs-mobile-vv-bottom-gap-v1589m1, 0px) + var(--lrs-mobile-footer-height-v1589m1, 58px) + 8px) !important;
  width: calc(var(--lrs-mobile-vv-width-v1589m1, 100vw) - max(10px, env(safe-area-inset-left, 0px)) - max(10px, env(safe-area-inset-right, 0px))) !important;
  min-width: 0 !important;
  max-width: none !important;
  min-height: 54px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr) !important;
  gap: 10px !important;
  z-index: 37 !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #savePartyBtn,
html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #confirmStartBtn {
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #savePartyBtn { min-height: 52px !important; }
html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #confirmStartBtn { min-height: 56px !important; }

/* Floor selection final authority */
html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal.lrsMobileFloorSelectActiveV1589M2 > .nfFloorSelectFrame {
  padding: 0 !important;
  grid-template-rows: auto auto minmax(0, 1fr) auto !important;
  gap: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal .nfFloorSelectHeader {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 !important;
  padding: calc(9px + env(safe-area-inset-top, 0px)) max(10px, env(safe-area-inset-right, 0px)) 8px max(10px, env(safe-area-inset-left, 0px)) !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  gap: 7px !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal .nfFloorSelectHeading {
  min-width: 0 !important;
  display: block !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal .nfFloorSelectHeading h1 {
  margin: 0 0 3px !important;
  font-size: var(--lrs-mobile-page-title-size-v1589m6) !important;
  line-height: var(--lrs-mobile-page-title-line-v1589m6) !important;
  white-space: normal !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal .nfFloorSelectHeading p {
  margin: 0 !important;
  font-size: 11px !important;
  line-height: 1.35 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal .nfFloorSelectSummary {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 6px !important;
  overflow: hidden !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal .nfFloorSelectSummary > div {
  min-width: 0 !important;
  padding: 6px !important;
  overflow: hidden !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal #nfFloorBandTabs {
  position: relative !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  min-height: 48px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 5px max(8px, env(safe-area-inset-right, 0px)) 5px max(8px, env(safe-area-inset-left, 0px)) !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 7px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  touch-action: pan-x !important;
  -webkit-overflow-scrolling: touch !important;
  box-sizing: border-box !important;
  z-index: 3 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal #nfFloorBandTabs > * {
  flex: 0 0 auto !important;
  min-height: 40px !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal #floorSelectGrid {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 10px max(10px, env(safe-area-inset-right, 0px)) 14px max(10px, env(safe-area-inset-left, 0px)) !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-auto-rows: max-content !important;
  align-content: start !important;
  gap: 10px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  touch-action: pan-y !important;
  -webkit-overflow-scrolling: touch !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal .floorSelectCard {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 112px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal .nfFloorSelectFooter {
  position: relative !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  bottom: auto !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 58px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 6px max(10px, env(safe-area-inset-right, 0px)) calc(6px + env(safe-area-inset-bottom, 0px)) max(10px, env(safe-area-inset-left, 0px)) !important;
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center !important;
  overflow: visible !important;
  box-sizing: border-box !important;
  z-index: 4 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal #closeFloorSelectBtn {
  min-width: 52px !important;
  min-height: 48px !important;
  margin: 0 !important;
}

@media (max-width: 319px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .lsRosterV6Grid,
  html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySelectGrid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

@media (min-width: 430px) and (max-width: 599px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .lsRosterV6Grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal #floorSelectGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 600px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .lsRosterV6Grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
  }

  html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySelectGrid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
  }
}

@media (min-width: 768px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal #floorSelectGrid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (orientation: landscape) and (max-height: 600px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .lsCoreHeader--roster {
    min-height: 58px !important;
    grid-template-columns: auto minmax(0, 1fr) !important;
    grid-template-rows: auto !important;
    grid-template-areas: "roster-title roster-tabs" !important;
    gap: 10px !important;
  }

  html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .lsCoreHeader--roster .lsCoreHeaderTitle h1 {
    font-size: var(--lrs-mobile-page-title-size-v1589m6) !important;
  }

  html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySlotSelector {
    min-height: 94px !important;
  }

  html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySlotSelector > .slotChoice {
    min-height: 86px !important;
  }

  html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal .nfFloorSelectHeader {
    grid-template-columns: minmax(0, 1.1fr) minmax(260px, .9fr) !important;
    grid-template-rows: auto !important;
    gap: 8px !important;
  }
}

/* v1589M2: beat late PC common-frame runtime styles on active mobile pages. */
html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal.v1372PartyCommonFrame.v1372RealCommonFrame.v1372CommonFrameScreen.show.lrsMobilePartyActiveV1589M2 #partySlotSelector.slotSelector {
  display: flex !important;
  flex: none !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  grid-template-rows: none !important;
  grid-template-columns: none !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 108px !important;
  height: auto !important;
  max-height: none !important;
  padding: 1px 1px 7px !important;
  gap: 8px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x proximity !important;
  touch-action: pan-x !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal.v1372PartyCommonFrame.v1372RealCommonFrame.v1372CommonFrameScreen.show.lrsMobilePartyActiveV1589M2 #partySlotSelector.slotSelector > .slotChoice {
  flex: 0 0 138px !important;
  width: 138px !important;
  min-width: 138px !important;
  max-width: 138px !important;
  height: auto !important;
  min-height: 98px !important;
  max-height: none !important;
  padding: 9px !important;
  display: grid !important;
  grid-template-columns: 42px minmax(0, 1fr) !important;
  grid-template-rows: auto auto minmax(0, 1fr) !important;
  grid-template-areas: "portrait role" "portrait name" "detail detail" !important;
  column-gap: 8px !important;
  row-gap: 2px !important;
  scroll-snap-align: start !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal.v1372PartyCommonFrame.v1372RealCommonFrame.v1372CommonFrameScreen.show.lrsMobilePartyActiveV1589M2 #partySlotSelector.slotSelector > .slotChoice > .slotPortrait {
  grid-area: portrait !important;
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  min-height: 42px !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal.v1372PartyCommonFrame.v1372RealCommonFrame.v1372CommonFrameScreen.show.lrsMobilePartyActiveV1589M2 #partySlotSelector.slotSelector > .slotChoice > span {
  grid-area: role !important;
  font-size: 10px !important;
  line-height: 1.1 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal.v1372PartyCommonFrame.v1372RealCommonFrame.v1372CommonFrameScreen.show.lrsMobilePartyActiveV1589M2 #partySlotSelector.slotSelector > .slotChoice > b {
  grid-area: name !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
  white-space: normal !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal.v1372PartyCommonFrame.v1372RealCommonFrame.v1372CommonFrameScreen.show.lrsMobilePartyActiveV1589M2 #partySlotSelector.slotSelector > .slotChoice > small {
  grid-area: detail !important;
  font-size: 10px !important;
  line-height: 1.25 !important;
  white-space: normal !important;
  text-overflow: clip !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal.modal.v1372CommonFrameScreen.show.lrsMobileFloorSelectActiveV1589M2 > .cardBox.nfFloorSelectFrame {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto minmax(0, 1fr) auto !important;
  gap: 0 !important;
  overflow: hidden !important;
  transform: none !important;
  border-radius: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal.modal.v1372CommonFrameScreen.show.lrsMobileFloorSelectActiveV1589M2 > .cardBox.nfFloorSelectFrame > .nfFloorSelectHeader {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  padding: calc(9px + env(safe-area-inset-top, 0px)) max(10px, env(safe-area-inset-right, 0px)) 8px max(10px, env(safe-area-inset-left, 0px)) !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  gap: 7px !important;
  overflow: hidden !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal.modal.v1372CommonFrameScreen.show.lrsMobileFloorSelectActiveV1589M2 > .cardBox.nfFloorSelectFrame > #nfFloorBandTabs.nfFloorBandTabs {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  min-height: 48px !important;
  height: auto !important;
  display: flex !important;
  grid-template-columns: none !important;
  flex-wrap: nowrap !important;
  gap: 7px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal.modal.v1372CommonFrameScreen.show.lrsMobileFloorSelectActiveV1589M2 > .cardBox.nfFloorSelectFrame > #floorSelectGrid.floorSelectGrid.nfFloorSelectGrid {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  padding: 10px max(10px, env(safe-area-inset-right, 0px)) 14px max(10px, env(safe-area-inset-left, 0px)) !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-auto-rows: max-content !important;
  align-content: start !important;
  gap: 10px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal.modal.v1372CommonFrameScreen.show.lrsMobileFloorSelectActiveV1589M2 > .cardBox.nfFloorSelectFrame > .nfFloorSelectFooter {
  position: relative !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 58px !important;
  height: auto !important;
  padding: 6px max(10px, env(safe-area-inset-right, 0px)) calc(6px + env(safe-area-inset-bottom, 0px)) max(10px, env(safe-area-inset-left, 0px)) !important;
  margin: 0 !important;
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center !important;
}

@media (min-width: 430px) and (max-width: 767px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal.modal.v1372CommonFrameScreen.show.lrsMobileFloorSelectActiveV1589M2 > .cardBox.nfFloorSelectFrame > #floorSelectGrid.floorSelectGrid.nfFloorSelectGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 768px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #app.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal.modal.v1372CommonFrameScreen.show.lrsMobileFloorSelectActiveV1589M2 > .cardBox.nfFloorSelectFrame > #floorSelectGrid.floorSelectGrid.nfFloorSelectGrid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* v1589M2 fail-closed footer visibility always outranks page display rules. */
html.lrsMobilePreviewV1589M1 body #lrsMobileGlobalFooterV1589M1[hidden],
html.lrsMobilePreviewV1589M1 body.lrsMobileRunTransitionV1589M2 #lrsMobileGlobalFooterV1589M1,
html.lrsMobilePreviewV1589M1 body.battleMode #lrsMobileGlobalFooterV1589M1,
html.lrsMobilePreviewV1589M1 body.lrsScreenLoadingActiveV1586R2 #lrsMobileGlobalFooterV1589M1,
html.lrsMobilePreviewV1589M1 body.lrsFailureExactFrameV1584 #lrsMobileGlobalFooterV1589M1,
html.lrsMobilePreviewV1589M1 body.lrsFailureFieldBackgroundSuppressedV1585 #lrsMobileGlobalFooterV1589M1 {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* =========================================================
   v1589M3: first-paint continuity, adaptive mobile density,
   compact empty states, and a landscape-only phone battle gate.
========================================================= */

html.lrsMobilePreviewV1589M1 {
  --lrs-safe-top-v1589m3: env(safe-area-inset-top, 0px);
  --lrs-safe-right-v1589m3: env(safe-area-inset-right, 0px);
  --lrs-safe-bottom-v1589m3: env(safe-area-inset-bottom, 0px);
  --lrs-safe-left-v1589m3: env(safe-area-inset-left, 0px);
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRunCoverPendingV1589M3,
html.lrsMobilePreviewV1589M1 body.lrsMobileRunTransitionV1589M2 {
  overscroll-behavior: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRunCoverPendingV1589M3 .lrsMobilePageFrozenForRunV1589M3,
html.lrsMobilePreviewV1589M1 .lrsMobilePageFrozenForRunV1589M3 {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: none !important;
  transform: none !important;
  animation: none !important;
  transition: none !important;
  contain: layout paint !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRunCoverPendingV1589M3 .lrsMobilePageFrozenForRunV1589M3 [data-lrs-mobile-role="actions"],
html.lrsMobilePreviewV1589M1 body.lrsMobileRunCoverPendingV1589M3 .lrsMobilePageFrozenForRunV1589M3 button {
  pointer-events: none !important;
}

/* Keep the home title on one compact line while the phone shell is active. */
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M2 #app.lrsMobileHomeActiveV1589M2 #homePanel .lsHomeV3Title,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel .lsHomeV3Title {
  min-width: 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  font-size: var(--lrs-mobile-page-title-size-v1589m6) !important;
  line-height: var(--lrs-mobile-page-title-line-v1589m6) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M2 #app.lrsMobileHomeActiveV1589M2 #homePanel .lsHomeV3Title > h1,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel .lsHomeV3Title > h1 {
  display: block !important;
  min-width: 0 !important;
  width: 100% !important;
  margin: 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  font-size: var(--lrs-mobile-page-title-size-v1589m6) !important;
  line-height: var(--lrs-mobile-page-title-line-v1589m6) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M2 #app.lrsMobileHomeActiveV1589M2 #homePanel .v1382HomeTitleLineMain,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel .v1382HomeTitleLineMain {
  display: inline !important;
  white-space: nowrap !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M2 #app.lrsMobileHomeActiveV1589M2 #homePanel .v1382HomeTitleLineSub,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel .v1382HomeTitleLineSub {
  display: none !important;
}

/* Compact favorite-empty state; it must not consume the remaining viewport. */
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M2 #app.lrsMobileHomeActiveV1589M2 #homePanel.lrsMobileFavoriteEmptyV1589M3 .quickQuestPanel,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.lrsMobileFavoriteEmptyV1589M3 .quickQuestPanel {
  grid-template-rows: auto auto auto !important;
  align-content: start !important;
  min-height: 0 !important;
  height: auto !important;
  gap: 10px !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M2 #app.lrsMobileHomeActiveV1589M2 #homePanel.lrsMobileFavoriteEmptyV1589M3 .v1372FavoriteEmptyCta,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.lrsMobileFavoriteEmptyV1589M3 .v1372FavoriteEmptyCta {
  width: 100% !important;
  height: auto !important;
  min-height: 104px !important;
  max-height: 148px !important;
  margin: 0 !important;
  padding: 14px !important;
  align-self: start !important;
  place-items: center !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M2 #app.lrsMobileHomeActiveV1589M2 #homePanel.lrsMobileFavoriteEmptyV1589M3 .v1372FavoriteEmptyCta button,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.lrsMobileFavoriteEmptyV1589M3 .v1372FavoriteEmptyCta button {
  width: min(240px, 100%) !important;
  min-height: 48px !important;
  margin: 0 auto !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M2 #app.lrsMobileHomeActiveV1589M2 #homePanel.lrsMobileFavoriteEmptyV1589M3 #lsGuildNoticeCard,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.lrsMobileFavoriteEmptyV1589M3 #lsGuildNoticeCard {
  margin-top: 10px !important;
}

/* M3 roster geometry wins over the legacy 122px card variable. */
html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal :is(#lsRosterOwnedGridV6, #lsRosterLibraryGridV6, #lsRosterOwnedGrid, #lsRosterLibraryGrid) {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  justify-content: stretch !important;
  gap: 10px !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal :is(#lsRosterOwnedGridV6, #lsRosterLibraryGridV6, #lsRosterOwnedGrid, #lsRosterLibraryGrid) > :is(.lsRosterV6Card, .charCard) {
  all: unset !important;
  position: relative !important;
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 2 / 3 !important;
  box-sizing: border-box !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  cursor: pointer !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .lsRosterV6Card b,
html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .charCard b {
  font-size: max(14px, 3.5vw) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .lsRosterV6Card small,
html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .charCard small {
  font-size: max(11px, 2.7vw) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .lsRosterV6Card .rarity,
html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .charCard .rarity {
  font-size: max(10px, 2.45vw) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .guildSceneryBanner {
  height: clamp(116px, 17svh, 156px) !important;
  min-height: 116px !important;
  max-height: 156px !important;
  aspect-ratio: auto !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal .guildSceneryBanner img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
}

@media (max-width: 319px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal :is(#lsRosterOwnedGridV6, #lsRosterLibraryGridV6, #lsRosterOwnedGrid, #lsRosterLibraryGrid) {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

@media (min-width: 480px) and (max-width: 767px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal :is(#lsRosterOwnedGridV6, #lsRosterLibraryGridV6, #lsRosterOwnedGrid, #lsRosterLibraryGrid) {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 768px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal :is(#lsRosterOwnedGridV6, #lsRosterLibraryGridV6, #lsRosterOwnedGrid, #lsRosterLibraryGrid) {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)) !important;
  }
}

/* M3 party density: three permanent slots fit at once on standard phones. */
@media (min-width: 360px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySlotSelector {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 6px !important;
    overflow-x: hidden !important;
    scroll-snap-type: none !important;
  }

  html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySlotSelector > .slotChoice {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 88px !important;
    padding: 7px !important;
    grid-template-columns: 34px minmax(0, 1fr) !important;
    column-gap: 5px !important;
  }
}

@media (max-width: 359px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySlotSelector {
    display: flex !important;
    overflow-x: auto !important;
  }

  html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySlotSelector > .slotChoice {
    flex: 0 0 116px !important;
    min-width: 116px !important;
  }
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySlotSelector > .slotChoice > span {
  font-size: 9px !important;
  line-height: 1.08 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySlotSelector > .slotChoice > b {
  font-size: 11px !important;
  line-height: 1.15 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySlotSelector > .slotChoice > small {
  font-size: 9px !important;
  line-height: 1.15 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal .partyPickPanel {
  min-height: 0 !important;
  height: auto !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySelectGrid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  justify-content: stretch !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySelectGrid > :is(.partyChoice, .charCard) {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
}

@media (max-width: 319px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySelectGrid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

@media (min-width: 600px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySelectGrid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* Static phone portrait battle-orientation gate. */
#lrsMobileBattleOrientationGateV1589M3[hidden] {
  display: none !important;
}

#lrsMobileBattleOrientationGateV1589M3 {
  position: fixed !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100dvh !important;
  min-height: 100svh !important;
  padding:
    max(18px, env(safe-area-inset-top, 0px))
    max(18px, env(safe-area-inset-right, 0px))
    max(18px, env(safe-area-inset-bottom, 0px))
    max(18px, env(safe-area-inset-left, 0px)) !important;
  display: grid !important;
  place-items: center !important;
  box-sizing: border-box !important;
  z-index: 2147483300 !important;
  background:
    radial-gradient(circle at 50% 28%, rgba(176, 112, 255, .22), transparent 45%),
    linear-gradient(180deg, rgba(6, 3, 13, .98), rgba(2, 1, 7, .995)) !important;
  color: #fff !important;
  pointer-events: auto !important;
  overscroll-behavior: none !important;
}

#lrsMobileBattleOrientationGateV1589M3 .lrsMobileBattleOrientationCardV1589M3 {
  width: min(430px, 100%) !important;
  padding: clamp(22px, 6vw, 34px) !important;
  display: grid !important;
  justify-items: center !important;
  gap: 12px !important;
  text-align: center !important;
  border-radius: 24px !important;
  border: 1px solid rgba(255, 226, 122, .35) !important;
  background: linear-gradient(145deg, rgba(40, 21, 57, .98), rgba(8, 5, 17, .99)) !important;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .58), inset 0 1px rgba(255, 255, 255, .1) !important;
}

#lrsMobileBattleOrientationGateV1589M3 .lrsMobileBattleOrientationIconV1589M3 {
  position: relative !important;
  width: 78px !important;
  height: 56px !important;
  border: 3px solid rgba(255, 244, 210, .96) !important;
  border-radius: 13px !important;
  transform: rotate(-90deg) !important;
  box-shadow: 0 0 28px rgba(176, 112, 255, .32) !important;
}

#lrsMobileBattleOrientationGateV1589M3 .lrsMobileBattleOrientationIconV1589M3::before {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  top: -24px !important;
  width: 38px !important;
  height: 38px !important;
  border: 3px solid rgba(255, 226, 122, .92) !important;
  border-left-color: transparent !important;
  border-bottom-color: transparent !important;
  border-radius: 50% !important;
  transform: translateX(-50%) rotate(-30deg) !important;
}

#lrsMobileBattleOrientationGateV1589M3 .lrsMobileBattleOrientationIconV1589M3::after {
  content: "" !important;
  position: absolute !important;
  left: calc(50% + 20px) !important;
  top: -21px !important;
  width: 0 !important;
  height: 0 !important;
  border-top: 7px solid transparent !important;
  border-bottom: 7px solid transparent !important;
  border-left: 11px solid rgba(255, 226, 122, .96) !important;
  transform: rotate(18deg) !important;
}

#lrsMobileBattleOrientationGateV1589M3 h1 {
  margin: 0 !important;
  color: #fff4d2 !important;
  font-size: clamp(23px, 7vw, 34px) !important;
  line-height: 1.2 !important;
}

#lrsMobileBattleOrientationGateV1589M3 p {
  margin: 0 !important;
  color: rgba(255, 255, 255, .8) !important;
  font-size: clamp(14px, 4vw, 17px) !important;
  line-height: 1.6 !important;
}

#lrsCancelMobileBattleOrientationV1589M3 {
  min-width: min(240px, 100%) !important;
  min-height: 50px !important;
  padding: 11px 18px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255, 226, 122, .38) !important;
  background: rgba(255, 255, 255, .07) !important;
  color: #fff !important;
  font: inherit !important;
  font-weight: 900 !important;
  touch-action: manipulation !important;
}

@media (prefers-reduced-motion: reduce) {
  #lrsMobileBattleOrientationGateV1589M3 .lrsMobileBattleOrientationIconV1589M3,
  #lrsMobileBattleOrientationGateV1589M3 .lrsMobileBattleOrientationIconV1589M3::before,
  #lrsMobileBattleOrientationGateV1589M3 .lrsMobileBattleOrientationIconV1589M3::after {
    animation: none !important;
    transition: none !important;
  }
}

/* =========================================================
   v1589M4 / lrsMobileLayoutPolishV1589M4
   One measured bottom reserve, separated footer rows,
   fully visible roster tabs, opaque party controls, and
   orientation-cover continuity.
========================================================= */

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M2 #homePanel .homeAppContent::after,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #homePanel .homeAppContent::after {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M2 #homePanel .homeAppContent,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #homePanel .homeAppContent {
  padding-bottom: var(--lrs-mobile-home-bottom-reserve-v1589m4, 144px) !important;
  scroll-padding-bottom: var(--lrs-mobile-home-bottom-reserve-v1589m4, 144px) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M2 #homePanel #lsGuildNoticeCard,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #homePanel #lsGuildNoticeCard {
  margin-bottom: 0 !important;
}

html.lrsMobilePreviewV1589M1 body #lrsMobileGlobalFooterV1589M1 > .lsGameFooterButton {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: 28px 17px !important;
  align-content: center !important;
  align-items: center !important;
  justify-items: center !important;
  row-gap: 4px !important;
  min-height: 55px !important;
  height: auto !important;
  padding: 3px 1px 4px !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1 body #lrsMobileGlobalFooterV1589M1 .lsGameFooterIcon {
  position: static !important;
  inset: auto !important;
  display: grid !important;
  place-items: center !important;
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  min-height: 28px !important;
  max-width: 28px !important;
  max-height: 28px !important;
  margin: 0 !important;
  padding: 0 !important;
  align-self: end !important;
  line-height: 1 !important;
  transform: none !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1 body #lrsMobileGlobalFooterV1589M1 .lsFooterMoonGateGlyph {
  position: static !important;
  inset: auto !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: clamp(19px, 5.2vw, 25px) !important;
  line-height: 1 !important;
  transform: none !important;
}

html.lrsMobilePreviewV1589M1 body #lrsMobileGlobalFooterV1589M1 .lsFooterMoonGateText {
  position: static !important;
  inset: auto !important;
  display: block !important;
  width: 100% !important;
  height: 17px !important;
  min-height: 17px !important;
  max-height: 17px !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  align-self: start !important;
  transform: none !important;
  line-height: 17px !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1 body #lrsMobileGlobalFooterV1589M1 .lsGameFooterLabel,
html.lrsMobilePreviewV1589M1 body #lrsMobileGlobalFooterV1589M1 .lsFooterMoonGateLabel {
  display: block !important;
  width: 100% !important;
  height: 17px !important;
  min-height: 17px !important;
  max-height: 17px !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: clamp(11px, 3vw, 13px) !important;
  font-weight: 900 !important;
  line-height: 17px !important;
  text-align: center !important;
  vertical-align: middle !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  transform: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .lsCoreHeader--roster {
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  grid-template-areas: "roster-title" "roster-tabs" !important;
  align-content: start !important;
  align-items: start !important;
  row-gap: 8px !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  z-index: 5 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .lsCoreHeader--roster .lsCoreHeaderRight {
  position: relative !important;
  grid-area: roster-tabs !important;
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 50px !important;
  max-height: none !important;
  margin: 0 !important;
  overflow: visible !important;
  z-index: 6 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .lsCoreHeader--roster .lsCoreHeaderTabs {
  position: relative !important;
  inset: auto !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  min-height: 50px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 4px !important;
  gap: 6px !important;
  overflow: visible !important;
  transform: none !important;
  z-index: 6 !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .lsCoreHeader--roster .lsCoreHeaderTab {
  flex: none !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 42px !important;
  min-height: 42px !important;
  max-height: 42px !important;
  margin: 0 !important;
  padding: 8px 6px !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .v1372RosterContent {
  position: relative !important;
  z-index: 1 !important;
  padding-top: 10px !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .guildSceneryBanner {
  position: relative !important;
  margin-top: 0 !important;
  transform: none !important;
  z-index: 1 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal #partySlotSelector > .slotChoice::before {
  content: none !important;
  display: none !important;
  width: 0 !important;
  min-width: 0 !important;
  max-width: 0 !important;
  background: none !important;
  box-shadow: none !important;
  opacity: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal .partyRosterActions {
  min-height: 66px !important;
  padding: 6px !important;
  gap: 8px !important;
  border: 1px solid rgba(255, 226, 142, .26) !important;
  border-radius: 18px !important;
  background-color: #0d0916 !important;
  background: linear-gradient(180deg, #21182f 0%, #0d0916 100%) !important;
  box-shadow: 0 12px 34px rgba(0, 0, 0, .42) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  opacity: 1 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal #savePartyBtn {
  opacity: 1 !important;
  color: #fff3d0 !important;
  background-color: #1b1527 !important;
  background: linear-gradient(180deg, #372b4b 0%, #1b1527 100%) !important;
  border: 1px solid rgba(255, 226, 142, .46) !important;
  box-shadow:
    inset 0 1px rgba(255, 255, 255, .08),
    0 8px 24px rgba(0, 0, 0, .32) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal #savePartyBtn:disabled {
  opacity: .64 !important;
  color: rgba(255, 243, 208, .72) !important;
  background-color: #17121f !important;
  background: linear-gradient(180deg, #2b2338 0%, #17121f 100%) !important;
}

#lrsMobileBattleOrientationGateV1589M3 {
  opacity: 1;
  transition: opacity 120ms ease !important;
}

#lrsMobileBattleOrientationGateV1589M3.is-continuing-v1589m4 {
  pointer-events: auto !important;
  opacity: 1 !important;
}

#lrsMobileBattleOrientationGateV1589M3.is-continuing-v1589m4 .lrsMobileBattleOrientationIconV1589M3 {
  animation: lrsMobileOrientationContinuingV1589M4 1.1s ease-in-out infinite !important;
}

#lrsMobileBattleOrientationGateV1589M3.is-continuing-v1589m4 #lrsCancelMobileBattleOrientationV1589M3 {
  opacity: .45 !important;
  cursor: progress !important;
  pointer-events: none !important;
}

#lrsMobileBattleOrientationGateV1589M3.is-releasing-v1589m4 {
  opacity: 0 !important;
  pointer-events: none !important;
}

@keyframes lrsMobileOrientationContinuingV1589M4 {
  0%, 100% { transform: rotate(-90deg) scale(.98); }
  50% { transform: rotate(-90deg) scale(1.04); }
}

@media (prefers-reduced-motion: reduce) {
  #lrsMobileBattleOrientationGateV1589M3,
  #lrsMobileBattleOrientationGateV1589M3.is-continuing-v1589m4 .lrsMobileBattleOrientationIconV1589M3 {
    animation: none !important;
    transition: none !important;
  }
}

/* =========================================================
   v1589M4 final specificity authority.
   These selectors intentionally match or exceed the late
   mobile/PC common-frame rules while remaining query-gated.
========================================================= */

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M2 #app.lrsMobileHomeActiveV1589M2 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M2:not(.v137IntroStartOnly) .homeAppContent::after,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .homeAppContent::after {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M2 #app.lrsMobileHomeActiveV1589M2 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M2:not(.v137IntroStartOnly) .homeAppContent,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .homeAppContent {
  padding-bottom: var(--lrs-mobile-home-bottom-reserve-v1589m4, 144px) !important;
  scroll-padding-bottom: var(--lrs-mobile-home-bottom-reserve-v1589m4, 144px) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M2 #app.lrsMobileHomeActiveV1589M2 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M2:not(.v137IntroStartOnly) #lsGuildNoticeCard,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) #lsGuildNoticeCard {
  margin-bottom: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2 #lrsMobileGlobalFooterV1589M1 > .lsGameFooterButton,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #lrsMobileGlobalFooterV1589M1 > .lsGameFooterButton {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: 28px 17px !important;
  align-content: center !important;
  align-items: center !important;
  justify-items: center !important;
  row-gap: 4px !important;
  min-height: 55px !important;
  height: auto !important;
  padding: 3px 1px 4px !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2 #lrsMobileGlobalFooterV1589M1 .lsGameFooterIcon,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #lrsMobileGlobalFooterV1589M1 .lsGameFooterIcon {
  position: static !important;
  inset: auto !important;
  display: grid !important;
  place-items: center !important;
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  min-height: 28px !important;
  max-width: 28px !important;
  max-height: 28px !important;
  margin: 0 !important;
  padding: 0 !important;
  align-self: end !important;
  line-height: 1 !important;
  transform: none !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2 #lrsMobileGlobalFooterV1589M1 .lsFooterMoonGateGlyph,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #lrsMobileGlobalFooterV1589M1 .lsFooterMoonGateGlyph {
  position: static !important;
  inset: auto !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
  transform: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2 #lrsMobileGlobalFooterV1589M1 .lsFooterMoonGateText,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #lrsMobileGlobalFooterV1589M1 .lsFooterMoonGateText {
  position: static !important;
  inset: auto !important;
  display: block !important;
  width: 100% !important;
  height: 17px !important;
  min-height: 17px !important;
  max-height: 17px !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  align-self: start !important;
  transform: none !important;
  line-height: 17px !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2 #lrsMobileGlobalFooterV1589M1 .lsGameFooterLabel,
html.lrsMobilePreviewV1589M1 body.lrsMobilePageActiveV1589M2 #lrsMobileGlobalFooterV1589M1 .lsFooterMoonGateLabel,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #lrsMobileGlobalFooterV1589M1 .lsGameFooterLabel,
html.lrsMobilePreviewV1589M1 body.lrsMobileHomeActiveV1589M1 #lrsMobileGlobalFooterV1589M1 .lsFooterMoonGateLabel {
  display: block !important;
  width: 100% !important;
  height: 17px !important;
  min-height: 17px !important;
  max-height: 17px !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: clamp(11px, 3vw, 13px) !important;
  font-weight: 900 !important;
  line-height: 17px !important;
  text-align: center !important;
  vertical-align: middle !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  transform: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.lrsMobileRosterActiveV1589M2 .lsCoreHeader--roster {
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  grid-template-areas: "roster-title" "roster-tabs" !important;
  align-content: start !important;
  align-items: start !important;
  row-gap: 8px !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  z-index: 5 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.lrsMobileRosterActiveV1589M2 .lsCoreHeader--roster .lsCoreHeaderRight {
  position: relative !important;
  grid-area: roster-tabs !important;
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 50px !important;
  max-height: none !important;
  margin: 0 !important;
  overflow: visible !important;
  z-index: 6 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.lrsMobileRosterActiveV1589M2 .lsCoreHeader--roster .lsCoreHeaderTabs {
  position: relative !important;
  inset: auto !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  min-height: 50px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 4px !important;
  gap: 6px !important;
  overflow: visible !important;
  transform: none !important;
  z-index: 6 !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.lrsMobileRosterActiveV1589M2 .lsCoreHeader--roster .lsCoreHeaderTab {
  flex: none !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 42px !important;
  min-height: 42px !important;
  max-height: 42px !important;
  margin: 0 !important;
  padding: 8px 6px !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.lrsMobileRosterActiveV1589M2 .v1372RosterContent {
  position: relative !important;
  z-index: 1 !important;
  padding-top: 10px !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.lrsMobileRosterActiveV1589M2 .guildSceneryBanner {
  position: relative !important;
  margin-top: 0 !important;
  transform: none !important;
  z-index: 1 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal.v1372PartyCommonFrame.v1372RealCommonFrame.lrsMobilePartyActiveV1589M2 #partySlotSelector > .slotChoice::before,
html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #partySlotSelector > .slotChoice::before {
  content: none !important;
  display: none !important;
  width: 0 !important;
  min-width: 0 !important;
  max-width: 0 !important;
  background: none !important;
  box-shadow: none !important;
  opacity: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal.v1372PartyCommonFrame.v1372RealCommonFrame.lrsMobilePartyActiveV1589M2 .partyRosterActions,
html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal .partyRosterActions {
  min-height: 66px !important;
  padding: 6px !important;
  gap: 8px !important;
  border: 1px solid rgba(255, 226, 142, .26) !important;
  border-radius: 18px !important;
  background-color: #0d0916 !important;
  background: linear-gradient(180deg, #21182f 0%, #0d0916 100%) !important;
  box-shadow: 0 12px 34px rgba(0, 0, 0, .42) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  opacity: 1 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal.v1372PartyCommonFrame.v1372RealCommonFrame.lrsMobilePartyActiveV1589M2 #savePartyBtn,
html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #savePartyBtn {
  opacity: 1 !important;
  color: #fff3d0 !important;
  background-color: #1b1527 !important;
  background: linear-gradient(180deg, #372b4b 0%, #1b1527 100%) !important;
  border: 1px solid rgba(255, 226, 142, .46) !important;
  box-shadow:
    inset 0 1px rgba(255, 255, 255, .08),
    0 8px 24px rgba(0, 0, 0, .32) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal #savePartyBtn:disabled {
  opacity: 1 !important;
  color: rgba(255, 243, 208, .72) !important;
  background-color: #17121f !important;
  background: linear-gradient(180deg, #2b2338 0%, #17121f 100%) !important;
  filter: brightness(.72) saturate(.84) !important;
}

/* v1589M4 final authority against late PC common-frame selectors. */
html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobileHomeActiveV1589M2 #app.lrsMobileHomeActiveV1589M2 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M2:not(.v137IntroStartOnly) .homeAppContent,
html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .homeAppContent {
  padding-bottom: var(--lrs-mobile-home-bottom-reserve-v1589m4, 144px) !important;
  scroll-padding-bottom: var(--lrs-mobile-home-bottom-reserve-v1589m4, 144px) !important;
}

html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobileHomeActiveV1589M2 #app.lrsMobileHomeActiveV1589M2 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M2:not(.v137IntroStartOnly) .homeAppContent::after,
html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) .homeAppContent::after {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobileHomeActiveV1589M2 #app.lrsMobileHomeActiveV1589M2 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M2:not(.v137IntroStartOnly) #lsGuildNoticeCard,
html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobileHomeActiveV1589M1 #app.lrsMobileHomeActiveV1589M1 #homePanel.panel.v1372SafeHomeFrame.lrsMobileHomeActiveV1589M1:not(.v137IntroStartOnly) #lsGuildNoticeCard {
  margin-bottom: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.modal.v1372RosterCommonFrame.v1372RealCommonFrame.lrsMobileRosterActiveV1589M2.show > .cardBox.v1372AppFrameBox.v1372AppFrameBox--roster {
  grid-template-rows: auto minmax(0, 1fr) !important;
}

html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.modal.v1372RosterCommonFrame.v1372RealCommonFrame.lrsMobileRosterActiveV1589M2.show .lsCoreHeader.lsCoreHeader--roster {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  grid-template-rows: auto auto !important;
  align-content: start !important;
  row-gap: 8px !important;
}

html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.modal.v1372RosterCommonFrame.v1372RealCommonFrame.lrsMobileRosterActiveV1589M2.show .lsCoreHeader.lsCoreHeader--roster .lsCoreHeaderRight {
  height: auto !important;
  min-height: 50px !important;
  max-height: none !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.modal.v1372RosterCommonFrame.v1372RealCommonFrame.lrsMobileRosterActiveV1589M2.show .lsCoreHeader.lsCoreHeader--roster .lsCoreHeaderTabs {
  position: relative !important;
  inset: auto !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)) !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  min-height: 50px !important;
  max-height: none !important;
  padding: 4px !important;
  gap: 6px !important;
  overflow: visible !important;
  transform: none !important;
}

html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.modal.v1372RosterCommonFrame.v1372RealCommonFrame.lrsMobileRosterActiveV1589M2.show .lsCoreHeader.lsCoreHeader--roster .lsCoreHeaderTab {
  flex: none !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 42px !important;
  min-height: 42px !important;
  max-height: 42px !important;
  margin: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.modal.v1372RosterCommonFrame.v1372RealCommonFrame.lrsMobileRosterActiveV1589M2.show .v1372AppContent.v1372RosterContent {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding-top: 10px !important;
  position: relative !important;
  z-index: 1 !important;
}

html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.modal.v1372RosterCommonFrame.v1372RealCommonFrame.lrsMobileRosterActiveV1589M2.show .v1372AppContent.v1372RosterContent .guildSceneryBanner {
  position: relative !important;
  margin-top: 0 !important;
  transform: none !important;
  z-index: 1 !important;
}

html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal.modal.v1372PartyCommonFrame.v1372RealCommonFrame.lrsMobilePartyActiveV1589M2.show #partySlotSelector.slotSelector > .slotChoice::before {
  content: none !important;
  display: none !important;
  width: 0 !important;
  min-width: 0 !important;
  max-width: 0 !important;
  background: none !important;
  box-shadow: none !important;
  opacity: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal.modal.v1372PartyCommonFrame.v1372RealCommonFrame.lrsMobilePartyActiveV1589M2.show .partyRosterActions {
  min-height: 66px !important;
  padding: 6px !important;
  gap: 8px !important;
  border: 1px solid rgba(255, 226, 142, .26) !important;
  border-radius: 18px !important;
  background-color: #0d0916 !important;
  background: linear-gradient(180deg, #21182f 0%, #0d0916 100%) !important;
  box-shadow: 0 12px 34px rgba(0, 0, 0, .42) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  opacity: 1 !important;
}

html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal.modal.v1372PartyCommonFrame.v1372RealCommonFrame.lrsMobilePartyActiveV1589M2.show #savePartyBtn.btn.ghost {
  opacity: 1 !important;
  color: #fff3d0 !important;
  background-color: #1b1527 !important;
  background: linear-gradient(180deg, #372b4b 0%, #1b1527 100%) !important;
  border: 1px solid rgba(255, 226, 142, .46) !important;
  box-shadow: inset 0 1px rgba(255, 255, 255, .08), 0 8px 24px rgba(0, 0, 0, .32) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.modal.v1372RosterCommonFrame.v1372RealCommonFrame.lrsMobileRosterActiveV1589M2.show,
html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.modal.v1372RosterCommonFrame.v1372RealCommonFrame.lrsMobileRosterActiveV1589M2.show > .cardBox.v1372AppFrameBox.v1372AppFrameBox--roster,
html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.modal.v1372RosterCommonFrame.v1372RealCommonFrame.lrsMobileRosterActiveV1589M2.show .lsCoreHeader.lsCoreHeader--roster,
html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.modal.v1372RosterCommonFrame.v1372RealCommonFrame.lrsMobileRosterActiveV1589M2.show .lsCoreHeaderRight,
html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.modal.v1372RosterCommonFrame.v1372RealCommonFrame.lrsMobileRosterActiveV1589M2.show .lsCoreHeaderTabs,
html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobileRosterActiveV1589M2 #app.lrsMobileRosterActiveV1589M2 #charListModal.modal.v1372RosterCommonFrame.v1372RealCommonFrame.lrsMobileRosterActiveV1589M2.show .lsCoreHeaderTab {
  pointer-events: auto !important;
}

html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal.modal.v1372PartyCommonFrame.v1372RealCommonFrame.lrsMobilePartyActiveV1589M2.show .partyRosterActions {
  background: linear-gradient(180deg, #21182f 0%, #0d0916 100%) !important;
  background-color: #0d0916 !important;
}

html.lrsMobilePreviewV1589M1 body.v1372CommonFrameReady.lrsMobilePartyActiveV1589M2 #app.lrsMobilePartyActiveV1589M2 #partyModal.modal.v1372PartyCommonFrame.v1372RealCommonFrame.lrsMobilePartyActiveV1589M2.show #savePartyBtn.btn.ghost {
  background: linear-gradient(180deg, #372b4b 0%, #1b1527 100%) !important;
  background-color: #1b1527 !important;
}

/* =========================================================
   v1589M5 / lrsMobileUtilitySectionShellV1589M5
   Growth and settings share one utility-section shell;
   guide/record use one utility subview shell; account inputs
   remain visualViewport- and keyboard-safe.
========================================================= */

html.lrsMobilePreviewV1589M1 body.lrsMobileUtilityActiveV1589M5 {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  overflow: hidden !important;
  overscroll-behavior: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileUtilityActiveV1589M5 #app.lrsMobileUtilityActiveV1589M5 {
  position: fixed !important;
  left: var(--lrs-mobile-vv-left-v1589m1, 0px) !important;
  top: var(--lrs-mobile-vv-top-v1589m1, 0px) !important;
  width: var(--lrs-mobile-vv-width-v1589m1, 100vw) !important;
  height: var(--lrs-mobile-vv-height-v1589m1, 100dvh) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  overflow: hidden !important;
  transform: none !important;
  scale: 1 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileUtilityActiveV1589M5 :is(
  #growthModal.lrsMobileGrowthActiveV1589M5,
  #settingsModal.lrsMobileSettingsActiveV1589M5,
  #guideModal.lrsMobileGuideActiveV1589M5,
  #recordModal.lrsMobileRecordActiveV1589M5
) {
  position: fixed !important;
  left: var(--lrs-mobile-vv-left-v1589m1, 0px) !important;
  top: var(--lrs-mobile-vv-top-v1589m1, 0px) !important;
  width: var(--lrs-mobile-vv-width-v1589m1, 100vw) !important;
  height: var(--lrs-mobile-vv-height-v1589m1, 100dvh) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  transform: none !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileUtilityActiveV1589M5 :is(
  #growthModal.lrsMobileGrowthActiveV1589M5 > [data-lrs-mobile-role="frame"],
  #settingsModal.lrsMobileSettingsActiveV1589M5 > [data-lrs-mobile-role="frame"],
  #guideModal.lrsMobileGuideActiveV1589M5 > [data-lrs-mobile-role="frame"],
  #recordModal.lrsMobileRecordActiveV1589M5 > [data-lrs-mobile-role="frame"]
) {
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  transform: none !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileUtilityActiveV1589M5 [data-lrs-mobile-role="header"] {
  min-width: 0 !important;
  padding-top: calc(10px + env(safe-area-inset-top, 0px)) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileUtilityActiveV1589M5 [data-lrs-mobile-role="body"] {
  min-width: 0 !important;
  min-height: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior-y: contain !important;
  -webkit-overflow-scrolling: touch !important;
  touch-action: pan-y !important;
  box-sizing: border-box !important;
}

/* Growth: header / lead / tabs stay fixed; one panel owns scroll. */
html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal > .lsGrowthCoreFrame {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto auto minmax(0, 1fr) !important;
  align-content: stretch !important;
  gap: 0 !important;
  padding: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .lsGrowthCoreHeader {
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 8px !important;
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: calc(10px + env(safe-area-inset-top, 0px)) 12px 8px !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .lsGrowthCoreHeaderTitle,
html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .lsGrowthCoreHeaderRight {
  min-width: 0 !important;
  width: 100% !important;
  margin: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .lsGrowthCoreHeader h1 {
  margin: 0 !important;
  font-size: var(--lrs-mobile-page-title-size-v1589m6) !important;
  line-height: var(--lrs-mobile-page-title-line-v1589m6) !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .lsGrowthCoreResourceBar {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .lsGrowthCoreResourceChip {
  min-width: 0 !important;
  min-height: 40px !important;
  height: auto !important;
  padding: 7px 9px !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .lsGrowthCoreLead {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  max-height: 3.2em !important;
  margin: 0 !important;
  padding: 6px 12px 8px !important;
  overflow: hidden !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .v062GrowthTabs {
  position: relative !important;
  inset: auto !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 5px !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 48px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 4px 10px 6px !important;
  overflow: visible !important;
  background: linear-gradient(180deg, rgba(29, 18, 42, .98), rgba(10, 7, 18, .98)) !important;
  z-index: 5 !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .v062GrowthTab {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 44px !important;
  height: 44px !important;
  max-height: 44px !important;
  margin: 0 !important;
  padding: 4px 6px !important;
  font-size: clamp(11px, 3vw, 13px) !important;
  line-height: 1.2 !important;
  touch-action: manipulation !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .v062GrowthPanel[hidden],
html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .v062GrowthPanel[aria-hidden="true"] {
  display: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .v062GrowthPanel[data-lrs-mobile-role="body"] {
  display: grid !important;
  align-content: start !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 10px 12px calc(var(--lrs-mobile-footer-height-v1589m1, 60px) + 18px) !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal > .lsGrowthCoreFrame > .lsGameFooter {
  display: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal #growthCharGrid.growthFocused {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 12px !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .growthList {
  display: grid !important;
  grid-auto-flow: column !important;
  grid-auto-columns: minmax(112px, min(38vw, 152px)) !important;
  grid-template-columns: none !important;
  gap: 8px !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  padding: 2px 2px 8px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x proximity !important;
  touch-action: pan-x !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .growthPick {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 68px !important;
  height: auto !important;
  scroll-snap-align: start !important;
  touch-action: manipulation !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .growthDetail {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .growthDetailHero {
  display: grid !important;
  grid-template-columns: 96px minmax(0, 1fr) !important;
  gap: 12px !important;
  align-items: start !important;
  min-width: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .growthDetailHero > img {
  width: 96px !important;
  height: 128px !important;
  max-width: 96px !important;
  max-height: 128px !important;
  object-fit: contain !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .statCompare {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 10px !important;
  min-width: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal :is(.upgradePanelGrid, #globalGrowthGrid, #researchGrid) {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal :is(#globalGrowthGrid, #researchGrid) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 10px !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal :is(.growthTile, .globalTile, .researchTile) {
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal.lsGrowthCoreModal.show :is(.growthBtn, .upgradePanelGrid button, #globalGrowthGrid button, #researchGrid button) {
  width: 100% !important;
  min-height: 48px !important;
  margin-top: auto !important;
  touch-action: manipulation !important;
}

@media (min-width: 480px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .statCompare {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 600px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal :is(#globalGrowthGrid, #researchGrid) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Settings: title and lead stay above the only scroll authority. */
html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal > [data-lrs-mobile-role="frame"] {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto minmax(0, 1fr) !important;
  align-content: stretch !important;
  gap: 0 !important;
  padding: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal [data-lrs-mobile-role="header"] {
  min-width: 0 !important;
  margin: 0 !important;
  padding: calc(12px + env(safe-area-inset-top, 0px)) 14px 4px !important;
  font-size: var(--lrs-mobile-page-title-size-v1589m6) !important;
  line-height: var(--lrs-mobile-page-title-line-v1589m6) !important;
  overflow-wrap: anywhere !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal [data-lrs-mobile-role="lead"] {
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 14px 10px !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal #lsSettingsContent {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-content: start !important;
  gap: 12px !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 4px 14px calc(var(--lrs-mobile-footer-height-v1589m1, 60px) + 20px) !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  scroll-padding-bottom: calc(var(--lrs-mobile-footer-height-v1589m1, 60px) + 20px) !important;
  -webkit-overflow-scrolling: touch !important;
  touch-action: pan-y !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal .lsSettingsRow {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 10px !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #app #settingsModal #settingsRecordBtn {
  display: grid !important;
  visibility: visible !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal .settingsAction {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 54px !important;
  height: auto !important;
  padding: 12px !important;
  text-align: left !important;
  touch-action: manipulation !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal .settingsAction :is(b, small) {
  min-width: 0 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal .v1375SoundRangePanel {
  display: grid !important;
  gap: 12px !important;
  width: 100% !important;
  min-width: 0 !important;
  padding: 12px !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal .v1375RangeRow {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 8px !important;
  min-width: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal input[type="range"] {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 32px !important;
  touch-action: pan-x !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal .lrsAccountChoiceGrid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 12px !important;
  width: 100% !important;
  min-width: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal :is(.lrsAccountChoice, .lrsAccountView, .lrsAccountForm, .lrsAccountDetails, .lrsAccountSummary) {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal :is(
  input:not([type="range"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
  textarea,
  select
) {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 48px !important;
  padding: 10px 12px !important;
  font-size: 16px !important;
  line-height: 1.35 !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal :is(input[type="checkbox"], input[type="radio"]) {
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  min-height: 22px !important;
  margin: 1px 0 0 !important;
  padding: 0 !important;
  flex: 0 0 22px !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal .lrsAccountActions {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 8px !important;
  width: 100% !important;
  min-width: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal .lrsAccountActions button,
html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal #settingsResetBtn {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 48px !important;
  touch-action: manipulation !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal .lrsAccountConsent {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 8px !important;
  min-width: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal .lrsAccountConsent > span {
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal :is(.lrsAccountDangerZone, #settingsResetBtn) {
  border-color: rgba(255, 105, 137, .44) !important;
  box-shadow: inset 0 0 0 1px rgba(255, 105, 137, .08) !important;
}

@media (min-width: 600px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal .lrsAccountChoiceGrid,
  html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal .lrsAccountActions {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Keyboard is fail-closed: hide the global footer and maximize settings body. */
html.lrsMobilePreviewV1589M1 body.lrsMobileKeyboardOpenV1589M5 #lrsMobileGlobalFooterV1589M1 {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5.lrsMobileKeyboardOpenV1589M5 #settingsModal #lsSettingsContent {
  padding-bottom: 20px !important;
  scroll-padding-bottom: 20px !important;
}

/* Guide / record subviews: header and close action stay fixed; only body scrolls. */
html.lrsMobilePreviewV1589M1 body:is(.lrsMobileGuideActiveV1589M5, .lrsMobileRecordActiveV1589M5) #lrsMobileGlobalFooterV1589M1 {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGuideActiveV1589M5 #guideModal > [data-lrs-mobile-role="frame"],
html.lrsMobilePreviewV1589M1 body.lrsMobileRecordActiveV1589M5 #recordModal > [data-lrs-mobile-role="frame"] {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto minmax(0, 1fr) auto !important;
  gap: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGuideActiveV1589M5 #guideModal h1,
html.lrsMobilePreviewV1589M1 body.lrsMobileRecordActiveV1589M5 #recordModal h1 {
  min-width: 0 !important;
  margin: 0 !important;
  padding: calc(12px + env(safe-area-inset-top, 0px)) 12px 8px !important;
  font-size: var(--lrs-mobile-page-title-size-v1589m6) !important;
  line-height: var(--lrs-mobile-page-title-line-v1589m6) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGuideActiveV1589M5 #guideModal [data-lrs-mobile-role="body"],
html.lrsMobilePreviewV1589M1 body.lrsMobileRecordActiveV1589M5 #recordModal .lrsMobileRecordBodyV1589M5 {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-content: start !important;
  gap: 12px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 10px 12px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  touch-action: pan-y !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGuideActiveV1589M5 #guideModal :is(.v1372GuideSteps, .v1372GuideTips, .section.twoCol) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 10px !important;
  min-width: 0 !important;
  margin: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRecordActiveV1589M5 #recordModal #recordSummary {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
  min-width: 0 !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRecordActiveV1589M5 #recordModal #recordFloorList {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGuideActiveV1589M5 #guideModal #closeGuideBtn,
html.lrsMobilePreviewV1589M1 body.lrsMobileRecordActiveV1589M5 #recordModal #closeRecordBtn {
  width: auto !important;
  min-width: min(240px, calc(100% - 24px)) !important;
  min-height: 50px !important;
  justify-self: center !important;
  margin: 8px 12px calc(8px + env(safe-area-inset-bottom, 0px)) !important;
  touch-action: manipulation !important;
}

@media (min-width: 600px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileGuideActiveV1589M5 #guideModal :is(.v1372GuideSteps, .v1372GuideTips, .section.twoCol) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  html.lrsMobilePreviewV1589M1 body.lrsMobileRecordActiveV1589M5 #recordModal #recordSummary {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* v1589M5: late legacy utility-footers must never replace the mobile subview action. */
html.lrsMobilePreviewV1589M1 body.lrsMobileGuideActiveV1589M5 #app #guideModal .lsGameFooter,
html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #app #settingsModal .lsGameFooter {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGuideActiveV1589M5 #app #guideModal.show #closeGuideBtn,
html.lrsMobilePreviewV1589M1 body.lrsMobileRecordActiveV1589M5 #app #recordModal.show #closeRecordBtn {
  position: relative !important;
  inset: auto !important;
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  align-items: center !important;
  justify-content: center !important;
  pointer-events: auto !important;
  z-index: 8 !important;
}

/* v1589M5 final utility-subview authority: local legacy footers and the
   legacy settings shortcut grid never compete with the mobile shell. */
html.lrsMobilePreviewV1589M1 body.lrsMobileRecordActiveV1589M5 #app #recordModal .lsGameFooter,
html.lrsMobilePreviewV1589M1 body.lrsMobileGuideActiveV1589M5 #app #guideModal .lsGameFooter,
html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #app #settingsModal .lsGameFooter {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #app #settingsModal .lsSettingsLegacyGrid {
  display: none !important;
}

/* v1589M5 final opaque utility-surface and hidden-subview safety. */
html.lrsMobilePreviewV1589M1 body.lrsMobileUtilityActiveV1589M5 :is(
  #growthModal.lrsMobileGrowthActiveV1589M5,
  #settingsModal.lrsMobileSettingsActiveV1589M5,
  #guideModal.lrsMobileGuideActiveV1589M5,
  #recordModal.lrsMobileRecordActiveV1589M5
) {
  background-color: #05040c !important;
  background: radial-gradient(circle at 50% 0%, #241833 0%, #0c0817 42%, #05040c 100%) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileUtilityActiveV1589M5 :is(
  #growthModal.lrsMobileGrowthActiveV1589M5 > [data-lrs-mobile-role="frame"],
  #settingsModal.lrsMobileSettingsActiveV1589M5 > [data-lrs-mobile-role="frame"],
  #guideModal.lrsMobileGuideActiveV1589M5 > [data-lrs-mobile-role="frame"],
  #recordModal.lrsMobileRecordActiveV1589M5 > [data-lrs-mobile-role="frame"]
) {
  background-color: #0a0712 !important;
  background: linear-gradient(180deg, #1b1128 0%, #0d0918 28%, #08060f 100%) !important;
}

html.lrsMobilePreviewV1589M1 body :is(#guideModal, #recordModal)[hidden] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* The record body wrapper is structural only on the legacy PC layout. */
html:not(.lrsMobilePreviewV1589M1) #recordModal .lrsMobileRecordBodyV1589M5 {
  display: contents;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal :is(
  .lrsAccountSection,
  .lrsAccountView,
  .lrsAccountForm,
  .lrsAccountActions,
  .lrsAccountDangerZone
) button {
  min-height: 48px !important;
  touch-action: manipulation !important;
}

/* =========================================================
   v1589M6 / lrsMobileVisualConsistencyV1589M6
   One mobile title authority, collision-free growth geometry,
   and one tower-record scroll owner. Normal PC routes stay inert.
========================================================= */

/* The mobile home keeps the horizontal accents but removes the obsolete
   vertical rail and its reserved indentation. */
html.lrsMobilePreviewV1589M1
body:is(.lrsMobileHomeActiveV1589M1, .lrsMobileHomeActiveV1589M2) #homePanel .homeFavoriteText::before {
  content: none !important;
  display: none !important;
  width: 0 !important;
  min-width: 0 !important;
  max-width: 0 !important;
  background: none !important;
  box-shadow: none !important;
  opacity: 0 !important;
}

html.lrsMobilePreviewV1589M1
body:is(.lrsMobileHomeActiveV1589M1, .lrsMobileHomeActiveV1589M2) #homePanel .homeFavoriteText {
  padding-left: 2px !important;
}

html.lrsMobilePreviewV1589M1
body:is(.lrsMobileHomeActiveV1589M1, .lrsMobileHomeActiveV1589M2) #homePanel .homeFavoriteText::after {
  left: 0 !important;
}

/* All already-supported mobile pages share exactly the same title type. */
html.lrsMobilePreviewV1589M1 body:is(.lrsMobileHomeActiveV1589M1, .lrsMobileHomeActiveV1589M2) #homePanel .lsHomeV3Title > h1,
html.lrsMobilePreviewV1589M1 body.lrsMobileRosterActiveV1589M2 #charListModal .lsCoreHeader--roster .lsCoreHeaderTitle > h1,
html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal .lsCoreHeader--party .lsCoreHeaderTitle > h1,
html.lrsMobilePreviewV1589M1 body.lrsMobilePartyActiveV1589M2 #partyModal .lsCoreHeader--party h1,
html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .lsGrowthCoreHeader h1,
html.lrsMobilePreviewV1589M1 body.lrsMobileSettingsActiveV1589M5 #settingsModal [data-lrs-mobile-role="header"],
html.lrsMobilePreviewV1589M1 body.lrsMobileFloorSelectActiveV1589M2 #floorSelectModal .nfFloorSelectHeading > h1,
html.lrsMobilePreviewV1589M1 body.lrsMobileGuideActiveV1589M5 #guideModal [data-lrs-mobile-role="header"],
html.lrsMobilePreviewV1589M1 body.lrsMobileRecordActiveV1589M5 #recordModal [data-lrs-mobile-role="header"] {
  font-family: var(--lrs-mobile-page-title-font-v1589m6) !important;
  font-size: var(--lrs-mobile-page-title-size-v1589m6) !important;
  font-weight: var(--lrs-mobile-page-title-weight-v1589m6) !important;
  line-height: var(--lrs-mobile-page-title-line-v1589m6) !important;
  letter-spacing: var(--lrs-mobile-page-title-spacing-v1589m6) !important;
  color: var(--lrs-mobile-page-title-color-v1589m6) !important;
  text-shadow: 0 0 16px rgba(255, 226, 122, .10) !important;
  font-style: normal !important;
  font-variant: normal !important;
  text-transform: none !important;
  word-break: keep-all !important;
  line-break: strict !important;
  overflow-wrap: normal !important;
  text-wrap: balance !important;
}

html.lrsMobilePreviewV1589M1
body:is(.lrsMobileHomeActiveV1589M1, .lrsMobileHomeActiveV1589M2) #homePanel .lsHomeV3Title > h1 {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: clip !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #growthModal .lsGrowthCoreHeader h1 {
  white-space: normal !important;
  max-width: 100% !important;
  overflow: hidden !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
}

/* Growth selector: the M5 inline column size is replaced by M6 at runtime,
   while CSS defines the final card and text geometry. */
html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal .growthList {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  align-self: start !important;
  grid-auto-flow: column !important;
  grid-auto-columns: clamp(210px, 60vw, 244px) !important;
  justify-content: start !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x proximity !important;
  touch-action: pan-x !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal
.growthList[data-lrs-mobile-single-growth-card-v1589m6="1"] {
  grid-auto-columns: min(270px, 100%) !important;
  justify-content: center !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal .growthPick {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 54px minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  grid-template-areas: "image copy" "image badge" !important;
  column-gap: 10px !important;
  row-gap: 4px !important;
  align-items: center !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  min-height: 78px !important;
  height: auto !important;
  max-height: none !important;
  padding: 10px !important;
  overflow: visible !important;
  scroll-snap-align: start !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal .growthPick > img {
  grid-area: image !important;
  position: static !important;
  inset: auto !important;
  display: block !important;
  width: 54px !important;
  height: 54px !important;
  min-width: 54px !important;
  min-height: 54px !important;
  max-width: 54px !important;
  max-height: 54px !important;
  margin: 0 !important;
  object-fit: contain !important;
  transform: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal .growthPick > span:not(.lvBadge) {
  grid-area: copy !important;
  position: static !important;
  inset: auto !important;
  min-width: 0 !important;
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  overflow: hidden !important;
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  transform: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal .growthPick b,
html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal .growthPick small {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal .growthPick .lvBadge {
  grid-area: badge !important;
  position: static !important;
  inset: auto !important;
  justify-self: start !important;
  align-self: start !important;
  width: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
  white-space: nowrap !important;
  writing-mode: horizontal-tb !important;
  transform: none !important;
}

/* The active growth panel is the sole vertical scroll authority. */
html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal .growthDetail {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  align-self: start !important;
  overflow: visible !important;
  contain: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal :is(
  .growthDetailHero,
  .statCompare,
  .unlockList,
  .upgradePanelGrid,
  .v053SkillPanel,
  .nfGrowthSkillPanelCompact,
  .nfGrowthStatTable
) {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  align-self: start !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal :is(
  #globalGrowthGrid,
  #researchGrid
) {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  grid-template-rows: none !important;
  grid-auto-rows: auto !important;
  align-content: start !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal #globalGrowthGrid {
  grid-template-columns: minmax(0, 1fr) !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal .guildCommonTile {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto auto auto !important;
  align-content: start !important;
  gap: 10px !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal .guildCommonTile :is(
  .guildCommonHead,
  .guildCommonDesc,
  .guildCommonEffects,
  .guildCommonEffectBox,
  .guildCommonFooter,
  .guildCommonCost
) {
  position: relative !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal .guildCommonEffects {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 8px !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal .guildCommonFooter {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: stretch !important;
  gap: 8px !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal .guildCommonCost {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 40px !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal :is(.guildCommonCostLabel, .guildCommonCostValue) {
  max-width: 100% !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: normal !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal .guildCommonButton {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 48px !important;
  height: auto !important;
  margin: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
}

@media (min-width: 480px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal .guildCommonEffects {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 600px) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal #globalGrowthGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Tower records: only the outer body scrolls. */
html.lrsMobilePreviewV1589M1 body.lrsMobileRecordActiveV1589M5 #app #recordModal .lrsMobileRecordBodyV1589M5 {
  overflow-x: hidden !important;
  overflow-y: auto !important;
  scroll-padding-top: 8px !important;
  scroll-padding-bottom: 18px !important;
  padding-bottom: 18px !important;
  touch-action: pan-y !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRecordActiveV1589M5 #app #recordModal #recordFloorList {
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  padding-right: 0 !important;
  touch-action: auto !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileRecordActiveV1589M5 #app #recordModal .floorRecordRow {
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 72px !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}


/* M6 selector-copy finishing rules: keep the complete rarity/role line and
   level badge visible inside the collision-free selector card. */
html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal .growthPick small {
  min-width: 0 !important;
  max-width: 100% !important;
  line-height: 1.2 !important;
  letter-spacing: -.02em !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileGrowthActiveV1589M5 #app #growthModal .growthPick .lvBadge {
  overflow: visible !important;
  text-overflow: clip !important;
}

/* M6: the guild panel scrolls its natural content instead of compressing the
   four upgrade cards into the remaining viewport row on short landscapes. */
html.lrsMobilePreviewV1589M1
body.lrsMobileGrowthActiveV1589M5 #app #growthModal #v062GuildGrowthPanel {
  grid-template-rows: auto auto auto !important;
  align-content: start !important;
}

/* M6: intrinsic guild-card tracks must remain content-sized even when the
   active panel is a short, independently scrolling landscape viewport. */
html.lrsMobilePreviewV1589M1
body.lrsMobileGrowthActiveV1589M5 #app #growthModal #globalGrowthGrid {
  grid-auto-rows: max-content !important;
  align-items: start !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileGrowthActiveV1589M5 #app #growthModal .guildCommonTile {
  height: max-content !important;
  min-height: max-content !important;
  align-self: start !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileGrowthActiveV1589M5 #app #growthModal .guildCommonTile :is(
  .guildCommonHead,
  .guildCommonDesc,
  .guildCommonEffects,
  .guildCommonEffectBox,
  .guildCommonFooter,
  .guildCommonCost
) {
  min-height: max-content !important;
}

/* M6: expose the full intrinsic guild-grid height to the active panel so its
   footer reserve can scroll the final upgrade button above the global nav. */
html.lrsMobilePreviewV1589M1
body.lrsMobileGrowthActiveV1589M5 #app #growthModal #globalGrowthGrid {
  height: max-content !important;
  min-height: max-content !important;
  align-self: start !important;
}

/* M6: reserve one real scrollable footer-height inside the guild grid so the
   final upgrade control can be brought above the fixed mobile navigation. */
html.lrsMobilePreviewV1589M1
body.lrsMobileGrowthActiveV1589M5 #app #growthModal #globalGrowthGrid {
  padding-bottom:
    calc(
      var(--lrs-mobile-footer-height-v1589m1, 60px)
      + 18px
    ) !important;
  box-sizing: border-box !important;
}

/* M6: a real final grid item extends the panel's scrollHeight. Padding alone
   can be excluded by legacy max-content grid sizing in the PC stylesheet. */
html.lrsMobilePreviewV1589M1
body.lrsMobileGrowthActiveV1589M5 #app #growthModal #globalGrowthGrid::after {
  content: "" !important;
  display: block !important;
  grid-column: 1 / -1 !important;
  width: 100% !important;
  height:
    calc(
      var(--lrs-mobile-footer-height-v1589m1, 60px)
      + 18px
    ) !important;
  min-height:
    calc(
      var(--lrs-mobile-footer-height-v1589m1, 60px)
      + 18px
    ) !important;
  pointer-events: none !important;
}

/* M6: the outer records body owns scrolling, so every direct content row,
   including the floor list, must keep its natural max-content height. */
html.lrsMobilePreviewV1589M1
body.lrsMobileRecordActiveV1589M5 #app #recordModal .lrsMobileRecordBodyV1589M5 {
  grid-template-rows: none !important;
  grid-auto-rows: max-content !important;
  align-content: start !important;
}


/* =========================================================
   v1589M7 / lrsMobileSummonCeremonyShellV1589M7
   Mobile summon ceremony shell.  This block changes only
   presentation; summon odds, costs, results, and timing remain
   owned by the existing game runtime.
========================================================= */

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonActiveV1589M7 #app #summonPage.show {
  position: fixed !important;
  left: var(--lrs-mobile-vv-left-v1589m1, 0px) !important;
  top: var(--lrs-mobile-vv-top-v1589m1, 0px) !important;
  width: var(--lrs-mobile-vv-width-v1589m1, 100vw) !important;
  height: var(--lrs-mobile-vv-height-v1589m1, 100dvh) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  transform: none !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonActiveV1589M7 #app #summonPage > .lsSummonCoreFrame {
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 0 var(--lrs-mobile-summon-footer-reserve-v1589m7, 68px) !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonActiveV1589M7
#summonPage
.lsSummonCoreFooter {
  display: none !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonActiveV1589M7
#summonPage
.lsSummonCoreHeader {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 8px !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 58px !important;
  height: auto !important;
  padding:
    calc(10px + env(safe-area-inset-top, 0px))
    12px
    8px !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonActiveV1589M7
#summonPage
.lsSummonCoreHeaderCenter {
  display: none !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonActiveV1589M7
#summonPage
.lsSummonCoreHeaderTitle {
  min-width: 0 !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonActiveV1589M7
#summonPage
.lsSummonCoreHeader h1,
html.lrsMobilePreviewV1589M1
body.lrsMobileSummonRatesActiveV1589M7
#summonRatesTitle,
html.lrsMobilePreviewV1589M1
body.lrsMobileSummonDetailActiveV1589M7
#cardTitle {
  font-family: var(--lrs-mobile-page-title-font-v1589m6, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif) !important;
  font-size: var(--lrs-mobile-page-title-size-v1589m6, clamp(22px, 5.6vw, 28px)) !important;
  font-weight: var(--lrs-mobile-page-title-weight-v1589m6, 900) !important;
  line-height: var(--lrs-mobile-page-title-line-v1589m6, 1.12) !important;
  letter-spacing: var(--lrs-mobile-page-title-spacing-v1589m6, .01em) !important;
  color: var(--lrs-mobile-page-title-color-v1589m6, #fff0bd) !important;
  font-style: normal !important;
  text-transform: none !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonActiveV1589M7
#summonPage
.lsSummonCoreStone {
  min-width: 96px !important;
  min-height: 42px !important;
  padding: 7px 10px !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonActiveV1589M7
#summonPage
.lsSummonCoreContent {
  min-width: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1.lrsMobilePortraitV1589M1
body.lrsMobileSummonActiveV1589M7
#summonPage
.lsSummonCoreContent {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: minmax(0, 1fr) auto !important;
  gap: 8px !important;
  padding: 8px 10px 10px !important;
}

html.lrsMobilePreviewV1589M1.lrsMobileLandscapeV1589M1
body.lrsMobileSummonActiveV1589M7
#summonPage
.lsSummonCoreContent {
  display: grid !important;
  grid-template-columns: minmax(0, 1.45fr) minmax(250px, .55fr) !important;
  grid-template-rows: minmax(0, 1fr) !important;
  gap: 10px !important;
  padding: 7px 10px 8px !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonActiveV1589M7
#summonPage
#altarStage {
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1.lrsMobileLandscapeV1589M1
body.lrsMobileSummonActiveV1589M7
#summonPage
#altarStage {
  grid-column: 1 !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonActiveV1589M7
#summonPage
.nfSummonControls {
  position: relative !important;
  inset: auto !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-content: center !important;
  gap: 8px !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 10px !important;
  background: rgba(10, 5, 20, .98) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  overflow-y: auto !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1.lrsMobileLandscapeV1589M1
body.lrsMobileSummonActiveV1589M7
#summonPage
.nfSummonControls {
  grid-column: 2 !important;
  align-self: stretch !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonActiveV1589M7
#summonPage
.nfSummonPrimaryActions,
html.lrsMobilePreviewV1589M1
body.lrsMobileSummonActiveV1589M7
#summonPage
.nfSummonSubActions {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
  min-width: 0 !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonActiveV1589M7
#summonPage
#summonOneBtn,
html.lrsMobilePreviewV1589M1
body.lrsMobileSummonActiveV1589M7
#summonPage
#summonTenBtn {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 56px !important;
  padding: 8px !important;
  touch-action: manipulation !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonActiveV1589M7
#summonPage
#summonRatesBtn,
html.lrsMobilePreviewV1589M1
body.lrsMobileSummonActiveV1589M7
#summonPage
.nfSummonSkipToggle {
  min-width: 0 !important;
  min-height: 46px !important;
  touch-action: manipulation !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonActiveV1589M7
#summonResultArea {
  min-width: 0 !important;
  min-height: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior-y: contain !important;
  -webkit-overflow-scrolling: touch !important;
  touch-action: pan-y !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonResultOneV1589M7
#summonPage
.nfSummonSingleResult {
  display: grid !important;
  grid-template-columns: minmax(132px, 42%) minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 12px !important;
  width: min(100%, 620px) !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: auto !important;
  padding: 10px !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonResultOneV1589M7
#summonPage
.nfSummonSingleCard {
  width: 100% !important;
  max-width: 220px !important;
  aspect-ratio: 2 / 3 !important;
  justify-self: center !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonResultOneV1589M7
#summonPage
.nfSummonSingleCard img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonResultTenV1589M7
#summonPage
.nfSummonTenResult {
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonResultTenV1589M7
#summonPage
.nfSummonResultSummary {
  position: sticky !important;
  top: 0 !important;
  z-index: 4 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto auto !important;
  gap: 6px !important;
  background: rgba(8, 4, 17, .97) !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonResultTenV1589M7
#summonPage
.nfSummonTenGrid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
  min-width: 0 !important;
}

@media (min-width: 480px) {
  html.lrsMobilePreviewV1589M1
  body.lrsMobileSummonResultTenV1589M7
  #summonPage
  .nfSummonTenGrid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 768px), (max-height: 500px) and (orientation: landscape) {
  html.lrsMobilePreviewV1589M1
  body.lrsMobileSummonResultTenV1589M7
  #summonPage
  .nfSummonTenGrid {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  }
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonResultTenV1589M7
#summonPage
.nfSummonFlipCard {
  width: 100% !important;
  min-width: 0 !important;
  aspect-ratio: 2 / 3 !important;
  touch-action: manipulation !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonRatesActiveV1589M7
#summonRatesModal.show {
  position: fixed !important;
  left: var(--lrs-mobile-vv-left-v1589m1, 0px) !important;
  top: var(--lrs-mobile-vv-top-v1589m1, 0px) !important;
  width: var(--lrs-mobile-vv-width-v1589m1, 100vw) !important;
  height: var(--lrs-mobile-vv-height-v1589m1, 100dvh) !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  z-index: 2147482200 !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonRatesActiveV1589M7
#summonRatesModal
.nfSummonRatesDialog {
  position: relative !important;
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonRatesActiveV1589M7
#summonRatesModal
.nfSummonRatesHead {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 48px !important;
  align-items: center !important;
  min-height: 64px !important;
  padding:
    calc(10px + env(safe-area-inset-top, 0px))
    12px
    8px !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonRatesActiveV1589M7
#summonRatesCloseBtn {
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonRatesActiveV1589M7
#summonRatesPanel {
  min-width: 0 !important;
  min-height: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  padding:
    10px
    12px
    calc(14px + env(safe-area-inset-bottom, 0px)) !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileStarterSummonActiveV1589M7
#summonPage
.lsSummonCoreFooter,
html.lrsMobilePreviewV1589M1
body.lrsMobileStarterSummonActiveV1589M7
#summonPage
#summonTenBtn,
html.lrsMobilePreviewV1589M1
body.lrsMobileStarterSummonActiveV1589M7
#summonPage
#summonRatesBtn,
html.lrsMobilePreviewV1589M1
body.lrsMobileStarterSummonActiveV1589M7
#summonPage
.nfSummonSkipToggle {
  display: none !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileStarterSummonActiveV1589M7 #app #summonPage #summonOneBtn {
  width: 100% !important;
  min-height: 56px !important;
  touch-action: manipulation !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonDetailActiveV1589M7
#cardModal[data-nf-summon-origin="1"].show {
  position: fixed !important;
  left: var(--lrs-mobile-vv-left-v1589m1, 0px) !important;
  top: var(--lrs-mobile-vv-top-v1589m1, 0px) !important;
  width: var(--lrs-mobile-vv-width-v1589m1, 100vw) !important;
  height: var(--lrs-mobile-vv-height-v1589m1, 100dvh) !important;
  overflow: hidden !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonDetailActiveV1589M7
#cardModal[data-nf-summon-origin="1"] #closeCardBtn {
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  touch-action: manipulation !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonDetailActiveV1589M7
#cardModal[data-nf-summon-origin="1"]
.lsDetailFrame {
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  border-radius: 0 !important;
}

html.lrsMobilePreviewV1589M1.lrsMobilePortraitV1589M1
body.lrsMobileSummonDetailActiveV1589M7
#cardModal[data-nf-summon-origin="1"]
.lsDetailContent {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-auto-rows: max-content !important;
  min-width: 0 !important;
  min-height: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

html.lrsMobilePreviewV1589M1
body:is(
  .lrsMobileSummonRequestingV1589M7,
  .lrsMobileSummonAnimatingV1589M7,
  .lrsMobileSummonRatesActiveV1589M7,
  .lrsMobileSummonDetailActiveV1589M7,
  .lrsMobileStarterSummonActiveV1589M7,
  .lrsMobileSummonStoryPendingV1589M7
)
#lrsMobileGlobalFooterV1589M1 {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

@media (max-width: 359px) {
  html.lrsMobilePreviewV1589M1
  body.lrsMobileSummonActiveV1589M7
  #summonPage
  .nfSummonPrimaryActions,
  html.lrsMobilePreviewV1589M1
  body.lrsMobileSummonResultOneV1589M7
  #summonPage
  .nfSummonSingleResult {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}


/* =========================================================
   v1589M8 / lrsMobileSummonStabilityV1589M8
   Opaque rates authority, fail-closed blocking overlays, and
   Preview-only summon fixture presentation.
========================================================= */

html.lrsMobilePreviewV1589M1 body.lrsMobileSummonUnderlaySuspendedV1589M8 #app,
html.lrsMobilePreviewV1589M1 body.lrsMobileSummonUnderlaySuspendedV1589M8 #summonPage,
html.lrsMobilePreviewV1589M1 body.lrsMobileSummonUnderlaySuspendedV1589M8 #summonPage .lsSummonCoreFrame,
html.lrsMobilePreviewV1589M1 body.lrsMobileSummonUnderlaySuspendedV1589M8 #summonPage .lsSummonCoreContent {
  transform: none !important;
  filter: none !important;
  perspective: none !important;
  contain: none !important;
  overflow: visible !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonUnderlaySuspendedV1589M8
#summonPage
:is(
  .lsSummonCoreHeader,
  #altarStage,
  #summonResultArea,
  #summonResultActions,
  .nfSummonControls,
  .lsSummonCoreFooter
) {
  visibility: hidden !important;
  pointer-events: none !important;
  user-select: none !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonRatesActiveV1589M7
#summonRatesModal.show {
  position: fixed !important;
  left: var(--lrs-mobile-vv-left-v1589m1, 0px) !important;
  top: var(--lrs-mobile-vv-top-v1589m1, 0px) !important;
  width: var(--lrs-mobile-vv-width-v1589m1, 100vw) !important;
  height: var(--lrs-mobile-vv-height-v1589m1, 100dvh) !important;
  display: grid !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  isolation: isolate !important;
  background: #080510 !important;
  z-index: 2147482500 !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonRatesActiveV1589M7
#summonRatesModal
.nfSummonRatesBackdrop {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
  background: #080510 !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  z-index: 0 !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonRatesActiveV1589M7
#summonRatesModal
.nfSummonRatesDialog {
  position: relative !important;
  z-index: 1 !important;
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #080510 !important;
  overflow: hidden !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonRatesActiveV1589M7
#summonRatesModal
.nfSummonRatesHead {
  position: relative !important;
  z-index: 3 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 48px !important;
  align-items: center !important;
  gap: 10px !important;
  min-width: 0 !important;
  min-height: 64px !important;
  padding:
    calc(10px + env(safe-area-inset-top, 0px))
    calc(10px + env(safe-area-inset-right, 0px))
    8px
    calc(12px + env(safe-area-inset-left, 0px)) !important;
  background: #0d0917 !important;
  border-bottom: 1px solid rgba(255, 226, 122, .14) !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonRatesActiveV1589M7
#summonRatesTitle {
  position: relative !important;
  z-index: 3 !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonRatesActiveV1589M7
#summonRatesCloseBtn {
  position: relative !important;
  inset: auto !important;
  z-index: 4 !important;
  display: grid !important;
  place-items: center !important;
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  max-width: 48px !important;
  max-height: 48px !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  touch-action: manipulation !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonRatesActiveV1589M7
#summonRatesPanel {
  min-width: 0 !important;
  min-height: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior-y: contain !important;
  -webkit-overflow-scrolling: touch !important;
  touch-action: pan-y !important;
  padding:
    12px
    12px
    calc(18px + env(safe-area-inset-bottom, 0px)) !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileBlockingOverlayV1589M8 #lrsMobileGlobalFooterV1589M1,
html.lrsMobilePreviewV1589M1 body.lrsMobileBlockingOverlayV1589M8 #homePanel .homeCtaStack {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileSummonActiveV1589M7 #app #summonPage.lrsMobileSummonFixtureV1589M8::after {
  content: "TEST PREVIEW" !important;
  position: fixed !important;
  z-index: 2147482400 !important;
  top: calc(var(--lrs-mobile-vv-top-v1589m1, 0px) + env(safe-area-inset-top, 0px) + 6px) !important;
  left: calc(var(--lrs-mobile-vv-left-v1589m1, 0px) + env(safe-area-inset-left, 0px) + 8px) !important;
  display: block !important;
  padding: 4px 8px !important;
  border: 1px solid rgba(255, 109, 197, .72) !important;
  border-radius: 999px !important;
  color: #fff !important;
  background: #7b1c60 !important;
  font: 900 10px/1.2 ui-sans-serif, system-ui, sans-serif !important;
  letter-spacing: .08em !important;
  pointer-events: none !important;
}


/* v1589M8 high-specificity authority over the legacy PC summon modal. */
html.lrsMobilePreviewV1589M1
body.lrsMobileSummonRatesActiveV1589M7 #app
#summonPage.lsSummonCorePage:not(.v137StarterSummon)
#summonRatesModal.nfSummonRatesModal.show {
  position: fixed !important;
  inset: auto !important;
  left: var(--lrs-mobile-vv-left-v1589m1, 0px) !important;
  top: var(--lrs-mobile-vv-top-v1589m1, 0px) !important;
  width: var(--lrs-mobile-vv-width-v1589m1, 100vw) !important;
  height: var(--lrs-mobile-vv-height-v1589m1, 100dvh) !important;
  display: grid !important;
  place-items: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #080510 !important;
  overflow: hidden !important;
  isolation: isolate !important;
  z-index: 2147482500 !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonRatesActiveV1589M7 #app
#summonPage.lsSummonCorePage:not(.v137StarterSummon)
#summonRatesModal
.nfSummonRatesBackdrop {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
  background: #080510 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  z-index: 0 !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonRatesActiveV1589M7 #app
#summonPage.lsSummonCorePage:not(.v137StarterSummon)
#summonRatesModal
.nfSummonRatesDialog {
  position: relative !important;
  z-index: 1 !important;
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  gap: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #080510 !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonRatesActiveV1589M7 #app
#summonPage.lsSummonCorePage:not(.v137StarterSummon)
#summonRatesModal
.nfSummonRatesHead {
  position: relative !important;
  z-index: 3 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 48px !important;
  align-items: center !important;
  gap: 10px !important;
  min-width: 0 !important;
  min-height: 64px !important;
  margin: 0 !important;
  padding:
    calc(10px + env(safe-area-inset-top, 0px))
    calc(10px + env(safe-area-inset-right, 0px))
    8px
    calc(12px + env(safe-area-inset-left, 0px)) !important;
  background: #0d0917 !important;
  border-bottom: 1px solid rgba(255, 226, 122, .14) !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonRatesActiveV1589M7 #app
#summonPage.lsSummonCorePage:not(.v137StarterSummon)
#summonRatesModal
#summonRatesCloseBtn {
  position: relative !important;
  inset: auto !important;
  z-index: 4 !important;
  display: grid !important;
  place-items: center !important;
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  max-width: 48px !important;
  max-height: 48px !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  touch-action: manipulation !important;
}

html.lrsMobilePreviewV1589M1
body.lrsMobileSummonRatesActiveV1589M7 #app
#summonPage.lsSummonCorePage:not(.v137StarterSummon)
#summonRatesModal
#summonRatesPanel {
  min-width: 0 !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior-y: contain !important;
  -webkit-overflow-scrolling: touch !important;
  touch-action: pan-y !important;
  padding:
    12px
    12px
    calc(18px + env(safe-area-inset-bottom, 0px)) !important;
  box-sizing: border-box !important;
}

/* v1589M9 / lrsMobileMenuNavStabilityV1589M9
 * Atomic menu transitions retain the source until the target has two painted frames.
 */
html.lrsMobilePreviewV1589M1 body.lrsMobileMenuTransitionPendingV1589M9 {
  overflow: hidden !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileMenuTransitionPendingV1589M9
.lrsMobileMenuTransitionSourceV1589M9,
html.lrsMobilePreviewV1589M1 body.lrsMobileMenuTransitionPendingV1589M9
.lrsMobileMenuTransitionSourceV1589M9[hidden] {
  position: fixed !important;
  left: var(--lrs-mobile-vv-left-v1589m1, 0px) !important;
  top: var(--lrs-mobile-vv-top-v1589m1, 0px) !important;
  width: var(--lrs-mobile-vv-width-v1589m1, 100vw) !important;
  height: var(--lrs-mobile-vv-height-v1589m1, 100dvh) !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: none !important;
  overflow: hidden !important;
  isolation: isolate !important;
  z-index: 2147480800 !important;
  transform: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileMenuTransitionPendingV1589M9
.lrsMobileMenuTransitionTargetV1589M9 {
  position: fixed !important;
  left: var(--lrs-mobile-vv-left-v1589m1, 0px) !important;
  top: var(--lrs-mobile-vv-top-v1589m1, 0px) !important;
  width: var(--lrs-mobile-vv-width-v1589m1, 100vw) !important;
  height: var(--lrs-mobile-vv-height-v1589m1, 100dvh) !important;
  z-index: 2147480900 !important;
}

html.lrsMobilePreviewV1589M1 body
.lrsMobileMenuStaleTargetV1589M9:not(.lrsMobileMenuTransitionTargetV1589M9) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileMenuGateSuppressedV1589M9
#lrsScreenLoadingGate,
html.lrsMobilePreviewV1589M1 body.lrsMobileMenuTransitionPendingV1589M9
#lrsScreenLoadingGate {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileMenuFooterLeaseV1589M9:not(.battleMode):not(.lrsMobileRunTransitionV1589M2):not(.lrsMobileSummonUnderlaySuspendedV1589M8)
#lrsMobileGlobalFooterV1589M1,
html.lrsMobilePreviewV1589M1 body.lrsMobileMenuFooterLeaseV1589M9:not(.battleMode):not(.lrsMobileRunTransitionV1589M2):not(.lrsMobileSummonUnderlaySuspendedV1589M8)
#lrsMobileGlobalFooterV1589M1[hidden] {
  display: grid !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: none !important;
}

html.lrsMobilePreviewV1589M1 body.lrsMobileMenuTransitionPendingV1589M9
#lrsMobileGlobalFooterV1589M1 {
  z-index: 2147481200 !important;
}

@media (prefers-reduced-motion: reduce) {
  html.lrsMobilePreviewV1589M1 body.lrsMobileMenuTransitionPendingV1589M9
  .lrsMobileMenuTransitionSourceV1589M9,
  html.lrsMobilePreviewV1589M1 body.lrsMobileMenuTransitionPendingV1589M9
  .lrsMobileMenuTransitionTargetV1589M9 {
    transition: none !important;
    animation: none !important;
  }
}
