
:root { --fond:#f5f6f8; --carte:#fff; --texte:#1d2430; --doux:#5b6576; --bord:#d9dde4;
        --accent:#1f4e79; --accent-clair:#e7eef6; --alerte:#9a3412; --alerte-fond:#fff4ec;
        --ok:#166534; --ok-fond:#ecf8ef; --attente:#854d0e; --attente-fond:#fff9e6; }
* { box-sizing:border-box; }
body { margin:0; font:16px/1.5 "Segoe UI", system-ui, sans-serif; background:var(--fond); color:var(--texte); }
header { background:var(--accent); color:#fff; padding:12px 24px; display:flex; flex-wrap:wrap; gap:8px 24px; align-items:baseline; }
header h1 { font-size:20px; margin:0; font-weight:600; }
header nav a { color:#fff; margin-right:16px; text-decoration:none; border-bottom:1px solid transparent; }
header nav a:hover { border-bottom-color:#fff; }
.bandeau { background:var(--attente-fond); color:var(--attente); border-bottom:1px solid var(--bord); padding:8px 24px; font-size:14px; }
main { max-width:1080px; margin:0 auto; padding:20px 16px 48px; }
h2 { font-size:22px; margin:8px 0 16px; } h3 { font-size:18px; margin:20px 0 8px; }
h4,h5,h6 { font-size:16px; margin:16px 0 6px; }
.carte { background:var(--carte); border:1px solid var(--bord); border-radius:8px; padding:16px 20px; margin-bottom:16px; }
.doux { color:var(--doux); font-size:14px; }
label { display:block; font-weight:600; margin:12px 0 4px; }
.aide { font-weight:400; color:var(--doux); font-size:14px; }
input[type=text], input[type=password], select, textarea { width:100%; font:inherit; padding:8px 10px; border:1px solid var(--bord); border-radius:6px; background:#fff; }
textarea { min-height:70px; resize:vertical; }
textarea.grand { min-height:160px; }
fieldset { border:1px solid var(--bord); border-radius:6px; padding:8px 12px; margin:12px 0; }
legend { font-weight:600; padding:0 4px; }
fieldset label { display:inline-flex; gap:6px; font-weight:400; margin:4px 16px 4px 0; }
.ligne { display:grid; grid-template-columns:1fr 1fr; gap:0 16px; }
@media (max-width:700px) { .ligne { grid-template-columns:1fr; } main { padding:16px; } }
button { font:inherit; padding:9px 18px; border-radius:6px; border:1px solid var(--accent); background:var(--accent); color:#fff; cursor:pointer; margin-top:14px; }
button.second { background:#fff; color:var(--accent); }
button:hover { filter:brightness(1.1); }
.erreur { background:var(--alerte-fond); color:var(--alerte); border:1px solid #f3c7a6; border-radius:6px; padding:10px 14px; margin-bottom:16px; }
.etat { border-radius:6px; padding:10px 14px; margin-bottom:16px; }
.etat.en_cours, .etat.en_attente { background:var(--attente-fond); color:var(--attente); }
.etat.termine { background:var(--ok-fond); color:var(--ok); }
.etat.erreur, .etat.refuse { background:var(--alerte-fond); color:var(--alerte); }
.alerte { background:var(--alerte-fond); border-left:4px solid var(--alerte); padding:8px 14px; margin:8px 0; }
.reponse { border-left:4px solid var(--accent); padding-left:16px; }
.reponse p { margin:8px 0; }
.reponse details.verifier { margin:12px 0; border:1px solid var(--bord); border-radius:6px; padding:8px 12px; background:#fafbfc; }
.reponse details.verifier summary { color:var(--accent); }
.meta { color:var(--doux); font-size:13px; margin-top:10px; }
.tableau { overflow-x:auto; }
table { border-collapse:collapse; width:100%; margin:8px 0; font-size:15px; }
th, td { border:1px solid var(--bord); padding:6px 8px; text-align:left; vertical-align:top; }
th { background:var(--accent-clair); }
code { background:#eef1f5; padding:1px 4px; border-radius:4px; font-size:14px; }
details summary { cursor:pointer; font-weight:600; }
.actions { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:800px) { .actions { grid-template-columns:1fr; } }
.avertissement { font-size:14px; color:var(--alerte); font-weight:600; }
header form.compte { margin-left:auto; display:flex; gap:12px; align-items:baseline; }
header form.compte button { margin:0; padding:4px 12px; background:#fff; color:var(--accent); border-color:#fff; }
main.connexion { max-width:420px; }
