/* GLOBAL */
html, body {
    overflow: hidden;
    height: 100vh;
}

.tooltip {
  z-index: 9999 !important; 
}

.plot-button {
  position: relative;
  background: linear-gradient(145deg, 
      rgba(187, 206, 222, 0.777) 0%,
      rgba(177, 206, 207, 0.355) 35%,
      rgba(168, 230, 219, 0.7) 100%
  );
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  border-radius: 16px;
  color: #000000;
  font-weight: 600;
  letter-spacing: 0.5px;
  font-size: 1rem;
  transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1);
  overflow: hidden;
  box-shadow:none;
}

.plot-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(145deg, 
      rgba(22, 52, 66, 0.337) 0%,
      rgba(0, 242, 254, 0.1) 35%,
      rgba(140, 212, 228, 0.5) 100%
  );
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: 1;
}

.plot-button::after {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(45deg, 
      #92e9b9e4 0%, 
      #6be3e7c2 25%, 
      #aff6ffde 50%, 
      #44dccfd4 75%, 
      #97bbdade 100%
  );
  background-size: 200% 200%;
  border-radius: 18px;
  z-index: -1;
  opacity: 0;
  animation: gradientShift 4s ease infinite;
  transition: opacity 0.3s ease;
}

@keyframes gradientShift {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

.plot-button:hover {
  animation: pulseGlowTeal 2s ease-in-out infinite;
}

@keyframes pulseGlowTeal {
  0%, 100% {
    box-shadow: 
      0 0 4px rgba(0, 242, 254, 0.2),
      0 0 8px rgba(0, 242, 254, 0.15),
      0 0 12px rgba(0, 242, 254, 0.1);
  }
  50% {
    box-shadow: 
      0 0 6px rgba(0, 242, 254, 0.3),
      0 0 12px rgba(0, 242, 254, 0.2),
      0 0 18px rgba(0, 242, 254, 0.15);
  }
}


.plot-button:hover::before {
  opacity: 1;
}

.plot-button:hover::after {
  opacity: 1;
}

.plot-button:active {
  transform: scale(0.98);
  transition: transform 0.1s ease;
}

.plot-button span {
  position: relative;
  z-index: 2;
}

.plot-button svg,
.plot-button g {
  fill: #002E40!important;
}


/* MAP */
.igrf-map {
    height: 100vh;
    width: 100vw;
}

/* LEAFLET POPUP BELOW */
/* When the popup should come from below, add .popup-below to its container */
.leaflet-popup.popup-below {
  top: 30px !important;
  margin-top: 0 !important;
}

.leaflet-popup.popup-below-large {
  top: 9px !important;
  margin-top: 0 !important;
}
  
.leaflet-popup.popup-below .leaflet-popup-tip-container,
.leaflet-popup.popup-below-large .leaflet-popup-tip-container {
  bottom: auto !important;
  top: -5px !important;
  overflow: visible !important;
  position: absolute !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  height: 20px !important;
  width: 20px !important;
  margin: 0 !important;
}

.leaflet-popup.popup-below .leaflet-popup-tip,
.leaflet-popup.popup-below-large .leaflet-popup-tip {
  margin: 0 !important;
  -webkit-transform: rotate(45deg) !important;
  -moz-transform: rotate(45deg) !important;
  -ms-transform: rotate(45deg) !important;
  -o-transform: rotate(45deg) !important;
  transform: rotate(45deg) !important;
  box-shadow: none !important;
  display: block !important;
  position: relative !important;
  z-index: 1000 !important;
  width: 17px !important;
  height: 17px !important;
  background: white;
  border: none !important;
}

.leaflet-popup.satellite-popup.popup-below .leaflet-popup-tip,
.leaflet-popup.satellite-popup.popup-below-large .leaflet-popup-tip {
  background: rgba(255, 255, 255, 0) !important; 
  background-color: transparent!important;
  backdrop-filter: blur(6px) saturate(150%) !important;
  -webkit-backdrop-filter: blur(6px) saturate(150%) !important;
}

/* MOBILE DISPLAY */
.igrf-mobile-display {
    transform: translateX(-50%);
    z-index: 9998;
    bottom: 40px;
    left: 50%;
    font-size: 1rem;
    font-weight: bold;
}
.igrf-mobile-inner {
    padding: 20px 10px!important;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    font-size: 1rem;
    font-weight: bold;
    background-color: rgba(255, 255, 255, 0.55);
}


/* STYLED POPUP */
.leaflet-popup.satellite-popup .leaflet-popup-content-wrapper {
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(6px) saturate(150%);
  -webkit-backdrop-filter: blur(6px) saturate(150%);
  border-radius: 16px;
  padding: 12px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  min-width: 350px;
  max-width: 95vw;
  font-family: "Inter", sans-serif;
}

.leaflet-popup.satellite-popup .leaflet-popup-tip {
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.leaflet-popup.satellite-popup .leaflet-popup-content {
  font-size: 14px;
  color: #222;
  line-height: 1.4;
}

.leaflet-popup.satellite-popup .leaflet-popup-content strong {
  font-size: 16px;
  display: block;
  margin-bottom: 6px;
}
