/* =====================================================================
   TIPOGRAFÍA DE MARCA EN TODA LA PLATAFORMA
   Se carga LA ÚLTIMA a propósito: su trabajo es ganarle a las pilas que
   fijan otras hojas.

   Por qué hace falta: la fuente de marca (--fd-font → Outfit) estaba puesta
   pantalla por pantalla, así que bastaba con no acordarse en un sitio para
   que ahí saliera otra. Las tres fuentes del desorden eran:

     · body en tau.css        → 'Segoe UI', Tahoma, Geneva, Verdana
     · body en visor-un-tau.css → -apple-system, BlinkMacSystemFont…
     · el tema bootstrap5 de Syncfusion, que fija
       system-ui/-apple-system/Roboto en 62 reglas de componente — de ahí
       que los diálogos y avisos se vieran de otro producto.

   DOS COSAS QUE NO SE TOCAN, porque no son texto sino glifos:
     · "e-icons": los iconos de Syncfusion son una fuente. Si se les cambia
       la familia, desaparecen todos los iconos de la plataforma.
     · KaTeX: pinta con KaTeX_Main y compañía, y las declara en sus propias
       reglas sobre .katex, así que ganan solas. No se las toca.
   ===================================================================== */

body {
    font-family: var(--fd-font, 'Outfit', 'Plus Jakarta Sans', 'Segoe UI', sans-serif);
}

/* Los controles de formulario NO heredan la fuente por defecto del navegador:
   hay que decírselo. */
button,
input,
select,
textarea,
optgroup {
    font-family: inherit;
}

/* ── Syncfusion ──────────────────────────────────────────────────────
   Se listan las raíces de componente en vez de usar un comodín: un
   [class*="e-"] arrasaría también con los iconos. */
.e-control,
.e-btn,
.e-css.e-btn,
.e-dlg-container,
.e-dlg-header,
.e-dlg-header-content,
.e-dlg-content,
.e-footer-content,
.e-toast,
.e-toast-title,
.e-toast-content,
.e-tooltip-wrap,
.e-tooltip-wrap .e-tip-content,
.e-grid,
.e-grid .e-headercelldiv,
.e-input-group,
.e-input-group input,
.e-dropdownbase,
.e-ddl,
.e-list-item,
.e-menu-wrapper,
.e-tab .e-tab-header,
.e-calendar,
.e-checkbox-wrapper,
.e-radio + label,
.e-pager {
    font-family: var(--fd-font, 'Outfit', 'Plus Jakarta Sans', 'Segoe UI', sans-serif);
}

/* ── Syncfusion, segunda capa: los selectores COMPUESTOS ─────────────
   El bloque de arriba lista raíces de componente (una sola clase). El tema
   bootstrap5 además fija la fuente en selectores de dos y tres clases, que le
   ganan por especificidad y se quedaban con la suya.

   Así salió el texto de las opciones del tau con la tipografía vieja: se pinta
   dentro de un SfCheckBox, y el tema trae

       .e-checkbox-wrapper .e-label { font-family: system-ui, … }   → (0,0,2,0)

   contra el .e-checkbox-wrapper de arriba, que es (0,0,1,0). El enunciado y el
   diálogo se veían bien porque no pasan por ningún componente de Syncfusion.

   Los selectores se copian TAL CUAL del tema (24.2.9): misma especificidad y
   esta hoja carga después, así que gana sin necesidad de !important. Se
   incluyen solo los componentes que la plataforma usa de verdad —Dialog,
   Button, Grid, DropDownList, Toast, Tab, CheckBox, Card, Uploader, TextBox,
   Spinner, RadioButton, MultiSelect, Tooltip, Menu—; el tema trae 124 reglas
   de estas y meterlas todas sería ruido. Si algún día se usa otro componente y
   sale con otra fuente, el sitio donde mirar es este.
   -------------------------------------------------------------------- */
.e-checkbox-wrapper .e-label,
.e-css.e-checkbox-wrapper .e-label,
.e-radio + label .e-label,
.e-dropdownbase .e-list-item,
.e-dropdownbase .e-list-group-item,
.e-ddl.e-input-group .e-input-value,
.e-input-group.e-control-wrapper,
.e-input-group.e-disabled,
.e-input-group.e-control-wrapper.e-disabled,
.e-float-input.e-control-wrapper,
.e-float-input label.e-float-text,
.e-float-input.e-control-wrapper label.e-float-text,
.e-tooltip-wrap .e-tip-content,
.e-tab .e-tab-header .e-toolbar-item .e-tab-text,
.e-card .e-card-actions .e-card-btn,
.e-card .e-card-actions a,
.e-multi-select-wrapper .e-chips > .e-chipcontent,
.e-multi-select-wrapper .e-delim-values,
.e-multi-select-wrapper input[type=text],
.e-spinner-pane .e-spinner-inner .e-spin-label,
.e-grid .e-row .e-input-group .e-input.e-field,
.e-grid .e-row .e-input-focus .e-input.e-field,
.e-menu-wrapper .e-menu-header,
.e-menu-container .e-menu-header,
.e-contextmenu-wrapper ul.e-ul,
.e-contextmenu-container ul.e-ul,
.e-switch-wrapper .e-switch-on,
.e-switch-wrapper .e-switch-off,
.e-css.e-switch-wrapper .e-switch-on,
.e-css.e-switch-wrapper .e-switch-off,
.e-upload.e-control-wrapper,
.e-upload .e-file-select-wrap .e-btn,
.e-upload .e-file-select-wrap .e-file-drop,
.e-upload .e-upload-actions .e-btn,
.e-upload .e-upload-files .e-upload-file-list {
    font-family: var(--fd-font, 'Outfit', 'Plus Jakarta Sans', 'Segoe UI', sans-serif);
}

/* Blindaje de los iconos: si alguna regla de arriba los alcanzara por
   herencia, aquí se recuperan. */
.e-icons,
.e-icons::before,
[class^="e-icon"]::before,
[class*=" e-icon"]::before,
.e-btn .e-btn-icon::before {
    font-family: "e-icons" !important;
}

/* Bootstrap Icons, que también son una fuente. */
.bi::before,
[class^="bi-"]::before,
[class*=" bi-"]::before {
    font-family: "bootstrap-icons" !important;
}

/* ── Reglas concretas que se saltaban la pila de marca ───────────────
   Encontradas barriendo TODAS las hojas en busca de font-family. Iba
   arreglándolas de una en una según aparecían y así no se acaba nunca;
   estas son las que quedaban. Ganan porque esta hoja carga la última y
   se repite el mismo selector (misma especificidad, orden posterior).

   Se dejan a propósito:
     · los @font-face de fontan-design-system.css, que declaran Neulis Sans
     · .log-timestamp, monoespaciada aposta para alinear las horas del log
   -------------------------------------------------------------------- */
#pregunta,
.contenedorPrimerParrafoPregunta,
.contenedorTextoPregunta,
.tau-opcion,
.tau-opcion-multiple,
/* El texto de la opción va en este span, dentro del SfCheckBox: es el que el
   estudiante lee como "la respuesta". Faltaba en la lista. */
.tau-opcion-multiple-contenido,
.tau-arbol-titulo,
.cpe-grid-plan-estudios,
.progress-value,
.ana-cargando,
.log-viewer-container,
a,
.e-dialog,
.e-card .e-card-header .e-card-header-caption .e-card-header-title {
    font-family: var(--fd-font, 'Outfit', 'Plus Jakarta Sans', 'Segoe UI', sans-serif);
}
