/* ================================================================
   GESTION.CSS — pages gestion.html et prof.html (charte de l'Accueil)
   ================================================================ */
.gestion{ max-width:1100px; margin:50px auto 60px; text-align:left; color: var(--cream); }
#gate{ max-width:520px; margin:30px auto 60px; }

.g-top{ display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:18px; }
.g-hello{ font-family:'Baloo 2', cursive; font-size:2.1rem; color:#fff; line-height:1.1; }
.g-hello .at{ color: var(--yellow); }
.g-sub{ opacity:.8; font-size:.92rem; }

/* Onglets */
.g-tabs{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.g-tab{ border:2px solid rgba(255,255,255,.35); background:transparent; color:#fff; border-radius:999px; padding:8px 18px; font:inherit; font-weight:800; font-size:.92rem; cursor:pointer; }
.g-tab.active{ background: var(--yellow); border-color: var(--yellow); color: var(--chalk); }
.g-pane[hidden]{ display:none; }

/* Tableaux éditables */
.g-table-wrap{ overflow-x:auto; border-radius:14px; }
.g-table{ width:100%; border-collapse:collapse; font-size:.9rem; min-width:620px; }
.g-table th{ text-align:left; font-size:.75rem; text-transform:uppercase; letter-spacing:.04em; opacity:.75; padding:8px 8px; border-bottom:2px solid rgba(255,255,255,.2); }
.g-table td{ padding:6px 8px; border-bottom:1px dashed rgba(255,255,255,.15); vertical-align:middle; }
.g-table input, .g-table select{
  width:100%; padding:7px 9px; border-radius:8px; border:none; background:#fff; color: var(--chalk);
  font-family:'Nunito Sans', sans-serif; font-size:.88rem;
}
.g-table input[type="number"]{ max-width:90px; }
.g-table input[type="checkbox"]{ width:18px; height:18px; accent-color: var(--teal); }
.g-table .mat-dot{ display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:6px; vertical-align:middle; }
.g-del{ background:none; border:none; color:#fff; opacity:.6; cursor:pointer; font-size:1.2rem; }
.g-del:hover{ opacity:1; color: var(--red); }
.g-actions{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:14px; }
.g-saved{ font-size:.85rem; color: var(--green); font-weight:700; opacity:0; transition:opacity .3s; }
.g-saved.show{ opacity:1; }

/* Filtres matière */
.g-filters{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.g-filter{ border:2px solid rgba(255,255,255,.35); background:transparent; color:#fff; border-radius:999px; padding:6px 14px; font:inherit; font-weight:700; font-size:.85rem; cursor:pointer; }
.g-filter.active{ background:#fff; color: var(--chalk); }

/* Aperçu du mot de bienvenue */
.g-preview{ background: rgba(255,255,255,.08); border:2px dashed rgba(255,255,255,.35); border-radius:14px; padding:18px; margin-top:14px; }

/* ---------- Calendrier semaine ---------- */
.wk{ display:grid; grid-template-columns:40px repeat(6, minmax(110px,1fr)); gap:6px; overflow-x:auto; padding-bottom:6px; position:relative; }
.wk-hours{ position:relative; margin-top:30px; }
.wk-hours span{ position:absolute; right:4px; font-size:.7rem; opacity:.6; transform:translateY(-50%); }
.wk-head{ text-align:center; font-weight:800; font-size:.85rem; height:24px; margin-bottom:6px; }
.wk-col{ position:relative; background: repeating-linear-gradient(to bottom, rgba(255,255,255,.06) 0 1px, transparent 1px 46px); border-radius:10px; background-color: rgba(0,0,0,.2); }
.wk-ev{
  position:absolute; left:3px; right:3px; border:none; border-radius:8px; color:#fff; text-align:left; padding:3px 6px;
  font:inherit; font-size:.72rem; line-height:1.2; overflow:hidden; cursor:pointer; box-shadow:0 2px 6px rgba(0,0,0,.35);
}
.wk-ev b{ display:block; font-size:.78rem; }
.wk-ev:hover{ filter:brightness(1.1); outline:2px solid #fff; }

/* Groupes et élèves (page prof) */
.grp-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(300px,1fr)); gap:16px; }
.grp{ background: rgba(0,0,0,.28); border:2px solid rgba(255,255,255,.15); border-radius:16px; padding:14px 16px; }
.grp h3{ font-family:'Baloo 2', cursive; font-size:1.25rem; color:#fff; display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
.grp h3 small{ font-family:'Nunito Sans', sans-serif; font-size:.8rem; opacity:.75; font-weight:600; }
.grp .places{ font-size:.78rem; font-weight:800; padding:2px 10px; border-radius:999px; background: rgba(255,255,255,.15); }
.grp .places.full{ background: var(--red); }
.el{ display:grid; grid-template-columns:1fr auto; gap:6px 10px; align-items:center; padding:8px 0; border-top:1px dashed rgba(255,255,255,.18); }
.el .nm{ font-weight:800; }
.el select{ grid-column:1 / -1; padding:6px 8px; border-radius:8px; border:none; font:inherit; font-size:.82rem; color: var(--chalk); }
.grp .vide{ opacity:.7; font-size:.85rem; padding:8px 0; }

/* Paiements */
.pay{ font-weight:800; font-size:.78rem; padding:3px 10px; border-radius:999px; white-space:nowrap; }
.pay.ok{ background: var(--green); } .pay.wait{ background: var(--orange); } .pay.late{ background: var(--red); } .pay.none{ background: rgba(255,255,255,.2); }

@media (max-width:600px){ .g-hello{ font-size:1.6rem; } }
.wk-ev.short{ display:flex; align-items:center; gap:6px; white-space:nowrap; }
.wk-ev.short b{ display:inline; font-size:.72rem; }
.wk-ev.short span{ opacity:.9; }

/* Photo ronde du prof */
.avatar-rond{ position:relative; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; overflow:hidden;
  color:#fff; font-family:'Baloo 2', cursive; font-weight:800; flex-shrink:0; border:3px solid #fff; box-shadow:0 3px 8px rgba(0,0,0,.35); }
.avatar-rond img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.g-table code, .hint code{ background:rgba(255,255,255,.12); padding:1px 6px; border-radius:6px; }
.wk-ev.brouillon{ opacity:.6; background-image:repeating-linear-gradient(45deg, rgba(255,255,255,.18) 0 6px, transparent 6px 12px) !important; }

/* Fenêtre « confirme ton mot de passe » (accès gestion) */
.unlock-overlay{ position:fixed; inset:0; background:rgba(0,0,0,.65); z-index:200; display:flex; align-items:center; justify-content:center; padding:16px; }
.unlock-box{ width:100%; max-width:420px; background:#2f2f2f !important; margin:0; }

/* Page prof : filtre, tableaux par groupe, attente, détail des paiements (20/10/2026) */
.g-filtre{ display:flex; align-items:flex-end; gap:16px; flex-wrap:wrap; justify-content:space-between; padding:14px 18px; }
.g-filtre .form-field{ margin:0; min-width:260px; }
.grp-table{ border:2px solid rgba(255,255,255,.15); }
.grp-table h3{ font-family:'Baloo 2', cursive; font-size:1.25rem; color:#fff; display:flex; align-items:baseline; gap:10px; margin-bottom:8px; }
.grp-table h3 small{ font-family:'Nunito Sans', sans-serif; font-size:.8rem; opacity:.75; font-weight:600; flex:1; }
.grp-table .places{ font-size:.78rem; font-weight:800; padding:2px 10px; border-radius:999px; background:rgba(255,255,255,.15); }
.grp-table .places.full{ background:var(--red); }
.grp-table.attente{ border-style:dashed; border-color:var(--orange); }
.grp-table .vide{ opacity:.7; font-size:.85rem; padding:6px 0; }
.grp-table .g-table{ min-width:520px; }
.pay-btn{ border:none; color:#fff; cursor:pointer; font:inherit; font-weight:800; font-size:.8rem; }
.pay-btn:hover{ filter:brightness(1.12); outline:2px solid #fff; }
.pay-detail{ max-width:640px; width:100%; }
.pay-big{ font-family:'Baloo 2', cursive; font-size:1.5rem; font-weight:800; }
.pay-big.rouge{ color:#FF8A80; } .pay-big.vert{ color:#8BE38F; }
.pay-list{ min-width:0 !important; margin:8px 0 12px; }
.pay-add{ align-items:flex-end; }
.pay-add .btn-cta{ white-space:nowrap; }

/* 📚 Cours : liste des box et éditeur */
.box-niv{ font-family:'Baloo 2', cursive; font-size:1.15rem; color:var(--yellow); margin:14px 0 8px; }
.box-item{ padding:14px 18px; margin-bottom:12px; }
.box-item.brouillon{ border:2px dashed rgba(255,255,255,.3); opacity:.85; }
.box-top{ display:flex; align-items:center; gap:14px; }
.box-em{ font-size:2rem; line-height:1; }
.box-t{ flex:1; display:flex; flex-direction:column; }
.box-t b{ font-size:1.05rem; } .box-t small{ opacity:.75; font-size:.8rem; }
.box-act{ display:flex; align-items:center; gap:6px; }
.box-etapes{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:10px; font-size:.85rem; }
.box-etapes .et{ background:rgba(255,255,255,.12); border-radius:999px; padding:3px 10px; }
.box-etapes .fl{ opacity:.5; }
.box-ov{ align-items:flex-start; overflow-y:auto; }
.box-ed{ max-width:760px; width:100%; margin:20px auto; }
.et-ed{ border:1.5px solid rgba(255,255,255,.18); border-radius:14px; padding:12px 14px; margin-bottom:12px; background:rgba(0,0,0,.18); }
.et-ed-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; }
.q-ed{ border-left:3px solid var(--teal); padding-left:10px; margin:8px 0; }
.q-ed label .btn-link{ font-size:.75rem; margin-left:8px; }
.et-add{ justify-content:flex-start; flex-wrap:wrap; }

/* Calendrier « toutes matières » : sous-colonnes par matière / prof */
.wk.wk-lanes{ overflow-x:auto; }
.wk-sub{ display:flex; height:22px; margin:-4px 0 6px; font-size:.68rem; font-weight:800; opacity:.85; }
.wk-sub span{ flex:1; text-align:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.wk-sep{ position:absolute; top:0; bottom:0; width:0; border-left:1px dashed rgba(255,255,255,.18); }
.wk-lanes .wk-ev{ font-size:.72rem; }
.wk-lanes .wk-ev b{ font-size:.74rem; }

/* FIRE 20/10 : tableaux d'élèves alignés, couleurs des niveaux */
.t-eleves{ table-layout:fixed; min-width:880px; }
.t-eleves td{ overflow:hidden; text-overflow:ellipsis; }
.sel-move{ width:100%; max-width:190px; padding:6px 8px !important; font-size:.8rem !important; }
.niv-pastille{ display:inline-block; color:#fff; font-weight:800; font-size:.76rem; padding:2px 10px; border-radius:6px; text-shadow:0 1px 2px rgba(0,0,0,.3); }
.grp-table{ border-width:2px; border-style:solid; }
.grp-table.attente{ border-style:dashed; border-color:rgba(255,255,255,.45); }
.grp-table.off{ border-style:dashed; border-color:rgba(255,255,255,.2); opacity:.85; }
.grp-table.off summary{ cursor:pointer; list-style:none; } .grp-table.off summary::-webkit-details-marker{ display:none; }
.grp-dot{ width:14px; height:14px; border-radius:4px; flex-shrink:0; align-self:center; }
.btn-mini{ padding:5px 12px !important; font-size:.8rem !important; }
.g-top{ justify-content:flex-end; margin-bottom:0; }
/* pense-bête sur la page prof */
.pense-bete{ display:flex; align-items:center; gap:14px; background:#FFF6C2; color:#3a3a3a; border-radius:14px; padding:12px 16px; margin-bottom:14px;
  box-shadow:0 4px 10px rgba(0,0,0,.35); transform:rotate(-.4deg); border-left:8px solid var(--yellow); }
.pb-ic{ font-size:1.6rem; } .pb-txt{ flex:1; } .pb-txt small{ opacity:.7; }
.pense-bete .pb-lu{ color:#3a3a3a; border-color:#3a3a3a; }
/* gestion : liste des pense-bêtes et bonjours */
.pb-ligne{ display:flex; align-items:center; gap:12px; padding:10px 0; border-top:1px dashed rgba(255,255,255,.18); }
.pb-ligne .pb-txt small{ display:block; }
.bonjours-liste{ margin:14px 0; } .bonjours-liste summary{ cursor:pointer; font-weight:700; }
.bonjours-liste textarea{ width:100%; border-radius:10px; border:none; padding:10px; font-family:inherit; }
#a-mot:disabled{ background:#d9d9d9; color:#777; cursor:not-allowed; }
/* checklist nouveau prof */
.ck-badge{ display:inline-block; font-size:.75rem; font-weight:800; padding:3px 10px; border-radius:999px; background:rgba(255,255,255,.15); cursor:pointer; border:none; color:#fff; white-space:nowrap; }
.ck-badge.ok{ background:var(--green); }
.ck-step{ border-top:1px dashed rgba(255,255,255,.18); padding:10px 0; }
.ck-step pre{ background:#1e1e1e; color:#d4f5d4; padding:10px; border-radius:8px; font-size:.75rem; white-space:pre-wrap; margin:6px 0; }
.ck-ov .unlock-box{ max-width:760px; max-height:90vh; overflow:auto; }
.prof-off td{ opacity:.55; }
body.app-page .gestion{ margin-top:6px; }
.g-top:empty, .g-top:not(:has(:not([hidden]))){ display:none; }
/* image de l'emploi du temps */
.edt-ov .edt-box{ max-width:1000px; }
.edt-prev{ margin:10px 0; text-align:center; } .edt-prev img{ width:100%; border-radius:10px; box-shadow:0 6px 18px rgba(0,0,0,.5); }
.edt-img{ margin:0; } .edt-img img{ width:100%; display:block; border-radius:12px; box-shadow:0 6px 18px rgba(0,0,0,.5); }
.edt-attente{ padding:40px; text-align:center; opacity:.7; }
.edt-actions{ text-align:right; margin:8px 0; }
.edt-texte{ margin-top:6px; } .edt-texte summary{ cursor:pointer; opacity:.8; margin-bottom:10px; }
#cal-images{ margin-top:6px; align-items:center; }
.nom-eleve{ background:none; border:none; color:#fff; font:inherit; font-weight:800; cursor:pointer; padding:0; text-align:left; }
.nom-eleve:hover{ color:var(--yellow); text-decoration:underline; } .nom-eleve .fi{ font-size:.8rem; opacity:.7; }
.fiche{ max-width:520px; } .fiche-l{ display:flex; gap:12px; padding:7px 0; border-top:1px dashed rgba(255,255,255,.15); }
.fiche-l span{ min-width:110px; opacity:.75; } .fiche-l a{ color:var(--yellow); }
.fiche-l.itin b{ color:#8BE38F; }
#pense-bete{ margin:0 0 6px; }
.at-modes{ display:flex; gap:8px; flex-wrap:wrap; } .at-modes .choice{ margin:0; flex:1; min-width:180px; }
.at-dates{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:8px; } .at-date{ background:rgba(255,255,255,.15); padding:4px 10px; border-radius:999px; }
.at-desc{ display:block; opacity:.85; margin-top:2px; }
.ateliers-liste{ display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr)); gap:14px; }
.atelier-fiche{ display:flex; gap:14px; border:2px solid; border-radius:14px; padding:14px; background:rgba(0,0,0,.2); }
.af-ic{ width:54px; height:54px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:1.8rem; flex-shrink:0; }
.atelier-fiche h3{ font-family:'Baloo 2', cursive; font-size:1.15rem; margin:0; color:#fff; } .af-h{ font-size:.85rem; opacity:.85; }
.atelier-fiche p{ margin:6px 0; font-size:.9rem; } .af-prix{ font-size:.8rem; font-weight:800; color:var(--yellow); }
.t-synthese th[data-tri]{ cursor:pointer; white-space:nowrap; } .t-synthese th[data-tri]:hover{ color:var(--yellow); }
.sy-c b{ display:block; } .sy-c small{ display:block; opacity:.8; font-size:.78rem; }
.sy-r{ display:inline-block; margin-top:3px; font-size:.72rem; font-weight:800; padding:1px 8px; border-radius:999px; }
.sy-r.ok{ background:var(--green); } .sy-r.late{ background:var(--red); } .sy-r.none{ background:rgba(255,255,255,.18); }
.sy-vide{ opacity:.35; text-align:center; } .sy-rouge{ color:#FF8A80; }
#sy-q{ width:100%; padding:10px 14px; border-radius:10px; border:none; font:inherit; color:var(--chalk); }
.atelier-fiche{ align-items:center; } .ateliers-liste{ grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); }

/* ===== FIRE 21h ===== */
/* pense-bête v2 : sous le nom, épingle en haut à gauche, actions à cocher */
.pb-notes{ display:flex; flex-wrap:wrap; gap:16px; align-items:flex-start; margin-bottom:12px; }
.pense-bete.pb2{ position:relative; display:block; flex:1 1 300px; max-width:520px; padding:18px 18px 14px 22px; margin:8px 0 0; }
.pb2:nth-child(2n){ transform:rotate(.5deg); }
.pb-pin{ position:absolute; top:-14px; left:-8px; font-size:1.7rem; transform:rotate(-20deg); filter:drop-shadow(0 2px 2px rgba(0,0,0,.35)); }
.pb2 .pb-txt > small{ display:block; margin-bottom:6px; opacity:.75; }
.pb-l{ display:flex; gap:8px; align-items:flex-start; padding:3px 0; cursor:pointer; font-weight:600; }
.pb-l input{ margin-top:4px; accent-color:#3BAA3B; } .pb-l.fait{ color:#2E7D32; text-decoration:line-through; text-decoration-color:rgba(46,125,50,.5); }
.pb2 .pb-ok{ margin-top:8px; } .pb2 .pb-ok:disabled{ opacity:.45; cursor:not-allowed; }
.pb-perso{ background:#E8F6FF; border-left-color:#2BB3C0; }
.pb-vide{ display:block; opacity:.6; font-style:italic; }
.pb-add{ display:flex; gap:8px; margin-top:8px; align-items:center; flex-wrap:wrap; }
.pb-add input{ flex:1; min-width:160px; padding:6px 10px; border-radius:8px; border:1px solid #bbb; font:inherit; }
.pb-add .btn-ghost, .pb-add .btn-link{ color:#3a3a3a; border-color:#3a3a3a; }
.pb-envoi{ margin-bottom:14px; } .pb-envoi summary{ cursor:pointer; font-weight:800; }
.pb-envoi textarea, #m-texte{ width:100%; border-radius:10px; border:none; padding:10px; font:inherit; }
.pb-suivi{ display:flex; flex-wrap:wrap; gap:4px 10px; align-items:center; margin-top:4px; padding:4px 8px; border-radius:8px; background:rgba(255,255,255,.06); }
.pb-suivi.ok{ background:rgba(59,170,59,.22); }
.pb-a{ font-size:.85rem; opacity:.8; } .pb-a.fait{ color:#8BE38F; opacity:1; }
.pb-v{ color:#8BE38F; font-weight:800; font-size:.8rem; } .pb-nv{ color:var(--yellow); font-size:.8rem; font-weight:700; }
.pb-ligne.pb-fini .pb-txt > b{ color:#8BE38F; }
.pb-gestion{ border:2px solid var(--yellow); }
/* compte gestion sur la page d'un autre prof : bandeau rouge + liseré */
.bandeau-autre{ position:sticky; top:0; z-index:400; display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap;
  background:#E02013; color:#fff; font-weight:800; padding:10px 16px; box-shadow:0 4px 12px rgba(0,0,0,.4); font-size:1.02rem; }
.bandeau-autre .btn-cta{ background:#fff; color:#E02013; }
body.autre-prof::after{ content:""; position:fixed; inset:0; border:6px solid #E02013; pointer-events:none; z-index:9999; }
/* paiement : gratuit / montant manuel / ristourne */
.pay-calc{ border:1px dashed rgba(255,255,255,.25); border-radius:12px; padding:10px 12px; margin:10px 0; }
.pay-gratuit{ margin:0 0 8px; }
.pay-manuel{ display:flex; gap:6px; align-items:center; font-size:.85rem; margin-top:6px; cursor:pointer; font-weight:600; }
#d-base:disabled, #a-du:disabled{ background:#d9d9d9; color:#777; cursor:not-allowed; }
.pay-rist{ display:flex; gap:6px; } .pay-rist input{ flex:1; min-width:0; } .pay-rist select{ width:70px; }
/* ateliers exceptionnels (page prof) */
.ev-barre{ margin-top:22px; }
.ev-liste{ display:grid; gap:12px; }
.ev-item{ display:flex; gap:14px; align-items:center; border-left:6px solid #F731AA; }
.ev-item .box-t{ flex:1; } .ev-item .box-t small{ display:block; opacity:.85; }
.ev-item.ev-st-annule{ border-left-color:#888; opacity:.75; } .ev-item.ev-st-fait{ border-left-color:#3BAA3B; }
.ev-badge{ display:inline-block; font-size:.72rem; font-weight:800; padding:1px 9px; border-radius:999px; margin-left:6px; vertical-align:middle; background:#F731AA; }
.ev-badge.ev-st-annule{ background:#E02013; } .ev-badge.ev-st-fait{ background:#3BAA3B; }
.ev-desc-p{ display:block; opacity:.85; }
.ev-cks{ display:flex; flex-wrap:wrap; gap:6px; margin:6px 0; } .ev-ck{ margin:0 !important; flex:0 1 auto; }
.g-del.arm{ width:auto; padding:0 8px; background:var(--red); }
/* accueillir un prof */
.acc-prof{ border:2px solid rgba(255,255,255,.18); border-radius:14px; padding:10px 14px; margin-bottom:12px; background:rgba(0,0,0,.18); }
.acc-prof.ok{ border-color:var(--green); }
.acc-prof summary{ display:flex; align-items:center; gap:12px; cursor:pointer; list-style:none; flex-wrap:wrap; }
.acc-prof summary::-webkit-details-marker{ display:none; }
.acc-mat{ opacity:.75; font-size:.9rem; }
.ck-barre{ flex:1; min-width:120px; height:10px; border-radius:999px; background:rgba(255,255,255,.15); overflow:hidden; }
.ck-barre span{ display:block; height:100%; background:linear-gradient(90deg, var(--yellow), var(--green)); border-radius:999px; }
.acc-corps{ margin-top:8px; }
.ck-step.fait .t{ color:#8BE38F; } .ck-step.prochaine{ background:rgba(232,191,36,.1); border-radius:8px; padding-left:8px; }
.ck-next{ color:var(--yellow); font-style:normal; font-size:.8rem; margin-left:6px; }

/* ===== FIRE 21i ===== */
/* pense-bête : 2 petits encadrés côte à côte, même format */
.pb-notes{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:18px; align-items:stretch; }
.pense-bete.pb2{ max-width:none; flex:none; margin:8px 0 0; }
.pb-msg{ border-top:1px dashed rgba(0,0,0,.18); padding-top:6px; margin-top:6px; } .pb-msg:first-of-type{ border-top:none; margin-top:0; padding-top:0; }
.pb-de{ display:block; opacity:.7; font-size:.8rem; }
.pb-recus{ background:#FFF6C2; }
@media (max-width:760px){ .pb-notes{ grid-template-columns:1fr; } }
/* « Page de … » (gestion) : même taille que les onglets */
.voir-prof.g-tab{ color:#fff; background:transparent; margin-left:0; appearance:auto; }
.voir-prof.g-tab option{ color:var(--chalk); }
/* profs : cercle de la photo = état, photo cliquable (checklist), couronne des gestionnaires */
.prof-photo{ position:relative; border:none; background:none; padding:0; cursor:pointer; border-radius:50%; display:inline-flex; }
.prof-photo .avatar-rond{ box-shadow:0 0 0 3px var(--anneau, #888); }
.prof-photo.vert{ --anneau:#4CAF50; } .prof-photo.orange{ --anneau:#F78E00; } .prof-photo.rouge{ --anneau:#E02013; }
.prof-photo:hover .avatar-rond{ box-shadow:0 0 0 3px var(--anneau), 0 0 0 6px rgba(255,255,255,.35); }
.prof-couronne{ position:absolute; left:-16px; top:-10px; font-size:1.15rem; transform:rotate(-18deg); z-index:2; filter:drop-shadow(0 1px 2px rgba(0,0,0,.5)); }
/* paiement : historique d'abord, puis encadrés grisés « Montant manuel » et « Offre promotionnelle » */
.pay-gris{ background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); border-radius:12px; padding:10px 14px; margin:10px 0; }
.pay-gris.off{ opacity:.5; }
.pay-gris .pay-titre{ display:block; margin-bottom:6px; }
.pay-ck{ display:flex; align-items:center; gap:8px; cursor:pointer; padding:3px 0; } .pay-ck small{ opacity:.7; }
.pay-ligne{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:4px 0 2px 26px; }
.pay-ligne input{ width:110px; padding:7px 10px; border-radius:8px; border:none; font:inherit; color:var(--chalk); }
.pay-ligne input:disabled{ background:#d9d9d9; color:#777; cursor:not-allowed; }
.pay-ou{ opacity:.7; }
.pay-big.bleu{ color:#5AB4FF; }
.pay.promo, .sy-r.promo{ background:#2D7FD3; }
.sy-r.promo{ margin-left:4px; }
/* atelier exceptionnel : « Qui est invité ? » en boutons ronds */
.ev-qui{ display:flex; flex-wrap:wrap; gap:8px; margin:4px 0 10px; }
.ev-rond{ cursor:pointer; } .ev-rond input{ position:absolute; opacity:0; pointer-events:none; }
.ev-rond span{ display:inline-block; padding:8px 16px; border-radius:999px; border:2px solid rgba(255,255,255,.4); font-weight:800; }
.ev-rond input:checked + span{ background:var(--yellow); border-color:var(--yellow); color:var(--chalk); }
.ev-rond input:focus-visible + span{ outline:2px solid #fff; outline-offset:2px; }

/* ===== FIRE 21j ===== */
/* pense-bête compact : un seul encadré droit, PRO à gauche | PERSO à droite, « Envoyer » replié dessous */
.pb-cadre{ background:#FFF6C2; color:#3a3a3a; border-radius:14px; border-left:8px solid var(--yellow); box-shadow:0 4px 10px rgba(0,0,0,.35); margin:0 0 14px; overflow:hidden; }
.pb-haut{ display:grid; grid-template-columns:1fr 1fr; }
.pb-moitie{ padding:8px 14px; min-width:0; }
.pb-moitie + .pb-moitie{ border-left:2px dashed rgba(0,0,0,.15); }
.pb-tete{ display:flex; align-items:center; gap:10px; min-height:30px; }
.pb-tete b{ font-size:.95rem; white-space:nowrap; }
.pb-tete .pb-vide{ font-style:italic; opacity:.65; font-size:.9rem; display:inline; }
.pb-plus{ margin-left:auto; color:#3a3a3a !important; border-color:#3a3a3a !important; }
.pb-cadre .pb-l{ padding:1px 0; font-size:.92rem; }
.pb-cadre .pb-msg{ border-top:1px dashed rgba(0,0,0,.15); padding-top:4px; margin-top:4px; }
.pb-cadre .pb-ok{ margin:4px 0 2px; }
.pb-cadre .pb-add{ margin:4px 0; } .pb-cadre .pb-add[hidden]{ display:none; }
.pb-clean{ color:#3a3a3a !important; font-size:.8rem; }
.pb-cadre .pb-envoi{ border-top:2px dashed rgba(0,0,0,.15); padding:6px 14px; margin:0; background:rgba(0,0,0,.04); }
.pb-cadre .pb-envoi summary{ font-size:.9rem; }
.pb-cadre .pb-envoi label{ color:#3a3a3a; }
.pb-cadre .pb-envoi textarea{ border:1px solid #bbb; }
.pb-cadre .pb-envoi .pb-ligne{ border-top-color:rgba(0,0,0,.15); }
.pb-cadre .pb-suivi{ background:rgba(0,0,0,.05); } .pb-cadre .pb-suivi.ok{ background:rgba(59,170,59,.2); }
.pb-cadre .pb-a.fait, .pb-cadre .pb-v{ color:#2E7D32; } .pb-cadre .pb-nv{ color:#9a6b00; }
.pb-cadre .g-del{ color:#3a3a3a; }
@media (max-width:700px){ .pb-haut{ grid-template-columns:1fr; } .pb-moitie + .pb-moitie{ border-left:none; border-top:2px dashed rgba(0,0,0,.15); } }
/* paiement : « Autre moyen de paiement » */
.pay-gris.ferme .pay-ligne{ opacity:.8; }
.pay-auto{ opacity:.7; } .pay-tag{ display:inline-block; font-size:.7rem; font-weight:800; padding:0 7px; border-radius:999px; background:#2D7FD3; color:#fff; margin-left:4px; }
.pay-gris .pay-add{ margin:8px 0 0 26px; }
/* emplois du temps : jamais de barre de défilement, la grille s'adapte à l'encadré */
.wk, .wk.wk-lanes{ overflow:visible; grid-template-columns:40px repeat(6, minmax(0, 1fr)); }
.wk-ev{ min-width:0; } .wk-ev b, .wk-ev span{ overflow:hidden; text-overflow:ellipsis; }
.edt-grid{ grid-template-columns:repeat(auto-fit, minmax(min(120px, 100%), 1fr)); }
.edt-case{ overflow:hidden; } .edt-case b, .edt-case span{ overflow:hidden; text-overflow:ellipsis; }

/* ===== FIRE 21l ===== */
/* calendrier toutes matières (gestion) : défilement horizontal DANS l'encadré ; profs séparés en blanc, jours en jaune */
.wk.wk-lanes{ overflow-x:auto; overflow-y:hidden; padding-bottom:10px; }
.wk-lanes .wk-sep{ border-left:1px solid rgba(255,255,255,.75); }
.wk-lanes .wk-sub span + span{ border-left:1px solid rgba(255,255,255,.75); }
.wk-lanes .wk-day{ position:relative; }
.wk-lanes .wk-day + .wk-day::before{ content:""; position:absolute; left:-4px; top:0; bottom:0; border-left:2px solid var(--yellow); }
/* synthèse : grille blanche */
.t-synthese{ border-collapse:collapse; table-layout:fixed; width:100%; min-width:760px; }
.t-synthese td{ overflow-wrap:anywhere; }
.t-synthese th, .t-synthese td{ border:1px solid rgba(255,255,255,.55); }
/* pense-bête : fond ardoise, trois couleurs (PRO violet, PERSO bleu, Envoyer orange) */
.pb-cadre{ background:rgba(20,20,24,.72); color:#f2f2f2; border-left:none; border:1px solid rgba(255,255,255,.15); }
.pb-moitie{ border-left:5px solid; }
.pb-pro{ border-left-color:#A052B3; background:rgba(160,82,179,.12); }
.pb-perso{ border-left-color:#2BB3C0; background:rgba(43,179,192,.12); }
.pb-moitie + .pb-moitie{ border-left:5px solid #2BB3C0; }
.pb-cadre .pb-envoi{ border-top:1px solid rgba(255,255,255,.15); border-left:5px solid #F78E00; background:rgba(247,142,0,.10); }
.pb-cadre .pb-tete b{ color:#fff; }
.pb-cadre .pb-l.fait{ color:#8BE38F; text-decoration-color:rgba(139,227,143,.5); }
.pb-cadre .pb-msg{ border-top-color:rgba(255,255,255,.15); }
.pb-plus, .pb-clean{ color:#fff !important; border-color:rgba(255,255,255,.6) !important; }
.pb-cadre .pb-envoi label, .pb-cadre .g-del{ color:#f2f2f2; }
.pb-cadre .pb-envoi .pb-ligne{ border-top-color:rgba(255,255,255,.15); }
.pb-cadre .pb-suivi{ background:rgba(255,255,255,.06); } .pb-cadre .pb-suivi.ok{ background:rgba(59,170,59,.22); }
.pb-cadre .pb-a.fait, .pb-cadre .pb-v{ color:#8BE38F; } .pb-cadre .pb-nv{ color:var(--yellow); }
.pb-cadre .pb-add input{ border:none; }
/* page prof : 15 px de plus au-dessus des onglets */
body.pg-prof .g-tabs-row{ margin-top:15px; }

/* ===== FIRE 22a : pense-bête « A » — deux petites notes claires, droites, avec épingle ===== */
.pb-cadre{ background:none; border:none; box-shadow:none; overflow:visible; color:#3a3a3a; margin:0 0 14px; }
.pb-haut{ gap:16px; }
.pb-cadre .pb-moitie{ position:relative; border-radius:12px; padding:9px 14px 9px 22px; box-shadow:0 3px 8px rgba(0,0,0,.35); color:#3a3a3a; }
.pb-cadre .pb-pro{ background:#F6EDFA; border-left:6px solid #A052B3; }
.pb-cadre .pb-perso, .pb-cadre .pb-moitie + .pb-moitie{ background:#E8F7F9; border-left:6px solid #2BB3C0; border-top:none; }
.pb-cadre .pb-pin{ position:absolute; top:-12px; left:-6px; font-size:1.35rem; transform:rotate(-20deg); filter:drop-shadow(0 2px 2px rgba(0,0,0,.35)); }
.pb-cadre .pb-tete b{ color:#3a3a3a; font-size:.92rem; }
.pb-cadre .pb-prive{ font-style:italic; opacity:.6; font-size:.75rem; }
.pb-cadre .pb-tete .pb-vide{ color:#666; }
.pb-cadre .pb-l.fait{ color:#2E7D32; text-decoration-color:rgba(46,125,50,.5); }
.pb-cadre .pb-msg{ border-top-color:rgba(0,0,0,.12); }
.pb-cadre .pb-plus, .pb-cadre .pb-clean{ color:#3a3a3a !important; border-color:#3a3a3a !important; }
.pb-cadre .pb-add input{ border:1px solid #bbb; }
.pb-cadre .pb-envoi{ margin-top:12px; border-radius:12px; border:none; border-left:6px solid #F78E00; background:#FFF1E0; padding:7px 14px; box-shadow:0 3px 8px rgba(0,0,0,.3); color:#3a3a3a; }
.pb-cadre .pb-envoi summary{ color:#3a3a3a; }
.pb-cadre .pb-envoi label, .pb-cadre .g-del{ color:#3a3a3a; }
.pb-cadre .pb-envoi .pb-ligne{ border-top-color:rgba(0,0,0,.12); }
.pb-cadre .pb-suivi{ background:rgba(0,0,0,.05); } .pb-cadre .pb-suivi.ok{ background:rgba(59,170,59,.2); }
.pb-cadre .pb-a.fait, .pb-cadre .pb-v{ color:#2E7D32; } .pb-cadre .pb-nv{ color:#9a6b00; }
.pb-cadre .pb-envoi textarea{ border:1px solid #bbb; }
@media (max-width:700px){ .pb-cadre .pb-moitie + .pb-moitie{ border-top:none; } }

/* ===== FIRE 22b ===== */
/* menu « Afficher la page de… » (gestion + bandeau rouge) : tous les profs, rien de grisé */
.voir-btn{ margin-left:auto; background:#E02013 !important; border-color:#E02013 !important; color:#fff !important; }
.menu-profs{ position:absolute; z-index:500; min-width:250px; background:#2b2b2b; border:2px solid #E02013; border-radius:14px; padding:6px; box-shadow:0 10px 24px rgba(0,0,0,.55); }
.menu-profs button{ display:flex; align-items:center; gap:10px; width:100%; background:none; border:none; color:#fff; font:inherit; text-align:left; padding:7px 10px; border-radius:10px; cursor:pointer; }
.menu-profs button:hover, .menu-profs button:focus-visible{ background:rgba(255,255,255,.12); }
.menu-profs button span{ opacity:.75; font-size:.82rem; margin-left:auto; }
.bandeau-autre .ba-btns{ display:flex; gap:8px; flex-wrap:wrap; }
/* fenêtre paiement : historique → montants (centrés) → autre moyen → offre */
.pay-detail{ max-width:640px; }
.pay-list .pay-remise td{ color:#5AB4FF; font-style:italic; }
.pay-montants{ display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; text-align:center; margin:22px 0; padding:14px 10px; border-radius:14px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.18); }
.pay-montants span{ display:block; font-size:.82rem; opacity:.8; margin-bottom:4px; }
.pay-montants b{ display:block; font-family:'Baloo 2', sans-serif; font-size:1.8rem; line-height:1.1; }
.pay-montants b.rouge{ color:#FF8A80; } .pay-montants b.vert{ color:#8BE38F; } .pay-montants b.bleu{ color:#5AB4FF; }
.pay-note{ margin:2px 0 4px 26px; font-size:.82rem; opacity:.7; }
.pay-gris .pay-add{ display:grid; grid-template-columns:1fr 1.2fr 1fr auto; gap:10px; align-items:end; margin:8px 0 0 26px; }
.pay-gris .pay-add .form-field{ margin:0; } .pay-go{ align-self:end; }
.pay-gris .pay-add input, .pay-gris .pay-add select{ width:100%; }
.pay-coupon{ width:150px !important; text-transform:uppercase; } .pay-coupon::placeholder{ font-style:italic; text-transform:none; }
@media (max-width:600px){ .pay-gris .pay-add{ grid-template-columns:1fr 1fr; margin-left:0; } .pay-montants b{ font-size:1.35rem; } }
/* pense-bête : « Envoyer un point » transparent, encadré orange, trait épais à gauche */
.pb-cadre .pb-envoi{ background:transparent; border:2px solid #F78E00; border-left:7px solid #F78E00; box-shadow:none; color:#f2f2f2; }
.pb-cadre .pb-envoi summary, .pb-cadre .pb-envoi label, .pb-cadre .pb-envoi .g-del{ color:#f2f2f2; }
.pb-cadre .pb-envoi .pb-ligne{ border-top-color:rgba(255,255,255,.15); }
.pb-cadre .pb-envoi .pb-suivi{ background:rgba(255,255,255,.06); }
.pb-cadre .pb-envoi .pb-a.fait, .pb-cadre .pb-envoi .pb-v{ color:#8BE38F; } .pb-cadre .pb-envoi .pb-nv{ color:var(--yellow); }
.pb-env{ font-size:1.1rem; }
.pb-cadre .pb-tete .pb-vide{ font-style:italic; }
/* écarts égaux au-dessus et au-dessous du pense-bête (et même écart sur la gestion) */
body.pg-prof .hello-head{ padding-bottom:0; }
#pense-bete{ margin:22px 0 0; }
.pb-cadre{ margin:0; }
body.pg-prof .g-tabs-row, body.pg-gestion .g-tabs-row{ margin-top:22px; }
body.pg-prof .g-top:not(:has(:not([hidden]))) + .g-tabs-row{ margin-top:22px; }
body.pg-gestion .hello-head{ padding-bottom:0; }
/* « Afficher » : liste déroulante maison (couleur du niveau, remplissage au milieu, horaire) */
.fg-field{ flex:1; } .fg{ position:relative; }
.fg-btn, .fg-opt{ display:grid; grid-template-columns:minmax(0,1.3fr) auto minmax(0,1fr); align-items:center; gap:12px; width:100%; font:inherit; text-align:left; cursor:pointer; }
.fg-btn{ background:#fff; color:var(--chalk); border:none; border-radius:10px; padding:9px 34px 9px 14px; position:relative; min-height:42px; }
.fg-fl{ position:absolute; right:12px; top:50%; transform:translateY(-50%); }
.fg-liste{ position:absolute; z-index:300; left:0; right:0; top:calc(100% + 4px); background:#fff; border-radius:12px; box-shadow:0 10px 24px rgba(0,0,0,.5); max-height:420px; overflow:auto; padding:6px; }
.fg-opt{ background:none; border:none; border-left:5px solid var(--niv, transparent); border-radius:8px; padding:7px 10px; color:var(--chalk); }
.fg-opt:hover, .fg-opt.on{ background:#f1f1f1; }
.fg-nom{ display:flex; align-items:center; gap:8px; font-weight:800; color:var(--niv, var(--chalk)); filter:brightness(.8); }
.fg-mid{ text-align:center; } .fg-mid .places{ color:#fff; white-space:nowrap; }
.fg-mid .places:not(.jauge){ background:#888; }
.fg-h{ text-align:right; font-size:.85rem; color:#555; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fiche-enc .choice .t{ color:var(--chalk); }
.pb-cadre .pb-tete{ flex-wrap:nowrap; }
.pb-cadre .pb-prive, .pb-cadre .pb-tete .pb-vide, .pb-cadre .pb-plus{ white-space:nowrap; }
.pb-cadre .pb-tete b{ white-space:nowrap; }
#pense-bete{ margin-top:0; }
.fg .places{ display:inline-block; font-size:.78rem; font-weight:800; padding:2px 10px; border-radius:999px; }

/* ===== FIRE 24a ===== */
/* pense-bête « 5 » : cartes blanches à bandeau, épingle dont la pointe tombe à mi-hauteur du bandeau */
#pense-bete{ margin:22px 0 0; }
.pb5{ color:#333; }
.pb5-duo{ display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:stretch; }
.pb5-carte{ position:relative; display:flex; flex-direction:column; background:#fff; border-radius:14px; box-shadow:0 6px 14px rgba(0,0,0,.4); }
.pb5-pin{ position:absolute; top:-6px; left:10px; font-size:1.65rem; line-height:1; transform:rotate(-18deg); filter:drop-shadow(1px 3px 2px rgba(0,0,0,.45)); z-index:2; pointer-events:none; }
.pb5-bar{ display:flex; align-items:center; gap:8px; min-height:42px; padding:0 10px 0 46px; border-radius:14px 14px 0 0; color:#fff; font-family:'Baloo 2', sans-serif; font-weight:800; font-size:1rem; }
.pb5-pro .pb5-bar{ background:#8E44AD; } .pb5-perso .pb5-bar{ background:#1F8FA0; }
.pb5-tt{ font-weight:400; } .pb5-tt b{ font-weight:800; }
.pb5-bt{ display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; margin-left:auto; }
.pb5-add, .pb5-okh{ font:inherit; font-family:'Nunito Sans', sans-serif; font-size:.78rem; font-weight:800; border-radius:999px; padding:3px 12px; cursor:pointer; }
.pb5-add{ background:transparent; border:2px solid #fff; color:#fff; }
.pb5-okh{ background:#fff; border:2px solid #fff; color:#8E44AD; } .pb5-okh:disabled{ opacity:.5; cursor:not-allowed; }
.pb5-in{ flex:1; padding:8px 14px 10px; }
.pb5-de{ display:block; font-size:.78rem; opacity:.65; margin-top:4px; }
.pb5-l{ display:flex; align-items:center; gap:8px; margin:3px 0; font-size:.93rem; cursor:pointer; }
.pb5-l.fait span{ text-decoration:line-through; opacity:.55; }
.pb5-vide{ font-style:italic; opacity:.6; }
.pb5-in.edition .pb5-txt{ flex:1; min-width:0; border:none; border-bottom:1px dashed #999; padding:2px 4px; font:inherit; font-size:.93rem; background:transparent; color:#333; }
.pb5-x{ margin-left:auto; background:none; border:none; color:#c0392b; font-weight:800; cursor:pointer; padding:0 4px; }
.pb5-form{ display:flex; gap:8px; margin-top:6px; } .pb5-form[hidden]{ display:none; }
.pb5-form input{ flex:1; min-width:0; border:1px solid #bbb; border-radius:8px; padding:5px 8px; font:inherit; }
.pb5-env{ position:relative; margin-top:20px; border:2px solid #F78E00; border-left-width:8px; border-radius:12px; color:#fff; padding:8px 14px; }
.pb5-env summary{ cursor:pointer; font-weight:800; font-size:.92rem; padding-left:34px; list-style-position:inside; }
.pb5-env summary .pb5-pin{ top:-14px; left:4px; }
.pb5-f1{ display:flex; gap:10px; align-items:center; margin:10px 0 6px; }
.pb5-f1 input{ flex:1; min-width:0; border:none; border-radius:8px; padding:7px 10px; font:inherit; font-size:.88rem; }
.pb5-f1 select{ width:190px; border:none; border-radius:8px; padding:7px 8px; font:inherit; font-size:.88rem; }
.pb5-go{ background:#F78E00; color:#fff; border:none; border-radius:999px; padding:6px 18px; font:inherit; font-weight:800; cursor:pointer; }
.pb5-suivi{ display:flex; flex-wrap:wrap; gap:4px 12px; align-items:center; border-top:1px dashed rgba(255,255,255,.25); padding:7px 0 3px; font-size:.88rem; }
.pb5-tag{ background:#3a3a3a; border-radius:999px; padding:0 8px; font-size:.72rem; font-weight:800; } .pb5-tag.ok{ background:#3BAA3B; }
.pb5-a{ opacity:.75; } .pb5-a.fait{ color:#8BE38F; opacity:1; }
.pb5-suivi .pb5-x{ color:#ff8a80; }
@media (max-width:760px){ .pb5-duo{ grid-template-columns:1fr; } .pb5-f1{ flex-wrap:wrap; } .pb5-f1 select{ width:auto; flex:1; } }
/* page prof : écart ×3 entre le pense-bête et les onglets */
body.pg-prof .g-tabs-row{ margin-top:54px; }
/* fenêtre paiement : écarts ×3 autour des montants */
.pay-montants{ margin:54px 0; }
/* gestion : onglets + « Afficher la page de… » sur une seule ligne */
body.pg-gestion .g-tabs-row{ flex-wrap:nowrap; gap:8px; }
body.pg-gestion .g-tabs{ flex-wrap:nowrap; gap:6px; }
body.pg-gestion .g-tab{ padding:7px 13px; white-space:nowrap; }
body.pg-gestion .voir-btn{ margin-left:auto; flex-shrink:0; }
@media (max-width:1100px){ body.pg-gestion .g-tabs-row, body.pg-gestion .g-tabs{ flex-wrap:wrap; } }
/* menu des profs : 👑 | photo | prénom | matière, alignés */
.menu-profs{ min-width:280px; }
.menu-profs button{ display:grid; grid-template-columns:22px 32px 1fr auto; align-items:center; gap:8px; }
.menu-profs .mp-c{ text-align:center; font-size:1rem; }
.menu-profs .mp-n{ text-align:left; }
.menu-profs button .mp-m{ margin-left:0; text-align:left; min-width:70px; opacity:.75; font-size:.82rem; }
.mp-vide{ margin:6px 10px; opacity:.7; }
/* bandeau rouge : contenu aligné sur la largeur des encadrés */
.bandeau-autre{ display:block; padding:8px 0; }
.bandeau-autre .ba-in{ width:var(--panel-w, min(1100px, calc(100% - 40px))); margin:0 auto; display:flex; align-items:center; gap:12px; }
.bandeau-autre .ba-txt{ display:flex; align-items:center; gap:8px; min-width:0; white-space:nowrap; }
.bandeau-autre .ba-page{ max-width:240px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bandeau-autre .ba-btns{ margin-left:auto; flex-shrink:0; }
@media (max-width:760px){ .bandeau-autre .ba-in{ flex-wrap:wrap; } .bandeau-autre .ba-txt{ white-space:normal; } }
/* fenêtre d'export */
.exp-ov .unlock-box{ max-width:640px; max-height:92vh; overflow:auto; }
.exp-radio{ display:flex; flex-direction:column; gap:6px; } .exp-radio .choice{ margin:0; }
.exp-t{ width:100%; border-collapse:collapse; }
.exp-t td{ padding:6px 8px; border-bottom:1px dashed rgba(255,255,255,.15); }
.exp-t td:not(:first-child){ width:70px; white-space:nowrap; } .exp-t label{ cursor:pointer; }

/* Mes élèves : anniversaire, âge, troubles (26/10) */
.a-compl{ font-size:.78rem; font-style:italic; opacity:.7; }
.t-eleves td.tr-c{ text-align:center; } .t-eleves th:nth-child(5){ text-align:center; }
.tr-oui, .tr-non{ display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; font-weight:900; font-size:.95rem; line-height:1; cursor:help; }
.tr-oui{ background:#E02013; color:#fff; border:none; font-family:inherit; padding:0; }
.tr-oui:hover, .tr-oui:focus{ outline:2px solid #fff; outline-offset:1px; }
.tr-non{ background:#27AE60; color:#fff; }
.ma-bulle{ position:fixed; z-index:10000; max-width:260px; padding:8px 12px; border-radius:10px; background:#fff; color:#222; font-size:.85rem; font-weight:600; line-height:1.35; box-shadow:0 6px 18px rgba(0,0,0,.35); pointer-events:none; }

/* fiche prof : onglets Général / Liste, photos en cercles (26/10) */
.fp-tabs{ display:flex; gap:6px; flex-wrap:wrap; margin:6px 0 14px; border-bottom:2px solid rgba(255,255,255,.25); }
.fp-tab{ background:none; border:none; color:#fff; font:inherit; font-weight:800; padding:8px 14px; border-radius:10px 10px 0 0; cursor:pointer; opacity:.7; }
.fp-tab.on{ background:var(--yellow); color:#222; opacity:1; } .fp-tab:not(.on):hover{ opacity:1; color:var(--yellow); }
.fp-photos{ display:flex; gap:34px; justify-content:center; flex-wrap:wrap; margin:10px 0 14px; }
.fp-photo{ display:flex; flex-direction:column; align-items:center; gap:2px; text-align:center; }
.fp-photo small{ font-size:.78rem; opacity:.8; } .fp-photo .fp-nom{ font-family:monospace; font-size:.72rem; opacity:.6; }
.fp-cercle{ position:relative; width:112px; height:112px; border-radius:50%; border:3px dashed rgba(255,255,255,.6); background:rgba(255,255,255,.08); color:#fff; font-size:2.4rem; font-weight:300; cursor:pointer; padding:0; overflow:visible; margin-bottom:6px; }
.fp-cercle img{ width:100%; height:100%; object-fit:cover; border-radius:50%; display:block; }
.fp-cercle:has(img){ border-style:solid; border-color:var(--yellow); }
.fp-cercle:hover{ border-color:var(--yellow); transform:scale(1.04); }
.fp-chg{ position:absolute; right:-2px; bottom:-2px; width:32px; height:32px; border-radius:50%; background:var(--yellow); font-size:1rem; display:flex; align-items:center; justify-content:center; box-shadow:0 2px 6px rgba(0,0,0,.4); }
.ck-ov textarea{ width:100%; }
