/* Ahder · espace étudiant */
.auth{min-height:100vh;display:grid;place-items:center;align-content:center;gap:22px;padding:24px 16px}
.auth-c{width:min(460px,100%);padding:22px;display:grid;gap:16px}.fm{display:grid;gap:12px}
.tabs2{display:grid;grid-template-columns:1fr 1fr;background:#f4f4f5;border-radius:12px;padding:4px}.tabs2 button{border:0;background:none;padding:10px;border-radius:9px;font-weight:600;cursor:pointer;color:var(--ink2)}.tabs2 button.on{background:#fff;color:var(--ink);box-shadow:var(--sh)}
.lbl{font-size:14px;font-weight:600;color:var(--ink2);display:block;margin-bottom:6px}
.pick{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pk{border:2px solid var(--line);border-radius:14px;padding:10px 6px;display:grid;justify-items:center;gap:6px;cursor:pointer;background:#fff;font-size:13.5px;font-weight:600;transition:.15s}
.pk.on{border-color:var(--acc);background:var(--acc-s);color:var(--acc2)}
.chk{display:flex;gap:9px;align-items:center;font-weight:500}.chk input{width:auto}
/* barre et onglets */
.app{min-height:100vh;padding-bottom:84px}
.bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:10px max(16px,calc(50% - 560px));background:#fafafae8;backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.bar .logo span{font:800 20px "Inter Tight"}
.langbtn{display:flex;align-items:center;gap:6px;border:1px solid var(--line2);background:#fff;border-radius:99px;padding:5px 12px 5px 6px;cursor:pointer;font-weight:600;margin-left:6px}
.stats{margin-left:auto;display:flex;gap:14px;align-items:center;font-weight:700}.stats span{display:flex;gap:5px;align-items:center}.lvl{background:var(--ink);color:#fff;border-radius:99px;padding:4px 10px;font-size:13px}
.menu-l{position:fixed;z-index:30;top:62px;left:max(16px,calc(50% - 450px));padding:8px;display:grid;gap:4px;min-width:240px}.menu-l button{display:flex;gap:10px;align-items:center;border:0;background:none;padding:9px 10px;border-radius:10px;cursor:pointer;text-align:left;font-weight:600}.menu-l button:hover,.menu-l button.on{background:#f4f4f5}
.view{max-width:900px;margin:0 auto;padding:22px 16px}
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom))}
.tabs a{display:grid;justify-items:center;gap:1px;text-decoration:none;font-size:12px;font-weight:600;color:var(--mute);padding:6px;border-radius:12px}.tabs a span{font-size:21px;filter:grayscale(1);opacity:.7}.tabs a.on{color:var(--acc2);background:var(--acc-s)}.tabs a.on span{filter:none;opacity:1}
@media(min-width:900px){.tabs{left:50%;right:auto;transform:translateX(-50%);bottom:16px;width:520px;border:1px solid var(--line);border-radius:20px;box-shadow:var(--sh)}}
.toast{position:fixed;left:50%;bottom:96px;transform:translate(-50%,20px);background:var(--ink);color:#fff;border-radius:12px;padding:10px 16px;font-weight:600;opacity:0;transition:.25s;z-index:80;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}
.annonce{background:var(--acc-s);border:1px solid #fbd0b5;color:var(--acc2);border-radius:14px;padding:11px 14px;font-weight:600;font-size:14.5px;margin-bottom:16px}
/* objectif du jour */
.jour{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;padding:18px;margin-bottom:22px}
.ring{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--acc) calc(var(--p) * 1%),#eee 0)}.ring div{width:66px;height:66px;border-radius:50%;background:#fff;display:grid;place-items:center;text-align:center;font:800 17px/1.05 "Inter Tight"}.ring small{display:block;font:600 10.5px Inter;color:var(--mute)}
.sem{display:flex;gap:6px;margin-top:8px}.sem div{flex:1;display:grid;justify-items:center;gap:4px;font-size:11px;color:var(--mute);text-transform:capitalize}.sem i{width:100%;max-width:34px;height:34px;border-radius:10px;background:#f1f1f1;display:grid;place-items:center;font-style:normal;font-size:15px}.sem i.ok{background:#fff1e8}
/* parcours */
.unite{margin-bottom:28px}.u-h{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:18px;background:var(--ink);color:#fff;margin-bottom:18px}.u-h .e{font-size:30px}.u-h b{font:700 19px "Inter Tight";display:block}.u-h small{color:#bdbdbd}
.u-h .pg{margin-left:auto;font-weight:700;font-size:14px;background:#ffffff1f;border-radius:99px;padding:4px 10px}
.path{display:grid;gap:16px;justify-items:center}
.nd{display:grid;justify-items:center;gap:6px;transform:translateX(var(--x,0));border:0;background:none;cursor:pointer;font:600 13.5px Inter;color:var(--ink2)}
.nd .c{width:76px;height:72px;border-radius:50%;display:grid;place-items:center;font-size:28px;background:#e5e5e5;box-shadow:0 7px 0 #c9c9c9;transition:transform .1s;position:relative}
.nd.fait .c{background:var(--acc);box-shadow:0 7px 0 var(--acc2);color:#fff}.nd.dispo .c{background:#fff;border:3px solid var(--acc);box-shadow:0 7px 0 #f3b68f}
.nd.dispo .c:after{content:"";position:absolute;inset:-10px;border-radius:50%;border:3px solid var(--acc);opacity:.4;animation:pls 1.6s ease-out infinite}@keyframes pls{to{transform:scale(1.25);opacity:0}}
.nd:active .c{transform:translateY(5px);box-shadow:0 2px 0 #c9c9c9}.nd.verr{cursor:not-allowed;opacity:.65}.nd .et{color:var(--gold);letter-spacing:1px;font-size:13px;min-height:16px}
.tag-go{background:var(--ink);color:#fff;border-radius:10px;padding:5px 10px;font-weight:700;font-size:13px;animation:bob 1.6s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-4px)}}
/* listes */
.hd2{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:16px}.hd2 h2{font-size:28px}.hd2 p{margin:4px 0 0;color:var(--ink2)}
.lvs{display:grid;gap:12px}.lvc{padding:16px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}.lvc .d{width:62px;flex:none;text-align:center;border-radius:14px;background:var(--acc-s);color:var(--acc2);padding:8px 0}.lvc .d b{display:block;font:800 24px "Inter Tight"}.lvc .d small{font-size:12px;text-transform:uppercase;font-weight:600}
.lvc .t{flex:1;min-width:200px}.lvc .t b{display:flex;gap:8px;align-items:center}.lvc .t small{color:var(--mute)}.lvc .btn{min-height:42px}
.info{background:#fff;border:1px dashed var(--line2);border-radius:14px;padding:14px;color:var(--ink2);font-size:14px;margin-top:16px}
.cls{display:grid;gap:8px}.cl{display:flex;gap:12px;align-items:center;padding:12px 14px}.cl .r{width:30px;text-align:center;font:800 17px "Inter Tight"}.cl .av{width:38px;height:38px;border-radius:50%;background:var(--acc-s);color:var(--acc2);display:grid;place-items:center;font-weight:800}.cl b{flex:1}.cl.moi{border-color:var(--acc);background:#fffaf6}
.prof{display:grid;grid-template-columns:1fr 1fr;gap:14px}.pc{padding:18px;display:grid;gap:12px;align-content:start}
.big-av{width:64px;height:64px;border-radius:50%;background:var(--acc);color:#fff;display:grid;place-items:center;font:800 28px "Inter Tight"}
.lvbar{height:12px;border-radius:9px;background:#eee;overflow:hidden}.lvbar i{display:block;height:100%;background:var(--acc);border-radius:9px}
.k4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.k4 div{background:#fafafa;border:1px solid var(--line);border-radius:12px;padding:10px;text-align:center}.k4 b{display:block;font:800 20px "Inter Tight"}.k4 small{color:var(--mute);font-size:12px}
.bdg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.bd{border:1px solid var(--line);border-radius:14px;padding:10px;text-align:center;display:grid;gap:3px;font-size:12.5px}.bd span{font-size:28px}.bd b{font-size:13px}.bd small{color:var(--mute)}.bd.off{opacity:.38;filter:grayscale(1)}
@media(max-width:760px){.prof{grid-template-columns:1fr}.k4{grid-template-columns:repeat(2,1fr)}.stats{gap:9px;font-size:14px}.bar .logo span{display:none}}
/* leçon */
.lecon{position:fixed;inset:0;z-index:50;background:#fff;display:grid;grid-template-rows:auto 1fr auto}
.l-top{display:flex;align-items:center;gap:14px;padding:16px max(16px,calc(50% - 380px))}.l-top button{border:0;background:none;font-size:22px;cursor:pointer;color:var(--mute)}
.l-bar{flex:1;height:14px;border-radius:9px;background:#eee;overflow:hidden}.l-bar i{display:block;height:100%;background:var(--ok);border-radius:9px;transition:width .35s}
.l-body{overflow:auto;padding:10px max(16px,calc(50% - 340px)) 20px;display:grid;align-content:start;gap:18px}
.l-q{font:700 22px "Inter Tight";letter-spacing:-.02em;margin-top:6px}
.cible{font:700 34px "Inter Tight";letter-spacing:-.01em}.cible[lang=ja],.cible[lang=ar]{font-family:system-ui,"Noto Sans JP","Noto Naskh Arabic",sans-serif;font-weight:600}
.carte{border:2px solid var(--line);border-radius:22px;padding:26px 20px;display:grid;gap:10px;justify-items:center;text-align:center;animation:pop .35s ease}
@keyframes pop{from{transform:scale(.95);opacity:0}}
.carte .tr{color:var(--acc2);font-weight:600}.carte .gl{color:var(--ink2);font-size:18px}
.hp{display:flex;gap:10px}.hp button{width:58px;height:58px;border-radius:16px;border:0;background:#3b82f6;color:#fff;font-size:24px;cursor:pointer;box-shadow:0 5px 0 #1d4ed8}.hp button.lent{background:#93c5fd;box-shadow:0 5px 0 #60a5fa;font-size:20px}.hp button:active{transform:translateY(4px);box-shadow:none}
.opts{display:grid;gap:10px}.opts.g2{grid-template-columns:1fr 1fr}
.o{border:2px solid var(--line);border-bottom-width:4px;border-radius:16px;padding:14px;text-align:center;font-weight:600;font-size:17px;background:#fff;cursor:pointer;transition:.12s}.o:hover{background:#fafafa}
.o.sel{border-color:#60a5fa;background:#eff6ff;color:#1d4ed8}.o.bon{border-color:#22c55e;background:var(--ok-s);color:var(--ok)}.o.faux{border-color:#ef4444;background:var(--bad-s);color:var(--bad);animation:shake .35s}.o.fini{visibility:hidden}
@keyframes shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.zone{min-height:62px;border-bottom:2px solid var(--line);display:flex;flex-wrap:wrap;gap:8px;padding:8px 0;align-content:flex-start}.banque{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.tok{border:2px solid var(--line);border-bottom-width:4px;border-radius:12px;padding:9px 13px;font-weight:600;font-size:17px;background:#fff;cursor:pointer}.tok.vide{visibility:hidden}
.paires{display:grid;grid-template-columns:1fr 1fr;gap:10px}.paires div{display:grid;gap:10px;align-content:start}
.l-foot{border-top:2px solid var(--line);padding:16px max(16px,calc(50% - 340px)) calc(16px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:14px;transition:background .2s}
.l-foot.ok{background:var(--ok-s);border-color:#bbf7d0}.l-foot.ko{background:var(--bad-s);border-color:#fecaca}
.l-foot .fb{flex:1;font-weight:700;font-size:17px}.l-foot.ok .fb{color:var(--ok)}.l-foot.ko .fb{color:var(--bad)}.l-foot .fb small{display:block;font-weight:500;font-size:15px;color:var(--ink2)}
.l-foot .btn{min-width:170px;border-radius:16px;min-height:52px;box-shadow:0 4px 0 #000}.l-foot .btn.vert{background:#22c55e;border-color:#22c55e;box-shadow:0 4px 0 #15803d;color:#fff}.l-foot .btn.rouge{background:#ef4444;border-color:#ef4444;box-shadow:0 4px 0 #b91c1c;color:#fff}
.fin2{display:grid;justify-items:center;text-align:center;gap:14px;padding-top:30px}.fin2 .e{font-size:70px;animation:pop .5s ease}.fin2 h2{font-size:32px}.fin2 .st{font-size:40px;color:var(--gold);letter-spacing:6px}
.fin2 .k3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:min(460px,100%)}.fin2 .k3 div{border:2px solid var(--line);border-radius:16px;padding:12px}.fin2 .k3 b{display:block;font:800 22px "Inter Tight"}.fin2 .k3 small{color:var(--mute)}
.nb{display:flex;gap:10px;align-items:center;background:#fffbeb;border:1px solid #fde68a;border-radius:14px;padding:10px 14px;font-weight:600;animation:pop .4s ease}
.confetti{position:fixed;inset:0;pointer-events:none;z-index:60;overflow:hidden}.confetti i{position:absolute;top:-20px;width:9px;height:14px;border-radius:2px;animation:tombe linear forwards}
@keyframes tombe{to{transform:translateY(110vh) rotate(720deg)}}
@media(max-width:520px){.cible{font-size:28px}.opts.g2{grid-template-columns:1fr}.l-foot{flex-wrap:wrap}.l-foot .btn{width:100%}}
