:root{
  --encre:#1d2330; --doux:#5b6577; --trait:#dfe3ea; --fond:#f5f7fa; --carte:#fff;
  --marque:#c8102e; --vert:#1c7c4a; --vert-fond:#e6f4ec;
  --ambre:#8a5a00; --ambre-fond:#fdf1d8; --rouge:#9b1c1c; --rouge-fond:#fce8e8;
}
*{box-sizing:border-box}
body{margin:0;font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--encre);background:var(--fond)}
header{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;
  padding:.9rem 1.5rem;background:var(--carte);border-bottom:1px solid var(--trait)}
.marque{font-weight:700;font-size:1.1rem;color:var(--marque);text-decoration:none}
.marque span{color:var(--doux);font-weight:400}
nav{display:flex;align-items:center;gap:1.25rem}
nav a{color:var(--doux);text-decoration:none}
nav a:hover{color:var(--encre);text-decoration:underline}
.qui{font-weight:600}
main{max-width:1100px;margin:0 auto;padding:1.5rem}
footer{max-width:1100px;margin:0 auto;padding:1.5rem;color:var(--doux);font-size:.85rem}
h1{font-size:1.5rem;margin:0 0 1rem}
h2{font-size:1.1rem;margin:1.75rem 0 .6rem}
small{color:var(--doux);font-weight:400}

.carte{background:var(--carte);border:1px solid var(--trait);border-radius:10px;padding:1.5rem}
.connexion{max-width:380px;margin:3rem auto}
form label{display:block;margin:.9rem 0 .3rem;font-weight:600;font-size:.9rem}
input{width:100%;padding:.6rem .7rem;border:1px solid var(--trait);border-radius:6px;font-size:1rem;background:#fff;color:var(--encre)}
input:focus{outline:2px solid var(--marque);outline-offset:1px}
button{margin-top:1.2rem;width:100%;padding:.7rem;border:0;border-radius:6px;background:var(--marque);
  color:#fff;font-size:1rem;font-weight:600;cursor:pointer}
button:hover{filter:brightness(.92)}

.recherche{display:flex;gap:.6rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}
.recherche input{flex:1;min-width:260px}
.recherche button{margin:0;width:auto;padding:.6rem 1.4rem}
.raz{color:var(--doux)}
.compte{color:var(--doux);font-size:.9rem;margin:.25rem 0 .75rem}
.vide{background:var(--carte);border:1px solid var(--trait);border-radius:10px;padding:2rem;text-align:center;color:var(--doux)}

table{width:100%;border-collapse:collapse;background:var(--carte);border:1px solid var(--trait);
  border-radius:10px;overflow:hidden;font-size:.94rem}
th,td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid var(--trait);vertical-align:middle}
th{background:#eef1f6;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--doux)}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:#fafbfd}
.ref{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88rem}
.montant{text-align:right;white-space:nowrap}

.etiquette{display:inline-block;padding:.16rem .5rem;border-radius:999px;font-size:.78rem;font-weight:600;white-space:nowrap}
.validee{background:var(--vert-fond);color:var(--vert)}
.attente{background:var(--ambre-fond);color:var(--ambre)}
.refusee,.impayee{background:var(--rouge-fond);color:var(--rouge)}
.impayee{margin-left:.25rem}
.deja{display:block;font-size:.78rem;color:var(--doux);margin-top:.2rem}
.absent{color:var(--doux);font-size:.88rem}

.bouton{display:inline-block;padding:.4rem .8rem;background:var(--vert);color:#fff;border-radius:6px;
  text-decoration:none;font-size:.88rem;font-weight:600}
.bouton:hover{filter:brightness(.92)}
.bouton.gros{padding:.7rem 1.4rem;font-size:1rem}

.alerte{padding:.75rem 1rem;border-radius:8px;margin:0 0 1rem}
.alerte.erreur{background:var(--rouge-fond);color:var(--rouge)}

.fiche{background:var(--carte);border:1px solid var(--trait);border-radius:10px;padding:1.25rem;margin-bottom:1.25rem}
dl{display:grid;grid-template-columns:170px 1fr;gap:.4rem 1rem;margin:0}
dt{color:var(--doux);font-size:.9rem}
dd{margin:0}
.apercu{width:100%;height:80vh;border:1px solid var(--trait);border-radius:10px;background:var(--carte)}

@media (max-width:640px){
  dl{grid-template-columns:1fr}
  dt{margin-top:.5rem}
  table{display:block;overflow-x:auto}
}

.pages{display:flex;gap:1.25rem;align-items:center;justify-content:center;margin:1.25rem 0;color:var(--doux)}
.pages a{color:var(--marque);text-decoration:none;font-weight:600}
.pages a:hover{text-decoration:underline}
