<?php
// index.php
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}
require_once "modelo/Db.php";
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// 1. Verificación de sesión activa (Se añade soporte para la sesión alternativa de padres)
if (!isset($_SESSION['usu_id']) && !isset($_SESSION['padre_id'])) {
    header("Location: login.php");
    exit();
}

// 2. Datos del usuario y normalización de Rol
$usuario_nombre = $_SESSION['usu_nombre'] ?? ($_SESSION['padre_nombre'] ?? 'Representante');

// MODIFICACIÓN DE NORMALIZACIÓN: Incluir la asignación del Rol JUEZ en base al rol de la sesión
if (isset($_SESSION['rol_id']) && $_SESSION['rol_id'] == 5) {
    $usuario_rol = 'JUEZ';
} else {
    $usuario_rol = strtoupper($_SESSION['usu_rol'] ?? ($_SESSION['padre_id'] ? 'PADRE' : 'ESTUDIANTE')); 
}

// 3. Lógica de ruteo base
$page = $_GET['page'] ?? 'dashboard';

// 4. MATRIZ DE RESTRICCIÓN DE ACCESOS POR ROLES (SEGURIDAD)
if ($usuario_rol === "ESTUDIANTE") {
    $paginas_permitidas = ['miembro/ficha', 'miembro/mis_pagos', 'miembro/mis_competencias'];
    if (!in_array($page, $paginas_permitidas)) { 
        $page = 'miembro/ficha'; 
    }
} elseif ($usuario_rol === "PADRE") {
    // Restricción explícita de seguridad para el rol de Padres
    $paginas_permitidas = ['padres/ficha_alumno'];
    if (!in_array($page, $paginas_permitidas)) { 
        $page = 'padres/ficha_alumno'; 
    }
} elseif ($usuario_rol === "ACADEMIA") {
    $paginas_permitidas = ['academias/dashboard', 'bastoneras/listar', 'calificaciones/competencias'];
    if (!in_array($page, $paginas_permitidas)) { 
        $page = 'academias/dashboard'; 
    }
} elseif ($usuario_rol === "JUEZ") {
    // 🌟 NUEVO: Páginas permitidas en el sistema de seguridad para el Juez
    $paginas_permitidas = ['calificaciones/competencias'];
    if (!in_array($page, $paginas_permitidas)) { 
        $page = 'calificaciones/competencias'; 
    }
} else {
    // Para ADMINISTRADOR, DOCENTE o CONTADOR, validamos accesos autorizados explícitos
    $paginas_admin_gerencial = [
        'dashboard', 
        'bastoneras/listar', 
        'bastoneras/asistencia',
        'bastoneras/justificaciones', // 🌟 PERMITIDO: Se añade acceso para la revisión de justificaciones
        'profesores/listar', 
        'competencias/listar',
        'competencias/auditoria_computos', // 🌟 NUEVO: Vista exclusiva para el Tablero del Podio y Cómputos
        'eventos_propios/listar',
        'eventos_propios/jueces', // 🌟 PERMITIDO: Se autoriza la nueva vista de Gestión y Asignación de Jueces
        'eventos_propios/postular_bastonera', // 🌟 AGREGAR ESTA LÍNEA AQUÍ
        'competencias/config_niveles', // PERMITIDO: Nueva vista de Configuración de Categorías y Rangos
        'rubricas/gestionar',
        'academias_invitadas/listar', // PERMITIDO: Gestión de Academias Externas
        'productos/inventario', // Vista de Gestión de Almacén
        'productos/pos',        // Vista de Terminal de Ventas Táctil
        'productos/categorias', // Vista de Gestión de Categorías de Inventario (Añadido)
        'conceptos/listar', 
        'mensualidades/listar', 
        'auditoria/listar',
        'clasificaciones/listar',
        'caja/gestionar',
        'padres/ficha_alumno'   // PERMITIDO: Permite a los administradores auditar o revisar la vista del padre
    ];
    if (!in_array($page, $paginas_admin_gerencial)) { 
        $page = 'dashboard'; 
    }
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Stage Dance Class - Panel de Gestión</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <style>
        :root {
            --sidebar-bg: #111b24;
            --stage-pink: #f26a8d;
            --sidebar-divider: rgba(255, 255, 255, 0.08);
        }
        body { font-family: 'Segoe UI', sans-serif; background-color: #f4f6f9; }
        #sidebar { min-width: 260px; max-width: 260px; background: var(--sidebar-bg); min-height: 100vh; transition: all 0.3s; }
        #sidebar .sidebar-header { background: rgba(0,0,0,0.2); padding: 20px; text-align: center; }
        #sidebar ul.components { padding: 15px 0; }
        #sidebar ul li a { padding: 11px 20px; font-size: 0.88rem; display: block; color: #b3c1d1; text-decoration: none; display: flex; align-items: center; }
        #sidebar ul li a i { width: 22px; text-align: center; }
        #sidebar ul li a:hover { background: rgba(242, 106, 141, 0.1); color: #fff; }
        #sidebar ul li a.active { background: var(--stage-pink); color: #fff; font-weight: bold; border-radius: 4px; margin: 0 10px; }
        .sidebar-title { font-size: 0.72rem; text-transform: uppercase; color: var(--stage-pink); padding: 18px 20px 6px; font-weight: bold; letter-spacing: 1px; border-top: 1px solid var(--sidebar-divider); margin-top: 5px; }
        .sidebar-title:first-of-type { border-top: none; margin-top: 0; }
        #content { width: 100%; min-height: 100vh; }
        .topbar { background: #fff; height: 60px; border-bottom: 1px solid #e3e6f0; padding: 0 25px; }

        /* REGLAS CSS ADICIONALES PARA HACERLO RESPONSIVE EN MÓVILES (TABLETS Y SMARTPHONES) */
        @media (max-width: 991.98px) {
            body { flex-direction: column !important; }
            #sidebar { width: 100% !important; max-width: 100% !important; min-height: auto !important; }
            #sidebar .components { display: none; } /* Ocultamos el menú vertical de escritorio en móviles */
            .topbar { padding: 0 15px; }
        }
    </style>
</head>
<body class="d-flex">

    <nav id="sidebar">
        <div class="sidebar-header">
            <img src="assets/img/stage.png" alt="Stage" style="max-width: 130px;">
        </div>

        <ul class="list-unstyled components">
            <?php if ($usuario_rol === 'ADMINISTRADOR' || $usuario_rol === 'CONTADOR' || $usuario_rol === 'PROFESOR' || $usuario_rol === 'DOCENTE'): ?>
                <li><a class="<?= $page=='dashboard'?'active':'' ?>" href="index.php?page=dashboard"><i class="fas fa-chart-line me-2"></i> Dashboard</a></li>
                
                <div class="sidebar-title">Gestión de Alumnas</div>
                <li><a class="<?= $page=='bastoneras/listar'?'active':'' ?>" href="index.php?page=bastoneras/listar"><i class="fas fa-id-card me-2"></i> Ficha Bastoneras</a></li>
                <li><a class="<?= $page=='bastoneras/asistencia'?'active':'' ?>" href="index.php?page=bastoneras/asistencia"><i class="fas fa-calendar-check me-2"></i> Tomar Asistencia</a></li>
                <li><a class="<?= $page=='bastoneras/justificaciones'?'active':'' ?>" href="index.php?page=bastoneras/justificaciones"><i class="fas fa-envelope-open-text me-2"></i> Justificaciones</a></li>
                <li><a class="<?= $page=='profesores/listar'?'active':'' ?>" href="index.php?page=profesores/listar"><i class="fas fa-chalkboard-teacher me-2"></i> Ficha Profesores</a></li>
                
                <!-- En la sección de Escritorio (ul.components) -->
                <div class="sidebar-title">Módulo Competencias</div>
                <li><a class="<?= $page=='competencias/listar'?'active':'' ?>" href="index.php?page=competencias/listar"><i class="fas fa-trophy me-2"></i> Rutas Externas (Delegación)</a></li>
                <li><a class="<?= $page=='eventos_propios/listar'?'active':'' ?>" href="index.php?page=eventos_propios/listar"><i class="fas fa-crown me-2"></i> Eventos Propios (Anfitrión)</a></li>
                <li><a class="<?= $page=='eventos_propios/jueces'?'active':'' ?>" href="index.php?page=eventos_propios/jueces"><i class="fas fa-gavel me-2"></i> Asignar Jueces</a></li>
                <li><a class="<?= $page=='competencias/auditoria_computos'?'active':'' ?>" href="index.php?page=competencias/auditoria_computos"><i class="fas fa-poll text-warning me-2"></i> Auditoría de Cómputos</a></li> <!-- 🌟 NUEVO ÍTEM -->
                <li><a class="<?= $page=='competencias/config_niveles'?'active':'' ?>" href="index.php?page=competencias/config_niveles"><i class="fas fa-layer-group me-2"></i> Configurar Niveles</a></li>
                <li><a class="<?= $page=='rubricas/gestionar'?'active':'' ?>" href="index.php?page=rubricas/gestionar"><i class="fas fa-clipboard-list me-2"></i> Rúbricas de Evaluación</a></li> <!-- 🌟 AGREGADO -->
                <li><a class="<?= $page=='academias_invitadas/listar'?'active':'' ?>" href="index.php?page=academias_invitadas/listar"><i class="fas fa-school me-2"></i> Academias Invitadas</a></li>
                
                <div class="sidebar-title">Comercial e Financiero</div>
                <li><a class="<?= $page=='productos/pos'?'active':'' ?>" href="index.php?page=productos/pos"><i class="fas fa-cash-register me-2"></i> Punto de Venta (POS)</a></li>
                <li><a class="<?= $page=='caja/gestionar'?'active':'' ?>" href="index.php?page=caja/gestionar"><i class="fas fa-cash-register"></i> Gestión de Caja</a></li>
                <li><a class="<?= $page=='productos/inventario'?'active':'' ?>" href="index.php?page=productos/inventario"><i class="fas fa-boxes me-2"></i> Productos e Inventario</a></li>
                <li><a class="<?= $page=='productos/categorias'?'active':'' ?>" href="index.php?page=productos/categorias"><i class="fas fa-tags me-2"></i> Categorías de Producto</a></li>
                <li><a class="<?= $page=='conceptos/listar'?'active':'' ?>" href="index.php?page=conceptos/listar"><i class="fas fa-tags me-2"></i> Conceptos de Pago</a></li>
                <li><a class="<?= $page=='mensualidades/listar'?'active':'' ?>" href="index.php?page=mensualidades/listar"><i class="fas fa-file-invoice-dollar me-2"></i> Mensualidades / Cobros</a></li>
                
                <div class="sidebar-title">Administración y Auditoría</div>
                <li><a class="<?= $page=='clasificaciones/listar'?'active':'' ?>" href="index.php?page=clasificaciones/listar"><i class="fas fa-folder me-2"></i> Escalafón / Rangos</a></li>
                <li><a class="<?= $page=='auditoria/listar'?'active':'' ?>" href="index.php?page=auditoria/listar"><i class="fas fa-shield-alt me-2"></i> Auditoría de Cambios</a></li>
            <?php elseif ($usuario_rol === 'ESTUDIANTE'): ?>
                <div class="sidebar-title">Mi Espacio</div>
                <li><a class="<?= $page=='miembro/ficha'?'active':'' ?>" href="index.php?page=miembro/ficha"><i class="fas fa-id-card me-2"></i> Mi Ficha Médica/Técnica</a></li>
                <li><a class="<?= $page=='miembro/mis_pagos'?'active':'' ?>" href="index.php?page=miembro/mis_pagos"><i class="fas fa-receipt me-2"></i> Mis Estados de Cuenta</a></li>
            
            <?php elseif ($usuario_rol === 'PADRE'): ?>
                <div class="sidebar-title">Mi(s) Bastonera (s)</div>
                <li><a class="<?= $page=='padres/ficha_alumno'?'active':'' ?>" href="index.php?page=padres/ficha_alumno"><i class="fas fa-heart me-2"></i> Ficha de Inscripción</a></li>

            <?php elseif ($usuario_rol === 'ACADEMIA'): ?>
                <div class="sidebar-title">Sedes Externas</div>
                <li><a class="<?= $page=='academias/dashboard'?'active':'' ?>" href="index.php?page=academias/dashboard"><i class="fas fa-university me-2"></i> Datos de Sede</a></li>
                <li><a class="<?= $page=='bastoneras/listar'?'active':'' ?>" href="index.php?page=bastoneras/listar"><i class="fas fa-users me-2"></i> Ver Mis Alumnas</a></li>

            <?php elseif ($usuario_rol === 'JUEZ'): ?>
                <div class="sidebar-title">Mesa de Control</div>
                <li><a class="<?= $page=='calificaciones/competencias'?'active':'' ?>" href="index.php?page=calificaciones/competencias"><i class="fas fa-gavel me-2"></i> Evaluar Participantes</a></li>
            <?php endif; ?>
        </ul>
    </nav>

    <nav class="navbar navbar-expand-lg navbar-dark d-lg-none w-100 px-3 py-2" style="background-color: var(--sidebar-bg); border-bottom: 2px solid var(--stage-pink);">
        <div class="container-fluid p-0">
            <span class="navbar-brand p-0">
                <img src="assets/img/stage.png" alt="Stage" style="max-width: 90px;">
            </span>
            <button class="navbar-toggler border-0 text-white" type="button" data-bs-toggle="collapse" data-bs-target="#navbarMobileMenu" aria-controls="navbarMobileMenu" aria-expanded="false" aria-label="Toggle navigation">
                <i class="fas fa-bars fs-4 text-white"></i>
            </button>
            <div class="collapse navbar-collapse mt-2" id="navbarMobileMenu">
                <ul class="navbar-nav list-unstyled m-0">
                    <?php if ($usuario_rol === 'ADMINISTRADOR' || $usuario_rol === 'CONTADOR' || $usuario_rol === 'PROFESOR' || $usuario_rol === 'DOCENTE'): ?>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='dashboard'?'fw-bold text-white':'' ?>" href="index.php?page=dashboard"><i class="fas fa-chart-line me-2"></i> Dashboard</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='bastoneras/listar'?'fw-bold text-white':'' ?>" href="index.php?page=bastoneras/listar"><i class="fas fa-id-card me-2"></i> Ficha Bastoneras</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='bastoneras/asistencia'?'fw-bold text-white':'' ?>" href="index.php?page=bastoneras/asistencia"><i class="fas fa-calendar-check me-2"></i> Tomar Asistencia</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='bastoneras/justificaciones'?'fw-bold text-white':'' ?>" href="index.php?page=bastoneras/justificaciones"><i class="fas fa-envelope-open-text me-2"></i> Justificaciones</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='profesores/listar'?'fw-bold text-white':'' ?>" href="index.php?page=profesores/listar"><i class="fas fa-chalkboard-teacher me-2"></i> Ficha Profesores</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='competencias/listar'?'fw-bold text-white':'' ?>" href="index.php?page=competencias/listar"><i class="fas fa-trophy me-2"></i> Rutas Externas (Delegación)</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='competencias/auditoria_computos'?'active':'' ?>" href="index.php?page=competencias/auditoria_computos"><i class="fas fa-poll text-warning me-2"></i> Auditoría de Cómputos</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='eventos_propios/listar'?'fw-bold text-white':'' ?>" href="index.php?page=eventos_propios/listar"><i class="fas fa-crown me-2"></i> Eventos Propios (Anfitrión)</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='eventos_propios/jueces'?'fw-bold text-white':'' ?>" href="index.php?page=eventos_propios/jueces"><i class="fas fa-gavel me-2"></i> Asignar Jueces</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='competencias/config_niveles'?'fw-bold text-white':'' ?>" href="index.php?page=competencias/config_niveles"><i class="fas fa-layer-group me-2"></i> Configurar Niveles</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='academias_invitadas/listar'?'fw-bold text-white':'' ?>" href="index.php?page=academias_invitadas/listar"><i class="fas fa-school me-2"></i> Academias Invitadas</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='rubricas/gestionar'?'fw-bold text-white':'' ?>" href="index.php?page=rubricas/gestionar"><i class="fas fa-clipboard-list me-2"></i> Rúbricas de Evaluación</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='productos/pos'?'fw-bold text-white':'' ?>" href="index.php?page=productos/pos"><i class="fas fa-cash-register me-2"></i> Punto de Venta (POS)</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='caja/gestionar'?'fw-bold text-white':'' ?>" href="index.php?page=caja/gestionar"><i class="fas fa-cash-register me-2"></i> Gestión de Caja</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='productos/inventario'?'fw-bold text-white':'' ?>" href="index.php?page=productos/inventario"><i class="fas fa-boxes me-2"></i> Productos e Inventario</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='productos/categorias'?'fw-bold text-white':'' ?>" href="index.php?page=productos/categorias"><i class="fas fa-tags me-2"></i> Categorías de Producto</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='conceptos/listar'?'fw-bold text-white':'' ?>" href="index.php?page=conceptos/listar"><i class="fas fa-tags me-2"></i> Conceptos de Pago</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='mensualidades/listar'?'fw-bold text-white':'' ?>" href="index.php?page=mensualidades/listar"><i class="fas fa-file-invoice-dollar me-2"></i> Mensualidades / Cobros</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='clasificaciones/listar'?'fw-bold text-white':'' ?>" href="index.php?page=clasificaciones/listar"><i class="fas fa-folder me-2"></i> Escalafón / Rangos</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='auditoria/listar'?'fw-bold text-white':'' ?>" href="index.php?page=auditoria/listar"><i class="fas fa-shield-alt me-2"></i> Auditoría de Cambios</a></li>
                    <?php elseif ($usuario_rol === 'ESTUDIANTE'): ?>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='miembro/ficha'?'fw-bold text-white':'' ?>" href="index.php?page=miembro/ficha"><i class="fas fa-id-card me-2"></i> Mi Ficha Médica/Técnica</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='miembro/mis_pagos'?'fw-bold text-white':'' ?>" href="index.php?page=miembro/mis_pagos"><i class="fas fa-receipt me-2"></i> Mis Estados de Cuenta</a></li>
                    <?php elseif ($usuario_rol === 'PADRE'): ?>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='padres/ficha_alumno'?'fw-bold text-white':'' ?>" href="index.php?page=padres/ficha_alumno"><i class="fas fa-heart me-2"></i> Ficha de Inscripción</a></li>
                    <?php elseif ($usuario_rol === 'ACADEMIA'): ?>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='academias/dashboard'?'fw-bold text-white':'' ?>" href="index.php?page=academias/dashboard"><i class="fas fa-university me-2"></i> Datos de Sede</a></li>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='bastoneras/listar'?'fw-bold text-white':'' ?>" href="index.php?page=bastoneras/listar"><i class="fas fa-users me-2"></i> Ver Mis Alumnas</a></li>
                    <?php elseif ($usuario_rol === 'JUEZ'): ?>
                        <li class="nav-item"><a class="nav-link py-2 text-white-50 <?= $page=='calificaciones/competencias'?'fw-bold text-white':'' ?>" href="index.php?page=calificaciones/competencias"><i class="fas fa-gavel me-2"></i> Evaluar Participantes</a></li>
                    <?php endif; ?>
                    <li class="nav-item border-top border-secondary mt-2 pt-2">
                        <a class="nav-link py-2 text-danger fw-bold" href="logout.php">
                            <i class="fas fa-sign-out-alt me-2"></i>Salir / Cerrar Sesión
                        </a>
                    </li>
                </ul>
            </div>
        </div>
    </nav>

    <div id="content" class="d-flex flex-column">
        <header class="topbar d-flex justify-content-between align-items-center shadow-sm bg-white">
            <span class="navbar-text fw-bold text-secondary small text-uppercase letter-spacing-1">
                <i class="fas fa-layer-group text-muted me-2"></i>Stage Gestión Integral
            </span>
            
            <div class="dropdown">
                <a href="#" class="text-decoration-none text-dark dropdown-toggle small fw-bold d-flex align-items-center" data-bs-toggle="dropdown">
                    <i class="fas fa-user-circle fs-5 me-1 align-middle text-secondary"></i> 
                    <span class="d-none d-sm-inline"><?= htmlspecialchars($usuario_nombre) ?> (<span class="text-lowercase text-muted"><?= htmlspecialchars($usuario_rol) ?></span>)</span>
                </a>
                <ul class="dropdown-menu dropdown-menu-end shadow-sm border-0">
                    <li>
                        <a class="dropdown-item text-danger small fw-bold" href="logout.php">
                            <i class="fas fa-sign-out-alt me-2"></i>Cerrar Sesión
                        </a>
                    </li>
                </ul>
            </div>
        </header>

        <div class="container-fluid px-3 px-md-4 py-4">
            <?php
            // Tu enrutador dinámico busca en la carpeta "vista/" según la línea de abajo. 
            // Si tu directorio real se llama "vista/", busca allí.
            $archivo = "vista/" . $page . ".php";
            if (file_exists($archivo)) {
                include $archivo;
            } else {
                echo "
                <div class='alert alert-warning border-0 shadow-sm rounded-3 d-flex align-items-center' role='alert'>
                    <i class='fas fa-folder-open fs-4 me-3 text-warning'></i>
                    <div>
                        <h6 class='alert-heading fw-bold mb-1'>Módulo no disponible</h6>
                        <span class='small text-muted'>La vista dinámica solicitada está bajo mantenimiento o no se encuentra en el directorio base: <code>$archivo</code>.</span>
                    </div>
                </div>";
            }
            ?>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>