:root{--encre: #10221a;--encre-douce: #3d5449;--papier: #f7f6f1;--carte: #ffffff;--bordure: #c9cfc9;--vert: #0f6b3c;--vert-clair: #dcf0e4;--orange: #a34b00;--orange-clair: #ffeeda;--rouge: #9b1c1c;--rouge-clair: #fde8e8;--ardoise: #24384a;--rayon: 10px;--cible: 48px;--ombre: 0 1px 2px rgba(16, 34, 26, .12)}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%}body{background:var(--papier);color:var(--encre);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:17px;line-height:1.5;-webkit-text-size-adjust:100%}h1{font-size:1.4rem;margin:0 0 .25rem}h2{font-size:1.1rem;margin:1.5rem 0 .5rem}.page{max-width:720px;margin:0 auto;padding:1rem 1rem 5rem}.carte{background:var(--carte);border:1px solid var(--bordure);border-radius:var(--rayon);padding:1rem;box-shadow:var(--ombre)}.pile>*+*{margin-top:.75rem}.discret{color:var(--encre-douce);font-size:.9rem}.entete{background:var(--ardoise);color:#fff;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.entete .titre{font-weight:700}.entete .qui{font-size:.85rem;opacity:.85}.bandeau{padding:.6rem 1rem;font-weight:700;text-align:center}.bandeau.hors-ligne{background:var(--orange);color:#fff}.bandeau.en-attente{background:var(--orange-clair);color:var(--orange);border-bottom:2px solid var(--orange)}.bandeau.rejets{background:var(--rouge-clair);color:var(--rouge);border-bottom:2px solid var(--rouge);text-align:left}input,select,button{font:inherit;min-height:var(--cible);border-radius:var(--rayon)}input,select{width:100%;padding:.6rem .75rem;border:2px solid var(--bordure);background:#fff;color:var(--encre)}input:focus,select:focus,button:focus-visible{outline:3px solid var(--ardoise);outline-offset:2px}label{display:block;font-weight:600;margin-bottom:.25rem}button{min-width:var(--cible);padding:.6rem 1rem;border:2px solid transparent;background:var(--ardoise);color:#fff;font-weight:700;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button.principal{background:var(--vert);width:100%}button.secondaire{background:#fff;color:var(--ardoise);border-color:var(--ardoise)}button.danger{background:var(--rouge)}.recherche{font-size:1.15rem}.eleves{list-style:none;margin:0;padding:0}.eleves li+li{margin-top:.6rem}.eleve{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem;text-align:left;min-height:68px;padding:.6rem .9rem;background:var(--carte);color:var(--encre);border:2px solid var(--bordure);border-left-width:8px}.eleve.positif{border-left-color:var(--vert)}.eleve.negatif{border-left-color:var(--orange);background:var(--orange-clair)}.eleve .identite{min-width:0}.eleve .nom{font-weight:700;font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eleve .classe{color:var(--encre-douce);font-size:.85rem}.eleve .solde{font-weight:700;white-space:nowrap;text-align:right}.eleve .solde .mention{display:block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.eleve.negatif .solde{color:var(--orange)}.message{padding:.8rem 1rem;border-radius:var(--rayon);border-left:8px solid;font-weight:600}.message.succes{background:var(--vert-clair);border-left-color:var(--vert);color:#0b4b2a}.message.attention{background:var(--orange-clair);border-left-color:var(--orange);color:var(--orange)}.message.erreur{background:var(--rouge-clair);border-left-color:var(--rouge);color:var(--rouge)}.message .regle{display:block;font-weight:400;font-size:.8rem;margin-top:.25rem;opacity:.8}.voile{position:fixed;inset:0;background:#10221a99;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:10}.dialogue{background:var(--carte);border-radius:var(--rayon);padding:1.25rem;max-width:420px;width:100%}.dialogue .boutons{display:flex;gap:.75rem;margin-top:1.25rem}.dialogue .boutons button{flex:1}.onglets{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.onglets a{flex:1 1 140px;text-align:center;padding:.7rem .5rem;min-height:var(--cible);display:flex;align-items:center;justify-content:center;border:2px solid var(--bordure);border-radius:var(--rayon);background:var(--carte);color:var(--encre);text-decoration:none;font-weight:700}.onglets a.actif{background:var(--ardoise);border-color:var(--ardoise);color:#fff}
