/* Transiciones suaves estilo Astro para Devs API Hub */

/* Contenedor principal con transiciones */
#mainContent {
    transition: opacity 0.3s ease-in-out;
    opacity: 1;
}

/* Transiciones para enlaces del sidebar */
.sidebar .nav-link {
    transition: all 0.2s ease-in-out;
    position: relative;
}

.sidebar .nav-link:hover {
    transform: translateX(5px);
    color: #444 !important;
}

.sidebar .nav-link.active {
    border-radius: 6px;
    padding-left: 10px;
}

/* Animaciones para elementos de la página */
.fade-in {
    animation: fadeIn 0.5s ease-in-out;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Transiciones suaves para cambios de contenido */
.content-transition {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Efecto de desvanecimiento para el contenido */
.fade-out {
    opacity: 0;
    transform: scale(0.98);
}

.fade-in {
    opacity: 1;
    transform: scale(1);
}

/* Indicador de progreso sutil */
.progress-bar {
    position: fixed;
    top: 0;
    left: 0;
    height: 3px;
    background: linear-gradient(90deg, #007bff, #00d4ff);
    width: 0%;
    transition: width 0.3s ease-in-out;
    z-index: 10000;
}

.progress-bar.loading {
    width: 100%;
}

/* Mejoras adicionales para transiciones */
.sidebar .nav-link {
    position: relative;
    overflow: hidden;
}

.sidebar .nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: -100%;
    width: 100%;
    height: 2px;
    background: linear-gradient(90deg, #007bff, #00d4ff);
    transition: left 0.3s ease-in-out;
}

.sidebar .nav-link:hover::after {
    left: 0;
}

/* Transiciones para el contenido principal */
#mainContent {
    min-height: 400px;
}
