/*!
 * Bootstrap Icons v1.11.0
 * 图标映射兼容层 - 将 fa 类名映射到 Bootstrap Icons
 */

/* 引入 Bootstrap Icons 字体 */
@import url('https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.0/font/bootstrap-icons.css');

/* Font Awesome 到 Bootstrap Icons 的映射 */
.fa {
  display: inline-block;
  font-family: 'bootstrap-icons' !important;
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  text-align: center;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* 图标尺寸 */
.fa-lg {
  font-size: 1.125em;
  line-height: 0.75em;
  vertical-align: -15%;
}

.fa-2x {
  font-size: 1.75em;
}

.fa-3x {
  font-size: 2.25em;
}

.fa-4x {
  font-size: 2.75em;
}

.fa-5x {
  font-size: 3.25em;
}

/* 旋转动画 */
.fa-spin {
  animation: fa-spin 1s infinite linear;
}

@keyframes fa-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* 图标映射 - Font Awesome 到 Bootstrap Icons */
.fa-user::before { content: "\f4da"; } /* person */
.fa-home::before { content: "\f425"; } /* house */
.fa-download::before { content: "\f30a"; } /* download */
.fa-upload::before { content: "\f552"; } /* upload */
.fa-search::before { content: "\f52a"; } /* search */
.fa-times::before { content: "\f622"; } /* x-lg */
.fa-check::before { content: "\f26b"; } /* check */
.fa-plus::before { content: "\f4fe"; } /* plus */
.fa-minus::before { content: "\f449"; } /* dash */
.fa-edit::before { content: "\f4ca"; } /* pencil */
.fa-trash::before { content: "\f5de"; } /* trash */
.fa-trash-o::before { content: "\f5de"; } /* trash */
.fa-eye::before { content: "\f341"; } /* eye */
.fa-eye-slash::before { content: "\f342"; } /* eye-slash */
.fa-share::before { content: "\f52d"; } /* share */
.fa-share-alt::before { content: "\f52c"; } /* share-fill */
.fa-copy::before { content: "\f29e"; } /* clipboard */
.fa-save::before { content: "\f353"; } /* floppy */
.fa-clock::before { content: "\f294"; } /* clock */
.fa-clock-o::before { content: "\f293"; } /* clock */
.fa-calendar::before { content: "\f1eb"; } /* calendar */
.fa-calendar-times::before { content: "\f1ed"; } /* calendar-x */
.fa-file::before { content: "\f377"; } /* file-earmark */
.fa-file-o::before { content: "\f377"; } /* file-earmark */
.fa-file-text::before { content: "\f379"; } /* file-earmark-text */
.fa-file-text-o::before { content: "\f379"; } /* file-earmark-text */
.fa-folder::before { content: "\f3d6"; } /* folder */
.fa-folder-open::before { content: "\f3d8"; } /* folder-open */
.fa-files-o::before { content: "\f376"; } /* files */
.fa-database::before { content: "\f2fd"; } /* database */
.fa-crown::before { content: "\f2ce"; } /* award */
.fa-star::before { content: "\f586"; } /* star */
.fa-shield::before { content: "\f53a"; } /* shield-check */
.fa-user-circle::before { content: "\f4d7"; } /* person-circle */
.fa-user-plus::before { content: "\f4df"; } /* person-plus */
.fa-sign-out::before { content: "\f13e"; } /* box-arrow-right */
.fa-sign-in::before { content: "\f13c"; } /* box-arrow-in-right */
.fa-dashboard::before { content: "\f54b"; } /* speedometer2 */
.fa-shopping-cart::before { content: "\f1d3"; } /* cart */
.fa-tag::before { content: "\f5cf"; } /* tag */
.fa-info-circle::before { content: "\f431"; } /* info-circle */
.fa-exclamation-triangle::before { content: "\f33a"; } /* exclamation-triangle */
.fa-exclamation-circle::before { content: "\f338"; } /* exclamation-circle */
.fa-check-circle::before { content: "\f26a"; } /* check-circle */
.fa-chevron-down::before { content: "\f282"; } /* chevron-down */
.fa-chevron-up::before { content: "\f286"; } /* chevron-up */
.fa-chevron-left::before { content: "\f284"; } /* chevron-left */
.fa-chevron-right::before { content: "\f285"; } /* chevron-right */
.fa-arrow-left::before { content: "\f12f"; } /* arrow-left */
.fa-arrow-right::before { content: "\f138"; } /* arrow-right */
.fa-arrow-up::before { content: "\f148"; } /* arrow-up */
.fa-arrow-down::before { content: "\f128"; } /* arrow-down */
.fa-play::before { content: "\f4f4"; } /* play */
.fa-pause::before { content: "\f4c6"; } /* pause */
.fa-circle::before { content: "\f287"; } /* circle */
.fa-list::before { content: "\f479"; } /* list */
.fa-plus-circle::before { content: "\f500"; } /* plus-circle */
.fa-user-edit::before { content: "\f4dc"; } /* person-gear */
.fa-cloud-upload::before { content: "\f28b"; } /* cloud-upload */
.fa-globe::before { content: "\f3fa"; } /* globe */
.fa-spinner::before { content: "\f125"; } /* arrow-clockwise */
.fa-paper-plane::before { content: "\f52b"; } /* send */
.fa-clipboard::before { content: "\f29e"; } /* clipboard */
.fa-key::before { content: "\f43f"; } /* key */
.fa-fire::before { content: "\f39a"; } /* fire */
.fa-envelope::before { content: "\f32f"; } /* envelope */
.fa-phone::before { content: "\f4eb"; } /* telephone */
.fa-cog::before { content: "\f3e5"; } /* gear */
.fa-server::before { content: "\f427"; } /* hdd */
.fa-money::before { content: "\f235"; } /* cash */
.fa-refresh::before { content: "\f125"; } /* arrow-clockwise */
.fa-tasks::before { content: "\f478"; } /* list-check */
.fa-check-square-o::before { content: "\f268"; } /* check-square */
.fa-user-clock::before { content: "\f294"; } /* clock */
.fa-user-tag::before { content: "\f5cf"; } /* tag */
.fa-user-slash::before { content: "\f4dd"; } /* person-slash */
.fa-user-minus::before { content: "\f4d9"; } /* person-dash */
.fa-users-cog::before { content: "\f3e5"; } /* gear */
.fa-user-friends::before { content: "\f4db"; } /* people */
.fa-user-group::before { content: "\f4db"; } /* people */
.fa-users::before { content: "\f4db"; } /* people */
.fa-lock::before { content: "\f458"; } /* lock */
.fa-unlock::before { content: "\f657"; } /* unlock */
.fa-unlock-alt::before { content: "\f657"; } /* unlock */
.fa-diamond::before { content: "\f2df"; } /* gem */
.fa-bolt::before { content: "\f1ef"; } /* lightning */
.fa-bar-chart::before { content: "\f24b"; } /* bar-chart */
.fa-line-chart::before { content: "\f3f9"; } /* graph-up */
.fa-bullhorn::before { content: "\f462"; } /* megaphone */
.fa-mobile::before { content: "\f4ee"; } /* phone */
.fa-headphones::before { content: "\f413"; } /* headphones */

/* Font Awesome 5 兼容性 */
.fas {
    display: inline-block;
    font-family: 'bootstrap-icons' !important;
    font-style: normal;
    font-weight: normal;
}

.fas::before {
    display: inline-block;
}

/* 旋转效果 */
.fa-rotate-90 {
  transform: rotate(90deg);
}

.fa-rotate-180 {
  transform: rotate(180deg);
}

.fa-rotate-270 {
  transform: rotate(270deg);
}

.fa-flip-horizontal {
  transform: scale(-1, 1);
}

.fa-flip-vertical {
  transform: scale(1, -1);
}

