.mobile-results-launcher,
.mobile-results-close,
.mobile-detail-expand {
  display: none;
}
@media (max-width: 700px),
  (max-width: 1000px) and (max-height: 500px) and (pointer: coarse) {
  html:has(body.mobile-map),
  body.mobile-map {
    height: var(--mobile-viewport-height, 100dvh);
    overflow: hidden;
  }
  body.map-page.mobile-map {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }
  .map-page.mobile-map header {
    flex: 0 0 auto;
    height: auto;
    min-height: 0;
    padding: 8px 12px;
    gap: 6px;
    flex-wrap: wrap;
  }
  .map-page.mobile-map header .patmap-brand {
    flex: 1;
    gap: 6px;
    min-width: 0;
  }
  .map-page.mobile-map header .patmap-brand .brand-logo {
    width: 38px;
    height: 38px;
  }
  .map-page.mobile-map header .patmap-brand .brand-name {
    flex: 1;
    min-width: 0;
    max-width: 136px;
    font-size: 22px;
    letter-spacing: 0;
  }
  .map-page.mobile-map header .patmap-brand .brand-name .brand-wordmark {
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: 1em;
  }
  .map-page.mobile-map header .account-button {
    font-size: 11px;
    padding: 8px;
    min-height: 40px;
    white-space: normal;
    max-width: 125px;
    text-align: center;
  }
  .map-page.mobile-map header .menu-button {
    font-size: 12px;
    padding: 8px 10px;
    min-height: 40px;
  }
  .map-page.mobile-map header .search-box {
    order: 4;
    flex: 1 0 100%;
  }
  .map-page.mobile-map .search-box input {
    font-size: 16px;
    min-height: 42px;
  }
  .map-page.mobile-map .map-area {
    flex: 1 1 auto;
    min-height: 0;
    height: auto;
    overflow: hidden;
  }
  .map-page.mobile-map .pet-filter-board {
    top: 10px !important;
    left: 10px !important;
    right: 10px !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    display: flex !important;
    flex-direction: row;
    gap: 8px;
    padding: 6px !important;
    overflow: visible !important;
  }
  .map-page.mobile-map .pet-filter-board > .pet-species-buttons {
    flex: 1;
    min-width: 0;
    width: auto;
  }
  .map-page.mobile-map .pet-filter-board > .pet-species-buttons > button {
    font-size: 12px;
    min-height: 42px;
    padding: 8px 5px;
  }
  .map-page.mobile-map .pet-filter-board > #petFilterToggle {
    flex: 0 0 auto;
    width: auto;
    min-height: 42px;
    padding: 8px 10px;
    font-size: 12px;
  }
  .map-page.mobile-map .current-location-button {
    position: absolute !important;
    left: auto !important;
    top: 76px !important;
    right: 12px !important;
    bottom: auto !important;
    width: 44px;
    height: 44px;
    z-index: 20;
  }
  .map-page.mobile-map .map-status {
    top: 78px !important;
    left: 12px !important;
    right: 68px !important;
    bottom: auto !important;
    transform: none !important;
    max-width: none !important;
    width: auto;
    max-height: 42px;
    overflow: auto;
    font-size: 11px;
    padding: 6px 8px;
    pointer-events: none;
  }
  .map-page.mobile-map .map-legend {
    bottom: calc(76px + env(safe-area-inset-bottom, 0px));
    max-width: calc(100% - 24px);
    width: auto;
    padding: 8px 10px;
  }
  .map-page.mobile-map .map-legend-row {
    gap: 12px;
  }
  .map-page.mobile-map .map-legend-note {
    display: none;
  }
  .map-page.mobile-map .map-legend-item {
    font-size: 11px;
  }
  .map-page.mobile-map .legend-dot {
    width: 13px;
    height: 13px;
  }
  .map-page.mobile-map .mobile-results-launcher {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    position: absolute;
    bottom: calc(18px + env(safe-area-inset-bottom, 0px));
    left: 50%;
    transform: translateX(-50%);
    z-index: 30;
    max-width: calc(100% - 32px);
    min-height: 46px;
    padding: 12px 22px;
    border: 1px solid #b7d2c3;
    border-radius: 24px;
    background: #f7fff9;
    color: #164d36;
    font: 700 14px/1.4 var(--petmap-font);
    box-shadow: 0 3px 16px #193f3426;
  }
  .map-page.mobile-map .mobile-results-launcher:disabled {
    opacity: 0.65;
  }
  .map-page.mobile-map
    .map-area[data-mobile-sheet]:not([data-mobile-sheet=""])
    > .mobile-results-launcher,
  .map-page.mobile-map
    .map-area[data-mobile-sheet]:not([data-mobile-sheet=""])
    > .map-legend,
  .map-page.mobile-map
    .map-area[data-mobile-sheet]:not([data-mobile-sheet=""])
    > .map-status {
    display: none;
  }
  .map-page.mobile-map .map-area > .mobile-map-sheet {
    position: absolute !important;
    inset: auto 0 0 !important;
    transform: none !important;
    width: 100% !important;
    max-width: 100% !important;
    height: min(72%, 560px) !important;
    max-height: calc(100% - 76px) !important;
    min-height: 0 !important;
    margin: 0 !important;
    border: 1px solid #cddfd4 !important;
    border-bottom: 0 !important;
    border-radius: 20px 20px 0 0 !important;
    background: #fff;
    box-shadow: 0 -6px 24px #193f3426;
    box-sizing: border-box;
    z-index: 240 !important;
    overflow: hidden !important;
    padding: 14px 16px calc(14px + env(safe-area-inset-bottom, 0px)) !important;
  }
  .map-page.mobile-map .map-area > #petFilterPanel:not([hidden]) {
    display: flex !important;
    flex-direction: column;
    gap: 10px;
  }
  .map-page.mobile-map .map-area > #petFilterPanel[hidden],
  .map-page.mobile-map .map-area > #placeResults:not(.mobile-results-open) {
    display: none !important;
  }
  .map-page.mobile-map .fixed-filter-header {
    min-height: 44px;
  }
  .map-page.mobile-map #petFilterClose {
    float: none !important;
    min-width: 48px;
    min-height: 44px;
  }
  .map-page.mobile-map .scrolling-filter-conditions {
    touch-action: pan-y;
    -webkit-overflow-scrolling: touch;
  }
  .map-page.mobile-map .scrolling-filter-conditions label {
    min-height: 40px;
    margin: 3px 10px 3px 0;
    font-size: 14px;
  }
  .map-page.mobile-map .scrolling-filter-conditions input[type="checkbox"] {
    width: 18px;
    height: 18px;
  }
  .map-page.mobile-map .fixed-filter-footer {
    padding-top: 10px;
  }
  .map-page.mobile-map .pet-filter-actions button {
    min-height: 44px;
    flex: 1;
  }
  .map-page.mobile-map
    .map-area
    > #placeResults.mobile-results-open:not([hidden]) {
    display: flex !important;
    flex-direction: column;
  }
  .map-page.mobile-map #placeResults .place-results-header {
    position: relative;
    padding: 0 56px 10px 0;
  }
  .map-page.mobile-map #placeResults .place-results-header h2 {
    display: block;
    font-size: 16px;
    line-height: 1.5;
  }
  .map-page.mobile-map .mobile-results-close {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    min-height: 44px;
    padding: 8px;
    border: 1px solid #cddfd4;
    background: #f7fff9;
    color: #08643e;
  }
  .map-page.mobile-map #placeResults .place-results-header button {
    min-height: 44px;
  }
  .map-page.mobile-map #placeResults.is-collapsed #placeResultsBasis {
    display: block;
  }
  .map-page.mobile-map #placeResults > #placeList {
    min-height: 0;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    touch-action: pan-y;
    -webkit-overflow-scrolling: touch;
  }
  .map-page.mobile-map #placeResultsBasis {
    padding: 8px 0;
    font-size: 11px;
  }
  .map-page.mobile-map .map-area > .place-detail-card {
    display: flex !important;
    flex-direction: column;
    height: min(230px, 60%) !important;
  }
  .map-page.mobile-map .map-area > .place-detail-card.mobile-detail-expanded {
    height: min(72%, 560px) !important;
  }
  .map-page.mobile-map .place-detail-card > button[aria-label="상세정보 닫기"] {
    right: 12px !important;
    top: 8px !important;
    width: 44px !important;
    height: 44px !important;
    flex: none;
  }
  .map-page.mobile-map .place-detail-card > div:not(.place-detail-body) {
    flex: 0 0 auto;
    min-height: 44px;
    padding: 0 48px 8px 0 !important;
  }
  .map-page.mobile-map .place-detail-card > .place-detail-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
    touch-action: pan-y;
    -webkit-overflow-scrolling: touch;
    padding: 0 !important;
  }
  .map-page.mobile-map .place-detail-body > * {
    max-height: none !important;
    overflow: visible !important;
  }
  .map-page.mobile-map .mobile-detail-expand {
    display: block;
    flex: 0 0 auto;
    min-height: 44px;
    margin-top: 8px;
    border: 1px solid #b7d2c3;
    border-radius: 10px;
    background: #eef8f2;
    color: #08643e;
    font-weight: 700;
  }
  .map-page.mobile-map .side-menu {
    height: var(--mobile-viewport-height, 100dvh);
    padding-bottom: calc(20px + env(safe-area-inset-bottom, 0px));
  }
}
@media (max-width: 360px) {
  .map-page.mobile-map header .patmap-brand .brand-logo {
    width: 30px;
    height: 30px;
  }
  .map-page.mobile-map header .patmap-brand .brand-name {
    font-size: 16px;
  }
  .map-page.mobile-map header .account-button {
    max-width: 96px;
    font-size: 10px;
    padding: 7px;
  }
}
@media (max-width: 700px) and (max-height: 500px),
  (max-width: 1000px) and (max-height: 500px) and (pointer: coarse) {
  .map-page.mobile-map header {
    flex-wrap: nowrap;
    padding: 5px 10px;
  }
  .map-page.mobile-map header .patmap-brand {
    flex: 0 0 auto;
  }
  .map-page.mobile-map header .patmap-brand .brand-logo {
    width: 30px;
    height: 30px;
  }
  .map-page.mobile-map header .patmap-brand .brand-name {
    display: none;
  }
  .map-page.mobile-map header .search-box {
    order: 0;
    flex: 1 1 0;
  }
  .map-page.mobile-map header .account-button {
    max-width: 104px;
    font-size: 10px;
  }
  .map-page.mobile-map .map-area > #petFilterPanel.mobile-map-sheet,
  .map-page.mobile-map .map-area > #placeResults.mobile-map-sheet,
  .map-page.mobile-map .map-area > .place-detail-card.mobile-detail-expanded {
    height: calc(100% - 8px) !important;
    max-height: calc(100% - 8px) !important;
  }
  .map-page.mobile-map .map-legend {
    bottom: calc(70px + env(safe-area-inset-bottom, 0px));
  }
}
