/* =========================
   Estilos generales Nexo
   ========================= */

html {
    /* Mantener comportamiento estable del scroll vertical */
    min-height: 100%;
}

body {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    min-height: 100vh;
}

/* Íconos SVG (cargados con data-icon) */
.bi,
[data-icon] svg {
    vertical-align: -0.125em;
}

/* =========================
   Layout público (main.php)
   ========================= */

.card-dashboard {
    border-radius: 0.5rem;
}

/* =========================
   Panel admin (/admin)
   ========================= */

#admin-wrapper {
    min-height: 100vh;
}

/* Sidebar principal */
#admin-sidebar {
    /* 🔥 Fija el ancho del flex-item: no crece, no se encoge, 240px */
    flex: 0 0 240px;
    width: 240px;
    min-height: 100vh;
    display: flex;
    flex-direction: column;

    /* Evita cambios de ancho al aparecer o desaparecer la scrollbar interna */
    overflow-y: auto;
    scrollbar-gutter: stable;
}

/* Estilo del scrollbar (visual, opcional) */
#admin-sidebar::-webkit-scrollbar {
    width: 8px;
}
#admin-sidebar::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.25);
    border-radius: 4px;
}

/* Enlaces del sidebar */
#admin-sidebar .nav-link {
    padding: 0.45rem 0.75rem;
    border-radius: 0.25rem;
    display: flex;
    align-items: center;
    font-size: 0.9rem;
}

/* 🔥 Que el texto del menú NO haga salto de línea */
#admin-sidebar .nav-link span:last-child {
    white-space: nowrap;
}

/* Hover */
#admin-sidebar .nav-link:hover {
    background-color: rgba(255, 255, 255, 0.08);
    text-decoration: none;
}

/* Overlay para móvil */
.admin-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
    z-index: 1030;
    display: none;
}
.admin-overlay.show {
    display: block;
}

/* Contenido (lado derecho) */
#admin-content {
    /* 🔥 Que este sí tome todo el espacio restante */
    flex: 1 1 auto;
    min-height: 100vh;
}

/* Dashboard cards */
.card-dashboard {
    border-radius: 0.5rem;
}

/* Título del navbar superior sin salto de línea */
.navbar-title-nowrap {
    white-space: nowrap;
}

/* Responsive: sidebar colapsable en móvil */
@media (max-width: 991.98px) {
    #admin-sidebar {
        position: fixed;
        left: -240px;
        top: 0;
        bottom: 0;
        z-index: 1040;
        transition: left 0.2s ease-in-out;
    }

    #admin-sidebar.show {
        left: 0;
    }

    #admin-content {
        width: 100%;
    }
}
