/* === Pages Analyses (liste/comparaison + détail) === */

/* Utilitaires non globaux réutilisés ici */
.exv-select {
    padding: 7px 10px; font-size: var(--ht-texte-09); font-family: inherit;
    background: var(--theme-bg-primaire); color: var(--theme-texte-primaire);
    border: 1px solid var(--theme-border-color); border-radius: var(--border-radius-classic);
}
.exv-two-col { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.exv-sector-filter { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.exv-sector-filter-full { padding: 12px 14px; background: var(--theme-bg-tertiaire); border: 1px solid var(--theme-border-color); border-radius: var(--border-radius-classic); }
.exv-sector-chip {
    background: var(--theme-bg-primaire); color: var(--theme-texte-secondaire);
    border: 1px solid var(--theme-border-color); border-radius: 999px; padding: 4px 13px;
    font-size: var(--ht-texte-08); font-weight: var(--wg-texte-medium); cursor: pointer;
}
.exv-sector-chip:hover { color: var(--theme-texte-primaire); border-color: var(--theme-border-color-hover); }
.exv-sector-chip.active { background: var(--cl-accent); color: var(--cl-blanc-i1); border-color: var(--cl-accent); }

/* --- Barre unique : lancement + filtres + tri --- */
.exv-an-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-bottom: 16px;
    background: var(--theme-bg-tertiaire); border: 1px solid var(--theme-border-color); border-radius: var(--border-radius-classic); padding: 12px 14px; }
.exv-an-chips { display: flex; flex-wrap: wrap; gap: 8px; flex: 1 1 auto; }
.exv-an-sort { font-size: var(--ht-texte-08); color: var(--theme-texte-secondaire); display: inline-flex; align-items: center; gap: 8px; }

/* Bouton « Générer une analyse » verrouillé (non-Pro) + infobulle au survol */
.exv-an-genwrap { position: relative; display: inline-flex; }
.exv-an-genwrap.locked { cursor: not-allowed; }
.exv-an-genwrap.locked button { pointer-events: none; opacity: 0.5; }
.exv-an-genwrap.locked:hover::after {
    content: attr(data-tip); position: absolute; top: calc(100% + 6px); left: 0; z-index: 50; white-space: nowrap;
    background: var(--theme-bg-opposite); color: var(--theme-bg-tertiaire); font-size: var(--ht-texte-07);
    padding: 4px 9px; border-radius: var(--border-radius-classic);
}

/* Section de lancement intégrée (dépliable, fermée par défaut) */
.exv-an-launch-panel { margin-bottom: 16px; }
.exv-an-launch-panel[hidden] { display: none; } /* l'attribut [hidden] prime (sinon affichage permanent) */
.exv-an-lp-title { font-size: var(--ht-texte-115); font-weight: var(--wg-texte-semibold); margin: 0 0 4px; }
.exv-an-lp-msg { font-size: var(--ht-texte-08); margin: 12px 0 0; }
.exv-an-lp-msg.error { color: var(--cl-negatif); }

/* Mode « Poser une question » (panneau + page détail) */
.exv-an-ask-select { width: 100%; max-width: 460px; margin-bottom: 10px; }
.exv-an-ask-input { width: 100%; box-sizing: border-box; resize: vertical; min-height: 64px; padding: 9px 11px; border: 1px solid var(--theme-border-color); border-radius: var(--border-radius-classic); background: var(--theme-bg-primaire); color: var(--theme-texte-primaire); font: inherit; margin-bottom: 10px; }
.exv-an-ask-input:disabled { background: var(--theme-bg-quaterniaire); color: var(--theme-texte-tertiaire); cursor: not-allowed; opacity: 0.75; border-style: dashed; } /* état désactivé explicite : la sélection de l'entreprise est requise d'abord */
.exv-an-ask-premium { display: flex; align-items: baseline; gap: 7px; flex-wrap: wrap; margin: 0 0 10px; font-size: 0.92em; cursor: pointer; }
.exv-an-ask-premium input { cursor: pointer; }
.exv-an-ask-premium .exv-metric-sub { flex-basis: 100%; margin: 0; }
.exv-an-ask-premium[hidden] { display: none; }
.exv-an-ask-answer { margin-top: 14px; display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.exv-an-ask-bubble { width: 100%; box-sizing: border-box; background: var(--theme-bg-tertiaire); border: 1px solid var(--theme-border-color); border-radius: var(--border-radius-extra); padding: 12px 14px; line-height: 1.5; }
.exv-an-ask-detail { margin: 14px 0 18px; }
.exv-an-ask-detail #an-d-ask { margin-top: 12px; max-width: 640px; }

/* Recherche de ticker + suggestions (select de propositions officielles) */
.exv-an-search { position: relative; margin: 14px 0 6px; }
.exv-an-search input { width: 100%; padding: 10px 12px; font-size: var(--ht-texte-09); font-family: inherit;
    background: var(--theme-bg-primaire); color: var(--theme-texte-primaire);
    border: 1px solid var(--theme-border-color); border-radius: var(--border-radius-classic); }
.exv-an-search input:focus { outline: none; border-color: var(--cl-accent); }
.exv-an-suggest { position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 10; max-height: 280px; overflow-y: auto;
    background: var(--theme-bg-tertiaire); border: 1px solid var(--theme-border-color); border-radius: var(--border-radius-classic);
    box-shadow: 0 12px 30px var(--cl-transparent-noir-i6); }
.exv-an-sug { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; background: none; border: none; cursor: pointer;
    padding: 9px 12px; font-family: inherit; border-bottom: 1px solid var(--theme-border-color); }
.exv-an-sug:last-child { border-bottom: none; }
.exv-an-sug:hover { background: var(--theme-bg-quaterniaire); }
.exv-an-sug-sym { font-weight: var(--wg-texte-semibold); font-size: var(--ht-texte-09); }
.exv-an-sug-name { flex: 1 1 auto; font-size: var(--ht-texte-08); color: var(--theme-texte-secondaire); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.exv-an-sug-ex { font-size: var(--ht-texte-07); color: var(--theme-texte-tertiaire); }
.exv-an-sug-empty { padding: 10px 12px; font-size: var(--ht-texte-08); color: var(--theme-texte-tertiaire); }
.exv-an-selected { font-size: var(--ht-texte-08); color: var(--theme-texte-secondaire); margin: 4px 0 12px; }
#an-launch { margin-top: 6px; }

/* --- Tableau de comparaison --- */
.exv-an-table th, .exv-an-table td { vertical-align: middle; }
.exv-an-co { display: flex; align-items: center; gap: 8px; }
.exv-an-tk { font-weight: var(--wg-texte-semibold); }
.exv-an-name { font-size: var(--ht-texte-07); color: var(--theme-texte-tertiaire); }
.exv-an-sec { color: var(--theme-texte-secondaire); }
.exv-an-concl { white-space: normal; max-width: 320px; color: var(--theme-texte-secondaire); }
/* Note de synthèse /20 (pastille) + capitalisation (colonne numérique) */
.exv-an-note { display: inline-flex; align-items: baseline; gap: 1px; padding: 3px 9px; border-radius: 999px; font-weight: var(--wg-texte-semibold); font-size: var(--ht-texte-10); background: color-mix(in srgb, var(--cl-accent) 14%, transparent); color: var(--cl-accent); white-space: nowrap; }
.exv-an-note .u { font-size: var(--ht-texte-07); font-weight: var(--wg-texte-regular); opacity: 0.75; }
.exv-an-note.empty { background: var(--theme-bg-quaterniaire); color: var(--theme-texte-tertiaire); }
td.exv-an-cap, th.exv-an-cap { white-space: nowrap; color: var(--theme-texte-secondaire); }
td.exv-an-date, th.exv-an-date { white-space: nowrap; color: var(--theme-texte-secondaire); }
.exv-an-badge { font-size: var(--ht-texte-07); padding: 1px 7px; border-radius: 999px; border: 1px solid var(--theme-border-color); color: var(--theme-texte-tertiaire); }
.exv-an-badge.system { color: var(--cl-blanc-i1); background: var(--cl-blue); border-color: var(--cl-blue); }
.exv-an-badge.ad-hoc { color: var(--cl-blanc-i1); background: var(--cl-serie-4); border-color: var(--cl-serie-4); }
.exv-an-na { color: var(--theme-texte-tertiaire); }

/* Barre de score compacte */
.exv-an-score { display: inline-flex; align-items: center; gap: 7px; }
.exv-an-score-track { width: 64px; height: 7px; border-radius: 4px; background: var(--theme-bg-quaterniaire); overflow: hidden; }
.exv-an-score-fill { display: block; height: 100%; border-radius: 4px; }
.exv-an-score-val { font-variant-numeric: tabular-nums; font-size: var(--ht-texte-08); min-width: 1.8em; text-align: right; }

/* --- Détail : en-tête --- */
.exv-an-head { background: var(--theme-bg-tertiaire); border: 1px solid var(--theme-border-color); border-radius: var(--border-radius-extra); padding: 18px 20px; margin-bottom: 6px; }
.exv-an-head-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.exv-an-head-id { display: flex; align-items: center; gap: 12px; min-width: 0; }
.exv-an-head-id .exv-logo { width: 46px; height: 46px; }
.exv-an-head-tk { font-family: 'Intertight', sans-serif; font-size: var(--ht-texte-19); font-weight: var(--wg-texte-semibold); }
.exv-an-head-name { font-size: var(--ht-texte-115); color: var(--theme-texte-secondaire); }
.exv-an-head-meta { font-size: var(--ht-texte-08); color: var(--theme-texte-tertiaire); margin-top: 2px; }
.exv-an-head-badges { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }

/* Note de synthèse /20 (en-tête détail) : grande carte + 6 piliers */
.exv-an-synth-head { display: flex; align-items: stretch; gap: 18px; margin: 16px 0 4px; flex-wrap: wrap; }
.exv-an-note-card { flex: 0 0 auto; min-width: 150px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 2px; padding: 12px 18px; border-radius: var(--border-radius-extra); border: 1px solid var(--theme-border-color); background: var(--theme-bg-primaire); }
.exv-an-note-val { display: flex; align-items: baseline; gap: 2px; font-family: 'Intertight', sans-serif; line-height: 1; }
.exv-an-note-val .n { font-size: 2.6rem; font-weight: var(--wg-texte-bold, 700); }
.exv-an-note-val .d { font-size: var(--ht-texte-10); color: var(--theme-texte-tertiaire); }
.exv-an-note-band { font-size: var(--ht-texte-08); font-weight: var(--wg-texte-semibold); }
.exv-an-note-flags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 3px; }
.exv-an-flag { font-size: var(--ht-texte-06, 0.66rem); padding: 1px 7px; border-radius: 999px; background: var(--theme-bg-quaterniaire); color: var(--theme-texte-secondaire); }
.exv-an-note-card.band-very_attractive { border-color: var(--cl-positif); }
.exv-an-note-card.band-very_attractive .n, .exv-an-note-card.band-very_attractive .exv-an-note-band { color: var(--cl-positif); }
.exv-an-note-card.band-attractive { border-color: hsl(110, 52%, 45%); }
.exv-an-note-card.band-attractive .n, .exv-an-note-card.band-attractive .exv-an-note-band { color: hsl(110, 45%, 40%); }
.exv-an-note-card.band-fair .n { color: var(--theme-texte-secondaire); }
.exv-an-note-card.band-weak { border-color: var(--cl-negatif); }
.exv-an-note-card.band-weak .n, .exv-an-note-card.band-weak .exv-an-note-band { color: var(--cl-negatif); }
.exv-an-note-card.empty .n { color: var(--theme-texte-tertiaire); }
.exv-an-note-line { font-size: var(--ht-texte-09); margin-bottom: 10px; }
.exv-an-synth-head .exv-an-gauges { flex: 1 1 320px; margin: 0; align-content: center; }

.exv-an-gauges { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 14px; margin: 18px 0 4px; }
.exv-an-gauge-k { font-size: var(--ht-texte-07); color: var(--theme-texte-tertiaire); text-transform: uppercase; letter-spacing: 0.03em; }
.exv-an-gauge-bar { height: 8px; border-radius: 4px; background: var(--theme-bg-quaterniaire); overflow: hidden; margin: 5px 0; }
.exv-an-gauge-fill { display: block; height: 100%; border-radius: 4px; }
.exv-an-gauge-v { font-family: 'Intertight', sans-serif; font-size: var(--ht-texte-115); font-weight: var(--wg-texte-semibold); }

.exv-an-concl-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; margin-top: 14px; }
.exv-an-concl-card { background: var(--theme-bg-primaire); border: 1px solid var(--theme-border-color); border-radius: var(--border-radius-classic); padding: 12px 14px; }
.exv-an-concl-card.accent { border-color: var(--cl-accent); }
.exv-an-concl-card .k { font-size: var(--ht-texte-07); color: var(--theme-texte-tertiaire); text-transform: uppercase; letter-spacing: 0.03em; }
.exv-an-concl-card .v { font-size: var(--ht-texte-10); font-weight: var(--wg-texte-medium); margin-top: 3px; }

/* --- Détail : onglets + sections --- */
.exv-an-tabs { display: flex; flex-wrap: wrap; gap: 4px; margin: 16px 0; border-bottom: 1px solid var(--theme-border-color); }
.exv-an-tab { background: none; border: none; cursor: pointer; font-family: inherit; font-size: var(--ht-texte-09);
    color: var(--theme-texte-secondaire); padding: 8px 14px; border-bottom: 2px solid transparent; }
.exv-an-tab:hover { color: var(--theme-texte-primaire); }
.exv-an-tab.active { color: var(--theme-texte-primaire); border-bottom-color: var(--cl-accent); font-weight: var(--wg-texte-medium); }
/* « Poser une question » : bouton (pas un onglet), poussé à droite de la barre, centré verticalement. */
.exv-an-tabs-spacer { flex: 1 1 auto; min-width: 12px; }
.exv-an-ask-tab { align-self: center; margin-bottom: 4px; }
.exv-an-ask-tab.active { border-color: var(--cl-accent); color: var(--cl-accent); }
.exv-an-section { margin-bottom: 22px; }
.exv-an-text { font-size: var(--ht-texte-09); color: var(--theme-texte-secondaire); line-height: 1.55; }

/* Paires clé/valeur génériques */
.exv-an-kv { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 6px 22px; }
.exv-an-kv-row { display: flex; justify-content: space-between; gap: 12px; padding: 5px 0; border-bottom: 1px dotted var(--theme-border-color); font-size: var(--ht-texte-08); }
.exv-an-kv-k { color: var(--theme-texte-tertiaire); }
.exv-an-kv-v { color: var(--theme-texte-primaire); text-align: right; }
.exv-an-ul { margin: 4px 0 0 18px; font-size: var(--ht-texte-08); color: var(--theme-texte-secondaire); line-height: 1.5; }

/* Familles de scores (barres) */
.exv-an-fam { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 8px 22px; }
.exv-an-fam-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.exv-an-fam-k { font-size: var(--ht-texte-08); color: var(--theme-texte-secondaire); }

/* Thèses */
.exv-an-theses { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; }
.exv-an-thesis-h { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.exv-an-thesis-conf { font-size: var(--ht-texte-07); color: var(--theme-texte-tertiaire); }
/* Accent de bord = lien visuel avec les scénarios (haussier vert / central neutre / baissier rouge). */
.exv-an-thesis { border-left: 3px solid var(--theme-border-color); }
.exv-an-thesis.t-pos { border-left-color: var(--cl-positif); }
.exv-an-thesis.t-neu { border-left-color: var(--theme-texte-secondaire); }
.exv-an-thesis.t-neg { border-left-color: var(--cl-negatif); }
/* Métrique de thèse (style standard : valeur et dénominateur de même taille) */
.exv-an-thesis-metric { font-size: var(--ht-texte-08); color: var(--theme-texte-tertiaire); white-space: nowrap; }
.exv-an-thesis-metric b { font-weight: var(--wg-texte-semibold); color: var(--theme-texte-primaire); font-variant-numeric: tabular-nums; }
.exv-an-thesis-metric.pos b { color: var(--cl-positif); }
.exv-an-thesis-metric.neg b { color: var(--cl-negatif); }
/* Note + définitions (probabilité / solidité / confiance / attractivité) */
.exv-an-theses-note { margin-bottom: 16px; }
.exv-an-defs { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 4px 18px; margin-top: 8px; font-size: var(--ht-texte-07); color: var(--theme-texte-tertiaire); }
.exv-an-defs b { color: var(--theme-texte-secondaire); }

/* Zones de prix */
.exv-an-zones-wrap { margin-top: 6px; }
.exv-an-zones { position: relative; display: flex; height: 22px; border-radius: var(--border-radius-classic); overflow: visible; background: var(--theme-bg-quaterniaire); }
.exv-an-zone { height: 100%; }
.exv-an-zone:first-child { border-radius: var(--border-radius-classic) 0 0 var(--border-radius-classic); }
.exv-an-zone:last-child { border-radius: 0 var(--border-radius-classic) var(--border-radius-classic) 0; }
.exv-an-price-marker { position: absolute; top: -4px; bottom: -4px; width: 2px; background: var(--theme-texte-primaire); }
.exv-an-price-marker span { position: absolute; top: -16px; left: 50%; transform: translateX(-50%); font-size: var(--ht-texte-07); white-space: nowrap; }
.exv-an-zones-legend { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; font-size: var(--ht-texte-07); color: var(--theme-texte-tertiaire); }
.exv-an-zlg { display: inline-flex; align-items: center; gap: 5px; }
.exv-an-zlg .sw { width: 10px; height: 10px; border-radius: 2px; display: inline-block; }
.exv-an-zlg .sw.fv { width: 0; height: 12px; border-radius: 0; border-left: 2px dashed var(--theme-texte-secondaire); }
.exv-an-zlg-hint { color: var(--theme-texte-tertiaire); font-style: italic; }
.exv-val-transleg { font-style: italic; }

/* ---------- Valorisation réformée (badge méthode, incertitude, fourchette, contrôles) ---------- */
.exv-val-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.exv-val-basis { font-size: var(--ht-texte-08); font-weight: var(--wg-texte-medium); border: 1px solid var(--cl-accent); color: var(--cl-accent); border-radius: 999px; padding: 2px 11px; }
.exv-val-unc { font-size: var(--ht-texte-07); border-radius: 999px; padding: 2px 10px; background: var(--theme-bg-quaterniaire); }
.exv-val-unc.pos { color: var(--cl-positif); } .exv-val-unc.neu { color: var(--theme-texte-secondaire); } .exv-val-unc.neg { color: var(--cl-negatif); }
.exv-val-fv { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; margin-bottom: 12px; }
.exv-val-fv-item { border: 1px solid var(--theme-border-color); border-radius: var(--border-radius-classic); padding: 8px 12px; background: var(--theme-bg-tertiaire); }
.exv-val-fv-item .k { display: block; font-size: var(--ht-texte-07); color: var(--theme-texte-tertiaire); text-transform: uppercase; letter-spacing: 0.03em; }
.exv-val-fv-item .v { display: block; font-family: 'Intertight', sans-serif; font-size: var(--ht-texte-13); font-weight: var(--wg-texte-semibold); margin-top: 2px; }
.exv-val-fv-item.central { border-color: var(--cl-accent); }
.exv-val-fv-item.central .v { color: var(--cl-accent); font-weight: var(--wg-texte-bold, 700); }
.exv-val-pos { margin-top: 10px; }
.exv-val-div { color: var(--cl-negatif); font-size: var(--ht-texte-07); }
.exv-val-conc { color: var(--cl-positif); font-size: var(--ht-texte-07); }
.exv-val-warn { margin-top: 10px; color: var(--cl-negatif); border-left: 3px solid var(--cl-negatif); padding-left: 10px; }

/* Incertitude — explication décomposée (résumé + facteurs nommés en barres d'intensité) */
.exv-val-uncsum { margin-top: 12px; }
.exv-val-drivers { margin-top: 6px; display: flex; flex-direction: column; gap: 6px; }
.exv-val-drv { display: grid; grid-template-columns: minmax(140px, 1.2fr) 70px minmax(0, 2fr); align-items: center; gap: 10px; }
.exv-val-drv-lbl { font-size: var(--ht-texte-08); }
.exv-val-drv-bar { height: 6px; border-radius: 999px; background: var(--theme-bg-quaterniaire); overflow: hidden; }
.exv-val-drv-bar > span { display: block; height: 100%; background: var(--theme-texte-secondaire); }
.exv-val-drv-det { font-size: var(--ht-texte-07); color: var(--theme-texte-tertiaire); }
@media (max-width: 640px) {
  .exv-val-drv { grid-template-columns: 1fr 60px; }
  .exv-val-drv-det { grid-column: 1 / -1; }
}

/* Synthèse : barre de zones AMÉLIORÉE (domaine borné, repères de seuils + marqueurs juste valeur/prix) */
.exv-an-valbar { margin-top: 10px; }
.exv-an-zones.tall { height: 26px; border-radius: var(--border-radius-classic); }
.exv-an-zseg { position: absolute; top: 0; bottom: 0; }
.exv-an-thr { position: absolute; top: 0; bottom: 0; width: 0; border-left: 1px dotted rgba(0, 0, 0, 0.5); pointer-events: none; }

/* Barre de valorisation : bascule regroupé / dissocié */
.exv-val-bar2 { margin-top: 10px; }
.exv-val-bar2-head { display: flex; justify-content: flex-end; margin-bottom: 6px; }
.exv-val-modes { display: inline-flex; border: 1px solid var(--theme-border-color); border-radius: 999px; overflow: hidden; }
.exv-val-toggle { background: none; border: 0; font-family: inherit; font-size: var(--ht-texte-07); color: var(--theme-texte-secondaire); padding: 3px 12px; cursor: pointer; }
.exv-val-toggle.active { background: var(--cl-accent); color: var(--cl-blanc-i1); }
.exv-val-bar2.mode-grouped .exv-val-split { display: none; }
.exv-val-bar2.mode-split .exv-val-grouped { display: none; }
/* Vue dissociée : 4 lignes (un intervalle par niveau) + repères JV/cours traversant les 4 */
.exv-val-splitwrap { position: relative; padding: 4px 0; }
.exv-val-splitrow { display: grid; grid-template-columns: 116px 1fr; align-items: center; gap: 8px; height: 16px; margin: 4px 0; }
.exv-val-splitlbl { display: inline-flex; align-items: center; gap: 5px; font-size: var(--ht-texte-07); color: var(--theme-texte-secondaire); white-space: nowrap; }
.exv-val-splitlbl .sw { width: 9px; height: 9px; border-radius: 2px; flex: none; }
.exv-val-splittrack { position: relative; height: 12px; background: var(--theme-bg-quaterniaire); border-radius: 3px; }
.exv-val-splitseg { position: absolute; top: 0; bottom: 0; border-radius: 3px; }
.exv-val-voverlay { position: absolute; top: 0; bottom: 0; left: 124px; right: 0; pointer-events: none; }
.exv-val-vline { position: absolute; top: 0; bottom: 0; width: 0; }
.exv-val-vline.fv { border-left: 2px dashed var(--theme-texte-secondaire); }
.exv-val-vline.price { border-left: 2px solid var(--theme-texte-primaire); }
.exv-val-vline.price span { position: absolute; top: -14px; left: 50%; transform: translateX(-50%); font-size: var(--ht-texte-07); white-space: nowrap; color: var(--theme-texte-primaire); }
.exv-val-vline.thr { border-left: 1px dotted var(--theme-texte-tertiaire); opacity: 0.8; }
.exv-an-fv-marker { position: absolute; top: -3px; bottom: -3px; width: 0; border-left: 2px dashed var(--theme-texte-secondaire); pointer-events: none; }
.exv-an-vticks { position: relative; height: 30px; margin-top: 7px; }
.exv-an-vtick { position: absolute; transform: translateX(-50%); text-align: center; line-height: 1.15; color: var(--theme-texte-tertiaire); font-size: var(--ht-texte-07); }
.exv-an-vtick::before { content: ''; position: absolute; top: -7px; left: 50%; width: 1px; height: 5px; background: var(--theme-texte-tertiaire); }
.exv-an-vtick span { display: block; font-weight: var(--wg-texte-semibold); color: var(--theme-texte-secondaire); }
.exv-an-vtick em { display: block; font-style: normal; font-size: 0.85em; white-space: nowrap; }

/* Valorisation : courbe du cours sur 2 ans (canvas ExvChart) + paliers en hlines */
.exv-an-pricechart { position: relative; height: 340px; margin-top: 8px; }
.exv-an-pricechart canvas { width: 100%; height: 100%; display: block; }
.exv-an-chart-status { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-align: center; }

/* Conditions de réanalyse */
.exv-an-conds { list-style: none; padding: 0; font-size: var(--ht-texte-08); }
.exv-an-conds li { padding: 8px 0; border-bottom: 1px solid var(--theme-border-color); color: var(--theme-texte-secondaire); }
.exv-an-cond-kind { display: inline-block; font-size: var(--ht-texte-07); color: var(--cl-blanc-i1); background: var(--cl-blue); border-radius: 999px; padding: 1px 9px; margin-right: 8px; }

/* ---------- Analyse technique (onglet Technique + bandeau Synthèse) ---------- */
.exv-tech-narr { font-size: var(--ht-texte-09); line-height: 1.55; color: var(--theme-texte-primaire); margin: 0 0 12px; }
.exv-tech-timeline { display: flex; gap: 4px; margin: 4px 0 8px; flex-wrap: wrap; }
.exv-tech-tl { background: none; border: 1px solid var(--theme-border-color); border-radius: var(--border-radius-classic); cursor: pointer; font-family: inherit; font-size: var(--ht-texte-07); color: var(--theme-texte-secondaire); padding: 3px 11px; }
.exv-tech-tl:hover { color: var(--theme-texte-primaire); }
.exv-tech-tl.active { border-color: var(--cl-accent); color: var(--cl-accent); font-weight: var(--wg-texte-medium); }
.exv-tech-densleg { gap: 2px; }
.exv-tech-densleg .sw { width: 13px; height: 10px; border-radius: 0; }
.exv-tech-badge { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin: 0 0 14px; padding: 9px 13px; border-radius: var(--border-radius-classic); background: var(--theme-bg-tertiaire); border-left: 3px solid var(--theme-border-color); }
.exv-tech-opp { padding: 11px 14px; border-radius: var(--border-radius-classic); background: var(--theme-bg-tertiaire); border-left: 3px solid var(--theme-border-color); margin-bottom: 12px; }
.exv-tech-badge.pos, .exv-tech-opp.pos { border-left-color: var(--cl-positif); }
.exv-tech-badge.neg, .exv-tech-opp.neg { border-left-color: var(--cl-negatif); }
.exv-tech-conf, .exv-tech-opp + .exv-metric-sub { margin-bottom: 14px; }
.exv-tech-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; margin-bottom: 8px; }
.exv-tech-card { border: 1px solid var(--theme-border-color); border-radius: var(--border-radius-extra); padding: 12px 14px; }
.exv-tech-card-h { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; font-weight: var(--wg-texte-semibold); margin-bottom: 4px; }
.exv-tech-verdict { font-size: var(--ht-texte-08); font-weight: var(--wg-texte-semibold); }
.exv-tech-verdict.pos { color: var(--cl-positif); }
.exv-tech-verdict.neg { color: var(--cl-negatif); }
.exv-tech-verdict.neu { color: var(--theme-texte-secondaire); }
.exv-tech-entry { margin: 8px 0 6px; font-size: var(--ht-texte-08); }
.exv-tech-lvls { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: var(--ht-texte-07); color: var(--theme-texte-secondaire); margin-bottom: 6px; }
.exv-tech-hyp-list { display: flex; flex-direction: column; gap: 8px; }
.exv-tech-hyp { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; padding: 8px 0; border-bottom: 1px solid var(--theme-border-color); }
.exv-tech-hyp-st { font-size: var(--ht-texte-07); border-radius: 999px; padding: 1px 9px; background: var(--theme-bg-quaterniaire); color: var(--theme-texte-secondaire); white-space: nowrap; }
.exv-tech-hyp.confirmed .exv-tech-hyp-st { color: var(--cl-positif); }
.exv-tech-hyp.invalidated .exv-tech-hyp-st, .exv-tech-hyp.expired .exv-tech-hyp-st { color: var(--cl-negatif); }
.exv-tech-hyp-th { flex: 1 1 240px; font-size: var(--ht-texte-08); }

/* ---------- Accordéon (détail replié) ---------- */
.exv-an-acc { border: 1px solid var(--theme-border-color); border-radius: var(--border-radius-classic); background: var(--theme-bg-tertiaire); }
.exv-an-acc-sum { cursor: pointer; padding: 11px 14px; font-size: var(--ht-texte-09); font-weight: var(--wg-texte-medium); color: var(--theme-texte-secondaire); list-style: none; display: flex; align-items: center; gap: 8px; }
.exv-an-acc-sum::-webkit-details-marker { display: none; }
.exv-an-acc-sum::before { content: '▸'; color: var(--theme-texte-tertiaire); font-size: 0.85em; transition: transform 0.15s ease; }
.exv-an-acc[open] > .exv-an-acc-sum::before { transform: rotate(90deg); }
.exv-an-acc-sum:hover { color: var(--theme-texte-primaire); }
.exv-an-acc-body { padding: 4px 14px 14px; border-top: 1px solid var(--theme-border-color); }
.exv-an-note-expl { margin-top: 12px; font-size: var(--ht-texte-08); color: var(--theme-texte-tertiaire); }

/* ---------- Synthèse : lecture structurée (points forts / zones d'ombre / objectifs / conclusion) ---------- */
.exv-narr-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; margin-bottom: 16px; }
.exv-narr-card { border: 1px solid var(--theme-border-color); border-radius: var(--border-radius-extra); padding: 13px 15px; background: var(--theme-bg-tertiaire); border-top: 3px solid var(--theme-border-color); }
.exv-narr-card h3 { margin: 0 0 8px; font-size: var(--ht-texte-10); font-weight: var(--wg-texte-semibold); }
.exv-narr-card .exv-an-ul { margin-left: 16px; }
.exv-narr-card.pos { border-top-color: var(--cl-positif); }
.exv-narr-card.neg { border-top-color: var(--cl-negatif); }
.exv-narr-card.obj { border-top-color: var(--cl-accent); }
.exv-narr-concl { border: 1px solid var(--theme-border-color); border-left: 3px solid var(--theme-texte-secondaire); border-radius: var(--border-radius-classic); padding: 12px 15px; background: var(--theme-bg-primaire); }
.exv-narr-concl h3 { margin: 0 0 6px; font-size: var(--ht-texte-09); text-transform: uppercase; letter-spacing: 0.03em; color: var(--theme-texte-tertiaire); }

/* ---------- Onglet Scoring (présentation différenciée par dimension) ---------- */
.exv-sc { display: flex; flex-direction: column; gap: 16px; }
.exv-sc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.exv-sc-card { border: 1px solid var(--theme-border-color); border-radius: var(--border-radius-extra); padding: 14px 16px; background: var(--theme-bg-tertiaire); }
.exv-sc-card-h { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.exv-sc-card-h h3 { margin: 0; font-size: var(--ht-texte-10); font-weight: var(--wg-texte-semibold); }
.exv-sc-head-score { font-family: 'Intertight', sans-serif; font-size: var(--ht-texte-16); font-weight: var(--wg-texte-bold, 700); white-space: nowrap; }
.exv-sc-head-score em { font-style: normal; font-size: var(--ht-texte-07); font-weight: var(--wg-texte-regular); color: var(--theme-texte-tertiaire); margin-left: 1px; }
.exv-sc-head-score.pos { color: var(--cl-positif); }
.exv-sc-head-score.neg { color: var(--cl-negatif); }
.exv-sc-head-score.neu { color: var(--theme-texte-secondaire); }
.exv-sc-sub { margin: 3px 0 12px; }

/* Lignes barres étiquetées */
.exv-sc-row { display: flex; align-items: center; gap: 10px; margin: 7px 0; }
.exv-sc-row-k { flex: 0 0 42%; font-size: var(--ht-texte-08); color: var(--theme-texte-secondaire); }
.exv-sc-row-track { flex: 1 1 auto; height: 8px; border-radius: 4px; background: var(--theme-bg-quaterniaire); overflow: hidden; }
.exv-sc-row-fill { display: block; height: 100%; border-radius: 4px; }
.exv-sc-row-v { flex: 0 0 auto; font-variant-numeric: tabular-nums; font-size: var(--ht-texte-08); min-width: 2em; text-align: right; color: var(--theme-texte-primaire); }

/* Moat — carte phare */
.exv-sc-moat { border-color: var(--cl-accent); }
.exv-sc-moat-head { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.exv-sc-moat-score { flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 108px; padding: 10px 16px; border-radius: var(--border-radius-extra); border: 1px solid var(--theme-border-color); background: var(--theme-bg-primaire); line-height: 1; }
.exv-sc-moat-score .exv-sc-moat-n { font-family: 'Intertight', sans-serif; font-size: 2.4rem; font-weight: var(--wg-texte-bold, 700); }
.exv-sc-moat-score .exv-sc-moat-d { font-size: var(--ht-texte-08); color: var(--theme-texte-tertiaire); }
.exv-sc-moat-score .exv-sc-moat-lbl { margin-top: 6px; font-size: var(--ht-texte-07); text-transform: uppercase; letter-spacing: 0.04em; color: var(--theme-texte-tertiaire); }
.exv-sc-moat-score.pos { border-color: var(--cl-positif); } .exv-sc-moat-score.pos .exv-sc-moat-n { color: var(--cl-positif); }
.exv-sc-moat-score.neg { border-color: var(--cl-negatif); } .exv-sc-moat-score.neg .exv-sc-moat-n { color: var(--cl-negatif); }
.exv-sc-moat-intro { flex: 1 1 240px; }
.exv-sc-moat-intro h3 { margin: 0 0 4px; font-size: var(--ht-texte-115); font-weight: var(--wg-texte-semibold); }
.exv-sc-srcs-h { margin: 16px 0 8px; font-size: var(--ht-texte-07); text-transform: uppercase; letter-spacing: 0.04em; color: var(--theme-texte-tertiaire); }

/* Barre EMPILÉE de composition : les segments pavent toute la largeur (somme = 100 %). */
.exv-sc-stack { display: flex; width: 100%; height: 30px; border-radius: var(--border-radius-classic); overflow: hidden; background: var(--theme-bg-quaterniaire); }
.exv-sc-seg { display: flex; align-items: center; justify-content: center; min-width: 2px; height: 100%; box-shadow: inset -1px 0 0 var(--theme-bg-tertiaire); transition: filter 0.12s ease; }
.exv-sc-seg:last-child { box-shadow: none; }
.exv-sc-seg:hover { filter: brightness(1.08); }
.exv-sc-seg.dom { box-shadow: inset 0 0 0 2px var(--theme-texte-primaire), inset -1px 0 0 var(--theme-bg-tertiaire); }
.exv-sc-seg-l { font-size: var(--ht-texte-07); font-weight: var(--wg-texte-semibold); color: var(--cl-blanc-i1); text-shadow: 0 1px 2px var(--cl-transparent-noir-i6); white-space: nowrap; }

/* Légende détaillée des sources (part + intensité + dominante) */
.exv-sc-srcleg { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 4px 18px; margin-top: 12px; }
.exv-sc-srcleg-item { display: flex; align-items: center; gap: 8px; font-size: var(--ht-texte-08); padding: 3px 0; }
.exv-sc-srcleg-item .sw { flex: 0 0 auto; width: 11px; height: 11px; border-radius: 3px; }
.exv-sc-srcleg-k { flex: 1 1 auto; color: var(--theme-texte-secondaire); }
.exv-sc-srcleg-item.dom .exv-sc-srcleg-k { color: var(--theme-texte-primaire); font-weight: var(--wg-texte-medium); }
.exv-sc-srcleg-k em { font-style: normal; font-size: var(--ht-texte-06, 0.66rem); color: var(--cl-accent); }
.exv-sc-srcleg-share { flex: 0 0 auto; font-variant-numeric: tabular-nums; font-weight: var(--wg-texte-semibold); min-width: 3em; text-align: right; }
.exv-sc-srcleg-int { flex: 0 0 auto; font-size: var(--ht-texte-07); color: var(--theme-texte-tertiaire); min-width: 7em; text-align: right; }

/* ---------- Onglet Couches (refonte : accordéons ordonnés, une couche = un panneau repliable) ---------- */
.exv-cl-acc-list { display: flex; flex-direction: column; gap: 10px; }
.exv-cl-acc { border: 1px solid var(--theme-border-color); border-radius: var(--border-radius-extra); background: var(--theme-bg-tertiaire); }
.exv-cl-acc-head { display: flex; align-items: center; gap: 12px; cursor: pointer; padding: 12px 16px; list-style: none; }
.exv-cl-acc-head::-webkit-details-marker { display: none; }
.exv-cl-acc-head::before { content: '▸'; flex: 0 0 auto; color: var(--theme-texte-tertiaire); font-size: 0.8em; transition: transform 0.15s ease; }
.exv-cl-acc[open] > .exv-cl-acc-head::before { transform: rotate(90deg); }
.exv-cl-acc-head:hover { background: var(--theme-bg-quaterniaire); border-radius: var(--border-radius-extra); }
.exv-cl-acc-title { flex: 1 1 auto; font-size: var(--ht-texte-115); font-weight: var(--wg-texte-semibold); position: relative; padding-left: 11px; }
.exv-cl-acc-title::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 3px; height: 1em; border-radius: 2px; background: var(--cl-accent); }
.exv-cl-acc-body { padding: 8px 16px 16px 39px; font-size: var(--ht-texte-09); border-top: 1px solid var(--theme-border-color); }
.exv-cl-acc-body .exv-an-text { margin: 0; max-width: 78ch; }
.exv-cl-acc-body.split { display: flex; gap: 28px; flex-wrap: wrap; align-items: flex-start; }
.exv-cl-acc-main { flex: 1 1 360px; min-width: 0; }
.exv-cl-acc-aside { flex: 1 1 240px; min-width: 0; }
.exv-cl-aside-h { font-size: var(--ht-texte-07); text-transform: uppercase; letter-spacing: 0.04em; color: var(--theme-texte-tertiaire); margin-bottom: 6px; }

/* Étiquette d'attribut (cycle / maturité / récurrence…) */
.exv-cl-tag { display: inline-flex; align-items: baseline; gap: 6px; font-size: var(--ht-texte-07); border: 1px solid var(--theme-border-color); border-radius: 999px; padding: 2px 10px; background: var(--theme-bg-primaire); }
.exv-cl-tag .k { color: var(--theme-texte-tertiaire); text-transform: uppercase; letter-spacing: 0.03em; }
.exv-cl-tag .v { color: var(--theme-texte-primaire); font-weight: var(--wg-texte-medium); }
.exv-cl-mut { font-size: var(--ht-texte-07); color: var(--theme-texte-tertiaire); border: 1px dashed var(--theme-border-color); border-radius: 999px; padding: 1px 9px; }

/* Pastille de score (juridiction, moat) — style STANDARD : valeur et dénominateur de même taille. */
.exv-cl-score { font-size: var(--ht-texte-08); font-weight: var(--wg-texte-medium); white-space: nowrap; border-radius: 999px; padding: 3px 11px; background: var(--theme-bg-primaire); border: 1px solid var(--theme-border-color); color: var(--theme-texte-secondaire); }
.exv-cl-score b { font-weight: var(--wg-texte-semibold); font-variant-numeric: tabular-nums; }
.exv-cl-score.pos { color: var(--cl-positif); border-color: color-mix(in srgb, var(--cl-positif) 45%, transparent); }
.exv-cl-score.neg { color: var(--cl-negatif); border-color: color-mix(in srgb, var(--cl-negatif) 45%, transparent); }
.exv-cl-score.neu { color: var(--theme-texte-secondaire); }

/* Listes de définition (domiciliation / régime fiscal / position stratégique) */
.exv-cl-defs { margin-top: 10px; display: flex; flex-direction: column; gap: 8px; }
.exv-cl-def { display: grid; grid-template-columns: 1fr; gap: 1px; }
.exv-cl-def dt { font-size: var(--ht-texte-07); text-transform: uppercase; letter-spacing: 0.03em; color: var(--theme-texte-tertiaire); margin: 0; }
.exv-cl-def dd { margin: 0; font-size: var(--ht-texte-08); color: var(--theme-texte-secondaire); }

/* Comparables : pairs en pastilles */
.exv-cl-peers { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.exv-cl-peer { font-size: var(--ht-texte-07); background: var(--theme-bg-primaire); border: 1px solid var(--theme-border-color); border-radius: var(--border-radius-classic); padding: 3px 10px; color: var(--theme-texte-secondaire); font-weight: var(--wg-texte-medium); }

.exv-cl-facets { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.exv-cl-chip { font-size: var(--ht-texte-07); background: var(--theme-bg-primaire); border: 1px solid var(--theme-border-color); border-radius: 999px; padding: 2px 10px; color: var(--theme-texte-secondaire); }

/* Position concurrentielle : deux sous-cartes de moat (technologique / marque) */
.exv-cl-moat-subs { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; margin-top: 10px; }
.exv-cl-moat-sub { border: 1px solid var(--theme-border-color); border-radius: var(--border-radius-classic); padding: 11px 13px; background: var(--theme-bg-primaire); }
.exv-cl-moat-sub h4 { margin: 0 0 6px; font-size: var(--ht-texte-09); font-weight: var(--wg-texte-semibold); display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.exv-cl-int { font-size: var(--ht-texte-07); font-weight: var(--wg-texte-regular); color: var(--theme-texte-tertiaire); white-space: nowrap; }
