/*
Ride+ by Polaris
Sistema administrativo federativo
(c) Ride+ / Polaris
Propiedad intelectual de Lucas Piriz
Todos los derechos reservados
Archivo: assets/css/loader.css
Descripcion: barras de carga globales, accesibles y adaptadas al tema vigente.
------------------------------------------------------------------
*/
/* Indicador de carga compartido para React y las vistas anteriores. */
:root {
    --ride-loader-color: var(--theme-accent, #045693);
}
html[data-theme='night'],
html[data-bs-theme='dark'] {
    --ride-loader-color: #fff;
}
html body :is(.loader, .spinner-border, .spinner-grow, .loading-spin),
html body .entity-profile-camera.is-loading i,
html body :is(.ride-loading, .ride-loading-inline)::before {
    --ride-loader-gradient: linear-gradient(var(--ride-loader-color) 0 0);
    animation: rideplus-loader-bars 1s infinite linear alternate !important;
    aspect-ratio: .75;
    background-color: transparent !important;
    background-image: var(--ride-loader-gradient), var(--ride-loader-gradient), var(--ride-loader-gradient) !important;
    background-position: 0% 50%, 50% 50%, 100% 50% !important;
    background-repeat: no-repeat !important;
    border: 0 !important;
    border-radius: 0 !important;
    display: block;
    flex: 0 0 auto;
    height: auto !important;
    margin: 20px auto;
    opacity: 1;
    transform: none !important;
    vertical-align: middle;
    width: var(--ride-loader-width, 45px) !important;
}
html body :is(.ride-loading, .ride-loading-inline)::before {
    content: '';
}
html body :is(.loader-sm, .spinner-border-sm, .spinner-grow-sm, .loading-spin),
html body .entity-profile-camera.is-loading i,
html body :is(button, .btn, .btn-action-primary) :is(.loader, .spinner-border, .spinner-grow),
html body .ride-loading-inline::before {
    --ride-loader-width: 12px;
    display: inline-block;
    margin: 0 .5rem 0 0;
}
html body :is(.loading-spin, .entity-profile-camera.is-loading i)::before {
    content: none;
}
html body .ride-loader-screen {
    display: grid;
    inset: 0;
    place-items: center;
    pointer-events: none;
    position: fixed;
    z-index: 1030;
}
html body .ride-loader-screen > .loader {
    margin: 0;
}
@keyframes rideplus-loader-bars {
    0%   { background-size: 20% 50%, 20% 50%, 20% 50%; }
    20%  { background-size: 20% 20%, 20% 50%, 20% 50%; }
    40%  { background-size: 20% 100%, 20% 20%, 20% 50%; }
    60%  { background-size: 20% 50%, 20% 100%, 20% 20%; }
    80%  { background-size: 20% 50%, 20% 50%, 20% 100%; }
    100% { background-size: 20% 50%, 20% 50%, 20% 50%; }
}
@media (prefers-reduced-motion: reduce) {
    html body :is(.loader, .spinner-border, .spinner-grow, .loading-spin),
    html body .entity-profile-camera.is-loading i,
    html body :is(.ride-loading, .ride-loading-inline)::before {
        animation: none !important;
        background-size: 20% 50%, 20% 100%, 20% 70% !important;
    }
}
html body .loader > .visually-hidden {
    clip-path: inset(50%);
    height: 1px !important;
    overflow: hidden;
    position: absolute !important;
    white-space: nowrap;
    width: 1px !important;
}
