﻿.loader {
    border: 16px solid #f3f3f3;
    border-radius: 50%;
    border-top: 16px solid #3498db;
    width: 120px;
    height: 120px;
    -webkit-animation: spin 2s linear infinite; /* Safari */
    animation: spin 2s linear infinite;
}

.loader-container {
    margin: auto;
    display: block;
    background-image: url("../icon-512.png");
    background-size: 64px;
    background-repeat: no-repeat;
    background-position: center;
}

.loader-progress {
    position: absolute;
    width: 120px;
    height: 120px;
}

    .loader-progress circle {
        fill: none;
        stroke: #3498db;
        stroke-width: 16px;
        transform-origin: 50% 50%;
        transform: rotate(-90deg);
        stroke-dasharray: calc(3.141 * var(--blazor-load-percentage, 0%)), 500%;
        transition: stroke-dasharray 0.05s ease-in-out;
    }

.loader-progress-text:after {
    content: var(--blazor-load-percentage-text, "0%");
}

/* Safari */
@-webkit-keyframes spin {
    0% {
        -webkit-transform: rotate(0deg);
    }

    100% {
        -webkit-transform: rotate(360deg);
    }
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}
