/* Make content area fill the entire browser window */
html, .fullscreen {
  display: flex;
  height: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
}

body { padding:0; margin:0; overflow: hidden;
  font-family: Arial, Helvetica, sans-serif; 

  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

* { box-sizing: border-box; }

:focus { outline: 0 !important; }

.hidden { display: none !important; }

.sub { font-size: .75rem; }


@media (min-width: 3000px) {
  html { font-size: 1.25em; }
}
@media (max-width: 640px) {
  html { font-size: 0.75em; }
}
@media (min-width: 640px) {
  /* html { font-size: 16px; } */
}


.singleton-err { background: #ccc; color: grey;
  width: 100%; height: 100%;
  font-size: 2rem; font-weight: bold;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}


.loader {
  border: 1rem solid #f3f3f3; /* Light grey */
  border-top: 1rem solid #3498db; /* Blue */
  border-radius: 50%;
  width: 7.5rem;
  height: 7.5rem;
  animation: spin 2s linear infinite;

  position: absolute;
  top: 50%; left: 50%;
  margin-top: -3.75rem;
  margin-left: -3.75rem;
}

  @keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
  }

