/* v2.4.1 – stable */
:root{--t:#0f172a;--mut:#667085;--b:#e6e8ec;--b2:#eef2f7;--card:#fff;--shadow:0 1px 2px rgba(15,23,42,.04),0 12px 28px rgba(15,23,42,.06)}
.fv-grid-wrap,.fv-hero,.fv-tabpanel{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,'Helvetica Neue',sans-serif;color:var(--t)}
.fv-hero{max-width:1200px;margin:0 auto;padding:24px 16px 8px}
.fv-hero-titlewrap{display:flex;align-items:center;gap:12px}
.fv-logo-img{width:44px;height:44px;border-radius:10px;object-fit:cover;background:#f1f5f9;display:block}
.fv-hero-title{font-weight:800;font-size:22px;margin:0}
.fv-hero-sub{color:#64748b;font-size:13px;margin-top:4px}
.fv-hero-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:12px}
.fv-hero-kpi{background:var(--card);border:1px solid var(--b);border-radius:16px;padding:16px;box-shadow:var(--shadow);position:relative}
.fv-hero-kpi.bordered::before{content:'';position:absolute;left:0;top:0;bottom:0;width:6px;border-radius:16px 0 0 16px;background:#d4d6dd}
.fv-hero-kpi.bordered.blue::before{background:#3b82f6}
.fv-hero-kpi.bordered.red::before{background:#ef4444}
.fv-hero-kpi.bordered.purple::before{background:#8b5cf6}
.fv-hero-kpi.bordered.orange::before{background:#f59e0b}
.fv-hero-kpi-label{color:#64748b;font-size:13px;margin-bottom:8px}
.fv-hero-kpi-value{font-size:26px;font-weight:800}
.fv-hero-kpi-value.neg{color:#ef4444}
.fv-hero-reco-pill{display:inline-flex;align-items:center;gap:8px;border-radius:10px;padding:8px 12px;font-weight:700;font-size:13px;border:1px solid var(--b2);background:#f6f7fb;color:#111827}
.fv-tabs{max-width:1200px;margin:12px auto 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--b);border-radius:12px;overflow:hidden}
.fv-tab{padding:12px 10px;background:#fff;border:0;border-right:1px solid var(--b);font-weight:700;color:#111827;cursor:pointer}
.fv-tab:last-child{border-right:0}
.fv-tab.is-active{background:#f3f5f8}
.fv-tabpanel{max-width:1200px;margin:0 auto;padding:12px 16px 24px;display:none}
.fv-tabpanel.is-active{display:block}
/* Grid cards */
.fv-grid{display:grid;grid-template-columns:repeat(var(--fv-cols,2),minmax(0,1fr));gap:22px}
.fv-card{background:#fff;border:1px solid var(--b2);border-radius:20px;box-shadow:var(--shadow);padding:18px 18px 14px}
.fv-card-h{display:flex;align-items:center;justify-content:space-between}
.fv-card-h .l{display:flex;align-items:center;gap:12px}
.fv-card-logo .fv-logo-img,.fv-card-logo .fv-logo-fallback{width:40px;height:40px;border-radius:12px;object-fit:cover;background:#f1f5f9;display:block}
.fv-card-title{font-size:20px;margin:0;font-weight:900}
.fv-card-rows.four{display:flex;flex-direction:column;gap:10px;margin:16px 0 14px}
.fv-card-rows .row{display:flex;align-items:center;justify-content:space-between}
.fv-card-rows .row .label{color:#475569;font-weight:700;font-size:13px}
.fv-card-rows .row .value{font-size:22px;font-weight:900}
.fv-card-rows .row .value.kpi.pos{color:#16a34a}
.fv-card-rows .row .value.kpi.neg{color:#dc2626}
.pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid var(--b2);font-weight:800;font-size:12px;background:#f1f5f9;color:#111827}
.pill.danger{background:#fee2e2;border-color:#fecaca;color:#b91c1c}
.pill.success{background:#dcfce7;border-color:#bbf7d0;color:#166534}
.pill.neutral{background:#e5e7eb;border-color:#d1d5db;color:#374151}
.fv-card-cta.full{display:block;text-align:center;text-decoration:none;border:1px solid var(--b2);background:#f8fafc;border-radius:12px;padding:12px;font-weight:800;color:#0b1220}
/* Tables */
.fv-es-table-scroll.ref-look,.fv-es-table-scroll.cf-matrix{overflow:auto;border:1px solid var(--b2);border-radius:12px;background:#fff;box-shadow:var(--shadow)}
.fv-es-table{width:100%;min-width:860px;border-collapse:separate;border-spacing:0}
.fv-es-table thead th{background:#fff;position:sticky;top:0;z-index:1;padding:14px 16px;text-align:left;border-bottom:2px solid var(--b2);font-size:16px;font-weight:800;color:#0b0f19}
.fv-es-table tbody td{padding:16px 16px;border-bottom:1px solid var(--b2);font-size:16px}
.fv-es-table tbody td.num{text-align:right;font-variant-numeric:tabular-nums}
.fv-es-table.ref-look tbody tr:nth-child(even){background:#f7f9fc}
/* CF matrix bands */
.fv-es-table.cf-matrix{min-width:1100px}
.fv-es-table.cf-matrix thead tr.section-band th{background:#fff;font-weight:800;text-align:left;border-bottom:0;padding:0}
.fv-es-table.cf-matrix thead tr.section-band .sec{text-align:center;font-size:15px;padding:7px 0;border-bottom:0}
.fv-es-table.cf-matrix thead tr.section-band .hist{background:#e8eef7;color:#0b1220}
.fv-es-table.cf-matrix thead tr.section-band .mean{background:#f2f5fa;color:#0b1220}
.fv-es-table.cf-matrix thead tr.section-band .proj{background:#e8eef7;color:#0b1220}
.fv-es-table.cf-matrix thead tr.year-band th{background:#f6f8fb;border-bottom:2px solid var(--b2);padding:10px 12px;font-weight:800}
.fv-es-table.cf-matrix tbody th{background:#fff;position:sticky;left:0;z-index:1;border-right:1px solid var(--b2);padding:10px 12px;text-align:left;font-weight:800}
.fv-es-table.cf-matrix tbody td.mean{background:#fafbfe}
.fv-es-table.cf-matrix.sleek tbody tr:nth-child(even){background:#fbfcfe}
@media (max-width:900px){.fv-grid{grid-template-columns:1fr} .fv-hero-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.fv-hero-cards{grid-template-columns:1fr}}

/* Recommendation pill variants for hero */
.fv-hero-reco-pill.success{background:#dcfce7;border-color:#bbf7d0;color:#166534}
.fv-hero-reco-pill.danger{background:#fee2e2;border-color:#fecaca;color:#b91c1c}
.fv-hero-reco-pill.neutral{background:#e5e7eb;border-color:#d1d5db;color:#374151}


/* v2.7.12+: Ensure 'Acheter' pill is green */
.fv-hero-reco-pill.success{background:#dcfce7!important;border-color:#bbf7d0!important;color:#166534!important}

/* v2.7.14: Locked premium cards for lite grid */
.fv-card.fv-card--locked{position:relative;opacity:.9}
.fv-card.fv-card--locked .fv-card-cta.locked{pointer-events:none;opacity:.8}
.fv-card.fv-card--locked a{pointer-events:none}


/* v2.7.16: Card KPI stats for grids */
.fv-card-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin:8px 0 10px}
.fv-card-stats .stat{display:flex;justify-content:space-between;gap:8px;font-size:12px;line-height:1.3}
.fv-card-stats .s-label{opacity:.7}
.fv-card-stats .s-val.neg{color:#b91c1c}
.fv-card-stats .s-val.pos{color:#166534}
.fv-card-stats .s-pill.pill{padding:2px 8px;border-radius:999px;border:1px solid var(--b2);background:#f8fafc}

/* v2.7.16: Premium ribbon refined with golden color */
.fv-card {
  position: relative;
}



/* Visually distinguish JS-added ribbons */
.fv-card .premium-ribbon[data-js-ribbon]{
  outline: 2px solid red !important;
}


/* Show premium ribbon for locked cards */
.fv-card.fv-card--locked .premium-ribbon {
  display: block !important;
  position: absolute;
  top: 10px;
  right: 10px;
  padding: 0.35rem 0.6rem;
  background: #d4af37;
  color: #fff;
  font-size: 0.75rem;
  line-height: 1;
  border-radius: 0.25rem;
  transform: rotate(6deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  z-index: 3;
}
.fv-card.fv-card--locked .fv-card-cta.locked{background:#f9fafb;border-color:#e5e7eb;color:#6b7280}


/* v2.7.18: sleek search input for grids */
.fv-grid-search-wrap{margin:0 0 12px}
.fv-grid-search{
  width:100%; appearance:none; padding:10px 12px; border:1px solid var(--b2);
  border-radius:12px; font-size:14px; line-height:1.4; background:#fff;
  box-shadow: inset 0 1px 0 rgba(0,0,0,.02);
}
.fv-grid-search:focus{
  outline:none; border-color:#d4af37; box-shadow:0 0 0 3px rgba(212,175,55,.15);
}

/* === FV Guest Grid Ribbon Styles (v2.7.23.5) === */
.fv-es-card-guest {
  position: relative;
}
.fv-ribbon{position:absolute;top:10px;right:10px;padding:.35rem .6rem;background:#222;color:#fff;font-size:.75rem;line-height:1;border-radius:.25rem;transform:rotate(6deg);box-shadow:0 2px 6px rgba(0,0,0,.15);z-index:3}
.fv-ribbon-inscrivez{background:#145CFD}
.fv-ribbon-premium{background:#E9204F}
.fv-btn{display:inline-block;margin-top:.5rem;padding:.5rem .75rem;border-radius:.375rem;text-decoration:none}
.fv-btn-inscription{background:#145CFD;color:#fff}
.fv-es-card-guest{position:relative;overflow:hidden}


/* v2.7.23.7: Align guest grid look with lite/base grid */
.fv-es-grid-guest{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;align-items:stretch}
.fv-es-card-guest{position:relative;border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:12px;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.fv-es-card-guest .fv-es-title{font-size:16px;line-height:1.3;margin:8px 0 0}
.fv-es-card-guest .fv-card-footer{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}

