:root {

  --jvm-tooltip-bg-color: rgba(0, 0, 0, 0.92);

  --jvm-tooltip-color: #eafff3;

  --jvm-border-color: rgba(0, 255, 136, 0.35);

  --jvm-legend-bg-color: rgba(7, 17, 12, 0.95);

}



.fp-geo-map {

  width: 100%;

  height: min(90vh, calc(100dvh - var(--header-h, 64px) - 4rem));

  min-height: 320px;

  overflow: hidden;

  border: 1px solid rgba(0, 255, 136, 0.35);

  background: #07110c;

  -webkit-user-select: none;

  user-select: none;

}



.fp-geo-map--error {

  display: flex;

  align-items: center;

  justify-content: center;

  color: #ff4444;

  font-size: 0.875rem;

  font-weight: 600;

  text-align: center;

  padding: 1rem;

}



.fp-geo-map--error::after {

  content: 'Map data is temporarily unavailable.';

}



#fp-admin-geo-map {

  min-height: 480px;

  height: 500px;

}



.fp-geo-map .jvm-container {

  width: 100%;

  height: 100%;

  background: #07110c;

  touch-action: none;

}



.fp-geo-map .jvm-series-container {

  display: none !important;

}



.jvm-tooltip {
  background-color: rgba(0, 0, 0, 0.92) !important;
  border: 1px solid rgba(0, 255, 136, 0.35) !important;
  color: #eafff3 !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45) !important;
  pointer-events: none;
  z-index: 1200;
}

.fp-geo-map .jvm-tooltip {
  font-family: inherit;
  font-size: 0.8125rem;
  padding: 0.35rem 0.55rem;
}

.fp-geo-tooltip {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 6rem;
  max-width: 14rem;
  padding: 0.45rem 0.65rem;
  border: 1px solid rgba(0, 255, 136, 0.4);
  border-radius: 0.25rem;
  background: rgba(0, 0, 0, 0.92);
  color: #eafff3;
  line-height: 1.35;
  text-align: left;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
}

.fp-geo-tooltip__name {
  font-weight: 600;
  font-size: 0.8125rem;
  color: #fff;
}

.fp-geo-tooltip__share {
  font-size: 0.75rem;
  color: rgba(234, 255, 243, 0.85);
}

.fp-geo-map {
  position: relative;
}

/* Wrapper that positions the zoom overlay over the map */
.fp-geo-map-wrap {
  position: relative;
  overscroll-behavior: contain;
}

#geo-map {
  overscroll-behavior: contain;
}

/* Custom zoom buttons — mobile only */
.fp-geo-map-zoom {
  display: none;
  position: absolute;
  bottom: 1rem;
  right: 1rem;
  flex-direction: column;
  gap: 0.25rem;
  z-index: 200;
  pointer-events: auto;
}

@media (max-width: 767px) {
  .fp-geo-map-zoom {
    display: flex;
  }
}

.fp-geo-map-zoom__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;
  border: 1px solid rgba(0, 255, 65, 0.35);
  background: rgba(0, 0, 0, 0.75);
  color: #22c55e;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  cursor: pointer;
  transition: background 0.12s, color 0.12s;
  touch-action: manipulation;
}

.fp-geo-map-zoom__btn:hover,
.fp-geo-map-zoom__btn:focus-visible {
  background: rgba(0, 0, 0, 0.9);
  color: #4ade80;
  border-color: rgba(0, 255, 65, 0.6);
  outline: none;
}

.fp-geo-map .jvm-region {

  outline: none;

}



.fp-geo-map .jvm-region:hover,

.fp-geo-map .jvm-region.jvm-element:hover {

  fill: #39ff14 !important;

  fill-opacity: 1 !important;

  stroke: rgba(57, 255, 20, 0.65) !important;

}



.fp-geo-map .jvm-region.jvm-element.selected,

.fp-geo-map .jvm-region.jvm-element.selected:hover {

  fill: #39ff14 !important;

  fill-opacity: 1 !important;

  stroke: rgba(57, 255, 20, 0.85) !important;

}



.fp-geo-map .leaflet-container {

  background: #07110c;

  font-family: inherit;

}



.fp-geo-map .leaflet-tooltip {

  background: rgba(0, 0, 0, 0.92);

  border: 1px solid rgba(0, 255, 136, 0.35);

  color: #eafff3;

  box-shadow: none;

}



@media (max-width: 767px) {

  .fp-geo-map {

    border: none;

    min-height: 240px;

    height: min(70vh, calc(100dvh - var(--header-h, 64px) - 2rem));

  }

  #fp-admin-geo-map {

    min-height: 300px;

    height: min(62vh, 420px);

  }

  .fp-geo-map .jvm-container {

    cursor: grab;

    touch-action: none;

  }

  .fp-geo-map .jvm-container:active {

    cursor: grabbing;

  }

  .fp-geo-map .leaflet-container {

    touch-action: none;

  }

  /* Leaflet zoom control — styled for dark theme, only on mobile */

  .fp-geo-map .leaflet-control-zoom {

    border: none;

  }

  .fp-geo-map .leaflet-control-zoom a {

    display: flex;

    align-items: center;

    justify-content: center;

    width: 2.5rem;

    height: 2.5rem;

    font-size: 1.25rem;

    font-weight: 700;

    line-height: 1;

    text-decoration: none;

    background: rgba(0, 0, 0, 0.75);

    color: #22c55e;

    border: 1px solid rgba(0, 255, 65, 0.35);

    backdrop-filter: blur(4px);

    -webkit-backdrop-filter: blur(4px);

    transition: background 0.12s, color 0.12s;

  }

  .fp-geo-map .leaflet-control-zoom a:hover {

    background: rgba(0, 0, 0, 0.9);

    color: #4ade80;

    border-color: rgba(0, 255, 65, 0.6);

  }

  .fp-geo-map .leaflet-control-zoom-in {

    border-bottom: none;

    border-radius: 0;

  }

  .fp-geo-map .leaflet-control-zoom-out {

    border-radius: 0;

  }

}

@media (min-width: 768px) {

  .fp-geo-map .jvm-zoom-btn {

    display: none !important;

  }

}



.leaflet-container {

  background: #07110c;

  font-family: inherit;

}



.leaflet-tooltip {

  background: rgba(0, 0, 0, 0.92);

  border: 1px solid rgba(0, 255, 136, 0.35);

  color: #eafff3;

  box-shadow: none;

}
