/* ==========================================================================
   KCL-AI site font: Inter (self-hosted, rsms/inter v4.1 variable font, OFL).
   Added 2026-09-25. Loaded last in admin/base_site.html so it wins everywhere.

   - One variable file covers weights 100-900 (no faux bold) plus a real italic.
   - The old family names ("Outfit", "Open Sans") are mapped onto the same Inter
     files, so inline styles, per-page <style> blocks and Google Charts options
     that still name them render in Inter too, and nothing is fetched from
     Google Fonts for text any more (Material Icons still comes from Google).
   - ascent/descent overrides give Inter the same line box as Outfit (1.00 + 0.26 em),
     so every "line-height: normal" row keeps its old height and nothing moves
     vertically; Inter's larger x-height makes small text read bigger and clearer.
   - Numbers in KPIs, tables and charts use tabular figures so columns line up.
   ========================================================================== */
@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap;
  ascent-override: 100%; descent-override: 26%; line-gap-override: 0%;
  src: url("../fonts/inter/InterVariable.woff2?v=4.1") format("woff2"); }
@font-face { font-family: "Inter"; font-style: italic; font-weight: 100 900; font-display: swap;
  ascent-override: 100%; descent-override: 26%; line-gap-override: 0%;
  src: url("../fonts/inter/InterVariable-Italic.woff2?v=4.1") format("woff2"); }
@font-face { font-family: "Outfit"; font-style: normal; font-weight: 100 900; font-display: swap;
  ascent-override: 100%; descent-override: 26%; line-gap-override: 0%;
  src: url("../fonts/inter/InterVariable.woff2?v=4.1") format("woff2"); }
@font-face { font-family: "Outfit"; font-style: italic; font-weight: 100 900; font-display: swap;
  ascent-override: 100%; descent-override: 26%; line-gap-override: 0%;
  src: url("../fonts/inter/InterVariable-Italic.woff2?v=4.1") format("woff2"); }
@font-face { font-family: "Open Sans"; font-style: normal; font-weight: 100 900; font-display: swap;
  ascent-override: 100%; descent-override: 26%; line-gap-override: 0%;
  src: url("../fonts/inter/InterVariable.woff2?v=4.1") format("woff2"); }
@font-face { font-family: "Open Sans"; font-style: italic; font-weight: 100 900; font-display: swap;
  ascent-override: 100%; descent-override: 26%; line-gap-override: 0%;
  src: url("../fonts/inter/InterVariable-Italic.woff2?v=4.1") format("woff2"); }

:root { --kcl-font: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }

html, body { font-family: var(--kcl-font) !important; font-optical-sizing: auto; font-synthesis-weight: none; }

/* Everything else (nav, KPIs, grids, forms, buttons, selects, chart SVG text) except
   icon fonts and code. */
body *:not(.material-icons):not(.material-icons-outlined):not(.material-icons-round):not(.material-symbols-outlined):not([class^="fa-"]):not([class*=" fa-"]):not(.fa):not(.fas):not(.far):not(.fab):not(.glyphicon):not(.ui-icon):not(code):not(pre):not(kbd):not(samp):not(tt):not(.CodeMirror):not(.CodeMirror *) {
  font-family: var(--kcl-font) !important;
}
input, button, select, textarea, optgroup { font-family: var(--kcl-font) !important; }

/* Tabular figures for numbers that should line up. */
.quick-stats .number, .statistic .number, .label-overlay, table, #result_list, .results, td, th,
.kcl-crisp-chart text, .paginator, .count { font-variant-numeric: tabular-nums; }

/* Inter is ~7% wider than Outfit. A hair of negative tracking in data grids keeps
   almost all cells on the same number of lines as before (0.15px at 9.75px). */
#result_list td, #result_list th { letter-spacing: -0.025em; }

/* KPI captions are single lines in fixed-width cards; keep long ones from wrapping. */
.quick-stats .sub-title, .statistic .sub-title { letter-spacing: -0.01em; }
/* The suggestions dock was set in Open Sans (taller line box); keep its buttons' height. */
#kcl-suggest button { line-height: 1.34; }
/* Vertical AI Assistant / Training side tabs: trim their tracking so the rotated
   labels keep the same tab length as in Outfit. */
html body button#ewo-ai-tab#ewo-ai-tab { font-family: var(--kcl-font) !important; letter-spacing: 0.34px !important; }
html body button#ewo-train-tab#ewo-train-tab { font-family: var(--kcl-font) !important; letter-spacing: 1.23px !important; }
