/*!
 * Font Awesome Free 6.4.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)
 * Copyright 2023 Fonticons, Inc.
 */

/* 修改字体路径为本地路径 */
@font-face {
    font-family: "Font Awesome 6 Brands";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("../fonts/fa-brands-400.woff2") format("woff2");
}

@font-face {
    font-family: "Font Awesome 6 Free";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("../fonts/fa-regular-400.woff2") format("woff2");
}

@font-face {
    font-family: "Font Awesome 6 Free";
    font-style: normal;
    font-weight: 900;
    font-display: block;
    src: url("../fonts/fa-solid-900.woff2") format("woff2");
}

/* 基础样式 */
.fa {
    font-family: var(--fa-style-family, "Font Awesome 6 Free");
    font-weight: var(--fa-style, 900);
}

.fa,
.fa-brands,
.fa-classic,
.fa-regular,
.fa-sharp,
.fa-solid,
.fab,
.far,
.fas {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    display: var(--fa-display, inline-block);
    font-style: normal;
    font-variant: normal;
    line-height: 1;
    text-rendering: auto;
}

.fa-classic,
.fa-regular,
.fa-solid,
.far,
.fas {
    font-family: "Font Awesome 6 Free";
}

.fa-brands,
.fab {
    font-family: "Font Awesome 6 Brands";
}

/* 尺寸类 */
.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; }
.fa-6x { font-size: 6em; }
.fa-7x { font-size: 7em; }
.fa-8x { font-size: 8em; }
.fa-9x { font-size: 9em; }
.fa-10x { font-size: 10em; }

.fa-2xs { font-size: .625em; line-height: .1em; vertical-align: .225em; }
.fa-xs { font-size: .75em; line-height: .08333em; vertical-align: .125em; }
.fa-sm { font-size: .875em; line-height: .07143em; vertical-align: .05357em; }
.fa-lg { font-size: 1.25em; line-height: .05em; vertical-align: -.075em; }
.fa-xl { font-size: 1.5em; line-height: .04167em; vertical-align: -.125em; }
.fa-2xl { font-size: 2em; line-height: .03125em; vertical-align: -.1875em; }

/* 布局类 */
.fa-fw { text-align: center; width: 1.25em; }
.fa-ul { list-style-type: none; margin-left: var(--fa-li-margin, 2.5em); padding-left: 0; }
.fa-ul > li { position: relative; }
.fa-li { left: calc(var(--fa-li-width, 2em) * -1); position: absolute; text-align: center; width: var(--fa-li-width, 2em); line-height: inherit; }

/* 边框和间距 */
.fa-border { border-radius: var(--fa-border-radius, .1em); border: var(--fa-border-width, .08em) var(--fa-border-style, solid) var(--fa-border-color, #eee); padding: var(--fa-border-padding, .2em .25em .15em); }
.fa-pull-left { float: left; margin-right: var(--fa-pull-margin, .3em); }
.fa-pull-right { float: right; margin-left: var(--fa-pull-margin, .3em); }

/* 动画类 */
.fa-beat { -webkit-animation-name: fa-beat; animation-name: fa-beat; -webkit-animation-delay: var(--fa-animation-delay, 0s); animation-delay: var(--fa-animation-delay, 0s); -webkit-animation-direction: var(--fa-animation-direction, normal); animation-direction: var(--fa-animation-direction, normal); -webkit-animation-duration: var(--fa-animation-duration, 1s); animation-duration: var(--fa-animation-duration, 1s); -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); animation-iteration-count: var(--fa-animation-iteration-count, infinite); -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); animation-timing-function: var(--fa-animation-timing, ease-in-out); }
.fa-bounce { -webkit-animation-name: fa-bounce; animation-name: fa-bounce; -webkit-animation-delay: var(--fa-animation-delay, 0s); animation-delay: var(--fa-animation-delay, 0s); -webkit-animation-direction: var(--fa-animation-direction, normal); animation-direction: var(--fa-animation-direction, normal); -webkit-animation-duration: var(--fa-animation-duration, 1s); animation-duration: var(--fa-animation-duration, 1s); -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); animation-iteration-count: var(--fa-animation-iteration-count, infinite); -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(.28,.84,.42,1)); animation-timing-function: var(--fa-animation-timing, cubic-bezier(.28,.84,.42,1)); }
.fa-fade { -webkit-animation-name: fa-fade; animation-name: fa-fade; -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); animation-iteration-count: var(--fa-animation-iteration-count, infinite); -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(.4,0,.6,1)); animation-timing-function: var(--fa-animation-timing, cubic-bezier(.4,0,.6,1)); }
.fa-beat-fade, .fa-fade { -webkit-animation-delay: var(--fa-animation-delay, 0s); animation-delay: var(--fa-animation-delay, 0s); -webkit-animation-direction: var(--fa-animation-direction, normal); animation-direction: var(--fa-animation-direction, normal); -webkit-animation-duration: var(--fa-animation-duration, 1s); animation-duration: var(--fa-animation-duration, 1s); }
.fa-beat-fade { -webkit-animation-name: fa-beat-fade; animation-name: fa-beat-fade; -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); animation-iteration-count: var(--fa-animation-iteration-count, infinite); -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(.4,0,.6,1)); animation-timing-function: var(--fa-animation-timing, cubic-bezier(.4,0,.6,1)); }
.fa-flip { -webkit-animation-name: fa-flip; animation-name: fa-flip; -webkit-animation-delay: var(--fa-animation-delay, 0s); animation-delay: var(--fa-animation-delay, 0s); -webkit-animation-direction: var(--fa-animation-direction, normal); animation-direction: var(--fa-animation-direction, normal); -webkit-animation-duration: var(--fa-animation-duration, 1s); animation-duration: var(--fa-animation-duration, 1s); -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); animation-iteration-count: var(--fa-animation-iteration-count, infinite); -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); animation-timing-function: var(--fa-animation-timing, ease-in-out); }
.fa-shake { -webkit-animation-name: fa-shake; animation-name: fa-shake; -webkit-animation-duration: var(--fa-animation-duration, 1s); animation-duration: var(--fa-animation-duration, 1s); -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); animation-iteration-count: var(--fa-animation-iteration-count, infinite); -webkit-animation-timing-function: var(--fa-animation-timing, linear); animation-timing-function: var(--fa-animation-timing, linear); }
.fa-shake, .fa-spin { -webkit-animation-delay: var(--fa-animation-delay, 0s); animation-delay: var(--fa-animation-delay, 0s); -webkit-animation-direction: var(--fa-animation-direction, normal); animation-direction: var(--fa-animation-direction, normal); }
.fa-spin { -webkit-animation-name: fa-spin; animation-name: fa-spin; -webkit-animation-duration: var(--fa-animation-duration, 2s); animation-duration: var(--fa-animation-duration, 2s); -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); animation-iteration-count: var(--fa-animation-iteration-count, infinite); -webkit-animation-timing-function: var(--fa-animation-timing, linear); animation-timing-function: var(--fa-animation-timing, linear); }
.fa-spin-reverse { --fa-animation-direction: reverse; }
.fa-pulse, .fa-spin-pulse { -webkit-animation-name: fa-spin; animation-name: fa-spin; -webkit-animation-direction: var(--fa-animation-direction, normal); animation-direction: var(--fa-animation-direction, normal); -webkit-animation-duration: var(--fa-animation-duration, 1s); animation-duration: var(--fa-animation-duration, 1s); -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); animation-iteration-count: var(--fa-animation-iteration-count, infinite); -webkit-animation-timing-function: var(--fa-animation-timing, steps(8)); animation-timing-function: var(--fa-animation-timing, steps(8)); }

/* 减少动画偏好 */
@media (prefers-reduced-motion: reduce) {
    .fa-beat,
    .fa-beat-fade,
    .fa-bounce,
    .fa-fade,
    .fa-flip,
    .fa-pulse,
    .fa-shake,
    .fa-spin,
    .fa-spin-pulse {
        -webkit-animation-delay: -1ms;
        animation-delay: -1ms;
        -webkit-animation-duration: 1ms;
        animation-duration: 1ms;
        -webkit-animation-iteration-count: 1;
        animation-iteration-count: 1;
        -webkit-transition-delay: 0s;
        transition-delay: 0s;
        -webkit-transition-duration: 0s;
        transition-duration: 0s;
    }
}

/* 动画关键帧 */
@-webkit-keyframes fa-beat {
    0%, 90% { -webkit-transform: scale(1); transform: scale(1); }
    45% { -webkit-transform: scale(var(--fa-beat-scale, 1.25)); transform: scale(var(--fa-beat-scale, 1.25)); }
}
@keyframes fa-beat {
    0%, 90% { -webkit-transform: scale(1); transform: scale(1); }
    45% { -webkit-transform: scale(var(--fa-beat-scale, 1.25)); transform: scale(var(--fa-beat-scale, 1.25)); }
}

@-webkit-keyframes fa-bounce {
    0% { -webkit-transform: scale(1) translateY(0); transform: scale(1) translateY(0); }
    10% { -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, .9)) translateY(0); transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, .9)) translateY(0); }
    30% { -webkit-transform: scale(var(--fa-bounce-jump-scale-x, .9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em)); transform: scale(var(--fa-bounce-jump-scale-x, .9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em)); }
    50% { -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, .95)) translateY(0); transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, .95)) translateY(0); }
    57% { -webkit-transform: scale(1) translateY(var(--fa-bounce-rebound, -.125em)); transform: scale(1) translateY(var(--fa-bounce-rebound, -.125em)); }
    64% { -webkit-transform: scale(1) translateY(0); transform: scale(1) translateY(0); }
    to { -webkit-transform: scale(1) translateY(0); transform: scale(1) translateY(0); }
}
@keyframes fa-bounce {
    0% { -webkit-transform: scale(1) translateY(0); transform: scale(1) translateY(0); }
    10% { -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, .9)) translateY(0); transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, .9)) translateY(0); }
    30% { -webkit-transform: scale(var(--fa-bounce-jump-scale-x, .9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em)); transform: scale(var(--fa-bounce-jump-scale-x, .9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em)); }
    50% { -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, .95)) translateY(0); transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, .95)) translateY(0); }
    57% { -webkit-transform: scale(1) translateY(var(--fa-bounce-rebound, -.125em)); transform: scale(1) translateY(var(--fa-bounce-rebound, -.125em)); }
    64% { -webkit-transform: scale(1) translateY(0); transform: scale(1) translateY(0); }
    to { -webkit-transform: scale(1) translateY(0); transform: scale(1) translateY(0); }
}

@-webkit-keyframes fa-fade {
    50% { opacity: var(--fa-fade-opacity, .4); }
}
@keyframes fa-fade {
    50% { opacity: var(--fa-fade-opacity, .4); }
}

@-webkit-keyframes fa-beat-fade {
    0%, to { opacity: var(--fa-beat-fade-opacity, .4); -webkit-transform: scale(1); transform: scale(1); }
    50% { opacity: 1; -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); transform: scale(var(--fa-beat-fade-scale, 1.125)); }
}
@keyframes fa-beat-fade {
    0%, to { opacity: var(--fa-beat-fade-opacity, .4); -webkit-transform: scale(1); transform: scale(1); }
    50% { opacity: 1; -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); transform: scale(var(--fa-beat-fade-scale, 1.125)); }
}

@-webkit-keyframes fa-flip {
    50% { -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); }
}
@keyframes fa-flip {
    50% { -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); }
}

@-webkit-keyframes fa-shake {
    0% { -webkit-transform: rotate(-15deg); transform: rotate(-15deg); }
    4% { -webkit-transform: rotate(15deg); transform: rotate(15deg); }
    8%, 24% { -webkit-transform: rotate(-18deg); transform: rotate(-18deg); }
    12%, 28% { -webkit-transform: rotate(18deg); transform: rotate(18deg); }
    16% { -webkit-transform: rotate(-22deg); transform: rotate(-22deg); }
    20% { -webkit-transform: rotate(22deg); transform: rotate(22deg); }
    32% { -webkit-transform: rotate(-12deg); transform: rotate(-12deg); }
    36% { -webkit-transform: rotate(12deg); transform: rotate(12deg); }
    40%, to { -webkit-transform: rotate(0deg); transform: rotate(0deg); }
}
@keyframes fa-shake {
    0% { -webkit-transform: rotate(-15deg); transform: rotate(-15deg); }
    4% { -webkit-transform: rotate(15deg); transform: rotate(15deg); }
    8%, 24% { -webkit-transform: rotate(-18deg); transform: rotate(-18deg); }
    12%, 28% { -webkit-transform: rotate(18deg); transform: rotate(18deg); }
    16% { -webkit-transform: rotate(-22deg); transform: rotate(-22deg); }
    20% { -webkit-transform: rotate(22deg); transform: rotate(22deg); }
    32% { -webkit-transform: rotate(-12deg); transform: rotate(-12deg); }
    36% { -webkit-transform: rotate(12deg); transform: rotate(12deg); }
    40%, to { -webkit-transform: rotate(0deg); transform: rotate(0deg); }
}

@-webkit-keyframes fa-spin {
    0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }
    to { -webkit-transform: rotate(1turn); transform: rotate(1turn); }
}
@keyframes fa-spin {
    0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }
    to { -webkit-transform: rotate(1turn); transform: rotate(1turn); }
}

/* 变换类 */
.fa-rotate-90 { -webkit-transform: rotate(90deg); transform: rotate(90deg); }
.fa-rotate-180 { -webkit-transform: rotate(180deg); transform: rotate(180deg); }
.fa-rotate-270 { -webkit-transform: rotate(270deg); transform: rotate(270deg); }
.fa-flip-horizontal { -webkit-transform: scaleX(-1); transform: scaleX(-1); }
.fa-flip-vertical { -webkit-transform: scaleY(-1); transform: scaleY(-1); }
.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical { -webkit-transform: scale(-1); transform: scale(-1); }
.fa-rotate-by { -webkit-transform: rotate(var(--fa-rotate-angle, none)); transform: rotate(var(--fa-rotate-angle, none)); }

/* 堆叠类 */
.fa-stack { display: inline-block; height: 2em; line-height: 2em; position: relative; vertical-align: middle; width: 2.5em; }
.fa-stack-1x, .fa-stack-2x { left: 0; position: absolute; text-align: center; width: 100%; z-index: var(--fa-stack-z-index, auto); }
.fa-stack-1x { line-height: inherit; }
.fa-stack-2x { font-size: 2em; }
.fa-inverse { color: var(--fa-inverse, #fff); }

/* 图标内容 - 只包含我们使用的图标 */
.fa-0:before { content: "\30"; }
.fa-1:before { content: "\31"; }
.fa-2:before { content: "\32"; }
.fa-3:before { content: "\33"; }
.fa-4:before { content: "\34"; }
.fa-5:before { content: "\35"; }
.fa-6:before { content: "\36"; }
.fa-7:before { content: "\37"; }
.fa-8:before { content: "\38"; }
.fa-9:before { content: "\39"; }
.fa-a:before { content: "\41"; }
.fa-b:before { content: "\42"; }
.fa-c:before { content: "\43"; }
.fa-d:before { content: "\44"; }
.fa-e:before { content: "\45"; }
.fa-f:before { content: "\46"; }
.fa-g:before { content: "\47"; }
.fa-h:before { content: "\48"; }
.fa-i:before { content: "\49"; }
.fa-j:before { content: "\4a"; }
.fa-k:before { content: "\4b"; }
.fa-l:before { content: "\4c"; }
.fa-m:before { content: "\4d"; }
.fa-n:before { content: "\4e"; }
.fa-o:before { content: "\4f"; }
.fa-p:before { content: "\50"; }
.fa-q:before { content: "\51"; }
.fa-r:before { content: "\52"; }
.fa-s:before { content: "\53"; }
.fa-t:before { content: "\54"; }
.fa-u:before { content: "\55"; }
.fa-v:before { content: "\56"; }
.fa-w:before { content: "\57"; }
.fa-x:before { content: "\58"; }
.fa-y:before { content: "\59"; }
.fa-z:before { content: "\5a"; }

/* 常用图标 */
.fa-bars:before { content: "\f0c9"; }
.fa-building:before { content: "\f1ad"; }
.fa-cloud:before { content: "\f0c2"; }
.fa-comments:before { content: "\f086"; }
.fa-cogs:before { content: "\f085"; }
.fa-code:before { content: "\f121"; }
.fa-users:before { content: "\f0c0"; }
.fa-brain:before { content: "\f5dc"; }
.fa-chat:before { content: "\f075"; }
.fa-learning:before { content: "\f19d"; }
.fa-play-circle:before { content: "\f144"; }
.fa-project-diagram:before { content: "\f542"; }
.fa-shield-alt:before { content: "\f3ed"; }
.fa-graduation-cap:before { content: "\f19d"; }
.fa-rocket:before { content: "\f135"; }

/* 品牌图标 */
.fa-aws:before { content: "\f375"; }
.fa-microsoft:before { content: "\f3ca"; }
.fa-google:before { content: "\f1a0"; }
.fa-github:before { content: "\f09b"; }
.fa-docker:before { content: "\f395"; }
.fa-kubernetes:before { content: "\f397"; }
.fa-slack:before { content: "\f198"; }

/* 辅助类 */
.fa-sr-only,
.fa-sr-only-focusable:not(:focus),
.sr-only,
.sr-only-focusable:not(:focus) {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* CSS变量 */
:host,
:root {
    --fa-style-family-brands: "Font Awesome 6 Brands";
    --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";
    --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free";
    --fa-style-family-classic: "Font Awesome 6 Free";
    --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free";
} 