:root{--primary:#1a56db;--primary-dark:#1341b0;--secondary:#0e9f6e;--accent:#ff5a1f;--dark:#111827;--gray-100:#f9fafb;--gray-200:#f3f4f6;--gray-500:#6b7280;--gray-700:#374151;--radius:.75rem;--shadow-sm:0 1px 3px rgba(0,0,0,.08);--shadow:0 4px 16px rgba(0,0,0,.10);--shadow-lg:0 10px 40px rgba(0,0,0,.14);--transition:.18s ease}*,*::before,*::after{box-sizing:border-box}body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:var(--gray-700);background:#fff;line-height:1.65}a{color:var(--primary)}a:hover{color:var(--primary-dark)}img{max-width:100%;height:auto}.navbar{background:var(--dark) !important;padding:.75rem 0;box-shadow:0 2px 12px rgba(0,0,0,.18)}.navbar-brand{font-size:1.35rem;font-weight:800;letter-spacing:-.5px;color:#fff !important}.navbar-brand span{color:var(--accent)}.navbar .nav-link{font-weight:500;font-size:.9rem;color:rgba(255,255,255,.8) !important;padding:.4rem .8rem !important;border-radius:.4rem;transition:var(--transition)}.navbar .nav-link:hover{color:#fff !important;background:rgba(255,255,255,.1)}.btn-nav-cta{background:var(--accent);color:#fff !important;font-weight:700 !important;padding:.45rem 1.1rem !important;border-radius:2rem !important}.btn-nav-cta:hover{background:#e04a10 !important;color:#fff !important}@media (max-width:991px){.navbar-collapse{background:rgba(0,0,0,.25);border-radius:.5rem;padding:.5rem;margin-top:.5rem}.navbar .nav-link{padding:.6rem 1rem !important;border-radius:.4rem}.navbar-nav.ms-auto{margin-top:.5rem !important;border-top:1px solid rgba(255,255,255,.1);padding-top:.5rem}.btn-nav-cta{display:block;text-align:center;border-radius:.4rem !important;margin-top:.25rem}}.hero{background:linear-gradient(135deg,var(--dark) 0%,#1e3a5f 100%);padding:4rem 0 3rem;position:relative;overflow:hidden}.hero::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.hero h1{font-size:clamp(1.6rem,5vw,3.2rem);font-weight:800;letter-spacing:-.5px;line-height:1.15}.hero .lead{font-size:1rem;opacity:.85}.search-bar{background:#fff;border-radius:3rem;padding:.4rem .4rem .4rem 1.4rem;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:.5rem}.search-bar input{border:none;outline:none;background:transparent;font-size:1rem;flex:1;min-width:0}.search-bar .btn{border-radius:2.5rem;padding:.65rem 1.8rem;font-weight:700;white-space:nowrap;flex-shrink:0}@media (max-width:576px){.search-bar{flex-direction:column;border-radius:1rem;padding:.75rem;align-items:stretch}.search-bar input{width:100%;padding:.4rem 0}.search-bar .btn{width:100%;border-radius:.5rem}}.category-pills .badge{font-size:.8rem;font-weight:600;padding:.45em .9em;border-radius:2rem;background:rgba(255,255,255,.12) !important;color:#fff !important;transition:var(--transition);cursor:pointer;text-decoration:none;display:inline-block;margin:.2rem}.category-pills .badge:hover{background:rgba(255,255,255,.25) !important}.stats-bar{background:var(--gray-100);border-bottom:1px solid #e5e7eb}.stats-bar .stat-item{text-align:center;padding:.75rem .5rem}.stats-bar .stat-num{font-size:1.4rem;font-weight:800;color:var(--primary);line-height:1}.stats-bar .stat-label{font-size:.72rem;color:var(--gray-500);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.section-title{font-size:clamp(1.2rem,3vw,1.6rem);font-weight:800;letter-spacing:-.3px;color:var(--dark)}.section-subtitle{color:var(--gray-500);font-size:.95rem}.job-card{border:1.5px solid #e5e7eb;border-radius:var(--radius);background:#fff;padding:1.1rem 1.2rem;transition:box-shadow var(--transition),border-color var(--transition),transform var(--transition);position:relative;overflow:hidden}.job-card:hover{box-shadow:var(--shadow);border-color:var(--primary);transform:translateY(-2px)}.job-card.featured{border-color:#f59e0b;background:linear-gradient(135deg,#fffbeb 0%,#fff 60%)}.job-card.featured::before{content:'★ À la une';position:absolute;top:0;right:0;background:#f59e0b;color:#fff;font-size:.7rem;font-weight:700;padding:.2rem .7rem;border-radius:0 var(--radius) 0 .5rem}.job-card .company-logo{width:44px;height:44px;object-fit:contain;border-radius:.5rem;border:1px solid #e5e7eb;background:#f9fafb;padding:4px;flex-shrink:0}.job-card .company-logo-placeholder{width:44px;height:44px;border-radius:.5rem;background:linear-gradient(135deg,var(--primary) 0%,#7c3aed 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1rem;flex-shrink:0}.job-card h5 a{color:var(--dark);font-weight:700;font-size:.97rem;transition:color var(--transition)}.job-card h5 a:hover{color:var(--primary);text-decoration:none}.job-card .badge{font-size:.7rem;font-weight:600;border-radius:.35rem}.badge-contract{background:#eff6ff;color:#1d4ed8}.badge-category{background:#f0fdf4;color:#166534}.badge-remote{background:#ecfdf5;color:#065f46}.badge-gov{background:#fef3c7;color:#92400e}.time-ago{font-size:.75rem;color:var(--gray-500)}@media (max-width:576px){.job-card{padding:.9rem 1rem}.job-card .d-flex.align-items-start{flex-wrap:wrap;gap:.5rem}.job-card .badge{font-size:.68rem}}.filter-toggle-btn{display:none;width:100%;margin-bottom:1rem}@media (max-width:991px){.filter-toggle-btn{display:flex;align-items:center;justify-content:space-between}.filter-sidebar{display:none}.filter-sidebar.show{display:block}}.filter-card{border:1.5px solid #e5e7eb;border-radius:var(--radius);overflow:hidden}.filter-card .filter-header{background:var(--gray-100);font-weight:700;padding:.8rem 1.1rem;border-bottom:1px solid #e5e7eb;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-700)}.filter-card .filter-body{padding:1rem 1.1rem}.filter-card label{font-size:.85rem;font-weight:600;color:var(--gray-700);margin-bottom:.3rem}.filter-card .form-select,.filter-card .form-control{font-size:.85rem;border-radius:.45rem;border-color:#d1d5db}.filter-card .form-select:focus,.filter-card .form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(26,86,219,.12)}.btn-filter{background:var(--primary);color:#fff;border:none;border-radius:.5rem;padding:.55rem 1rem;font-size:.85rem;font-weight:600;width:100%;transition:background var(--transition)}.btn-filter:hover{background:var(--primary-dark);color:#fff}.btn-reset-filter{background:transparent;color:var(--gray-500);border:1.5px solid #d1d5db;border-radius:.5rem;padding:.5rem 1rem;font-size:.83rem;font-weight:500;width:100%;transition:var(--transition)}.btn-reset-filter:hover{border-color:var(--primary);color:var(--primary)}.company-card{border:1.5px solid #e5e7eb;border-radius:var(--radius);padding:1.2rem;text-align:center;transition:var(--transition);text-decoration:none;color:inherit;display:block;background:#fff}.company-card:hover{box-shadow:var(--shadow);border-color:var(--primary);transform:translateY(-2px);color:inherit;text-decoration:none}.company-card .logo-wrap{width:56px;height:56px;margin:0 auto .75rem;border-radius:.6rem;border:1.5px solid #e5e7eb;display:flex;align-items:center;justify-content:center;background:#f9fafb;font-size:1.6rem;overflow:hidden}.company-card .logo-wrap img{width:100%;height:100%;object-fit:contain;padding:4px}.company-card h6{font-weight:700;font-size:.92rem;color:var(--dark);margin-bottom:.25rem}.blog-card{border:1.5px solid #e5e7eb;border-radius:var(--radius);overflow:hidden;transition:var(--transition);background:#fff}.blog-card:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:var(--primary)}.blog-card img{width:100%;height:180px;object-fit:cover}.blog-card .blog-card-body{padding:1rem}.blog-card .blog-cat{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--primary)}.blog-card h5 a{color:var(--dark);font-weight:700;font-size:.95rem;line-height:1.4;text-decoration:none;transition:color var(--transition)}.blog-card h5 a:hover{color:var(--primary)}.blog-card .excerpt{font-size:.85rem;color:var(--gray-500);line-height:1.6}.cta-banner{background:linear-gradient(135deg,var(--primary) 0%,#7c3aed 100%);border-radius:var(--radius);padding:2rem 1.5rem;color:#fff;text-align:center}.cta-banner h3{font-size:clamp(1.1rem,3vw,1.5rem);font-weight:800}.cta-banner .btn{border-radius:2rem;padding:.65rem 2rem;font-weight:700}.stat-card{border:none;border-radius:var(--radius);padding:1.2rem;background:#fff;box-shadow:var(--shadow-sm);border-left:4px solid transparent}.stat-card.blue{border-left-color:var(--primary)}.stat-card.green{border-left-color:var(--secondary)}.stat-card.orange{border-left-color:var(--accent)}.stat-card.purple{border-left-color:#7c3aed}.stat-card .stat-number{font-size:1.8rem;font-weight:800;line-height:1}.stat-card .stat-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-500);font-weight:600}.form-control,.form-select{border-radius:.5rem;border:1.5px solid #d1d5db;padding:.6rem .9rem;font-size:.92rem;transition:border-color var(--transition),box-shadow var(--transition)}.form-control:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(26,86,219,.12);outline:none}.form-label{font-weight:600;font-size:.87rem;color:var(--gray-700);margin-bottom:.35rem}.btn{border-radius:.5rem;font-weight:600;transition:var(--transition)}.btn-primary{background:var(--primary);border-color:var(--primary)}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.btn-success{background:var(--secondary);border-color:var(--secondary)}.btn-warning{background:#f59e0b;border-color:#f59e0b}footer{background:var(--dark);color:rgba(255,255,255,.75);padding:2.5rem 0 1.5rem}footer h6{color:#fff;font-weight:700;margin-bottom:.75rem;font-size:.88rem;text-transform:uppercase;letter-spacing:.08em}footer a{color:rgba(255,255,255,.65);text-decoration:none;font-size:.85rem;display:block;margin-bottom:.35rem;transition:color var(--transition)}footer a:hover{color:#fff}footer .footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:1.2rem;margin-top:2rem;font-size:.8rem}footer .social-links a{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;background:rgba(255,255,255,.1);border-radius:50%;color:#fff;font-size:.95rem;margin-right:.35rem;transition:background var(--transition)}footer .social-links a:hover{background:var(--primary)}@media (max-width:767px){footer{padding:2rem 0 1rem}footer .row>div{margin-bottom:1.5rem}footer .footer-bottom{flex-direction:column;gap:.5rem;text-align:center}}.admin-layout{display:flex;min-height:100vh}.admin-sidebar{background:var(--dark);width:240px;min-height:100vh;flex-shrink:0;transition:transform var(--transition);z-index:1040}.admin-sidebar .nav-link{color:rgba(255,255,255,.7) !important;font-size:.87rem;font-weight:500;border-radius:.45rem;padding:.55rem .85rem !important;transition:var(--transition)}.admin-sidebar .nav-link:hover,.admin-sidebar .nav-link.active{background:rgba(255,255,255,.1);color:#fff !important}.admin-sidebar .nav-link i{width:1.2rem}.admin-content{flex:1;min-width:0;background:var(--gray-100)}@media (max-width:991px){.admin-sidebar{position:fixed;top:0;left:0;height:100vh;transform:translateX(-100%);box-shadow:var(--shadow-lg);overflow-y:auto}.admin-sidebar.open{transform:translateX(0)}.admin-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1039}.admin-overlay.show{display:block}.admin-topbar{padding:.75rem 1rem}.admin-content{width:100%}}.admin-menu-toggle{display:none;background:none;border:none;color:var(--gray-700);font-size:1.5rem;cursor:pointer;padding:0;line-height:1}@media (max-width:991px){.admin-menu-toggle{display:inline-flex}}.table-responsive{-webkit-overflow-scrolling:touch}@media (max-width:576px){.table th,.table td{font-size:.82rem;padding:.5rem .6rem;white-space:nowrap}}.pagination .page-link{border-radius:.45rem;margin:0 .15rem;border:1.5px solid #e5e7eb;color:var(--primary);font-weight:600}.pagination .page-item.active .page-link{background:var(--primary);border-color:var(--primary)}@media (max-width:576px){.pagination{flex-wrap:wrap;justify-content:center;gap:.2rem}.pagination .page-link{min-width:36px;text-align:center;font-size:.85rem}}.auth-wrapper{min-height:100vh;background:linear-gradient(135deg,var(--dark) 0%,#1e3a5f 100%);display:flex;align-items:center}.auth-card{border-radius:var(--radius);border:none;box-shadow:var(--shadow-lg)}.auth-logo{font-size:1.5rem;font-weight:800;color:#fff;text-align:center;margin-bottom:1.5rem}.auth-logo span{color:var(--accent)}.text-muted{color:var(--gray-500) !important}.rounded-xl{border-radius:var(--radius) !important}.shadow-soft{box-shadow:var(--shadow) !important}.bg-light{background:var(--gray-100) !important}.no-underline{text-decoration:none !important}@media (max-width:767px){.btn,.nav-link,.page-link{min-height:44px;display:inline-flex;align-items:center;justify-content:center}.form-control,.form-select{min-height:44px}}