/*
    Render all classic Solid / Regular Font Awesome icons as the SHARP family,
    app-wide, with no per-icon markup changes.

    How it works (verified against FA7 fontawesome.css): an icon's font-family
    resolves from the --fa-family custom property, and the style classes
    .fas / .fa-solid / .far / .fa-regular set
        --fa-family: var(--fa-family-classic);
    with weight carried by --fa-style (900 solid / 400 regular). Redefining the
    --fa-family-classic TOKEN at :root therefore re-points every classic
    Solid/Regular icon to Sharp while preserving each icon's weight — no
    !important per selector, no markup edits.

    Brands use --fa-family-brands and are intentionally NOT touched (there is no
    Sharp Brands family). --fa-family-sharp is defined by sharp-solid.min.css /
    sharp-regular.min.css (linked in _FontAwesomeHead.cshtml, which also load the
    Sharp @font-face); the literal is a version-safe fallback. This file must
    load AFTER all.min.css so this :root declaration wins the cascade.
*/
:root {
    --fa-family-classic: var(--fa-family-sharp, "Font Awesome 7 Sharp") !important;
}

/*
    Compatibility aliases for legacy hardcoded icon-font family names.

    Some CSS selects glyphs by raw codepoint (content: "\fXXX") with a hardcoded
    font-family rather than an .fa* class, so the --fa-family-classic swap above
    does NOT reach them. Those families are no longer shipped by the FA7 self-host
    (the kit + v4-shims are gone), so the glyphs would render as blank/tofu boxes:
      - "FontAwesome"        (v4)  — DataTables responsive +/- controls (site.css / Site-dark.css)
      - "Font Awesome 6 Pro" (v6)  — DataTables responsive +/- controls (site.css)
      - "Font Awesome 5 Free/Pro"  — SB Admin 2 sidebar/card carets + sidebar toggle
                                      (sb-admin-2.css / sb-admin-2-dark.css)

    Map each to the Sharp Solid face so those pseudo-elements render Sharp (every
    codepoint used — \f0fe square-plus, \f146 square-minus, \f104/\f105/\f107
    angle-left/right/down — exists in Sharp Solid). The wide font-weight range lets
    rules that omit font-weight still match the static 900 file. Self-contained
    compatibility shim — drops out naturally once the legacy theme CSS (sb-admin-2)
    and the DataTables-responsive overrides are removed/modernized.
*/
@font-face {
    font-family: "FontAwesome";
    font-style: normal;
    font-weight: 100 900;
    font-display: block;
    src: url("../lib/fontawesome/webfonts/fa-sharp-solid-900.woff2") format("woff2");
}
@font-face {
    font-family: "Font Awesome 6 Pro";
    font-style: normal;
    font-weight: 100 900;
    font-display: block;
    src: url("../lib/fontawesome/webfonts/fa-sharp-solid-900.woff2") format("woff2");
}
@font-face {
    font-family: "Font Awesome 5 Free";
    font-style: normal;
    font-weight: 100 900;
    font-display: block;
    src: url("../lib/fontawesome/webfonts/fa-sharp-solid-900.woff2") format("woff2");
}
@font-face {
    font-family: "Font Awesome 5 Pro";
    font-style: normal;
    font-weight: 100 900;
    font-display: block;
    src: url("../lib/fontawesome/webfonts/fa-sharp-solid-900.woff2") format("woff2");
}
