/* Shared Leaflet embed — light (default) + dark satellite variants */
.vaillant-map-host {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background: #ffffff;
  z-index: 1;
}
.vaillant-map-host--preview {
  position: relative !important;
  inset: auto !important;
  height: 100%;
  min-height: 120px;
  width: 100%;
  touch-action: pan-y;
  z-index: 0;
  overflow: hidden;
}
.vaillant-map-host--preview .leaflet-container {
  width: 100% !important;
  height: 100% !important;
}
/* Preview maps must not capture touch — allow page scroll */
.vaillant-map-host--preview .leaflet-container,
.vaillant-map-host--preview .leaflet-pane,
.vaillant-map-host--preview .leaflet-control-container,
.vaillant-map-host--preview .leaflet-marker-pane,
.vaillant-map-host--preview .leaflet-overlay-pane {
  pointer-events: none !important;
  touch-action: pan-y !important;
}
.vaillant-map-host .leaflet-container {
  width: 100%;
  height: 100%;
  background: #ffffff;
  font-family: -apple-system, 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif;
}
.vaillant-map-host--dark,
.vaillant-map-host--dark .leaflet-container {
  background: #0e1114;
}
.vaillant-map-host--light .leaflet-control-attribution,
.vaillant-map-host:not(.vaillant-map-host--dark) .leaflet-control-attribution {
  background: rgba(255, 255, 255, 0.92) !important;
  color: rgba(0, 0, 0, 0.5) !important;
  font-size: 14px !important;
  padding: 2px 6px !important;
  border-radius: 6px 0 0 0;
  box-shadow: 0 -1px 4px rgba(0, 0, 0, 0.06);
}
.vaillant-map-host--light .leaflet-control-attribution a,
.vaillant-map-host:not(.vaillant-map-host--dark) .leaflet-control-attribution a {
  color: #007a63 !important;
}
.vaillant-map-host--dark .leaflet-control-attribution {
  background: rgba(10, 16, 22, 0.85) !important;
  color: rgba(255, 255, 255, 0.45) !important;
  font-size: 12px !important;
  padding: 2px 6px !important;
  border-radius: 6px 0 0 0;
}
.vaillant-map-host--dark .leaflet-control-attribution a {
  color: rgba(0, 201, 122, 0.75) !important;
}
.vaillant-map-host .leaflet-bar {
  border: none !important;
  box-shadow: none !important;
}
.va-map-marker {
  background: transparent !important;
  border: none !important;
}
.va-map-eng {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.85);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 400;
  color: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}
.va-map-eng.vaillant {
  border-radius: 50%;
  box-shadow: 0 0 0 2px rgba(0, 155, 125, 0.45);
}
.va-map-eng.asp {
  border-radius: 6px;
  border: 2px dashed rgba(255, 255, 255, 0.9);
  box-shadow: 0 0 0 2px rgba(196, 91, 26, 0.55);
}
.va-map-eng.pulse {
  animation: va-map-pulse 2s ease-in-out infinite;
}
@keyframes va-map-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(0, 201, 122, 0.35); }
  50% { box-shadow: 0 0 0 8px rgba(0, 201, 122, 0); }
}
.va-map-stop {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #8a9499;
  border: 2px solid #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 400;
  color: #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
}
.va-map-stop.done { background: #009b7d; border-color: #fff; }
.va-map-stop.active {
  background: #009b7d;
  color: #fff;
  border-color: #fff;
  box-shadow: 0 0 0 3px rgba(0, 155, 125, 0.3);
}
.va-map-stop.home {
  background: #1a5a9a;
  border-color: #fff;
  font-size: 13px;
}
.va-map-job {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 2px solid #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
}
