/* PeakTales: quiet typography, compact controls and bounded glass surfaces. */
@font-face {
  font-family:'Instrument Sans'; font-style:normal; font-weight:400 700; font-display:swap;
  src:url('../fonts/instrument-sans-variable.woff2') format('woff2');
}
@font-face {
  font-family:'Instrument Sans'; font-style:normal; font-weight:400 700; font-display:swap;
  src:url('../fonts/instrument-sans-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family:'Manrope'; font-style:normal; font-weight:400 800; font-display:swap;
  src:url('../fonts/manrope-variable.woff2') format('woff2');
}
@font-face {
  font-family:'Manrope'; font-style:normal; font-weight:400 800; font-display:swap;
  src:url('../fonts/manrope-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
:root {
  --pt-font-ui:'Instrument Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --pt-font-heading:'Manrope',var(--pt-font-ui);
  --pt-surface-rgb:17,28,37;
  --pt-glass-opacity:1;
  --pt-glass-filter:none;
  --pt-glass-border-alpha:.12;
  --pt-glass-highlight-alpha:0;
  --pt-control-border:rgba(190,218,223,.14);
  --peak-dialog-radius:18px;
  --peak-dialog-shadow:0 14px 40px rgba(0,0,0,.24);
}
html, html body { font-family:var(--pt-font-ui)!important; font-size:14px; font-weight:400; -webkit-font-smoothing:antialiased; }
html body :is(button,input,textarea,select,.leaflet-container,.saved-popup-card,.place-item,.journal-card) { font-family:var(--pt-font-ui)!important; }
html body :is(h1,h2,h3,.saved-popup-title,.place-name) { font-family:var(--pt-font-heading)!important; font-weight:600!important; letter-spacing:-.025em; }
html body :is(dialog h2,.weather-modal-title,.legal-modal-title,.places-overview-title,.places-list-title,.modal-title) { font-size:18px!important; line-height:1.35; }
html body .header .title { font-family:var(--pt-font-heading)!important; font-weight:700!important; letter-spacing:-.045em!important; text-shadow:none!important; }
html body :is(.weather-temp,.stat-number,.saved-popup-stat-val,.place-details-stat-val) { font-variant-numeric:tabular-nums; }
html body :is(.peak-dialog-eyebrow,.section-title,.place-details-section-label) { letter-spacing:.035em; font-weight:500; }
html body .peak-dialog-eyebrow { display:none; }

/* Blur belongs inside the rounded card, never in a screen-sized overlay. */
html body :is(
  .header,.mobile-nav,#sidebar.sidebar,#locateMeBtn,
  #settingsModal .settings-card,#editModal .card,#addInstructionsModal .add-place-card,
  #peakMessageDialog .peak-dialog-card,#profilePage .profile-content-wrapper,
  #loginOverlay .login-card,#shareModalOverlay .share-modal-card,
  #placeDetailsModal .place-details-card,#journalDialog .journal-card,
  #createMemoryModal .card,#offlinePlacesDialog .card,
  #placesOverviewOverlay .places-overview-card,#placesListOverlay .places-list-card,
  #weatherModal .weather-modal-content,#legalModal .legal-modal-content,
  .interactive-elevation-window,.interactive-elevation-modal,.elevation-profile-modal > .elevation-profile-modal-content,
  .email-verification-modal,.vemarcus-modal,.pwa-install-modal,#pwaInstallModal > .modal,
  .save-confirmation-card,.custom-modern-saved-popup .saved-popup-card,
  #mobilePlaceSurface .saved-popup-card,#cookieBanner,.interactive-map-tool-group,#inspirationDrawer,#lightbox .lightbox-inner
) {
  background-color:rgba(var(--pt-surface-rgb),var(--pt-glass-opacity))!important;
  background-image:linear-gradient(145deg,rgba(255,255,255,var(--pt-glass-highlight-alpha)),transparent 60%)!important;
  border-color:rgba(206,231,231,var(--pt-glass-border-alpha))!important;
  backdrop-filter:var(--pt-glass-filter)!important;
  -webkit-backdrop-filter:var(--pt-glass-filter)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,var(--pt-glass-highlight-alpha)),0 14px 40px rgba(0,0,0,.24)!important;
}
html body :is(dialog .card,.profile-content-wrapper,.journal-card,.places-overview-card,.weather-modal-content,.share-modal-card,.place-details-card,.legal-modal-content,.interactive-elevation-modal,.vemarcus-modal,.pwa-install-modal) { border-radius:18px!important; }
html body :is(.places-overview-header,.places-list-header,.settings-header,.weather-modal-header,.profile-header,.place-details-header,.share-modal-header) { background:transparent!important; border-bottom-color:var(--pt-control-border)!important; }
html body .header .weather-section { background:transparent!important; box-shadow:none!important; }
html body .header .weather-content:not([hidden]):not([style*="display: none"]) { display:flex!important; align-items:center!important; gap:8px!important; }
html body .header .weather-icon { flex:none; }
html body .header .weather-content > div { min-width:0; }
html body .header .weather-temp { font-weight:600!important; }
html body .header .weather-location { font-weight:400!important; }

/* Shared control proportions; category tiles retain their original motion. */
html body :is(.btn,.btn-small,.add-btn,.filter-btn,.option-btn,.saved-popup-btn,.saved-popup-memory-btn,.places-filter-btn,.settings-action,.profile-diary-link,.visit-add-button,.place-details-btn,.login-btn,.social-btn,.tutorial-btn,.btn-primary,.btn-secondary,.save-confirmation-btn,.elevation-profile-btn,.legal-link-btn) {
  font-size:12px!important; font-weight:550!important; line-height:1.3!important;
  border-radius:9px!important; letter-spacing:0!important; text-shadow:none!important;
  box-shadow:none!important;
}
html body :is(.btn,.btn-small,.add-btn,.filter-btn,.settings-action,.profile-diary-link,.visit-add-button,.place-details-btn,.login-btn,.social-btn,.tutorial-btn,.btn-primary,.btn-secondary,.save-confirmation-btn,.elevation-profile-btn,.legal-link-btn) { min-height:36px; padding:8px 12px; gap:7px; }
html body :is(.btn,.btn-small,.add-btn,.filter-btn,.settings-action,.saved-popup-btn,.place-details-btn) > svg { width:16px!important; height:16px!important; flex:none; }
html body :is(.text-input,.login-input,.map-selector-select) { border-radius:9px!important; border-color:var(--pt-control-border)!important; box-shadow:none!important; font-weight:400!important; }
html body :is(button,a,input,textarea,select,summary):focus-visible { outline:2px solid #2dd4bf; outline-offset:2px; }
html body :is(.btn,.add-btn,.filter-btn,.option-btn,.btn-small):focus:not(:focus-visible) { outline:none!important; }
html body .btn-count { border:0!important; padding:2px 6px!important; font-size:10px!important; font-weight:500!important; }

/* Map tools: same spacing and quieter emphasis across desktop and phone. */
html body #sidebar .sidebar-section { padding-bottom:16px!important; margin-bottom:0!important; }
html body #sidebar .section-title { font-family:var(--pt-font-heading)!important; font-size:13px!important; font-weight:600!important; }
html body #sidebar :is(#addNewMarkerBtn,#inspireBtn,.sidebar-settings button) { min-height:38px!important; padding:9px 12px!important; font-size:12px!important; box-shadow:none!important; }
html body #sidebar .filter-buttons .filter-btn { min-height:38px!important; padding:8px 10px!important; font-size:12px!important; }
html body #sidebar .filter-buttons .filter-btn.active { border-color:rgba(45,212,191,.5)!important; }
html body #sidebar .leaflet-control-geocoder { border:1px solid var(--pt-control-border)!important; box-shadow:none!important; background:rgba(8,17,25,.55)!important; }
html body #sidebar .leaflet-control-geocoder-form input { font-family:var(--pt-font-ui)!important; }
html body :is(.leaflet-control-zoom.leaflet-bar a,.leaflet-control-geocoder.leaflet-bar) {
  backdrop-filter:none!important; -webkit-backdrop-filter:none!important;
}
html body .mobile-nav .nav-btn span { font-size:11px!important; font-weight:500!important; }
html body #locateMeBtn { border-radius:12px!important; }

/* Overview: keep the pop-in, hover lift, icon animation and brand gradients. */
html body #placesOverviewOverlay .places-overview-card { max-width:400px!important; }
html body #placesOverviewOverlay .places-overview-header { padding:12px 18px!important; }
html body #placesOverviewOverlay .places-overview-content { padding:18px!important; }
html body #placesOverviewOverlay .places-overview-stats { gap:12px!important; margin-bottom:16px!important; }
html body #placesOverviewOverlay .stat-item-btn { min-height:136px; padding:16px 12px!important; gap:9px!important; border-radius:13px!important; }
html body #placesOverviewOverlay .stat-icon-wrapper { width:44px!important; height:44px!important; border-radius:12px!important; box-shadow:none!important; }
html body #placesOverviewOverlay .stat-icon-img { width:29px!important; height:29px!important; }
html body #placesOverviewOverlay .stat-number { font-family:var(--pt-font-heading)!important; font-size:29px!important; font-weight:600!important; }
html body #placesOverviewOverlay .stat-label { font-size:12px!important; font-weight:500!important; text-transform:none!important; letter-spacing:0!important; }
html body #placesOverviewOverlay .places-overview-footer { font-size:11px!important; color:#9aadb8!important; line-height:1.5; }

/* The list stays scrollable; filters use one balanced segmented control. */
html body #placesListOverlay .places-list-card { width:min(620px,100%)!important; height:min(640px,calc(var(--pt-viewport-height,100dvh) - var(--pt-safe-top,0px) - var(--pt-safe-bottom,0px) - 24px))!important; max-height:calc(var(--pt-viewport-height,100dvh) - var(--pt-safe-top,0px) - var(--pt-safe-bottom,0px) - 24px)!important; border-radius:18px!important; }
html body #placesListOverlay .places-list-header { display:grid!important; grid-template-columns:minmax(32px,1fr) minmax(0,auto) minmax(32px,1fr); align-items:center; padding:12px 16px!important; gap:10px; }
html body #placesListOverlay .places-list-back-btn { justify-self:start; }
html body #placesListOverlay .places-list-close { justify-self:end; }
html body #placesListOverlay .places-list-back-btn { height:32px!important; min-height:32px!important; padding:0 8px!important; font-size:11px!important; box-shadow:none!important; border-radius:8px!important; }
html body #placesListOverlay .places-list-filters { display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3px!important; margin:4px 16px 12px!important; padding:3px!important; border-radius:11px!important; background:rgba(5,13,20,.4)!important; }
html body #placesListOverlay .places-filter-btn { min-height:32px!important; height:32px!important; padding:0 6px!important; border:0!important; min-width:0; }
html body #placesListOverlay .places-filter-btn.active { background:rgba(20,184,166,.18)!important; color:#5eead4!important; }
html body #placesListOverlay .places-list-content { padding:0 16px 16px!important; }
html body #placesListOverlay .place-item { padding:12px!important; border-radius:12px!important; margin-bottom:8px!important; }
html body #placesListOverlay .place-name { font-size:14px!important; font-weight:600!important; line-height:1.4; }
html body #placesListOverlay .place-status { font-size:10px!important; font-weight:500!important; padding:3px 7px!important; border-radius:6px!important; }

/* Editor and notices keep every original field, tab and action. */
html body #editModal .card { border-color:var(--pt-control-border)!important; }
html body #editModal :is(.modal-accordion,.visit-editor) { border-color:var(--pt-control-border)!important; }
html body #editModal :is(.accordion-header,.visit-editor summary) { font-weight:500!important; }
html body #editModal .option-btn { font-weight:500!important; box-shadow:none!important; }
html body #editModal .option-btn.selected { border-width:1px!important; }
html body #editModal .place-editor-tabs { background:rgba(5,13,20,.55)!important; }
html body #editModal .place-editor-tabs button { font-weight:500!important; }
html body #peakMessageDialog .peak-dialog-card { width:min(100%,390px)!important; padding:20px!important; }
html body .peak-dialog-header { margin-bottom:14px; align-items:center; }
html body .peak-dialog-header h2 { margin:0; }
html body #peakMessageText { font-size:13px; line-height:1.65; }
html body .peak-dialog-actions { margin-top:18px; padding-top:16px; gap:8px; }
html body .peak-dialog-actions button { min-height:36px; padding:8px 14px; border-radius:9px; font-size:12px; font-weight:550; }
html body #addInstructionsModal .import-choice-copy strong { font-weight:600; }
html body #addInstructionsModal .import-choice-copy > span { font-weight:400; }
html body #addInstructionsModal .import-choice-icon { background:rgba(20,184,166,.09); border-color:rgba(45,212,191,.2); }

/* Settings, profile, diary, weather and place details use the same hierarchy. */
html body #settingsModal :is(.settings-section h3,.settings-field-label,.settings-toggle-copy strong,.settings-data-panel summary) { text-transform:none!important; letter-spacing:0!important; font-family:var(--pt-font-ui)!important; font-weight:500!important; }
html body #settingsModal .settings-section h3 { font-size:12px!important; color:#9aadb8!important; }
html body #settingsModal :is(.settings-action,.settings-legal,#map-style-selector) { font-family:var(--pt-font-ui)!important; font-weight:500!important; }
html body #settingsModal button.settings-action { min-height:36px!important; }
html body #settingsModal .settings-toggle-copy strong { font-size:12px; }
html body #settingsModal .settings-switch-group { background:rgba(25,40,52,.7)!important; border-color:var(--pt-control-border)!important; }
html body #settingsModal .settings-toggle-row { min-height:54px; }
html body #settingsModal .settings-toggle-row:hover { background:rgba(255,255,255,.04)!important; }
html body #profilePage .profile-content-wrapper { width:min(460px,calc(100vw - 24px))!important; padding:18px!important; }
html body #profilePage .profile-header { margin-bottom:14px!important; padding-bottom:12px!important; }
html body #profilePage #displayUsername { font-size:19px!important; font-weight:600!important; }
html body #profilePage :is(#statTotalPlaces,#statVisitedPlaces,#statWishlistPlaces) { font-family:var(--pt-font-heading)!important; font-size:22px!important; font-weight:600!important; }
html body #profilePage .profile-stat-box { padding:12px 6px!important; border-radius:11px!important; }
html body #profilePage :is(#showEditProfileBtn,#profileLogoutBtn,#updateProfileBtn,#cancelEditBtn) { min-height:38px!important; padding:8px 12px!important; font-size:12px!important; box-shadow:none!important; }
html body #profilePage .profile-diary-link { font-size:12px!important; }
html body #loginOverlay .login-form { padding:24px!important; }
html body #loginOverlay .login-subtitle { font-size:13px; line-height:1.55; margin-bottom:14px; }
html body #loginOverlay .login-input { margin-top:12px; padding:10px 12px; }
html body #loginOverlay :is(.social-divider,.tutorial-divider) { margin:16px 0; }
html body #shareModalOverlay .share-modal-header { padding:14px 18px; }
html body #shareModalOverlay .share-modal-content { padding:18px; }
html body #shareModalOverlay :is(.share-photos-toggle-wrap,.share-gpx-toggle-wrap,.share-place-info) { padding:12px!important; border-radius:11px!important; }
html body #shareModalOverlay .share-place-name { font-family:var(--pt-font-heading); font-size:16px; font-weight:600; }
html body #shareModalOverlay .share-link-input { border-radius:9px; }
html body #shareModalOverlay :is(.btn-primary,.btn-small) { border:0!important; min-height:36px!important; padding:8px 12px!important; cursor:pointer; }
html body #shareModalOverlay :is(.share-photos-toggle-wrap,.share-gpx-toggle-wrap) input[type=checkbox] { width:18px!important; height:18px!important; flex:none; }
html body #lightbox .lightbox-inner {
  width:min(960px,calc(100vw - 24px)); box-sizing:border-box; border-radius:18px;
  max-height:calc(var(--pt-viewport-height,100dvh) - var(--pt-safe-top,0px) - var(--pt-safe-bottom,0px) - 24px);
  overflow:auto;
}
html body #lightbox .lightbox-main {
  display:grid; place-items:center; box-sizing:border-box; padding:48px 12px;
  min-height:min(240px,calc(var(--pt-viewport-height,100dvh) - var(--pt-safe-top,0px) - var(--pt-safe-bottom,0px) - 128px));
}
html body #lightbox .lightbox-main img { max-width:100%; max-height:calc(var(--pt-viewport-height,100dvh) - var(--pt-safe-top,0px) - var(--pt-safe-bottom,0px) - 210px); }
html body #lightbox .lb-nav { width:32px; height:32px; border-radius:8px; font-size:12px; }
html body #lightbox .lb-prev { left:12px; }
html body #lightbox .lb-next { right:12px; }
html body #lightbox .lb-close { top:10px; right:10px; }
html body #lightbox .lb-caption { left:12px; right:12px; bottom:10px; font-size:12px; }
html body #lightbox .lightbox-thumbs { padding:12px; gap:8px; background:transparent; }
html body #createMemoryModal .card { padding:18px!important; }
html body #createMemoryModal .memory-choice-card { padding:16px!important; border-radius:12px!important; }
html body #journalDialog .journal-card { padding:18px!important; max-width:500px; }
html body #journalDialog .journal-header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-bottom:12px; border-bottom:1px solid var(--pt-control-border); }
html body #journalDialog .journal-month { font-size:11px; font-weight:500; color:#9aadb8; }
html body #journalDialog .journal-entry { padding:12px 0; }
html body #journalDialog .journal-entry h4 { font-family:var(--pt-font-heading); font-size:13px; font-weight:600; }
html body #placeDetailsModal .place-details-card { padding:18px!important; }
html body #placeDetailsModal .place-details-stat-val { font-family:var(--pt-font-heading)!important; font-size:18px!important; font-weight:600!important; }
html body #placeDetailsModal .place-details-section-label { font-size:11px!important; font-weight:500!important; letter-spacing:.03em!important; }
html body #placeDetailsModal .place-details-stat-card { padding:10px!important; border-radius:10px!important; }
html body #weatherModal .weather-modal-content { padding:18px!important; max-width:440px!important; }
html body #weatherModal .weather-modal-header { margin-bottom:14px; }
html body #weatherModal :is(.weather-current-info h3,#weatherCurrentTemp) { font-family:var(--pt-font-heading)!important; font-size:25px!important; font-weight:600!important; }
html body #weatherModal :is(.weather-day-name,.weather-day-temp) { font-weight:500!important; }
html body #weatherModal .weather-current { padding:12px; margin-bottom:18px; }

/* GPX stays in one bounded window; the map and chart keep their interactions. */
html body #interactiveElevationOverlay {
  align-items:center; justify-content:center;
  box-sizing:border-box; padding:16px;
}
html body #interactiveElevationOverlay .interactive-elevation-window {
  display:flex; flex-direction:column; box-sizing:border-box;
  width:min(1040px,100%); height:min(720px,100%); max-height:100%;
  border:1px solid var(--pt-control-border); border-radius:18px; overflow:hidden;
}
html body #interactiveElevationOverlay .interactive-elevation-header {
  flex:none; padding:12px 16px; background:transparent;
  border-bottom:1px solid var(--pt-control-border);
}
html body #interactiveElevationOverlay .interactive-elevation-title {
  font-size:18px!important; line-height:1.35; white-space:normal;
}
html body #interactiveElevationOverlay .interactive-elevation-content {
  flex:1; min-height:0; padding:16px; gap:12px; overflow:auto;
}
html body #interactiveElevationOverlay .interactive-stats-section {
  flex:none; padding:0; background:transparent; border:0;
}
html body #interactiveElevationOverlay .interactive-stats-grid {
  grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; max-width:none;
}
html body #interactiveElevationOverlay .interactive-stat-item {
  padding:10px; border-color:var(--pt-control-border); border-radius:10px;
}
html body #interactiveElevationOverlay .interactive-stat-label {
  font-size:11px; text-transform:none; letter-spacing:0;
}
html body #interactiveElevationOverlay .interactive-stat-value {
  font-family:var(--pt-font-heading); font-size:17px; font-weight:600;
}
html body #interactiveElevationOverlay .interactive-map-container {
  flex:1 0 180px; min-height:180px;
}
html body #interactiveElevationOverlay .interactive-elevation-chart-container {
  flex:0 0 240px; height:240px;
}
html body .custom-modern-saved-popup .leaflet-popup-content-wrapper {
  background:transparent!important; border:0!important;
  backdrop-filter:none!important; -webkit-backdrop-filter:none!important;
}
html body .custom-modern-saved-popup .leaflet-popup-tip {
  background:rgba(var(--pt-surface-rgb),var(--pt-glass-opacity))!important;
  backdrop-filter:var(--pt-glass-filter)!important; -webkit-backdrop-filter:var(--pt-glass-filter)!important;
}

/* Saved place sheets: readable titles, small tags and compact paired actions. */
html body .custom-modern-saved-popup .saved-popup-card { font-family:var(--pt-font-ui)!important; }
html body .custom-modern-saved-popup .saved-popup-title { font-size:19px!important; font-weight:600!important; line-height:1.35!important; letter-spacing:-.03em!important; }
html body .custom-modern-saved-popup .saved-popup-type-pill { font-size:10px!important; font-weight:500!important; padding:3px 7px!important; border-radius:6px!important; box-shadow:none!important; }
html body .custom-modern-saved-popup .saved-popup-stat-val { font-size:17px!important; font-weight:600!important; }
html body .custom-modern-saved-popup :is(.saved-popup-btn,.saved-popup-memory-btn) { font-weight:500!important; min-height:36px!important; height:auto!important; padding:8px 10px!important; }
html body #mobilePlaceSurface .saved-popup-title { font-size:18px!important; }
html body #mobilePlaceSurface :is(.saved-popup-btn,.saved-popup-memory-btn) { min-height:36px!important; height:auto!important; padding:8px!important; font-size:11px!important; }

/* One closing control, including dynamically created windows and map popups. */
html body .pt-close-control[id], html body .pt-close-control,
html body :is(dialog[id],.modal-overlay[id],.weather-modal[id],.legal-modal[id],.places-overview-overlay[id],.places-list-overlay[id],.interactive-elevation-overlay[id],#sidebar,#mobilePlaceSurface,#map) .pt-close-control[aria-label],
html body #editModal.compact-place-editor .card > div:first-child .pt-close-control {
  display:inline-flex!important; align-items:center!important; justify-content:center!important;
  width:32px!important; height:32px!important; min-width:32px!important; min-height:32px!important;
  max-width:32px!important; max-height:32px!important; flex:0 0 32px!important;
  margin:0!important; padding:0!important; border:0!important; border-radius:8px!important;
  background:transparent!important; background-image:none!important; color:#f97316!important;
  box-shadow:none!important; text-shadow:none!important; filter:none!important;
  backdrop-filter:none!important; -webkit-backdrop-filter:none!important;
  font-size:16px!important; line-height:1!important; cursor:pointer; text-decoration:none!important;
  transform:none!important;
}
html body .pt-close-control::before, html body .pt-close-control::after { content:none!important; display:none!important; }
html body .pt-close-control svg,
html body :is(dialog[id],.modal-overlay[id],.weather-modal[id],.legal-modal[id],.places-overview-overlay[id],.places-list-overlay[id],.interactive-elevation-overlay[id],#sidebar,#mobilePlaceSurface,#map) .pt-close-control[aria-label] svg { display:block!important; width:14px!important; height:14px!important; min-width:14px!important; min-height:14px!important; fill:none!important; stroke:#f97316!important; stroke-width:1.8!important; }
html body .pt-close-control:hover { background:rgba(249,115,22,.1)!important; }
html body .pt-close-control:focus:not(:focus-visible) { outline:none!important; }
html body .pt-close-control:focus-visible,
html body :is(dialog[id],.modal-overlay[id],.weather-modal[id],.legal-modal[id],.places-overview-overlay[id],.places-list-overlay[id],.interactive-elevation-overlay[id],#sidebar,#mobilePlaceSurface,#map) .pt-close-control[aria-label]:focus-visible {
  outline:none!important; background:rgba(249,115,22,.08)!important;
  box-shadow:inset 0 0 0 1px rgba(249,115,22,.65)!important;
}
/* Saved-place cards already supply their own X; do not revive Leaflet's hidden duplicate. */
html body :is(#map,#mobilePlaceSurface) .custom-modern-saved-popup:has(.saved-popup-close-btn) a.leaflet-popup-close-button.pt-close-control[aria-label] { display:none!important; }

@media (max-width:768px), (max-height:500px) and (max-width:1024px) {
  html body :is(input:not([type=range]):not([type=checkbox]):not([type=radio]),textarea,select) { font-size:16px!important; }
  html body :is(dialog h2,.weather-modal-title,.legal-modal-title,.places-overview-title,.places-list-title) { font-size:17px!important; }
  html body #sidebar .filter-buttons .filter-btn { min-height:42px!important; }
  html body #sidebar #mobileMenuClose { width:32px!important; height:32px!important; min-height:32px!important; }
  html body #placesListOverlay .places-list-back-btn { min-width:32px!important; }
  html body #placesListOverlay .places-list-back-btn span { display:none; }
  html body #placesOverviewOverlay .places-overview-header { padding:10px 14px!important; }
  html body #placesOverviewOverlay .places-overview-content { padding:14px!important; }
  html body #placesOverviewOverlay .stat-item-btn { padding:14px 10px!important; min-height:126px; }
  html body #settingsModal .settings-header { padding:14px 16px 12px; }
  html body #settingsModal .settings-body { padding:0 16px 8px; }
  html body #settingsModal button.settings-map-export { min-height:32px!important; font-size:11px!important; }
  html body #settingsModal #map-style-selector { min-height:42px; }
  html body #loginOverlay .login-form { padding:18px!important; }
  html body #interactiveElevationOverlay { padding:12px; }
  html body #interactiveElevationOverlay .interactive-elevation-window { height:min(680px,100%); }
  html body #interactiveElevationOverlay .interactive-elevation-header { padding:10px 12px; }
  html body #interactiveElevationOverlay .interactive-elevation-title { font-size:17px!important; }
  html body #interactiveElevationOverlay .interactive-elevation-content { padding:12px; gap:10px; }
  html body #interactiveElevationOverlay .interactive-stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  html body #interactiveElevationOverlay .interactive-stat-item { padding:8px; }
  html body #interactiveElevationOverlay .interactive-map-container { flex-basis:140px; min-height:140px; }
  html body #interactiveElevationOverlay .interactive-elevation-chart-container { flex-basis:168px; height:168px; }
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
  :root { --pt-glass-opacity:1!important; }
}
html[data-glass-enabled="false"] body * {
  backdrop-filter:none!important; -webkit-backdrop-filter:none!important;
}
@media (prefers-reduced-transparency:reduce) {
  :root { --pt-glass-opacity:1!important; --pt-glass-filter:none!important; --pt-glass-highlight-alpha:0!important; }
}
