.map-canvas{width:100%;height:100%;min-height:520px;background:#e9f1f6}
.leaflet-container{font:inherit;background:#e9f1f6}
.leaflet-control-zoom{border:1px solid var(--vg-border)!important;border-radius:12px!important;overflow:hidden;box-shadow:0 8px 26px rgba(15,47,87,.12)!important}
.leaflet-control-zoom a{border:0!important;color:var(--vg-navy)!important;background:rgba(255,255,255,.94)!important}
.leaflet-control-attribution{font-size:8px!important;background:rgba(255,255,255,.82)!important}
.vg-marker-wrap{background:transparent;border:0}
.vg-marker{position:relative;display:grid;place-items:center;width:24px;height:24px;border:4px solid #fff;border-radius:50%;box-shadow:0 5px 16px rgba(15,47,87,.25)}
.vg-marker i{width:8px;height:8px;border-radius:50%;background:currentColor}
.vg-marker--moving{color:var(--vg-blue);background:rgba(10,132,255,.14)}
.vg-marker--online{color:var(--vg-success);background:rgba(52,199,89,.14)}
.vg-marker--offline{color:#94a3b8;background:#eef2f6}
.vg-marker--moving:before{content:"";position:absolute;inset:-8px;border:2px solid rgba(10,132,255,.25);border-radius:50%;animation:vgPulse 2.2s ease-out infinite}
@keyframes vgPulse{0%{transform:scale(.65);opacity:.9}70%,100%{transform:scale(1.45);opacity:0}}
