:root { --fond:#f5f6f4; --texte:#1f2a24; --vert:#2f6b4f; --vert-clair:#e3efe8; --gris:#6b756f; --bord:#d7dcd8; --rouge:#b3261e; --orange:#b26a00; }
* { box-sizing: border-box; }
body { margin:0; font:15px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif; background:var(--fond); color:var(--texte); }
main { max-width:1300px; margin:0 auto; padding:1.5rem; }
a { color:var(--vert); }
.haut { display:flex; align-items:center; gap:2rem; padding:.7rem 1.5rem; background:var(--vert); color:#fff; }
.haut a { color:#fff; text-decoration:none; }
.haut .logo { font-weight:700; font-size:1.1rem; }
.haut nav { display:flex; gap:1.2rem; flex:1; }
.haut nav a:hover { text-decoration:underline; }
.deconnexion { display:flex; gap:.8rem; align-items:center; margin:0; }
button, .bouton { font:inherit; padding:.45rem .9rem; border:0; border-radius:6px; background:var(--vert); color:#fff; cursor:pointer; text-decoration:none; display:inline-block; }
button.lien { background:none; padding:0; color:inherit; text-decoration:underline; }
.filtres button.lien, .filtres a.lien { color:var(--vert); }
button.petit { padding:.15rem .5rem; font-size:.8rem; background:#fff; color:var(--vert); border:1px solid var(--vert); }
button.petit:hover { background:var(--vert-clair); }
input, select, textarea { font:inherit; padding:.35rem .5rem; border:1px solid var(--bord); border-radius:6px; background:#fff; }
label { display:flex; flex-direction:column; gap:.2rem; font-size:.8rem; color:var(--gris); }
.filtres { display:flex; flex-wrap:wrap; gap:.8rem; align-items:flex-end; background:#fff; border:1px solid var(--bord); border-radius:8px; padding:.8rem 1rem; }
.filtres label.case { flex-direction:row; align-items:center; gap:.4rem; padding-bottom:.4rem; }
.compte { color:var(--gris); margin:.8rem 0; }
table.liste { width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--bord); border-radius:8px; overflow:hidden; }
.liste th { text-align:left; font-size:.78rem; text-transform:uppercase; letter-spacing:.03em; color:var(--gris); padding:.6rem .7rem; background:#eef1ee; }
.liste td { padding:.55rem .7rem; border-top:1px solid var(--bord); vertical-align:top; }
.liste td.titre { max-width:520px; }
.liste td.titre a { font-weight:600; text-decoration:none; }
.liste td.titre a:hover { text-decoration:underline; }
.acheteur { color:var(--gris); font-size:.85rem; }
.actions { white-space:nowrap; }
.actions form { display:inline; }
.badge { display:inline-block; font-size:.7rem; padding:.05rem .4rem; border-radius:999px; border:1px solid; vertical-align:middle; }
.badge.idf { color:var(--vert); border-color:var(--vert); background:var(--vert-clair); font-weight:600; }
.badge.idf-siege { color:var(--gris); border-color:var(--gris); background:#f0f2f0; }
.badge.faible { color:var(--orange); border-color:var(--orange); background:#fff4e0; }
.statut { display:inline-block; font-size:.8rem; padding:.1rem .55rem; border-radius:999px; background:#eee; white-space:nowrap; }
.s-nouveau { background:#dbe9ff; } .s-a-etudier { background:#fff1c2; } .s-retenu { background:#cdeedb; }
.s-ecarte { background:#e6e6e6; color:var(--gris); } .s-repondu { background:#e4d9fb; } .s-gagne { background:#a6e3bf; } .s-perdu { background:#f5cfcf; }
.e-ok { background:#cdeedb; } .e-panne { background:#f5cfcf; color:var(--rouge); font-weight:700; } .e-retard { background:#fff1c2; color:var(--orange); font-weight:700; } .e-jamais { background:#eee; }
.message { color:var(--rouge); font-size:.85rem; max-width:420px; word-break:break-word; }
.vide { color:var(--gris); padding:1.5rem 0; }
.pages { display:flex; gap:1.5rem; justify-content:center; margin:1.2rem 0; }
.carte { background:#fff; border:1px solid var(--bord); border-radius:8px; padding:1.5rem; }
.fiche { max-width:900px; }
.fiche h1 { margin-top:0; font-size:1.35rem; }
.fiche dl { display:grid; grid-template-columns:150px 1fr; gap:.4rem 1rem; margin:1rem 0; }
.fiche dt { color:var(--gris); } .fiche dd { margin:0; }
.suivi { display:flex; flex-wrap:wrap; gap:2rem; padding:1rem 0; border-top:1px solid var(--bord); border-bottom:1px solid var(--bord); }
.suivi form { display:flex; gap:.6rem; align-items:flex-end; }
.texte { white-space:pre-wrap; background:#f8f9f8; border:1px solid var(--bord); border-radius:6px; padding:.8rem 1rem; max-height:420px; overflow:auto; }
.note { border-left:3px solid var(--vert); padding:.2rem 0 .2rem .8rem; margin:.8rem 0; }
.note p { margin:.2rem 0 0; white-space:pre-wrap; } .note .date { color:var(--gris); font-size:.8rem; margin-left:.5rem; }
.nouvelle-note { display:flex; flex-direction:column; gap:.5rem; align-items:flex-start; }
.nouvelle-note textarea { width:100%; }
.connexion { max-width:380px; margin:6rem auto; display:flex; flex-direction:column; gap:1rem; }
.connexion h1 { margin:0; text-align:center; color:var(--vert); }
.erreur { background:#fbe3e1; color:var(--rouge); padding:.5rem .8rem; border-radius:6px; margin:0; }
.ok { background:#dcf1e4; color:#1d5a3a; padding:.5rem .8rem; border-radius:6px; margin:0; }
