/*!
 * 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-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-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-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-exclamation-circle:before { content: "\f06a"; }
.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-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-calendar-check:before { content: "\f274"; }
.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-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-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"; }

/* ==========================================================================
   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
   ========================================================================== */