:root{--fond:#fbfbfa;--carte:#fff;--texte:#1a1a19;--doux:#6b6b68;--trait:#e3e3e0;--accent:#7a5cff;--ok:#1a7f4b;--erreur:#b3261e}
@media (prefers-color-scheme:dark){:root{--fond:#16161a;--carte:#1e1e23;--texte:#eceaea;--doux:#9b9b98;--trait:#2e2e35;--accent:#9d86ff}}
*{box-sizing:border-box}
body{margin:0;background:var(--fond);color:var(--texte);font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}
header{display:flex;align-items:center;gap:1.5rem;padding:.9rem 1.5rem;border-bottom:1px solid var(--trait);background:var(--carte)}
.marque{font-weight:650;letter-spacing:-.02em;text-decoration:none;color:var(--accent)}
nav a{margin-right:1rem;color:var(--doux);text-decoration:none}
nav a:hover{color:var(--texte)}
main{max-width:1100px;margin:0 auto;padding:1.5rem}
.recherche{display:flex;gap:.6rem;margin-bottom:1.2rem}
input[type=search],input[type=text]{flex:1;padding:.6rem .8rem;border:1px solid var(--trait);border-radius:8px;background:var(--carte);color:var(--texte);font-size:15px}
button{padding:.55rem .95rem;border:0;border-radius:8px;background:var(--accent);color:#fff;font-size:14px;cursor:pointer}
button:hover{filter:brightness(1.08)}
.compte{color:var(--doux);font-size:13.5px}
.note{display:block;margin-top:.2rem;font-style:italic}
.vide{color:var(--doux);padding:2rem 0}
.avis{padding:.7rem .9rem;border-radius:8px;background:var(--carte);border-left:3px solid var(--ok);margin-bottom:1rem}
.avis.erreur{border-left-color:var(--erreur)}
table{width:100%;border-collapse:collapse;margin-top:.8rem;font-size:14px}
th{text-align:left;color:var(--doux);font-weight:500;border-bottom:1px solid var(--trait);padding:.5rem .6rem}
td{padding:.55rem .6rem;border-bottom:1px solid var(--trait);vertical-align:top}
.titre a{color:var(--texte);text-decoration:none}
.titre a:hover{text-decoration:underline}
.cats{display:block;color:var(--doux);font-size:12px}
.nombre{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.unite{color:var(--doux);font-size:12px}
.proto{margin-left:.4rem;padding:.05rem .4rem;border-radius:5px;font-size:11px;background:var(--trait);color:var(--doux)}
.candidat{background:var(--carte);border:1px solid var(--trait);border-radius:10px;padding:1rem;margin-bottom:.9rem}
.entete{display:flex;align-items:center;gap:.7rem;margin-bottom:.5rem}
.poids{margin-left:auto;color:var(--doux);font-variant-numeric:tabular-nums}
.genre{padding:.1rem .5rem;border-radius:5px;font-size:11.5px;background:var(--accent);color:#fff;text-transform:uppercase;letter-spacing:.04em}
.sources{margin:.3rem 0 .8rem;padding-left:1.4rem;font-size:13px;color:var(--doux)}
.sources code{color:var(--texte);word-break:break-all}
.sources em{color:var(--accent);font-style:normal}
.candidat form{display:flex;gap:.6rem}
h1{font-size:19px;margin:0 0 .3rem}
.reglages{margin-top:1rem;display:grid;gap:1rem;max-width:640px}
fieldset{border:1px solid var(--trait);border-radius:10px;background:var(--carte);padding:.9rem 1rem}
legend{padding:0 .4rem;color:var(--accent);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.05em}
.reglages label{display:block;margin-bottom:.6rem;font-size:13px;color:var(--doux)}
.reglages input,.reglages select{display:block;width:100%;margin-top:.25rem;padding:.5rem .7rem;border:1px solid var(--trait);border-radius:8px;background:var(--fond);color:var(--texte);font-size:14px}
.aide{margin:.1rem 0 .7rem;font-size:12.5px;color:var(--doux)}
.aide code{background:var(--trait);padding:.05rem .3rem;border-radius:4px}
.actions{margin-top:.4rem}
button.secondaire{background:transparent;color:var(--accent);border:1px solid var(--trait)}
.reglages textarea{display:block;width:100%;margin-top:.25rem;padding:.5rem .7rem;border:1px solid var(--trait);border-radius:8px;background:var(--fond);color:var(--texte);font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical}
.provenance{color:var(--doux);font-size:12px;margin-left:.4rem}
.etat{padding:.1rem .5rem;border-radius:5px;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;background:var(--trait);color:var(--doux)}
.etat.terminé{background:var(--ok);color:#fff}
.etat.déposé{background:var(--accent);color:#fff}
.etat.en-cours{background:#b8860b;color:#fff}
.candidat .provenance{margin-left:auto}
.discret{margin-top:.5rem}
.discret button{font-size:12px;padding:.3rem .6rem}
.aide.erreur{color:var(--erreur)}
.portee{margin:.2rem 0 1rem;border:1px solid var(--trait);border-radius:10px;background:var(--carte);padding:.6rem .9rem}
.portee summary{cursor:pointer;color:var(--doux);font-size:13px}
.portee summary:hover{color:var(--texte)}
.indexeurs{display:flex;flex-wrap:wrap;gap:.4rem .9rem;margin-top:.4rem}
.coche{display:flex;align-items:center;gap:.35rem;font-size:13px;color:var(--texte)}
.coche input{margin:0}
.coche.repondant{color:var(--ok);font-weight:550}
.candidat form input.court{max-width:7rem;flex:0 0 auto}
