.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: 1051;
}
.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: 1052;
}
.loading.full:after {
    position: fixed;
}
.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);
    }
}