/* =========== App loading and noscript styles ========= */
/* ===== Styles the non-angular pages in index.html =====*/

/* Base class for centered content */
.app-centered-content {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 12px;
  height: 100%;
  font-size: 1.5rem;
}

/* Hide loading messages by default - they will be shown when JavaScript loads */
.app-loading {
  display: none;
}

/* Hide error message by default */
.app-error-hidden {
  display: none;
}

/* Style for noscript message - visible by default, uses app-centered-content for layout */

/* Show loading messages when JavaScript is enabled */
.js-enabled .app-loading {
  display: flex;
}

/* Hide noscript message when JavaScript is enabled */
.js-enabled noscript {
  display: none;
}

/* =========== Loading spinner animation ========= */

.ld-spinner {
  width: 1em;
  height: 1em;
  position: relative;
  color: inherit;
  display: inline-block;
}

.ld-spinner:after {
  position: absolute;
  margin: auto;
  width: 20%;
  height: 20%;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  content: ' ';
  display: inline-block;
  border-radius: 50%;
  background: none;
  box-shadow:
    0 0.5em 0 0 currentColor,
    0 -0.5em 0 0 currentColor,
    0.5em 0 0 0 currentColor,
    -0.5em 0 0 0 currentColor,
    0.35355339059327373em 0.35355339059327373em 0 0 currentColor,
    -0.35355339059327373em 0.35355339059327373em 0 0 currentColor,
    0.35355339059327373em -0.35355339059327373em 0 0 currentColor,
    -0.35355339059327373em -0.35355339059327373em 0 0 currentColor;
}

/* Clock spinner animation keyframes */
@keyframes ld-clock {
  0% {
    transform: rotate(0deg);
  }
  8.333% {
    transform: rotate(30deg);
  }
  16.667% {
    transform: rotate(60deg);
  }
  25% {
    transform: rotate(90deg);
  }
  33.333% {
    transform: rotate(120deg);
  }
  41.667% {
    transform: rotate(150deg);
  }
  50% {
    transform: rotate(180deg);
  }
  58.333% {
    transform: rotate(210deg);
  }
  66.667% {
    transform: rotate(240deg);
  }
  75% {
    transform: rotate(270deg);
  }
  83.333% {
    transform: rotate(300deg);
  }
  91.667% {
    transform: rotate(330deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@-webkit-keyframes ld-clock {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  8.333% {
    -webkit-transform: rotate(30deg);
    transform: rotate(30deg);
  }
  16.667% {
    -webkit-transform: rotate(60deg);
    transform: rotate(60deg);
  }
  25% {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
  }
  33.333% {
    -webkit-transform: rotate(120deg);
    transform: rotate(120deg);
  }
  41.667% {
    -webkit-transform: rotate(150deg);
    transform: rotate(150deg);
  }
  50% {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
  }
  58.333% {
    -webkit-transform: rotate(210deg);
    transform: rotate(210deg);
  }
  66.667% {
    -webkit-transform: rotate(240deg);
    transform: rotate(240deg);
  }
  75% {
    -webkit-transform: rotate(270deg);
    transform: rotate(270deg);
  }
  83.333% {
    -webkit-transform: rotate(300deg);
    transform: rotate(300deg);
  }
  91.667% {
    -webkit-transform: rotate(330deg);
    transform: rotate(330deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

/* Clock spinner class */
.ld.ld-clock {
  -webkit-animation: ld-clock 9s infinite cubic-bezier(0, 0.7, 0.3, 1);
  animation: ld-clock 9s infinite cubic-bezier(0, 0.7, 0.3, 1);
}
