/* One position contract for ALL draggable side-panel views. Layered important
   rules beat historical per-feature centering/clamps in the legacy bundle. */
@layer panel-viewport-bounds {
  @media (min-width: 801px) {
    #app #sidePanel.side-panel.is-open.is-user-positioned {
      position: fixed !important;
      inset: var(--panel-user-top, 8px) auto auto var(--panel-user-left, 8px) !important;
      transform: none !important;
      translate: none !important;
      scale: none !important;
      rotate: none !important;
      margin: 0 !important;
      min-width: 0 !important;
      min-height: 0 !important;
      max-width: var(--panel-safe-width, calc(100dvw - 16px)) !important;
      max-height: var(--panel-safe-height, calc(100dvh - 16px)) !important;
      box-sizing: border-box !important;
      transition: none !important;
      animation: none !important;
    }
    #app #sidePanel.is-panel-dragging { user-select: none !important; }
    #app #sidePanel :is([data-panel-drag], [data-pokedex-drag]) { touch-action: none; }
  }
}

/* v2.51.1 · the dossier header stays available while its content owns scrolling. */
#app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) {
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}

#app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) > .panel-close {
  z-index: 80 !important;
  top: 10px !important;
  right: 10px !important;
  margin: 0 !important;
}

#app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) > #sidePanelContent {
  flex: 1 1 auto !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  scrollbar-gutter: auto !important;
}

#app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-dossier {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  scrollbar-gutter: stable !important;
}

#app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-header {
  position: sticky !important;
  z-index: 70 !important;
  top: 0 !important;
  flex: 0 0 auto !important;
  padding-right: 66px !important;
  box-shadow: 0 1px 0 rgba(28, 80, 109, .08), 0 10px 24px rgba(29, 73, 98, .05) !important;
}

@media (min-width: 761px) {
  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) {
    top: calc(50% + var(--panel-drag-y, 0px)) !important;
    left: calc(50% + var(--panel-drag-x, 0px)) !important;
    width: min(1120px, calc(100vw - 32px)) !important;
    height: min(820px, calc(100dvh - 24px)) !important;
    max-height: calc(100dvh - 24px) !important;
  }
}

/* Laptop heights: keep text readable and reclaim space from padding and artwork. */
@media (min-width: 761px) and (max-height: 900px) {
  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) {
    height: calc(100dvh - 20px) !important;
    max-height: calc(100dvh - 20px) !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-header {
    min-height: 54px !important;
    padding-block: 6px !important;
    padding-left: 14px !important;
    gap: 12px !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-layout {
    grid-template-columns: minmax(248px, 282px) minmax(0, 1fr) !important;
    gap: 10px !important;
    padding: 9px 12px 12px !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) :is(.dd-profile, .dd-main) {
    gap: 7px !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-identity {
    padding: 9px 12px 0 !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-stage {
    height: clamp(168px, 24dvh, 204px) !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-appearance {
    padding: 0 10px 7px !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-physical {
    gap: 8px !important;
    padding: 7px 10px !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-top {
    grid-template-columns: minmax(196px, 218px) minmax(0, 1fr) !important;
    gap: 9px !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-section-head {
    min-height: 25px !important;
    margin-bottom: 4px !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-stat-table tr {
    height: 28px !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-stat-table :is(th, td) {
    padding-block: 3px !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-move-grid {
    gap: 4px !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-move {
    min-height: 82px !important;
    padding: 4px 3px !important;
    gap: 2px !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) :is(.dd-slot-art, .dd-move-icon) {
    width: 42px !important;
    height: 42px !important;
    flex-basis: 42px !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-move-detail {
    padding: 8px 10px !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-numbers {
    gap: 7px !important;
    margin-top: 6px !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-move-detail > footer {
    margin-top: 5px !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .pc-evolution {
    padding-top: 6px !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .pc-evolution > header {
    margin-bottom: 5px !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .pe-family {
    gap: 4px !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .pe-form-open {
    padding: 3px 4px !important;
  }
}

@media (min-width: 761px) and (max-height: 780px) {
  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-stage {
    height: clamp(146px, 22dvh, 172px) !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-layout {
    padding-block: 7px 10px !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-move {
    min-height: 76px !important;
  }
}

@media (max-width: 760px) {
  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) {
    height: calc(100dvh - 12px) !important;
    max-height: calc(100dvh - 12px) !important;
  }

  #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-header {
    padding-right: 56px !important;
  }
}

/* Pokédex refinement: quiet type colour, content-sized shell and inline tactics.
   Partner profile scenes above keep their existing artwork and behaviour. */
#app #sidePanel .dd-dossier .dd-stage {
 background:linear-gradient(145deg,color-mix(in srgb,var(--dd-scene-a) 16%,var(--ui-card,#fff)),color-mix(in srgb,var(--dd-scene-b) 7%,var(--ui-card,#fff)));
}
#app #sidePanel .dd-dossier .dd-header {box-shadow:0 1px 0 var(--ui-line)!important}
#app #sidePanel .dd-dossier .dd-stage .dd-portrait {inset:14px 5% 18px;width:90%!important;height:calc(100% - 32px)!important;filter:drop-shadow(0 8px 8px #1736501c)}
#app #sidePanel .dd-dossier .dd-stage .dd-portrait img {object-position:center}
#app #sidePanel .dd-dossier .dd-move-detail {border-radius:12px}
#app #sidePanel .dd-dossier .dd-move-detail>header {flex-wrap:wrap;gap:10px}
#app #sidePanel .dd-dossier .dd-move-heading {flex:1 1 160px}
#app #sidePanel .dd-dossier .dd-ranks {width:auto;margin-left:auto;gap:4px}
#app #sidePanel .dd-dossier .dd-ranks button {width:30px;height:32px;border-radius:7px}
#app #sidePanel .dd-dossier .dd-move-summary {margin-top:9px;color:var(--ui-muted);font-size:12px;line-height:1.5}
#app #sidePanel .dd-dossier .dd-numbers {grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-top:12px}
#app #sidePanel .dd-dossier .dd-effects {gap:6px}
#app #sidePanel .dd-dossier .dd-effects>div {background:var(--ui-paper,#edf4f8);padding:9px 11px;border-radius:8px;flex:1 1 120px}
#app #sidePanel .dd-dossier .dd-effects dt {font-weight:700;font-size:11px}
#app #sidePanel .dd-dossier .dd-effects dd {font-size:24px}
#app #sidePanel .dd-dossier .dd-effects small {font-size:10px}
#app #sidePanel .dd-dossier .dd-costs {gap:12px;align-items:start;padding:7px 0}
#app #sidePanel .dd-dossier .dd-costs dt {font-size:10px;white-space:normal;line-height:1.3}
#app #sidePanel .dd-dossier .dd-costs dd {font-size:18px;font-variant-numeric:tabular-nums;white-space:nowrap}
#app #sidePanel .dd-dossier .dd-move-more {margin-top:12px;border-top:1px solid var(--ui-line)}
#app #sidePanel .dd-dossier .dd-move-more>summary {display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;min-height:38px;padding:8px 0 0;cursor:pointer;font-size:11px;font-weight:700;color:var(--ui-accent)}
#app #sidePanel .dd-dossier .dd-move-more>summary::-webkit-details-marker {display:none}
#app #sidePanel .dd-dossier .dd-move-more>summary:focus-visible {outline:2px solid var(--ui-focus);outline-offset:3px;border-radius:4px}
#app #sidePanel .dd-dossier .dd-disclosure-arrow {width:7px;height:7px;margin-right:4px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg)}
#app #sidePanel .dd-dossier .dd-move-more[open] .dd-disclosure-arrow {transform:rotate(225deg)}
#app #sidePanel .dd-dossier .dd-move-extra {display:grid;gap:14px;padding:13px 0 3px;font-size:12px;line-height:1.5;overflow-wrap:anywhere;color:var(--ui-ink,#173650)}
#app #sidePanel .dd-dossier .dd-move-extra :is(h4,p) {color:inherit}
#app #sidePanel .dd-dossier .dd-skill-context {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
#app #sidePanel .dd-dossier .dd-skill-context dt {font-size:10px;color:var(--ui-muted);margin-bottom:4px}
#app #sidePanel .dd-dossier .dd-skill-context dd {font-weight:700}
#app #sidePanel .dd-dossier .dd-tactic-columns {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:12px}
#app #sidePanel .dd-dossier .dd-tactic-columns h4 {font-size:11px;margin-bottom:5px}
#app #sidePanel .dd-dossier .dd-tactic-columns p+p {margin-top:5px}
#app #sidePanel .dd-dossier .dd-move-extra .dd-preview-note {font-size:10px;color:var(--ui-muted,#58758b);line-height:1.5}

/* The main window grows only as far as the current species needs. Its own
   scrolling and sticky header retain the native panel's close/drag contract. */
#app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) {
 height:auto!important;min-height:0!important;max-height:calc(100dvh - 24px)!important;
}
#app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier)>#sidePanelContent {
 flex:0 1 auto!important;height:auto!important;min-height:0!important;max-height:inherit!important;
}
#app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-dossier {
 height:auto!important;max-height:calc(100dvh - 44px)!important;scrollbar-gutter:auto!important;
}
#app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-layout {
 padding:14px 18px 16px!important;gap:18px!important;
}
#app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-stage {height:250px!important}
#app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-identity {padding:12px 16px 0!important}
#app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-appearance {padding:0 12px 10px!important}
#app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-move-detail {padding:12px 14px!important}
#app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-numbers {margin-top:10px!important;gap:14px!important}
@media(min-width:761px) and (max-height:780px) {
 #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-stage {height:190px!important}
 #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-layout {padding:10px 14px 12px!important;gap:12px!important}
}
@media(max-width:960px) {
 #app #sidePanel .dd-dossier .dd-top {grid-template-columns:minmax(0,1fr)!important}
 #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-top {grid-template-columns:minmax(0,1fr)!important}
 #app #sidePanel .dd-dossier .dd-numbers {grid-template-columns:1fr!important;gap:8px!important}
 #app #sidePanel .dd-dossier .dd-costs {padding:0}
 #app #sidePanel .dd-dossier .dd-costs dd {font-size:17px}
}
@media(max-width:380px) {
 #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-appearance {display:grid!important;grid-template-columns:minmax(0,1fr) 44px;gap:6px!important}
 #app #sidePanel .dd-dossier .dd-appearance>div {grid-column:1;grid-row:1;justify-self:start}
 #app #sidePanel .dd-dossier .dd-appearance>.pc-info-button {grid-column:2;grid-row:1}
 #app #sidePanel .dd-dossier .dd-appearance>.pf-open {grid-column:1/-1;grid-row:2;justify-self:start}
}
@media(max-width:760px),(pointer:coarse) {
 #app #sidePanel .dd-dossier .dd-ranks button {min-width:36px;min-height:44px}
 #app #sidePanel .dd-dossier .dd-move-more>summary {min-height:44px}
 #app #sidePanel .dd-dossier .dd-appearance button {min-height:44px}
 #app #sidePanel .dd-dossier .pc-info-button {min-width:44px;min-height:44px}
}
@media(max-width:760px) {
 #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-layout {gap:20px!important;padding:10px!important}
 #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-stage {height:clamp(170px,27dvh,230px)!important}
 #app #sidePanel.side-panel.is-open.is-pokedex-detail:has(.dd-dossier) .dd-dossier {max-height:calc(var(--mobile-window-height,100dvh) - 24px)!important}
 #app #sidePanel .dd-dossier .dd-move-detail .dd-move-icon {width:38px!important;height:38px!important;flex-basis:38px}
 #app #sidePanel .dd-dossier .dd-move-heading {flex-basis:150px}
 #app #sidePanel .dd-dossier .dd-ranks {flex-basis:100%;margin-top:2px}
 #app #sidePanel .dd-dossier .dd-skill-context {grid-template-columns:1fr 1fr}
}

/* R1 shared public/game encounter dossier, native details without new UI clock. */
.wild-behavior-dossier{margin:14px;padding:14px;border:1px solid currentColor;border-radius:14px;max-width:100%;color:inherit}
.wild-behavior-dossier summary{cursor:pointer;font-weight:700;min-height:32px}
.wild-behavior-dossier table{width:100%;border-collapse:collapse;text-align:left}
.wild-behavior-dossier th,.wild-behavior-dossier td{padding:4px 8px}.wild-behavior-dossier td{text-align:right}.wild-behavior-dossier caption{text-align:left;font-size:.85em;padding:8px}
