@-webkit-keyframes loadingspin {
    from {
        -webkit-transform: rotate(0deg);
                transform: rotate(0deg);
    }
    to {
        -webkit-transform: rotate(360deg);
                transform: rotate(360deg);
    }
}
@keyframes loadingspin {
    from {
        -webkit-transform: rotate(0deg);
                transform: rotate(0deg);
    }
    to {
        -webkit-transform: rotate(360deg);
                transform: rotate(360deg);
    }
}

.default-course-color {
    background-color: #2196f3;
}
.state-loading {
    font-family: 'Avenir Next', Avenir, 'Helvetica Neue', Helvetica, sans-serif;
    font-size: 14px;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 100;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: center;
       -moz-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-align-items: center;
       -moz-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-align-content: center;
        -ms-flex-line-pack: center;
            align-content: center;
}

.state-loading > * {
    display: block;
    font-size: 2em;
    font-weight: bold;
    background: transparent;
    color: #7b7b7b;
    padding: 0.5em 1em;
    border-radius: 0.25em;
}

.loading-spinner {
    border: 8px solid #7b7b7b;
    border-right-color: transparent;
    border-radius: 16px;
    -moz-box-sizing: border-box;
         box-sizing: border-box;
    display: inline-block;
    position: relative;
    overflow: hidden;
    width: 32px;
    height: 32px;
    vertical-align: text-bottom;
    animation: loadingspin 2s infinite linear;
    -webkit-animation: loadingspin 2s infinite linear;
            animation: loadingspin 2s infinite linear;
}

.no-animate .loading-spinner {
    -webkit-animation: none !important;
            animation: none !important;
}
