.loading {
  position: relative;
  cursor: default;
}
.loading:before {
  position: absolute;
  content: '';
  top: 0;
  left: 0;
  background: rgba(255,255,255,0.8);
  width: 100%;
  height: 100%;
  z-index: 100;
}
.loading:after {
  position: absolute;
  content: '';
  top: 50%;
  left: 50%;
  margin: -1.5em 0 0 -1.5em;
  width: 3em;
  height: 3em;
  -webkit-animation: spin .6s linear;
  animation: spin .6s linear;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  border-radius: 500rem;
  border-color: #767676 rgba(0,0,0,0.1) rgba(0,0,0,0.1);
  border-style: solid;
  border-width: .2em;
  box-shadow: 0 0 0 1px transparent;
  visibility: visible;
  z-index: 101;
}
.loading.form {
  point-events: none;
}
.loading.btn {
  opacity: 1;
  color: transparent !important;
  pointer-events: auto;
  -webkit-transition: all 0s linear, opacity .1s ease;
  transition: all 0s linear, opacity .1s ease;
  border: 1px solid #ddd;
}
.loading.btn:before {
  top: 0;
  left: 0;
}
.loading.btn:after {
  margin: -0.64285714em 0 0 -0.64285714em;
  width: 1.28571492em;
  height: 1.28571492em;
}
@-webkit-keyframes spin {
  from {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
  to {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes spin {
  from {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
  to {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
