:root{--accent:#0f6b4f;--fond:#f6f7f5;--carte:#fff;--texte:#1b2420;--doux:#5b6760;--bord:#d9dfdb;--err:#b3261e;--ok:#0a6b3a;--r:10px}*{box-sizing:border-box}body{background:var(--fond);color:var(--texte);margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1{margin:.2rem 0 1rem;font-size:1.5rem}h2{margin:1.2rem 0 .5rem;font-size:1.15rem}a{color:var(--accent)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{flex-direction:column;min-height:100vh;display:flex}.entete{background:var(--accent);color:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem 1rem;display:flex}.entete .utilisateur{align-items:center;gap:.6rem;font-size:.9rem;display:flex}.entete small{opacity:.85}.marque{font-weight:700}.menu{background:var(--carte);border-bottom:1px solid var(--bord);gap:.25rem;padding:.4rem 1rem;display:flex;overflow-x:auto}.menu a{border-radius:var(--r);color:var(--texte);white-space:nowrap;align-items:center;min-height:44px;padding:.5rem .8rem;text-decoration:none;display:flex}.menu a.actif{background:var(--accent);color:#fff}.contenu{width:100%;max-width:1100px;margin:0 auto;padding:1rem}.carte{background:var(--carte);border:1px solid var(--bord);border-radius:var(--r);margin-bottom:1rem;padding:1rem}.bouton{border-radius:var(--r);border:1px solid var(--accent);background:var(--accent);color:#fff;min-height:44px;font:inherit;cursor:pointer;padding:.5rem 1rem}.bouton.secondaire{color:var(--accent);background:#fff}.bouton.danger{background:var(--err);border-color:var(--err)}.bouton:disabled{opacity:.55;cursor:not-allowed}.champ{flex-direction:column;gap:.25rem;margin-bottom:.8rem;display:flex}.champ label{font-weight:600}input,select,textarea{font:inherit;border:1px solid var(--bord);border-radius:var(--r);background:#fff;max-width:100%;min-height:44px;padding:.4rem .6rem}.erreur{color:var(--err)}.succes{color:var(--ok)}.aide{color:var(--doux);font-size:.85rem}.etat{text-align:center;color:var(--doux);padding:1rem}.etat-erreur{color:var(--err)}.ligne{flex-wrap:wrap;align-items:end;gap:.6rem;margin-bottom:.8rem;display:flex}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--bord);padding:.5rem}.tableau{overflow-x:auto}.badge{background:#e7efe9;border-radius:99px;padding:.1rem .5rem;font-size:.8rem;display:inline-block}.badge.alerte{color:var(--err);background:#fbe5e3}.appel-liste{margin:0;padding:0;list-style:none}.appel-ligne{border-bottom:1px solid var(--bord);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem 0;display:flex}.case{border:1px solid var(--bord);border-radius:var(--r);cursor:pointer;align-items:center;gap:.3rem;min-height:44px;padding:0 .6rem;display:inline-flex}.case input{min-height:auto}.pagination{justify-content:center;align-items:center;gap:.6rem;margin-top:.8rem;display:flex}.connexion{max-width:420px;margin:8vh auto;padding:0 1rem}.grille{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}.note-in{width:6rem}.bulletin{color:#000;border:1px solid var(--bord);background:#fff;padding:1.2rem;overflow-x:auto}.bulletin h2{text-align:center;margin:.2rem 0}.bulletin table td,.bulletin table th{border:1px solid #888;padding:.3rem .5rem}@media print{@page{size:A4;margin:12mm}body{background:#fff}.entete,.menu,.no-print{display:none!important}.contenu{max-width:none;padding:0}.bulletin{page-break-after:always;border:0;padding:0;font-size:11pt;overflow:visible}.bulletin:last-child{page-break-after:auto}}
