 /* ========== VARIABLES Y RESET ========== */
        :root {
            --color-bg-principal: #0a0e27;
            --color-bg-secundario: #131d42;
            --color-bg-terciario: #1a2754;
            --color-neon-azul: #00d4ff;
            --color-neon-verde: #39ff14;
            --color-neon-morado: #da00ff;
            --color-neon-rosa: #ff006e;
            --color-texto-principal: #e0e0e0;
            --color-texto-secundario: #a0a0a0;
            --color-border: #2a3f6f;
            --color-exito: #00d084;
            --color-error: #ff3333;
            --color-advertencia: #ffa500;
            --transicion-suave: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
            --sombra-neon-azul: 0 0 20px rgba(0, 212, 255, 0.3);
            --sombra-neon-verde: 0 0 20px rgba(57, 255, 20, 0.3);
            --sombra-neon-morado: 0 0 20px rgba(218, 0, 255, 0.3);
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        html, body {
            width: 100%;
            height: 100%;
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background-color: var(--color-bg-principal);
            color: var(--color-texto-principal);
            overflow-x: hidden;
        }

        /* ========== CONTENEDOR PRINCIPAL ========== */
        #contenedor-principal {
            display: grid;
            grid-template-columns: 280px 1fr;
            min-height: 100vh;
            background: linear-gradient(135deg, #0a0e27 0%, #1a1f3a 100%);
        }

        /* ========== BARRA LATERAL ========== */
        .barra-lateral {
            background-color: var(--color-bg-secundario);
            border-right: 2px solid var(--color-border);
            padding: 20px;
            overflow-y: auto;
            position: sticky;
            top: 0;
            height: 100vh;
            box-shadow: inset -2px 0 8px rgba(0, 0, 0, 0.5);
        }

        .logo-aplicacion {
            display: flex;
            align-items: center;
            gap: 12px;
            margin-bottom: 30px;
            padding-bottom: 20px;
            border-bottom: 2px solid var(--color-neon-azul);
            cursor: pointer;
            transition: var(--transicion-suave);
        }

        .logo-aplicacion:hover {
            text-shadow: var(--sombra-neon-azul);
        }

        .logo-icono {
            width: 40px;
            height: 40px;
            background: linear-gradient(135deg, var(--color-neon-azul), var(--color-neon-morado));
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 24px;
            font-weight: bold;
            box-shadow: var(--sombra-neon-azul);
        }

        .logo-texto h1 {
            font-size: 18px;
            color: var(--color-neon-azul);
            text-shadow: var(--sombra-neon-azul);
        }

        .logo-texto p {
            font-size: 11px;
            color: var(--color-texto-secundario);
        }

        .menu-navegacion {
            display: flex;
            flex-direction: column;
            gap: 8px;
            margin-bottom: 40px;
        }

        .item-menu {
            padding: 12px 16px;
            background-color: transparent;
            border: 1px solid transparent;
            border-radius: 8px;
            color: var(--color-texto-secundario);
            cursor: pointer;
            transition: var(--transicion-suave);
            display: flex;
            align-items: center;
            gap: 12px;
            font-size: 14px;
            font-weight: 500;
            position: relative;
        }

        .item-menu::before {
            content: '';
            position: absolute;
            left: 0;
            top: 50%;
            transform: translateY(-50%);
            width: 0;
            height: 2px;
            background: var(--color-neon-azul);
            transition: var(--transicion-suave);
        }

        .item-menu:hover {
            background-color: var(--color-bg-terciario);
            color: var(--color-neon-azul);
            border-color: var(--color-border);
        }

        .item-menu:hover::before {
            width: 4px;
            height: 20px;
            top: 50%;
        }

        .item-menu.activo {
            background-color: var(--color-bg-terciario);
            color: var(--color-neon-azul);
            border-color: var(--color-neon-azul);
            box-shadow: inset 0 0 10px rgba(0, 212, 255, 0.2);
        }

        .item-menu.activo::before {
            width: 4px;
            height: 20px;
        }

        .icono-menu {
            font-size: 18px;
        }

        .seccion-menu {
            margin-bottom: 30px;
        }

        .titulo-seccion {
            font-size: 12px;
            color: var(--color-texto-secundario);
            text-transform: uppercase;
            letter-spacing: 1px;
            margin-bottom: 12px;
            padding-left: 16px;
            font-weight: 600;
        }

        /* ========== ÁREA PRINCIPAL ========== */
        .area-contenido {
            display: flex;
            flex-direction: column;
            background: linear-gradient(135deg, #0a0e27 0%, #1a1f3a 100%);
        }

        /* ========== ENCABEZADO ========== */
        .encabezado {
            background-color: var(--color-bg-secundario);
            border-bottom: 2px solid var(--color-border);
            padding: 20px 30px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
        }

        .titulo-pagina {
            font-size: 28px;
            font-weight: 700;
            color: var(--color-neon-azul);
            text-shadow: var(--sombra-neon-azul);
        }

        .controles-encabezado {
            display: flex;
            gap: 15px;
            align-items: center;
        }

        .info-usuario {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 10px 15px;
            background-color: var(--color-bg-terciario);
            border-radius: 8px;
            border: 1px solid var(--color-border);
        }

        .avatar {
            width: 35px;
            height: 35px;
            border-radius: 50%;
            background: linear-gradient(135deg, var(--color-neon-azul), var(--color-neon-morado));
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: bold;
            box-shadow: var(--sombra-neon-azul);
        }

        /* ========== CONTENIDO ========== */
        .contenido {
            flex: 1;
            padding: 30px;
            overflow-y: auto;
            display: grid;
            grid-template-columns: 1fr;
            gap: 30px;
        }

        .seccion-oculta {
            display: none !important;
        }

        /* ========== VISTA RESERVAS ========== */
        .contenedor-reservas {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 30px;
        }

        .panel-calendario {
            background-color: var(--color-bg-secundario);
            border: 2px solid var(--color-border);
            border-radius: 12px;
            padding: 25px;
            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
        }

        .calendario {
            width: 100%;
        }

        .controles-calendario {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 20px;
            gap: 15px;
        }

        .mes-anio-actual {
            font-size: 18px;
            font-weight: 600;
            color: var(--color-neon-azul);
            text-shadow: var(--sombra-neon-azul);
            min-width: 200px;
            text-align: center;
        }

        .boton-navegacion-fecha {
            background-color: var(--color-bg-terciario);
            border: 1px solid var(--color-neon-azul);
            color: var(--color-neon-azul);
            padding: 8px 12px;
            border-radius: 6px;
            cursor: pointer;
            transition: var(--transicion-suave);
            font-weight: 600;
            box-shadow: 0 0 10px rgba(0, 212, 255, 0.2);
        }

        .boton-navegacion-fecha:hover {
            background-color: var(--color-bg-principal);
            box-shadow: var(--sombra-neon-azul);
            transform: translateY(-2px);
        }

        .boton-navegacion-fecha:active {
            transform: translateY(0);
        }

        .dias-semana {
            display: grid;
            grid-template-columns: repeat(7, 1fr);
            gap: 8px;
            margin-bottom: 12px;
        }

        .encabezado-dia {
            text-align: center;
            font-weight: 600;
            font-size: 12px;
            color: var(--color-neon-verde);
            padding: 8px;
            text-transform: uppercase;
            letter-spacing: 1px;
        }

        .dias-calendario {
            display: grid;
            grid-template-columns: repeat(7, 1fr);
            gap: 8px;
        }

        .dia-calendario {
            aspect-ratio: 1;
            display: flex;
            align-items: center;
            justify-content: center;
            background-color: var(--color-bg-terciario);
            border: 1px solid var(--color-border);
            border-radius: 8px;
            cursor: pointer;
            transition: var(--transicion-suave);
            font-size: 14px;
            font-weight: 600;
            color: var(--color-texto-principal);
            position: relative;
            overflow: hidden;
        }

        .dia-calendario::before {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(135deg, transparent, rgba(0, 212, 255, 0.1));
            opacity: 0;
            transition: var(--transicion-suave);
        }

        .dia-calendario:hover {
            background-color: var(--color-bg-principal);
            border-color: var(--color-neon-azul);
            box-shadow: 0 0 15px rgba(0, 212, 255, 0.2);
        }

        .dia-calendario:hover::before {
            opacity: 1;
        }

        .dia-calendario.otro-mes {
            color: var(--color-texto-secundario);
            pointer-events: none;
        }

        .dia-calendario.seleccionado {
            background: linear-gradient(135deg, var(--color-neon-azul), var(--color-neon-morado));
            border-color: var(--color-neon-verde);
            color: var(--color-bg-principal);
            font-weight: 700;
            box-shadow: var(--sombra-neon-azul);
        }

        .dia-calendario.con-citas {
            position: relative;
        }

        .dia-calendario.con-citas::after {
            content: '●';
            position: absolute;
            bottom: 2px;
            font-size: 8px;
            color: var(--color-neon-verde);
        }

        .panel-detalles {
            display: grid;
            grid-template-columns: 1fr;
            gap: 20px;
        }

        .tarjeta-seccion {
            background-color: var(--color-bg-secundario);
            border: 2px solid var(--color-border);
            border-radius: 12px;
            padding: 20px;
            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
        }

        .titulo-seccion-contenido {
            font-size: 16px;
            font-weight: 700;
            color: var(--color-neon-verde);
            margin-bottom: 15px;
            padding-bottom: 10px;
            border-bottom: 2px solid var(--color-neon-verde);
            text-shadow: var(--sombra-neon-verde);
        }

        .lista-proveedores {
            display: grid;
            grid-template-columns: 1fr;
            gap: 10px;
        }

        .item-proveedor {
            padding: 12px;
            background-color: var(--color-bg-terciario);
            border: 1px solid var(--color-border);
            border-radius: 8px;
            cursor: pointer;
            transition: var(--transicion-suave);
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-size: 14px;
        }

        .item-proveedor:hover {
            background-color: var(--color-bg-principal);
            border-color: var(--color-neon-azul);
            box-shadow: 0 0 15px rgba(0, 212, 255, 0.2);
        }

        .item-proveedor.seleccionado {
            background: linear-gradient(135deg, rgba(0, 212, 255, 0.2), rgba(218, 0, 255, 0.2));
            border-color: var(--color-neon-azul);
            box-shadow: var(--sombra-neon-azul);
        }

        .nombre-proveedor {
            font-weight: 600;
            color: var(--color-neon-azul);
        }

        .estado-proveedor {
            font-size: 12px;
            color: var(--color-neon-verde);
        }

        .lista-servicios {
            display: grid;
            grid-template-columns: 1fr;
            gap: 10px;
        }

        .item-servicio {
            padding: 12px;
            background-color: var(--color-bg-terciario);
            border: 1px solid var(--color-border);
            border-radius: 8px;
            cursor: pointer;
            transition: var(--transicion-suave);
        }

        .item-servicio:hover {
            background-color: var(--color-bg-principal);
            border-color: var(--color-neon-verde);
            box-shadow: 0 0 15px rgba(57, 255, 20, 0.2);
        }

        .item-servicio.seleccionado {
            background: linear-gradient(135deg, rgba(57, 255, 20, 0.2), rgba(0, 212, 255, 0.2));
            border-color: var(--color-neon-verde);
            box-shadow: var(--sombra-neon-verde);
        }

        .nombre-servicio {
            font-weight: 600;
            color: var(--color-neon-verde);
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-size: 14px;
        }

        .duracion-servicio {
            font-size: 12px;
            color: var(--color-texto-secundario);
            margin-top: 5px;
        }

        .precio-servicio {
            font-size: 12px;
            color: var(--color-neon-morado);
            margin-top: 5px;
        }

        .lista-horas {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(80px, 1fr));
            gap: 8px;
        }

        .boton-hora {
            padding: 10px;
            background-color: var(--color-bg-terciario);
            border: 1px solid var(--color-neon-azul);
            color: var(--color-neon-azul);
            border-radius: 6px;
            cursor: pointer;
            transition: var(--transicion-suave);
            font-size: 13px;
            font-weight: 600;
            box-shadow: 0 0 8px rgba(0, 212, 255, 0.15);
        }

        .boton-hora:hover {
            background-color: var(--color-bg-principal);
            box-shadow: var(--sombra-neon-azul);
            transform: translateY(-2px);
        }

        .boton-hora:disabled {
            opacity: 0.5;
            cursor: not-allowed;
            color: var(--color-texto-secundario);
            border-color: var(--color-border);
        }

        .boton-hora.seleccionado {
            background: linear-gradient(135deg, var(--color-neon-azul), var(--color-neon-morado));
            color: var(--color-bg-principal);
            border-color: var(--color-neon-verde);
            box-shadow: var(--sombra-neon-azul);
        }

        .formulario-reserva {
            display: grid;
            grid-template-columns: 1fr;
            gap: 15px;
            margin-top: 15px;
        }

        .grupo-formulario {
            display: grid;
            grid-template-columns: 1fr;
            gap: 8px;
        }

        .etiqueta-formulario {
            font-size: 13px;
            font-weight: 600;
            color: var(--color-neon-verde);
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .entrada-formulario,
        .seleccion-formulario {
            padding: 12px;
            background-color: var(--color-bg-principal);
            border: 2px solid var(--color-border);
            border-radius: 6px;
            color: var(--color-texto-principal);
            font-size: 14px;
            font-family: inherit;
            transition: var(--transicion-suave);
        }

        .entrada-formulario:focus,
        .seleccion-formulario:focus {
            outline: none;
            border-color: var(--color-neon-azul);
            box-shadow: 0 0 15px rgba(0, 212, 255, 0.3);
            background-color: var(--color-bg-secundario);
        }

        .entrada-formulario::placeholder {
            color: var(--color-texto-secundario);
        }

        .boton-primario {
            padding: 14px 24px;
            background: linear-gradient(135deg, var(--color-neon-azul), var(--color-neon-morado));
            border: 2px solid var(--color-neon-verde);
            color: var(--color-bg-principal);
            border-radius: 8px;
            font-size: 15px;
            font-weight: 700;
            cursor: pointer;
            transition: var(--transicion-suave);
            box-shadow: var(--sombra-neon-azul);
            text-transform: uppercase;
            letter-spacing: 1px;
        }

        .boton-primario:hover {
            transform: translateY(-3px);
            box-shadow: 0 0 30px rgba(0, 212, 255, 0.5);
        }

        .boton-primario:active {
            transform: translateY(-1px);
        }

        .boton-primario:disabled {
            opacity: 0.5;
            cursor: not-allowed;
            transform: none;
        }

        .boton-secundario {
            padding: 12px 20px;
            background-color: var(--color-bg-terciario);
            border: 2px solid var(--color-neon-azul);
            color: var(--color-neon-azul);
            border-radius: 8px;
            font-size: 14px;
            font-weight: 600;
            cursor: pointer;
            transition: var(--transicion-suave);
            box-shadow: 0 0 10px rgba(0, 212, 255, 0.2);
        }

        .boton-secundario:hover {
            background-color: var(--color-bg-principal);
            box-shadow: var(--sombra-neon-azul);
            transform: translateY(-2px);
        }

        .boton-peligro {
            background: linear-gradient(135deg, var(--color-error), var(--color-neon-rosa));
            border: 2px solid var(--color-neon-rosa);
            color: var(--color-bg-principal);
            box-shadow: 0 0 10px rgba(255, 51, 51, 0.3);
        }

        .boton-peligro:hover {
            box-shadow: 0 0 25px rgba(255, 51, 51, 0.5);
        }

        .boton-exito {
            background: linear-gradient(135deg, var(--color-exito), var(--color-neon-verde));
            border: 2px solid var(--color-neon-verde);
            box-shadow: 0 0 10px rgba(57, 255, 20, 0.3);
        }

        .boton-exito:hover {
            box-shadow: 0 0 25px rgba(57, 255, 20, 0.5);
        }

        /* ========== VISTA GESTIÓN ========== */
        .contenedor-gestion {
            display: grid;
            grid-template-columns: 1fr;
            gap: 30px;
        }

        .tabla-contenedor {
            background-color: var(--color-bg-secundario);
            border: 2px solid var(--color-border);
            border-radius: 12px;
            padding: 20px;
            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
            overflow-x: auto;
        }

        .tabla-gestión {
            width: 100%;
            border-collapse: collapse;
        }

        .tabla-gestión thead {
            background-color: var(--color-bg-terciario);
            border-bottom: 2px solid var(--color-neon-azul);
        }

        .tabla-gestión th {
            padding: 15px;
            text-align: left;
            font-weight: 700;
            color: var(--color-neon-azul);
            text-shadow: var(--sombra-neon-azul);
            font-size: 13px;
            text-transform: uppercase;
            letter-spacing: 1px;
        }

        .tabla-gestión td {
            padding: 12px 15px;
            border-bottom: 1px solid var(--color-border);
            color: var(--color-texto-principal);
            font-size: 14px;
        }

        .tabla-gestión tbody tr {
            transition: var(--transicion-suave);
        }

        .tabla-gestión tbody tr:hover {
            background-color: var(--color-bg-terciario);
            box-shadow: inset 0 0 10px rgba(0, 212, 255, 0.1);
        }

        .badge {
            display: inline-block;
            padding: 6px 12px;
            border-radius: 20px;
            font-size: 12px;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .badge-pendiente {
            background-color: rgba(255, 165, 0, 0.2);
            color: var(--color-advertencia);
            border: 1px solid var(--color-advertencia);
        }

        .badge-confirmada {
            background-color: rgba(57, 255, 20, 0.2);
            color: var(--color-neon-verde);
            border: 1px solid var(--color-neon-verde);
        }

        .badge-cancelada {
            background-color: rgba(255, 51, 51, 0.2);
            color: var(--color-error);
            border: 1px solid var(--color-error);
        }

        .badge-completada {
            background-color: rgba(0, 208, 132, 0.2);
            color: var(--color-exito);
            border: 1px solid var(--color-exito);
        }

        .acciones-tabla {
            display: flex;
            gap: 8px;
        }

        .boton-accion {
            padding: 6px 10px;
            background-color: var(--color-bg-principal);
            border: 1px solid var(--color-neon-azul);
            color: var(--color-neon-azul);
            border-radius: 4px;
            cursor: pointer;
            font-size: 12px;
            font-weight: 600;
            transition: var(--transicion-suave);
            box-shadow: 0 0 8px rgba(0, 212, 255, 0.15);
        }

        .boton-accion:hover {
            background-color: var(--color-bg-terciario);
            box-shadow: var(--sombra-neon-azul);
        }

        .boton-accion.eliminar {
            border-color: var(--color-error);
            color: var(--color-error);
            box-shadow: 0 0 8px rgba(255, 51, 51, 0.15);
        }

        .boton-accion.eliminar:hover {
            box-shadow: 0 0 15px rgba(255, 51, 51, 0.3);
        }

        /* ========== MODALES ========== */
        .modal {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: rgba(0, 0, 0, 0.8);
            z-index: 1000;
            align-items: center;
            justify-content: center;
            backdrop-filter: blur(4px);
            animation: aparecerModal 0.3s ease-out;
        }

        .modal.visible {
            display: flex;
        }

        @keyframes aparecerModal {
            from {
                opacity: 0;
                transform: scale(0.95);
            }
            to {
                opacity: 1;
                transform: scale(1);
            }
        }

        .contenido-modal {
            background-color: var(--color-bg-secundario);
            border: 2px solid var(--color-neon-azul);
            border-radius: 12px;
            padding: 30px;
            max-width: 500px;
            width: 90%;
            max-height: 90vh;
            overflow-y: auto;
            box-shadow: 0 0 50px rgba(0, 212, 255, 0.3);
            animation: deslizarModal 0.3s ease-out;
        }

        @keyframes deslizarModal {
            from {
                transform: translateY(-50px);
                opacity: 0;
            }
            to {
                transform: translateY(0);
                opacity: 1;
            }
        }

        .encabezado-modal {
            font-size: 22px;
            font-weight: 700;
            color: var(--color-neon-verde);
            margin-bottom: 20px;
            padding-bottom: 15px;
            border-bottom: 2px solid var(--color-neon-verde);
            text-shadow: var(--sombra-neon-verde);
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .boton-cerrar-modal {
            background: none;
            border: none;
            color: var(--color-neon-azul);
            font-size: 24px;
            cursor: pointer;
            transition: var(--transicion-suave);
            padding: 0;
            width: 30px;
            height: 30px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .boton-cerrar-modal:hover {
            color: var(--color-error);
            transform: rotate(90deg);
        }

        .contenido-formulario-modal {
            display: grid;
            grid-template-columns: 1fr;
            gap: 15px;
        }

        /* ========== NOTIFICACIONES ========== */
        .contenedor-notificaciones {
            position: fixed;
            bottom: 30px;
            right: 30px;
            z-index: 2000;
            display: flex;
            flex-direction: column;
            gap: 10px;
            max-width: 400px;
        }

        .notificacion {
            padding: 15px 20px;
            border-radius: 8px;
            border-left: 4px solid;
            background-color: var(--color-bg-secundario);
            color: var(--color-texto-principal);
            font-size: 14px;
            font-weight: 500;
            box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);
            animation: deslizarNotificacion 0.3s ease-out;
            position: relative;
            overflow: hidden;
        }

        @keyframes deslizarNotificacion {
            from {
                transform: translateX(400px);
                opacity: 0;
            }
            to {
                transform: translateX(0);
                opacity: 1;
            }
        }

        .notificacion::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 3px;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
            animation: brillo 0.5s ease-out;
        }

        @keyframes brillo {
            from {
                left: -100%;
            }
            to {
                left: 100%;
            }
        }

        .notificacion.exito {
            border-left-color: var(--color-neon-verde);
            background: linear-gradient(135deg, rgba(57, 255, 20, 0.1), transparent);
        }

        .notificacion.error {
            border-left-color: var(--color-error);
            background: linear-gradient(135deg, rgba(255, 51, 51, 0.1), transparent);
        }

        .notificacion.advertencia {
            border-left-color: var(--color-advertencia);
            background: linear-gradient(135deg, rgba(255, 165, 0, 0.1), transparent);
        }

        .notificacion.informacion {
            border-left-color: var(--color-neon-azul);
            background: linear-gradient(135deg, rgba(0, 212, 255, 0.1), transparent);
        }

        /* ========== MALLA PRINCIPAL ========== */
        .contenedor-panel-admin {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
            gap: 20px;
        }

        .tarjeta-estadistica {
            background: linear-gradient(135deg, var(--color-bg-secundario), var(--color-bg-terciario));
            border: 2px solid var(--color-border);
            border-radius: 12px;
            padding: 20px;
            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
            transition: var(--transicion-suave);
            position: relative;
            overflow: hidden;
        }

        .tarjeta-estadistica::before {
            content: '';
            position: absolute;
            top: -50%;
            right: -50%;
            width: 200px;
            height: 200px;
            background: radial-gradient(circle, rgba(0, 212, 255, 0.1), transparent);
            animation: flotarFondo 4s ease-in-out infinite;
        }

        @keyframes flotarFondo {
            0%, 100% {
                transform: translate(0, 0);
            }
            50% {
                transform: translate(20px, 20px);
            }
        }

        .tarjeta-estadistica:hover {
            border-color: var(--color-neon-azul);
            box-shadow: 0 0 30px rgba(0, 212, 255, 0.2);
        }

        .numero-estadistica {
            font-size: 32px;
            font-weight: 700;
            color: var(--color-neon-azul);
            text-shadow: var(--sombra-neon-azul);
            margin-bottom: 10px;
            position: relative;
            z-index: 1;
        }

        .titulo-estadistica {
            font-size: 14px;
            color: var(--color-texto-secundario);
            text-transform: uppercase;
            letter-spacing: 1px;
            position: relative;
            z-index: 1;
        }

        /* ========== FILTROS ========== */
        .controles-filtro {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 15px;
            margin-bottom: 25px;
            padding: 20px;
            background-color: var(--color-bg-secundario);
            border: 2px solid var(--color-border);
            border-radius: 12px;
        }

        .grupo-filtro {
            display: grid;
            grid-template-columns: 1fr;
            gap: 8px;
        }

        .etiqueta-filtro {
            font-size: 13px;
            font-weight: 600;
            color: var(--color-neon-verde);
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .entrada-filtro {
            padding: 10px 12px;
            background-color: var(--color-bg-principal);
            border: 1px solid var(--color-border);
            border-radius: 6px;
            color: var(--color-texto-principal);
            font-size: 14px;
            transition: var(--transicion-suave);
        }

        .entrada-filtro:focus {
            outline: none;
            border-color: var(--color-neon-azul);
            box-shadow: 0 0 10px rgba(0, 212, 255, 0.2);
        }

        /* ========== RESPONSIVO ========== */
        @media (max-width: 1200px) {
            .contenedor-reservas {
                grid-template-columns: 1fr;
            }
        }

        @media (max-width: 768px) {
            #contenedor-principal {
                grid-template-columns: 1fr;
            }

            .barra-lateral {
                position: fixed;
                left: -280px;
                top: 0;
                height: 100vh;
                z-index: 999;
                width: 280px;
                transition: var(--transicion-suave);
                border-right: 2px solid var(--color-border);
            }

            .barra-lateral.abierta {
                left: 0;
                box-shadow: 2px 0 15px rgba(0, 0, 0, 0.5);
            }

            .encabezado {
                padding: 15px 20px;
            }

            .titulo-pagina {
                font-size: 22px;
            }

            .contenido {
                padding: 20px;
            }

            .info-usuario {
                font-size: 12px;
            }

            .avatar {
                width: 30px;
                height: 30px;
                font-size: 12px;
            }

            .controles-filtro {
                grid-template-columns: 1fr;
            }

            .contenedor-panel-admin {
                grid-template-columns: 1fr;
            }
        }

        @media (max-width: 480px) {
            .encabezado {
                flex-direction: column;
                gap: 15px;
                text-align: center;
            }

            .titulo-pagina {
                font-size: 18px;
            }

            .controles-encabezado {
                width: 100%;
                justify-content: center;
            }

            .info-usuario {
                width: 100%;
            }

            .lista-horas {
                grid-template-columns: repeat(3, 1fr);
            }

            .tabla-contenedor {
                font-size: 12px;
                padding: 10px;
            }

            .tabla-gestión th,
            .tabla-gestión td {
                padding: 8px 5px;
            }
        }

        /* ========== SCROLLBAR ========== */
        ::-webkit-scrollbar {
            width: 8px;
            height: 8px;
        }

        ::-webkit-scrollbar-track {
            background: var(--color-bg-principal);
        }

        ::-webkit-scrollbar-thumb {
            background: linear-gradient(180deg, var(--color-neon-azul), var(--color-neon-morado));
            border-radius: 4px;
            box-shadow: inset 0 0 6px rgba(0, 212, 255, 0.3);
        }

        ::-webkit-scrollbar-thumb:hover {
            background: linear-gradient(180deg, var(--color-neon-morado), var(--color-neon-azul));
            box-shadow: 0 0 15px rgba(0, 212, 255, 0.5);
        }

        /* ========== UTILIDADES ========== */
        .invisible {
            visibility: hidden;
            height: 0;
            overflow: hidden;
        }

        .oculto {
            display: none !important;
        }

        .flex-centro {
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .sin-eventos {
            text-align: center;
            padding: 40px 20px;
            color: var(--color-texto-secundario);
        }

        .sin-eventos-icono {
            font-size: 48px;
            margin-bottom: 15px;
            opacity: 0.5;
        }

        .sin-eventos-texto {
            font-size: 16px;
            margin-bottom: 10px;
        }

        .sin-eventos-subtexto {
            font-size: 14px;
            color: var(--color-texto-secundario);
        }

        /* ========== ANIMACIONES GENERALES ========== */
        @keyframes pulsoNeon {
            0%, 100% {
                box-shadow: 0 0 10px rgba(0, 212, 255, 0.5);
            }
            50% {
                box-shadow: 0 0 20px rgba(0, 212, 255, 0.8);
            }
        }

        .pulso-activo {
            animation: pulsoNeon 2s ease-in-out infinite;
        }