/* Three compact cities per desktop row; no event thumbnails or summaries. */
.overview-intro{padding:24px 0 10px}
.overview-intro h1{font-size:clamp(25px,3vw,34px);font-weight:650;line-height:1.25;margin:0 0 8px}
.overview-intro>p:not(.intro-kicker){font-size:13px;margin-bottom:8px}
.overview-intro .overview-count{font-size:11px;color:var(--jade)}
.overview-city-nav{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:20px}
.overview-city-nav a{font-size:11px;padding:5px 9px;border:1px solid var(--line);border-radius:3px;background:#fff}
.overview-city-nav span{margin-left:5px;color:var(--muted)}
.overview-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin:8px 0 16px;font-size:12px}
.overview-control{display:flex;flex-direction:column;gap:5px;min-width:0;flex:0 1 255px}
.overview-event-controls{display:flex;flex-wrap:wrap;gap:12px;width:100%;align-items:flex-end}
.overview-event-controls .overview-control{flex:1 1 180px}
.overview-filter-count{font-size:12px;color:var(--muted);margin:0 0 12px}
.overview-custom-dates{display:flex;flex-wrap:wrap;gap:12px;max-width:100%}
.overview-custom-dates label{display:grid;gap:5px;min-width:0}
.overview-custom-dates[hidden]{display:none}
.city-directory-note{font-size:12px;color:var(--muted);margin:0 0 12px}
.overview-controls label{font-weight:600}
.overview-controls select,.overview-controls input{box-sizing:border-box;width:100%;height:42px;max-width:100%;padding:6px 10px;border:1px solid var(--line);border-radius:3px;background:#fff;color:var(--ink);font:inherit}
.overview-controls select{padding-right:30px}
.overview-checks{border:0;padding:0;margin:0;min-width:0;flex:1 1 100%}
.overview-checks legend{font-weight:650;padding:0;margin:0 0 7px;font-size:12px}
.overview-checks legend small{font-size:10px;font-weight:400;color:var(--muted);margin-left:6px}
.overview-options{display:flex;flex-wrap:wrap;gap:7px}
.overview-option{display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:#fff;border-radius:3px;padding:7px 10px;min-height:38px;cursor:pointer;box-sizing:border-box;font-size:12px;line-height:1.4}
.overview-option:has(input:checked){background:#eaf0e9;border-color:var(--jade);color:var(--jade)}
.overview-controls .overview-option input{width:16px;height:16px;min-height:0;min-width:16px;padding:0;margin:0;accent-color:var(--jade)}
.overview-map-link{font-size:12px;color:var(--jade)}
.overview-search{flex:1 1 250px}
.overview-controls input:focus-visible,.overview-controls select:focus-visible,.overview-reset:focus-visible{outline:2px solid var(--jade);outline-offset:2px}
.overview-reset,.overview-map-toggle{min-height:42px;padding:6px 12px;border:1px solid var(--line);border-radius:3px;background:#fff;color:var(--jade);font:inherit;cursor:pointer}
.overview-group{grid-column:1/-1;font-size:16px;font-weight:650;margin:14px 0 0;padding-bottom:8px;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.region-view-all{font-size:11px;font-weight:500;color:var(--jade);padding:8px 0}
.map-unmapped{color:var(--muted);font-size:10px!important;overflow-wrap:anywhere}
.overview-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;align-items:start;padding-bottom:28px}
.overview-layout.map-collapsed{grid-template-columns:minmax(0,1fr)}
.overview-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:8px 0 16px}
.overview-actions .btn{min-height:42px;font-size:12px;padding:10px 14px}
.overview-map[hidden]{display:none}
#city-overview-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;min-width:0}
.overview-city{border:1px solid var(--line);border-radius:4px;padding:16px;background:#fff;min-width:0;scroll-margin-top:16px;display:flex;flex-direction:column}
.overview-city-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline;margin-bottom:7px}
.overview-city-head h2{font-size:20px;font-weight:650;margin:0;line-height:1.3;letter-spacing:-.02em}
.overview-city-head h2 span{font-size:13px;color:var(--jade)}
.city-event-count{font-size:10px;white-space:nowrap;color:var(--muted)}
.city-updated{font-size:10px;margin:0 0 12px;line-height:1.6;color:var(--muted)}
.overview-titles{margin:0 0 12px;padding-left:17px;display:grid;gap:10px;font-size:12px;line-height:1.65}
.overview-titles li{padding-left:2px;overflow-wrap:anywhere}
.overview-titles li::marker{color:#81998a}
.city-view-all{font-size:11px;color:var(--jade);font-weight:600;margin-top:auto;padding-top:8px;border-top:1px solid #eef0ea}
.overview-map{position:sticky;top:20px;border:1px solid var(--line);border-radius:4px;background:#f0f3ed;padding:18px;min-width:0}
.overview-map h2{font-size:17px;letter-spacing:0;font-weight:650;line-height:1.4;margin-bottom:5px}
.overview-map p{font-size:11px;line-height:1.6;margin-bottom:12px}
.city-map-canvas{position:relative}
.city-map-svg{display:block;width:100%;height:auto;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab;border:1px solid #d6dfd1;border-radius:3px;background:#eef2e9}
.city-map-svg:active{cursor:grabbing}
.city-map-svg:focus-visible{outline:2px solid var(--jade);outline-offset:3px}
.map-tools{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 9px}
.map-tools button{min-width:40px;min-height:40px;padding:6px 9px;background:#fff;border:1px solid var(--line);border-radius:3px;font:inherit;font-size:14px;color:var(--jade);cursor:pointer}
.map-tools button:disabled{opacity:.4;cursor:default}
.map-tools button:focus-visible{outline:2px solid var(--jade);outline-offset:2px}
.map-tools output{font-size:11px;color:var(--muted);min-width:38px}
.map-tools>span{width:100%;font-size:10px;color:var(--muted)}
.map-loading[hidden]{display:none}
.map-outline{fill:#dde5d8;stroke:#b8c6b5;stroke-width:1.4}
.map-city circle{fill:#a6b0a2;stroke:#f0f3ed;stroke-width:2}
.map-city text{font:16px Arial,"Microsoft YaHei",sans-serif;fill:#8b9586}
.map-city:not(.is-active) text{display:none}
.map-city line{stroke:#a6b0a2;stroke-width:1;opacity:.6}
.map-city.is-active circle{fill:var(--jade);stroke:#fff;stroke-width:2}
.map-city.is-active text{fill:var(--jade);font-weight:700}
.map-city.is-active line{stroke:var(--jade)}
.map-city.is-active:hover circle,.map-city.is-active:focus-visible circle{fill:#ae754b;stroke:#fff;stroke-width:3}
.map-city.is-active:hover text,.map-city.is-active:focus-visible text{fill:#805028}
.map-tooltip{position:relative;z-index:4;margin-top:12px;background:#fff;border:1px solid var(--line);border-radius:4px;padding:14px;box-shadow:0 8px 26px #152b1720;font-size:12px;overflow-wrap:anywhere}
.map-tooltip h3{font-size:15px;margin:0 0 8px}
.map-tooltip ol{margin:0 0 8px;padding-left:18px;display:grid;gap:8px;line-height:1.6}
.map-tooltip .map-close{float:right;border:0;background:transparent;font-size:18px;line-height:1;padding:2px 5px}
.map-tooltip .city-view-all{display:block}
.map-legend{display:flex;gap:15px;font-size:10px;color:var(--muted);margin-top:8px}
.map-legend span{display:flex;align-items:center;gap:5px}
.map-legend i{width:7px;height:7px;background:#a6b0a2;border-radius:50%}
.map-legend .active-dot{background:var(--jade)}
.map-attribution{font-size:9px!important;margin:12px 0 0!important}
.overview-layout .discovery-empty{grid-column:1/-1}
@media(max-width:1199px){.overview-layout{grid-template-columns:1fr}.overview-map{position:static;max-width:none;grid-row:1}.city-map-canvas{max-width:540px;margin:auto}}
@media(max-width:699px){
 .overview-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .overview-controls>.overview-search{grid-column:1/-1}
 .overview-event-controls{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .overview-checks{grid-column:1/-1}
 .overview-option{min-height:44px;padding:8px 9px}
 .overview-controls .overview-option input{width:17px;height:17px;min-width:17px}
 .overview-custom-dates{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .overview-intro{padding:18px 0 8px}.overview-intro h1{font-size:25px}
 .overview-city-nav{padding-bottom:14px}
 .overview-control{flex:1 1 100%;width:100%}.overview-controls{gap:10px}.overview-controls input,.overview-controls select{font-size:16px}.overview-reset{min-height:44px}
 #city-overview-results{grid-template-columns:1fr;gap:10px}
 .overview-city{padding:15px}.overview-city-head h2{font-size:20px}
 .overview-titles{font-size:13px;gap:8px;margin-bottom:10px}
 .overview-layout{gap:18px}.overview-map{padding:15px}.city-map-svg{min-height:210px}
}
