/* ============================================================
Nav statique — reproduit Nav.jsx au pixel près (ADR-033 2026-05-15)
============================================================ */
.qllm-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 50; background: rgba(7,9,12,0.82); backdrop-filter: blur(20px) saturate(140%); -webkit-backdrop-filter: blur(20px) saturate(140%); border-bottom: 1px solid var(--border); }
.qllm-nav-spacer { height: 108px; }
.qllm-nav-container { max-width: 1280px; margin: 0 auto; padding: 0 32px; }
.qllm-nav-grid { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 40px; height: 76px; }
.qllm-nav-ticker { border-bottom: 1px solid var(--border); background: rgba(7,9,12,0.4); height: 32px; overflow: hidden; }
.qllm-nav-ticker .qllm-nav-container { display: flex; align-items: center; justify-content: space-between; height: 32px; font-family: var(--font-mono); font-size: 10px; color: var(--text-mute); letter-spacing: 0.08em; text-transform: uppercase; }
.qllm-ticker-left { display: flex; align-items: center; gap: 18px; }
.qllm-ticker-right { display: flex; align-items: center; gap: 14px; }
.qllm-live { display: inline-flex; align-items: center; gap: 6px; }
.qllm-live-txt { color: var(--neon); }
.qllm-pulse { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--neon); animation: qllmNavPulse 2s ease-in-out infinite; }
@keyframes qllmNavPulse { 0%,100% { box-shadow: 0 0 0 0 rgba(74,222,128,0.5); } 50% { box-shadow: 0 0 0 5px rgba(74,222,128,0); } }
.qllm-lockup { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.qllm-logo { display: block; color: var(--text); }
.qllm-brand { display: flex; flex-direction: column; line-height: 1; }
.qllm-brand-title { display: inline-flex; align-items: center; gap: 6px; font-family: 'Archivo', sans-serif; font-size: 19px; font-weight: 700; letter-spacing: -0.03em; color: var(--text); }
.qllm-brand-fr { font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; padding: 2px 5px 1px; border-radius: 3px; border: 1px solid rgba(255,255,255,0.18); color: var(--text-dim); transform: translateY(-1px); }
.qllm-brand-tag { font-family: 'Inter Tight', sans-serif; font-size: 10.5px; font-weight: 400; color: var(--text-dim); margin-top: 4px; letter-spacing: -0.002em; }
.qllm-nav-links { display: flex; align-items: center; justify-content: center; gap: 28px; }
.qllm-nav-links > a { position: relative; padding: 8px 0; font-size: 14px; font-weight: 400; letter-spacing: -0.005em; color: var(--text-dim); text-decoration: none; transition: color 0.18s; display: inline-flex; align-items: baseline; gap: 8px; }
.qllm-nav-links > a:hover { color: var(--text); }
.qllm-nav-num { font-family: var(--font-mono); font-size: 10px; color: var(--text-mute); letter-spacing: 0.05em; }
.qllm-nav-cta { display: flex; align-items: center; gap: 10px; }
.qllm-nav-guide { font-size: 13.5px; font-weight: 600; color: var(--neon); text-decoration: none; padding: 7px 13px; border: 1px solid rgba(74,222,128,0.45); border-radius: 8px; white-space: nowrap; transition: background 0.15s, border-color 0.15s; }
.qllm-nav-guide:hover { background: rgba(74,222,128,0.12); border-color: var(--neon); }
@media (max-width: 560px) { .qllm-nav-guide { display: none; } }
.qllm-cta { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; height: 38px; background: var(--neon); color: #0A0F0A; border: 1px solid var(--neon); border-radius: 10px; font-size: 13px; font-weight: 500; text-decoration: none; box-shadow: 0 0 24px -8px var(--neon-glow); transition: opacity 0.15s; white-space: nowrap; box-sizing: border-box; }
.qllm-cta:hover { opacity: 0.88; }
/* Dropdowns Outils + Projet (statique, JS vanilla) — reproduit NavDropdown de Nav.jsx */
.qllm-nav-dropdown { position: relative; }
.qllm-nav-trigger { background: transparent; border: 0; cursor: pointer; padding: 8px 0; font-family: inherit; font-size: 14px; font-weight: 400; letter-spacing: -0.005em; color: var(--text-dim); display: inline-flex; align-items: baseline; gap: 8px; transition: color 0.18s; }
.qllm-nav-trigger:hover, .qllm-nav-trigger[aria-expanded="true"] { color: var(--text); }
.qllm-chev { transform: translateY(2px); transition: transform 0.2s; opacity: 0.7; }
.qllm-nav-trigger[aria-expanded="true"] .qllm-chev { transform: translateY(2px) rotate(180deg); opacity: 1; }
.qllm-dropdown-panel { position: absolute; top: calc(100% + 14px); left: 50%; transform: translateX(-50%); min-width: 280px; padding: 8px; background: rgba(13,17,23,0.96); backdrop-filter: blur(20px) saturate(140%); -webkit-backdrop-filter: blur(20px) saturate(140%); border: 1px solid var(--border); border-radius: 12px; box-shadow: 0 18px 48px -12px rgba(0,0,0,0.65), 0 0 0 1px rgba(255,255,255,0.02); z-index: 51; }
.qllm-dropdown-panel[hidden] { display: none; }
.qllm-dropdown-panel a { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 8px; text-decoration: none; color: var(--text); transition: background 0.15s; }
.qllm-dropdown-panel a:hover { background: var(--bg-elev); }
.qllm-dd-icon { width: 32px; height: 32px; flex: 0 0 32px; display: inline-flex; align-items: center; justify-content: center; background: var(--bg-elev); border: 1px solid var(--border); border-radius: 8px; color: var(--neon); font-size: 14px; font-family: var(--font-mono); }
.qllm-dd-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.qllm-dd-label { font-size: 13px; font-weight: 500; color: var(--text); line-height: 1.2; }
.qllm-dd-desc { font-size: 11px; color: var(--text-mute); line-height: 1.3; }
@media (max-width: 1200px) { .qllm-ticker-hide { display: none !important; } }
@media (max-width: 1000px) {
.qllm-nav-links { display: none !important; }
.qllm-nav-grid { grid-template-columns: auto 1fr auto; gap: 16px; }
.qllm-nav-ticker { display: none !important; }
.qllm-nav-spacer { height: 76px; }
}
@media (max-width: 720px) {
.qllm-nav-container { padding: 0 18px !important; }
.qllm-nav-grid { gap: 12px !important; height: 64px; }
.qllm-nav-spacer { height: 64px; }
.qllm-brand-tag { display: none; }
.qllm-cta { font-size: 12px; padding: 8px 12px; height: 34px; }
}
@media (max-width: 480px) {
.qllm-nav-container { padding: 0 14px !important; }
.qllm-nav-grid { height: 60px; gap: 10px !important; }
.qllm-nav-spacer { height: 60px; }
.qllm-cta > span { display: none; }
.qllm-cta { padding: 8px 10px; }
}
/* ============================================================
Seo-footer épuré — SSOT partagée avec renderFooter() (voir FOOTER_CSS).
============================================================ */
.seo-footer .seo-topband{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px 28px;padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid #1a1f27}
.seo-footer .seo-brand{max-width:300px}
.seo-footer .seo-brand b{display:block;color:#e5e7eb;font-size:15px;font-weight:600;margin:0 0 3px}
.seo-footer .seo-brand b i{color:#4ade80;font-style:normal}
.seo-footer .seo-brand span{font-size:11.5px;color:#8b95a5;line-height:1.45}
.seo-footer .seo-topnav{display:flex;flex-wrap:wrap;gap:4px}
.seo-footer h2{color:#6b7280;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:0.1em;margin:0 0 6px}
.seo-footer h2 a{color:#9aa3af;text-decoration:none;display:inline-flex;align-items:center;gap:4px}
.seo-footer h2 a::after{content:"→";color:#4ade80;font-size:11px}
.seo-footer h2 a:hover{color:#e5e7eb}
.seo-footer .seo-explore{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:14px}
.seo-footer .seo-col{min-width:0}
.seo-footer .seo-block{margin-bottom:14px}
.seo-footer .seo-block:last-of-type{margin-bottom:0}
.seo-footer .seo-pills{display:flex;flex-wrap:wrap;gap:4px}
.seo-footer .seo-pills a{display:inline-flex;align-items:center;padding:3px 9px;font-size:11.5px;line-height:1.35;color:#9aa3af;text-decoration:none;background:#0f141b;border:1px solid #1a1f27;border-radius:999px;white-space:nowrap;transition:border-color .15s,color .15s}
.seo-footer .seo-pills a.wide{white-space:normal;max-width:100%}
.seo-footer .seo-pills a:hover{border-color:#4ade80;color:#e5e7eb}
.seo-footer .seo-more{margin-top:6px}
.seo-footer .seo-more>summary{display:inline-flex;align-items:center;gap:5px;cursor:pointer;list-style:none;padding:3px 10px;font-size:11.5px;color:#8b95a5;background:transparent;border:1px dashed #2a2f37;border-radius:999px;user-select:none;transition:border-color .15s,color .15s}
.seo-footer .seo-more>summary::-webkit-details-marker{display:none}
.seo-footer .seo-more>summary::marker{content:""}
.seo-footer .seo-more>summary:hover{color:#e5e7eb;border-color:#4ade80}
.seo-footer .seo-more[open]>summary{margin-bottom:6px;color:#9aa3af}
.seo-footer .seo-bottom{margin-top:16px;padding-top:12px;border-top:1px solid #1a1f27;font-size:11px;color:#6b7280}
.seo-footer .seo-bottom p{margin:0}
@media (max-width:720px){.seo-footer .seo-explore{grid-template-columns:1fr;gap:16px}.seo-footer .seo-topband{flex-direction:column;gap:14px}}
LIVE
209 modèles indexés
·
185 guides en français
·
100% local
Paris
Mohamed Meguedmi
Créateur de QuelLLM.fr et BestLLMFor.com
Mohamed Meguedmi est le créateur et l'auteur de QuelLLM.fr , le configurateur
et annuaire francophone des LLM open-weights exécutables en local, ainsi que de
BestLLMFor.com , son équivalent anglophone.
Convaincu que l'IA générative peut tourner vraiment chez vous — sans API cloud, sans abonnement,
sans fuite de données —, il documente depuis 2026 les modèles open-weights (Llama, Mistral, Qwen, Gemma,
DeepSeek…), leur consommation VRAM réelle par quantification et leur vitesse en tokens/seconde.
Comment les guides sont testés
Les guides et classements signés sur ce site s'appuient sur un parc de test local :
une workstation Linux (CachyOS) équipée d'une GeForce RTX série 50 qui fait tourner Ollama au quotidien,
et un Mac Apple Silicon pour la mémoire unifiée. Les commandes d'installation, les besoins en VRAM et les
comportements décrits dans les guides sont vérifiés sur ces machines avant publication.
La démarche complète (critères d'évaluation, formules VRAM, sources) est documentée sur la page
Méthodologie , et le projet lui-même est présenté sur la page
À propos .
Profils publics