/* =========================================================
   Viser mieux · Carnet de lecture — habillage de l'application
   S'appuie sur les jetons de assets/style.css (couleurs, typo).
   Ce fichier ne contient que ce qui est propre à l'application.
   ========================================================= */

body.carnet{
  background:var(--sable-100);
  padding-bottom:80px;
}

/* ---------- En-tête mince ---------- */
.app-tete{
  position:sticky; top:0; z-index:40;
  background:rgba(251,248,242,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--sable-300);
}
.app-tete-in{
  max-width:1060px; margin:0 auto; padding:12px 22px;
  display:flex; align-items:center; gap:16px;
}
.app-tete .logo{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.app-tete .logo svg{width:30px;height:30px}
.app-tete .logo-txt{
  font-family:var(--serif); font-size:1.3rem; color:var(--encre); letter-spacing:.3px;
}
.app-tete .logo-txt em{font-style:italic; color:var(--sauge-500)}
.etiquette-demo{
  font-size:.7rem; letter-spacing:.14em; text-transform:uppercase;
  background:var(--terra-soft); color:#7A3E23;
  padding:3px 9px; border-radius:999px; font-weight:500;
}
.app-tete-fin{margin-left:auto; display:flex; align-items:center; gap:18px}
.app-retour{font-size:.9rem; color:var(--encre-doux)}
.app-retour:hover{color:var(--terra)}

/* ---------- Onglets ---------- */
.app-onglets{
  background:var(--creme); border-bottom:1px solid var(--sable-300);
  position:sticky; top:55px; z-index:35;
}
.app-onglets-in{
  max-width:1060px; margin:0 auto; padding:0 22px;
  display:flex; gap:4px; overflow-x:auto; scrollbar-width:none;
}
.app-onglets-in::-webkit-scrollbar{display:none}
.app-onglet{
  padding:14px 16px; font-size:.95rem; color:var(--encre-doux);
  border-bottom:2px solid transparent; white-space:nowrap;
  transition:color var(--trans), border-color var(--trans);
}
.app-onglet:hover{color:var(--sauge-700)}
.app-onglet.actif{color:var(--sauge-900); border-bottom-color:var(--sauge-500)}

/* ---------- Structure ----------
   Le site donne 96 px de respiration verticale à chaque <section> ;
   dans l'application, c'est .bloc qui règle l'espacement. */
.app section{padding:0}
.app{max-width:1060px; margin:0 auto; padding:34px 22px}
.app h1{font-size:clamp(1.9rem,4vw,2.6rem); margin-bottom:.2em}
.app h2{font-size:1.5rem; margin:0 0 14px}
.app h3{font-size:1.15rem}
.app-intro{color:var(--encre-doux); margin-bottom:30px; max-width:62ch}
.bloc{margin-bottom:44px}
.bloc-tete{display:flex; align-items:baseline; gap:14px; margin-bottom:16px; flex-wrap:wrap}
.bloc-tete h2{margin:0}
.bloc-tete .compte{color:var(--encre-doux); font-size:.9rem}

.k-carte{
  background:var(--blanc); border:1px solid var(--sable-300);
  border-radius:var(--r-m); box-shadow:var(--ombre);
}

/* ---------- Objectif annuel ---------- */
.objectif{
  display:grid; grid-template-columns:auto 1fr; gap:28px; align-items:center;
  padding:26px 30px;
}
.anneau{width:112px; height:112px; position:relative; flex:0 0 auto}
.anneau svg{transform:rotate(-90deg)}
.anneau-txt{
  position:absolute; inset:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; line-height:1.1;
}
.anneau-txt strong{font-family:var(--serif); font-size:1.7rem; color:var(--encre); font-weight:500}
.anneau-txt span{font-size:.72rem; color:var(--encre-doux); letter-spacing:.06em}
.objectif-txt h2{margin-bottom:6px}
.objectif-txt p{margin:0; color:var(--encre-doux)}
.objectif-chiffres{display:flex; gap:28px; margin-top:14px; flex-wrap:wrap}
.objectif-chiffres div{line-height:1.3}
.objectif-chiffres strong{
  display:block; font-family:var(--serif); font-size:1.5rem; color:var(--sauge-700); font-weight:500;
}
.objectif-chiffres span{font-size:.82rem; color:var(--encre-doux)}

/* ---------- Livres ---------- */
.grille-livres{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:22px;
}
.livre-vignette{
  background:var(--blanc); border:1px solid var(--sable-300); border-radius:var(--r-m);
  overflow:hidden; text-align:left; padding:0; cursor:pointer; width:100%;
  font-family:inherit; color:inherit; display:block;
  transition:transform var(--trans), box-shadow var(--trans);
}
.livre-vignette:hover{transform:translateY(-3px); box-shadow:var(--ombre-fort)}
.k-couv{
  aspect-ratio:2/3; background:var(--sauge-100); position:relative; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
.k-couv img{width:100%; height:100%; object-fit:cover}
.k-couv-vide{
  width:100%; height:100%; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(150deg,var(--sauge-300),var(--sauge-700));
  color:#fff; font-family:var(--serif); font-size:2.4rem; letter-spacing:.05em;
}
.k-couv .marque{
  position:absolute; top:8px; right:8px; font-size:1rem;
  background:rgba(255,255,255,.9); border-radius:999px; width:26px; height:26px;
  display:flex; align-items:center; justify-content:center;
}
.vignette-txt{padding:13px 15px 16px}
.vignette-txt strong{
  display:block; font-family:var(--serif); font-size:1.1rem; color:var(--encre);
  font-weight:500; line-height:1.25; margin-bottom:3px;
}
.vignette-txt em{font-style:normal; font-size:.85rem; color:var(--encre-doux); display:block}
.jauge{height:5px; background:var(--sable-200); border-radius:999px; margin-top:11px; overflow:hidden}
.jauge i{display:block; height:100%; background:var(--sauge-500); border-radius:999px}
.jauge-txt{font-size:.76rem; color:var(--encre-doux); margin-top:6px; display:block}

/* Ligne « en cours » du tableau de bord */
.en-cours{display:flex; gap:18px; padding:18px; align-items:center; margin-bottom:14px}
.en-cours .mini{width:62px; flex:0 0 auto; border-radius:8px; overflow:hidden}
/* Les initiales suivent la taille de la vignette */
.mini .k-couv-vide{font-size:1.15rem; letter-spacing:.02em}
.en-cours .mini .k-couv{border-radius:8px}
.en-cours-corps{flex:1; min-width:0}
.en-cours-corps strong{font-family:var(--serif); font-size:1.2rem; color:var(--encre); font-weight:500}
.en-cours-corps em{font-style:normal; color:var(--encre-doux); font-size:.88rem}
.page-ligne{display:flex; align-items:center; gap:10px; margin-top:10px; flex-wrap:wrap}
.page-ligne input[type=number]{
  width:78px; padding:7px 9px; border:1px solid var(--sable-300); border-radius:8px;
  font-family:inherit; font-size:.9rem; background:var(--creme); color:var(--encre);
}
.page-ligne span{font-size:.85rem; color:var(--encre-doux)}

/* ---------- Fiche de livre ---------- */
.fiche{display:grid; grid-template-columns:210px 1fr; gap:34px; align-items:start}
.fiche-couv{border-radius:var(--r-m); overflow:hidden; box-shadow:var(--ombre)}
.fiche h1{margin-bottom:4px}
.fiche-auteur{font-size:1.1rem; color:var(--encre-doux); margin-bottom:16px}
.fiche-meta{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:22px}
.pastille{
  font-size:.78rem; letter-spacing:.06em; padding:5px 12px; border-radius:999px;
  background:var(--sauge-100); color:var(--sauge-900);
}
.pastille.sable{background:var(--sable-200); color:#6B5A3E}
.pastille.terra{background:var(--terra-soft); color:#7A3E23}

/* ---------- Notes ---------- */
.type-choix{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px}
.type-btn{
  padding:7px 15px; border:1px solid var(--sable-300); background:var(--creme);
  border-radius:999px; font-family:inherit; font-size:.86rem; color:var(--encre-doux);
  cursor:pointer; transition:all var(--trans);
}
.type-btn:hover{border-color:var(--sauge-300)}
.type-btn.actif{background:var(--sauge-500); border-color:var(--sauge-500); color:#fff}
.k-note{
  padding:16px 18px; border-left:3px solid var(--sauge-300); background:var(--blanc);
  border-radius:0 var(--r-s) var(--r-s) 0; margin-bottom:12px;
}
.k-note.k-citation{border-left-color:var(--terra); font-style:italic}
.k-note.k-idee{border-left-color:var(--sauge-500)}
.k-note.k-reflexion{border-left-color:var(--sable-300)}
.k-note.k-a_appliquer{border-left-color:var(--sauge-900)}
.k-note p{margin:0 0 8px; color:var(--encre); font-weight:400; line-height:1.6}
.k-note-pied{display:flex; align-items:center; gap:12px; flex-wrap:wrap; font-size:.78rem; color:var(--encre-doux)}
.k-note-pied .type-nom{letter-spacing:.08em; text-transform:uppercase; font-size:.68rem}
.k-note-pied button{
  background:none; border:none; padding:0; font-family:inherit; font-size:.78rem;
  color:var(--encre-doux); cursor:pointer; text-decoration:underline; text-underline-offset:3px;
}
.k-note-pied button:hover{color:var(--terra)}
.k-note-pied select{
  font-family:inherit; font-size:.78rem; padding:3px 8px; border-radius:999px;
  border:1px solid var(--sable-300); background:var(--creme); color:var(--encre-doux);
}

/* ---------- Formulaires ---------- */
.k-champ{margin-bottom:16px}
.k-champ label{
  display:block; font-size:.85rem; color:var(--encre-doux); margin-bottom:6px; letter-spacing:.02em;
}
.k-champ input, .k-champ textarea, .k-champ select{
  width:100%; padding:11px 14px; border:1px solid var(--sable-300); border-radius:var(--r-s);
  font-family:inherit; font-size:.98rem; font-weight:300; background:var(--creme); color:var(--encre);
  transition:border-color var(--trans);
}
.k-champ textarea{resize:vertical; min-height:96px; line-height:1.6}
.k-champ input:focus, .k-champ textarea:focus, .k-champ select:focus{
  outline:none; border-color:var(--sauge-500);
}
.k-champs-2{display:grid; grid-template-columns:1fr 1fr; gap:16px}
.actions{display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-top:18px}
.btn-app{
  padding:11px 24px; border-radius:999px; border:1px solid var(--sauge-500);
  background:var(--sauge-500); color:#fff; font-family:inherit; font-size:.95rem;
  cursor:pointer; transition:all var(--trans);
}
.btn-app:hover{background:var(--sauge-700); border-color:var(--sauge-700)}
.btn-app.fantome{background:transparent; color:var(--sauge-700)}
.btn-app.fantome:hover{background:var(--sauge-100); color:var(--sauge-900)}
.btn-app.discret{
  border-color:transparent; background:transparent; color:var(--encre-doux); padding:11px 14px;
}
.btn-app.discret:hover{color:var(--terra); background:transparent}
.btn-app[disabled]{opacity:.5; cursor:not-allowed}

/* ---------- Étoiles ---------- */
.k-etoiles{display:flex; gap:4px}
.k-etoiles button{
  background:none; border:none; font-size:1.7rem; line-height:1; cursor:pointer;
  color:var(--sable-300); padding:0 2px; transition:color var(--trans);
}
.k-etoiles button.pleine{color:var(--terra)}

/* ---------- Recherche ---------- */
.recherche-ligne{display:flex; gap:10px; margin-bottom:20px}
.recherche-ligne input{
  flex:1; padding:13px 18px; border:1px solid var(--sable-300); border-radius:999px;
  font-family:inherit; font-size:1rem; font-weight:300; background:var(--blanc); color:var(--encre);
}
.recherche-ligne input:focus{outline:none; border-color:var(--sauge-500)}
.k-resultat{
  display:flex; gap:16px; padding:14px; align-items:center; margin-bottom:10px;
  cursor:pointer; background:var(--blanc); border:1px solid var(--sable-300);
  border-radius:var(--r-m); width:100%; text-align:left; font-family:inherit; color:inherit;
  transition:border-color var(--trans), box-shadow var(--trans);
}
.k-resultat:hover{border-color:var(--sauge-300); box-shadow:var(--ombre)}
.k-resultat .mini{width:46px; flex:0 0 auto; border-radius:6px; overflow:hidden}
.k-resultat-txt strong{display:block; font-family:var(--serif); font-size:1.08rem; color:var(--encre); font-weight:500}
.k-resultat-txt em{font-style:normal; font-size:.85rem; color:var(--encre-doux)}

/* ---------- Statistiques ---------- */
.chiffres{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:18px}
.chiffre{padding:22px 24px; text-align:center}
.chiffre strong{
  display:block; font-family:var(--serif); font-size:2.4rem; color:var(--sauge-700);
  font-weight:500; line-height:1;
}
.chiffre span{font-size:.85rem; color:var(--encre-doux); display:block; margin-top:6px}
.barres{display:flex; flex-direction:column; gap:11px}
.barre-ligne{display:grid; grid-template-columns:150px 1fr 34px; gap:12px; align-items:center; font-size:.9rem}
.barre-ligne .piste{height:10px; background:var(--sable-200); border-radius:999px; overflow:hidden}
.barre-ligne .piste i{display:block; height:100%; background:var(--sauge-500); border-radius:999px}
.barre-ligne b{font-weight:400; color:var(--encre-doux); text-align:right}

/* ---------- Vide / messages ---------- */
.vide{
  text-align:center; padding:52px 26px; color:var(--encre-doux);
  border:1px dashed var(--sable-300); border-radius:var(--r-m); background:var(--creme);
}
.vide p{max-width:44ch; margin:0 auto 18px}
.avis{
  padding:13px 18px; border-radius:var(--r-s); background:var(--sable-200);
  color:#6B5A3E; font-size:.9rem; margin-bottom:18px;
}
.avis.erreur{background:#F6E3DA; color:#8A4126}

/* Bandeau de démonstration */
.bandeau-demo{
  background:var(--sauge-900); color:var(--sauge-100); font-size:.86rem;
  padding:9px 22px; text-align:center;
}
.bandeau-demo strong{color:#fff; font-weight:400}

/* ---------- Fenêtre modale ---------- */
.voile{
  position:fixed; inset:0; background:rgba(46,58,51,.5); z-index:60;
  display:flex; align-items:flex-start; justify-content:center;
  padding:36px 18px; overflow-y:auto;
}
.modale{
  background:var(--creme); border-radius:var(--r-l); max-width:620px; width:100%;
  padding:34px 38px; box-shadow:var(--ombre-fort); margin:auto 0;
}
.modale h2{margin-bottom:6px}
.modale .sous{color:var(--encre-doux); margin-bottom:22px; font-size:.94rem}

/* Deux libellés pour le lien de retour : long au large, court à l'étroit */
.retour-long{display:inline}
.retour-court{display:none}

@media (max-width:760px){
  .app{padding:26px 18px}
  .app-tete-in{padding:11px 18px; gap:10px}
  .app-onglets-in{padding:0 18px}
  .objectif{grid-template-columns:1fr; text-align:center; justify-items:center; gap:18px}
  .objectif-chiffres{justify-content:center}
  .fiche{grid-template-columns:1fr; gap:22px}
  .fiche-couv{max-width:190px}
  .k-champs-2{grid-template-columns:1fr}
  .barre-ligne{grid-template-columns:104px 1fr 30px}
  .modale{padding:26px 22px}
  .grille-livres{grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:16px}
  .en-cours{gap:14px; align-items:flex-start}
  .en-cours .mini{width:52px}
  .page-ligne .btn-app{padding:9px 16px; font-size:.9rem}
}

@media (max-width:560px){
  .etiquette-demo{display:none}
  .retour-long{display:none}
  .retour-court{display:inline}
  .bandeau-demo{font-size:.8rem; padding:8px 16px}
  .chiffre{padding:18px 14px}
  .chiffre strong{font-size:2rem}
}

/* Étiquette lue par les lecteurs d'écran, invisible à l'œil */
.visuellement-cache{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* =========================================================
   VERSION 2 — le carnet n'est plus un compteur de livres.
   Ce qui suit habille la boucle : retenir, relier, appliquer,
   revoir.
   ========================================================= */

/* ---- Repère de la version payante ---- */
.badge-plus{
  display:inline-block; vertical-align:middle;
  font-size:.62rem; letter-spacing:.14em; text-transform:uppercase;
  background:var(--sable-300); color:#6B5A3E;
  padding:2px 8px; border-radius:999px; font-weight:500;
  margin-left:8px; cursor:help; position:relative; top:-2px;
}

/* ---- En-têtes de section ---- */
.bloc-tete .bloc-lien{
  margin-left:auto; font-size:.88rem; color:var(--sauge-700);
}
.bloc-tete .bloc-lien:hover{color:var(--terra)}
.eyebrow-app{
  display:block; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--encre-doux); margin-bottom:8px;
}
.indice{
  display:block; font-size:.82rem; color:var(--encre-doux); margin-top:12px; line-height:1.55;
}
.indice strong{color:var(--encre); font-weight:400}

/* ---- Première page : la promesse en cinq temps ---- */
.accueil-vide{max-width:680px}
.k-carte.boucle{padding:34px 38px}
.k-carte.boucle h2{margin-bottom:10px}
.boucle-liste{
  list-style:none; counter-reset:etape; padding:0; margin:22px 0 6px;
}
.boucle-liste li{
  counter-increment:etape; position:relative; padding-left:42px; margin-bottom:14px;
  color:var(--encre-doux);
}
.boucle-liste li::before{
  content:counter(etape); position:absolute; left:0; top:1px;
  width:27px; height:27px; border-radius:50%;
  background:var(--sauge-100); color:var(--sauge-900);
  display:flex; align-items:center; justify-content:center;
  font-size:.82rem; font-family:var(--serif);
}
.boucle-liste strong{color:var(--encre); font-weight:500}

/* ---- Intention de lecture ---- */
.intentions{display:grid; gap:12px; margin:22px 0 0}
.intentions.serre{gap:8px}
.intention{
  text-align:left; padding:16px 20px; border:1px solid var(--sable-300);
  background:var(--blanc); border-radius:var(--r-m); cursor:pointer;
  font-family:inherit; color:inherit; transition:all var(--trans);
}
.intention:hover{border-color:var(--sauge-300)}
.intention strong{
  display:block; font-family:var(--serif); font-size:1.12rem;
  color:var(--encre); font-weight:500; margin-bottom:2px;
}
.intention span{font-size:.86rem; color:var(--encre-doux)}
.intention.actif{
  border-color:var(--sauge-500); background:var(--sauge-100);
  box-shadow:inset 0 0 0 1px var(--sauge-500);
}
.resume-livre{
  padding-bottom:16px; border-bottom:1px solid var(--sable-200); margin-bottom:4px;
}
.resume-livre strong{
  display:block; font-family:var(--serif); font-size:1.3rem; color:var(--encre); font-weight:500;
}
.resume-livre em{font-style:normal; color:var(--encre-doux); font-size:.9rem}

/* ---- Notes : drapeau « à revoir », suite, liens ---- */
.k-note{position:relative}
.k-note.revoir{background:linear-gradient(90deg,var(--sable-100),var(--blanc) 40%)}
.k-note .fanion{
  position:absolute; top:12px; right:14px;
  font-size:.64rem; letter-spacing:.12em; text-transform:uppercase;
  color:#6B5A3E; background:var(--sable-200); padding:2px 8px; border-radius:999px;
}
.k-note.surligne{box-shadow:0 0 0 2px var(--sauge-300)}
.note-suite{
  margin:10px 0 4px; padding-left:14px; border-left:2px solid var(--sable-300);
  color:var(--encre-doux); font-size:.94rem; font-style:italic;
}
.note-liens{
  display:flex; flex-wrap:wrap; gap:8px; align-items:center;
  margin:10px 0 4px; font-size:.78rem; color:var(--encre-doux);
}
.note-liens > span{letter-spacing:.08em; text-transform:uppercase; font-size:.66rem}
.note-liens button{
  background:var(--creme); border:1px solid var(--sable-300); border-radius:999px;
  padding:3px 11px; font-family:inherit; font-size:.78rem; color:var(--encre-doux);
  cursor:pointer; text-decoration:none;
}
.note-liens button:hover{border-color:var(--sauge-300); color:var(--sauge-900)}
.etat{
  font-size:.68rem; letter-spacing:.1em; text-transform:uppercase;
  padding:2px 9px; border-radius:999px; background:var(--sable-200); color:#6B5A3E;
}
.etat-en_cours{background:var(--sauge-100); color:var(--sauge-900)}
.etat-appliquee{background:var(--sauge-500); color:#fff}
.etat-abandonnee{background:#EFE9E4; color:#8A8078}

/* ---- Pastilles ---- */
.pastille.mince{background:transparent; border:1px solid var(--sable-300); color:var(--encre-doux)}
.pastille.sauge{background:var(--sauge-100); color:var(--sauge-900)}
.pastille.bouton{
  border:1px dashed var(--sable-300); background:transparent; color:var(--encre-doux);
  font-family:inherit; cursor:pointer;
}
.pastille.bouton:hover{border-color:var(--sauge-300); color:var(--sauge-900)}

/* ---- La relance : « l'as-tu essayé ? » ---- */
.k-carte.relance{
  padding:24px 28px; margin-bottom:16px;
  border-left:3px solid var(--terra); background:var(--blanc);
}
.relance-txt{
  font-family:var(--serif); font-size:1.32rem; color:var(--encre);
  line-height:1.3; margin:0 0 6px;
}
.relance-src{font-size:.86rem; color:var(--encre-doux); margin:0 0 18px}
.relance-q{
  font-size:.9rem; color:var(--encre); margin:0 0 10px; font-weight:400;
}
.k-carte.relance .k-champ label em{font-style:normal; color:var(--encre-doux); font-size:.8rem}
.k-carte.relance small{
  display:block; font-size:.78rem; color:var(--encre-doux); margin-top:7px;
}
.type-btn.discret{border-style:dashed; color:var(--encre-doux)}

/* ---- La révision ---- */
.k-carte.revision{
  padding:22px 26px; margin-bottom:14px; border-left:3px solid var(--sauge-300);
}
.revision-txt{
  font-family:var(--serif); font-size:1.2rem; color:var(--encre);
  line-height:1.4; margin:0 0 12px;
}
.k-carte.revision .actions{margin-top:14px}

/* ---- Domaines de connaissances et de compétences ---- */
.grille-domaines{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:18px;
}
.grille-domaines.large{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.k-carte.domaine{
  padding:22px 24px; text-align:left; cursor:pointer; width:100%;
  font-family:inherit; color:inherit; display:block;
  transition:transform var(--trans), box-shadow var(--trans);
}
.k-carte.domaine:hover{transform:translateY(-3px); box-shadow:var(--ombre-fort)}
.k-carte.domaine h3, .domaine-detail h3{margin:0 0 12px; font-size:1.22rem}
.domaine-chiffres{display:grid; grid-template-columns:repeat(3,1fr); gap:10px}
.domaine-chiffres span{font-size:.8rem; color:var(--encre-doux); line-height:1.3}
.domaine-chiffres strong{
  display:block; font-family:var(--serif); font-size:1.4rem;
  color:var(--sauge-700); font-weight:500;
}
.domaine-detail{padding:24px 26px}
.chiffre-ligne{
  display:flex; justify-content:space-between; align-items:baseline;
  padding:7px 0; border-bottom:1px dashed rgba(90,125,106,.18); font-size:.92rem;
}
.chiffre-ligne:last-child{border-bottom:none}
.chiffre-ligne span{color:var(--encre-doux)}
.chiffre-ligne b{font-family:var(--serif); font-size:1.15rem; color:var(--sauge-900); font-weight:500}
.chiffre-ligne b em{font-style:normal; font-family:var(--sans); font-size:.78rem; color:var(--encre-doux)}

/* ---- Bandeau de progression, en bas du tableau de bord ---- */
.k-carte.bandeau-progression{padding:22px 26px}
.jauge.large{height:8px; margin-bottom:14px}
.bandeau-progression p{margin:0 0 4px; color:var(--encre-doux)}
.bandeau-progression strong{color:var(--encre); font-weight:400}
.bandeau-progression small{font-size:.82rem; color:var(--encre-doux)}

/* ---- Case à cocher dans une ligne de champs ---- */
.case{
  display:inline-flex; align-items:center; gap:8px;
  font-size:.85rem; color:var(--encre-doux); cursor:pointer;
}
.case input{accent-color:var(--sauge-500); width:16px; height:16px}

.type-choix.serre{gap:6px; margin-top:-4px}
.type-choix.serre .type-btn{font-size:.8rem; padding:5px 12px}
.k-champ small{display:block; font-size:.8rem; color:var(--encre-doux); margin-top:7px}

@media (max-width:760px){
  .grille-domaines, .grille-domaines.large{grid-template-columns:1fr}
  .k-carte.boucle{padding:24px 22px}
  .relance-txt{font-size:1.15rem}
  .bloc-tete .bloc-lien{margin-left:0; flex-basis:100%}
}

/* =========================================================
   VERSION 3 — cahier des modifications
   ========================================================= */

/* ---- Sous-onglets de « Mes apprentissages » ---- */
.sous-onglets{
  display:flex; gap:6px; flex-wrap:wrap; margin:0 0 28px;
  border-bottom:1px solid var(--sable-300); padding-bottom:0;
}
.sous-onglet{
  padding:10px 16px; font-size:.93rem; color:var(--encre-doux);
  border-bottom:2px solid transparent; white-space:nowrap;
  transition:color var(--trans), border-color var(--trans);
}
.sous-onglet:hover{color:var(--sauge-700)}
.sous-onglet.actif{color:var(--sauge-900); border-bottom-color:var(--sauge-500)}
.mini-plus{
  font-size:.58rem; letter-spacing:.12em; background:var(--sable-300);
  color:#6B5A3E; padding:1px 6px; border-radius:999px; vertical-align:middle;
}

/* ---- Le repère PLUS est cliquable ---- */
.badge-plus{
  border:none; font-family:inherit; cursor:pointer;
  display:inline-block; vertical-align:middle;
  font-size:.62rem; letter-spacing:.14em; text-transform:uppercase;
  background:var(--sable-300); color:#6B5A3E;
  padding:3px 9px; border-radius:999px; font-weight:500;
  margin-left:8px; position:relative; top:-2px;
  transition:background var(--trans), color var(--trans);
}
.badge-plus:hover{background:var(--terra); color:#fff}

/* ---- Bloc verrouillé ---- */
.k-carte.verrouille{
  padding:26px 30px; background:linear-gradient(135deg,var(--creme),var(--sable-100));
  border-style:dashed;
}
.k-carte.verrouille p{margin:0 0 4px; color:var(--encre-doux); max-width:62ch}
.liste-plus{list-style:none; padding:0; margin:0 0 22px}
.liste-plus li{
  padding:9px 0 9px 26px; position:relative; color:var(--encre-doux); font-size:.95rem;
  border-bottom:1px dashed rgba(90,125,106,.16);
}
.liste-plus li:last-child{border-bottom:none}
.liste-plus li::before{
  content:'·'; position:absolute; left:8px; top:7px;
  color:var(--sauge-500); font-size:1.3rem;
}
.liste-plus strong{color:var(--encre); font-weight:500}
.offre{
  background:var(--sauge-100); border-radius:var(--r-m); padding:18px 22px; margin-bottom:20px;
}
.offre strong{
  display:block; font-family:var(--serif); font-size:1.5rem;
  color:var(--sauge-900); font-weight:500; margin-bottom:4px;
}
.offre span{font-size:.84rem; color:var(--encre-doux); line-height:1.5}

/* ---- Types de notes : la citation se distingue ---- */
.type-nom{letter-spacing:.08em; text-transform:uppercase; font-size:.66rem}
.t-citation{color:var(--terra)}
.t-idee{color:var(--sauge-700)}
.t-reflexion{color:#8A7B5E}
.t-a_appliquer{color:var(--sauge-900)}
.t-a_revoir{color:#8A6A4A}
.k-note.k-citation{border-left-color:var(--terra); background:var(--sable-100)}
.k-note.k-citation > p{font-family:var(--serif); font-size:1.22rem; font-style:italic; line-height:1.45}
.k-note.k-idee{border-left-color:var(--sauge-500)}
.k-note.k-reflexion{border-left-color:var(--sable-300)}
.k-note.k-a_appliquer{border-left-color:var(--sauge-900)}
.k-note.k-a_revoir{border-left-color:#C9A227}

.note-suite{
  margin:12px 0 4px; padding:10px 14px; background:var(--creme);
  border-radius:var(--r-s); color:var(--encre-doux); font-size:.92rem;
}
.note-suite span{
  display:block; font-size:.64rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--sauge-700); margin-bottom:4px;
}
.note-outils{
  display:flex; gap:14px; flex-wrap:wrap; margin-top:12px;
  padding-top:10px; border-top:1px dashed rgba(90,125,106,.16);
}
.note-outils button{
  background:none; border:none; padding:0; font-family:inherit; font-size:.78rem;
  color:var(--encre-doux); cursor:pointer; text-decoration:underline; text-underline-offset:3px;
}
.note-outils button:hover{color:var(--terra)}
.action-barre{display:flex; gap:6px; flex-wrap:wrap; margin:12px 0 4px}
.type-btn.mini{font-size:.78rem; padding:4px 12px}
.type-btn.bloque{opacity:.72; border-style:dashed}
.etat.rappel{background:#F6EFD9; color:#8A6A4A}

/* ---- Bibliothèque : barre d'outils et filtres ---- */
.barre-outils{
  display:flex; gap:16px; align-items:center; flex-wrap:wrap; margin-bottom:18px;
}
.barre-outils label{
  display:inline-flex; align-items:center; gap:8px;
  font-size:.86rem; color:var(--encre-doux);
}
.barre-outils select{
  padding:7px 11px; border:1px solid var(--sable-300); border-radius:999px;
  font-family:inherit; font-size:.86rem; background:var(--blanc); color:var(--encre);
}
.panneau-filtres{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:14px;
  background:var(--blanc); border:1px solid var(--sable-300); border-radius:var(--r-m);
  padding:20px 22px; margin-bottom:24px;
}
/* display:grid l'emporterait sur le [hidden] du navigateur */
.panneau-filtres[hidden]{display:none}
.panneau-filtres .k-champ{margin-bottom:0}
.panneau-filtres .k-champ span{
  display:block; font-size:.8rem; color:var(--encre-doux); margin-bottom:6px;
}
.titre-groupe{
  font-size:1.1rem; margin:30px 0 14px; padding-bottom:8px;
  border-bottom:1px solid var(--sable-300); display:flex; align-items:baseline; gap:10px;
}
.titre-groupe span{
  font-family:var(--sans); font-size:.78rem; color:var(--encre-doux); font-weight:300;
}

/* ---- Fiche de livre ---- */
.dates-lecture{font-size:.88rem; color:var(--encre-doux); margin:-8px 0 20px}
.pastille.etiq{background:#F2E9DC; color:#7A6A52; border:1px dashed var(--sable-300)}
.separation{border:none; border-top:1px solid var(--sable-200); margin:24px 0}
.etiq-choix{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:12px}
.date-perso{
  padding:6px 11px; border:1px solid var(--sable-300); border-radius:999px;
  font-family:inherit; font-size:.82rem; background:var(--creme); color:var(--encre);
}

/* ---- Domaines ---- */
.domaine-resume{margin:0; font-size:.86rem; color:var(--encre-doux); line-height:1.5}
.domaine-desc{font-size:.92rem; color:var(--encre-doux); margin:0 0 10px}
.domaine-objectif{
  font-size:.9rem; color:var(--encre); margin:0 0 4px;
  padding:10px 14px; background:var(--sauge-100); border-radius:var(--r-s);
}
.domaine-objectif span{
  display:block; font-size:.62rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--sauge-700); margin-bottom:3px;
}

/* ---- Histogramme des mois ---- */
.histogramme{display:flex; gap:6px; align-items:flex-end; height:120px}
.histogramme .colonne{
  flex:1; display:flex; flex-direction:column; justify-content:flex-end;
  align-items:center; height:100%; gap:7px;
}
.histogramme i{
  display:block; width:100%; background:var(--sauge-300); border-radius:4px 4px 0 0;
  min-height:2px;
}
.histogramme span{font-size:.62rem; color:var(--encre-doux); white-space:nowrap}

.ligne-revue{
  padding:16px 20px; margin-bottom:10px; display:flex; gap:16px;
  align-items:baseline; justify-content:space-between; flex-wrap:wrap;
}
.ligne-revue p{margin:0; color:var(--encre-doux); font-size:.93rem; flex:1; min-width:200px}

@media (max-width:760px){
  .barre-outils{gap:10px}
  .barre-outils label{font-size:.82rem}
  .panneau-filtres{grid-template-columns:1fr}
  .histogramme{height:90px; gap:3px}
  .histogramme span{font-size:.54rem}
  .sous-onglets{overflow-x:auto; flex-wrap:nowrap; scrollbar-width:none}
  .sous-onglets::-webkit-scrollbar{display:none}
}

/* Trois actions par fiche de domaine : elles doivent tenir sur une ligne */
.domaine-detail .actions{gap:8px}
.domaine-detail .actions .btn-app{padding:8px 15px; font-size:.86rem}
.domaine-detail .actions .btn-app.discret{padding:8px 10px}
