/* ==================== DESIGN SYSTEM JOBBUDDY ==================== */
            
            :root {
                /* Couleurs principales */
                --primary-900: #9c3903;
                --primary-800: #591b00;
                --primary-700: #712200;
                --primary-600: #8B2A00;
                --primary-500: #A53300;
                --primary-400: #C55D33;
                --primary-300: #E08866;
                --primary-200: #F0B299;
                --primary-100: #FBF2DD;
                --primary-50: #FDF8F0;
                
                /* Couleurs neutres */
                --gray-900: #111827;
                --gray-800: #1F2937;
                --gray-700: #374151;
                --gray-600: #4B5563;
                --gray-500: #6B7280;
                --gray-400: #9CA3AF;
                --gray-300: #D1D5DB;
                --gray-200: #E5E7EB;
                --gray-100: #F3F4F6;
                --gray-50: #F9FAFB;
                
                /* Couleurs sémantiques */
                --success: #10B981;
                --success-light: #D1FAE5;
                --warning: #F59E0B;
                --warning-light: #FEF3C7;
                --danger: #EF4444;
                --danger-light: #FEE2E2;
                --info: #3B82F6;
                --info-light: #DBEAFE;
                
                /* Ombres (Elevation) */
                --shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
                --shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
                --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
                --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
                --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
                
                /* Bordures arrondies */
                --radius-sm: 6px;
                --radius-md: 10px;
                --radius-lg: 14px;
                --radius-xl: 18px;
                --radius-2xl: 24px;
                --radius-full: 9999px;
                
                /* Espacements */
                --space-xs: 0.25rem;
                --space-sm: 0.5rem;
                --space-md: 1rem;
                --space-lg: 1.5rem;
                --space-xl: 2rem;
                --space-2xl: 3rem;
                
                /* Transitions */
                --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
                --transition-base: 200ms cubic-bezier(0.4, 0, 0.2, 1);
                --transition-slow: 300ms cubic-bezier(0.4, 0, 0.2, 1);
            }

            /* ==================== RESET & BASE ==================== */
            
            * {
                margin: 0;
                padding: 0;
                box-sizing: border-box;
            }

            body {
                font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
                background-color: var(--gray-50);
                color: var(--gray-800);
                display: flex;
                flex-direction: column;
                min-height: 100vh;
                line-height: 1.6;
                -webkit-font-smoothing: antialiased;
                -moz-osx-font-smoothing: grayscale;
            }

            main { 
                flex: 1; 
                padding-top: 80px; /* Espace pour navbar fixe */
            }

            /* ==================== TYPOGRAPHIE ==================== */
            
            h1, h2, h3, h4, h5, h6 { 
                font-weight: 600; 
                color: var(--gray-900);
                line-height: 1.2;
                margin-bottom: var(--space-md);
            }
            
            h1 { font-size: 2.5rem; letter-spacing: -0.02em; }
            h2 { font-size: 2rem; letter-spacing: -0.01em; }
            h3 { font-size: 1.5rem; }
            h4 { font-size: 1.25rem; }
            
            p { 
                margin-bottom: var(--space-md); 
                color: var(--gray-600);
            }
            
            a { 
                text-decoration: none; 
                transition: all var(--transition-base);
                color: var(--primary-700);
            }
            
            a:hover {
                color: var(--primary-800);
            }

            /* ==================== NAVIGATION ==================== */
            
            .navbar-custom {
                background: rgba(255, 255, 255, 0.98);
                backdrop-filter: blur(10px);
                box-shadow: var(--shadow-sm);
                padding: var(--space-md) 0;
                position: fixed;
                top: 0;
                left: 0;
                right: 0;
                z-index: 1000;
                border-bottom: 1px solid var(--gray-200);
            }
            
            .navbar-brand-custom {
                font-size: 1.5rem;
                font-weight: 700;
                color: var(--primary-700) !important;
                display: flex;
                align-items: center;
                gap: var(--space-sm);
                transition: transform var(--transition-base);
            }
            
            .navbar-brand-custom:hover {
                transform: scale(1.02);
            }
            
            .navbar-brand-custom i {
                font-size: 1.8rem;
            }
            
            .nav-link-custom {
                color: var(--gray-700) !important;
                font-weight: 500;
                padding: var(--space-sm) var(--space-md) !important;
                border-radius: var(--radius-md);
                transition: all var(--transition-base);
                position: relative;
            }
            
            .nav-link-custom:hover {
                background-color: var(--primary-50);
                color: var(--primary-700) !important;
            }
            
            .nav-link-custom.active {
                background-color: var(--primary-100);
                color: var(--primary-800) !important;
            }
            
            .nav-link-custom i {
                margin-right: var(--space-xs);
            }

            /* ==================== BOUTONS ==================== */

            .btn {
                /*border-radius: var(--radius-full);*/
                padding: 0.625rem 1.5rem;
                font-weight: 500;
                font-size: 0.95rem;
                transition: all var(--transition-base);
                border: 2px solid;
                display: inline-flex;
                align-items: center;
                gap: var(--space-xs);
                cursor: pointer;
                text-decoration: none;
            }
            
            .btn:active { 
                transform: scale(0.98); 
            }
            
            .btn:focus {
                outline: none;
                box-shadow: 0 0 0 4px var(--primary-100);
            }
            
            /* Bouton principal */
            .btn-primary {
                background: linear-gradient(135deg, var(--primary-700) 0%, var(--primary-800) 100%);
                border-color: var(--primary-700);
                color: #fff;
            }
            
            .btn-primary:hover {
                background: linear-gradient(135deg, var(--primary-800) 0%, var(--primary-900) 100%);
                border-color: var(--primary-800);
                box-shadow: 0 4px 12px rgba(113, 34, 0, 0.25);
                transform: translateY(-2px);
            }
            
            /* Bouton outline */
            .btn-outline-primary {
                color: var(--primary-700);
                border-color: var(--primary-700);
                background: transparent;
            }
            
            .btn-outline-primary:hover {
                background-color: var(--primary-700);
                color: #fff;
                border-color: var(--primary-700);
            }
            
            /* Bouton success */
            .btn-success {
                background-color: var(--success);
                border-color: var(--success);
                color: #fff;
            }
            
            .btn-success:hover {
                background-color: #059669;
                border-color: #059669;
                box-shadow: 0 4px 12px rgba(16, 185, 129, 0.25);
            }
            
            /* Bouton danger */
            .btn-danger {
                background-color: var(--danger);
                border-color: var(--danger);
                color: #fff;
            }
            
            .btn-danger:hover {
                background-color: #DC2626;
                border-color: #DC2626;
                box-shadow: 0 4px 12px rgba(239, 68, 68, 0.25);
            }
            
            .btn-outline-danger {
                color: var(--danger);
                border-color: var(--danger);
                background: transparent;
            }
            
            .btn-outline-danger:hover {
                background-color: var(--danger);
                color: #fff;
                border-color: var(--danger);
            }

            /* Tailles des boutons */
            .btn-sm {
                padding: 0.4rem 1rem;
                font-size: 0.875rem;
            }
            
            .btn-lg {
                padding: 0.75rem 2rem;
                font-size: 1.1rem;
            }

            /* ==================== CARTES ==================== */
            
            .card-custom {
                background: #fff;
                border: 1px solid var(--gray-200);
                border-radius: var(--radius-lg);
                box-shadow: var(--shadow-sm);
                transition: all var(--transition-base);
                overflow: hidden;
            }
            
            .card-custom:hover {
                transform: translateY(-4px);
                box-shadow: var(--shadow-lg);
                border-color: var(--primary-200);
            }
            
            .card-header-custom {
                background: linear-gradient(135deg, var(--primary-700) 0%, var(--primary-800) 100%);
                color: #fff;
                padding: var(--space-lg);
                font-weight: 600;
                border-bottom: none;
            }

            /* ==================== FORMULAIRES ==================== */
            
            .form-label {
                font-weight: 500;
                color: var(--gray-700);
                margin-bottom: var(--space-xs);
                display: block;
                font-size: 0.95rem;
            }
            
            .form-control, .form-select {
                border-radius: var(--radius-md);
                border: 2px solid var(--gray-300);
                padding: 0.7rem 1rem;
                background-color: #fff;
                transition: all var(--transition-base);
                font-size: 0.95rem;
            }
            
            .form-control:focus, .form-select:focus {
                box-shadow: 0 0 0 4px var(--primary-100);
                border-color: var(--primary-700);
                outline: none;
            }
            
            .form-control:disabled, .form-select:disabled {
                background-color: var(--gray-100);
                cursor: not-allowed;
                opacity: 0.6;
            }
            
            .form-text {
                font-size: 0.85rem;
                color: var(--gray-500);
                margin-top: var(--space-xs);
            }
            
            /* Messages d'erreur */
            .error-message {
                background-color: var(--danger-light);
                color: var(--danger);
                padding: var(--space-md) var(--space-lg);
                border-radius: var(--radius-md);
                border-left: 4px solid var(--danger);
                margin-bottom: var(--space-lg);
                display: flex;
                align-items: center;
                gap: var(--space-sm);
            }
            
            .error-message i {
                font-size: 1.2rem;
            }
            
            /* Messages de succès */
            .success-message {
                background-color: var(--success-light);
                color: var(--success);
                padding: var(--space-md) var(--space-lg);
                border-radius: var(--radius-md);
                border-left: 4px solid var(--success);
                margin-bottom: var(--space-lg);
                display: flex;
                align-items: center;
                gap: var(--space-sm);
            }
            
            .success-message i {
                font-size: 1.2rem;
            }

            /* ==================== BADGES ==================== */
            
            .badge-custom {
                padding: 0.4rem 0.9rem;
                border-radius: var(--radius-full);
                font-weight: 500;
                font-size: 0.85rem;
                display: inline-flex;
                align-items: center;
                gap: var(--space-xs);
            }
            
            .badge-primary {
                background-color: var(--primary-100);
                color: var(--primary-800);
            }
            
            .badge-success {
                background-color: var(--success-light);
                color: var(--success);
            }
            
            .badge-warning {
                background-color: var(--warning-light);
                color: var(--warning);
            }
            
            .badge-danger {
                background-color: var(--danger-light);
                color: var(--danger);
            }

            /* ==================== FOOTER ==================== */
            
            footer {
                background: linear-gradient(to bottom, #fff 0%, var(--gray-50) 100%);
                border-top: 1px solid var(--gray-200);
                padding: var(--space-2xl) 0 var(--space-lg);
                margin-top: var(--space-2xl);
            }
            
            .footer-heading {
                font-size: 1rem;
                font-weight: 600;
                color: var(--gray-900);
                margin-bottom: var(--space-md);
            }
            
            .footer-link {
                color: var(--gray-600);
                font-size: 0.9rem;
                margin-bottom: var(--space-sm);
                display: block;
                transition: all var(--transition-base);
            }
            
            .footer-link:hover { 
                color: var(--primary-700);
                padding-left: var(--space-xs);
            }
            
            .social-link {
                color: var(--gray-500);
                font-size: 1.3rem;
                transition: all var(--transition-base);
                display: inline-flex;
                align-items: center;
                justify-content: center;
                width: 40px;
                height: 40px;
                border-radius: var(--radius-full);
            }
            
            .social-link:hover {
                background-color: var(--primary-100);
                color: var(--primary-700);
                transform: translateY(-2px);
            }

            /* ==================== UTILITAIRES ==================== */
            
            .container-narrow {
                max-width: 600px;
                margin: 0 auto;
            }
            
            .container-medium {
                max-width: 900px;
                margin: 0 auto;
            }
            
            .text-muted {
                color: var(--gray-500) !important;
            }
            
            .divider {
                height: 1px;
                background-color: var(--gray-200);
                margin: var(--space-xl) 0;
            }
            
            /* Scroll smooth */
            html {
                scroll-behavior: smooth;
            }
            
            /* Loading spinner */
            .spinner {
                border: 3px solid var(--gray-200);
                border-top: 3px solid var(--primary-700);
                border-radius: 50%;
                width: 40px;
                height: 40px;
                animation: spin 1s linear infinite;
            }
            
            @keyframes spin {
                0% { transform: rotate(0deg); }
                100% { transform: rotate(360deg); }
            }

            /* ==================== RESPONSIVE ==================== */
            
            @media (max-width: 768px) {
                h1 { font-size: 2rem; }
                h2 { font-size: 1.5rem; }
                h3 { font-size: 1.25rem; }
                
                .navbar-custom {
                    padding: var(--space-sm) 0;
                }
                
                main {
                    padding-top: 70px;
                }
            }
            
            /* ==================== ACCESSIBILITÉ ==================== */
            
            /* Focus visible pour clavier */
            *:focus-visible {
                outline: 3px solid var(--primary-700);
                outline-offset: 2px;
            }
            
            /* Mode sombre (si activé par l'utilisateur) */
            @media (prefers-color-scheme: dark) {
                /* Désactivé par défaut - peut être activé selon besoins */
            }
            
            /* Réduction de mouvement */
            @media (prefers-reduced-motion: reduce) {
                * {
                    animation-duration: 0.01ms !important;
                    animation-iteration-count: 1 !important;
                    transition-duration: 0.01ms !important;
                }
            }

            .annonce-card {
                transition: transform 0.2s ease, box-shadow 0.2s ease;
                border: 1px solid #eee;
            }
            .annonce-card:hover {
                transform: translateY(-5px);
                box-shadow: 0 10px 20px rgba(0,0,0,0.1);
            }
            .badge {
                letter-spacing: 0.5px;
                font-weight: 600;
            }