:root{
  --bg:#f7f6f2; --surface:#fcfcfb; --line:#e3e1da; --ink:#0b0b0b; --ink2:#52514e; --muted:#7b7a74;
  --acc:#1f3a5f; --s1:#2a78d6; --s2:#eb6834; --s3:#1baf7a; --warn:#b4531a; --grid:rgba(0,0,0,.07);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#141413; --surface:#1a1a19; --line:#33332f; --ink:#fff; --ink2:#c3c2b7; --muted:#8f8e85;
  --acc:#8fb3e0; --s1:#3987e5; --s2:#d95926; --s3:#199e70; --warn:#e39a62; --grid:rgba(255,255,255,.09);
}}
:root[data-theme="dark"]{
  --bg:#141413; --surface:#1a1a19; --line:#33332f; --ink:#fff; --ink2:#c3c2b7; --muted:#8f8e85;
  --acc:#8fb3e0; --s1:#3987e5; --s2:#d95926; --s3:#199e70; --warn:#e39a62; --grid:rgba(255,255,255,.09);
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif}
main{max-width:1160px;margin:0 auto;padding-block:26px;padding-left:16px;padding-right:16px}
header{display:flex;flex-wrap:wrap;gap:12px;align-items:baseline;justify-content:space-between;margin-bottom:6px}
h1{font-size:22px;margin:0;letter-spacing:-.01em}
h1 span{color:var(--muted);font-weight:400;font-size:14px;margin-left:8px}
h2{font-size:16px;margin:26px 0 10px}
.sub{color:var(--ink2);font-size:13.5px;margin:0 0 18px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
button,.btn{font:inherit;font-size:13.5px;padding:7px 14px;border:1px solid var(--line);background:var(--surface);color:var(--ink2);border-radius:999px;cursor:pointer}
button[aria-pressed="true"],.btn.primary{background:var(--acc);border-color:var(--acc);color:#fff;font-weight:600}
button:disabled{opacity:.5;cursor:progress}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:10px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px}
.kpi .lab{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.kpi .val{font-size:25px;font-weight:650;letter-spacing:-.02em;margin-top:4px;font-variant-numeric:tabular-nums}
.kpi .note{font-size:12.5px;color:var(--ink2);margin-top:2px}
.meter{position:relative;height:32px;border-radius:8px;background:var(--grid);overflow:hidden;margin:10px 0 6px}
.meter i{position:absolute;top:0;bottom:0;left:0;display:block}
.meter .strict{background:var(--s2);opacity:.9}.meter .vie{background:var(--s2);opacity:.35}
.meter .rev{top:-4px;bottom:-4px;width:3px;background:var(--ink)}
.mlab{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink2)}
.bars{display:grid;gap:6px}
.bar{display:grid;grid-template-columns:200px 1fr 92px;gap:10px;align-items:center;font-size:13px}
.bar .t{color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar .track{background:var(--grid);border-radius:4px;height:18px}
.bar .fill{display:block;height:18px;border-radius:0 4px 4px 0;background:var(--s1)}
.bar .v{text-align:right;font-variant-numeric:tabular-nums}
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
table{border-collapse:collapse;width:100%;font-size:13px}
th{background:var(--acc);color:#fff;text-align:left;padding:8px 10px;white-space:nowrap;font-weight:600}
td{padding:7px 10px;border-top:1px solid var(--line);vertical-align:top}
td.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
tr:nth-child(even) td{background:rgba(127,127,127,.04)}
.tag{display:inline-block;font-size:11.5px;padding:1px 7px;border-radius:999px;border:1px solid var(--line);color:var(--ink2)}
.alert{border-left:4px solid var(--warn);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;font-size:13.5px;display:flex;gap:10px;justify-content:space-between;align-items:flex-start}
.alert.critical{border-left-color:#c0392b}
input,select{font:inherit;font-size:13.5px;padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}
.login{max-width:340px;margin:12vh auto;display:grid;gap:10px}
.foot{color:var(--muted);font-size:12px;margin-top:26px;border-top:1px solid var(--line);padding-top:12px}
.hide{display:none!important}
@media(max-width:620px){.bar{grid-template-columns:120px 1fr 80px}}

/* pages légales */
.doc { max-width: 760px; margin: 0 auto; padding: 40px 20px 64px; }
.doc h1 { margin-bottom: 4px; }
.doc h2 { font-size: 15px; margin: 26px 0 6px; }
.doc p, .doc li { line-height: 1.6; }
.doc ul { padding-left: 20px; }
