/* Leçons futées — Design v2, partie E : écrans de suivi (Mes parcours ; puis Bilans et Tableau de bord).
   Chargée SEULEMENT par /app/ et /decouverte/, SANS data-lf : jamais dans le fichier partagé, jamais dans /lecteur/.
   Reprend les composants de ecrans-v2.css (v2-carte, v2-chip, v2-btn, v2-plus, v2-menu) et leurs couleurs d'ambiance
   (var(--surface), var(--line), var(--ink), var(--muted), var(--btn), var(--focus), --v2-*), donc les 9 ambiances
   claires et sombres. Ici : mises en page seulement. Un seul point de rupture : 900 px. */

/* ---------- 1. Mes parcours ---------- */
.sv-ok{background:var(--v2-ok-bg);border-color:var(--v2-ok-bg);color:var(--v2-ok-txt)}
.sv-ouvert{background:var(--v2-violet-bg);border-color:var(--v2-violet-bord);color:var(--v2-violet)}
body.avec-coque .v2 .sv-filtres{margin:0;gap:12px 14px}
body.avec-coque .v2 .sv-filtres .mp-bloc{flex:1 1 170px}
body.avec-coque .v2 .sv-filtres .sv-rech{flex:2 1 260px}
body.avec-coque .v2 .sv-filtres .v2-lbl{margin:0 0 6px}
body.avec-coque .v2 .sv-filtres .mp-champ{border-width:1.5px;border-radius:12px;background:var(--surface);font-family:Nunito,var(--font-body);font-size:.9375rem}
.lf-police .v2 .sv-filtres .mp-champ{font-family:var(--font-body)}
.sv-champ-rech{position:relative;display:flex;align-items:center}
.sv-champ-rech svg{position:absolute;left:14px;color:var(--muted);pointer-events:none}
body.avec-coque .v2 .sv-champ-rech .mp-champ{padding-left:42px}
body.avec-coque .v2 #mp-etat{margin:-8px 0 -10px;font-weight:700}
body.avec-coque .v2-mp #mp-msg:empty{display:none}
body.avec-coque .v2-mp #mp-images{margin-top:-12px}
.sv-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:18px;align-items:stretch}
body.avec-coque .v2 .sv-carte{margin:0;gap:12px;padding:20px}
body.avec-coque .v2 .sv-carte .v2-chips{margin:0}
body.avec-coque .v2 .sv-carte h3{font-size:1.25rem;line-height:1.25;overflow-wrap:anywhere}
body.avec-coque .v2 .sv-carte h3:focus{outline:3px solid var(--focus);outline-offset:3px;border-radius:6px}
.sv-etoiles{display:flex;flex-direction:column;gap:6px}
.sv-etoiles p{display:flex;align-items:center;gap:6px;font-size:.9375rem}
.sv-etoile{color:#C98B00;font-size:1.125rem;line-height:1}
.sv-piste{height:8px;border-radius:999px;background:var(--bg);border:1px solid var(--line);overflow:hidden}
.sv-piste i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#FFCC3F,#FFB03B)}
.sv-act{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:auto;padding-top:4px}
.sv-act .v2-plus{margin-left:auto}
body.avec-coque .v2 .sv-carte .v2-menu{left:auto;right:0;min-width:min(260px,calc(100vw - 48px))}
.sv-renact{margin-top:12px}
body.avec-coque .v2 .sv-carte .mp-champ{border-width:1.5px;font-family:Nunito,var(--font-body);font-size:1rem}
.sv-nouvelle{display:flex}
.sv-nouvelle button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:180px;padding:20px;border-radius:24px;
  border:2px dashed color-mix(in srgb,var(--line) 45%,var(--muted));background:transparent;color:var(--ink);font-family:Nunito,var(--font-body);font-weight:800;font-size:1rem;cursor:pointer}
.lf-police .sv-nouvelle button{font-family:var(--font-body)}
.sv-nouvelle button:hover{border-color:var(--btn);background:var(--surface)}
.sv-nouvelle button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.sv-nplus{width:48px;height:48px;border-radius:50%;background:var(--btn);color:var(--btn-ink);display:inline-flex;align-items:center;justify-content:center}
body.avec-coque .v2 .sv-vide{grid-column:1/-1}
.sv-fantome{min-height:180px}
.sv-fantome i{display:block;height:14px;border-radius:999px;background:var(--line)}
.sv-fantome i:nth-child(1){width:40%}
.sv-fantome i:nth-child(2){width:75%;height:20px}
.sv-fantome i:nth-child(3){width:55%}
@media (prefers-reduced-motion:no-preference){.sv-fantome i{animation:svPulse 1.6s ease-in-out infinite}}
@keyframes svPulse{0%,100%{opacity:1}50%{opacity:.45}}
@media (max-width:900px){
  body.avec-coque .v2-mp .v2-entete .v2-actions{width:100%}
  body.avec-coque .v2-mp .v2-entete .v2-actions .v2-btn{flex:1 1 100%}
  .sv-nouvelle button{min-height:120px}
}

/* ---------- 2. Bilans ---------- */
.sv-revoir{background:var(--try-bg);border-color:var(--try);color:var(--ink)}
.sv-resume{display:flex;align-items:center;gap:24px;padding:24px 28px;border:2px solid #FFCC3F}
.sv-res-perso{flex:none;width:120px;display:flex;justify-content:center}
.sv-res-img{width:auto;max-width:120px;max-height:140px;height:auto;filter:drop-shadow(0 4px 6px rgba(0,0,0,.3))}
.sv-res-txt{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}
.sv-res-txt p{color:#DCD8F5;font-size:1rem;line-height:1.45}
body.avec-coque .v2 .sv-res-grand{font-family:Fredoka,var(--font-display);font-size:3rem;font-weight:700;line-height:1;color:#FFFFFF}
.lf-police .v2 .sv-res-grand{font-family:var(--font-body)}
.sv-res-grand span{font-family:Nunito,var(--font-body);font-size:1rem;font-weight:700;color:#DCD8F5}
.sv-tuiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:14px}
@media (max-width:900px){.sv-tuiles{grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr))}}
body.avec-coque .v2 .sv-tuile{gap:4px;padding:18px 20px}
.sv-tl{font-size:.8125rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
body.avec-coque .v2 .sv-tv{font-family:Fredoka,var(--font-display);font-size:2.125rem;font-weight:700;line-height:1.1;color:var(--ink)}
.lf-police .v2 .sv-tv{font-family:var(--font-body)}
.sv-tv small{font-size:1.125rem;color:var(--muted)}
.sv-table{width:100%;border-collapse:collapse}
.sv-table th,.sv-table td{padding:12px 10px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--line);font-size:.9375rem}
.sv-table th{font-size:.75rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.sv-table td b{overflow-wrap:anywhere}
.sv-tr-test td{background:var(--bg)}
.sv-muet{color:var(--muted)}
.sv-et3{color:#B07800;letter-spacing:.08em;font-size:1.125rem}
.sv-et-off{color:var(--line)}
:root[data-theme="dark"] .sv-et3{color:#FFCC3F}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .sv-et3{color:#FFCC3F}}
.sv-deux{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}
@media (min-width:1100px){.sv-deux{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.sv-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.sv-liste li{display:flex;gap:12px;align-items:flex-start}
.sv-liste li>div{display:flex;flex-direction:column;gap:4px;min-width:0;overflow-wrap:anywhere}
.sv-puce{flex:none;width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:.875rem}
.sv-li-ok .sv-puce{background:var(--good-bg);color:var(--good);border:1.5px solid var(--good)}
.sv-li-no .sv-puce{background:var(--try-bg);color:var(--try);border:1.5px solid var(--try)}
.sv-carnet{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;padding-top:14px;border-top:1.5px solid var(--line)}
.sv-carnet p{flex:1 1 200px}
@media (max-width:900px){
  .sv-resume{flex-direction:column;align-items:flex-start;padding:20px 18px;gap:12px}
  .sv-res-perso{width:auto}
  .sv-res-img{max-height:100px}
  body.avec-coque .v2 .sv-res-grand{font-size:2.5rem}
  .sv-res-grand span{display:block;margin-top:6px}
  .sv-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .sv-table,.sv-table tbody,.sv-table tr,.sv-table td{display:block;width:100%}
  .sv-table tr{border:1.5px solid var(--line);border-radius:16px;padding:10px 14px;margin-bottom:10px}
  .sv-table td{border:0;padding:4px 0;display:flex;gap:10px;align-items:baseline}
  .sv-table td::before{content:attr(data-l);flex:none;width:6.5em;font-size:.75rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
  .sv-tr-test{background:var(--bg)}
  .sv-tr-test td{background:transparent}
}

/* ---------- 3. Tableau de bord ---------- */
.sv-date{font-size:.8125rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--v2-violet)}
.sv-repr{display:flex;align-items:center;gap:28px;padding:26px 30px}
.sv-repr-perso{flex:none;width:120px;display:flex;justify-content:center}
.sv-repr-img{width:auto;max-width:120px;max-height:140px;height:auto;filter:drop-shadow(0 4px 6px rgba(0,0,0,.3))}
.sv-repr-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}
.sv-surtitre{font-size:.8125rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#FFE69A}
body.avec-coque .v2 .sv-repr h2{font-size:1.75rem;line-height:1.15;color:#FFFFFF;overflow-wrap:anywhere}
.sv-repr-txt>p{color:#DCD8F5}
.sv-jaune{color:#FFE69A;font-weight:800}
.sv-piste-nuit{background:rgba(255,255,255,.15);border:0;max-width:420px}
.sv-repr .v2-actions{margin-top:4px}
body.avec-coque .v2 .sv-sur-nuit{background:transparent;color:#FFFFFF;border-color:rgba(255,255,255,.55)}
body.avec-coque .v2 .sv-sur-nuit:hover:not(:disabled){border-color:#FFFFFF}
.sv-cols{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}
@media (min-width:1100px){.sv-cols{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}}
.sv-colg,.sv-cold{display:flex;flex-direction:column;gap:20px;min-width:0}
body.avec-coque .v2 .sv-col{gap:12px}
.sv-col-tete{display:flex;align-items:center;justify-content:space-between;gap:12px}
.sv-voir,.sv-lien{min-height:44px;display:inline-flex;align-items:center;padding:0 4px;font-weight:800;font-size:.9375rem;color:var(--btn);text-decoration:underline;text-underline-offset:3px;background:none;border:0;cursor:pointer}
.sv-lien{display:inline;min-height:0;padding:0}
.sv-voir:focus-visible,.sv-lien:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}
.sv-lignes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.sv-ligne{width:100%;display:flex;align-items:center;gap:14px;min-height:64px;padding:10px 12px;border-radius:16px;border:1.5px solid transparent;background:transparent;color:var(--ink);text-align:left;font-family:Nunito,var(--font-body);cursor:pointer}
.lf-police .sv-ligne{font-family:var(--font-body)}
.sv-ligne:hover:not(:disabled){background:var(--bg)}
.sv-ligne:focus-visible{outline:3px solid var(--focus);outline-offset:1px}
.sv-ligne:disabled{opacity:.6;cursor:wait}
.sv-carre{flex:none;width:44px;height:44px;border-radius:14px;background:var(--v2-violet-bg);color:var(--v2-violet);display:inline-flex;align-items:center;justify-content:center}
.sv-ligne-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.sv-ligne-txt b{font-size:1rem;overflow-wrap:anywhere}
.sv-ligne-txt small{font-size:.8125rem;font-weight:700;color:var(--muted)}
.sv-ligne-fin{flex:none;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;max-width:45%}
.sv-ligne-et{font-weight:800;font-size:.875rem}
.sv-ligne-nouvelle{border:2px dashed color-mix(in srgb,var(--line) 45%,var(--muted))}
.sv-ligne-nouvelle .sv-carre{background:var(--btn);color:var(--btn-ink);border-radius:50%}
body.avec-coque .v2 .sv-col .v2e-comp-apercu{margin:0}
@media (max-width:900px){
  .sv-repr{flex-direction:column;align-items:flex-start;padding:20px 18px;gap:12px}
  .sv-repr-perso{width:auto}
  .sv-repr-img{max-height:100px}
  body.avec-coque .v2 .sv-repr h2{font-size:1.5rem}
  .sv-repr .v2-actions .v2-btn{flex:1 1 100%}
  body.avec-coque .v2-tableau .v2-entete .v2-actions{width:100%}
  body.avec-coque .v2-tableau .v2-entete .v2-actions .v2-btn{flex:1 1 100%}
  .sv-ligne{flex-wrap:wrap}
  .sv-ligne-txt{flex:1 1 calc(100% - 58px)}
  .sv-ligne-txt:first-child+.sv-ligne-fin{margin-left:0}
  .sv-ligne-fin{max-width:none;margin-left:58px;justify-content:flex-start}
}
