.spinner {
  border-color: var(--primary-500);
  border-style: solid;
  border-radius: 50%;
  border-top-color: transparent;
  animation: spin 1s linear infinite;
  display: inline-block;
}

.spinner-sm {
  border-width: 2.5px;
  width: 20px;
  height: 20px;
}

.spinner-md {
  border-width: 3px;
  width: 43px;
  height: 43px;
}

.spinner-lg {
  border-width: 3.5px;
  width: 64px;
  height: 64px;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

/* Start - Turbo Loading */

[busy][spinner] {
  position: relative;
  pointer-events: none;
  cursor: not-allowed;
}

[busy][spinner] > * {
  opacity: 0.25;
  pointer-events: none;
}

[busy][spinner]::after {
  content: '';
  box-sizing: border-box;
  position: absolute;
  top: 40%;
  left: 50%;
  width: 2.5rem;
  height: 2.5rem;

  border-radius: 50%;
  border: 0.275rem solid var(--primary-500);
  border-top-color: transparent;
  animation: spin 1s linear infinite;
  z-index: 10;
}

/* End - Turbo Loading */
