/* Styles personnalisés pour le dashboard de paiement académique */

/* Animation de transition pour la sidebar */
.transition-all {
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 300ms;
}

/* Style pour les liens de la sidebar */
.sidebar-link {
    display: flex;
    align-items: center;
    padding: 0.75rem 1.5rem;
    color: #374151;
    text-decoration: none;
    transition: all 0.2s ease;
    margin: 0.25rem 0;
}

.sidebar-link:hover {
    background-color: #EFF6FF;
    color: #1E40AF;
}

.sidebar-link i {
    margin-right: 0.75rem;
    font-size: 1.125rem;
    width: 1.5rem;
    text-align: center;
}

.sidebar-link.active {
    background-color: #EFF6FF;
    color: #1E40AF;
    border-right: 4px solid #1E40AF;
    font-weight: 500;
}

/* Style pour le texte dans la sidebar */
.sidebar-text {
    display: none;
}

@media (min-width: 1024px) {
    .sidebar-text {
        display: inline;
    }
}

/* Style pour les cartes de statistiques */
.stat-card {
    @apply bg-white p-6 rounded-xl shadow-sm border border-gray-100 hover:shadow-md transition-shadow duration-200;
}

/* Style pour le formulaire */
input[type="text"],
input[type="number"],
select {
    @apply w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition duration-200;
}

/* Style pour les boutons */
.btn {
    @apply px-4 py-2 rounded-lg font-medium transition duration-200;
}

.btn-primary {
    @apply bg-blue-600 text-white hover:bg-blue-700;
}

.btn-outline {
    @apply border border-gray-300 text-gray-700 hover:bg-gray-50;
}

/* Style pour le tableau */
table {
    @apply min-w-full divide-y divide-gray-200;
}

th {
    @apply px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider;
}

td {
    @apply px-6 py-4 whitespace-nowrap text-sm text-gray-500;
}

/* Style pour les statuts */
.status-badge {
    @apply px-2 inline-flex text-xs leading-5 font-semibold rounded-full;
}

.status-paid {
    @apply bg-green-100 text-green-800;
}

.status-pending {
    @apply bg-yellow-100 text-yellow-800;
}

.status-overdue {
    @apply bg-red-100 text-red-800;
}

/* Animation pour le formulaire de paiement */
@keyframes slideIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

#paymentForm {
    animation: slideIn 0.3s ease-out;
}

/* Styles pour les écrans mobiles */
@media (max-width: 768px) {
    #sidebar {
        transform: translateX(-100%);
        z-index: 50;
    }

    #sidebar.mobile-show {
        transform: translateX(0);
    }

    .main-content {
        margin-left: 0;
    }
}
