/* ==========================================================================
   Finvesta — modales du jeu (DA 2027 « V3 », validée le 17/10/2026)
   Couleur par domaine : Banque cobalt · Bourse émeraude · Immobilier ambre ·
   DCA violet. Bandeau coloré + coup de pinceau de la landing, corps teinté,
   cartes blanches. Utilisé par StocksDialogs.showDialog (Banque, Bourse) et
   FinvestaDialog.create({ domain }) (Immobilier) via window.FvModal.
   Toutes les classes sont préfixées « fvm- » : aucune collision avec Tailwind.
   ========================================================================== */

.fvm {
  --fvm-a: #1533d6; --fvm-a2: #3d63f5; --fvm-deep: #0a1f8f;
  --fvm-tint: #f3f5ff; --fvm-soft: #e6eaff;
  --fvm-line: rgba(21, 51, 214, .12); --fvm-line2: rgba(21, 51, 214, .2);
  --fvm-ring: rgba(21, 51, 214, .12); --fvm-shadow: rgba(21, 51, 214, .3);
  --fvm-glow: rgba(28, 63, 255, .22);
  --fvm-brush: #7d99ff; --fvm-brush2: #c9d4ff;
  --fvm-ink: #0d1233; --fvm-ink2: #2b3260; --fvm-mut: #5a6180; --fvm-dim: #8a90b0;
  font-family: Inter, system-ui, -apple-system, 'Segoe UI', sans-serif;
  color: var(--fvm-ink);
  background: var(--fvm-tint);
  border-radius: 26px;
  box-shadow: 0 40px 100px rgba(0, 0, 0, .55), 0 0 0 1px rgba(255, 255, 255, .08), 0 0 80px var(--fvm-glow);
  max-width: calc(100vw - 32px);
  text-align: left;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: 'tnum' 1;
  scrollbar-width: thin;
  scrollbar-color: rgba(13, 18, 51, .22) transparent;
}
.fvm::-webkit-scrollbar, .fvm-scroll::-webkit-scrollbar { width: 8px; }
.fvm::-webkit-scrollbar-thumb, .fvm-scroll::-webkit-scrollbar-thumb { background: rgba(13, 18, 51, .2); border-radius: 999px; border: 2px solid transparent; background-clip: padding-box; }
.fvm::-webkit-scrollbar-track, .fvm-scroll::-webkit-scrollbar-track { background: transparent; }
.fvm-scroll { scrollbar-width: thin; scrollbar-color: rgba(13, 18, 51, .22) transparent; }
.fvm--bourse {
  --fvm-a: #06775c; --fvm-a2: #12a87f; --fvm-deep: #053d30;
  --fvm-tint: #f0faf5; --fvm-soft: #dcf3e9;
  --fvm-line: rgba(6, 119, 92, .13); --fvm-line2: rgba(6, 119, 92, .22);
  --fvm-ring: rgba(6, 119, 92, .13); --fvm-shadow: rgba(6, 119, 92, .28);
  --fvm-glow: rgba(16, 185, 129, .2);
  --fvm-brush: #6ee7b7; --fvm-brush2: #d1fae5;
  --fvm-ink: #0b1f1a; --fvm-ink2: #1f3a33; --fvm-mut: #55665f; --fvm-dim: #87968f;
}
.fvm--immo {
  --fvm-a: #c4480e; --fvm-a2: #e98a1a; --fvm-deep: #7a2a0c;
  --fvm-tint: #fff8ef; --fvm-soft: #f8e8d3;
  --fvm-line: rgba(196, 72, 14, .13); --fvm-line2: rgba(196, 72, 14, .22);
  --fvm-ring: rgba(196, 72, 14, .13); --fvm-shadow: rgba(196, 72, 14, .28);
  --fvm-glow: rgba(234, 88, 12, .2);
  --fvm-brush: #fcd28a; --fvm-brush2: #fff1d6;
  --fvm-ink: #2a1708; --fvm-ink2: #4a2c14; --fvm-mut: #7a5638; --fvm-dim: #a88a6f;
}
.fvm--dca {
  --fvm-a: #6d3fd6; --fvm-a2: #8b6cf0; --fvm-deep: #2e1673;
  --fvm-tint: #f6f3ff; --fvm-soft: #ebe4ff;
  --fvm-line: rgba(109, 63, 214, .13); --fvm-line2: rgba(109, 63, 214, .22);
  --fvm-ring: rgba(109, 63, 214, .13); --fvm-shadow: rgba(109, 63, 214, .3);
  --fvm-glow: rgba(124, 58, 237, .22);
  --fvm-brush: #c4b5fd; --fvm-brush2: #ede9fe;
  --fvm-ink: #16102e; --fvm-ink2: #2e2552; --fvm-mut: #5f5880; --fvm-dim: #8e88aa;
}

/* Les panneaux masqués par le code (classe Tailwind « hidden ») doivent le
   rester même quand une classe fvm- leur donne un display. */
.fvm .hidden { display: none !important; }
.fvm *, .fvm *::before, .fvm *::after { box-sizing: border-box; }
.fvm p, .fvm h1, .fvm h2, .fvm h3, .fvm h4 { margin: 0; }
.fvm button { font-family: inherit; }
.fvm svg.lucide { flex: none; }

/* ── Bandeau ─────────────────────────────────────────────────────────────── */
.fvm-ban {
  position: relative; overflow: hidden; padding: 20px 24px 24px; color: #fff;
  background: linear-gradient(140deg, var(--fvm-deep) 0%, var(--fvm-a) 52%, var(--fvm-a2) 100%);
}
.fvm-ban-in { position: relative; }
.fvm-brush { position: absolute; left: -12%; top: -40%; width: 124%; height: 170%; pointer-events: none; }
.fvm-brush .b1 { fill: var(--fvm-brush); opacity: .28; }
.fvm-brush .b2 { fill: var(--fvm-brush2); opacity: .17; }
.fvm-fmark { position: absolute; right: -16px; top: 50%; height: 200px; margin-top: -100px; opacity: .07; pointer-events: none; }
.fvm-topbar { display: flex; align-items: center; gap: 10px; }
.fvm-tag {
  font-family: 'JetBrains Mono', ui-monospace, Consolas, monospace; font-size: 11px; font-weight: 500;
  letter-spacing: .14em; text-transform: uppercase; color: rgba(255, 255, 255, .8);
}
.fvm-x {
  margin-left: auto; width: 36px; height: 36px; border-radius: 999px; flex: none; cursor: pointer;
  border: 1px solid rgba(255, 255, 255, .24); background: rgba(255, 255, 255, .1); color: #fff;
  display: flex; align-items: center; justify-content: center; transition: background .15s;
}
.fvm-x:hover { background: rgba(255, 255, 255, .2); }
.fvm-x svg { width: 16px; height: 16px; }
.fvm-title {
  font-family: 'Plus Jakarta Sans', Inter, sans-serif; font-size: 20px; font-weight: 700;
  letter-spacing: -.015em; line-height: 1.25; margin: 12px 0 0 !important; color: #fff;
}
.fvm-sub { font-size: 13px; font-weight: 500; color: rgba(255, 255, 255, .74); margin-top: 4px !important; line-height: 1.45; }
.fvm-hero-l { font-size: 12px; font-weight: 500; color: rgba(255, 255, 255, .72); margin-top: 16px !important; }
.fvm-hero-v {
  font-family: 'Plus Jakarta Sans', Inter, sans-serif; font-size: 42px; font-weight: 800;
  letter-spacing: -.04em; line-height: 1.05; margin-top: 6px !important; font-variant-numeric: tabular-nums;
}
.fvm-hero-v small { font-size: 18px; font-weight: 600; letter-spacing: -.01em; color: rgba(255, 255, 255, .72); margin-left: 6px; }
.fvm-hrow { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; }
.fvm-hrow .fvm-side { text-align: right; flex: none; }
.fvm-hrow .fvm-side .fvm-hero-l { margin-top: 0 !important; }
.fvm-hrow .fvm-side .fvm-hero-v { font-size: 34px; }
.fvm-chips { display: flex; gap: 8px; margin-top: 16px; flex-wrap: wrap; }
.fvm-pill {
  display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; border-radius: 999px;
  font-size: 12.5px; font-weight: 600; white-space: nowrap;
  background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .2); color: #fff;
}
.fvm-pill svg { width: 13px; height: 13px; }
.fvm-pill--up { background: rgba(93, 232, 210, .16); border-color: rgba(93, 232, 210, .38); color: #b3f5ea; }
.fvm-pill--down { background: rgba(255, 138, 143, .16); border-color: rgba(255, 138, 143, .38); color: #ffc9cc; }
.fvm-pill--warn { background: rgba(251, 191, 36, .18); border-color: rgba(251, 191, 36, .4); color: #ffe7a6; }

/* ── Corps & pied ────────────────────────────────────────────────────────── */
.fvm-body { padding: 22px 22px 6px; display: flex; flex-direction: column; gap: 16px; }
.fvm-body > * { min-width: 0; }
.fvm-foot { display: flex; justify-content: flex-end; align-items: center; gap: 10px; padding: 16px 22px 22px; flex-wrap: wrap; }
.fvm-foot:empty { display: none; }

/* ── Boutons ─────────────────────────────────────────────────────────────── */
.fvm-btn {
  height: 46px; padding: 0 20px; border-radius: 14px; border: 0; cursor: pointer; white-space: nowrap;
  font-family: 'Plus Jakarta Sans', Inter, sans-serif !important; font-size: 14px; font-weight: 700; line-height: 1;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none;
  transition: transform .12s ease, box-shadow .15s ease, filter .15s ease, background .15s ease;
}
.fvm-btn svg { width: 16px; height: 16px; }
.fvm-btn:hover:not([disabled]) { transform: translateY(-1px); }
.fvm-btn:active:not([disabled]) { transform: translateY(0); }
.fvm-btn:focus-visible { outline: 3px solid var(--fvm-ring); outline-offset: 2px; }
.fvm-btn--pri { background: linear-gradient(135deg, var(--fvm-a2), var(--fvm-a)); color: #fff; box-shadow: 0 8px 20px var(--fvm-shadow); }
.fvm-btn--pri:hover:not([disabled]) { filter: brightness(1.06); }
.fvm-btn--sec { background: #fff; color: var(--fvm-ink); border: 1px solid var(--fvm-line2); }
.fvm-btn--sec:hover:not([disabled]) { border-color: var(--fvm-a); }
.fvm-btn--danger { background: linear-gradient(135deg, #f43f5e, #d61f45); color: #fff; box-shadow: 0 8px 20px rgba(214, 31, 69, .26); }
.fvm-btn--vio { background: #efe8ff; color: #5b2fc4; border: 1px solid rgba(109, 63, 214, .22); }
.fvm-btn--dark { background: var(--fvm-ink); color: #fff; }
.fvm-btn--sm { height: 36px; padding: 0 14px; font-size: 13px; border-radius: 12px; }
.fvm-btn--block { width: 100%; }
.fvm-btn[disabled] { background: #ecebf1 !important; color: #9b98ad !important; border-color: transparent !important; box-shadow: none !important; cursor: not-allowed; }
/* Pied de modale : lien DCA à gauche, secondaires avant le principal */
.fvm-foot .fvm-btn--vio { order: -2; margin-right: auto; }
.fvm-foot .fvm-btn--sec { order: -1; }

/* ── Cartes, lignes, options ─────────────────────────────────────────────── */
.fvm-card {
  background: #fff; border: 1px solid var(--fvm-line); border-radius: 20px; padding: 18px;
  box-shadow: 0 1px 2px rgba(13, 18, 51, .05), 0 8px 24px rgba(13, 18, 51, .06);
}
.fvm-card--flat { box-shadow: none; }
.fvm-opt {
  background: #fff; border: 1px solid var(--fvm-line); border-radius: 20px; cursor: pointer;
  box-shadow: 0 1px 2px rgba(13, 18, 51, .05), 0 8px 24px rgba(13, 18, 51, .06);
  transition: border-color .15s, box-shadow .15s, transform .15s; color: inherit; text-align: left; width: 100%;
}
.fvm-opt:hover { border-color: var(--fvm-a); box-shadow: 0 0 0 4px var(--fvm-ring), 0 10px 26px rgba(13, 18, 51, .08); transform: translateY(-1px); }
.fvm-opt.is-on { border-color: var(--fvm-a); box-shadow: 0 0 0 4px var(--fvm-ring), 0 8px 24px rgba(13, 18, 51, .06); }
.fvm-act { padding: 18px; display: flex; flex-direction: column; gap: 14px; }
.fvm-row { display: flex; align-items: center; gap: 14px; padding: 14px 16px; }
.fvm-row--top { align-items: flex-start; }
.fvm-grow { flex: 1; min-width: 0; }
.fvm-chev { color: var(--fvm-dim); width: 18px; height: 18px; flex: none; }

.fvm-ic {
  width: 46px; height: 46px; border-radius: 14px; flex: none;
  display: flex; align-items: center; justify-content: center;
  background: var(--fvm-soft); color: var(--fvm-a);
}
.fvm-ic svg { width: 22px; height: 22px; }
.fvm-ic--sm { width: 40px; height: 40px; border-radius: 12px; }
.fvm-ic--sm svg { width: 19px; height: 19px; }
.fvm-mono { font-family: 'JetBrains Mono', ui-monospace, Consolas, monospace; font-size: 12px; font-weight: 500; letter-spacing: .04em; }
.fvm-ic--sm.fvm-mono { font-size: 11px; }
.t-mint { background: #e3f7ef !important; color: #059669 !important; }
.t-cob { background: #e7ebff !important; color: #1533d6 !important; }
.t-amb { background: #fdf1d8 !important; color: #b76a00 !important; }
.t-ora { background: #ffeadb !important; color: #d9530b !important; }
.t-red { background: #ffe7ec !important; color: #d61f45 !important; }
.t-vio { background: #efe8ff !important; color: #6d3fd6 !important; }
.t-grey { background: #eeeff4 !important; color: #5a6180 !important; }

.fvm-t { font-family: 'Plus Jakarta Sans', Inter, sans-serif; font-size: 15px; font-weight: 700; letter-spacing: -.01em; line-height: 1.3; color: var(--fvm-ink); display: block; }
.fvm-t--lg { font-size: 16px; }
.fvm-s { font-size: 13px; color: var(--fvm-mut); line-height: 1.45; margin-top: 3px !important; display: block; }
.fvm-s--xs { font-size: 12px; }
.fvm-clamp { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.fvm-ell { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fvm-eb {
  font-family: 'JetBrains Mono', ui-monospace, Consolas, monospace; font-size: 10.5px; font-weight: 500;
  letter-spacing: .1em; text-transform: uppercase; color: var(--fvm-mut); display: block;
}
.fvm-num { font-family: 'Plus Jakarta Sans', Inter, sans-serif; font-weight: 800; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.fvm-pos { color: #047857 !important; }
.fvm-neg { color: #d61f45 !important; }
.fvm-warn { color: #a85d00 !important; }
.fvm-acc { color: var(--fvm-a) !important; }
.fvm-mut { color: var(--fvm-mut) !important; }

.fvm-badge {
  display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 10px; border-radius: 999px;
  font-size: 11.5px; font-weight: 600; white-space: nowrap; background: var(--fvm-soft); color: var(--fvm-a);
}
.fvm-badge i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: none; }
.fvm-badge svg { width: 13px; height: 13px; }

.fvm-strip {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  padding: 13px 18px; border-radius: 18px; background: var(--fvm-soft);
}
.fvm-strip > span { font-size: 13px; font-weight: 500; color: var(--fvm-ink2); }
.fvm-strip > b { font-family: 'Plus Jakarta Sans', Inter, sans-serif; font-size: 18px; font-weight: 700; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.fvm-strip--split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; padding: 0; }
.fvm-strip--split > div { padding: 12px 16px; }
.fvm-strip--split > div + div { border-left: 1px solid var(--fvm-line2); }
.fvm-strip--split .v { display: block; font-family: 'Plus Jakarta Sans', Inter, sans-serif; font-size: 17px; font-weight: 700; letter-spacing: -.02em; margin-top: 3px; font-variant-numeric: tabular-nums; }

.fvm-g2, .fvm-g3, .fvm-g4 { display: grid; gap: 12px; }
.fvm-g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fvm-g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fvm-g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fvm-stack { display: flex; flex-direction: column; gap: 10px; }
.fvm-stat { background: #fff; border: 1px solid var(--fvm-line); border-radius: 16px; padding: 12px 14px; min-width: 0; }
.fvm-stat--top { border-top: 3px solid var(--fvm-a); }
.fvm-stat .k { display: block; font-size: 12px; font-weight: 500; color: var(--fvm-mut); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fvm-stat .v { display: block; font-family: 'Plus Jakarta Sans', Inter, sans-serif; font-size: 16px; font-weight: 700; letter-spacing: -.02em; margin-top: 4px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }

/* ── Formulaires ─────────────────────────────────────────────────────────── */
.fvm-lbl { font-size: 13px; font-weight: 600; color: var(--fvm-ink2); margin: 0 0 8px; display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.fvm-lbl em { font-style: normal; font-size: 12px; font-weight: 500; color: var(--fvm-mut); }
.fvm-inp {
  display: flex; align-items: center; gap: 10px; height: 58px; padding: 0 18px;
  background: #fff; border: 1px solid var(--fvm-line2); border-radius: 16px;
  box-shadow: 0 1px 2px rgba(13, 18, 51, .05); transition: border-color .15s, box-shadow .15s;
}
.fvm-inp:focus-within { border-color: var(--fvm-a); box-shadow: 0 0 0 4px var(--fvm-ring); }
.fvm-inp input {
  flex: 1; min-width: 0; border: 0 !important; outline: 0 !important; box-shadow: none !important; background: transparent !important; padding: 0 !important;
  font-family: 'Plus Jakarta Sans', Inter, sans-serif; font-size: 24px; font-weight: 700; letter-spacing: -.025em;
  color: var(--fvm-ink) !important; font-variant-numeric: tabular-nums;
}
.fvm-inp input::placeholder { color: #b5b9cc; font-weight: 600; }
.fvm-inp .u { font-size: 18px; font-weight: 600; color: var(--fvm-dim); }
.fvm-inp--sm { height: 48px; border-radius: 14px; padding: 0 14px; }
.fvm-inp--sm input { font-size: 18px; }
.fvm-inp--xs { height: 38px; border-radius: 999px; padding: 0 12px; width: 108px; flex: none; }
.fvm-inp--xs input { font-size: 14px; text-align: right; }
.fvm-inp--xs .u { font-size: 12px; }
.fvm-quick { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.fvm-q {
  flex: 1 1 auto; min-width: 64px; height: 36px; padding: 0 10px; border-radius: 12px; cursor: pointer; white-space: nowrap;
  border: 1px solid var(--fvm-line2); background: #fff; color: var(--fvm-ink2);
  font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; transition: background .15s, border-color .15s, color .15s;
}
.fvm-q:hover { border-color: var(--fvm-a); color: var(--fvm-a); }
.fvm-q.is-on { background: var(--fvm-a); border-color: var(--fvm-a); color: #fff; }

input[type="checkbox"].fvm-switch {
  -webkit-appearance: none; appearance: none; width: 42px; height: 26px; border-radius: 999px; margin: 0; flex: none; cursor: pointer;
  background: #dfe2ec; position: relative; transition: background .15s; border: 0;
}
input[type="checkbox"].fvm-switch::after {
  content: ''; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%;
  background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .22); transition: left .15s;
}
input[type="checkbox"].fvm-switch:checked { background: var(--fvm-a); }
input[type="checkbox"].fvm-switch:checked::after { left: 19px; }
input[type="checkbox"].fvm-switch:focus-visible { outline: 3px solid var(--fvm-ring); outline-offset: 2px; }

.fvm-choice { display: flex; align-items: flex-start; gap: 12px; padding: 13px 14px; border-radius: 16px; border: 1px solid var(--fvm-line); background: #fff; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.fvm-choice:has(input:checked) { border-color: var(--fvm-a); box-shadow: 0 0 0 4px var(--fvm-ring); }
.fvm-choice input { margin-top: 3px; accent-color: var(--fvm-a); flex: none; }
.fvm input[type="range"] { accent-color: var(--fvm-a); }

/* ── Listes clé / valeur ─────────────────────────────────────────────────── */
.fvm-kvs { background: #fff; border: 1px solid var(--fvm-line); border-radius: 18px; padding: 4px 18px; }
.fvm-kvs--soft { background: var(--fvm-tint); border-color: transparent; }
.fvm-kv { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 14px; padding: 9px 0; color: var(--fvm-mut); }
.fvm-kv + .fvm-kv { border-top: 1px solid rgba(13, 18, 51, .06); }
.fvm-kv > b, .fvm-kv > span:last-child { color: var(--fvm-ink); font-weight: 600; font-variant-numeric: tabular-nums; text-align: right; }
.fvm-kv--tot { border-top: 1.5px solid var(--fvm-ink) !important; }
.fvm-kv--tot > span:first-child { color: var(--fvm-ink); font-weight: 700; }
.fvm-kv--tot > b, .fvm-kv--tot > span:last-child { font-family: 'Plus Jakarta Sans', Inter, sans-serif; font-size: 17px; font-weight: 800; letter-spacing: -.02em; }
.fvm-kvs--sm .fvm-kv { font-size: 13px; padding: 7px 0; }

/* ── Encadrés d'information ──────────────────────────────────────────────── */
.fvm-note { display: flex; gap: 12px; padding: 13px 16px; border-radius: 16px; background: #fff; border: 1px solid var(--fvm-line); font-size: 13px; line-height: 1.5; color: var(--fvm-ink2); }
.fvm-note > svg, .fvm-note > i { flex: none; width: 16px; height: 16px; margin-top: 2px; color: var(--fvm-a); }
.fvm-note p + p { margin-top: 6px !important; }
.fvm-note--warn { background: #fff7e8; border-color: rgba(217, 138, 0, .22); color: #6e4100; }
.fvm-note--warn > svg { color: #d98a00; }
.fvm-note--danger { background: #fff0f2; border-color: rgba(214, 31, 69, .2); color: #8a1530; }
.fvm-note--danger > svg { color: #d61f45; }
.fvm-note--ok { background: #ecfaf4; border-color: rgba(5, 150, 105, .2); color: #065f46; }
.fvm-note--ok > svg { color: #059669; }
.fvm-stack-notes { display: flex; flex-direction: column; gap: 8px; }

/* ── Onglets segmentés ───────────────────────────────────────────────────── */
.fvm-seg { display: flex; padding: 4px; border-radius: 14px; background: var(--fvm-soft); gap: 3px; flex-wrap: wrap; }
.fvm-seg > button {
  flex: 1 1 auto; height: 36px; padding: 0 12px; border: 0; border-radius: 10px; background: transparent; cursor: pointer;
  font-size: 13px; font-weight: 600; color: var(--fvm-mut); white-space: nowrap; transition: background .15s, color .15s;
}
.fvm-seg > button:hover { color: var(--fvm-ink); }
.fvm-seg > button.is-on { background: #fff; color: var(--fvm-ink); box-shadow: 0 1px 3px rgba(13, 18, 51, .12); }
.fvm-seg--fit > button { flex: 0 0 auto; }

.fvm-seg > button .fvm-badge { vertical-align: 1px; }
.fvm-dca-row { padding: 10px 12px !important; gap: 12px !important; }
.fvm-dca-row.is-on { border-color: var(--fvm-line2); background: #fbfaff; }

/* ── Niveaux de risque (échelle commune 1 → 6) ───────────────────────────── */
.fvm-lv { display: flex; align-items: center; gap: 10px; margin-top: 8px; }
.fvm-lv:first-child { margin-top: 0; }
.fvm-lv .n { font-family: 'JetBrains Mono', ui-monospace, Consolas, monospace; font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.fvm-lv .l { font-family: 'Plus Jakarta Sans', Inter, sans-serif; font-size: 14px; font-weight: 700; color: var(--fvm-ink); }
.fvm-lv hr { flex: 1; border: 0; height: 1px; background: var(--fvm-line2); margin: 0; }
.fvm-meter { display: inline-flex; gap: 3px; flex: none; }
.fvm-meter b { width: 14px; height: 5px; border-radius: 3px; background: rgba(13, 18, 51, .1); }
.fvm-meter b.on { background: currentColor; }
.lv-1 { color: #059669; } .lv-2 { color: #1533d6; } .lv-3 { color: #b76a00; }
.lv-4 { color: #d9530b; } .lv-5 { color: #d61f45; } .lv-6 { color: #6d3fd6; }

.fvm-range { display: flex; align-items: center; gap: 8px; margin-top: 10px; font-family: 'JetBrains Mono', ui-monospace, Consolas, monospace; font-size: 11px; }
.fvm-range .trk { flex: 1; height: 6px; border-radius: 999px; background: rgba(13, 18, 51, .07); position: relative; }
.fvm-range .trk::before { content: ''; position: absolute; left: 50%; top: -3px; bottom: -3px; width: 1px; background: var(--fvm-ink); opacity: .35; }
.fvm-range .trk .n { position: absolute; right: 50%; top: 0; bottom: 0; border-radius: 999px 0 0 999px; background: #f43f5e; }
.fvm-range .trk .p { position: absolute; left: 50%; top: 0; bottom: 0; border-radius: 0 999px 999px 0; background: #10b981; }

.fvm-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.fvm-tg { font-family: 'JetBrains Mono', ui-monospace, Consolas, monospace; font-size: 11px; font-weight: 500; color: var(--fvm-ink2); background: rgba(13, 18, 51, .05); border-radius: 8px; padding: 4px 8px; white-space: nowrap; }
.fvm-tg--k { background: var(--fvm-ink); color: #fff; }

/* Légende des notations (obligations) */
.fvm-rating { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 4px; margin-top: 12px; }
.fvm-rating span { height: 30px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-family: 'JetBrains Mono', ui-monospace, Consolas, monospace; font-size: 10.5px; font-weight: 500; }
.fvm-rating-brk { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin-top: 6px; font-size: 11px; font-weight: 600; }
.fvm-rating-brk div { border-top: 2px solid; padding-top: 5px; }

/* ── Jauges ──────────────────────────────────────────────────────────────── */
.fvm-gauge { position: relative; height: 10px; border-radius: 999px; margin-top: 16px; background: linear-gradient(90deg, #d6f5e8 0 70%, #fde7ea 70% 100%); }
.fvm-gauge > i { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 999px; background: linear-gradient(90deg, #34d399, #059669); transition: width .25s ease; }
.fvm-gauge > u { position: absolute; top: -5px; bottom: -5px; width: 2px; left: 70%; background: var(--fvm-ink); border-radius: 2px; }
.fvm-debt.is-warn .fvm-gauge > i { background: linear-gradient(90deg, #fbbf24, #d97706); }
.fvm-debt.is-danger .fvm-gauge > i { background: linear-gradient(90deg, #fb7185, #d61f45); }
.fvm-debt.is-danger { border-color: rgba(214, 31, 69, .35); }
.fvm-scale { display: flex; justify-content: space-between; font-family: 'JetBrains Mono', ui-monospace, Consolas, monospace; font-size: 10px; color: var(--fvm-mut); margin-top: 8px; }
.fvm-scale span:nth-child(2) { margin-left: 52%; }
.fvm-bar { height: 6px; border-radius: 999px; background: rgba(13, 18, 51, .08); overflow: hidden; }
.fvm-bar > i, .fvm-bar > div { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--fvm-a2), var(--fvm-a)); transition: width .25s ease; }
.fvm-bar--lg { height: 10px; }

/* ── Immobilier : cartes photo ───────────────────────────────────────────── */
.fvm-pc { background: #fff; border: 1px solid var(--fvm-line); border-radius: 22px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 1px 2px rgba(42, 23, 8, .05), 0 10px 28px rgba(42, 23, 8, .07); }
.fvm-ph { position: relative; height: 160px; background: linear-gradient(140deg, #4a2a12, #8a4a1c); flex: none; }
.fvm-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fvm-pc.is-out .fvm-ph img { filter: saturate(.35) brightness(.85); }
.fvm-ov { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 14px 16px; color: #fff; background: linear-gradient(180deg, rgba(20, 10, 4, 0) 38%, rgba(20, 10, 4, .8)); }
.fvm-ov small { font-size: 12px; font-weight: 500; color: rgba(255, 255, 255, .82); }
.fvm-ov h3 { font-family: 'Plus Jakarta Sans', Inter, sans-serif; font-size: 18px; font-weight: 700; letter-spacing: -.015em; margin-top: 2px !important; color: #fff; }
.fvm-st { position: absolute; top: 12px; left: 12px; display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 10px; border-radius: 999px; font-size: 11.5px; font-weight: 600; background: rgba(255, 255, 255, .93); color: #2a1708; }
.fvm-st i { width: 6px; height: 6px; border-radius: 50%; flex: none; }
.fvm-pb { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.fvm-pr { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.fvm-pr b { font-family: 'Plus Jakarta Sans', Inter, sans-serif; font-size: 24px; font-weight: 800; letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
.fvm-yl { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: 999px; font-size: 12px; font-weight: 600; background: #fdf1d8; color: #8a4f00; white-space: nowrap; }
.fvm-mini { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.fvm-mini > div { background: var(--fvm-tint); border-radius: 12px; padding: 8px 10px; font-size: 11.5px; font-weight: 500; color: var(--fvm-mut); min-width: 0; }
.fvm-mini b { display: block; font-family: 'Plus Jakarta Sans', Inter, sans-serif; font-size: 14px; font-weight: 700; color: var(--fvm-ink); margin-top: 2px; font-variant-numeric: tabular-nums; }
.fvm-need { display: flex; flex-direction: column; gap: 8px; padding: 10px 12px; border-radius: 14px; background: #faf3ea; margin-top: auto; }
.fvm-need p { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; font-weight: 500; color: var(--fvm-mut); }
.fvm-need p b { font-weight: 600; color: #b8410d; }
.fvm-need .fvm-bar > i { background: #e98a1a; }
.fvm-pc .fvm-btn--block { margin-top: auto; }
.fvm-filters { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.fvm-price { flex: 1; min-width: 220px; display: flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 500; color: var(--fvm-mut); }
.fvm-price input { flex: 1; min-width: 0; margin: 0; }
.fvm-price b { font-family: 'Plus Jakarta Sans', Inter, sans-serif; font-size: 15px; font-weight: 700; color: var(--fvm-ink); white-space: nowrap; font-variant-numeric: tabular-nums; }
.fvm-scroll { max-height: 440px; overflow-y: auto; padding: 2px; margin: -2px; }
.fvm-thumb { width: 72px; height: 72px; border-radius: 14px; overflow: hidden; flex: none; background: linear-gradient(140deg, #4a2a12, #8a4a1c); display: flex; align-items: center; justify-content: center; color: #fde3c2; }
.fvm-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fvm-thumb svg { width: 26px; height: 26px; }
.fvm-cond { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--fvm-mut); font-variant-numeric: tabular-nums; white-space: nowrap; }
.fvm-cond > span { display: block; width: 56px; height: 6px; border-radius: 999px; background: rgba(13, 18, 51, .08); overflow: hidden; }
.fvm-cond > span > i { display: block; height: 100%; border-radius: 999px; }
.fvm-hero-img { position: relative; height: 150px; border-radius: 18px; overflow: hidden; background: linear-gradient(140deg, #4a2a12, #8a4a1c); }
.fvm-hero-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Encadré « Bail & fiscalité » injecté par le module Scénarios */
.fvm .fsc-fisc { background: #fff !important; border: 1px solid rgba(217, 138, 0, .3) !important; }
.fvm .fsc-fisc .text-amber-300 { color: #a85d00 !important; }
.fvm .fsc-fisc .text-gray-400 { color: var(--fvm-mut) !important; }

/* ── Petits écrans ───────────────────────────────────────────────────────── */
@media (max-width: 640px) {
  .fvm-g2, .fvm-g3 { grid-template-columns: minmax(0, 1fr); }
  .fvm-g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fvm-hrow { flex-direction: column; align-items: flex-start; gap: 10px; }
  .fvm-hrow .fvm-side { text-align: left; }
  .fvm-hero-v { font-size: 36px; }
  .fvm-ban { padding: 18px 18px 20px; }
  .fvm-body { padding: 18px 16px 4px; }
  .fvm-foot { padding: 14px 16px 18px; }
  .fvm-foot .fvm-btn { flex: 1 1 auto; }
  .fvm-foot .fvm-btn--vio { margin-right: 0; flex-basis: 100%; }
  .fvm-rating { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
