@font-face{font-family:remixicon;src:url('/static/fonts/remixicon/remixicon.eot?v=1769685282643');src:url('/static/fonts/remixicon/remixicon.eot?v=1769685282643#iefix') format('embedded-opentype'),url("/static/fonts/remixicon/remixicon.woff2?v=1769685282643") format("woff2"),url("/static/fonts/remixicon/remixicon.woff?v=1769685282643") format("woff"),url('/static/fonts/remixicon/remixicon.ttf?v=1769685282643') format('truetype'),url('/static/fonts/remixicon/remixicon.svg?v=1769685282643#remixicon') format('svg');font-display:swap}[class*=" ri-"],[class^=ri-]{font-family:remixicon!important;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ri-lg{font-size:1.3333em;line-height:.75em;vertical-align:-.0667em}.ri-xl{font-size:1.5em;line-height:.6666em;vertical-align:-.075em}.ri-xxs{font-size:.5em}.ri-xs{font-size:.75em}.ri-sm{font-size:.875em}.ri-1x{font-size:1em}.ri-2x{font-size:2em}.ri-3x{font-size:3em}.ri-4x{font-size:4em}.ri-5x{font-size:5em}.ri-6x{font-size:6em}.ri-7x{font-size:7em}.ri-8x{font-size:8em}.ri-9x{font-size:9em}.ri-10x{font-size:10em}.ri-fw{text-align:center;width:1.25em}.ri-24-hours-fill:before{content:"\ea01"}.ri-24-hours-line:before{content:"\ea02"}.ri-4k-fill:before{content:"\ea03"}.ri-4k-line:before{content:"\ea04"}.ri-a-b:before{content:"\ea05"}.ri-account-box-fill:before{content:"\ea06"}.ri-account-box-line:before{content:"\ea07"}.ri-account-circle-fill:before{content:"\ea08"}.ri-account-circle-line:before{content:"\ea09"}.ri-account-pin-box-fill:before{content:"\ea0a"}.ri-account-pin-box-line:before{content:"\ea0b"}.ri-account-pin-circle-fill:before{content:"\ea0c"}.ri-account-pin-circle-line:before{content:"\ea0d"}.ri-add-box-fill:before{content:"\ea0e"}.ri-add-box-line:before{content:"\ea0f"}.ri-add-circle-fill:before{content:"\ea10"}.ri-add-circle-line:before{content:"\ea11"}.ri-add-fill:before{content:"\ea12"}.ri-add-line:before{content:"\ea13"}.ri-admin-fill:before{content:"\ea14"}.ri-admin-line:before{content:"\ea15"}.ri-advertisement-fill:before{content:"\ea16"}.ri-advertisement-line:before{content:"\ea17"}.ri-airplay-fill:before{content:"\ea18"}.ri-airplay-line:before{content:"\ea19"}.ri-alarm-fill:before{content:"\ea1a"}.ri-alarm-line:before{content:"\ea1b"}.ri-alarm-warning-fill:before{content:"\ea1c"}.ri-alarm-warning-line:before{content:"\ea1d"}.ri-album-fill:before{content:"\ea1e"}.ri-album-line:before{content:"\ea1f"}.ri-alert-fill:before{content:"\ea20"}.ri-alert-line:before{content:"\ea21"}.ri-aliens-fill:before{content:"\ea22"}.ri-aliens-line:before{content:"\ea23"}.ri-align-bottom:before{content:"\ea24"}.ri-align-center:before{content:"\ea25"}.ri-align-justify:before{content:"\ea26"}.ri-align-left:before{content:"\ea27"}.ri-align-right:before{content:"\ea28"}.ri-align-top:before{content:"\ea29"}.ri-align-vertically:before{content:"\ea2a"}.ri-alipay-fill:before{content:"\ea2b"}.ri-alipay-line:before{content:"\ea2c"}.ri-amazon-fill:before{content:"\ea2d"}.ri-amazon-line:before{content:"\ea2e"}.ri-anchor-fill:before{content:"\ea2f"}.ri-anchor-line:before{content:"\ea30"}.ri-ancient-gate-fill:before{content:"\ea31"}.ri-ancient-gate-line:before{content:"\ea32"}.ri-ancient-pavilion-fill:before{content:"\ea33"}.ri-ancient-pavilion-line:before{content:"\ea34"}.ri-android-fill:before{content:"\ea35"}.ri-android-line:before{content:"\ea36"}.ri-angularjs-fill:before{content:"\ea37"}.ri-angularjs-line:before{content:"\ea38"}.ri-anticlockwise-2-fill:before{content:"\ea39"}.ri-anticlockwise-2-line:before{content:"\ea3a"}.ri-anticlockwise-fill:before{content:"\ea3b"}.ri-anticlockwise-line:before{content:"\ea3c"}.ri-app-store-fill:before{content:"\ea3d"}.ri-app-store-line:before{content:"\ea3e"}.ri-apple-fill:before{content:"\ea3f"}.ri-apple-line:before{content:"\ea40"}.ri-apps-2-fill:before{content:"\ea41"}.ri-apps-2-line:before{content:"\ea42"}.ri-apps-fill:before{content:"\ea43"}.ri-apps-line:before{content:"\ea44"}.ri-archive-drawer-fill:before{content:"\ea45"}.ri-archive-drawer-line:before{content:"\ea46"}.ri-archive-fill:before{content:"\ea47"}.ri-archive-line:before{content:"\ea48"}.ri-arrow-down-circle-fill:before{content:"\ea49"}.ri-arrow-down-circle-line:before{content:"\ea4a"}.ri-arrow-down-fill:before{content:"\ea4b"}.ri-arrow-down-line:before{content:"\ea4c"}.ri-arrow-down-s-fill:before{content:"\ea4d"}.ri-arrow-down-s-line:before{content:"\ea4e"}.ri-arrow-drop-down-fill:before{content:"\ea4f"}.ri-arrow-drop-down-line:before{content:"\ea50"}.ri-arrow-drop-left-fill:before{content:"\ea51"}.ri-arrow-drop-left-line:before{content:"\ea52"}.ri-arrow-drop-right-fill:before{content:"\ea53"}.ri-arrow-drop-right-line:before{content:"\ea54"}.ri-arrow-drop-up-fill:before{content:"\ea55"}.ri-arrow-drop-up-line:before{content:"\ea56"}.ri-arrow-go-back-fill:before{content:"\ea57"}.ri-arrow-go-back-line:before{content:"\ea58"}.ri-arrow-go-forward-fill:before{content:"\ea59"}.ri-arrow-go-forward-line:before{content:"\ea5a"}.ri-arrow-left-circle-fill:before{content:"\ea5b"}.ri-arrow-left-circle-line:before{content:"\ea5c"}.ri-arrow-left-down-fill:before{content:"\ea5d"}.ri-arrow-left-down-line:before{content:"\ea5e"}.ri-arrow-left-fill:before{content:"\ea5f"}.ri-arrow-left-line:before{content:"\ea60"}.ri-arrow-left-right-fill:before{content:"\ea61"}.ri-arrow-left-right-line:before{content:"\ea62"}.ri-arrow-left-s-fill:before{content:"\ea63"}.ri-arrow-left-s-line:before{content:"\ea64"}.ri-arrow-left-up-fill:before{content:"\ea65"}.ri-arrow-left-up-line:before{content:"\ea66"}.ri-arrow-right-circle-fill:before{content:"\ea67"}.ri-arrow-right-circle-line:before{content:"\ea68"}.ri-arrow-right-down-fill:before{content:"\ea69"}.ri-arrow-right-down-line:before{content:"\ea6a"}.ri-arrow-right-fill:before{content:"\ea6b"}.ri-arrow-right-line:before{content:"\ea6c"}.ri-arrow-right-s-fill:before{content:"\ea6d"}.ri-arrow-right-s-line:before{content:"\ea6e"}.ri-arrow-right-up-fill:before{content:"\ea6f"}.ri-arrow-right-up-line:before{content:"\ea70"}.ri-arrow-up-circle-fill:before{content:"\ea71"}.ri-arrow-up-circle-line:before{content:"\ea72"}.ri-arrow-up-down-fill:before{content:"\ea73"}.ri-arrow-up-down-line:before{content:"\ea74"}.ri-arrow-up-fill:before{content:"\ea75"}.ri-arrow-up-line:before{content:"\ea76"}.ri-arrow-up-s-fill:before{content:"\ea77"}.ri-arrow-up-s-line:before{content:"\ea78"}.ri-artboard-2-fill:before{content:"\ea79"}.ri-artboard-2-line:before{content:"\ea7a"}.ri-artboard-fill:before{content:"\ea7b"}.ri-artboard-line:before{content:"\ea7c"}.ri-article-fill:before{content:"\ea7d"}.ri-article-line:before{content:"\ea7e"}.ri-aspect-ratio-fill:before{content:"\ea7f"}.ri-aspect-ratio-line:before{content:"\ea80"}.ri-asterisk:before{content:"\ea81"}.ri-at-fill:before{content:"\ea82"}.ri-at-line:before{content:"\ea83"}.ri-attachment-2:before{content:"\ea84"}.ri-attachment-fill:before{content:"\ea85"}.ri-attachment-line:before{content:"\ea86"}.ri-auction-fill:before{content:"\ea87"}.ri-auction-line:before{content:"\ea88"}.ri-award-fill:before{content:"\ea89"}.ri-award-line:before{content:"\ea8a"}.ri-baidu-fill:before{content:"\ea8b"}.ri-baidu-line:before{content:"\ea8c"}.ri-ball-pen-fill:before{content:"\ea8d"}.ri-ball-pen-line:before{content:"\ea8e"}.ri-bank-card-2-fill:before{content:"\ea8f"}.ri-bank-card-2-line:before{content:"\ea90"}.ri-bank-card-fill:before{content:"\ea91"}.ri-bank-card-line:before{content:"\ea92"}.ri-bank-fill:before{content:"\ea93"}.ri-bank-line:before{content:"\ea94"}.ri-bar-chart-2-fill:before{content:"\ea95"}.ri-bar-chart-2-line:before{content:"\ea96"}.ri-bar-chart-box-fill:before{content:"\ea97"}.ri-bar-chart-box-line:before{content:"\ea98"}.ri-bar-chart-fill:before{content:"\ea99"}.ri-bar-chart-grouped-fill:before{content:"\ea9a"}.ri-bar-chart-grouped-line:before{content:"\ea9b"}.ri-bar-chart-horizontal-fill:before{content:"\ea9c"}.ri-bar-chart-horizontal-line:before{content:"\ea9d"}.ri-bar-chart-line:before{content:"\ea9e"}.ri-barcode-box-fill:before{content:"\ea9f"}.ri-barcode-box-line:before{content:"\eaa0"}.ri-barcode-fill:before{content:"\eaa1"}.ri-barcode-line:before{content:"\eaa2"}.ri-barricade-fill:before{content:"\eaa3"}.ri-barricade-line:before{content:"\eaa4"}.ri-base-station-fill:before{content:"\eaa5"}.ri-base-station-line:before{content:"\eaa6"}.ri-basketball-fill:before{content:"\eaa7"}.ri-basketball-line:before{content:"\eaa8"}.ri-battery-2-charge-fill:before{content:"\eaa9"}.ri-battery-2-charge-line:before{content:"\eaaa"}.ri-battery-2-fill:before{content:"\eaab"}.ri-battery-2-line:before{content:"\eaac"}.ri-battery-charge-fill:before{content:"\eaad"}.ri-battery-charge-line:before{content:"\eaae"}.ri-battery-fill:before{content:"\eaaf"}.ri-battery-line:before{content:"\eab0"}.ri-battery-low-fill:before{content:"\eab1"}.ri-battery-low-line:before{content:"\eab2"}.ri-battery-saver-fill:before{content:"\eab3"}.ri-battery-saver-line:before{content:"\eab4"}.ri-battery-share-fill:before{content:"\eab5"}.ri-battery-share-line:before{content:"\eab6"}.ri-bear-smile-fill:before{content:"\eab7"}.ri-bear-smile-line:before{content:"\eab8"}.ri-behance-fill:before{content:"\eab9"}.ri-behance-line:before{content:"\eaba"}.ri-bell-fill:before{content:"\eabb"}.ri-bell-line:before{content:"\eabc"}.ri-bike-fill:before{content:"\eabd"}.ri-bike-line:before{content:"\eabe"}.ri-bilibili-fill:before{content:"\eabf"}.ri-bilibili-line:before{content:"\eac0"}.ri-bill-fill:before{content:"\eac1"}.ri-bill-line:before{content:"\eac2"}.ri-billiards-fill:before{content:"\eac3"}.ri-billiards-line:before{content:"\eac4"}.ri-bit-coin-fill:before{content:"\eac5"}.ri-bit-coin-line:before{content:"\eac6"}.ri-blaze-fill:before{content:"\eac7"}.ri-blaze-line:before{content:"\eac8"}.ri-bluetooth-connect-fill:before{content:"\eac9"}.ri-bluetooth-connect-line:before{content:"\eaca"}.ri-bluetooth-fill:before{content:"\eacb"}.ri-bluetooth-line:before{content:"\eacc"}.ri-blur-off-fill:before{content:"\eacd"}.ri-blur-off-line:before{content:"\eace"}.ri-body-scan-fill:before{content:"\eacf"}.ri-body-scan-line:before{content:"\ead0"}.ri-bold:before{content:"\ead1"}.ri-book-2-fill:before{content:"\ead2"}.ri-book-2-line:before{content:"\ead3"}.ri-book-3-fill:before{content:"\ead4"}.ri-book-3-line:before{content:"\ead5"}.ri-book-fill:before{content:"\ead6"}.ri-book-line:before{content:"\ead7"}.ri-book-marked-fill:before{content:"\ead8"}.ri-book-marked-line:before{content:"\ead9"}.ri-book-open-fill:before{content:"\eada"}.ri-book-open-line:before{content:"\eadb"}.ri-book-read-fill:before{content:"\eadc"}.ri-book-read-line:before{content:"\eadd"}.ri-booklet-fill:before{content:"\eade"}.ri-booklet-line:before{content:"\eadf"}.ri-bookmark-2-fill:before{content:"\eae0"}.ri-bookmark-2-line:before{content:"\eae1"}.ri-bookmark-3-fill:before{content:"\eae2"}.ri-bookmark-3-line:before{content:"\eae3"}.ri-bookmark-fill:before{content:"\eae4"}.ri-bookmark-line:before{content:"\eae5"}.ri-boxing-fill:before{content:"\eae6"}.ri-boxing-line:before{content:"\eae7"}.ri-braces-fill:before{content:"\eae8"}.ri-braces-line:before{content:"\eae9"}.ri-brackets-fill:before{content:"\eaea"}.ri-brackets-line:before{content:"\eaeb"}.ri-briefcase-2-fill:before{content:"\eaec"}.ri-briefcase-2-line:before{content:"\eaed"}.ri-briefcase-3-fill:before{content:"\eaee"}.ri-briefcase-3-line:before{content:"\eaef"}.ri-briefcase-4-fill:before{content:"\eaf0"}.ri-briefcase-4-line:before{content:"\eaf1"}.ri-briefcase-5-fill:before{content:"\eaf2"}.ri-briefcase-5-line:before{content:"\eaf3"}.ri-briefcase-fill:before{content:"\eaf4"}.ri-briefcase-line:before{content:"\eaf5"}.ri-bring-forward:before{content:"\eaf6"}.ri-bring-to-front:before{content:"\eaf7"}.ri-broadcast-fill:before{content:"\eaf8"}.ri-broadcast-line:before{content:"\eaf9"}.ri-brush-2-fill:before{content:"\eafa"}.ri-brush-2-line:before{content:"\eafb"}.ri-brush-3-fill:before{content:"\eafc"}.ri-brush-3-line:before{content:"\eafd"}.ri-brush-4-fill:before{content:"\eafe"}.ri-brush-4-line:before{content:"\eaff"}.ri-brush-fill:before{content:"\eb00"}.ri-brush-line:before{content:"\eb01"}.ri-bubble-chart-fill:before{content:"\eb02"}.ri-bubble-chart-line:before{content:"\eb03"}.ri-bug-2-fill:before{content:"\eb04"}.ri-bug-2-line:before{content:"\eb05"}.ri-bug-fill:before{content:"\eb06"}.ri-bug-line:before{content:"\eb07"}.ri-building-2-fill:before{content:"\eb08"}.ri-building-2-line:before{content:"\eb09"}.ri-building-3-fill:before{content:"\eb0a"}.ri-building-3-line:before{content:"\eb0b"}.ri-building-4-fill:before{content:"\eb0c"}.ri-building-4-line:before{content:"\eb0d"}.ri-building-fill:before{content:"\eb0e"}.ri-building-line:before{content:"\eb0f"}.ri-bus-2-fill:before{content:"\eb10"}.ri-bus-2-line:before{content:"\eb11"}.ri-bus-fill:before{content:"\eb12"}.ri-bus-line:before{content:"\eb13"}.ri-bus-wifi-fill:before{content:"\eb14"}.ri-bus-wifi-line:before{content:"\eb15"}.ri-cactus-fill:before{content:"\eb16"}.ri-cactus-line:before{content:"\eb17"}.ri-cake-2-fill:before{content:"\eb18"}.ri-cake-2-line:before{content:"\eb19"}.ri-cake-3-fill:before{content:"\eb1a"}.ri-cake-3-line:before{content:"\eb1b"}.ri-cake-fill:before{content:"\eb1c"}.ri-cake-line:before{content:"\eb1d"}.ri-calculator-fill:before{content:"\eb1e"}.ri-calculator-line:before{content:"\eb1f"}.ri-calendar-2-fill:before{content:"\eb20"}.ri-calendar-2-line:before{content:"\eb21"}.ri-calendar-check-fill:before{content:"\eb22"}.ri-calendar-check-line:before{content:"\eb23"}.ri-calendar-event-fill:before{content:"\eb24"}.ri-calendar-event-line:before{content:"\eb25"}.ri-calendar-fill:before{content:"\eb26"}.ri-calendar-line:before{content:"\eb27"}.ri-calendar-todo-fill:before{content:"\eb28"}.ri-calendar-todo-line:before{content:"\eb29"}.ri-camera-2-fill:before{content:"\eb2a"}.ri-camera-2-line:before{content:"\eb2b"}.ri-camera-3-fill:before{content:"\eb2c"}.ri-camera-3-line:before{content:"\eb2d"}.ri-camera-fill:before{content:"\eb2e"}.ri-camera-lens-fill:before{content:"\eb2f"}.ri-camera-lens-line:before{content:"\eb30"}.ri-camera-line:before{content:"\eb31"}.ri-camera-off-fill:before{content:"\eb32"}.ri-camera-off-line:before{content:"\eb33"}.ri-camera-switch-fill:before{content:"\eb34"}.ri-camera-switch-line:before{content:"\eb35"}.ri-capsule-fill:before{content:"\eb36"}.ri-capsule-line:before{content:"\eb37"}.ri-car-fill:before{content:"\eb38"}.ri-car-line:before{content:"\eb39"}.ri-car-washing-fill:before{content:"\eb3a"}.ri-car-washing-line:before{content:"\eb3b"}.ri-caravan-fill:before{content:"\eb3c"}.ri-caravan-line:before{content:"\eb3d"}.ri-cast-fill:before{content:"\eb3e"}.ri-cast-line:before{content:"\eb3f"}.ri-cellphone-fill:before{content:"\eb40"}.ri-cellphone-line:before{content:"\eb41"}.ri-celsius-fill:before{content:"\eb42"}.ri-celsius-line:before{content:"\eb43"}.ri-centos-fill:before{content:"\eb44"}.ri-centos-line:before{content:"\eb45"}.ri-character-recognition-fill:before{content:"\eb46"}.ri-character-recognition-line:before{content:"\eb47"}.ri-charging-pile-2-fill:before{content:"\eb48"}.ri-charging-pile-2-line:before{content:"\eb49"}.ri-charging-pile-fill:before{content:"\eb4a"}.ri-charging-pile-line:before{content:"\eb4b"}.ri-chat-1-fill:before{content:"\eb4c"}.ri-chat-1-line:before{content:"\eb4d"}.ri-chat-2-fill:before{content:"\eb4e"}.ri-chat-2-line:before{content:"\eb4f"}.ri-chat-3-fill:before{content:"\eb50"}.ri-chat-3-line:before{content:"\eb51"}.ri-chat-4-fill:before{content:"\eb52"}.ri-chat-4-line:before{content:"\eb53"}.ri-chat-check-fill:before{content:"\eb54"}.ri-chat-check-line:before{content:"\eb55"}.ri-chat-delete-fill:before{content:"\eb56"}.ri-chat-delete-line:before{content:"\eb57"}.ri-chat-download-fill:before{content:"\eb58"}.ri-chat-download-line:before{content:"\eb59"}.ri-chat-follow-up-fill:before{content:"\eb5a"}.ri-chat-follow-up-line:before{content:"\eb5b"}.ri-chat-forward-fill:before{content:"\eb5c"}.ri-chat-forward-line:before{content:"\eb5d"}.ri-chat-heart-fill:before{content:"\eb5e"}.ri-chat-heart-line:before{content:"\eb5f"}.ri-chat-history-fill:before{content:"\eb60"}.ri-chat-history-line:before{content:"\eb61"}.ri-chat-new-fill:before{content:"\eb62"}.ri-chat-new-line:before{content:"\eb63"}.ri-chat-off-fill:before{content:"\eb64"}.ri-chat-off-line:before{content:"\eb65"}.ri-chat-poll-fill:before{content:"\eb66"}.ri-chat-poll-line:before{content:"\eb67"}.ri-chat-private-fill:before{content:"\eb68"}.ri-chat-private-line:before{content:"\eb69"}.ri-chat-quote-fill:before{content:"\eb6a"}.ri-chat-quote-line:before{content:"\eb6b"}.ri-chat-settings-fill:before{content:"\eb6c"}.ri-chat-settings-line:before{content:"\eb6d"}.ri-chat-smile-2-fill:before{content:"\eb6e"}.ri-chat-smile-2-line:before{content:"\eb6f"}.ri-chat-smile-3-fill:before{content:"\eb70"}.ri-chat-smile-3-line:before{content:"\eb71"}.ri-chat-smile-fill:before{content:"\eb72"}.ri-chat-smile-line:before{content:"\eb73"}.ri-chat-upload-fill:before{content:"\eb74"}.ri-chat-upload-line:before{content:"\eb75"}.ri-chat-voice-fill:before{content:"\eb76"}.ri-chat-voice-line:before{content:"\eb77"}.ri-check-double-fill:before{content:"\eb78"}.ri-check-double-line:before{content:"\eb79"}.ri-check-fill:before{content:"\eb7a"}.ri-check-line:before{content:"\eb7b"}.ri-checkbox-blank-circle-fill:before{content:"\eb7c"}.ri-checkbox-blank-circle-line:before{content:"\eb7d"}.ri-checkbox-blank-fill:before{content:"\eb7e"}.ri-checkbox-blank-line:before{content:"\eb7f"}.ri-checkbox-circle-fill:before{content:"\eb80"}.ri-checkbox-circle-line:before{content:"\eb81"}.ri-checkbox-fill:before{content:"\eb82"}.ri-checkbox-indeterminate-fill:before{content:"\eb83"}.ri-checkbox-indeterminate-line:before{content:"\eb84"}.ri-checkbox-line:before{content:"\eb85"}.ri-checkbox-multiple-blank-fill:before{content:"\eb86"}.ri-checkbox-multiple-blank-line:before{content:"\eb87"}.ri-checkbox-multiple-fill:before{content:"\eb88"}.ri-checkbox-multiple-line:before{content:"\eb89"}.ri-china-railway-fill:before{content:"\eb8a"}.ri-china-railway-line:before{content:"\eb8b"}.ri-chrome-fill:before{content:"\eb8c"}.ri-chrome-line:before{content:"\eb8d"}.ri-clapperboard-fill:before{content:"\eb8e"}.ri-clapperboard-line:before{content:"\eb8f"}.ri-clipboard-fill:before{content:"\eb90"}.ri-clipboard-line:before{content:"\eb91"}.ri-clockwise-2-fill:before{content:"\eb92"}.ri-clockwise-2-line:before{content:"\eb93"}.ri-clockwise-fill:before{content:"\eb94"}.ri-clockwise-line:before{content:"\eb95"}.ri-close-circle-fill:before{content:"\eb96"}.ri-close-circle-line:before{content:"\eb97"}.ri-close-fill:before{content:"\eb98"}.ri-close-line:before{content:"\eb99"}.ri-closed-captioning-fill:before{content:"\eb9a"}.ri-closed-captioning-line:before{content:"\eb9b"}.ri-cloud-fill:before{content:"\eb9c"}.ri-cloud-line:before{content:"\eb9d"}.ri-cloud-off-fill:before{content:"\eb9e"}.ri-cloud-off-line:before{content:"\eb9f"}.ri-cloud-windy-fill:before{content:"\eba0"}.ri-cloud-windy-line:before{content:"\eba1"}.ri-cloudy-2-fill:before{content:"\eba2"}.ri-cloudy-2-line:before{content:"\eba3"}.ri-cloudy-fill:before{content:"\eba4"}.ri-cloudy-line:before{content:"\eba5"}.ri-code-box-fill:before{content:"\eba6"}.ri-code-box-line:before{content:"\eba7"}.ri-code-fill:before{content:"\eba8"}.ri-code-line:before{content:"\eba9"}.ri-code-s-fill:before{content:"\ebaa"}.ri-code-s-line:before{content:"\ebab"}.ri-code-s-slash-fill:before{content:"\ebac"}.ri-code-s-slash-line:before{content:"\ebad"}.ri-code-view:before{content:"\ebae"}.ri-codepen-fill:before{content:"\ebaf"}.ri-codepen-line:before{content:"\ebb0"}.ri-coin-fill:before{content:"\ebb1"}.ri-coin-line:before{content:"\ebb2"}.ri-coins-fill:before{content:"\ebb3"}.ri-coins-line:before{content:"\ebb4"}.ri-collage-fill:before{content:"\ebb5"}.ri-collage-line:before{content:"\ebb6"}.ri-command-fill:before{content:"\ebb7"}.ri-command-line:before{content:"\ebb8"}.ri-community-fill:before{content:"\ebb9"}.ri-community-line:before{content:"\ebba"}.ri-compass-2-fill:before{content:"\ebbb"}.ri-compass-2-line:before{content:"\ebbc"}.ri-compass-3-fill:before{content:"\ebbd"}.ri-compass-3-line:before{content:"\ebbe"}.ri-compass-4-fill:before{content:"\ebbf"}.ri-compass-4-line:before{content:"\ebc0"}.ri-compass-discover-fill:before{content:"\ebc1"}.ri-compass-discover-line:before{content:"\ebc2"}.ri-compass-fill:before{content:"\ebc3"}.ri-compass-line:before{content:"\ebc4"}.ri-compasses-2-fill:before{content:"\ebc5"}.ri-compasses-2-line:before{content:"\ebc6"}.ri-compasses-fill:before{content:"\ebc7"}.ri-compasses-line:before{content:"\ebc8"}.ri-computer-fill:before{content:"\ebc9"}.ri-computer-line:before{content:"\ebca"}.ri-contacts-book-2-fill:before{content:"\ebcb"}.ri-contacts-book-2-line:before{content:"\ebcc"}.ri-contacts-book-fill:before{content:"\ebcd"}.ri-contacts-book-line:before{content:"\ebce"}.ri-contacts-book-upload-fill:before{content:"\ebcf"}.ri-contacts-book-upload-line:before{content:"\ebd0"}.ri-contacts-fill:before{content:"\ebd1"}.ri-contacts-line:before{content:"\ebd2"}.ri-contrast-2-fill:before{content:"\ebd3"}.ri-contrast-2-line:before{content:"\ebd4"}.ri-contrast-drop-2-fill:before{content:"\ebd5"}.ri-contrast-drop-2-line:before{content:"\ebd6"}.ri-contrast-drop-fill:before{content:"\ebd7"}.ri-contrast-drop-line:before{content:"\ebd8"}.ri-contrast-fill:before{content:"\ebd9"}.ri-contrast-line:before{content:"\ebda"}.ri-copper-coin-fill:before{content:"\ebdb"}.ri-copper-coin-line:before{content:"\ebdc"}.ri-copper-diamond-fill:before{content:"\ebdd"}.ri-copper-diamond-line:before{content:"\ebde"}.ri-copyleft-fill:before{content:"\ebdf"}.ri-copyleft-line:before{content:"\ebe0"}.ri-copyright-fill:before{content:"\ebe1"}.ri-copyright-line:before{content:"\ebe2"}.ri-coreos-fill:before{content:"\ebe3"}.ri-coreos-line:before{content:"\ebe4"}.ri-coupon-2-fill:before{content:"\ebe5"}.ri-coupon-2-line:before{content:"\ebe6"}.ri-coupon-3-fill:before{content:"\ebe7"}.ri-coupon-3-line:before{content:"\ebe8"}.ri-coupon-4-fill:before{content:"\ebe9"}.ri-coupon-4-line:before{content:"\ebea"}.ri-coupon-5-fill:before{content:"\ebeb"}.ri-coupon-5-line:before{content:"\ebec"}.ri-coupon-fill:before{content:"\ebed"}.ri-coupon-line:before{content:"\ebee"}.ri-cpu-fill:before{content:"\ebef"}.ri-cpu-line:before{content:"\ebf0"}.ri-creative-commons-by-fill:before{content:"\ebf1"}.ri-creative-commons-by-line:before{content:"\ebf2"}.ri-creative-commons-fill:before{content:"\ebf3"}.ri-creative-commons-line:before{content:"\ebf4"}.ri-creative-commons-nc-fill:before{content:"\ebf5"}.ri-creative-commons-nc-line:before{content:"\ebf6"}.ri-creative-commons-nd-fill:before{content:"\ebf7"}.ri-creative-commons-nd-line:before{content:"\ebf8"}.ri-creative-commons-sa-fill:before{content:"\ebf9"}.ri-creative-commons-sa-line:before{content:"\ebfa"}.ri-creative-commons-zero-fill:before{content:"\ebfb"}.ri-creative-commons-zero-line:before{content:"\ebfc"}.ri-criminal-fill:before{content:"\ebfd"}.ri-criminal-line:before{content:"\ebfe"}.ri-crop-2-fill:before{content:"\ebff"}.ri-crop-2-line:before{content:"\ec00"}.ri-crop-fill:before{content:"\ec01"}.ri-crop-line:before{content:"\ec02"}.ri-css3-fill:before{content:"\ec03"}.ri-css3-line:before{content:"\ec04"}.ri-cup-fill:before{content:"\ec05"}.ri-cup-line:before{content:"\ec06"}.ri-currency-fill:before{content:"\ec07"}.ri-currency-line:before{content:"\ec08"}.ri-cursor-fill:before{content:"\ec09"}.ri-cursor-line:before{content:"\ec0a"}.ri-customer-service-2-fill:before{content:"\ec0b"}.ri-customer-service-2-line:before{content:"\ec0c"}.ri-customer-service-fill:before{content:"\ec0d"}.ri-customer-service-line:before{content:"\ec0e"}.ri-dashboard-2-fill:before{content:"\ec0f"}.ri-dashboard-2-line:before{content:"\ec10"}.ri-dashboard-3-fill:before{content:"\ec11"}.ri-dashboard-3-line:before{content:"\ec12"}.ri-dashboard-fill:before{content:"\ec13"}.ri-dashboard-line:before{content:"\ec14"}.ri-database-2-fill:before{content:"\ec15"}.ri-database-2-line:before{content:"\ec16"}.ri-database-fill:before{content:"\ec17"}.ri-database-line:before{content:"\ec18"}.ri-delete-back-2-fill:before{content:"\ec19"}.ri-delete-back-2-line:before{content:"\ec1a"}.ri-delete-back-fill:before{content:"\ec1b"}.ri-delete-back-line:before{content:"\ec1c"}.ri-delete-bin-2-fill:before{content:"\ec1d"}.ri-delete-bin-2-line:before{content:"\ec1e"}.ri-delete-bin-3-fill:before{content:"\ec1f"}.ri-delete-bin-3-line:before{content:"\ec20"}.ri-delete-bin-4-fill:before{content:"\ec21"}.ri-delete-bin-4-line:before{content:"\ec22"}.ri-delete-bin-5-fill:before{content:"\ec23"}.ri-delete-bin-5-line:before{content:"\ec24"}.ri-delete-bin-6-fill:before{content:"\ec25"}.ri-delete-bin-6-line:before{content:"\ec26"}.ri-delete-bin-7-fill:before{content:"\ec27"}.ri-delete-bin-7-line:before{content:"\ec28"}.ri-delete-bin-fill:before{content:"\ec29"}.ri-delete-bin-line:before{content:"\ec2a"}.ri-delete-column:before{content:"\ec2b"}.ri-delete-row:before{content:"\ec2c"}.ri-device-fill:before{content:"\ec2d"}.ri-device-line:before{content:"\ec2e"}.ri-device-recover-fill:before{content:"\ec2f"}.ri-device-recover-line:before{content:"\ec30"}.ri-dingding-fill:before{content:"\ec31"}.ri-dingding-line:before{content:"\ec32"}.ri-direction-fill:before{content:"\ec33"}.ri-direction-line:before{content:"\ec34"}.ri-disc-fill:before{content:"\ec35"}.ri-disc-line:before{content:"\ec36"}.ri-discord-fill:before{content:"\ec37"}.ri-discord-line:before{content:"\ec38"}.ri-discuss-fill:before{content:"\ec39"}.ri-discuss-line:before{content:"\ec3a"}.ri-dislike-fill:before{content:"\ec3b"}.ri-dislike-line:before{content:"\ec3c"}.ri-disqus-fill:before{content:"\ec3d"}.ri-disqus-line:before{content:"\ec3e"}.ri-divide-fill:before{content:"\ec3f"}.ri-divide-line:before{content:"\ec40"}.ri-donut-chart-fill:before{content:"\ec41"}.ri-donut-chart-line:before{content:"\ec42"}.ri-door-closed-fill:before{content:"\ec43"}.ri-door-closed-line:before{content:"\ec44"}.ri-door-fill:before{content:"\ec45"}.ri-door-line:before{content:"\ec46"}.ri-door-lock-box-fill:before{content:"\ec47"}.ri-door-lock-box-line:before{content:"\ec48"}.ri-door-lock-fill:before{content:"\ec49"}.ri-door-lock-line:before{content:"\ec4a"}.ri-door-open-fill:before{content:"\ec4b"}.ri-door-open-line:before{content:"\ec4c"}.ri-dossier-fill:before{content:"\ec4d"}.ri-dossier-line:before{content:"\ec4e"}.ri-douban-fill:before{content:"\ec4f"}.ri-douban-line:before{content:"\ec50"}.ri-double-quotes-l:before{content:"\ec51"}.ri-double-quotes-r:before{content:"\ec52"}.ri-download-2-fill:before{content:"\ec53"}.ri-download-2-line:before{content:"\ec54"}.ri-download-cloud-2-fill:before{content:"\ec55"}.ri-download-cloud-2-line:before{content:"\ec56"}.ri-download-cloud-fill:before{content:"\ec57"}.ri-download-cloud-line:before{content:"\ec58"}.ri-download-fill:before{content:"\ec59"}.ri-download-line:before{content:"\ec5a"}.ri-draft-fill:before{content:"\ec5b"}.ri-draft-line:before{content:"\ec5c"}.ri-drag-drop-fill:before{content:"\ec5d"}.ri-drag-drop-line:before{content:"\ec5e"}.ri-drag-move-2-fill:before{content:"\ec5f"}.ri-drag-move-2-line:before{content:"\ec60"}.ri-drag-move-fill:before{content:"\ec61"}.ri-drag-move-line:before{content:"\ec62"}.ri-dribbble-fill:before{content:"\ec63"}.ri-dribbble-line:before{content:"\ec64"}.ri-drive-fill:before{content:"\ec65"}.ri-drive-line:before{content:"\ec66"}.ri-drizzle-fill:before{content:"\ec67"}.ri-drizzle-line:before{content:"\ec68"}.ri-drop-fill:before{content:"\ec69"}.ri-drop-line:before{content:"\ec6a"}.ri-dropbox-fill:before{content:"\ec6b"}.ri-dropbox-line:before{content:"\ec6c"}.ri-dual-sim-1-fill:before{content:"\ec6d"}.ri-dual-sim-1-line:before{content:"\ec6e"}.ri-dual-sim-2-fill:before{content:"\ec6f"}.ri-dual-sim-2-line:before{content:"\ec70"}.ri-dv-fill:before{content:"\ec71"}.ri-dv-line:before{content:"\ec72"}.ri-dvd-fill:before{content:"\ec73"}.ri-dvd-line:before{content:"\ec74"}.ri-e-bike-2-fill:before{content:"\ec75"}.ri-e-bike-2-line:before{content:"\ec76"}.ri-e-bike-fill:before{content:"\ec77"}.ri-e-bike-line:before{content:"\ec78"}.ri-earth-fill:before{content:"\ec79"}.ri-earth-line:before{content:"\ec7a"}.ri-earthquake-fill:before{content:"\ec7b"}.ri-earthquake-line:before{content:"\ec7c"}.ri-edge-fill:before{content:"\ec7d"}.ri-edge-line:before{content:"\ec7e"}.ri-edit-2-fill:before{content:"\ec7f"}.ri-edit-2-line:before{content:"\ec80"}.ri-edit-box-fill:before{content:"\ec81"}.ri-edit-box-line:before{content:"\ec82"}.ri-edit-circle-fill:before{content:"\ec83"}.ri-edit-circle-line:before{content:"\ec84"}.ri-edit-fill:before{content:"\ec85"}.ri-edit-line:before{content:"\ec86"}.ri-eject-fill:before{content:"\ec87"}.ri-eject-line:before{content:"\ec88"}.ri-emotion-2-fill:before{content:"\ec89"}.ri-emotion-2-line:before{content:"\ec8a"}.ri-emotion-fill:before{content:"\ec8b"}.ri-emotion-happy-fill:before{content:"\ec8c"}.ri-emotion-happy-line:before{content:"\ec8d"}.ri-emotion-laugh-fill:before{content:"\ec8e"}.ri-emotion-laugh-line:before{content:"\ec8f"}.ri-emotion-line:before{content:"\ec90"}.ri-emotion-normal-fill:before{content:"\ec91"}.ri-emotion-normal-line:before{content:"\ec92"}.ri-emotion-sad-fill:before{content:"\ec93"}.ri-emotion-sad-line:before{content:"\ec94"}.ri-emotion-unhappy-fill:before{content:"\ec95"}.ri-emotion-unhappy-line:before{content:"\ec96"}.ri-empathize-fill:before{content:"\ec97"}.ri-empathize-line:before{content:"\ec98"}.ri-emphasis-cn:before{content:"\ec99"}.ri-emphasis:before{content:"\ec9a"}.ri-english-input:before{content:"\ec9b"}.ri-equalizer-fill:before{content:"\ec9c"}.ri-equalizer-line:before{content:"\ec9d"}.ri-eraser-fill:before{content:"\ec9e"}.ri-eraser-line:before{content:"\ec9f"}.ri-error-warning-fill:before{content:"\eca0"}.ri-error-warning-line:before{content:"\eca1"}.ri-evernote-fill:before{content:"\eca2"}.ri-evernote-line:before{content:"\eca3"}.ri-exchange-box-fill:before{content:"\eca4"}.ri-exchange-box-line:before{content:"\eca5"}.ri-exchange-cny-fill:before{content:"\eca6"}.ri-exchange-cny-line:before{content:"\eca7"}.ri-exchange-dollar-fill:before{content:"\eca8"}.ri-exchange-dollar-line:before{content:"\eca9"}.ri-exchange-fill:before{content:"\ecaa"}.ri-exchange-funds-fill:before{content:"\ecab"}.ri-exchange-funds-line:before{content:"\ecac"}.ri-exchange-line:before{content:"\ecad"}.ri-external-link-fill:before{content:"\ecae"}.ri-external-link-line:before{content:"\ecaf"}.ri-eye-2-fill:before{content:"\ecb0"}.ri-eye-2-line:before{content:"\ecb1"}.ri-eye-close-fill:before{content:"\ecb2"}.ri-eye-close-line:before{content:"\ecb3"}.ri-eye-fill:before{content:"\ecb4"}.ri-eye-line:before{content:"\ecb5"}.ri-eye-off-fill:before{content:"\ecb6"}.ri-eye-off-line:before{content:"\ecb7"}.ri-facebook-box-fill:before{content:"\ecb8"}.ri-facebook-box-line:before{content:"\ecb9"}.ri-facebook-circle-fill:before{content:"\ecba"}.ri-facebook-circle-line:before{content:"\ecbb"}.ri-facebook-fill:before{content:"\ecbc"}.ri-facebook-line:before{content:"\ecbd"}.ri-fahrenheit-fill:before{content:"\ecbe"}.ri-fahrenheit-line:before{content:"\ecbf"}.ri-feedback-fill:before{content:"\ecc0"}.ri-feedback-line:before{content:"\ecc1"}.ri-file-2-fill:before{content:"\ecc2"}.ri-file-2-line:before{content:"\ecc3"}.ri-file-3-fill:before{content:"\ecc4"}.ri-file-3-line:before{content:"\ecc5"}.ri-file-4-fill:before{content:"\ecc6"}.ri-file-4-line:before{content:"\ecc7"}.ri-file-add-fill:before{content:"\ecc8"}.ri-file-add-line:before{content:"\ecc9"}.ri-file-chart-2-fill:before{content:"\ecca"}.ri-file-chart-2-line:before{content:"\eccb"}.ri-file-chart-fill:before{content:"\eccc"}.ri-file-chart-line:before{content:"\eccd"}.ri-file-cloud-fill:before{content:"\ecce"}.ri-file-cloud-line:before{content:"\eccf"}.ri-file-code-fill:before{content:"\ecd0"}.ri-file-code-line:before{content:"\ecd1"}.ri-file-copy-2-fill:before{content:"\ecd2"}.ri-file-copy-2-line:before{content:"\ecd3"}.ri-file-copy-fill:before{content:"\ecd4"}.ri-file-copy-line:before{content:"\ecd5"}.ri-file-damage-fill:before{content:"\ecd6"}.ri-file-damage-line:before{content:"\ecd7"}.ri-file-download-fill:before{content:"\ecd8"}.ri-file-download-line:before{content:"\ecd9"}.ri-file-edit-fill:before{content:"\ecda"}.ri-file-edit-line:before{content:"\ecdb"}.ri-file-excel-2-fill:before{content:"\ecdc"}.ri-file-excel-2-line:before{content:"\ecdd"}.ri-file-excel-fill:before{content:"\ecde"}.ri-file-excel-line:before{content:"\ecdf"}.ri-file-fill:before{content:"\ece0"}.ri-file-forbid-fill:before{content:"\ece1"}.ri-file-forbid-line:before{content:"\ece2"}.ri-file-gif-fill:before{content:"\ece3"}.ri-file-gif-line:before{content:"\ece4"}.ri-file-history-fill:before{content:"\ece5"}.ri-file-history-line:before{content:"\ece6"}.ri-file-hwp-fill:before{content:"\ece7"}.ri-file-hwp-line:before{content:"\ece8"}.ri-file-info-fill:before{content:"\ece9"}.ri-file-info-line:before{content:"\ecea"}.ri-file-line:before{content:"\eceb"}.ri-file-list-2-fill:before{content:"\ecec"}.ri-file-list-2-line:before{content:"\eced"}.ri-file-list-3-fill:before{content:"\ecee"}.ri-file-list-3-line:before{content:"\ecef"}.ri-file-list-fill:before{content:"\ecf0"}.ri-file-list-line:before{content:"\ecf1"}.ri-file-lock-fill:before{content:"\ecf2"}.ri-file-lock-line:before{content:"\ecf3"}.ri-file-marked-fill:before{content:"\ecf4"}.ri-file-marked-line:before{content:"\ecf5"}.ri-file-music-fill:before{content:"\ecf6"}.ri-file-music-line:before{content:"\ecf7"}.ri-file-paper-2-fill:before{content:"\ecf8"}.ri-file-paper-2-line:before{content:"\ecf9"}.ri-file-paper-fill:before{content:"\ecfa"}.ri-file-paper-line:before{content:"\ecfb"}.ri-file-pdf-fill:before{content:"\ecfc"}.ri-file-pdf-line:before{content:"\ecfd"}.ri-file-ppt-2-fill:before{content:"\ecfe"}.ri-file-ppt-2-line:before{content:"\ecff"}.ri-file-ppt-fill:before{content:"\ed00"}.ri-file-ppt-line:before{content:"\ed01"}.ri-file-reduce-fill:before{content:"\ed02"}.ri-file-reduce-line:before{content:"\ed03"}.ri-file-search-fill:before{content:"\ed04"}.ri-file-search-line:before{content:"\ed05"}.ri-file-settings-fill:before{content:"\ed06"}.ri-file-settings-line:before{content:"\ed07"}.ri-file-shield-2-fill:before{content:"\ed08"}.ri-file-shield-2-line:before{content:"\ed09"}.ri-file-shield-fill:before{content:"\ed0a"}.ri-file-shield-line:before{content:"\ed0b"}.ri-file-shred-fill:before{content:"\ed0c"}.ri-file-shred-line:before{content:"\ed0d"}.ri-file-text-fill:before{content:"\ed0e"}.ri-file-text-line:before{content:"\ed0f"}.ri-file-transfer-fill:before{content:"\ed10"}.ri-file-transfer-line:before{content:"\ed11"}.ri-file-unknow-fill:before{content:"\ed12"}.ri-file-unknow-line:before{content:"\ed13"}.ri-file-upload-fill:before{content:"\ed14"}.ri-file-upload-line:before{content:"\ed15"}.ri-file-user-fill:before{content:"\ed16"}.ri-file-user-line:before{content:"\ed17"}.ri-file-warning-fill:before{content:"\ed18"}.ri-file-warning-line:before{content:"\ed19"}.ri-file-word-2-fill:before{content:"\ed1a"}.ri-file-word-2-line:before{content:"\ed1b"}.ri-file-word-fill:before{content:"\ed1c"}.ri-file-word-line:before{content:"\ed1d"}.ri-file-zip-fill:before{content:"\ed1e"}.ri-file-zip-line:before{content:"\ed1f"}.ri-film-fill:before{content:"\ed20"}.ri-film-line:before{content:"\ed21"}.ri-filter-2-fill:before{content:"\ed22"}.ri-filter-2-line:before{content:"\ed23"}.ri-filter-3-fill:before{content:"\ed24"}.ri-filter-3-line:before{content:"\ed25"}.ri-filter-fill:before{content:"\ed26"}.ri-filter-line:before{content:"\ed27"}.ri-filter-off-fill:before{content:"\ed28"}.ri-filter-off-line:before{content:"\ed29"}.ri-find-replace-fill:before{content:"\ed2a"}.ri-find-replace-line:before{content:"\ed2b"}.ri-finder-fill:before{content:"\ed2c"}.ri-finder-line:before{content:"\ed2d"}.ri-fingerprint-2-fill:before{content:"\ed2e"}.ri-fingerprint-2-line:before{content:"\ed2f"}.ri-fingerprint-fill:before{content:"\ed30"}.ri-fingerprint-line:before{content:"\ed31"}.ri-fire-fill:before{content:"\ed32"}.ri-fire-line:before{content:"\ed33"}.ri-firefox-fill:before{content:"\ed34"}.ri-firefox-line:before{content:"\ed35"}.ri-first-aid-kit-fill:before{content:"\ed36"}.ri-first-aid-kit-line:before{content:"\ed37"}.ri-flag-2-fill:before{content:"\ed38"}.ri-flag-2-line:before{content:"\ed39"}.ri-flag-fill:before{content:"\ed3a"}.ri-flag-line:before{content:"\ed3b"}.ri-flashlight-fill:before{content:"\ed3c"}.ri-flashlight-line:before{content:"\ed3d"}.ri-flask-fill:before{content:"\ed3e"}.ri-flask-line:before{content:"\ed3f"}.ri-flight-land-fill:before{content:"\ed40"}.ri-flight-land-line:before{content:"\ed41"}.ri-flight-takeoff-fill:before{content:"\ed42"}.ri-flight-takeoff-line:before{content:"\ed43"}.ri-flood-fill:before{content:"\ed44"}.ri-flood-line:before{content:"\ed45"}.ri-flow-chart:before{content:"\ed46"}.ri-flutter-fill:before{content:"\ed47"}.ri-flutter-line:before{content:"\ed48"}.ri-focus-2-fill:before{content:"\ed49"}.ri-focus-2-line:before{content:"\ed4a"}.ri-focus-3-fill:before{content:"\ed4b"}.ri-focus-3-line:before{content:"\ed4c"}.ri-focus-fill:before{content:"\ed4d"}.ri-focus-line:before{content:"\ed4e"}.ri-foggy-fill:before{content:"\ed4f"}.ri-foggy-line:before{content:"\ed50"}.ri-folder-2-fill:before{content:"\ed51"}.ri-folder-2-line:before{content:"\ed52"}.ri-folder-3-fill:before{content:"\ed53"}.ri-folder-3-line:before{content:"\ed54"}.ri-folder-4-fill:before{content:"\ed55"}.ri-folder-4-line:before{content:"\ed56"}.ri-folder-5-fill:before{content:"\ed57"}.ri-folder-5-line:before{content:"\ed58"}.ri-folder-add-fill:before{content:"\ed59"}.ri-folder-add-line:before{content:"\ed5a"}.ri-folder-chart-2-fill:before{content:"\ed5b"}.ri-folder-chart-2-line:before{content:"\ed5c"}.ri-folder-chart-fill:before{content:"\ed5d"}.ri-folder-chart-line:before{content:"\ed5e"}.ri-folder-download-fill:before{content:"\ed5f"}.ri-folder-download-line:before{content:"\ed60"}.ri-folder-fill:before{content:"\ed61"}.ri-folder-forbid-fill:before{content:"\ed62"}.ri-folder-forbid-line:before{content:"\ed63"}.ri-folder-history-fill:before{content:"\ed64"}.ri-folder-history-line:before{content:"\ed65"}.ri-folder-info-fill:before{content:"\ed66"}.ri-folder-info-line:before{content:"\ed67"}.ri-folder-keyhole-fill:before{content:"\ed68"}.ri-folder-keyhole-line:before{content:"\ed69"}.ri-folder-line:before{content:"\ed6a"}.ri-folder-lock-fill:before{content:"\ed6b"}.ri-folder-lock-line:before{content:"\ed6c"}.ri-folder-music-fill:before{content:"\ed6d"}.ri-folder-music-line:before{content:"\ed6e"}.ri-folder-open-fill:before{content:"\ed6f"}.ri-folder-open-line:before{content:"\ed70"}.ri-folder-received-fill:before{content:"\ed71"}.ri-folder-received-line:before{content:"\ed72"}.ri-folder-reduce-fill:before{content:"\ed73"}.ri-folder-reduce-line:before{content:"\ed74"}.ri-folder-settings-fill:before{content:"\ed75"}.ri-folder-settings-line:before{content:"\ed76"}.ri-folder-shared-fill:before{content:"\ed77"}.ri-folder-shared-line:before{content:"\ed78"}.ri-folder-shield-2-fill:before{content:"\ed79"}.ri-folder-shield-2-line:before{content:"\ed7a"}.ri-folder-shield-fill:before{content:"\ed7b"}.ri-folder-shield-line:before{content:"\ed7c"}.ri-folder-transfer-fill:before{content:"\ed7d"}.ri-folder-transfer-line:before{content:"\ed7e"}.ri-folder-unknow-fill:before{content:"\ed7f"}.ri-folder-unknow-line:before{content:"\ed80"}.ri-folder-upload-fill:before{content:"\ed81"}.ri-folder-upload-line:before{content:"\ed82"}.ri-folder-user-fill:before{content:"\ed83"}.ri-folder-user-line:before{content:"\ed84"}.ri-folder-warning-fill:before{content:"\ed85"}.ri-folder-warning-line:before{content:"\ed86"}.ri-folder-zip-fill:before{content:"\ed87"}.ri-folder-zip-line:before{content:"\ed88"}.ri-folders-fill:before{content:"\ed89"}.ri-folders-line:before{content:"\ed8a"}.ri-font-color:before{content:"\ed8b"}.ri-font-size-2:before{content:"\ed8c"}.ri-font-size:before{content:"\ed8d"}.ri-football-fill:before{content:"\ed8e"}.ri-football-line:before{content:"\ed8f"}.ri-footprint-fill:before{content:"\ed90"}.ri-footprint-line:before{content:"\ed91"}.ri-forbid-2-fill:before{content:"\ed92"}.ri-forbid-2-line:before{content:"\ed93"}.ri-forbid-fill:before{content:"\ed94"}.ri-forbid-line:before{content:"\ed95"}.ri-format-clear:before{content:"\ed96"}.ri-fridge-fill:before{content:"\ed97"}.ri-fridge-line:before{content:"\ed98"}.ri-fullscreen-exit-fill:before{content:"\ed99"}.ri-fullscreen-exit-line:before{content:"\ed9a"}.ri-fullscreen-fill:before{content:"\ed9b"}.ri-fullscreen-line:before{content:"\ed9c"}.ri-function-fill:before{content:"\ed9d"}.ri-function-line:before{content:"\ed9e"}.ri-functions:before{content:"\ed9f"}.ri-funds-box-fill:before{content:"\eda0"}.ri-funds-box-line:before{content:"\eda1"}.ri-funds-fill:before{content:"\eda2"}.ri-funds-line:before{content:"\eda3"}.ri-gallery-fill:before{content:"\eda4"}.ri-gallery-line:before{content:"\eda5"}.ri-gallery-upload-fill:before{content:"\eda6"}.ri-gallery-upload-line:before{content:"\eda7"}.ri-game-fill:before{content:"\eda8"}.ri-game-line:before{content:"\eda9"}.ri-gamepad-fill:before{content:"\edaa"}.ri-gamepad-line:before{content:"\edab"}.ri-gas-station-fill:before{content:"\edac"}.ri-gas-station-line:before{content:"\edad"}.ri-gatsby-fill:before{content:"\edae"}.ri-gatsby-line:before{content:"\edaf"}.ri-genderless-fill:before{content:"\edb0"}.ri-genderless-line:before{content:"\edb1"}.ri-ghost-2-fill:before{content:"\edb2"}.ri-ghost-2-line:before{content:"\edb3"}.ri-ghost-fill:before{content:"\edb4"}.ri-ghost-line:before{content:"\edb5"}.ri-ghost-smile-fill:before{content:"\edb6"}.ri-ghost-smile-line:before{content:"\edb7"}.ri-gift-2-fill:before{content:"\edb8"}.ri-gift-2-line:before{content:"\edb9"}.ri-gift-fill:before{content:"\edba"}.ri-gift-line:before{content:"\edbb"}.ri-git-branch-fill:before{content:"\edbc"}.ri-git-branch-line:before{content:"\edbd"}.ri-git-commit-fill:before{content:"\edbe"}.ri-git-commit-line:before{content:"\edbf"}.ri-git-merge-fill:before{content:"\edc0"}.ri-git-merge-line:before{content:"\edc1"}.ri-git-pull-request-fill:before{content:"\edc2"}.ri-git-pull-request-line:before{content:"\edc3"}.ri-git-repository-commits-fill:before{content:"\edc4"}.ri-git-repository-commits-line:before{content:"\edc5"}.ri-git-repository-fill:before{content:"\edc6"}.ri-git-repository-line:before{content:"\edc7"}.ri-git-repository-private-fill:before{content:"\edc8"}.ri-git-repository-private-line:before{content:"\edc9"}.ri-github-fill:before{content:"\edca"}.ri-github-line:before{content:"\edcb"}.ri-gitlab-fill:before{content:"\edcc"}.ri-gitlab-line:before{content:"\edcd"}.ri-global-fill:before{content:"\edce"}.ri-global-line:before{content:"\edcf"}.ri-globe-fill:before{content:"\edd0"}.ri-globe-line:before{content:"\edd1"}.ri-goblet-fill:before{content:"\edd2"}.ri-goblet-line:before{content:"\edd3"}.ri-google-fill:before{content:"\edd4"}.ri-google-line:before{content:"\edd5"}.ri-google-play-fill:before{content:"\edd6"}.ri-google-play-line:before{content:"\edd7"}.ri-government-fill:before{content:"\edd8"}.ri-government-line:before{content:"\edd9"}.ri-gps-fill:before{content:"\edda"}.ri-gps-line:before{content:"\eddb"}.ri-gradienter-fill:before{content:"\eddc"}.ri-gradienter-line:before{content:"\eddd"}.ri-grid-fill:before{content:"\edde"}.ri-grid-line:before{content:"\eddf"}.ri-group-2-fill:before{content:"\ede0"}.ri-group-2-line:before{content:"\ede1"}.ri-group-fill:before{content:"\ede2"}.ri-group-line:before{content:"\ede3"}.ri-guide-fill:before{content:"\ede4"}.ri-guide-line:before{content:"\ede5"}.ri-h-1:before{content:"\ede6"}.ri-h-2:before{content:"\ede7"}.ri-h-3:before{content:"\ede8"}.ri-h-4:before{content:"\ede9"}.ri-h-5:before{content:"\edea"}.ri-h-6:before{content:"\edeb"}.ri-hail-fill:before{content:"\edec"}.ri-hail-line:before{content:"\eded"}.ri-hammer-fill:before{content:"\edee"}.ri-hammer-line:before{content:"\edef"}.ri-hand-coin-fill:before{content:"\edf0"}.ri-hand-coin-line:before{content:"\edf1"}.ri-hand-heart-fill:before{content:"\edf2"}.ri-hand-heart-line:before{content:"\edf3"}.ri-hand-sanitizer-fill:before{content:"\edf4"}.ri-hand-sanitizer-line:before{content:"\edf5"}.ri-handbag-fill:before{content:"\edf6"}.ri-handbag-line:before{content:"\edf7"}.ri-hard-drive-2-fill:before{content:"\edf8"}.ri-hard-drive-2-line:before{content:"\edf9"}.ri-hard-drive-fill:before{content:"\edfa"}.ri-hard-drive-line:before{content:"\edfb"}.ri-hashtag:before{content:"\edfc"}.ri-haze-2-fill:before{content:"\edfd"}.ri-haze-2-line:before{content:"\edfe"}.ri-haze-fill:before{content:"\edff"}.ri-haze-line:before{content:"\ee00"}.ri-hd-fill:before{content:"\ee01"}.ri-hd-line:before{content:"\ee02"}.ri-heading:before{content:"\ee03"}.ri-headphone-fill:before{content:"\ee04"}.ri-headphone-line:before{content:"\ee05"}.ri-health-book-fill:before{content:"\ee06"}.ri-health-book-line:before{content:"\ee07"}.ri-heart-2-fill:before{content:"\ee08"}.ri-heart-2-line:before{content:"\ee09"}.ri-heart-3-fill:before{content:"\ee0a"}.ri-heart-3-line:before{content:"\ee0b"}.ri-heart-add-fill:before{content:"\ee0c"}.ri-heart-add-line:before{content:"\ee0d"}.ri-heart-fill:before{content:"\ee0e"}.ri-heart-line:before{content:"\ee0f"}.ri-heart-pulse-fill:before{content:"\ee10"}.ri-heart-pulse-line:before{content:"\ee11"}.ri-hearts-fill:before{content:"\ee12"}.ri-hearts-line:before{content:"\ee13"}.ri-heavy-showers-fill:before{content:"\ee14"}.ri-heavy-showers-line:before{content:"\ee15"}.ri-history-fill:before{content:"\ee16"}.ri-history-line:before{content:"\ee17"}.ri-home-2-fill:before{content:"\ee18"}.ri-home-2-line:before{content:"\ee19"}.ri-home-3-fill:before{content:"\ee1a"}.ri-home-3-line:before{content:"\ee1b"}.ri-home-4-fill:before{content:"\ee1c"}.ri-home-4-line:before{content:"\ee1d"}.ri-home-5-fill:before{content:"\ee1e"}.ri-home-5-line:before{content:"\ee1f"}.ri-home-6-fill:before{content:"\ee20"}.ri-home-6-line:before{content:"\ee21"}.ri-home-7-fill:before{content:"\ee22"}.ri-home-7-line:before{content:"\ee23"}.ri-home-8-fill:before{content:"\ee24"}.ri-home-8-line:before{content:"\ee25"}.ri-home-fill:before{content:"\ee26"}.ri-home-gear-fill:before{content:"\ee27"}.ri-home-gear-line:before{content:"\ee28"}.ri-home-heart-fill:before{content:"\ee29"}.ri-home-heart-line:before{content:"\ee2a"}.ri-home-line:before{content:"\ee2b"}.ri-home-smile-2-fill:before{content:"\ee2c"}.ri-home-smile-2-line:before{content:"\ee2d"}.ri-home-smile-fill:before{content:"\ee2e"}.ri-home-smile-line:before{content:"\ee2f"}.ri-home-wifi-fill:before{content:"\ee30"}.ri-home-wifi-line:before{content:"\ee31"}.ri-honor-of-kings-fill:before{content:"\ee32"}.ri-honor-of-kings-line:before{content:"\ee33"}.ri-honour-fill:before{content:"\ee34"}.ri-honour-line:before{content:"\ee35"}.ri-hospital-fill:before{content:"\ee36"}.ri-hospital-line:before{content:"\ee37"}.ri-hotel-bed-fill:before{content:"\ee38"}.ri-hotel-bed-line:before{content:"\ee39"}.ri-hotel-fill:before{content:"\ee3a"}.ri-hotel-line:before{content:"\ee3b"}.ri-hotspot-fill:before{content:"\ee3c"}.ri-hotspot-line:before{content:"\ee3d"}.ri-hq-fill:before{content:"\ee3e"}.ri-hq-line:before{content:"\ee3f"}.ri-html5-fill:before{content:"\ee40"}.ri-html5-line:before{content:"\ee41"}.ri-ie-fill:before{content:"\ee42"}.ri-ie-line:before{content:"\ee43"}.ri-image-2-fill:before{content:"\ee44"}.ri-image-2-line:before{content:"\ee45"}.ri-image-add-fill:before{content:"\ee46"}.ri-image-add-line:before{content:"\ee47"}.ri-image-edit-fill:before{content:"\ee48"}.ri-image-edit-line:before{content:"\ee49"}.ri-image-fill:before{content:"\ee4a"}.ri-image-line:before{content:"\ee4b"}.ri-inbox-archive-fill:before{content:"\ee4c"}.ri-inbox-archive-line:before{content:"\ee4d"}.ri-inbox-fill:before{content:"\ee4e"}.ri-inbox-line:before{content:"\ee4f"}.ri-inbox-unarchive-fill:before{content:"\ee50"}.ri-inbox-unarchive-line:before{content:"\ee51"}.ri-increase-decrease-fill:before{content:"\ee52"}.ri-increase-decrease-line:before{content:"\ee53"}.ri-indent-decrease:before{content:"\ee54"}.ri-indent-increase:before{content:"\ee55"}.ri-indeterminate-circle-fill:before{content:"\ee56"}.ri-indeterminate-circle-line:before{content:"\ee57"}.ri-information-fill:before{content:"\ee58"}.ri-information-line:before{content:"\ee59"}.ri-infrared-thermometer-fill:before{content:"\ee5a"}.ri-infrared-thermometer-line:before{content:"\ee5b"}.ri-ink-bottle-fill:before{content:"\ee5c"}.ri-ink-bottle-line:before{content:"\ee5d"}.ri-input-cursor-move:before{content:"\ee5e"}.ri-input-method-fill:before{content:"\ee5f"}.ri-input-method-line:before{content:"\ee60"}.ri-insert-column-left:before{content:"\ee61"}.ri-insert-column-right:before{content:"\ee62"}.ri-insert-row-bottom:before{content:"\ee63"}.ri-insert-row-top:before{content:"\ee64"}.ri-instagram-fill:before{content:"\ee65"}.ri-instagram-line:before{content:"\ee66"}.ri-install-fill:before{content:"\ee67"}.ri-install-line:before{content:"\ee68"}.ri-invision-fill:before{content:"\ee69"}.ri-invision-line:before{content:"\ee6a"}.ri-italic:before{content:"\ee6b"}.ri-kakao-talk-fill:before{content:"\ee6c"}.ri-kakao-talk-line:before{content:"\ee6d"}.ri-key-2-fill:before{content:"\ee6e"}.ri-key-2-line:before{content:"\ee6f"}.ri-key-fill:before{content:"\ee70"}.ri-key-line:before{content:"\ee71"}.ri-keyboard-box-fill:before{content:"\ee72"}.ri-keyboard-box-line:before{content:"\ee73"}.ri-keyboard-fill:before{content:"\ee74"}.ri-keyboard-line:before{content:"\ee75"}.ri-keynote-fill:before{content:"\ee76"}.ri-keynote-line:before{content:"\ee77"}.ri-knife-blood-fill:before{content:"\ee78"}.ri-knife-blood-line:before{content:"\ee79"}.ri-knife-fill:before{content:"\ee7a"}.ri-knife-line:before{content:"\ee7b"}.ri-landscape-fill:before{content:"\ee7c"}.ri-landscape-line:before{content:"\ee7d"}.ri-layout-2-fill:before{content:"\ee7e"}.ri-layout-2-line:before{content:"\ee7f"}.ri-layout-3-fill:before{content:"\ee80"}.ri-layout-3-line:before{content:"\ee81"}.ri-layout-4-fill:before{content:"\ee82"}.ri-layout-4-line:before{content:"\ee83"}.ri-layout-5-fill:before{content:"\ee84"}.ri-layout-5-line:before{content:"\ee85"}.ri-layout-6-fill:before{content:"\ee86"}.ri-layout-6-line:before{content:"\ee87"}.ri-layout-bottom-2-fill:before{content:"\ee88"}.ri-layout-bottom-2-line:before{content:"\ee89"}.ri-layout-bottom-fill:before{content:"\ee8a"}.ri-layout-bottom-line:before{content:"\ee8b"}.ri-layout-column-fill:before{content:"\ee8c"}.ri-layout-column-line:before{content:"\ee8d"}.ri-layout-fill:before{content:"\ee8e"}.ri-layout-grid-fill:before{content:"\ee8f"}.ri-layout-grid-line:before{content:"\ee90"}.ri-layout-left-2-fill:before{content:"\ee91"}.ri-layout-left-2-line:before{content:"\ee92"}.ri-layout-left-fill:before{content:"\ee93"}.ri-layout-left-line:before{content:"\ee94"}.ri-layout-line:before{content:"\ee95"}.ri-layout-masonry-fill:before{content:"\ee96"}.ri-layout-masonry-line:before{content:"\ee97"}.ri-layout-right-2-fill:before{content:"\ee98"}.ri-layout-right-2-line:before{content:"\ee99"}.ri-layout-right-fill:before{content:"\ee9a"}.ri-layout-right-line:before{content:"\ee9b"}.ri-layout-row-fill:before{content:"\ee9c"}.ri-layout-row-line:before{content:"\ee9d"}.ri-layout-top-2-fill:before{content:"\ee9e"}.ri-layout-top-2-line:before{content:"\ee9f"}.ri-layout-top-fill:before{content:"\eea0"}.ri-layout-top-line:before{content:"\eea1"}.ri-leaf-fill:before{content:"\eea2"}.ri-leaf-line:before{content:"\eea3"}.ri-lifebuoy-fill:before{content:"\eea4"}.ri-lifebuoy-line:before{content:"\eea5"}.ri-lightbulb-fill:before{content:"\eea6"}.ri-lightbulb-flash-fill:before{content:"\eea7"}.ri-lightbulb-flash-line:before{content:"\eea8"}.ri-lightbulb-line:before{content:"\eea9"}.ri-line-chart-fill:before{content:"\eeaa"}.ri-line-chart-line:before{content:"\eeab"}.ri-line-fill:before{content:"\eeac"}.ri-line-height:before{content:"\eead"}.ri-line-line:before{content:"\eeae"}.ri-link-m:before{content:"\eeaf"}.ri-link-unlink-m:before{content:"\eeb0"}.ri-link-unlink:before{content:"\eeb1"}.ri-link:before{content:"\eeb2"}.ri-linkedin-box-fill:before{content:"\eeb3"}.ri-linkedin-box-line:before{content:"\eeb4"}.ri-linkedin-fill:before{content:"\eeb5"}.ri-linkedin-line:before{content:"\eeb6"}.ri-links-fill:before{content:"\eeb7"}.ri-links-line:before{content:"\eeb8"}.ri-list-check-2:before{content:"\eeb9"}.ri-list-check:before{content:"\eeba"}.ri-list-ordered:before{content:"\eebb"}.ri-list-settings-fill:before{content:"\eebc"}.ri-list-settings-line:before{content:"\eebd"}.ri-list-unordered:before{content:"\eebe"}.ri-live-fill:before{content:"\eebf"}.ri-live-line:before{content:"\eec0"}.ri-loader-2-fill:before{content:"\eec1"}.ri-loader-2-line:before{content:"\eec2"}.ri-loader-3-fill:before{content:"\eec3"}.ri-loader-3-line:before{content:"\eec4"}.ri-loader-4-fill:before{content:"\eec5"}.ri-loader-4-line:before{content:"\eec6"}.ri-loader-5-fill:before{content:"\eec7"}.ri-loader-5-line:before{content:"\eec8"}.ri-loader-fill:before{content:"\eec9"}.ri-loader-line:before{content:"\eeca"}.ri-lock-2-fill:before{content:"\eecb"}.ri-lock-2-line:before{content:"\eecc"}.ri-lock-fill:before{content:"\eecd"}.ri-lock-line:before{content:"\eece"}.ri-lock-password-fill:before{content:"\eecf"}.ri-lock-password-line:before{content:"\eed0"}.ri-lock-unlock-fill:before{content:"\eed1"}.ri-lock-unlock-line:before{content:"\eed2"}.ri-login-box-fill:before{content:"\eed3"}.ri-login-box-line:before{content:"\eed4"}.ri-login-circle-fill:before{content:"\eed5"}.ri-login-circle-line:before{content:"\eed6"}.ri-logout-box-fill:before{content:"\eed7"}.ri-logout-box-line:before{content:"\eed8"}.ri-logout-box-r-fill:before{content:"\eed9"}.ri-logout-box-r-line:before{content:"\eeda"}.ri-logout-circle-fill:before{content:"\eedb"}.ri-logout-circle-line:before{content:"\eedc"}.ri-logout-circle-r-fill:before{content:"\eedd"}.ri-logout-circle-r-line:before{content:"\eede"}.ri-luggage-cart-fill:before{content:"\eedf"}.ri-luggage-cart-line:before{content:"\eee0"}.ri-luggage-deposit-fill:before{content:"\eee1"}.ri-luggage-deposit-line:before{content:"\eee2"}.ri-lungs-fill:before{content:"\eee3"}.ri-lungs-line:before{content:"\eee4"}.ri-mac-fill:before{content:"\eee5"}.ri-mac-line:before{content:"\eee6"}.ri-macbook-fill:before{content:"\eee7"}.ri-macbook-line:before{content:"\eee8"}.ri-magic-fill:before{content:"\eee9"}.ri-magic-line:before{content:"\eeea"}.ri-mail-add-fill:before{content:"\eeeb"}.ri-mail-add-line:before{content:"\eeec"}.ri-mail-check-fill:before{content:"\eeed"}.ri-mail-check-line:before{content:"\eeee"}.ri-mail-close-fill:before{content:"\eeef"}.ri-mail-close-line:before{content:"\eef0"}.ri-mail-download-fill:before{content:"\eef1"}.ri-mail-download-line:before{content:"\eef2"}.ri-mail-fill:before{content:"\eef3"}.ri-mail-forbid-fill:before{content:"\eef4"}.ri-mail-forbid-line:before{content:"\eef5"}.ri-mail-line:before{content:"\eef6"}.ri-mail-lock-fill:before{content:"\eef7"}.ri-mail-lock-line:before{content:"\eef8"}.ri-mail-open-fill:before{content:"\eef9"}.ri-mail-open-line:before{content:"\eefa"}.ri-mail-send-fill:before{content:"\eefb"}.ri-mail-send-line:before{content:"\eefc"}.ri-mail-settings-fill:before{content:"\eefd"}.ri-mail-settings-line:before{content:"\eefe"}.ri-mail-star-fill:before{content:"\eeff"}.ri-mail-star-line:before{content:"\ef00"}.ri-mail-unread-fill:before{content:"\ef01"}.ri-mail-unread-line:before{content:"\ef02"}.ri-mail-volume-fill:before{content:"\ef03"}.ri-mail-volume-line:before{content:"\ef04"}.ri-map-2-fill:before{content:"\ef05"}.ri-map-2-line:before{content:"\ef06"}.ri-map-fill:before{content:"\ef07"}.ri-map-line:before{content:"\ef08"}.ri-map-pin-2-fill:before{content:"\ef09"}.ri-map-pin-2-line:before{content:"\ef0a"}.ri-map-pin-3-fill:before{content:"\ef0b"}.ri-map-pin-3-line:before{content:"\ef0c"}.ri-map-pin-4-fill:before{content:"\ef0d"}.ri-map-pin-4-line:before{content:"\ef0e"}.ri-map-pin-5-fill:before{content:"\ef0f"}.ri-map-pin-5-line:before{content:"\ef10"}.ri-map-pin-add-fill:before{content:"\ef11"}.ri-map-pin-add-line:before{content:"\ef12"}.ri-map-pin-fill:before{content:"\ef13"}.ri-map-pin-line:before{content:"\ef14"}.ri-map-pin-range-fill:before{content:"\ef15"}.ri-map-pin-range-line:before{content:"\ef16"}.ri-map-pin-time-fill:before{content:"\ef17"}.ri-map-pin-time-line:before{content:"\ef18"}.ri-map-pin-user-fill:before{content:"\ef19"}.ri-map-pin-user-line:before{content:"\ef1a"}.ri-mark-pen-fill:before{content:"\ef1b"}.ri-mark-pen-line:before{content:"\ef1c"}.ri-markdown-fill:before{content:"\ef1d"}.ri-markdown-line:before{content:"\ef1e"}.ri-markup-fill:before{content:"\ef1f"}.ri-markup-line:before{content:"\ef20"}.ri-mastercard-fill:before{content:"\ef21"}.ri-mastercard-line:before{content:"\ef22"}.ri-mastodon-fill:before{content:"\ef23"}.ri-mastodon-line:before{content:"\ef24"}.ri-medal-2-fill:before{content:"\ef25"}.ri-medal-2-line:before{content:"\ef26"}.ri-medal-fill:before{content:"\ef27"}.ri-medal-line:before{content:"\ef28"}.ri-medicine-bottle-fill:before{content:"\ef29"}.ri-medicine-bottle-line:before{content:"\ef2a"}.ri-medium-fill:before{content:"\ef2b"}.ri-medium-line:before{content:"\ef2c"}.ri-men-fill:before{content:"\ef2d"}.ri-men-line:before{content:"\ef2e"}.ri-mental-health-fill:before{content:"\ef2f"}.ri-mental-health-line:before{content:"\ef30"}.ri-menu-2-fill:before{content:"\ef31"}.ri-menu-2-line:before{content:"\ef32"}.ri-menu-3-fill:before{content:"\ef33"}.ri-menu-3-line:before{content:"\ef34"}.ri-menu-4-fill:before{content:"\ef35"}.ri-menu-4-line:before{content:"\ef36"}.ri-menu-5-fill:before{content:"\ef37"}.ri-menu-5-line:before{content:"\ef38"}.ri-menu-add-fill:before{content:"\ef39"}.ri-menu-add-line:before{content:"\ef3a"}.ri-menu-fill:before{content:"\ef3b"}.ri-menu-fold-fill:before{content:"\ef3c"}.ri-menu-fold-line:before{content:"\ef3d"}.ri-menu-line:before{content:"\ef3e"}.ri-menu-unfold-fill:before{content:"\ef3f"}.ri-menu-unfold-line:before{content:"\ef40"}.ri-merge-cells-horizontal:before{content:"\ef41"}.ri-merge-cells-vertical:before{content:"\ef42"}.ri-message-2-fill:before{content:"\ef43"}.ri-message-2-line:before{content:"\ef44"}.ri-message-3-fill:before{content:"\ef45"}.ri-message-3-line:before{content:"\ef46"}.ri-message-fill:before{content:"\ef47"}.ri-message-line:before{content:"\ef48"}.ri-messenger-fill:before{content:"\ef49"}.ri-messenger-line:before{content:"\ef4a"}.ri-meteor-fill:before{content:"\ef4b"}.ri-meteor-line:before{content:"\ef4c"}.ri-mic-2-fill:before{content:"\ef4d"}.ri-mic-2-line:before{content:"\ef4e"}.ri-mic-fill:before{content:"\ef4f"}.ri-mic-line:before{content:"\ef50"}.ri-mic-off-fill:before{content:"\ef51"}.ri-mic-off-line:before{content:"\ef52"}.ri-mickey-fill:before{content:"\ef53"}.ri-mickey-line:before{content:"\ef54"}.ri-microscope-fill:before{content:"\ef55"}.ri-microscope-line:before{content:"\ef56"}.ri-microsoft-fill:before{content:"\ef57"}.ri-microsoft-line:before{content:"\ef58"}.ri-mind-map:before{content:"\ef59"}.ri-mini-program-fill:before{content:"\ef5a"}.ri-mini-program-line:before{content:"\ef5b"}.ri-mist-fill:before{content:"\ef5c"}.ri-mist-line:before{content:"\ef5d"}.ri-money-cny-box-fill:before{content:"\ef5e"}.ri-money-cny-box-line:before{content:"\ef5f"}.ri-money-cny-circle-fill:before{content:"\ef60"}.ri-money-cny-circle-line:before{content:"\ef61"}.ri-money-dollar-box-fill:before{content:"\ef62"}.ri-money-dollar-box-line:before{content:"\ef63"}.ri-money-dollar-circle-fill:before{content:"\ef64"}.ri-money-dollar-circle-line:before{content:"\ef65"}.ri-money-euro-box-fill:before{content:"\ef66"}.ri-money-euro-box-line:before{content:"\ef67"}.ri-money-euro-circle-fill:before{content:"\ef68"}.ri-money-euro-circle-line:before{content:"\ef69"}.ri-money-pound-box-fill:before{content:"\ef6a"}.ri-money-pound-box-line:before{content:"\ef6b"}.ri-money-pound-circle-fill:before{content:"\ef6c"}.ri-money-pound-circle-line:before{content:"\ef6d"}.ri-moon-clear-fill:before{content:"\ef6e"}.ri-moon-clear-line:before{content:"\ef6f"}.ri-moon-cloudy-fill:before{content:"\ef70"}.ri-moon-cloudy-line:before{content:"\ef71"}.ri-moon-fill:before{content:"\ef72"}.ri-moon-foggy-fill:before{content:"\ef73"}.ri-moon-foggy-line:before{content:"\ef74"}.ri-moon-line:before{content:"\ef75"}.ri-more-2-fill:before{content:"\ef76"}.ri-more-2-line:before{content:"\ef77"}.ri-more-fill:before{content:"\ef78"}.ri-more-line:before{content:"\ef79"}.ri-motorbike-fill:before{content:"\ef7a"}.ri-motorbike-line:before{content:"\ef7b"}.ri-mouse-fill:before{content:"\ef7c"}.ri-mouse-line:before{content:"\ef7d"}.ri-movie-2-fill:before{content:"\ef7e"}.ri-movie-2-line:before{content:"\ef7f"}.ri-movie-fill:before{content:"\ef80"}.ri-movie-line:before{content:"\ef81"}.ri-music-2-fill:before{content:"\ef82"}.ri-music-2-line:before{content:"\ef83"}.ri-music-fill:before{content:"\ef84"}.ri-music-line:before{content:"\ef85"}.ri-mv-fill:before{content:"\ef86"}.ri-mv-line:before{content:"\ef87"}.ri-navigation-fill:before{content:"\ef88"}.ri-navigation-line:before{content:"\ef89"}.ri-netease-cloud-music-fill:before{content:"\ef8a"}.ri-netease-cloud-music-line:before{content:"\ef8b"}.ri-netflix-fill:before{content:"\ef8c"}.ri-netflix-line:before{content:"\ef8d"}.ri-newspaper-fill:before{content:"\ef8e"}.ri-newspaper-line:before{content:"\ef8f"}.ri-node-tree:before{content:"\ef90"}.ri-notification-2-fill:before{content:"\ef91"}.ri-notification-2-line:before{content:"\ef92"}.ri-notification-3-fill:before{content:"\ef93"}.ri-notification-3-line:before{content:"\ef94"}.ri-notification-4-fill:before{content:"\ef95"}.ri-notification-4-line:before{content:"\ef96"}.ri-notification-badge-fill:before{content:"\ef97"}.ri-notification-badge-line:before{content:"\ef98"}.ri-notification-fill:before{content:"\ef99"}.ri-notification-line:before{content:"\ef9a"}.ri-notification-off-fill:before{content:"\ef9b"}.ri-notification-off-line:before{content:"\ef9c"}.ri-npmjs-fill:before{content:"\ef9d"}.ri-npmjs-line:before{content:"\ef9e"}.ri-number-0:before{content:"\ef9f"}.ri-number-1:before{content:"\efa0"}.ri-number-2:before{content:"\efa1"}.ri-number-3:before{content:"\efa2"}.ri-number-4:before{content:"\efa3"}.ri-number-5:before{content:"\efa4"}.ri-number-6:before{content:"\efa5"}.ri-number-7:before{content:"\efa6"}.ri-number-8:before{content:"\efa7"}.ri-number-9:before{content:"\efa8"}.ri-numbers-fill:before{content:"\efa9"}.ri-numbers-line:before{content:"\efaa"}.ri-nurse-fill:before{content:"\efab"}.ri-nurse-line:before{content:"\efac"}.ri-oil-fill:before{content:"\efad"}.ri-oil-line:before{content:"\efae"}.ri-omega:before{content:"\efaf"}.ri-open-arm-fill:before{content:"\efb0"}.ri-open-arm-line:before{content:"\efb1"}.ri-open-source-fill:before{content:"\efb2"}.ri-open-source-line:before{content:"\efb3"}.ri-opera-fill:before{content:"\efb4"}.ri-opera-line:before{content:"\efb5"}.ri-order-play-fill:before{content:"\efb6"}.ri-order-play-line:before{content:"\efb7"}.ri-organization-chart:before{content:"\efb8"}.ri-outlet-2-fill:before{content:"\efb9"}.ri-outlet-2-line:before{content:"\efba"}.ri-outlet-fill:before{content:"\efbb"}.ri-outlet-line:before{content:"\efbc"}.ri-page-separator:before{content:"\efbd"}.ri-pages-fill:before{content:"\efbe"}.ri-pages-line:before{content:"\efbf"}.ri-paint-brush-fill:before{content:"\efc0"}.ri-paint-brush-line:before{content:"\efc1"}.ri-paint-fill:before{content:"\efc2"}.ri-paint-line:before{content:"\efc3"}.ri-palette-fill:before{content:"\efc4"}.ri-palette-line:before{content:"\efc5"}.ri-pantone-fill:before{content:"\efc6"}.ri-pantone-line:before{content:"\efc7"}.ri-paragraph:before{content:"\efc8"}.ri-parent-fill:before{content:"\efc9"}.ri-parent-line:before{content:"\efca"}.ri-parentheses-fill:before{content:"\efcb"}.ri-parentheses-line:before{content:"\efcc"}.ri-parking-box-fill:before{content:"\efcd"}.ri-parking-box-line:before{content:"\efce"}.ri-parking-fill:before{content:"\efcf"}.ri-parking-line:before{content:"\efd0"}.ri-passport-fill:before{content:"\efd1"}.ri-passport-line:before{content:"\efd2"}.ri-patreon-fill:before{content:"\efd3"}.ri-patreon-line:before{content:"\efd4"}.ri-pause-circle-fill:before{content:"\efd5"}.ri-pause-circle-line:before{content:"\efd6"}.ri-pause-fill:before{content:"\efd7"}.ri-pause-line:before{content:"\efd8"}.ri-pause-mini-fill:before{content:"\efd9"}.ri-pause-mini-line:before{content:"\efda"}.ri-paypal-fill:before{content:"\efdb"}.ri-paypal-line:before{content:"\efdc"}.ri-pen-nib-fill:before{content:"\efdd"}.ri-pen-nib-line:before{content:"\efde"}.ri-pencil-fill:before{content:"\efdf"}.ri-pencil-line:before{content:"\efe0"}.ri-pencil-ruler-2-fill:before{content:"\efe1"}.ri-pencil-ruler-2-line:before{content:"\efe2"}.ri-pencil-ruler-fill:before{content:"\efe3"}.ri-pencil-ruler-line:before{content:"\efe4"}.ri-percent-fill:before{content:"\efe5"}.ri-percent-line:before{content:"\efe6"}.ri-phone-camera-fill:before{content:"\efe7"}.ri-phone-camera-line:before{content:"\efe8"}.ri-phone-fill:before{content:"\efe9"}.ri-phone-find-fill:before{content:"\efea"}.ri-phone-find-line:before{content:"\efeb"}.ri-phone-line:before{content:"\efec"}.ri-phone-lock-fill:before{content:"\efed"}.ri-phone-lock-line:before{content:"\efee"}.ri-picture-in-picture-2-fill:before{content:"\efef"}.ri-picture-in-picture-2-line:before{content:"\eff0"}.ri-picture-in-picture-exit-fill:before{content:"\eff1"}.ri-picture-in-picture-exit-line:before{content:"\eff2"}.ri-picture-in-picture-fill:before{content:"\eff3"}.ri-picture-in-picture-line:before{content:"\eff4"}.ri-pie-chart-2-fill:before{content:"\eff5"}.ri-pie-chart-2-line:before{content:"\eff6"}.ri-pie-chart-box-fill:before{content:"\eff7"}.ri-pie-chart-box-line:before{content:"\eff8"}.ri-pie-chart-fill:before{content:"\eff9"}.ri-pie-chart-line:before{content:"\effa"}.ri-pin-distance-fill:before{content:"\effb"}.ri-pin-distance-line:before{content:"\effc"}.ri-ping-pong-fill:before{content:"\effd"}.ri-ping-pong-line:before{content:"\effe"}.ri-pinterest-fill:before{content:"\efff"}.ri-pinterest-line:before{content:"\f000"}.ri-pinyin-input:before{content:"\f001"}.ri-pixelfed-fill:before{content:"\f002"}.ri-pixelfed-line:before{content:"\f003"}.ri-plane-fill:before{content:"\f004"}.ri-plane-line:before{content:"\f005"}.ri-plant-fill:before{content:"\f006"}.ri-plant-line:before{content:"\f007"}.ri-play-circle-fill:before{content:"\f008"}.ri-play-circle-line:before{content:"\f009"}.ri-play-fill:before{content:"\f00a"}.ri-play-line:before{content:"\f00b"}.ri-play-list-2-fill:before{content:"\f00c"}.ri-play-list-2-line:before{content:"\f00d"}.ri-play-list-add-fill:before{content:"\f00e"}.ri-play-list-add-line:before{content:"\f00f"}.ri-play-list-fill:before{content:"\f010"}.ri-play-list-line:before{content:"\f011"}.ri-play-mini-fill:before{content:"\f012"}.ri-play-mini-line:before{content:"\f013"}.ri-playstation-fill:before{content:"\f014"}.ri-playstation-line:before{content:"\f015"}.ri-plug-2-fill:before{content:"\f016"}.ri-plug-2-line:before{content:"\f017"}.ri-plug-fill:before{content:"\f018"}.ri-plug-line:before{content:"\f019"}.ri-polaroid-2-fill:before{content:"\f01a"}.ri-polaroid-2-line:before{content:"\f01b"}.ri-polaroid-fill:before{content:"\f01c"}.ri-polaroid-line:before{content:"\f01d"}.ri-police-car-fill:before{content:"\f01e"}.ri-police-car-line:before{content:"\f01f"}.ri-price-tag-2-fill:before{content:"\f020"}.ri-price-tag-2-line:before{content:"\f021"}.ri-price-tag-3-fill:before{content:"\f022"}.ri-price-tag-3-line:before{content:"\f023"}.ri-price-tag-fill:before{content:"\f024"}.ri-price-tag-line:before{content:"\f025"}.ri-printer-cloud-fill:before{content:"\f026"}.ri-printer-cloud-line:before{content:"\f027"}.ri-printer-fill:before{content:"\f028"}.ri-printer-line:before{content:"\f029"}.ri-product-hunt-fill:before{content:"\f02a"}.ri-product-hunt-line:before{content:"\f02b"}.ri-profile-fill:before{content:"\f02c"}.ri-profile-line:before{content:"\f02d"}.ri-projector-2-fill:before{content:"\f02e"}.ri-projector-2-line:before{content:"\f02f"}.ri-projector-fill:before{content:"\f030"}.ri-projector-line:before{content:"\f031"}.ri-psychotherapy-fill:before{content:"\f032"}.ri-psychotherapy-line:before{content:"\f033"}.ri-pulse-fill:before{content:"\f034"}.ri-pulse-line:before{content:"\f035"}.ri-pushpin-2-fill:before{content:"\f036"}.ri-pushpin-2-line:before{content:"\f037"}.ri-pushpin-fill:before{content:"\f038"}.ri-pushpin-line:before{content:"\f039"}.ri-qq-fill:before{content:"\f03a"}.ri-qq-line:before{content:"\f03b"}.ri-qr-code-fill:before{content:"\f03c"}.ri-qr-code-line:before{content:"\f03d"}.ri-qr-scan-2-fill:before{content:"\f03e"}.ri-qr-scan-2-line:before{content:"\f03f"}.ri-qr-scan-fill:before{content:"\f040"}.ri-qr-scan-line:before{content:"\f041"}.ri-question-answer-fill:before{content:"\f042"}.ri-question-answer-line:before{content:"\f043"}.ri-question-fill:before{content:"\f044"}.ri-question-line:before{content:"\f045"}.ri-question-mark:before{content:"\f046"}.ri-questionnaire-fill:before{content:"\f047"}.ri-questionnaire-line:before{content:"\f048"}.ri-quill-pen-fill:before{content:"\f049"}.ri-quill-pen-line:before{content:"\f04a"}.ri-radar-fill:before{content:"\f04b"}.ri-radar-line:before{content:"\f04c"}.ri-radio-2-fill:before{content:"\f04d"}.ri-radio-2-line:before{content:"\f04e"}.ri-radio-button-fill:before{content:"\f04f"}.ri-radio-button-line:before{content:"\f050"}.ri-radio-fill:before{content:"\f051"}.ri-radio-line:before{content:"\f052"}.ri-rainbow-fill:before{content:"\f053"}.ri-rainbow-line:before{content:"\f054"}.ri-rainy-fill:before{content:"\f055"}.ri-rainy-line:before{content:"\f056"}.ri-reactjs-fill:before{content:"\f057"}.ri-reactjs-line:before{content:"\f058"}.ri-record-circle-fill:before{content:"\f059"}.ri-record-circle-line:before{content:"\f05a"}.ri-record-mail-fill:before{content:"\f05b"}.ri-record-mail-line:before{content:"\f05c"}.ri-recycle-fill:before{content:"\f05d"}.ri-recycle-line:before{content:"\f05e"}.ri-red-packet-fill:before{content:"\f05f"}.ri-red-packet-line:before{content:"\f060"}.ri-reddit-fill:before{content:"\f061"}.ri-reddit-line:before{content:"\f062"}.ri-refresh-fill:before{content:"\f063"}.ri-refresh-line:before{content:"\f064"}.ri-refund-2-fill:before{content:"\f065"}.ri-refund-2-line:before{content:"\f066"}.ri-refund-fill:before{content:"\f067"}.ri-refund-line:before{content:"\f068"}.ri-registered-fill:before{content:"\f069"}.ri-registered-line:before{content:"\f06a"}.ri-remixicon-fill:before{content:"\f06b"}.ri-remixicon-line:before{content:"\f06c"}.ri-remote-control-2-fill:before{content:"\f06d"}.ri-remote-control-2-line:before{content:"\f06e"}.ri-remote-control-fill:before{content:"\f06f"}.ri-remote-control-line:before{content:"\f070"}.ri-repeat-2-fill:before{content:"\f071"}.ri-repeat-2-line:before{content:"\f072"}.ri-repeat-fill:before{content:"\f073"}.ri-repeat-line:before{content:"\f074"}.ri-repeat-one-fill:before{content:"\f075"}.ri-repeat-one-line:before{content:"\f076"}.ri-reply-all-fill:before{content:"\f077"}.ri-reply-all-line:before{content:"\f078"}.ri-reply-fill:before{content:"\f079"}.ri-reply-line:before{content:"\f07a"}.ri-reserved-fill:before{content:"\f07b"}.ri-reserved-line:before{content:"\f07c"}.ri-rest-time-fill:before{content:"\f07d"}.ri-rest-time-line:before{content:"\f07e"}.ri-restart-fill:before{content:"\f07f"}.ri-restart-line:before{content:"\f080"}.ri-restaurant-2-fill:before{content:"\f081"}.ri-restaurant-2-line:before{content:"\f082"}.ri-restaurant-fill:before{content:"\f083"}.ri-restaurant-line:before{content:"\f084"}.ri-rewind-fill:before{content:"\f085"}.ri-rewind-line:before{content:"\f086"}.ri-rewind-mini-fill:before{content:"\f087"}.ri-rewind-mini-line:before{content:"\f088"}.ri-rhythm-fill:before{content:"\f089"}.ri-rhythm-line:before{content:"\f08a"}.ri-riding-fill:before{content:"\f08b"}.ri-riding-line:before{content:"\f08c"}.ri-road-map-fill:before{content:"\f08d"}.ri-road-map-line:before{content:"\f08e"}.ri-roadster-fill:before{content:"\f08f"}.ri-roadster-line:before{content:"\f090"}.ri-robot-fill:before{content:"\f091"}.ri-robot-line:before{content:"\f092"}.ri-rocket-2-fill:before{content:"\f093"}.ri-rocket-2-line:before{content:"\f094"}.ri-rocket-fill:before{content:"\f095"}.ri-rocket-line:before{content:"\f096"}.ri-rotate-lock-fill:before{content:"\f097"}.ri-rotate-lock-line:before{content:"\f098"}.ri-rounded-corner:before{content:"\f099"}.ri-route-fill:before{content:"\f09a"}.ri-route-line:before{content:"\f09b"}.ri-router-fill:before{content:"\f09c"}.ri-router-line:before{content:"\f09d"}.ri-rss-fill:before{content:"\f09e"}.ri-rss-line:before{content:"\f09f"}.ri-ruler-2-fill:before{content:"\f0a0"}.ri-ruler-2-line:before{content:"\f0a1"}.ri-ruler-fill:before{content:"\f0a2"}.ri-ruler-line:before{content:"\f0a3"}.ri-run-fill:before{content:"\f0a4"}.ri-run-line:before{content:"\f0a5"}.ri-safari-fill:before{content:"\f0a6"}.ri-safari-line:before{content:"\f0a7"}.ri-safe-2-fill:before{content:"\f0a8"}.ri-safe-2-line:before{content:"\f0a9"}.ri-safe-fill:before{content:"\f0aa"}.ri-safe-line:before{content:"\f0ab"}.ri-sailboat-fill:before{content:"\f0ac"}.ri-sailboat-line:before{content:"\f0ad"}.ri-save-2-fill:before{content:"\f0ae"}.ri-save-2-line:before{content:"\f0af"}.ri-save-3-fill:before{content:"\f0b0"}.ri-save-3-line:before{content:"\f0b1"}.ri-save-fill:before{content:"\f0b2"}.ri-save-line:before{content:"\f0b3"}.ri-scales-2-fill:before{content:"\f0b4"}.ri-scales-2-line:before{content:"\f0b5"}.ri-scales-3-fill:before{content:"\f0b6"}.ri-scales-3-line:before{content:"\f0b7"}.ri-scales-fill:before{content:"\f0b8"}.ri-scales-line:before{content:"\f0b9"}.ri-scan-2-fill:before{content:"\f0ba"}.ri-scan-2-line:before{content:"\f0bb"}.ri-scan-fill:before{content:"\f0bc"}.ri-scan-line:before{content:"\f0bd"}.ri-scissors-2-fill:before{content:"\f0be"}.ri-scissors-2-line:before{content:"\f0bf"}.ri-scissors-cut-fill:before{content:"\f0c0"}.ri-scissors-cut-line:before{content:"\f0c1"}.ri-scissors-fill:before{content:"\f0c2"}.ri-scissors-line:before{content:"\f0c3"}.ri-screenshot-2-fill:before{content:"\f0c4"}.ri-screenshot-2-line:before{content:"\f0c5"}.ri-screenshot-fill:before{content:"\f0c6"}.ri-screenshot-line:before{content:"\f0c7"}.ri-sd-card-fill:before{content:"\f0c8"}.ri-sd-card-line:before{content:"\f0c9"}.ri-sd-card-mini-fill:before{content:"\f0ca"}.ri-sd-card-mini-line:before{content:"\f0cb"}.ri-search-2-fill:before{content:"\f0cc"}.ri-search-2-line:before{content:"\f0cd"}.ri-search-eye-fill:before{content:"\f0ce"}.ri-search-eye-line:before{content:"\f0cf"}.ri-search-fill:before{content:"\f0d0"}.ri-search-line:before{content:"\f0d1"}.ri-secure-payment-fill:before{content:"\f0d2"}.ri-secure-payment-line:before{content:"\f0d3"}.ri-seedling-fill:before{content:"\f0d4"}.ri-seedling-line:before{content:"\f0d5"}.ri-send-backward:before{content:"\f0d6"}.ri-send-plane-2-fill:before{content:"\f0d7"}.ri-send-plane-2-line:before{content:"\f0d8"}.ri-send-plane-fill:before{content:"\f0d9"}.ri-send-plane-line:before{content:"\f0da"}.ri-send-to-back:before{content:"\f0db"}.ri-sensor-fill:before{content:"\f0dc"}.ri-sensor-line:before{content:"\f0dd"}.ri-separator:before{content:"\f0de"}.ri-server-fill:before{content:"\f0df"}.ri-server-line:before{content:"\f0e0"}.ri-service-fill:before{content:"\f0e1"}.ri-service-line:before{content:"\f0e2"}.ri-settings-2-fill:before{content:"\f0e3"}.ri-settings-2-line:before{content:"\f0e4"}.ri-settings-3-fill:before{content:"\f0e5"}.ri-settings-3-line:before{content:"\f0e6"}.ri-settings-4-fill:before{content:"\f0e7"}.ri-settings-4-line:before{content:"\f0e8"}.ri-settings-5-fill:before{content:"\f0e9"}.ri-settings-5-line:before{content:"\f0ea"}.ri-settings-6-fill:before{content:"\f0eb"}.ri-settings-6-line:before{content:"\f0ec"}.ri-settings-fill:before{content:"\f0ed"}.ri-settings-line:before{content:"\f0ee"}.ri-shape-2-fill:before{content:"\f0ef"}.ri-shape-2-line:before{content:"\f0f0"}.ri-shape-fill:before{content:"\f0f1"}.ri-shape-line:before{content:"\f0f2"}.ri-share-box-fill:before{content:"\f0f3"}.ri-share-box-line:before{content:"\f0f4"}.ri-share-circle-fill:before{content:"\f0f5"}.ri-share-circle-line:before{content:"\f0f6"}.ri-share-fill:before{content:"\f0f7"}.ri-share-forward-2-fill:before{content:"\f0f8"}.ri-share-forward-2-line:before{content:"\f0f9"}.ri-share-forward-box-fill:before{content:"\f0fa"}.ri-share-forward-box-line:before{content:"\f0fb"}.ri-share-forward-fill:before{content:"\f0fc"}.ri-share-forward-line:before{content:"\f0fd"}.ri-share-line:before{content:"\f0fe"}.ri-shield-check-fill:before{content:"\f0ff"}.ri-shield-check-line:before{content:"\f100"}.ri-shield-cross-fill:before{content:"\f101"}.ri-shield-cross-line:before{content:"\f102"}.ri-shield-fill:before{content:"\f103"}.ri-shield-flash-fill:before{content:"\f104"}.ri-shield-flash-line:before{content:"\f105"}.ri-shield-keyhole-fill:before{content:"\f106"}.ri-shield-keyhole-line:before{content:"\f107"}.ri-shield-line:before{content:"\f108"}.ri-shield-star-fill:before{content:"\f109"}.ri-shield-star-line:before{content:"\f10a"}.ri-shield-user-fill:before{content:"\f10b"}.ri-shield-user-line:before{content:"\f10c"}.ri-ship-2-fill:before{content:"\f10d"}.ri-ship-2-line:before{content:"\f10e"}.ri-ship-fill:before{content:"\f10f"}.ri-ship-line:before{content:"\f110"}.ri-shirt-fill:before{content:"\f111"}.ri-shirt-line:before{content:"\f112"}.ri-shopping-bag-2-fill:before{content:"\f113"}.ri-shopping-bag-2-line:before{content:"\f114"}.ri-shopping-bag-3-fill:before{content:"\f115"}.ri-shopping-bag-3-line:before{content:"\f116"}.ri-shopping-bag-fill:before{content:"\f117"}.ri-shopping-bag-line:before{content:"\f118"}.ri-shopping-basket-2-fill:before{content:"\f119"}.ri-shopping-basket-2-line:before{content:"\f11a"}.ri-shopping-basket-fill:before{content:"\f11b"}.ri-shopping-basket-line:before{content:"\f11c"}.ri-shopping-cart-2-fill:before{content:"\f11d"}.ri-shopping-cart-2-line:before{content:"\f11e"}.ri-shopping-cart-fill:before{content:"\f11f"}.ri-shopping-cart-line:before{content:"\f120"}.ri-showers-fill:before{content:"\f121"}.ri-showers-line:before{content:"\f122"}.ri-shuffle-fill:before{content:"\f123"}.ri-shuffle-line:before{content:"\f124"}.ri-shut-down-fill:before{content:"\f125"}.ri-shut-down-line:before{content:"\f126"}.ri-side-bar-fill:before{content:"\f127"}.ri-side-bar-line:before{content:"\f128"}.ri-signal-tower-fill:before{content:"\f129"}.ri-signal-tower-line:before{content:"\f12a"}.ri-signal-wifi-1-fill:before{content:"\f12b"}.ri-signal-wifi-1-line:before{content:"\f12c"}.ri-signal-wifi-2-fill:before{content:"\f12d"}.ri-signal-wifi-2-line:before{content:"\f12e"}.ri-signal-wifi-3-fill:before{content:"\f12f"}.ri-signal-wifi-3-line:before{content:"\f130"}.ri-signal-wifi-error-fill:before{content:"\f131"}.ri-signal-wifi-error-line:before{content:"\f132"}.ri-signal-wifi-fill:before{content:"\f133"}.ri-signal-wifi-line:before{content:"\f134"}.ri-signal-wifi-off-fill:before{content:"\f135"}.ri-signal-wifi-off-line:before{content:"\f136"}.ri-sim-card-2-fill:before{content:"\f137"}.ri-sim-card-2-line:before{content:"\f138"}.ri-sim-card-fill:before{content:"\f139"}.ri-sim-card-line:before{content:"\f13a"}.ri-single-quotes-l:before{content:"\f13b"}.ri-single-quotes-r:before{content:"\f13c"}.ri-sip-fill:before{content:"\f13d"}.ri-sip-line:before{content:"\f13e"}.ri-skip-back-fill:before{content:"\f13f"}.ri-skip-back-line:before{content:"\f140"}.ri-skip-back-mini-fill:before{content:"\f141"}.ri-skip-back-mini-line:before{content:"\f142"}.ri-skip-forward-fill:before{content:"\f143"}.ri-skip-forward-line:before{content:"\f144"}.ri-skip-forward-mini-fill:before{content:"\f145"}.ri-skip-forward-mini-line:before{content:"\f146"}.ri-skull-2-fill:before{content:"\f147"}.ri-skull-2-line:before{content:"\f148"}.ri-skull-fill:before{content:"\f149"}.ri-skull-line:before{content:"\f14a"}.ri-skype-fill:before{content:"\f14b"}.ri-skype-line:before{content:"\f14c"}.ri-slack-fill:before{content:"\f14d"}.ri-slack-line:before{content:"\f14e"}.ri-slice-fill:before{content:"\f14f"}.ri-slice-line:before{content:"\f150"}.ri-slideshow-2-fill:before{content:"\f151"}.ri-slideshow-2-line:before{content:"\f152"}.ri-slideshow-3-fill:before{content:"\f153"}.ri-slideshow-3-line:before{content:"\f154"}.ri-slideshow-4-fill:before{content:"\f155"}.ri-slideshow-4-line:before{content:"\f156"}.ri-slideshow-fill:before{content:"\f157"}.ri-slideshow-line:before{content:"\f158"}.ri-smartphone-fill:before{content:"\f159"}.ri-smartphone-line:before{content:"\f15a"}.ri-snapchat-fill:before{content:"\f15b"}.ri-snapchat-line:before{content:"\f15c"}.ri-snowy-fill:before{content:"\f15d"}.ri-snowy-line:before{content:"\f15e"}.ri-sort-asc:before{content:"\f15f"}.ri-sort-desc:before{content:"\f160"}.ri-sound-module-fill:before{content:"\f161"}.ri-sound-module-line:before{content:"\f162"}.ri-soundcloud-fill:before{content:"\f163"}.ri-soundcloud-line:before{content:"\f164"}.ri-space-ship-fill:before{content:"\f165"}.ri-space-ship-line:before{content:"\f166"}.ri-space:before{content:"\f167"}.ri-spam-2-fill:before{content:"\f168"}.ri-spam-2-line:before{content:"\f169"}.ri-spam-3-fill:before{content:"\f16a"}.ri-spam-3-line:before{content:"\f16b"}.ri-spam-fill:before{content:"\f16c"}.ri-spam-line:before{content:"\f16d"}.ri-speaker-2-fill:before{content:"\f16e"}.ri-speaker-2-line:before{content:"\f16f"}.ri-speaker-3-fill:before{content:"\f170"}.ri-speaker-3-line:before{content:"\f171"}.ri-speaker-fill:before{content:"\f172"}.ri-speaker-line:before{content:"\f173"}.ri-spectrum-fill:before{content:"\f174"}.ri-spectrum-line:before{content:"\f175"}.ri-speed-fill:before{content:"\f176"}.ri-speed-line:before{content:"\f177"}.ri-speed-mini-fill:before{content:"\f178"}.ri-speed-mini-line:before{content:"\f179"}.ri-split-cells-horizontal:before{content:"\f17a"}.ri-split-cells-vertical:before{content:"\f17b"}.ri-spotify-fill:before{content:"\f17c"}.ri-spotify-line:before{content:"\f17d"}.ri-spy-fill:before{content:"\f17e"}.ri-spy-line:before{content:"\f17f"}.ri-stack-fill:before{content:"\f180"}.ri-stack-line:before{content:"\f181"}.ri-stack-overflow-fill:before{content:"\f182"}.ri-stack-overflow-line:before{content:"\f183"}.ri-stackshare-fill:before{content:"\f184"}.ri-stackshare-line:before{content:"\f185"}.ri-star-fill:before{content:"\f186"}.ri-star-half-fill:before{content:"\f187"}.ri-star-half-line:before{content:"\f188"}.ri-star-half-s-fill:before{content:"\f189"}.ri-star-half-s-line:before{content:"\f18a"}.ri-star-line:before{content:"\f18b"}.ri-star-s-fill:before{content:"\f18c"}.ri-star-s-line:before{content:"\f18d"}.ri-star-smile-fill:before{content:"\f18e"}.ri-star-smile-line:before{content:"\f18f"}.ri-steam-fill:before{content:"\f190"}.ri-steam-line:before{content:"\f191"}.ri-steering-2-fill:before{content:"\f192"}.ri-steering-2-line:before{content:"\f193"}.ri-steering-fill:before{content:"\f194"}.ri-steering-line:before{content:"\f195"}.ri-stethoscope-fill:before{content:"\f196"}.ri-stethoscope-line:before{content:"\f197"}.ri-sticky-note-2-fill:before{content:"\f198"}.ri-sticky-note-2-line:before{content:"\f199"}.ri-sticky-note-fill:before{content:"\f19a"}.ri-sticky-note-line:before{content:"\f19b"}.ri-stock-fill:before{content:"\f19c"}.ri-stock-line:before{content:"\f19d"}.ri-stop-circle-fill:before{content:"\f19e"}.ri-stop-circle-line:before{content:"\f19f"}.ri-stop-fill:before{content:"\f1a0"}.ri-stop-line:before{content:"\f1a1"}.ri-stop-mini-fill:before{content:"\f1a2"}.ri-stop-mini-line:before{content:"\f1a3"}.ri-store-2-fill:before{content:"\f1a4"}.ri-store-2-line:before{content:"\f1a5"}.ri-store-3-fill:before{content:"\f1a6"}.ri-store-3-line:before{content:"\f1a7"}.ri-store-fill:before{content:"\f1a8"}.ri-store-line:before{content:"\f1a9"}.ri-strikethrough-2:before{content:"\f1aa"}.ri-strikethrough:before{content:"\f1ab"}.ri-subscript-2:before{content:"\f1ac"}.ri-subscript:before{content:"\f1ad"}.ri-subtract-fill:before{content:"\f1ae"}.ri-subtract-line:before{content:"\f1af"}.ri-subway-fill:before{content:"\f1b0"}.ri-subway-line:before{content:"\f1b1"}.ri-subway-wifi-fill:before{content:"\f1b2"}.ri-subway-wifi-line:before{content:"\f1b3"}.ri-suitcase-2-fill:before{content:"\f1b4"}.ri-suitcase-2-line:before{content:"\f1b5"}.ri-suitcase-3-fill:before{content:"\f1b6"}.ri-suitcase-3-line:before{content:"\f1b7"}.ri-suitcase-fill:before{content:"\f1b8"}.ri-suitcase-line:before{content:"\f1b9"}.ri-sun-cloudy-fill:before{content:"\f1ba"}.ri-sun-cloudy-line:before{content:"\f1bb"}.ri-sun-fill:before{content:"\f1bc"}.ri-sun-foggy-fill:before{content:"\f1bd"}.ri-sun-foggy-line:before{content:"\f1be"}.ri-sun-line:before{content:"\f1bf"}.ri-superscript-2:before{content:"\f1c0"}.ri-superscript:before{content:"\f1c1"}.ri-surgical-mask-fill:before{content:"\f1c2"}.ri-surgical-mask-line:before{content:"\f1c3"}.ri-surround-sound-fill:before{content:"\f1c4"}.ri-surround-sound-line:before{content:"\f1c5"}.ri-survey-fill:before{content:"\f1c6"}.ri-survey-line:before{content:"\f1c7"}.ri-swap-box-fill:before{content:"\f1c8"}.ri-swap-box-line:before{content:"\f1c9"}.ri-swap-fill:before{content:"\f1ca"}.ri-swap-line:before{content:"\f1cb"}.ri-switch-fill:before{content:"\f1cc"}.ri-switch-line:before{content:"\f1cd"}.ri-sword-fill:before{content:"\f1ce"}.ri-sword-line:before{content:"\f1cf"}.ri-syringe-fill:before{content:"\f1d0"}.ri-syringe-line:before{content:"\f1d1"}.ri-t-box-fill:before{content:"\f1d2"}.ri-t-box-line:before{content:"\f1d3"}.ri-t-shirt-2-fill:before{content:"\f1d4"}.ri-t-shirt-2-line:before{content:"\f1d5"}.ri-t-shirt-air-fill:before{content:"\f1d6"}.ri-t-shirt-air-line:before{content:"\f1d7"}.ri-t-shirt-fill:before{content:"\f1d8"}.ri-t-shirt-line:before{content:"\f1d9"}.ri-table-2:before{content:"\f1da"}.ri-table-alt-fill:before{content:"\f1db"}.ri-table-alt-line:before{content:"\f1dc"}.ri-table-fill:before{content:"\f1dd"}.ri-table-line:before{content:"\f1de"}.ri-tablet-fill:before{content:"\f1df"}.ri-tablet-line:before{content:"\f1e0"}.ri-takeaway-fill:before{content:"\f1e1"}.ri-takeaway-line:before{content:"\f1e2"}.ri-taobao-fill:before{content:"\f1e3"}.ri-taobao-line:before{content:"\f1e4"}.ri-tape-fill:before{content:"\f1e5"}.ri-tape-line:before{content:"\f1e6"}.ri-task-fill:before{content:"\f1e7"}.ri-task-line:before{content:"\f1e8"}.ri-taxi-fill:before{content:"\f1e9"}.ri-taxi-line:before{content:"\f1ea"}.ri-taxi-wifi-fill:before{content:"\f1eb"}.ri-taxi-wifi-line:before{content:"\f1ec"}.ri-team-fill:before{content:"\f1ed"}.ri-team-line:before{content:"\f1ee"}.ri-telegram-fill:before{content:"\f1ef"}.ri-telegram-line:before{content:"\f1f0"}.ri-temp-cold-fill:before{content:"\f1f1"}.ri-temp-cold-line:before{content:"\f1f2"}.ri-temp-hot-fill:before{content:"\f1f3"}.ri-temp-hot-line:before{content:"\f1f4"}.ri-terminal-box-fill:before{content:"\f1f5"}.ri-terminal-box-line:before{content:"\f1f6"}.ri-terminal-fill:before{content:"\f1f7"}.ri-terminal-line:before{content:"\f1f8"}.ri-terminal-window-fill:before{content:"\f1f9"}.ri-terminal-window-line:before{content:"\f1fa"}.ri-test-tube-fill:before{content:"\f1fb"}.ri-test-tube-line:before{content:"\f1fc"}.ri-text-direction-l:before{content:"\f1fd"}.ri-text-direction-r:before{content:"\f1fe"}.ri-text-spacing:before{content:"\f1ff"}.ri-text-wrap:before{content:"\f200"}.ri-text:before{content:"\f201"}.ri-thermometer-fill:before{content:"\f202"}.ri-thermometer-line:before{content:"\f203"}.ri-thumb-down-fill:before{content:"\f204"}.ri-thumb-down-line:before{content:"\f205"}.ri-thumb-up-fill:before{content:"\f206"}.ri-thumb-up-line:before{content:"\f207"}.ri-thunderstorms-fill:before{content:"\f208"}.ri-thunderstorms-line:before{content:"\f209"}.ri-ticket-2-fill:before{content:"\f20a"}.ri-ticket-2-line:before{content:"\f20b"}.ri-ticket-fill:before{content:"\f20c"}.ri-ticket-line:before{content:"\f20d"}.ri-time-fill:before{content:"\f20e"}.ri-time-line:before{content:"\f20f"}.ri-timer-2-fill:before{content:"\f210"}.ri-timer-2-line:before{content:"\f211"}.ri-timer-fill:before{content:"\f212"}.ri-timer-flash-fill:before{content:"\f213"}.ri-timer-flash-line:before{content:"\f214"}.ri-timer-line:before{content:"\f215"}.ri-todo-fill:before{content:"\f216"}.ri-todo-line:before{content:"\f217"}.ri-toggle-fill:before{content:"\f218"}.ri-toggle-line:before{content:"\f219"}.ri-tools-fill:before{content:"\f21a"}.ri-tools-line:before{content:"\f21b"}.ri-tornado-fill:before{content:"\f21c"}.ri-tornado-line:before{content:"\f21d"}.ri-trademark-fill:before{content:"\f21e"}.ri-trademark-line:before{content:"\f21f"}.ri-traffic-light-fill:before{content:"\f220"}.ri-traffic-light-line:before{content:"\f221"}.ri-train-fill:before{content:"\f222"}.ri-train-line:before{content:"\f223"}.ri-train-wifi-fill:before{content:"\f224"}.ri-train-wifi-line:before{content:"\f225"}.ri-translate-2:before{content:"\f226"}.ri-translate:before{content:"\f227"}.ri-travesti-fill:before{content:"\f228"}.ri-travesti-line:before{content:"\f229"}.ri-treasure-map-fill:before{content:"\f22a"}.ri-treasure-map-line:before{content:"\f22b"}.ri-trello-fill:before{content:"\f22c"}.ri-trello-line:before{content:"\f22d"}.ri-trophy-fill:before{content:"\f22e"}.ri-trophy-line:before{content:"\f22f"}.ri-truck-fill:before{content:"\f230"}.ri-truck-line:before{content:"\f231"}.ri-tumblr-fill:before{content:"\f232"}.ri-tumblr-line:before{content:"\f233"}.ri-tv-2-fill:before{content:"\f234"}.ri-tv-2-line:before{content:"\f235"}.ri-tv-fill:before{content:"\f236"}.ri-tv-line:before{content:"\f237"}.ri-twitch-fill:before{content:"\f238"}.ri-twitch-line:before{content:"\f239"}.ri-twitter-fill:before{content:"\f23a"}.ri-twitter-line:before{content:"\f23b"}.ri-typhoon-fill:before{content:"\f23c"}.ri-typhoon-line:before{content:"\f23d"}.ri-u-disk-fill:before{content:"\f23e"}.ri-u-disk-line:before{content:"\f23f"}.ri-ubuntu-fill:before{content:"\f240"}.ri-ubuntu-line:before{content:"\f241"}.ri-umbrella-fill:before{content:"\f242"}.ri-umbrella-line:before{content:"\f243"}.ri-underline:before{content:"\f244"}.ri-uninstall-fill:before{content:"\f245"}.ri-uninstall-line:before{content:"\f246"}.ri-unsplash-fill:before{content:"\f247"}.ri-unsplash-line:before{content:"\f248"}.ri-upload-2-fill:before{content:"\f249"}.ri-upload-2-line:before{content:"\f24a"}.ri-upload-cloud-2-fill:before{content:"\f24b"}.ri-upload-cloud-2-line:before{content:"\f24c"}.ri-upload-cloud-fill:before{content:"\f24d"}.ri-upload-cloud-line:before{content:"\f24e"}.ri-upload-fill:before{content:"\f24f"}.ri-upload-line:before{content:"\f250"}.ri-usb-fill:before{content:"\f251"}.ri-usb-line:before{content:"\f252"}.ri-user-2-fill:before{content:"\f253"}.ri-user-2-line:before{content:"\f254"}.ri-user-3-fill:before{content:"\f255"}.ri-user-3-line:before{content:"\f256"}.ri-user-4-fill:before{content:"\f257"}.ri-user-4-line:before{content:"\f258"}.ri-user-5-fill:before{content:"\f259"}.ri-user-5-line:before{content:"\f25a"}.ri-user-6-fill:before{content:"\f25b"}.ri-user-6-line:before{content:"\f25c"}.ri-user-add-fill:before{content:"\f25d"}.ri-user-add-line:before{content:"\f25e"}.ri-user-fill:before{content:"\f25f"}.ri-user-follow-fill:before{content:"\f260"}.ri-user-follow-line:before{content:"\f261"}.ri-user-heart-fill:before{content:"\f262"}.ri-user-heart-line:before{content:"\f263"}.ri-user-line:before{content:"\f264"}.ri-user-location-fill:before{content:"\f265"}.ri-user-location-line:before{content:"\f266"}.ri-user-received-2-fill:before{content:"\f267"}.ri-user-received-2-line:before{content:"\f268"}.ri-user-received-fill:before{content:"\f269"}.ri-user-received-line:before{content:"\f26a"}.ri-user-search-fill:before{content:"\f26b"}.ri-user-search-line:before{content:"\f26c"}.ri-user-settings-fill:before{content:"\f26d"}.ri-user-settings-line:before{content:"\f26e"}.ri-user-shared-2-fill:before{content:"\f26f"}.ri-user-shared-2-line:before{content:"\f270"}.ri-user-shared-fill:before{content:"\f271"}.ri-user-shared-line:before{content:"\f272"}.ri-user-smile-fill:before{content:"\f273"}.ri-user-smile-line:before{content:"\f274"}.ri-user-star-fill:before{content:"\f275"}.ri-user-star-line:before{content:"\f276"}.ri-user-unfollow-fill:before{content:"\f277"}.ri-user-unfollow-line:before{content:"\f278"}.ri-user-voice-fill:before{content:"\f279"}.ri-user-voice-line:before{content:"\f27a"}.ri-video-add-fill:before{content:"\f27b"}.ri-video-add-line:before{content:"\f27c"}.ri-video-chat-fill:before{content:"\f27d"}.ri-video-chat-line:before{content:"\f27e"}.ri-video-download-fill:before{content:"\f27f"}.ri-video-download-line:before{content:"\f280"}.ri-video-fill:before{content:"\f281"}.ri-video-line:before{content:"\f282"}.ri-video-upload-fill:before{content:"\f283"}.ri-video-upload-line:before{content:"\f284"}.ri-vidicon-2-fill:before{content:"\f285"}.ri-vidicon-2-line:before{content:"\f286"}.ri-vidicon-fill:before{content:"\f287"}.ri-vidicon-line:before{content:"\f288"}.ri-vimeo-fill:before{content:"\f289"}.ri-vimeo-line:before{content:"\f28a"}.ri-vip-crown-2-fill:before{content:"\f28b"}.ri-vip-crown-2-line:before{content:"\f28c"}.ri-vip-crown-fill:before{content:"\f28d"}.ri-vip-crown-line:before{content:"\f28e"}.ri-vip-diamond-fill:before{content:"\f28f"}.ri-vip-diamond-line:before{content:"\f290"}.ri-vip-fill:before{content:"\f291"}.ri-vip-line:before{content:"\f292"}.ri-virus-fill:before{content:"\f293"}.ri-virus-line:before{content:"\f294"}.ri-visa-fill:before{content:"\f295"}.ri-visa-line:before{content:"\f296"}.ri-voice-recognition-fill:before{content:"\f297"}.ri-voice-recognition-line:before{content:"\f298"}.ri-voiceprint-fill:before{content:"\f299"}.ri-voiceprint-line:before{content:"\f29a"}.ri-volume-down-fill:before{content:"\f29b"}.ri-volume-down-line:before{content:"\f29c"}.ri-volume-mute-fill:before{content:"\f29d"}.ri-volume-mute-line:before{content:"\f29e"}.ri-volume-off-vibrate-fill:before{content:"\f29f"}.ri-volume-off-vibrate-line:before{content:"\f2a0"}.ri-volume-up-fill:before{content:"\f2a1"}.ri-volume-up-line:before{content:"\f2a2"}.ri-volume-vibrate-fill:before{content:"\f2a3"}.ri-volume-vibrate-line:before{content:"\f2a4"}.ri-vuejs-fill:before{content:"\f2a5"}.ri-vuejs-line:before{content:"\f2a6"}.ri-walk-fill:before{content:"\f2a7"}.ri-walk-line:before{content:"\f2a8"}.ri-wallet-2-fill:before{content:"\f2a9"}.ri-wallet-2-line:before{content:"\f2aa"}.ri-wallet-3-fill:before{content:"\f2ab"}.ri-wallet-3-line:before{content:"\f2ac"}.ri-wallet-fill:before{content:"\f2ad"}.ri-wallet-line:before{content:"\f2ae"}.ri-water-flash-fill:before{content:"\f2af"}.ri-water-flash-line:before{content:"\f2b0"}.ri-webcam-fill:before{content:"\f2b1"}.ri-webcam-line:before{content:"\f2b2"}.ri-wechat-2-fill:before{content:"\f2b3"}.ri-wechat-2-line:before{content:"\f2b4"}.ri-wechat-fill:before{content:"\f2b5"}.ri-wechat-line:before{content:"\f2b6"}.ri-wechat-pay-fill:before{content:"\f2b7"}.ri-wechat-pay-line:before{content:"\f2b8"}.ri-weibo-fill:before{content:"\f2b9"}.ri-weibo-line:before{content:"\f2ba"}.ri-whatsapp-fill:before{content:"\f2bb"}.ri-whatsapp-line:before{content:"\f2bc"}.ri-wheelchair-fill:before{content:"\f2bd"}.ri-wheelchair-line:before{content:"\f2be"}.ri-wifi-fill:before{content:"\f2bf"}.ri-wifi-line:before{content:"\f2c0"}.ri-wifi-off-fill:before{content:"\f2c1"}.ri-wifi-off-line:before{content:"\f2c2"}.ri-window-2-fill:before{content:"\f2c3"}.ri-window-2-line:before{content:"\f2c4"}.ri-window-fill:before{content:"\f2c5"}.ri-window-line:before{content:"\f2c6"}.ri-windows-fill:before{content:"\f2c7"}.ri-windows-line:before{content:"\f2c8"}.ri-windy-fill:before{content:"\f2c9"}.ri-windy-line:before{content:"\f2ca"}.ri-wireless-charging-fill:before{content:"\f2cb"}.ri-wireless-charging-line:before{content:"\f2cc"}.ri-women-fill:before{content:"\f2cd"}.ri-women-line:before{content:"\f2ce"}.ri-wubi-input:before{content:"\f2cf"}.ri-xbox-fill:before{content:"\f2d0"}.ri-xbox-line:before{content:"\f2d1"}.ri-xing-fill:before{content:"\f2d2"}.ri-xing-line:before{content:"\f2d3"}.ri-youtube-fill:before{content:"\f2d4"}.ri-youtube-line:before{content:"\f2d5"}.ri-zcool-fill:before{content:"\f2d6"}.ri-zcool-line:before{content:"\f2d7"}.ri-zhihu-fill:before{content:"\f2d8"}.ri-zhihu-line:before{content:"\f2d9"}.ri-zoom-in-fill:before{content:"\f2da"}.ri-zoom-in-line:before{content:"\f2db"}.ri-zoom-out-fill:before{content:"\f2dc"}.ri-zoom-out-line:before{content:"\f2dd"}.ri-zzz-fill:before{content:"\f2de"}.ri-zzz-line:before{content:"\f2df"}.ri-arrow-down-double-fill:before{content:"\f2e0"}.ri-arrow-down-double-line:before{content:"\f2e1"}.ri-arrow-left-double-fill:before{content:"\f2e2"}.ri-arrow-left-double-line:before{content:"\f2e3"}.ri-arrow-right-double-fill:before{content:"\f2e4"}.ri-arrow-right-double-line:before{content:"\f2e5"}.ri-arrow-turn-back-fill:before{content:"\f2e6"}.ri-arrow-turn-back-line:before{content:"\f2e7"}.ri-arrow-turn-forward-fill:before{content:"\f2e8"}.ri-arrow-turn-forward-line:before{content:"\f2e9"}.ri-arrow-up-double-fill:before{content:"\f2ea"}.ri-arrow-up-double-line:before{content:"\f2eb"}.ri-bard-fill:before{content:"\f2ec"}.ri-bard-line:before{content:"\f2ed"}.ri-bootstrap-fill:before{content:"\f2ee"}.ri-bootstrap-line:before{content:"\f2ef"}.ri-box-1-fill:before{content:"\f2f0"}.ri-box-1-line:before{content:"\f2f1"}.ri-box-2-fill:before{content:"\f2f2"}.ri-box-2-line:before{content:"\f2f3"}.ri-box-3-fill:before{content:"\f2f4"}.ri-box-3-line:before{content:"\f2f5"}.ri-brain-fill:before{content:"\f2f6"}.ri-brain-line:before{content:"\f2f7"}.ri-candle-fill:before{content:"\f2f8"}.ri-candle-line:before{content:"\f2f9"}.ri-cash-fill:before{content:"\f2fa"}.ri-cash-line:before{content:"\f2fb"}.ri-contract-left-fill:before{content:"\f2fc"}.ri-contract-left-line:before{content:"\f2fd"}.ri-contract-left-right-fill:before{content:"\f2fe"}.ri-contract-left-right-line:before{content:"\f2ff"}.ri-contract-right-fill:before{content:"\f300"}.ri-contract-right-line:before{content:"\f301"}.ri-contract-up-down-fill:before{content:"\f302"}.ri-contract-up-down-line:before{content:"\f303"}.ri-copilot-fill:before{content:"\f304"}.ri-copilot-line:before{content:"\f305"}.ri-corner-down-left-fill:before{content:"\f306"}.ri-corner-down-left-line:before{content:"\f307"}.ri-corner-down-right-fill:before{content:"\f308"}.ri-corner-down-right-line:before{content:"\f309"}.ri-corner-left-down-fill:before{content:"\f30a"}.ri-corner-left-down-line:before{content:"\f30b"}.ri-corner-left-up-fill:before{content:"\f30c"}.ri-corner-left-up-line:before{content:"\f30d"}.ri-corner-right-down-fill:before{content:"\f30e"}.ri-corner-right-down-line:before{content:"\f30f"}.ri-corner-right-up-fill:before{content:"\f310"}.ri-corner-right-up-line:before{content:"\f311"}.ri-corner-up-left-double-fill:before{content:"\f312"}.ri-corner-up-left-double-line:before{content:"\f313"}.ri-corner-up-left-fill:before{content:"\f314"}.ri-corner-up-left-line:before{content:"\f315"}.ri-corner-up-right-double-fill:before{content:"\f316"}.ri-corner-up-right-double-line:before{content:"\f317"}.ri-corner-up-right-fill:before{content:"\f318"}.ri-corner-up-right-line:before{content:"\f319"}.ri-cross-fill:before{content:"\f31a"}.ri-cross-line:before{content:"\f31b"}.ri-edge-new-fill:before{content:"\f31c"}.ri-edge-new-line:before{content:"\f31d"}.ri-equal-fill:before{content:"\f31e"}.ri-equal-line:before{content:"\f31f"}.ri-expand-left-fill:before{content:"\f320"}.ri-expand-left-line:before{content:"\f321"}.ri-expand-left-right-fill:before{content:"\f322"}.ri-expand-left-right-line:before{content:"\f323"}.ri-expand-right-fill:before{content:"\f324"}.ri-expand-right-line:before{content:"\f325"}.ri-expand-up-down-fill:before{content:"\f326"}.ri-expand-up-down-line:before{content:"\f327"}.ri-flickr-fill:before{content:"\f328"}.ri-flickr-line:before{content:"\f329"}.ri-forward-10-fill:before{content:"\f32a"}.ri-forward-10-line:before{content:"\f32b"}.ri-forward-15-fill:before{content:"\f32c"}.ri-forward-15-line:before{content:"\f32d"}.ri-forward-30-fill:before{content:"\f32e"}.ri-forward-30-line:before{content:"\f32f"}.ri-forward-5-fill:before{content:"\f330"}.ri-forward-5-line:before{content:"\f331"}.ri-graduation-cap-fill:before{content:"\f332"}.ri-graduation-cap-line:before{content:"\f333"}.ri-home-office-fill:before{content:"\f334"}.ri-home-office-line:before{content:"\f335"}.ri-hourglass-2-fill:before{content:"\f336"}.ri-hourglass-2-line:before{content:"\f337"}.ri-hourglass-fill:before{content:"\f338"}.ri-hourglass-line:before{content:"\f339"}.ri-javascript-fill:before{content:"\f33a"}.ri-javascript-line:before{content:"\f33b"}.ri-loop-left-fill:before{content:"\f33c"}.ri-loop-left-line:before{content:"\f33d"}.ri-loop-right-fill:before{content:"\f33e"}.ri-loop-right-line:before{content:"\f33f"}.ri-memories-fill:before{content:"\f340"}.ri-memories-line:before{content:"\f341"}.ri-meta-fill:before{content:"\f342"}.ri-meta-line:before{content:"\f343"}.ri-microsoft-loop-fill:before{content:"\f344"}.ri-microsoft-loop-line:before{content:"\f345"}.ri-nft-fill:before{content:"\f346"}.ri-nft-line:before{content:"\f347"}.ri-notion-fill:before{content:"\f348"}.ri-notion-line:before{content:"\f349"}.ri-openai-fill:before{content:"\f34a"}.ri-openai-line:before{content:"\f34b"}.ri-overline:before{content:"\f34c"}.ri-p2p-fill:before{content:"\f34d"}.ri-p2p-line:before{content:"\f34e"}.ri-presentation-fill:before{content:"\f34f"}.ri-presentation-line:before{content:"\f350"}.ri-replay-10-fill:before{content:"\f351"}.ri-replay-10-line:before{content:"\f352"}.ri-replay-15-fill:before{content:"\f353"}.ri-replay-15-line:before{content:"\f354"}.ri-replay-30-fill:before{content:"\f355"}.ri-replay-30-line:before{content:"\f356"}.ri-replay-5-fill:before{content:"\f357"}.ri-replay-5-line:before{content:"\f358"}.ri-school-fill:before{content:"\f359"}.ri-school-line:before{content:"\f35a"}.ri-shining-2-fill:before{content:"\f35b"}.ri-shining-2-line:before{content:"\f35c"}.ri-shining-fill:before{content:"\f35d"}.ri-shining-line:before{content:"\f35e"}.ri-sketching:before{content:"\f35f"}.ri-skip-down-fill:before{content:"\f360"}.ri-skip-down-line:before{content:"\f361"}.ri-skip-left-fill:before{content:"\f362"}.ri-skip-left-line:before{content:"\f363"}.ri-skip-right-fill:before{content:"\f364"}.ri-skip-right-line:before{content:"\f365"}.ri-skip-up-fill:before{content:"\f366"}.ri-skip-up-line:before{content:"\f367"}.ri-slow-down-fill:before{content:"\f368"}.ri-slow-down-line:before{content:"\f369"}.ri-sparkling-2-fill:before{content:"\f36a"}.ri-sparkling-2-line:before{content:"\f36b"}.ri-sparkling-fill:before{content:"\f36c"}.ri-sparkling-line:before{content:"\f36d"}.ri-speak-fill:before{content:"\f36e"}.ri-speak-line:before{content:"\f36f"}.ri-speed-up-fill:before{content:"\f370"}.ri-speed-up-line:before{content:"\f371"}.ri-tiktok-fill:before{content:"\f372"}.ri-tiktok-line:before{content:"\f373"}.ri-token-swap-fill:before{content:"\f374"}.ri-token-swap-line:before{content:"\f375"}.ri-unpin-fill:before{content:"\f376"}.ri-unpin-line:before{content:"\f377"}.ri-wechat-channels-fill:before{content:"\f378"}.ri-wechat-channels-line:before{content:"\f379"}.ri-wordpress-fill:before{content:"\f37a"}.ri-wordpress-line:before{content:"\f37b"}.ri-blender-fill:before{content:"\f37c"}.ri-blender-line:before{content:"\f37d"}.ri-emoji-sticker-fill:before{content:"\f37e"}.ri-emoji-sticker-line:before{content:"\f37f"}.ri-git-close-pull-request-fill:before{content:"\f380"}.ri-git-close-pull-request-line:before{content:"\f381"}.ri-instance-fill:before{content:"\f382"}.ri-instance-line:before{content:"\f383"}.ri-megaphone-fill:before{content:"\f384"}.ri-megaphone-line:before{content:"\f385"}.ri-pass-expired-fill:before{content:"\f386"}.ri-pass-expired-line:before{content:"\f387"}.ri-pass-pending-fill:before{content:"\f388"}.ri-pass-pending-line:before{content:"\f389"}.ri-pass-valid-fill:before{content:"\f38a"}.ri-pass-valid-line:before{content:"\f38b"}.ri-ai-generate:before{content:"\f38c"}.ri-calendar-close-fill:before{content:"\f38d"}.ri-calendar-close-line:before{content:"\f38e"}.ri-draggable:before{content:"\f38f"}.ri-font-family:before{content:"\f390"}.ri-font-mono:before{content:"\f391"}.ri-font-sans-serif:before{content:"\f392"}.ri-hard-drive-3-fill:before{content:"\f393"}.ri-hard-drive-3-line:before{content:"\f394"}.ri-kick-fill:before{content:"\f395"}.ri-kick-line:before{content:"\f396"}.ri-list-check-3:before{content:"\f397"}.ri-list-indefinite:before{content:"\f398"}.ri-list-ordered-2:before{content:"\f399"}.ri-list-radio:before{content:"\f39a"}.ri-openbase-fill:before{content:"\f39b"}.ri-openbase-line:before{content:"\f39c"}.ri-planet-fill:before{content:"\f39d"}.ri-planet-line:before{content:"\f39e"}.ri-prohibited-fill:before{content:"\f39f"}.ri-prohibited-line:before{content:"\f3a0"}.ri-quote-text:before{content:"\f3a1"}.ri-seo-fill:before{content:"\f3a2"}.ri-seo-line:before{content:"\f3a3"}.ri-slash-commands:before{content:"\f3a4"}.ri-archive-2-fill:before{content:"\f3a5"}.ri-archive-2-line:before{content:"\f3a6"}.ri-inbox-2-fill:before{content:"\f3a7"}.ri-inbox-2-line:before{content:"\f3a8"}.ri-shake-hands-fill:before{content:"\f3a9"}.ri-shake-hands-line:before{content:"\f3aa"}.ri-supabase-fill:before{content:"\f3ab"}.ri-supabase-line:before{content:"\f3ac"}.ri-water-percent-fill:before{content:"\f3ad"}.ri-water-percent-line:before{content:"\f3ae"}.ri-yuque-fill:before{content:"\f3af"}.ri-yuque-line:before{content:"\f3b0"}.ri-crosshair-2-fill:before{content:"\f3b1"}.ri-crosshair-2-line:before{content:"\f3b2"}.ri-crosshair-fill:before{content:"\f3b3"}.ri-crosshair-line:before{content:"\f3b4"}.ri-file-close-fill:before{content:"\f3b5"}.ri-file-close-line:before{content:"\f3b6"}.ri-infinity-fill:before{content:"\f3b7"}.ri-infinity-line:before{content:"\f3b8"}.ri-rfid-fill:before{content:"\f3b9"}.ri-rfid-line:before{content:"\f3ba"}.ri-slash-commands-2:before{content:"\f3bb"}.ri-user-forbid-fill:before{content:"\f3bc"}.ri-user-forbid-line:before{content:"\f3bd"}.ri-beer-fill:before{content:"\f3be"}.ri-beer-line:before{content:"\f3bf"}.ri-circle-fill:before{content:"\f3c0"}.ri-circle-line:before{content:"\f3c1"}.ri-dropdown-list:before{content:"\f3c2"}.ri-file-image-fill:before{content:"\f3c3"}.ri-file-image-line:before{content:"\f3c4"}.ri-file-pdf-2-fill:before{content:"\f3c5"}.ri-file-pdf-2-line:before{content:"\f3c6"}.ri-file-video-fill:before{content:"\f3c7"}.ri-file-video-line:before{content:"\f3c8"}.ri-folder-image-fill:before{content:"\f3c9"}.ri-folder-image-line:before{content:"\f3ca"}.ri-folder-video-fill:before{content:"\f3cb"}.ri-folder-video-line:before{content:"\f3cc"}.ri-hexagon-fill:before{content:"\f3cd"}.ri-hexagon-line:before{content:"\f3ce"}.ri-menu-search-fill:before{content:"\f3cf"}.ri-menu-search-line:before{content:"\f3d0"}.ri-octagon-fill:before{content:"\f3d1"}.ri-octagon-line:before{content:"\f3d2"}.ri-pentagon-fill:before{content:"\f3d3"}.ri-pentagon-line:before{content:"\f3d4"}.ri-rectangle-fill:before{content:"\f3d5"}.ri-rectangle-line:before{content:"\f3d6"}.ri-robot-2-fill:before{content:"\f3d7"}.ri-robot-2-line:before{content:"\f3d8"}.ri-shapes-fill:before{content:"\f3d9"}.ri-shapes-line:before{content:"\f3da"}.ri-square-fill:before{content:"\f3db"}.ri-square-line:before{content:"\f3dc"}.ri-tent-fill:before{content:"\f3dd"}.ri-tent-line:before{content:"\f3de"}.ri-threads-fill:before{content:"\f3df"}.ri-threads-line:before{content:"\f3e0"}.ri-tree-fill:before{content:"\f3e1"}.ri-tree-line:before{content:"\f3e2"}.ri-triangle-fill:before{content:"\f3e3"}.ri-triangle-line:before{content:"\f3e4"}.ri-twitter-x-fill:before{content:"\f3e5"}.ri-twitter-x-line:before{content:"\f3e6"}.ri-verified-badge-fill:before{content:"\f3e7"}.ri-verified-badge-line:before{content:"\f3e8"}.ri-armchair-fill:before{content:"\f3e9"}.ri-armchair-line:before{content:"\f3ea"}.ri-bnb-fill:before{content:"\f3eb"}.ri-bnb-line:before{content:"\f3ec"}.ri-bread-fill:before{content:"\f3ed"}.ri-bread-line:before{content:"\f3ee"}.ri-btc-fill:before{content:"\f3ef"}.ri-btc-line:before{content:"\f3f0"}.ri-calendar-schedule-fill:before{content:"\f3f1"}.ri-calendar-schedule-line:before{content:"\f3f2"}.ri-dice-1-fill:before{content:"\f3f3"}.ri-dice-1-line:before{content:"\f3f4"}.ri-dice-2-fill:before{content:"\f3f5"}.ri-dice-2-line:before{content:"\f3f6"}.ri-dice-3-fill:before{content:"\f3f7"}.ri-dice-3-line:before{content:"\f3f8"}.ri-dice-4-fill:before{content:"\f3f9"}.ri-dice-4-line:before{content:"\f3fa"}.ri-dice-5-fill:before{content:"\f3fb"}.ri-dice-5-line:before{content:"\f3fc"}.ri-dice-6-fill:before{content:"\f3fd"}.ri-dice-6-line:before{content:"\f3fe"}.ri-dice-fill:before{content:"\f3ff"}.ri-dice-line:before{content:"\f400"}.ri-drinks-fill:before{content:"\f401"}.ri-drinks-line:before{content:"\f402"}.ri-equalizer-2-fill:before{content:"\f403"}.ri-equalizer-2-line:before{content:"\f404"}.ri-equalizer-3-fill:before{content:"\f405"}.ri-equalizer-3-line:before{content:"\f406"}.ri-eth-fill:before{content:"\f407"}.ri-eth-line:before{content:"\f408"}.ri-flower-fill:before{content:"\f409"}.ri-flower-line:before{content:"\f40a"}.ri-glasses-2-fill:before{content:"\f40b"}.ri-glasses-2-line:before{content:"\f40c"}.ri-glasses-fill:before{content:"\f40d"}.ri-glasses-line:before{content:"\f40e"}.ri-goggles-fill:before{content:"\f40f"}.ri-goggles-line:before{content:"\f410"}.ri-image-circle-fill:before{content:"\f411"}.ri-image-circle-line:before{content:"\f412"}.ri-info-i:before{content:"\f413"}.ri-money-rupee-circle-fill:before{content:"\f414"}.ri-money-rupee-circle-line:before{content:"\f415"}.ri-news-fill:before{content:"\f416"}.ri-news-line:before{content:"\f417"}.ri-robot-3-fill:before{content:"\f418"}.ri-robot-3-line:before{content:"\f419"}.ri-share-2-fill:before{content:"\f41a"}.ri-share-2-line:before{content:"\f41b"}.ri-sofa-fill:before{content:"\f41c"}.ri-sofa-line:before{content:"\f41d"}.ri-svelte-fill:before{content:"\f41e"}.ri-svelte-line:before{content:"\f41f"}.ri-vk-fill:before{content:"\f420"}.ri-vk-line:before{content:"\f421"}.ri-xrp-fill:before{content:"\f422"}.ri-xrp-line:before{content:"\f423"}.ri-xtz-fill:before{content:"\f424"}.ri-xtz-line:before{content:"\f425"}.ri-archive-stack-fill:before{content:"\f426"}.ri-archive-stack-line:before{content:"\f427"}.ri-bowl-fill:before{content:"\f428"}.ri-bowl-line:before{content:"\f429"}.ri-calendar-view:before{content:"\f42a"}.ri-carousel-view:before{content:"\f42b"}.ri-code-block:before{content:"\f42c"}.ri-color-filter-fill:before{content:"\f42d"}.ri-color-filter-line:before{content:"\f42e"}.ri-contacts-book-3-fill:before{content:"\f42f"}.ri-contacts-book-3-line:before{content:"\f430"}.ri-contract-fill:before{content:"\f431"}.ri-contract-line:before{content:"\f432"}.ri-drinks-2-fill:before{content:"\f433"}.ri-drinks-2-line:before{content:"\f434"}.ri-export-fill:before{content:"\f435"}.ri-export-line:before{content:"\f436"}.ri-file-check-fill:before{content:"\f437"}.ri-file-check-line:before{content:"\f438"}.ri-focus-mode:before{content:"\f439"}.ri-folder-6-fill:before{content:"\f43a"}.ri-folder-6-line:before{content:"\f43b"}.ri-folder-check-fill:before{content:"\f43c"}.ri-folder-check-line:before{content:"\f43d"}.ri-folder-close-fill:before{content:"\f43e"}.ri-folder-close-line:before{content:"\f43f"}.ri-folder-cloud-fill:before{content:"\f440"}.ri-folder-cloud-line:before{content:"\f441"}.ri-gallery-view-2:before{content:"\f442"}.ri-gallery-view:before{content:"\f443"}.ri-hand:before{content:"\f444"}.ri-import-fill:before{content:"\f445"}.ri-import-line:before{content:"\f446"}.ri-information-2-fill:before{content:"\f447"}.ri-information-2-line:before{content:"\f448"}.ri-kanban-view-2:before{content:"\f449"}.ri-kanban-view:before{content:"\f44a"}.ri-list-view:before{content:"\f44b"}.ri-lock-star-fill:before{content:"\f44c"}.ri-lock-star-line:before{content:"\f44d"}.ri-puzzle-2-fill:before{content:"\f44e"}.ri-puzzle-2-line:before{content:"\f44f"}.ri-puzzle-fill:before{content:"\f450"}.ri-puzzle-line:before{content:"\f451"}.ri-ram-2-fill:before{content:"\f452"}.ri-ram-2-line:before{content:"\f453"}.ri-ram-fill:before{content:"\f454"}.ri-ram-line:before{content:"\f455"}.ri-receipt-fill:before{content:"\f456"}.ri-receipt-line:before{content:"\f457"}.ri-shadow-fill:before{content:"\f458"}.ri-shadow-line:before{content:"\f459"}.ri-sidebar-fold-fill:before{content:"\f45a"}.ri-sidebar-fold-line:before{content:"\f45b"}.ri-sidebar-unfold-fill:before{content:"\f45c"}.ri-sidebar-unfold-line:before{content:"\f45d"}.ri-slideshow-view:before{content:"\f45e"}.ri-sort-alphabet-asc:before{content:"\f45f"}.ri-sort-alphabet-desc:before{content:"\f460"}.ri-sort-number-asc:before{content:"\f461"}.ri-sort-number-desc:before{content:"\f462"}.ri-stacked-view:before{content:"\f463"}.ri-sticky-note-add-fill:before{content:"\f464"}.ri-sticky-note-add-line:before{content:"\f465"}.ri-swap-2-fill:before{content:"\f466"}.ri-swap-2-line:before{content:"\f467"}.ri-swap-3-fill:before{content:"\f468"}.ri-swap-3-line:before{content:"\f469"}.ri-table-3:before{content:"\f46a"}.ri-table-view:before{content:"\f46b"}.ri-text-block:before{content:"\f46c"}.ri-text-snippet:before{content:"\f46d"}.ri-timeline-view:before{content:"\f46e"}.ri-blogger-fill:before{content:"\f46f"}.ri-blogger-line:before{content:"\f470"}.ri-chat-thread-fill:before{content:"\f471"}.ri-chat-thread-line:before{content:"\f472"}.ri-discount-percent-fill:before{content:"\f473"}.ri-discount-percent-line:before{content:"\f474"}.ri-exchange-2-fill:before{content:"\f475"}.ri-exchange-2-line:before{content:"\f476"}.ri-git-fork-fill:before{content:"\f477"}.ri-git-fork-line:before{content:"\f478"}.ri-input-field:before{content:"\f479"}.ri-progress-1-fill:before{content:"\f47a"}.ri-progress-1-line:before{content:"\f47b"}.ri-progress-2-fill:before{content:"\f47c"}.ri-progress-2-line:before{content:"\f47d"}.ri-progress-3-fill:before{content:"\f47e"}.ri-progress-3-line:before{content:"\f47f"}.ri-progress-4-fill:before{content:"\f480"}.ri-progress-4-line:before{content:"\f481"}.ri-progress-5-fill:before{content:"\f482"}.ri-progress-5-line:before{content:"\f483"}.ri-progress-6-fill:before{content:"\f484"}.ri-progress-6-line:before{content:"\f485"}.ri-progress-7-fill:before{content:"\f486"}.ri-progress-7-line:before{content:"\f487"}.ri-progress-8-fill:before{content:"\f488"}.ri-progress-8-line:before{content:"\f489"}.ri-remix-run-fill:before{content:"\f48a"}.ri-remix-run-line:before{content:"\f48b"}.ri-signpost-fill:before{content:"\f48c"}.ri-signpost-line:before{content:"\f48d"}.ri-time-zone-fill:before{content:"\f48e"}.ri-time-zone-line:before{content:"\f48f"}.ri-arrow-down-wide-fill:before{content:"\f490"}.ri-arrow-down-wide-line:before{content:"\f491"}.ri-arrow-left-wide-fill:before{content:"\f492"}.ri-arrow-left-wide-line:before{content:"\f493"}.ri-arrow-right-wide-fill:before{content:"\f494"}.ri-arrow-right-wide-line:before{content:"\f495"}.ri-arrow-up-wide-fill:before{content:"\f496"}.ri-arrow-up-wide-line:before{content:"\f497"}.ri-bluesky-fill:before{content:"\f498"}.ri-bluesky-line:before{content:"\f499"}.ri-expand-height-fill:before{content:"\f49a"}.ri-expand-height-line:before{content:"\f49b"}.ri-expand-width-fill:before{content:"\f49c"}.ri-expand-width-line:before{content:"\f49d"}.ri-forward-end-fill:before{content:"\f49e"}.ri-forward-end-line:before{content:"\f49f"}.ri-forward-end-mini-fill:before{content:"\f4a0"}.ri-forward-end-mini-line:before{content:"\f4a1"}.ri-friendica-fill:before{content:"\f4a2"}.ri-friendica-line:before{content:"\f4a3"}.ri-git-pr-draft-fill:before{content:"\f4a4"}.ri-git-pr-draft-line:before{content:"\f4a5"}.ri-play-reverse-fill:before{content:"\f4a6"}.ri-play-reverse-line:before{content:"\f4a7"}.ri-play-reverse-mini-fill:before{content:"\f4a8"}.ri-play-reverse-mini-line:before{content:"\f4a9"}.ri-rewind-start-fill:before{content:"\f4aa"}.ri-rewind-start-line:before{content:"\f4ab"}.ri-rewind-start-mini-fill:before{content:"\f4ac"}.ri-rewind-start-mini-line:before{content:"\f4ad"}.ri-scroll-to-bottom-fill:before{content:"\f4ae"}.ri-scroll-to-bottom-line:before{content:"\f4af"}.ri-add-large-fill:before{content:"\f4b0"}.ri-add-large-line:before{content:"\f4b1"}.ri-aed-electrodes-fill:before{content:"\f4b2"}.ri-aed-electrodes-line:before{content:"\f4b3"}.ri-aed-fill:before{content:"\f4b4"}.ri-aed-line:before{content:"\f4b5"}.ri-alibaba-cloud-fill:before{content:"\f4b6"}.ri-alibaba-cloud-line:before{content:"\f4b7"}.ri-align-item-bottom-fill:before{content:"\f4b8"}.ri-align-item-bottom-line:before{content:"\f4b9"}.ri-align-item-horizontal-center-fill:before{content:"\f4ba"}.ri-align-item-horizontal-center-line:before{content:"\f4bb"}.ri-align-item-left-fill:before{content:"\f4bc"}.ri-align-item-left-line:before{content:"\f4bd"}.ri-align-item-right-fill:before{content:"\f4be"}.ri-align-item-right-line:before{content:"\f4bf"}.ri-align-item-top-fill:before{content:"\f4c0"}.ri-align-item-top-line:before{content:"\f4c1"}.ri-align-item-vertical-center-fill:before{content:"\f4c2"}.ri-align-item-vertical-center-line:before{content:"\f4c3"}.ri-apps-2-add-fill:before{content:"\f4c4"}.ri-apps-2-add-line:before{content:"\f4c5"}.ri-close-large-fill:before{content:"\f4c6"}.ri-close-large-line:before{content:"\f4c7"}.ri-collapse-diagonal-2-fill:before{content:"\f4c8"}.ri-collapse-diagonal-2-line:before{content:"\f4c9"}.ri-collapse-diagonal-fill:before{content:"\f4ca"}.ri-collapse-diagonal-line:before{content:"\f4cb"}.ri-dashboard-horizontal-fill:before{content:"\f4cc"}.ri-dashboard-horizontal-line:before{content:"\f4cd"}.ri-expand-diagonal-2-fill:before{content:"\f4ce"}.ri-expand-diagonal-2-line:before{content:"\f4cf"}.ri-expand-diagonal-fill:before{content:"\f4d0"}.ri-expand-diagonal-line:before{content:"\f4d1"}.ri-firebase-fill:before{content:"\f4d2"}.ri-firebase-line:before{content:"\f4d3"}.ri-flip-horizontal-2-fill:before{content:"\f4d4"}.ri-flip-horizontal-2-line:before{content:"\f4d5"}.ri-flip-horizontal-fill:before{content:"\f4d6"}.ri-flip-horizontal-line:before{content:"\f4d7"}.ri-flip-vertical-2-fill:before{content:"\f4d8"}.ri-flip-vertical-2-line:before{content:"\f4d9"}.ri-flip-vertical-fill:before{content:"\f4da"}.ri-flip-vertical-line:before{content:"\f4db"}.ri-formula:before{content:"\f4dc"}.ri-function-add-fill:before{content:"\f4dd"}.ri-function-add-line:before{content:"\f4de"}.ri-goblet-2-fill:before{content:"\f4df"}.ri-goblet-2-line:before{content:"\f4e0"}.ri-golf-ball-fill:before{content:"\f4e1"}.ri-golf-ball-line:before{content:"\f4e2"}.ri-group-3-fill:before{content:"\f4e3"}.ri-group-3-line:before{content:"\f4e4"}.ri-heart-add-2-fill:before{content:"\f4e5"}.ri-heart-add-2-line:before{content:"\f4e6"}.ri-id-card-fill:before{content:"\f4e7"}.ri-id-card-line:before{content:"\f4e8"}.ri-information-off-fill:before{content:"\f4e9"}.ri-information-off-line:before{content:"\f4ea"}.ri-java-fill:before{content:"\f4eb"}.ri-java-line:before{content:"\f4ec"}.ri-layout-grid-2-fill:before{content:"\f4ed"}.ri-layout-grid-2-line:before{content:"\f4ee"}.ri-layout-horizontal-fill:before{content:"\f4ef"}.ri-layout-horizontal-line:before{content:"\f4f0"}.ri-layout-vertical-fill:before{content:"\f4f1"}.ri-layout-vertical-line:before{content:"\f4f2"}.ri-menu-fold-2-fill:before{content:"\f4f3"}.ri-menu-fold-2-line:before{content:"\f4f4"}.ri-menu-fold-3-fill:before{content:"\f4f5"}.ri-menu-fold-3-line:before{content:"\f4f6"}.ri-menu-fold-4-fill:before{content:"\f4f7"}.ri-menu-fold-4-line:before{content:"\f4f8"}.ri-menu-unfold-2-fill:before{content:"\f4f9"}.ri-menu-unfold-2-line:before{content:"\f4fa"}.ri-menu-unfold-3-fill:before{content:"\f4fb"}.ri-menu-unfold-3-line:before{content:"\f4fc"}.ri-menu-unfold-4-fill:before{content:"\f4fd"}.ri-menu-unfold-4-line:before{content:"\f4fe"}.ri-mobile-download-fill:before{content:"\f4ff"}.ri-mobile-download-line:before{content:"\f500"}.ri-nextjs-fill:before{content:"\f501"}.ri-nextjs-line:before{content:"\f502"}.ri-nodejs-fill:before{content:"\f503"}.ri-nodejs-line:before{content:"\f504"}.ri-pause-large-fill:before{content:"\f505"}.ri-pause-large-line:before{content:"\f506"}.ri-play-large-fill:before{content:"\f507"}.ri-play-large-line:before{content:"\f508"}.ri-play-reverse-large-fill:before{content:"\f509"}.ri-play-reverse-large-line:before{content:"\f50a"}.ri-police-badge-fill:before{content:"\f50b"}.ri-police-badge-line:before{content:"\f50c"}.ri-prohibited-2-fill:before{content:"\f50d"}.ri-prohibited-2-line:before{content:"\f50e"}.ri-shopping-bag-4-fill:before{content:"\f50f"}.ri-shopping-bag-4-line:before{content:"\f510"}.ri-snowflake-fill:before{content:"\f511"}.ri-snowflake-line:before{content:"\f512"}.ri-square-root:before{content:"\f513"}.ri-stop-large-fill:before{content:"\f514"}.ri-stop-large-line:before{content:"\f515"}.ri-tailwind-css-fill:before{content:"\f516"}.ri-tailwind-css-line:before{content:"\f517"}.ri-tooth-fill:before{content:"\f518"}.ri-tooth-line:before{content:"\f519"}.ri-video-off-fill:before{content:"\f51a"}.ri-video-off-line:before{content:"\f51b"}.ri-video-on-fill:before{content:"\f51c"}.ri-video-on-line:before{content:"\f51d"}.ri-webhook-fill:before{content:"\f51e"}.ri-webhook-line:before{content:"\f51f"}.ri-weight-fill:before{content:"\f520"}.ri-weight-line:before{content:"\f521"}.ri-book-shelf-fill:before{content:"\f522"}.ri-book-shelf-line:before{content:"\f523"}.ri-brain-2-fill:before{content:"\f524"}.ri-brain-2-line:before{content:"\f525"}.ri-chat-search-fill:before{content:"\f526"}.ri-chat-search-line:before{content:"\f527"}.ri-chat-unread-fill:before{content:"\f528"}.ri-chat-unread-line:before{content:"\f529"}.ri-collapse-horizontal-fill:before{content:"\f52a"}.ri-collapse-horizontal-line:before{content:"\f52b"}.ri-collapse-vertical-fill:before{content:"\f52c"}.ri-collapse-vertical-line:before{content:"\f52d"}.ri-dna-fill:before{content:"\f52e"}.ri-dna-line:before{content:"\f52f"}.ri-dropper-fill:before{content:"\f530"}.ri-dropper-line:before{content:"\f531"}.ri-expand-diagonal-s-2-fill:before{content:"\f532"}.ri-expand-diagonal-s-2-line:before{content:"\f533"}.ri-expand-diagonal-s-fill:before{content:"\f534"}.ri-expand-diagonal-s-line:before{content:"\f535"}.ri-expand-horizontal-fill:before{content:"\f536"}.ri-expand-horizontal-line:before{content:"\f537"}.ri-expand-horizontal-s-fill:before{content:"\f538"}.ri-expand-horizontal-s-line:before{content:"\f539"}.ri-expand-vertical-fill:before{content:"\f53a"}.ri-expand-vertical-line:before{content:"\f53b"}.ri-expand-vertical-s-fill:before{content:"\f53c"}.ri-expand-vertical-s-line:before{content:"\f53d"}.ri-gemini-fill:before{content:"\f53e"}.ri-gemini-line:before{content:"\f53f"}.ri-reset-left-fill:before{content:"\f540"}.ri-reset-left-line:before{content:"\f541"}.ri-reset-right-fill:before{content:"\f542"}.ri-reset-right-line:before{content:"\f543"}.ri-stairs-fill:before{content:"\f544"}.ri-stairs-line:before{content:"\f545"}.ri-telegram-2-fill:before{content:"\f546"}.ri-telegram-2-line:before{content:"\f547"}.ri-triangular-flag-fill:before{content:"\f548"}.ri-triangular-flag-line:before{content:"\f549"}.ri-user-minus-fill:before{content:"\f54a"}.ri-user-minus-line:before{content:"\f54b"}.ri-account-box-2-fill:before{content:"\f54c"}.ri-account-box-2-line:before{content:"\f54d"}.ri-account-circle-2-fill:before{content:"\f54e"}.ri-account-circle-2-line:before{content:"\f54f"}.ri-alarm-snooze-fill:before{content:"\f550"}.ri-alarm-snooze-line:before{content:"\f551"}.ri-arrow-down-box-fill:before{content:"\f552"}.ri-arrow-down-box-line:before{content:"\f553"}.ri-arrow-left-box-fill:before{content:"\f554"}.ri-arrow-left-box-line:before{content:"\f555"}.ri-arrow-left-down-box-fill:before{content:"\f556"}.ri-arrow-left-down-box-line:before{content:"\f557"}.ri-arrow-left-up-box-fill:before{content:"\f558"}.ri-arrow-left-up-box-line:before{content:"\f559"}.ri-arrow-right-box-fill:before{content:"\f55a"}.ri-arrow-right-box-line:before{content:"\f55b"}.ri-arrow-right-down-box-fill:before{content:"\f55c"}.ri-arrow-right-down-box-line:before{content:"\f55d"}.ri-arrow-right-up-box-fill:before{content:"\f55e"}.ri-arrow-right-up-box-line:before{content:"\f55f"}.ri-arrow-up-box-fill:before{content:"\f560"}.ri-arrow-up-box-line:before{content:"\f561"}.ri-bar-chart-box-ai-fill:before{content:"\f562"}.ri-bar-chart-box-ai-line:before{content:"\f563"}.ri-brush-ai-fill:before{content:"\f564"}.ri-brush-ai-line:before{content:"\f565"}.ri-camera-ai-fill:before{content:"\f566"}.ri-camera-ai-line:before{content:"\f567"}.ri-chat-ai-fill:before{content:"\f568"}.ri-chat-ai-line:before{content:"\f569"}.ri-chat-smile-ai-fill:before{content:"\f56a"}.ri-chat-smile-ai-line:before{content:"\f56b"}.ri-chat-voice-ai-fill:before{content:"\f56c"}.ri-chat-voice-ai-line:before{content:"\f56d"}.ri-code-ai-fill:before{content:"\f56e"}.ri-code-ai-line:before{content:"\f56f"}.ri-color-filter-ai-fill:before{content:"\f570"}.ri-color-filter-ai-line:before{content:"\f571"}.ri-custom-size:before{content:"\f572"}.ri-fediverse-fill:before{content:"\f573"}.ri-fediverse-line:before{content:"\f574"}.ri-flag-off-fill:before{content:"\f575"}.ri-flag-off-line:before{content:"\f576"}.ri-home-9-fill:before{content:"\f577"}.ri-home-9-line:before{content:"\f578"}.ri-image-ai-fill:before{content:"\f579"}.ri-image-ai-line:before{content:"\f57a"}.ri-image-circle-ai-fill:before{content:"\f57b"}.ri-image-circle-ai-line:before{content:"\f57c"}.ri-info-card-fill:before{content:"\f57d"}.ri-info-card-line:before{content:"\f57e"}.ri-landscape-ai-fill:before{content:"\f57f"}.ri-landscape-ai-line:before{content:"\f580"}.ri-letter-spacing-2:before{content:"\f581"}.ri-line-height-2:before{content:"\f582"}.ri-mail-ai-fill:before{content:"\f583"}.ri-mail-ai-line:before{content:"\f584"}.ri-mic-2-ai-fill:before{content:"\f585"}.ri-mic-2-ai-line:before{content:"\f586"}.ri-mic-ai-fill:before{content:"\f587"}.ri-mic-ai-line:before{content:"\f588"}.ri-movie-ai-fill:before{content:"\f589"}.ri-movie-ai-line:before{content:"\f58a"}.ri-music-ai-fill:before{content:"\f58b"}.ri-music-ai-line:before{content:"\f58c"}.ri-notification-snooze-fill:before{content:"\f58d"}.ri-notification-snooze-line:before{content:"\f58e"}.ri-php-fill:before{content:"\f58f"}.ri-php-line:before{content:"\f590"}.ri-pix-fill:before{content:"\f591"}.ri-pix-line:before{content:"\f592"}.ri-pulse-ai-fill:before{content:"\f593"}.ri-pulse-ai-line:before{content:"\f594"}.ri-quill-pen-ai-fill:before{content:"\f595"}.ri-quill-pen-ai-line:before{content:"\f596"}.ri-speak-ai-fill:before{content:"\f597"}.ri-speak-ai-line:before{content:"\f598"}.ri-star-off-fill:before{content:"\f599"}.ri-star-off-line:before{content:"\f59a"}.ri-translate-ai-2:before{content:"\f59b"}.ri-translate-ai:before{content:"\f59c"}.ri-user-community-fill:before{content:"\f59d"}.ri-user-community-line:before{content:"\f59e"}.ri-vercel-fill:before{content:"\f59f"}.ri-vercel-line:before{content:"\f5a0"}.ri-video-ai-fill:before{content:"\f5a1"}.ri-video-ai-line:before{content:"\f5a2"}.ri-video-on-ai-fill:before{content:"\f5a3"}.ri-video-on-ai-line:before{content:"\f5a4"}.ri-voice-ai-fill:before{content:"\f5a5"}.ri-voice-ai-line:before{content:"\f5a6"}.ri-ai-generate-2:before{content:"\f5a7"}.ri-ai-generate-text:before{content:"\f5a8"}.ri-anthropic-fill:before{content:"\f5a9"}.ri-anthropic-line:before{content:"\f5aa"}.ri-apps-2-ai-fill:before{content:"\f5ab"}.ri-apps-2-ai-line:before{content:"\f5ac"}.ri-camera-lens-ai-fill:before{content:"\f5ad"}.ri-camera-lens-ai-line:before{content:"\f5ae"}.ri-clapperboard-ai-fill:before{content:"\f5af"}.ri-clapperboard-ai-line:before{content:"\f5b0"}.ri-claude-fill:before{content:"\f5b1"}.ri-claude-line:before{content:"\f5b2"}.ri-closed-captioning-ai-fill:before{content:"\f5b3"}.ri-closed-captioning-ai-line:before{content:"\f5b4"}.ri-dvd-ai-fill:before{content:"\f5b5"}.ri-dvd-ai-line:before{content:"\f5b6"}.ri-film-ai-fill:before{content:"\f5b7"}.ri-film-ai-line:before{content:"\f5b8"}.ri-font-size-ai:before{content:"\f5b9"}.ri-mixtral-fill:before{content:"\f5ba"}.ri-mixtral-line:before{content:"\f5bb"}.ri-movie-2-ai-fill:before{content:"\f5bc"}.ri-movie-2-ai-line:before{content:"\f5bd"}.ri-mv-ai-fill:before{content:"\f5be"}.ri-mv-ai-line:before{content:"\f5bf"}.ri-perplexity-fill:before{content:"\f5c0"}.ri-perplexity-line:before{content:"\f5c1"}.ri-poker-clubs-fill:before{content:"\f5c2"}.ri-poker-clubs-line:before{content:"\f5c3"}.ri-poker-diamonds-fill:before{content:"\f5c4"}.ri-poker-diamonds-line:before{content:"\f5c5"}.ri-poker-hearts-fill:before{content:"\f5c6"}.ri-poker-hearts-line:before{content:"\f5c7"}.ri-poker-spades-fill:before{content:"\f5c8"}.ri-poker-spades-line:before{content:"\f5c9"}.ri-safe-3-fill:before{content:"\f5ca"}.ri-safe-3-line:before{content:"\f5cb"}.ri-accessibility-fill:before{content:"\f5cc"}.ri-accessibility-line:before{content:"\f5cd"}.ri-alarm-add-fill:before{content:"\f5ce"}.ri-alarm-add-line:before{content:"\f5cf"}.ri-arrow-down-long-fill:before{content:"\f5d0"}.ri-arrow-down-long-line:before{content:"\f5d1"}.ri-arrow-left-down-long-fill:before{content:"\f5d2"}.ri-arrow-left-down-long-line:before{content:"\f5d3"}.ri-arrow-left-long-fill:before{content:"\f5d4"}.ri-arrow-left-long-line:before{content:"\f5d5"}.ri-arrow-left-up-long-fill:before{content:"\f5d6"}.ri-arrow-left-up-long-line:before{content:"\f5d7"}.ri-arrow-right-down-long-fill:before{content:"\f5d8"}.ri-arrow-right-down-long-line:before{content:"\f5d9"}.ri-arrow-right-long-fill:before{content:"\f5da"}.ri-arrow-right-long-line:before{content:"\f5db"}.ri-arrow-right-up-long-fill:before{content:"\f5dc"}.ri-arrow-right-up-long-line:before{content:"\f5dd"}.ri-arrow-up-long-fill:before{content:"\f5de"}.ri-arrow-up-long-line:before{content:"\f5df"}.ri-chess-fill:before{content:"\f5e0"}.ri-chess-line:before{content:"\f5e1"}.ri-diamond-fill:before{content:"\f5e2"}.ri-diamond-line:before{content:"\f5e3"}.ri-diamond-ring-fill:before{content:"\f5e4"}.ri-diamond-ring-line:before{content:"\f5e5"}.ri-figma-fill:before{content:"\f5e6"}.ri-figma-line:before{content:"\f5e7"}.ri-firefox-browser-fill:before{content:"\f5e8"}.ri-firefox-browser-line:before{content:"\f5e9"}.ri-jewelry-fill:before{content:"\f5ea"}.ri-jewelry-line:before{content:"\f5eb"}.ri-multi-image-fill:before{content:"\f5ec"}.ri-multi-image-line:before{content:"\f5ed"}.ri-no-credit-card-fill:before{content:"\f5ee"}.ri-no-credit-card-line:before{content:"\f5ef"}.ri-service-bell-fill:before{content:"\f5f0"}.ri-service-bell-line:before{content:"\f5f1"}.ri-ai-agent-fill:before{content:"\f5f2"}.ri-ai-agent-line:before{content:"\f5f3"}.ri-ai-generate-2-fill:before{content:"\f5f4"}.ri-ai-generate-2-line:before{content:"\f5f5"}.ri-ai-generate-3d-fill:before{content:"\f5f6"}.ri-ai-generate-3d-line:before{content:"\f5f7"}.ri-ai:before{content:"\f5f8"}.ri-apps-ai-fill:before{content:"\f5f9"}.ri-apps-ai-line:before{content:"\f5fa"}.ri-atom-fill:before{content:"\f5fb"}.ri-atom-line:before{content:"\f5fc"}.ri-book-ai-fill:before{content:"\f5fd"}.ri-book-ai-line:before{content:"\f5fe"}.ri-brain-3-fill:before{content:"\f5ff"}.ri-brain-3-line:before{content:"\f600"}.ri-brain-ai-3-fill:before{content:"\f601"}.ri-brain-ai-3-line:before{content:"\f602"}.ri-brush-ai-3-fill:before{content:"\f603"}.ri-brush-ai-3-line:before{content:"\f604"}.ri-camera-4-fill:before{content:"\f605"}.ri-camera-4-line:before{content:"\f606"}.ri-camera-ai-2-fill:before{content:"\f607"}.ri-camera-ai-2-line:before{content:"\f608"}.ri-chat-ai-2-fill:before{content:"\f609"}.ri-chat-ai-2-line:before{content:"\f60a"}.ri-chat-ai-3-fill:before{content:"\f60b"}.ri-chat-ai-3-line:before{content:"\f60c"}.ri-chat-ai-4-fill:before{content:"\f60d"}.ri-chat-ai-4-line:before{content:"\f60e"}.ri-chat-smile-ai-3-fill:before{content:"\f60f"}.ri-chat-smile-ai-3-line:before{content:"\f610"}.ri-deepseek-fill:before{content:"\f611"}.ri-deepseek-line:before{content:"\f612"}.ri-file-ai-2-fill:before{content:"\f613"}.ri-file-ai-2-line:before{content:"\f614"}.ri-file-ai-fill:before{content:"\f615"}.ri-file-ai-line:before{content:"\f616"}.ri-function-ai-fill:before{content:"\f617"}.ri-function-ai-line:before{content:"\f618"}.ri-game-2-fill:before{content:"\f619"}.ri-game-2-line:before{content:"\f61a"}.ri-goblet-broken-fill:before{content:"\f61b"}.ri-goblet-broken-line:before{content:"\f61c"}.ri-lightbulb-ai-fill:before{content:"\f61d"}.ri-lightbulb-ai-line:before{content:"\f61e"}.ri-loop-left-ai-fill:before{content:"\f61f"}.ri-loop-left-ai-line:before{content:"\f620"}.ri-loop-right-ai-fill:before{content:"\f621"}.ri-loop-right-ai-line:before{content:"\f622"}.ri-message-ai-3-fill:before{content:"\f623"}.ri-message-ai-3-line:before{content:"\f624"}.ri-painting-ai-fill:before{content:"\f625"}.ri-painting-ai-line:before{content:"\f626"}.ri-painting-fill:before{content:"\f627"}.ri-painting-line:before{content:"\f628"}.ri-pencil-ai-2-fill:before{content:"\f629"}.ri-pencil-ai-2-line:before{content:"\f62a"}.ri-pencil-ai-fill:before{content:"\f62b"}.ri-pencil-ai-line:before{content:"\f62c"}.ri-remix-fill:before{content:"\f62d"}.ri-remix-line:before{content:"\f62e"}.ri-search-ai-2-fill:before{content:"\f62f"}.ri-search-ai-2-line:before{content:"\f630"}.ri-search-ai-3-fill:before{content:"\f631"}.ri-search-ai-3-line:before{content:"\f632"}.ri-search-ai-4-fill:before{content:"\f633"}.ri-search-ai-4-line:before{content:"\f634"}.ri-search-ai-fill:before{content:"\f635"}.ri-search-ai-line:before{content:"\f636"}.ri-speech-to-text-fill:before{content:"\f637"}.ri-speech-to-text-line:before{content:"\f638"}.ri-target-fill:before{content:"\f639"}.ri-target-line:before{content:"\f63a"}.ri-text-to-speech-fill:before{content:"\f63b"}.ri-text-to-speech-line:before{content:"\f63c"}.ri-wrench-fill:before{content:"\f63d"}.ri-wrench-line:before{content:"\f63e"}.ri-area-chart-fill:before{content:"\f63f"}.ri-area-chart-line:before{content:"\f640"}.ri-baseball-fill:before{content:"\f641"}.ri-baseball-line:before{content:"\f642"}.ri-binoculars-fill:before{content:"\f643"}.ri-binoculars-line:before{content:"\f644"}.ri-cursor-hand:before{content:"\f645"}.ri-emotion-add-fill:before{content:"\f646"}.ri-emotion-add-line:before{content:"\f647"}.ri-file-scan-fill:before{content:"\f648"}.ri-file-scan-line:before{content:"\f649"}.ri-fiverr-fill:before{content:"\f64a"}.ri-fiverr-line:before{content:"\f64b"}.ri-font-serif:before{content:"\f64c"}.ri-ghost-3-fill:before{content:"\f64d"}.ri-ghost-3-line:before{content:"\f64e"}.ri-gitee-fill:before{content:"\f64f"}.ri-gitee-line:before{content:"\f650"}.ri-global-off-fill:before{content:"\f651"}.ri-global-off-line:before{content:"\f652"}.ri-image-download-fill:before{content:"\f653"}.ri-image-download-line:before{content:"\f654"}.ri-image-upload-fill:before{content:"\f655"}.ri-image-upload-line:before{content:"\f656"}.ri-issues-fill:before{content:"\f657"}.ri-issues-line:before{content:"\f658"}.ri-issues-reopen-fill:before{content:"\f659"}.ri-issues-reopen-line:before{content:"\f65a"}.ri-network-error-fill:before{content:"\f65b"}.ri-network-error-line:before{content:"\f65c"}.ri-network-fill:before{content:"\f65d"}.ri-network-line:before{content:"\f65e"}.ri-network-off-fill:before{content:"\f65f"}.ri-network-off-line:before{content:"\f660"}.ri-piano-fill:before{content:"\f661"}.ri-piano-grand-fill:before{content:"\f662"}.ri-piano-grand-line:before{content:"\f663"}.ri-piano-line:before{content:"\f664"}.ri-plug-3-fill:before{content:"\f665"}.ri-plug-3-line:before{content:"\f666"}.ri-send-ins-fill:before{content:"\f667"}.ri-send-ins-line:before{content:"\f668"}.ri-signal-cellular-1-fill:before{content:"\f669"}.ri-signal-cellular-1-line:before{content:"\f66a"}.ri-signal-cellular-2-fill:before{content:"\f66b"}.ri-signal-cellular-2-line:before{content:"\f66c"}.ri-signal-cellular-3-fill:before{content:"\f66d"}.ri-signal-cellular-3-line:before{content:"\f66e"}.ri-signal-cellular-off-fill:before{content:"\f66f"}.ri-signal-cellular-off-line:before{content:"\f670"}.ri-stacked-chart-fill:before{content:"\f671"}.ri-stacked-chart-line:before{content:"\f672"}.ri-upwork-fill:before{content:"\f673"}.ri-upwork-line:before{content:"\f674"}.ri-brain-4-fill:before{content:"\f675"}.ri-brain-4-line:before{content:"\f676"}.ri-certificate-2-fill:before{content:"\f677"}.ri-certificate-2-line:before{content:"\f678"}.ri-certificate-fill:before{content:"\f679"}.ri-certificate-line:before{content:"\f67a"}.ri-cookie-fill:before{content:"\f67b"}.ri-cookie-line:before{content:"\f67c"}.ri-cursor-ai-fill:before{content:"\f67d"}.ri-cursor-ai-line:before{content:"\f67e"}.ri-draw-fill:before{content:"\f67f"}.ri-draw-line:before{content:"\f680"}.ri-ghost-4-fill:before{content:"\f681"}.ri-ghost-4-line:before{content:"\f682"}.ri-gitbook-fill:before{content:"\f683"}.ri-gitbook-line:before{content:"\f684"}.ri-grok-ai-fill:before{content:"\f685"}.ri-grok-ai-line:before{content:"\f686"}.ri-hand-2:before{content:"\f687"}.ri-megaphone-2-fill:before{content:"\f688"}.ri-megaphone-2-line:before{content:"\f689"}.ri-microsoft-copilot-fill:before{content:"\f68a"}.ri-microsoft-copilot-line:before{content:"\f68b"}.ri-mosaic-fill:before{content:"\f68c"}.ri-mosaic-line:before{content:"\f68d"}.ri-qr-scan-ai-fill:before{content:"\f68e"}.ri-qr-scan-ai-line:before{content:"\f68f"}.ri-qwen-ai-fill:before{content:"\f690"}.ri-qwen-ai-line:before{content:"\f691"}.ri-reddit-2-fill:before{content:"\f692"}.ri-reddit-2-line:before{content:"\f693"}.ri-sim-card-warning-fill:before{content:"\f694"}.ri-sim-card-warning-line:before{content:"\f695"}.ri-space-ship-2-fill:before{content:"\f696"}.ri-space-ship-2-line:before{content:"\f697"}.ri-subreddit-fill:before{content:"\f698"}.ri-subreddit-line:before{content:"\f699"}.ri-zhipu-ai-fill:before{content:"\f69a"}.ri-zhipu-ai-line:before{content:"\f69b"}.ri-connector-fill:before{content:"\f69c"}.ri-connector-line:before{content:"\f69d"}
/**
 * LightSNS Header Styles
 * 全新设计 - 现代化浅色调
 */

/* CSS 变量统一由 ui.css 管理，此处不再重复定义 */

/* ========================================
   全局基础样式
   ======================================== */

* {
    box-sizing: border-box;
}

:focus-visible {
    outline: 0;
}

main {
    width: var(--ls-width);
    margin: 0 auto;
}

/* ========================================
   全局滚动条美化
   ======================================== */

/* html/body 滚动条 */
html {
    height: 100%;
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 0, 0, 0.15) transparent;
}

html::-webkit-scrollbar {
    width: 6px;
}

html::-webkit-scrollbar-track {
    background: transparent;
}

html::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.15);
    border-radius: 50px;
}

html::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 0, 0, 0.25);
}

/* ls-modal 弹窗滚动条 */
.ls-modal-body {
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 0, 0, 0.1) transparent;
}

.ls-modal-body::-webkit-scrollbar {
    width: 4px;
}

.ls-modal-body::-webkit-scrollbar-track {
    background: transparent;
}

.ls-modal-body::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.1);
    border-radius: 50px;
}

.ls-modal-body::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 0, 0, 0.2);
}

[onclick] {
    cursor: pointer;
    transition: opacity .3s;
}

/* 正文自动成链：链接文字就是网址原文，所以按传统链接的样子出
   —— 蓝色 + 下划线，长网址在容器里换行而不是把版面撑开。
   小程序那一档是「图标 + 文案」，不加下划线。 */
.hyperlink {
    color: var(--ls-primary);
    text-decoration: underline;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.hyperlink.ls-miniprogram-link {
    color: #07c160;
    text-decoration: none;
}

a {
    color: #333;
    text-decoration: none;
}

li {
    list-style: none;
}

button,
input,
optgroup,
option,
select,
textarea {
    padding: 0;
    border: 0;
    outline: 0;
}

button {
    background: 0 0;
}

blockquote,
body,
button,
dd,
div,
dl,
dt,
form,
h1,
h2,
h3,
h4,
h5,
h6,
input,
li,
ol,
p,
pre,
td,
textarea,
th,
ul {
    margin: 0;
    padding: 0;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

body {
    background-color: #f5f6f7;
    line-height: 1.6;
    font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
    color: #777;
}

/*表情：尺寸在 static/css/emoji.css，四个外壳共用一份*/

/* 图标 */
.remix-icon {
    font-size: 20px;
}

.ls-mark {
    color: #fff;
    height: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    border-radius: 3px;
    gap: 3px;
    padding: 0 5px;
    line-height: 16px;
    font-weight: 200;
}

.ls-mark img {
    max-width: 50px !important;
    height: 16px;
    width: auto;
    object-fit: contain;
    display: block;
}

.ls-user-gender {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border-radius: var(--ls-radius-full, 999px);
    line-height: 16px;
    vertical-align: middle;
    flex-shrink: 0;
}

.ls-user-gender i {
    font-size: 12px;
    line-height: 1;
}

.ls-user-gender-boy {
    color: #2563eb;
    background: rgba(37, 99, 235, 0.1);
}

.ls-user-gender-girl {
    color: #db2777;
    background: rgba(219, 39, 119, 0.1);
}

/* ========================================
   头部容器
   ======================================== */
.ls-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: var(--ls-header-height);
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    border-bottom: 1px solid var(--ls-border-light);
    z-index: 10000;
}

.ls-header-inner {
    max-width: 1400px;
    height: 100%;
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.ls-header-left {
    display: flex;
    align-items: center;
    gap: 32px;
}

.ls-header-right {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* ========================================
   Logo
   ======================================== */
.ls-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
}

.ls-logo-img {
    height: 36px;
    width: auto;
}

.ls-logo-svg {
    height: 40px;
}

.ls-logo-svg svg {
    width: 100%;
    height: 100%;
}

.ls-logo-icon {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--ls-radius-md);
}

.ls-logo-icon i {
    font-size: 20px;
    color: #fff;
}

.ls-logo-text {
    font-size: 18px;
    font-weight: 700;
    color: var(--ls-text-primary);
    letter-spacing: -0.5px;
}

/* ========================================
   主导航
   ======================================== */
.ls-main-nav {
    display: flex;
    align-items: center;
    gap: 2px;
}

.ls-nav-item {
    position: relative;
}

.ls-nav-item > a,
.ls-nav-item.active {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 8px 12px;
    font-size: 14px;
    font-weight: 500;
    color: var(--ls-text-secondary);
    text-decoration: none;
    border-radius: var(--ls-radius-md);
    transition: var(--ls-transition);
}

.ls-nav-item > a:hover {
    color: var(--ls-text-primary);
    background: var(--ls-bg-hover);
}

.ls-nav-item.active > a,
.ls-nav-item.active {
    color: var(--ls-primary);
    background: var(--ls-primary-light);
}

/* 导航图标容器 */
.ls-nav-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ls-nav-icon i {
    font-size: 18px;
}

/* 导航文字容器（用于小红点定位） */
.ls-nav-item > a > span:not(.ls-nav-icon):not(.ls-nav-badge) {
    position: relative;
}

.ls-arrow {
    font-size: 14px;
    opacity: 0.5;
    transition: var(--ls-transition);
}

.ls-has-dropdown:hover .ls-arrow {
    transform: rotate(180deg);
}

/* 导航角标 */
.ls-nav-badge {
    padding: 2px 6px;
    font-size: 10px;
    font-weight: 600;
    color: #fff;
    background: #ef4444;
    border-radius: var(--ls-radius-full);
    margin-left: 4px;
}

.ls-nav-badge.sale {
    background: linear-gradient(135deg, #f97316, #ea580c);
}

/* 小红点（右上角不占位） */
.ls-nav-dot {
    position: absolute;
    top: -2px;
    right: -6px;
    width: 6px;
    height: 6px;
    background: #ef4444;
    border-radius: 50%;
    box-shadow: 0 0 0 2px var(--ls-bg-white);
}

/* ========================================
   下拉菜单基础
   ======================================== */
.ls-hd-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 200px;
    background: var(--ls-bg-white);
    border-radius: var(--ls-radius-xl);
    box-shadow: var(--ls-shadow-lg);
    border: 1px solid var(--ls-border-light);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: var(--ls-transition);
    z-index: 100;
}

/* 桥接区域 - 防止鼠标移动时下拉框消失 */
.ls-hd-dropdown::before {
    content: '';
    position: absolute;
    top: -8px;
    left: 0;
    right: 0;
    height: 8px;
}

.ls-has-dropdown:hover > .ls-hd-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* 下拉菜单项 */
.ls-hd-dropdown-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    font-size: 14px;
    color: var(--ls-text-secondary);
    text-decoration: none;
    transition: var(--ls-transition);
}

.ls-hd-dropdown-item:first-child {
    border-radius: var(--ls-radius-lg) var(--ls-radius-lg) 0 0;
}

.ls-hd-dropdown-item:last-child {
    border-radius: 0 0 var(--ls-radius-lg) var(--ls-radius-lg);
}

.ls-hd-dropdown-item:hover {
    color: var(--ls-primary);
    background: var(--ls-primary-light);
}

.ls-hd-dropdown-item i {
    font-size: 18px;
    opacity: 0.7;
}

.ls-hd-dropdown-divider {
    height: 1px;
    margin: 6px 0;
    background: var(--ls-border-light);
}

/* 下拉菜单角标 */
.ls-item-badge {
    margin-left: auto;
    padding: 2px 8px;
    font-size: 11px;
    font-weight: 600;
    color: var(--ls-primary);
    background: var(--ls-primary-light);
    border-radius: var(--ls-radius-full);
}

.ls-item-tag {
    margin-left: auto;
    padding: 2px 6px;
    font-size: 10px;
    font-weight: 600;
    color: #fff;
    border-radius: var(--ls-radius-sm);
}

.ls-item-tag.new {
    background: #22c55e;
}

.ls-item-tag.hot {
    background: #ef4444;
}

.ls-item-dot {
    width: 6px;
    height: 6px;
    margin-left: auto;
    background: #ef4444;
    border-radius: 50%;
}

/* ========================================
   Mega 下拉菜单
   ======================================== */
.ls-hd-dropdown-mega {
    width: 520px;
    padding: 16px;
}

.ls-hd-dropdown-section {
    margin-bottom: 16px;
}

.ls-hd-dropdown-section:last-child {
    margin-bottom: 0;
}

.ls-hd-dropdown-title {
    font-size: 12px;
    font-weight: 600;
    color: var(--ls-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 10px;
    padding-left: 4px;
}

.ls-hd-dropdown-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
}

.ls-hd-dropdown-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    text-decoration: none;
    border-radius: var(--ls-radius-lg);
    transition: var(--ls-transition);
    position: relative;
}

.ls-hd-dropdown-card:hover {
    background: var(--ls-bg-hover);
}

.ls-card-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--ls-radius-md);
    flex-shrink: 0;
}

.ls-card-icon i {
    font-size: 20px;
    color: #fff;
}

.ls-card-info {
    flex: 1;
    min-width: 0;
}

.ls-card-title {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: var(--ls-text-primary);
}

.ls-card-desc {
    display: block;
    font-size: 12px;
    color: var(--ls-text-muted);
    margin-top: 2px;
}

.ls-card-badge {
    position: absolute;
    top: 8px;
    right: 8px;
    padding: 2px 6px;
    font-size: 10px;
    font-weight: 600;
    color: #fff;
    border-radius: var(--ls-radius-sm);
}

.ls-card-badge.hot {
    background: #ef4444;
}

.ls-card-badge.new {
    background: #3b82f6;
}

.ls-card-badge.beta {
    background: #a855f7;
}

/* 话题列表 */
.ls-topic-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ls-topic-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    text-decoration: none;
    border-radius: var(--ls-radius-md);
    transition: var(--ls-transition);
}

.ls-topic-item:hover {
    background: var(--ls-bg-hover);
}

.ls-topic-rank {
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 600;
    color: var(--ls-text-muted);
    background: var(--ls-bg-hover);
    border-radius: var(--ls-radius-sm);
}

.ls-topic-rank.hot {
    color: #fff;
    background: linear-gradient(135deg, #f97316, #ea580c);
}

.ls-topic-name {
    flex: 1;
    font-size: 14px;
    color: var(--ls-text-primary);
}

.ls-topic-heat {
    font-size: 12px;
    color: var(--ls-text-muted);
}

/* 热门列表通用样式 */
.ls-hot-section {
    border-top: 1px solid var(--ls-border-light);
    padding-top: 16px;
}

.ls-hot-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ls-hot-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 20px;
    font-size: 13px;
    color: var(--ls-text-muted);
}

.ls-hot-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    text-decoration: none;
    border-radius: var(--ls-radius-md);
    transition: var(--ls-transition);
}

.ls-hot-item:hover {
    background: var(--ls-bg-hover);
}

.ls-hot-rank {
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 600;
    color: var(--ls-text-muted);
    background: var(--ls-bg-hover);
    border-radius: var(--ls-radius-sm);
    flex-shrink: 0;
}

.ls-hot-rank.top {
    color: #fff;
    background: linear-gradient(135deg, #f97316, #ea580c);
}

.ls-hot-title {
    flex: 1;
    font-size: 14px;
    color: var(--ls-text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-hot-count {
    font-size: 12px;
    color: var(--ls-text-muted);
    flex-shrink: 0;
}

/* ========================================
   搜索触发器
   ======================================== */
.ls-search-trigger {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    font-size: 14px;
    color: var(--ls-text-muted);
    background: var(--ls-bg-hover);
    border-radius: var(--ls-radius-full);
    cursor: pointer;
    transition: var(--ls-transition);
}

.ls-search-trigger:hover {
    background: var(--ls-bg-light);
    color: var(--ls-text-secondary);
}


/* ========================================
   图标按钮
   ======================================== */
.ls-icon-btn {
    position: relative;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    color: var(--ls-text-secondary);
    background: transparent;
    border: none;
    border-radius: var(--ls-radius-md);
    cursor: pointer;
    transition: var(--ls-transition);
}

.ls-icon-btn:hover {
    color: var(--ls-text-primary);
    background: var(--ls-bg-hover);
}

.ls-dot-badge {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 8px;
    height: 8px;
    background: #ef4444;
    border-radius: 50%;
    border: 2px solid var(--ls-bg-white);
}

.ls-count-badge {
    position: absolute;
    top: -2px;
    right: -5px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    font-size: 11px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: #ef4444;
    border-radius: var(--ls-radius-full);
    border: 2px solid var(--ls-bg-white);
}

/* ========================================
   消息下拉
   ======================================== */
.ls-messages {
    position: relative;
}

.ls-hd-dropdown-messages {
    width: 380px;
    right: 0;
    left: auto;
}

.ls-hd-dropdown-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    border-bottom: 1px solid var(--ls-border-light);
}

.ls-hd-dropdown-header span {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 15px;
    font-weight: 600;
    color: var(--ls-text-primary);
}

.ls-hd-dropdown-header span i {
    font-size: 18px;
    color: var(--ls-primary);
}

.ls-hd-dropdown-header a {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    color: var(--ls-primary);
    text-decoration: none;
    padding: 4px 8px;
    border-radius: var(--ls-radius-sm);
    transition: var(--ls-transition);
}

.ls-hd-dropdown-header a:hover {
    background: var(--ls-primary-light);
}

.ls-hd-dropdown-header a i {
    font-size: 14px;
    transition: transform 0.2s ease;
}

.ls-hd-dropdown-header a:hover i {
    transform: translateX(2px);
}

.ls-message-list {
    min-height: 200px;
    max-height: 360px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--ls-border-light) transparent;
}

.ls-message-list::-webkit-scrollbar {
    width: 4px;
}

.ls-message-list::-webkit-scrollbar-track {
    background: transparent;
}

.ls-message-list::-webkit-scrollbar-thumb {
    background: var(--ls-border-light);
    border-radius: 2px;
}

/* 空状态 */
.ls-msg-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 48px 24px;
    color: var(--ls-text-muted);
}

.ls-msg-empty i {
    font-size: 48px;
    margin-bottom: 12px;
    opacity: 0.5;
}

.ls-msg-empty span {
    font-size: 14px;
}

.ls-message-item {
    display: flex;
    gap: 12px;
    padding: 14px 16px;
    text-decoration: none;
    transition: var(--ls-transition);
    border-bottom: 1px solid var(--ls-border-light);
    position: relative;
}

.ls-message-item:last-child {
    border-bottom: none;
}

.ls-message-item:hover {
    background: var(--ls-bg-hover);
}

.ls-message-item.unread {
    background: linear-gradient(90deg, rgba(99, 102, 241, 0.06) 0%, transparent 100%);
}

.ls-message-item.unread::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 60%;
    background: var(--ls-primary);
    border-radius: 0 2px 2px 0;
}

.ls-msg-avatar-wrap {
    position: relative;
    flex-shrink: 0;
}

.ls-msg-avatar {
    width: 48px;
    height: 48px;
    border-radius: var(--ls-radius-lg);
    object-fit: cover;
    border: 2px solid var(--ls-border-light);
}

.ls-msg-group-avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ls-bg-secondary);
    color: var(--ls-text-tertiary);
    font-size: 20px;
}

.ls-message-item.unread .ls-msg-avatar {
    border-color: var(--ls-primary);
}

.ls-msg-badge {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    font-size: 10px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: #ef4444;
    border-radius: var(--ls-radius-full);
    border: 2px solid var(--ls-bg-white);
}

.ls-msg-content {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.ls-msg-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 6px;
}

.ls-msg-name {
    font-size: 14px;
    font-weight: 500;
    color: var(--ls-text-primary);
    /*YXYH-20260430-0204-头部消息弹层标题保持单行，避免商品标题撑高整条消息*/
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-msg-time {
    font-size: 12px;
    color: var(--ls-text-muted);
    flex-shrink: 0;
}

.ls-msg-text {
    font-size: 13px;
    color: var(--ls-text-secondary);
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 1.4;
}

.ls-message-item.unread .ls-msg-text {
    color: var(--ls-text-primary);
    font-weight: 500;
}

/* ========================================
   通知下拉
   ======================================== */
.ls-notifications {
    position: relative;
}

.ls-hd-dropdown-notifications {
    width: 420px;
    right: 0;
    left: auto;
}

.ls-mark-read {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    color: var(--ls-primary);
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px 8px;
    border-radius: var(--ls-radius-sm);
    transition: var(--ls-transition);
}

.ls-mark-read:hover {
    background: var(--ls-primary-light);
}

.ls-mark-read i {
    font-size: 14px;
}

.ls-notify-tabs {
    display: flex;
    gap: 2px;
    padding: 8px 12px;
    border-bottom: 1px solid var(--ls-border-light);
    background: var(--ls-bg-secondary);
}

.ls-tab {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 8px 10px;
    font-size: 12px;
    color: var(--ls-text-secondary);
    background: none;
    border: none;
    border-radius: var(--ls-radius-md);
    cursor: pointer;
    transition: var(--ls-transition);
    flex: 1;
    position: relative;
}

.ls-tab i {
    font-size: 18px;
    line-height: 1;
}

.ls-tab span {
    font-size: 11px;
    line-height: 1;
}

.ls-tab:hover {
    background: var(--ls-bg-hover);
    color: var(--ls-text-primary);
}

.ls-tab.active {
    color: var(--ls-primary);
    background: var(--ls-bg-main);
    font-weight: 500;
}

.ls-tab.active::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 20px;
    height: 3px;
    background: var(--ls-primary);
    border-radius: 2px;
}

.ls-tab.active i {
    color: var(--ls-primary);
}

.ls-tab-badge {
    position: absolute;
    top: 2px;
    right: 4px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    font-size: 10px;
    font-style: normal;
    font-weight: 500;
    line-height: 16px;
    text-align: center;
    color: #fff;
    background: #ef4444;
    border-radius: var(--ls-radius-full);
}

.ls-notify-list {
    min-height: 200px;
    max-height: 360px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--ls-border-light) transparent;
}

.ls-notify-list::-webkit-scrollbar {
    width: 4px;
}

.ls-notify-list::-webkit-scrollbar-track {
    background: transparent;
}

.ls-notify-list::-webkit-scrollbar-thumb {
    background: var(--ls-border-light);
    border-radius: 2px;
}

/* 「公告」那一栏铺的是公告中心的列表项（static/css/notice-center.css），
   它自带上下内边距、左右靠容器给。 */
.ls-notify-list .lsnc-item {
    padding-right: 16px;
    padding-left: 16px;
    border-bottom-color: var(--ls-border-light);
}

.ls-notify-list .lsnc-item:hover {
    background: var(--ls-bg-hover);
}

.ls-notify-item {
    display: flex;
    gap: 12px;
    padding: 14px 16px;
    text-decoration: none;
    transition: var(--ls-transition);
    border-bottom: 1px solid var(--ls-border-light);
    position: relative;
    cursor: pointer;
}

.ls-notify-item:last-child {
    border-bottom: none;
}

.ls-notify-item:hover {
    background: var(--ls-bg-hover);
}

.ls-notify-item.unread {}

.ls-notify-item.unread::before {
    display: none;
}

/* 未读红点（时间后面） */
.ls-notify-unread-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #ef4444;
    flex-shrink: 0;
}

.ls-notify-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--ls-radius-md);
    flex-shrink: 0;
    font-size: 18px;
}

.ls-notify-icon.like {
    background: linear-gradient(135deg, #fef2f2, #fee2e2);
    color: #ef4444;
}

.ls-notify-icon.comment {
    background: linear-gradient(135deg, #eff6ff, #dbeafe);
    color: #3b82f6;
}

.ls-notify-icon.follow {
    background: linear-gradient(135deg, #f0fdf4, #dcfce7);
    color: #22c55e;
}

.ls-notify-icon.system {
    background: linear-gradient(135deg, #faf5ff, #f3e8ff);
    color: #a855f7;
}

.ls-notify-icon.at {
    background: linear-gradient(135deg, #fef3c7, #fde68a);
    color: #f59e0b;
}

.ls-notify-icon.notice {
    background: linear-gradient(135deg, #ecfeff, #cffafe);
    color: #06b6d4;
}

.ls-notify-icon.reward {
    background: linear-gradient(135deg, #fff7ed, #ffedd5);
    color: #f97316;
}

.ls-notify-icon.transfer {
    background: linear-gradient(135deg, #f0fdf4, #d1fae5);
    color: #10b981;
}

.ls-notify-content {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.ls-notify-content p {
    font-size: 13px;
    color: var(--ls-text-secondary);
    margin: 0;
    line-height: 1.5;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-notify-content strong {
    color: var(--ls-text-primary);
    font-weight: 500;
}

.ls-notify-meta {
    display: flex;
    align-items: center;
    gap: 8px;
}

.ls-notify-time {
    font-size: 12px;
    color: var(--ls-text-muted);
}

.ls-notify-tag {
    font-size: 10px;
    padding: 2px 6px;
    border-radius: var(--ls-radius-sm);
    background: var(--ls-bg-hover);
    color: var(--ls-text-muted);
}

/* 头像容器 */
.ls-notify-left {
    position: relative;
    flex-shrink: 0;
    width: 40px;
    height: 40px;
}

.ls-notify-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
}

/* 头像右下角类型角标 */
.ls-notify-badge {
    position: absolute;
    bottom: -2px;
    right: -2px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    border: 2px solid #fff;
}

.ls-notify-badge.at {
    background: #fef3c7;
    color: #d97706;
}

.ls-notify-badge.like {
    background: #fee2e2;
    color: #ef4444;
}

.ls-notify-badge.comment {
    background: #dbeafe;
    color: #3b82f6;
}

.ls-notify-badge.follow {
    background: #d1fae5;
    color: #10b981;
}

.ls-notify-badge.reward {
    background: #ffedd5;
    color: #f97316;
}

.ls-notify-badge.transfer {
    background: #d1fae5;
    color: #059669;
}

.ls-notify-badge.system {
    background: #ede9fe;
    color: #7c3aed;
}

.ls-notify-badge.notice {
    background: #cffafe;
    color: #0891b2;
}

/* 认证图标 */
.ls-notify-verify {
    position: absolute;
    bottom: 0;
    right: -2px;
    width: 15px;
    height: 15px;
}

.ls-notify-verify img {
    width: 100%;
    height: 100%;
    display: block;
}

/* 第一行：文本 + 时间 */
.ls-notify-top {
    display: flex;
    align-items: center;
    gap: 6px;
}

.ls-notify-top p {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin: 0;
    font-size: 13px;
    color: var(--ls-text-secondary);
    line-height: 1.5;
}

.ls-notify-top .ls-notify-time {
    flex-shrink: 0;
}

/* 目标内容气泡 */
.ls-notify-bubble {
    margin-top: 6px;
    padding: 0 10px;
    background: var(--ls-bg-hover);
    border-radius: 4px 10px 10px 10px;
    font-size: 12px;
    color: var(--ls-text-muted);
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    /* 用 before/after 伪元素模拟上下 padding，避免 line-clamp 泄露第三行 */
    border-top: 6px solid var(--ls-bg-hover);
    border-bottom: 6px solid var(--ls-bg-hover);
    word-break: break-word;
}

/* 空状态 */
.ls-notify-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 48px 24px;
    color: var(--ls-text-muted);
}

.ls-notify-empty i {
    font-size: 48px;
    margin-bottom: 12px;
    opacity: 0.5;
}

.ls-notify-empty span {
    font-size: 14px;
}

.ls-hd-dropdown-footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 12px;
    font-size: 13px;
    font-weight: 500;
    color: var(--ls-primary);
    text-align: center;
    text-decoration: none;
    border-top: 1px solid var(--ls-border-light);
    transition: var(--ls-transition);
}

.ls-hd-dropdown-footer i {
    font-size: 14px;
    transition: transform 0.2s ease;
}

.ls-hd-dropdown-footer:hover {
    background: var(--ls-primary-light);
}

.ls-hd-dropdown-footer:hover i {
    transform: translateX(3px);
}

/* ========================================
   创作按钮
   ======================================== */
.ls-create {
    position: relative;
}

.ls-create-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    height: 36px;
    padding: 0 16px;
    font-size: 14px;
    font-weight: 600;
    color: #fff;
    background: var(--ls-primary);
    border: none;
    border-radius: var(--ls-radius-full);
    cursor: pointer;
    transition: var(--ls-transition);
}

.ls-create-btn:hover {
    background: var(--ls-primary-hover);
    box-shadow: 0 4px 12px rgba(var(--ls-primary-rgb), 0.3);
}

.ls-create-btn i {
    font-size: 18px;
}

.ls-hd-dropdown-create {
    width: 320px;
    right: 0;
    left: auto;
    padding: 12px;
}

.ls-create-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.ls-create-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 16px 8px;
    text-decoration: none;
    border-radius: var(--ls-radius-lg);
    transition: var(--ls-transition);
    position: relative;
}

.ls-create-item:hover {
    background: var(--ls-bg-hover);
}

.ls-create-icon {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--ls-radius-lg);
    font-size: 22px;
    color: #fff;
}

.ls-create-icon.article {
    background: linear-gradient(135deg, #6366f1, #4f46e5);
}

.ls-create-icon.post {
    background: linear-gradient(135deg, #22c55e, #16a34a);
}

.ls-create-icon.video {
    background: linear-gradient(135deg, #f97316, #ea580c);
}

.ls-create-icon.question {
    background: linear-gradient(135deg, #3b82f6, #2563eb);
}

.ls-create-icon.album {
    background: linear-gradient(135deg, #ec4899, #db2777);
}

.ls-create-icon.live {
    background: linear-gradient(135deg, #ef4444, #dc2626);
}

.ls-create-item span {
    font-size: 13px;
    color: var(--ls-text-primary);
}

.ls-create-footer {
    margin-top: 8px;
    padding-top: 12px;
    border-top: 1px solid var(--ls-border-light);
}

.ls-create-footer a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px;
    font-size: 13px;
    color: var(--ls-text-secondary);
    text-decoration: none;
    border-radius: var(--ls-radius-md);
    transition: var(--ls-transition);
}

.ls-create-footer a:hover {
    color: var(--ls-primary);
    background: var(--ls-primary-light);
}

/* ========================================
   用户触发器
   ======================================== */
.ls-user {
    position: relative;
}

.ls-user-trigger {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px;
    border-radius: var(--ls-border-radius-avatar, 50%);
    cursor: pointer;
    transition: var(--ls-transition);
}

.ls-user-trigger:hover {
    background: var(--ls-bg-hover);
}

.ls-user-trigger > i {
    font-size: 16px;
    color: var(--ls-text-muted);
    margin-right: 4px;
}

/* ========================================
   用户下拉面板
   ======================================== */
.ls-hd-dropdown-user {
    display: flex;
    flex-direction: column;
    min-width: 280px;
    max-width: 350px;
    right: 0;
    left: auto;
    max-height: calc(100vh - var(--ls-header-height) - 16px);
    max-height: calc(100dvh - var(--ls-header-height) - 16px);
    overflow: hidden;
    padding: 0;
}

/* ============================================================
   统一头像组件 .ls-avatar
   ============================================================ */

/* 基础容器 */
.ls-avatar {
    position: relative;
    flex-shrink: 0;
    display: inline-block;
    line-height: 0;
}

.ls-avatar a {
    display: block;
    line-height: 0;
    width: 100%;
    height: 100%;
}

/* 头像图片通用样式 */
.ls-avatar img.avatar,
.ls-avatar > a > img,
.ls-avatar > img {
    border-radius: var(--ls-border-radius-avatar, 50%);
    object-fit: cover;
    display: block;
    width: 100%;
    height: 100%;
}

/* ---- 尺寸变体 ---- */
.ls-avatar-xs { width: 32px; height: 32px; }
.ls-avatar-xs img.avatar,
.ls-avatar-xs > a > img,
.ls-avatar-xs > img { width: 32px; height: 32px; }
.ls-avatar-xs .ls-online-dot { width: 8px; height: 8px; }

.ls-avatar-sm { width: 36px; height: 36px; }
.ls-avatar-sm img.avatar,
.ls-avatar-sm > a > img,
.ls-avatar-sm > img { width: 36px; height: 36px; }
.ls-avatar-sm .ls-online-dot { width: 9px; height: 9px; }

.ls-avatar-md { width: 40px; height: 40px; }
.ls-avatar-md img.avatar,
.ls-avatar-md > a > img,
.ls-avatar-md > img { width: 40px; height: 40px; }

.ls-avatar-ml { width: 42px; height: 42px; }
.ls-avatar-ml img.avatar,
.ls-avatar-ml > a > img,
.ls-avatar-ml > img { width: 42px; height: 42px; }

.ls-avatar-lg { width: 44px; height: 44px; }
.ls-avatar-lg img.avatar,
.ls-avatar-lg > a > img,
.ls-avatar-lg > img { width: 44px; height: 44px; }
.ls-avatar-lg .ls-online-dot { width: 11px; height: 11px; }

.ls-avatar-xl { width: 48px; height: 48px; }
.ls-avatar-xl img.avatar,
.ls-avatar-xl > a > img,
.ls-avatar-xl > img { width: 48px; height: 48px; }
.ls-avatar-xl .ls-online-dot { width: 12px; height: 12px; }

.ls-avatar-2xl { width: 84px; height: 84px; }
.ls-avatar-2xl img.avatar,
.ls-avatar-2xl > a > img,
.ls-avatar-2xl > img { width: 84px; height: 84px; }

.ls-post-user-name {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.ls-avatar .ls-avatar-verify {
    position: absolute;
    bottom: -2px;
    right: -2px;
    line-height: 0;
    display: block;
    z-index: 10;
}

.ls-avatar .ls-avatar-verify img {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid #fff;
    background: #fff;
    display: block;
}

.ls-avatar .ls-avatar-frame {
    position: absolute;
    left: 50%;
    top: 50%;
    width: calc(100% * var(--ls-avatar-frame-scale, 1.6));
    height: calc(100% * var(--ls-avatar-frame-scale, 1.6));
    transform: translate(-50%, -50%);
    display: block;
    pointer-events: none;
    z-index: 1;
}

.ls-avatar .ls-avatar-frame img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    border: 0;
    border-radius: 50%;
}

/* 大头像认证标识放大 */
.ls-avatar-2xl .ls-avatar-verify {
    bottom: 2px;
    right: 0;
}

.ls-avatar-2xl .ls-avatar-verify img {
    width: 22px;
    height: 22px;
    border: 2px solid var(--ls-bg-white, #fff);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

/* ---- 在线标识（左上角） ---- */
.ls-avatar .ls-online-dot {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: #07c160;
    border: 2px solid #fff;
    z-index: 3;
}

.ls-avatar .ls-online-dot.is-online {
    display: block;
}

/* 大头像在线标识放大 */
.ls-avatar-2xl .ls-online-dot {
    width: 14px;
    height: 14px;
    top: 2px;
    left: 2px;
    border-width: 2.5px;
}

.ls-avatar-2xl .ls-online-dot.is-online {
    animation: ls-pulse-online 2s ease-in-out infinite;
}

@keyframes ls-pulse-online {
    0%, 100% { box-shadow: 0 0 0 0 rgba(7, 193, 96, 0.4); }
    50% { box-shadow: 0 0 0 4px rgba(7, 193, 96, 0); }
}

/* 用户主页大头像特殊样式 */
.ls-author-bar .ls-avatar-2xl {
    margin-top: -40px;
}

.ls-author-bar .ls-avatar-2xl img.avatar,
.ls-author-bar .ls-avatar-2xl > a > img {
    border: 3px solid var(--ls-bg-white, #fff);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
    background: var(--ls-bg-white, #fff);
    transition: box-shadow 0.3s;
}

.ls-author-bar .ls-avatar-2xl:hover img.avatar,
.ls-author-bar .ls-avatar-2xl:hover > a > img {
    box-shadow: 0 4px 24px rgba(99, 102, 241, 0.25);
}

/* 聊天模块头像 border 颜色适配 */
.ls-chat-app .ls-avatar .ls-avatar-verify img,
.ls-chat-app .ls-avatar .ls-online-dot {
    border-color: var(--lsc-bg-white, #fff);
}

/* ============================================================ */

/* 用户信息头部 */
.ls-user-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px;
}

.ls-user-info {
    flex: 1;
    min-width: 0;
}

.ls-user-name-row {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 4px;
}

.ls-user-name {
    font-size: 15px;
    font-weight: 600;
    color: var(--ls-text-primary);
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-user-name:hover {
    color: var(--ls-primary);
}

.ls-user-meta {
    display: flex;
    align-items: center;
    gap: 6px;
}

/* 等级标签（使用系统自带的 jinsom-lv 样式） */
.ls-user-meta .jinsom-lv {
    font-size: 10px;
    padding: 1px 5px;
}

.ls-meta-dot {
    width: 3px;
    height: 3px;
    background: var(--ls-text-muted);
    border-radius: 50%;
}

.ls-meta-text {
    font-size: 12px;
    color: var(--ls-text-muted);
}

.ls-user-goto {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ls-text-muted);
    background: var(--ls-bg-hover);
    border-radius: var(--ls-radius-full);
    transition: var(--ls-transition);
    flex-shrink: 0;
}

.ls-user-goto:hover {
    color: var(--ls-primary);
    background: var(--ls-primary-light);
}

.ls-user-goto i {
    font-size: 16px;
}

/* 经验进度 */
.ls-exp-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 16px 12px;
}

.ls-exp-bar {
    flex: 1;
    height: 4px;
    background: var(--ls-bg-hover);
    border-radius: var(--ls-radius-full);
    overflow: hidden;
}

.ls-exp-fill {
    height: 100%;
    background: linear-gradient(90deg, #22c55e, #16a34a);
    border-radius: var(--ls-radius-full);
}

.ls-exp-text {
    font-size: 11px;
    color: var(--ls-text-muted);
    white-space: nowrap;
}

/* 数据统计 */
.ls-stats-grid {
    display: flex;
    margin: 0 12px 8px;
    background: var(--ls-bg-light);
    border-radius: var(--ls-radius-lg);
    overflow: hidden;
}

.ls-stat-box {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 10px 0;
    text-decoration: none;
    transition: var(--ls-transition);
}

.ls-stat-box:hover {
    background: var(--ls-bg-hover);
}

.ls-stat-num {
    font-size: 16px;
    font-weight: 700;
    color: var(--ls-text-primary);
}

.ls-stat-box:hover .ls-stat-num {
    color: var(--ls-primary);
}

.ls-stat-label {
    font-size: 11px;
    color: var(--ls-text-muted);
}

/* VIP 入口 */
.ls-vip-entry {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 12px 8px;
    padding: 10px 12px;
    background: var(--ls-bg-light);
    border-radius: var(--ls-radius-lg);
    text-decoration: none;
    transition: var(--ls-transition);
}

.ls-vip-entry:hover {
    background: var(--ls-bg-hover);
}

.ls-vip-entry.is-vip {
    background: linear-gradient(135deg, #fef3c7, #fde68a);
}

.ls-vip-entry.is-vip:hover {
    background: linear-gradient(135deg, #fde68a, #fcd34d);
}

.ls-vip-icon {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #d1d5db, #9ca3af);
    border-radius: var(--ls-radius-md);
}

.ls-vip-entry.is-vip .ls-vip-icon {
    background: linear-gradient(135deg, #f59e0b, #d97706);
}

.ls-vip-icon i {
    font-size: 16px;
    color: #fff;
}

.ls-vip-text {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.ls-vip-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--ls-text-primary);
}

.ls-vip-entry.is-vip .ls-vip-title {
    color: #92400e;
}

.ls-vip-sub {
    font-size: 11px;
    color: var(--ls-text-muted);
    line-height: 1.35;
    white-space: normal;
}

.ls-vip-entry.is-vip .ls-vip-sub {
    color: #b45309;
}

.ls-vip-arrow {
    font-size: 16px;
    color: var(--ls-text-muted);
}

.ls-vip-entry.is-vip .ls-vip-arrow {
    color: #92400e;
}

/* 资产入口 */
.ls-assets-grid {
    display: flex;
    gap: 8px;
    margin: 0 12px 8px;
}

.ls-asset-box {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px;
    background: var(--ls-bg-light);
    border-radius: var(--ls-radius-lg);
    text-decoration: none;
    transition: var(--ls-transition);
}

.ls-asset-box:hover {
    background: var(--ls-bg-hover);
}

.ls-asset-box i {
    font-size: 20px;
}

.ls-asset-box.coin i {
    color: #f59e0b;
}

.ls-asset-box.balance i {
    color: #3b82f6;
}

.ls-asset-box.points i {
    color: #ec4899;
}

.ls-asset-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.ls-asset-num {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: var(--ls-text-primary);
}

.ls-asset-num-short,
.ls-asset-num-full {
    display: block;
    white-space: nowrap;
}

.ls-asset-num-full {
    display: none;
    font-size: inherit;
}

.ls-asset-box:hover .ls-asset-num-short {
    display: none;
}

.ls-asset-box:hover .ls-asset-num-full {
    display: block;
}

.ls-asset-label {
    font-size: 10px;
    color: var(--ls-text-muted);
}

/* 用户菜单 */
.ls-user-menu {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 8px;
    scrollbar-width: thin;
    scrollbar-color: var(--ls-border-light) transparent;
}

.ls-user-menu::-webkit-scrollbar {
    width: 4px;
}

.ls-user-menu::-webkit-scrollbar-track {
    background: transparent;
}

.ls-user-menu::-webkit-scrollbar-thumb {
    background: var(--ls-border-light);
    border-radius: var(--ls-radius-full);
}

.ls-menu-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    font-size: 14px;
    color: var(--ls-text-secondary);
    text-decoration: none;
    border-radius: var(--ls-radius-md);
    transition: var(--ls-transition);
}

.ls-menu-item:hover {
    color: var(--ls-text-primary);
    background: var(--ls-bg-hover);
}

.ls-menu-item i {
    font-size: 18px;
    opacity: 0.7;
}

.ls-menu-count {
    margin-left: auto;
    padding: 2px 8px;
    font-size: 12px;
    color: var(--ls-text-muted);
    background: var(--ls-bg-hover);
    border-radius: var(--ls-radius-full);
}

.ls-menu-divider {
    height: 1px;
    margin: 6px 0;
    background: var(--ls-border-light);
}

.ls-menu-item.logout {
    color: #ef4444;
}

.ls-menu-item.logout:hover {
    background: #fef2f2;
}

/* 社区号显示 */
.ls-menu-uid {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 8px;
    font-size: 11px;
    color: var(--ls-text-muted);
    background: var(--ls-bg-hover);
    border-radius: var(--ls-radius-full);
    cursor: pointer;
    transition: var(--ls-transition);
}

.ls-menu-uid:hover {
    color: var(--ls-primary);
    background: var(--ls-primary-light);
}

.ls-menu-uid em {
    font-style: normal;
    font-weight: 500;
    color: var(--ls-text-muted);
}

.ls-menu-uid:hover em {
    color: var(--ls-primary);
}

.ls-menu-uid span {
    font-weight: 600;
    color: var(--ls-text-secondary);
}

.ls-menu-uid:hover span {
    color: var(--ls-primary);
}

.ls-menu-uid i {
    font-size: 12px;
    opacity: 0.6;
}

.ls-menu-uid:hover i {
    opacity: 1;
}

/* ========================================
   搜索弹窗
   ======================================== */
.ls-search-modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10005;
    display: none;
}

.ls-search-modal.active {
    display: block;
}

.ls-search-backdrop {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(4px);
}

.ls-search-container {
    position: relative;
    max-width: 600px;
    margin: 80px auto 0;
    background: var(--ls-bg-white);
    border-radius: var(--ls-radius-xl);
    box-shadow: var(--ls-shadow-lg);
    overflow: hidden;
}

.ls-search-box {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 20px;
    border-bottom: 1px solid var(--ls-border-light);
}

.ls-search-box i {
    font-size: 22px;
    color: var(--ls-text-muted);
}

.ls-search-box input {
    flex: 1;
    font-size: 16px;
    color: var(--ls-text-primary);
    border: none;
    outline: none;
    background: transparent;
}

.ls-search-box input::placeholder {
    color: var(--ls-text-muted);
}

.ls-search-close {
    font-size: 20px;
    color: var(--ls-text-muted);
    cursor: pointer;
    padding: 4px;
    border-radius: var(--ls-radius-sm);
    transition: color 0.15s;
}
.ls-search-close:hover {
    color: var(--ls-text);
}

.ls-search-content {
    padding: 16px 20px;
}

.ls-search-section {
    margin-bottom: 20px;
}

.ls-search-section:last-child {
    margin-bottom: 0;
}

.ls-search-title {
    font-size: 12px;
    font-weight: 600;
    color: var(--ls-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 12px;
}

.ls-hot-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ls-hot-tag {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px;
    font-size: 13px;
    color: var(--ls-text-secondary);
    background: var(--ls-bg-hover);
    border-radius: var(--ls-radius-full);
    text-decoration: none;
    transition: var(--ls-transition);
}

.ls-hot-tag:hover {
    color: var(--ls-primary);
    background: var(--ls-primary-light);
}

.ls-hot-tag i {
    color: #ef4444;
}

.ls-recent-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ls-recent-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    font-size: 14px;
    color: var(--ls-text-secondary);
    text-decoration: none;
    border-radius: var(--ls-radius-md);
    transition: var(--ls-transition);
}

.ls-recent-item:hover {
    background: var(--ls-bg-hover);
}

.ls-recent-item i {
    font-size: 16px;
    color: var(--ls-text-muted);
}

.ls-recent-item span {
    flex: 1;
}

.ls-recent-item .ls-remove {
    opacity: 0;
    transition: var(--ls-transition);
}

.ls-recent-item:hover .ls-remove {
    opacity: 1;
}

/* ========================================
   未登录状态
   ======================================== */
.ls-auth-btns {
    display: flex;
    align-items: center;
    gap: 8px;
}

.ls-login-btn {
    padding: 8px 16px;
    font-size: 14px;
    font-weight: 500;
    color: var(--ls-primary);
    text-decoration: none;
    border-radius: var(--ls-radius-full);
    transition: var(--ls-transition);
}

.ls-login-btn:hover {
    background: var(--ls-primary-light);
}

.ls-register-btn {
    padding: 8px 20px;
    font-size: 14px;
    font-weight: 600;
    color: #fff;
    background: var(--ls-primary);
    text-decoration: none;
    border-radius: var(--ls-radius-full);
    transition: var(--ls-transition);
}

.ls-register-btn:hover {
    background: var(--ls-primary-hover);
}

/* ========================================
   空提示
   ======================================== */
.ls-empty-tip {
    padding: 32px 16px;
    font-size: 14px;
    color: var(--ls-text-muted);
    text-align: center;
}

/* ========================================
   内容不存在提示（详情页/个人主页通用）
   ======================================== */
.ls-content-missing {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - var(--ls-header-height) - 80px);
    padding: 60px 24px;
    text-align: center;
    animation: lsMissingFadeIn 0.4s ease;
}

.ls-content-missing-icon {
    width: 120px;
    height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--ls-bg-light);
    margin-bottom: 24px;
}

.ls-content-missing-icon i {
    font-size: 48px;
    color: var(--ls-text-muted);
    opacity: 0.6;
}

.ls-content-missing-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--ls-text-primary);
    margin-bottom: 8px;
}

.ls-content-missing-desc {
    font-size: 14px;
    color: var(--ls-text-muted);
    margin-bottom: 28px;
    max-width: 320px;
    line-height: 1.6;
}

.ls-content-missing-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 24px;
    font-size: 14px;
    color: #fff;
    background: var(--ls-primary);
    border-radius: var(--ls-radius-lg);
    cursor: pointer;
    transition: var(--ls-transition);
    text-decoration: none;
}

.ls-content-missing-btn:hover {
    background: var(--ls-primary-hover);
    box-shadow: 0 4px 12px rgba(var(--ls-primary-rgb), 0.3);
    transform: translateY(-1px);
}

.ls-content-missing-btn i {
    font-size: 16px;
}

/* 视频详情页暗色适配 */
.ls-content-missing.ls-content-missing-dark {
    background: #000;
    min-height: 100vh;
}

.ls-content-missing.ls-content-missing-dark .ls-content-missing-icon {
    background: rgba(255, 255, 255, 0.06);
}

.ls-content-missing.ls-content-missing-dark .ls-content-missing-icon i {
    color: rgba(255, 255, 255, 0.3);
}

.ls-content-missing.ls-content-missing-dark .ls-content-missing-title {
    color: rgba(255, 255, 255, 0.9);
}

.ls-content-missing.ls-content-missing-dark .ls-content-missing-desc {
    color: rgba(255, 255, 255, 0.4);
}

.ls-content-missing.ls-content-missing-dark .ls-content-missing-btn {
    background: rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.8);
}

.ls-content-missing.ls-content-missing-dark .ls-content-missing-btn:hover {
    background: rgba(255, 255, 255, 0.18);
}

@keyframes lsMissingFadeIn {
    from {
        opacity: 0;
        transform: translateY(12px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* 加载动画 */
@keyframes ri-spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

.ri-spin {
    animation: ri-spin 1s linear infinite;
}


body {
    padding-top: var(--ls-header-height);
}

/* ========================================
   小工具通用样式
   Widget Styles - 侧边栏小工具组件
   ======================================== */

/* 小工具卡片基础样式 */
.ls-widget-card {
    background: var(--ls-bg-white, #fff);
    border-radius: var(--ls-border-radius, 12px);
    box-shadow: var(--ls-shadow-xs);
}

/* 小工具头部 */
.ls-widget-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px 0;
}

.ls-widget-header h3 {
    font-size: 14px;
    font-weight: 600;
    color: var(--ls-text-primary, #1f1f1f);
    margin: 0;
}

.ls-widget-header .ls-more {
    font-size: 12px;
    color: var(--ls-text-muted, #909090);
    cursor: pointer;
}

.ls-widget-header .ls-more:hover {
    color: var(--ls-primary, #1a73e8);
}

/* ---- 小工具标题样式变体 ---- */

/* 1. 彩色双斜杠：两条倾斜彩色竖条（::before + ::after） */
.widget-title-double-slash .ls-widget-header h3 {
    position: relative;
    padding-left: 20px;
}

.widget-title-double-slash .ls-widget-header h3::before,
.widget-title-double-slash .ls-widget-header h3::after {
    content: '';
    position: absolute;
    border-radius: 2px;
    top: 50%;
}

.widget-title-double-slash .ls-widget-header h3::before {
    left: 0;
    width: 3px;
    height: 15px;
    background: #ff5473;
    transform: translateY(-50%) rotate(15deg);
}

.widget-title-double-slash .ls-widget-header h3::after {
    left: 7px;
    width: 3px;
    height: 12px;
    background: #2196f3;
    transform: translateY(-50%) rotate(15deg);
}

/* 2. 波浪下划线：底部波浪 SVG */
.widget-title-wave-underline .ls-widget-header h3 {
    position: relative;
    padding-bottom: 10px;
}

.widget-title-wave-underline .ls-widget-header h3::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 40px;
    height: 6px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 6'%3E%3Cpath d='M0 3 Q5 0 10 3 Q15 6 20 3 Q25 0 30 3 Q35 6 40 3' fill='none' stroke='%236366f1' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat;
    background-size: contain;
}

/* 3. 荧光标记：文字底部高亮色块，模拟荧光笔 */
.widget-title-highlight .ls-widget-header h3 {
    display: inline;
    padding: 2px 4px;
    background-image: linear-gradient(transparent 40%,
            rgba(251, 191, 36, 0.4) 40%);
}

/* 4. 方块图标：渐变小方块前缀 */
.widget-title-square-icon .ls-widget-header h3 {
    display: flex;
    align-items: center;
    gap: 8px;
}

.widget-title-square-icon .ls-widget-header h3::before {
    content: '';
    flex-shrink: 0;
    width: 6px;
    height: 14px;
    border-radius: 2px;
    background: linear-gradient(180deg, #3b82f6, #a78bfa);
}

/* 5. 底部渐变条：紫粉渐变色条装饰 */
.widget-title-gradient-bar .ls-widget-header h3 {
    position: relative;
    padding-bottom: 10px;
    font-weight: 700;
}

.widget-title-gradient-bar .ls-widget-header h3::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 36px;
    height: 4px;
    border-radius: 4px;
    background: linear-gradient(90deg, #6366f1, #ec4899);
}

/* 6. 引号装饰：左上角大引号 */
.widget-title-quote .ls-widget-header h3 {
    display: flex;
    align-items: flex-start;
    gap: 4px;
}

.widget-title-quote .ls-widget-header h3::before {
    content: '\201C';
    flex-shrink: 0;
    font-size: 28px;
    line-height: 0.6;
    font-weight: 700;
    font-family: Georgia, serif;
    color: #f472b6;
    opacity: 0.7;
}

/* 7. 火焰图标：emoji 火焰前缀（参考 Twitter/X 热门话题） */
.widget-title-fire .ls-widget-header h3 {
    display: flex;
    align-items: center;
    gap: 6px;
}

.widget-title-fire .ls-widget-header h3::before {
    content: '\1F525';
    flex-shrink: 0;
    font-size: 14px;
    line-height: 1;
}

/* 8. 圆角色块：小圆角色块前缀（参考 Bilibili 分区标题） */
.widget-title-block .ls-widget-header h3 {
    display: flex;
    align-items: center;
    gap: 8px;
}

.widget-title-block .ls-widget-header h3::before {
    content: '';
    flex-shrink: 0;
    width: 14px;
    height: 14px;
    border-radius: 4px;
    background: linear-gradient(135deg, #06b6d4, #3b82f6);
}

/* 9. 双色下划线：两段不同颜色的下划线（参考 Notion 标题） */
.widget-title-dual-line .ls-widget-header h3 {
    position: relative;
    padding-bottom: 8px;
}

.widget-title-dual-line .ls-widget-header h3::before,
.widget-title-dual-line .ls-widget-header h3::after {
    content: '';
    position: absolute;
    bottom: 0;
    height: 3px;
    border-radius: 3px;
}

.widget-title-dual-line .ls-widget-header h3::before {
    left: 0;
    width: 20px;
    background: #6366f1;
}

.widget-title-dual-line .ls-widget-header h3::after {
    left: 24px;
    width: 8px;
    background: #f472b6;
}

/* 10. 彩色竖线：左侧渐变竖线（参考 YouTube 频道页） */
.widget-title-stroke .ls-widget-header h3 {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0.5px;
}

.widget-title-stroke .ls-widget-header h3::before {
    content: '';
    flex-shrink: 0;
    width: 4px;
    height: 1em;
    border-radius: 2px;
    background: linear-gradient(180deg, #6366f1, #ec4899);
}

/* 11. 圆点分隔：标题前彩色圆点（参考 Dribbble 分类标题） */
.widget-title-dot .ls-widget-header h3 {
    display: flex;
    align-items: center;
    gap: 8px;
}

.widget-title-dot .ls-widget-header h3::before {
    content: '';
    flex-shrink: 0;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #f43f5e;
    box-shadow: 0 0 0 3px rgba(244, 63, 94, 0.2);
}

/* 12. 左侧双竖线：两条平行竖线前缀（参考 Medium 引用风格） */
.widget-title-double-bar .ls-widget-header h3 {
    display: flex;
    align-items: center;
    gap: 10px;
}

.widget-title-double-bar .ls-widget-header h3::before {
    content: '';
    flex-shrink: 0;
    width: 8px;
    height: 1em;
    border-left: 3px solid #6366f1;
    border-right: 3px solid #a78bfa;
    border-radius: 1px;
}

/* 13. 括号装饰：左右方括号包裹（参考 Reddit 板块标题） */
.widget-title-bracket .ls-widget-header h3 {
    display: flex;
    align-items: center;
    gap: 2px;
}

.widget-title-bracket .ls-widget-header h3::before {
    content: '[';
    color: #6366f1;
    font-weight: 700;
    font-size: 1.1em;
}

.widget-title-bracket .ls-widget-header h3::after {
    content: ']';
    color: #6366f1;
    font-weight: 700;
    font-size: 1.1em;
}

/* 小工具内容区 */
.ls-widget-body {
    padding: 14px 16px 14px;
}

/* 小工具占位容器 */
.ls-sidebar-wrap {
    position: relative;
    display: flex;
    flex-direction: column;
}

.ls-sidebar-wrap:empty {
    display: none;
}

.ls-sidebar-wrap.loading {
    min-height: 120px;
}

.ls-sidebar-wrap .widget-skeleton {
    padding: 15px;
    background-color: #fff;
    min-height: 250px;
}

.ls-sidebar-wrap .widget-skeleton .skeleton-line {
    height: 16px;
    background: linear-gradient(90deg, #f0f0f0 25%, #e8e8e8 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    border-radius: 4px;
    margin-bottom: 12px;
    animation: ls-skeleton 1.5s infinite;
}

.ls-sidebar-wrap .widget-skeleton .skeleton-line.short {
    width: 60%;
}

/* 最后一个小工具滚动时自动悬浮 */
.ls-sidebar-right > .ls-sidebar-wrap:last-child,
.ls-sidebar-left > .ls-sidebar-wrap:last-child {
    position: sticky;
    top: 73px;
}

/* ========================================
   侧边栏容器公共样式
   ======================================== */
.ls-sidebar-right,
.ls-sidebar-left {
    width: 300px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: var(--ls-gap, 12px);
}

/* ========================================
   实时动态吐司（左下角）
   ======================================== */
.ls-now-toast {
    position: fixed;
    left: 24px;
    bottom: 24px;
    z-index: 9999;
    background: #fff;
    border-radius: 12px;
    box-shadow: var(--ls-shadow-elevated);
    padding: 14px 16px;
    display: flex;
    align-items: center;
    gap: 10px;
    max-width: 340px;
    transform: translateX(-120%);
    transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
    border: 1px solid rgba(0, 0, 0, 0.05);
}

.ls-now-toast-show {
    transform: translateX(0);
}

.ls-now-toast-inner {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: inherit;
    flex: 1;
    min-width: 0;
}

.ls-now-toast-avatar-wrap {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
}

.ls-now-toast-avatar-wrap .ls-avatar-verify img {
    width: 14px;
    height: 14px;
}

.ls-now-toast-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
}

.ls-now-toast-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ls-now-toast-name {
    font-size: 13px;
    font-weight: 600;
    color: #1f2937;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ls-now-toast-tip {
    font-size: 12px;
    color: #6b7280;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ls-now-toast-close {
    cursor: pointer;
    color: #9ca3af;
    font-size: 16px;
    flex-shrink: 0;
    line-height: 1;
    padding: 2px;
    border-radius: 4px;
    transition: color 0.15s, background 0.15s;
}

.ls-now-toast-close:hover {
    color: #374151;
    background: rgba(0, 0, 0, 0.05);
}

/* 聊天消息吐司 */
.ls-now-toast-chat {
    max-width: 380px;
}

.ls-now-toast-tip-chat {
    display: flex;
    align-items: center;
    gap: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 12px;
    color: #6b7280;
}

.ls-now-toast-tip-chat .ls-chat-toast-text {
    max-width: 180px;
    display: inline-block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: bottom;
}

.ls-now-toast-tip-chat .ls-chat-toast-text .ls-emoji {
    width: 18px;
    height: 18px;
    vertical-align: -3px;
}

.ls-now-toast-tip-chat .ls-chat-toast-tag {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    color: #6366f1;
    font-size: 12px;
}

.ls-now-toast-tip-chat .ls-chat-toast-tag .remix-icon {
    font-size: 14px;
}

/* ========================================
   Footer 底部区域
   v3 - 精致浅色系，无统计区
   ======================================== */

/* --- Footer 容器 --- */
.ls-footer {
    padding-top: 48px;
}

/* --- Footer 主体区域 --- */
.ls-footer-main {
    background: var(--ls-bg-light);
    border-top: 1px solid var(--ls-border);
    position: relative;
}

/* 顶部装饰线 */
.ls-footer-main::before {
    content: '';
    position: absolute;
    top: -1px;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--ls-primary), transparent);
    opacity: 0.4;
}

.ls-footer-inner {
    max-width: var(--ls-width);
    margin: 0 auto;
    padding: 44px 24px 36px;
    display: flex;
    gap: 56px;
}

/* --- 品牌区 --- */
.ls-footer-brand {
    flex: 0 0 240px;
    display: flex;
    flex-direction: column;
}

/* Logo */
.ls-footer-logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    margin-bottom: 14px;
}

.ls-footer-logo-icon {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--ls-primary), var(--ls-primary-hover));
    border-radius: var(--ls-radius-md);
    box-shadow: 0 2px 8px rgba(var(--ls-primary-rgb), 0.25);
}

.ls-footer-logo-icon i {
    font-size: 17px;
    color: #fff;
}

.ls-footer-logo-text {
    font-size: 17px;
    font-weight: 700;
    color: var(--ls-text-primary);
    letter-spacing: -0.5px;
}

/* 简介 */
.ls-footer-desc {
    font-size: 13px;
    line-height: 1.75;
    color: var(--ls-text-muted);
    margin: 0 0 18px;
}

/* 社交图标 */
.ls-footer-social {
    display: flex;
    align-items: center;
    gap: 8px;
}

.ls-footer-social-item {
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ls-text-muted);
    background: transparent;
    border-radius: var(--ls-radius-full);
    text-decoration: none;
    transition: var(--ls-transition);
}

.ls-footer-social-item i {
    font-size: 16px;
}

.ls-footer-social-item:hover {
    color: var(--ls-primary);
    background: var(--ls-primary-light);
    transform: translateY(-1px);
}

/* --- 导航列 --- */
.ls-footer-nav {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.ls-footer-nav-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--ls-text-primary);
    margin: 0 0 14px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.ls-footer-nav-links {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ls-footer-nav-link {
    font-size: 13px;
    color: var(--ls-text-muted);
    text-decoration: none;
    transition: var(--ls-transition);
    display: inline-flex;
    align-items: center;
    padding: 2px 0 2px 0;
    position: relative;
}

.ls-footer-nav-link::before {
    content: '';
    width: 2px;
    height: 0;
    background: var(--ls-primary);
    border-radius: 2px;
    position: absolute;
    left: -10px;
    top: 50%;
    transform: translateY(-50%);
    transition: height 0.2s ease;
}

.ls-footer-nav-link:hover {
    color: var(--ls-primary);
}

.ls-footer-nav-link:hover::before {
    height: 12px;
}

/* --- 右侧二维码 + 下载 --- */
.ls-footer-aside {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
}

.ls-footer-aside > .ls-footer-nav-title {
    margin-bottom: 0;
}

/* 二维码组 */
.ls-footer-qrcode-group {
    display: flex;
    gap: 14px;
}

/* 二维码 */
.ls-footer-qrcode {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.ls-footer-qrcode-img {
    width: 88px;
    height: 88px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ls-bg-white);
    border: 1px solid var(--ls-border);
    border-radius: var(--ls-radius-lg);
    transition: var(--ls-transition);
}

.ls-footer-qrcode-img:hover {
    border-color: var(--ls-primary);
    box-shadow: 0 2px 12px rgba(var(--ls-primary-rgb), 0.1);
}

.ls-footer-qrcode-img i {
    font-size: 40px;
    color: var(--ls-text-muted);
    opacity: 0.3;
}

.ls-footer-qrcode-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--ls-radius-lg);
}

/* Logo 图片/SVG 模式 */
.ls-footer-logo-img {
    height: 36px;
    width: auto;
}

.ls-footer-logo-svg {
    height: 36px;
}

.ls-footer-logo-svg svg {
    width: 100%;
    height: 100%;
}

.ls-footer-qrcode-text {
    font-size: 11px;
    color: var(--ls-text-muted);
}

/* 下载按钮 */
.ls-footer-download {
    display: flex;
    gap: 6px;
    width: 100%;
}

.ls-footer-download-btn {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 6px 10px;
    font-size: 11px;
    font-weight: 500;
    color: var(--ls-text-muted);
    background: var(--ls-bg-white);
    border: 1px solid var(--ls-border);
    border-radius: var(--ls-radius-md);
    text-decoration: none;
    transition: var(--ls-transition);
    white-space: nowrap;
    line-height: 1;
}

.ls-footer-download-btn > i {
    font-size: 14px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
}

.ls-footer-download-btn > span {
    line-height: 1;
    display: inline-flex;
    align-items: center;
}

.ls-footer-download-btn:hover {
    color: var(--ls-primary);
    border-color: var(--ls-primary);
    background: var(--ls-primary-light);
}

/* --- 底部版权栏 --- */
.ls-footer-bottom {
    background: var(--ls-bg-light);
    border-top: 1px solid var(--ls-border-light);
}

.ls-footer-bottom-inner {
    max-width: var(--ls-width);
    margin: 0 auto;
    padding: 16px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.ls-footer-copyright {
    font-size: 12px;
    color: var(--ls-text-muted);
    margin: 0;
    opacity: 0.7;
}

.ls-footer-bottom-links {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ls-footer-bottom-links a {
    font-size: 12px;
    color: var(--ls-text-muted);
    text-decoration: none;
    transition: var(--ls-transition);
    opacity: 0.7;
}

.ls-footer-bottom-links a:hover {
    color: var(--ls-primary);
    opacity: 1;
}

.ls-footer-bottom-dot {
    width: 3px;
    height: 3px;
    background: var(--ls-text-muted);
    border-radius: 50%;
    opacity: 0.3;
}

/* ========================================
   悬浮菜单 - Float Menu
   ======================================== */

/* ----------------------------------------
   类型一：悬浮按钮（Float）
   悬浮在页面角落的圆角胶囊式菜单
   ---------------------------------------- */

/* --- 样式1：经典胶囊 --- */

/* 容器 */
.ls-float-menu {
    position: fixed;
    bottom: 140px;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    align-items: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* 位置：右侧 / 左侧（JS 会动态计算对齐 .ls-sns-page，style4 除外） */
.ls-float-menu--right {
    right: 20px;
}

body.ls-dock-enabled.ls-dock-right .ls-float-menu--right {
    right: 72px;
}

.ls-float-menu--left {
    left: 20px;
}

body.ls-dock-enabled.ls-dock-left .ls-float-menu--left {
    left: 72px;
}

/* 菜单列表 */
.ls-float-menu__list {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    background: var(--ls-bg-white);
    border-radius: 50px;
    padding: 6px;
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.08), 0 0 1px rgba(0, 0, 0, 0.1);
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: visible;
    max-height: 500px;
    opacity: 1;
}

/* 菜单项 */
.ls-float-menu__item {
    position: relative;
}

.ls-float-menu__item a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    color: var(--ls-text-secondary);
    text-decoration: none;
    transition: all 0.2s ease;
    position: relative;
}

.ls-float-menu__item a:hover {
    background: var(--ls-bg-hover);
    color: var(--ls-primary);
}

.ls-float-menu__item a i {
    font-size: 20px;
    line-height: 1;
}

/* Tooltip 提示 */
.ls-float-menu__tooltip {
    position: absolute;
    white-space: nowrap;
    background: var(--ls-text-primary);
    color: #fff;
    font-size: 12px;
    padding: 4px 10px;
    border-radius: 6px;
    pointer-events: none;
    opacity: 0;
    transition: all 0.2s ease;
    top: 50%;
    transform: translateY(-50%);
}

/* 右侧菜单 - tooltip 显示在左边 */
.ls-float-menu--right .ls-float-menu__tooltip {
    right: calc(100% + 10px);
}

.ls-float-menu--right .ls-float-menu__item a:hover .ls-float-menu__tooltip {
    opacity: 1;
    right: calc(100% + 12px);
}

/* 左侧菜单 - tooltip 显示在右边 */
.ls-float-menu--left .ls-float-menu__tooltip {
    left: calc(100% + 10px);
}

.ls-float-menu--left .ls-float-menu__item a:hover .ls-float-menu__tooltip {
    opacity: 1;
    left: calc(100% + 12px);
}

/* 角标（消息数） */
.ls-float-menu__badge {
    position: absolute;
    top: 2px;
    right: 2px;
    min-width: 16px;
    height: 16px;
    line-height: 16px;
    text-align: center;
    font-size: 10px;
    font-weight: 600;
    color: #fff;
    background: #ef4444;
    border-radius: 10px;
    padding: 0 4px;
    pointer-events: none;
}

/* 回到顶部按钮 - 默认隐藏，滚动后显示 */
.ls-float-menu__item--top {
    display: none;
}

/* 折叠按钮 */
.ls-float-menu__toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin-top: 6px;
    border-radius: 50%;
    background: var(--ls-bg-white);
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.08), 0 0 1px rgba(0, 0, 0, 0.1);
    cursor: pointer;
    color: var(--ls-text-muted);
    transition: all 0.2s ease;
}

.ls-float-menu__toggle:hover {
    color: var(--ls-primary);
    background: var(--ls-bg-hover);
}

.ls-float-menu__toggle i {
    font-size: 18px;
    line-height: 1;
}

/* 折叠状态 */
.ls-float-menu--collapsed .ls-float-menu__list {
    max-height: 0;
    padding: 0 6px;
    opacity: 0;
    box-shadow: none;
    pointer-events: none;
    overflow: hidden;
}

/* ----------------------------------------
   样式2：独立气泡
   每个按钮独立成圆，之间有间距，散落式排列
   ---------------------------------------- */

/* 列表容器 - 无背景，纯间距排列 */
.ls-float-menu--style2 .ls-float-menu__list {
    background: none;
    box-shadow: none;
    border-radius: 0;
    padding: 0;
    gap: 10px;
    overflow: visible;
}

/* 每个按钮独立圆形卡片 */
.ls-float-menu--style2 .ls-float-menu__item a {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--ls-bg-white);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08), 0 0 1px rgba(0, 0, 0, 0.08);
    color: var(--ls-text-secondary);
}

.ls-float-menu--style2 .ls-float-menu__item a i {
    font-size: 21px;
}

.ls-float-menu--style2 .ls-float-menu__item a:hover {
    background: var(--ls-primary);
    color: #fff;
    box-shadow: 0 4px 16px rgba(99, 102, 241, 0.35);
    transform: scale(1.1);
}

/* 折叠按钮 - 同样独立圆形 */
.ls-float-menu--style2 .ls-float-menu__toggle {
    width: 46px;
    height: 46px;
    margin-top: 10px;
    background: var(--ls-bg-white);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08), 0 0 1px rgba(0, 0, 0, 0.08);
}

.ls-float-menu--style2 .ls-float-menu__toggle:hover {
    background: var(--ls-primary);
    color: #fff;
    box-shadow: 0 4px 16px rgba(99, 102, 241, 0.35);
}

/* 折叠动画 - 每个气泡依次缩小消失 */
.ls-float-menu--style2 .ls-float-menu__item {
    transition: opacity 0.2s ease, transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), max-height 0.25s ease, margin 0.25s ease;
    opacity: 1;
    transform: scale(1);
    max-height: 50px;
}

.ls-float-menu--style2.ls-float-menu--collapsed .ls-float-menu__list {
    gap: 0;
    padding: 0;
}

.ls-float-menu--style2.ls-float-menu--collapsed .ls-float-menu__item {
    opacity: 0;
    transform: scale(0);
    max-height: 0;
    margin: 0;
    pointer-events: none;
}

/* ----------------------------------------
   样式3：方形工具面板
   方形圆角按钮，带左侧彩色指示条，工具面板风格
   ---------------------------------------- */

/* 列表容器 - 圆角矩形卡片 */
.ls-float-menu--style3 .ls-float-menu__list {
    background: var(--ls-bg-white);
    border-radius: 12px;
    padding: 6px;
    gap: 4px;
    border: 1px solid var(--ls-border);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
}

/* 按钮 - 方形圆角，带左侧指示条 */
.ls-float-menu--style3 .ls-float-menu__item a {
    width: 44px;
    height: 44px;
    border-radius: 8px;
    position: relative;
    color: var(--ls-text-muted);
}

.ls-float-menu--style3 .ls-float-menu__item a::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 0;
    border-radius: 0 3px 3px 0;
    background: var(--ls-primary);
    transition: height 0.2s ease;
}

.ls-float-menu--style3 .ls-float-menu__item a:hover {
    background: var(--ls-primary-light);
    color: var(--ls-primary);
}

.ls-float-menu--style3 .ls-float-menu__item a:hover::before {
    height: 20px;
}

.ls-float-menu--style3 .ls-float-menu__item a i {
    font-size: 20px;
}

/* 折叠按钮 */
.ls-float-menu--style3 .ls-float-menu__toggle {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    border: 1px solid var(--ls-border);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
    background: var(--ls-bg-white);
}

.ls-float-menu--style3 .ls-float-menu__toggle:hover {
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    border-color: rgba(var(--ls-primary-rgb), 0.2);
}

/* 折叠状态 */
.ls-float-menu--style3.ls-float-menu--collapsed .ls-float-menu__list {
    max-height: 0;
    padding: 0 6px;
    opacity: 0;
    border-color: transparent;
    box-shadow: none;
    pointer-events: none;
}

/* ----------------------------------------
   样式4：侧边标签抽屉
   按钮贴着页面边缘，只露出图标，hover 滑出显示文字
   布局完全不同于前三种的独立浮动式
   ---------------------------------------- */

/* 容器 - 贴边定位 */
.ls-float-menu--style4 {
    bottom: auto;
    top: 50%;
    transform: translateY(-50%);
}

/* 右侧贴边 */
.ls-float-menu--style4.ls-float-menu--right {
    right: 0;
}

/* 左侧贴边 */
.ls-float-menu--style4.ls-float-menu--left {
    left: 0;
}

/* 列表容器 - 无背景无阴影 */
.ls-float-menu--style4 .ls-float-menu__list {
    background: none;
    box-shadow: none;
    border-radius: 0;
    padding: 0;
    gap: 3px;
    overflow: visible;
}

/* 每个按钮 - 横向布局，贴边标签 */
.ls-float-menu--style4 .ls-float-menu__item a {
    display: flex;
    align-items: center;
    width: auto;
    height: 40px;
    border-radius: 20px 0 0 20px;
    padding: 0 12px 0 14px;
    background: var(--ls-bg-white);
    box-shadow: -2px 2px 10px rgba(0, 0, 0, 0.06);
    color: var(--ls-text-secondary);
    gap: 0;
    transform: translateX(calc(100% - 44px));
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    white-space: nowrap;
}

/* 左侧时圆角反转 */
.ls-float-menu--style4.ls-float-menu--left .ls-float-menu__item a {
    border-radius: 0 20px 20px 0;
    padding: 0 14px 0 12px;
    flex-direction: row-reverse;
    box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.06);
    transform: translateX(calc(-100% + 44px));
}

/* 图标需要相对定位，给角标做参考 */
.ls-float-menu--style4 .ls-float-menu__item a i {
    font-size: 19px;
    flex-shrink: 0;
    width: 20px;
    text-align: center;
    position: relative;
}

/* 文字标签 */
.ls-float-menu--style4 .ls-float-menu__label {
    font-size: 13px;
    font-weight: 500;
    max-width: 0;
    overflow: hidden;
    opacity: 0;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: inline-block;
}

/* hover 滑出 */
.ls-float-menu--style4 .ls-float-menu__item a:hover {
    transform: translateX(0);
    background: var(--ls-primary);
    color: #fff;
    box-shadow: -4px 4px 16px rgba(var(--ls-primary-rgb), 0.2);
}

.ls-float-menu--style4.ls-float-menu--left .ls-float-menu__item a:hover {
    transform: translateX(0);
    box-shadow: 4px 4px 16px rgba(var(--ls-primary-rgb), 0.2);
}

.ls-float-menu--style4 .ls-float-menu__item a:hover .ls-float-menu__label {
    max-width: 80px;
    opacity: 1;
    margin-left: 8px;
}

.ls-float-menu--style4.ls-float-menu--left .ls-float-menu__item a:hover .ls-float-menu__label {
    margin-left: 0;
    margin-right: 8px;
}

/* 隐藏 tooltip（用 label 代替） */
.ls-float-menu--style4 .ls-float-menu__tooltip {
    display: none;
}

/* 角标 - 右侧时贴左上角，左侧时贴右上角 */
.ls-float-menu--style4.ls-float-menu--right .ls-float-menu__badge {
    position: absolute;
    top: 4px;
    left: 0;
    right: auto;
    z-index: 5;
}

.ls-float-menu--style4.ls-float-menu--left .ls-float-menu__badge {
    position: absolute;
    top: 4px;
    right: 0;
    left: auto;
    z-index: 5;
}

/* 角标挂在图标上，需要图标的父级不裁切 */
.ls-float-menu--style4 .ls-float-menu__item a {
    overflow: visible;
}

/* 折叠按钮 - 同样贴边 */
.ls-float-menu--style4 .ls-float-menu__toggle {
    width: 40px;
    height: 40px;
    border-radius: 20px 0 0 20px;
    margin-top: 3px;
    background: var(--ls-bg-white);
    box-shadow: -2px 2px 10px rgba(0, 0, 0, 0.06);
    color: var(--ls-text-muted);
}

.ls-float-menu--style4.ls-float-menu--left .ls-float-menu__toggle {
    border-radius: 0 20px 20px 0;
    box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.06);
}

.ls-float-menu--style4 .ls-float-menu__toggle:hover {
    background: var(--ls-primary-light);
    color: var(--ls-primary);
}

/* 折叠状态 - 标签缩回只剩细条 */
.ls-float-menu--style4.ls-float-menu--collapsed .ls-float-menu__list {
    max-height: none;
    opacity: 1;
    padding: 0;
}

.ls-float-menu--style4.ls-float-menu--collapsed .ls-float-menu__item a {
    transform: translateX(calc(100% - 6px));
    height: 32px;
    padding: 0;
    box-shadow: none;
    background: var(--ls-border);
    border-radius: 4px 0 0 4px;
}

.ls-float-menu--style4.ls-float-menu--collapsed.ls-float-menu--left .ls-float-menu__item a {
    transform: translateX(calc(-100% + 6px));
    border-radius: 0 4px 4px 0;
}

.ls-float-menu--style4.ls-float-menu--collapsed .ls-float-menu__item a i,
.ls-float-menu--style4.ls-float-menu--collapsed .ls-float-menu__item a .ls-float-menu__badge,
.ls-float-menu--style4.ls-float-menu--collapsed .ls-float-menu__item a .ls-float-menu__tooltip {
    opacity: 0;
}

/* 折叠时 hover 仍可展开单个 */
.ls-float-menu--style4.ls-float-menu--collapsed .ls-float-menu__item a:hover {
    transform: translateX(0) !important;
    height: 40px;
    padding: 0 12px 0 14px;
    background: var(--ls-primary);
    color: #fff;
    border-radius: 20px 0 0 20px;
    box-shadow: -4px 4px 16px rgba(var(--ls-primary-rgb), 0.2);
}

.ls-float-menu--style4.ls-float-menu--collapsed.ls-float-menu--left .ls-float-menu__item a:hover {
    padding: 0 14px 0 12px;
    border-radius: 0 20px 20px 0;
    box-shadow: 4px 4px 16px rgba(var(--ls-primary-rgb), 0.2);
}

.ls-float-menu--style4.ls-float-menu--collapsed .ls-float-menu__item a:hover i,
.ls-float-menu--style4.ls-float-menu--collapsed .ls-float-menu__item a:hover .ls-float-menu__badge {
    opacity: 1;
}

.ls-float-menu--style4.ls-float-menu--collapsed .ls-float-menu__item a:hover .ls-float-menu__label {
    max-width: 80px;
    opacity: 1;
    margin-left: 8px;
}

/* ========================================
   类型二：紧贴侧边栏（Sidebar）
   从顶部到底部的全高度固定侧栏
   ======================================== */

/* ----------------------------------------
   侧边栏样式1：简约窄栏
   全高度白色窄条，上中下三区域布局
   ---------------------------------------- */

/* 容器 - 全高度固定 */
.ls-sidebar {
    position: fixed;
    top: 0;
    bottom: 0;
    z-index: 9998;
    display: flex;
    flex-direction: column;
    width: 54px;
    background: var(--ls-bg-white);
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* 位置 */
.ls-sidebar--right {
    right: 0;
    border-left: 1px solid var(--ls-border-light);
}

.ls-sidebar--left {
    left: 0;
    border-right: 1px solid var(--ls-border-light);
}

/* 三个区域 */
.ls-sidebar__top {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 12px 0;
    overflow-y: auto;
    overflow-x: hidden;
}

.ls-sidebar__mid {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 8px 0;
}

.ls-sidebar__bottom {
    display: flex;
    flex-direction: column;
    padding: 8px 0 12px;
    border-top: 1px solid var(--ls-border-light);
}

/* 菜单项 */
.ls-sidebar__item {
    position: relative;
}

.ls-sidebar__item a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 48px;
    padding: 0 4px;
    color: var(--ls-text-muted);
    text-decoration: none;
    transition: all 0.2s ease;
    position: relative;
    gap: 2px;
}

.ls-sidebar__item a i {
    font-size: 20px;
    line-height: 1;
    transition: transform 0.2s ease;
}

/* 文字标签 */
.ls-sidebar__text {
    font-size: 10px;
    line-height: 1;
    white-space: nowrap;
    opacity: 0.8;
    transition: all 0.2s ease;
}

/* hover 效果 */
.ls-sidebar__item a:hover {
    color: var(--ls-primary);
}

.ls-sidebar__item a:hover i {
    transform: scale(1.1);
}

/* 右侧栏 - hover 左边出现指示条 */
.ls-sidebar--right .ls-sidebar__item a::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 0;
    border-radius: 0 3px 3px 0;
    background: var(--ls-primary);
    transition: height 0.2s ease;
}

.ls-sidebar--right .ls-sidebar__item a:hover::before {
    height: 24px;
}

/* 左侧栏 - hover 右边出现指示条 */
.ls-sidebar--left .ls-sidebar__item a::before {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 0;
    border-radius: 3px 0 0 3px;
    background: var(--ls-primary);
    transition: height 0.2s ease;
}

.ls-sidebar--left .ls-sidebar__item a:hover::before {
    height: 24px;
}

/* 分割线 */
.ls-sidebar__item--divider {
    height: 1px;
    margin: 6px 12px;
    background: var(--ls-border-light);
}

/* 强调按钮（发布） */
.ls-sidebar__item--accent a {
    color: #fff !important;
}

.ls-sidebar__item--accent a::after {
    content: '';
    position: absolute;
    inset: 6px 8px;
    border-radius: 12px;
    background: var(--ls-primary);
    z-index: -1;
    transition: all 0.2s ease;
}

.ls-sidebar__item--accent a:hover::after {
    background: var(--ls-primary-hover);
    box-shadow: 0 4px 12px rgba(var(--ls-primary-rgb), 0.3);
    inset: 4px 6px;
}

.ls-sidebar__item--accent a::before {
    display: none;
}

/* 角标 */
.ls-sidebar__badge {
    position: absolute;
    top: 6px;
    right: 6px;
    min-width: 16px;
    height: 16px;
    line-height: 16px;
    text-align: center;
    font-size: 10px;
    font-weight: 600;
    color: #fff;
    background: #ef4444;
    border-radius: 10px;
    padding: 0 4px;
    pointer-events: none;
}

/* 收起/展开按钮 */
.ls-sidebar__item--toggle a {
    color: var(--ls-text-muted) !important;
}

.ls-sidebar__item--toggle a:hover {
    color: var(--ls-primary) !important;
}

.ls-sidebar__item--toggle a::before {
    display: none !important;
}

/* ---- 折叠状态 ---- */
.ls-sidebar--collapsed {
    width: 0;
    overflow: hidden;
    border-color: transparent;
}

/* 折叠时显示一个小触发条 */
.ls-sidebar--collapsed::after {
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 4px;
    height: 48px;
    background: var(--ls-border);
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.ls-sidebar--collapsed.ls-sidebar--right::after {
    right: -8px;
    border-radius: 4px 0 0 4px;
}

.ls-sidebar--collapsed.ls-sidebar--left::after {
    left: -8px;
    border-radius: 0 4px 4px 0;
}

.ls-sidebar--collapsed:hover::after {
    background: var(--ls-primary);
    width: 5px;
}

/* ========================================
   全高度侧边栏 Dock（ls-dock）
   ======================================== */

.ls-dock {
    position: fixed;
    top: 0;
    bottom: 0;
    z-index: 9998;
    width: 52px;
    background: #fff;
    display: flex;
    flex-direction: column;
    overflow: visible;
}

.ls-dock--right {
    right: 0;
    border-left: 1px solid #eee;
}

.ls-dock--left {
    left: 0;
    border-right: 1px solid #eee;
}

/* 上部格子区（从上往下，可滚动） */
.ls-dock-grid {
    flex: 1;
    margin-top: 65px;
    overflow: visible;
    min-height: 0;
}

.ls-dock-grid-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 8px 0;
}

/* 下部固定区（从下往上） */
.ls-dock-footer {
    flex-shrink: 0;
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    border-top: 1px solid #f0f0f0;
    background: #fff;
    overflow: visible;
}

/* 分隔线 */
.ls-dock-sep {
    width: 28px;
    height: 1px;
    background: #eee;
    margin: 6px auto;
    flex-shrink: 0;
}

/* ---- 格子单元 ---- */
.ls-dock-cell {
    display: flex;
    align-items: center;
    width: 52px;
    height: 48px;
    text-decoration: none;
    color: #8b8fa3;
    position: relative;
    cursor: pointer;
    flex-shrink: 0;
}

.ls-dock-cell-icon {
    width: 52px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    z-index: 2;
}

.ls-dock-cell-icon i {
    font-size: 20px;
    line-height: 1;
}

.ls-dock-cell:hover {
    color: #6366f1;
}

/* hover 有标签时图标变白 */
.ls-dock-cell:hover .ls-dock-cell-icon i {
    color: #fff;
}

/* 展开面板类 hover 图标不变白 */
.ls-dock-cell--expandable:hover .ls-dock-cell-icon i {
    color: #6366f1;
}

/* ---- 头像类型 ---- */
.ls-dock-cell--avatar {
    justify-content: center;
}

/* 头像 hover 标签：图标不变白 */
.ls-dock-cell--avatar:hover .ls-dock-cell-icon i {
    color: inherit;
}

/* ---- hover 凸出标签（纯 CSS） ---- */
.ls-dock-cell .ls-dock-tag {
    display: none;
    position: absolute;
    top: 0;
    bottom: 0;
    white-space: nowrap;
    font-size: 12px;
    font-weight: 500;
    padding: 0 14px;
    z-index: 1;
    pointer-events: none;
    color: #fff;
    line-height: 48px;
}

/* 右侧 dock */
.ls-dock--right .ls-dock-tag {
    right: 0;
    border-radius: 4px 0 0 4px;
    text-align: right;
    padding-right: 52px;
}

/* 左侧 dock */
.ls-dock--left .ls-dock-tag {
    left: 0;
    border-radius: 0 4px 4px 0;
    text-align: left;
    padding-left: 52px;
}

.ls-dock-cell:hover .ls-dock-tag {
    display: block;
}

/* 展开面板类不显示标签 */
.ls-dock-cell--expandable:hover .ls-dock-tag {
    display: none;
}

/* ---- 展开面板（纯 CSS hover） ---- */
.ls-dock-panel {
    position: absolute;
    bottom: 0;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(0, 0, 0, 0.04);
    display: none;
    z-index: 99999;
    white-space: nowrap;
}

.ls-dock-cell--expandable:hover .ls-dock-panel {
    display: block;
}

.ls-dock--right .ls-dock-panel {
    right: calc(100% + 8px);
}

.ls-dock--left .ls-dock-panel {
    left: calc(100% + 8px);
}

/* 桥接区域：填充格子和面板之间的间隙，防止 hover 断开 */
.ls-dock-panel::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 16px;
}

.ls-dock--right .ls-dock-panel::after {
    left: 100%;
}

.ls-dock--left .ls-dock-panel::after {
    right: 100%;
}

/* 二维码面板 */
.ls-dock-panel--qrcode {
    padding: 16px;
}

.ls-dock-qr-row {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.ls-dock-qr-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    border-radius: 8px;
}

.ls-dock-qr-item img {
    width: 100px;
    height: 100px;
    display: block;
    border-radius: 4px;
}

.ls-dock-qr-item span {
    font-size: 12px;
    color: #666;
    white-space: nowrap;
}

/* 客服联系面板 */
.ls-dock-contact-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 14px;
    font-size: 13px;
    color: #4b5563;
    white-space: nowrap;
}

.ls-dock-contact-item:not(:last-child) {
    border-bottom: 1px solid #f3f4f6;
}

.ls-dock-contact-item i {
    font-size: 18px;
    flex-shrink: 0;
}

/* 公告面板 */
.ls-dock-notice-title {
    font-size: 14px;
    font-weight: 600;
    color: #1f2937;
    margin: 0;
    padding: 12px 14px 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.ls-dock-notice-title i {
    color: #f59e0b;
    font-size: 16px;
}

.ls-dock-notice-list {
    list-style: none;
    margin: 0;
    padding: 0 14px 10px;
}

.ls-dock-notice-list li {
    padding: 6px 0;
    font-size: 13px;
    color: #6b7280;
    border-bottom: 1px dashed #f3f4f6;
    cursor: pointer;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-dock-notice-list li:last-child {
    border-bottom: none;
}

.ls-dock-notice-list li:hover {
    color: #6366f1;
}

/* 反馈面板 */
.ls-dock-feedback-title {
    font-size: 14px;
    font-weight: 600;
    color: #1f2937;
    margin: 0 0 10px;
}

/* 分享面板 */
.ls-dock-share-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    padding: 14px;
}

.ls-dock-share-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 8px 0;
    border-radius: 8px;
    cursor: pointer;
    text-decoration: none;
    min-width: 60px;
}

.ls-dock-share-item:hover {
    background: #f3f4f6;
}

.ls-dock-share-item i {
    font-size: 22px;
    line-height: 1;
}

.ls-dock-share-item span {
    font-size: 11px;
    color: #6b7280;
}

/* ---- 角标 ---- */
.ls-dock-badge {
    position: absolute;
    top: 8px;
    right: 4px;
    min-width: 16px;
    height: 16px;
    line-height: 16px;
    text-align: center;
    font-size: 9px;
    font-style: normal;
    font-weight: 700;
    color: #fff;
    background: #ef4444;
    border-radius: 10px;
    padding: 0 4px;
    pointer-events: none;
    box-shadow: 0 1px 4px rgba(239, 68, 68, 0.4);
}

/* 左侧 dock 角标在左上角 */
.ls-dock--left .ls-dock-badge {
    right: 0;
    left: auto;
}



/* 页面默认模板 */
.default-main {
    position: relative;
    width: var(--ls-width);
    margin: 20px auto;
    min-height: 800px;
    padding-bottom: 50px;
    display: flex;
    gap: 15px;
}

.default-content {
    background: #fff;
    padding: 15px;
    border-radius: var(--ls-border-radius);
    flex: 1;
}

/* ===== 信息流广告 ===== */
.ls-feed-ad {
    background: var(--ls-card-bg, #fff);
    border-radius: var(--ls-border-radius, 12px);
    overflow: hidden;
}
.ls-feed-ad-link {
    display: block;
    text-decoration: none;
    color: inherit;
}
/* 头部 */
.ls-feed-ad-header {
    display: flex;
    align-items: center;
    gap: 10px;
}
.ls-feed-ad-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--ls-primary, #4a90d9), #7b61ff);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 16px;
    flex-shrink: 0;
}
.ls-feed-ad-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 0;
}
.ls-feed-ad-source {
    font-size: 14px;
    font-weight: 500;
    color: var(--ls-text-color, #1a1a1a);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ls-feed-ad-label {
    font-size: 11px;
    color: var(--ls-text-muted, #999);
    border: 1px solid var(--ls-border-color, #e5e5e5);
    border-radius: 3px;
    padding: 1px 5px;
    flex-shrink: 0;
    line-height: 1.4;
}
/* 文字内容 */
.ls-feed-ad-text {
    padding: 10px 0 0;
    font-size: 14px;
    color: var(--ls-text-color, #1a1a1a);
    line-height: 1.7;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
/* 图片区域 */
.ls-feed-ad-images {
    margin: 12px 0 0;
    border-radius: 8px;
    overflow: hidden;
}
.ls-feed-ad-img-wrap {
    overflow: hidden;
    background: #f8fafc;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ls-feed-ad-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
    transition: transform 0.3s ease;
}
.ls-feed-ad-link:hover .ls-feed-ad-img { transform: none; }
/* CTA 按钮 */
.ls-feed-ad-action {
    padding: 12px 0 14px;
}
.ls-feed-ad-hero-left .ls-feed-ad-action {
    text-align: right;
}
.ls-feed-ad-cta {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 16px;
    background: var(--ls-primary, #4a90d9);
    color: #fff;
    font-size: 13px;
    border-radius: 20px;
    transition: all 0.2s ease;
}
.ls-feed-ad-cta i {
    font-size: 14px;
    transition: transform 0.2s ease;
}
.ls-feed-ad-link:hover .ls-feed-ad-cta {
    filter: brightness(1.1);
    box-shadow: 0 2px 8px rgba(74, 144, 217, 0.3);
}
.ls-feed-ad-link:hover .ls-feed-ad-cta i {
    transform: translateX(3px);
}

/* 单图广告 */
.ls-feed-ad-images.ls-feed-ad-img-1 {
    margin-right: 16px !important;
    border-radius: 8px !important;
}

/* 广告体（穿山甲等第三方） */
.ls-feed-ad-body { min-height: 100px; }
/* === 单图布局 === */
/* hero-top: 大图在上 */
.ls-feed-ad-hero-top .ls-feed-ad-img-1 .ls-feed-ad-img-wrap { height: 240px; }
/* hero-left: 左图右文（CSS Grid） */
.ls-feed-ad-hero-left .ls-feed-ad-link {
    display: grid;
    grid-template-columns: 184px minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr) auto;
    column-gap: 16px;
    align-items: start;
}
.ls-feed-ad-hero-left .ls-feed-ad-images {
    grid-column: 1;
    grid-row: 1 / -1;
    margin: 0 !important;
    border-radius: 8px !important;
    align-self: stretch;
}
.ls-feed-ad-hero-left .ls-feed-ad-img-1 .ls-feed-ad-img-wrap {
    height: 100%;
    min-height: 180px;
}
.ls-feed-ad-hero-left .ls-feed-ad-header {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
}
.ls-feed-ad-hero-left .ls-feed-ad-text {
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
}
.ls-feed-ad-hero-left .ls-feed-ad-action {
    grid-column: 2;
    grid-row: 3;
    align-self: end;
    justify-self: end;
}
@media (max-width: 720px) {
    .ls-feed-ad-hero-left .ls-feed-ad-link {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        row-gap: 10px;
    }
    .ls-feed-ad-hero-left .ls-feed-ad-images,
    .ls-feed-ad-hero-left .ls-feed-ad-header,
    .ls-feed-ad-hero-left .ls-feed-ad-text,
    .ls-feed-ad-hero-left .ls-feed-ad-action {
        grid-column: 1;
        grid-row: auto;
    }
    .ls-feed-ad-hero-left .ls-feed-ad-img-1 .ls-feed-ad-img-wrap {
        height: 220px;
        min-height: 0;
    }
}
/* === 二图布局 === */
.ls-feed-ad-duo-side .ls-feed-ad-img-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3px;
    height: 210px;
}
.ls-feed-ad-duo-side .ls-feed-ad-img-2 .ls-feed-ad-img-wrap { height: 100%; }
.ls-feed-ad-duo-stack .ls-feed-ad-img-2 {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 3px;
    height: 220px;
}
.ls-feed-ad-duo-stack .ls-feed-ad-img-2 .ls-feed-ad-img-wrap { height: 100%; }
/* === 三图布局 === */
.ls-feed-ad-grid-equal .ls-feed-ad-img-3 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 3px;
    height: auto;
}
.ls-feed-ad-grid-equal .ls-feed-ad-img-3 .ls-feed-ad-img-wrap {
    height: auto;
    aspect-ratio: 1.14 / 1;
}
.ls-feed-ad-grid-main .ls-feed-ad-img-3 {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 3px;
    height: auto;
    aspect-ratio: 2.2 / 1;
}
.ls-feed-ad-grid-main .ls-feed-ad-img-3 .ls-feed-ad-img-wrap { height: 100%; }
.ls-feed-ad-grid-main .ls-feed-ad-img-3 .ls-feed-ad-img-wrap:first-child {
    grid-row: 1 / 3;
}
/* 穿山甲信息流广告容器 */
.ls-feed-ad-csj .ls-feed-ad-body:empty {
    display: none;
}
.ls-feed-ad-csj .ls-feed-ad-body:empty + .ls-feed-ad-label {
    display: none;
}

/* ========================================
   空状态提示
   ======================================== */

.ls-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    text-align: center;
    color: var(--ls-text-muted, #909090);
    font-size: 14px;
    gap: 8px;
}

.ls-empty > i {
    font-size: 36px;
    opacity: 0.35;
}

.ls-empty > p,
.ls-empty > span {
    margin: 0;
}

.ls-empty-page {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 500px;
    background: #fff;
    border-radius: var(--ls-radius, 12px);
    text-align: center;
    padding: 60px 20px;
}

.ls-empty-page i {
    font-size: 64px;
    color: #d0d5dd;
    margin-bottom: 20px;
}

.ls-empty-page p {
    font-size: 15px;
    color: #98a2b3;
    margin: 0;
}

.jinsom-post-owner {
    background: #3b82f6;
}

.ls-admin-reply-badge {
    background: rgba(22, 163, 74, 0.1);
    color: #15803d;
    white-space: nowrap;
    height: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    border-radius: 3px;
    gap: 3px;
    padding: 0 5px;
    line-height: 16px;
    font-weight: 200;
}

.ls-admin-reply-badge i {
    font-size: 13px;
    line-height: 1;
}
.ls-publish-corner-badge-btn {
    gap: 4px;
}

.ls-pw-toolbar .ls-publish-corner-badge-btn,
.ls-ew-toolbar .ls-publish-corner-badge-btn,
.ls-pa-toolbar .ls-publish-corner-badge-btn,
.ls-ea-toolbar .ls-publish-corner-badge-btn,
.ls-pv-toolbar .ls-publish-corner-badge-btn,
.ls-ev-toolbar .ls-publish-corner-badge-btn,
.ls-pm-toolbar .ls-publish-corner-badge-btn,
.ls-em-toolbar .ls-publish-corner-badge-btn,
.ls-publish-page .ls-publish-corner-badge-btn,
.ls-edit-page .ls-publish-corner-badge-btn,
.ls-ea-page .ls-publish-corner-badge-btn,
.ls-ev-page .ls-publish-corner-badge-btn,
.ls-sns-page .ls-publish-corner-badge-btn,
.ls-publish-actions .ls-publish-corner-badge-btn {
    width: 36px;
    min-width: 36px;
    max-width: 36px;
    padding: 0;
}

/* ==================== 必填项小红点 ====================
   发布页、编辑页、快捷发布的工具栏上，「这一项必须填」的角标 —— 图片、附件、
   标签三种按钮共用同一个类。原来每张页面样式表里各抄一份、类名还各不相同，
   于是语音 / 长文 / 视频那几页的模板出了 <span> 却没人给它样式，红点根本不显示。
   收成这一条：宿主按钮全是 position:relative 的 36px 方块，这里只管定位。 */
.ls-required-dot {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--ls-danger);
}

.ls-publish-corner-badge-btn .ls-pc-corner-badge-main-icon {
    font-size: 18px;
    flex-shrink: 0;
}

.ls-corner-badge-dropdown .ls-dropdown-item.selected::after {
    content: none;
}


/* ==================== 点赞特效 ====================
   列表、详情、推荐位的喜欢按钮共用一套：动画和粒子都由 LS.likePost 触发
   （pc/js/common.js），而 common.css 是每个 PC 页面都加载的那一份。
   原先这套规则只在 post-list.css 里，于是详情页各自又写了一遍内联样式的
   飘心 —— 同一个动作在站内有两种长相。 */
.ls-like-bounce {
    animation: ls-like-bounce 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes ls-like-bounce {
    0%   { transform: scale(1); }
    30%  { transform: scale(1.25); }
    60%  { transform: scale(0.9); }
    100% { transform: scale(1); }
}

.ls-like-particle {
    position: absolute;
    top: 0;
    right: 0;
    pointer-events: none;
    color: var(--ls-danger, #d93025);
    animation: ls-like-float 0.5s ease-out forwards;
    z-index: 10;
}

.ls-like-particle i {
    font-size: 14px;
    display: block;
    transform: scale(var(--s, 1));
}

@keyframes ls-like-float {
    0% {
        opacity: 1;
        transform: translate(0, 0) scale(1);
    }
    100% {
        opacity: 0;
        transform: translate(var(--x, 0), var(--y, -30px)) scale(0.3);
    }
}

/* 粒子是绝对定位的，宿主按钮必须是定位上下文，且不能把溢出裁掉。 */
[data-action="like"] {
    position: relative;
    overflow: visible;
}


/* ==================== 互动数的空态 ====================
   计数为 0 时把展示位所在的那一块藏起来。块本身一直在 DOM 里 ——
   数字一变（LS.syncPostLike / LS.syncPostComments）就能当场露出来，
   不用等刷新。约定见 docs/开发标准.md B6.2。 */
.ls-count-empty {
    display: none !important;
}

/**
 * LightSNS UI Components Styles
 * Dialog, Toast, Modal, Prompt, Button
 *
 * @package LightSNS
 * @version 1.0.0
 */

/* ===== CSS Variables ===== */
:root {
    /* 主色调 */
    --ls-primary: #3b82f6;
    --ls-primary-hover: #2563eb;
    --ls-primary-light: #eff6ff;
    --ls-secondary: #6b7280;
    --ls-success: #10b981;
    --ls-success-light: #ecfdf5;
    --ls-warning: #f59e0b;
    --ls-warning-light: #fffbeb;
    --ls-danger: #ef4444;
    --ls-danger-light: #fef2f2;

    /* 背景色 */
    --ls-bg: #f8fafc;
    --ls-bg-hover: #f1f5f9;
    --ls-card-bg: #ffffff;

    /* 边框 */
    --ls-border: #e5e7eb;
    --ls-border-light: #f3f4f6;

    /* 文字颜色 */
    --ls-text: #1f2937;
    --ls-text-secondary: #4b5563;
    --ls-text-muted: #9ca3af;

    /* 圆角 */
    --ls-radius: 6px;
    --ls-radius-sm: 4px;
    --ls-radius-lg: 8px;

    /* 阴影 */
    --ls-shadow: none;                                                                      /* 无阴影 */
    --ls-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);                                         /* 超小阴影，用于细微元素 */
    --ls-shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.06);                                         /* 小阴影，用于卡片、按钮等 */
    --ls-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);                                        /* 中阴影，用于浮层、下拉菜单 */
    --ls-shadow-lg: 0 20px 60px rgba(0, 0, 0, 0.15);                                       /* 大阴影，用于弹窗 */
    --ls-shadow-xl: 0 20px 60px rgba(0, 0, 0, 0.3);                                        /* 超大阴影，用于模态框 */
    --ls-shadow-elevated: 0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.06); /* 浮层阴影，复合效果 */
    --ls-shadow-modal: 0 20px 60px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(0, 0, 0, 0.05);   /* 模态框阴影，带边框效果 */
    --ls-focus-ring: 0 0 0 3px rgba(var(--ls-primary-rgb), 0.1);                           /* 焦点环，用于 focus 状态 */

    /* 过渡动画 */
    --ls-transition: 0.15s ease;

    /* 主色调扩展（深色、RGB 值） */
    --ls-primary-rgb: 59, 130, 246;    /* 主色 RGB 值，用于 rgba() 透明度控制 */

    /* 文字颜色扩展 */
    --ls-text-primary: #1f2937;        /* 最深文字色，用于标题、重要文本 */

    /* 背景色扩展 */
    --ls-bg-white: #ffffff;            /* 纯白背景，用于卡片、弹窗等 */
    --ls-bg-light: #f8fafc;            /* 浅灰背景，用于页面底色、输入框等 */

    /* 圆角扩展 */
    --ls-radius-md: 6px;              /* 中等圆角，介于 sm(4px) 和 lg(8px) 之间 */
    --ls-radius-xl: 12px;             /* 大圆角，用于卡片、弹窗等 */
    --ls-radius-full: 9999px;         /* 全圆角，用于头像、标签、胶囊按钮等 */

    /* 布局尺寸 */
    --ls-header-height: 64px;         /* 顶部导航栏高度 */
}

/* ===== Toast 消息提示 ===== */
.ls-toast {
    position: fixed;
    bottom: 24px;
    right: 24px;
    padding: 12px 18px;
    border-radius: var(--ls-radius-sm);
    color: #fff;
    font-size: 13px;
    z-index: 99999;
    transform: translateX(120%);
    transition: transform 0.2s ease;
}

.ls-toast.show {
    transform: translateX(0);
}

.ls-toast-success {
    background: var(--ls-success);
}

.ls-toast-error {
    background: var(--ls-danger);
}

.ls-toast-warning {
    background: var(--ls-warning);
}

.ls-toast-info {
    background: #3b82f6;
}

/* ===== Dialog 对话框 ===== */
.ls-dialog-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 10010;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity var(--ls-transition);
}

.ls-dialog-overlay.show {
    opacity: 1;
}

.ls-dialog {
    background: var(--ls-card-bg);
    border-radius: var(--ls-radius-lg);
    border: 1px solid var(--ls-border);
    min-width: 380px;
    max-width: 90%;
    max-height: 90vh;
    max-height: 90dvh;
    /* 竖着排三块（头 / 身 / 脚）并让身体那块自己滚。
       原来只有 `max-height: 90vh` 而 body 没有 overflow —— 内容一多就是
       直接被裁掉，连滚动条都没有，底部那排按钮跟着一起看不见。
       为此已经有四五处弹窗各自打了补丁（资产预警的备注/设置、服务详情、
       商城店铺资料、后台头部菜单），那些补丁现在是多余的但也无害。 */
    display: flex;
    flex-direction: column;
    transform: translateY(-16px);
    transition: transform var(--ls-transition);
}
/* 大尺寸弹窗（日志查看 / 配置编辑 / 详情展示等长内容场景） */
.ls-dialog.ls-dialog-lg   { width: 720px;  max-width: 90vw; }
.ls-dialog.ls-dialog-xl   { width: 1040px; max-width: 92vw; }
.ls-dialog.ls-dialog-full { width: 1280px; max-width: 95vw; }

.ls-dialog-overlay.show .ls-dialog {
    transform: translateY(0);
}

.ls-dialog-header {
    padding: 18px 20px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.ls-dialog-icon {
    flex-shrink: 0;
}

.ls-dialog-icon i {
    font-size: 20px;
}

.ls-dialog-title {
    flex: 1;
    font-size: 16px;
    font-weight: 600;
    color: var(--ls-text);
    margin: 0;
}

.ls-dialog-close {
    background: none;
    border: none;
    font-size: 16px;
    color: var(--ls-text-muted);
    cursor: pointer;
    padding: 0;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--ls-radius-sm);
    transition: all var(--ls-transition);
    margin: -4px -6px 0 0;
}

.ls-dialog-close:hover {
    background: var(--ls-bg);
    color: var(--ls-text);
}

.ls-dialog-body {
    padding: 12px 20px 20px;
    color: var(--ls-text-secondary);
    font-size: 13px;
    line-height: 1.5;
    /* 只有身体滚，头和脚钉住。`min-height: 0` 不能省 ——
       flex 子项的默认 `min-height: auto` 会让它拒绝收缩到内容高度以下，
       于是 `overflow` 永远触发不了。 */
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

/* 弹窗里放一整段长文（后台配的说明这类）：保留换行、长串自己断。
   正文默认 `white-space: normal`，站长在文本框里敲的换行会被抹平成一整段。 */
.ls-dialog-longtext {
    white-space: pre-wrap;
    word-break: break-word;
    line-height: 1.7;
}

.ls-dialog-header,
.ls-dialog-footer {
    flex: 0 0 auto;
}

.ls-dialog-footer {
    padding: 0 20px 20px;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.ls-dialog-btn {
    padding: 8px 18px;
    border-radius: var(--ls-radius-sm);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid var(--ls-border);
    background: var(--ls-card-bg);
    color: var(--ls-text-secondary);
    transition: all var(--ls-transition);
}

.ls-dialog-btn:hover {
    background: var(--ls-bg);
    border-color: var(--ls-border);
}

/* 确认按钮在等请求（onConfirm 交回了 Promise）时的样子 */
.ls-dialog-btn:disabled,
.ls-dialog-btn:disabled:hover {
    cursor: default;
    opacity: .75;
}

.ls-dialog-btn-primary {
    background: var(--ls-primary);
    color: #fff;
    border-color: var(--ls-primary);
}

.ls-dialog-btn-primary:hover {
    background: var(--ls-primary-hover);
    border-color: var(--ls-primary-hover);
}

.ls-dialog.ls-paid-sticky-modal {
    width: 520px;
}

.ls-paid-sticky-modal .ls-dialog-body {
    padding: 8px 20px 18px;
}

.ls-paid-sticky-modal .ls-dialog-footer {
    align-items: center;
}

.ls-paid-sticky-footer-meta {
    margin-right: auto;
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    flex-wrap: wrap;
}

.ls-paid-sticky-footer-meta span {
    font-size: 12px;
    color: var(--ls-text-muted);
}

.ls-paid-sticky-footer-meta em {
    font-style: normal;
    color: var(--ls-text);
}

.ls-paid-sticky-dialog {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.ls-paid-sticky-hero {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 0 14px;
    border-bottom: 1px solid var(--ls-border);
}

.ls-paid-sticky-icon {
    width: 38px;
    height: 38px;
    border-radius: var(--ls-radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ls-primary);
    background: var(--ls-primary-light);
    flex-shrink: 0;
}

.ls-paid-sticky-icon i {
    font-size: 20px;
}

.ls-paid-sticky-hero-text {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.ls-paid-sticky-kicker {
    font-size: 12px;
    color: var(--ls-primary);
}

.ls-paid-sticky-desc {
    font-size: 13px;
    color: var(--ls-text-secondary);
    line-height: 1.5;
}

.ls-paid-sticky-badge {
    flex-shrink: 0;
    padding: 4px 8px;
    border-radius: var(--ls-radius-sm);
    color: var(--ls-primary);
    background: var(--ls-primary-light);
    font-size: 12px;
}

.ls-paid-sticky-main {
    display: flex;
    flex-direction: column;
    background: var(--ls-bg);
    border-radius: var(--ls-radius-lg);
    padding: 2px 14px;
}

.ls-paid-sticky-days {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 0;
}

.ls-paid-sticky-days span {
    width: 72px;
    flex-shrink: 0;
    color: var(--ls-text);
    font-size: 14px;
}

.ls-paid-sticky-stepper {
    width: 132px;
    height: 38px;
    display: flex;
    align-items: center;
    border-radius: var(--ls-radius-md);
    background: var(--ls-card-bg);
    border: 1px solid var(--ls-border);
    overflow: hidden;
}

.ls-paid-sticky-stepper input {
    flex: 1;
    min-width: 0;
    height: 100%;
    border: 0;
    padding: 0 10px;
    color: var(--ls-text);
    background: transparent;
    font-size: 16px;
    outline: none;
}

.ls-paid-sticky-stepper:focus-within {
    border-color: var(--ls-primary);
}

.ls-paid-sticky-stepper em {
    padding: 0 10px 0 4px;
    font-style: normal;
    color: var(--ls-text-muted);
    font-size: 13px;
}

.ls-paid-sticky-days small {
    flex: 1;
    min-width: 0;
    color: var(--ls-text-muted);
    font-size: 12px;
    text-align: right;
}

.ls-paid-sticky-result {
    display: flex;
    flex-direction: column;
}

.ls-paid-sticky-expire {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 0;
    padding: 14px 0;
    border-top: 1px solid var(--ls-border);
}

.ls-paid-sticky-expire span {
    color: var(--ls-text-secondary);
    font-size: 14px;
}

.ls-paid-sticky-expire em {
    font-style: normal;
    color: var(--ls-text);
    font-size: 14px;
    line-height: 1.4;
}

.ls-paid-sticky-pay {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 0;
    padding: 15px 0;
    border-top: 1px solid var(--ls-border);
    background: transparent;
}

.ls-paid-sticky-pay span {
    color: var(--ls-text);
    font-size: 14px;
}

.ls-paid-sticky-pay em {
    font-style: normal;
    font-size: 22px;
    color: var(--ls-primary);
    line-height: 1.2;
}

/* ===== Prompt 输入弹窗 ===== */
.ls-prompt-dialog {
    width: 420px;
    max-width: 90vw;
}

.ls-prompt-body {
    padding: 16px 20px 20px;
}

.ls-prompt-desc {
    margin: 0 0 12px;
    color: var(--ls-text-muted);
    font-size: 13px;
    line-height: 1.5;
}

.ls-prompt-input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--ls-border);
    border-radius: var(--ls-radius-sm);
    background: var(--ls-bg);
    color: var(--ls-text);
    font-size: 14px;
    line-height: 1.5;
    resize: vertical;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.ls-prompt-input:focus {
    outline: none;
    border-color: var(--ls-primary);
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.ls-prompt-input::placeholder {
    color: var(--ls-text-muted);
}

.ls-prompt-counter {
    margin-top: 8px;
    text-align: right;
    font-size: 12px;
    color: var(--ls-text-muted);
}

.ls-prompt-current {
    color: var(--ls-text);
}

/* ===== Modal 通用弹窗 ===== */
.ls-modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10002;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

.ls-modal.show {
    opacity: 1;
    visibility: visible;
}

.ls-modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
}

.ls-modal-content {
    position: relative;
    background: var(--ls-card-bg);
    border-radius: var(--ls-radius-lg);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    max-height: 90vh;
    max-height: 90dvh;
    display: flex;
    flex-direction: column;
    transform: translateY(-20px);
    transition: transform 0.3s ease;
}

.ls-modal.show .ls-modal-content {
    transform: translateY(0);
}

.ls-modal-sm {
    width: 400px;
    max-width: 95vw;
}

.ls-modal-md {
    width: 550px;
    max-width: 95vw;
}

.ls-modal-lg {
    width: 700px;
    max-width: 95vw;
}

.ls-modal-xl {
    width: 95vw;
    max-width: 1200px;
}

.ls-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px;
    border-bottom: 1px solid var(--ls-border);
}

.ls-modal-header h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
}

.ls-modal-header h3 i {
    color: var(--ls-primary);
}

.ls-modal-close {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: transparent;
    color: var(--ls-text-muted);
    cursor: pointer;
    border-radius: var(--ls-radius-sm);
    transition: all var(--ls-transition);
}

.ls-modal-close:hover {
    background: var(--ls-bg);
    color: var(--ls-text);
}

.ls-modal-body {
    flex: 1;
    overflow-y: auto;
    padding: 24px;
    scrollbar-width: thin;
    scrollbar-color: transparent transparent;
}

.ls-modal-body:hover {
    scrollbar-color: rgba(0,0,0,0.15) transparent;
}

.ls-modal-body::-webkit-scrollbar {
    width: 4px;
}

.ls-modal-body::-webkit-scrollbar-track {
    background: transparent;
}

.ls-modal-body::-webkit-scrollbar-thumb {
    background: transparent;
    border-radius: 4px;
    transition: background 0.2s;
}

.ls-modal-body:hover::-webkit-scrollbar-thumb {
    background: rgba(0,0,0,0.15);
}

.ls-modal-body:hover::-webkit-scrollbar-thumb:hover {
    background: rgba(0,0,0,0.25);
}

.ls-modal-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    padding: 16px 24px;
    border-top: 1px solid var(--ls-border);
}

/* ===== Button 按钮 ===== */
.ls-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 18px;
    border: none;
    border-radius: var(--ls-radius-sm);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all var(--ls-transition);
    text-decoration: none;
    outline: none;
}

.ls-btn:active {
    transform: translateY(1px);
}

.ls-btn:focus-visible {
    box-shadow: 0 0 0 2px var(--ls-primary-light);
}

.ls-btn-primary {
    background: var(--ls-primary);
    color: #fff;
    border: none;
}

.ls-btn-primary:hover {
    background: var(--ls-primary-hover);
}

.ls-btn-secondary {
    background: var(--ls-bg);
    color: var(--ls-text-secondary);
    border: 1px solid var(--ls-border);
}

.ls-btn-secondary:hover {
    background: var(--ls-bg-hover);
    color: var(--ls-text);
    border-color: var(--ls-border);
}

.ls-btn-danger {
    background: var(--ls-danger);
    color: #fff;
    border: none;
}

.ls-btn-danger:hover {
    background: #dc2626;
}

.ls-btn-success {
    background: var(--ls-success);
    color: #fff;
    border: none;
}

.ls-btn-success:hover {
    background: #059669;
}

.ls-btn-warning {
    background: var(--ls-warning);
    color: #fff;
    border: none;
}

.ls-btn-warning:hover {
    background: #d97706;
}

.ls-btn-disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.ls-btn-ghost {
    background: transparent;
    color: var(--ls-text-secondary);
    border: 1px solid var(--ls-border);
}

.ls-btn-ghost:hover {
    background: var(--ls-bg);
    color: var(--ls-primary);
    border-color: var(--ls-primary);
}

.ls-btn-text {
    background: transparent;
    color: var(--ls-primary);
    border: none;
    padding: 8px 12px;
}

.ls-btn-text:hover {
    background: var(--ls-primary-light);
}

.ls-btn-sm {
    padding: 6px 12px;
    font-size: 12px;
}

.ls-btn-lg {
    padding: 12px 24px;
    font-size: 15px;
}

.ls-btn-block {
    display: flex;
    width: 100%;
}

.ls-btn-icon {
    width: 32px;
    height: 32px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--ls-radius-sm);
    background: transparent;
    color: var(--ls-text-muted);
    border: none;
    cursor: pointer;
    transition: all var(--ls-transition);
}

.ls-btn-icon:hover {
    background: var(--ls-bg);
    color: var(--ls-text);
}

.ls-btn-icon.danger:hover {
    background: var(--ls-danger-light);
    color: var(--ls-danger);
}

/* ===== Loading 加载动画 ===== */
.ls-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 50px 20px;
}

.ls-loading-spinner {
    width: 36px;
    height: 28px;
    display: flex;
}

.ls-loading-spinner > div {
    width: 3px;
    height: 28px;
    margin: 2px;
    border-radius: 0;
    animation: ls-line-scale 1.2s infinite ease;
    background-color: var(--ls-primary);
}

.ls-loading-spinner > div:nth-child(1) {
    animation-delay: -1.2s;
}

.ls-loading-spinner > div:nth-child(2) {
    animation-delay: -1.1s;
}

.ls-loading-spinner > div:nth-child(3) {
    animation-delay: -1s;
}

.ls-loading-spinner > div:nth-child(4) {
    animation-delay: -0.9s;
}

.ls-loading-spinner > div:nth-child(5) {
    animation-delay: -0.8s;
}

@keyframes ls-line-scale {

    0%,
    40%,
    100% {
        transform: scaleY(0.4);
    }

    20% {
        transform: scaleY(1);
    }
}

/* ===== Button Loading 按钮加载动画 ===== */
.ls-btn-loading {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    line-height: 1;
}

.ls-btn-loading-bars {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    height: 14px;
}

.ls-btn-loading-bars i {
    display: block;
    width: 3px;
    height: 12px;
    border-radius: 999px;
    background: currentColor;
    animation: ls-btn-loading-bar .8s ease-in-out infinite;
}

.ls-btn-loading-bars i:nth-child(1) { animation-delay: -.24s; }
.ls-btn-loading-bars i:nth-child(2) { animation-delay: -.12s; }
.ls-btn-loading-bars i:nth-child(3) { animation-delay: 0s; }

@keyframes ls-btn-loading-bar {
    0%, 100% { transform: scaleY(.45); opacity: .45; }
    50% { transform: scaleY(1); opacity: 1; }
}

.ls-btn-loading-text {
    display: inline-block;
    line-height: 1;
}

.ls-loading-text {
    margin-top: 16px;
    color: var(--ls-text-muted);
    font-size: 13px;
}

/* ===== ScreenLoading 全屏加载遮罩 ===== */
.ls-screen-loading {
    position: fixed;
    inset: 0;
    z-index: 10100;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.45);
    backdrop-filter: blur(2px);
    opacity: 0;
    visibility: hidden;
    transition: opacity .2s, visibility .2s;
}
.ls-screen-loading.show {
    opacity: 1;
    visibility: visible;
}
.ls-screen-loading-box {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 24px 32px;
    background: var(--ls-card-bg, #fff);
    border-radius: 12px;
    box-shadow: 0 4px 24px rgba(0,0,0,.1);
    transform: scale(.92);
    transition: transform .2s cubic-bezier(.4,0,.2,1);
}
/* 右上角关闭按钮：默认就在，等不动时用户有出口。浅灰，悬停变红。 */
.ls-screen-loading-close {
    position: absolute;
    top: 6px;
    right: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--ls-text-muted, #9ca3af);
    font-size: 15px;
    line-height: 1;
    cursor: pointer;
    transition: color .15s, background-color .15s;
}
.ls-screen-loading-close:hover {
    color: var(--ls-danger, #ef4444);
    background: var(--ls-danger-light, #fef2f2);
}
/* 自带的隐藏态：`.ls-hidden` 的通用规则在 chat.css 里，后台那个壳不加载它。 */
.ls-screen-loading-close.ls-hidden { display: none; }
.ls-screen-loading.show .ls-screen-loading-box {
    transform: scale(1);
}
.ls-screen-loading-spinner {
    display: flex;
    align-items: center;
    gap: 3px;
    height: 20px;
}
.ls-screen-loading-spinner > div {
    width: 3px;
    height: 20px;
    border-radius: 2px;
    background: var(--ls-primary, #3b82f6);
    animation: ls-screen-loading-bar .8s ease-in-out infinite;
}
.ls-screen-loading-spinner > div:nth-child(1) { animation-delay: -.24s; }
.ls-screen-loading-spinner > div:nth-child(2) { animation-delay: -.12s; }
.ls-screen-loading-spinner > div:nth-child(3) { animation-delay: 0s; }
@keyframes ls-screen-loading-bar {
    0%, 100% { transform: scaleY(.4); opacity: .4; }
    50% { transform: scaleY(1); opacity: 1; }
}
.ls-screen-loading-text {
    font-size: 13px;
    font-weight: 500;
    color: var(--ls-text-secondary, #666);
    white-space: nowrap;
}
.ls-screen-loading-text:empty { display: none; }
.ls-screen-loading-progress {
    display: none;
    width: 180px;
    height: 4px;
    border-radius: 2px;
    background: var(--ls-border, #e5e7eb);
    overflow: hidden;
}
.ls-screen-loading-progress.show { display: block; }
.ls-screen-loading-progress-bar {
    height: 100%;
    width: 0;
    border-radius: 2px;
    background: var(--ls-primary, #3b82f6);
    transition: width .3s ease;
}

/* ===== Dropdown 下拉菜单 (NaiveUI Style) ===== */
.ls-dropdown {
    position: fixed;
    z-index: 10020;
    min-width: 140px;
    padding: 4px;
    background: var(--ls-card-bg);
    border-radius: 6px;
    box-shadow: 0 3px 14px rgba(0, 0, 0, 0.12), 0 3px 6px rgba(0, 0, 0, 0.08);
    opacity: 0;
    visibility: hidden;
    transform: scale(0.92) translateY(-4px);
    transform-origin: top center;
    transition: opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1),
                transform 0.15s cubic-bezier(0.4, 0, 0.2, 1),
                visibility 0.15s;
}

/* 可滚动下拉菜单（通过 className: 'ls-dropdown-scrollable' 启用） */
.ls-dropdown.ls-dropdown-scrollable {
    max-height: 350px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: transparent transparent;
}

.ls-dropdown.ls-dropdown-scrollable:hover {
    scrollbar-color: rgba(0,0,0,0.15) transparent;
}

.ls-dropdown.ls-dropdown-scrollable::-webkit-scrollbar {
    width: 4px;
}

.ls-dropdown.ls-dropdown-scrollable::-webkit-scrollbar-track {
    background: transparent;
}

.ls-dropdown.ls-dropdown-scrollable::-webkit-scrollbar-thumb {
    background: transparent;
    border-radius: 4px;
    transition: background 0.2s;
}

.ls-dropdown.ls-dropdown-scrollable:hover::-webkit-scrollbar-thumb {
    background: rgba(0,0,0,0.15);
}

.ls-dropdown.ls-dropdown-scrollable:hover::-webkit-scrollbar-thumb:hover {
    background: rgba(0,0,0,0.25);
}

.ls-dropdown.show {
    opacity: 1;
    visibility: visible;
    transform: scale(1) translateY(0);
}

.ls-dropdown.ls-dropdown-bottom-start {
    transform-origin: top left;
}

.ls-dropdown.ls-dropdown-bottom-end {
    transform-origin: top right;
}

.ls-dropdown.ls-dropdown-top-start {
    transform-origin: bottom left;
}

.ls-dropdown.ls-dropdown-top-end {
    transform-origin: bottom right;
}

/* 下拉菜单项 */
.ls-dropdown-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    margin: 2px 0;
    font-size: 14px;
    line-height: 20px;
    color: var(--ls-text);
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.1s, color 0.1s;
    user-select: none;
}

.ls-dropdown-item:first-child {
    margin-top: 0;
}

.ls-dropdown-item:last-child {
    margin-bottom: 0;
}

.ls-dropdown-item:hover {
    background: var(--ls-primary-light);
    color: var(--ls-primary);
}

.ls-dropdown-item:active {
    background: rgba(59, 130, 246, 0.15);
}

/* 图标 */
.ls-dropdown-item i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    line-height: 18px;
    width: 18px;
    height: 18px;
    text-align: center;
    flex-shrink: 0;
    opacity: 0.75;
    transition: opacity 0.1s;
}

.ls-dropdown-item:hover i {
    opacity: 1;
}

/* 图片（头像等） */
.ls-dropdown-item .ls-dropdown-img {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

/* 文字 */
.ls-dropdown-item span {
    flex: 1;
    line-height: 20px;
    white-space: nowrap;
}

/* 禁用状态 */
.ls-dropdown-item.disabled {
    color: var(--ls-text-muted);
    cursor: not-allowed;
    pointer-events: none;
}

.ls-dropdown-item.disabled:hover {
    background: transparent;
}

/* 危险操作 */
.ls-dropdown-item.danger {
    color: var(--ls-danger);
}

.ls-dropdown-item.danger i {
    opacity: 1;
}

.ls-dropdown-item.danger:hover {
    background: var(--ls-danger-light);
    color: var(--ls-danger);
}

/* 成功状态 */
.ls-dropdown-item.success {
    color: var(--ls-success);
}

.ls-dropdown-item.success:hover {
    background: var(--ls-success-light);
    color: var(--ls-success);
}

/* 警告状态 */
.ls-dropdown-item.warning {
    color: var(--ls-warning);
}

.ls-dropdown-item.warning:hover {
    background: var(--ls-warning-light);
    color: var(--ls-warning);
}

/* 分隔线 */
.ls-dropdown-divider {
    height: 1px;
    background: var(--ls-border-light);
    margin: 6px 4px;
}

/* 分组标题 */
.ls-dropdown-header {
    padding: 6px 12px 4px;
    font-size: 12px;
    font-weight: 500;
    color: var(--ls-text-muted);
    user-select: none;
}

/* 选中状态 */
.ls-dropdown-item.selected {
    background: var(--ls-primary-light);
    color: var(--ls-primary);
}

.ls-dropdown-item.selected::after {
    content: '\eb7b';
    font-family: 'remixicon';
    margin-left: auto;
    font-size: 16px;
}

/* 带箭头的子菜单 */
.ls-dropdown-item.has-submenu::after {
    content: '\ea6e';
    font-family: 'remixicon';
    margin-left: auto;
    font-size: 14px;
    opacity: 0.5;
}

/* 快捷键提示 */
.ls-dropdown-item .ls-shortcut {
    margin-left: auto;
    font-size: 12px;
    color: var(--ls-text-muted);
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* ===== Popover 气泡弹出层 ===== */
.ls-popover {
    opacity: 0;
    transform: translateY(4px);
    transition: opacity 0.15s, transform 0.15s;
}

.ls-popover.show {
    opacity: 1;
    transform: translateY(0);
}

/* ===== Lightbox 图片灯箱 ===== */
.ls-lightbox {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 99999;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
    user-select: none;
    -webkit-user-select: none;
}

.ls-lightbox.show {
    opacity: 1;
    visibility: visible;
}

.ls-lightbox-backdrop {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.92);
}

/* 工具栏 */
.ls-lightbox-toolbar {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px;
    z-index: 3;
    background: linear-gradient(to bottom, rgba(0,0,0,0.3), transparent);
}

.ls-lightbox-counter {
    color: rgba(255, 255, 255, 0.85);
    font-size: 14px;
    font-weight: 500;
}

.ls-lightbox-actions {
    display: flex;
    align-items: center;
    gap: 2px;
}

.ls-lightbox-btn {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.75);
    font-size: 16px;
    cursor: pointer;
    border-radius: 6px;
    transition: background 0.15s, color 0.15s;
}

.ls-lightbox-btn:hover {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}

/* 图片展示区 */
.ls-lightbox-stage {
    position: absolute;
    top: 50px;
    left: 0;
    right: 0;
    bottom: 80px;
    overflow: hidden;
    z-index: 1;
}

.ls-lightbox-track {
    display: flex;
    width: 300%;
    height: 100%;
    transform: translateX(-33.333%);
}

.ls-lightbox-slide {
    width: 33.333%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.ls-lightbox-slide-img {
    max-width: 90%;
    max-height: 100%;
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
}

.ls-lightbox-image {
    cursor: zoom-in;
    transition: opacity 0.2s;
    will-change: transform;
}

.ls-lightbox-image[style*="scale"] {
    cursor: grab;
}

.ls-lightbox-spinner {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: rgba(255, 255, 255, 0.6);
    font-size: 28px;
    display: none;
}

/* 导航按钮 */
.ls-lightbox-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 50px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.6);
    font-size: 36px;
    cursor: pointer;
    z-index: 2;
    transition: color 0.15s, background 0.15s;
    border-radius: 6px;
}

.ls-lightbox-nav:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
}

.ls-lightbox-prev {
    left: 10px;
}

.ls-lightbox-next {
    right: 10px;
}

/* 说明文字 */
.ls-lightbox-caption {
    position: absolute;
    bottom: 80px;
    left: 0;
    right: 0;
    text-align: center;
    padding: 10px 20px;
    color: rgba(255, 255, 255, 0.7);
    font-size: 13px;
    z-index: 3;
    background: linear-gradient(to top, rgba(0,0,0,0.2), transparent);
    display: none;
}

/* 缩略图栏 */
.ls-lightbox-thumbs {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0 16px;
    z-index: 3;
    overflow-x: auto;
    overflow-y: hidden;
    background: linear-gradient(to top, rgba(0,0,0,0.4), transparent);
    scrollbar-width: none;
}

.ls-lightbox-thumbs::-webkit-scrollbar {
    display: none;
}

.ls-lightbox-thumb {
    flex-shrink: 0;
    width: 52px;
    height: 52px;
    border-radius: 4px;
    overflow: hidden;
    cursor: pointer;
    opacity: 0.5;
    border: 2px solid transparent;
    transition: opacity 0.15s, border-color 0.15s;
}

.ls-lightbox-thumb:hover {
    opacity: 0.8;
}

.ls-lightbox-thumb.active {
    opacity: 1;
    border-color: #fff;
}

.ls-lightbox-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ==================== 发布队列悬浮进度窗口 ==================== */
.ls-pq-container {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 10060;
    display: flex;
    flex-direction: column-reverse;
    gap: 10px;
    user-select: none;
}

.ls-pq-card {
    width: 226px;
    min-height: 72px;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 26px;
    grid-template-areas:
        "ring title delete"
        "parts parts parts"
        "reason reason reason"
        "action action action";
    align-items: center;
    column-gap: 8px;
    padding: 12px;
    overflow: hidden;
    border-radius: var(--ls-border-radius, 8px);
    background: rgba(18, 18, 22, 0.94);
    color: #fff;
    cursor: pointer;
}

.ls-pq-card-failed {
    background: rgba(36, 18, 20, 0.96);
}

.ls-pq-ring {
    grid-area: ring;
    position: relative;
    width: 48px;
    height: 48px;
    flex-shrink: 0;
}

.ls-pq-ring svg {
    width: 100%;
    height: 100%;
}

.ls-pq-ring-bg,
.ls-pq-ring-fg {
    fill: none;
    stroke-width: 3;
}

.ls-pq-ring-bg {
    stroke: rgba(255,255,255,0.16);
}

.ls-pq-ring-fg {
    stroke: #fff;
    stroke-linecap: round;
    transform: rotate(-90deg);
    transform-origin: center;
    transition: stroke-dashoffset 0.4s ease;
}

.ls-pq-ring span {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    color: #fff;
}

.ls-pq-delete {
    grid-area: delete;
    justify-self: end;
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: var(--ls-border-radius-btn, 6px);
    background: rgba(255,255,255,0.10);
    color: #fff;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.15s ease;
}

.ls-pq-delete:hover {
    background: rgba(255,255,255,0.18);
}

.ls-pq-delete:active {
    transform: translateY(1px);
}

.ls-pq-title {
    grid-area: title;
    min-width: 0;
    max-width: 128px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 14px;
    color: #fff;
}

.ls-pq-parts {
    grid-area: parts;
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 8px 0 0;
    padding: 0;
    max-height: 170px;
    overflow: hidden;
    list-style: none;
    opacity: 1;
}

.ls-pq-part {
    display: grid;
    grid-template-columns: 7px minmax(54px, 1fr) 46px 32px;
    align-items: center;
    column-gap: 5px;
    min-width: 0;
    font-size: 12px;
    color: rgba(255,255,255,0.78);
}

.ls-pq-part-dot {
    width: 6px;
    height: 6px;
    flex-shrink: 0;
    border-radius: var(--ls-radius-full, 999px);
    background: rgba(255,255,255,0.58);
}

.ls-pq-part-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-pq-part-meter {
    width: 46px;
    height: 3px;
    flex-shrink: 0;
    overflow: hidden;
    border-radius: var(--ls-radius-full, 999px);
    background: rgba(255,255,255,0.14);
}

.ls-pq-part-meter i {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: rgba(255,255,255,0.82);
    transition: width 0.35s ease;
}

.ls-pq-part-state {
    width: 32px;
    flex-shrink: 0;
    text-align: right;
    color: rgba(255,255,255,0.62);
}

.ls-pq-action {
    grid-area: action;
    justify-self: end;
    height: 30px;
    margin-top: 6px;
    padding: 0 12px;
    border: 0;
    border-radius: var(--ls-border-radius-btn, 6px);
    background: rgba(255,255,255,0.12);
    color: #fff;
    cursor: pointer;
}

.ls-pq-action:hover {
    background: rgba(255,255,255,0.18);
}

.ls-pq-action:active {
    transform: translateY(1px);
}

.ls-pq-card-collapsed {
    width: 70px;
    min-height: 0;
    padding: 10px;
}

.ls-pq-card-collapsed .ls-pq-title {
    max-width: 0;
    opacity: 0;
}

.ls-pq-card-collapsed .ls-pq-parts {
    max-height: 0;
    margin-top: 0;
    opacity: 0;
}

.ls-pq-reason {
    grid-area: reason;
    margin: 6px 0 0;
    font-size: 12px;
    line-height: 1.45;
    color: rgba(255, 190, 190, 0.92);
    word-break: break-all;
}

.ls-pq-card-collapsed .ls-pq-reason {
    display: none;
}

.ls-pq-card-collapsed .ls-pq-action {
    display: none;
}
.ls-pq-card-collapsed .ls-pq-delete {
    display: none;
}

.ls-vote-card {
    margin-top: 12px;
    padding: 14px;
    border-radius: 8px;
    background: #f7f8fa;
    border: 1px solid rgba(15, 23, 42, 0.06);
}

.ls-vote-title {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    color: #111827;
    font-size: 15px;
    line-height: 1.45;
    margin-bottom: 10px;
}

.ls-vote-title i {
    color: var(--ls-primary);
    font-size: 18px;
    line-height: 22px;
}

.ls-vote-options {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ls-vote-option {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 9px 12px;
    border-radius: 8px;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    cursor: pointer;
}

.ls-vote-option.is-selected {
    border-color: var(--ls-primary);
}

.ls-vote-card.is-voted .ls-vote-option {
    cursor: default;
}

.ls-vote-card.is-closed .ls-vote-option {
    cursor: default;
}

.ls-vote-card.is-locked .ls-vote-option {
    cursor: default;
}

.ls-vote-locked {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 10px 12px;
    border-radius: 8px;
    color: #64748b;
    background: rgba(148, 163, 184, 0.12);
}

.ls-vote-locked i {
    color: #94a3b8;
    font-size: 18px;
}

.ls-vote-option-bar {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 0;
    background: var(--ls-primary);
    opacity: 0.12;
    transition: width 0.2s ease;
}

.ls-vote-option.is-user-choice .ls-vote-option-bar {
    background: var(--ls-primary);
}

.ls-vote-check {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
}

.ls-vote-check::before {
    content: '';
    position: absolute;
    inset: 1px;
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    box-sizing: border-box;
    background: #fff;
}

.ls-vote-option.is-selected .ls-vote-check::before {
    border-color: var(--ls-primary);
    background: var(--ls-primary);
}

.ls-vote-option.is-user-choice .ls-vote-check::before {
    border-color: var(--ls-primary);
    background: var(--ls-primary);
}

.ls-vote-option.is-selected .ls-vote-check::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 5px;
    width: 6px;
    height: 4px;
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(-45deg);
}

.ls-vote-option.is-user-choice .ls-vote-check::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 5px;
    width: 6px;
    height: 4px;
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(-45deg);
}

.ls-vote-option-image {
    position: relative;
    z-index: 1;
    width: 44px;
    height: 44px;
    border-radius: 8px;
    overflow: hidden;
    background: #eef1f5;
    flex: 0 0 auto;
    cursor: pointer;
}

.ls-vote-option-image a {
    display: block;
    width: 100%;
    height: 100%;
}

.ls-vote-option-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.ls-vote-text {
    position: relative;
    z-index: 1;
    flex: 1;
    min-width: 0;
    color: #1f2937;
    font-size: 14px;
    line-height: 1.4;
    word-break: break-word;
}

.ls-vote-count {
    position: relative;
    z-index: 1;
    color: #6b7280;
    font-size: 12px;
    white-space: nowrap;
}

.ls-vote-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 12px;
    color: #8a94a6;
    font-size: 13px;
}

.ls-vote-submit {
    border: 0;
    border-radius: 8px;
    padding: 7px 14px;
    background: var(--ls-primary);
    color: #fff;
    font-size: 13px;
    cursor: pointer;
}

.ls-vote-submit:disabled {
    background: #d9dee8;
    color: #8a94a6;
    cursor: not-allowed;
}

.ls-post-item[data-type="vote"] .ls-post-footer {
    margin-top: 10px;
}

.ls-post-item[data-type="vote"] .ls-post-tags {
    margin-top: 10px;
}

.ls-post-item[data-type="vote"] .ls-post-footer-tags {
    margin-bottom: 10px;
}

.ls-vote-detail .ls-vote-card {
    margin-top: 16px;
}

.vd-page .ls-vote-card {
    margin-top: 16px;
}

.ls-mini-music {
    position: fixed;
    right: 14px;
    bottom: calc(18px + env(safe-area-inset-bottom, 0px));
    z-index: 9998;
    width: min(280px, calc(100vw - 24px));
    height: 58px;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 36px 28px;
    align-items: center;
    gap: 9px;
    padding: 8px 10px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 8px;
    color: #fff;
    background: rgba(20, 20, 26, .86);
    box-shadow: 0 14px 36px rgba(0, 0, 0, .24);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    user-select: none;
    /* 长按封面是拖动手势：手指按住时 iOS 不许弹「存储图片」那张卡片，
       页面也不许跟着滑走 —— 脚本里不再 preventDefault，全靠这两条。 */
    -webkit-touch-callout: none;
    touch-action: none;
    transition: transform .18s ease, opacity .18s ease;
}

.ls-mini-music.is-hidden {
    opacity: 0;
    pointer-events: none;
    transform: translateY(12px) scale(.96);
}

.ls-mini-music.is-dragging {
    transition: none;
    cursor: all-scroll;
}

.ls-mini-music.is-dragging .ls-mm-cover {
    cursor: all-scroll;
}

.ls-mini-music button {
    border: 0;
    padding: 0;
    color: inherit;
    background: transparent;
    cursor: pointer;
}

.ls-mini-music .ls-mm-cover {
    width: 42px;
    height: 42px;
    overflow: hidden;
    border-radius: 10px;
    background: rgba(255, 255, 255, .12);
    cursor: all-scroll;
}

.ls-mm-cover img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
}

.ls-mm-main {
    min-width: 0;
    cursor: default;
}

.ls-mm-title {
    display: block;
    width: 100%;
    overflow: hidden;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    line-height: 18px;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mm-artist {
    overflow: hidden;
    color: rgba(255, 255, 255, .64);
    font-size: 11px;
    line-height: 15px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mm-progress {
    height: 2px;
    margin-top: 4px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, .18);
}

.ls-mm-progress span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: #ff4d57;
}

.ls-mm-play {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: transparent !important;
    color: #fff !important;
    font-size: 20px;
}

.ls-mm-close {
    width: 26px;
    height: 26px;
    color: #fff !important;
    font-size: 18px;
}

@media (max-width: 768px) {
    .ls-mini-music {
        width: 74px;
        height: 124px;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 42px 30px 28px;
        grid-template-areas:
            "cover cover"
            "main main"
            "play close";
        justify-items: center;
        gap: 5px;
        padding: 8px 7px;
        border-radius: 8px;
    }

    .ls-mobile .ls-mini-music {
        bottom: calc(82px + env(safe-area-inset-bottom, 0px));
    }

    .ls-mm-cover {
        grid-area: cover;
        justify-self: center;
    }

    .ls-mm-main {
        grid-area: main;
        width: 100%;
    }

    .ls-mm-title {
        height: 16px;
        font-size: 11px;
        line-height: 16px;
        text-align: center;
    }

    .ls-mm-artist {
        height: 12px;
        font-size: 10px;
        line-height: 12px;
        text-align: center;
    }

    .ls-mm-progress {
        margin-top: 5px;
    }

    .ls-mm-play {
        grid-area: play;
        justify-self: start;
        width: 28px;
        height: 28px;
        font-size: 18px;
    }

    .ls-mm-close {
        grid-area: close;
        justify-self: end;
        align-self: center;
        width: 28px;
        height: 28px;
        border-radius: 50%;
        background: transparent !important;
        font-size: 16px;
    }
}

/*
 * 正文里的表情图片。
 *
 * **与 `pc/css/emoji.css` 不是一回事**：那个是表情选择面板（`.ls-emoji-panel`
 * 那一族，配合 emoji.js 用），这个是「正文里那张已经渲染出来的图多大」。
 * 所以叫 content-emoji 而不是 emoji —— 两个文件重名会让人以为改一个就够。
 *
 * 这张图片是**后端一个函数**产出的：`core::content::render_emoji` 把 `[s-N-M]`
 * 换成 `<img class="ls-emoji" …>`。产出只有一处，尺寸就不该有第二处 ——
 * 而它此前在 pc/css/common.css 与 mb/assets/css/core/common.css 里各写了一份，
 * 后台（PC 与移动版）**一份都没有**。
 *
 * 后果是 2026-08-10 那次：后台群聊消息记录接上表情渲染之后，表情按原图尺寸
 * 铺开，一个占了大半行，弹窗里更是小半屏。后台不加载 pc/css/common.css
 * （那是前台的整套外观，塞进后台会把布局搅乱），所以它拿不到那条规则。
 *
 * 现在四个外壳都加载这一份：前台 PC、前台移动、后台 PC、后台移动。
 *
 * 编辑器里那两条覆盖（`.ls-editor .ls-emoji` / `.ls-comment-editor .ls-emoji`）
 * 留在各自的文件里 —— 那是「在输入框里多大」，与「在正文里多大」不是同一件事。
 */
.ls-emoji {
    width: 22px;
    height: 22px;
    max-height: 22px;
    padding: 0;
    margin: 0;
    vertical-align: -5px;
    display: inline;
}

.lssn-stack {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 10020;
    display: flex;
    flex-direction: column-reverse;
    gap: 12px;
    align-items: flex-end;
    pointer-events: none;
}

.lssn-card {
    width: min(360px, calc(100vw - 36px));
    border-radius: var(--ls-radius-lg, var(--ls-border-radius, 16px));
    box-shadow: var(--ls-shadow-lg, 0 24px 80px rgba(0, 0, 0, .18));
    overflow: hidden;
    pointer-events: auto;
    cursor: pointer;
    will-change: transform, opacity;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
}

.lssn-card.daily { background: rgba(79, 70, 229, .8); color: #fff; }
.lssn-card.urgent { background: rgba(220, 38, 38, .8); color: #fff; }
.lssn-card.activity { background: rgba(217, 119, 6, .8); color: #fff; }
.lssn-card.system { background: rgba(8, 145, 178, .8); color: #fff; }

.lssn-card.is-sliding {
    pointer-events: none;
    animation: lssn-slide-out .48s cubic-bezier(.22, .61, .36, 1) forwards;
}

.lssn-brief-icon {
    width: 34px;
    height: 34px;
    border-radius: 12px;
    background: rgba(255, 255, 255, .18);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex: none;
}

.lssn-brief-text {
    font-size: 14px;
    line-height: 1.5;
    min-width: 0;
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 右边那个「×」：不点开详情也能把这条收掉。
   `margin-right: -4px` 把按钮自己的内边距抵掉，图标看着还在卡片的内边距上。 */
.lssn-brief-close {
    flex: none;
    width: 24px;
    height: 24px;
    margin-right: -4px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: inherit;
    opacity: .7;
    font-size: 16px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: opacity .2s, background .2s;
}

.lssn-brief-close:hover {
    opacity: 1;
    background: rgba(255, 255, 255, .18);
}

.lssn-detail-mask {
    position: fixed;
    inset: 0;
    z-index: 10030;
    background: rgba(0, 0, 0, .45);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
}

.lssn-detail {
    width: min(520px, 100%);
    background: var(--ls-card-bg, #fff);
    border-radius: var(--ls-radius-lg, var(--ls-border-radius, 16px));
    box-shadow: var(--ls-shadow-lg, 0 24px 80px rgba(0, 0, 0, .18));
    animation: lssn-detail-in .2s ease both;
    overflow: hidden;
}

.lssn-detail-art {
    position: relative;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    overflow: hidden;
    color: #fff;
    padding: 0 24px;
}

.lssn-detail-art.daily { background: linear-gradient(135deg, rgba(79, 70, 229, .9), rgba(99, 102, 241, .62)); }
.lssn-detail-art.urgent { background: linear-gradient(135deg, rgba(220, 38, 38, .9), rgba(248, 113, 113, .62)); }
.lssn-detail-art.activity { background: linear-gradient(135deg, rgba(217, 119, 6, .9), rgba(251, 191, 36, .62)); }
.lssn-detail-art.system { background: linear-gradient(135deg, rgba(8, 145, 178, .9), rgba(34, 211, 238, .62)); }

.lssn-detail-art::before {
    content: "";
    position: absolute;
    width: 120px;
    height: 120px;
    right: -38px;
    top: -72px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .18);
}

.lssn-detail-art::after {
    content: "";
    position: absolute;
    width: 72px;
    height: 72px;
    left: 44%;
    bottom: -52px;
    border-radius: 24px;
    background: rgba(255, 255, 255, .12);
    transform: rotate(18deg);
}

.lssn-detail-art-icon {
    position: relative;
    z-index: 1;
    width: 34px;
    height: 34px;
    border-radius: 12px;
    background: rgba(255, 255, 255, .18);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16);
}

.lssn-detail-art-type {
    position: relative;
    z-index: 1;
    font-size: 14px;
    font-weight: 600;
    opacity: .96;
}

.lssn-detail-content {
    padding: 24px 24px 18px;
    color: var(--ls-text-primary, #334155);
    font-size: 15px;
    line-height: 1.85;
    word-break: break-word;
    max-height: 52vh;
    max-height: 52dvh;
    overflow-y: auto;
}

.lssn-detail-content p { margin: 0 0 12px; }
.lssn-detail-content p:last-child { margin-bottom: 0; }
.lssn-detail-content a { color: var(--ls-primary, #4f46e5); text-decoration: none; }
.lssn-detail-content img { max-width: 100%; border-radius: var(--ls-radius-md, var(--ls-border-radius-sm, 10px)); }

.lssn-detail-foot { display: flex; padding: 15px; background: var(--ls-card-bg, #fff); justify-content: center; }

.lssn-ok {
    border: 0;
    border-radius: var(--ls-radius-md, var(--ls-border-radius-sm, 10px));
    padding: 9px 20px;
    background: var(--ls-primary, #4f46e5);
    color: #fff;
    font-size: 14px;
    cursor: pointer;
    box-shadow: var(--ls-shadow-sm, 0 6px 16px rgba(79, 70, 229, .18));
}

.lssn-ok:hover { filter: brightness(1.04); }

@media (max-width: 640px) {
    .lssn-stack {
        right: 12px;
        bottom: calc(72px + env(safe-area-inset-bottom, 0px));
        left: 12px;
    }

    .lssn-card {
        width: min(300px, calc(100vw - 24px));
        height: 55px;
        box-sizing: border-box;
        padding: 10px 12px;
    }

    .lssn-brief-icon {
        width: 30px;
        height: 30px;
        border-radius: 10px;
        font-size: 16px;
    }

    .lssn-brief-text {
        font-size: 13px;
    }

    .lssn-brief-close {
        width: 22px;
        height: 22px;
        font-size: 15px;
    }

    .lssn-detail-art { height: 50px; padding: 0 20px; }
    .lssn-detail-art-icon { width: 32px; height: 32px; border-radius: 11px; font-size: 17px; }
}

@keyframes lssn-slide-out {
    0% { opacity: 1; transform: translateX(0) scale(1); }
    70% { opacity: .35; }
    100% { opacity: 0; transform: translateX(120%) scale(.98); }
}

@keyframes lssn-detail-in {
    from { opacity: 0; transform: translateY(12px) scale(.98); }
    to { opacity: 1; transform: none; }
}

/* 弹窗详情里的奖励条。**与后台预览用的是同一套类名** ——
   后台点「预览」看到的必须就是用户看到的那一条。 */
.lssn-reward {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 20px 16px;
    padding: 10px 12px;
    background: rgba(47, 107, 255, .06);
    border: 1px solid rgba(47, 107, 255, .14);
    border-radius: 10px;
}

.lssn-reward-icon {
    display: flex;
    flex: 0 0 28px;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    color: #fff;
    font-size: 15px;
    background: linear-gradient(135deg, #4f46e5, #06b6d4);
    border-radius: 9px;
}

.lssn-reward-text {
    flex: 1;
    min-width: 0;
    font-size: 13px;
    color: #1b1f2a;
    word-break: break-word;
}

.lssn-reward-tip {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    color: #9aa1ad;
}

.lssn-reward-btn {
    flex: 0 0 auto;
    padding: 7px 16px;
    font-size: 13px;
    color: #fff;
    cursor: pointer;
    background: #2f6bff;
    border: 0;
    border-radius: 999px;
}

.lssn-reward-btn[disabled] {
    color: #9aa1ad;
    cursor: default;
    background: rgba(15, 18, 26, .06);
}

/* 公告中心浮层。PC 居中面板，移动端底部上滑。
   和一次性弹窗（site-notice.css）分开：那一份是「飘一条就走」的通知条，
   这一份是常驻入口打开的列表，两者的层级、动画、生命周期都不一样。 */

.lsnc-mask {
    position: fixed;
    inset: 0;
    z-index: 10020;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 18, 26, .45);
    backdrop-filter: blur(2px);
    animation: lsnc-fade .18s ease;
}

@keyframes lsnc-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}

.lsnc-panel {
    display: flex;
    flex-direction: column;
    width: 560px;
    max-width: calc(100vw - 32px);
    max-height: 72vh;
    max-height: 72dvh;
    overflow: hidden;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 24px 64px rgba(15, 18, 26, .28);
    animation: lsnc-rise .22s cubic-bezier(.22, .68, .36, 1);
}

@keyframes lsnc-rise {
    from { transform: translateY(18px) scale(.98); opacity: 0; }
    to { transform: none; opacity: 1; }
}

.lsnc-head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 18px 12px;
    border-bottom: 1px solid rgba(15, 18, 26, .06);
}

.lsnc-title {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 16px;
    font-weight: 600;
    color: #1b1f2a;
}

.lsnc-close {
    margin-left: auto;
    padding: 4px;
    font-size: 18px;
    color: #9aa1ad;
    cursor: pointer;
    background: none;
    border: 0;
}

.lsnc-body {
    flex: 1;
    padding: 8px 18px 18px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.lsnc-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid rgba(15, 18, 26, .06);
    cursor: pointer;
}

.lsnc-item:hover .lsnc-line {
    color: #2f6bff;
}

.lsnc-item:last-child { border-bottom: 0; }

.lsnc-ico {
    display: flex;
    flex: 0 0 40px;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    font-size: 20px;
    color: #fff;
    background: linear-gradient(135deg, #4f46e5, #06b6d4);
    border-radius: 12px;
}

.lsnc-main { min-width: 0; flex: 1; }

/* 第一行：正文摘要，**一行**，溢出省略号。 */
.lsnc-line {
    overflow: hidden;
    font-size: 14px;
    line-height: 1.5;
    color: #333a47;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 第二行：类型 + 日期。 */
.lsnc-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    font-size: 12px;
    color: #9aa1ad;
}

.lsnc-kind { color: #2f6bff; }

/* 右侧那个礼物标识，宽度固定，永远在最右边。 */
.lsnc-gift {
    display: flex;
    flex: 0 0 30px;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    color: #fff;
    font-size: 16px;
    background: linear-gradient(135deg, #f59e0b, #f43f5e);
    border-radius: 9px;
}

/* 详情浮层压在公告中心面板上面。 */
.lsnc-detail-mask { z-index: 10030; }

.lsnc-empty {
    padding: 48px 0;
    font-size: 14px;
    color: #9aa1ad;
    text-align: center;
}

.lsnc-loading {
    padding: 16px 0;
    font-size: 13px;
    color: #9aa1ad;
    text-align: center;
}

/* 入口链接上的小红点。挂在带 `#notice-center` 的 <a> 上。 */
.lsnc-dot {
    position: relative;
    top: -6px;
    display: inline-block;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    margin-left: 2px;
    font-size: 11px;
    font-style: normal;
    line-height: 16px;
    color: #fff;
    text-align: center;
    background: #f04438;
    border-radius: 999px;
}

@media (max-width: 720px) {
    .lsnc-mask { align-items: flex-end; }

    .lsnc-panel {
        width: 100%;
        max-width: none;
        max-height: 88vh;
        max-height: 88dvh;
        border-radius: 16px 16px 0 0;
        animation: lsnc-up .24s cubic-bezier(.22, .68, .36, 1);
    }

    @keyframes lsnc-up {
        from { transform: translateY(100%); }
        to { transform: none; }
    }

    .lsnc-head { padding: 14px 16px 10px; }
    .lsnc-body { padding: 4px 16px 24px; }
}

/**
 * user-title.css - 用户头衔角标
 *
 * 头衔的 HTML 由服务端拼（`crates/core/src/user/badge_html.rs` 的 `title_html`），
 * 四个外壳（PC / 移动端 / 后台 / 后台移动端）共用这一份样式。
 *
 * **服务端只内联「这个头衔自己的配色」**（模块表里存的 `bg_color` / `text_color`），
 * 尺寸、圆角、字重、默认配色全在这里 —— 原先这些也内联在 `style` 属性上，
 * 于是任何想调整头衔外观的样式表都得靠 `!important` 才盖得住，
 * 模块作者根本盖不动。
 *
 * 存量数据里还有 PHP 年代生成、`style` 里带着全套固定样式的 HTML
 * （比如缓存下来的富文本片段），它们仍然按内联优先显示，不受这份样式影响。
 */

.ls-user-title {
    display: inline-flex;
    align-items: center;
}

/* 文本头衔：一颗小胶囊。高度 16px 是 YXYH-20260607-1557 定的（从 18px 收下来），
   别顺手改回去。 */
.ls-user-title-text {
    padding: 0 6px;
    height: 16px;
    line-height: 16px;
    border-radius: 3px;
    font-size: 12px;
    font-weight: 600;
    /* 后台/模块没配颜色时的那一对色，PHP 也是这一对。 */
    background-color: #eff6ff;
    color: #2563eb;
}

/* 图片头衔：只留左右一点内边距，高度由图片决定。 */
.ls-user-title-image {
    padding: 0 3px;
}

.ls-user-title-image img {
    height: 17px;
    width: auto;
}

/**
 * 全站统一的进度 UI。
 *
 * 一份实现，四个壳共用（PC 前台、移动端前台、PC 后台、移动端后台）——
 * 与 `site-notice` / `post-vote` / `publish-queue` 同一个道理放在 `static/` 下：
 * 「一件事进行到哪儿了」这层浮层与端无关，两端各写一份的唯一效果是哪天调样式
 * 只调到一边。
 *
 * 里面只有两个形态：
 *
 * - **弹窗**（`.ls-progress-mask` 那一棵）：占屏中央的圆环，用在「点一下要等一会儿」
 *   的操作上（清空回收站、批量删除、批量清理文件）。
 * - **条**（`.ls-progress-bar` 那一棵）：嵌在别人的面板里的一条，用在本来就有
 *   自己版面的地方（失效引用检查弹窗、模块安装终端、在线更新终端）。
 *
 * 两个形态共用同一组颜色与同一条缓动，所以全站的「进行中 / 成功 / 失败」
 * 长得是一样的。
 *
 * # 颜色取自各自的壳
 *
 * 四个壳的主题变量各不相同（前台 `--ls-*`、PC 后台 `--adminx-*`、移动端后台
 * `--mx-*`），这里按这个顺序层层兜底取一次，取不到才落到写死的那个蓝。
 * 这样同一份组件在后台是后台的蓝、在前台是前台的蓝，不用为每个壳出一份覆盖样式。
 */

.ls-progress-mask,
.ls-progress-bar {
    --lsp-accent: var(--ls-primary, var(--adminx-primary, var(--mx-primary, #3b82f6)));
    --lsp-accent-soft: var(--ls-primary-hover, var(--adminx-primary-hover, var(--mx-primary-hover, #60a5fa)));
    --lsp-success: var(--ls-success, var(--adminx-success, var(--mx-success, #10b981)));
    --lsp-danger: var(--ls-danger, var(--adminx-danger, var(--mx-danger, #ef4444)));
    --lsp-surface: var(--ls-card-bg, var(--adminx-card-bg, var(--mx-bg-card, #ffffff)));
    --lsp-track: var(--ls-bg-hover, var(--adminx-bg-hover, var(--mx-bg-skeleton, #eef1f6)));
    --lsp-text: var(--ls-text, var(--adminx-text, var(--mx-text, #1f2937)));
    --lsp-text-muted: var(--ls-text-muted, var(--adminx-text-muted, var(--mx-text-muted, #9ca3af)));
    --lsp-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ===== 弹窗形态 ===== */

.ls-progress-mask {
    position: fixed;
    inset: 0;
    z-index: 10120;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(15, 23, 42, 0.42);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.22s ease, visibility 0.22s ease;
}

.ls-progress-mask.is-open {
    opacity: 1;
    visibility: visible;
}

.ls-progress-panel {
    width: 340px;
    max-width: 100%;
    padding: 30px 28px 26px;
    border-radius: 20px;
    background: var(--lsp-surface);
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.18), 0 2px 10px rgba(15, 23, 42, 0.06);
    text-align: center;
    transform: scale(0.94) translateY(10px);
    opacity: 0;
    transition: transform 0.28s var(--lsp-ease), opacity 0.22s ease;
}

.ls-progress-mask.is-open .ls-progress-panel {
    transform: none;
    opacity: 1;
}

/* ── 圆环 ── */

.ls-progress-ring {
    position: relative;
    width: 120px;
    height: 120px;
    margin: 0 auto;
}

/* **只有直接子元素那一个** —— 中央那个勾/叉也是 svg，套进来的话它会被一起
   转 -90° 拧成一个「>」，还会被撑成整个圆环那么大。 */
.ls-progress-ring > svg {
    display: block;
    width: 100%;
    height: 100%;
    /* 起点扳到十二点方向。SVG 的 0° 在三点钟，不转的话进度从右边开始长。 */
    transform: rotate(-90deg);
}

.ls-progress-ring-track {
    fill: none;
    stroke: var(--lsp-track);
    stroke-width: 9;
}

.ls-progress-ring-fill {
    fill: none;
    stroke: url(#ls-progress-gradient);
    stroke-width: 9;
    stroke-linecap: round;
    transition: stroke-dashoffset 0.45s var(--lsp-ease);
}

.ls-progress-gradient-from { stop-color: var(--lsp-accent); }
.ls-progress-gradient-to { stop-color: var(--lsp-accent-soft); }

/* 转不知道到哪儿的时候：只画四分之一圈，让它自己转。
   停在 0% 不动的一格看着和「卡死了」没有区别。 */
.ls-progress-ring.is-waiting .ls-progress-ring-fill {
    transition: none;
    transform-origin: 60px 60px;
    animation: ls-progress-spin 1.05s linear infinite;
}

@keyframes ls-progress-spin {
    to { transform: rotate(360deg); }
}

/* 圆环中央 */
.ls-progress-ring-label {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ls-progress-count {
    display: inline-flex;
    align-items: baseline;
}

.ls-progress-value {
    font-size: 30px;
    font-weight: 700;
    line-height: 1;
    color: var(--lsp-accent);
    /* 等宽数字：不这么写的话百分比每跳一次整块都在左右抖。 */
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum";
}

.ls-progress-unit {
    margin-left: 2px;
    font-size: 15px;
    font-weight: 600;
    color: var(--lsp-accent);
    opacity: 0.72;
}

.ls-progress-ring.is-waiting .ls-progress-count,
.ls-progress-ring.is-done .ls-progress-count {
    display: none;
}

/* 等待时中央那三个点 */
.ls-progress-dots {
    display: none;
    align-items: center;
    gap: 6px;
}

.ls-progress-ring.is-waiting .ls-progress-dots { display: flex; }

.ls-progress-dots i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--lsp-accent);
    opacity: 0.3;
    animation: ls-progress-dot 1.1s ease-in-out infinite;
}

.ls-progress-dots i:nth-child(2) { animation-delay: 0.16s; }
.ls-progress-dots i:nth-child(3) { animation-delay: 0.32s; }

@keyframes ls-progress-dot {
    0%, 70%, 100% { opacity: 0.25; transform: scale(0.82); }
    35% { opacity: 1; transform: scale(1); }
}

/* 收尾时中央那个勾 / 叉。用描边动画画出来，不依赖图标字体。 */
.ls-progress-mark {
    display: none;
    width: 46px;
    height: 46px;
}

.ls-progress-ring.is-done .ls-progress-mark { display: block; }

.ls-progress-mark path {
    fill: none;
    stroke-width: 5;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 60;
    stroke-dashoffset: 60;
    animation: ls-progress-draw 0.42s var(--lsp-ease) forwards;
}

@keyframes ls-progress-draw {
    to { stroke-dashoffset: 0; }
}

.ls-progress-ring.is-ok .ls-progress-ring-fill { stroke: var(--lsp-success); }
.ls-progress-ring.is-ok .ls-progress-mark path { stroke: var(--lsp-success); }
.ls-progress-ring.is-bad .ls-progress-ring-fill { stroke: var(--lsp-danger); }
.ls-progress-ring.is-bad .ls-progress-mark path { stroke: var(--lsp-danger); }

/* ── 文字 ── */

.ls-progress-title {
    margin: 20px 0 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--lsp-text);
}

.ls-progress-text {
    /* 固定一行的高度：文案在「正在统计…」和「已清空 128 / 230 条」之间来回换，
       不占位的话整个弹窗每换一次都往上下弹一下。 */
    min-height: 20px;
    margin: 8px 0 0;
    font-size: 13px;
    line-height: 20px;
    color: var(--lsp-text-muted);
}

/* ── 计数 ── */

.ls-progress-chips {
    display: none;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: 16px;
}

.ls-progress-chips.is-shown { display: flex; }

.ls-progress-chip {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    padding: 5px 11px;
    border-radius: 999px;
    background: var(--lsp-track);
    font-size: 12px;
    color: var(--lsp-text-muted);
}

.ls-progress-chip b {
    font-size: 13px;
    font-weight: 700;
    color: var(--lsp-text);
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum";
}

.ls-progress-chip.is-bad b { color: var(--lsp-danger); }

/* ── 底部按钮 ── */

.ls-progress-actions {
    display: none;
    margin-top: 20px;
}

.ls-progress-actions.is-shown { display: block; }

.ls-progress-cancel {
    min-width: 108px;
    padding: 9px 20px;
    border: 1px solid var(--lsp-track);
    border-radius: 10px;
    background: transparent;
    color: var(--lsp-text-muted);
    font-size: 13px;
    line-height: 1.4;
    cursor: pointer;
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}

.ls-progress-cancel:hover {
    border-color: var(--lsp-danger);
    background: var(--lsp-surface);
    color: var(--lsp-danger);
}

.ls-progress-cancel[disabled] {
    opacity: 0.5;
    cursor: default;
}

/* ===== 条形态 ===== */

.ls-progress-bar {
    display: block;
}

.ls-progress-bar-track {
    position: relative;
    height: 8px;
    border-radius: 999px;
    background: var(--lsp-track);
    overflow: hidden;
}

.ls-progress-bar-fill {
    position: relative;
    width: 0;
    height: 100%;
    border-radius: 999px;
    overflow: hidden;
    background: linear-gradient(90deg, var(--lsp-accent), var(--lsp-accent-soft));
    transition: width 0.45s var(--lsp-ease);
}

/* 走着的时候扫一道高光。**只有在动的时候扫** ——
   停下来还在扫的话，卡住的那一刻看着仍然像在跑。 */
.ls-progress-bar-fill::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.45), transparent);
    transform: translateX(-100%);
    animation: ls-progress-sheen 1.6s linear infinite;
}

@keyframes ls-progress-sheen {
    to { transform: translateX(100%); }
}

/* 不知道走到哪儿：一段来回跑。 */
.ls-progress-bar.is-waiting .ls-progress-bar-fill {
    width: 38% !important;
    transition: none;
    animation: ls-progress-slide 1.25s var(--lsp-ease) infinite;
}

@keyframes ls-progress-slide {
    0% { transform: translateX(-110%); }
    100% { transform: translateX(300%); }
}

.ls-progress-bar.is-ok .ls-progress-bar-fill { background: var(--lsp-success); }
.ls-progress-bar.is-bad .ls-progress-bar-fill { background: var(--lsp-danger); }

.ls-progress-bar.is-ok .ls-progress-bar-fill::after,
.ls-progress-bar.is-bad .ls-progress-bar-fill::after,
.ls-progress-bar.is-waiting .ls-progress-bar-fill::after {
    display: none;
}

.ls-progress-bar-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 8px;
    font-size: 12px;
    line-height: 18px;
    color: var(--lsp-text-muted);
}

.ls-progress-bar-label {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-progress-bar-value {
    flex: none;
    font-weight: 600;
    color: var(--lsp-accent);
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum";
}

.ls-progress-bar.is-ok .ls-progress-bar-value { color: var(--lsp-success); }
.ls-progress-bar.is-bad .ls-progress-bar-value { color: var(--lsp-danger); }

/* 嵌在深色终端里的那一条：轨道要比终端底色亮一点才看得见。 */
.ls-progress-bar.is-dark {
    --lsp-track: rgba(255, 255, 255, 0.12);
    --lsp-text-muted: rgba(226, 232, 240, 0.66);
}

/* ===== 小屏 ===== */

@media (max-width: 480px) {
    .ls-progress-panel {
        width: 100%;
        max-width: 320px;
        padding: 26px 22px 22px;
        border-radius: 18px;
    }

    .ls-progress-ring {
        width: 104px;
        height: 104px;
    }

    .ls-progress-value { font-size: 26px; }
}

/* ===== 关掉动画 ===== */

@media (prefers-reduced-motion: reduce) {
    .ls-progress-panel,
    .ls-progress-ring-fill,
    .ls-progress-bar-fill {
        transition: none;
    }

    .ls-progress-ring.is-waiting .ls-progress-ring-fill,
    .ls-progress-dots i,
    .ls-progress-mark path,
    .ls-progress-bar-fill::after,
    .ls-progress-bar.is-waiting .ls-progress-bar-fill {
        animation: none;
    }

    .ls-progress-mark path { stroke-dashoffset: 0; }
}

