/* Visuels #263 (lots C, F, G) : chiffres avec picto, mini-carte, frise, échelle de seuils, plafonds. Jetons du socle uniquement. */
.vf-bloc { margin: 0 0 var(--s-6, 32px); }
.vf-kpi { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-2, 8px); margin: 0 0 var(--s-4, 16px); padding: 0; list-style: none; }
@media (min-width: 768px) { .vf-kpi { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: var(--s-3, 12px); } }
.vf-kpi__item, .vf-plafond { background: var(--c-surface, #fff); border: 1px solid var(--c-border, #eaeaea); border-radius: var(--r-lg, 8px); padding: var(--s-3, 12px); min-width: 0; }
.vf-kpi__pic { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: var(--r-full, 9999px); background: var(--c-brand-soft, #E6EDF3); color: var(--c-brand-soft-ink, #2A4157); }
.vf-kpi__valeur { margin: var(--s-2, 8px) 0 0; font: var(--t-chiffre, 800 26px/32px sans-serif); font-size: clamp(22px, 6vw, 32px); color: var(--c-text, #253342); overflow-wrap: anywhere; }
.vf-kpi__unite { font-size: 16px; font-weight: 600; }
.vf-kpi__libelle { margin: 2px 0 0; font: var(--t-compact, 400 14px/20px sans-serif); color: var(--c-text-body, #2d3c4d); }
.vf-kpi__source { margin: var(--s-1, 4px) 0 0; font: var(--t-micro, 600 12px/16px sans-serif); color: var(--c-text-muted, #666); font-weight: 400; }
.vf-kpi__source a { color: inherit; }
.vf-cartefrise { display: grid; gap: var(--s-4, 16px); align-items: start; margin: 0 0 var(--s-4, 16px); }
@media (min-width: 768px) { .vf-cartefrise--2 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); } }
.vf-carte { margin: 0; max-width: 320px; }
.vf-carte svg { display: block; width: 100%; height: auto; }
.vf-carte__fond { fill: var(--c-brand-soft, #E6EDF3); stroke: var(--c-brand, #3D5A73); stroke-width: 1.5; stroke-linejoin: round; }
.vf-carte__pt { fill: var(--c-danger-fill, #b91c1c); stroke: var(--c-surface, #fff); stroke-width: 1.5; }
.vf-frise { margin: 0; }
/* échelle de seuils */
.vf-echelle__groupe { margin: 0 0 var(--s-4, 16px); }
.vf-echelle__titre { margin: 0 0 var(--s-2, 8px); font: var(--t-corps, 400 16px/24px sans-serif); font-weight: 700; }
.vf-echelle__liste { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--s-2, 8px); }
.vf-echelle__liste li { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; padding: var(--s-2, 8px) 0; border-bottom: 1px solid var(--c-border, #eaeaea); }
@media (min-width: 768px) { .vf-echelle__liste li { grid-template-columns: minmax(0, 5fr) minmax(0, 3fr) minmax(0, 3fr); align-items: center; gap: var(--s-3, 12px); } }
.vf-echelle__lib { font: var(--t-compact, 400 14px/20px sans-serif); color: var(--c-text-body, #2d3c4d); }
.vf-echelle__piste { display: block; height: 10px; border-radius: var(--r-full, 9999px); background: var(--viz-vide, #e2e8f0); overflow: hidden; }
.vf-echelle__barre { display: block; height: 100%; border-radius: var(--r-full, 9999px); background: var(--c-brand, #3D5A73); }
.vf-echelle__val { font-weight: 700; color: var(--c-text, #253342); overflow-wrap: anywhere; }
.vf-echelle__lien { font-weight: 400; font-size: 13px; margin-left: 6px; }
.vf-echelle__note { margin: var(--s-2, 8px) 0 0; font: var(--t-micro, 600 12px/16px sans-serif); font-weight: 400; color: var(--c-text-muted, #666); }
/* cartes de plafonds */
.vf-plafonds { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-3, 12px); margin: 0 0 var(--s-4, 16px); padding: 0; list-style: none; }
@media (min-width: 640px) { .vf-plafonds { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .vf-plafonds { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.vf-plafond__montant { margin: var(--s-2, 8px) 0 0; font: var(--t-chiffre, 800 26px/32px sans-serif); font-size: clamp(22px, 5vw, 30px); color: var(--c-brand-hover, #2E465B); overflow-wrap: anywhere; }
.vf-plafond__titre { margin: 2px 0 0; font: var(--t-corps, 400 16px/24px sans-serif); font-weight: 700; }
.vf-plafond__qui, .vf-plafond__cond { margin: 4px 0 0; font: var(--t-compact, 400 14px/20px sans-serif); color: var(--c-text-body, #2d3c4d); }
.vf-plafond__pied { margin: var(--s-2, 8px) 0 0; font: var(--t-micro, 600 12px/16px sans-serif); font-weight: 400; color: var(--c-text-muted, #666); }
.vf-graphes { display: grid; gap: var(--s-4, 16px); grid-template-columns: minmax(0, 1fr); margin: 0 0 var(--s-4, 16px); }
@media (min-width: 900px) { .vf-graphes--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.vf-graphes > * { min-width: 0; }
/* photo de campus */
.vf-photo { margin: 0 0 var(--s-4, 16px); max-width: 640px; }
.vf-photo img { display: block; width: 100%; height: auto; border-radius: var(--r-lg, 8px); }
/* cartes d'interlocuteurs et d'établissements */
.vf-cartes { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-3, 12px); margin: 0 0 var(--s-4, 16px); padding: 0; list-style: none; }
@media (min-width: 640px) { .vf-cartes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .vf-cartes { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.vf-carte-org { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: var(--s-3, 12px); align-items: start; background: var(--c-surface, #fff); border: 1px solid var(--c-border, #eaeaea); border-radius: var(--r-lg, 8px); padding: var(--s-3, 12px); min-width: 0; }
.vf-carte-org__logo { width: 56px; height: 56px; border-radius: var(--r-md, 6px); background: var(--c-brand-soft, #E6EDF3); color: var(--c-brand-soft-ink, #2A4157); display: flex; align-items: center; justify-content: center; font: 700 15px/1 var(--font-sans, sans-serif); overflow: hidden; }
.vf-carte-org__logo img { width: 100%; height: 100%; object-fit: contain; background: #fff; }
.vf-carte-org__nom { margin: 0; font: var(--t-corps, 400 16px/24px sans-serif); font-weight: 700; overflow-wrap: anywhere; }
.vf-carte-org__ligne { margin: 4px 0 0; font: var(--t-compact, 400 14px/20px sans-serif); color: var(--c-text-body, #2d3c4d); display: flex; gap: 6px; align-items: flex-start; overflow-wrap: anywhere; min-width: 0; }
.vf-carte-org__ligne .ui-icon { flex: none; margin-top: 2px; }
.vf-compteur { display: grid; gap: var(--s-2, 8px); margin: 0 0 var(--s-4, 16px); padding: 0; list-style: none; }
.vf-compteur li { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: var(--s-3, 12px); align-items: center; border-bottom: 1px solid var(--c-border, #eaeaea); padding: var(--s-2, 8px) 0; }
.vf-compteur__nom { overflow-wrap: anywhere; min-width: 0; }
.vf-compteur__n { font-weight: 800; font-size: 22px; color: var(--c-brand-hover, #2E465B); }
/* animation : portée par un autre lot ; les valeurs finales sont dans le HTML */
.vf-h3 { margin: 0 0 var(--s-2, 8px); font: var(--t-corps, 400 16px/24px sans-serif); font-weight: 700; }
.vf-logo { margin: 0; display: grid; gap: 4px; justify-items: center; align-content: start; }
.vf-logo img { display: block; width: auto; height: auto; max-width: 140px; max-height: 80px; background: #fff; border: 1px solid var(--c-border, #eaeaea); border-radius: var(--r-md, 6px); padding: 6px; }
.vf-logo figcaption { font: var(--t-micro, 600 12px/16px sans-serif); font-weight: 400; color: var(--c-text-muted, #666); text-align: center; max-width: 160px; overflow-wrap: anywhere; }
.vf-logo figcaption a { color: inherit; }
.vf-h2ico { vertical-align: -4px; margin-right: 8px; color: var(--c-brand, #3D5A73); }
.vf-encart { margin: 0 0 var(--s-3, 16px); padding: var(--s-3, 16px); background: var(--c-brand-soft, #E6EDF3); border-left: 4px solid var(--c-brand, #3D5A73); border-radius: var(--r-md, 6px); }
.vf-encart ul { margin: 0; }
.vf-ico { display: inline-flex; gap: 4px; align-items: flex-start; }
.vf-ico .ui-icon { flex: none; margin-top: 2px; color: var(--c-text-muted, #666); }
.vf-monogramme { font: 700 15px/1 var(--font-sans, sans-serif); color: var(--c-brand-soft-ink, #2A4157); background: var(--c-brand-soft, #E6EDF3); letter-spacing: .02em; }
