/* arso.lol — station map styles (shared by the location page + homepage).
   Custom SVG markers: a band-coloured capsule (weather icon + temperature) with a
   name caption that appears only when zoomed in (.arso-map-labeled, toggled by
   arso-map.js) — at country zoom 144 names would be unreadable. The current station
   (.arso-mk--here) is always named and highlighted. */

#stationMap {
    height: 300px;
}

#indexMap {
    height: 480px;
}

/* No position here — MapLibre's .maplibregl-marker sets position:absolute to anchor
   the marker to its coordinates; overriding it makes markers drift on pan/zoom. That
   absolute box also positions the .arso-mk__name caption. */
.arso-mk {
    display: block;
    text-decoration: none;
    cursor: pointer;
}

.arso-mk--here {
    cursor: default;
    z-index: 5;
}

.arso-mk__badge {
    display: block;
}

.arso-mk__svg {
    display: block;
    filter: drop-shadow(0 1px 3px rgba(0, 0, 0, .35));
}

/* White glow so the current station separates from basemap labels. */
.arso-mk--here .arso-mk__svg {
    filter: drop-shadow(0 0 1.5px var(--surface)) drop-shadow(0 2px 6px rgba(0, 0, 0, .4));
}

.arso-mk:hover .arso-mk__svg {
    filter: drop-shadow(0 2px 5px rgba(0, 0, 0, .45));
}

.arso-mk__name {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 3px;
    padding: 0 4px;
    border-radius: 4px;
    background: var(--surface);
    color: var(--text-muted);
    font-size: 9px;
    font-weight: 600;
    line-height: 1.6;
    white-space: nowrap;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .18);
    opacity: .92;
    pointer-events: none;
    display: none;
}

/* Names reveal once zoomed past the threshold; the current station is always named. */
.arso-map-labeled .arso-mk__name,
.arso-mk--here .arso-mk__name {
    display: block;
}

.arso-mk--here .arso-mk__name {
    color: var(--text);
    font-size: 11px;
    font-weight: 700;
    opacity: 1;
    z-index: 6;
}

.map-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 300px;
    padding: 16px;
    text-align: center;
    color: var(--text-muted);
    font-size: var(--fs-sm);
}

#indexMap.map-fallback {
    height: 480px;
}
