﻿#loader-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.4);
    z-index: 1051;
}

/* Text loading place under growing loader */
#loader-text {
    display: block;
    position: relative;
    left: 50%;
    top: 50%;
    width: 25px;
    height: 25px;
    margin: 15px 0 0 -22px;
    color: #191970;
    z-index: 1053;
}

/* Style 1 : Growing loader */
#loader-grow {
    display: block;
    position: relative;
    left: 50%;
    top: 50%;
    width: 25px;
    height: 25px;
    margin: -95px 0 0 -12px;
    background-color: #191970;
    border-radius: 50%;
    opacity: 0;
    -webkit-animation: loader-grow .75s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
    animation: loader-grow .75s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */
    z-index: 1053;
}

@-webkit-keyframes loader-grow {
    0% {
        -webkit-transform: scale(0);
        transform: scale(0);
    }

    50% {
        opacity: 1;
    }
}

@keyframes loader-grow {
    0% {
        -webkit-transform: scale(0);
        transform: scale(0);
    }

    50% {
        opacity: 1;
    }
}


/* Style 2 : 3 Spinning loader */
#loader {
    display: block;
    position: relative;
    left: 50%;
    top: 50%;
    width: 100px;
    height: 100px;
    margin: -125px 0 0 -50px;
    border-radius: 50%;
    border: 3px solid transparent;
    border-top-color: #191970;
    -webkit-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
    animation: spin 2s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */
    z-index: 1053;
}

    #loader:before {
        content: "";
        position: absolute;
        top: 5px;
        left: 5px;
        right: 5px;
        bottom: 5px;
        border-radius: 50%;
        border: 3px solid transparent;
        border-top-color: #e74c3c;
        -webkit-animation: spin 3s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
        animation: spin 3s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */
    }

    #loader:after {
        content: "";
        position: absolute;
        top: 15px;
        left: 15px;
        right: 15px;
        bottom: 15px;
        border-radius: 50%;
        border: 3px solid transparent;
        border-top-color: #f9c922;
        -webkit-animation: spin 1.5s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
        animation: spin 1.5s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */
    }

@-webkit-keyframes spin {
    0% {
        -webkit-transform: rotate(0deg); /* Chrome, Opera 15+, Safari 3.1+ */
        -ms-transform: rotate(0deg); /* IE 9 */
        transform: rotate(0deg); /* Firefox 16+, IE 10+, Opera */
    }

    100% {
        -webkit-transform: rotate(360deg); /* Chrome, Opera 15+, Safari 3.1+ */
        -ms-transform: rotate(360deg); /* IE 9 */
        transform: rotate(360deg); /* Firefox 16+, IE 10+, Opera */
    }
}

@keyframes spin {
    0% {
        -webkit-transform: rotate(0deg); /* Chrome, Opera 15+, Safari 3.1+ */
        -ms-transform: rotate(0deg); /* IE 9 */
        transform: rotate(0deg); /* Firefox 16+, IE 10+, Opera */
    }

    100% {
        -webkit-transform: rotate(360deg); /* Chrome, Opera 15+, Safari 3.1+ */
        -ms-transform: rotate(360deg); /* IE 9 */
        transform: rotate(360deg); /* Firefox 16+, IE 10+, Opera */
    }
}

/* Backdrop effect and bootstrap-like modal for showing loader. */
#loader-wrapper .loader-section {
    position: fixed;
    width: 300px;
    height: 165px;
    top: 50%;
    left: 50%;
    margin-top: -150px; /* Negative half of height. */
    margin-left: -150px; /* Negative half of width. */
    z-index: 1051;
    background-color: #fefefe;
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: 0.3rem;
    outline: 0;
}

.loader-stage {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    min-height: 100px;
}
