/* fiche-v2.css — FICHE v2 « le terrain au centre » (branche fiche-v2)
   Couleurs : uniquement les tokens de tokens.css.
   Quatre couleurs d'etat :
     rouge = contrainte   ambre = a verifier   vert = rien a signaler
     gris = information   anneau gris vide = hors de nos sources (discret)
   Le bleu reste la marque et la selection, jamais un etat. */

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; }
body {
  background: var(--bg-base); color: var(--text-primary);
  font-family: var(--font); font-size: 15px; line-height: 1.45;
  -webkit-font-smoothing: antialiased; font-feature-settings: "tnum" 1;
}
a { color: var(--blue-bright); text-decoration: none; }
a:hover { color: var(--blue-soft); }
button { font-family: inherit; color: inherit; }
.fv-cache { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ── En-tete ─────────────────────────────────────────── */
.fv-haut {
  display: flex; align-items: center; gap: 14px; padding: 10px 16px;
  border-bottom: 1px solid var(--border-subtle);
  position: sticky; top: 0; z-index: 30; background: rgba(10, 14, 26, 0.94);
  backdrop-filter: blur(8px);
}
.fv-logo { font-size: 21px; font-weight: 800; letter-spacing: -0.02em; color: var(--text-primary); flex: 0 0 auto; }
.fv-logo span { color: var(--blue-bright); }
.fv-recherche { flex: 1 1 auto; max-width: 340px; position: relative; }
.fv-recherche svg { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--text-tertiary); }
.fv-recherche input {
  width: 100%; height: 38px; border-radius: 10px; border: 1px solid var(--border-default);
  background: var(--bg-surface); color: var(--text-primary); padding: 0 12px 0 36px;
  font: inherit; font-size: 14px;
}
.fv-recherche input::placeholder { color: var(--text-tertiary); }
.fv-recherche input:focus { outline: 2px solid var(--blue-vivid); outline-offset: 1px; }
.fv-compteur { margin: 0 0 0 auto; font-size: 13px; color: var(--text-secondary); white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; }
.fv-compteur b { color: var(--gold); font-weight: 700; }
.fv-compteur .fv-long { display: none; }

/* ── Fiche (telephone d'abord) ───────────────────────── */
.fv-page { max-width: 1440px; margin: 0 auto; }
.fv-fiche {
  display: grid; gap: 18px; padding: 16px 16px 36px; min-width: 0;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-areas:
    "ident ident"
    "chif chif"
    "plan plan"
    "lire lire"
    "g d"
    "rapport rapport"
    "msg msg";
}
.fv-ident { grid-area: ident; }
.fv-chiffres { grid-area: chif; }
.fv-plan { grid-area: plan; }
.fv-volets-g { grid-area: g; }
.fv-volets-d { grid-area: d; }
.fv-lire { grid-area: lire; }
.fv-rapport { grid-area: rapport; }
.fv-message { grid-area: msg; }

.fv-lotno { margin: 0 0 4px; font-size: 13px; font-weight: 600; color: var(--blue-soft); }
.fv-ident h1 { margin: 0; font-size: 26px; line-height: 1.15; font-weight: 700; letter-spacing: -0.02em; }
.fv-sous { margin: 4px 0 0; font-size: 15px; color: var(--text-secondary); }
.fv-proprio { margin: 6px 0 0; font-size: 13px; color: var(--text-secondary); }
.fv-proprio abbr { cursor: help; text-decoration: underline dotted; }
.fv-unite { margin: 8px 0 0; font-size: 13px; line-height: 1.4; color: var(--amber, #d9a441); }
.fv-unite a.fv-unite-lot { color: inherit; text-decoration: underline dotted; text-underline-offset: 2px; }
.fv-unite a.fv-unite-lot:hover { text-decoration-style: solid; }
.fv-unite strong { font-weight: 600; }

.fv-chiffres {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr) minmax(0, 1.15fr); margin: 0;
  border-top: 1px solid var(--border-subtle); padding-top: 14px;
}
.fv-chiffres div { display: flex; flex-direction: column-reverse; justify-content: flex-start; gap: 4px; min-width: 0; padding-right: 8px; }
.fv-chiffres div + div { padding-left: 12px; border-left: 1px solid var(--border-default); }
.fv-chiffres dd {
  margin: 0; font-size: clamp(22px, 6.4vw, 30px); font-weight: 800; letter-spacing: -0.035em;
  line-height: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.fv-chiffres dd.fv-moyen { font-size: clamp(18px, 5vw, 24px); }
.fv-chiffres dd.fv-petit { font-size: clamp(15px, 4.2vw, 20px); }
.fv-chiffres dd.fv-vide { font-size: 17px; font-weight: 600; letter-spacing: 0; color: var(--text-tertiary); white-space: normal; }
.fv-chiffres dt { font-size: 13px; color: var(--text-secondary); }

/* Plan : contour du cadastre et lots voisins */
.fv-plan {
  position: relative; height: 230px; border-radius: 16px; overflow: hidden; isolation: isolate;
  border: 1px solid var(--border-default);
  background: radial-gradient(110% 90% at 50% 50%, #102042 0%, #0C1631 50%, var(--bg-base) 100%);
}
/* > : seulement notre plan (#fvSvg). Sans lui, la regle attrapait le svg de
   Leaflet et decalait le contour en vue satellite (27 sept.). */
.fv-plan > svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.fv-sat { position: absolute; inset: 0; z-index: 1; background: var(--bg-raised); }
.fv-sat[hidden] { display: none; }
.fv-nord { position: absolute; right: 12px; top: 10px; z-index: 2; font-size: 12px; font-weight: 600; color: var(--text-secondary); }
.fv-legende { position: absolute; left: 12px; bottom: 10px; z-index: 2; font-size: 12px; color: var(--text-secondary); }
/* Zone inondable dessinee sur le plan (7 oct.) : une pastille par zone, en haut a gauche. */
.fv-zones-leg { position: absolute; left: 10px; top: 8px; right: 52px; z-index: 3; display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.fv-zones-leg[hidden] { display: none; }
.fv-zl { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; line-height: 1.2; padding: 3px 8px; border-radius: 999px; background: rgba(10, 14, 26, 0.84); border: 1px solid var(--border-default); color: var(--text-primary); }
.fv-zl i { width: 9px; height: 9px; border-radius: 2px; flex: 0 0 auto; }
.fv-zl-rouge i { background: var(--red); }
.fv-zl-ambre i { background: var(--amber); }
.fv-zl-note { font-size: 11px; color: var(--text-secondary); text-shadow: 0 1px 2px var(--bg-base); }
.fv-bascule {
  position: absolute; right: 10px; bottom: 8px; z-index: 600; height: 32px; padding: 0 12px; border-radius: 8px;
  border: 1px solid var(--border-default); background: rgba(10, 14, 26, 0.8); font-size: 12px; font-weight: 600; cursor: pointer;
}
.fv-bascule:hover { border-color: var(--border-strong); }
.fv-bascule:focus-visible { outline: 2px solid var(--blue-vivid); outline-offset: 2px; }

/* Volets (les 8) */
.fv-volets { display: flex; flex-direction: column; min-width: 0; }
.fv-volet {
  position: relative; display: grid; grid-template-columns: 12px 1fr; gap: 2px 12px; align-items: center;
  width: 100%; text-align: left; padding: 12px 10px 12px 6px; background: none; border: none;
  border-top: 1px solid var(--border-subtle); cursor: pointer; border-radius: 0;
}
.fv-volet:last-child { border-bottom: 1px solid var(--border-subtle); }
.fv-volet:hover { background: rgba(255, 255, 255, 0.025); }
.fv-volet:focus-visible { outline: 2px solid var(--blue-vivid); outline-offset: -2px; }
.fv-volet .fv-pt { grid-row: 1 / span 2; align-self: start; margin-top: 5px; }
.fv-volet-nom { font-size: 15px; font-weight: 600; line-height: 1.25; }
.fv-volet-etat { grid-column: 2; font-size: 13px; color: var(--text-secondary); line-height: 1.3; }
.fv-volet.fv-discret .fv-volet-nom { color: var(--text-secondary); }
.fv-volet.fv-discret .fv-volet-etat { color: var(--text-tertiary); }
.fv-volet[aria-pressed="true"] { background: rgba(96, 165, 250, 0.08); box-shadow: inset 3px 0 0 var(--blue-bright); }
.fv-volet-fleche { display: none; }

/* Pastilles d'etat */
.fv-pt { width: 11px; height: 11px; border-radius: 50%; flex: 0 0 11px; display: inline-block; background: var(--text-secondary); }
.fv-pt.e-contrainte { background: var(--red); }
.fv-pt.e-a_verifier { background: var(--amber); }
.fv-pt.e-rien { background: var(--green); }
.fv-pt.e-activite, .fv-pt.e-info { background: var(--text-secondary); }
.fv-pt.e-hors_sources { background: transparent; border: 1.5px solid var(--text-tertiary); }

/* Squelette pendant le chargement */
.fv-barre { display: block; height: 10px; border-radius: 5px; background: var(--border-default); }
.fv-volet.fv-squelette { cursor: default; }
@media (prefers-reduced-motion: no-preference) { .fv-squelette .fv-barre, .fv-squelette .fv-pt { animation: fv-pulse 1.4s ease-in-out infinite; } }
@keyframes fv-pulse { 50% { opacity: 0.45; } }

/* A lire en premier */
.fv-lire h2 { margin: 0 0 10px; font-size: 18px; font-weight: 700; letter-spacing: -0.01em; }
.fv-lire ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.fv-lire li button {
  display: grid; grid-template-columns: 11px 1fr; gap: 12px; align-items: start; width: 100%;
  text-align: left; background: none; border: none; padding: 0; cursor: pointer; font-size: 15px; line-height: 1.45;
}
.fv-lire li button .fv-pt { margin-top: 5px; }
.fv-lire li button:hover span:last-child { color: #fff; }
.fv-lire li button:focus-visible { outline: 2px solid var(--blue-vivid); outline-offset: 3px; border-radius: 4px; }

/* Rapport */
.fv-rapport {
  display: flex; flex-direction: column; gap: 14px; padding: 18px; border-radius: 16px;
  background: linear-gradient(135deg, rgba(201, 162, 75, 0.13), rgba(201, 162, 75, 0.03));
  border: 1px solid rgba(201, 162, 75, 0.5);
}
.fv-rapport-cta { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.fv-rapport p { margin: 0; font-size: 16px; font-weight: 600; line-height: 1.4; color: var(--text-primary); }
.fv-rapport p.fv-contenu { font-size: 14px; font-weight: 500; color: var(--text-secondary); }
.fv-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 18px;
  border-radius: 10px; border: none; font-weight: 700; font-size: 15px; cursor: pointer; white-space: nowrap;
}
.fv-btn-or { background: var(--gold); color: var(--text-inverse); }
.fv-btn-or:hover { color: var(--text-inverse); filter: brightness(1.07); }
.fv-btn.fv-attire { box-shadow: 0 0 0 4px rgba(212, 175, 55, 0.45); }   /* retour d'inscription */
.fv-btn[aria-busy="true"] { opacity: 0.7; cursor: progress; }
.fv-btn-bleu { background: var(--blue-vivid); color: #fff; width: 100%; }
.fv-btn-bleu:hover { color: #fff; filter: brightness(1.08); }

/* Offre a la limite gratuite : rapport a l'unite, puis Plus (6 oct. 2026) */
.fv-offre { display: flex; flex-direction: column; gap: 10px; }
.fv-rapport .fv-offre p { font-size: 14px; font-weight: 500; color: var(--text-secondary); }
.fv-rapport .fv-offre p.fv-offre-titre { font-size: 15px; font-weight: 600; color: var(--text-primary); }
.fv-rapport .fv-offre p.fv-offre-note { font-size: 12px; color: var(--text-tertiary); text-align: center; }
.fv-offre .fv-btn, .fv-offre .fv-action {
  width: 100%; white-space: normal; text-align: center; line-height: 1.3; height: auto; min-height: 0; padding: 11px 14px;
}

/* Inscription dans la fiche (8 oct. 2026) : courriel seul, sans quitter le terrain */
.fv-inscr { display: flex; flex-direction: column; gap: 8px; text-align: left; }
.fv-inscr-titre { font-size: 15px; font-weight: 600; color: var(--text-primary); }
.fv-inscr .fv-inscr-texte { margin: 0; font-size: 14px; font-weight: 500; color: var(--text-secondary); line-height: 1.45; }
.fv-inscr-champ {
  width: 100%; box-sizing: border-box; height: 42px; padding: 0 12px; border-radius: 10px;
  border: 1px solid var(--border-strong); background: rgba(10, 14, 26, 0.6); color: var(--text-primary);
  font: inherit; font-size: 15px;
}
.fv-inscr-champ:focus { outline: 2px solid #3B82F6; outline-offset: 1px; }
.fv-inscr .fv-btn { width: 100%; justify-content: center; }
.fv-inscr .fv-inscr-err { margin: 0; font-size: 13px; color: #F87171; }
.fv-inscr .fv-inscr-err:empty { display: none; }
.fv-inscr-err a, .fv-inscr-note a { color: #60A5FA; }
.fv-inscr-note { font-size: 12px; color: var(--text-tertiary); line-height: 1.4; }

/* Registre foncier + Google Maps, sous le rapport (30 sept. 2026) */
.fv-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.fv-actions:not(:has(> :not([hidden]))) { display: none; }
.fv-action {
  display: flex; width: 100%; align-items: center; justify-content: center; gap: 6px; min-height: 38px; padding: 0 12px; border-radius: 10px;
  border: 1px solid var(--border-default); background: rgba(10, 14, 26, 0.5); color: var(--text-primary);
  font-size: 13px; font-weight: 600; cursor: pointer; text-decoration: none; white-space: nowrap;
}
.fv-action[hidden] { display: none; }
.fv-action:hover { border-color: var(--border-strong); color: #fff; }
.fv-action:focus-visible { outline: 2px solid var(--blue-vivid); outline-offset: 2px; }
.fv-action[aria-busy="true"] { opacity: 0.7; cursor: progress; }

/* Fiche officielle (portail d'evaluation), sous les actions (2 oct. 2026) */
.fv-portail { margin-top: 14px; padding: 14px 16px; border-radius: 14px; border: 1px solid var(--border-default); background: rgba(59, 130, 246, 0.06); display: flex; flex-direction: column; gap: 10px; }
.fv-portail[hidden] { display: none; }
.fv-portail p { margin: 0; }
.fv-portail-titre { font-size: 14px; font-weight: 700; color: var(--text-primary); }
.fv-portail-texte, .fv-portail-note { font-size: 13px; color: var(--text-secondary); line-height: 1.5; }
.fv-portail-note[hidden] { display: none; }
.fv-portail-legal { font-size: 11.5px; color: var(--text-tertiary); line-height: 1.45; }
.fv-portail-mat { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.fv-portail-mat code { flex: 1 1 auto; min-width: 0; padding: 8px 10px; border-radius: 8px; background: rgba(0, 0, 0, 0.25); border: 1px solid var(--border-default); font-size: 12.5px; letter-spacing: 0.02em; color: var(--text-primary); white-space: nowrap; }
.fv-portail-mat .fv-copier { width: auto; min-height: 34px; }
/* Colonne etroite : le lien peut passer sur deux lignes au lieu de deborder du bouton. */
.fv-portail .fv-action { white-space: normal; text-align: center; line-height: 1.3; padding: 8px 12px; }
.fv-portail .fv-action.fv-copier { white-space: nowrap; padding: 0 12px; }

.fv-message { margin: 0; font-size: 14px; color: var(--text-secondary); }
.fv-message:empty { display: none; }
.fv-erreur { grid-column: 1 / -1; padding: 16px; border-radius: 14px; border: 1px solid var(--border-default); background: var(--bg-surface); display: flex; flex-direction: column; gap: 12px; }
.fv-erreur p { margin: 0; }

/* ── Panneau (feuille du bas sur telephone) ──────────── */
.fv-voile { position: fixed; inset: 0; background: rgba(4, 7, 14, 0.62); z-index: 40; }
.fv-panneau {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; max-height: 86vh;
  display: flex; flex-direction: column; background: var(--bg-surface);
  border-top: 1px solid var(--border-default); border-radius: 22px 22px 0 0; padding-bottom: env(safe-area-inset-bottom);
}
.fv-panneau[hidden], .fv-voile[hidden] { display: none; }
.fv-poignee { width: 40px; height: 4px; border-radius: 2px; background: var(--border-strong); margin: 8px auto 0; flex: 0 0 auto; }
.fv-p-tete { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 12px 16px 12px 20px; flex: 0 0 auto; }
.fv-p-tete h2 { margin: 0; font-size: 24px; font-weight: 800; letter-spacing: -0.02em; }
.fv-p-etat { margin: 6px 0 0; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--text-secondary); }
.fv-fermer {
  width: 44px; height: 44px; border-radius: 22px; border: none; flex: 0 0 44px; background: var(--border-default);
  display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.fv-fermer:focus-visible { outline: 2px solid var(--blue-vivid); outline-offset: 2px; }
.fv-p-corps {
  overflow-y: auto; padding: 16px 20px 28px; display: flex; flex-direction: column; gap: 16px;
  border-top: 1px solid var(--border-subtle);
}
.fv-phrase { margin: 0; font-size: 19px; font-weight: 600; line-height: 1.4; letter-spacing: -0.01em; }
.fv-preuve { display: flex; gap: 8px; align-items: baseline; margin: 0; font-size: 13px; line-height: 1.4; color: var(--text-secondary); }
.fv-preuve-pastille { flex: none; font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; padding: 2px 8px; border-radius: 999px; border: 1px solid rgba(251, 191, 36, 0.6); color: var(--amber); }
.fv-preuve-confirme .fv-preuve-pastille { border-color: var(--green); color: var(--green); }
.fv-preuve-indicateur .fv-preuve-pastille { border-color: var(--violet); color: var(--violet); }
.fv-preuve-a_concilier .fv-preuve-pastille { border-color: var(--red); color: var(--red); }
.fv-indicatif { align-self: flex-start; font-size: 12px; font-weight: 700; letter-spacing: 0.04em; color: var(--amber); border: 1px solid rgba(251, 191, 36, 0.6); padding: 3px 8px; border-radius: 6px; }
.fv-rep { padding: 16px; border-radius: 14px; background: var(--bg-base); border: 1px solid var(--border-default); display: flex; flex-direction: column; gap: 12px; }
.fv-rep-gros { font-size: 44px; font-weight: 800; letter-spacing: -0.04em; line-height: 1; color: var(--green); }
.fv-rep-gros.fv-rep-orange { color: var(--amber); }
.fv-rep-gros.fv-rep-rouge { color: var(--red); }
.fv-rep-gros small { display: block; margin-top: 6px; font-size: 13px; font-weight: 500; letter-spacing: 0; color: var(--text-secondary); }
.fv-rep-barre { display: flex; height: 14px; border-radius: 7px; overflow: hidden; gap: 2px; }
.fv-rep-barre span:nth-child(1) { background: var(--green); }
.fv-rep-barre span:nth-child(2) { background: var(--amber); }
.fv-rep-barre span:nth-child(3) { background: var(--red); }

.fv-lot-carte {
  display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border-radius: 10px;
  background: rgba(251, 191, 36, 0.05); border: 1px solid var(--border-subtle); box-shadow: inset 3px 0 0 var(--amber);
}
.fv-lot-carte strong { font-size: 15px; }
.fv-lot-carte .fv-date { font-size: 13px; color: var(--text-secondary); }
.fv-lot-carte .fv-issue { font-size: 13px; color: var(--text-primary); opacity: 0.85; margin-top: 4px; }
.fv-lot-carte a { font-size: 14px; margin-top: 2px; }

.fv-lignes { margin: 0; display: flex; flex-direction: column; }
.fv-ligne { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 11px 0; border-top: 1px solid var(--border-subtle); font-size: 14px; }
.fv-ligne:last-child { border-bottom: 1px solid var(--border-subtle); }
.fv-ligne dt { color: var(--text-secondary); }
.fv-ligne dd { margin: 0; text-align: right; font-weight: 600; }
.fv-tout { align-self: flex-start; background: none; border: none; color: var(--blue-bright); font-size: 14px; font-weight: 600; padding: 2px 0; cursor: pointer; }
.fv-st { margin: 0; font-size: 14px; font-weight: 700; }
.fv-puces { display: flex; flex-wrap: wrap; gap: 6px; }
.fv-puce { padding: 5px 10px; border-radius: 999px; font-size: 13px; background: var(--bg-overlay); color: var(--blue-soft); }
.fv-liste { list-style: none; margin: 0; padding: 0; }
.fv-liste li { padding: 9px 0; border-top: 1px solid var(--border-subtle); font-size: 14px; display: flex; flex-direction: column; gap: 2px; }
.fv-liste small { color: var(--text-secondary); font-size: 13px; }
.fv-garde { margin: 0; font-size: 13px; line-height: 1.55; color: var(--text-secondary); }
.fv-sources { margin: 0; font-size: 13px; line-height: 1.6; color: var(--text-tertiary); }
.fv-sources b { display: block; color: var(--text-secondary); font-weight: 600; margin-bottom: 2px; }

.fv-verrou { border-radius: 14px; border: 1px solid var(--border-default); padding: 16px; display: flex; flex-direction: column; gap: 14px; overflow: hidden; }
.fv-fantome { display: flex; flex-direction: column; gap: 12px; filter: blur(1.5px); opacity: 0.55; }
.fv-fantome div { display: flex; justify-content: space-between; }
.fv-verrou-txt { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.5; }
.fv-verrou-txt svg { flex: 0 0 18px; margin-top: 2px; color: var(--text-secondary); }
.fv-appel { display: flex; flex-direction: column; gap: 10px; }
.fv-appel strong { font-size: 16px; }
.fv-appel small { text-align: center; font-size: 13px; color: var(--text-secondary); }

/* ── Ordinateur : le terrain au centre, un seul ecran ─ */
@media (min-width: 1100px) {
  .fv-haut { padding: 10px 28px; }
  .fv-compteur .fv-long { display: inline; }
  .fv-compteur .fv-court { display: none; }
  .fv-page { display: grid; grid-template-columns: minmax(0, 1fr) 420px; min-height: calc(100vh - 59px); }
  .fv-fiche {
    padding: 22px 28px 24px; gap: 16px 24px; align-content: start;
    grid-template-columns: 220px minmax(0, 1fr) 220px;
    grid-template-areas:
      "ident ident ident"
      "chif chif chif"
      "g plan d"
      "lire lire lire"
      "rapport rapport rapport"
      "msg msg msg";
  }
  .fv-ident h1 { font-size: 34px; }
  .fv-sous { font-size: 17px; }
  .fv-chiffres { padding-top: 16px; }
  .fv-chiffres dd { font-size: 52px; letter-spacing: -0.045em; }
  .fv-chiffres dd.fv-moyen { font-size: 40px; }
  .fv-chiffres dd.fv-petit { font-size: 32px; }
  .fv-chiffres dd.fv-vide { font-size: 22px; }
  .fv-chiffres { grid-template-columns: repeat(3, max-content); }
  .fv-chiffres div { padding-right: 40px; }
  .fv-chiffres dt { font-size: 15px; }
  .fv-chiffres div + div { padding-left: 28px; }
  .fv-plan { height: auto; min-height: 300px; border-radius: 0; border: none; background: radial-gradient(70% 80% at 50% 50%, #0F1E3E 0%, #0B1430 55%, var(--bg-base) 100%); }
  .fv-volet { padding: 13px 10px 13px 8px; }
  .fv-volets-d .fv-volet { padding-left: 12px; }
  .fv-volets-g .fv-volet-fleche { display: block; position: absolute; right: 8px; top: 50%; transform: translateY(-50%); color: var(--blue-bright); opacity: 0; }
  .fv-volets-g .fv-volet[aria-pressed="true"] .fv-volet-fleche { opacity: 1; }
  .fv-lire { border-top: 1px solid var(--border-default); padding-top: 16px; }
  .fv-lire ul { gap: 8px; }
  .fv-lire li button { font-size: 15px; }
  /* Pleine largeur sous « A lire en premier », trois colonnes (14 oct. 2026) :
     le bloc n'est plus une colonne etroite qui descend sous la fiche. */
  .fv-rapport {
    display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr) minmax(0, 1fr); gap: 20px 32px; align-items: start;
    border-top: 1px solid var(--border-default); border-radius: 0; background: none; border-left: none; border-right: none; border-bottom: none; padding: 18px 0 0;
  }
  .fv-rapport p { font-size: 15px; font-weight: 500; color: var(--text-secondary); }
  .fv-rapport-cta > p:first-child { font-size: 17px; font-weight: 600; color: var(--text-primary); }
  .fv-rapport-cta .fv-btn { align-self: flex-start; }
  .fv-rapport .fv-actions { flex-direction: column; align-items: stretch; }
  .fv-rapport .fv-actions .fv-action { width: 100%; justify-content: center; }
  .fv-rapport .fv-portail { margin-top: 0; }
  .fv-voile { display: none !important; }
  .fv-panneau, .fv-panneau[hidden] {
    display: flex; position: sticky; top: 59px; height: calc(100vh - 59px); max-height: none;
    border-radius: 0; border: none; border-left: 1px solid var(--border-default); background: var(--bg-base); z-index: 1;
  }
  .fv-poignee, .fv-fermer { display: none; }
  .fv-p-tete { padding: 26px 28px 14px; }
  .fv-p-tete h2 { font-size: 30px; }
  .fv-p-corps { padding: 18px 28px 28px; }
}

/* ── Dans le cadre de l'espace Pro (?embed=1) : la fiche seule. L'espace Pro
   a son propre bouton « Generer le rapport », a cote du cadre. */
body.fv-embed .fv-haut, body.fv-embed .fv-rapport, body.fv-embed > footer { display: none !important; }
body.fv-embed { background: transparent; }

/* ── Pied de page : copie des regles de styles.css (la fiche ne le charge pas).
   Meme balisage que l'accueil (copie par patch_fiche_pied.py). */
body > footer {
  position: relative; z-index: 5; display: flex; align-items: center; justify-content: center; gap: 10px;
  margin-top: 40px; padding: 24px 32px; border-top: 1px solid var(--border-subtle);
  font-family: var(--font-mono); font-size: 11px; color: var(--text-tertiary); letter-spacing: 0.3px;
}
body > footer b { font-weight: 600; color: var(--text-secondary); }
body > footer .ft-sep { color: var(--border-strong); }
@media (max-width: 700px) {
  body > footer { flex-direction: column; gap: 4px; padding: 24px 16px; }
}
@media (max-width: 600px) {
  .fv-zl { font-size: 11px; padding: 2px 7px; }
  .fv-zl-note { font-size: 10.5px; }
}
