.loading-mask {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  z-index: 100000;
  background: rgba(68, 68, 68, 0.2);
}

.loading-message {
  color: var(--bs-body-color);
  font-size: 1.3rem;
  position: absolute;
  z-index: 100001;
  top: calc(50% + 50px);
  text-align: center;
  margin: 0 auto;
  width: 98%;
  text-shadow: 2px 2px 5px rgba(0,0,0,0.5);
}

.loading-message-bright {
  color: #ffffff;
}

.loading-icon {
  color: var(--bs-body-color);
  font-size: 3rem;
  width: 50px;
  height: 50px;
  position: absolute;
  z-index: 100001;

  top: 50%;
  left: 50%;
  margin: -25px 0 0 -25px;
}

.loading-icon-s {
  color: var(--bs-body-color);
  font-size: 1.5rem;
  width: 30px;
  height: 30px;
  position: absolute;
  z-index: 100001;
  top: 50%;
  left: 50%;
  margin: -15px 0 0 -15px;
}

@-webkit-keyframes spinner-border {
  to {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg)
  }
}

@keyframes spinner-border {
  to {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg)
  }
}

.spinner-border {
  display: inline-block;
  width: 3rem;
  height: 3rem;
  vertical-align: text-bottom;
  border: 4px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  -webkit-animation: spinner-border .75s linear infinite;
  animation: spinner-border .75s linear infinite;
}

.spinner-border-sm {
  width: 1.5rem;
  height: 1.5rem;
  border-width: 4px;
  vertical-align: super !important;
}

.spinner-border-bright {
  color: #ffffff;
}