:root{--nuit:#0B2545;--nuit2:#13315C;--or:#E0A93B;--fond:#F4F2EC;--carte:#FFFFFF;--encre:#14213D;--doux:#5A6272;--bord:#E1DDD2;
  --vert:#1F7A4D;--vert-f:#E6F3EC;--rouge:#B42318;--rouge-f:#FBEAE8;--or-f:#FBF2DF}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,"Segoe UI",Roboto,Arial,sans-serif;font-size:15px;color:var(--encre);background:var(--fond);line-height:1.45}
a{color:#1D5FBF}
header.bar{background:linear-gradient(120deg,var(--nuit),var(--nuit2));color:#fff;display:flex;align-items:center;justify-content:space-between;
  padding:12px 18px;gap:12px;flex-wrap:wrap;position:sticky;top:0;z-index:5;border-bottom:3px solid var(--or)}
.logo{color:#fff;text-decoration:none;font-weight:800;letter-spacing:.06em;font-size:17px}.logo b{color:var(--or)}
header nav{display:flex;gap:4px;flex-wrap:wrap}
header nav a{color:#DCE6F2;text-decoration:none;padding:6px 10px;border-radius:8px;font-size:14px}
header nav a.on,header nav a:hover{background:rgba(255,255,255,.12);color:#fff}
.pastille{background:var(--or);color:var(--nuit);border-radius:10px;padding:0 6px;font-size:12px;font-weight:800}
main{max-width:1100px;margin:0 auto;padding:18px 14px 60px}
h1{font-size:26px;margin:6px 0 2px;color:var(--nuit)}
h2{font-size:17px;margin:0 0 12px;color:var(--nuit)}
h3{font-size:15px;margin:16px 0 8px;color:var(--nuit)}
.sub{color:var(--doux);margin:0 0 16px}
.hint{color:var(--doux);font-size:13px}
.carte{background:var(--carte);border:1px solid var(--bord);border-radius:14px;padding:16px;margin:0 0 14px;box-shadow:0 1px 2px rgba(11,37,69,.04)}
.deux{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.deux>.carte{margin:0}
.deux+.deux,.deux+.carte,.carte+.deux{margin-top:14px}
.msg{background:var(--vert-f);border:1px solid #BFE0CC;color:#14532D;padding:10px 12px;border-radius:10px;margin:0 0 14px}
.msg.err{background:var(--rouge-f);border-color:#F2C6C0;color:#7A1A12}
label{display:block;font-size:13px;font-weight:600;margin:10px 0 4px;color:var(--encre)}
input,select{width:100%;padding:10px 11px;border:1px solid #CFCABD;border-radius:9px;font:inherit;background:#fff;color:var(--encre)}
input[type=checkbox]{width:auto}
input:focus,select:focus{outline:2px solid #9BB8E6;border-color:#1D5FBF}
.champs{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0 12px;align-items:end}
button,.bouton{display:inline-block;background:var(--nuit);color:#fff;border:0;border-radius:9px;padding:10px 16px;font:inherit;font-weight:600;
  cursor:pointer;text-decoration:none;margin-top:12px}
button.plat,.bouton.plat{background:#fff;color:var(--nuit);border:1px solid #C9C3B4}
button.mini,.bouton.mini{padding:5px 10px;font-size:13px;margin:0 0 0 4px}
button.large{width:100%;padding:13px;font-size:16px}
.enligne{display:inline;white-space:nowrap}
.rang{display:flex;gap:10px;flex-wrap:wrap}
table{width:100%;border-collapse:collapse}
th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--doux);border-bottom:1px solid var(--bord);padding:6px 8px}
td{border-bottom:1px solid #EFECE4;padding:8px;vertical-align:top}
tr:last-child td{border-bottom:0}
.num{text-align:right;white-space:nowrap}
tr.barre td{opacity:.5;text-decoration:line-through}
.etat{font-size:12px;font-weight:700;padding:2px 8px;border-radius:10px;white-space:nowrap}
.etat.declare{background:var(--or-f);color:#8A5A00}.etat.valide{background:var(--vert-f);color:var(--vert)}.etat.rejete{background:var(--rouge-f);color:var(--rouge)}
.tag{display:inline-block;background:var(--or-f);color:#8A5A00;font-size:11px;font-weight:700;padding:1px 7px;border-radius:8px;margin-left:6px;vertical-align:middle}
.chiffres{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:0 0 14px}
.chiffre{background:var(--carte);border:1px solid var(--bord);border-radius:14px;padding:14px;border-top:4px solid var(--nuit)}
.chiffre span{display:block;font-size:12px;color:var(--doux);text-transform:uppercase;letter-spacing:.04em}
.chiffre b{display:block;font-size:22px;margin-top:4px}
.chiffre small{color:var(--doux)}
.chiffre.rouge{border-top-color:var(--rouge)}.chiffre.rouge b{color:var(--rouge)}
.chiffre.vert{border-top-color:var(--vert)}.chiffre.vert b{color:var(--vert)}
.chiffre.or{border-top-color:var(--or)}
.grille-v{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin:0 0 14px}
.vcarte{display:block;text-decoration:none;color:inherit;margin:0}
.vcarte:hover{border-color:#9BB8E6}
.vtete{display:flex;justify-content:space-between;align-items:center}
.immat{font-weight:800;font-size:18px;letter-spacing:.04em;color:var(--nuit)}
.reste{font-size:20px;font-weight:800;margin:10px 0 4px}
.reste small{font-size:13px;font-weight:600;color:var(--doux);margin-left:6px}
.rouge{color:var(--rouge)}.vert{color:var(--vert)}
.t-rouge{color:var(--rouge)}.t-or{color:#9A6B12}.t-vert{color:var(--vert)}
.grand-solde{text-align:center;padding:22px}
.grand-solde span{display:block;color:var(--doux)}
.grand-solde b{display:block;font-size:36px;margin:4px 0}
.grand-solde.rouge{background:var(--rouge-f);border-color:#F2C6C0}.grand-solde.vert{background:var(--vert-f);border-color:#BFE0CC}
.grand-solde small{color:var(--doux)}
.filtres{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.filtres input,.filtres select{width:auto}.filtres button{margin:0}
.choix{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}
.choix a{border:1px solid #C9C3B4;border-radius:9px;padding:7px 12px;text-decoration:none;color:var(--encre);background:#fff}
.choix a.on{background:var(--nuit);color:#fff;border-color:var(--nuit)}
.jours{display:flex;gap:10px;flex-wrap:wrap}.jours label{font-weight:400;margin:0}
body.login{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:16px;background:linear-gradient(140deg,var(--nuit),#1D4E89)}
.boite-login{width:100%;max-width:380px;padding:26px}
.logo-grand{font-weight:800;font-size:28px;letter-spacing:.06em;color:var(--nuit)}.logo-grand b{color:var(--or)}
@media (max-width:760px){.deux{grid-template-columns:1fr}.opt{display:none}h1{font-size:22px}main{padding:14px 10px 60px}
  td,th{padding:7px 5px}.chiffre b{font-size:19px}}
@media print{header.bar,form,.rang,.choix,button{display:none!important}body{background:#fff}.carte,.chiffre{box-shadow:none}}
