/*!
 * FontAwesome 5 Pro - Unified Offline System
 * UWQBANK Medical Question Bank
 * 
 * 🎯 SINGLE SOURCE OF TRUTH for all FontAwesome icons
 * ✅ Completely offline - no external dependencies
 * ✅ Optimized for performance and reliability
 * ✅ Comprehensive icon coverage for medical app
 * 
 * Version: 1.0.0
 * Last Updated: 2025-08-19
 */

/* ==========================================================================
   FONT FACE DECLARATIONS - LOCAL FONTS ONLY
   ========================================================================== */

@font-face {
  font-family: "Font Awesome 5 Pro";
  font-style: normal;
  font-weight: 900;
  font-display: block;
  src: url("/webfonts/fa-solid-900.woff2") format("woff2");
}

@font-face {
  font-family: "Font Awesome 5 Pro";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("/webfonts/fa-regular-400.woff2") format("woff2");
}

@font-face {
  font-family: "Font Awesome 5 Pro";
  font-style: normal;
  font-weight: 300;
  font-display: block;
  src: url("/webfonts/fa-light-300.woff2") format("woff2");
}

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

/* ==========================================================================
   BASE CLASSES - ALL FONT AWESOME STYLES
   ========================================================================== */

.fa,
.fab,
.fad,
.fal,
.far,
.fas {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1;
}

/* ==========================================================================
   WEIGHT-SPECIFIC CLASSES
   ========================================================================== */

/* Solid Icons (900 weight) - Primary icons */
.fa-solid,
.fas {
  font-family: "Font Awesome 5 Pro";
  font-weight: 900;
}

/* Regular Icons (400 weight) - Outline style */
.fa-regular,
.far {
  font-family: "Font Awesome 5 Pro";
  font-weight: 400;
}

/* Light Icons (300 weight) - Thin elegant style */
.fa-light,
.fal {
  font-family: "Font Awesome 5 Pro";
  font-weight: 300;
}

/* Brand Icons (400 weight) - Company logos */
.fa-brands,
.fab {
  font-family: "Font Awesome 5 Brands";
  font-weight: 400;
}

/* ==========================================================================
   UTILITY CLASSES
   ========================================================================== */

/* Size utilities */
.fa-xs {
  font-size: 0.75em;
}

.fa-sm {
  font-size: 0.875em;
}

.fa-lg {
  font-size: 1.33333em;
  line-height: 0.75em;
  vertical-align: -0.0667em;
}

.fa-1x {
  font-size: 1em;
}

.fa-2x {
  font-size: 2em;
}

.fa-3x {
  font-size: 3em;
}

.fa-4x {
  font-size: 4em;
}

.fa-5x {
  font-size: 5em;
}

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

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

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

  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

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

  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

/* Fixed width for alignment */
.fa-fw {
  text-align: center;
  width: 1.25em;
}

/* ==========================================================================
   COMPREHENSIVE ICON LIBRARY - MEDICAL APP FOCUSED
   ========================================================================== */

/* NAVIGATION & UI CORE */
.fa-home:before {
  content: "\f015";
}

.fa-home-lg:before {
  content: "\f015";
}

.fa-bars:before {
  content: "\f0c9";
}

.fa-search:before {
  content: "\f002";
}

.fa-user:before {
  content: "\f007";
}

.fa-cog:before {
  content: "\f013";
}

.fa-bell:before {
  content: "\f0f3";
}

.fa-envelope:before {
  content: "\f0e0";
}

.fa-credit-card:before {
  content: "\f09d";
}

/* DASHBOARD SIDEBAR ICONS */
.fa-clipboard-check:before {
  content: "\f46c";
}

.fa-chart-pie:before {
  content: "\f200";
}

.fa-chart-scatter:before {
  content: "\f7ee";
}

.fa-chart-bar:before {
  content: "\f080";
}

.fa-chart-line:before {
  content: "\f201";
}

/* ARROWS & NAVIGATION */
.fa-arrow-left:before {
  content: "\f060";
}

.fa-arrow-right:before {
  content: "\f061";
}

.fa-arrow-up:before {
  content: "\f062";
}

.fa-arrow-down:before {
  content: "\f063";
}

.fa-angle-right:before {
  content: "\f105";
}

.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-caret-left:before {
  content: "\f0d9";
}

.fa-caret-right:before {
  content: "\f0da";
}

.fa-caret-up:before {
  content: "\f0d8";
}

.fa-caret-down:before {
  content: "\f0d7";
}

/* ACTIONS & CONTROLS */
.fa-check:before {
  content: "\f00c";
}

.fa-times:before {
  content: "\f00d";
}

.fa-plus:before {
  content: "\f067";
}

.fa-minus:before {
  content: "\f068";
}

.fa-minus-circle:before {
  content: "\f056";
}

.fa-edit:before {
  content: "\f044";
}

.fa-copy:before {
  content: "\f0c5";
}

.fa-save:before {
  content: "\f0c7";
}

.fa-print:before {
  content: "\f02f";
}

.fa-download:before {
  content: "\f019";
}

.fa-upload:before {
  content: "\f093";
}

.fa-trash:before {
  content: "\f1f8";
}

.fa-trash-alt:before {
  content: "\f2ed";
}

/* STATUS & FEEDBACK */
.fa-info-circle:before {
  content: "\f05a";
}

.fa-exclamation-triangle:before {
  content: "\f071";
}

.fa-check-circle:before {
  content: "\f058";
}

.fa-times-circle:before {
  content: "\f057";
}

.fa-question-circle:before {
  content: "\f059";
}

.fa-lightbulb:before {
  content: "\f0eb";
}

/* MEDICAL & EDUCATION SPECIFIC */
.fa-stethoscope:before {
  content: "\f0f1";
}

.fa-heartbeat:before {
  content: "\f21e";
}

.fa-heart:before {
  content: "\f004";
}

.fa-pills:before {
  content: "\f484";
}

.fa-syringe:before {
  content: "\f48e";
}

.fa-microscope:before {
  content: "\f610";
}

.fa-dna:before {
  content: "\f471";
}

.fa-book:before {
  content: "\f02d";
}

.fa-books:before {
  content: "\f5db";
}

.fa-book-open:before {
  content: "\f518";
}

.fa-graduation-cap:before {
  content: "\f19d";
}

.fa-user-md:before {
  content: "\f0f0";
}

.fa-hospital:before {
  content: "\f0f8";
}

.fa-ambulance:before {
  content: "\f0f9";
}

/* TIME & DATES */
.fa-clock:before {
  content: "\f017";
}

.fa-calendar:before {
  content: "\f133";
}

.fa-calendar-alt:before {
  content: "\f073";
}

.fa-stopwatch:before {
  content: "\f2f2";
}

/* FILES & DOCUMENTS */
.fa-file:before {
  content: "\f15b";
}

.fa-file-alt:before {
  content: "\f15c";
}

.fa-file-pdf:before {
  content: "\f1c1";
}

.fa-file-word:before {
  content: "\f1c2";
}

.fa-folder:before {
  content: "\f07b";
}

.fa-folder-open:before {
  content: "\f07c";
}

/* LISTS & ORGANIZATION */
.fa-list:before {
  content: "\f03a";
}

.fa-list-alt:before {
  content: "\f022";
}

.fa-list-ul:before {
  content: "\f0ca";
}

.fa-list-ol:before {
  content: "\f0cb";
}

.fa-tasks:before {
  content: "\f0ae";
}

.fa-clipboard:before {
  content: "\f328";
}

.fa-clipboard-list:before {
  content: "\f46d";
}

/* VISIBILITY & INTERACTION */
.fa-eye:before {
  content: "\f06e";
}

.fa-eye-slash:before {
  content: "\f070";
}

.fa-expand:before {
  content: "\f065";
}

.fa-compress:before {
  content: "\f066";
}

.fa-external-link-alt:before {
  content: "\f35d";
}

.fa-link:before {
  content: "\f0c1";
}

/* LOADING & PROGRESS */
.fa-spinner:before {
  content: "\f110";
}

.fa-spinner-third:before {
  content: "\f3f4";
}

.fa-circle-notch:before {
  content: "\f1ce";
}

.fa-sync:before {
  content: "\f021";
}

.fa-sync-alt:before {
  content: "\f2f1";
}

.fa-redo:before {
  content: "\f01e";
}

.fa-undo:before {
  content: "\f0e2";
}

/* MEDIA & CONTROLS */
.fa-play:before {
  content: "\f04b";
}

.fa-play-circle:before {
  content: "\f144";
}

.fa-pause:before {
  content: "\f04c";
}

.fa-stop:before {
  content: "\f04d";
}

.fa-forward:before {
  content: "\f04e";
}

.fa-backward:before {
  content: "\f04a";
}

.fa-volume-up:before {
  content: "\f028";
}

.fa-volume-down:before {
  content: "\f027";
}

.fa-volume-mute:before {
  content: "\f6a9";
}

/* SETTINGS & PREFERENCES */
.fa-sliders-h:before {
  content: "\f1de";
}

.fa-wrench:before {
  content: "\f0ad";
}

.fa-tools:before {
  content: "\f7d9";
}

.fa-filter:before {
  content: "\f0b0";
}

.fa-sort:before {
  content: "\f0dc";
}

.fa-sort-up:before {
  content: "\f0de";
}

.fa-sort-down:before {
  content: "\f0dd";
}

/* COMMUNICATION */
.fa-comments:before {
  content: "\f086";
}

.fa-comment:before {
  content: "\f075";
}

.fa-comment-alt:before {
  content: "\f27a";
}

.fa-phone:before {
  content: "\f095";
}

.fa-mobile-alt:before {
  content: "\f3cd";
}

/* SECURITY & PRIVACY */
.fa-lock:before {
  content: "\f023";
}

.fa-unlock:before {
  content: "\f09c";
}

.fa-key:before {
  content: "\f084";
}

.fa-shield-alt:before {
  content: "\f3ed";
}

.fa-user-shield:before {
  content: "\f505";
}

/* CONNECTIVITY & SHARING */
.fa-share:before {
  content: "\f064";
}

.fa-share-alt:before {
  content: "\f1e0";
}

.fa-wifi:before {
  content: "\f1eb";
}

.fa-signal:before {
  content: "\f012";
}

.fa-cloud:before {
  content: "\f0c2";
}

/* AUTHENTICATION & LOGOUT */
.fa-sign-out-alt:before {
  content: "\f2f5";
}

.fa-sign-in-alt:before {
  content: "\f2f6";
}

.fa-exchange:before {
  content: "\f0ec";
}

/* ==========================================================================
   ACCESSIBILITY & FALLBACKS
   ========================================================================== */

/* Screen reader support */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Fallback for failed font loads */
@media (max-width: 0) {
  .fa-home:before {
    content: "🏠";
    font-family: sans-serif;
  }

  .fa-search:before {
    content: "🔍";
    font-family: sans-serif;
  }

  .fa-check:before {
    content: "✓";
    font-family: sans-serif;
  }

  .fa-times:before {
    content: "✕";
    font-family: sans-serif;
  }

  .fa-bars:before {
    content: "☰";
    font-family: sans-serif;
  }

  .fa-caret-down:before {
    content: "▼";
    font-family: sans-serif;
  }

  .fa-caret-up:before {
    content: "▲";
    font-family: sans-serif;
  }

  .fa-caret-left:before {
    content: "◀";
    font-family: sans-serif;
  }

  .fa-caret-right:before {
    content: "▶";
    font-family: sans-serif;
  }
}

/* ==========================================================================
   PERFORMANCE OPTIMIZATIONS
   ========================================================================== */

/* Prevent font flash */
.fa,
.fab,
.fad,
.fal,
.far,
.fas {
  font-display: block;
}

/* GPU acceleration for animations */
.fa-spin,
.fa-pulse {
  will-change: transform;
}

/* ==========================================================================
   END OF UNIFIED FONTAWESOME CSS
   ========================================================================== */