/* === Groupes de révision (groupes.js) : mêmes briques que les défis (cartes.css), couleurs calmes, lisible en clair et en sombre === */
/* --gr / --gr2 : fonds avec texte blanc (contraste ≥ 4.5:1) ; --gr-a : traits, icônes et barres, plus clair en sombre */
:root{--gr:#2B8044;--gr-d:#1D5E31;--gr2:#1A7A88;--gr-a:#2F8A4A}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--gr-a:#6DBF59}}
:root[data-theme="dark"]{--gr-a:#6DBF59}
/* entrée dans Réviser */
.rv-groupes{position:relative;display:flex;align-items:center;gap:14px;width:100%;text-align:left;border:2px solid color-mix(in srgb,var(--gr) 45%,var(--line));border-radius:22px;padding:14px 16px;margin:0 0 16px;background:color-mix(in srgb,var(--gr) 9%,var(--card));color:var(--ink);font:inherit;cursor:pointer;box-shadow:0 4px 0 color-mix(in srgb,var(--gr) 30%,var(--line))}
.rv-groupes .i{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:var(--gr);color:#fff;font-size:1.4rem;flex:none}
.rv-groupes .tx{flex:1;min-width:0}.rv-groupes b{display:block;font-family:var(--display);font-size:1.08rem}.rv-groupes small{display:block;color:var(--soft);line-height:1.35;margin-top:2px}
.rv-groupes .go{color:var(--soft);flex:none}.rv-groupes:active{transform:translateY(3px);box-shadow:none}
.gr-live-dot{position:absolute;top:10px;right:12px;width:12px;height:12px;border-radius:50%;background:var(--gr);box-shadow:0 0 0 0 color-mix(in srgb,var(--gr) 60%,transparent);animation:grPouls 1.6s ease-out infinite}
@keyframes grPouls{to{box-shadow:0 0 0 10px transparent}}
/* fenêtre */
.gr .cm-corps{padding-bottom:96px}
.gr-hero .f svg{width:84px;height:84px}
.gr-aide{color:var(--soft);line-height:1.45;margin:6px 2px 14px;font-size:.94rem}.gr-aide.c{text-align:center}
.gr-demo{background:color-mix(in srgb,var(--sky,#2471AE) 10%,var(--card));border:2px solid color-mix(in srgb,var(--sky,#2471AE) 35%,var(--line));border-radius:16px;padding:12px 14px;margin:0 0 18px;line-height:1.45;color:var(--ink)}
.gr-demo-tag{display:inline-block;margin-left:8px;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--soft);border:1.5px solid var(--line);border-radius:999px;padding:1px 8px;vertical-align:2px}
.gr-etapes{list-style:none;padding:0;margin:0 0 22px;display:grid;gap:12px}
.gr-etapes li{display:flex;align-items:center;gap:12px;background:var(--card);border:2px solid var(--line);border-radius:16px;padding:12px 14px;line-height:1.4;color:var(--ink)}
.gr-etapes li i{flex:none;width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--gr-a) 15%,var(--card));color:var(--gr-a);font-size:1.1rem}
.gr-gros{display:flex;align-items:center;gap:14px;width:100%;text-align:left;border:0;border-radius:22px;padding:16px;color:#fff;font:inherit;cursor:pointer;margin:0 0 22px;background:linear-gradient(135deg,var(--gr),var(--gr2));box-shadow:0 5px 0 var(--gr-d)}
.gr-gros .i{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.2);font-size:1.5rem;flex:none}
.gr-gros .tx{min-width:0}.gr-gros b{display:block;font-family:var(--display);font-size:1.15rem}.gr-gros small{opacity:.95;line-height:1.35;display:block}
.gr-gros:active{transform:translateY(3px);box-shadow:0 2px 0 var(--gr-d)}
.gr-rej{margin-top:6px}.gr-rej .df-code-in input{letter-spacing:.14em;font-size:1.25rem;text-transform:uppercase}
.gr-principal:disabled{opacity:.5}
/* mes groupes */
.gr-liste{display:grid;gap:14px;margin:0 0 22px}
.gr-carte{position:relative;display:grid;gap:10px;width:100%;text-align:left;font:inherit;color:var(--ink);background:var(--card);border:2px solid var(--line);border-radius:20px;padding:14px 44px 14px 16px;cursor:pointer;box-shadow:0 4px 0 var(--line)}
.gr-carte .go{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--soft)}
.gr-c-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.gr-c-h b{font-family:var(--display);font-size:1.1rem}
.gr-live,.gr-ok{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:800;border-radius:999px;padding:3px 10px}
.gr-live{background:color-mix(in srgb,var(--gr) 16%,var(--card));color:var(--ok-t)}.gr-live i{width:8px;height:8px;border-radius:50%;background:var(--gr-a);animation:grPouls 1.6s ease-out infinite}
.gr-ok{background:color-mix(in srgb,#E0A100 18%,var(--card));color:var(--warn-t)}
.gr-pile{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.gr-pile .gr-av{margin-right:-10px;border:2px solid var(--card)}.gr-pile small{margin-left:16px;color:var(--soft);font-weight:700}
.gr-c-obj{display:grid;gap:6px;font-size:.9rem;color:var(--soft);font-weight:700}.gr-c-obj .l{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 10px}.gr-c-obj .l b{color:var(--ink)}
.gr-bar{display:block;height:8px;border-radius:8px;background:var(--line);overflow:hidden;min-width:40px}.gr-bar i{display:block;height:100%;border-radius:8px;background:var(--gr-a);transition:width .4s}
.gr-bar.gros{height:14px;border-radius:14px}.gr-bar.gros i{border-radius:14px}
/* créer */
.gr-noms{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin:0 0 20px}
.gr-noms button{border:2px solid var(--line);background:var(--card);color:var(--ink);border-radius:14px;padding:12px 10px;font:inherit;font-weight:700;line-height:1.25;cursor:pointer;min-height:52px}
.gr-noms button.on{border-color:var(--gr-a);background:color-mix(in srgb,var(--gr-a) 16%,var(--card));box-shadow:0 0 0 3px color-mix(in srgb,var(--gr-a) 25%,transparent)}
.gr-noms.petits{grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}
.gr-seg{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 14px}
.gr-seg button{border:2px solid var(--line);background:var(--card);color:var(--ink);border-radius:14px;padding:12px 8px;font:inherit;cursor:pointer}.gr-seg button.on{border-color:var(--gr-a);background:color-mix(in srgb,var(--gr-a) 16%,var(--card));box-shadow:0 0 0 3px color-mix(in srgb,var(--gr-a) 25%,transparent)}
/* un groupe */
.gr-tete{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:4px 0 18px}.gr-tete h2{font-family:var(--display);font-size:1.45rem;margin:0;color:var(--ink);overflow-wrap:anywhere}
.gr-tete .gr-pile{padding-right:10px}
.gr-nouveau{background:color-mix(in srgb,var(--gr) 10%,var(--card));border:2px solid color-mix(in srgb,var(--gr) 40%,var(--line));border-radius:16px;padding:12px 14px;line-height:1.45;margin:0 0 14px;color:var(--ink)}
.gr-invite{text-align:center;background:var(--card);border:2px dashed color-mix(in srgb,var(--gr) 50%,var(--line));border-radius:20px;padding:14px;margin:0 0 22px}
.gr-invite>small{display:block;color:var(--soft);font-weight:800}
.gr-code{display:block;margin:6px auto 12px;font-family:var(--display);font-size:clamp(1.5rem,8vw,2rem);letter-spacing:.12em;color:var(--ink);background:none;border:0;cursor:pointer;white-space:nowrap}
.gr-partage{margin:0 0 4px!important}
.gr-direct{display:grid;gap:6px;background:color-mix(in srgb,var(--gr) 10%,var(--card));border:2px solid var(--gr-a);border-radius:20px;padding:14px 16px;margin:0 0 22px}
.gr-direct b{font-family:var(--display);font-size:1.1rem;color:var(--ink)}.gr-direct small{color:var(--soft)}.gr-direct .btn{margin:8px 0 0}.gr-direct .gr-live{justify-self:start}
.gr-bloc{margin:0 0 26px}.gr-bloc .rv-h3{display:flex;align-items:center;gap:8px}
.rv-h3.ok i{color:var(--ok-t)}.rv-h3.ko i{color:var(--ko-t)}
.gr-obj-phrase{line-height:1.45;margin:0 0 12px;color:var(--ink)}
.gr-coll{display:grid;gap:8px;background:var(--card);border:2px solid var(--line);border-radius:18px;padding:14px;margin:0 0 14px;color:var(--ink)}
.gr-coll small{color:var(--soft);line-height:1.4}.gr-coll .gr-serie{color:var(--warn-t);font-weight:800}
.gr-badge{display:flex;align-items:center;gap:12px;background:color-mix(in srgb,#E0A100 14%,var(--card));border:2px solid color-mix(in srgb,#E0A100 50%,var(--line));border-radius:18px;padding:10px 14px;margin:0 0 14px;color:var(--ink)}
.gr-badge .m svg{width:52px;height:52px}.gr-badge span{flex:1;min-width:0}.gr-badge b{display:block;font-family:var(--display)}.gr-badge small{color:var(--soft)}.gr-badge>i{font-size:1.6rem;color:#C98F00;flex:none}
.gr-membres,.gr-mlist,.gr-hist,.gr-pts{list-style:none;padding:0;margin:0 0 10px;display:grid;gap:10px}
.gr-membres li{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(48px,30%) auto;align-items:center;gap:10px}
.gr-membres .nm,.gr-mlist .nm{font-weight:700;color:var(--ink);overflow-wrap:anywhere;min-width:0}.gr-membres small,.gr-mlist small{color:var(--soft);font-weight:600}
.gr-fait{font-weight:800;font-size:.85rem;color:var(--soft);min-width:34px;text-align:right}.gr-fait.ok{color:var(--ok-t);font-size:1.1rem}
.gr-mlist li{display:flex;align-items:center;gap:10px;background:var(--card);border:2px solid var(--line);border-radius:999px;padding:4px 6px 4px 4px}.gr-mlist .nm{flex:1}
.gr-tag{display:inline-block;font-size:.72rem!important;border:1.5px solid var(--line);border-radius:999px;padding:0 8px;margin-left:4px}
.gr-mlist .df-retire{flex:none}
.gr-defis{display:grid;gap:14px;margin:0 0 14px}
.gr-defi{background:var(--card);border:2px solid var(--line);border-radius:18px;padding:14px}
.gr-defi .h b{display:block;font-family:var(--display);color:var(--ink);overflow-wrap:anywhere}.gr-defi .h small{color:var(--soft)}
.gr-defi .btn{margin:12px 0 0}
.gr-qui{display:grid;gap:8px;margin-top:12px}
.gr-q{display:flex;align-items:center;gap:10px;font-size:.95rem;min-width:0}
.gr-q small{flex:1;min-width:0;font-size:1em;color:var(--ink);font-weight:700;overflow-wrap:anywhere;line-height:1.3}.gr-q b{flex:none;color:var(--soft);font-weight:700}
.gr-q.fait b{color:var(--ok-t);font-weight:800}
.gr-q .gr-av{width:28px;height:28px}
.gr-hist li{display:flex;align-items:center;gap:12px;background:var(--card);border:2px solid var(--line);border-radius:16px;padding:10px 12px}
.gr-hist .d{flex:none;font-weight:800;color:var(--soft);font-size:.85rem;min-width:62px}.gr-hist .tx{min-width:0}.gr-hist b{display:block;color:var(--ink);overflow-wrap:anywhere}.gr-hist small{color:var(--soft)}
.gr-fin{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;margin:10px 0 0}
.gr-danger{color:var(--ko-t)!important}
.gr-danger-b{background:var(--ko-t)!important;border-color:var(--ko-t)!important;color:#fff!important}
.gr-conf p{line-height:1.5}
/* choix de la fiche */
.gr-srcs{display:grid;gap:10px;margin-top:14px}
.gr-src .i{background:var(--c)!important;color:#fff!important;box-shadow:0 3px 0 color-mix(in srgb,var(--c) 70%,#000)}
.gr-src .tx{min-width:0}.gr-src b{display:block;-webkit-line-clamp:unset;overflow:visible;overflow-wrap:anywhere}
/* séance en direct */
.gr-s-top{text-align:center;margin:0 0 14px}.gr-s-top small{display:block;color:var(--soft);font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:.72rem}.gr-s-top b{font-family:var(--display);font-size:1.1rem;color:var(--ink);overflow-wrap:anywhere}
.gr-etape{text-align:center;margin:6px 0 18px}.gr-etape .f svg{width:84px;height:84px}.gr-etape h3{font-family:var(--display);font-size:1.35rem;margin:6px 0;color:var(--ink)}.gr-etape p{color:var(--soft);line-height:1.45;margin:0}
.gr-step{display:flex;justify-content:center;gap:10px;margin:0 0 14px}
.gr-step span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:.9rem;border:2px solid var(--line);color:var(--soft);background:var(--card)}
.gr-step span.on{border-color:var(--gr);background:var(--gr);color:#fff}.gr-step span.ok{border-color:var(--gr-a);color:var(--gr-a)}
.gr-pres{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 6px}
.gr-p{position:relative;display:flex;align-items:center;gap:6px;background:var(--card);border:2px solid var(--line);border-radius:999px;padding:3px 10px 3px 3px;font-weight:700;max-width:100%}
.gr-p small{color:var(--ink);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:17ch}
.gr-p.ok{border-color:color-mix(in srgb,var(--gr-a) 60%,var(--line))}.gr-p.absent{opacity:.45}
.gr-pk{color:var(--ok-t);font-size:.95rem}
.gr-pres-z{margin-top:18px}
.gr-rappel{list-style:none;counter-reset:r;padding:0;margin:0 0 20px;display:grid;gap:12px}
.gr-rappel li{counter-increment:r;position:relative;background:var(--card);border:2px solid var(--line);border-radius:16px;padding:12px 14px 12px 50px;line-height:1.5;color:var(--ink);overflow-wrap:anywhere}
.gr-rappel li::before{content:counter(r);position:absolute;left:12px;top:12px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--gr) 16%,var(--card));color:var(--ok-t);font-weight:800;font-size:.9rem}
.gr-rappel small{display:block;color:var(--soft);font-weight:800;font-size:.78rem;margin-bottom:2px}
.gr-exo .exo-q,.gr-test .exo-q{font-family:var(--display);font-size:1.12rem;font-weight:800;color:var(--ink);overflow-wrap:anywhere}
.gr-exo .exo-trous{overflow-wrap:anywhere}.gr .exo-bank button.pris{opacity:.4}.gr-exo .exo-ch.two button{text-align:center;justify-content:center}
.gr-trous-rep{display:block;margin-top:8px;font-weight:600;line-height:1.6}.gr-trous-rep b{color:var(--ok-t);font-weight:800}.gr-exo .tr-in{width:8ch;max-width:40vw;margin:0 4px}
.gr-prop{background:var(--card);border:2px solid var(--line);border-radius:16px;padding:12px 14px;margin:0 0 14px;text-align:center}.gr-prop small{display:block;color:var(--soft);font-weight:800}.gr-prop b{font-size:1.1rem;color:var(--ink)}
.gr-envoye{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;background:color-mix(in srgb,var(--gr) 9%,var(--card));border:2px solid color-mix(in srgb,var(--gr) 35%,var(--line));border-radius:18px;padding:16px;margin:12px 0}
.gr-envoye .f svg{width:60px;height:60px}.gr-envoye b{font-family:var(--display);font-size:1.1rem;color:var(--ink)}.gr-envoye small{color:var(--soft);line-height:1.4}
.gr-compte{white-space:nowrap}
.gr-rev .exo-fb{margin:0 0 14px}.gr-rev .exo-face svg{width:46px;height:46px}.gr-rev .exo-q.petit{font-size:1rem;font-weight:700;color:var(--ink);background:var(--card);border:2px solid var(--line);border-radius:16px;padding:12px 14px;margin:0 0 12px;line-height:1.45;overflow-wrap:anywhere}
.gr-rev .exo-q small{color:var(--soft)}
.gr-expl{display:flex;gap:8px;align-items:flex-start;line-height:1.45}.gr-expl i{flex:none;color:#C98F00;margin-top:3px}
.gr-trouve{display:grid;gap:8px;margin:14px 0 18px;color:var(--ink)}.gr-trouve>small{color:var(--soft)}
.gr-tq{margin:0 0 22px}.gr-tq .exo-q{position:relative;padding-left:36px}.gr-num{position:absolute;left:0;top:1px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:color-mix(in srgb,var(--gr-a) 18%,var(--card));color:var(--ok-t);font-size:.85rem}
.gr-pts li{display:flex;gap:10px;align-items:flex-start;background:var(--card);border:2px solid var(--line);border-radius:16px;padding:10px 12px;line-height:1.45;color:var(--ink);overflow-wrap:anywhere}
.gr-pts li>i{flex:none;margin-top:3px}.gr-pts.ok li>i{color:var(--ok-t)}.gr-pts.ko li{background:var(--ko-bg);border-color:color-mix(in srgb,var(--ko) 45%,var(--line))}.gr-pts.ko li>i{color:var(--ko-t)}
.gr-pts span{min-width:0}.gr-pts small{display:block;color:var(--ink);margin-top:4px}
.gr-perso{background:var(--card);border:2px solid var(--line);border-radius:18px;padding:14px 16px}.gr-perso .rv-h3{margin-top:0}.gr-perso p{margin:0 0 8px;color:var(--ink);line-height:1.45}.gr-perso .gr-aide{display:block;margin:12px 0 0}
.gr-corr{line-height:1.45;padding-top:8px;border-top:2px solid var(--line)}
.gr-defi-host{margin-top:6px}
.gr .exo .gr-principal,.gr .gr-test .gr-principal,.gr .exo .exo-valide,.gr .exo .exo-ok{margin-top:24px!important}.gr-pres-z{padding-top:4px}
.gr .df-av.gr-av{width:34px;height:34px}
@media (max-width:360px){.gr-membres li{grid-template-columns:auto minmax(0,1fr) auto}.gr-membres .gr-bar{grid-column:2/4;grid-row:2}.gr-noms{grid-template-columns:1fr 1fr}.gr-tete h2{font-size:1.25rem}}
/* Barre du haut collante : le titre, le bouton des réactions (séance) et la croix restent visibles quand on fait défiler */
.gr .cm-top{position:sticky;top:calc(-12px - env(safe-area-inset-top));z-index:83;background:var(--paper);margin:calc(-12px - env(safe-area-inset-top)) -16px 14px;padding:calc(12px + env(safe-area-inset-top)) 16px 10px}
.gr .cm-top>b{flex:1;min-width:0}
/* Séance de groupe : bouton rond des réactions flottant en bas à droite (cartes.css), menu vers le haut ; le contenu garde la place du bouton en bas */
.cm.gr.df-avec-reacs{padding-bottom:calc(100px + env(safe-area-inset-bottom))}
/* bulles des amis : en haut à droite, sous la barre du haut (elles ne passent pas sur les tuiles ni sur « Valider ») */
.gr .df-bulles{inset:calc(70px + env(safe-area-inset-top)) 16px auto auto;align-items:flex-end;max-width:calc(100% - 32px)}
.gr .df-bulle{left:auto!important;transform-origin:right center}
/* la bulle a un fond clair dans les deux thèmes : texte foncé, sinon il disparaît en sombre */
.gr .df-bulle b{color:#2B2A3A}.gr .df-bulle small{color:#5C5770}
.gr .df-bulle.sort{transform:translateX(30px) scale(.8)!important}
/* zones de toucher ≥ 44 px */
.gr .rv-back{min-height:44px}
.gr .linkbtn2{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 6px}
.gr .gr-mlist .df-retire{width:44px;height:44px;margin:-8px -4px -8px 0;background:radial-gradient(circle,var(--line) 0 13px,transparent 14px);font-size:.75rem}
.gr-mlist li{min-height:44px}
#grObj{margin-left:-6px}
.gr #grForce{display:flex;margin:12px auto 0}
.gr-pres-t{display:block;margin:0 0 8px;color:var(--soft);font-weight:800;font-size:.85rem}
.gr-salon .gr-pres{margin-bottom:22px}
/* défi du groupe (lecteur d'exercices) : espace avant « Suivant », boutons de fin alignés */
.gr .exo .exo-next{margin-top:14px!important}
.gr .exo-acts{align-items:center}.gr .exo-acts .btn{margin-top:0!important;margin-bottom:0!important}
/* Texte à trous en séance : la case s'élargit au mot placé (« dénominateur » n'est plus coupé) */
.gr-exo .tr-in{field-sizing:content;width:auto;min-width:8ch;max-width:100%}

/* « Mes classes » (élève) */
.rv-classes{--gr:#3B7BC8}
.mc-pastille{flex:none;min-width:26px;height:26px;padding:0 8px;border-radius:999px;background:#C9443A;color:#fff;font-weight:900;font-size:.85rem;display:grid;place-items:center}
html.mc-ouvert{overflow:hidden}
.mc-fond{position:fixed;inset:0;z-index:1100;background:color-mix(in srgb,#000 45%,transparent);display:flex;align-items:flex-end;justify-content:center}
.mc-feuille{width:100%;max-width:560px;max-height:92vh;overflow:auto;background:var(--bg,var(--card));border-radius:26px 26px 0 0;padding:18px 16px calc(22px + env(safe-area-inset-bottom))}
@media (min-width:600px){.mc-fond{align-items:center}.mc-feuille{border-radius:26px}}
.mc-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.mc-h h2{margin:0;display:flex;align-items:center;gap:8px;font-size:1.3rem}.mc-h h2 i{width:24px;height:24px;color:#3B7BC8}
.mc-x{width:42px;height:42px;border-radius:14px;border:2px solid var(--line);background:var(--card);color:var(--ink);display:grid;place-items:center;cursor:pointer}.mc-x i{width:20px;height:20px}
.mc-cl{margin-bottom:16px;padding:14px;border-radius:20px;background:var(--card);border:2px solid var(--line)}
.mc-cl-h{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.mc-cl-h b{font-size:1.15rem}.mc-cl-h small{color:var(--soft)}
.mc-dv{display:grid;gap:8px}
.mc-d{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px;border-radius:16px;border:2px solid var(--line);border-bottom-width:4px;background:var(--card);color:var(--ink);font:inherit;cursor:pointer}
.mc-d-ic{flex:none;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,#7B3FD1 14%,var(--card));color:#7B3FD1}
.mc-d-ic.fiche{background:color-mix(in srgb,#2F8540 14%,var(--card));color:#2F8540}.mc-d-ic i{width:20px;height:20px}
.mc-d.fait .mc-d-ic{background:var(--ogre);color:#fff}
.mc-d-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.mc-d-t small{color:var(--soft)}
.mc-d-s{flex:none;font-weight:900;font-size:.85rem;color:#C9443A}.mc-d.fait .mc-d-s{color:var(--ogre)}
.mc-quitter{margin-top:10px;border:0;background:none;color:var(--soft);font:inherit;font-size:.82rem;text-decoration:underline;cursor:pointer}
.mc-intro,.mc-aide{color:var(--soft);line-height:1.45}
.mc-rej{padding:16px;border-radius:20px;background:color-mix(in srgb,#3B7BC8 9%,var(--card));border:2px solid color-mix(in srgb,#3B7BC8 35%,var(--line))}
.mc-rej b{font-size:1.05rem}.mc-rej p{margin:6px 0 12px;color:var(--soft);line-height:1.4}
.mc-code{display:flex;gap:10px}
.mc-code input{flex:1;min-width:0;font:inherit;font-size:1.5rem;font-weight:900;letter-spacing:.14em;text-align:center;text-transform:uppercase;padding:10px;border-radius:14px;border:2px solid var(--line);background:var(--card);color:var(--ink)}
.mc-code .btn{margin:0;width:auto;padding:0 18px}
.mc-err{color:#C9443A;font-weight:700;min-height:1em;margin:8px 0 0}
.mc-ok{margin:0 0 12px;padding:10px 14px;border-radius:14px;background:color-mix(in srgb,var(--ogre) 14%,var(--card));color:var(--ink);font-weight:800}

/* devoirs et cours des professeurs Grignon, fondus dans l'appli */
.h-prof{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-weight:800;color:#3B7BC8;background:color-mix(in srgb,#3B7BC8 12%,var(--card));padding:2px 8px;border-radius:999px;white-space:nowrap}
.h-prof i{width:13px;height:13px}
.mc-qui{display:inline-flex;align-items:center;gap:5px;color:#3B7BC8;font-weight:800}.mc-qui i{width:15px;height:15px}
.mc-h>div{min-width:0}.mc-h h2{display:block;margin-top:4px}
.mc-consigne{white-space:pre-wrap;line-height:1.5;margin:0 0 12px;padding:12px 14px;border-radius:16px;background:var(--card);border:2px solid var(--line)}
.mc-docs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.mc-doc{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:10px 12px;border-radius:14px;border:2px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-weight:700;cursor:pointer}
.mc-doc span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:230px}.mc-doc i{width:18px;height:18px;color:var(--ogre);flex:none}
.mc-acts{display:grid;gap:10px}.mc-acts .btn{margin:0;width:100%}
.mc-score{text-align:center;font-weight:800;color:var(--ogre)}
.mc-toast{max-width:340px}
.mc-moi{margin:16px 0;padding:16px;border-radius:22px;background:var(--card);border:2px solid var(--line)}
.mc-moi h3{margin:0 0 10px;display:flex;align-items:center;gap:8px;font-size:1.05rem}.mc-moi h3 i{width:20px;height:20px;color:#3B7BC8}
.mc-profs{display:grid;gap:8px;margin-bottom:12px}
.mc-prof{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:color-mix(in srgb,#3B7BC8 8%,var(--card))}
.mc-prof-t{flex:1;min-width:0;display:flex;flex-direction:column}.mc-prof-t small{color:var(--soft)}
.mc-deux{display:grid;gap:10px}@media (min-width:520px){.mc-deux{grid-template-columns:1fr 1fr}}
.mc-bloc{padding:12px;border-radius:16px;border:2px dashed var(--line)}
.mc-bloc .mc-code{margin-top:8px}.mc-bloc .mc-code input{font-size:1.2rem}
.mc-moncode{margin-top:6px;border:2px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-weight:800;padding:8px 14px;border-radius:999px;cursor:pointer}
.mc-code-aff{display:block;margin-top:6px;font-size:1.6rem;letter-spacing:.14em;color:var(--ink)}
.mc-feuille,.mc-moi,.mc-bloc{box-sizing:border-box}
.mc-deux{grid-template-columns:minmax(0,1fr)}@media (min-width:560px){.mc-deux{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.mc-bloc{min-width:0}.mc-code{min-width:0}.mc-code input{width:100%;min-width:0;box-sizing:border-box}.mc-code .btn{flex:none}

/* rappels la veille (rappels.js) */
.rp-carte{display:flex;gap:12px;align-items:flex-start;margin:12px 0;padding:14px;border-radius:20px;background:color-mix(in srgb,#E3A21A 12%,var(--card));border:2px solid color-mix(in srgb,#E3A21A 40%,var(--line))}
.rp-ic{flex:none;width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#E3A21A;color:#fff}.rp-ic.ok{background:var(--ogre)}.rp-ic i{width:22px;height:22px}
.rp-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.rp-tx small{color:var(--soft);line-height:1.4}
.rp-b{display:flex;gap:10px;align-items:center;margin-top:6px;flex-wrap:wrap}.rp-b .btn{margin:0;width:auto;padding:10px 16px}
.rp-non{border:0;background:none;color:var(--soft);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}
.rp-err{margin:4px 0 0;color:#C9443A;font-weight:700;font-size:.85rem;min-height:0}

/* PWA : installer, hors connexion */
.pw-inst{margin-top:14px;width:100%}.pw-inst i{width:18px;height:18px}
.pw-etapes{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.pw-etapes li{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:16px;background:var(--card);border:2px solid var(--line);line-height:1.45}
.pw-etapes .n{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--ogre);color:#fff;font-weight:900}
.pw-hors{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom));z-index:1200;display:flex;align-items:center;gap:8px;max-width:calc(100% - 32px);padding:10px 16px;border-radius:999px;background:#2B2A3A;color:#fff;font-weight:700;font-size:.88rem;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.pw-hors i{width:16px;height:16px;flex:none}

/* figures découpées dans les documents du professeur (fiches préparées par Grignon) */
.gimg{margin:4px 0 0}
.gimg-b{display:block;width:100%;min-height:140px;padding:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;cursor:zoom-in}
.gimg-b img{display:block;width:100%;height:auto}
.gimg-b img:not([src]){visibility:hidden}
.gimg.ko{display:none}
.gimg figcaption{margin-top:8px;text-align:center;font-size:.85rem;color:var(--soft);line-height:1.4}
.gimg-plein{position:fixed;inset:0;z-index:1000;background:rgba(10,10,20,.9);display:flex;align-items:center;justify-content:center;padding:max(64px,env(safe-area-inset-top)) 12px max(16px,env(safe-area-inset-bottom))}
.gimg-plein-in{max-width:100%;max-height:100%;overflow:auto;-webkit-overflow-scrolling:touch;border-radius:12px}
.gimg-plein img{display:block;max-width:100%;height:auto;background:#fff;cursor:zoom-in}
.gimg-plein img.zoom{max-width:none;width:220%;cursor:zoom-out}
