/* HSL brand layer for the RCL: the self-hosted brand typefaces and the logo
   lockup rules. Colour lives in tokens.css and only there.

   THIS FILE NO LONGER DECLARES A PALETTE, deliberately. It used to re-pin all
   ten teal steps and all seven green steps to tints of the HSL CI Manual 2022
   (p.11) corporate blue #146D9A and green #94C11F. The product owner chose the
   design system's teal, so that overlay was reverted on 2026-08-04 — and once
   the values matched tokens.css they were a byte-for-byte restatement of it.

   A duplicate is not merely redundant here, it is backwards. hirms.css imports
   tokens.css and *then* this file, so the copy that used to sit below won the
   cascade: an edit to tokens.css — the design-system extract, the thing every
   comment calls the source of truth — would have been silently overridden by a
   stale twin seventeen lines long. Keep colour in one file.

   Doc 11's per-tenant branding pipeline is unaffected and this is still the
   shape it publishes: a theme is a variable overlay, never a component fork. A
   tenant overlay re-points brandable token slots from a layer above; what it
   must not do is ship a second copy of the defaults. */

:root {
    /* READ THE CASCADE BEFORE EDITING THIS LINE. hirms.css imports tokens.css
       and THEN this file, both at :root and both at the same specificity, so
       whatever is declared here BEATS tokens.css. That is exactly how the 2026
       rebrand could have shipped half-done: --f-ui was re-pinned here to Plus
       Jakarta Sans, so repainting tokens.css alone would have left every
       surface rendering in the old face while every token audit reported Inter.
       Nothing in CI catches it — both files define the token, so none is
       undefined and no raw hex appears. Only reading font-family off the
       rendered page catches it.

       Brand Book v2.0 / 2026 collapses three families to two: Inter carries
       display AND UI, JetBrains Mono carries data. --f-disp is aliased to
       --f-ui in tokens.css rather than deleted. This line now only pins the
       longer fallback chain, and must stay in step with tokens.css. */
    --f-ui: 'Inter', ui-sans-serif, system-ui, 'Segoe UI', Arial, sans-serif;
}

/* Self-hosted, not CDN-loaded: docs/12 §4 keeps egress closed, and a kiosk in
   degraded mode must still render in the brand typeface. `local()` was tried
   first and was the wrong answer — on a machine without the family installed it
   silently matches nothing and headings fall through to a system serif. Both
   faces are variable, so one weight axis covers the whole hierarchy rather than
   a file per weight. Licences in ../fonts/OFL-NOTICE.md.

   Two files, split latin / latin-ext exactly as the foundry ships them, each with
   its unicode-range so a browser fetches only what the page needs. The product is
   French-first with Portuguese provisioned (docs N2.2): latin covers é è à ç and
   the rest of French; latin-ext carries the eastern-European and extended forms.
   A single merged file would be one 107 KB download on a clinic tablet where most
   pages never render a character outside latin. */
@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-latin.woff2') format('woff2-variations'),
         url('../fonts/inter-latin.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
    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;
}

@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-latin-ext.woff2') format('woff2-variations'),
         url('../fonts/inter-latin-ext.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
    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;
}

/* JetBrains Mono. Monospace is load-bearing here rather than decorative: claim
   numbers, MSO numbers and CPT codes are read in columns and compared character
   by character, and a proportional fallback makes that materially harder. */
@font-face {
    font-family: 'JetBrains Mono';
    src: url('../fonts/jetbrains-mono-latin.woff2') format('woff2-variations'),
         url('../fonts/jetbrains-mono-latin.woff2') format('woff2');
    font-weight: 100 800;
    font-style: normal;
    font-display: swap;
    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;
}

@font-face {
    font-family: 'JetBrains Mono';
    src: url('../fonts/jetbrains-mono-latin-ext.woff2') format('woff2-variations'),
         url('../fonts/jetbrains-mono-latin-ext.woff2') format('woff2');
    font-weight: 100 800;
    font-style: normal;
    font-display: swap;
    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;
}

/* ── Logo lockup ───────────────────────────────────────────────────────────
   Clear space and no recolouring/rotation/cropping, per the manual's do-nots. */
.hsl-logo {
    display: block;
    height: 34px;
    width: auto;
    margin: 2px 0 var(--s2);
}

.hsl-logo-lg { height: 56px; }

.hsl-logo-wrap {
    display: flex;
    align-items: center;
    gap: var(--s3);
    padding: var(--s1) 0;
}

/* On the brand-blue kiosk header the mark sits on white for contrast, which the
   manual's acceptable-combinations page requires. */
.hsl-logo-on-brand {
    background: #fff;
    border-radius: var(--r-md);
    padding: 6px var(--s2);
}
