/* Leçons futées — Dossiers de la Bibliothèque (Pro Premium), bloc A3. Sans data-lf : jamais dans le fichier partagé aux élèves.
   Couleurs de l'ambiance seulement (var(--surface), var(--line), var(--ink), var(--muted), var(--btn), var(--focus), var(--bg)) :
   les ambiances claires et sombres s'appliquent. La balise est collée à sa voisine dans /app/ et /decouverte/. */
.ds-zone{display:flex;flex-direction:column;gap:14px;margin:6px 0 4px}
.ds-zone .msg{margin-top:0}
.ds-fil ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;font-weight:700}
.ds-fil li{display:inline-flex;align-items:center;gap:6px;min-width:0}
.ds-fil [aria-current]{padding:10px 4px;overflow-wrap:anywhere}
.ds-fil-lien{min-height:44px;padding:8px 10px;border-radius:10px;background:transparent;border:0;color:var(--btn);font-weight:800;text-decoration:underline;text-underline-offset:3px;cursor:pointer;overflow-wrap:anywhere;text-align:left}
.ds-fil-lien:hover{background:var(--surface)}
.ds-fil-lien:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.ds-fil-sep{color:var(--muted)}
.ds-tete{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px}
.ds-tete h2{overflow-wrap:anywhere;min-width:0}
.ds-tete h2:focus,.ds-panneau h2:focus{outline:3px solid var(--focus);outline-offset:3px;border-radius:6px}
.ds-sous-t{margin-top:8px}
.ds-grille{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:14px}
.ds-carte{flex-direction:row;align-items:center;gap:8px;padding:10px 10px 10px 8px}
.ds-ouvrir{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:12px;min-height:64px;padding:8px 10px;border-radius:16px;border:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer}
.ds-ouvrir:hover{background:var(--bg)}
.ds-ouvrir:focus-visible{outline:3px solid var(--focus);outline-offset:1px}
.ds-ico{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--bg);color:var(--btn)}
.ds-txt{display:flex;flex-direction:column;min-width:0}
.ds-txt b{overflow-wrap:anywhere}
.ds-txt small{color:var(--muted);font-size:.875rem}
.ds-plus{flex:none}
body.avec-coque .v2 .ds-carte .v2-menu{left:auto;right:0;min-width:min(240px,calc(100vw - 48px))}
.ds-carte .ds-form{width:100%}
.ds-form{display:flex;flex-direction:column;gap:12px}
.ds-form .v2-lbl{margin:0}
.ds-nouveau,.ds-panneau{padding:18px}
.ds-panneau fieldset{border:0;margin:0;padding:0;min-width:0}
.ds-panneau legend{margin-bottom:8px}
.ds-arbre{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:min(420px,60vh);overflow:auto}
.ds-cible{display:flex;align-items:center;gap:10px;padding-left:calc(var(--ds-n,0) * 22px);min-height:44px}
.ds-cible input{flex:none;width:22px;height:22px;margin:0;accent-color:var(--btn)}
.ds-cible input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.ds-cible label{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;min-height:44px;font-weight:700;overflow-wrap:anywhere;cursor:pointer}
.ds-cible input:disabled+label{color:var(--muted);cursor:not-allowed}
.ds-cible small{font-weight:600;color:var(--muted)}
.ds-choix-barre{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:12px 16px;border-radius:16px;border:1.5px solid var(--btn);background:var(--surface)}
.ds-case{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-weight:800;cursor:pointer;align-self:flex-start}
.ds-case input{width:22px;height:22px;margin:0;accent-color:var(--btn)}
.ds-case input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.sv-carte.ds-coche{border-color:var(--btn);box-shadow:0 0 0 2px var(--btn) inset}
.v2-chip.ds-chip{gap:6px;max-width:100%;overflow-wrap:anywhere}
@media (max-width:600px){
  .ds-tete .v2-actions,.ds-choix-barre .v2-actions{width:100%}
  .ds-tete .v2-actions .v2-btn,.ds-choix-barre .v2-actions .v2-btn{flex:1 1 100%}
}
@media (prefers-reduced-motion:reduce){.ds-zone *{transition:none!important;animation:none!important}}
