:root { --encre:#1a1a1a; --gris:#666; --trait:#d8d8d8; --fond:#fbfbfa; --accent:#1c4f82; }
* { box-sizing:border-box; }
body { margin:0; font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif; color:var(--encre); background:var(--fond); }
header { display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap;
  padding:.8rem 1.5rem; background:#fff; border-bottom:1px solid var(--trait); }
.marque { font-weight:600; text-decoration:none; color:var(--encre); }
header nav { display:flex; gap:1.2rem; }
header nav a { color:var(--accent); text-decoration:none; }
header nav a:hover { text-decoration:underline; }
.deconnexion { margin-left:auto; display:flex; align-items:center; gap:.6rem; color:var(--gris); font-size:.9rem; }
main { max-width:1100px; margin:0 auto; padding:1.5rem; }
h1 { font-size:1.5rem; margin:.5rem 0 1rem; }
h2 { font-size:1.15rem; margin:2rem 0 .6rem; }
a { color:var(--accent); }
table { width:100%; border-collapse:collapse; background:#fff; margin:1rem 0; }
th, td { text-align:left; padding:.5rem .7rem; border-bottom:1px solid var(--trait); vertical-align:top; }
thead th { font-size:.85rem; text-transform:uppercase; letter-spacing:.03em; color:var(--gris); }
td.nombre, th.nombre { text-align:right; font-variant-numeric:tabular-nums; }
.statut { padding:.1rem .5rem; border-radius:1rem; font-size:.85rem; border:1px solid var(--trait); }
.statut.validee { background:#e7f4e9; border-color:#9ccfa6; }
.statut.refusee { background:#fbeaea; border-color:#e0a3a3; }
.statut.soumise { background:#fdf3e0; border-color:#e3c48a; }
.formulaire p { margin:0 0 1rem; display:flex; flex-direction:column; gap:.25rem; max-width:46rem; }
.formulaire label { font-weight:600; font-size:.95rem; }
.formulaire input[type=text], .formulaire input[type=number], .formulaire input[type=url],
.formulaire input[type=date], .formulaire input[type=password], .formulaire select, .formulaire textarea
  { padding:.45rem .5rem; border:1px solid var(--trait); border-radius:3px; font:inherit; background:#fff; }
.formulaire .helptext { font-size:.85rem; color:var(--gris); }
.formulaire ul.errorlist { margin:.2rem 0; padding-left:1rem; color:#a12; font-size:.9rem; }
.etroit { max-width:32rem; }
button, .bouton { font:inherit; padding:.45rem .9rem; border:1px solid var(--accent); border-radius:3px;
  background:var(--accent); color:#fff; cursor:pointer; text-decoration:none; display:inline-block; }
button:hover, .bouton:hover { background:#16406a; }
.secondaire { margin-left:.8rem; }
.filtres { display:flex; gap:1rem; align-items:flex-end; flex-wrap:wrap; background:#fff;
  padding:.9rem; border:1px solid var(--trait); }
.filtres label { display:flex; flex-direction:column; font-size:.85rem; color:var(--gris); gap:.2rem; }
.filtres select { padding:.35rem; font:inherit; }
.ligne-decision { display:flex; gap:.3rem; align-items:center; }
.ligne-decision input { padding:.3rem; border:1px solid var(--trait); border-radius:3px; font:inherit; }
.ligne-decision button { padding:.3rem .6rem; font-size:.85rem; }
.messages { list-style:none; padding:0; margin:0 0 1rem; }
.messages li { padding:.6rem .9rem; border-left:4px solid var(--accent); background:#fff; margin-bottom:.4rem; }
.messages li.error { border-color:#a12; }
.messages li.success { border-color:#2b7a3d; }
.erreur { color:#a12; }
.choix { list-style:none; padding:0; max-width:46rem; }
.choix li { margin:0 0 .5rem; }
.choix a { display:block; padding:.8rem 1rem; background:#fff; border:1px solid var(--trait);
  border-radius:4px; text-decoration:none; }
.choix a:hover { border-color:var(--accent); }
.fiche { background:#fff; border:1px solid var(--trait); padding:1rem; margin:1rem 0; }
.fiche dt { font-weight:600; font-size:.9rem; color:var(--gris); }
.fiche dd { margin:0 0 .9rem; }
.meta { color:var(--gris); }
.traitement blockquote { margin:.5rem 0; padding-left:1rem; border-left:3px solid var(--trait); color:#333; }
.totaux { display:flex; gap:2rem; flex-wrap:wrap; }
.totaux > div { flex:1 1 20rem; }
.totaux tr.general th, .totaux tr.general td { font-weight:700; border-top:2px solid var(--encre); }
.rubrique { color:var(--gris); }
