:root{
  --bleu:#1F3864;--bleu2:#2F5597;--bleu3:#e9effa;--or:#ffc000;--fond:#F4F6FA;--carte:#fff;--txt:#1d2433;--gris:#667085;--ligne:#e3e7ef;
  --vert:#1e7b3c;--vertf:#e3f4e8;--rouge:#b42318;--rougef:#fdecea;--orange:#9a6700;--orangef:#fff4d6;--ombre:0 1px 2px rgba(16,24,40,.05),0 8px 24px rgba(16,24,40,.06)
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;background:var(--fond);color:var(--txt);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}
a{color:var(--bleu2)}
button,input,select{font-family:inherit;font-size:15px}
.hidden{display:none!important}

/* barre du haut */
.top{background:var(--bleu);color:#fff;display:flex;align-items:center;gap:12px;padding:10px 20px;position:sticky;top:0;z-index:20}
.top .brand{white-space:nowrap;display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;color:#fff;text-decoration:none}
.top .brand img{width:30px;height:30px}
.top .sp{flex:1}
.top .who{font-size:13.5px;opacity:.9;text-align:right;line-height:1.25}
.top .who small{display:block;opacity:.7}
.top .lnk{color:#dfe6f3;background:rgba(255,255,255,.08);border:0;border-radius:8px;padding:8px 12px;cursor:pointer;text-decoration:none;font-size:14px}
.top .lnk:hover{background:rgba(255,255,255,.18);color:#fff}
.net{white-space:nowrap;font-size:12px;border-radius:999px;padding:3px 10px;background:rgba(255,255,255,.12)}
.net.off{background:var(--or);color:#1d2433}

.wrap{max-width:1120px;margin:0 auto;padding:24px 20px 60px}
h1{font-size:24px;margin:0 0 4px;color:var(--bleu)}
h2{font-size:18px;margin:0 0 12px;color:var(--bleu)}
.sub{color:var(--gris);margin:0 0 22px}
.card{background:var(--carte);border:1px solid var(--ligne);border-radius:16px;box-shadow:var(--ombre);padding:20px;margin-bottom:18px}

/* boutons et champs */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--bleu2);color:#fff;border:0;border-radius:10px;padding:10px 16px;font-weight:600;cursor:pointer;text-decoration:none;transition:filter .15s}
.btn:hover{filter:brightness(1.08)}
.btn:disabled{opacity:.55;cursor:default}
.btn.sec{background:#fff;color:var(--bleu2);border:1px solid #c9d4ea}
.btn.ghost{background:transparent;color:var(--bleu2);padding:8px 10px}
.btn.dang{background:#fff;color:var(--rouge);border:1px solid #f0c3bd}
.btn.or{background:var(--or);color:#1d2433}
.btn.sm{padding:6px 11px;font-size:13.5px;font-weight:500;border-radius:8px}
.btn.big{padding:13px 18px;font-size:16px;width:100%}
.fld{margin-bottom:14px}
.fld label{display:block;font-weight:600;font-size:13.5px;margin-bottom:6px}
.fld small{display:block;color:var(--gris);font-size:12.5px;margin-top:5px}
input,select{width:100%;padding:11px 12px;border:1px solid #cbd3e1;border-radius:10px;background:#fff;color:var(--txt)}
input:focus,select:focus{outline:3px solid #d5e1f7;border-color:var(--bleu2)}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}

.msg{border-radius:10px;padding:11px 14px;margin:12px 0;font-size:14px}
.msg.ko{background:var(--rougef);color:var(--rouge)}.msg.ok{background:var(--vertf);color:var(--vert)}.msg.wa{background:var(--orangef);color:var(--orange)}.msg.info{background:var(--bleu3);color:var(--bleu)}

.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;background:#eef0f4;color:var(--gris)}
.badge.admin{background:#efe7fb;color:#5b2ca0}.badge.comptable{background:var(--bleu3);color:var(--bleu)}.badge.saisie{background:var(--orangef);color:var(--orange)}.badge.lecture{background:#eef0f4;color:#475467}
.badge.ok{background:var(--vertf);color:var(--vert)}.badge.ko{background:var(--rougef);color:var(--rouge)}

table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;color:var(--gris);font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.03em;padding:8px 10px;border-bottom:1px solid var(--ligne)}
td{padding:10px;border-bottom:1px solid var(--ligne);vertical-align:middle}
td.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.muted{color:var(--gris);font-size:13px}
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#1d2433;color:#fff;padding:12px 20px;border-radius:12px;z-index:99;font-size:14.5px;box-shadow:0 10px 30px rgba(0,0,0,.25);max-width:92vw}

.modal{position:fixed;inset:0;background:rgba(16,24,40,.45);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}
.modal .card{max-width:460px;width:100%;margin:0}
.code{font-family:Consolas,Menlo,monospace;font-size:20px;letter-spacing:.06em;background:#f4f6fa;border:1px dashed #b9c4d8;border-radius:10px;padding:12px;text-align:center;user-select:all}

@media (max-width:760px){.wrap{padding:16px 14px 50px}.grid2{grid-template-columns:1fr}.top{padding:10px 14px}.top .who{display:none}.hide-m{display:none}}
