/* Prevent page scroll. Sidebars and sheets handle scrolling internally. */
html, body { height: 100%; }
body { overflow: hidden; }

#map { height: 100dvh; }

/* Animated dashed line (Leaflet uses SVG paths). */
.dash-line {
    stroke-dasharray: 6 10;
    animation: dashmove 2.5s linear infinite;
}
@keyframes dashmove {
    to { stroke-dashoffset: -32; }
}

/* Improve touch highlight. */
.tap-highlight { -webkit-tap-highlight-color: transparent; }

/* Style Leaflet zoom controls to match our UI. */
.leaflet-top.leaflet-right { margin-top: 12px; margin-right: 12px; }
.leaflet-control-zoom {
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}
.leaflet-control-zoom a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 38px !important;
    height: 34px !important;
    margin-bottom: 8px !important;
    border-radius: 12px !important;
    border: 1px solid rgb(63 63 70) !important;   /* zinc-700 */
    background: rgba(9, 9, 11, 0.6) !important;   /* zinc-950/60 */
    backdrop-filter: blur(10px);
    color: rgb(244 244 245) !important;            /* zinc-100 */
    text-decoration: none !important;
    line-height: 1 !important;
    font-weight: 600 !important;
}
.leaflet-control-zoom a:hover {
    background: rgba(9, 9, 11, 0.8) !important;
}
.leaflet-control-zoom a.leaflet-disabled {
    opacity: 0.45 !important;
}