body {
    background-color: #f8f9fa;
}

/* NAVBAR CON SOMBREADO 3D */
.navbar.shadow-3d {
    box-shadow:
        0 2px 4px -1px rgba(0, 0, 0, 0.12), 
        0 6px 12px -4px rgba(0, 0, 0, 0.15);
    z-index: 1030;
}

/* TARJETAS */
.card {
    border-radius: 1rem;
}

/* SIDEBAR ESTILIZADO */
.sidebar {
    background-color: #f8f9fa;
    box-shadow: 2px 0 8px rgba(0, 0, 0, 0.05);
    border-right: 1px solid #e0e0e0;
    transition: width 0.3s ease;
    z-index: 1020;
    width: 240px;
}

.sidebar.collapsed {
    width: 60px;
}

/* ENLACES DEL SIDEBAR */
.sidebar .nav-link {
    color: #333;
    font-weight: 500;
    padding: 0.75rem 1rem;
    border-left: 3px solid transparent;
    transition: all 0.2s ease;
    border-radius: 0 10px 10px 0;
}

.sidebar .nav-link:hover {
    background-color: #e9ecef;
    border-left: 3px solid #0d6efd;
    color: #0d6efd;
}

.sidebar .nav-link.active {
    background-color: #e9ecef;
    border-left: 3px solid #0d6efd;
    color: #0d6efd;
}

/* ÍCONOS */
.sidebar .nav-link i {
    font-size: 1.1rem;
    color: #6c757d;
    transition: color 0.2s ease;
}

.sidebar .nav-link:hover i {
    color: #0d6efd;
}

.sidebar .nav-link.active i {
    color: #0d6efd;
}

/* TEXTO DEL ENLACE */
.sidebar .link-text {
    display: inline;
    margin-left: 0.5rem;
    transition: opacity 0.3s ease;
}

.sidebar.collapsed .link-text {
    opacity: 0;
    width: 0;
    overflow: hidden;
    display: none !important;
}

/* ===================== */
/* ANIMACIÓN DE SUBMENÚ */
/* ===================== */
.submenu {
    height: 0;
    overflow: hidden;
    transition: height 0.3s ease;
    background-color: #f1f3f5;
    padding-left: 0.5rem;
    border-radius: 0 8px 8px 0;
    display: none;
}

.submenu.show {
    display: block;
    overflow: hidden;
}

.sidebar.collapsed .submenu {
    display: none !important;
    height: 0 !important;
    overflow: hidden !important;
}

/* ENLACES DE SUBMENÚ */
.sidebar .submenu .nav-link {
    padding-left: 2.5rem;
    font-size: 0.9rem;
    color: #495057;
    background-color: #f8f9fa;
    border-radius: 0 8px 8px 0;
}

/* BORDES ENTRE ÍTEMS */
.sidebar .nav-item:not(:last-child) {
    border-bottom: 1px solid #dee2e6;
}

/* ALERTS */
.custom-alert {
    opacity: 0;
    transform: translateY(-10px);
    transition: all 0.5s ease;
}

.custom-alert.show {
    opacity: 1;
    transform: translateY(0);
}

.custom-alert.hide {
    opacity: 0;
    transform: translateY(-10px);
}

/* BOTONES */
.btn-morado {
    --bs-btn-color: #fff;
    --bs-btn-bg: #352178;
    --bs-btn-border-color: #352178;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #4e35a1;
    --bs-btn-hover-border-color: #0a58ca;
    --bs-btn-focus-shadow-rgb: 49, 132, 253;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #0a58ca;
    --bs-btn-active-border-color: #0a53be;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #352178;
    --bs-btn-disabled-border-color: #352178;
}