.spinner:before {
  content: "";
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  position: absolute;
  top: 50%;
  left: 0;
  border-radius: 50%;
  border: 2px solid #d1d3e0;
  border-right: 2px solid transparent;
}
.spinner:before {
  width: 1.5rem;
  height: 1.5rem;
  margin-top: -0.75rem;
}
.spinner.spinner-center:before {
  left: 50%;
  margin-left: -0.75rem;
}
.spinner.spinner-left:before {
  right: auto;
}
.spinner.spinner-right:before {
  left: auto;
}
.spinner.spinner-sm:before {
  width: 1.25rem;
  height: 1.25rem;
  margin-top: -0.625rem;
}
.spinner.spinner-sm.spinner-center:before {
  left: 50%;
  margin-left: -0.625rem;
}
.spinner.spinner-sm.spinner-left:before {
  right: auto;
}
.spinner.spinner-sm.spinner-right:before {
  left: auto;
}
.spinner.spinner-lg:before {
  width: 2rem;
  height: 2rem;
  margin-top: -1rem;
}
.spinner.spinner-lg.spinner-center:before {
  left: 50%;
  margin-left: -1rem;
}
.spinner.spinner-lg.spinner-left:before {
  right: auto;
}
.spinner.spinner-lg.spinner-right:before {
  left: auto;
}
.spinner:before {
  -webkit-animation: animation-spinner 0.5s linear infinite;
  animation: animation-spinner 0.5s linear infinite;
}
.spinner.spinner-primary:before {
  border: 2px solid #009f9a;
  border-right: 2px solid transparent;
}
.spinner.spinner-darker-primary:before {
  border: 2px solid #1287ff;
  border-right: 2px solid transparent;
}
.spinner.spinner-secondary:before {
  border: 2px solid #e4e6ef;
  border-right: 2px solid transparent;
}
.spinner.spinner-darker-secondary:before {
  border: 2px solid #ced1e2;
  border-right: 2px solid transparent;
}
.spinner.spinner-success:before {
  border: 2px solid #1bc5bd;
  border-right: 2px solid transparent;
}
.spinner.spinner-darker-success:before {
  border: 2px solid #17a69f;
  border-right: 2px solid transparent;
}
.spinner.spinner-info:before {
  border: 2px solid #2196f3;
  border-right: 2px solid transparent;
}
.spinner.spinner-darker-info:before {
  border: 2px solid #712dfb;
  border-right: 2px solid transparent;
}
.spinner.spinner-warning:before {
  border: 2px solid #ffa800;
  border-right: 2px solid transparent;
}
.spinner.spinner-darker-warning:before {
  border: 2px solid #db9000;
  border-right: 2px solid transparent;
}
.spinner.spinner-danger:before {
  border: 2px solid #f64e60;
  border-right: 2px solid transparent;
}
.spinner.spinner-darker-danger:before {
  border: 2px solid #f42c41;
  border-right: 2px solid transparent;
}
.spinner.spinner-light:before {
  border: 2px solid #f3f6f9;
  border-right: 2px solid transparent;
}
.spinner.spinner-darker-light:before {
  border: 2px solid #dbe4ed;
  border-right: 2px solid transparent;
}
.spinner.spinner-dark:before {
  border: 2px solid #181c32;
  border-right: 2px solid transparent;
}
.spinner.spinner-darker-dark:before {
  border: 2px solid #0c0e1a;
  border-right: 2px solid transparent;
}
.spinner.spinner-white:before {
  border: 2px solid #ffffff;
  border-right: 2px solid transparent;
}
.spinner.spinner-darker-white:before {
  border: 2px solid #ededed;
  border-right: 2px solid transparent;
}
.spinner.spinner-right:before {
  left: auto;
  right: 1rem;
}
.spinner.spinner-right.btn:not(.btn-block) {
  padding-right: 3.5rem;
}
.spinner.spinner-right.btn:not(.btn-block).spinner-sm {
  padding-right: 3.25rem;
}
.spinner.spinner-right.btn:not(.btn-block).spinner-lg {
  padding-right: 4rem;
}
.spinner.spinner-left:before {
  right: auto;
  left: 1rem;
}
.spinner.spinner-left.btn:not(.btn-block) {
  padding-left: 3.5rem;
}
.spinner.spinner-left.btn:not(.btn-block).spinner-sm {
  padding-left: 3.25rem;
}
.spinner.spinner-left.btn:not(.btn-block).spinner-lg {
  padding-left: 4rem;
}
.spinner.spinner-track:before {
  -webkit-animation: animation-spinner 0.5s linear infinite;
  animation: animation-spinner 0.5s linear infinite;
}
.spinner.spinner-track.spinner-primary:before {
  border: 2px solid #cfe7ff;
  border-top-color: #2791ff;
}
.spinner.spinner-track.spinner-darker-primary:before {
  border: 2px solid #9ccdff;
  border-top-color: #037fff;
}
.spinner.spinner-track.spinner-secondary:before {
  border: 2px solid white;
  border-top-color: #dadde9;
}
.spinner.spinner-track.spinner-darker-secondary:before {
  border: 2px solid white;
  border-top-color: #c4c8dc;
}
.spinner.spinner-track.spinner-success:before {
  border: 2px solid #8aefea;
  border-top-color: #19b8b0;
}
.spinner.spinner-track.spinner-darker-success:before {
  border: 2px solid #5de9e2;
  border-top-color: #159892;
}
.spinner.spinner-track.spinner-info:before {
  border: 2px solid #eee6ff;
  border-top-color: #7f41fc;
}
.spinner.spinner-track.spinner-darker-info:before {
  border: 2px solid #cdb4fe;
  border-top-color: #671efb;
}
.spinner.spinner-track.spinner-warning:before {
  border: 2px solid #ffdc99;
  border-top-color: #f09e00;
}
.spinner.spinner-track.spinner-darker-warning:before {
  border: 2px solid #ffcb66;
  border-top-color: #cc8600;
}
.spinner.spinner-track.spinner-danger:before {
  border: 2px solid #fde0e3;
  border-top-color: #f53f53;
}
.spinner.spinner-track.spinner-darker-danger:before {
  border: 2px solid #fbafb7;
  border-top-color: #f41d34;
}
.spinner.spinner-track.spinner-light:before {
  border: 2px solid white;
  border-top-color: #e9eef4;
}
.spinner.spinner-track.spinner-darker-light:before {
  border: 2px solid white;
  border-top-color: #d1dde8;
}
.spinner.spinner-track.spinner-dark:before {
  border: 2px solid #4a5699;
  border-top-color: #131628;
}
.spinner.spinner-track.spinner-darker-dark:before {
  border: 2px solid #394377;
  border-top-color: #070910;
}
.spinner.spinner-track.spinner-white:before {
  border: 2px solid white;
  border-top-color: #f7f7f7;
}
.spinner.spinner-track.spinner-darker-white:before {
  border: 2px solid white;
  border-top-color: #e6e6e6;
}
.spinner-grow {
  vertical-align: sub;
}
.spinner-border {
  vertical-align: sub;
}

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

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