/* Modern Spinning Circle/Ring Animation */
@keyframes lds-ring-rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

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

@keyframes lds-ring-pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.7;
  }
}

@-webkit-keyframes lds-ring-pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.7;
  }
}

.app-loading {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
}

.app-loading p {
  display: block;
  font-size: 1.17em;
  margin-inline-start: 0px;
  margin-inline-end: 0px;
  font-weight: normal;
  color: #015c8f;
}

.app-loading .lds-ring {
  display: inline-block;
  position: relative;
  width: 80px;
  height: 80px;
}

.app-loading .lds-ring div {
  box-sizing: border-box;
  display: block;
  position: absolute;
  width: 64px;
  height: 64px;
  margin: 8px;
  border: 6px solid;
  border-radius: 50%;
  animation: lds-ring-rotate 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
  -webkit-animation: lds-ring-rotate 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
}

.app-loading .lds-ring div:nth-child(1) {
  border-color: #015c8f transparent transparent transparent;
  animation-delay: -0.45s;
  -webkit-animation-delay: -0.45s;
}

.app-loading .lds-ring div:nth-child(2) {
  border-color: #0178b4 transparent transparent transparent;
  animation-delay: -0.3s;
  -webkit-animation-delay: -0.3s;
}

.app-loading .lds-ring div:nth-child(3) {
  border-color: #0394d9 transparent transparent transparent;
  animation-delay: -0.15s;
  -webkit-animation-delay: -0.15s;
}

.app-loading .lds-ring div:nth-child(4) {
  border-color: #3ab0e8 transparent transparent transparent;
}

/* Loading text animation */
.app-loading .loading-text {
  margin-top: 20px;
  font-size: 16px;
  color: #015c8f;
  animation: lds-ring-pulse 1.5s ease-in-out infinite;
  -webkit-animation: lds-ring-pulse 1.5s ease-in-out infinite;
}

/* Smooth fade-in for app loading */
.app-loading {
  animation: fadeIn 0.3s ease-in;
  -webkit-animation: fadeIn 0.3s ease-in;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
