/* FontAwesome 7.0 - Self-hosted subset 
   Only includes Solid and Brands icons to reduce file size 
   
   To add more icons:
   1. Find the icon at https://fontawesome.com/icons
   2. Get the Unicode value (e.g., f123)
   3. Add a line like: .fa-icon-name:before { content: "\f123"; }
   
   Font files available:
   - fa-solid-900.woff2 (111KB) - Most common icons
   - fa-brands-400.woff2 (99KB) - Brand icons
   - fa-regular-400.woff2 (19KB) - Not loaded by default, uncomment @font-face to use
*/

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

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

/* Base styles */
.fas,
.fa-solid {
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  font-style: normal;
  display: inline-block;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.fab,
.fa-brands {
  font-family: 'Font Awesome 6 Brands';
  font-weight: 400;
  font-style: normal;
  display: inline-block;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Icon sizes */
.fa-2xs { font-size: 0.625em; line-height: 0.1em; vertical-align: 0.225em; }
.fa-xs { font-size: 0.75em; line-height: 0.08333em; vertical-align: 0.125em; }
.fa-sm { font-size: 0.875em; line-height: 0.07143em; vertical-align: 0.05357em; }
.fa-lg { font-size: 1.25em; line-height: 0.05em; vertical-align: -0.075em; }
.fa-xl { font-size: 1.5em; line-height: 0.04167em; vertical-align: -0.125em; }
.fa-2xl { font-size: 2em; line-height: 0.03125em; vertical-align: -0.1875em; }

/* Common icons - Add Unicode values for icons you use */
.fa-arrow-right:before { content: "\f061"; }
.fa-arrow-up:before { content: "\f062"; }
.fa-atom:before { content: "\f5d2"; }
.fa-bolt:before { content: "\f0e7"; }
.fa-book:before { content: "\f02d"; }
.fa-book-open:before { content: "\f518"; }
.fa-brain:before { content: "\f5dc"; }
.fa-briefcase:before { content: "\f0b1"; }
.fa-calculator:before { content: "\f1ec"; }
.fa-camera:before { content: "\f030"; }
.fa-chalkboard-teacher:before { content: "\f51c"; }
.fa-chart-bar:before { content: "\f080"; }
.fa-chart-line:before { content: "\f201"; }
.fa-check:before { content: "\f00c"; }
.fa-check-circle:before { content: "\f058"; }
.fa-clipboard-check:before { content: "\f46c"; }
.fa-clock:before { content: "\f017"; }
.fa-cogs:before { content: "\f085"; }
.fa-comments:before { content: "\f086"; }
.fa-compass:before { content: "\f14e"; }
.fa-envelope:before { content: "\f0e0"; }
.fa-external-link-alt:before { content: "\f35d"; }
.fa-flag:before { content: "\f024"; }
.fa-flask:before { content: "\f0c3"; }
.fa-globe-africa:before { content: "\f57c"; }
.fa-graduation-cap:before { content: "\f19d"; }
.fa-headset:before { content: "\f590"; }
.fa-heart:before { content: "\f004"; }
.fa-hourglass-half:before { content: "\f252"; }
.fa-language:before { content: "\f1ab"; }
.fa-laptop-code:before { content: "\f5fc"; }
.fa-lightbulb:before { content: "\f0eb"; }
.fa-microscope:before { content: "\f610"; }
.fa-money-bill-wave:before { content: "\f53a"; }
.fa-paper-plane:before { content: "\f1d8"; }
.fa-pen-fancy:before { content: "\f5ac"; }
.fa-piggy-bank:before { content: "\f4d3"; }
.fa-project-diagram:before { content: "\f542"; }
.fa-question-circle:before { content: "\f059"; }
.fa-quote-left:before { content: "\f10d"; }
.fa-robot:before { content: "\f544"; }
.fa-rocket:before { content: "\f135"; }
.fa-running:before { content: "\f70c"; }
.fa-school:before { content: "\f549"; }
.fa-shield-alt:before { content: "\f3ed"; }
.fa-sign-in-alt:before { content: "\f2f6"; }
.fa-smile:before { content: "\f118"; }
.fa-sparkles:before { content: "\f890"; }
.fa-square-root-alt:before { content: "\f698"; }
.fa-star:before { content: "\f005"; }
.fa-superscript:before { content: "\f12b"; }
.fa-sync:before { content: "\f021"; }
.fa-tools:before { content: "\f7d9"; }
.fa-trophy:before { content: "\f091"; }
.fa-user:before { content: "\f007"; }
.fa-user-circle:before { content: "\f2bd"; }
.fa-user-cog:before { content: "\f4fe"; }
.fa-user-graduate:before { content: "\f501"; }
.fa-users:before { content: "\f0c0"; }
.fa-users-cog:before { content: "\f509"; }

/* Additional commonly used icons for flexibility */
.fa-home:before { content: "\f015"; }
.fa-search:before { content: "\f002"; }
.fa-times:before { content: "\f00d"; }
.fa-bars:before { content: "\f0c9"; }
.fa-plus:before { content: "\f067"; }
.fa-minus:before { content: "\f068"; }
.fa-edit:before { content: "\f044"; }
.fa-trash:before { content: "\f1f8"; }
.fa-download:before { content: "\f019"; }
.fa-upload:before { content: "\f093"; }
.fa-file:before { content: "\f15b"; }
.fa-folder:before { content: "\f07b"; }
.fa-info-circle:before { content: "\f05a"; }
.fa-exclamation-triangle:before { content: "\f071"; }
.fa-phone:before { content: "\f095"; }
.fa-map-marker-alt:before { content: "\f3c5"; }
.fa-calendar:before { content: "\f133"; }
.fa-link:before { content: "\f0c1"; }
.fa-share:before { content: "\f064"; }
.fa-print:before { content: "\f02f"; }
.fa-save:before { content: "\f0c7"; }
.fa-cog:before { content: "\f013"; }
.fa-user-plus:before { content: "\f234"; }
.fa-sign-out-alt:before { content: "\f2f5"; }
.fa-lock:before { content: "\f023"; }
.fa-unlock:before { content: "\f09c"; }
.fa-eye:before { content: "\f06e"; }
.fa-eye-slash:before { content: "\f070"; }
.fa-filter:before { content: "\f0b0"; }
.fa-sort:before { content: "\f0dc"; }
.fa-list:before { content: "\f03a"; }
.fa-th:before { content: "\f00a"; }
.fa-th-large:before { content: "\f009"; }
.fa-chevron-left:before { content: "\f053"; }
.fa-chevron-right:before { content: "\f054"; }
.fa-chevron-up:before { content: "\f077"; }
.fa-chevron-down:before { content: "\f078"; }
.fa-angle-left:before { content: "\f104"; }
.fa-angle-right:before { content: "\f105"; }
.fa-angle-up:before { content: "\f106"; }
.fa-angle-down:before { content: "\f107"; }

/* Animation utilities */
.fa-spin {
  animation: fa-spin 2s infinite linear;
}

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

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

/* Utility classes */
.fa-fw { text-align: center; width: 1.25em; }
.fa-pull-left { float: left; margin-right: 0.3em; }
.fa-pull-right { float: right; margin-left: 0.3em; }
.fa-border { border: solid 0.08em #eee; border-radius: 0.1em; padding: 0.2em 0.25em 0.15em; }
.fa-li { position: absolute; left: -2em; width: 2em; top: 0.14286em; text-align: center; }
.fa-flip-horizontal { transform: scale(-1, 1); }
.fa-flip-vertical { transform: scale(1, -1); }
.fa-rotate-90 { transform: rotate(90deg); }
.fa-rotate-180 { transform: rotate(180deg); }
.fa-rotate-270 { transform: rotate(270deg); }
.fa-stack { display: inline-block; height: 2em; line-height: 2em; position: relative; vertical-align: middle; width: 2.5em; }
.fa-stack-1x, .fa-stack-2x { left: 0; position: absolute; text-align: center; width: 100%; }
.fa-stack-1x { line-height: inherit; }
.fa-stack-2x { font-size: 2em; }
.fa-inverse { color: #fff; }