﻿body {
}
/* From Uiverse.io by Novaxlo */
.capybaraloader {
    width: 14em;
    height: 10em;
    position: relative;
    z-index: 1;
    --color: rgb(204, 125, 45);
    --color2: rgb(83, 56, 28);
    transform: scale(0.75);
}

.capybara {
    width: 100%;
    height: 7.5em;
    position: relative;
    z-index: 1;
}

.loader {
    width: 100%;
    height: 2.5em;
    position: relative;
    z-index: 1;
    overflow: hidden;
}

.capy {
    width: 85%;
    height: 100%;
    background: linear-gradient(var(--color), 90%, var(--color2));
    border-radius: 45%;
    position: relative;
    z-index: 1;
    animation: movebody 1s linear infinite;
}

.capyhead {
    width: 7.5em;
    height: 7em;
    bottom: 0em;
    right: 0em;
    position: absolute;
    background-color: var(--color);
    z-index: 3;
    border-radius: 3.5em;
    box-shadow: -1em 0em var(--color2);
    animation: movebody 1s linear infinite;
}

.capyear {
    width: 2em;
    height: 2em;
    background: linear-gradient(-45deg, var(--color), 90%, var(--color2));
    top: 0em;
    left: 0em;
    border-radius: 100%;
    position: absolute;
    overflow: hidden;
    z-index: 3;
}

    .capyear:nth-child(2) {
        left: 5em;
        background: linear-gradient(25deg, var(--color), 90%, var(--color2));
    }

.capyear2 {
    width: 100%;
    height: 1em;
    background-color: var(--color2);
    bottom: 0em;
    left: 0.5em;
    border-radius: 100%;
    position: absolute;
    transform: rotate(-45deg);
}

.capymouth {
    width: 3.5em;
    height: 2em;
    background-color: var(--color2);
    position: absolute;
    bottom: 0em;
    left: 2.5em;
    border-radius: 50%;
    display: flex;
    justify-content: space-around;
    align-items: center;
    padding: 0.5em;
}

.capylips {
    width: 0.25em;
    height: 0.75em;
    border-radius: 100%;
    transform: rotate(-45deg);
    background-color: var(--color);
}

    .capylips:nth-child(2) {
        transform: rotate(45deg);
    }

.capyeye {
    width: 2em;
    height: 0.5em;
    background-color: var(--color2);
    position: absolute;
    bottom: 3.5em;
    left: 1.5em;
    border-radius: 5em;
    transform: rotate(45deg);
}

    .capyeye:nth-child(4) {
        transform: rotate(-45deg);
        left: 5.5em;
        width: 1.75em;
    }

.capyleg {
    width: 6em;
    height: 5em;
    bottom: 0em;
    left: 0em;
    position: absolute;
    background: linear-gradient(var(--color), 95%, var(--color2));
    z-index: 2;
    border-radius: 2em;
    animation: movebody 1s linear infinite;
}

.capyleg2 {
    width: 1.75em;
    height: 3em;
    bottom: 0em;
    left: 3.25em;
    position: absolute;
    background: linear-gradient(var(--color), 80%, var(--color2));
    z-index: 2;
    border-radius: 0.75em;
    box-shadow: inset 0em -0.5em var(--color2);
    animation: moveleg 1s linear infinite;
}

    .capyleg2:nth-child(3) {
        width: 1.25em;
        left: 0.5em;
        height: 2em;
        animation: moveleg2 1s linear infinite 0.075s;
    }

@keyframes moveleg {
    0% {
        transform: rotate(-45deg) translateX(-5%);
    }

    50% {
        transform: rotate(45deg) translateX(5%);
    }

    100% {
        transform: rotate(-45deg) translateX(-5%);
    }
}

@keyframes moveleg2 {
    0% {
        transform: rotate(45deg);
    }

    50% {
        transform: rotate(-45deg);
    }

    100% {
        transform: rotate(45deg);
    }
}

@keyframes movebody {
    0% {
        transform: translateX(0%);
    }

    50% {
        transform: translateX(2%);
    }

    100% {
        transform: translateX(0%);
    }
}

.loaderline {
    width: 50em;
    height: 0.5em;
    border-top: 0.5em dashed var(--color2);
    animation: moveline 10s linear infinite;
}

@keyframes moveline {
    0% {
        transform: translateX(0%);
        opacity: 0%;
    }

    5% {
        opacity: 100%;
    }

    95% {
        opacity: 100%;
    }

    100% {
        opacity: 0%;
        transform: translateX(-70%);
    }
}

/* Overlay de pantalla completa */
/* Overlay de pantalla completa */
.loader-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    display: grid;
    place-items: center;
    background: radial-gradient(900px 600px at -20% -10%, rgba(79,70,229,.10), transparent), radial-gradient(900px 600px at 120% 10%, rgba(34,211,238,.10), transparent), rgba(245,247,252,.85);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    z-index: 1080;
    transition: opacity .28s ease, visibility .28s ease, background-color .28s ease;
    opacity: 1;
    visibility: visible;
}

    .loader-overlay.hidden {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }

/* Contenido centrado */
.loader-inner {
    display: grid;
    place-items: center;
    gap: 14px;
    text-align: center;
    color: #0f172a; /* texto por defecto (claro) */
    font-family: system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial;
}

.loader-text {
    font-weight: 700;
    font-size: 14px;
    color: inherit;
}

/* Contenedor del snippet de Uiverse */
.uiverse-host {
    display: grid;
    place-items: center;
    transform: scale(var(--loader-scale, 1.8));
    /* Ajusta el tamaño del loader si lo necesitas */
    /* transform: scale(1.15); */
}

/* Ajustes responsivos opcionales */
@media (max-width: 576px) {
    .uiverse-host {
        --loader-scale: 1.2;
    }
}

@media (min-width: 992px) {
    .uiverse-host {
        --loader-scale: 1.55;
    }
}

/* ----------------------------
   Modo oscuro (varias opciones)
   ---------------------------- */

/* 1) Preferencia del sistema: oscuro */
@media (prefers-color-scheme: dark) {
    .loader-overlay {
        background: radial-gradient(900px 600px at -20% -10%, rgba(79,70,229,.16), transparent), radial-gradient(900px 600px at 120% 10%, rgba(34,211,238,.16), transparent), rgba(4, 6, 12, .88);
    }

    .loader-inner {
        color: #e5e7eb;
    }
}

/* 2) Atributos/clases de tu app (tienen prioridad sobre el media query) */
html.dark .loader-overlay,
body.dark .loader-overlay,
[data-bs-theme="dark"] .loader-overlay,
[data-theme="dark"] .loader-overlay {
    background: radial-gradient(900px 600px at -20% -10%, rgba(79,70,229,.16), transparent) !important, radial-gradient(900px 600px at 120% 10%, rgba(34,211,238,.16), transparent) !important, rgba(4, 6, 12, .88) !important;
}

html.dark .loader-inner,
body.dark .loader-inner,
[data-bs-theme="dark"] .loader-inner,
[data-theme="dark"] .loader-inner {
    color: #e5e7eb !important;
}

/* Si prefieres forzar manualmente el oscuro solo en el overlay:
   añade class="overlay-dark" al #appLoader */
#appLoader.overlay-dark {
    background: radial-gradient(900px 600px at -20% -10%, rgba(79,70,229,.16), transparent), radial-gradient(900px 600px at 120% 10%, rgba(34,211,238,.16), transparent), rgba(4, 6, 12, .88);
}

    #appLoader.overlay-dark .loader-inner {
        color: #e5e7eb;
    }

/* Accesibilidad opcional: si quieres atenuar animaciones globales del snippet*/
/*@media (prefers-reduced-motion: reduce){
  .uiverse-host *{
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0s !important;
  }
}*/
/**/