:root{--bg:#f6f4ef;--card:#fff;--ink:#222;--muted:#6b6b6b;--line:#e6e2d8;--brand:#8b1a2b;--good:#2e7d4f;--warn:#b26a00;--off:#999}
*{box-sizing:border-box}body{margin:0;font:15px/1.45 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}
header.top{display:flex;align-items:center;gap:24px;padding:10px 22px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.brand{font-weight:700;font-size:18px;color:var(--ink)}.brand span{color:var(--brand)}
nav a{margin-right:14px;color:var(--muted)}nav a.on{color:var(--ink);font-weight:600}
.right{margin-left:auto;display:flex;align-items:center;gap:14px}
main{max-width:1280px;margin:0 auto;padding:22px}
h1{font-size:24px;margin:6px 0 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}h1 .muted{font-size:14px;font-weight:400}
h2{font-size:17px;margin:0 0 10px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:18px}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:12px 0}
.kpi{background:#faf8f3;border:1px solid var(--line);border-radius:10px;padding:10px 12px}.kpi b{display:block;font-size:24px}.kpi span{color:var(--muted);font-size:13px}.kpi em{font-style:normal;color:var(--ink);font-weight:600;margin-left:4px}
.kpi.good b{color:var(--good)}.kpi.warn b{color:var(--warn)}
.progress{margin:8px 0 4px}.legend{font-size:12px;color:var(--muted);margin-bottom:6px}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin:0 4px 0 8px;vertical-align:middle}
.bars{display:flex;gap:6px;align-items:flex-end;height:110px;overflow-x:auto;padding-bottom:18px}.col{width:34px;flex:0 0 auto;text-align:center;position:relative;height:100%}.col span{position:absolute;bottom:-18px;left:0;right:0;font-size:10px;color:var(--muted)}
.stack{height:100%;display:flex;flex-direction:column;justify-content:flex-end}.stack i{display:block;width:100%}
.c-sent{background:#8b1a2b}.c-open{background:#d9a441}.c-click{background:#2e7d4f}
.tablewrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:12px}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:#faf8f3;font-weight:600;font-size:13px;color:var(--muted)}
td.camp,th.camp{white-space:nowrap}.step{display:inline-block;margin-right:6px;opacity:.25}.step.ok{opacity:1}.step sup{font-size:10px;color:var(--good)}
.row-good td{background:#f2f8f4}.row-off td{color:var(--off)}
.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;background:#eee}.s-prospect{background:#eef}.s-repondu{background:#e3f3e8;color:var(--good)}.s-commande{background:var(--good);color:#fff}.s-exclu,.s-exclu_siege,.s-off{background:#eee;color:var(--muted)}.s-sorti{background:#fff3dd;color:var(--warn)}.s-test{background:#fde}
.tag{display:inline-block;padding:2px 8px;border-radius:6px;background:#f0ede6;font-size:12px;color:var(--muted)}
.btn{display:inline-block;background:var(--brand);color:#fff;border:1px solid var(--brand);border-radius:8px;padding:8px 14px;font:inherit;cursor:pointer}.btn:hover{text-decoration:none;filter:brightness(.95)}
.btn.small{padding:5px 10px;font-size:13px}.btn.tiny{padding:3px 8px;font-size:12px;margin:1px}.btn.ghost{background:#fff;color:var(--brand)}.btn.good{background:var(--good);border-color:var(--good)}.btn.on{outline:2px solid var(--ink)}
.acts form{display:flex;flex-wrap:wrap;gap:2px}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.filters input,.filters select{padding:7px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff}.filters input{min-width:260px}
.muted{color:var(--muted)}.small{font-size:12px}.inline{display:inline}.error{color:var(--brand);font-weight:600}
.grid2{display:grid;grid-template-columns:1fr 1.4fr;gap:18px}@media(max-width:900px){.grid2{grid-template-columns:1fr}}
dl{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0 0 14px}dt{color:var(--muted);font-size:13px}dd{margin:0}
footer{padding:20px;text-align:center;font-size:12px}
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh}.login{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px 30px;width:340px;display:flex;flex-direction:column;gap:10px}.login h1{font-size:26px;margin:0}.login h1 span{color:var(--brand)}.login label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.login input{padding:9px 10px;border:1px solid var(--line);border-radius:8px;font:inherit}.login .check{flex-direction:row;align-items:center;gap:8px}.login .btn{margin-top:6px}

.avancee{margin:8px 0 6px}.bar{height:10px;background:#ece8df;border-radius:6px;overflow:hidden}.bar i{display:block;height:100%;background:var(--good)}
.avancee-txt{font-size:13px;color:var(--muted);margin-top:6px}.avancee-txt b{color:var(--ink)}
table.lots{width:auto;margin-top:8px;font-size:13px}table.lots th,table.lots td{padding:5px 10px}
