/* ============================================================
   Le carnet du dedans — styles du module
   ============================================================ */

.carnet {
  background: radial-gradient(120% 70% at 50% -10%, #FFFDF8 0%, var(--paper) 55%, var(--paper-warm) 100%);
  min-height: 100vh;
}

/* — page d'entrée : le seuil — */
.carnet-seuil {
  max-width: 38rem;
  margin: 0 auto;
  padding: clamp(2rem, 7vh, 4rem) var(--space-lg) var(--space-lg);
  text-align: center;
}
.carnet-seuil__ar {
  font-family: var(--font-arabic);
  font-size: clamp(2.4rem, 8vw, 3.5rem);
  color: var(--gold);
  margin-bottom: 0.4rem;
  letter-spacing: 0.04em;
}
.carnet-seuil h1 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(2rem, 6vw, 2.9rem);
  color: var(--ink-title);
  margin: 0 0 var(--space-xs);
}
.carnet-seuil__sub {
  font-family: var(--font-display);
  font-size: clamp(1.05rem, 2.5vw, 1.25rem);
  color: var(--ink-soft);
  margin: 0 0 var(--space-lg);
}
.carnet-seuil__sub em { color: var(--gold); }
.carnet-seuil__text {
  font-family: var(--font-display);
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--ink-soft);
  max-width: 32rem;
  margin: 0 auto var(--space-md);
}
.carnet-seuil__text--soft {
  font-style: italic;
  color: var(--ink-mute);
  margin-top: var(--space-md);
}

/* — les deux portes — */
.carnet-portes {
  max-width: 44rem;
  margin: 0 auto;
  padding: var(--space-md) var(--space-lg) var(--space-xl);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--space-lg);
}
.carnet-porte {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: var(--space-xl) var(--space-lg);
  background: linear-gradient(170deg, #FFFDF8, var(--paper-deep));
  border: 1px solid var(--gold-soft);
  border-radius: 18px;
  text-decoration: none;
  color: inherit;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.carnet-porte:hover {
  transform: translateY(-4px);
  border-color: var(--gold);
  box-shadow: 0 18px 36px -24px rgba(27,42,78,0.5);
}
.carnet-porte--soft {
  background: linear-gradient(170deg, var(--paper-warm), var(--paper));
  border-color: var(--line);
}
.carnet-porte--soft:hover { border-color: var(--gold); }
.carnet-porte__ar {
  font-family: var(--font-arabic);
  font-size: clamp(2rem, 5vw, 2.6rem);
  color: var(--gold);
  margin-bottom: 0.6rem;
  line-height: 1.2;
}
.carnet-porte__titre {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(1.2rem, 3vw, 1.45rem);
  color: var(--ink-title);
  margin-bottom: 0.3rem;
}
.carnet-porte__sub {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1rem;
  color: var(--ink-soft);
}

/* — note de bas, discrète — */
.carnet-note {
  max-width: 34rem;
  margin: 0 auto;
  padding: 0 var(--space-lg) var(--space-2xl);
  text-align: center;
}
.carnet-note p {
  font-family: var(--font-display);
  font-size: 0.92rem;
  color: var(--ink-mute);
  line-height: 1.65;
}

/* ============================================================
   Formulaires (demande, entrer)
   ============================================================ */

.carnet-form {
  max-width: 34rem;
  margin: 0 auto;
  padding: clamp(2rem, 7vh, 4rem) var(--space-lg) var(--space-lg);
  text-align: center;
}
.carnet-form__ar {
  font-family: var(--font-arabic);
  font-size: clamp(2.2rem, 7vw, 3rem);
  color: var(--gold);
  margin-bottom: 0.4rem;
}
.carnet-form h1 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(1.8rem, 5vw, 2.4rem);
  color: var(--ink-title);
  margin: 0 0 var(--space-xs);
}
.carnet-form__sub {
  font-family: var(--font-display);
  font-size: 1.05rem;
  color: var(--ink-soft);
  margin: 0 0 var(--space-lg);
}
.carnet-form__sub em { color: var(--gold); }
.carnet-form__intro {
  font-family: var(--font-display);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--ink-soft);
  margin: 0 auto var(--space-lg);
  max-width: 28rem;
  text-align: center;
}
.carnet-form__note {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.9rem;
  color: var(--ink-mute);
  margin-top: var(--space-xl);
}
.carnet-form__error {
  margin-top: var(--space-md);
  font-family: var(--font-sans);
  font-size: 0.9rem;
  color: #b4523f;
  background: rgba(180,82,63,0.08);
  padding: 0.7rem 1rem;
  border-radius: 8px;
  text-align: left;
}

.carnet-field {
  display: block;
  margin: var(--space-md) auto;
  text-align: left;
  max-width: 28rem;
}
.carnet-field label {
  display: block;
  font-family: var(--font-sans);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.4rem;
}
.carnet-field__optional {
  text-transform: none;
  letter-spacing: 0;
  color: var(--ink-mute);
  font-size: 0.78rem;
  font-style: italic;
  margin-left: 0.3rem;
}
.carnet-field input,
.carnet-field textarea,
.carnet-field select {
  width: 100%;
  font-family: var(--font-display);
  font-size: 1.05rem;
  padding: 0.7rem 0.9rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--paper);
  color: var(--ink-title);
  outline: none;
  transition: border-color 0.2s;
  box-sizing: border-box;
}
.carnet-field input:focus,
.carnet-field textarea:focus,
.carnet-field select:focus {
  border-color: var(--gold);
  background: #FFFDF8;
}
.carnet-field textarea { resize: vertical; min-height: 4rem; }
.carnet-field__hint {
  display: block;
  margin-top: 0.4rem;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.85rem;
  color: var(--ink-mute);
}

.carnet-btn {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 0.92rem;
  letter-spacing: 0.03em;
  padding: 0.75rem 1.6rem;
  border-radius: 999px;
  border: 1px solid var(--gold-soft);
  background: var(--paper);
  color: var(--ink-soft);
  cursor: pointer;
  transition: all 0.2s;
  margin-top: var(--space-md);
}
.carnet-btn:hover { border-color: var(--gold); color: var(--gold); transform: translateY(-1px); }
.carnet-btn:disabled { opacity: 0.5; cursor: default; transform: none; }
.carnet-btn--gold {
  background: var(--gold);
  color: #FFFDF8;
  border-color: var(--gold);
}
.carnet-btn--gold:hover {
  background: #b08840;
  border-color: #b08840;
  color: #FFFDF8;
}
.carnet-btn--ghost { background: transparent; border: 1px dashed var(--gold-soft); }

/* — ticket de demande — */
.carnet-ticket {
  margin: var(--space-lg) auto;
  padding: var(--space-lg);
  max-width: 26rem;
  border: 1px solid var(--gold-soft);
  border-radius: 16px;
  background: linear-gradient(170deg, #FFFDF8, var(--paper-deep));
  text-align: center;
}
.carnet-ticket__label {
  font-family: var(--font-sans);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.6rem;
}
.carnet-ticket__code {
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 4vw, 1.8rem);
  color: var(--ink-title);
  letter-spacing: 0.04em;
  margin-bottom: var(--space-sm);
  user-select: all;
}

/* ============================================================
   Page Aujourd'hui
   ============================================================ */

.carnet-jour {
  max-width: 38rem;
  margin: 0 auto;
  padding: clamp(1.5rem, 5vh, 3rem) var(--space-lg) var(--space-2xl);
}
.jour-head {
  text-align: center;
  padding-bottom: var(--space-lg);
  border-bottom: 1px solid var(--gold-soft);
}
.jour-hello {
  font-family: var(--font-display);
  font-size: 1.4rem;
  color: var(--ink-title);
  margin: 0 0 0.3rem;
}
.jour-hello em { color: var(--gold); font-style: italic; }
.jour-date {
  font-family: var(--font-sans);
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: capitalize;
  color: var(--ink-mute);
  margin: 0 0 var(--space-md);
}
.jour-compagnon {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.5rem 1rem;
  background: rgba(192,160,80,0.08);
  border-radius: 999px;
  border: 1px solid var(--gold-soft);
}
.jour-compagnon__ar { font-family: var(--font-arabic); font-size: 1.3rem; color: var(--gold); }
.jour-compagnon__tr { font-family: var(--font-display); font-style: italic; color: var(--ink-soft); font-size: 0.95rem; }

.jour-section {
  padding: var(--space-xl) 0;
  border-bottom: 1px solid var(--line);
}
.jour-section:last-child { border-bottom: none; }
.jour-section__titre {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.6rem;
  color: var(--ink-title);
  margin: 0 0 0.3rem;
  text-align: center;
}
.jour-section__sub {
  text-align: center;
  font-family: var(--font-display);
  font-size: 1rem;
  color: var(--ink-mute);
  margin: 0 0 var(--space-lg);
}
.jour-section__sub em { color: var(--gold); }

.jour-field {
  display: block;
  margin: var(--space-md) 0;
}
.jour-field > span {
  display: block;
  font-family: var(--font-sans);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.4rem;
}
.jour-field select,
.jour-field textarea {
  width: 100%;
  font-family: var(--font-display);
  font-size: 1.05rem;
  padding: 0.7rem 0.9rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--paper);
  color: var(--ink-title);
  outline: none;
  box-sizing: border-box;
}
.jour-field select:focus,
.jour-field textarea:focus {
  border-color: var(--gold);
  background: #FFFDF8;
}

.jour-save-ok {
  margin-left: 0.8rem;
  font-family: var(--font-display);
  font-style: italic;
  color: var(--gold);
}

.jour-cercle {
  margin: var(--space-lg) 0;
}
.jour-cercle__titre {
  font-family: var(--font-sans);
  font-size: 0.74rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  text-align: center;
  margin: 0 0 var(--space-md);
}

.jour-pratique {
  margin-bottom: var(--space-md);
  padding: var(--space-md) var(--space-md);
  background: linear-gradient(170deg, #FFFDF8, var(--paper-deep));
  border: 1px solid var(--line);
  border-radius: 14px;
}
.jour-pratique__nom {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.15rem;
  color: var(--ink-title);
}
.jour-pratique__amont {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.95rem;
  color: var(--ink-mute);
  margin: 0.5rem 0;
  line-height: 1.55;
}
.jour-pratique__q {
  font-family: var(--font-display);
  font-size: 1.02rem;
  color: var(--ink-soft);
  margin: 0.6rem 0 0.7rem;
}

.jour-choix {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
}
.jour-choix label {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.5rem 0.7rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  cursor: pointer;
  font-family: var(--font-display);
  font-size: 0.92rem;
  color: var(--ink-soft);
  transition: all 0.2s;
}
.jour-choix label:hover { border-color: var(--gold); color: var(--ink-title); }
.jour-choix input[type="radio"] { accent-color: var(--gold); }
.jour-choix label:has(input[type="radio"]:checked) {
  background: rgba(192,160,80,0.12);
  border-color: var(--gold);
  color: var(--gold);
}

.jour-aval {
  margin-top: var(--space-md);
  padding: 0.9rem 1rem;
  border-left: 3px solid var(--gold-soft);
  background: rgba(192,160,80,0.05);
  border-radius: 6px;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--ink-soft);
}

/* ============================================================
   Mon miroir — page d'historique
   ============================================================ */
.miroir-calendar {
  display: grid;
  grid-template-columns: repeat(15, 1fr);
  gap: 4px;
  max-width: 32rem;
  margin: 0 auto var(--space-lg);
}
@media (max-width: 480px) {
  .miroir-calendar { grid-template-columns: repeat(10, 1fr); }
}
.miroir-cell {
  aspect-ratio: 1;
  border-radius: 4px;
  background: var(--paper);
  border: 1px solid var(--line);
  transition: transform 0.15s;
}
.miroir-cell:hover { transform: scale(1.15); }
.miroir-cell--matin { background: rgba(192,160,80,0.25); border-color: var(--gold-soft); }
.miroir-cell--soir  { background: rgba(192,160,80,0.5); border-color: var(--gold); }
.miroir-cell--full  { background: var(--gold); border-color: var(--gold); }

.miroir-stats {
  display: flex; justify-content: center; gap: var(--space-xl);
  margin-top: var(--space-md);
}
.miroir-stat { text-align: center; }
.miroir-stat__n {
  display: block;
  font-family: var(--font-display);
  font-size: 1.6rem;
  color: var(--gold);
  font-weight: 500;
}
.miroir-stat__l {
  display: block;
  font-family: var(--font-sans);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-mute);
}

.miroir-jours {
  display: flex; flex-direction: column; gap: var(--space-md);
}
.miroir-jour {
  padding: var(--space-md);
  background: linear-gradient(170deg, #FFFDF8, var(--paper-deep));
  border: 1px solid var(--line);
  border-radius: 12px;
}
.miroir-jour__head {
  display: flex; justify-content: space-between; align-items: baseline;
  flex-wrap: wrap; gap: 0.5rem;
  border-bottom: 1px solid var(--line);
  padding-bottom: 0.5rem;
  margin-bottom: var(--space-sm);
}
.miroir-jour__date {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.1rem;
  color: var(--ink-title);
  margin: 0;
  text-transform: capitalize;
}
.miroir-jour__sum {
  display: flex; gap: 0.8rem;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.92rem;
  color: var(--ink-soft);
}
.miroir-jour__sum strong { color: var(--gold); font-weight: 500; }

.miroir-detail-section { margin: var(--space-sm) 0; }
.miroir-detail-label {
  font-family: var(--font-sans);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.3rem;
}
.miroir-detail-line {
  font-family: var(--font-display);
  font-size: 0.98rem;
  color: var(--ink-soft);
  margin: 0.2rem 0;
  line-height: 1.55;
}
.miroir-detail-line em { color: var(--gold); font-style: italic; }

.miroir-reps {
  display: flex; flex-wrap: wrap; gap: 0.4rem;
  margin-top: 0.5rem;
}
.miroir-rep {
  font-family: var(--font-display);
  font-size: 0.85rem;
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
  border: 1px solid var(--line);
}
.miroir-rep strong { font-weight: 500; }
.miroir-rep--oui    { background: rgba(46,125,122,0.08); border-color: rgba(46,125,122,0.3); color: #2E7D7A; }
.miroir-rep--partie { background: rgba(192,160,80,0.08); border-color: rgba(192,160,80,0.4); color: var(--gold); }
.miroir-rep--non    { background: rgba(180,82,63,0.06); border-color: rgba(180,82,63,0.3); color: #b4523f; }

/* ============================================================
   Section « Glisser un mot »
   ============================================================ */
.jour-section--suggestion {
  background: linear-gradient(170deg, #FFFDF4, var(--paper-warm));
  border: 1px dashed var(--gold-soft);
  border-radius: 12px;
  padding: var(--space-lg) var(--space-md) !important;
  margin-top: var(--space-xl);
}
.jour-section--suggestion .jour-section__titre {
  font-size: 1.05rem !important;
  margin-bottom: 0.2rem !important;
}

/* — sélecteur de langue dans le menu — */
.site-nav .lang-switch {
  font-size: 0.78rem !important;
  letter-spacing: 0.04em;
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  background: rgba(192,160,80,0.08);
  border: 1px solid rgba(192,160,80,0.2);
  transition: all 0.2s;
}
.site-nav .lang-switch:hover {
  background: var(--gold);
  color: var(--paper) !important;
  border-color: var(--gold);
}

/* ============================================================
   v3 — Refonte « compagnon de présence »
   - Contrastes texte renforcés (lisibilité mobile)
   - Modes Léger / Posé / Lourd
   - Mot-graine vivant en haut
   - Bottom nav mobile
   - Ornements de respiration entre sections
   ============================================================ */

/* === Contrastes v4 — encre profonde sur papier === */
.jour-pratique__amont {
  color: #2d2008 !important;          /* brun-encre profond — vraiment lisible */
  opacity: 1;
  font-weight: 400;
}
.jour-pratique__q {
  color: var(--ink-title) !important;
  font-size: 1.08rem;
  font-weight: 500;
}
.jour-aval {
  color: #1f1505 !important;           /* commentaire : encre presque noire */
  background: rgba(192,160,80,0.14);
  border-left-width: 4px;
  font-weight: 400;
}
.jour-compagnon-vivant__note { color: #2d2008 !important; opacity: 1; }
.jour-graine-block__text { color: #1B2A4E !important; }
.jour-mode-card__desc { color: #5b4a2a !important; }
.jour-mode-card.is-active .jour-mode-card__desc { color: #6a4a10 !important; }

/* === Boutons réponse — 2x2 sur mobile pour respirer === */
.jour-choix {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.4rem;
}
.jour-choix__opt {
  flex: none !important;
  padding: 0.7rem 0.5rem !important;
  border-radius: 14px !important;
  font-size: 0.94rem !important;
  line-height: 1.25;
}
@media (max-width: 560px) {
  .jour-choix { grid-template-columns: repeat(2, 1fr); gap: 0.5rem; }
  .jour-choix__opt { padding: 0.85rem 0.6rem !important; font-size: 0.98rem !important; }
}

/* === Ornement de respiration === */
.jour-ornament {
  text-align: center;
  font-family: 'Cormorant Garamond', serif;
  color: var(--gold);
  font-size: 1.2rem;
  letter-spacing: 1.5em;
  text-indent: 1.5em;
  opacity: 0.45;
  margin: var(--space-xl) auto;
}

/* === Whisper temporel === */
.jour-whisper {
  text-align: center;
  font-family: var(--font-display);
  font-size: 0.95rem;
  color: var(--ink-soft);
  margin: 0 0 var(--space-sm);
  letter-spacing: 0.02em;
}

/* === Mot-graine vivant — bloc d'ouverture === */
.jour-compagnon-vivant {
  max-width: 36rem;
  margin: var(--space-md) auto var(--space-lg);
  padding: var(--space-lg) var(--space-md);
  background: linear-gradient(160deg, #FFFDF8, #fbf4dd 70%, #f7ecca);
  border: 1px solid var(--gold-soft);
  border-radius: 18px;
  text-align: center;
  box-shadow: 0 4px 18px rgba(192,160,80,0.08);
}
.jour-compagnon-vivant__label {
  font-family: var(--font-display);
  font-size: 0.82rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 0.5rem;
  opacity: 0.85;
}
.jour-compagnon-vivant__ar {
  font-family: var(--font-arabic);
  font-size: clamp(2.2rem, 7vw, 3rem);
  color: var(--gold);
  line-height: 1.3;
  margin: 0.2rem 0 0.4rem;
}
.jour-compagnon-vivant__tr {
  font-family: var(--font-display);
  font-size: 1.05rem;
  color: var(--ink-title);
  margin: 0 0 0.3rem;
}
.jour-compagnon-vivant__tr em { color: var(--gold); font-weight: 500; }
.jour-compagnon-vivant__note {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.96rem;
  color: #5b4a2a;
  margin: 0 0 var(--space-md);
}
.jour-graine-block {
  margin: var(--space-sm) 0;
  padding: 0.85rem 1rem;
  background: rgba(255,253,248,0.72);
  border-left: 3px solid var(--gold);
  border-radius: 6px;
  text-align: left;
}
.jour-graine-block--alt { border-left-color: rgba(120,140,130,0.5); }
.jour-graine-block__label {
  display: block;
  font-family: var(--font-display);
  font-size: 0.78rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.35rem;
  opacity: 0.85;
}
.jour-graine-block--alt .jour-graine-block__label { color: rgb(100,120,110); }
.jour-graine-block__text {
  font-family: var(--font-display);
  font-size: 1.02rem;
  color: var(--ink-title);
  line-height: 1.55;
  margin: 0;
}
.jour-graine-rappel {
  margin-top: var(--space-sm);
  font-family: var(--font-display);
  font-size: 0.95rem;
  color: var(--gold);
  opacity: 0.85;
}

/* === Mode chooser — Léger / Posé / Lourd === */
.jour-mode-chooser {
  max-width: 36rem;
  margin: 0 auto var(--space-lg);
  text-align: center;
}
.jour-section__titre--soft {
  font-size: 1.15rem;
  color: var(--ink-title);
  opacity: 0.9;
}
.jour-mode-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.6rem;
  margin-top: var(--space-md);
}
@media (max-width: 560px) {
  .jour-mode-grid { grid-template-columns: 1fr; }
}
.jour-mode-card {
  background: #FFFDF8;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 0.9rem 0.7rem;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  align-items: center;
  text-align: center;
  font-family: var(--font-display);
  transition: all 0.2s ease;
  color: var(--ink-soft);
}
.jour-mode-card:hover { border-color: var(--gold-soft); transform: translateY(-2px); }
.jour-mode-card.is-active {
  background: linear-gradient(170deg, #fff5d6, #fbe9b8);
  border-color: var(--gold);
  color: var(--ink-title);
  box-shadow: 0 4px 14px rgba(192,160,80,0.22);
}
.jour-mode-card__nom {
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--ink-title);
}
.jour-mode-card.is-active .jour-mode-card__nom { color: #6a4a10; }
.jour-mode-card__desc {
  font-style: italic;
  font-size: 0.82rem;
  color: var(--ink-soft);
}
.jour-mode-card.is-active .jour-mode-card__desc { color: #8a6620; }

/* === Mode léger : trace === */
.jour-section--light input[type="text"] {
  width: 100%;
  padding: 0.8rem 1rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  font-family: var(--font-display);
  font-size: 1.05rem;
  background: #FFFDF8;
  color: var(--ink-title);
}
.jour-section--light input[type="text"]:focus { border-color: var(--gold); outline: none; }
.jour-field__label {
  font-family: var(--font-display);
  font-size: 0.85rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
  margin: var(--space-md) 0 0.5rem;
}
.jour-state-chooser { margin: var(--space-md) 0; }
.jour-state-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.4rem;
}
@media (max-width: 560px) {
  .jour-state-grid { grid-template-columns: repeat(2, 1fr); }
}
.jour-state-card {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 0.7rem 0.4rem;
  text-align: center;
  cursor: pointer;
  font-family: var(--font-display);
  font-size: 0.9rem;
  color: var(--ink-soft);
  background: #FFFDF8;
  transition: all 0.2s;
}
.jour-state-card input { display: none; }
.jour-state-card:hover { border-color: var(--gold-soft); }
.jour-state-card.is-active {
  border-color: var(--gold);
  background: rgba(192,160,80,0.12);
  color: #6a4a10;
}

/* === Mode lourd : version douce === */
.jour-section--heavy {
  background: linear-gradient(170deg, rgba(110,135,150,0.06), rgba(110,135,150,0.02));
  border: 1px solid rgba(110,135,150,0.22);
  border-radius: 18px;
  padding: var(--space-lg) var(--space-md);
}
.jour-section--heavy .jour-section__titre { color: rgb(80,100,115); }
.jour-heavy-breathe {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  margin: var(--space-md) 0;
  padding: 0.9rem 1rem;
  background: rgba(255,253,248,0.6);
  border-radius: 12px;
}
.jour-heavy-breathe__dot {
  flex-shrink: 0;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(192,160,80,0.7), rgba(192,160,80,0.2));
  animation: breathe-dot 4s ease-in-out infinite;
}
@keyframes breathe-dot {
  0%, 100% { transform: scale(0.85); opacity: 0.6; }
  50%      { transform: scale(1.2);  opacity: 1; }
}
.jour-heavy-breathe p {
  font-family: var(--font-display);
  font-style: italic;
  color: rgb(80,100,115);
  margin: 0;
  font-size: 0.98rem;
}
.jour-still-toggle {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  margin: var(--space-md) 0;
  padding: 1rem;
  background: rgba(255,253,248,0.7);
  border: 1px solid var(--gold-soft);
  border-radius: 12px;
  cursor: pointer;
}
.jour-still-toggle input { margin-top: 0.3rem; accent-color: var(--gold); }
.jour-still-toggle__text {
  display: flex;
  flex-direction: column;
  font-family: var(--font-display);
}
.jour-still-toggle__text strong {
  color: var(--ink-title);
  font-weight: 500;
  font-size: 1.05rem;
}
.jour-still-toggle__text em {
  color: var(--ink-soft);
  font-size: 0.88rem;
  margin-top: 0.2rem;
}

/* === Réponses : ajout d'une 4e option « je ne sais pas » === */
.jour-choix { gap: 0.35rem; }
.jour-choix__opt {
  flex: 1 1 calc(50% - 0.35rem);
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.55rem 0.5rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  cursor: pointer;
  font-family: var(--font-display);
  font-size: 0.92rem;
  color: var(--ink-soft);
  background: #FFFDF8;
  transition: all 0.2s;
}
.jour-choix__opt input { display: none; }
.jour-choix__opt:hover { border-color: var(--gold-soft); color: var(--ink-title); }
.jour-choix__opt.is-checked {
  background: rgba(192,160,80,0.16);
  border-color: var(--gold);
  color: #6a4a10;
  font-weight: 500;
}
.jour-choix__opt--unknown {
  font-style: italic;
  color: rgb(120,135,145);
  background: rgba(245,245,240,0.7);
}
.jour-choix__opt--unknown.is-checked {
  background: rgba(110,135,150,0.18);
  border-color: rgb(110,135,150);
  color: rgb(80,100,115);
}

/* === Relecture concrète : muhasaba du jour === */
.jour-moment {
  margin: var(--space-lg) 0 var(--space-md);
  padding: var(--space-lg) var(--space-md);
  border: 1px solid rgba(192,160,80,0.32);
  border-radius: 16px;
  background:
    linear-gradient(180deg, rgba(255,253,248,0.96), rgba(249,243,224,0.74)),
    radial-gradient(circle at 90% 8%, rgba(192,160,80,0.13), transparent 30%);
}
.jour-moment__head {
  margin-bottom: var(--space-md);
}
.jour-moment__title {
  margin: 0 0 0.25rem;
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 500;
  color: var(--ink-title);
}
.jour-moment__head p {
  margin: 0;
  font-family: var(--font-display);
  font-style: italic;
  color: var(--ink-soft);
  line-height: 1.5;
}
.jour-moment__block {
  margin: var(--space-md) 0;
}
.jour-moment-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.jour-moment-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: 0.5rem 0.78rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255,253,248,0.86);
  color: var(--ink-soft);
  font-family: var(--font-display);
  font-size: 0.94rem;
  line-height: 1.2;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s, color 0.2s, transform 0.2s;
}
.jour-moment-chip input { display: none; }
.jour-moment-chip:hover {
  border-color: var(--gold-soft);
  color: var(--ink-title);
  transform: translateY(-1px);
}
.jour-moment-chip.is-active {
  border-color: var(--gold);
  background: rgba(192,160,80,0.16);
  color: #6a4a10;
}
.jour-moment-chip--small {
  min-height: 2.05rem;
  padding: 0.42rem 0.68rem;
  font-size: 0.88rem;
  background: rgba(245,244,238,0.78);
}
.jour-moment-grid--moteurs .jour-moment-chip.is-active {
  border-color: rgba(110,135,150,0.72);
  background: rgba(110,135,150,0.15);
  color: rgb(70,90,105);
}

/* === Bottom navigation — mobile uniquement === */
.carnet-bottom-nav {
  display: none;
}
@media (max-width: 760px) {
  .carnet-bottom-nav {
    display: flex;
    position: fixed;
    bottom: 0; left: 0; right: 0;
    background: rgba(255,253,248,0.96);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-top: 1px solid var(--gold-soft);
    z-index: 200;
    padding: 0.5rem 0 calc(0.5rem + env(safe-area-inset-bottom));
    justify-content: space-around;
    align-items: center;
    box-shadow: 0 -4px 18px rgba(40,30,15,0.07);
  }
  .carnet-bottom-nav__item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.18rem;
    padding: 0.4rem 0.2rem;
    text-decoration: none;
    color: var(--ink-soft);
    font-family: var(--font-display);
    font-size: 0.72rem;
    letter-spacing: 0.05em;
    transition: color 0.2s;
  }
  .carnet-bottom-nav__item svg { stroke: currentColor; }
  .carnet-bottom-nav__item.is-active,
  .carnet-bottom-nav__item:active {
    color: var(--gold);
  }
  /* laisser de la place pour le bottom-nav */
  body.carnet main { padding-bottom: 6rem; }
}

/* === Tweaks responsive supplémentaires === */
@media (max-width: 480px) {
  .jour-pratique { padding: var(--space-sm); }
  .jour-pratique__nom { font-size: 1.08rem; }
  .jour-pratique__amont { font-size: 0.96rem; line-height: 1.55; }
  .jour-pratique__q { font-size: 1.02rem; }
  .jour-choix__opt { font-size: 0.88rem; padding: 0.5rem 0.4rem; }
  .jour-moment { padding: var(--space-md) var(--space-sm); }
  .jour-moment__title { font-size: 1.2rem; }
  .jour-moment-chip {
    flex: 1 1 100%;
    justify-content: flex-start;
    border-radius: 12px;
    font-size: 0.92rem;
  }
  .jour-moment-chip--small { flex-basis: calc(50% - 0.45rem); }
}

/* ============================================================
   v5 — Le moment du jour (vrai carnet de bord)
   ============================================================ */

/* === Bandeau « Reprise du vœu d'hier » === */
.jour-reprise {
  max-width: 36rem;
  margin: var(--space-md) auto var(--space-lg);
  padding: var(--space-md) var(--space-lg);
  background: linear-gradient(170deg, #fff7e0, #fce9b8);
  border: 1px solid var(--gold-soft);
  border-radius: 18px;
  text-align: left;
  box-shadow: 0 4px 18px rgba(192,160,80,0.10);
}
.jour-reprise__label {
  display: block;
  font-family: var(--font-display);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 0.5rem;
  opacity: 0.9;
}
.jour-reprise__vow {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.08rem;
  color: #2d2008;
  line-height: 1.55;
  margin: 0 0 var(--space-sm);
  padding-left: 0.8rem;
  border-left: 3px solid var(--gold);
}
.jour-reprise__q {
  font-family: var(--font-display);
  font-size: 1rem;
  color: var(--ink-title);
  margin: var(--space-sm) 0 0.7rem;
}
.jour-reprise__choices {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.5rem;
}
.jour-reprise__opt {
  display: flex; align-items: center; justify-content: center;
  padding: 0.7rem 0.5rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(255,253,248,0.85);
  font-family: var(--font-display);
  font-size: 0.95rem;
  color: var(--ink-soft);
  cursor: pointer;
  transition: all 0.2s;
  text-align: center;
}
.jour-reprise__opt input { display: none; }
.jour-reprise__opt:hover { border-color: var(--gold-soft); }
.jour-reprise__opt.is-checked {
  background: var(--gold);
  color: #fffdf8;
  border-color: var(--gold);
  font-weight: 500;
}
.jour-reprise__note {
  margin-top: var(--space-sm);
  font-family: var(--font-display);
  font-size: 0.92rem;
  color: #5b4a2a;
  font-style: italic;
}

/* === Bloc « Relire un moment » — le cœur du carnet === */
.jour-moment {
  margin: var(--space-lg) 0;
  padding: var(--space-lg) var(--space-md);
  background: linear-gradient(170deg, #FFFDF8, #f9f1de);
  border: 1px solid var(--gold-soft);
  border-radius: 18px;
  box-shadow: 0 4px 16px rgba(40,30,15,0.06);
}
.jour-moment__head {
  text-align: center;
  margin-bottom: var(--space-md);
  padding-bottom: var(--space-sm);
  border-bottom: 1px solid rgba(192,160,80,0.25);
}
.jour-moment__title {
  font-family: var(--font-display);
  font-weight: 500;
  font-style: italic;
  font-size: clamp(1.25rem, 3.5vw, 1.5rem);
  color: var(--ink-title);
  margin: 0 0 0.3rem;
}
.jour-moment__head p {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.92rem;
  color: #5b4a2a;
  margin: 0;
}
.jour-moment__block {
  margin: var(--space-md) 0;
}
.jour-moment__block .jour-field__label {
  margin-bottom: 0.6rem;
  text-align: left;
}

/* === Chips (type d'événement + moteurs) === */
.jour-moment-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.jour-moment-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.55rem 0.95rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fffdf8;
  font-family: var(--font-display);
  font-size: 0.94rem;
  color: var(--ink-soft);
  cursor: pointer;
  transition: all 0.2s ease;
  line-height: 1.25;
  user-select: none;
}
.jour-moment-chip input { display: none; }
.jour-moment-chip:hover { border-color: var(--gold-soft); color: var(--ink-title); }
.jour-moment-chip.is-active {
  background: rgba(192,160,80,0.18);
  border-color: var(--gold);
  color: #5b3a08;
  font-weight: 500;
  box-shadow: inset 0 0 0 1px rgba(192,160,80,0.25);
}
.jour-moment-chip--small {
  padding: 0.42rem 0.78rem;
  font-size: 0.88rem;
}
.jour-moment-chip--small.is-active {
  background: rgba(110,135,150,0.18);
  border-color: rgb(110,135,150);
  color: rgb(60,80,95);
}

/* === Textarea du moment === */
.jour-moment textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 0.9rem 1rem;
  font-family: var(--font-display);
  font-size: 1.02rem;
  background: #FFFDF8;
  color: var(--ink-title);
  line-height: 1.6;
  resize: vertical;
  box-sizing: border-box;
}
.jour-moment textarea:focus { border-color: var(--gold); outline: none; }
.jour-moment select {
  width: 100%;
  padding: 0.8rem 1rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #FFFDF8;
  font-family: var(--font-display);
  font-size: 1rem;
  color: var(--ink-title);
}

/* === Bloc « Pour aller plus loin » — liens doux vers le site === */
.jour-resources {
  margin: var(--space-md) 0 0;
  padding: var(--space-md);
  background: rgba(255,253,248,0.6);
  border-radius: 12px;
  border-left: 3px solid var(--gold);
}
.jour-resources__label {
  display: block;
  font-family: var(--font-display);
  font-size: 0.78rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.6rem;
}
.jour-resources__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.jour-resources__list a {
  display: inline-block;
  padding: 0.4rem 0.85rem;
  background: #fffdf8;
  border: 1px solid var(--gold-soft);
  border-radius: 999px;
  font-family: var(--font-display);
  font-size: 0.92rem;
  color: var(--ink-title);
  text-decoration: none;
  transition: all 0.2s;
}
.jour-resources__list a:hover {
  background: var(--gold);
  color: #fffdf8;
  border-color: var(--gold);
}

/* ============================================================
   v4 — Bilan hebdo + Nom du jour + Corps & Réparation + Ressource moteur
   ============================================================ */

/* === Nom du jour === */
.nom-du-jour {
  background: linear-gradient(160deg, rgba(192,160,80,0.10), rgba(46,125,122,0.04));
  border: 1px solid var(--gold-soft);
  border-radius: 18px;
  padding: 1.4rem 1.4rem;
  margin: 1rem auto 1.6rem;
  max-width: 36rem;
  text-align: center;
}
.nom-du-jour__label {
  display: block;
  font-family: var(--font-display);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.6rem;
  font-weight: 600;
}
.nom-du-jour__ar {
  font-family: var(--font-arabic);
  font-size: clamp(2rem, 5.5vw, 2.6rem);
  color: var(--gold);
  margin: 0.3rem 0 0.4rem;
  line-height: 1.3;
}
.nom-du-jour__tr {
  font-family: var(--font-display);
  font-size: 1.1rem;
  color: var(--ink-title);
  margin: 0 0 0.4rem;
  font-weight: 500;
}
.nom-du-jour__tr em { color: var(--gold); font-style: italic; }
.nom-du-jour__sens {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.98rem;
  color: var(--ink-soft);
  margin: 0 0 1rem;
  line-height: 1.55;
}
.nom-du-jour__link {
  display: inline-block;
  color: var(--gold);
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-style: italic;
  text-decoration: none;
  border-bottom: 1px solid rgba(192,160,80,0.3);
  padding-bottom: 0.15rem;
  transition: color 0.2s;
}
.nom-du-jour__link:hover { color: #b88840; }

/* === Bilan hebdo === */
.bilan-hebdo {
  margin: 2.2rem auto 0;
  max-width: 36rem;
  background: linear-gradient(160deg, rgba(192,160,80,0.10), rgba(192,160,80,0.03));
  border: 1px solid rgba(192,160,80,0.35);
  border-radius: 18px;
  padding: 1.6rem 1.5rem;
}
.bilan-hebdo__title {
  font-family: var(--font-display);
  font-size: 1.3rem; font-weight: 500;
  margin: 0 0 0.3rem;
  color: var(--ink-title);
}
.bilan-hebdo__title em { color: var(--gold); font-style: italic; }
.bilan-hebdo__sub {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.95rem;
  color: var(--ink-mute);
  margin: 0 0 1rem;
}
.bilan-hebdo__line {
  font-family: var(--font-display);
  font-size: 1.06rem;
  color: var(--ink-title);
  margin: 0.55rem 0;
  line-height: 1.65;
}
.bilan-hebdo__line strong { color: var(--gold); font-weight: 600; }
.bilan-hebdo__line em { color: var(--ink-soft); font-style: italic; }

/* === Grid small pour corps + reparation === */
.jour-moment-grid--small {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

/* === Réparation block (details) === */
.reparation-block {
  margin: 1.2rem 0;
  background: rgba(192,160,80,0.04);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 0;
  overflow: hidden;
}
.reparation-block__summary {
  cursor: pointer;
  padding: 0.85rem 1.1rem;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.05rem;
  color: var(--gold);
  font-weight: 500;
  user-select: none;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.reparation-block__summary::-webkit-details-marker { display: none; }
.reparation-block[open] .reparation-block__summary {
  border-bottom: 1px solid var(--line);
}
.reparation-block__body {
  padding: 1rem 1.1rem 1.2rem;
}
.reparation-block__intro {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.96rem;
  color: var(--ink-soft);
  margin: 0 0 0.8rem;
  line-height: 1.55;
}

/* === Ressource moteur (Pour aller plus loin) === */
.moteur-ressource {
  margin: 1rem 0;
  background: linear-gradient(160deg, rgba(46,125,122,0.06), rgba(46,125,122,0.02));
  border-left: 3px solid #2e7d7a;
  border-radius: 0 12px 12px 0;
  padding: 1rem 1.2rem;
}
.moteur-ressource__label {
  display: block;
  font-family: var(--font-display);
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #2e7d7a;
  margin-bottom: 0.5rem;
  font-weight: 600;
}
.moteur-ressource__invite {
  font-family: var(--font-display);
  font-size: 1.02rem;
  color: var(--ink-title);
  margin: 0 0 0.8rem;
  line-height: 1.55;
}
.moteur-ressource__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}
.moteur-ressource__chip {
  flex: 1 1 8rem;
  min-width: 0;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 0.6rem 0.8rem;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  transition: all 0.2s;
}
.moteur-ressource__chip:not(.moteur-ressource__chip--static):hover {
  border-color: var(--gold);
  transform: translateY(-1px);
  box-shadow: 0 4px 10px rgba(2,10,28,0.08);
}
.moteur-ressource__chip-label {
  font-family: var(--font-sans);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-mute);
}
.moteur-ressource__chip strong {
  font-family: var(--font-display);
  font-size: 1.05rem;
  color: var(--ink-title);
  font-weight: 600;
}
.moteur-ressource__chip em {
  font-family: var(--font-display);
  font-style: italic;
  color: var(--ink-soft);
  font-size: 0.85rem;
}

/* ============================================================
   v5 — Noms-remèdes : refonte du bloc Pour aller plus loin + bilan
   ============================================================ */

/* === Bloc 2-3 Noms proposés (refondu, "Physicians of the Heart") === */
.moteur-ressource__noms {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  margin-top: 0.7rem;
}
.moteur-nom {
  display: block;
  text-decoration: none;
  color: inherit;
  background: linear-gradient(170deg, #FFFDF4, var(--paper));
  border: 1px solid var(--line);
  border-left: 4px solid var(--gold);
  border-radius: 12px;
  padding: 1rem 1.2rem;
  transition: all 0.22s;
}
.moteur-nom:hover {
  border-color: var(--gold);
  border-left-color: var(--gold);
  transform: translateX(2px);
  box-shadow: 0 8px 20px rgba(2,10,28,0.08);
}
.moteur-nom__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.4rem;
  flex-wrap: wrap;
}
.moteur-nom__ar {
  font-family: var(--font-arabic);
  font-size: 1.55rem;
  color: var(--gold);
  line-height: 1.3;
}
.moteur-nom__appel {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.95rem;
  color: var(--ink-mute);
  letter-spacing: 0.02em;
}
.moteur-nom__name {
  font-family: var(--font-display);
  font-size: 1.1rem;
  color: var(--ink-title);
  margin: 0 0 0.5rem;
}
.moteur-nom__name strong { font-weight: 600; }
.moteur-nom__name em { color: var(--gold); font-style: italic; }
.moteur-nom__sens {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1rem;
  color: var(--ink-soft);
  margin: 0 0 0.6rem;
  line-height: 1.55;
}
.moteur-nom__question,
.moteur-nom__pratique,
.moteur-nom__paire {
  font-family: var(--font-display);
  font-size: 0.96rem;
  color: var(--ink-title);
  margin: 0.35rem 0;
  line-height: 1.5;
}
.moteur-nom__question strong,
.moteur-nom__pratique strong {
  color: var(--gold);
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.moteur-nom__paire { font-style: italic; font-size: 0.88rem; color: var(--ink-mute); }
.moteur-nom__more {
  display: inline-block;
  margin-top: 0.5rem;
  font-family: var(--font-display);
  font-style: italic;
  color: var(--gold);
  font-size: 0.92rem;
  letter-spacing: 0.02em;
}

/* === Bilan hebdo : bloc Noms de la semaine === */
.bilan-hebdo__names {
  margin-top: 1.2rem;
  padding-top: 1rem;
  border-top: 1px dashed var(--line);
}
.bilan-hebdo__names-label {
  font-family: var(--font-display);
  font-style: italic;
  color: var(--ink-soft);
  font-size: 0.98rem;
  margin: 0 0 0.6rem;
}
.bilan-hebdo__names-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.bilan-hebdo__name {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.6rem 0.9rem;
  background: var(--paper);
  border: 1px solid var(--gold-soft);
  border-radius: 12px;
  text-decoration: none;
  color: var(--ink-title);
  transition: all 0.2s;
}
.bilan-hebdo__name:hover {
  border-color: var(--gold);
  transform: translateY(-1px);
}
.bilan-hebdo__name [lang="ar"] {
  font-family: var(--font-arabic);
  font-size: 1.15rem;
  color: var(--gold);
  line-height: 1.3;
}
.bilan-hebdo__name strong {
  font-family: var(--font-display);
  font-size: 0.96rem;
  font-weight: 600;
}
.bilan-hebdo__name em {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.82rem;
  color: var(--ink-soft);
}

/* ============================================================
   v6 — Audit lisibilité : remonter toutes les polices trop petites
   Norme : minimum 1.05rem (≈17px) pour le corps, 0.92rem pour les labels
   ============================================================ */

/* === Base : taille de la page du carnet === */
body.carnet { font-size: 17px; }

/* === Pratiques du soir (le plus important visuellement) === */
.jour-pratique__amont {
  font-size: 1.08rem !important;
  line-height: 1.65 !important;
  color: #2d2008 !important;
  opacity: 1 !important;
  font-weight: 400 !important;
}
.jour-pratique__nom { font-size: 1.25rem !important; font-weight: 500; line-height: 1.35; }
.jour-pratique__q  { font-size: 1.12rem !important; font-weight: 500; line-height: 1.5; }
.jour-aval {
  font-size: 1.05rem !important;
  line-height: 1.6 !important;
  color: #2d2008 !important;
}

/* === Réponses oui / en partie / non === */
.jour-choix__opt {
  font-size: 1.05rem !important;
  padding: 0.8rem 0.7rem !important;
}
@media (max-width: 480px) {
  .jour-choix__opt { font-size: 1rem !important; padding: 0.85rem 0.6rem !important; }
  .jour-pratique__amont { font-size: 1.08rem !important; line-height: 1.6 !important; }
  .jour-pratique__q { font-size: 1.1rem !important; }
}

/* === Compagnon (mot-graine) === */
.jour-compagnon-vivant__tr  { font-size: 1.12rem !important; line-height: 1.5; }
.jour-compagnon-vivant__note { font-size: 1.05rem !important; line-height: 1.6; }
.jour-graine-block__text   { font-size: 1.08rem !important; line-height: 1.6; }
.jour-graine-block__label  { font-size: 0.85rem !important; letter-spacing: 0.14em; }
.jour-graine-rappel        { font-size: 1.02rem !important; line-height: 1.5; }
.jour-compagnon-vivant__label { font-size: 0.85rem !important; letter-spacing: 0.16em; }

/* === Section titres et sous-titres === */
.jour-section__titre  { font-size: 1.4rem !important; line-height: 1.3; }
.jour-section__sub    { font-size: 1.05rem !important; line-height: 1.55; }
.jour-cercle__titre   { font-size: 1.15rem !important; line-height: 1.4; }

/* === Champs de formulaire === */
.jour-field span,
.jour-field > span:first-child {
  font-size: 0.94rem !important;
  letter-spacing: 0.08em;
}
.jour-field__label { font-size: 0.92rem !important; letter-spacing: 0.1em; }
.jour-field input,
.jour-field textarea,
.jour-field select {
  font-size: 1.05rem !important;
  line-height: 1.5;
  padding: 0.85rem 1rem !important;
}

/* === Mode chooser (Léger / Posé / Lourd) === */
.jour-mode-card__nom  { font-size: 1.12rem !important; }
.jour-mode-card__desc { font-size: 0.96rem !important; line-height: 1.5; }

/* === Suggestion (à Brahms) === */
.jour-section--suggestion .jour-section__titre { font-size: 1.15rem !important; }

/* === Moment (Relire un moment) === */
.jour-moment__title { font-size: 1.3rem !important; line-height: 1.3; }
.jour-moment__head p { font-size: 1rem !important; line-height: 1.55; }
.jour-moment-chip { font-size: 1rem !important; padding: 0.6rem 1rem !important; }
.jour-moment-chip--small { font-size: 0.96rem !important; padding: 0.5rem 0.85rem !important; }

/* === Whisper, hello, date === */
.jour-whisper { font-size: 1.05rem !important; }
.jour-hello   { font-size: 1.55rem !important; }
.jour-date    { font-size: 1.02rem !important; }

/* === Reprise du vœu === */
.jour-reprise__label { font-size: 0.85rem !important; letter-spacing: 0.14em; }
.jour-reprise__vow   { font-size: 1.12rem !important; line-height: 1.55; }
.jour-reprise__q     { font-size: 1.05rem !important; }
.jour-reprise__opt   { font-size: 1.02rem !important; padding: 0.75rem 0.6rem !important; }
.jour-reprise__note  { font-size: 1rem !important; line-height: 1.55; }

/* === Boutons === */
.carnet-btn { font-size: 1.02rem !important; padding: 0.85rem 1.8rem !important; }

/* === Nom du jour === */
.nom-du-jour__label { font-size: 0.85rem !important; letter-spacing: 0.16em; }
.nom-du-jour__tr    { font-size: 1.18rem !important; line-height: 1.4; }
.nom-du-jour__sens  { font-size: 1.05rem !important; line-height: 1.6; }
.nom-du-jour__link  { font-size: 1rem !important; }

/* === Moteur ressource (Noms-remèdes) === */
.moteur-ressource__label { font-size: 0.88rem !important; letter-spacing: 0.12em; }
.moteur-ressource__invite { font-size: 1.08rem !important; line-height: 1.6; }
.moteur-nom__name    { font-size: 1.18rem !important; line-height: 1.4; }
.moteur-nom__sens    { font-size: 1.05rem !important; line-height: 1.6; }
.moteur-nom__question,
.moteur-nom__pratique { font-size: 1.02rem !important; line-height: 1.55; }
.moteur-nom__question strong,
.moteur-nom__pratique strong { font-size: 0.85rem !important; }
.moteur-nom__paire   { font-size: 0.95rem !important; }
.moteur-nom__more    { font-size: 1rem !important; }
.moteur-nom__appel   { font-size: 1.02rem !important; }

/* === Bilan hebdo === */
.bilan-hebdo__title  { font-size: 1.4rem !important; }
.bilan-hebdo__sub    { font-size: 1.02rem !important; line-height: 1.5; }
.bilan-hebdo__line   { font-size: 1.12rem !important; line-height: 1.7; }
.bilan-hebdo__names-label { font-size: 1.05rem !important; }
.bilan-hebdo__name strong { font-size: 1.05rem !important; }
.bilan-hebdo__name em     { font-size: 0.9rem !important; }

/* === Réparation block === */
.reparation-block__summary { font-size: 1.12rem !important; padding: 1rem 1.2rem !important; }
.reparation-block__intro   { font-size: 1.02rem !important; line-height: 1.6; }

/* === Mobile : encore plus généreux === */
@media (max-width: 480px) {
  .jour-section__titre { font-size: 1.3rem !important; }
  .jour-section__sub   { font-size: 1.02rem !important; }
  .jour-hello          { font-size: 1.4rem !important; }
}

/* ============================================================
   v7 — Lisibilité des champs : placeholder contrasté + auto-resize
   ============================================================ */

/* === Placeholder LISIBLE — contraste suffisant sur fond crème === */
.jour-field input::placeholder,
.jour-field textarea::placeholder,
.jour-field select::placeholder {
  color: #8a7a5a !important;       /* brun médian au lieu du gris pâle navigateur */
  opacity: 1 !important;            /* iOS/Firefox baissent l'opacité par défaut */
  font-style: italic;
  font-size: 1rem;
  line-height: 1.5;
}
/* Webkit-specific pour Safari iOS */
.jour-field input::-webkit-input-placeholder,
.jour-field textarea::-webkit-input-placeholder {
  color: #8a7a5a !important;
  opacity: 1 !important;
}

/* === Textarea : min-height suffisante pour voir le placeholder en entier === */
.jour-field textarea {
  min-height: 6rem !important;
  resize: vertical;
  overflow: hidden;        /* sera réactivé par le JS auto-resize si dépassement */
  font-size: 1.05rem !important;
  line-height: 1.6 !important;
  padding: 1rem 1.1rem !important;
}
/* Champs spécifiques plus généreux */
#moment-scene,
#moment-repair,
#moment-vow,
#note-soir,
#note-matin {
  min-height: 7rem !important;
}

/* === Selects : placeholder visible aussi === */
.jour-field select {
  color: var(--ink-title);
  font-size: 1.05rem !important;
}
.jour-field select option[value=""] {
  color: #8a7a5a;
  font-style: italic;
}

/* === Champs : bordure + fond plus contrastés pour qu'on les voie bien === */
.jour-field input,
.jour-field textarea {
  background: #FFFDF8 !important;
  border: 1.5px solid #d4c89a !important;
  color: #1f1505 !important;
}
.jour-field input:focus,
.jour-field textarea:focus {
  border-color: var(--gold) !important;
  background: #FFFFFF !important;
  box-shadow: 0 0 0 3px rgba(192,160,80,0.15);
  outline: none;
}

/* ============================================================
   v8 — Phase A ADAB : matin (chips contexte/vigilance/adab),
   soir allégé (Cœur du soir + Bilan complet repliable)
   ============================================================ */
.jour-chips {
  display: flex; flex-wrap: wrap; gap: .5rem;
  margin-top: .35rem;
}
.jour-chip {
  display: inline-flex; align-items: center;
  padding: .45rem .85rem;
  border: 1px solid rgba(192,160,80,0.35);
  border-radius: 999px;
  background: rgba(255,250,230,0.55);
  color: #3a2e15;
  font-size: 1rem;
  cursor: pointer;
  transition: background .15s, border-color .15s, transform .1s;
}
.jour-chip:hover { background: rgba(255,245,210,0.85); }
.jour-chip input { position: absolute; opacity: 0; pointer-events: none; }
.jour-chip.is-active {
  background: linear-gradient(135deg, #d9b86a, #c0a050);
  color: #2a1f08;
  border-color: #b8954a;
  font-weight: 600;
  box-shadow: 0 2px 6px rgba(180,140,40,0.2);
}
.jour-chip:active { transform: scale(0.97); }

.jour-field__label {
  display: block;
  font-weight: 600;
  color: #5a4a20;
  margin-bottom: .15rem;
  font-size: 1rem;
}

/* Cœur du soir — bloc principal mis en avant */
.jour-soir-coeur {
  background: rgba(255,248,225,0.6);
  border: 1px solid rgba(192,160,80,0.35);
  border-left: 4px solid #c0a050;
  border-radius: 10px;
  padding: 1.2rem 1.3rem;
  margin: 1rem 0 1.5rem;
}
.jour-soir-coeur__titre {
  margin: 0 0 .25rem;
  font-size: 1.2rem;
  color: #5a4a20;
  letter-spacing: .02em;
}

/* Bilan complet — replié par défaut */
.jour-bilan-complet {
  margin: 1.5rem 0 1rem;
  border-top: 1px dashed rgba(192,160,80,0.4);
  padding-top: 1rem;
}
.jour-bilan-complet__summary {
  cursor: pointer;
  font-weight: 600;
  color: #6a5520;
  font-size: 1rem;
  padding: .6rem .9rem;
  background: rgba(255,250,230,0.4);
  border-radius: 8px;
  list-style: none;
  display: inline-block;
}
.jour-bilan-complet__summary::-webkit-details-marker { display: none; }
.jour-bilan-complet__summary::before {
  content: "▸ ";
  color: #c0a050;
  font-size: 0.9em;
  transition: transform .15s;
}
.jour-bilan-complet[open] .jour-bilan-complet__summary::before {
  content: "▾ ";
}
.jour-bilan-complet__summary:hover {
  background: rgba(255,245,210,0.7);
}
.jour-bilan-complet__body {
  margin-top: 1rem;
}

/* ============================================================
   v9 — Phase B ADAB : réparations dynamiques selon le mouvement
   + bloc "jour lourd" (le minimum quand le cœur ne peut pas plus)
   ============================================================ */
.moteur-jour-lourd {
  background: linear-gradient(135deg, rgba(255,248,225,0.7), rgba(245,235,200,0.5));
  border-left: 4px solid #b8954a;
  border-radius: 8px;
  padding: .85rem 1.1rem;
  margin: 1rem 0;
}
.moteur-jour-lourd__label {
  display: block;
  font-size: .82rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #8a7028;
  font-weight: 600;
  margin-bottom: .35rem;
}
.moteur-jour-lourd__text {
  margin: 0;
  font-style: italic;
  color: #4a3a18;
  font-size: 1.05rem;
  line-height: 1.45;
}

.moteur-reparations {
  background: rgba(255,250,235,0.5);
  border: 1px solid rgba(192,160,80,0.25);
  border-radius: 10px;
  padding: 1rem 1.15rem;
  margin: 1rem 0;
}
.moteur-reparations__label {
  display: block;
  font-size: .85rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #6a5520;
  font-weight: 600;
  margin-bottom: .15rem;
}
.moteur-reparations__intro {
  margin: .15rem 0 .9rem;
  color: #6a5a30;
  font-size: .95rem;
}
.moteur-reparations__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: .7rem;
}
.moteur-reparation {
  background: #fff;
  border: 1px solid rgba(192,160,80,0.2);
  border-radius: 8px;
  padding: .7rem .9rem;
}
.moteur-reparation__head {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .25rem;
  flex-wrap: wrap;
}
.moteur-reparation__head strong {
  color: #3a2e15;
  font-size: 1.02rem;
}
.moteur-reparation__tag {
  display: inline-block;
  font-size: .72rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .12rem .5rem;
  border-radius: 999px;
  background: rgba(192,160,80,0.15);
  color: #6a5520;
  font-weight: 600;
}
.moteur-reparation__tag--silent {
  background: rgba(120,150,180,0.15);
  color: #4a5a70;
}
.moteur-reparation__intro {
  margin: 0 0 .25rem;
  color: #4a3a20;
  font-size: .96rem;
  line-height: 1.45;
}
.moteur-reparation__phrase {
  margin: .35rem 0 0;
  padding: .45rem .7rem;
  background: rgba(255,248,220,0.6);
  border-left: 3px solid #c0a050;
  border-radius: 4px;
  color: #3a2e15;
  font-style: italic;
  font-size: .98rem;
  line-height: 1.5;
}

/* ============================================================
   v10 — Phase C ADAB : hint matin tiré du mouvement d'hier
   ============================================================ */
.jour-hint-matin {
  background: linear-gradient(135deg, rgba(255,250,235,0.7), rgba(248,238,210,0.5));
  border: 1px solid rgba(192,160,80,0.3);
  border-left: 3px solid #c0a050;
  border-radius: 8px;
  padding: .75rem 1rem;
  margin: .8rem 0 1.2rem;
}
.jour-hint-matin__label {
  display: inline-block;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #8a7028;
  font-weight: 700;
  background: rgba(192,160,80,0.18);
  padding: .15rem .55rem;
  border-radius: 999px;
  margin-bottom: .35rem;
}
.jour-hint-matin__text {
  margin: .25rem 0;
  color: #3a2e15;
  font-size: 1.03rem;
  line-height: 1.5;
}
.jour-hint-matin__text strong { color: #6a5520; }
.jour-hint-matin__note {
  margin: .15rem 0 0;
  color: #8a7a55;
  font-size: .88rem;
}

/* ============================================================
   v11 — Boussole du jour (Priorité 1 du rapport ANALYSE-USAGE)
   + Axe du jour tournant (7 jours / 7 axes — Priorité 3)
   ============================================================ */
.boussole {
  background: linear-gradient(135deg, rgba(255,250,235,0.85), rgba(248,238,210,0.7));
  border: 1px solid rgba(192,160,80,0.35);
  border-radius: 12px;
  padding: 1.15rem 1.4rem;
  margin: 1rem 0 1.5rem;
  text-align: center;
}
.boussole__head {
  margin-bottom: .55rem;
}
.boussole__axe {
  display: inline-block;
  font-size: .78rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #8a7028;
  font-weight: 700;
  background: rgba(192,160,80,0.18);
  padding: .25rem .85rem;
  border-radius: 999px;
}
.boussole__phrase {
  margin: .35rem 0 .6rem;
  color: #3a2e15;
  font-size: 1.12rem;
  line-height: 1.5;
  font-family: var(--font-display, Georgia, serif);
}
.boussole__phrase strong { color: #6a5520; }
.boussole__nom {
  margin: .25rem 0 .35rem;
  color: #5a4a20;
  font-size: 1rem;
}
.boussole__nom-label {
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: #8a7a55;
  margin-right: .35rem;
}
.boussole__note {
  margin: .25rem 0 0;
  color: #8a7a55;
  font-size: .88rem;
}

/* ============================================================
   v12 — Refonte structurelle spirituelle (rapport 7 juin 2026)
   "Je pose ma journée" + "Ce soir, je relis ma journée"
   ============================================================ */

/* Mot-graine en mention discrète (ancien gros bloc supprimé) */
.jour-graine-discret {
  text-align: center;
  margin: .5rem 0 1rem;
  color: #6a5520;
  font-size: .95rem;
  padding: .35rem .7rem;
  border-top: 1px dashed rgba(192,160,80,0.25);
  border-bottom: 1px dashed rgba(192,160,80,0.25);
}
.jour-graine-discret [lang="ar"] {
  font-size: 1.1rem;
  margin-right: .4rem;
  color: #4a3a18;
}
.jour-graine-discret em { font-style: italic; }
.jour-graine-discret__link {
  margin-left: .8rem;
  font-size: .82rem;
  color: #b8954a;
  text-decoration: none;
  border-bottom: 1px dotted #b8954a;
}

/* Étapes du carnet (1. 2. 3. 4. 5.) */
.jour-etape {
  margin: 1.5rem 0;
}
.jour-etape__num {
  display: inline-block;
  font-size: .9rem;
  font-weight: 700;
  color: #b8954a;
  letter-spacing: .12em;
  margin: 0 .5rem 0 0;
  font-family: var(--font-display, Georgia, serif);
}
.jour-etape__titre {
  display: inline;
  font-size: 1.05rem;
  font-weight: 600;
  color: #4a3a18;
  margin: 0;
}
.jour-etape__hint {
  margin: .3rem 0 .7rem;
  color: #6a5a30;
  font-size: .95rem;
}
.jour-etape__optionel {
  font-size: .82rem;
  font-weight: 400;
  color: #8a7a55;
  font-style: italic;
  margin-left: .35rem;
}
.jour-etape--soft {
  background: rgba(255,250,235,0.4);
  padding: 1rem 1.15rem;
  border-radius: 10px;
}
.jour-etape--option {
  background: rgba(255,250,235,0.3);
  border: 1px dashed rgba(192,160,80,0.3);
  border-radius: 10px;
  padding: .5rem 1rem;
}
.jour-etape__summary {
  cursor: pointer;
  font-size: 1.02rem;
  color: #5a4a20;
  padding: .35rem 0;
  list-style: none;
}
.jour-etape__summary::-webkit-details-marker { display: none; }
.jour-etape__summary::before { content: "▸ "; color: #c0a050; }
.jour-etape--option[open] .jour-etape__summary::before { content: "▾ "; }

/* Familles dans les chips */
.jour-famille {
  margin: .85rem 0;
}
.jour-famille__label {
  margin: 0 0 .3rem;
  font-size: .82rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #8a7028;
  font-weight: 600;
}

/* Input texte du carnet */
.jour-input {
  width: 100%;
  margin-top: .4rem;
  padding: .65rem .9rem;
  border: 1px solid rgba(192,160,80,0.35);
  border-radius: 8px;
  background: rgba(255,250,235,0.5);
  color: #3a2e15;
  font-size: 1.02rem;
  font-family: inherit;
}
.jour-input:focus {
  outline: none;
  border-color: #c0a050;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(192,160,80,0.15);
}

/* Synthèse après "Poser ma journée" */
.jour-synthese {
  margin-top: 1rem;
  padding: .9rem 1.1rem;
  background: linear-gradient(135deg, rgba(255,248,225,0.85), rgba(248,238,210,0.6));
  border-left: 3px solid #c0a050;
  border-radius: 8px;
}
.jour-synthese__label {
  margin: 0 0 .4rem;
  font-size: .78rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #8a7028;
  font-weight: 700;
}
.jour-synthese p {
  margin: .25rem 0;
  color: #3a2e15;
  font-size: 1.02rem;
}

/* Rappel matin dans le soir */
.relu-rappel {
  margin: 1rem 0 1.5rem;
  padding: 1rem 1.2rem;
  background: rgba(255,250,235,0.6);
  border-radius: 10px;
  border: 1px solid rgba(192,160,80,0.25);
}
.relu-rappel__label {
  margin: 0 0 .35rem;
  font-size: .82rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #8a7028;
  font-weight: 600;
}
.relu-rappel--vide {
  background: transparent;
  border: none;
  border-left: 2px dashed rgba(192,160,80,0.4);
  border-radius: 0;
  padding-left: 1rem;
}

/* Bilan des axes (statuts du soir) */
.relu-axe {
  margin: .8rem 0;
}
.relu-axe__label {
  margin: 0 0 .3rem;
  color: #4a3a18;
  font-size: 1rem;
  font-weight: 500;
}
.jour-statuts {
  display: flex; flex-wrap: wrap; gap: .4rem;
}
.jour-statut {
  display: inline-flex;
  align-items: center;
  padding: .35rem .75rem;
  border: 1px solid rgba(192,160,80,0.35);
  border-radius: 999px;
  background: rgba(255,250,230,0.55);
  color: #3a2e15;
  font-size: .92rem;
  cursor: pointer;
  transition: background .15s, border-color .15s;
}
.jour-statut input {
  position: absolute; opacity: 0; pointer-events: none;
}
.jour-statut.is-active {
  background: rgba(192,160,80,0.25);
  border-color: #b8954a;
  color: #3a2e15;
  font-weight: 600;
}
.jour-statut:hover { background: rgba(255,245,210,0.85); }

/* Chip variante "soft" pour "ce qui a poussé" et gratitude */
.jour-chip--soft {
  background: rgba(245,250,235,0.6);
  border-color: rgba(160,180,120,0.35);
}
.jour-chip--soft.is-active {
  background: linear-gradient(135deg, #c5d9a8, #a8c084);
  border-color: #8aa666;
  color: #2a3a18;
}

/* Chips apprentissages (un peu plus larges car prose longue en tooltip) */
.jour-chips--apprentissages {
  gap: .55rem;
}
.jour-chips--apprentissages .jour-chip {
  font-size: .96rem;
  padding: .5rem .9rem;
}

/* ============================================================
   v13 — Apprentissages dépliables + sens spirituels au soir
   + "Aujourd'hui je viens avec peu de force"
   ============================================================ */

/* Lien "peu de force" — discret en haut de "Je pose ma journée" */
.jour-peu-force {
  margin: .5rem 0 1rem;
  padding: 0;
}
.jour-peu-force__summary {
  cursor: pointer;
  color: #8a7a55;
  font-size: .92rem;
  font-style: italic;
  list-style: none;
  padding: .3rem 0;
}
.jour-peu-force__summary::-webkit-details-marker { display: none; }
.jour-peu-force__summary::before { content: "▸ "; color: #c0a050; }
.jour-peu-force[open] .jour-peu-force__summary::before { content: "▾ "; }
.jour-peu-force__body {
  margin: .4rem 0 0;
  padding: .65rem .9rem;
  background: rgba(255,250,235,0.55);
  border-left: 2px dashed rgba(192,160,80,0.4);
  color: #5a4a20;
  font-size: .96rem;
  line-height: 1.5;
}

/* Cartes apprentissages dépliables */
.app-carte {
  border: 1px solid rgba(192,160,80,0.3);
  border-radius: 10px;
  margin: .55rem 0;
  background: rgba(255,250,235,0.4);
  transition: border-color .15s, background .15s;
}
.app-carte.is-active {
  border-color: #b8954a;
  background: linear-gradient(135deg, rgba(255,248,225,0.85), rgba(248,238,210,0.6));
}
.app-carte__head {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .7rem;
  padding: .55rem .85rem;
}
.app-carte__head::-webkit-details-marker { display: none; }
.app-carte__check {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  cursor: pointer;
  color: #3a2e15;
  font-size: 1rem;
  flex: 1;
}
.app-carte__check input {
  accent-color: #c0a050;
  width: 1.05rem; height: 1.05rem;
}
.app-carte__expand {
  font-size: .8rem;
  letter-spacing: .04em;
  color: #8a7028;
  font-style: italic;
}
.app-carte__expand::before { content: "▸ "; }
.app-carte[open] .app-carte__expand::before { content: "▾ "; }
.app-carte[open] .app-carte__expand { color: #6a5520; }
.app-carte__body {
  padding: .35rem 1rem 1rem;
  border-top: 1px solid rgba(192,160,80,0.18);
}
.app-carte__sens {
  margin: .55rem 0;
  padding: .55rem .8rem;
  background: rgba(255,250,225,0.5);
  border-left: 3px solid #c0a050;
  border-radius: 4px;
  color: #3a2e15;
  font-style: italic;
  font-size: .98rem;
  line-height: 1.5;
}
.app-carte__field {
  margin: .35rem 0;
  color: #4a3a20;
  font-size: .94rem;
  line-height: 1.5;
}
.app-carte__field-label {
  display: block;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #8a7028;
  font-weight: 700;
  margin-bottom: .12rem;
}

/* Sens spirituels au soir (apparaissent au fil des mouvements cochés) */
.relu-sens {
  margin-top: .85rem;
}
.relu-sens__phrase {
  margin: .5rem 0;
  padding: .6rem .9rem;
  background: rgba(255,248,220,0.55);
  border-left: 3px solid #c0a050;
  border-radius: 4px;
  color: #3a2e15;
  font-size: .98rem;
  line-height: 1.55;
}
.relu-sens__mvt {
  font-weight: 700;
  color: #6a5520;
  margin-right: .3rem;
}

/* Accessibility helper — visually hidden but readable by screen readers */
.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* ============================================================
   v14 — Verset compagnon du jour (Coran ↔ carnet, audit 8 juin)
   ============================================================ */
.verset-compagnon {
  margin: 1rem 0 1.5rem;
  padding: 1.1rem 1.3rem;
  background: linear-gradient(135deg, rgba(255,250,235,0.85), rgba(248,238,210,0.65));
  border: 1px solid rgba(192,160,80,0.3);
  border-radius: 12px;
  text-align: center;
}
.verset-compagnon__label {
  display: inline-block;
  font-size: .76rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #8a7028;
  font-weight: 700;
  background: rgba(192,160,80,0.18);
  padding: .2rem .7rem;
  border-radius: 999px;
  margin-bottom: .65rem;
}
.verset-compagnon__ar {
  margin: .35rem 0;
  font-size: clamp(1.45rem, 5vw, 2.05rem);
  color: #2a1f08;
  line-height: 1.75;
  font-family: 'Amiri', serif;
}
.verset-compagnon__tr {
  margin: .15rem 0;
  font-size: .96rem;
  color: #6a5520;
}
.verset-compagnon__fr {
  margin: .45rem 0 .25rem;
  font-size: 1.05rem;
  color: #3a2e15;
  line-height: 1.55;
  font-style: italic;
}
.verset-compagnon__echo {
  margin: .35rem auto .5rem;
  max-width: 28rem;
  padding: .5rem .8rem;
  background: rgba(255,255,255,0.5);
  border-left: 3px solid #c0a050;
  border-radius: 4px;
  color: #5a4a20;
  font-size: .95rem;
  line-height: 1.5;
  text-align: left;
}
.verset-compagnon__link {
  display: inline-block;
  margin-top: .4rem;
  font-size: .88rem;
  color: #8a7028;
  text-decoration: none;
  border-bottom: 1px dotted #8a7028;
}
.verset-compagnon__link:hover { color: #6a5520; }

/* ============================================================
   v16 — Carnet ouvert : page d'entrée sobre, sans mot de passe
   ============================================================ */
.carnet-entree {
  max-width: 32rem;
  margin: 1rem auto 3rem;
  padding: 0 1.5rem;
}
.carnet-formule {
  display: grid;
  gap: .9rem;
  padding: 1.6rem;
  background: linear-gradient(160deg, #fff 0%, #fdf6e4 100%);
  border: 1px solid rgba(192, 160, 80, 0.3);
  border-radius: 12px;
  text-align: center;
}
.carnet-formule__label {
  display: block;
  text-align: left;
}
.carnet-formule__label span {
  display: block;
  font-size: .85rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #6a5520;
  font-weight: 600;
  margin-bottom: .35rem;
}
.carnet-formule__label input {
  width: 100%;
  padding: .75rem 1rem;
  font-size: 1.05rem;
  background: #fff;
  border: 1px solid rgba(192, 160, 80, 0.4);
  border-radius: 8px;
  font-family: inherit;
  color: #2a1f08;
  box-sizing: border-box;
}
.carnet-formule__label input:focus {
  outline: none;
  border-color: #c0a050;
  box-shadow: 0 0 0 3px rgba(192,160,80,0.15);
}
.carnet-formule__hint {
  margin: 0;
  font-size: .88rem;
  color: #8a7a55;
  text-align: center;
}
.carnet-cta {
  display: inline-block;
  padding: .9rem 1.6rem;
  background: linear-gradient(135deg, #c0a050, #a8884a);
  color: #fff !important;
  border: none;
  border-radius: 999px;
  font-family: var(--font-sans, Inter, sans-serif);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-decoration: none;
  cursor: pointer;
  transition: filter .15s, transform .15s, box-shadow .15s;
  box-shadow: 0 12px 28px -14px rgba(192,160,80,0.6);
}
.carnet-cta:hover {
  filter: brightness(1.08);
  transform: translateY(-1px);
}
.carnet-cta:disabled {
  filter: grayscale(0.3) brightness(0.95);
  cursor: wait;
}
.carnet-retour {
  text-align: center;
  padding: 1.5rem;
  background: rgba(255, 250, 235, 0.5);
  border: 1px solid rgba(192, 160, 80, 0.25);
  border-radius: 12px;
}
.carnet-retour__hello {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.35rem;
  color: #4a3a18;
  margin: 0 0 1rem;
  line-height: 1.4;
}
.carnet-retour__hello em {
  font-style: italic;
  color: #6a5520;
}
.carnet-retour__note {
  margin: 1rem 0 0;
  font-size: .88rem;
  color: #8a7a55;
}

/* ============================================================
   v17 — Carnet d'adab : matin centré sur le choix de thèmes,
   soir centré sur le bilan vécu de ces thèmes
   ============================================================ */
.jour-pose__intro {
  text-align: center;
  max-width: 36rem;
  margin: 1.2rem auto;
  color: #4a3a18;
  font-size: 1.04rem;
  line-height: 1.6;
}
.jour-pose__intro strong {
  color: #2a1f08;
  font-weight: 600;
}

.jour-famille-spi {
  margin: 1.8rem 0;
}
.jour-famille-spi__name {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.32rem;
  color: #8a7028;
  border-bottom: 1px dashed rgba(192, 160, 80, 0.35);
  padding-bottom: .35rem;
  margin: 1rem 0 .8rem;
  font-weight: 500;
  letter-spacing: .02em;
}

.jour-themes-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: .8rem;
}

/* Une carte thème — magnétique, élégante */
.jour-theme {
  display: block;
  position: relative;
  padding: 1.05rem 1.1rem .95rem;
  background: #fff;
  border: 1.5px solid rgba(192, 160, 80, 0.3);
  border-radius: 12px;
  cursor: pointer;
  transition: border-color .2s, transform .15s, box-shadow .2s, background .2s;
}
.jour-theme:hover {
  border-color: #c0a050;
  transform: translateY(-1px);
  box-shadow: 0 8px 22px -12px rgba(192, 160, 80, 0.4);
}
.jour-theme input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.jour-theme.is-selected {
  background: linear-gradient(160deg, #fff8dc, #fdf6e4);
  border-color: #b8954a;
  box-shadow: 0 0 0 1px #b8954a, 0 8px 22px -10px rgba(192,160,80,0.5);
}
.jour-theme.is-selected::after {
  content: '✦';
  position: absolute;
  top: .6rem;
  right: .8rem;
  color: #c0a050;
  font-size: 1.2rem;
}
.jour-theme__head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  margin-bottom: .3rem;
}
.jour-theme__ar {
  font-family: 'Amiri', serif;
  font-size: 1.18rem;
  color: #8a7028;
  direction: rtl;
  text-align: right;
  align-self: flex-end;
}
.jour-theme__tr {
  font-style: italic;
  color: #8a7028;
  font-size: .82rem;
  letter-spacing: .04em;
  margin-top: .15rem;
}
.jour-theme__titre {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.18rem;
  color: #2a1f08;
  margin: .15rem 0 .4rem;
  font-weight: 500;
  line-height: 1.3;
}
.jour-theme__tease {
  margin: 0;
  font-size: .92rem;
  color: #5a4a20;
  line-height: 1.5;
  font-style: italic;
}

/* Fiches détaillées des thèmes choisis (apparaissent en bas) */
.fiches-choisis {
  margin: 2.2rem 0 1rem;
  padding: 1.5rem 0 1rem;
  border-top: 2px solid rgba(192, 160, 80, 0.35);
  border-bottom: 2px solid rgba(192, 160, 80, 0.35);
}
.fiches-choisis__label {
  text-align: center;
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.2rem;
  color: #6a5520;
  font-style: italic;
  letter-spacing: .04em;
  margin: 0 0 1.2rem;
}
.fiche-theme {
  background: linear-gradient(160deg, #fff8dc, #fdf6e4);
  border: 1px solid rgba(192, 160, 80, 0.3);
  border-left: 4px solid #c0a050;
  border-radius: 12px;
  padding: 1.3rem 1.5rem;
  margin: 1rem 0;
}
.fiche-theme__head {
  text-align: center;
  border-bottom: 1px solid rgba(192, 160, 80, 0.2);
  padding-bottom: .8rem;
  margin-bottom: 1rem;
}
.fiche-theme__ar {
  display: block;
  font-family: 'Amiri', serif;
  font-size: 1.8rem;
  color: #2a1f08;
  direction: rtl;
  margin: 0;
}
.fiche-theme__titre {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.55rem;
  color: #2a1f08;
  margin: .3rem 0 .15rem;
  font-weight: 500;
}
.fiche-theme__tr {
  margin: 0;
  font-style: italic;
  color: #8a7028;
  font-size: .92rem;
  letter-spacing: .04em;
}
.fiche-theme__bloc {
  margin: .9rem 0;
}
.fiche-theme__bloc--soft {
  padding: .9rem 1.1rem;
  background: rgba(255, 255, 255, 0.55);
  border-radius: 6px;
  border-left: 3px solid rgba(192, 160, 80, 0.4);
}
.fiche-theme__label {
  display: block;
  font-size: .78rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #8a7028;
  font-weight: 700;
  margin-bottom: .35rem;
}
.fiche-theme__corps {
  margin: 0;
  font-family: 'Source Serif 4', Georgia, serif;
  color: #2a1f08;
  font-size: 1.02rem;
  line-height: 1.65;
}
.fiche-theme__liste {
  margin: .25rem 0 0;
  padding-left: 1.2rem;
  color: #2a1f08;
}
.fiche-theme__liste li {
  margin: .35rem 0;
  line-height: 1.5;
}
.fiche__pitfall {
  background: rgba(180, 90, 60, 0.07);
  border-left: 3px solid #c08850;
  padding: .55rem .85rem;
  border-radius: 4px;
  margin: .35rem 0;
  color: #2a1f08;
  font-size: .95rem;
  line-height: 1.5;
}
.fiche-theme__question {
  margin: 1rem 0 0;
  padding: 1rem 1.2rem;
  background: rgba(255, 255, 255, 0.7);
  border-radius: 8px;
  border-top: 2px solid #c0a050;
}
.fiche-theme__question-texte {
  margin: 0;
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.15rem;
  font-style: italic;
  color: #4a3a18;
  line-height: 1.45;
}

/* Bouton commit du matin — plus grand, plus chaleureux */
.jour-pose__commit {
  text-align: center;
  margin: 2rem 0 1rem;
}

/* Synthèse des thèmes choisis (rappel) */
.jour-synthese__themes {
  list-style: none;
  padding: 0;
  margin: .35rem 0 0;
}
.jour-synthese__themes li {
  padding: .4rem .6rem;
  border-bottom: 1px dotted rgba(192, 160, 80, 0.3);
}
.jour-synthese__themes li:last-child { border-bottom: 0; }

/* Soir — bilan d'un thème */
.relu-theme {
  background: #fff;
  border: 1px solid rgba(192, 160, 80, 0.3);
  border-left: 3px solid #c0a050;
  border-radius: 10px;
  padding: 1.1rem 1.3rem;
  margin: .9rem 0;
}
.relu-theme__head {
  display: flex;
  align-items: baseline;
  gap: .65rem;
  margin-bottom: .4rem;
  flex-wrap: wrap;
}
.relu-theme__ar {
  font-family: 'Amiri', serif;
  font-size: 1.2rem;
  color: #8a7028;
  direction: rtl;
}
.relu-theme__titre {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.22rem;
  color: #2a1f08;
  margin: 0;
  font-weight: 500;
  flex: 1;
}
.relu-theme__question {
  margin: .15rem 0 .65rem;
  padding: .55rem .85rem;
  background: rgba(255, 250, 235, 0.55);
  border-left: 2px solid #c0a050;
  border-radius: 4px;
  color: #4a3a18;
  font-size: .98rem;
  line-height: 1.5;
}
.relu-theme__note {
  display: block;
  margin-top: .65rem;
}
.relu-theme__note span {
  display: block;
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #6a5520;
  margin-bottom: .25rem;
}
.relu-theme__note textarea {
  width: 100%;
  padding: .6rem .85rem;
  border: 1px solid rgba(192, 160, 80, 0.35);
  border-radius: 8px;
  background: rgba(255, 250, 235, 0.4);
  font-family: inherit;
  font-size: .98rem;
  color: #2a1f08;
  resize: vertical;
  box-sizing: border-box;
  min-height: 4rem;
}
.relu-theme__note textarea:focus {
  outline: none;
  border-color: #c0a050;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(192, 160, 80, 0.15);
}
