[v-cloak] {
  .vcloak {
    &--visible {
      display: block;
    }
    &--hidden {
      display: none;
    }
  }
}
.vcloak {
  &--visible {
    min-height: 60px;
    display: none;
  }
}

.loading-container {
  position: relative;
  &:before {
    display: block;
    content: '';
    position: absolute;
    left: calc(50% - 20px);
    top: calc(50% - 20px);
    box-sizing: border-box;
    height: 40px;
    width: 40px;
    border: 0px solid #d0d0d0;
    border-radius: 50%;
    box-shadow: 0 -12px 0 16px #d0d0d0 inset;
    animation: rotate 1s infinite linear;
    z-index: 3;
  }
  &:after {
    display: block;
    content: '';
    position: absolute;
    z-index: 2;
    background-color: rgba(241, 241, 241, 0.5);
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
  }
  &--white {
    &:after {
      background-color: white;
    }
  }
}


.loading-button {
  pointer-events: none;
  position: relative;
  &:before {
    display: block;
    content: '';
    position: absolute;
    left: calc(50% - 8px);
    top: calc(50% - 8px);
    box-sizing: border-box;
    height: 16px;
    width: 16px;
    border: 0px solid #fff;
    border-radius: 50%;
    box-shadow: 0 -4px 0 6px #fff inset;
    animation: rotate 1s infinite linear;
    z-index: 3;
  }
  &:after {
    display: block;
    content: '';
    position: absolute;
    z-index: 2;
    background-color: inherit;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
  }
}

.button-default {
  &.loading-button:before {
    box-shadow: inset 0 -4px 0 6px #6f6f6f;
  }
}

.loading-inline {
  display: inline-block;
  pointer-events: none;
  position: relative;
  &:before {
    display: block;
    content: '';
    position: absolute;
    left: calc(50% + 1px);
    top: calc(50% - 11px);
    box-sizing: border-box;
    height: 14px;
    width: 14px;
    border: 0px solid #d0d0d0;
    border-radius: 50%;
    box-shadow: 0 -3px 0 5px #d0d0d0 inset;
    animation: rotate 1s infinite linear;
    z-index: 3;
  }
  &:after {
    display: block;
    content: '';
    position: absolute;
    z-index: 2;
    background-color: inherit;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
  }
}


@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}