.btn_spinner {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    display: inline-block;
    position: relative;
    border: 4px solid;
    border-color: rgba(255, 255, 255, 0.15) rgba(255, 255, 255, 0.25) rgba(255, 255, 255, 0.35) rgba(255, 255, 255, 0.5);
    box-sizing: border-box;
    animation: BtnSpinnerRotation 1s linear infinite;
}

@keyframes BtnSpinnerRotation {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

.overlay-loader {
  --color-1: var(--green-clr);
  --size: 2px;

  width: calc(48 * var(--size));
  height: calc(48 * var(--size));
  display: inline-block;

  position: absolute;
  z-index: 100;
  inset: 0;

  width: 100%;
  height: var(--height, calc(100svh - var(--header-height)));
  opacity: 1;

  background: #fff;
  transition: 0.3s ease all;
}

.overlay-loader::after,
.overlay-loader::before {
  content: '';
  box-sizing: border-box;
  width: calc(48 * var(--size));
  height: calc(48 * var(--size));
  border-radius: 50%;
  background: var(--color-1);
  position: absolute;
  left: calc(50% - (48 * var(--size)/2));
  top: calc(50% - (48 * var(--size)/2));
  animation: animOverlayLoader 2s linear infinite;
}
.overlay-loader::after {
  animation-delay: 1s;
}

@keyframes animOverlayLoader {
  0% {
    transform: scale(0);
    opacity: 1;
  }
  100% {
    transform: scale(1);
    opacity: 0;
  }
}
