/* Mobile UI v2.26.0
   One final geometry owner for world windows on phones. Feature styles keep
   their colours and content; this file owns only viewport fit, stacking,
   scrolling and touch targets. */

@media (max-width:760px), (pointer:coarse) and (max-height:560px) {
  html,
  body { overscroll-behavior:none; }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] {
    --m26-edge: max(6px, env(safe-area-inset-left));
    --m26-edge-right: max(6px, env(safe-area-inset-right));
    --m26-top: calc(var(--pk-mobile-vv-offset-top, 0px) + max(6px, env(safe-area-inset-top)));
    --m26-dock-height: 68px;
    --m26-dock-bottom: max(6px, env(safe-area-inset-bottom));
    --m26-dock-space: calc(var(--m26-dock-height) + var(--m26-dock-bottom) + 8px);
    --m26-panel-radius: 18px;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] :is(button, input, select, textarea) {
    touch-action:manipulation;
  }

  /* Exactly five stable navigation cells. No raised centre button and no
     transforms: opening the menu cannot move a button into the popover. */
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .desktop-dock,
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .desktop-utility-rail { display:none!important; }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock {
    position:absolute!important;
    z-index:212!important;
    top:auto!important;
    right:var(--m26-edge-right)!important;
    bottom:var(--m26-dock-bottom)!important;
    left:var(--m26-edge)!important;
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:3px!important;
    width:auto!important;
    height:var(--m26-dock-height)!important;
    min-height:var(--m26-dock-height)!important;
    max-height:var(--m26-dock-height)!important;
    padding:5px!important;
    overflow:visible!important;
    border:1px solid color-mix(in srgb,var(--theme-border) 88%,white)!important;
    border-radius:19px!important;
    background:color-mix(in srgb,var(--theme-card) 95%,transparent)!important;
    box-shadow:0 12px 34px rgba(4,31,47,.24),inset 0 1px rgba(255,255,255,.86)!important;
    transform:none!important;
    backdrop-filter:blur(14px) saturate(1.08)!important;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock > button,
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock > .mobile-dock-primary {
    position:relative!important;
    display:grid!important;
    grid-template-rows:31px 13px!important;
    place-items:center!important;
    align-content:center!important;
    justify-self:stretch!important;
    gap:2px!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    height:56px!important;
    min-height:56px!important;
    max-height:56px!important;
    margin:0!important;
    padding:3px 1px!important;
    border:0!important;
    border-radius:13px!important;
    background:transparent!important;
    color:#587481!important;
    box-shadow:none!important;
    transform:none!important;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock > button:is(.is-active,.is-menu-open),
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock > .mobile-dock-primary {
    background:color-mix(in srgb,var(--theme-accent) 10%,transparent)!important;
    color:var(--theme-accent)!important;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock > button::before,
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock > button::after,
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock > button > span::before,
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock > button > span::after { display:none!important;content:none!important; }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock > button > span {
    display:grid!important;
    grid-row:1!important;
    place-items:center!important;
    width:31px!important;
    height:31px!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
    transform:none!important;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock .pokemon-nav-art,
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock .pokemon-nav-raster,
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock .mobile-nav-asset-v69 {
    display:block!important;
    width:30px!important;
    height:30px!important;
    object-fit:contain!important;
    filter:none!important;
    transform:none!important;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock > button > b {
    grid-row:2!important;
    display:block!important;
    max-width:100%!important;
    overflow:hidden!important;
    color:currentColor!important;
    font-size:10px!important;
    font-weight:800!important;
    line-height:1.1!important;
    letter-spacing:0!important;
    text-overflow:ellipsis!important;
    text-transform:none!important;
    white-space:nowrap!important;
  }

  /* One secondary menu. It always ends above the dock and scrolls internally. */
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #desktopMoreMenu.world-rail {
    position:absolute!important;
    z-index:211!important;
    top:auto!important;
    right:var(--m26-edge-right)!important;
    bottom:var(--m26-dock-space)!important;
    left:var(--m26-edge)!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    align-content:start!important;
    gap:6px!important;
    width:auto!important;
    max-width:none!important;
    max-height:calc(var(--pk-mobile-vv-height, 100dvh) - var(--m26-dock-space) - max(12px, env(safe-area-inset-top)))!important;
    padding:9px!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    border:1px solid color-mix(in srgb,var(--theme-border) 90%,white)!important;
    border-radius:18px!important;
    background:color-mix(in srgb,var(--theme-card) 97%,transparent)!important;
    box-shadow:0 18px 48px rgba(3,27,43,.28),inset 0 1px rgba(255,255,255,.82)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translateY(10px)!important;
    transition:opacity .14s ease,transform .16s ease,visibility 0s linear 0s!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #desktopMoreMenu.world-rail.is-desktop-menu-open {
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
    transition-delay:0s!important;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #desktopMoreMenu > button {
    display:grid!important;
    grid-template-columns:34px minmax(0,1fr)!important;
    align-items:center!important;
    justify-items:start!important;
    gap:7px!important;
    min-width:0!important;
    min-height:52px!important;
    margin:0!important;
    padding:6px 7px!important;
    border:1px solid color-mix(in srgb,var(--theme-border) 78%,transparent)!important;
    border-radius:13px!important;
    background:color-mix(in srgb,var(--theme-surface-soft) 80%,transparent)!important;
    color:var(--theme-text)!important;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #desktopMoreMenu > button.desktop-menu-only { display:none!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #desktopMoreMenu > button.mobile-menu-only { display:grid!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #desktopMoreMenu > button > span { display:grid!important;place-items:center!important;width:34px!important;height:34px!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #desktopMoreMenu > button > span :is(.ui-icon,.pokemon-nav-art,.art-icon,img) { width:27px!important;height:27px!important;object-fit:contain!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #desktopMoreMenu > button > b { max-width:100%!important;overflow:hidden!important;font-size:10px!important;text-align:left!important;text-overflow:ellipsis!important;white-space:nowrap!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #desktopMoreMenu .world-notification-menu-icon { color:#e65a62!important;font-size:22px!important;font-weight:900!important;line-height:1!important; }

  /* Shared sheet geometry for every world-side panel. Region map intentionally
     remains a dedicated full-screen surface below. */
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel.side-panel:not(.is-regions-panel),
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #editorPanel.editor-panel {
    position:absolute!important;
    z-index:204!important;
    top:var(--m26-top)!important;
    right:var(--m26-edge-right)!important;
    bottom:var(--m26-dock-space)!important;
    left:var(--m26-edge)!important;
    box-sizing:border-box!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:10px!important;
    overflow:hidden!important;
    border-radius:var(--m26-panel-radius)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:scale(.985)!important;
    transform-origin:center bottom!important;
    transition:opacity .14s ease,transform .16s ease,visibility 0s linear 0s!important;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel.side-panel:not(.is-regions-panel).is-open,
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #editorPanel.editor-panel.is-open {
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
    transition-delay:0s!important;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #editorPanel.editor-panel.is-open {
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch;
  }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #editorPanel.editor-panel {
    background:#f5fbfe!important;
    backdrop-filter:none!important;
  }
  html[data-game-theme="dark"] body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #editorPanel.editor-panel {
    background:#102d3b!important;
  }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #editorPanel .editor-head {
    position:sticky!important;
    z-index:4!important;
    top:-7px!important;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel > .panel-window-grip,
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #editorPanel [data-panel-drag] { touch-action:auto!important; }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel > .panel-close {
    position:absolute!important;
    z-index:90!important;
    top:8px!important;
    right:8px!important;
    display:grid!important;
    place-items:center!important;
    width:44px!important;
    min-width:44px!important;
    height:44px!important;
    min-height:44px!important;
    margin:0!important;
    padding:0!important;
    border-radius:13px!important;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel > .panel-close:empty::before {
    content:"×"!important;
    display:block!important;
    color:var(--theme-text)!important;
    font-size:28px!important;
    font-weight:500!important;
    line-height:1!important;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanelContent {
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    padding:1px 1px 8px!important;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain!important;
    scrollbar-width:thin;
    -webkit-overflow-scrolling:touch;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanelContent > * { min-width:0!important;max-width:100%!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanelContent :is(img,svg,canvas,video) { max-width:100%; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanelContent :is(input,select,textarea) { max-width:100%;font-size:max(16px,1em); }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanelContent :is(.panel-title,.panel-section-head-v2737,.inventory-head-v49,.pokedex-library-head) { padding-right:52px!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .profile-v80 > .profile-v80-edit { display:none!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .profile-v80-status-icon { display:block!important;width:15px!important;height:15px!important;max-width:15px!important;max-height:15px!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .genetics-lab-hero { padding-right:62px!important; }

  /* Nested feature views keep one scroll owner instead of making the whole
     document and the inner catalogue fight for the same touch gesture. */
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel.is-inventory-panel #sidePanelContent,
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel.is-team-panel #sidePanelContent,
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel.is-center-panel #sidePanelContent,
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel.is-pokedex-panel #sidePanelContent { overflow:hidden!important; }

  /* Detail dossiers are long, linear documents on a phone. Older feature
     styles turned their root scroller off and made the lower half impossible
     to reach. Keep catalogue grids internally scrollable, but let both detail
     views use the shared sheet scroller. */
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel:is(.is-pokedex-detail,.is-pokemon-detail-panel) #sidePanelContent {
    overflow-x:hidden!important;
    overflow-y:auto!important;
  }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel.is-pokemon-detail-panel :is(.pokemon-instance-v46,.pokemon-instance-v47) {
    height:auto!important;
    min-height:100%!important;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] :is(.team-grid-v47,.team-grid-v48,.team-grid-v56,.center-grid-v46,.pokedex-grid-v41,.inventory-items-v49,.inventory-items-v52) {
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] :is(.binding-row,.audio-setting-row) { grid-template-columns:minmax(0,1fr)!important;align-items:stretch!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .binding-row > div { display:grid!important;grid-template-columns:1fr 1fr!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .binding-row button { min-width:0!important;min-height:44px!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] :is(.progression-summary-v2761,.faction-grid-v2761) { grid-template-columns:1fr!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] :is(.oak-program-card,.oak-program-top,.oak-rewards,.oak-reward-chip) { min-width:0!important;max-width:100%!important;box-sizing:border-box!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .oak-reward-chip { white-space:normal!important;overflow-wrap:anywhere!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .oak-reward-chip :is(.oak-reward-icon,img,svg) { flex:0 0 24px!important;width:24px!important;height:24px!important; }

  /* Region atlas is the only world panel that needs every pixel. The dock is
     hidden while it is open, so its own close button is the single exit. */
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel.side-panel.is-regions-panel,
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel.side-panel.is-regions-panel.is-open {
    position:fixed!important;
    z-index:230!important;
    inset:0!important;
    width:100vw!important;
    min-width:0!important;
    max-width:none!important;
    height:var(--pk-mobile-vv-height,100dvh)!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    border:0!important;
    border-radius:0!important;
    transform:none!important;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel.side-panel.is-regions-panel {
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel.side-panel.is-regions-panel.is-open {
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"]:has(#sidePanel.is-open.is-regions-panel) :is(.mobile-dock,#desktopMoreMenu) {
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel.is-regions-panel #sidePanelContent { padding:0!important;overflow:auto!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .region-map-v2204 { min-height:100%;overflow:auto!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .region-map-v2204-header { position:sticky!important;top:0!important;z-index:30!important; }

  /* Messenger uses the same safe rectangle as game sheets. */
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel.chat-panel.chat-messenger {
    position:absolute!important;
    z-index:205!important;
    top:var(--m26-top)!important;
    right:var(--m26-edge-right)!important;
    bottom:var(--m26-dock-space)!important;
    left:var(--m26-edge)!important;
    display:grid!important;
    grid-template-rows:56px 48px minmax(0,1fr)!important;
    box-sizing:border-box!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    border-radius:var(--m26-panel-radius)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:scale(.985)!important;
    transition:opacity .14s ease,transform .16s ease,visibility 0s linear 0s!important;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel.chat-panel.chat-messenger.is-open {
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
    transition-delay:0s!important;
  }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel > .chat-head { min-height:56px!important;padding:6px 7px 6px 11px!important;touch-action:auto!important;cursor:default!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel .chat-head-actions > button { width:44px!important;height:44px!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel > .chat-tabs { min-width:0!important;padding:4px 5px!important;overflow-x:auto!important;scrollbar-width:none; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel > .chat-tabs::-webkit-scrollbar { display:none; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel > .chat-tabs > button { min-width:0!important;min-height:40px!important;padding-inline:3px!important;font-size:10px!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel > .chat-messenger-layout { grid-template-columns:minmax(0,1fr)!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel .chat-online-sidebar { display:none!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel > .chat-resize { display:none!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel > .chat-messenger-layout,
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel .chat-conversation,
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel .chat-log-wrap { min-width:0!important;min-height:0!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel .chat-log { overflow-x:hidden!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel .chat-author-button {
    display:inline!important;
    width:auto!important;
    min-width:0!important;
    max-width:min(48vw,220px)!important;
    height:auto!important;
    min-height:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:var(--chat75-ink)!important;
    font-size:12px!important;
    line-height:1.2!important;
  }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel #chatForm { grid-template-columns:44px minmax(0,1fr) 44px!important;min-height:58px!important;margin:0 6px 6px!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel #chatForm textarea { min-width:0!important;font-size:16px!important;line-height:1.35!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel #chatForm textarea::placeholder { font-size:14px!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel :is(.chat-composer-tool,.chat-send-button) { width:44px!important;height:44px!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel > .chat-emoji-panel { top:108px!important;right:6px!important;bottom:64px!important;left:6px!important;width:auto!important;height:auto!important;min-height:0!important;max-height:none!important; }

  /* Other game dialogs follow the same safe-area and internal-scroll rules. */
  .notification-center.is-open {
    z-index:224!important;
    top:max(6px,env(safe-area-inset-top))!important;
    right:max(6px,env(safe-area-inset-right))!important;
    bottom:calc(82px + env(safe-area-inset-bottom))!important;
    left:max(6px,env(safe-area-inset-left))!important;
    width:auto!important;
    max-width:none!important;
    height:auto!important;
    max-height:none!important;
    border-radius:18px!important;
  }
  .notification-center-list { min-height:0!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch; }

  .marketplace-modal { z-index:320!important;padding:0!important; }
  .marketplace-shell { width:100%!important;height:var(--pk-mobile-vv-height,100dvh)!important;max-height:none!important;border:0!important;border-radius:0!important; }
  .marketplace-head { min-height:64px!important;padding:10px max(10px,env(safe-area-inset-right)) 10px max(12px,env(safe-area-inset-left))!important; }
  .marketplace-head h2 { font-size:20px!important; }
  .marketplace-head > button { width:44px!important;height:44px!important; }
  .marketplace-tabs { overflow-x:auto!important;overscroll-behavior-x:contain;scrollbar-width:none; }
  .marketplace-tabs::-webkit-scrollbar { display:none; }
  .marketplace-tabs button { min-width:96px!important;min-height:44px!important; }
  .marketplace-body { min-width:0!important;min-height:0!important;overflow:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch; }
  .marketplace-toolbar { grid-template-columns:1fr!important; }

  :is(.trade-dialog,#inventoryItemDialog,.world-channel-confirm,.professor-transfer-dialog,.social-invite,.pvp-invite) { z-index:300!important;box-sizing:border-box!important; }
  .trade-dialog { align-items:end!important;padding:max(6px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) calc(82px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))!important; }
  .trade-dialog__content { width:100%!important;max-height:calc(var(--pk-mobile-vv-height,100dvh) - 94px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;overflow:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch; }
  #inventoryItemDialog { align-items:end!important;padding:6px max(6px,env(safe-area-inset-right)) calc(82px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))!important; }
  #inventoryItemDialog .inventory-item-dialog-v2738__content { width:100%!important;max-height:calc(var(--pk-mobile-vv-height,100dvh) - 94px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important; }
  #inventoryItemDialog .inventory-item-dialog-v2741 { max-height:inherit!important;overflow:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch; }
  .world-channel-confirm { align-items:end!important;padding:6px max(6px,env(safe-area-inset-right)) calc(82px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))!important; }
  .world-channel-confirm__card { width:100%!important;max-height:calc(var(--pk-mobile-vv-height,100dvh) - 94px)!important;overflow:auto!important;border-radius:20px!important; }
  .professor-transfer-dialog { align-items:end!important;padding:6px max(6px,env(safe-area-inset-right)) calc(82px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))!important; }
  .professor-transfer-card-shell { width:100%!important;max-height:calc(var(--pk-mobile-vv-height,100dvh) - 94px)!important;border-radius:20px 20px 16px 16px!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch; }
  :is(.social-invite,.pvp-invite) { align-items:end!important;padding:6px max(6px,env(safe-area-inset-right)) calc(82px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))!important; }
  :is(.social-invite__card,.pvp-invite__card) { width:100%!important;max-height:calc(var(--pk-mobile-vv-height,100dvh) - 94px)!important;overflow:auto!important;border-radius:20px!important; }

  .controls-tutorial { right:max(6px,env(safe-area-inset-right))!important;bottom:calc(82px + env(safe-area-inset-bottom))!important;left:max(6px,env(safe-area-inset-left))!important;width:auto!important;transform:translateY(12px)!important; }
  .controls-tutorial.is-open { transform:none!important; }
  .controls-tutorial-card { max-height:calc(var(--pk-mobile-vv-height,100dvh) - 100px)!important;overflow:auto!important; }

  .dialogue-layer { box-sizing:border-box!important;height:var(--pk-mobile-vv-height,100dvh)!important;align-items:end!important;padding:max(6px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) calc(82px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))!important; }
  .dialogue-layer .dialogue-card { width:100%!important;height:auto!important;min-height:0!important;max-height:calc(var(--pk-mobile-vv-height,100dvh) - 94px)!important;overflow:auto!important;overscroll-behavior:contain!important; }
  html[data-ui-revision="pokemon-next"] .dialogue-layer .dialogue-card::before {
    z-index:3!important;
    top:0!important;
    right:auto!important;
    bottom:0!important;
    left:0!important;
    width:6px!important;
    border-radius:inherit 0 0 inherit!important;
    background:linear-gradient(180deg,var(--pk2-red) 0 33%,var(--pk2-yellow) 33% 66%,var(--pk2-blue) 66% 100%)!important;
    opacity:1!important;
  }
  .starter-dialog { padding:max(6px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))!important; }
  .starter-dialog .starter-experience { width:100%!important;height:calc(var(--pk-mobile-vv-height,100dvh) - max(12px,env(safe-area-inset-top) + env(safe-area-inset-bottom)))!important;max-height:none!important;border-radius:18px!important; }
  .starter-dialog .starter-flow-content { min-width:0!important;min-height:0!important;overflow:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch; }

  .lab-games.is-open { z-index:330!important;box-sizing:border-box!important;padding:max(6px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))!important; }
  .lab-games.is-open .lab-games__shell { width:100%!important;height:calc(var(--pk-mobile-vv-height,100dvh) - max(12px,env(safe-area-inset-top) + env(safe-area-inset-bottom)))!important;max-width:none!important;max-height:none!important;border-radius:18px!important; }
  .lab-games.is-open :is(.lab-games__body,.lab-games__arena,.lab-games__board) { min-width:0!important;min-height:0!important; }

  .quest-offer-v57 {
    z-index:305!important;
    box-sizing:border-box!important;
    align-items:end!important;
    padding:max(6px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) calc(82px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))!important;
  }
  .quest-offer-v57 > section { width:100%!important;max-height:calc(var(--pk-mobile-vv-height,100dvh) - 94px)!important;overflow:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch; }

  .player-action-wheel {
    left:50%!important;
    top:auto!important;
    bottom:var(--m26-dock-space)!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:7px!important;
    width:min(340px,calc(100vw - 12px))!important;
    height:auto!important;
    max-height:calc(var(--pk-mobile-vv-height,100dvh) - var(--m26-dock-space) - var(--m26-top) - 6px)!important;
    padding:62px 8px 8px!important;
    overflow:auto!important;
    transform:translate(-50%,0) scale(.98)!important;
  }
  .player-action-wheel.is-open { transform:translate(-50%,0) scale(1)!important; }
  .player-action-wheel__center { left:8px!important;right:8px!important;top:8px!important;width:auto!important;height:46px!important;transform:none!important;display:grid!important;grid-template-columns:36px minmax(0,1fr)!important;grid-template-rows:1fr 1fr!important;justify-items:start!important;align-content:center!important; }
  .player-action-wheel__avatar { grid-row:1/3!important;width:34px!important;height:34px!important;margin:0 7px 0 0!important; }
  .player-action-wheel__item { position:static!important;width:auto!important;height:48px!important;display:flex!important;justify-content:center!important;gap:6px!important; }

  .reward-celebration { top:var(--m26-top)!important;width:calc(100vw - 12px)!important;max-height:calc(var(--pk-mobile-vv-height,100dvh) - var(--m26-top) - 6px)!important;overflow:hidden!important; }

  /* The software keyboard owns the bottom of the visual viewport. Hide the
     dock and lift chat above the real keyboard inset instead of resizing twice. */
  html[data-mobile-keyboard="open"] body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock { opacity:0!important;visibility:hidden!important;pointer-events:none!important; }
  html[data-mobile-keyboard="open"] body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel.chat-panel.chat-messenger {
    bottom:calc(var(--pk-mobile-keyboard-inset,0px) + 6px)!important;
    border-radius:15px!important;
  }
}

@media (max-width:380px) {
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] { --m26-dock-height:64px;--m26-panel-radius:16px; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock { gap:1px!important;padding-inline:3px!important;border-radius:17px!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock > button,
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock > .mobile-dock-primary { height:53px!important;min-height:53px!important;max-height:53px!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock > button > b { font-size:9px!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #desktopMoreMenu.world-rail { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] :is(.team-grid-v47,.team-grid-v48,.team-grid-v56,.center-grid-v46) { grid-template-columns:1fr!important; }
}

@media (pointer:coarse) and (max-height:560px) and (orientation:landscape) {
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] { --m26-dock-height:60px;--m26-dock-space:calc(var(--m26-dock-height) + var(--m26-dock-bottom) + 5px);--m26-panel-radius:15px; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock { left:50%!important;right:auto!important;width:min(520px,calc(100vw - 12px))!important;transform:translateX(-50%)!important;border-radius:16px!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock > button,
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock > .mobile-dock-primary { height:50px!important;min-height:50px!important;max-height:50px!important;grid-template-rows:27px 12px!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock .pokemon-nav-art,
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] .mobile-dock .pokemon-nav-raster { width:26px!important;height:26px!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #desktopMoreMenu.world-rail { left:50%!important;right:auto!important;width:min(620px,calc(100vw - 12px))!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;transform:translate(-50%,10px)!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #desktopMoreMenu.world-rail.is-desktop-menu-open { transform:translateX(-50%)!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel.side-panel:not(.is-regions-panel),
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #editorPanel.editor-panel { left:max(4px,env(safe-area-inset-left))!important;right:max(4px,env(safe-area-inset-right))!important;padding:7px!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel.chat-panel.chat-messenger { grid-template-rows:50px 44px minmax(0,1fr)!important;left:max(4px,env(safe-area-inset-left))!important;right:max(4px,env(safe-area-inset-right))!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel > .chat-head { min-height:50px!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #chatPanel > .chat-emoji-panel { top:96px!important; }

  .dialogue-layer .dialogue-card { grid-template-columns:84px minmax(0,1fr)!important;grid-template-rows:minmax(110px,auto) auto!important; }
  .dialogue-layer .dialogue-portrait { width:84px!important;height:122px!important; }
  .dialogue-layer .dialogue-copy { padding:8px 0!important; }
  .dialogue-layer .dialogue-copy > p { min-height:44px!important;margin:8px 0 5px!important;font-size:12px!important; }
  .dialogue-layer .dialogue-actions { padding-top:6px!important; }

  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel.is-regions-panel .region-map-v2204-layout { display:block!important;overflow:visible!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel.is-regions-panel .region-map-v2204-stage { display:block!important;padding:7px 0!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel.is-regions-panel .region-map-v2204-viewport { width:100%!important;height:calc(var(--pk-mobile-vv-height,100dvh) - 122px)!important;min-height:220px!important;border-radius:0!important; }
  body:not(.is-battling) .game-screen[data-mobile-ui="v2260"] #sidePanel.is-regions-panel .region-map-v2204-sidebar { padding:8px!important;overflow:visible!important; }
}

@media (prefers-reduced-motion:reduce) {
  .game-screen[data-mobile-ui="v2260"] :is(#sidePanel,#chatPanel,#editorPanel,#desktopMoreMenu,.mobile-dock),
  :is(.notification-center,.controls-tutorial) { transition:none!important;animation:none!important; }
}
