/* Font Awesome Fallback CSS - 当CDN失败时激活 */
/* 使用Unicode符号和Emoji作为图标的替代方案 */

.fas,
.fa,
.far,
.fab {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif;
  font-weight: normal;
  font-style: normal;
  display: inline-block;
  text-rendering: auto;
  line-height: 1;
  font-size: 1em;
}

/* 基础图标映射 */
.fa-user::before,
.fas.fa-user::before {
  content: "👤";
}

.fa-university::before,
.fas.fa-university::before {
  content: "🏛️";
}

.fa-graduation-cap::before,
.fas.fa-graduation-cap::before {
  content: "🎓";
}

.fa-envelope::before,
.fas.fa-envelope::before {
  content: "✉️";
}

.fa-phone::before,
.fas.fa-phone::before {
  content: "📞";
}

.fa-map-marker-alt::before,
.fas.fa-map-marker-alt::before {
  content: "📍";
}

.fa-chevron-down::before,
.fas.fa-chevron-down::before {
  content: "⌄";
}

.fa-chevron-up::before,
.fas.fa-chevron-up::before {
  content: "⌃";
}

.fa-chevron-left::before,
.fas.fa-chevron-left::before {
  content: "‹";
}

.fa-chevron-right::before,
.fas.fa-chevron-right::before {
  content: "›";
}

.fa-edit::before,
.fas.fa-edit::before {
  content: "✏️";
}

.fa-trash::before,
.fas.fa-trash::before {
  content: "🗑️";
}

.fa-plus::before,
.fas.fa-plus::before {
  content: "+";
}

.fa-save::before,
.fas.fa-save::before {
  content: "💾";
}

.fa-times::before,
.fas.fa-times::before {
  content: "×";
}

.fa-search::before,
.fas.fa-search::before {
  content: "🔍";
}

.fa-filter::before,
.fas.fa-filter::before {
  content: "🔽";
}

.fa-sort::before,
.fas.fa-sort::before {
  content: "⇅";
}

.fa-sort-up::before,
.fas.fa-sort-up::before {
  content: "⇑";
}

.fa-sort-down::before,
.fas.fa-sort-down::before {
  content: "⇓";
}

.fa-eye::before,
.fas.fa-eye::before {
  content: "👁";
  color: #16a34a;
}

.fa-download::before,
.fas.fa-download::before {
  content: "⬇️";
}

.fa-upload::before,
.fas.fa-upload::before {
  content: "⬆️";
}

.fa-spinner::before,
.fas.fa-spinner::before {
  content: "⟳";
  animation: fa-spin 2s infinite linear;
}

.fa-check::before,
.fas.fa-check::before {
  content: "✓";
}

.fa-exclamation-triangle::before,
.fas.fa-exclamation-triangle::before {
  content: "⚠️";
}

.fa-info-circle::before,
.fas.fa-info-circle::before {
  content: "ℹ";
  color: #3b82f6;
  background: none;
}

.fa-question-circle::before,
.fas.fa-question-circle::before {
  content: "❓";
}

.fa-home::before,
.fas.fa-home::before {
  content: "🏠";
}

.fa-bars::before,
.fas.fa-bars::before {
  content: "☰";
}

.fa-sign-out-alt::before,
.fas.fa-sign-out-alt::before {
  content: "🚪";
}

.fa-database::before,
.fas.fa-database::before {
  content: "🗄️";
}

.fa-server::before,
.fas.fa-server::before {
  content: "🖥️";
}

.fa-users::before,
.fas.fa-users::before {
  content: "👥";
}

.fa-shield-alt::before,
.fas.fa-shield-alt::before {
  content: "🛡️";
}

.fa-language::before,
.fas.fa-language::before {
  content: "🌐";
}

.fa-bell::before,
.fas.fa-bell::before {
  content: "🔔";
}

.fa-archive::before,
.fas.fa-archive::before {
  content: "📦";
}

.fa-cog::before,
.fas.fa-cog::before {
  content: "⚙️";
}

.fa-arrow-left::before,
.fas.fa-arrow-left::before {
  content: "←";
}

.fa-arrow-right::before,
.fas.fa-arrow-right::before {
  content: "→";
}

.fa-arrow-up::before,
.fas.fa-arrow-up::before {
  content: "↑";
}

.fa-arrow-down::before,
.fas.fa-arrow-down::before {
  content: "↓";
}

.fa-image::before,
.fas.fa-image::before {
  content: "🖼️";
}

.fa-file::before,
.fas.fa-file::before {
  content: "📄";
}

.fa-file-image::before,
.fas.fa-file-image::before {
  content: "🖼️";
}

.fa-file-text::before,
.fas.fa-file-text::before {
  content: "📝";
}

.fa-file-pdf::before,
.fas.fa-file-pdf::before {
  content: "📋";
}

.fa-globe::before,
.fas.fa-globe::before {
  content: "🌍";
}

.fa-link::before,
.fas.fa-link::before {
  content: "🔗";
}

.fa-external-link-alt::before,
.fas.fa-external-link-alt::before {
  content: "↗️";
}

.fa-calendar::before,
.fas.fa-calendar::before {
  content: "📅";
}

.fa-clock::before,
.fas.fa-clock::before {
  content: "🕐";
}

.fa-heart::before,
.fas.fa-heart::before {
  content: "❤️";
}

.fa-star::before,
.fas.fa-star::before {
  content: "⭐";
}

.fa-bookmark::before,
.fas.fa-bookmark::before {
  content: "🔖";
}

.fa-share::before,
.fas.fa-share::before {
  content: "📤";
}

.fa-copy::before,
.fas.fa-copy::before {
  content: "📋";
}

.fa-redo::before,
.fas.fa-redo::before {
  content: "↻";
}

.fa-undo::before,
.fas.fa-undo::before {
  content: "↺";
}

.fa-sync::before,
.fas.fa-sync::before {
  content: "🔄";
}

.fa-play::before,
.fas.fa-play::before {
  content: "▶️";
}

.fa-pause::before,
.fas.fa-pause::before {
  content: "⏸️";
}

.fa-stop::before,
.fas.fa-stop::before {
  content: "⏹️";
}

/* 旋转动画 */
@keyframes fa-spin {
  0% {
    transform: rotate(0deg);
  }

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

/* 确保图标正确对齐 */
.fas::before,
.fa::before,
.far::before,
.fab::before {
  display: inline-block;
  width: 1em;
  text-align: center;
  vertical-align: middle;
}

/* 加载状态提示 */
.fas.fa-spinner,
.fa.fa-spinner {
  display: inline-block;
}

/* 响应式优化 */
@media (max-width: 768px) {

  .fas,
  .fa,
  .far,
  .fab {
    font-size: 0.9em;
  }
}

/* 性能优化 */
.fas,
.fa,
.far,
.fab {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}