﻿/* =========================
   LAYOUT PRINCIPAL GIMNASIO
   ========================= */

/* Contenedor principal */
.gym-main-container {
    min-height: 100vh;
    margin-top: 60px; /* espacio para el header fijo */
}

/* Header superior */
.gym-header-bar {
    background-color: #212529; /* #020617 */
    color: #f8f9fa;
    padding: .75rem 1rem;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 60px;
    z-index: 1000;
    display: flex;
    align-items: center;
    gap: 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

.gym-header-title h1 {
    font-size: 1.1rem;
    margin: 0;
}

.gym-header-sub {
    font-size: .8rem;
    opacity: .7;
}

/* Botón hamburguesa */
.gym-navbar-toggler {
    background: #343a40;
    border: 1px solid #495057;
    padding: .35rem .6rem;
    border-radius: 6px;
    cursor: pointer;
    color: #f8f9fa;
}

.gym-navbar-toggler i {
    font-size: 1.1rem;
}

/* Sidebar izquierda */
.gym-sidebar {
    height: 100vh;
    width: 320px;
    position: fixed;
    top: 0;
    left: 0;
    background-color: #212529;
    padding-top: 70px; /* un poco más que el header */
    transition: transform 0.3s ease-in-out;
    transform: translateX(0);
    z-index: 999;
}

.gym-sidebar-collapsed {
    transform: translateX(-100%);
}

/* Contenido principal */
.gym-content {
    margin-left: 320px;
    transition: margin-left 0.3s ease-in-out;
    min-height: 100vh;
    background: #181a1f;
    overflow: visible; /* por si acaso, pero no es obligatorio */
}

.gym-content-collapsed {
    margin-left: 0;
}

.gym-content-inner {
    padding: 1rem;
}

/* =========================
   NAV LATERAL (re-uso de tu CSS)
   ========================= */

.nav-scrollable {
    height: calc(100vh - 60px);
    overflow-y: auto;
}

.nav-item {
    margin: 0;
}

.nav-link {
    color: #d1d5db !important;
    font-size: 0.95rem;
    padding: 8px 16px;
    display: flex;
    align-items: center;
    gap: 12px;
    transition: background 0.2s ease, color 0.2s ease;
    text-decoration: none;
}

.nav-link span,
.nav-link i {
    font-size: 0.95rem;
}

.nav-link:hover {
    background-color: #343a40;
    color: #ffffff !important;
}

.nav-link.active {
    background-color: #3b4047;
    color: #ffffff !important;
    font-weight: 500;
}

.nav-item-divider {
    border-top: 1px solid #495057;
    margin-top: 8px;
    padding-top: 8px;
}

/* Submenús flotantes */
.nav-item.position-relative {
    position: relative;
}



/* Desktop */
@media (min-width: 992px) {

    @keyframes slideInRight {
        from {
            opacity: 0;
            transform: translateX(-10px);
        }

        to {
            opacity: 1;
            transform: translateX(0);
        }
    }
}

/* Móvil / tablet */
@media (max-width: 991px) {
    .gym-sidebar {
        transform: translateX(0);
    }

    .gym-sidebar.gym-sidebar-collapsed {
        transform: translateX(-100%);
    }

    .gym-content {
        margin-left: 0;
    }

    @keyframes fadeIn {
        from {
            opacity: 0;
            transform: translateY(-10px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
}



/* ===== SUBMENÚ VERTICAL (desliza hacia abajo) ===== */

.nav-link-toggle {
    cursor: pointer;
    user-select: none;
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
}

.expand-icon {
    margin-left: auto;
    transition: transform .2s ease;
    opacity: .8;
}

    .expand-icon.rotate {
        transform: rotate(180deg);
    }

/* Truco de animación sin max-height: usa grid */
.submenu-vertical {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows .25s ease;
}

    .submenu-vertical > .submenu-inner {
        overflow: hidden;
    }

    .submenu-vertical.show {
        grid-template-rows: 1fr;
    }

/* estilo/indentación de los links del submenú */
.submenu-inner .nav-link {
    padding-left: 42px; /* ajusta a tu gusto */
    font-size: .92rem;
}
