/* ═══════════════════════════════════════════════════════════════
   VISUAL 3 · LEGIBILIDAD (#31, #39)
   Se carga la última para poder poner un suelo al tamaño de letra:
   texto informativo ≥ 12 px y etiquetas en mayúsculas ≥ 11 px.
   Excepción: las insignias «NUEVO»/«PVP» del menú (10 px).
   ═══════════════════════════════════════════════════════════════ */

/* Clases de tamaño arbitrario por debajo de 12 px */
.text-\[5px\], .text-\[6px\], .text-\[7px\], .text-\[8px\], .text-\[8\.5px\],
.text-\[9px\], .text-\[9\.5px\], .text-\[10px\], .text-\[10\.5px\], .text-\[11px\] {
  font-size: 12px !important;
}
.uppercase:is(.text-\[5px\], .text-\[6px\], .text-\[7px\], .text-\[8px\], .text-\[8\.5px\],
.text-\[9px\], .text-\[9\.5px\], .text-\[10px\], .text-\[10\.5px\], .text-\[11px\]) {
  font-size: 11px !important;
}

/* Menú lateral y barra inferior */
#mainSidebar .nav-section-label { font-size: 11px !important; }
#mainSidebar .nav-chip { font-size: 10px !important; }
.mob-nav-btn span { font-size: 11px !important; }
.bf-sidebar__streak-week { font-size: 11px !important; }

/* Acceso y biblioteca */
.bf-login-brand-subtitle { font-size: 11px !important; }
.bf-library-overview__stats dt { font-size: 11px !important; }

/* Estadísticas */
.bf-stats-axis, .bf-stats-delta, .bf-stats-legend, .bf-stats-today-kicker, .bf-stats-eyebrow,
[class*="bf-stats-"] small, .bf-leader-row small, .bf-leader-name, .bf-leader-head span {
  font-size: 11px !important;
}
.bf-stats-kpi-label, .bf-stats-kpi-sub, .bf-stats-foot, .bf-stats-session-meta, .bf-stats-session-title,
.bf-stats-session-score, .bf-stats-source, .bf-stats-updated, .bf-stats-simple-note, .bf-stats-empty-mini,
.bf-stats-advice p, .bf-stats-advice button, .bf-stats-today-head p, .bf-stats-today-head button,
.bf-stats-today-foot, .bf-stats-panel-title small, .bf-stats-simple-review span,
.bf-stats-range button, .bf-stats-refresh, .bf-leader-participants, .bf-leader-note {
  font-size: 12px !important;
}

/* Exámenes */
.exam-summary-pill, .exam-result-line, .exam-result-line * { font-size: 12px !important; }
.exam-explorer-eyebrow, .exam-filter-grid span, .exam-kpi span { font-size: 11px !important; }

/* Cabecera móvil (#39): el título usa todo el hueco libre y solo se corta
   con «…» cuando de verdad no cabe (antes tenía un máximo fijo de 76–112 px). */
@media (max-width: 767px) {
  #appMain > header > div:first-child { flex: 1 1 auto; min-width: 0; }
  #appMain > header > div:first-child > div:last-child { flex: 1 1 auto; min-width: 0; }
  #appMain > header > div:last-child { flex: 0 0 auto; }
  #crumbTitle { max-width: none !important; }
}

/* Tamaños escritos en línea (style="font-size:10px") en plantillas de JS */
:is([style*="font-size:8px"], [style*="font-size: 8px"], [style*="font-size:9px"], [style*="font-size: 9px"],
[style*="font-size:10px"], [style*="font-size: 10px"], [style*="font-size:11px"], [style*="font-size: 11px"]) {
  font-size: 12px !important;
}
:is([style*="font-size:8px"], [style*="font-size: 8px"], [style*="font-size:9px"], [style*="font-size: 9px"],
[style*="font-size:10px"], [style*="font-size: 10px"], [style*="font-size:11px"], [style*="font-size: 11px"]):is([style*="uppercase"], .uppercase) {
  font-size: 11px !important;
}

/* Casos sueltos */
.bf-sidebar__streak-week p, .bf-leader-name *, .bf-boot__phases b, .bf-boot__status-meta span { font-size: 11px !important; }
#timedCompositionLegend span { font-size: 12px !important; }
