  body {
            font-family: 'Poppins', sans-serif;
        }

        .font-display {
            font-family: 'Poppins', sans-serif;
        }

        .bg-mint {
            background-color: #e8f5f0;
        }

        .bg-mint-card {
            background-color: #f0faf5;
        }

        .text-teal {
            color: #2a9d6e;
        }

        .bg-teal {
            background-color: #2a9d6e;
        }

        .text-teal-dark {
            color: #1e7a52;
        }

        .backdrop-blur-modal {
            backdrop-filter: blur(4px);
            background: rgba(0, 0, 0, 0.28);
        }

        .event-card {
            transition: box-shadow 0.2s ease, transform 0.2s ease;
        }

        .event-card:hover {
            box-shadow: 0 8px 24px rgba(42, 157, 110, 0.15);
            transform: translateY(-2px);
        }

        .badge-upcoming {
            background-color: #2a9d6e;
            color: white;
            font-size: 11px;
            font-weight: 600;
            padding: 2px 10px;
            border-radius: 999px;
            letter-spacing: 0.03em;
            display: inline-block;
        }

        .badge-past {
            background-color: #6b7280;
            color: white;
            font-size: 11px;
            font-weight: 600;
            padding: 2px 10px;
            border-radius: 999px;
            letter-spacing: 0.03em;
            display: inline-block;
        }

        .badge-ongoing {
            background-color: #f59e0b;
            color: white;
            font-size: 11px;
            font-weight: 600;
            padding: 2px 10px;
            border-radius: 999px;
            letter-spacing: 0.03em;
            display: inline-block;
        }

        .search-input:focus {
            outline: none;
            border-color: #2a9d6e;
            box-shadow: 0 0 0 3px rgba(42, 157, 110, 0.15);
        }

        select {
            -webkit-appearance: none;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%236b7280'/%3E%3C/svg%3E");
            background-repeat: no-repeat;
            background-position: right 10px center;
            padding-right: 28px;
        }

        .detail-icon {
            width: 15px;
            height: 15px;
            flex-shrink: 0;
        }

        /* Page number button */
        .page-btn {
            min-width: 30px;
            height: 30px;
            border-radius: 8px;
            font-size: 12px;
            font-weight: 500;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border: 1px solid transparent;
            cursor: pointer;
            transition: all 0.15s ease;
            color: #6b7280;
        }

        .page-btn:hover {
            background: white;
            border-color: #e5e7eb;
            color: #2a9d6e;
        }

        .page-btn.active {
            background: #2a9d6e;
            color: white;
            border-color: #2a9d6e;
            font-weight: 600;
        }

        .page-btn.ellipsis {
            cursor: default;
            color: #9ca3af;
        }

        .page-btn.ellipsis:hover {
            background: transparent;
            border-color: transparent;
            color: #9ca3af;
        }

        @keyframes modalIn {
            from {
                opacity: 0;
                transform: scale(0.95) translateY(12px);
            }

            to {
                opacity: 1;
                transform: scale(1) translateY(0);
            }
        }

        #modal-box {
            animation: modalIn 0.22s ease forwards;
        }

        @keyframes slideUp {
            from {
                opacity: 0;
                transform: translateY(100%);
            }

            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        #filter-drawer {
            animation: slideUp 0.22s ease forwards;
        }

        @keyframes fadeIn {
            from {
                opacity: 0;
                transform: translateY(6px);
            }

            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .cards-animate {
            animation: fadeIn 0.2s ease forwards;
        }

        @media (max-width: 639px) {
            #modal-backdrop {
                align-items: flex-end;
            }

            #modal-box {
                max-height: 92vh;
                overflow-y: auto;
                border-bottom-left-radius: 0;
                border-bottom-right-radius: 0;
                margin: 0;
                width: 100%;
                position: absolute;
                bottom: 0;
                animation: slideUp 0.22s ease forwards;
            }
        }

          /* --- Styles de la Barre de Navigation iOS --- */
        .mobile-tab-bar {
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            z-index: 1000;

            /* L'effet "Vibrancy" d'iOS */
            background-color: var(--ios-bg);
            -webkit-backdrop-filter: blur(20px) saturate(180%);
            backdrop-filter: blur(20px) saturate(180%);

            border-top: 1px solid rgba(0, 0, 0, 0.1);
            
            /* Respecte la "safe area" (zone sous l'indicateur d'accueil) */
            padding-bottom: env(safe-area-inset-bottom);
        }

        .mobile-tab-bar ul {
            display: flex;
            justify-content: space-around;
            align-items: center;
            list-style: none;
            margin: 0;
            padding: 5px 0;
        }

        .mobile-tab-bar a {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            text-decoration: none;
            color: var(--ios-gray);
            font-size: 10px;
            font-weight: 500;
            padding: 5px;
            min-width: 65px; /* Assure une zone de clic suffisante */
            position: relative;
            transition: color 0.2s ease-in-out;
        }

        .mobile-tab-bar a.active {
            color: var(--ios-blue);
        }

        .mobile-tab-bar i {
            font-size: 24px;
            margin-bottom: 4px;
            display: block;
            transition: transform 0.2s ease-in-out;
        }
        