/* Search owns the visible viewport while typing. Keep the close control and
   input outside the result scroller instead of shrinking the whole panel. */
html body main.app-shell section.map-stage #pinSearchPanel.pin-search-panel.open {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto auto minmax(0, 1fr) !important;
  align-content: stretch !important;
  box-sizing: border-box !important;
  width: min(760px, calc(100vw - 2 * max(12px, env(safe-area-inset-left), env(safe-area-inset-right)))) !important;
  left: 50% !important;
  right: auto !important;
  top: var(--pin-search-top, 88px) !important;
  bottom: auto !important;
  height: min(540px, var(--pin-search-max-height, calc(100dvh - 180px))) !important;
  min-height: 0 !important;
  max-height: var(--pin-search-max-height, calc(100dvh - 180px)) !important;
  margin: 0 !important;
  padding: 20px !important;
  gap: 12px !important;
  overflow: hidden !important;
  border-radius: 24px !important;
  translate: none !important;
  transform: translateX(-50%) !important;
  animation: none !important;
  transition: opacity 120ms ease !important;
}
html body main.app-shell section.map-stage #pinSearchPanel.pin-search-panel.open:not(.has-chapter-filter) {
  grid-template-rows: auto auto minmax(0, 1fr) !important;
}
html body main.app-shell section.map-stage #pinSearchPanel .pin-search-heading {
  position: static !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  min-width: 0 !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 12px !important;
}
html body main.app-shell section.map-stage #pinSearchPanel #pinSearchCloseButton {
  position: static !important;
  display: inline-grid !important;
  place-items: center !important;
  flex: 0 0 44px !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
}
html body main.app-shell section.map-stage #pinSearchPanel #pinSearchForm {
  position: static !important;
  display: grid !important;
  grid-template-columns: 18px minmax(0, 1fr) auto !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 48px !important;
  margin: 0 !important;
  padding: 0 8px !important;
  gap: 8px !important;
}
html body main.app-shell section.map-stage #pinSearchPanel #pinSearchInput {
  width: 100% !important;
  min-width: 0 !important;
  height: 46px !important;
  min-height: 44px !important;
  padding: 4px 0 !important;
  font-size: max(16px, 1rem) !important;
}
html body main.app-shell section.map-stage #pinSearchPanel #pinSearchGoButton {
  min-width: 56px !important;
  min-height: 44px !important;
  height: auto !important;
  padding: 6px 10px !important;
  font-size: .8125rem !important;
}
html body main.app-shell section.map-stage #pinSearchPanel #pinSearchResults {
  grid-column: 1 / -1 !important;
  grid-row: 4 !important;
  align-self: stretch !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 2px 4px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  scroll-padding-block: 8px !important;
}
html body main.app-shell section.map-stage #pinSearchPanel:not(.has-chapter-filter) #pinSearchResults {
  grid-row: 3 !important;
}
html body main.app-shell section.map-stage #pinSearchPanel .pin-search-result {
  min-height: 44px !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}
html body main.app-shell section.map-stage #pinSearchPanel .pin-search-result > span:nth-child(2) > strong {
  display: block !important;
  min-width: 0 !important;
  max-width: 100% !important;
  white-space: normal !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  text-overflow: clip !important;
  -webkit-line-clamp: unset !important;
}
html body main.app-shell section.map-stage #pinSearchPanel.pin-search-panel.open:is(.is-keyboard-search, .is-compact-search),
html body.keyboard-open main.app-shell section.map-stage #pinSearchPanel.pin-search-panel.open:is(.is-keyboard-search, .is-compact-search) {
  position: fixed !important;
  top: var(--pin-search-top) !important;
  bottom: auto !important;
  left: 50% !important;
  right: auto !important;
  width: min(760px, calc(100vw - 2 * max(12px, env(safe-area-inset-left), env(safe-area-inset-right)))) !important;
  grid-template-columns: minmax(0, 1fr) 44px !important;
  grid-template-rows: auto auto minmax(0, 1fr) !important;
  height: var(--pin-search-max-height) !important;
  max-height: var(--pin-search-max-height) !important;
  padding: 10px 12px !important;
  gap: 8px !important;
  border-radius: 20px !important;
  transform: translateX(-50%) !important;
  translate: none !important;
}
html body main.app-shell section.map-stage #pinSearchPanel.pin-search-panel.open:is(.is-keyboard-search, .is-compact-search):not(.has-chapter-filter) {
  grid-template-rows: auto minmax(0, 1fr) !important;
}
html body main.app-shell section.map-stage #pinSearchPanel:is(.is-keyboard-search, .is-compact-search) .pin-search-heading {
  display: contents !important;
}
html body main.app-shell section.map-stage #pinSearchPanel:is(.is-keyboard-search, .is-compact-search) .pin-search-heading-copy {
  display: none !important;
}
html body main.app-shell section.map-stage #pinSearchPanel:is(.is-keyboard-search, .is-compact-search) #pinSearchCloseButton {
  grid-column: 2 !important;
  grid-row: 1 !important;
  align-self: center !important;
}
html body main.app-shell section.map-stage #pinSearchPanel:is(.is-keyboard-search, .is-compact-search) #pinSearchForm {
  grid-column: 1 !important;
  grid-row: 1 !important;
  min-height: 46px !important;
}
html body main.app-shell section.map-stage #pinSearchPanel:is(.is-keyboard-search, .is-compact-search) .pin-search-chapter-filter {
  grid-column: 1 / -1 !important;
  grid-row: 2 !important;
}
html body main.app-shell section.map-stage #pinSearchPanel:is(.is-keyboard-search, .is-compact-search) #pinSearchResults {
  grid-row: 3 !important;
}
html body main.app-shell section.map-stage #pinSearchPanel:is(.is-keyboard-search, .is-compact-search):not(.has-chapter-filter) #pinSearchResults {
  grid-row: 2 !important;
}
/* In a short reading lane, show the result itself first. Every card keeps its
   source/precision badge and full metadata; grouping labels remain available
   to assistive technology rather than consuming the first visible result. */
html body main.app-shell section.map-stage #pinSearchPanel:is(.is-keyboard-search, .is-compact-search) :is(.pin-search-section-label, .pin-search-subsection-label) {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
}
html body main.app-shell section.map-stage #pinSearchPanel:is(.is-keyboard-search, .is-compact-search) .pin-search-subsection {
  margin: 0 !important;
  padding: 0 !important;
  gap: 6px !important;
}
html body main.app-shell section.map-stage #pinSearchPanel:is(.is-keyboard-search, .is-compact-search) .pin-search-result {
  grid-template-columns: 32px minmax(0, 1fr) !important;
  align-items: start !important;
  margin: 0 !important;
  padding: 8px !important;
  gap: 8px !important;
}
html body main.app-shell section.map-stage #pinSearchPanel:is(.is-keyboard-search, .is-compact-search) .pin-search-result > span:nth-child(2) {
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
  gap: 2px !important;
}
html body main.app-shell section.map-stage #pinSearchPanel:is(.is-keyboard-search, .is-compact-search) .pin-search-result > span:nth-child(2) > strong {
  order: -1 !important;
  margin: 0 !important;
  line-height: 1.3 !important;
}
html body main.app-shell section.map-stage #pinSearchPanel:is(.is-keyboard-search, .is-compact-search) .pin-search-result-emoji {
  width: 32px !important;
  height: 32px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
}
@media (orientation: landscape) and (max-height: 520px) {
  html body main.app-shell section.map-stage #pinSearchPanel.pin-search-panel.open {
    padding: 12px !important;
    gap: 8px !important;
  }
  html body main.app-shell section.map-stage #pinSearchPanel.pin-search-panel.open:is(.is-keyboard-search, .is-compact-search).has-chapter-filter,
  html body.keyboard-open main.app-shell section.map-stage #pinSearchPanel.pin-search-panel.open:is(.is-keyboard-search, .is-compact-search).has-chapter-filter {
    grid-template-columns: minmax(0, 1fr) minmax(100px, 150px) 44px !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
  }
  html body main.app-shell section.map-stage #pinSearchPanel:is(.is-keyboard-search, .is-compact-search).has-chapter-filter #pinSearchCloseButton {
    grid-column: 3 !important;
  }
  html body main.app-shell section.map-stage #pinSearchPanel:is(.is-keyboard-search, .is-compact-search).has-chapter-filter .pin-search-chapter-filter {
    grid-column: 2 !important;
    grid-row: 1 !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    gap: 0 !important;
  }
  html body main.app-shell section.map-stage #pinSearchPanel:is(.is-keyboard-search, .is-compact-search).has-chapter-filter .pin-search-chapter-copy {
    display: none !important;
  }
  html body main.app-shell section.map-stage #pinSearchPanel:is(.is-keyboard-search, .is-compact-search).has-chapter-filter #pinSearchResults {
    grid-row: 2 !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  html body main.app-shell section.map-stage #pinSearchPanel.pin-search-panel.open {
    transition: none !important;
  }
}
