:root{--color-bg:#f5f3fc;--color-surface:#fff;--color-surface-tint:#f1eefb;--color-text:#1c1a27;--color-accent:#5b4fe0;--color-accent-2:#8b7ff5;--color-ink:#15131f;--color-muted:#6d6b80;--color-succes:#1fa971;--color-erreur:#e2483f;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-titre:"Sora", "Inter", system-ui, sans-serif;--ombre-carte:0 1px 2px #15131f0a, 0 12px 28px -16px #5b4fe038;--ombre-carte-survol:0 2px 4px #15131f0f, 0 20px 36px -16px #5b4fe052;font-family:var(--font-body)}*{box-sizing:border-box}body{background:radial-gradient(1100px 560px at 12% -10%, #8b7ff54d, transparent 60%), radial-gradient(900px 480px at 105% 0%, #5b4fe029, transparent 55%), var(--color-bg);color:var(--color-text);background-attachment:fixed;margin:0;line-height:1.5}h1,h2,h3{font-family:var(--font-titre);letter-spacing:-.01em}main{max-width:960px;margin:0 auto;padding:1.5rem}.site-header{z-index:20;-webkit-backdrop-filter:blur(12px);background:#ffffffed;border:1px solid #15131f0f;border-radius:999px;max-width:960px;margin:1rem auto 0;padding:.7rem 1.5rem;position:sticky;top:1rem;box-shadow:0 10px 28px -14px #5b4fe04d}nav{justify-content:space-between;align-items:center;gap:1.25rem;display:flex}.nav-liens{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}nav a{font-size:.95rem;font-weight:600;text-decoration:none;transition:color .15s}nav a:hover{color:var(--color-accent)}.logo{font-family:var(--font-titre);color:var(--color-accent);letter-spacing:-.01em;font-size:1.3rem;font-weight:700;text-decoration:none}.site-footer{text-align:center;color:var(--color-muted);padding:2rem;font-size:.875rem}.liens-legaux{justify-content:center;gap:1rem;margin-top:.5rem;display:flex}a{color:var(--color-accent)}.hero-carte{background:linear-gradient(165deg, #fff, var(--color-surface-tint) 75%);box-shadow:var(--ombre-carte);text-align:center;border:1px solid #15131f0f;border-radius:28px;margin-top:1rem;padding:3rem 2rem}.hero h1{max-width:30rem;margin:0 auto .75rem;font-size:2.5rem}.hero-intro{color:var(--color-muted);max-width:34rem;margin:0 auto;font-size:1.05rem}.hero-cta{flex-wrap:wrap;justify-content:center;gap:.9rem;margin-top:1.75rem;display:flex}.section-outils{margin-top:2.5rem}.section-outils h2,.section-profil h2,.section-contenu h2{text-transform:uppercase;letter-spacing:.03em;color:var(--color-muted);align-items:center;gap:.55rem;margin:0 0 1rem;font-size:1.15rem;display:flex}.titre-icone{width:1.1rem;height:1.1rem;color:var(--color-accent)}.grille-outils{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.carte-outil{background:var(--color-surface);color:var(--color-text);box-shadow:var(--ombre-carte);border:1px solid #15131f12;border-radius:16px;flex-direction:column;gap:.6rem;padding:1.25rem;text-decoration:none;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.carte-outil:hover{border-color:var(--color-accent);box-shadow:var(--ombre-carte-survol);transform:translateY(-3px)}.carte-outil h3{color:var(--color-text);margin:0;font-size:1.05rem}.carte-outil p{color:var(--color-muted);margin:0;font-size:.88rem;line-height:1.5}.carte-outil-icone{background:linear-gradient(160deg, var(--color-accent-2), var(--color-accent));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;display:inline-flex;box-shadow:0 8px 16px -8px #5b4fe099}.carte-outil-icone svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:1.6rem;height:1.6rem}.carte-outil--vedette{border-color:var(--color-accent);background:linear-gradient(160deg, var(--color-surface-tint), var(--color-surface) 70%)}.carte-outil-entete{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.carte-outil-badge{text-transform:uppercase;letter-spacing:.03em;color:#fff;background:var(--color-accent);border-radius:999px;padding:.2rem .55rem;font-size:.7rem;font-weight:700}.section-profil{margin-top:2.5rem}.bandeau-profil{background:var(--color-surface);box-shadow:var(--ombre-carte);border:1px solid #15131f12;border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem;padding:1.25rem 1.5rem;display:flex}.bandeau-profil h2{text-transform:none;letter-spacing:normal;color:var(--color-text);margin:0 0 .4rem;font-size:1.1rem}.bandeau-profil p{color:var(--color-muted);max-width:34rem;margin:0;font-size:.9rem}.liens-profil{flex-shrink:0;gap:.75rem;display:flex}.bouton-secondaire{color:var(--color-text);white-space:nowrap;border:1px solid #15131f24;border-radius:999px;padding:.55rem 1.1rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:border-color .15s,color .15s,transform .15s;display:inline-block}.bouton-secondaire:hover{border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-1px)}.bouton-principal{background:var(--color-ink);color:#fff;white-space:nowrap;border-radius:999px;padding:.7rem 1.4rem;font-size:.95rem;font-weight:700;text-decoration:none;transition:transform .15s,box-shadow .15s;display:inline-block;box-shadow:0 12px 24px -10px #15131f73}.bouton-principal:hover{transform:translateY(-1px);box-shadow:0 16px 28px -10px #15131f8c}.section-contenu{margin-top:2.5rem}.grille-articles{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin-top:1.5rem;display:grid}.carte-article{background:var(--color-surface);color:var(--color-text);box-shadow:var(--ombre-carte);border:1px solid #15131f12;border-radius:16px;flex-direction:column;gap:.45rem;padding:1.25rem;text-decoration:none;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.carte-article:hover{border-color:var(--color-accent);box-shadow:var(--ombre-carte-survol);transform:translateY(-3px)}.carte-article h3{color:var(--color-text);margin:0;font-size:1.05rem}.carte-article p{color:var(--color-muted);margin:0;font-size:.88rem;line-height:1.5}.carte-article-date{text-transform:uppercase;letter-spacing:.02em;font-size:.78rem!important}form{flex-direction:column;gap:1.25rem;max-width:480px;display:flex}.champ{flex-direction:column;gap:.35rem;display:flex}.champ-double{flex-direction:row;gap:1rem}.champ-double>div{flex-direction:column;flex:1;gap:.35rem;display:flex}label{font-size:.9rem;font-weight:600}input,select{background:var(--color-surface);color:var(--color-text);border:1px solid #15131f1f;border-radius:10px;padding:.55rem .7rem;font-family:inherit;font-size:1rem;transition:border-color .15s,box-shadow .15s}input:focus,select:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #5b4fe029}select{accent-color:var(--color-accent)}select option{background-color:var(--color-surface);color:var(--color-text);padding:.5rem .6rem}.select-perso{position:relative}.select-perso__bouton{background:var(--color-surface);width:100%;color:var(--color-text);text-align:left;cursor:pointer;box-shadow:none;border:1px solid #15131f1f;border-radius:10px;justify-content:space-between;align-self:stretch;align-items:center;gap:.5rem;padding:.55rem .7rem;font-family:inherit;font-size:1rem;font-weight:400;transition:border-color .15s,box-shadow .15s;display:flex}.select-perso__bouton:hover{background:var(--color-surface);box-shadow:none;border-color:#5b4fe059;transform:none}.select-perso__bouton:focus-visible,.select-perso__bouton[aria-expanded=true]{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #5b4fe029}.select-perso__bouton[aria-invalid=true]{border-color:var(--color-erreur)}.select-perso__chevron{width:18px;height:18px;color:var(--color-muted);flex-shrink:0;transition:transform .15s}.select-perso__chevron--ouvert{transform:rotate(180deg)}.select-perso__panneau{z-index:20;background:var(--color-surface);max-height:300px;box-shadow:var(--ombre-carte-survol);border:1px solid #15131f14;border-radius:14px;margin:0;padding:.4rem;list-style:none;position:absolute;top:calc(100% + .4rem);left:0;right:0;overflow-y:auto}.select-perso__option{color:var(--color-text);cursor:pointer;border-radius:10px;padding:.6rem .75rem;font-size:.95rem;line-height:1.35}.select-perso__option+.select-perso__option{margin-top:.15rem}.select-perso__option--actif{background:var(--color-surface-tint)}.select-perso__option--selectionne{background:var(--color-accent);color:#fff;font-weight:600}.select-perso__option--selectionne.select-perso__option--actif{background:var(--color-accent)}input[aria-invalid=true]{border-color:var(--color-erreur)}input[type=file]{color:var(--color-muted);background:0 0;border:none;padding:.2rem 0;font-size:.88rem}input[type=file]::file-selector-button{background:var(--color-ink);color:#fff;cursor:pointer;border:none;border-radius:999px;margin-right:.85rem;padding:.55rem 1.15rem;font-family:inherit;font-size:.85rem;font-weight:700;transition:transform .15s,box-shadow .15s,background-color .15s;box-shadow:0 8px 18px -10px #15131f66}input[type=file]::file-selector-button:hover{background:#26222f;transform:translateY(-1px)}input[type=file]:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:999px}fieldset{background:var(--color-surface);box-shadow:var(--ombre-carte);border:1px solid #15131f1a;border-radius:16px;margin:0;padding:1.15rem 1.25rem 1.3rem}fieldset>legend{font-family:var(--font-titre);color:var(--color-text);margin-left:-.5rem;padding:0 .5rem;font-size:.95rem;font-weight:700}button{background:var(--color-ink);color:#fff;cursor:pointer;border:none;border-radius:999px;align-self:flex-start;padding:.65rem 1.3rem;font-weight:700;transition:transform .15s,box-shadow .15s,background-color .15s;box-shadow:0 10px 24px -10px #15131f66}button:hover{background:#26222f;transform:translateY(-1px);box-shadow:0 14px 28px -10px #15131f80}button:active{transform:translateY(0)}button[type=button]{color:var(--color-text);box-shadow:none;background:0 0;border:1px solid #15131f24;margin-left:.5rem}button[type=button]:hover{border-color:var(--color-accent);color:var(--color-accent);box-shadow:none;background:0 0}.aide{color:var(--color-muted);margin:0;font-size:.8rem}.erreur{color:var(--color-erreur);margin:0;font-size:.8rem}.confirmation{color:var(--color-succes);font-weight:600}.liste-velos{flex-direction:column;gap:.5rem;margin:0 0 1.5rem;padding:0;list-style:none;display:flex}.liste-velos li{background:var(--color-surface-tint);border:1px solid #15131f0d;border-radius:10px;align-items:center;gap:.75rem;padding:.6rem .75rem;display:flex}.liste-velos li span{flex:1}.entete-outil{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.entete-outil h1{margin:0}.avertissement{border:1px solid #5b4fe02e;border-left:3px solid var(--color-accent);background:var(--color-surface-tint);box-shadow:var(--ombre-carte);border-radius:12px;margin:1.25rem 0;padding:.9rem 1.1rem;font-size:.9rem}.avertissement strong{color:var(--color-accent)}.filtre-recherche{width:100%;max-width:360px;margin-bottom:1rem}.table-reference-conteneur{overflow-x:auto}table.table-reference{border-collapse:collapse;width:100%;font-size:.9rem}table.table-reference caption{text-align:left;color:var(--color-muted);margin-bottom:.5rem;font-size:.8rem}table.table-reference th,table.table-reference td{text-align:left;vertical-align:top;border-bottom:1px solid #15131f0f;padding:.6rem .75rem}table.table-reference th{color:var(--color-muted);text-transform:uppercase;letter-spacing:.02em;border-bottom:1px solid #15131f24;font-size:.8rem;font-weight:600}table.table-reference tbody tr{transition:background-color .1s}table.table-reference tbody tr:hover{background-color:#5b4fe00d}table.table-reference td.valeur{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--color-accent);font-weight:600}table.table-reference .note{color:var(--color-muted);margin-top:.25rem;font-size:.8rem;display:block}.resultat{border:1px solid #15131f12;border-left:4px solid var(--color-muted);background:var(--color-surface);box-shadow:var(--ombre-carte);border-radius:14px;margin-top:1.5rem;padding:1rem 1.25rem}.resultat-principal{color:var(--color-accent);margin:0 0 .5rem;font-size:1.5rem;font-weight:700}.resultat .aide{margin-top:.4rem}.resultat--recommande{border-left-color:var(--color-succes)}.resultat--recommande .resultat-principal{color:var(--color-succes)}.resultat--tolere{border-left-color:var(--color-accent)}.resultat--non-recommande{border-left-color:var(--color-erreur)}.resultat--non-recommande .resultat-principal{color:var(--color-erreur)}.resultat--hors-couverture{border-left-color:var(--color-muted)}.resultat--hors-couverture .resultat-principal{color:var(--color-muted)}
