/* Bootstrap Icons 1.11.2 本地回退样式 */
/* 当 CDN 不可用时使用此文件 */

/* 基础图标样式 */
.bi {
  display: inline-block;
  font-family: bootstrap-icons !important;
  font-style: normal;
  font-weight: normal !important;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  vertical-align: text-bottom;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* 常用图标 */
.bi-house::before { content: "\f425"; }
.bi-house-fill::before { content: "\f426"; }
.bi-gear::before { content: "\f3e4"; }
.bi-gear-fill::before { content: "\f3e5"; }
.bi-person::before { content: "\f4d7"; }
.bi-person-fill::before { content: "\f4d8"; }
.bi-search::before { content: "\f52a"; }
.bi-search-heart::before { content: "\f52b"; }
.bi-search-heart-fill::before { content: "\f52c"; }
.bi-heart::before { content: "\f3e8"; }
.bi-heart-fill::before { content: "\f3e9"; }
.bi-star::before { content: "\f586"; }
.bi-star-fill::before { content: "\f586"; }
.bi-eye::before { content: "\f341"; }
.bi-eye-fill::before { content: "\f342"; }
.bi-eye-slash::before { content: "\f343"; }
.bi-eye-slash-fill::before { content: "\f344"; }
.bi-download::before { content: "\f30b"; }
.bi-upload::before { content: "\f5a7"; }
.bi-share::before { content: "\f52d"; }
.bi-share-fill::before { content: "\f52e"; }
.bi-link::before { content: "\f471"; }
.bi-link-45deg::before { content: "\f472"; }
.bi-external-link::before { content: "\f33a"; }
.bi-box-arrow-up-right::before { content: "\f1c5"; }
.bi-box-arrow-up-left::before { content: "\f1c6"; }
.bi-box-arrow-down-right::before { content: "\f1c7"; }
.bi-box-arrow-down-left::before { content: "\f1c8"; }
.bi-arrow-up::before { content: "\f148"; }
.bi-arrow-down::before { content: "\f149"; }
.bi-arrow-left::before { content: "\f14a"; }
.bi-arrow-right::before { content: "\f14b"; }
.bi-chevron-up::before { content: "\f282"; }
.bi-chevron-down::before { content: "\f283"; }
.bi-chevron-left::before { content: "\f284"; }
.bi-chevron-right::before { content: "\f285"; }
.bi-plus::before { content: "\f4fe"; }
.bi-plus-circle::before { content: "\f4ff"; }
.bi-plus-circle-fill::before { content: "\f500"; }
.bi-dash::before { content: "\f2e3"; }
.bi-dash-circle::before { content: "\f2e4"; }
.bi-dash-circle-fill::before { content: "\f2e5"; }
.bi-x::before { content: "\f62a"; }
.bi-x-circle::before { content: "\f62b"; }
.bi-x-circle-fill::before { content: "\f62c"; }
.bi-check::before { content: "\f26b"; }
.bi-check-circle::before { content: "\f26c"; }
.bi-check-circle-fill::before { content: "\f26d"; }
.bi-info::before { content: "\f430"; }
.bi-info-circle::before { content: "\f431"; }
.bi-info-circle-fill::before { content: "\f432"; }
.bi-question::before { content: "\f50c"; }
.bi-question-circle::before { content: "\f50d"; }
.bi-question-circle-fill::before { content: "\f50e"; }
.bi-exclamation::before { content: "\f33c"; }
.bi-exclamation-circle::before { content: "\f33d"; }
.bi-exclamation-circle-fill::before { content: "\f33e"; }
.bi-exclamation-triangle::before { content: "\f33f"; }
.bi-exclamation-triangle-fill::before { content: "\f340"; }
.bi-warning::before { content: "\f5e0"; }
.bi-warning-fill::before { content: "\f5e1"; }
.bi-lightning::before { content: "\f46b"; }
.bi-lightning-fill::before { content: "\f46c"; }
.bi-fire::before { content: "\f3a4"; }
.bi-fire-fill::before { content: "\f3a5"; }
.bi-water::before { content: "\f5e2"; }
.bi-snow::before { content: "\f5a1"; }
.bi-sun::before { content: "\f5a2"; }
.bi-sun-fill::before { content: "\f5a3"; }
.bi-moon::before { content: "\f4eb"; }
.bi-moon-fill::before { content: "\f4ec"; }
.bi-cloud::before { content: "\f28c"; }
.bi-cloud-fill::before { content: "\f28d"; }
.bi-cloud-rain::before { content: "\f28e"; }
.bi-cloud-rain-fill::before { content: "\f28f"; }
.bi-cloud-snow::before { content: "\f290"; }
.bi-cloud-snow-fill::before { content: "\f291"; }
.bi-wind::before { content: "\f5e3"; }
.bi-umbrella::before { content: "\f5a8"; }
.bi-umbrella-fill::before { content: "\f5a9"; }
.bi-thermometer::before { content: "\f5b0"; }
.bi-thermometer-half::before { content: "\f5b1"; }
.bi-thermometer-high::before { content: "\f5b2"; }
.bi-thermometer-low::before { content: "\f5b3"; }
.bi-thermometer-snow::before { content: "\f5b4"; }
.bi-thermometer-sun::before { content: "\f5b5"; }
.bi-droplet::before { content: "\f30c"; }
.bi-droplet-fill::before { content: "\f30d"; }
.bi-droplet-half::before { content: "\f30e"; }
.bi-humidity::before { content: "\f3f0"; }
.bi-humidity-fill::before { content: "\f3f1"; }
.bi-brightness-high::before { content: "\f1c9"; }
.bi-brightness-low::before { content: "\f1ca"; }
.bi-brightness-alt-high::before { content: "\f1cb"; }
.bi-brightness-alt-low::before { content: "\f1cc"; }
.bi-moon-stars::before { content: "\f4ed"; }
.bi-moon-stars-fill::before { content: "\f4ee"; }
.bi-cloud-lightning::before { content: "\f292"; }
.bi-cloud-lightning-fill::before { content: "\f293"; }
.bi-cloud-lightning-rain::before { content: "\f294"; }
.bi-cloud-lightning-rain-fill::before { content: "\f295"; }
.bi-cloud-drizzle::before { content: "\f296"; }
.bi-cloud-drizzle-fill::before { content: "\f297"; }
.bi-cloud-haze::before { content: "\f298"; }
.bi-cloud-haze-fill::before { content: "\f299"; }
.bi-cloud-haze2::before { content: "\f29a"; }
.bi-cloud-haze2-fill::before { content: "\f29b"; }
.bi-cloud-mist::before { content: "\f29c"; }
.bi-cloud-mist-fill::before { content: "\f29d"; }
.bi-cloud-fog::before { content: "\f29e"; }
.bi-cloud-fog-fill::before { content: "\f29f"; }
.bi-cloud-fog2::before { content: "\f2a0"; }
.bi-cloud-fog2-fill::before { content: "\f2a1"; }
.bi-cloud-hail::before { content: "\f2a2"; }
.bi-cloud-hail-fill::before { content: "\f2a3"; }
.bi-cloud-sleet::before { content: "\f2a4"; }
.bi-cloud-sleet-fill::before { content: "\f2a5"; }
.bi-cloud-rain-heavy::before { content: "\f2a6"; }
.bi-cloud-rain-heavy-fill::before { content: "\f2a7"; }
.bi-cloud-showers::before { content: "\f2a8"; }
.bi-cloud-showers-fill::before { content: "\f2a9"; }
.bi-cloud-showers-heavy::before { content: "\f2aa"; }
.bi-cloud-showers-heavy-fill::before { content: "\f2ab"; }
.bi-cloud-sun::before { content: "\f2ac"; }
.bi-cloud-sun-fill::before { content: "\f2ad"; }
.bi-cloud-moon::before { content: "\f2ae"; }
.bi-cloud-moon-fill::before { content: "\f2af"; }
.bi-cloud-plus::before { content: "\f2b0"; }
.bi-cloud-plus-fill::before { content: "\f2b1"; }
.bi-cloud-minus::before { content: "\f2b2"; }
.bi-cloud-minus-fill::before { content: "\f2b3"; }
.bi-cloud-check::before { content: "\f2b4"; }
.bi-cloud-check-fill::before { content: "\f2b5"; }
.bi-cloud-x::before { content: "\f2b6"; }
.bi-cloud-x-fill::before { content: "\f2b7"; }
.bi-cloud-arrow-up::before { content: "\f2b8"; }
.bi-cloud-arrow-up-fill::before { content: "\f2b9"; }
.bi-cloud-arrow-down::before { content: "\f2ba"; }
.bi-cloud-arrow-down-fill::before { content: "\f2bb"; }
.bi-cloud-arrow-left::before { content: "\f2bc"; }
.bi-cloud-arrow-left-fill::before { content: "\f2bd"; }
.bi-cloud-arrow-right::before { content: "\f2be"; }
.bi-cloud-arrow-right-fill::before { content: "\f2bf"; }
.bi-cloud-upload::before { content: "\f2c0"; }
.bi-cloud-upload-fill::before { content: "\f2c1"; }
.bi-cloud-download::before { content: "\f2c2"; }
.bi-cloud-download-fill::before { content: "\f2c3"; }
.bi-cloud-slash::before { content: "\f2c4"; }
.bi-cloud-slash-fill::before { content: "\f2c5"; }
.bi-cloud-slash2::before { content: "\f2c6"; }
.bi-cloud-slash2-fill::before { content: "\f2c7"; }
.bi-cloud-slash3::before { content: "\f2c8"; }
.bi-cloud-slash3-fill::before { content: "\f2c9"; }
.bi-cloud-slash4::before { content: "\f2ca"; }
.bi-cloud-slash4-fill::before { content: "\f2cb"; }
.bi-cloud-slash5::before { content: "\f2cc"; }
.bi-cloud-slash5-fill::before { content: "\f2cd"; }
.bi-cloud-slash6::before { content: "\f2ce"; }
.bi-cloud-slash6-fill::before { content: "\f2cf"; }
.bi-cloud-slash7::before { content: "\f2d0"; }
.bi-cloud-slash7-fill::before { content: "\f2d1"; }
.bi-cloud-slash8::before { content: "\f2d2"; }
.bi-cloud-slash8-fill::before { content: "\f2d3"; }
.bi-cloud-slash9::before { content: "\f2d4"; }
.bi-cloud-slash9-fill::before { content: "\f2d5"; }
.bi-cloud-slash10::before { content: "\f2d6"; }
.bi-cloud-slash10-fill::before { content: "\f2d7"; }
.bi-cloud-slash11::before { content: "\f2d8"; }
.bi-cloud-slash11-fill::before { content: "\f2d9"; }
.bi-cloud-slash12::before { content: "\f2da"; }
.bi-cloud-slash12-fill::before { content: "\f2db"; }
.bi-cloud-slash13::before { content: "\f2dc"; }
.bi-cloud-slash13-fill::before { content: "\f2dd"; }
.bi-cloud-slash14::before { content: "\f2de"; }
.bi-cloud-slash14-fill::before { content: "\f2df"; }
.bi-cloud-slash15::before { content: "\f2e0"; }
.bi-cloud-slash15-fill::before { content: "\f2e1"; }
.bi-cloud-slash16::before { content: "\f2e2"; }
.bi-cloud-slash16-fill::before { content: "\f2e2"; }

/* 文件相关图标 */
.bi-file::before { content: "\f3a6"; }
.bi-file-fill::before { content: "\f3a7"; }
.bi-file-text::before { content: "\f3a8"; }
.bi-file-text-fill::before { content: "\f3a9"; }
.bi-file-earmark::before { content: "\f3aa"; }
.bi-file-earmark-fill::before { content: "\f3ab"; }
.bi-file-earmark-text::before { content: "\f3ac"; }
.bi-file-earmark-text-fill::before { content: "\f3ad"; }
.bi-folder::before { content: "\f3b0"; }
.bi-folder-fill::before { content: "\f3b1"; }
.bi-folder2::before { content: "\f3b2"; }
.bi-folder2-open::before { content: "\f3b3"; }
.bi-folder-plus::before { content: "\f3b4"; }
.bi-folder-minus::before { content: "\f3b5"; }
.bi-folder-x::before { content: "\f3b6"; }
.bi-folder-check::before { content: "\f3b7"; }

/* 编辑相关图标 */
.bi-pencil::before { content: "\f4cb"; }
.bi-pencil-fill::before { content: "\f4cc"; }
.bi-pencil-square::before { content: "\f4cd"; }
.bi-pencil-square-fill::before { content: "\f4ce"; }
.bi-pen::before { content: "\f4c9"; }
.bi-pen-fill::before { content: "\f4ca"; }
.bi-brush::before { content: "\f1d5"; }
.bi-brush-fill::before { content: "\f1d6"; }
.bi-palette::before { content: "\f4c7"; }
.bi-palette-fill::before { content: "\f4c8"; }

/* 媒体相关图标 */
.bi-image::before { content: "\f42c"; }
.bi-image-fill::before { content: "\f42d"; }
.bi-images::before { content: "\f42e"; }
.bi-images-fill::before { content: "\f42f"; }
.bi-camera::before { content: "\f1f3"; }
.bi-camera-fill::before { content: "\f1f4"; }
.bi-camera-video::before { content: "\f1f5"; }
.bi-camera-video-fill::before { content: "\f1f6"; }
.bi-music-note::before { content: "\f4f0"; }
.bi-music-note-beamed::before { content: "\f4f1"; }
.bi-play::before { content: "\f4f2"; }
.bi-play-fill::before { content: "\f4f3"; }
.bi-play-circle::before { content: "\f4f4"; }
.bi-play-circle-fill::before { content: "\f4f5"; }
.bi-pause::before { content: "\f4c6"; }
.bi-pause-fill::before { content: "\f4c7"; }
.bi-pause-circle::before { content: "\f4c8"; }
.bi-pause-circle-fill::before { content: "\f4c9"; }
.bi-stop::before { content: "\f5a0"; }
.bi-stop-fill::before { content: "\f5a1"; }
.bi-stop-circle::before { content: "\f5a2"; }
.bi-stop-circle-fill::before { content: "\f5a3"; }

/* 通信相关图标 */
.bi-envelope::before { content: "\f32f"; }
.bi-envelope-fill::before { content: "\f330"; }
.bi-envelope-open::before { content: "\f331"; }
.bi-envelope-open-fill::before { content: "\f332"; }
.bi-chat::before { content: "\f27d"; }
.bi-chat-fill::before { content: "\f27e"; }
.bi-chat-dots::before { content: "\f27f"; }
.bi-chat-dots-fill::before { content: "\f280"; }
.bi-chat-quote::before { content: "\f281"; }
.bi-chat-quote-fill::before { content: "\f282"; }
.bi-chat-text::before { content: "\f283"; }
.bi-chat-text-fill::before { content: "\f284"; }
.bi-chat-square::before { content: "\f285"; }
.bi-chat-square-fill::before { content: "\f286"; }
.bi-chat-square-dots::before { content: "\f287"; }
.bi-chat-square-dots-fill::before { content: "\f288"; }
.bi-chat-square-quote::before { content: "\f289"; }
.bi-chat-square-quote-fill::before { content: "\f28a"; }
.bi-chat-square-text::before { content: "\f28b"; }
.bi-chat-square-text-fill::before { content: "\f28c"; }

/* 社交相关图标 */
.bi-facebook::before { content: "\f3a0"; }
.bi-twitter::before { content: "\f5b6"; }
.bi-instagram::before { content: "\f437"; }
.bi-youtube::before { content: "\f5e4"; }
.bi-linkedin::before { content: "\f472"; }
.bi-github::before { content: "\f3ed"; }
.bi-discord::before { content: "\f300"; }
.bi-telegram::before { content: "\f5b7"; }
.bi-whatsapp::before { content: "\f5e5"; }
.bi-wechat::before { content: "\f5e6"; }
.bi-qq::before { content: "\f50f"; }
.bi-weibo::before { content: "\f5e7"; }

/* 设备相关图标 */
.bi-phone::before { content: "\f4f7"; }
.bi-phone-fill::before { content: "\f4f8"; }
.bi-tablet::before { content: "\f5b8"; }
.bi-tablet-fill::before { content: "\f5b9"; }
.bi-laptop::before { content: "\f46e"; }
.bi-laptop-fill::before { content: "\f46f"; }
.bi-display::before { content: "\f2e6"; }
.bi-display-fill::before { content: "\f2e7"; }
.bi-tv::before { content: "\f5ba"; }
.bi-tv-fill::before { content: "\f5bb"; }
.bi-watch::before { content: "\f5e8"; }
.bi-watch-fill::before { content: "\f5e9"; }

/* 图标大小 */
.bi-1x { font-size: 1em; }
.bi-2x { font-size: 2em; }
.bi-3x { font-size: 3em; }
.bi-4x { font-size: 4em; }
.bi-5x { font-size: 5em; }
.bi-6x { font-size: 6em; }
.bi-7x { font-size: 7em; }
.bi-8x { font-size: 8em; }
.bi-9x { font-size: 9em; }
.bi-10x { font-size: 10em; }

/* 图标对齐 */
.bi-align-top { vertical-align: top; }
.bi-align-middle { vertical-align: middle; }
.bi-align-bottom { vertical-align: bottom; }
.bi-align-text-top { vertical-align: text-top; }
.bi-align-text-bottom { vertical-align: text-bottom; }

/* 图标旋转 */
.bi-rotate-0 { transform: rotate(0deg); }
.bi-rotate-90 { transform: rotate(90deg); }
.bi-rotate-180 { transform: rotate(180deg); }
.bi-rotate-270 { transform: rotate(270deg); }

/* 图标翻转 */
.bi-flip-horizontal { transform: scaleX(-1); }
.bi-flip-vertical { transform: scaleY(-1); }
.bi-flip-horizontal-vertical { transform: scale(-1); }

/* 图标动画 */
.bi-spin {
  animation: bi-spin 2s linear infinite;
}

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

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

/* 图标颜色 */
.bi-primary { color: #0d6efd; }
.bi-secondary { color: #6c757d; }
.bi-success { color: #198754; }
.bi-danger { color: #dc3545; }
.bi-warning { color: #ffc107; }
.bi-info { color: #0dcaf0; }
.bi-light { color: #f8f9fa; }
.bi-dark { color: #212529; }

/* 图标背景 */
.bi-bg-primary { background-color: #0d6efd; color: white; }
.bi-bg-secondary { background-color: #6c757d; color: white; }
.bi-bg-success { background-color: #198754; color: white; }
.bi-bg-danger { background-color: #dc3545; color: white; }
.bi-bg-warning { background-color: #ffc107; color: black; }
.bi-bg-info { background-color: #0dcaf0; color: black; }
.bi-bg-light { background-color: #f8f9fa; color: black; }
.bi-bg-dark { background-color: #212529; color: white; }
