/* ============================================================
   FantasyGolfBag — typography

   The site declared `--bs-font-sans-serif: "Public Sans", sans-serif`
   but Public Sans was never loaded: no @font-face, no font link, not
   self-hosted. Every page therefore rendered in the browser's default
   sans — Arial on Windows, Helvetica on macOS/iOS, Roboto on Android.

   Inter is self-hosted here instead. It was designed for small-size
   screen UI, which is what this app is: dense AG Grid tables of golf
   data. Measured against Arial at the same pixel size, Inter's
   x-height is ~5.8% larger, which is the single biggest legibility
   win available to a page full of 12px labels.

   Load order matters — this file must come AFTER theme.min.css so the
   --bs-font-sans-serif override wins.

   Inter is licensed under the SIL Open Font License 1.1.
   See assets/fonts/inter/OFL.txt.
   ============================================================ */

/* Variable font: one file covers weights 100-900, so there is no
   separate request per weight and no synthetic-bold fallback. */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/inter/inter-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Only fetched when a page actually contains these characters. Golf
   fields are full of them — Åberg, Højgaard, Bezuidenhout. */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/inter/inter-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
    --bs-font-sans-serif: 'Inter', system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --bs-body-font-family: var(--bs-font-sans-serif);
}

body {
    font-family: var(--bs-font-sans-serif);
    /* zero -> slashed zero, so 0 and O are never confusable in scores,
       salaries and player ids.
       cv05 -> lowercase l gains a tail, separating 1 / l / I.
       Both matter far more in a data product than they look. */
    font-feature-settings: 'zero' 1, 'cv05' 1;
    /* Inter is drawn on a slightly wide sidebearing for body copy; a
       hair of negative tracking keeps UI text tight without hurting
       legibility. */
    letter-spacing: -.006em;
}

/* Headings can afford tighter tracking than body text. */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    letter-spacing: -.018em;
}

/* ------------------------------------------------------------
   Tabular figures

   Inter ships proportional figures by default, which makes numeric
   COLUMNS ragged. Switching the data surfaces to tabular numerals
   gives the alignment a monospace font used to provide, without the
   second typeface — grids previously mixed Arial text with Consolas
   numbers in every row.
   ------------------------------------------------------------ */
.ag-cell,
.ag-header-cell,
table td,
table th,
.tabular-nums {
    font-variant-numeric: tabular-nums;
}

/* AG Grid's Quartz theme ships its own font stack; without this every
   grid on the site renders in a different typeface from the page. */
.ag-theme-quartz,
.ag-theme-quartz-dark {
    --ag-font-family: var(--bs-font-sans-serif);
}
