/* ============================================================
   icons.css — Custom Font Awesome subset (44 used icons only)
   Replaces CDN all.min.css (19 KB → ~2 KB)
   Font files served locally from /fonts/
   ============================================================ */

/* -- Font Faces -------------------------------------------- */
@font-face {
  font-family: "Font Awesome 5 Free";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/fonts/fa-solid-900.woff2") format("woff2");
}

@font-face {
  font-family: "Font Awesome 5 Brands";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/fa-brands-400.woff2") format("woff2");
}

/* -- Base classes ------------------------------------------ */
.fas,
.far,
.fa {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1;
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
}

.fab {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1;
  font-family: "Font Awesome 5 Brands";
  font-weight: 400;
}

/* -- Spin animation ---------------------------------------- */
@keyframes fa-spin {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.fa-spin {
  animation: fa-spin 2s infinite linear;
}

.fa-pulse {
  animation: fa-spin 1s infinite steps(8);
}

/* -- Icon glyphs (solid / regular) ------------------------- */
.fa-home::before             { content: "\f015"; }
.fa-arrow-left::before       { content: "\f060"; }
.fa-arrow-right::before      { content: "\f061"; }
.fa-check::before            { content: "\f00c"; }
.fa-times::before            { content: "\f00d"; }
.fa-cog::before              { content: "\f013"; }
.fa-lock::before             { content: "\f023"; }
.fa-calendar::before         { content: "\f073"; }
.fa-edit::before             { content: "\f044"; }
.fa-trash::before            { content: "\f1f8"; }
.fa-trash-alt::before        { content: "\f2ed"; }
.fa-download::before         { content: "\f019"; }
.fa-save::before             { content: "\f0c7"; }
.fa-plus::before             { content: "\f067"; }
.fa-plus-circle::before      { content: "\f055"; }
.fa-sync::before             { content: "\f021"; }
.fa-sync-alt::before         { content: "\f2f1"; }
.fa-redo-alt::before         { content: "\f2f9"; }
.fa-spinner::before          { content: "\f110"; }
.fa-sun::before              { content: "\f185"; }
.fa-moon::before             { content: "\f186"; }
.fa-check-circle::before     { content: "\f058"; }
.fa-exclamation-circle::before { content: "\f06a"; }
.fa-exclamation-triangle::before { content: "\f071"; }
.fa-fire::before             { content: "\f06d"; }
.fa-bolt::before             { content: "\f0e7"; }
.fa-chart-line::before       { content: "\f201"; }
.fa-graduation-cap::before   { content: "\f19d"; }
.fa-crown::before            { content: "\f521"; }
.fa-award::before            { content: "\f559"; }
.fa-trophy::before           { content: "\f091"; }
.fa-coins::before            { content: "\f51e"; }
.fa-chevron-down::before     { content: "\f078"; }
.fa-folder-open::before      { content: "\f07c"; }
.fa-link::before             { content: "\f0c1"; }
.fa-file-alt::before         { content: "\f15c"; }
.fa-file-pdf::before         { content: "\f1c1"; }
.fa-file-powerpoint::before  { content: "\f1c4"; }
.fa-file-import::before      { content: "\f56f"; }
.fa-file-upload::before      { content: "\f574"; }
.fa-pen::before              { content: "\f304"; }
.fa-sign-out-alt::before     { content: "\f2f5"; }
.fa-shield-alt::before       { content: "\f3ed"; }
.fa-user-cog::before         { content: "\f4fe"; }
.fa-users::before            { content: "\f0c0"; }
.fa-clock::before            { content: "\f017"; }

/* -- Brand icon ------------------------------------------- */
.fa-google::before           { content: "\f1a0"; }
