/* RMMMap stylesheet — keep self-contained, no external imports. */
.rmm-map {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 360px;
  background: #dbeafe;
  overflow: hidden;
  cursor: grab;
  outline: none;
  user-select: none;
  -webkit-user-select: none;
}
.rmm-map.grabbing { cursor: grabbing; }

.rmm-map-tiles, .rmm-map-overlays, .rmm-map-markers, .rmm-map-popups {
  position: absolute; left: 0; top: 0; width: 100%; height: 100%;
  will-change: transform;
}
.rmm-map-overlays, .rmm-map-markers, .rmm-map-popups { pointer-events: none; }
.rmm-marker, .rmm-cluster, .rmm-hover { pointer-events: auto; }

/* SVG overlay layer that holds coverage circles and link lines.
   The <svg> element gets sized to the map container by JS. */
.rmm-overlay-svg {
  position: absolute; left: 0; top: 0;
  width: 100%; height: 100%;
  overflow: visible;
  pointer-events: none;
}

/* ----- coverage circles ------------------------------------------------- */
.rmm-coverage {
  fill: var(--rmm-cov, rgba(59, 130, 246, .12));
  stroke: var(--rmm-cov-stroke, rgba(59, 130, 246, .55));
  stroke-width: 1.5;
  transform-box: fill-box;
  transform-origin: center;
  animation: rmm-coverage-pulse 3.6s ease-in-out infinite;
}
@keyframes rmm-coverage-pulse {
  0%, 100% { transform: scale(1);    opacity: .85; }
  50%      { transform: scale(1.05); opacity: 1; }
}

/* ----- repeater-to-repeater links --------------------------------------- */
.rmm-link {
  fill: none;
  stroke-linecap: round;
  stroke-width: 2.2;
  stroke-dasharray: 3 9;
}
.rmm-link.fwd  { stroke: rgba(37, 99, 235, .85);   animation: rmm-link-flow 2s linear infinite; }
.rmm-link.back { stroke: rgba(124, 58, 237, .85);  animation: rmm-link-flow 2s linear infinite reverse;
                 stroke-dashoffset: 6; }
@keyframes rmm-link-flow {
  to { stroke-dashoffset: -24; }
}

.rmm-tile {
  position: absolute; width: 256px; height: 256px;
  pointer-events: none;
  -webkit-user-drag: none; user-drag: none;
}

.rmm-marker {
  position: absolute;
  border: 0; background: transparent;
  width: 24px; height: 32px; padding: 0; cursor: pointer;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,.35));
  transition: transform .1s;
}
.rmm-marker:focus { outline: 2px solid #2563eb; outline-offset: 2px; border-radius: 4px; }
.rmm-marker svg { display: block; }

.rmm-cluster {
  position: absolute;
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 3px solid #fff;
  background: #1d4ed8; color: #fff;
  font-weight: 700; font-size: 13px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
.rmm-cluster:hover { background: #1e40af; }

.rmm-hover {
  position: absolute;
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 6px 8px;
  font: 12px/1.4 system-ui, sans-serif;
  color: #0f172a;
  max-width: 240px;
  box-shadow: 0 2px 6px rgba(15,23,42,.18);
  white-space: normal;
}

.rmm-map-controls {
  position: absolute; right: 10px; top: 10px;
  display: flex; flex-direction: column; gap: 6px;
  z-index: 5;
}
.rmm-map-controls button {
  width: 36px; height: 36px;
  border: 0; background: #fff;
  border-radius: 6px;
  font-size: 18px; font-weight: 700;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0,0,0,.25);
  color: #0f172a;
}
.rmm-map-controls button:hover { background: #f1f5f9; }

.rmm-map-attrib {
  position: absolute; right: 6px; bottom: 4px;
  font: 11px/1 system-ui, sans-serif;
  background: rgba(255,255,255,.8);
  color: #0f172a;
  padding: 2px 6px;
  border-radius: 3px;
}
.rmm-map-attrib a { color: #1d4ed8; text-decoration: none; }
