/*!
 * KFF Font Awesome subset (perf) — replaces all.min.css (102.6KB) +
 * v4-shims.min.css (27.6KB) = ~130.2KB of CSS covering ~2000 icons, of which
 * the frontend (views/** + modules/**) uses 45 unique glyphs.
 *
 * Inventory: re-verified 2026-07-01 by grepping every `fa-[a-z0-9-]+` token
 * across views/**, modules/** and web/js/*.js (raw class="" AND PHP
 * 'class' => '...' array syntax) — a superset of the 48-class list in
 * docs/fa-classes.json / docs/fa-migration-plan.md (that doc is from
 * 2025-06-21 and predates some template changes, e.g. fa-youtube-play was
 * already renamed to fa-youtube). NO template class names were changed to
 * build this file (v4-compat: legacy bare names like `fa fa-search`,
 * `fa fa-edit`, `fa fa-times`, and the four `-o` suffixed regular icons are
 * mapped below exactly as the templates already use them).
 *
 * Fonts: REAL glyph-level subsetting via fontTools
 *   python3 -m fontTools.subset <src>.ttf --unicodes=... --flavor=woff2
 * — not just a CSS trim. web/fonts/font-awesome/webfonts/fa-*-kff-subset.woff2
 * contain ONLY the codepoints referenced below (32 solid + 4 regular + 11
 * brands). Combined subset font size ~6KB vs ~300KB for the 3 full webfonts.
 * fa-google-plus (\f2b3) has had NO glyph in any FA6 font since Google+ shut
 * down — it already renders blank in production with the full font today;
 * unchanged here (content-only decision, out of scope for this perf change).
 *
 * Rollback: fonts/font-awesome/css/all.min.css + v4-shims.min.css are left
 * on disk untouched — revert by swapping the css entries back in
 * assets/AppAsset.php.
 */
@font-face {
  font-family: "Font Awesome 6 Free";
  font-style: normal;
  font-weight: 900;
  font-display: block;
  src: url("../webfonts/fa-solid-900-kff-subset.woff2") format("woff2");
}
@font-face {
  font-family: "Font Awesome 6 Free";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("../webfonts/fa-regular-400-kff-subset.woff2") format("woff2");
}
@font-face {
  font-family: "Font Awesome 6 Brands";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("../webfonts/fa-brands-400-kff-subset.woff2") format("woff2");
}

/* Base structural rules (behaviour mirrors all.min.css for the classes we use) */
.fa,
.fas,
.far,
.fab,
.fa-brands {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  line-height: 1;
  text-rendering: auto;
}
.fa,
.fas,
.far {
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
}
.fab,
.fa-brands {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa-2x { font-size: 2em; }
.fa-lg { font-size: 1.25em; line-height: .05em; vertical-align: -.075em; }

/* Solid icons (fas / bare fa) — content codes extracted verbatim from the
   shipped all.min.css, so glyph mapping is byte-identical to production. */
.fa-plus:before { content: "\2b"; }
.fa-trash:before { content: "\f1f8"; }
.fa-edit:before { content: "\f044"; }
.fa-upload:before { content: "\f093"; }
.fa-times:before { content: "\f00d"; }
.fa-eye:before { content: "\f06e"; }
.fa-download:before { content: "\f019"; }
.fa-chevron-down:before { content: "\f078"; }
.fa-users:before { content: "\f0c0"; }
.fa-certificate:before { content: "\f0a3"; }
.fa-book:before { content: "\f02d"; }
.fa-chart-line:before { content: "\f201"; }
.fa-angle-left:before { content: "\f104"; }
.fa-angle-right:before { content: "\f105"; }
.fa-user-tie:before { content: "\f508"; }
.fa-user-graduate:before { content: "\f501"; }
.fa-user-friends:before { content: "\f500"; }
.fa-chalkboard-teacher:before { content: "\f51c"; }
.fa-arrow-right:before { content: "\f061"; }
.fa-arrow-left:before { content: "\f060"; }
.fa-folder:before { content: "\f07b"; }
.fa-archive:before { content: "\f187"; }
.fa-search:before { content: "\f002"; }
.fa-language:before { content: "\f1ab"; }
.fa-folder-open:before { content: "\f07c"; }
.fa-file:before { content: "\f15b"; }
.fa-caret-down:before { content: "\f0d7"; }
.fa-calendar:before { content: "\f133"; }
.fa-bars:before { content: "\f0c9"; }
.fa-angle-up:before { content: "\f106"; }
.fa-check-circle:before { content: "\f058"; }
.fa-google-plus:before { content: "\f2b3"; } /* no glyph in any FA6 font — see note above */

/* Legacy "-o" suffixed regular-weight icons (need the 400-weight font).
   Templates use these with the bare "fa" class, e.g. class="fa fa-clock-o". */
.fa.fa-lightbulb-o { font-weight: 400; }
.fa.fa-lightbulb-o:before { content: "\f0eb"; }
.fa.fa-clock-o { font-weight: 400; }
.fa.fa-clock-o:before { content: "\f017"; }
.fa.fa-file-word-o { font-weight: 400; }
.fa.fa-file-word-o:before { content: "\f1c2"; }
.fa.fa-file-excel-o { font-weight: 400; }
.fa.fa-file-excel-o:before { content: "\f1c3"; }

/* Brand icons (always used with the fa-brands prefix in templates) */
.fa-whatsapp:before { content: "\f232"; }
.fa-linkedin:before { content: "\f08c"; }
.fa-facebook:before { content: "\f09a"; }
.fa-instagram:before { content: "\f16d"; }
.fa-threads:before { content: "\e618"; }
.fa-tiktok:before { content: "\e07b"; }
.fa-vk:before { content: "\f189"; }
.fa-x-twitter:before { content: "\e61b"; }
.fa-youtube:before { content: "\f167"; }
.fa-telegram:before { content: "\f2c6"; }
.fa-twitter:before { content: "\f099"; }
