/* /Layout/MainLayout.razor.rz.scp.css */
/* Solo lo que Bootstrap no cubre: anchos de la barra lateral, transición y alturas. */

.app-main[b-gmoqxxyqw2] {
    min-width: 0; /* Evita que el contenido (mapa, tablas) desborde el flex. */
}

/* Ancho del offcanvas en móvil (por defecto Bootstrap usa 400px). */
.offcanvas-md[b-gmoqxxyqw2] {
    --bs-offcanvas-width: 17rem;
}

.app-header[b-gmoqxxyqw2] {
    min-height: 3.5rem;
}

.toggle-icon[b-gmoqxxyqw2] {
    transition: transform .2s ease-in-out;
}

    .toggle-icon.is-flipped[b-gmoqxxyqw2] {
        transform: rotate(180deg);
    }

@media (min-width: 768px) {
    .app-sidebar[b-gmoqxxyqw2] {
        position: sticky;
        top: 0;
        height: 100vh;
        width: 15.5rem;
        overflow: hidden;
    }

        .app-sidebar.is-animated[b-gmoqxxyqw2] {
            transition: width .2s ease-in-out;
        }

        .app-sidebar.is-collapsed[b-gmoqxxyqw2] {
            width: 4.5rem;
        }

            .app-sidebar.is-collapsed[b-gmoqxxyqw2]  .nav-label {
                display: none !important;
            }

            .app-sidebar.is-collapsed[b-gmoqxxyqw2]  .nav-link,
            .app-sidebar.is-collapsed[b-gmoqxxyqw2]  .sidebar-brand {
                justify-content: center;
            }
}

@media (prefers-reduced-motion: reduce) {
    .app-sidebar.is-animated[b-gmoqxxyqw2],
    .toggle-icon[b-gmoqxxyqw2] {
        transition: none;
    }
}
/* /Layout/NavMenu.razor.rz.scp.css */
.sidebar-brand[b-utdi6bmusd] {
    min-height: 3.5rem; /* Alineada con la cabecera de la página. */
}

.brand-logo[b-utdi6bmusd] {
    width: 2rem;
    height: 2rem;
}

.nav[b-utdi6bmusd]  .nav-link {
    padding-top: .6rem;
    padding-bottom: .6rem;
}

    .nav[b-utdi6bmusd]  .nav-link:not(.active):hover {
        background-color: rgba(255, 255, 255, .08);
    }
/* /Pages/Index.razor.rz.scp.css */
/* Solo lo que Bootstrap 5.3 no ofrece como utilidad: alturas, tamaños fijos y detalles tipográficos. */

/* ---- Estado vacío ---- */
.hero-logo[b-8z6i9i06s7] {
    width: 3.5rem;
    height: 3.5rem;
}

.dropzone[b-8z6i9i06s7] {
    border-style: dashed !important;
    transition: background-color .15s ease-in-out, border-color .15s ease-in-out;
}

    .dropzone:hover[b-8z6i9i06s7] {
        border-color: var(--bs-primary) !important;
    }

.dropzone-icon[b-8z6i9i06s7] {
    width: 3rem;
    height: 3rem;
}

/* El input cubre toda la zona: el clic abre el selector y el drop nativo funciona sin JS. */
.dropzone[b-8z6i9i06s7]  .dropzone-input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
    height: 100%;
}

/* ---- Sesiones ---- */
.color-dot[b-8z6i9i06s7] {
    width: .7rem;
    height: .7rem;
}

.session-chip-name[b-8z6i9i06s7] {
    max-width: 14rem;
}

.chip-close[b-8z6i9i06s7] {
    font-size: .55rem;
}

.compare-name[b-8z6i9i06s7] {
    max-width: 11rem;
}

/* ---- KPIs y tablas ---- */
.kpi-label[b-8z6i9i06s7] {
    font-size: .7rem;
    letter-spacing: .04em;
}

.tabular[b-8z6i9i06s7] {
    font-variant-numeric: tabular-nums;
}

.split-row[b-8z6i9i06s7] {
    cursor: pointer;
}

/* ---- Mapa ---- */
.map-container[b-8z6i9i06s7] {
    height: clamp(300px, 46vh, 560px);
}

/* Pantalla completa: la tarjeta ocupa toda la pantalla y el mapa todo el espacio bajo la cabecera.
   :fullscreen = Fullscreen API nativa; .is-pseudo-fullscreen = alternativa CSS (p. ej. iPhone). */
.map-card:fullscreen[b-8z6i9i06s7],
.map-card.is-pseudo-fullscreen[b-8z6i9i06s7] {
    display: flex;
    flex-direction: column;
    border-radius: 0;
    background-color: var(--bs-body-bg);
}

.map-card.is-pseudo-fullscreen[b-8z6i9i06s7] {
    position: fixed;
    inset: 0;
    z-index: 1055;
}

    .map-card:fullscreen .map-card-body[b-8z6i9i06s7],
    .map-card.is-pseudo-fullscreen .map-card-body[b-8z6i9i06s7] {
        flex: 1 1 auto;
        min-height: 0;
    }

    .map-card:fullscreen .map-container[b-8z6i9i06s7],
    .map-card.is-pseudo-fullscreen .map-container[b-8z6i9i06s7] {
        height: 100%;
        border-radius: 0 !important;
    }

/* ---- Tooltip de la gráfica ---- */
.chart-tooltip[b-8z6i9i06s7] {
    min-width: 11rem;
}

/* ---- Panel lateral: fijo bajo la cabecera y con scroll propio en pantallas grandes ---- */
@media (min-width: 1200px) {
    .side-panel[b-8z6i9i06s7] {
        top: 4.5rem;
        z-index: 1;
    }

    .side-panel-body[b-8z6i9i06s7] {
        max-height: calc(100vh - 13rem);
    }
}
/* /Pages/PaceCalculatorPage.razor.rz.scp.css */
.kpi-label[b-8e4p8yw6ft] {
    font-size: .7rem;
    letter-spacing: .04em;
}

.tabular[b-8e4p8yw6ft] {
    font-variant-numeric: tabular-nums;
}

.splits-scroll[b-8e4p8yw6ft] {
    max-height: 26rem;
}

/* El formulario queda visible mientras se recorren los resultados en pantallas grandes. */
@media (min-width: 992px) {
    .calculator-form[b-8e4p8yw6ft] {
        position: sticky;
        top: 4.5rem;
    }
}
