:root { --bg:#f6f6f4; --card:#fff; --ink:#16181d; --muted:#6b7079; --line:#e7e7e3; --accent:#c8102e;
  --ok:#1f7a4d; --warn:#9a6700; --err:#b42318; }
* { box-sizing: border-box; }
html { font-size: 16.5px; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:"Plus Jakarta Sans", system-ui, sans-serif; line-height:1.55; }
::-webkit-scrollbar { width:6px; height:6px; } ::-webkit-scrollbar-thumb { background:#dcdcd8; border-radius:6px; }
.top { display:flex; justify-content:space-between; align-items:center; padding:18px 28px; }
.brand { font-weight:700; font-size:1.15rem; color:var(--ink); text-decoration:none; }
.brand span { color:var(--accent); }
nav { display:flex; gap:22px; align-items:center; } nav a { color:var(--ink); text-decoration:none; font-weight:500; }
main { max-width:1180px; margin:0 auto; padding:8px 28px 40px; }
footer { text-align:center; color:var(--muted); font-size:.8rem; padding:24px; }
h1 { font-size:1.6rem; margin:0 0 10px; } h2 { font-size:1.3rem; margin:28px 0 12px; } h3 { font-size:1rem; margin:10px 0; }
.card h2 { margin-top:0; }
.card { background:var(--card); border-radius:16px; padding:24px 26px; margin-bottom:18px; border:1px solid var(--line); }
.narrow { max-width:440px; margin:40px auto; }
.cards { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:16px; }
.card.run { text-decoration:none; color:var(--ink); margin:0; }
.row { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.actions { display:flex; gap:10px; flex-wrap:wrap; }
.big { font-size:2.2rem; font-weight:700; margin:8px 0; } .big small { font-size:1rem; color:var(--muted); font-weight:500; }
.bar { height:8px; background:#eeeeea; border-radius:8px; overflow:hidden; margin:6px 0 12px; }
.bar span { display:block; height:100%; background:var(--accent); }
.kpis { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:12px; margin:16px 0; }
.kpis div { background:var(--bg); border-radius:12px; padding:12px 14px; } .kpis b { display:block; font-size:1.3rem; }
.kpis span { color:var(--muted); font-size:.85rem; }
.split { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.plain { list-style:none; padding:0; margin:0; } .plain li { display:flex; justify-content:space-between; padding:6px 0; border-bottom:1px solid var(--line); }
form.grid { display:grid; grid-template-columns:1fr 1fr; gap:16px 20px; }
.wide { grid-column:1 / -1; }
.stack { display:flex; flex-direction:column; gap:14px; }
.inline { display:flex; gap:14px; align-items:end; flex-wrap:wrap; }
label { display:flex; flex-direction:column; gap:6px; font-weight:500; font-size:.95rem; }
label.check { flex-direction:row; align-items:center; gap:10px; font-weight:400; }
input, select, textarea { font:inherit; padding:10px 12px; border:1px solid transparent; background:var(--bg); border-radius:10px; color:var(--ink); }
input:focus, select:focus, textarea:focus { outline:none; border-color:#cfcfca; background:#fff; }
.btn { display:inline-block; font:inherit; font-weight:600; background:var(--ink); color:#fff; border:0; border-radius:10px; padding:10px 18px; cursor:pointer; text-decoration:none; }
.btn.ghost { background:transparent; color:var(--ink); border:1px solid var(--line); }
button.link { background:none; border:0; font:inherit; color:var(--muted); cursor:pointer; padding:0; }
.hint, .muted { color:var(--muted); } .small { font-size:.85rem; }
.err { color:var(--err); font-weight:500; }
.warn { background:#fff7e0; color:var(--warn); padding:12px 16px; border-radius:12px; }
.pill { font-size:.8rem; font-weight:600; padding:4px 10px; border-radius:20px; background:var(--bg); color:var(--muted); }
.pill.en_cours { background:#e8f1ff; color:#1d4ed8; } .pill.termine { background:#e6f4ec; color:var(--ok); }
.pill.erreur { background:#fde8e6; color:var(--err); }
.table { overflow-x:auto; } table { width:100%; border-collapse:collapse; font-size:.92rem; }
th { text-align:left; color:var(--muted); font-weight:500; padding:8px 10px; border-bottom:1px solid var(--line); }
td { padding:10px; border-bottom:1px solid var(--line); vertical-align:top; }
.log { list-style:none; padding:0; margin:0; font-size:.88rem; } .log li { padding:6px 0; border-bottom:1px solid var(--line); }
.log li span { color:var(--muted); margin-right:8px; } .log li.error { color:var(--err); white-space:pre-wrap; }
.qr svg { width:220px; height:220px; display:block; margin:12px auto; }
code { background:var(--bg); padding:2px 6px; border-radius:6px; }
@media (max-width: 720px) { form.grid, .split { grid-template-columns:1fr; } main, .top { padding-left:16px; padding-right:16px; } }
