@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&family=Roboto+Slab:wght@400;500;600;700&display=swap');
        
        :root {
            --primary-color: #1a365d;
            --secondary-color: #2c5282;
            --accent-color: #4299e1;
            --text-color: #2d3748;
            --bg-color: #f7fafc;
            --card-color: #ffffff;
        }
        
        body {
            font-family: 'Poppins', sans-serif;
            color: var(--text-color);
            background-color: var(--bg-color);
            overflow-x: hidden;
        }
        
        h1, h2, h3, h4, h5, h6 {
            font-family: 'Roboto Slab', serif;
        }
        
        .section {
            display: none;
            opacity: 0;
            transition: opacity 0.5s ease-in-out;
        }
        
        .section.active {
            display: block;
            opacity: 1;
        }
        
        .nav-item {
            position: relative;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        
        .nav-item::after {
            content: '';
            position: absolute;
            width: 0;
            height: 2px;
            bottom: -2px;
            left: 0;
            background-color: var(--accent-color);
            transition: width 0.3s ease;
        }
        
        .nav-item:hover::after,
        .nav-item.active::after {
            width: 100%;
        }
        
        .card {
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        
        .card:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
        }
        
        .btn-primary {
            background-color: var(--primary-color);
            color: white;
            transition: all 0.3s ease;
        }
        
        .btn-primary:hover {
            background-color: var(--secondary-color);
            transform: translateY(-2px);
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
        }
        
        .timeline-item {
            position: relative;
            padding-left: 30px;
            margin-bottom: 30px;
        }
        
        .timeline-item::before {
            content: '';
            position: absolute;
            left: 0;
            top: 0;
            height: 100%;
            width: 2px;
            background-color: var(--accent-color);
        }
        
        .timeline-item::after {
            content: '';
            position: absolute;
            left: -4px;
            top: 0;
            width: 10px;
            height: 10px;
            border-radius: 50%;
            background-color: var(--accent-color);
        }
        
        .course-card {
            overflow: hidden;
        }
        
        .course-preview {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.5s ease;
        }
        
        .course-card.expanded .course-preview {
            max-height: 500px;
        }
        
        .formula-container {
            overflow-x: auto;
            padding: 15px;
            background-color: #f8f9fa;
            border-radius: 8px;
            margin: 15px 0;
        }
        
        .avatar-img {
            border-radius: 50%;
            border: 3px solid var(--accent-color);
        }
        
        @media (max-width: 768px) {
            .nav-container {
                overflow-x: auto;
                white-space: nowrap;
                -webkit-overflow-scrolling: touch;
            }
        }
        
        /* Animation classes */
        .fade-in {
            animation: fadeIn 0.5s ease-in-out forwards;
        }
        
        @keyframes fadeIn {
            from { opacity: 0; }
            to { opacity: 1; }
        }
        
        .slide-in {
            animation: slideIn 0.5s ease-in-out forwards;
        }
        
        @keyframes slideIn {
            from { transform: translateY(20px); opacity: 0; }
            to { transform: translateY(0); opacity: 1; }
        }
        
        /* Custom scrollbar */
        ::-webkit-scrollbar {
            width: 8px;
            height: 8px;
        }
        
        ::-webkit-scrollbar-track {
            background: #f1f1f1;
        }
        
        ::-webkit-scrollbar-thumb {
            background: var(--accent-color);
            border-radius: 4px;
        }
        
        ::-webkit-scrollbar-thumb:hover {
            background: var(--secondary-color);
        }
        
        /* Forum styles */
        .forum-post {
            border-left: 3px solid var(--accent-color);
        }
        
        /* Project gallery styles */
        .gallery-item {
            overflow: hidden;
        }
        
        .gallery-item img {
            transition: transform 0.5s ease;
        }
        
        .gallery-item:hover img {
            transform: scale(1.05);
        }
        
        /* Calendar styles */
        .calendar-container {
            height: 600px;
            margin-bottom: 30px;
        }
        
        /* Mobile menu */
        .mobile-menu {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-color: rgba(0, 0, 0, 0.9);
            z-index: 1000;
            transform: translateY(-100%);
            transition: transform 0.3s ease;
        }
        
        .mobile-menu.open {
            transform: translateY(0);
            display: flex;
        }
        
        /* PDF Preview */
        .pdf-preview-container {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, 0.8);
            z-index: 1000;
            align-items: center;
            justify-content: center;
        }

        .pdf-preview-content {
            width: 90%;
            max-width: 900px;
            height: 80vh;
            background-color: white;
            border-radius: 10px;
            overflow: hidden;
            display: flex;
            flex-direction: column;
        }

        .pdf-preview-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 15px;
            background-color: var(--primary-color);
            color: white;
        }

        .pdf-preview-body {
            flex: 1;
            overflow: auto;
            padding: 20px;
            background-color: #f5f5f5;
        }

        .preview-document {
            background-color: white;
            box-shadow: 0 0 10px rgba(0,0,0,0.1);
            padding: 40px;
            min-height: 100%;
        }

        /* Download Modal */
        .download-modal {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, 0.8);
            z-index: 1000;
            align-items: center;
            justify-content: center;
        }

        .download-modal-content {
            width: 90%;
            max-width: 500px;
            background-color: white;
            border-radius: 10px;
            overflow: hidden;
        }

        .download-modal-header {
            padding: 15px;
            background-color: var(--primary-color);
            color: white;
        }

        .download-modal-body {
            padding: 20px;
        }

        .download-modal-footer {
            padding: 15px;
            background-color: #f5f5f5;
            text-align: right;
        }

        /* Back to top button */
        .back-to-top {
            position: fixed;
            bottom: 20px;
            right: 20px;
            background-color: var(--primary-color);
            color: white;
            width: 40px;
            height: 40px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            opacity: 0;
            visibility: hidden;
            transition: opacity 0.3s, visibility 0.3s;
            z-index: 900;
        }

        .back-to-top.visible {
            opacity: 1;
            visibility: visible;
        }

        /* Footer styles */
        .footer {
            background-color: var(--primary-color);
            color: white;
        }

        .footer-links a {
            color: #a0aec0;
            transition: color 0.3s ease;
        }

        .footer-links a:hover {
            color: white;
        }

        .social-icon {
            background-color: rgba(255, 255, 255, 0.1);
            border-radius: 50%;
            width: 36px;
            height: 36px;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: all 0.3s ease;
        }

        .social-icon:hover {
            background-color: rgba(255, 255, 255, 0.2);
            transform: translateY(-3px);
        }

        .disabled-download {
            position: relative;
        }

        .disabled-download:before {
            content: "Prévisualisation uniquement";
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            padding: 5px;
            background-color: rgba(0,0,0,0.7);
            color: white;
            text-align: center;
            font-size: 12px;
        }
        
        /* Admin Login */
        .admin-login-container {
            height: 100vh;
            width: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
        }
        
        .admin-login-box {
            width: 90%;
            max-width: 400px;
            background-color: white;
            border-radius: 10px;
            padding: 40px;
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
        }
        
        .admin-dashboard {
            display: flex;
            height: 100vh;
        }
        
        .admin-sidebar {
            width: 250px;
            background-color: var(--primary-color);
            color: white;
            overflow-y: auto;
        }
        
        .admin-content {
            flex: 1;
            overflow-y: auto;
            background-color: #f8f9fa;
        }
        
        .admin-nav-item {
            padding: 12px 16px;
            border-left: 3px solid transparent;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        
        .admin-nav-item:hover, .admin-nav-item.active {
            background-color: rgba(255, 255, 255, 0.1);
            border-left-color: var(--accent-color);
        }
        
        .admin-panel {
            display: none;
        }
        
        .admin-panel.active {
            display: block;
        }
        
        .file-upload-area {
            border: 2px dashed #ccc;
            border-radius: 8px;
            padding: 30px;
            text-align: center;
            transition: all 0.3s ease;
        }
        
        .file-upload-area:hover {
            border-color: var(--accent-color);
            background-color: #f0f9ff;
        }
        
        .document-card {
            position: relative;
            overflow: hidden;
            transition: all 0.3s ease;
        }
        
        .document-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);
        }
        
        .document-actions {
            position: absolute;
            top: 10px;
            right: 10px;
            display: flex;
            gap: 5px;
        }
        
        .stat-card {
            background: white;
            border-radius: 8px;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
            transition: all 0.3s ease;
        }
        
        .stat-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 8px 15px rgba(0, 0, 0, 0.1);
        }


        .section {
            display: none;
            opacity: 0;
            transition: opacity 0.5s ease-in-out;
        }
        .section.active {
            display: block;
            opacity: 1;
        }
        .fade-in {
            animation: fadeIn 0.5s ease-in-out forwards;
        }
        @keyframes fadeIn {
            from { opacity: 0; }
            to { opacity: 1; }
        }
        
        /* Formulaire de témoignage */
        .testimonial-form {
            background: white;
            border-radius: 10px;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
            overflow: hidden;
        }
        
        .testimonial-form-header {
            background: linear-gradient(to right, var(--primary-color), var(--secondary-color));
            padding: 20px;
            color: white;
        }
        
        .form-input {
            width: 100%;
            padding: 10px 15px;
            border: 1px solid #e2e8f0;
            border-radius: 5px;
            font-size: 16px;
            transition: all 0.3s ease;
        }
        
        .form-input:focus {
            outline: none;
            border-color: var(--accent-color);
            box-shadow: 0 0 0 3px rgba(66, 153, 225, 0.2);
        }
        
        .emoji-trigger {
            cursor: pointer;
            transition: transform 0.2s ease;
        }
        
        .emoji-trigger:hover {
            transform: scale(1.1);
        }
        
        .emoji-picker {
            position: absolute;
            bottom: 50px;
            right: 0;
            z-index: 10;
            display: none;
        }
        
        .emoji-picker.active {
            display: block;
        }
        
        .upload-preview {
            max-width: 150px;
            max-height: 150px;
            border-radius: 5px;
            display: none;
        }
        
        /* Ajout pour les publications */
        .publication-card {
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        
        .publication-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1);
        }
        
        /* Style pour la galerie de projets */
        .project-card {
            overflow: hidden;
            border-radius: 10px;
        }
        
        .project-card img {
            transition: transform 0.5s ease;
        }
        
        .project-card:hover img {
            transform: scale(1.05);
        }




    /* Ajuster le conteneur pour éviter les débordements */
.relative.bg-gradient-to-r.from-blue-900.to-blue-700 {
    max-width: 100%;
    margin: 0 auto;
}

/* Centrage vertical et hauteur fixe pour le conteneur de texte */
.flex.items-center.h-32.sm\:h-40 {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 8rem; /* 128px pour mobile */
}

@media (min-width: 640px) {
    .flex.items-center.h-32.sm\:h-40 {
        height: 10rem; /* 160px pour sm et plus */
        justify-content: flex-start;
    }
}

/* Ajuster le texte pour éviter le débordement */
.flex.items-center.h-32.sm\:h-40 p {
    max-width: 100%;
    line-height: 1.5;
}

/* Améliorer l'effet de gradient */
.bg-gradient-to-r.from-blue-900.to-blue-700 {
    background: linear-gradient(to right, #1a365d, #2c5282);
}








    .truncate {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .blur-background {
        filter: blur(8px);
        transition: filter 0.3s ease;
    }
    #projectModalContent {
        max-width: 800px;
        max-height: 1000px;
        width: 90vw;
        height: 90vh;
        aspect-ratio: 3/4;
        display: flex;
        flex-direction: column;
    }
    #projectModal {
        z-index: 1000 !important;
    }


