/* ---------------------------------------------------------------
   Administration -- feuille unique, sans dependance ni CDN.
   Sobre volontairement : c'est un outil de travail, pas une vitrine.
   --------------------------------------------------------------- */

:root{
  --nuit:#16244a;
  --nuit-clair:#2b3d6b;
  --bleu:#3d7ec9;
  --bleu-sombre:#2f63a0;
  --or:#ffd15c;
  --vert:#2f8f5b;
  --vert-fond:#e9f5ee;
  --rouge:#b3261e;
  --rouge-fond:#fdecea;
  --ambre:#8a6d00;
  --ambre-fond:#fff8e1;
  --gris:#5a6b7d;
  --gris-clair:#eef1f7;
  --bord:#dfe4ee;
  --fond:#f4f5f9;
}

*{box-sizing:border-box}

body{
  margin:0;
  background:var(--fond);
  color:var(--nuit);
  font:14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}

/* --- Ossature ------------------------------------------------- */

.bandeau{
  background:var(--nuit);
  color:#fff;
  padding:0 22px;
  display:flex;
  align-items:center;
  gap:26px;
  min-height:52px;
  flex-wrap:wrap;
}
.bandeau .marque{font-weight:700;letter-spacing:.02em;margin-right:6px}
.bandeau nav{display:flex;gap:18px;flex-wrap:wrap}
.bandeau a{color:#c8d4ea;text-decoration:none;padding:4px 0;border-bottom:2px solid transparent}
.bandeau a:hover{color:#fff}
.bandeau a.actif{color:#fff;border-bottom-color:var(--or)}
.bandeau .qui{margin-left:auto;color:#9fb0cc;font-size:13px;display:flex;align-items:center;gap:14px}
.bandeau .qui a{color:#9fb0cc}

main{max-width:1080px;margin:0 auto;padding:26px 22px 60px}

h1{font-size:22px;margin:0 0 4px}
h2{font-size:17px;margin:30px 0 12px;padding-bottom:6px;border-bottom:1px solid var(--bord)}
h3{font-size:15px;margin:22px 0 8px}
.sous-titre{color:var(--gris);margin:0 0 22px}

.carte{
  background:#fff;
  border:1px solid var(--bord);
  border-radius:8px;
  padding:18px 20px;
  margin-bottom:20px;
}
.carte > :first-child{margin-top:0}
.carte > :last-child{margin-bottom:0}

.rangee{display:flex;gap:18px;flex-wrap:wrap;align-items:flex-start}
.rangee > *{flex:1;min-width:260px}

/* --- Tableaux -------------------------------------------------- */

table{width:100%;border-collapse:collapse;background:#fff}
th,td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--bord);vertical-align:middle}
th{background:var(--gris-clair);font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--gris)}
tbody tr:hover{background:#fafbfd}
td.actions{text-align:right;white-space:nowrap}
.vide{padding:26px;text-align:center;color:var(--gris);background:#fff}

/* --- Formulaires ----------------------------------------------- */

label{display:block;font-weight:600;margin-bottom:4px;font-size:13px}
input[type=text],input[type=email],input[type=password],select,textarea{
  width:100%;
  padding:7px 9px;
  border:1px solid var(--bord);
  border-radius:5px;
  font:inherit;
  background:#fff;
  color:inherit;
}
input:focus,select:focus,textarea:focus{outline:2px solid var(--bleu);outline-offset:-1px;border-color:var(--bleu)}
textarea{min-height:180px;font-family:Consolas,"Courier New",monospace;font-size:13px;line-height:1.5}
.champ{margin-bottom:14px}
.aide{color:var(--gris);font-size:12.5px;margin-top:4px;font-weight:400}

.bouton,button,input[type=submit]{
  display:inline-block;
  padding:7px 14px;
  border:1px solid var(--bleu-sombre);
  border-radius:5px;
  background:var(--bleu);
  color:#fff;
  font:inherit;
  font-weight:600;
  cursor:pointer;
  text-decoration:none;
}
.bouton:hover,button:hover{background:var(--bleu-sombre)}
.bouton.discret,button.discret{background:#fff;color:var(--nuit);border-color:var(--bord);font-weight:500}
.bouton.discret:hover,button.discret:hover{background:var(--gris-clair)}
.bouton.danger,button.danger{background:var(--rouge);border-color:var(--rouge)}
.bouton.petit,button.petit{padding:3px 9px;font-size:12.5px}

.actions-formulaire{display:flex;gap:10px;align-items:center;margin-top:18px}

/* --- Messages -------------------------------------------------- */

.message{padding:11px 14px;border-radius:6px;margin-bottom:16px;border-left:4px solid}
.message.succes{background:var(--vert-fond);border-color:var(--vert);color:#1d5c3a}
.message.erreur{background:var(--rouge-fond);border-color:var(--rouge);color:#7d1a15}
.message.info{background:var(--ambre-fond);border-color:var(--or);color:var(--ambre)}

/* --- Etats et pastilles ---------------------------------------- */

.pastille{
  display:inline-block;padding:1px 8px;border-radius:11px;
  font-size:11.5px;font-weight:700;letter-spacing:.03em;
}
.pastille.ok{background:var(--vert-fond);color:#1d5c3a}
.pastille.attention{background:var(--ambre-fond);color:var(--ambre)}
.pastille.erreur{background:var(--rouge-fond);color:#7d1a15}
.pastille.neutre{background:var(--gris-clair);color:var(--gris)}

code,.mono{font-family:Consolas,"Courier New",monospace;font-size:13px}
.code-acces{
  font-family:Consolas,"Courier New",monospace;
  font-size:15px;font-weight:700;letter-spacing:.16em;
  background:var(--gris-clair);padding:2px 8px;border-radius:4px;
}

/* --- Fiche imprimable ------------------------------------------ */

.fiche{background:#fff;padding:0}
.fiche-grille{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.fiche-eleve{
  border:1px dashed #b9c6d3;border-radius:8px;padding:12px 14px;
  display:flex;justify-content:space-between;align-items:center;gap:12px;
}
.fiche-eleve .nom{font-weight:700;font-size:15px}
.fiche-eleve .classe{color:var(--gris);font-size:12.5px}

@media print{
  .bandeau,.sans-impression{display:none !important}
  body{background:#fff}
  main{max-width:none;padding:0}
  .carte{border:0;padding:0;margin:0}
  .fiche-grille{gap:8px}
  .fiche-eleve{break-inside:avoid}
}
