/* Digital Education v15 — classements, social, profils, alertes d'abonnement à paliers, examen blanc, contestation, journal des codes */

/* ---- alertes d'abonnement : de plus en plus vives et grosses (14 j · 7 j · 1 j · expiré) ---- */

.subwarn.l1{border-color:#d9a82b;background:rgba(217,168,43,.14);font-size:1rem}

.subwarn.l1 svg{color:#b8860b}

.subwarn.l2{border:2px solid #e8731a;background:rgba(232,115,26,.2);font-size:1.12rem;padding:.75rem 1rem}

.subwarn.l2 svg{color:#e8731a;width:24px;height:24px}

.subwarn.l3{border:3px solid #d62828;background:rgba(214,40,40,.22);font-size:1.32rem;font-weight:700;padding:.95rem 1.1rem;box-shadow:0 0 0 3px rgba(214,40,40,.15)}

.subwarn.l3 svg{color:#d62828;width:30px;height:30px}

.subwarn.l4{border:4px solid #8b0000;background:#8b0000;color:#fff;font-size:1.5rem;font-weight:800;padding:1.1rem 1.2rem}

.subwarn.l4 svg{color:#fff;width:34px;height:34px}.subwarn.l4 a{color:#fff;text-decoration:underline}

.subwarn.l3 a{color:#a00}

.err.al1{color:#a87500}.err.al2{color:#d4600a;font-weight:700;font-size:1.05em}.err.al3,.err.al4{color:#d62828;font-weight:800;font-size:1.2em}

@media (prefers-reduced-motion:no-preference){.subwarn.l3,.subwarn.l4{animation:swp 2.4s ease-in-out infinite}@keyframes swp{50%{box-shadow:0 0 0 7px rgba(214,40,40,.1)}}}

/* ---- compte en ligne (fenêtre de choix) ---- */

.acc-opt{display:flex;gap:.7rem;align-items:flex-start;text-align:left;margin:.7rem 0;padding:.7rem .9rem;border:1px solid var(--line);border-radius:10px;cursor:pointer;font:.95rem/1.4 system-ui,sans-serif}

.acc-opt input{margin-top:.25rem;accent-color:var(--acc)}

.acc-opt:has(input:checked){border-color:var(--acc);background:color-mix(in srgb,var(--acc) 8%,transparent)}

#acc-on{text-align:left}#acc-on[hidden]{display:none}

/* ---- pastilles : rang et activité ---- */

.pwho{display:inline-flex;align-items:center;gap:.35rem;vertical-align:middle}

.rk{display:inline-block;width:.9rem;height:.9rem;border-radius:50%;border:1px solid #0004;flex:none}

.rk-b{background:radial-gradient(circle at 35% 30%,#e9b27a,#a8672e)}

.rk-s{background:radial-gradient(circle at 35% 30%,#f4f6f9,#9aa4b2)}

.rk-g{background:radial-gradient(circle at 35% 30%,#ffe98a,#d19a00);box-shadow:0 0 6px #e0b00088}

.rk-k{background:radial-gradient(circle at 35% 30%,#444,#000)}

.act{display:inline-block;width:.55rem;height:.55rem;border-radius:50%;flex:none}.act-g{background:#22b04a}.act-r{background:#d62828}.act-n{background:transparent;border:1px dashed var(--line)}

a.pl{color:var(--fg);font-weight:600;text-decoration:none}a.pl:hover{color:var(--acc);text-decoration:underline}

/* ---- classements ---- */

.clb{border:1px solid var(--line);border-radius:10px;margin:.7rem 0;background:var(--card);overflow:hidden}

.clb.open{border-color:var(--acc)}

.clh{display:flex;gap:.6rem;align-items:center;width:100%;text-align:left;border:0;border-radius:0;padding:.8rem 1rem;font:700 1rem system-ui,sans-serif;background:none}

.clh:hover{background:color-mix(in srgb,var(--acc) 7%,transparent)}.clb.open .clh{background:color-mix(in srgb,var(--acc) 12%,transparent)}

.clbody{padding:.2rem 1rem 1rem}.clbody[hidden]{display:none}

.clctl{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin:.5rem 0;font:.9rem system-ui,sans-serif}

ol.clist{list-style:none;padding:0;margin:.5rem 0;max-height:34rem;overflow:auto;border:1px solid var(--line);border-radius:8px}

ol.clist li{display:flex;gap:.8rem;align-items:center;padding:.45rem .8rem;border-bottom:1px solid var(--line)}

ol.clist li:last-child{border:0}ol.clist li.me{background:color-mix(in srgb,var(--acc) 14%,transparent);font-weight:700}

.cr{min-width:3rem;font:700 .9rem system-ui,sans-serif;color:var(--mut)}.cv{margin-left:auto;font:700 .95rem system-ui,sans-serif}.cv small{font-weight:400;color:var(--mut)}

.clprecl{display:block;margin:.6rem 0;font:.9rem system-ui,sans-serif}.clprecl input{width:min(100%,28rem);display:block;margin:.3rem 0;accent-color:var(--acc)}

svg.clchart{width:100%;height:auto;max-width:46rem;display:block;margin:.4rem 0}

.clchart .bar2{fill:var(--acc)}.clchart .bme{fill:#e8731a}.clchart .gl{stroke:var(--line);stroke-width:1}.clchart .ax{fill:var(--mut);font:11px system-ui,sans-serif}

.clchart rect:hover{opacity:.75}

/* ---- social et profils ---- */

ul.clsl{list-style:none;padding:0;margin:.3rem 0}ul.clsl li{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--line)}

.pstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.7rem;margin:1rem 0}

.pstats div{border:1px solid var(--line);border-radius:10px;padding:.6rem .8rem;background:var(--card);text-align:center}.pstats b{display:block;font:700 1.4rem system-ui,sans-serif}.pstats small{color:var(--mut);font:.8rem system-ui,sans-serif}

.pbar{display:grid;grid-template-columns:minmax(8rem,14rem) 1fr auto;gap:.7rem;align-items:center;margin:.35rem 0;font:.9rem system-ui,sans-serif}.pbar .bar{margin:0}

.pbadges{display:grid;grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr));gap:.5rem;margin:.6rem 0}

.pbd{border:1px solid var(--line);border-radius:10px;padding:.5rem;text-align:center;opacity:.35;filter:grayscale(1);background:var(--card)}.pbd.on{opacity:1;filter:none;border-color:var(--acc)}

.pbd span{display:block;font-size:1.6rem}.pbd small{font:.72rem system-ui,sans-serif}

/* ---- examen blanc ---- */

.qexsw{margin-left:1rem;font-weight:700}

.qexam{border-left-color:#8b1a1a}

/* ---- contestation ---- */

.qcont{border-left-color:#8e44ad}.qcont h3{display:flex;gap:1rem;align-items:center;justify-content:space-between}

ul.qcl{max-height:26rem;overflow:auto;padding:0}

.qct{width:100%;display:block;margin:.3rem 0;font:inherit;padding:.4rem;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--fg)}

.qctl{display:block;font:.85rem system-ui,sans-serif;color:var(--mut)}

/* ---- journal des codes (admin) ---- */

details.jrd{border:1px solid var(--line);border-radius:8px;margin:.5rem 0;background:var(--card);padding:.2rem .8rem}details.jrd summary{cursor:pointer;padding:.4rem 0}

ul.jrl code{word-break:break-all;font-size:.78rem}

/* pad












*/

/* ---- v16 : concours ---- */

.late{display:inline-block;margin-left:.4rem;padding:0 .45rem;border-radius:999px;background:#e8731a22;border:1px solid #e8731a;color:#c95a00;font:700 .72rem system-ui,sans-serif;white-space:nowrap}
.ctadm{margin-left:.6rem}

/* pad
*/

.cvchart{width:100%;height:auto;max-width:46rem;display:block;margin:.4rem 0}

.cvchart .gl{stroke:var(--line);stroke-width:1}.cvchart .ax{fill:var(--mut);font:11px system-ui,sans-serif}.cvchart circle:hover{opacity:1}

.curser{display:flex;gap:.4rem;flex-wrap:wrap;margin:.5rem 0}.curser button{border-radius:999px;padding:.25rem .8rem;font:.85rem system-ui,sans-serif}.curser button.on{background:var(--acc);color:#fff;border-color:var(--acc)}

.gb.fam{border:2px solid var(--line)}.gb.fam .gdots{display:flex;gap:3px;justify-content:center;margin-top:.3rem}.gb.fam .gdots i{width:.55rem;height:.55rem;border-radius:50%;background:var(--line);display:block}

/* v19 : tous les tableaux centrés (horizontalement et verticalement) */

table th,table td{text-align:center!important;vertical-align:middle!important}

.sprec div{white-space:nowrap}

/* v19 : code (blocs, en ligne, zone de réponse) */

.codebox{position:relative;margin:.7rem 0}

.codebox pre{margin:0;padding:.8rem 1rem;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:8px;font:13px/1.5 ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;tab-size:4;white-space:pre}

.codebox .cpy{position:absolute;top:.35rem;right:.45rem;font:.75rem system-ui,sans-serif;padding:.15rem .5rem;opacity:.85}

code{font:.92em ui-monospace,SFMono-Regular,Consolas,monospace;background:color-mix(in srgb,var(--acc) 8%,transparent);padding:.05em .3em;border-radius:4px}

.codebox code{background:none;padding:0}

textarea.qcode{font:13px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;tab-size:2;white-space:pre}

/* v20 : boutons à 2-3 choix (un seul actif), bandeau « À MODIFIER », cours d'algorithmie */

.segrow{display:flex;gap:.5rem 1rem;align-items:center;flex-wrap:wrap;margin:.55rem 0}.seglab{font:600 .85rem system-ui,sans-serif;color:var(--mut)}

.segrow+.segrow{margin-top:.2rem}

.todo{background:#c62828;color:#fff;padding:.55rem 1rem;border-radius:8px;font:700 .95rem system-ui,sans-serif;margin:.7rem 0;letter-spacing:.02em}

.todotag{display:inline-block;background:#c62828;color:#fff;border-radius:6px;padding:.05rem .45rem;margin-left:.5rem;font:700 .72rem system-ui,sans-serif}

.algoex{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin:.7rem 0 .2rem}

/* v21 : performances de sport lisibles (une pastille par distance), titres de notions plus grands */

.spl{display:flex;flex-wrap:wrap;gap:.35rem 0;margin:.3rem 0 .6rem;align-items:baseline}.spc{white-space:nowrap}.sps{margin:0 .7rem;color:var(--mut);font-weight:700}

/* v22 : titres de groupes de notions (sections de chapitre) à 2 fois le texte */

.sh h2{font-size:2em;line-height:1.25}

/* v23 : liens du cours, étiquettes OFI / IOI, retour au tableau */

a.nl,a.xl{color:var(--acc);text-decoration:underline dotted;text-underline-offset:3px;cursor:pointer}a.nl:hover,a.xl:hover{text-decoration-style:solid}

a.xl::after{content:"↗";font:.7em system-ui,sans-serif;margin-left:.15em}

.pt.flash{animation:nlFlash 2.4s ease-out}@keyframes nlFlash{0%,35%{background:color-mix(in srgb,var(--acc) 22%,transparent)}100%{background:transparent}}

#nlback{position:fixed;right:1rem;bottom:1rem;z-index:40;padding:.55rem .9rem;border-radius:999px;background:var(--acc);color:#fff;border:0;font:700 .9rem system-ui,sans-serif;box-shadow:0 4px 14px #0004;cursor:pointer}

.tg{display:inline-block;font:700 .7rem system-ui,sans-serif;border-radius:6px;padding:.05rem .4rem;margin-left:.35rem;letter-spacing:.03em}

.tg-ofi{background:#e8f0ff;color:#1d4fb8;border:1px solid #9bb8f0}.tg-ioi{background:#fff1dc;color:#a35a00;border:1px solid #f0c48a}

:root[data-t=dark] .tg-ofi{background:#1a2a4d;color:#9bc0ff;border-color:#3b5a99}:root[data-t=dark] .tg-ioi{background:#4a3314;color:#ffc880;border-color:#8a6126}

.afbar{margin:.5rem 0 1rem}

/* v24 : graphiques de sport, XP */

.spwrap{overflow-x:auto}.spchart{width:100%;max-width:760px;height:auto}.spchart .gl{stroke:currentColor;opacity:.16;stroke-width:1}.spchart .gv{opacity:.08}.spchart .ax{fill:currentColor;font-size:11px;opacity:.8}

.splg{list-style:none;padding:0;margin:.4rem 0;display:flex;flex-wrap:wrap;gap:.3rem 1rem}.splg li{display:flex;align-items:center;gap:.35rem;font-size:.85rem}.splg i{display:inline-block;width:14px;height:4px;border-radius:2px}

.ctmk .gl{stroke:currentColor;opacity:.16}.ctmk .ax{fill:currentColor;font-size:10px;opacity:.8}.mkleg{display:inline-block;width:90px;height:10px;border-radius:5px;vertical-align:middle}

/* v25 : anneaux par matière, commandes des axes, légende des concours */

.srgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1rem;margin:.6rem 0}.srg{border:1px solid var(--line);border-radius:12px;padding:.7rem;background:var(--card);text-align:center}.srg>b{display:block;margin-bottom:.4rem}

.srr{display:flex;gap:.8rem;justify-content:center}.srr small{display:block;font-size:.75rem;color:var(--mut);margin-top:.2rem}

.axbox{margin:.5rem 0}.axs{display:inline-flex;align-items:center;gap:.5rem;margin-left:.6rem;font:600 .85rem system-ui,sans-serif}.axs input{width:9rem}

.ctwrap{max-width:100%}.ctleg{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:.4rem 0}.ctmk .axb{font-weight:700;opacity:1}

/* v26 : énoncés (exemples d'entrée), commandes des axes, éléments graphiques centrés */

code.exin{display:block;white-space:pre-wrap;margin:.2rem 0;padding:.3rem .6rem}

.axrow{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.4rem .9rem;margin:.35rem 0}.axbox{margin:.5rem auto;text-align:center}

.spwrap{overflow-x:auto;text-align:center}.spchart,.ctmk,.cvchart,.clchart,.gring{display:block;margin-left:auto;margin-right:auto}.splg,.ctleg{justify-content:center}.curbox,.gm-prog>.gm-lvbig{margin-left:auto;margin-right:auto}

.curser,.clctl{justify-content:center}

/* v29 : Concours général, boutiques */

.cgt{border-collapse:collapse;margin:.5rem auto;font-size:.9rem}.cgt th,.cgt td{border:1px solid var(--line);padding:.3rem .6rem;text-align:center}.cgt thead th{background:var(--card)}.aisp{display:inline-flex;gap:.4rem;align-items:center;font-size:.85rem}

/* v30 : étoiles et séparateurs du cours, pièces, espacement des notions */

.stars{margin-left:.5rem;color:#d49a00;letter-spacing:.05em;font-size:.95rem;white-space:nowrap}.vsep{color:var(--acc);opacity:.75;margin:0 .15rem}

.gm-coins{flex:0 0 auto;text-align:center;font-family:system-ui,sans-serif;padding:.3rem .8rem}.gm-coins b{font-size:2rem;line-height:1.1}.gm-coins small{display:block;opacity:.85}

.shh{margin-top:1.6rem}.shmsg{min-height:1.2rem;margin:.3rem 0}

.sj-algo .pb ul{list-style:none;padding-left:.3rem}.sj-algo .pb ul li{position:relative;padding-left:1.4rem;margin:.25rem 0}.sj-algo .pb ul li::before{content:"●";position:absolute;left:0;color:var(--acc);font-size:.7em;top:.35em}

.sj-algo .pb .tw{display:block}.sj-algo .pb table{margin-left:0;margin-right:auto}.sj-algo .pb th,.sj-algo .pb td{text-align:center;vertical-align:middle}      /* v35 : tableau aligné à gauche, contenu des cases centré (x et y) */

.pt{margin:3.2rem 0}

/* v31 : pièce, objectif de série, boutique */

img.coin{height:1.15em;width:auto;vertical-align:-.22em}img.coinav{width:18px;height:18px;vertical-align:-.25em}

.shc{font-size:1.6rem;margin:.2rem 0}.shc img.coin{height:1.4em}

.sgc{border:1px solid color-mix(in srgb,#ff8a1f 40%,var(--line));border-radius:18px;padding:1rem 1.3rem;margin:.9rem 0;background:linear-gradient(135deg,color-mix(in srgb,#ff8a1f 14%,var(--card)),color-mix(in srgb,#ff4f7b 9%,var(--card)));box-shadow:0 6px 22px rgba(255,138,31,.12)}

.sgc.done{border-color:#2fa84f;background:linear-gradient(135deg,color-mix(in srgb,#2fa84f 14%,var(--card)),var(--card))}.sgc.fail{border-color:#c0392b}

.sgc-hd{display:flex;align-items:center;gap:.6rem}.sgc-hd h2{margin:0;font-size:1.25rem}.sgc-ic{font-size:1.5rem}

.sgc-row{display:flex;align-items:center;gap:1.4rem;margin:.7rem 0;flex-wrap:wrap}.sgc-t h3{margin:.1rem 0 .3rem}.sgc-t p{margin:.15rem 0}.sgc-r b{color:#d9730d}

.sgc-bar{margin:.3rem 0}.sgc-bar i{background:linear-gradient(90deg,#ff8a1f,#ff4f7b)}

.sgc-chips{display:flex;flex-wrap:wrap;gap:.6rem;margin:.6rem 0}.sgc-chips button{display:flex;flex-direction:column;align-items:center;min-width:5.2rem;padding:.55rem .8rem;border-radius:14px;border:1px solid var(--line);background:var(--card);cursor:pointer}

.sgc-chips button:not([disabled]):hover{border-color:#ff8a1f;transform:translateY(-1px)}.sgc-chips button b{font-size:1.4rem;line-height:1}.sgc-chips button small{color:#d9730d;font-weight:600}

.sgc-x{background:none;border:none;color:var(--mut);text-decoration:underline;cursor:pointer;padding:0;margin-top:.3rem}.sgc-msg{margin:.5rem 0}.sgc-h{margin:.4rem 0 0}

.autabs{margin:.6rem 0;display:flex;flex-wrap:wrap;gap:.3rem}

/* v32 : notification, gel de série */
#notebar{position:fixed;top:12px;left:50%;transform:translate(-50%,-140%);z-index:9999;display:flex;align-items:center;gap:.8rem;max-width:min(92vw,640px);padding:.65rem 1rem;border-radius:12px;background:var(--acc);color:#fff;font-weight:600;box-shadow:0 8px 28px rgba(0,0,0,.25);opacity:0;pointer-events:none;transition:transform .35s ease,opacity .35s ease;cursor:pointer}

#notebar.on{transform:translate(-50%,0);opacity:1;pointer-events:auto}#notebar button{background:none;border:none;color:#fff;font-size:1rem;cursor:pointer;opacity:.85}
.fzc{display:block;margin-top:.15rem;font-weight:700}

.symsub{display:inline-block;padding:.05rem .45rem;margin:.1rem .15rem .1rem 0;border-radius:999px;border:1px solid var(--line);font-size:.78rem;white-space:nowrap}













































