:root{--bg:#f6f5f2;--card:#fff;--ink:#1f2328;--muted:#5f6b7a;--line:#e3e1dc;--accent:#2f6f73;--err:#b42318;--warn:#b54708;--info:#175cd3;--ok:#067647}
*{box-sizing:border-box}body{margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg)}
header{background:#1d3b3d;color:#fff;padding:10px 24px;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
header .brand{font-weight:600;margin-right:12px}header a{color:#dfe9e9;text-decoration:none;padding:4px 8px;border-radius:6px}
header a.active,header a:hover{background:rgba(255,255,255,.14);color:#fff}
main{max-width:1280px;margin:0 auto;padding:22px 24px}
h1{font-size:22px;margin:0 0 6px}h2{font-size:17px;margin:26px 0 10px}h3{font-size:15px;margin:16px 0 6px}
.sub{color:var(--muted);margin:0 0 18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin:0 0 16px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.kpi .v{font-size:26px;font-weight:600}.kpi .l{color:var(--muted);font-size:13px}
table{width:100%;border-collapse:collapse;font-size:13.5px;background:#fff}th,td{padding:7px 9px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{background:#f1f0ec;font-weight:600;color:#3b4652;position:sticky;top:0}td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tag{display:inline-block;padding:1px 7px;border-radius:999px;font-size:12px;border:1px solid var(--line);background:#f7f7f5;color:#3b4652}
.tag.erreur{background:#fee4e2;color:var(--err);border-color:#fda29b}.tag.alerte{background:#fef0c7;color:var(--warn);border-color:#fec84b}
.tag.info{background:#e0eaff;color:var(--info);border-color:#b2ccff}.tag.ok{background:#d1fadf;color:var(--ok);border-color:#6ce9a6}
.tag.defaut{background:#f2f4f7;color:#475467}
.notice{border-left:4px solid var(--warn);background:#fffaeb;padding:10px 14px;border-radius:6px;margin:0 0 16px}
.notice.err{border-color:var(--err);background:#fef3f2}
form.inline{display:inline}form .row{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}
label{display:flex;flex-direction:column;font-size:13px;color:var(--muted);gap:3px}input,select,textarea{font:inherit;padding:6px 8px;border:1px solid #cfd4dc;border-radius:6px;min-width:120px}
button{font:inherit;padding:7px 14px;border-radius:6px;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer}
button.ghost{background:#fff;color:var(--accent)}button.small{padding:3px 9px;font-size:12px}
details summary{cursor:pointer;color:var(--accent)}pre{font-size:12px;background:#f7f7f5;padding:8px;border-radius:6px;overflow:auto;max-height:320px}
.muted{color:var(--muted)}.small{font-size:12.5px}a{color:var(--accent)}
footer{color:var(--muted);font-size:12px;text-align:center;padding:18px}
