/*!
 * Font Awesome Free 6.0.0 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 */

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

/* Font Awesome 字体定义 - 使用CDN */
@font-face {
    font-family: "Font Awesome 6 Free";
    font-style: normal;
    font-weight: 900;
    font-display: block;
    src: url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/webfonts/fa-solid-900.woff2") format("woff2"),
         url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/webfonts/fa-solid-900.woff") format("woff"),
         url("../fonts/fontawesome/fa-solid-900.woff2") format("woff2"),
         url("../fonts/fontawesome/fa-solid-900.woff") format("woff");
}

@font-face {
    font-family: "Font Awesome 6 Free";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/webfonts/fa-regular-400.woff2") format("woff2"),
         url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/webfonts/fa-regular-400.woff") format("woff"),
         url("../fonts/fontawesome/fa-regular-400.woff2") format("woff2"),
         url("../fonts/fontawesome/fa-regular-400.woff") format("woff");
}

@font-face {
    font-family: "Font Awesome 6 Brands";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/webfonts/fa-brands-400.woff2") format("woff2"),
         url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/webfonts/fa-brands-400.woff") format("woff"),
         url("../fonts/fontawesome/fa-brands-400.woff2") format("woff2"),
         url("../fonts/fontawesome/fa-brands-400.woff") format("woff");
}

/* 图标基础类 */
.fas {
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
}

.far {
    font-family: "Font Awesome 6 Free";
    font-weight: 400;
}

.fab {
    font-family: "Font Awesome 6 Brands";
    font-weight: 400;
}

/* 常用图标 */
.fa-home::before { content: "\f015"; }
.fa-book::before { content: "\f02d"; }
.fa-briefcase::before { content: "\f0b1"; }
.fa-history::before { content: "\f1da"; }
.fa-flask::before { content: "\f0c3"; }
.fa-code::before { content: "\f121"; }
.fa-question-circle::before { content: "\f059"; }
.fa-search::before { content: "\f002"; }
.fa-phone::before { content: "\f095"; }
.fa-envelope::before { content: "\f0e0"; }
.fa-clock::before { content: "\f017"; }
.fa-calendar::before { content: "\f133"; }
.fa-eye::before { content: "\f06e"; }
.fa-thumbs-up::before { content: "\f164"; }
.fa-thumbs-down::before { content: "\f165"; }
.fa-download::before { content: "\f019"; }
.fa-star::before { content: "\f005"; }
.fa-fire::before { content: "\f06d"; }
.fa-chart-bar::before { content: "\f080"; }
.fa-link::before { content: "\f0c1"; }
.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-times::before { content: "\f00d"; }
.fa-check::before { content: "\f00c"; }
.fa-plus::before { content: "\f067"; }
.fa-minus::before { content: "\f068"; }
.fa-edit::before { content: "\f044"; }
.fa-trash::before { content: "\f1f8"; }
.fa-save::before { content: "\f0c7"; }
.fa-copy::before { content: "\f0c5"; }
.fa-share::before { content: "\f064"; }
.fa-print::before { content: "\f02f"; }
.fa-file-alt::before { content: "\f15c"; }
.fa-folder::before { content: "\f07b"; }
.fa-image::before { content: "\f03e"; }
.fa-video::before { content: "\f03d"; }
.fa-music::before { content: "\f001"; }
.fa-user::before { content: "\f007"; }
.fa-users::before { content: "\f0c0"; }
.fa-cog::before { content: "\f013"; }
.fa-cogs::before { content: "\f085"; }
.fa-wrench::before { content: "\f0ad"; }
.fa-tools::before { content: "\f7d9"; }
.fa-shield-alt::before { content: "\f3ed"; }
.fa-lock::before { content: "\f023"; }
.fa-unlock::before { content: "\f09c"; }
.fa-key::before { content: "\f084"; }
.fa-database::before { content: "\f1c0"; }
.fa-server::before { content: "\f233"; }
.fa-cloud::before { content: "\f0c2"; }
.fa-wifi::before { content: "\f1eb"; }
.fa-signal::before { content: "\f012"; }
.fa-battery-full::before { content: "\f240"; }
.fa-plug::before { content: "\f1e6"; }
.fa-lightbulb::before { content: "\f0eb"; }
.fa-bell::before { content: "\f0f3"; }
.fa-volume-up::before { content: "\f028"; }
.fa-microphone::before { content: "\f130"; }
.fa-camera::before { content: "\f030"; }
.fa-map::before { content: "\f279"; }
.fa-compass::before { content: "\f14e"; }
.fa-globe::before { content: "\f0ac"; }
.fa-flag::before { content: "\f024"; }
.fa-heart::before { content: "\f004"; }
.fa-smile::before { content: "\f118"; }
.fa-frown::before { content: "\f119"; }
.fa-meh::before { content: "\f11a"; }
.fa-magic::before { content: "\f0d0"; }
.fa-rocket::before { content: "\f135"; }
.fa-trophy::before { content: "\f091"; }
.fa-medal::before { content: "\f5a2"; }
.fa-gift::before { content: "\f06b"; }
.fa-birthday-cake::before { content: "\f1fd"; }
.fa-coffee::before { content: "\f0f4"; }
.fa-pizza-slice::before { content: "\f818"; }
.fa-car::before { content: "\f1b9"; }
.fa-plane::before { content: "\f072"; }
.fa-train::before { content: "\f238"; }
.fa-ship::before { content: "\f21a"; }
.fa-bicycle::before { content: "\f206"; }
.fa-walking::before { content: "\f554"; }
.fa-running::before { content: "\f70c"; }

/* 品牌图标 */
.fa-qq::before { content: "\f1d6"; }
.fa-weixin::before { content: "\f1d7"; }
.fa-weibo::before { content: "\f18a"; }
.fa-github::before { content: "\f09b"; }
.fa-twitter::before { content: "\f099"; }
.fa-facebook::before { content: "\f09a"; }
.fa-instagram::before { content: "\f16d"; }
.fa-linkedin::before { content: "\f08c"; }
.fa-youtube::before { content: "\f167"; }
.fa-google::before { content: "\f1a0"; }
.fa-apple::before { content: "\f179"; }
.fa-microsoft::before { content: "\f3ca"; }
.fa-windows::before { content: "\f17a"; }
.fa-android::before { content: "\f17b"; }
.fa-chrome::before { content: "\f268"; }
.fa-firefox::before { content: "\f269"; }
.fa-safari::before { content: "\f267"; }
.fa-edge::before { content: "\f282"; }
.fa-js-square::before { content: "\f3b9"; }
.fa-html5::before { content: "\f13b"; }
.fa-css3-alt::before { content: "\f38b"; }
.fa-node-js::before { content: "\f3d3"; }
.fa-npm::before { content: "\f3d4"; }
.fa-git-alt::before { content: "\f841"; }
.fa-docker::before { content: "\f395"; }

/* 技术相关图标 */
.fa-code-branch::before { content: "\f126"; }
.fa-terminal::before { content: "\f120"; }
.fa-laptop-code::before { content: "\f5fc"; }
.fa-desktop::before { content: "\f108"; }
.fa-mobile-alt::before { content: "\f3cd"; }
.fa-tablet-alt::before { content: "\f3fa"; }
.fa-keyboard::before { content: "\f11c"; }
.fa-mouse::before { content: "\f8cc"; }
.fa-headphones::before { content: "\f025"; }
.fa-gamepad::before { content: "\f11b"; }
.fa-tv::before { content: "\f26c"; }
.fa-camera-retro::before { content: "\f083"; }
.fa-film::before { content: "\f008"; }
.fa-photo-video::before { content: "\f87c"; }

/* 尺寸类 */
.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-xl { font-size: 1.5em; line-height: 0.6667em; vertical-align: -0.075em; }
.fa-2x { font-size: 2em; }
.fa-3x { font-size: 3em; }
.fa-4x { font-size: 4em; }
.fa-5x { font-size: 5em; }

/* 旋转和翻转 */
.fa-rotate-90 { transform: rotate(90deg); }
.fa-rotate-180 { transform: rotate(180deg); }
.fa-rotate-270 { transform: rotate(270deg); }
.fa-flip-horizontal { transform: scaleX(-1); }
.fa-flip-vertical { transform: scaleY(-1); }

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

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

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

/* 堆叠图标 */
.fa-stack {
    display: inline-block;
    height: 2em;
    line-height: 2em;
    position: relative;
    vertical-align: middle;
    width: 2em;
}

.fa-stack-1x, .fa-stack-2x {
    left: 0;
    position: absolute;
    text-align: center;
    width: 100%;
}

.fa-stack-1x { line-height: inherit; }
.fa-stack-2x { font-size: 2em; }

/* 边框和拉取 */
.fa-border {
    border: solid 0.08em #eee;
    border-radius: 0.1em;
    padding: 0.2em 0.25em 0.15em;
}

.fa-pull-left {
    float: left;
    margin-right: 0.3em;
}

.fa-pull-right {
    float: right;
    margin-left: 0.3em;
}

/* 更多常用图标 */
.fa-sync-alt::before { content: "\f2f1"; }
.fa-sync::before { content: "\f021"; }
.fa-tachometer-alt::before { content: "\f3fd"; }
.fa-layer-group::before { content: "\f5fd"; }
.fa-brain::before { content: "\f5dc"; }
.fa-comments::before { content: "\f086"; }
.fa-ticket-alt::before { content: "\f3ff"; }
.fa-headset::before { content: "\f590"; }
.fa-th-large::before { content: "\f009"; }
.fa-th::before { content: "\f00a"; }
.fa-list::before { content: "\f03a"; }
.fa-file-code::before { content: "\f1c9"; }
.fa-vial::before { content: "\f492"; }
.fa-check-circle::before { content: "\f058"; }
.fa-bookmark::before { content: "\f02e"; }
.fa-at::before { content: "\f1fa"; }
.fa-newspaper::before { content: "\f1ea"; }
.fa-tags::before { content: "\f02c"; }
.fa-tag::before { content: "\f02b"; }
.fa-stream::before { content: "\f550"; }
.fa-question::before { content: "\f128"; }
.fa-info-circle::before { content: "\f05a"; }
.fa-exclamation-circle::before { content: "\f06a"; }
.fa-warning::before { content: "\f071"; }
.fa-ban::before { content: "\f05e"; }
.fa-arrow-right::before { content: "\f061"; }
.fa-arrow-left::before { content: "\f060"; }
.fa-arrow-up::before { content: "\f062"; }
.fa-arrow-down::before { content: "\f063"; }
.fa-angle-right::before { content: "\f105"; }
.fa-angle-left::before { content: "\f104"; }
.fa-angle-up::before { content: "\f106"; }
.fa-angle-down::before { content: "\f107"; }
.fa-caret-right::before { content: "\f0da"; }
.fa-caret-left::before { content: "\f0d9"; }
.fa-caret-up::before { content: "\f0d8"; }
.fa-caret-down::before { content: "\f0d7"; }
.fa-bars::before { content: "\f0c9"; }
.fa-ellipsis-h::before { content: "\f141"; }
.fa-ellipsis-v::before { content: "\f142"; }
.fa-filter::before { content: "\f0b0"; }
.fa-sort::before { content: "\f0dc"; }
.fa-sort-up::before { content: "\f0de"; }
.fa-sort-down::before { content: "\f0dd"; }
.fa-sort-alpha-down::before { content: "\f15d"; }
.fa-sort-alpha-up::before { content: "\f15e"; }
.fa-sort-numeric-down::before { content: "\f162"; }
.fa-sort-numeric-up::before { content: "\f163"; }

/* 固定宽度 */
.fa-fw {
    text-align: center;
    width: 1.25em;
}