/* ═══════════════════════════════════════════════
   Mon Mode de Vie — journal-module.css (rebuild)
   ═══════════════════════════════════════════════ */

.journal-sheet {
  width: min(1040px, calc(100% - 40px));
  min-height: calc(100% - 40px);
  margin: 20px auto;
  padding: 28px 40px 44px;
  font-family: var(--font-serif);
  line-height: var(--leading-prose);
}
.journal-ledger { width: 100%; }
.journal-ledger.is-loading {
  display: grid; place-items: center; min-height: 50vh;
  color: hsl(var(--muted-foreground)); font-family: var(--font-serif); font-size: var(--text-sm);
}
.journal-year { padding: 28px 0 18px; }
.journal-year + .journal-year { border-top: 1px solid hsl(var(--border) / 0.78); }
.journal-year__heading {
  margin: 0 0 16px; display: flex; align-items: center; gap: 16px;
  color: hsl(var(--story-accent)); font-family: var(--font-serif); font-size: clamp(30px, 4vw, 44px); font-weight: 400; letter-spacing: var(--tracking-heading);
}
.journal-year__heading::after { content: ""; flex: 1; height: 1px; background: hsl(var(--story-accent) / 0.48); }
.journal-year__list { border-top: 1px solid hsl(var(--border)); }
.journal-entry {
  display: grid; grid-template-columns: 92px 1fr 120px 68px; align-items: center;
  width: 100%; min-height: 112px; padding: 14px 6px; gap: 18px;
  border: 0; border-bottom: 1px solid hsl(var(--border) / 0.82);
  color: hsl(var(--foreground)); background: transparent;
  font: inherit; text-align: left; cursor: pointer;
  transition: background var(--motion-fast), padding var(--motion-fast);
}
.journal-entry:hover { background: hsl(var(--accent) / 0.28); padding-left: 12px; padding-right: 12px; }
.journal-entry:active { background: hsl(var(--accent) / 0.42); }
.journal-entry__date span { font-family: var(--font-serif); font-size: var(--text-xl); color: hsl(var(--story-accent)); }
.journal-entry__date small { font-family: var(--font-sans); font-size: var(--text-xs); letter-spacing: var(--tracking-label); color: hsl(var(--muted-foreground)); }
.journal-entry__excerpt { font-family: var(--font-serif); font-size: var(--text-xs); line-height: 1.75; color: hsl(var(--muted-foreground)); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.journal-entry__meta { font-family: var(--font-sans); font-size: var(--text-xs); letter-spacing: var(--tracking-label); color: hsl(var(--muted-foreground)); text-align: right; }
.journal-entry__meta small:first-child { color: hsl(var(--story-accent)); font-weight: 700; }
.journal-entry__visual { width: 68px; height: 68px; border: 1px solid hsl(var(--border)); overflow: hidden; transform: rotate(1.5deg); }
.journal-entry__visual img { width: 100%; height: 100%; object-fit: cover; }
.journal-entry__visual.is-text-preview { padding: 7px; background: linear-gradient(hsl(var(--story-accent)/0.12) 1px, transparent 1px) 0 30px/100% 15px, hsl(var(--card)); transform: rotate(-1.25deg); }

@media (max-width: 760px) {
  .journal-sheet { margin: 10px auto; padding: 8px 14px 30px; }
  .journal-entry { grid-template-columns: 68px 1fr 54px; gap: 12px; }
  .journal-entry__meta { display: none; }
  .journal-entry__visual { width: 54px; height: 54px; }
}

/* ═══ Journal Reader ═══ */
.journal-reader { animation: reader-in 0.3s cubic-bezier(0.12,0,0.32,1) both; }
@keyframes reader-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.journal-reader__back {
  display: inline-flex; align-items: center; gap: 6px;
  margin-bottom: 24px; padding: 8px 16px;
  border: 1px solid hsl(var(--border) / 0.6); border-radius: var(--radius-pill);
  color: hsl(var(--accent-foreground)); background: hsl(var(--card) / 0.55);
  font-family: var(--font-sans); font-size: var(--text-sm); cursor: pointer;
  transition: background var(--motion-fast), transform 0.2s cubic-bezier(0.12,0,0.32,1);
}
.journal-reader__back:hover { background: hsl(var(--accent) / 0.4); transform: translateX(-4px); }
.journal-reader__back:active { transform: scale(0.97); }
.journal-reader__content {
  max-width: 740px;
  font-family: var(--font-serif); font-size: var(--text-lead); line-height: var(--leading-prose);
  color: hsl(var(--foreground));
}
.journal-reader__content h1 { font-size: var(--text-2xl); font-weight: 500; margin: 0 0 0.5rem; letter-spacing: var(--tracking-heading); }
.journal-reader__content h2 { font-size: var(--text-xl); font-weight: 500; margin: 2rem 0 0.8rem; }
.journal-reader__content h3 { font-size: var(--text-lead); font-weight: 500; margin: 1.6rem 0 0.6rem; }
.journal-reader__content p { margin: 0 0 1rem; }
.journal-reader__content img { max-width: 100%; height: auto; border-radius: var(--radius-sm); margin: 1.2rem 0; }
.journal-reader__content blockquote {
  margin: 1rem 0; padding: 1rem 1.4rem;
  border-left: 3px solid hsl(var(--accent-foreground) / 0.5);
  background: hsl(var(--card) / 0.4);
  color: hsl(var(--muted-foreground));
}
.journal-reader__content hr { border: 0; border-top: 1px solid hsl(var(--border) / 0.8); margin: 2rem 0; }
.journal-reader__content a { color: hsl(var(--accent-foreground)); text-decoration: underline; text-underline-offset: 0.15em; }
.journal-reader__loading, .journal-reader__error {
  color: hsl(var(--muted-foreground)); text-align: center; padding: 3rem 0;
  font-family: var(--font-serif); font-size: var(--text-sm);
}
