/* ════════════════════════════════════════════════════════════════
   LE POULS DE L'ÉCO — carte d'indicateurs à défilement vertical
   (accueil, à côté du chiffre de la semaine, même gabarit carré)
   ════════════════════════════════════════════════════════════════ */
.lz-pouls {
  position: relative; width: 100%; max-width: 440px; aspect-ratio: 1 / 1;
  display: flex; flex-direction: column; overflow: hidden;
  border-radius: 16px; padding: 1.4rem 1.4rem 0; color: #fff;
  background: linear-gradient(45deg, #0C124D, #3409B1);
  box-shadow: 0 10px 30px rgba(12, 18, 77, .25);
}
@media (max-width: 991px) { .lz-pouls { max-width: 380px; } }

.lz-pouls__entete { display: flex; align-items: center; gap: .8rem; margin-bottom: .9rem; }
.lz-pouls__ecg { width: 64px; height: 32px; flex: 0 0 auto; }
.lz-pouls__ecg polyline {
  fill: none; stroke: #fff; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round;
  stroke-dasharray: 160; stroke-dashoffset: 160; animation: lz-pouls-battement 2.4s ease-in-out infinite;
}
@keyframes lz-pouls-battement { 0% { stroke-dashoffset: 160; } 55%, 100% { stroke-dashoffset: 0; } }
.lz-pouls__titre {
  margin: 0; padding: 0; background: transparent; color: #fff;
  font-family: 'Playfair Display', serif; font-weight: 900; font-size: 1.7rem; line-height: 1;
}
.lz-pouls__sous-titre { display: block; margin-top: .3rem; font-size: .78rem; color: rgba(255,255,255,.75); }

/* Fenêtre : fondu en haut et en bas, la liste y glisse. */
.lz-pouls__fenetre {
  position: relative; flex: 1; overflow: hidden; margin: 0 -1.4rem; padding: 0 1.4rem;
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 12%, #000 88%, transparent);
          mask-image: linear-gradient(to bottom, transparent, #000 12%, #000 88%, transparent);
}
.lz-pouls__fenetre:focus-visible { outline: 2px solid #fff; outline-offset: -4px; }
/* Défilement seulement quand la liste dépasse la carte (pouls_controller) ;
   sinon, liste immobile, sans sa copie ni fondus. */
.lz-pouls__liste[aria-hidden] { display: none; }
.lz-pouls:not(.is-defilant) .lz-pouls__fenetre { -webkit-mask-image: none; mask-image: none; }
.lz-pouls.is-defilant .lz-pouls__liste[aria-hidden] { display: block; }
.lz-pouls.is-defilant .lz-pouls__defile { animation: lz-pouls-defile var(--lz-pouls-duree, 24s) linear infinite; }
.lz-pouls__fenetre:hover .lz-pouls__defile,
.lz-pouls__fenetre:focus-within .lz-pouls__defile { animation-play-state: paused; }
/* Deux listes identiques : remonter d'une moitié ramène exactement au début. */
@keyframes lz-pouls-defile { from { transform: translateY(0); } to { transform: translateY(-50%); } }

.lz-pouls__liste { list-style: none; margin: 0; padding: 0; }
.lz-pouls__ligne {
  display: flex; align-items: center; justify-content: space-between; gap: .75rem;
  padding: .8rem .2rem; border-bottom: 1px solid rgba(255,255,255,.14);
}
.lz-pouls__nom { display: flex; flex-direction: column; min-width: 0; }
.lz-pouls__libelle { font-weight: 700; font-size: .92rem; line-height: 1.2; }
.lz-pouls__date { font-size: .72rem; color: rgba(255,255,255,.6); margin-top: .15rem; }
.lz-pouls__chiffres { display: flex; flex-direction: column; align-items: flex-end; flex: 0 0 auto; }
.lz-pouls__valeur { font-family: 'Roboto', sans-serif; font-weight: 800; font-size: 1.25rem; line-height: 1.1; white-space: nowrap; }
.lz-pouls__tendance {
  display: inline-flex; align-items: center; gap: .3rem; margin-top: .2rem;
  font-size: .72rem; font-weight: 700; padding: .1rem .45rem; border-radius: 999px;
  background: rgba(255,255,255,.12); color: rgba(255,255,255,.85);
}
.lz-pouls__ligne--hausse .lz-pouls__tendance { background: rgba(34,197,94,.2); color: #86efac; }
.lz-pouls__ligne--baisse .lz-pouls__tendance { background: rgba(248,113,113,.2); color: #fca5a5; }

/* Mouvement réduit : liste fixe et déroulable, une seule copie. */
@media (prefers-reduced-motion: reduce) {
  .lz-pouls__defile, .lz-pouls__ecg polyline { animation: none; }
  .lz-pouls__ecg polyline { stroke-dashoffset: 0; }
  .lz-pouls__fenetre { overflow-y: auto; -webkit-mask-image: none; mask-image: none; }
  .lz-pouls__liste[aria-hidden] { display: none; }
}
