body {
    height: 100%;
    width: 100%;
    position: relative;
}

.loading {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 10000;
    background-color: rgba(0, 0, 0, 0.7);
}
.loading span {
    display: inline-block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 200px;
    height: 200px;
}
.loading span:before,
.loading span:after {
    content: '';
    box-sizing: content-box;
    position: absolute;
    border-width: 12px;
    border-style: solid;
    opacity: 1;
    border-radius: 50%;
    -webkit-animation: lds-ripple 2s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    animation: lds-ripple 2s cubic-bezier(0, 0.2, 0.8, 1) infinite;
}
.loading span:before {
    border-color: #ffffff;
}
.loading span:after {
    border-color: #ffffff;
    -webkit-animation-delay: -1s;
    animation-delay: -1s;
}

.lds-ripple {
    display: none;
}

@-webkit-keyframes fadeIn {
    from { 
        opacity: 0; 
    }
    to { 
        opacity: 1; 
    }
}  
@keyframes fadeIn {
    from { 
        opacity: 0; 
    }
    to { 
        opacity: 1; 
    }
}

@-webkit-keyframes fadeOut {
    from { 
        opacity: 1; 
    }
    to { 
        opacity: 0; 
    }
}  
@keyframes fadeOut {
    from { 
        opacity: 1; 
    }
    to { 
        opacity: 0; 
    }
}

@-webkit-keyframes slideFadeIn {
    from { 
        opacity: 0; 
        max-height: 0;
    }
    to { 
        opacity: 1; 
        max-height: 300px;
    }
}  
@keyframes slideFadeIn {
    from { 
        opacity: 0; 
        max-height: 0;
    }
    to { 
        opacity: 1; 
        max-height: 300px;
    }
}

@-webkit-keyframes slideDown {
    from { 
        max-height: 0;
    }
    to {
        max-height: 4000px;
    }
}  
@keyframes slideDown {
    from { 
        max-height: 0;
    }
    to {
        max-height: 4000px;
    }
}

