html { min-width: 200px; }
body, html { height: 100%; }
body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  margin: 1em auto 4em auto;
  width: 100%;
  position: relative;
  tab-size: 2;
}
#mapcontainer { width: 100%; height: 100%; min-height: 560px; position: relative; overflow: hidden; border: 0 solid #dedede; }
#mapcontainer p { display: none; }
svg { background-color: #1a273f; min-height: 560px; }
.land { fill: #0051a1; stroke: #000; stroke-width: 1; }

#vizHeader {
  position: absolute;
  top: 20px;
  left: 0;
  right: 0;
  padding: 0 20px;
  z-index: 120;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
}

.vizHeaderLogo {
  height: 28px;
  width: auto;
  display: block;
  position: absolute;
  left: 20px;
}

#vizHeadline {
  margin: 0;
  color: #ffffff;
  font-size: calc(32px + 2pt);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-align: center;
  white-space: nowrap;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.4);
  width: 100%;
  padding: 0 80px;
}

#vizInfoStack {
  position: absolute;
  right: 30px;
  bottom: 30px;
  z-index: 110;
  width: min(611px, calc(100% - 60px));
}

#vizCounter {
  font-size: 14px;
  line-height: 1.45;
  text-align: left;
  color: #9be7ff;
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(155, 231, 255, 0.3);
}

#vizCounter p {
  margin: 0;
}

#vizCounter .counter-heading {
  font-weight: 600;
}

#vizCounter .counter-values {
  font-size: calc(1em + 4pt);
  font-weight: 600;
  margin-top: 6px;
  color: #ffffff;
}

#vizCounter .counter-values span {
  font-weight: 700;
  color: #ffffff;
}

#vizCounter span {
  display: inline;
  min-width: 0;
}

#mapnotice {
  z-index: 100;
  max-width: 420px;
  width: 100%;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.85);
  background: rgba(3, 16, 36, 0.6);
  backdrop-filter: blur(6px);
  border-radius: 6px;
  padding: 18px 20px 18px;
  pointer-events: auto;
}

@media (max-width: 700px) {
  #vizHeader {
    top: 16px;
    padding: 0 16px;
  }

  .vizHeaderLogo {
    height: 24px;
    left: 16px;
  }

  #vizHeadline {
    font-size: 26px;
    padding: 0 64px;
  }

  #vizInfoStack {
    right: 16px;
    bottom: 16px;
    width: calc(100% - 32px);
  }
}

#mapnotice p { margin: 0 0 0.75em; display: block; }
#mapnotice p:last-child { margin-bottom: 0; }
#mapnotice a { color: #9be7ff; text-decoration: none; }
#mapnotice a:hover,
#mapnotice a:focus { text-decoration: underline; }

#maptable {
  position: absolute;
  z-index: 100;
  bottom: 30px;
  left: 30px;
  font-family: Trebuchet, Monaco, monospace;
  pointer-events: none;
  font-size: 11px;
  border-collapse: separate;
  border-color: transparent;
  text-align: center;
  width: 760px;
  background: rgba(3, 16, 36, 0.6);
  backdrop-filter: blur(6px);
  border-radius: 6px;
  padding: 8px 12px 12px;
}
#maptable thead th { color: #9be7ff; font-weight: 600; }
#maptable td, #maptable th { padding: 5px; color: greenyellow; text-align: center; border-color: transparent; }
#maptable th.amount-col, #maptable td.amount-cell {
  text-align: right;
}
#mapcontainer:hover .trailing { opacity: .8 !important; }

#fullscreen {
  position: absolute; opacity: 0; right: 10px; top: -10px;
  background-image: url(https://icons-for-free.com/free-icons/png/512/326650.png);
  background-size: 90% 90%; background-repeat: no-repeat; background-position: center;
  border: none; border-radius: 2px; width: 30px; height: 30px; background-color: #fff;
  transition: top .25s, opacity .25s;
  z-index: 200;
}
#mapcontainer:hover #fullscreen { opacity: .7; top: 10px; }
.point:hover circle { opacity: 1 !important; }
#mapcontainer:fullscreen #fullscreen {
  background-image: url(https://cdn1.iconfinder.com/data/icons/enter-exit-fullscreen-icons/100/exit-fullscreen-512.png);
}

#mapcontainer .tooltip { min-width: 200px !important; font-size: 10px !important; opacity: 1 !important; }
#maploader {
  position: absolute; inset: 0; width: 0; height: 0; margin: auto; border-radius: 100%;
  box-shadow: inset 0 0 0 50px #0099ff; animation: load 1s ease-out infinite;
  z-index: 10; display: none;
}
@keyframes load {
  100% { width: 100px; height: 100px; box-shadow: none; filter: blur(2px); }
}

/* Fix the selector case so it matches the actual container id */
#mapcontainer .tooltip {
  display: flex; flex-flow: row wrap; justify-content: stretch;
}
