/* ================================================================
   V9 — Fiche d'audience (jour J) + comparables DVF écartables.
   Audit valeur 2026-08-19, P1 : logistique publique, stratégie premium
   (plafond central + sensibilités par risque sourcé), simulateur inverse.
   S'appuie sur les tokens dossier (--c-ink, --c-muted, --c-ok, --c-danger,
   --c-bg) posés par dossier_v1/v2.css et le thème émeraude.
   ================================================================ */

.fa { margin-top: 18px; }
.fa__when { font-size: 12px; color: var(--c-muted); white-space: nowrap; }
.fa__disclaimer {
  margin: 10px 0 14px;
  font-size: 12px;
  color: var(--c-muted);
  border-left: 3px solid var(--c-border, rgba(125, 125, 125, 0.35));
  padding-left: 10px;
}

/* — L'argent du jour J, en deux temps —
   Avant l'audience (ce qu'il faut réunir pour pouvoir enchérir) puis après
   adjudication (ce qu'on doit alors). Les deux temps n'engagent ni la même
   somme ni le même moment, et les mélanger dans une grille unique laissait la
   carte de total voisiner ses propres composants — trois cartes affichant
   « 75 000 € » de suite sur un dossier où consignation et émoluments valent
   chacun 10 % de la mise à prix (audit UI 2026-08-22). */
.fa__money-h {
  margin: 18px 0 8px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--c-muted);
}
.fa__money-h:first-of-type { margin-top: 4px; }
/* Le total ferme sa section au lieu d'être une carte de même rang : un trait
   plein en tête, la somme en gros, sa nuance certain/estimé en dessous. */
.fa__total {
  display: grid;
  grid-template-columns: auto auto;
  align-items: baseline;
  gap: 4px 12px;
  margin: 10px 0 0;
  padding-top: 10px;
  border-top: 2px solid var(--c-ink);
}
.fa__total-lbl {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--c-muted);
}
.fa__total-val {
  font-size: 20px;
  font-weight: 700;
  color: var(--c-ink);
  justify-self: end;
}
.fa__total .fa__hint { grid-column: 1 / -1; }

/* Renvoi vers le plafond, qui vit avec ses hypothèses dans Scénarios. */
.fa__renvoi {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--sp-1) var(--sp-3);
  margin: var(--sp-4) 0 0;
  padding: var(--sp-3) var(--sp-4);
  border: 1px dashed var(--c-border);
  border-radius: var(--rad-card);
}
.fa__renvoi-lbl {
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: var(--ls-cap);
  color: var(--c-muted);
}
.fa__renvoi-val { font-size: var(--fs-section); font-weight: 700; color: var(--c-ink); }
.fa__renvoi-link {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: var(--sp-1);
  min-height: 32px;
  padding: 0 var(--sp-1);
  border: 0;
  background: none;
  font: inherit;
  font-size: var(--fs-base);
  color: var(--c-accent);
  cursor: pointer;
}
.fa__renvoi-link:hover { text-decoration: underline; }
.fa__renvoi-link:focus-visible {
  outline: 2px solid var(--c-accent);
  outline-offset: 2px;
}
.fa__renvoi-link .material-symbols-outlined { font-size: var(--fs-title); }

/* — Grille logistique — */
.fa__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 10px;
}
.fa__item {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 12px 14px;
  border: 1px solid var(--c-border, rgba(125, 125, 125, 0.25));
  border-radius: 10px;
  background: var(--c-bg-raised, transparent);
}
.fa__item--hero { border-width: 2px; }
.fa__item--total { border-style: solid; border-color: var(--c-ink); }
.fa__lbl {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--c-muted);
}
.fa__val { font-size: 17px; font-weight: 600; color: var(--c-ink); }
.fa__val--muted { color: var(--c-muted); font-weight: 500; font-size: 14px; }
.fa__hint { font-size: 11.5px; line-height: 1.45; color: var(--c-muted); }
.fa__badge {
  position: absolute;
  top: 10px;
  right: 12px;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--c-muted);
  border: 1px solid var(--c-border, rgba(125, 125, 125, 0.35));
  border-radius: 999px;
  padding: 1px 7px;
}
/* Le même badge dans la ligne de total (2026-09-04) : la ligne est une
   grille, pas une carte positionnée — en absolu il partait se coller au coin
   de la section. Il rejoint le flux, après le montant. */
.fa__total .fa__badge--inline { position: static; margin-left: 6px; vertical-align: middle; }

/* — Stratégie — */
.fa__strategy {
  margin-top: 16px;
  padding: 14px;
  border: 1px solid var(--c-border, rgba(125, 125, 125, 0.25));
  border-radius: 12px;
}
.fa__strategy-h { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; }
.fa__strategy-t { font-weight: 700; font-size: 14px; color: var(--c-ink); }
.fa__strategy-sub { font-size: 12px; color: var(--c-muted); }
.fa__chip {
  display: inline-block;
  font-size: 10.5px;
  border: 1px solid var(--c-border, rgba(125, 125, 125, 0.35));
  border-radius: 999px;
  padding: 1px 8px;
  color: var(--c-muted);
  vertical-align: middle;
}
.fa__chip--perso { border-color: var(--c-ok); color: var(--c-ok); }
.fa__chip--ok { border-color: var(--c-ok); color: var(--c-ok); }
.fa__chip--danger { border-color: var(--c-danger); color: var(--c-danger); }

.fa__plafond {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 12px;
  align-items: flex-start;
}
.fa__plafond-main { flex: 1 1 260px; display: flex; flex-direction: column; gap: 4px; }
.fa__plafond-val { font-size: 26px; font-weight: 700; color: var(--c-ink); }
.fa__plafond-perso {
  flex: 0 1 260px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 10px 12px;
  /* Trait plein comme toutes les autres cartes : le pointille ajoutait un
     troisieme style de bordure a la page pour un bloc qui n'est ni provisoire
     ni desactive. */
  border: 1px solid var(--c-border);
  border-radius: 10px;
}
.fa__perso-wrap { display: inline-flex; align-items: center; gap: 6px; }
.fa__perso-input {
  width: 130px;
  font-size: 15px;
  padding: 5px 8px;
  border: 1px solid var(--c-border, rgba(125, 125, 125, 0.4));
  border-radius: 8px;
  background: transparent;
  color: var(--c-ink);
}
.fa__perso-unit { color: var(--c-muted); font-size: 13px; }

/* — « Jusqu'où enchérir à l'audience », sous le comparatif de l'onglet
   Scénarios (_plafond_audience.html, audit UI 2026-08-22) —
   Réutilise les classes .fa__* : c'est le même bloc, rapatrié depuis la fiche
   d'audience, et le dupliquer sous un autre préfixe aurait recréé deux
   apparences pour un seul composant. Seuls les écarts propres à son nouveau
   voisinage portent le préfixe .pa__. */
.pa { margin-top: var(--sp-5); }
.pa__alert {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-2);
  margin: var(--sp-3) 0 0;
  padding: var(--sp-2) var(--sp-3);
  border-radius: var(--rad-card);
  border: 1px solid var(--c-danger);
  color: var(--c-danger);
  font-size: var(--fs-base);
  line-height: 1.45;
}
.pa__alert .material-symbols-outlined { font-size: var(--fs-section); flex: none; }
/* Tester un prix puis arrêter le sien : deux gestes voisins, donc deux colonnes
   tant que la place le permet. */
.pa__decide {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  align-items: flex-start;
}
.pa__decide > .fa__sim { flex: 1 1 320px; min-width: 0; }
.pa__perso { flex: 0 1 260px; margin-top: 16px; }

/* — Sensibilités — */
.fa__sens, .fa__travaux, .fa__sim { margin-top: 16px; }
.fa__sens-h { margin: 0 0 2px; font-size: 13px; font-weight: 600; color: var(--c-ink); }
.fa__sens-note { margin: 2px 0 8px; font-size: 11.5px; color: var(--c-muted); line-height: 1.5; }
.fa__sens-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.fa__sens-item {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 12px;
  padding: 8px 10px 8px 12px;
  border-left: 3px solid var(--c-border, rgba(125, 125, 125, 0.35));
  border-radius: 4px;
  font-size: 12.5px;
}
.fa__sens-item--bloquant { border-left-color: var(--c-danger); }
.fa__sens-item--eleve { border-left-color: var(--c-warn-fg, #b07818); }
.fa__sens-item--nc { opacity: 0.75; }
.fa__sens-label { flex: 1 1 240px; color: var(--c-ink); }
.fa__sens-impact { white-space: nowrap; color: var(--c-ink); }
.fa__sens-arrow { color: var(--c-ink); }
.fa__sens-arrow .mono { font-weight: 600; }
.fa__sens-arrow--muted { color: var(--c-muted); font-style: italic; }

/* — Postes & formule — */
.fa__postes, .fa__formule { margin-top: 8px; }
.fa__postes summary, .fa__formule summary {
  cursor: pointer;
  font-size: 12.5px;
  color: var(--c-ink);
  user-select: none;
}
.fa__postes-table, .fa__formule-table { margin-top: 8px; font-size: 12.5px; }
.fa__formule-table td { vertical-align: baseline; }
.fa__formule-total td { font-weight: 700; border-top: 1px solid var(--c-border, rgba(125, 125, 125, 0.35)); }
.fa__src { font-size: 11px; color: var(--c-muted); padding-left: 10px; }

/* — Simulateur — */
.fa__sim-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 6px 0; }
.fa__sim-out { font-size: 12.5px; color: var(--c-muted); }
.fa__sim-out .mono { font-size: 14px; font-weight: 600; color: var(--c-ink); }

/* ================================================================
   Comparables DVF écartables (onglet Marché) — audit P1 ⑧.
   2026-08-22 : le bloc a fusionné avec l'« échantillon élargi du secteur »
   (mêmes ventes, deux tableaux) — il emprunte désormais la table de
   `.tech__comps-table`. Les règles `.dvfc__note` / `.dvfc__table*` de
   l'ancienne table autonome n'avaient plus de porteur : supprimées.
   ================================================================ */
.dvfc { margin-top: 16px; }
.dvfc__row.is-excluded td { opacity: 0.45; text-decoration: line-through; }
.dvfc__row.is-excluded td:last-child { text-decoration: none; }
.dvfc__btn {
  min-height: 32px;
  font-size: var(--fs-xs);
  border: 1px solid var(--c-border);
  border-radius: 999px;
  padding: 2px 9px;
  background: transparent;
  color: var(--c-muted);
  cursor: pointer;
}
.dvfc__btn:hover { color: var(--c-ink); border-color: var(--c-ink); }
.dvfc__btn:focus-visible {
  outline: 2px solid var(--c-accent);
  outline-offset: 2px;
}
.dvfc__stats { font-size: 12px; color: var(--c-muted); margin: 10px 4px 0; }
.dvfc__stats .mono { color: var(--c-ink); font-weight: 600; }
/* Pavé méthodologique — une seule fois sous le tableau fusionné. Reprend le
   gabarit de l'ancienne note en pied de l'échantillon élargi. */
.dvfc__methode {
  margin: 6px 4px 0;
  padding-bottom: 6px;
  font-size: 11px;
  line-height: 1.45;
  color: var(--c-muted);
}

/* ── Jalon d'échéance dépassée (audit UI 2026-08-22) ──────────────────────
   La consignation affichait « — 8 jours avant audience » en dur, jamais de
   date, `done` câblé à false : sur un dossier dont l'audience est dans 6
   jours, l'écran ne pouvait pas dire que la remise du chèque était derrière
   nous. La date est désormais calculée ; il reste à ne PAS la peindre comme
   une étape accomplie — `is-done` barre le libellé et passe le point au vert,
   ce qui pour une échéance ratée dit exactement l'inverse du vrai. */
.v1-timeline li.is-overdue .v1-timeline__lab,
.ev__timeline li.is-overdue .ev__timeline-lab {
  color: var(--c-danger);
  font-weight: 600;
  text-decoration: none;
}
.v1-timeline li.is-overdue .v1-timeline__dot,
.ev__timeline li.is-overdue .ev__timeline-dot {
  background: var(--c-danger);
  outline-color: var(--c-danger);
  border-color: var(--c-danger);
}
.v1-timeline li.is-overdue .v1-timeline__dt,
.ev__timeline li.is-overdue .ev__timeline-dt {
  color: var(--c-danger);
}
.v1-timeline__late,
.ev__timeline-late {
  display: block;
  font-family: inherit;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: var(--c-danger);
}
/* Le délai de consignation relève de l'usage et du CCV, pas de la loi : on
   l'écrit sous le jalon plutôt que de le faire passer pour une règle. */
.v1-timeline__note,
.ev__timeline-note {
  display: block;
  font-size: 10.5px;
  font-weight: 400;
  line-height: 1.35;
  color: var(--c-muted);
  text-decoration: none;
}
.v1-timeline li.is-done .v1-timeline__note,
.ev__timeline li.is-done .ev__timeline-note { text-decoration: none; }

/* ── Désaccord parcelle IGN ↔ référence des pièces (audit UI 2026-08-22) ───
   La contenance cadastrale vient du point géocodé. Quand ce point tombe sur
   une parcelle qui n'est pas celle citée par le dossier, le m² affiché décrit
   une voisine : mesuré sur 456 annonces du catalogue, dont 234 avaient déjà
   recopié ce chiffre en surface_terrain. On le peint comme un litige, pas
   comme une mesure. */
.tech__rows .row--warn .lab,
.tech__rows .row--warn .val { color: var(--c-danger); }
.tech__note--warn {
  background: var(--c-panel);
  border-color: var(--c-warn);
  color: var(--c-ink);
}
.tech__note--warn .material-symbols-outlined { color: var(--c-warn); }
.tech__note--warn strong { font-weight: 650; }

/* Le badge d'état de sauvegarde est vide au repos : sans cette règle, il
   afficherait une pastille vide en permanence dans l'en-tête d'accordéon. */
.sc-cockpit__status:empty { display: none; }

/* ── Retour d'enregistrement (audit UI 2026-08-22) ─────────────────────────
   Trois états, jamais un silence : en cours / enregistré / échec. L'échec ne
   s'efface pas tout seul — c'est le seul des trois qui appelle une action. */
.mdb-statut {
  display: inline-flex; align-items: center; gap: 6px;
  margin: 6px 0 0;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 11.5px;
  line-height: 1.5;
}
.mdb-statut--encours { background: var(--c-bg-2); color: var(--c-muted); }
.mdb-statut--ok      { background: var(--c-ok-bg, #e1f5e6); color: var(--c-ok); }
.mdb-statut--erreur  { background: var(--c-danger-bg); color: var(--c-danger); font-weight: 600; }

/* Lien d'action dans une aide de la fiche (annuaire des avocats) : même
   encre que l'aide, souligné pour rester reconnaissable comme lien. */
.fa__hint-link { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.fa__hint-link:hover { color: var(--c-ink); }

/* Badge « liste type » du passif à vérifier : neutre, là où « analysé pour ce
   dossier » est accentué — la liste ne prétend pas avoir lu les pièces. */
.v1-sect__badge--mut { background: var(--c-bg-2); color: var(--c-muted); }

/* Précision sous un interlocuteur (« il ne vous représente pas ») : rang
   d'aide, pas de valeur. */
.prep-facts__note { font-size: 11.5px; color: var(--c-muted); line-height: 1.4; }

/* Chip de spec dont la valeur est contestée (parcelle discordante) : on la
   montre comme un point à trancher, pas comme une mesure. */
.dossier-header__spec--litige {
  border-color: var(--c-warn) !important;
  color: var(--c-warn);
}

/* ── Bouton de dépliage d'une ligne de scénario (audit UI 2026-08-22) ──────
   Remplace le `role="button"` posé sur le <tr>. Il reprend l'apparence du
   chevron qu'il enveloppe — rien ne change à l'œil — mais devient un contrôle
   réel : focalisable, annoncé, avec 44 px de cible au doigt. */
.sc-table__disclose {
  display: inline-flex; align-items: center; justify-content: center;
  position: relative;
  padding: 0; margin: 0;
  border: 0; background: none;
  color: inherit; font: inherit;
  cursor: pointer;
}
.sc-table__disclose::after {
  content: "";
  position: absolute; top: 50%; left: 50%;
  width: 44px; height: 44px;
  transform: translate(-50%, -50%);
}
@media (pointer: fine) {
  .sc-table__disclose::after { width: 100%; height: 100%; }
}
.sc-table__disclose:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; }

/* ── Bouton d'aide du glossaire (audit UI 2026-08-22) ──────────────────────
   L'élément est passé de <span role="button"> à <button> : il faut neutraliser
   les défauts du bouton (bordure, fond, police) pour ne rien changer à l'œil,
   lui donner une cible tactile décente, et lui RENDRE son anneau de focus —
   l'ancien `:focus-visible { outline: none }` ne laissait qu'un changement de
   couleur pour signaler la position du clavier. */
button.legal__bullet-help {
  position: relative;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
}
button.legal__bullet-help::after {
  content: "";
  position: absolute; top: 50%; left: 50%;
  width: 44px; height: 44px;
  transform: translate(-50%, -50%);
}
@media (pointer: fine) {
  button.legal__bullet-help::after { width: 100%; height: 100%; }
}
button.legal__bullet-help:focus-visible {
  outline: 2px solid var(--c-accent);
  outline-offset: 2px;
}

/* ── Tableau DVF unique (audit UI 2026-08-22) ──────────────────────────────
   Les deux tableaux (échantillon élargi / ventes qui fondent l'estimation)
   n'en font plus qu'un, avec trois filtres emboîtés. Le marqueur « retenue »
   et la teinte de ligne ne servent plus que dans les vues MIXTES : sous le
   filtre « Retenues », ils s'appliqueraient à toutes les lignes — donc à
   aucune (d'où `.is-mixte`, posé par Alpine sur le <details>). */
.tech__comps-role {
  margin: 8px 4px 0;
  font-size: 11.5px;
  line-height: 1.5;
  color: var(--c-muted);
}
.tech__comps-summary { cursor: pointer; }
.tech__comps-summary-icon {
  vertical-align: middle;
  font-size: 18px;
}
.tech__comps-table-wrap { margin-top: 8px; }
.tech__comps-table { font-size: 12px; }
/* Pastilles de périmètre : même gabarit que l'ancien couple
   « Surface comparable / Toutes tailles », rien de neuf à apprendre. */
.tech__comps-filtres {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
  padding: 0 4px;
}
.tech__comps-filtres .v1-tag {
  cursor: pointer;
  min-height: 32px;
  border: 1px solid var(--c-border);
  padding: 4px 10px;
}
.tech__comps-filtres .v1-tag:focus-visible {
  outline: 2px solid var(--c-accent);
  outline-offset: 2px;
}
/* En-têtes triables — rapatriés du <style> inline de _technical_market.html,
   qui habillait à distance une table désormais rendue par ce partial. */
.tech__comps-sort-button {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 var(--sp-1);
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
  user-select: none;
  transition: color 0.15s;
}
.tech__comps-sort-button:hover,
.tech__comps-table th.is-sort-active .tech__comps-sort-button { color: var(--c-accent); }
.tech__comps-sort-button:focus-visible {
  outline: 2px solid var(--c-accent);
  outline-offset: 2px;
}
.tech__comps-sort--left { text-align: left; }
.tech__comps-sort--right { text-align: right; }
.tech__comps-sort--right .tech__comps-sort-button { margin-left: auto; }
.tech__comps-sort--narrow { width: 90px; }
.tech__comps-table .th-sort-arrow {
  margin-left: 3px;
  font-size: 9px;
  opacity: 0.7;
}
.tech__comps-retenue {
  display: inline-block;
  margin-left: 5px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--c-accent-soft);
  color: var(--c-accent);
  font-family: inherit;
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  vertical-align: 1px;
}
.tech__comps.is-mixte .tech__comps-table tr.is-retenue td { background: var(--c-accent-soft); }
.dvfc__row--outside-window { opacity: 0.85; }
.tech__comps-outside-marker { font-size: 10px; }
/* Alpine déclenche le tri via cet élément technique, qui ne doit jamais
   occuper d'espace ni devenir une information visible. */
.dvfc__sort-effect { display: none; }

@media (pointer: coarse) {
  .fa__renvoi-link,
  .fa__perso-input,
  .dvfc__btn,
  .tech__comps-filtres .v1-tag,
  .tech__comps-sort-button { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  .tech__comps-sort-button { transition: none; }
}

}


/* ============================================================================
   AUDIENCE & PIÈCES — même grammaire de cartes que les autres onglets
   (2026-08-23). Les sections de cet onglet restaient des feuillets plats à
   filet bas (.v1-sect, .v1-panel), alors que Décision/Risques/Scénarios/Marché
   présentent des cartes bordées coiffées d'un bandeau émeraude. On aligne :
   chaque section devient une carte, son en-tête devient le bandeau commun.
   Gaté au panneau : les .v1-sect des autres onglets ne bougent pas.
   ============================================================================ */
.theme-emeraude .dossier-tab-panel[data-panel="preparation"] > .v1-sect,
.theme-emeraude .dossier-tab-panel[data-panel="preparation"] > .v1-panel {
  background: var(--c-panel);
  border: 1px solid var(--c-border);
  border-radius: var(--blk-radius);
  box-shadow: var(--blk-shadow);
  overflow: hidden;
}
/* Gouttière latérale : devenus des cartes bordées, ces blocs touchaient les
   bords du panneau — même retrait que les cartes de l'onglet Scénarios
   (tvx/atelier, 32px), resserré sur mobile. */
.theme-emeraude .dossier-tab-panel[data-panel="preparation"] > .v1-sect,
.theme-emeraude .dossier-tab-panel[data-panel="preparation"] > .v1-panel {
  margin-left: 32px;
  margin-right: 32px;
}
@media (max-width: 720px) {
  .theme-emeraude .dossier-tab-panel[data-panel="preparation"] > .v1-sect,
  .theme-emeraude .dossier-tab-panel[data-panel="preparation"] > .v1-panel {
    margin-left: 16px;
    margin-right: 16px;
  }
}
/* Bandeau : marges négatives = padding de .v1-sect (20px 28px) / .v1-panel
   (14px 18px), pour un bandeau à bord perdu comme sur les autres cartes. */
.theme-emeraude .dossier-tab-panel[data-panel="preparation"] > .v1-sect > .v1-sect__h {
  margin: -20px -28px 7px;
  padding: 10px 20px 6px;
  background: var(--c-panel);
  /* coupe le filet + padding-bottom de section hérités de v3_polish (S1) :
     ici c'est un en-tête de carte, sa seule marque est le trait émeraude. */
  border-bottom: 0;
}
.theme-emeraude .dossier-tab-panel[data-panel="preparation"] > .v1-panel > .v1-panel__h {
  margin: -14px -18px 7px;
  padding: 10px 20px 6px;
  background: var(--c-panel);
  border-bottom: 0;
}
.theme-emeraude .dossier-tab-panel[data-panel="preparation"] > .v1-sect > .v1-sect__h :is(.v1-sect__n, .v1-sect__t),
.theme-emeraude .dossier-tab-panel[data-panel="preparation"] > .v1-panel > .v1-panel__h :is(h3, h4) {
  color: var(--c-accent-strong);
}
.theme-emeraude .dossier-tab-panel[data-panel="preparation"] > .v1-sect > .v1-sect__h :is(.v1-sect__r, .fa__when),
.theme-emeraude .dossier-tab-panel[data-panel="preparation"] > .v1-panel > .v1-panel__h .v1-panel__m {
  color: var(--c-muted);
}
