:root{--page:#f6f6f5;--card:#fff;--ink:#0a0a0a;--muted:#6b6b70;--line:#e5e5e3;--soft:#fafafa;--pos:#15803d;--neg:#b91c1c;--warn:#b45309}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--page);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}.wrap{max-width:1120px;margin:0 auto;padding:32px 24px 64px}header.top{display:flex;flex-wrap:wrap;gap:16px;align-items:baseline;justify-content:space-between;margin-bottom:24px}.brand{font-size:15px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase}.sub{font-size:13px;color:var(--muted);margin-top:4px}nav.periods{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:24px}nav.periods a{padding:7px 14px;font-size:13px;text-decoration:none;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--muted)}nav.periods a.on{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}.grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px}.card .label{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.card .value{font-size:28px;font-weight:600;letter-spacing:-.5px;margin-top:8px}.card .note{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.5}.card .note.warn{color:var(--warn)}.delta{font-size:13px;font-weight:600;margin-top:6px}.delta.pos{color:var(--pos)}.delta.neg{color:var(--neg)}.delta span,.delta.flat{color:var(--muted)}.delta span{font-weight:400}section{margin-top:32px}h2{font-size:12px;font-weight:700;letter-spacing:1.1px;text-transform:uppercase;color:var(--muted);margin:0 0 12px}table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}td,th{padding:11px 16px;text-align:right;font-size:13px;border-bottom:1px solid var(--line)}td:first-child,th:first-child{text-align:left}th{background:var(--soft);font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:600}tbody tr:last-child td{border-bottom:none}td.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}footer.foot{margin-top:40px;font-size:12px;color:var(--muted);line-height:1.6}.login{max-width:380px;margin:12vh auto;padding:0 24px}.login form{display:flex;flex-direction:column;gap:10px;margin-top:20px}.login input{border:1px solid var(--line);border-radius:8px;background:var(--card)}.login button,.login input{padding:12px 14px;font-size:14px;font-family:inherit}.login button{font-weight:600;color:#fff;background:var(--ink);border:none;border-radius:8px;cursor:pointer}.login .msg{font-size:13px;margin-top:12px;line-height:1.6}form.range{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:24px}form.range label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}form.range input,form.range select{padding:7px 10px;font-size:13px;font-family:inherit;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink)}form.range button{padding:8px 16px;font-size:13px;font-weight:600;font-family:inherit;color:#fff;background:var(--ink);border:none;border-radius:8px;cursor:pointer}.serieHead{gap:12px;align-items:center;justify-content:space-between;margin-bottom:12px}.metrics,.serieHead{display:flex;flex-wrap:wrap}.metrics{gap:4px}.metrics a{padding:5px 11px;font-size:12px;text-decoration:none;color:var(--muted);border:1px solid var(--line);border-radius:999px;background:var(--card)}.metrics a.on{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}tr.canal td{font-weight:700;background:var(--soft)}tr.detail td:first-child{padding-left:32px;color:var(--muted)}tr.detail td{font-size:12.5px}.top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.retour{padding:7px 14px;font-size:13px;text-decoration:none;color:var(--muted);border:1px solid var(--line);border-radius:999px;background:var(--card);white-space:nowrap}.retour:hover{color:var(--ink);border-color:var(--ink)}.alerte{margin:14px 0;padding:12px 14px;font-size:13px;line-height:1.5;border:1px solid #e6c200;border-left-width:3px;border-radius:6px;background:#fffbe6}.tableWrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px}table.pnl{width:100%;min-width:900px;border-collapse:collapse;font-size:12.5px}table.pnl td,table.pnl th{padding:7px 10px;text-align:right;white-space:nowrap}table.pnl th{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}table.pnl td.lib,table.pnl th.lib{text-align:left}table.pnl td.lib{min-width:220px}table.pnl thead th{border-bottom:1px solid var(--line);background:var(--card);position:-webkit-sticky;position:sticky;top:0}table.pnl tr.section td{padding:9px 10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#fff;background:var(--ink);text-align:left}table.pnl tr.total td{font-weight:700;background:var(--soft)}table.pnl tr.resultat td{font-weight:700;background:#eef4ff;border-top:2px solid var(--ink)}table.pnl tr.detail td{font-size:11.5px;font-style:italic;color:var(--muted)}table.pnl tr.detail td.lib{padding-left:26px}table.pnl .fort{font-weight:700;background:var(--soft)}.pnlForm{display:grid;grid-gap:14px;gap:14px}.carte{padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--card)}.carte h3{margin:0 0 4px;font-size:14px}.carte .note{margin:0 0 12px}.grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));grid-gap:12px;gap:12px}.champ{display:grid;grid-gap:4px;gap:4px}.champ .lab{font-size:12.5px;font-weight:600}.champ .saisie{display:flex;align-items:center;gap:6px}.champ input{flex:1 1;min-width:0;padding:7px 9px;font:inherit;font-size:13px;border:1px solid var(--line);border-radius:6px;background:#fff;color:#00f}.champ input:focus{outline:2px solid var(--ink);outline-offset:-1px}.champ .unite{font-size:12px;color:var(--muted);min-width:34px}.champ .aide{font-size:11.5px;color:var(--muted);line-height:1.4}.champ.aRemplir input{background:#fffbe6;border-color:#e6c200}.scenarios{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:10px;gap:10px}.scenario{display:grid;grid-gap:2px;gap:2px;padding:11px 13px;cursor:pointer;border:1px solid var(--line);border-radius:8px}.scenario.actif{border-color:var(--ink);background:var(--soft)}.scenario strong{font-size:13px}.scenario span{font-size:11.5px;color:var(--muted)}.scenario input{margin-right:6px}.bascule{gap:8px;margin-top:12px;font-size:12.5px;color:var(--muted)}.actions,.bascule{display:flex;align-items:center}.actions{flex-wrap:wrap;gap:10px}.primaire,.secondaire{padding:9px 18px;font:inherit;font-size:13px;font-weight:600;border-radius:999px;cursor:pointer;text-decoration:none;border:1px solid var(--ink)}.primaire{background:var(--ink);color:#fff}.primaire:disabled{opacity:.55;cursor:progress}.secondaire{background:var(--card);color:var(--ink)}.secondaire:hover{background:var(--soft)}.kpi.warn .val{color:#c00}