.tournament-map-page { padding-top: 12px; padding-bottom: 28px; }
.map-filters { padding: 16px; background: #f1f3f5; border-radius: 8px; }
.map-filters label { font-weight: 600; }
.map-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.map-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(280px, 1fr); gap: 18px; }
#tournament-map { height: 580px; min-width: 0; background: #e8edf1; border: 1px solid #ced4da; border-radius: 8px; z-index: 0; }
.map-results-panel { max-height: 580px; overflow-y: auto; padding: 2px 8px 2px 2px; }
.map-result { padding: 14px; margin-bottom: 10px; border: 1px solid #dee2e6; border-radius: 6px; background: #fff; overflow-wrap: anywhere; }
.map-result h3 { font-size: 1rem; margin: 0 0 6px; }
.map-result p { margin: 4px 0; }
.map-result .badge { margin-right: 5px; }
.map-venue-button { display: block; text-align: left; padding: 4px 0; white-space: normal; }
.map-popup { max-height: 260px; overflow-y: auto; }
.map-popup section + section { border-top: 1px solid #dee2e6; margin-top: 12px; padding-top: 12px; }
.map-unavailable .map-layout { grid-template-columns: minmax(0, 1fr); }
.map-unavailable .map-results-panel { max-height: none; }
.map-unmapped-results { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 12px; }
.tournament-map-page [hidden] { display: none !important; }
.tournament-map-page summary { cursor: pointer; font-weight: 600; }
@media (max-width: 767px) {
    .map-layout { grid-template-columns: minmax(0, 1fr); }
    #tournament-map { height: 400px; height: min(55vh, 440px); min-height: 300px; }
    .map-results-panel { max-height: none; padding: 0; }
}
