/* ============================================================
   theme.css — SINGLE SOURCE OF TRUTH for typography & text colour
   ------------------------------------------------------------
   Loaded FIRST (before portal.css and before each standalone
   page's inline <style>) from:
     - Views/Shared/_Layout.cshtml          (whole portal)
     - Views/Account/*.cshtml               (standalone login pages)

   Change a value here and it updates everywhere that uses the
   var(). To make the whole app larger, bump --fs-base (and the
   scale below). To change the typeface, edit --font-family-base
   in ONE place instead of the ~7 it used to live in.
   ============================================================ */
:root {
    /* ── Font families ───────────────────────────────────── */
    --font-family-base: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
    --font-family-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, 'Courier New', monospace;

    /* ── Type scale (px) ─────────────────────────────────────
       Bumped one step up from the old 13px base to address the
       "text too small" feedback. --fs-base is the app default. */
    --fs-2xs:  11px;   /* badges, tiny meta            (was 10)   */
    --fs-xs:   12px;   /* dense table cells, captions  (was 11)   */
    --fs-sm:   13px;   /* secondary text              (was 12)   */
    --fs-base: 14px;   /* body default                (was 13)   */
    --fs-md:   15px;   /* emphasised body                        */
    --fs-lg:   16px;   /* sub-headings, card values   (was 15)   */
    --fs-xl:   18px;   /* section titles                         */
    --fs-2xl:  20px;   /* page headings                          */
    --fs-3xl:  24px;   /* big numbers / hero values              */

    /* ── Weights ─────────────────────────────────────────── */
    --fw-normal:   400;
    --fw-medium:   500;
    --fw-semibold: 600;
    --fw-bold:     700;

    /* ── Text colours — one step DARKER than before so copy
       reads crisp, not "dull/grey". Map old → new:
         #374151 → --text-base   (#1f2937)
         #6b7280 → --text-muted  (#4b5563)
         #9ca3af → --text-faint  (#6b7280)                     */
    --text-strong: #111827;   /* headings, key values   */
    --text-base:   #1f2937;   /* default body text      */
    --text-muted:  #4b5563;   /* secondary / labels     */
    --text-faint:  #6b7280;   /* de-emphasised / hints  */

    /* Brand accent (kept as a token for future centralisation) */
    --color-accent: #e84118;
}

/* ── Global rendering: crisper, smoother text ─────────────────
   Addresses the "not smooth" feedback. Applied to body + every
   form control (which don't inherit smoothing in all engines). */
html {
    font-size: 100%;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body,
button,
input,
select,
textarea {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    font-family: var(--font-family-base);
}
