/* ============================================================
   Woodpecker 3.0 — Apprendre (fiches de traders légendaires)
   Calme, anti-card-farm : portraits + typographie + dividers.
   Zéro boîte, zéro ambre décoratif (Z7). La citation = hero.
   ============================================================ */

/* --- Portraits (photo) & monogrammes (fallback initiales) --- */
.trader-portrait {
  flex: none;
  width: 40px; height: 40px;
  border-radius: var(--r-md);
  object-fit: cover;
  display: block;
  border: 1px solid var(--border-soft);
  background: var(--surface);
}
.trader-portrait--lg {
  width: 72px; height: 72px;
  border-radius: var(--r-lg);
  box-shadow: 0 0 0 1px var(--border-soft), 0 6px 20px rgba(0, 0, 0, .28);
}
.trader-mono {
  flex: none;
  display: grid;
  place-items: center;
  width: 40px; height: 40px;
  border-radius: var(--r-md);
  background: var(--surface-2);
  border: 1px solid var(--border-soft);
  font-family: var(--font-mono);
  font-weight: var(--fw-bold);
  font-size: var(--fs-sm);
  color: var(--text-muted);
  letter-spacing: -0.02em;
}
.trader-mono--lg {
  width: 72px; height: 72px;
  border-radius: var(--r-lg);
  font-size: var(--fs-lg);
  box-shadow: 0 0 0 1px var(--border-soft), 0 6px 20px rgba(0, 0, 0, .28);
}

/* --- Hero (fiche) --- */
.trader-hero { display: flex; flex-direction: column; gap: var(--s-4); }
.trader-hero__top { display: flex; align-items: center; gap: var(--s-4); }
.trader-hero__id { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.trader-hero h1 {
  font-size: var(--fs-2xl);
  font-weight: var(--fw-bold);
  letter-spacing: -0.025em;
  line-height: 1.05;
  margin: 0;
}
.trader-sub { font-size: var(--fs-sm); color: var(--text-dim); }
.trader-tags { display: flex; flex-wrap: wrap; gap: var(--s-1); }

/* --- La citation = hero interne. Signature éditoriale :
   grand guillemet serif dim au-dessus, typo la plus forte. Pas d'ambre. --- */
.trader-quote {
  margin: 0;
  font-size: var(--fs-xl);
  font-weight: var(--fw-semi);
  line-height: 1.35;
  letter-spacing: -0.015em;
  color: var(--text);
}
.trader-quote::before {
  content: '\201C';
  display: block;
  height: 26px;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 42px;
  line-height: 1;
  color: var(--text-faint);
  opacity: 0.6;
}
.trader-quote::after {
  content: '\201D';
  font-family: Georgia, 'Times New Roman', serif;
  color: var(--text-faint);
  opacity: 0.6;
}

/* --- Bio : prose lisible, largeur contrainte --- */
.trader-bio {
  margin: 0;
  max-width: 62ch;
  font-size: var(--fs-sm);
  line-height: 1.65;
  color: var(--text-muted);
}

/* --- Kicker de sous-section (Entrées / Sorties / Forces…) : dim, pas ambre --- */
.trader-kicker {
  display: block;
  margin: 0 0 var(--s-2);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-semi);
  text-transform: uppercase;
  letter-spacing: var(--tracking-xwide);
  color: var(--text-dim);
}
.trader-block { margin-bottom: var(--s-3); }
.trader-block:last-child { margin-bottom: 0; }

/* --- Listes de points --- */
.trader-points { margin: 0; padding-left: var(--s-3); display: grid; gap: 5px; list-style: disc; }
.trader-points li {
  font-size: var(--fs-sm);
  line-height: 1.5;
  color: var(--text-muted);
  max-width: 62ch;
  padding-left: 2px;
}
.trader-points li::marker { color: var(--text-faint); }

/* --- Méthode : 3 sous-blocs (Entrées/Sorties/Risque), empilés puis 3 colonnes --- */
.trader-method { display: grid; gap: var(--s-4); }
@media (min-width: 720px) {
  .trader-method { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-5); align-items: start; }
}

/* --- Exercice : takeaway actionnable en callout (filet gauche dim, pas de boîte) --- */
.trader-exercise {
  margin: 0;
  max-width: 62ch;
  padding: 2px 0 2px var(--s-4);
  border-left: 2px solid var(--border-soft);
  font-size: var(--fs-sm);
  line-height: 1.6;
  color: var(--text);
}

/* --- Parcours : timeline éditoriale (année | rail + nœuds | corps) --- */
.trader-tl { display: flex; flex-direction: column; max-width: 62ch; }
.trader-tl__item {
  display: grid;
  grid-template-columns: 44px 14px minmax(0, 1fr);
  column-gap: var(--s-2);
  margin-bottom: var(--s-4);
  position: relative;
}
.trader-tl__item:last-child { margin-bottom: 0; }
.trader-tl__year {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semi);
  color: var(--text-dim);
  padding-top: 2px;
}
.trader-tl__dot { position: relative; }
.trader-tl__dot::before {            /* rail vertical — descend jusqu'au nœud suivant */
  content: '';
  position: absolute;
  left: 50%;
  top: 10px;
  bottom: calc(-1 * var(--s-4));
  width: 1px;
  background: var(--border-soft);
  transform: translateX(-50%);
}
.trader-tl__item:last-child .trader-tl__dot::before { display: none; }
.trader-tl__dot::after {             /* nœud sur le rail */
  content: '';
  position: absolute;
  left: 50%; top: 5px;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--bg);
  border: 1px solid var(--text-dim);
  transform: translateX(-50%);
}
.trader-tl__body { min-width: 0; padding-top: 0; }
.trader-tl__label { font-size: var(--fs-sm); font-weight: var(--fw-semi); color: var(--text); line-height: 1.3; }
.trader-tl__detail { font-size: var(--fs-sm); color: var(--text-muted); line-height: 1.45; margin-top: 2px; }

/* --- Liste (#/learn) : row avec portrait à gauche --- */
.trader-list-row { align-items: center; }
.trader-list-row .row__title { font-size: var(--fs-md); }
.trader-list-row .row__sub { font-size: var(--fs-xs); }

/* --- Recherche --- */
.trader-search { margin: var(--s-2) 0 var(--s-3); }
.trader-search .input { width: 100%; }

/* --- Back link --- */
.trader-back {
  display: inline-flex; align-items: center; gap: 6px;
  margin-bottom: var(--s-3);
  color: var(--text-dim);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semi);
  cursor: pointer;
  background: none; border: none; padding: 0;
}
.trader-back:hover { color: var(--text); }
