
      .city-map.leaflet-container { background: #f8f4ed; }
      .city-map .leaflet-popup-content-wrapper { border-radius: 14px; box-shadow: 0 14px 30px rgba(29,26,22,0.12); border: 1px solid #e6d8c9; }
      .city-map .leaflet-popup-content { margin: 10px 12px; font-family: "Inter", system-ui, -apple-system, sans-serif; color: #1d1a16; }
      .city-map .leaflet-popup-tip { background: #fffdf8; border: 1px solid #e6d8c9; }
      .city-map-popup { min-width: 140px; }
      .city-map-popup__title { font-family: "Playfair Display", Georgia, serif; font-size: 0.95rem; letter-spacing: 0.01em; }
      .city-map-popup__label { margin-bottom: 4px; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #7c5f35; }
      .city-map-popup__meta { margin-top: 2px; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.08em; color: #5a5148; }
      .city-map-popup__notice { box-sizing: border-box; border-bottom: 1px solid #e6d8c9; background: #f8f4ed; color: #5a5148; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.08em; line-height: 1.25; padding: 0.48rem 0.75rem; text-transform: uppercase; }
      .city-map-popup__link { align-items: center; border: 1px solid #d8c8b7; border-radius: 9999px; background: #fffdf8; box-sizing: border-box; color: #413a34; cursor: pointer; display: inline-flex; font-size: 0.72rem; font-weight: 700; justify-content: center; line-height: 1; min-height: 2rem; padding: 0.48rem 0.7rem; text-align: center; text-decoration: none; white-space: nowrap; width: 100%; }
      .city-map-popup__link:hover { background: #f8f4ed; color: #1d1a16; }
      .city-map-popup__passport-action { appearance: none; align-items: center; border: 1px solid #d8c8b7; border-radius: 9999px; background: #1d1a16; box-sizing: border-box; color: #fffdf8; cursor: pointer; display: inline-flex; font-family: "Inter", system-ui, -apple-system, sans-serif; font-size: 0.72rem; font-weight: 700; justify-content: center; line-height: 1; min-height: 2rem; padding: 0.48rem 0.7rem; text-align: center; text-decoration: none; white-space: nowrap; width: 100%; }
      .city-map-popup__passport-action:hover { background: #413a34; color: #fffdf8; }
      .city-map-popup__passport-action:disabled { cursor: wait; opacity: 0.7; }
      .city-map-popup__passport-action--saved { background: #f8f4ed; color: #413a34; }
      .city-map-popup__passport-action--saved:hover { background: #eee2d6; color: #1d1a16; }
      .city-map-popup--preview { min-width: 160px; }
      .city-map-popup__preview { display: none; }
      .city-map-popup__compact,
      .city-map-popup__preview-body,
      .city-map-popup__actions { box-sizing: border-box; padding-left: 12px; padding-right: 12px; }
      .city-map-popup--has-notice > .city-map-popup__compact { padding-top: 8px; }
      .city-map-popup__actions { display: grid; gap: 0.45rem; grid-template-columns: repeat(auto-fit, minmax(6.9rem, 1fr)); margin-top: 9px; }
      [data-city-map-expanded-preview-value="true"] .city-map .leaflet-popup-content-wrapper,
      .city-map.fn-map-expanded .leaflet-popup-content-wrapper,
      .city-map:fullscreen .leaflet-popup-content-wrapper { overflow: hidden; }
      [data-city-map-expanded-preview-value="true"] .city-map .leaflet-popup-content,
      .city-map.fn-map-expanded .leaflet-popup-content,
      .city-map:fullscreen .leaflet-popup-content { margin: 0; max-width: min(82vw, 19rem); }
      [data-city-map-expanded-preview-value="true"] .city-map .city-map-popup:not(.city-map-popup--preview),
      .city-map.fn-map-expanded .city-map-popup:not(.city-map-popup--preview),
      .city-map:fullscreen .city-map-popup:not(.city-map-popup--preview) { box-sizing: border-box; padding: 12px; width: min(82vw, 19rem); }
      [data-city-map-expanded-preview-value="true"] .city-map .city-map-popup--preview,
      .city-map.fn-map-expanded .city-map-popup--preview,
      .city-map:fullscreen .city-map-popup--preview { width: min(82vw, 19rem); }
      [data-city-map-expanded-preview-value="true"] .city-map .city-map-popup--preview .city-map-popup__compact,
      .city-map.fn-map-expanded .city-map-popup--preview .city-map-popup__compact,
      .city-map:fullscreen .city-map-popup--preview .city-map-popup__compact { padding-top: 10px; }
      [data-city-map-expanded-preview-value="true"] .city-map .city-map-popup__preview,
      .city-map.fn-map-expanded .city-map-popup__preview,
      .city-map:fullscreen .city-map-popup__preview { display: block; }
      .city-map-popup__image { aspect-ratio: 16 / 9; background: #f8f4ed; border-bottom: 1px solid #e6d8c9; overflow: hidden; }
      .city-map-popup__image img { display: block; height: 100%; object-fit: cover; width: 100%; }
      .city-map-popup__summary { margin: 8px 0 0; color: #413a34; font-size: 0.78rem; line-height: 1.45; }
      .city-map-popup__summary--compact { max-width: 18rem; line-height: 1.4; }
      .city-map-popup__tags { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 9px; }
      .city-map-popup__tag { border: 1px solid #e6d8c9; border-radius: 9999px; background: #f8f4ed; color: #5a5148; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.08em; padding: 0.24rem 0.42rem; text-transform: uppercase; }
      [data-city-map-expanded-preview-value="true"] .city-map .city-map-popup__actions,
      .city-map.fn-map-expanded .city-map-popup__actions,
      .city-map:fullscreen .city-map-popup__actions { border-top: 1px solid #eee2d6; margin-top: 10px; padding-bottom: 11px; padding-top: 9px; }
      .city-map-marker { background: transparent; border: none; }
      .city-map-marker__dot { display: block; width: 14px; height: 14px; border-radius: 9999px; background: #fff1e5; border: 2px solid #1d1a16; box-shadow: 0 2px 8px rgba(29,26,22,0.22); }
      .city-map-marker--primary .city-map-marker__dot { width: 16px; height: 16px; border-width: 3px; box-shadow: 0 0 0 3px rgba(125, 95, 53, 0.14), 0 3px 10px rgba(29,26,22,0.22); }
      .city-map-marker--secondary .city-map-marker__dot { width: 10px; height: 10px; background: #ffffff; border-color: #6f655c; box-shadow: 0 1px 5px rgba(29,26,22,0.16); }
      .city-map-user-marker { background: transparent; border: none; }
      .city-map-user-marker__dot { display: block; width: 16px; height: 16px; border-radius: 9999px; background: #1d4ed8; border: 3px solid rgba(255,255,255,0.95); box-shadow: 0 0 0 5px rgba(29,78,216,0.14), 0 6px 18px rgba(29,26,22,0.18); }
      .city-map-filter__chevron { display: inline-block; font-size: 1rem; line-height: 1; color: #5a5148; transition: transform 0.2s ease; }
      .city-map-filter[open] .city-map-filter__chevron { transform: rotate(180deg); }
      .location-map-legend,
      .city-map-state-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; border-bottom: 1px solid #e6d8c9; background: rgba(255,255,255,0.9); padding: 0.5rem 0.85rem; color: #5a5148; font-size: 0.64rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
      .location-map-legend__item { display: inline-flex; align-items: center; gap: 0.45rem; white-space: nowrap; }
      .location-map-legend__dot { box-sizing: border-box; display: inline-block; flex: 0 0 auto; border-radius: 9999px; }
      .location-map-legend__dot--primary { width: 1rem; height: 1rem; background: #fff1e5; border: 3px solid #1d1a16; box-shadow: 0 0 0 3px rgba(125,95,53,0.14), 0 2px 8px rgba(29,26,22,0.18); }
      .location-map-legend__dot--secondary { width: 0.65rem; height: 0.65rem; background: #ffffff; border: 2px solid #6f655c; box-shadow: 0 1px 5px rgba(29,26,22,0.16); }
      .city-map-state-legend__item { display: inline-flex; align-items: center; gap: 0.45rem; white-space: nowrap; }

      .city-map-marker__recommendation { position: absolute; top: -5px; left: 11px; display: flex; align-items: center; justify-content: center; width: 13px; height: 13px; box-sizing: border-box; border: 1.5px solid #fffdf8; border-radius: 50%; background: #047857; color: #fffdf8; font-family: system-ui, sans-serif; font-size: 10px; line-height: 1; box-shadow: 0 1px 3px rgba(29,26,22,0.18); pointer-events: none; }
      .city-map-marker--secondary .city-map-marker__recommendation { top: -6px; left: 6px; }
      .city-map-marker--passport-saved .city-map-marker__recommendation { top: 0; left: 23px; }
      .city-map-marker--passport-visited .city-map-marker__recommendation { top: -4px; left: 16px; }
      .city-map-recommendation-key { position: absolute; bottom: 25px; left: 10px; z-index: 800; display: flex; align-items: center; gap: 5px; padding: 5px 9px; border: 1px solid rgba(6,78,59,0.12); border-radius: 9999px; background: rgba(255,253,248,0.95); color: #065f46; font-family: Inter, system-ui, sans-serif; font-size: 11px; font-weight: 600; line-height: 1.3; pointer-events: none; }
      .city-map-recommendation-key > span { color: #047857; font-size: 14px; }
