/* PokePark v77 — stable chat dock, flat messages and scroll-safe media picker. */

html .game-screen #chatPanel.chat-panel.chat-messenger {
  --chat-dock-height: 72px;
}

html .game-screen #chatPanel > .chat-tabs {
  grid-template-columns: repeat(var(--chat-visible-channel-count, 5), minmax(0, 1fr)) !important;
}

html .game-screen #chatPanel > .chat-tabs > button[hidden] {
  display: none !important;
}

html .game-screen #chatPanel > .chat-messenger-layout,
html .game-screen #chatPanel .chat-conversation,
html .game-screen #chatPanel .chat-log-wrap {
  min-width: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

html .game-screen #chatPanel .chat-conversation {
  grid-template-rows: auto minmax(0, 1fr) auto auto !important;
  background: color-mix(in srgb, var(--chat75-card) 44%, transparent) !important;
}

/* Keep every region on its intended row even when the private-chat header or
   reply preview is hidden. Auto-placement previously moved the log into row 1
   and allowed the composer to cover the newest message. */
html .game-screen #chatPanel .chat-private-head { grid-row: 1 !important; }
html .game-screen #chatPanel .chat-log-wrap { grid-row: 2 !important; }
html .game-screen #chatPanel .chat-reply-preview { grid-row: 3 !important; }
html .game-screen #chatPanel #chatForm { grid-row: 4 !important; }

html .game-screen #chatPanel .chat-log {
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  padding: 10px 12px 16px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  scroll-padding-block: 12px 18px !important;
  scrollbar-gutter: stable !important;
}

html .game-screen #chatPanel .chat-log > *,
html .game-screen #chatPanel .chat-message-body,
html .game-screen #chatPanel .chat-message-meta,
html .game-screen #chatPanel .chat-message-body > p {
  min-width: 0 !important;
  max-width: 100% !important;
}

html .game-screen #chatPanel .chat-message:not(.is-notice) {
  grid-template-columns: 38px minmax(0, 1fr) 28px !important;
  gap: 9px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 9px 4px !important;
  border: 0 !important;
  border-bottom: 1px solid color-mix(in srgb, var(--chat75-line) 52%, transparent) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html .game-screen #chatPanel .chat-message:not(.is-notice):hover,
html .game-screen #chatPanel .chat-message.is-self:not(.is-notice),
html .game-screen #chatPanel .chat-message.is-location-message:not(.is-notice),
html .game-screen #chatPanel .chat-message.is-trade-message:not(.is-notice) {
  background: transparent !important;
  box-shadow: none !important;
}

html .game-screen #chatPanel .chat-message:not(.is-notice) .chat-message-body > p,
html .game-screen #chatPanel .chat-message.is-self:not(.is-notice) .chat-message-body > p {
  width: auto !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--chat75-copy) !important;
  box-shadow: none !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

html .game-screen #chatPanel .chat-message:not(.is-notice) .chat-message-more {
  opacity: .34 !important;
}

html .game-screen #chatPanel .chat-message:not(.is-notice):hover .chat-message-more,
html .game-screen #chatPanel .chat-message:not(.is-notice):focus-within .chat-message-more {
  opacity: 1 !important;
}

html .game-screen #chatPanel .chat-message.is-notice {
  --notice: #238fce;
  display: grid !important;
  grid-template-columns: 32px minmax(0, 1fr) !important;
  gap: 10px !important;
  width: auto !important;
  margin: 0 4px !important;
  padding: 11px 4px !important;
  border: 0 !important;
  border-bottom: 1px solid color-mix(in srgb, var(--chat75-line) 64%, transparent) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html .game-screen #chatPanel .chat-message.is-notice.notice-success { --notice: #169b65; }
html .game-screen #chatPanel .chat-message.is-notice.notice-warning { --notice: #c98419; }
html .game-screen #chatPanel .chat-message.is-notice.notice-critical { --notice: #df4e4e; }
html .game-screen #chatPanel .chat-message.is-notice.notice-admin { --notice: #6259df; }
html .game-screen #chatPanel .chat-message.is-notice.notice-event { --notice: #9e57cf; }

html .game-screen #chatPanel .chat-message.is-notice .chat-message-avatar.is-system {
  display: grid !important;
  place-items: center !important;
  width: 32px !important;
  height: 32px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--notice) !important;
  box-shadow: none !important;
}

html .game-screen #chatPanel .chat-message.is-notice .chat-message-avatar svg {
  width: 22px !important;
  height: 22px !important;
}

html .game-screen #chatPanel .chat-message.is-notice .chat-message-meta {
  display: flex !important;
  align-items: baseline !important;
  flex-wrap: wrap !important;
  gap: 4px 7px !important;
}

html .game-screen #chatPanel .chat-message.is-notice .chat-message-meta > b {
  color: var(--chat75-ink) !important;
  font-size: 13px !important;
}

html .game-screen #chatPanel .chat-message.is-notice .chat-message-meta > small {
  color: var(--notice) !important;
  font-size: 9px !important;
  font-weight: 840 !important;
  letter-spacing: .045em !important;
  text-transform: uppercase !important;
}

html .game-screen #chatPanel .chat-message.is-notice .chat-message-body > p {
  width: auto !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--chat75-copy) !important;
  box-shadow: none !important;
  font-style: normal !important;
  line-height: 1.42 !important;
  overflow-wrap: anywhere !important;
}

html .game-screen #chatPanel .chat-reply-preview {
  position: relative !important;
  z-index: 5 !important;
  margin: 0 !important;
  padding: 7px 12px !important;
  border: 0 !important;
  border-top: 1px solid color-mix(in srgb, var(--chat75-line) 66%, transparent) !important;
  border-left: 3px solid var(--chat75-accent) !important;
  border-radius: 0 !important;
  background: var(--chat75-card) !important;
}

html .game-screen #chatPanel #chatForm {
  position: relative !important;
  z-index: 6 !important;
  flex: 0 0 auto !important;
  grid-template-columns: 42px minmax(0, 1fr) 46px !important;
  min-width: 0 !important;
  min-height: 66px !important;
  margin: 0 !important;
  padding: 10px 12px 11px !important;
  border: 0 !important;
  border-top: 1px solid color-mix(in srgb, var(--chat75-line) 78%, transparent) !important;
  border-radius: 0 !important;
  background: var(--chat75-card) !important;
  box-shadow: 0 -5px 14px rgba(12, 55, 75, .035) !important;
}

html .game-screen #chatPanel #chatForm:focus-within {
  border-color: color-mix(in srgb, var(--chat75-accent) 38%, var(--chat75-line)) !important;
  box-shadow: 0 -5px 14px rgba(12, 55, 75, .035) !important;
}

html .game-screen #chatPanel #chatForm textarea {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

html .game-screen #chatPanel .chat-jump-latest {
  right: 12px !important;
  bottom: 12px !important;
}

html .game-screen #chatPanel > .chat-emoji-panel {
  right: auto !important;
  bottom: calc(var(--chat-dock-height, 72px) + 8px) !important;
  left: 12px !important;
  width: min(440px, calc(100% - 24px)) !important;
  height: min(390px, calc(100% - var(--chat-dock-height, 72px) - 132px)) !important;
  min-height: 220px !important;
  max-height: calc(100% - var(--chat-dock-height, 72px) - 24px) !important;
  overflow: hidden !important;
}

html .game-screen #chatPanel .chat-emoji-grid {
  min-width: 0 !important;
  min-height: 0 !important;
  max-height: 100% !important;
  overflow-x: hidden !important;
  overflow-y: scroll !important;
  overscroll-behavior: contain !important;
  touch-action: pan-y !important;
  scrollbar-gutter: stable !important;
  scrollbar-width: thin !important;
  scrollbar-color: color-mix(in srgb, var(--chat75-accent) 48%, var(--chat75-line)) transparent !important;
}

html .game-screen #chatPanel .chat-emoji-grid::-webkit-scrollbar { width: 8px !important; }
html .game-screen #chatPanel .chat-emoji-grid::-webkit-scrollbar-thumb {
  border: 2px solid transparent !important;
  border-radius: 99px !important;
  background: color-mix(in srgb, var(--chat75-accent) 48%, var(--chat75-line)) !important;
  background-clip: padding-box !important;
}

html .game-screen #chatPanel .chat-channel-visibility {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
  padding: 12px !important;
}

html .game-screen #chatPanel .chat-channel-visibility legend {
  padding-inline: 5px !important;
  color: var(--chat75-copy) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
}

html .game-screen #chatPanel .chat-channel-visibility > label {
  display: grid !important;
  grid-template-columns: 18px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 7px !important;
}

html .game-screen #chatPanel .chat-channel-visibility > small {
  grid-column: 1 / -1 !important;
  color: var(--chat75-muted) !important;
  font-size: 9px !important;
  line-height: 1.4 !important;
}

@media (max-width: 760px) {
  html .game-screen #chatPanel .chat-message:not(.is-notice) {
    grid-template-columns: 34px minmax(0, 1fr) !important;
    padding: 8px 2px !important;
  }

  html .game-screen #chatPanel .chat-message.is-notice {
    grid-template-columns: 28px minmax(0, 1fr) !important;
    gap: 8px !important;
    margin-inline: 2px !important;
    padding: 9px 2px !important;
  }

  html .game-screen #chatPanel .chat-message.is-notice .chat-message-avatar.is-system {
    width: 28px !important;
    height: 28px !important;
  }

  html .game-screen #chatPanel #chatForm {
    grid-template-columns: 40px minmax(0, 1fr) 44px !important;
    min-height: 64px !important;
    padding: 8px 9px 9px !important;
  }

  html .game-screen #chatPanel > .chat-emoji-panel {
    right: 8px !important;
    left: 8px !important;
    width: auto !important;
    height: min(48dvh, calc(100% - var(--chat-dock-height, 68px) - 124px)) !important;
    min-height: 230px !important;
  }
}

@media (max-width: 380px) {
  html .game-screen #chatPanel > .chat-emoji-panel {
    min-height: 210px !important;
  }
}

@supports not (color: color-mix(in srgb, red 50%, white)) {
  html .game-screen #chatPanel .chat-message.is-notice,
  html .game-screen #chatPanel .chat-message:not(.is-notice),
  html .game-screen #chatPanel #chatForm { border-color: #d4e5ec !important; }
}
