/* /Components/Layout/NavMenu.razor.rz.scp.css */
.nav_menu[b-iqgkrbonl6] {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.nav_menu_header[b-iqgkrbonl6] {
    font-size: 18px;
}

.nav_menu_footer[b-iqgkrbonl6] {
    margin-top: auto;
    margin-bottom: 8px;
    padding: 8px 16px;
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
/* Visibilidad según el estado que blazor.web.js setea en el <dialog>.
   Los controles MudBlazor (spinner, botones, textos) se ocultan/muestran con estas clases.
   UX: 'Reintentar' se muestra durante 'retrying' (además de 'failed') para que el usuario
   pueda forzar un intento sin esperar los ~100s de reintentos automáticos. */
.components-reconnect-first-attempt-visible[b-t7t1r4xt6e],
.components-reconnect-repeated-attempt-visible[b-t7t1r4xt6e],
.components-reconnect-failed-visible[b-t7t1r4xt6e],
.components-pause-visible[b-t7t1r4xt6e],
.components-resume-failed-visible[b-t7t1r4xt6e],
.components-rejoining-animation[b-t7t1r4xt6e] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-t7t1r4xt6e],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-t7t1r4xt6e],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-t7t1r4xt6e],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-t7t1r4xt6e],
#components-reconnect-modal.components-reconnect-retrying[b-t7t1r4xt6e],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-t7t1r4xt6e],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-t7t1r4xt6e],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-failed-visible[b-t7t1r4xt6e],
#components-reconnect-modal.components-reconnect-failed[b-t7t1r4xt6e],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-t7t1r4xt6e] {
    display: block;
}

/* El dialog usa los colores del tema vigente (light/dark) vía las variables
   globales que MudThemeProvider inyecta en :root. */
#components-reconnect-modal[b-t7t1r4xt6e] {
    background-color: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
    width: min(20rem, 90vw);
    /* margin: auto centra de verdad: con inset-block: 0 de la UA, los márgenes
       verticales auto se reparten por igual. margin: 20vh auto estiraba el dialog
       (position: fixed) a 100vh - 40vh y el botón quedaba fuera de pantalla. */
    margin: auto;
    padding: 1.25rem; /* compacto: antes 2rem dejaba demasiado aire arriba/abajo */
    border: 1px solid var(--mud-palette-divider);
    border-radius: var(--mud-default-borderradius);
    box-shadow: var(--mud-elevation-10);
    /* Seguridad: nunca más alto que la pantalla; si el contenido desborda,
       scrollea DENTRO del dialog (no en la página, que no mueve un fixed). */
    max-height: calc(100vh - 2rem);
    overflow-y: auto;
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-t7t1r4xt6e 0.5s both;

    &[open] {
        animation: components-reconnect-modal-slideUp-b-t7t1r4xt6e 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-t7t1r4xt6e 0.5s ease-in-out 0.3s;
        animation-fill-mode: both;
    }
}

#components-reconnect-modal[b-t7t1r4xt6e]::backdrop {
    background-color: var(--mud-palette-overlay-dark);
    animation: components-reconnect-modal-fadeInOpacity-b-t7t1r4xt6e 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-t7t1r4xt6e {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-t7t1r4xt6e {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-t7t1r4xt6e {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-t7t1r4xt6e] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem; /* compacto: antes 1rem entre cada elemento */
}

/* Seguro: neutraliza el margen por defecto de los <p> (MudText body1) */
#components-reconnect-modal p[b-t7t1r4xt6e] {
    margin: 0;
}

#components-seconds-to-next-attempt[b-t7t1r4xt6e] {
    font-weight: 500;
}
/* /Components/Pages/Helpers/YoutubeViewer.razor.rz.scp.css */
.video-wrapper[b-xl5mqrcw0r] {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 */
    height: 0;
    overflow: hidden;
}

    .video-wrapper iframe[b-xl5mqrcw0r] {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }
/* /Components/Pages/Maps/MapComponent.razor.rz.scp.css */
.leaflet_container[b-qbiwsfnwb7] {
    cursor: pointer !important;
}

.leaflet_drag_target[b-qbiwsfnwb7] {
    cursor: pointer !important;
}

.leaflet_drag_moving[b-qbiwsfnwb7] {
    cursor: grabbing !important;
}
