:root{--gris:#5E5E5E;--rouge:#FF1947;--fond:#fff;--texte:#1c1c1c;--ligne:#e3e3e3;--carte:#f6f6f6;
--f-sys:"Gill Sans","Gill Sans MT",Calibri,sans-serif;--f-lia:Avenir,"Avenir Next",Nunito,sans-serif;--r:8px}
@media(prefers-color-scheme:dark){:root{--fond:#111;--texte:#f0f0f0;--ligne:#333;--carte:#1b1b1b}}
*{box-sizing:border-box}body{margin:0;background:var(--fond);color:var(--texte);font:16px/1.45 var(--f-lia)}
header{background:#000;color:#fff;padding:.75rem 1rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.logo{font-size:1.5rem;font-weight:700}.logo b{font-family:var(--f-sys);color:var(--rouge)}
header nav a{color:#ccc;text-decoration:none;margin-right:1rem}header nav a[aria-current]{color:#fff;border-bottom:2px solid var(--rouge)}
.proto{background:var(--rouge);color:#fff;text-align:center;padding:.3rem;font-size:.85rem}
main{max-width:1100px;margin:0 auto;padding:1rem}
h1{font-family:var(--f-sys);color:var(--gris);margin:.5rem 0 1rem}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75rem;margin-bottom:1rem}
.kpi{background:var(--carte);border-left:4px solid var(--rouge);border-radius:var(--r);padding:.6rem .8rem}
.kpi strong{display:block;font-size:1.6rem}.kpi span{color:var(--gris);font-size:.85rem}
.filtres{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.filtres input,.filtres select{flex:1 1 150px;padding:.6rem;border:1px solid var(--ligne);border-radius:var(--r);background:var(--fond);color:var(--texte);font:inherit}
:focus-visible{outline:3px solid var(--rouge);outline-offset:2px}
button{font:inherit;cursor:pointer}
.btn{background:var(--rouge);color:#fff;border:0;border-radius:var(--r);padding:.6rem 1rem}
.btn.sec{background:none;color:var(--gris);border:1px solid var(--gris)}
table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--gris);font-family:var(--f-sys);font-size:.85rem;text-transform:uppercase;border-bottom:2px solid var(--gris);padding:.5rem}
td{padding:.6rem .5rem;border-bottom:1px solid var(--ligne)}tbody tr{cursor:pointer}tbody tr:hover{background:var(--carte)}
.badge{display:inline-block;padding:.1rem .6rem;border-radius:99px;font-size:.8rem;background:var(--carte);border:1px solid var(--gris);color:var(--gris)}
.badge.p1{background:var(--rouge);border-color:var(--rouge);color:#fff}.badge.ok{border-color:#2a8a4a;color:#2a8a4a}
.vide{padding:2rem;text-align:center;color:var(--gris)}
@media(max-width:700px){thead{display:none}table,tbody,tr,td{display:block}
tr{background:var(--carte);border-radius:var(--r);margin-bottom:.6rem;padding:.4rem .6rem}td{border:0;padding:.15rem 0}td::before{content:attr(data-l) " : ";color:var(--gris);font-size:.8rem}}
dialog{border:0;border-radius:var(--r);padding:1.25rem;width:min(640px,94vw);background:var(--fond);color:var(--texte)}
dialog::backdrop{background:#0008}dl{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1rem}dt{color:var(--gris)}dd{margin:0}
.actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}
.session{margin-left:auto;display:flex;align-items:center;gap:.75rem;color:#ccc}
.session .btn.sec{color:#ccc;border-color:#ccc;padding:.3rem .8rem}
.login{display:grid;gap:.5rem;max-width:360px}
.login label{color:var(--gris);font-family:var(--f-sys)}
.login input{padding:.6rem;border:1px solid var(--ligne);border-radius:var(--r);background:var(--fond);color:var(--texte);font:inherit}
.erreur{background:var(--carte);border-left:4px solid var(--rouge);border-radius:var(--r);padding:.6rem .8rem;margin:0}
.pager{display:flex;gap:1rem;align-items:center;justify-content:center;margin-top:1rem}
.pager .btn{text-decoration:none}
