/* Pokémon social surfaces v1
   Inventory, quest journal, trainer profiles and social/menu chrome only.
   This file is deliberately loaded after the legacy layers so each window has
   one final responsive owner instead of accumulating another component tree. */

:is(
  .inventory-v52,
  .quest-journal-polish-v68,
  .profile-v80,
  .chat-messenger,
  .world-rail
) {
  font-family:"Onest PokePark","Segoe UI Variable","Segoe UI",system-ui,sans-serif;
}

:is(
  .inventory-v52 button,
  .quest-journal-polish-v68 button,
  .profile-v80 button,
  .chat-messenger button,
  .world-rail button
) {
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  user-select:none;
}

/* Semantic raster art must behave like an icon, never like an unbounded photo. */
:is(
  .inventory-v52,
  .quest-journal-polish-v68,
  .profile-v80,
  .chat-messenger,
  .world-rail
) :is(
  .pokemon-semantic-raster,
  .pokemon-ui-raster,
  .profile-v80-icon,
  .quest-type-graphic-v61,
  .quest-reward-icon-v61,
  .pokemon-social-raster,
  .inventory-category-icon,
  .chat-emoji-category-raster
) {
  display:block;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:center;
  background:transparent;
}

/* Pokémon dossier art stays legible without inheriting legacy SVG stretch rules. */
.dex-innate-card > img,
.pokemon-training-v46 .pokemon-section-title > strong img {
  object-fit:contain!important;
}

.pokemon-genome-visual-v47 {
  display:grid!important;
  place-items:center;
  -webkit-mask-image:none!important;
  mask-image:none!important;
}

.pokemon-genome-visual-v47::after {
  display:none!important;
}

.pokemon-genome-visual-v47 > img {
  width:58px!important;
  max-width:58px!important;
  height:58px!important;
  object-fit:contain!important;
  animation:pokemon-specimen-float 2.8s ease-in-out infinite!important;
}

@keyframes pokemon-specimen-float {
  0%,100% { transform:translateY(1px) rotate(-2deg); }
  50% { transform:translateY(-3px) rotate(2deg); }
}

/* --------------------------------------------------------------------------
   Inventory: bounded Pokémon item art + a single catalogue scroller.
   -------------------------------------------------------------------------- */

.inventory-v52 {
  --pp-inventory-red:#e44b51;
  --pp-inventory-blue:#248fc9;
  --pp-inventory-ink:#173d55;
  --pp-inventory-muted:#6d8798;
  --pp-inventory-line:rgba(50,118,151,.18);
  --pp-inventory-paper:rgba(250,253,255,.96);
  --pp-inventory-card:#fff;
  color:var(--theme-text,var(--pp-inventory-ink));
}

html[data-game-theme="dark"] .inventory-v52 {
  --pp-inventory-ink:#edf8fc;
  --pp-inventory-muted:#a8c0cc;
  --pp-inventory-line:rgba(139,200,225,.22);
  --pp-inventory-paper:rgba(15,49,64,.97);
  --pp-inventory-card:#194255;
}

.game-screen .side-panel.is-inventory-panel {
  border-color:color-mix(in srgb,var(--pp-inventory-blue) 28%,var(--theme-border))!important;
  background:
    radial-gradient(circle at 8% 0%,color-mix(in srgb,var(--pp-inventory-red) 7%,transparent),transparent 28%),
    linear-gradient(155deg,var(--pp-inventory-paper),color-mix(in srgb,var(--pp-inventory-paper) 94%,var(--theme-surface-soft)))!important;
}

.inventory-v52 .inventory-catalog-v52,
.inventory-v52 .inventory-categories-v52,
.inventory-v52 .inventory-search-input-v55,
.inventory-v52 .inventory-capacity-v53 {
  border-color:var(--pp-inventory-line)!important;
}

.inventory-v52 .inventory-item-v52 {
  position:relative;
  overflow:hidden!important;
  isolation:isolate;
  border-color:var(--pp-inventory-line)!important;
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--pp-inventory-card) 97%,var(--r,#8ca4b1) 3%),var(--pp-inventory-card))!important;
  box-shadow:0 7px 20px rgba(19,67,91,.07),inset 0 1px rgba(255,255,255,.7)!important;
}

.inventory-v52 .inventory-item-v52::after {
  content:"";
  position:absolute;
  z-index:0;
  inset:auto -36px -46px auto;
  width:104px;
  height:104px;
  border:14px solid color-mix(in srgb,var(--r,#8ca4b1) 7%,transparent);
  border-radius:50%;
  pointer-events:none;
}

.inventory-v52 .inventory-item-art-v49 {
  position:relative!important;
  z-index:1;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
  isolation:isolate!important;
  contain:paint!important;
  clip-path:inset(0 round 14px);
}

.inventory-v52 .inventory-item-art-v49 .item-graphic-shell {
  position:relative!important;
  z-index:1!important;
  display:grid!important;
  place-items:center!important;
  box-sizing:border-box!important;
  width:min(108px,78%)!important;
  height:min(108px,78%)!important;
  max-width:108px!important;
  max-height:108px!important;
  margin:auto!important;
  padding:4px!important;
  overflow:hidden!important;
  contain:paint!important;
  border-radius:18px!important;
  background:radial-gradient(circle at 50% 44%,rgba(255,255,255,.92),rgba(231,245,252,.48) 55%,transparent 72%)!important;
}

.inventory-v52 .inventory-item-art-v49 .item-graphic-shell > :is(img,svg,.item-ball-raster) {
  position:relative!important;
  z-index:1!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  transform:none!important;
}

.inventory-v52 .inventory-item-type-v49,
.inventory-v52 .inventory-item-rarity-v49,
.inventory-v52 .inventory-item-weight-v52,
.inventory-v52 .inventory-item-art-v49 > em,
.inventory-v52 .inventory-item-favorite-v49,
.inventory-v52 .inventory-item-copy-v49 {
  z-index:4!important;
}

.inventory-v52 .inventory-item-type-v49 .inventory-category-icon,
.inventory-v52 .inventory-categories-v52 .inventory-category-icon,
.inventory-v52 .inventory-categories-v52 .pokemon-semantic-raster {
  width:24px!important;
  height:24px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}

.inventory-v52 .inventory-content-v49 {
  min-width:0!important;
  min-height:0!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}

.inventory-v52 .inventory-categories-v52 > button {
  min-width:0!important;
}

/* --------------------------------------------------------------------------
   Trainer profile: one outer scroller, contained companion art and gifts.
   -------------------------------------------------------------------------- */

.game-screen .side-panel.is-social-profile #sidePanelContent {
  height:100%!important;
  min-height:0!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}

.profile-v80,
.profile-v80 .social-profile-tab-body {
  min-width:0;
  overflow:visible!important;
}

.profile-v80 .profile-v80-icon {
  object-fit:contain!important;
  border-radius:0!important;
  box-shadow:none!important;
}

.profile-v80 .profile-v80-stage {
  overflow:hidden!important;
  contain:paint;
}

.profile-v80 .profile-v80-stage-empty {
  overflow:hidden!important;
  contain:paint;
}

.profile-v80 .profile-v80-stage-empty-ball {
  display:block!important;
  width:52px!important;
  height:52px!important;
  max-width:52px!important;
  max-height:52px!important;
  object-fit:contain!important;
  object-position:center!important;
}

.profile-v80 .profile-v80-gift,
.profile-v80 .profile-v80-gift-choice {
  overflow:hidden!important;
  contain:paint;
}

.profile-v80 .profile-v80-gift > img,
.profile-v80 .profile-v80-gift-choice > img {
  box-sizing:border-box!important;
  padding:5px!important;
  object-fit:contain!important;
  object-position:center!important;
  background:radial-gradient(circle at 50% 45%,#fff 0 34%,#edf8ff 72%,#dceef8 100%)!important;
}

.profile-v80 .profile-v80-tabs {
  min-width:0;
}

.profile-v80 .profile-v80-tabs button {
  min-width:0!important;
  min-height:44px!important;
}

.profile-v80 .profile-v80-tabs button > .profile-v80-icon {
  width:26px!important;
  height:26px!important;
}

/* --------------------------------------------------------------------------
   Quest journal: compact, readable tabs with no clipped branch names.
   -------------------------------------------------------------------------- */

.quest-journal-polish-v68 {
  min-width:0;
  min-height:0;
  overflow:hidden!important;
}

.quest-journal-polish-v68 .quest-type-graphic-v61 {
  border-radius:0!important;
  box-shadow:none!important;
}

.quest-journal-polish-v68 .quest-type-tabs-v57,
.quest-journal-polish-v68 .quest-status-tabs-v57,
.quest-journal-polish-v68 .quest-mode-tabs-v57 {
  min-width:0;
}

.quest-journal-polish-v68 .quest-type-tabs-v57 button > span,
.quest-journal-polish-v68 .quest-type-tabs-v57 button > span > b {
  min-width:0;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:normal!important;
}

.quest-journal-polish-v68 .quest-branch-list-v59,
.quest-journal-polish-v68 .quest-detail-scroll-v67 {
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}

.quest-journal-polish-v68 .quest-abandon-confirm-v57 > section > img {
  width:62px!important;
  height:62px!important;
  object-fit:contain!important;
}

/* --------------------------------------------------------------------------
   Chat/social/menu semantic art. Neutral controls intentionally remain SVG.
   -------------------------------------------------------------------------- */

.chat-messenger .chat-emoji-category-raster {
  width:22px!important;
  height:22px!important;
  border-radius:0!important;
}

.chat-messenger .chat-popover {
  max-width:min(360px,calc(100vw - 20px));
  overflow-x:hidden;
}

.world-rail button > span > :is(img,.pokemon-ui-raster),
.world-rail button > span.pokemon-ui-raster {
  display:block!important;
  width:30px!important;
  height:30px!important;
  max-width:30px!important;
  max-height:30px!important;
  object-fit:contain!important;
  border-radius:0!important;
}

.mobile-dock .pokemon-nav-raster {
  display:block!important;
  width:30px!important;
  height:30px!important;
  max-width:30px!important;
  max-height:30px!important;
  object-fit:contain!important;
  object-position:center!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

@media (max-width:800px) {
  /* Inventory portrait: the catalogue is the only vertical scroll owner. */
  .game-screen .side-panel.is-inventory-panel {
    overflow:hidden!important;
    padding:7px!important;
  }

  .game-screen .side-panel.is-inventory-panel #sidePanelContent,
  .inventory-v52,
  .inventory-v52 .inventory-layout-v49,
  .inventory-v52 .inventory-catalog-v52 {
    height:100%!important;
    min-height:0!important;
    overflow:hidden!important;
  }

  .inventory-v52 {
    display:flex!important;
    flex-direction:column!important;
    gap:5px!important;
  }

  .inventory-v52 .inventory-head-v54 {
    flex:0 0 48px!important;
    min-height:48px!important;
    padding:0 45px 4px 0!important;
  }

  .inventory-v52 .inventory-title-v49 > span {
    width:36px!important;
    height:36px!important;
  }

  .inventory-v52 .inventory-title-v49 > span > img {
    width:30px!important;
    height:30px!important;
    object-fit:contain!important;
  }

  .inventory-v52 .inventory-title-v49 small { font-size:.625rem!important; }
  .inventory-v52 .inventory-title-v49 h2 { font-size:1.08rem!important; }
  .inventory-v52 .inventory-title-v49 em { display:none!important; }
  .inventory-v52 .inventory-wallet-v49 > span { min-width:50px!important; }

  .inventory-v52 .inventory-toolbar-v54 {
    flex:0 0 42px!important;
    min-height:42px!important;
  }

  .inventory-v52 .inventory-layout-v49 {
    display:flex!important;
    flex:1 1 auto!important;
    flex-direction:column!important;
    gap:5px!important;
  }

  .inventory-v52 .inventory-categories-v52 {
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    grid-auto-rows:44px!important;
    flex:0 0 92px!important;
    gap:4px!important;
    width:100%!important;
    height:92px!important;
    min-height:92px!important;
    padding:0!important;
    overflow:hidden!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }

  .inventory-v52 .inventory-categories-v52 > button {
    display:grid!important;
    grid-template-columns:21px minmax(0,1fr)!important;
    align-items:center!important;
    gap:3px!important;
    width:auto!important;
    min-width:0!important;
    height:44px!important;
    min-height:44px!important;
    padding:3px 4px!important;
    overflow:hidden!important;
    border-radius:11px!important;
  }

  .inventory-v52 .inventory-categories-v52 > button > :is(.inventory-category-icon,.pokemon-semantic-raster) {
    width:20px!important;
    height:20px!important;
  }

  .inventory-v52 .inventory-categories-v52 > button > span {
    display:block!important;
    min-width:0!important;
    overflow:hidden!important;
    font-size:.5625rem!important;
    font-weight:800!important;
    line-height:1.05!important;
    text-align:left!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  .inventory-v52 .inventory-categories-v52 > button > i {
    top:1px!important;
    right:2px!important;
    min-width:16px!important;
    height:15px!important;
    font-size:.5rem!important;
  }

  .inventory-v52 .inventory-catalog-v52 {
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr)!important;
    flex:1 1 auto!important;
  }

  .inventory-v52 .inventory-catalog-head-v54 {
    min-height:52px!important;
    padding:4px!important;
  }

  .inventory-v52 .inventory-content-v49 {
    height:100%!important;
    min-height:0!important;
    padding:6px!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
  }

  .inventory-v52 .inventory-items-v49 {
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
  }

  .inventory-v52 .inventory-item-v52 {
    height:148px!important;
    min-height:148px!important;
  }

  .inventory-v52 .inventory-item-art-v49 {
    height:102px!important;
  }

  .inventory-v52 .inventory-item-art-v49 .item-graphic-shell {
    width:74px!important;
    height:74px!important;
    max-width:74px!important;
    max-height:74px!important;
    padding:3px!important;
  }

  .inventory-v52 .inventory-item-copy-v49 > b {
    font-size:.75rem!important;
    line-height:1.15!important;
  }

  /* Profile portrait: fixed grid tabs and no nested horizontal gift scroller. */
  .game-screen .side-panel.is-social-profile {
    overflow:hidden!important;
  }

  .profile-v80 .profile-v80-tabs,
  .profile-v80.profile-v80--visitor .profile-v80-tabs {
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:5px!important;
    overflow:visible!important;
    scroll-snap-type:none!important;
  }

  .profile-v80.profile-v80--visitor .profile-v80-tabs {
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }

  .profile-v80 .profile-v80-tabs button {
    display:grid!important;
    grid-template-columns:24px minmax(0,1fr)!important;
    gap:5px!important;
    width:auto!important;
    min-width:0!important;
    min-height:44px!important;
    padding:4px 6px!important;
  }

  .profile-v80 .profile-v80-tabs button > .profile-v80-icon {
    width:24px!important;
    height:24px!important;
  }

  .profile-v80 .profile-v80-tabs button > b {
    overflow:hidden!important;
    font-size:.6875rem!important;
    line-height:1.12!important;
    text-overflow:ellipsis!important;
  }

  .profile-v80 .profile-v80-showcase > div {
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
    overflow:visible!important;
    padding:0!important;
  }

  .profile-v80 .profile-v80-gift {
    display:grid!important;
    grid-template-columns:58px minmax(0,1fr)!important;
    width:auto!important;
    min-width:0!important;
    min-height:66px!important;
  }

  .profile-v80 .profile-v80-gift > img {
    width:58px!important;
    height:64px!important;
  }

  .profile-v80 .profile-v80-gift-choice > img {
    width:72px!important;
    height:72px!important;
  }

  .profile-v80 .profile-v80-stage-empty-ball {
    width:44px!important;
    height:44px!important;
    max-width:44px!important;
    max-height:44px!important;
  }

  /* Quest portrait: no horizontally clipped tabs; list/detail remain exclusive. */
  .game-screen .side-panel.is-quest-panel,
  .game-screen .side-panel.is-quest-panel #sidePanelContent {
    overflow:hidden!important;
  }

  .game-screen .side-panel.is-quest-panel #sidePanelContent,
  .quest-journal-polish-v68 {
    height:100%!important;
    min-height:0!important;
  }

  .quest-journal-polish-v68 {
    display:grid!important;
    grid-template-rows:52px 44px 58px 44px minmax(0,1fr)!important;
  }

  .quest-journal-polish-v68 .quest-journal-head-v57 {
    min-height:52px!important;
    padding:6px 50px 6px 9px!important;
  }

  .quest-journal-polish-v68 .quest-journal-head-v57 > span > .quest-type-graphic-v61 {
    width:34px!important;
    height:34px!important;
  }

  .quest-journal-polish-v68 .quest-journal-head-v57 small { font-size:.625rem!important; }
  .quest-journal-polish-v68 .quest-journal-head-v57 h2 { font-size:1.15rem!important; }

  .quest-journal-polish-v68 .quest-mode-tabs-v57 {
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:5px!important;
    padding:0 7px!important;
  }

  .quest-journal-polish-v68 .quest-mode-tabs-v57 button {
    min-width:0!important;
    min-height:44px!important;
    padding:0 6px!important;
    font-size:.6875rem!important;
  }

  .quest-journal-polish-v68 .quest-type-tabs-v57 {
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:4px!important;
    padding:5px 7px!important;
    overflow:hidden!important;
  }

  .quest-journal-polish-v68 .quest-type-tabs-v57 button,
  .quest-journal-polish-v68 .quest-type-tabs-v57 button.is-core {
    position:relative!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:24px minmax(0,1fr)!important;
    place-items:center!important;
    gap:1px!important;
    width:auto!important;
    min-width:0!important;
    height:50px!important;
    min-height:50px!important;
    padding:2px 3px!important;
    overflow:hidden!important;
    border-radius:10px!important;
  }

  .quest-journal-polish-v68 .quest-type-tabs-v57 button > .quest-type-graphic-v61 {
    width:23px!important;
    height:23px!important;
  }

  .quest-journal-polish-v68 .quest-type-tabs-v57 button > span small { display:none!important; }
  .quest-journal-polish-v68 .quest-type-tabs-v57 button > span b {
    display:block!important;
    max-width:100%!important;
    overflow:hidden!important;
    font-size:.5625rem!important;
    font-weight:800!important;
    line-height:1.05!important;
    text-align:center!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  .quest-journal-polish-v68 .quest-type-tabs-v57 button > i {
    position:absolute!important;
    top:1px!important;
    right:1px!important;
    min-width:16px!important;
    width:auto!important;
    height:15px!important;
    padding:0 3px!important;
    font-size:.5rem!important;
  }

  .quest-journal-polish-v68 .quest-status-tabs-v57 {
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:4px!important;
    padding:0 7px 4px!important;
    overflow:hidden!important;
  }

  .quest-journal-polish-v68 .quest-status-tabs-v57 button {
    justify-content:center!important;
    min-width:0!important;
    min-height:40px!important;
    padding:0 5px!important;
    overflow:hidden!important;
    font-size:.625rem!important;
    line-height:1.1!important;
    text-align:center!important;
    white-space:normal!important;
  }

  .quest-journal-polish-v68 .quest-journal-body-v57 {
    position:relative!important;
    display:block!important;
    min-height:0!important;
    overflow:hidden!important;
  }

  .quest-journal-polish-v68 .quest-branch-list-v59 {
    height:100%!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
  }

  .quest-journal-polish-v68 .quest-detail-shell-v57 {
    overflow:hidden!important;
  }

  .quest-journal-polish-v68 .quest-detail-scroll-v67 {
    height:100%!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
  }

  .chat-messenger .chat-popover {
    right:6px!important;
    left:6px!important;
    width:auto!important;
    max-width:none!important;
  }

  .world-rail button > span > :is(img,.pokemon-ui-raster),
  .world-rail button > span.pokemon-ui-raster {
    width:28px!important;
    height:28px!important;
    max-width:28px!important;
    max-height:28px!important;
  }


  .mobile-dock .pokemon-nav-raster {
    width:28px!important;
    height:28px!important;
    max-width:28px!important;
    max-height:28px!important;
  }
}

@media (max-width:420px) {
  .inventory-v52 .inventory-wallet-v49 > span:last-child { display:none!important; }
  .inventory-v52 .inventory-categories-v52 > button > span { font-size:.53125rem!important; }

  .profile-v80 .profile-v80-tabs button {
    grid-template-columns:22px minmax(0,1fr)!important;
    padding-inline:4px!important;
  }
  .profile-v80 .profile-v80-tabs button > .profile-v80-icon { width:22px!important; height:22px!important; }
  .profile-v80 .profile-v80-tabs button > b { font-size:.625rem!important; }
  .profile-v80 .profile-v80-showcase > div { grid-template-columns:1fr!important; }

  .quest-journal-polish-v68 .quest-type-tabs-v57 button > span b { font-size:.53125rem!important; }
  .quest-journal-polish-v68 .quest-status-tabs-v57 button { font-size:.5625rem!important; }
}

@media (prefers-reduced-motion:reduce) {
  .inventory-v52 *,
  .profile-v80 *,
  .quest-journal-polish-v68 *,
  .chat-messenger * {
    scroll-behavior:auto!important;
  }

  .pokemon-genome-visual-v47 > img {
    animation:none!important;
  }
}
