.geojson-map {
    width: 100%;
}

/* Leaflet 1.9 blends tiles with `mix-blend-mode: plus-lighter`, to hide the
   dark seam that would otherwise show while a tile fades in. This module sets
   `zoomSnap: 0`, so a map usually sits at a fractional zoom — the tile
   container is scaled by something like 1.0996 — and neighbouring tiles then
   overlap by a fraction of a pixel. Adding both contributions together lands
   over full brightness, so every tile edge draws as a pale line: on a
   near-white base layer, clipped all the way to white. Compositing normally
   paints the nearer tile over the one beneath, which is what the boundary
   should have looked like all along.

   Scoped to this module's own maps, and specific enough (0,3,1) to beat
   Leaflet's (0,2,1) without relying on stylesheet order. Keep it while any
   bundled Leaflet sets plus-lighter; see asset/vendor/VERSIONS.md. */
.geojson-map.leaflet-container img.leaflet-tile {
    mix-blend-mode: normal;
}

/* A separator above the first data layer in the layer control, so the
   historical map overlays and the data do not read as one list. Deliberately
   the same box as Leaflet's own .leaflet-control-layers-separator, negative
   margins included: those bleed the rule out through the control's padding
   (6px 10px 6px 6px) to both edges, exactly as the rule above the overlays. */
.leaflet-control-layers-overlays > .geojson-map-group-start::before {
    content: "";
    display: block;
    height: 0;
    border-top: 1px solid #ddd;
    margin: 5px -10px 5px -6px;
}

/* Text labels drawn at a point on each shape. Sized by the block, centred on
   the point, and never intercepting clicks meant for the shape underneath. */
.geojson-map-label {
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    text-align: center;
    white-space: nowrap;
    color: #222;
    text-shadow: 0 0 3px #fff, 0 0 3px #fff, 0 0 3px #fff;
    pointer-events: none;
    background: none;
    border: none;
}
