body {
  background: #0f1d26;
  font-family: Segoe UI, Verdana, sans-serif;
  margin: 0;
  padding: 0;
}

form {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  border: none;
}
fieldset {
  border: none;
  display: flex;
}

.controls {
  opacity: 0;
  z-index: -1;
  top: 20px;
}

.controls__inner {
  background: #fff;
  padding: 10px;
  white-space: nowrap;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 4px;
}

.controls_visible {
  opacity: 1;
  z-index: 1;
  transition: 1s opacity linear;
}

.controls fieldset {
  border: none;
  padding: 0;
}

.input-field {
  padding: 10px;
  margin-right: 5px;
  box-sizing: border-box;
  border: 2px solid #ccc;
  border-radius: 4px;
}

.input-field-large {
  width: 50%;
}

.input-field-small {
  width: 20%;
}

.check-latency-button {
  width: 30%;
  background: #313841;
  color: #fff;
  border: none;
  border-radius: 4px;
  padding: 10px;
  font: 14px Segoe UI, Verdana, sans-serif;
}

.copyright {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translate(-50%, -50%);
  margin-left: 0;
  font-size: 14px;
  color: rgb(204, 204, 204);
  opacity: 0;
  z-index: -1;
}

.contact {
  font-size: 14px;
  text-decoration: none;
  color: rgb(204, 204, 204);
  white-space: nowrap;
}

.copyright_visible {
  opacity: 1;
  z-index: 1;
  transition: 1s linear;
}

.results {
  background: #313841;
  padding: 15px 10px;
  color: #fff;
  opacity: 0;
  position: absolute;
  left: 20px;
  bottom: 20px;
  z-index: -1;
  cursor: default;
}

.results_visible {
  opacity: 1;
  z-index: 1;
  transition: 0.3s opacity linear;
}

.results table {
  border-collapse: collapse;
  border-spacing: 0;
  font: 14px/14px Segoe UI;
  white-space: nowrap;
}

.results td {
  padding: 5px 10px;
}

.results th {
  padding: 5px 10px;
  text-align: inherit;
}

.results td:first-child {
  padding-left: 25px;
  font-weight: normal;
  position: relative;
}

.results td:first-child:before {
  content: "";
  border-radius: 50%;
  width: 10px;
  height: 10px;
  position: absolute;
  left: 10px;
  top: 8px;
}

.results .error td:first-child:before {
  background-color: red;
}

.results .success td:first-child:before {
  background-color: green;
}

.mask {
  background: rgba(0, 0, 0, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  opacity: 0;
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: -1;
}

.mask_visible {
  opacity: 1;
  transition: 0.3s opacity linear;
  z-index: 999;
}

.mask__text {
  color: #fff;
  font: 30px/1 Arial;
  text-shadow: 0 0 4px #313841;
}

.spinner,
.spinner:after {
  border-radius: 50%;
  width: 10em;
  height: 10em;
}

.spinner {
  margin: 60px auto;
  font-size: 10px;
  position: relative;
  text-indent: -9999em;
  border-top: 1.1em solid rgba(255, 255, 255, 0.2);
  border-right: 1.1em solid rgba(255, 255, 255, 0.2);
  border-bottom: 1.1em solid rgba(255, 255, 255, 0.2);
  border-left: 1.1em solid #ffffff;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-animation: spinner-animation 1.1s infinite linear;
  animation: spinner-animation 1.1s infinite linear;
}

@-webkit-keyframes spinner-animation {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@keyframes spinner-animation {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

#myMap {
  width: 100%;
  height: 100%;
  position: absolute;
}

.popup-container {
  top: -7px !important; /* move popup up to edge of marker, for correct behavior on mouseenter/mouseleave */
}

.marker-popup {
  padding: 15px 20px;
  white-space: pre-wrap;
}

.pulseIcon {
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 2px solid white;
  cursor: pointer;
  box-shadow: 0 0 0 rgba(0, 204, 255, 0.4);
}

.pulseIcon_type_pending {
  background: gray;
  animation: pulse-pending 3s infinite;
}

.pulseIcon_type_target {
  background: rgb(0, 155, 255);
  animation: pulse 3s infinite;
  position: relative;
}

.pulseIcon_type_success {
  background: rgb(0, 204, 51);
}

.pulseIcon_type_error {
  background: red;
}

.pulseIcon:hover {
  animation: none;
}

@keyframes pulse-pending {
  0% {
    box-shadow: 0 0 0 0 rgba(151, 151, 151, 0.4);
  }

  70% {
    box-shadow: 0 0 0 50px rgba(0, 204, 255, 0);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(0, 204, 255, 0);
  }
}

@keyframes pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(0, 204, 255, 0.4);
  }

  70% {
    box-shadow: 0 0 0 50px rgba(0, 204, 255, 0);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(0, 204, 255, 0);
  }
}
