/* =====================================================================
   JUNDLE IA — THÈME DE MARQUE (surcouche)  ·  v2
   Aplats uniquement (aucun dégradé). Couleurs du logo : bleu #0D85C4,
   orange #FFA900, blanc. Thème CLAIR par défaut + bascule SOMBRE adoucie.
   Chargé APRÈS assets/style.css. Aucun contenu de page modifié.
   ===================================================================== */

/* ---- Accents de marque (identiques dans les deux thèmes) ---- */
:root{
  --blue:#0D85C4; --blue-700:#0A6E9F; --blue-050:#E7F2FA;
  --orange:#FFA900; --orange-700:#E0930A; --orange-050:#FFF4DE;
  --ink-fixed:#10243A;
  --r-sm:9px; --r-md:16px; --r-lg:22px; --r-xl:28px; --r-pill:999px;
  --ease:cubic-bezier(.22,1,.36,1);
}

/* ============================ THÈME CLAIR (défaut) ============================ */
:root,
html[data-theme="light"]{
  --cream:#F4F7FB;        /* fond page */
  --paper:#FFFFFF;        /* surfaces */
  --bone:#EEF3F8;         /* surfaces secondaires / barres */
  --white:#FFFFFF;
  --ink:#10243A;          /* texte principal */
  --graphite:#3F5163; --slate:#5B6B7F; --silver:#8294A6;
  --line:rgba(13,40,60,.12); --line-soft:rgba(13,40,60,.07);

  --orange:#0D85C4; --orange-soft:#3BA0D6; --orange-deep:#0A6E9F; --orange-glow:rgba(13,133,196,.28);
  --teal:#0D85C4; --teal-soft:#3BA0D6; --teal-deep:#0A6E9F;
  --gold:#FFA900;

  --grad-hero:#0D85C4;                 /* aplat */
  --grad-orange:#0D85C4;               /* boutons primaires = bleu aplat */
  --grad-teal:#0D85C4;                 /* portail "teal" = bleu aplat */
  --grad-text:#0D85C4;
  --grad-gold:#FFA900;

  --sh-1:0 1px 2px rgba(13,40,60,.05),0 6px 16px rgba(13,40,60,.07);
  --sh-2:0 10px 30px rgba(13,40,60,.10),0 30px 60px rgba(13,40,60,.10);
  --sh-glow:0 8px 24px rgba(13,133,196,.22);

  --f-display:"Sora",system-ui,sans-serif;
  --f-body:"Inter",system-ui,sans-serif;
  --f-mono:"Space Mono",ui-monospace,monospace;

  --splash-bg:#F4F7FB; --splash-ink:#10243A;
  color-scheme:light;
}

/* ============================ THÈME SOMBRE (adouci) ============================ */
html[data-theme="dark"]{
  --cream:#16273F;        /* navy doux, volontairement pas trop sombre */
  --paper:#1E3150;
  --bone:#263B5C;
  --white:#FFFFFF;
  --ink:#EAF1F8;
  --graphite:#C2D0E0; --slate:#9DB0C6; --silver:#7d90a8;
  --line:rgba(160,185,215,.16); --line-soft:rgba(160,185,215,.10);

  --orange:#3BA0D6; --orange-soft:#62B6E2; --orange-deep:#0D85C4; --orange-glow:rgba(59,160,214,.30);
  --teal:#3BA0D6; --teal-soft:#62B6E2; --teal-deep:#0D85C4;
  --gold:#FFB627;

  --grad-hero:#0D85C4;
  --grad-orange:#0D85C4;
  --grad-teal:#0D85C4;
  --grad-text:#62B6E2;
  --grad-gold:#FFA900;

  --sh-1:0 1px 2px rgba(0,0,0,.25),0 6px 16px rgba(0,0,0,.30);
  --sh-2:0 10px 30px rgba(0,0,0,.40),0 30px 60px rgba(0,0,0,.42);
  --sh-glow:0 8px 24px rgba(13,133,196,.35);

  --splash-bg:#16273F; --splash-ink:#EAF1F8;
  color-scheme:dark;
}

/* Pas d'aurore dégradée : fond propre */
body::before{display:none !important}
body{background:var(--cream)}

/* ---- Surfaces claires/sombres codées en dur : corrections ---- */
html[data-theme="light"] .topbar{background:rgba(255,255,255,.82) !important;border-bottom:1px solid var(--line-soft)}
html[data-theme="light"] .topbar--site{background:rgba(255,255,255,.9) !important}
html[data-theme="dark"]  .topbar{background:rgba(22,39,63,.78) !important;border-bottom:1px solid var(--line-soft)}
html[data-theme="dark"]  .topbar--site{background:rgba(22,39,63,.86) !important}

.panel--soft{background:var(--bone) !important}
.field input,.field textarea{background:var(--paper);color:var(--ink)}
.field input:focus,.field textarea:focus{background:var(--paper) !important;border-color:var(--blue);box-shadow:0 0 0 4px rgba(13,133,196,.16) !important}
.field input::placeholder,.field textarea::placeholder{color:var(--silver)}
.table tbody tr:hover{background:rgba(13,133,196,.06) !important}
.ccard--locked{background:var(--bone) !important}
.alert--err{background:rgba(192,57,43,.10) !important;border-color:rgba(192,57,43,.32) !important;color:#c0392b !important}
html[data-theme="dark"] .alert--err{color:#ffb4ab !important}
.badge--on{background:rgba(13,133,196,.14) !important;color:var(--blue-700) !important}
html[data-theme="dark"] .badge--on{color:#9fd4f1 !important}
.badge--off{background:rgba(255,169,0,.16) !important;color:#b9790a !important}
html[data-theme="dark"] .badge--off{color:#FFB627 !important}
.sess__state--soon{color:#b9790a !important;background:rgba(255,169,0,.16) !important}
.gate-course.is-on{background:rgba(13,133,196,.10) !important}
code{background:var(--bone)}
::selection{background:var(--blue);color:#fff}
.ccard__date{color:var(--blue-700) !important}
html[data-theme="dark"] .ccard__date{color:#9fd4f1 !important}

/* ---- Aplats : on neutralise les dégradés résiduels du thème d'origine ---- */
.btn--primary{background:var(--blue) !important;color:#fff !important;box-shadow:0 6px 18px var(--orange-glow)}
.btn--primary::before{display:none !important}
.btn--primary:hover{background:var(--blue-700) !important;transform:translateY(-2px)}
.hero{background:var(--blue) !important;color:#fff !important}
.hero::before,.hero::after{display:none !important}

/* Lisibilité des stats & de la progression sur le hero bleu (aplats, fort contraste) */
.stat{background:rgba(255,255,255,.16) !important;border-color:rgba(255,255,255,.30) !important}
.stat__num{background:none !important;-webkit-text-fill-color:#fff !important;color:#fff !important}
.stat__lbl{color:rgba(255,255,255,.92) !important}
.progress-big__bar{background:rgba(255,255,255,.24) !important}
.progress-big__bar span{background:#FFA900 !important;box-shadow:none !important;animation:none !important}
.hero .progress-big__meta,.hero .kicker{color:rgba(255,255,255,.92) !important}
.panel .progress-big__bar{background:var(--bone) !important}
.panel .progress-big__meta{color:var(--graphite) !important}
.lead__row:nth-child(1) .lead__rank{background:#FFA900 !important;color:#3a2600 !important}
.badge.is-earned{border-color:rgba(13,133,196,.32);box-shadow:0 8px 24px rgba(13,133,196,.12)}

/* ---- Portails : aplats bleu / orange (alternance, comme le logo) ---- */
.portal-card--teal{background:var(--blue) !important;color:#fff !important}
.portal-card--orange{background:#FFA900 !important}
.portal-card--orange .portal-card__t,
.portal-card--orange .portal-card__go{color:var(--ink-fixed) !important}
.portal-card--orange .portal-card__d{color:rgba(16,36,58,.82) !important}
.portal-card--orange .portal-card__ic{background:rgba(16,36,58,.14) !important}

/* ============================ LOGO NEURAL (aplats) ============================ */
.brand__mark{background:transparent !important;width:42px !important;height:42px !important;box-shadow:none !important}
.brand__mark svg{width:100%;height:100%;display:block}
.brand:hover .brand__mark{transform:rotate(0) scale(1.06)}
.auth__brand .brand__mark{width:72px !important;height:72px !important;margin-bottom:22px}
.brand__txt strong{color:var(--orange);-webkit-text-fill-color:currentColor;background:none}

/* ============================ BASCULE DE THÈME ============================ */
.theme-toggle{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:13px;border:1px solid var(--line);
  background:var(--paper);color:var(--ink);cursor:pointer;flex:none;transition:border-color .2s,transform .2s}
.theme-toggle:hover{border-color:var(--blue);transform:translateY(-1px)}
.theme-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}
.theme-toggle .i-moon{display:none}
html[data-theme="dark"] .theme-toggle .i-sun{display:none}
html[data-theme="dark"] .theme-toggle .i-moon{display:block}

/* ============================ SPLASH (aplats) ============================ */
#jundleSplash{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;background:var(--splash-bg)}
#jundleSplash.is-out{animation:jsplashOut .8s var(--ease) forwards}
@keyframes jsplashOut{to{opacity:0;transform:scale(1.06);visibility:hidden}}
#jundleSplash .js-stage{width:138px;height:138px}
#jundleSplash svg{width:100%;height:100%;overflow:visible}
.js-orbit{transform-origin:75px 75px;opacity:0;animation:jorb .9s var(--ease) forwards}
.js-orbit.o1{animation-delay:.20s}.js-orbit.o2{animation-delay:.36s}.js-orbit.o3{animation-delay:.52s}
@keyframes jorb{from{opacity:0;transform:rotate(-120deg) scale(.4)}to{opacity:1;transform:rotate(0) scale(1)}}
.js-link{stroke-dasharray:120;stroke-dashoffset:120;animation:jdraw .7s var(--ease) .85s forwards}
@keyframes jdraw{to{stroke-dashoffset:0}}
.js-core{transform-origin:75px 75px;opacity:0;animation:jcore .7s var(--ease) .1s forwards}
@keyframes jcore{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}
.js-spark{opacity:0;animation:jspark .6s ease 1s forwards}
@keyframes jspark{0%{opacity:0;transform:translateY(6px) scale(.6)}100%{opacity:1;transform:translateY(0) scale(1)}}
.js-word{text-align:center;opacity:0;transform:translateY(14px);animation:jup .8s var(--ease) 1.15s forwards}
.js-word .w{font-family:var(--f-display);font-weight:800;font-size:2.3rem;line-height:1;color:var(--splash-ink)}
.js-word .ia{font-family:var(--f-display);font-weight:800;font-size:1.35rem;vertical-align:super;margin-left:5px;color:var(--orange)}
.js-word .tag{margin-top:9px;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.32em;text-transform:uppercase;color:var(--slate)}
@keyframes jup{to{opacity:1;transform:translateY(0)}}

/* ============================ NAV APP (mobile) + MENU INTELLIGENT ============================ */
.cnav{position:fixed;left:0;right:0;bottom:0;z-index:1000;padding:9px 14px calc(12px + env(safe-area-inset-bottom));display:none}
.cnav__in{display:flex;align-items:flex-end;justify-content:space-between;background:var(--paper);backdrop-filter:blur(14px);
  border:1px solid var(--line);border-radius:22px;padding:6px 8px;box-shadow:var(--sh-2)}
.cnav a,.cnav button.ctab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0;border:0;background:none;color:var(--silver);font-family:var(--f-body);cursor:pointer;transition:color .25s}
.cnav .ctab svg,.cnav a svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.9}
.cnav .ctab span,.cnav a span{font-size:.6rem;font-weight:600}
.cnav a.is-active{color:var(--blue)}
.cfab{flex:none;width:56px;height:56px;margin:0 4px -16px;border-radius:18px;border:0;cursor:pointer;position:relative;
  background:var(--blue);box-shadow:0 10px 24px rgba(13,133,196,.45);display:grid;place-items:center;transition:transform .3s var(--ease),background .2s}
.cfab:active{transform:scale(.92)}
.cfab svg{width:26px;height:26px;stroke:#fff;stroke-width:2.3;fill:none;transition:transform .4s var(--ease)}
.cfab.is-open{background:var(--orange)}
.cfab.is-open svg{transform:rotate(135deg);stroke:var(--ink-fixed)}

.csheet-back{position:fixed;inset:0;z-index:1001;background:rgba(8,20,34,.5);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .35s}
.csheet-back.is-show{opacity:1;pointer-events:auto}
.csheet{position:fixed;left:0;right:0;bottom:0;z-index:1002;max-width:560px;margin:0 auto;background:var(--paper);
  border-top:1px solid var(--line);border-radius:28px 28px 0 0;padding:14px 18px calc(24px + env(safe-area-inset-bottom));
  transform:translateY(112%);transition:transform .45s var(--ease);box-shadow:var(--sh-2)}
.csheet.is-show{transform:translateY(0)}
.csheet__grab{width:40px;height:5px;border-radius:5px;background:var(--line);margin:0 auto 14px}
.csheet__k{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--slate)}
.csheet h3{font-family:var(--f-display);font-weight:700;font-size:1.2rem;margin:2px 0 14px;color:var(--ink)}
.csheet__ask{display:flex;align-items:center;gap:10px;text-decoration:none;border:1px solid rgba(13,133,196,.3);border-radius:15px;padding:13px 15px;background:rgba(13,133,196,.06);margin-bottom:16px;color:var(--ink)}
.csheet__ask svg{width:20px;height:20px;stroke:var(--blue);flex:none;fill:none;stroke-width:1.8}
.csheet__ask b{font-family:var(--f-display);font-weight:600;font-size:.92rem}
.csheet__ask small{display:block;color:var(--slate);font-size:.74rem}
.csheet__ask .go{margin-left:auto;color:var(--blue)}
.cqa{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cqa a{display:flex;align-items:center;gap:11px;text-decoration:none;border:1px solid var(--line);border-radius:15px;padding:12px;background:var(--paper);color:var(--ink);transition:border-color .25s,transform .2s}
.cqa a:active{transform:scale(.96)}
.cqa .qic{width:34px;height:34px;flex:none;border-radius:11px;display:grid;place-items:center}
.cqa .qic svg{width:18px;height:18px;fill:none;stroke-width:1.9}
.cqa b{font-family:var(--f-display);font-weight:600;font-size:.84rem;line-height:1.15}
.cqa .x-blue .qic{background:rgba(13,133,196,.14)}.cqa .x-blue .qic svg{stroke:var(--blue)}.cqa .x-blue:hover{border-color:var(--blue)}
.cqa .x-orange .qic{background:rgba(255,169,0,.18)}.cqa .x-orange .qic svg{stroke:var(--orange-700)}.cqa .x-orange:hover{border-color:var(--orange)}

/* Mobile : nav app visible, menu burger masqué pour éviter le doublon */
@media (max-width:820px){
  body.has-cnav .cnav{display:block}
  body.has-cnav .wrap{padding-bottom:120px}
  body.has-cnav .navtoggle{display:none !important}
  body.has-cnav .topnav{display:none !important}
  body.has-cnav .topbar__in{justify-content:center;position:relative}
  body.has-cnav .topbar__in .theme-toggle{position:absolute;right:0;top:50%;transform:translateY(-50%);width:38px;height:38px}
}

@media (prefers-reduced-motion:reduce){
  .js-orbit,.js-link,.js-core,.js-spark,.js-word{animation-duration:.01ms !important}
}

/* =====================================================================
   ÉVALUATIONS · NOTIFICATIONS · BIBLIOTHÈQUE  (aplats, clair+sombre)
   ===================================================================== */

/* Barre : groupe d'outils (cloche + thème) bien à droite */
.topbar__in{justify-content:flex-start !important;flex-wrap:nowrap}
.brand{order:1;margin-right:auto}
.topnav{order:2}.topbar__tools{order:3}.navtoggle{order:4}
.theme-toggle{order:3}
.topbar__tools{display:flex;align-items:center;gap:8px}
body.has-cnav .topbar__in{justify-content:flex-start !important}
body.has-cnav .topbar__in .theme-toggle,body.has-cnav .topbar__in .bell{position:static !important;transform:none !important}

/* Boîte succès */
.box--ok{background:rgba(13,133,196,.08);border:1px solid rgba(13,133,196,.28);color:var(--ink);border-radius:var(--r-md);padding:13px 16px;margin-bottom:16px;display:flex;align-items:center;gap:10px}
.box--ok svg{stroke:var(--blue);width:20px;height:20px;flex:none}

/* ---------------- CLOCHE & NOTIFICATIONS ---------------- */
.bell{position:relative}
.bell__btn{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:13px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;position:relative;transition:border-color .2s,transform .2s}
.bell__btn:hover{border-color:var(--blue);transform:translateY(-1px)}
.bell__btn svg{width:21px;height:21px}
.bell__count{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--orange);color:#3a2600;font-family:var(--f-body);font-size:.66rem;font-weight:800;display:grid;place-items:center;border:2px solid var(--paper);line-height:1}
.bell__panel{position:absolute;right:0;top:calc(100% + 12px);width:min(360px,calc(100vw - 28px));max-height:min(70vh,560px);overflow:hidden;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:var(--sh-2);opacity:0;transform:translateY(-8px) scale(.98);transform-origin:top right;pointer-events:none;transition:opacity .22s var(--ease),transform .22s var(--ease);z-index:1200}
.bell.is-open .bell__panel{opacity:1;transform:none;pointer-events:auto}
.bell__head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}
.bell__head b{font-family:var(--f-display);font-weight:600;font-size:1rem}
.bell__head button{border:0;background:none;color:var(--blue);font-family:var(--f-body);font-size:.78rem;font-weight:600;cursor:pointer}
.bell__list{overflow-y:auto;-webkit-overflow-scrolling:touch}
.bell__empty{padding:40px 24px;text-align:center;color:var(--slate)}
.bell__empty svg{width:40px;height:40px;stroke:var(--silver);margin-bottom:10px}
.bell__empty p{font-size:.86rem}
.noti{display:flex;gap:12px;padding:13px 16px;text-decoration:none;color:inherit;border-bottom:1px solid var(--line-soft);position:relative;transition:background .2s}
.noti:hover{background:rgba(13,133,196,.05)}
.noti.is-unread{background:rgba(13,133,196,.06)}
.noti.is-unread::before{content:"";position:absolute;left:6px;top:50%;width:6px;height:6px;border-radius:50%;background:var(--blue);transform:translateY(-50%)}
.noti__ic{width:38px;height:38px;flex:none;border-radius:11px;display:grid;place-items:center}
.noti__ic svg{width:19px;height:19px}
.noti--blue .noti__ic{background:rgba(13,133,196,.14)}.noti--blue .noti__ic{color:var(--blue)}
.noti--orange .noti__ic{background:rgba(255,169,0,.18)}.noti--orange .noti__ic{color:#c8860a}
html[data-theme="dark"] .noti--orange .noti__ic{color:#FFB627}
.noti__bd{display:flex;flex-direction:column;gap:2px;min-width:0}
.noti__bd b{font-family:var(--f-display);font-weight:600;font-size:.88rem;line-height:1.2}
.noti__tx{font-size:.8rem;color:var(--slate);line-height:1.35}
.noti__bd time{font-size:.7rem;color:var(--silver);margin-top:2px}

/* ---------------- BIBLIOTHÈQUE (refonte) ---------------- */
.lib2-feat{display:grid;grid-template-columns:1.05fr 1fr;gap:0;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;background:var(--paper);box-shadow:var(--sh-1);margin-bottom:30px}
.lib2-feat__media{position:relative;min-height:240px;background:var(--blue);display:grid;place-items:center;overflow:hidden}
.lib2-feat__media::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 2px,transparent 2px 22px)}
.lib2-feat__tag{position:absolute;top:16px;left:16px;z-index:2;display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.92);color:var(--blue);font-size:.72rem;font-weight:700;padding:6px 12px;border-radius:999px}
.lib2-feat__tag svg{width:14px;height:14px;stroke:var(--orange);fill:var(--orange)}
.lib2-play{width:74px;height:74px;border-radius:50%;background:rgba(255,255,255,.95);color:var(--blue);display:grid;place-items:center;border:0;cursor:pointer;position:relative;z-index:2;box-shadow:0 10px 30px rgba(0,0,0,.25);transition:transform .25s var(--ease)}
.lib2-feat__media:hover .lib2-play{transform:scale(1.08)}
.lib2-play svg{width:30px;height:30px;margin-left:3px}
.lib2-play--sm{width:54px;height:54px}.lib2-play--sm svg{width:22px;height:22px}
.lib2-feat__body{padding:28px 30px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:12px}
.lib2-chip{display:inline-flex;align-items:center;gap:6px;background:rgba(13,133,196,.1);color:var(--blue);font-size:.76rem;font-weight:600;padding:5px 12px;border-radius:999px}
.lib2-chip svg{width:14px;height:14px}
.lib2-feat__body h2{font-family:var(--f-display);font-weight:700;font-size:1.5rem;line-height:1.2}
.lib2-feat__body p{color:var(--slate);font-size:.92rem;line-height:1.55}
.lib2-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.lib2-card{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--paper);box-shadow:var(--sh-1);transition:transform .3s var(--ease),box-shadow .3s,border-color .3s;display:flex;flex-direction:column}
.lib2-card:hover{transform:translateY(-5px);box-shadow:var(--sh-2);border-color:rgba(13,133,196,.35)}
.lib2-card__media{position:relative;display:grid;place-items:center;height:150px;background:var(--blue);text-decoration:none;overflow:hidden}
.lib2-card__media::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 2px,transparent 2px 20px)}
.lib2-card__date{position:absolute;bottom:10px;left:10px;z-index:2;background:rgba(8,20,34,.55);color:#fff;font-size:.72rem;font-weight:600;padding:4px 10px;border-radius:999px;backdrop-filter:blur(4px)}
.lib2-card__body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.lib2-card__body h3{font-family:var(--f-display);font-weight:600;font-size:1.05rem;line-height:1.25}
.lib2-card__desc{color:var(--slate);font-size:.84rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.lib2-card__go{margin-top:auto;display:inline-flex;align-items:center;gap:7px;color:var(--blue);font-weight:600;font-size:.88rem;text-decoration:none}
.lib2-card__go svg{width:16px;height:16px}
.lib2-card__soon{margin-top:auto;color:var(--silver);font-size:.84rem}
.lib2-empty{text-align:center;padding:54px 24px;border:1px dashed var(--line);border-radius:var(--r-xl);background:var(--paper)}
.lib2-empty__ic{width:64px;height:64px;border-radius:20px;margin:0 auto 16px;display:grid;place-items:center;background:rgba(13,133,196,.1);color:var(--blue)}
.lib2-empty__ic svg{width:30px;height:30px}
.lib2-empty h3{font-family:var(--f-display);font-weight:600;font-size:1.2rem;margin-bottom:6px}
.lib2-empty p{max-width:42ch;margin:0 auto 18px}
@media (max-width:720px){.lib2-feat{grid-template-columns:1fr}.lib2-feat__media{min-height:170px}}

/* ---------------- ÉVALUATIONS (apprenant) ---------------- */
.evl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}
.evl{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);box-shadow:var(--sh-1);padding:20px;display:flex;flex-direction:column;gap:12px}
.evl__head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.evl__badge{font-size:.72rem;font-weight:700;padding:5px 11px;border-radius:999px}
.evl__badge--a-rendre{background:rgba(13,133,196,.14);color:var(--blue)}
.evl__badge--rendu{background:rgba(255,169,0,.18);color:#b9790a}
.evl__badge--corrige{background:rgba(34,160,90,.16);color:#1c8b46}
.evl__badge--retard{background:rgba(192,57,43,.14);color:#c0392b}
.evl__due{display:inline-flex;align-items:center;gap:5px;color:var(--slate);font-size:.78rem}
.evl__due svg{width:14px;height:14px}
.evl__title{font-family:var(--f-display);font-weight:600;font-size:1.12rem;line-height:1.25}
.evl__consigne{color:var(--slate);font-size:.86rem;line-height:1.55}
.evl__grade{display:flex;gap:16px;align-items:flex-start;background:rgba(34,160,90,.06);border:1px solid rgba(34,160,90,.2);border-radius:var(--r-md);padding:14px}
.evl__note{flex:none;text-align:center;line-height:1}
.evl__note-val{font-family:var(--f-display);font-weight:800;font-size:2.1rem;color:#1c8b46}
.evl__note-max{font-size:.9rem;color:var(--slate)}
.evl__fb-k{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);font-weight:700}
.evl__fb p{font-size:.86rem;line-height:1.5;margin-top:3px}
.evl__file{display:flex;align-items:center;gap:9px;font-size:.85rem;background:var(--bone);border-radius:var(--r-sm);padding:10px 12px;flex-wrap:wrap}
.evl__file svg{width:17px;height:17px;stroke:var(--blue);flex:none}
.evl__file>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.evl__sent{display:inline-flex;align-items:center;gap:5px;color:#1c8b46;font-weight:600;font-size:.8rem}
.evl__sent svg{stroke:#1c8b46;width:15px;height:15px}
.evl__dl{margin-left:auto;display:inline-flex;align-items:center;gap:5px;color:var(--blue);font-weight:600;text-decoration:none}
.evl__dl svg{width:15px;height:15px;stroke:var(--blue)}
.evl__form{display:flex;flex-direction:column;gap:10px;margin-top:2px}

/* Sélecteur de fichier élégant */
.filepick{position:relative;display:flex;align-items:center;gap:12px;border:1.5px dashed var(--line);border-radius:var(--r-md);padding:13px 15px;cursor:pointer;transition:border-color .2s,background .2s}
.filepick:hover{border-color:var(--blue);background:rgba(13,133,196,.04)}
.filepick input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.filepick__btn{display:inline-flex;align-items:center;gap:7px;flex:none;font-weight:600;font-size:.86rem;color:var(--blue)}
.filepick__btn svg{width:17px;height:17px;stroke:var(--blue);transform:rotate(180deg)}
.filepick__name{font-size:.8rem;color:var(--slate);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------------- ÉVALUATIONS (admin) ---------------- */
.adm-eval{margin-top:18px}
.adm-eval__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.adm-eval__consigne{color:var(--slate);font-size:.88rem;line-height:1.55;margin:8px 0 6px;padding-bottom:12px;border-bottom:1px solid var(--line-soft)}
.copie{display:grid;grid-template-columns:1fr;gap:12px;padding:14px;border:1px solid var(--line);border-radius:var(--r-md);margin-top:12px;background:var(--cream)}
.copie--done{border-color:rgba(34,160,90,.35)}
.copie__who{display:flex;align-items:center;gap:11px}
.copie__ava{width:38px;height:38px;flex:none;border-radius:11px;background:var(--blue);color:#fff;display:grid;place-items:center;font-family:var(--f-display);font-weight:700}
.copie__who b{font-family:var(--f-display);font-weight:600;font-size:.95rem;display:block}
.copie__who .tiny{display:inline-flex;align-items:center;gap:4px}
.copie__who .tiny svg{width:12px;height:12px}
.copie__file{margin-left:auto;white-space:nowrap}
.copie__grade{display:grid;grid-template-columns:120px 1fr auto;gap:12px;align-items:end}
.copie__note label,.copie__fb label{display:block;font-size:.74rem;font-weight:600;color:var(--graphite);margin-bottom:5px}
.copie__note-in{display:flex;align-items:center;gap:6px}
.copie__note-in input{width:70px;text-align:center;font-family:var(--f-display);font-weight:700;font-size:1.1rem;padding:8px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink)}
.copie__note-in span{color:var(--slate);font-weight:600}
.copie__fb textarea{width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink);font-family:var(--f-body);resize:vertical}
@media (max-width:640px){.copie__grade{grid-template-columns:1fr}.copie__file{margin-left:0}}
