/**
 * 文件名称：anniu.css
 * 文件功能：按钮和交互组件样式库，包含主题切换按钮、导航菜单、进度指示器等组件的样式
 * 创建日期：2026-03-16
 * 维护人员：前端开发团队
 * 
 * 关键功能模块：
 * 1. 主题切换按钮（白天/黑夜模式）
 * 2. 下拉按钮边框背景
 * 3. 导航菜单项样式
 * 4. 进度指示器
 * 5. 主题切换加载动画
 * 6. 应用Logo动画
 * 7. 暗黑模式适配
 * 8. 响应式设计
 * 
 * 关联文件：
 * - static/js/theme.js：主题切换逻辑
 * - static/js/script.js：与主脚本文件交互
 * - static/css/style.css：主样式文件
 * - static/css/theme.css：主题切换相关样式
 * 
 * 注意事项：
 * - 支持深色模式和浅色模式
 * - 响应式设计适配不同屏幕尺寸
 * - 使用 CSS 变量实现主题切换
 * - 包含丰富的动画效果
 */

/* 黑白模式切换按钮*/
/* From Uiverse.io by 00Kubi */
.theme-switch {
  --toggle-size: 14px;
  /* the size is adjusted using font-size,
     this is not transform scale,
     so you can choose any size */
  --container-width: 5.625em;
  --container-height: 2.5em;
  --container-radius: 6.25em;
  /* radius 0 - minecraft mode :) */
  --container-light-bg: #3d7eae;
  --container-night-bg: #1d1f2c;
  --circle-container-diameter: 3.375em;
  --sun-moon-diameter: 2.125em;
  --sun-bg: #ecca2f;
  --moon-bg: #c4c9d1;
  --spot-color: #959db1;
  --circle-container-offset: calc((var(--circle-container-diameter) - var(--container-height)) / 2 * -1);
  --stars-color: #fff;
  --clouds-color: #f3fdff;
  --back-clouds-color: #aacadf;
  --transition: 0.5s cubic-bezier(0, -0.02, 0.4, 1.25);
  --circle-transition: 0.3s cubic-bezier(0, -0.02, 0.35, 1.17);
}

.theme-switch,
.theme-switch *,
.theme-switch *::before,
.theme-switch *::after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-size: var(--toggle-size);
}

.theme-switch__container {
  width: var(--container-width);
  height: var(--container-height);
  background-color: var(--container-light-bg);
  border-radius: var(--container-radius);
  overflow: hidden;
  cursor: pointer;
  -webkit-box-shadow:
    0em -0.062em 0.062em rgba(0, 0, 0, 0.25),
    0em 0.062em 0.125em rgba(255, 255, 255, 0.94);
  box-shadow:
    0em -0.062em 0.062em rgba(0, 0, 0, 0.25),
    0em 0.062em 0.125em rgba(255, 255, 255, 0.94);
  transition: var(--transition);
  position: relative;
  background-image: linear-gradient(to bottom,
      var(--container-light-bg) 0%,
      #5490c0 100%);
  will-change: background-color, background-image;
  transform: translateZ(0);
}

.theme-switch__container::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  -webkit-box-shadow:
    0em 0.05em 0.187em rgba(0, 0, 0, 0.25) inset,
    0em 0.05em 0.187em rgba(0, 0, 0, 0.25) inset;
  box-shadow:
    0em 0.05em 0.187em rgba(0, 0, 0, 0.25) inset,
    0em 0.05em 0.187em rgba(0, 0, 0, 0.25) inset;
  border-radius: var(--container-radius);
}

.theme-switch__checkbox {
  display: none;
}

.theme-switch__circle-container {
  width: var(--circle-container-diameter);
  height: var(--circle-container-diameter);
  background-color: rgba(255, 255, 255, 0.1);
  position: absolute;
  left: var(--circle-container-offset);
  top: var(--circle-container-offset);
  border-radius: var(--container-radius);
  -webkit-box-shadow:
    inset 0 0 0 3.375em rgba(255, 255, 255, 0.1),
    inset 0 0 0 3.375em rgba(255, 255, 255, 0.1),
    0 0 0 0.625em rgba(255, 255, 255, 0.1),
    0 0 0 1.25em rgba(255, 255, 255, 0.1);
  box-shadow:
    inset 0 0 0 3.375em rgba(255, 255, 255, 0.1),
    inset 0 0 0 3.375em rgba(255, 255, 255, 0.1),
    0 0 0 0.625em rgba(255, 255, 255, 0.1),
    0 0 0 1.25em rgba(255, 255, 255, 0.1);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  transition: var(--circle-transition);
  pointer-events: none;
  will-change: left;
  transform: translateZ(0);
}

.theme-switch__sun-moon-container {
  pointer-events: auto;
  position: relative;
  z-index: 2;
  width: var(--sun-moon-diameter);
  height: var(--sun-moon-diameter);
  margin: auto;
  border-radius: var(--container-radius);
  background-color: var(--sun-bg);
  -webkit-box-shadow:
    0.062em 0.062em 0.062em 0em rgba(254, 255, 239, 0.61) inset,
    0em -0.062em 0.062em 0em #a1872a inset;
  box-shadow:
    0.062em 0.062em 0.062em 0em rgba(254, 255, 239, 0.61) inset,
    0em -0.062em 0.062em 0em #a1872a inset;
  -webkit-filter: drop-shadow(0.062em 0.125em 0.125em rgba(0, 0, 0, 0.25)) drop-shadow(0em 0.062em 0.125em rgba(0, 0, 0, 0.25));
  filter: drop-shadow(0.062em 0.125em 0.125em rgba(0, 0, 0, 0.25)) drop-shadow(0em 0.062em 0.125em rgba(0, 0, 0, 0.25));
  overflow: hidden;
  transition: var(--transition), transform 0.3s ease;
  will-change: background-color, transform;
  transform: scale(1) translateZ(0);
}

.theme-switch__sun-moon-container:hover {
  transform: scale(1.1) rotate(5deg);
}

.theme-switch__moon {
  width: 100%;
  height: 100%;
  background-color: var(--moon-bg);
  border-radius: inherit;
  -webkit-box-shadow:
    0.062em 0.062em 0.062em 0em rgba(254, 255, 239, 0.61) inset,
    0em -0.062em 0.062em 0em #969696 inset;
  box-shadow:
    0.062em 0.062em 0.062em 0em rgba(254, 255, 239, 0.61) inset,
    0em -0.062em 0.062em 0em #969696 inset;
  transition: var(--transition), transform 0.3s ease;
  position: relative;
  will-change: transform, background-color;
  transform: translateX(100%) translateZ(0);
}

.theme-switch__moon:hover {
  transform: rotate(15deg);
}

.theme-switch__spot {
  position: absolute;
  top: 0.75em;
  left: 0.312em;
  width: 0.75em;
  height: 0.75em;
  border-radius: var(--container-radius);
  background-color: var(--spot-color);
  -webkit-box-shadow: 0em 0.0312em 0.062em rgba(0, 0, 0, 0.25) inset;
  box-shadow: 0em 0.0312em 0.062em rgba(0, 0, 0, 0.25) inset;
  transition: background-color 0.3s ease;
}

.theme-switch__spot:nth-of-type(2) {
  width: 0.375em;
  height: 0.375em;
  top: 0.937em;
  left: 1.375em;
}

.theme-switch__spot:nth-last-of-type(3) {
  width: 0.25em;
  height: 0.25em;
  top: 0.312em;
  left: 0.812em;
}

.theme-switch__moon:hover .theme-switch__spot {
  background-color: #7a7f8c;
}

.theme-switch__clouds {
  width: 1.25em;
  height: 1.25em;
  background-color: var(--clouds-color);
  border-radius: var(--container-radius);
  position: absolute;
  bottom: -0.625em;
  left: 0.312em;
  -webkit-box-shadow:
    0.937em 0.312em var(--clouds-color),
    -0.312em -0.312em var(--back-clouds-color),
    1.437em 0.375em var(--clouds-color),
    0.5em -0.125em var(--back-clouds-color),
    2.187em 0 var(--clouds-color),
    1.25em -0.062em var(--back-clouds-color),
    2.937em 0.312em var(--clouds-color),
    2em -0.312em var(--back-clouds-color),
    3.625em -0.062em var(--clouds-color),
    2.625em 0em var(--back-clouds-color),
    4.5em -0.312em var(--clouds-color),
    3.375em -0.437em var(--back-clouds-color),
    4.625em -1.75em 0 0.437em var(--clouds-color),
    4em -0.625em var(--back-clouds-color),
    4.125em -2.125em 0 0.437em var(--back-clouds-color);
  box-shadow:
    0.937em 0.312em var(--clouds-color),
    -0.312em -0.312em var(--back-clouds-color),
    1.437em 0.375em var(--clouds-color),
    0.5em -0.125em var(--back-clouds-color),
    2.187em 0 var(--clouds-color),
    1.25em -0.062em var(--back-clouds-color),
    2.937em 0.312em var(--clouds-color),
    2em -0.312em var(--back-clouds-color),
    3.625em -0.062em var(--clouds-color),
    2.625em 0em var(--back-clouds-color),
    4.5em -0.312em var(--clouds-color),
    3.375em -0.437em var(--back-clouds-color),
    4.625em -1.75em 0 0.437em var(--clouds-color),
    4em -0.625em var(--back-clouds-color),
    4.125em -2.125em 0 0.437em var(--back-clouds-color);
  transition: 0.5s cubic-bezier(0, -0.02, 0.4, 1.25), transform 0.3s ease;
  will-change: bottom, transform;
  transform: translateZ(0);
}

.theme-switch__stars-container {
  position: absolute;
  color: var(--stars-color);
  top: -100%;
  left: 0.312em;
  width: 2.75em;
  height: auto;
  transition: var(--transition);
  will-change: top, transform;
  transform: translateZ(0);
}

/* actions */

.theme-switch__checkbox:checked+.theme-switch__container {
  background-color: var(--container-night-bg);
  background-image: linear-gradient(to bottom,
      var(--container-night-bg) 0%,
      #2d3142 100%);
}

.theme-switch__checkbox:checked+.theme-switch__container .theme-switch__circle-container {
  left: calc(100% - var(--circle-container-offset) - var(--circle-container-diameter));
}

.theme-switch__checkbox:checked+.theme-switch__container .theme-switch__circle-container:hover {
  left: calc(100% - var(--circle-container-offset) - var(--circle-container-diameter) - 0.187em);
}

.theme-switch__circle-container:hover {
  left: calc(var(--circle-container-offset) + 0.187em);
}

.theme-switch__checkbox:checked+.theme-switch__container .theme-switch__moon {
  -webkit-transform: translate(0);
  -ms-transform: translate(0);
  transform: translate(0);
}

.theme-switch__checkbox:checked+.theme-switch__container .theme-switch__clouds {
  bottom: -4.062em;
}

.theme-switch__checkbox:checked+.theme-switch__container .theme-switch__stars-container {
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}

.theme-switch__container:hover .theme-switch__clouds {
  transform: translateX(15px) scale(1.02);
}

.theme-switch__sun-moon-container::after {
  content: "";
  position: absolute;
  inset: -5px;
  background: radial-gradient(circle,
      rgba(255, 255, 255, 0.2) 0%,
      transparent 70%);
  border-radius: 50%;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.theme-switch__sun-moon-container:hover::after {
  opacity: 1;
}

.theme-switch__shooting-star {
  position: absolute;
  width: 2px;
  height: 2px;
  background: white;
  top: 20%;
  left: -10%;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.theme-switch__shooting-star-2 {
  position: absolute;
  width: 1px;
  height: 1px;
  background: white;
  top: 35%;
  left: -10%;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.theme-switch__meteor {
  position: absolute;
  width: 3px;
  height: 3px;
  background: #ffd700;
  border-radius: 50%;
  top: -10%;
  left: 50%;
  opacity: 0;
  filter: blur(1px);
  transition: opacity 0.3s ease;
}

.theme-switch__checkbox:checked+.theme-switch__container .theme-switch__shooting-star {
  animation: shootingStar 2s linear infinite;
  opacity: 1;
}

.theme-switch__checkbox:checked+.theme-switch__container .theme-switch__shooting-star-2 {
  animation: shootingStar 3s linear infinite 1s;
  opacity: 1;
}

.theme-switch__checkbox:checked+.theme-switch__container .theme-switch__meteor {
  animation: meteor 4s linear infinite 2s;
  opacity: 1;
}

@keyframes shootingStar {
  0% {
    transform: translateX(0) translateY(0) rotate(45deg);
    opacity: 1;
  }

  100% {
    transform: translateX(150px) translateY(150px) rotate(45deg);
    opacity: 0;
  }
}

@keyframes meteor {
  0% {
    transform: translateY(0) scale(1);
    opacity: 1;
  }

  100% {
    transform: translateY(150px) scale(0.3);
    opacity: 0;
  }
}

.theme-switch__stars-cluster {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.theme-switch__stars-cluster .star {
  position: absolute;
  width: 2px;
  height: 2px;
  background: white;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px white;
}

.theme-switch__stars-cluster .star:nth-child(1) {
  top: 20%;
  left: 20%;
  animation: twinkle 1s infinite ease-in-out;
}

.theme-switch__stars-cluster .star:nth-child(2) {
  top: 30%;
  left: 55%;
  animation: twinkle 1s infinite ease-in-out 0.3s;
}

.theme-switch__stars-cluster .star:nth-child(3) {
  top: 40%;
  left: 80%;
  animation: twinkle 1s infinite ease-in-out 0.6s;
}

.theme-switch__stars-cluster .star:nth-child(4) {
  top: 60%;
  left: 30%;
  animation: twinkle 1s infinite ease-in-out 0.9s;
}

.theme-switch__stars-cluster .star:nth-child(5) {
  top: 70%;
  left: 65%;
  animation: twinkle 1s infinite ease-in-out 1.2s;
}

.theme-switch__aurora {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 20px;
  background: linear-gradient(90deg,
      rgba(0, 255, 255, 0) 0%,
      rgba(0, 255, 255, 0.2) 25%,
      rgba(128, 0, 255, 0.2) 50%,
      rgba(0, 255, 255, 0.2) 75%,
      rgba(0, 255, 255, 0) 100%);
  opacity: 0;
  filter: blur(4px);
  transform: translateY(-100%);
  transition: opacity 0.3s ease;
}

.theme-switch__comets {
  position: absolute;
  inset: 0;
  overflow: hidden;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.theme-switch__comets .comet {
  position: absolute;
  width: 2px;
  height: 2px;
  background: linear-gradient(90deg, white 0%, transparent 90%);
  border-radius: 50%;
  filter: blur(1px);
}

.theme-switch__comets .comet:nth-child(1) {
  top: 30%;
  left: -10%;
  animation: cometMove 4s linear infinite;
}

.theme-switch__comets .comet:nth-child(2) {
  top: 50%;
  left: -10%;
  animation: cometMove 6s linear infinite 2s;
}

@keyframes twinkle {

  0%,
  100% {
    opacity: 0.3;
    transform: scale(1);
  }

  50% {
    opacity: 1;
    transform: scale(1.2);
  }
}

@keyframes cometMove {
  0% {
    transform: translateX(0) translateY(0) rotate(-45deg) scale(1);
    opacity: 0;
  }

  10% {
    opacity: 1;
  }

  90% {
    opacity: 1;
  }

  100% {
    transform: translateX(200px) translateY(200px) rotate(-45deg) scale(0.2);
    opacity: 0;
  }
}

.theme-switch__checkbox:checked+.theme-switch__container .theme-switch__stars-cluster {
  opacity: 1;
}

.theme-switch__checkbox:checked+.theme-switch__container .theme-switch__aurora {
  opacity: 1;
  animation: auroraWave 8s linear infinite;
}

.theme-switch__checkbox:checked+.theme-switch__container .theme-switch__comets {
  opacity: 1;
}

@keyframes auroraWave {
  0% {
    transform: translateY(-100%) translateX(-50%);
  }

  100% {
    transform: translateY(-100%) translateX(50%);
  }
}


/* 下拉按钮边框背景 */
/* From Uiverse.io by ali-sazzad */
.sazzad-card {
  position: relative;
  width: 320px;
  height: 380px;
  border-radius: 20px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;

  background: rgba(255, 255, 255, 0.25);
  backdrop-filter: blur(25px);
  border: 1px solid rgba(255, 255, 255, 0.4);

  box-shadow:
    25px 25px 60px rgba(0, 0, 0, 0.12),
    -20px -20px 50px rgba(255, 255, 255, 0.55);

  transition: 0.4s ease;
}

.sazzad-card:hover {
  transform: translateY(-6px);
  box-shadow:
    25px 35px 65px rgba(0, 0, 0, 0.22),
    -20px -20px 50px rgba(255, 255, 255, 0.65);
}

/* Inner Glow Panel */
.sazzad-bg {
  position: absolute;
  inset: 6px;
  background: linear-gradient(145deg,
      rgba(255, 255, 255, 0.85),
      rgba(245, 245, 245, 0.6));
  border-radius: 16px;
  backdrop-filter: blur(25px);
  border: 1px solid rgba(255, 255, 255, 0.7);
  z-index: 2;
}

/* Animated Aurora Blob */
.sazzad-aurora {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  filter: blur(28px);
  z-index: 1;

  background: radial-gradient(circle,
      rgba(255, 0, 72, 0.85),
      rgba(255, 0, 0, 0.4),
      transparent);

  animation: sazzad-aurora-move 6.5s infinite ease-in-out;
  opacity: 0.9;
}

/* Aurora Animation */
@keyframes sazzad-aurora-move {
  0% {
    transform: translate(-60%, -60%) scale(1);
  }

  30% {
    transform: translate(10%, -40%) scale(1.15);
  }

  60% {
    transform: translate(20%, 20%) scale(1.05);
  }

  80% {
    transform: translate(-40%, 10%) scale(1.2);
  }

  100% {
    transform: translate(-60%, -60%) scale(1);
  }
}

/* 导航菜单项样式 */
.nav-menu-content {
  position: relative;
  z-index: 3;
  width: 100%;
  padding: 24px;
}

.nav-menu-item {
  display: flex;
  align-items: center;
  padding: 16px 24px;
  margin-bottom: 12px;
  border-radius: 14px;
  color: #333;
  text-decoration: none;
  transition: all 0.3s ease;
  position: relative;
  z-index: 3;
}

.nav-menu-item:hover {
  background: rgba(0, 0, 0, 0.05);
  transform: translateX(6px);
}

.nav-menu-item.active {
  background: rgba(100, 100, 255, 0.2);
  font-weight: 600;
}

.nav-menu-item-icon {
  margin-right: 16px;
  font-size: 22px;
  color: #666;
}

.nav-menu-item-text {
  font-size: 18px;
  font-weight: 500;
}

/* 暗黑模式适配 */
.dark-mode .sazzad-card {
  background: rgba(30, 30, 40, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow:
    25px 25px 60px rgba(0, 0, 0, 0.3),
    -20px -20px 50px rgba(255, 255, 255, 0.05);
}

.dark-mode .sazzad-card:hover {
  box-shadow:
    25px 35px 65px rgba(0, 0, 0, 0.4),
    -20px -20px 50px rgba(255, 255, 255, 0.1);
}

.dark-mode .sazzad-bg {
  background: linear-gradient(145deg,
      rgba(30, 30, 40, 0.85),
      rgba(20, 20, 30, 0.6));
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.dark-mode .sazzad-aurora {
  background: radial-gradient(circle,
      rgba(100, 100, 255, 0.85),
      rgba(100, 100, 255, 0.4),
      transparent);
}

.dark-mode .nav-menu-item {
  color: #e0e0e0;
}

.dark-mode .nav-menu-item:hover {
  background: rgba(255, 255, 255, 0.08);
}

.dark-mode .nav-menu-item.active {
  background: rgba(100, 100, 255, 0.3);
}

.dark-mode .nav-menu-item-icon {
  color: #aaa;
}

/* 响应式设计 */
@media (max-width: 768px) {
  .sazzad-card {
    width: 280px;
    height: 340px;
  }

  .nav-menu-content {
    padding: 20px;
  }

  .nav-menu-item {
    padding: 14px 20px;
    margin-bottom: 10px;
    border-radius: 12px;
  }

  .nav-menu-item-icon {
    margin-right: 14px;
    font-size: 20px;
  }

  .nav-menu-item-text {
    font-size: 16px;
  }

  .nav-menu-item:hover {
    transform: translateX(5px);
  }
}

@media (max-width: 480px) {
  .sazzad-card {
    width: 240px;
    height: 300px;
  }

  .nav-menu-content {
    padding: 16px;
  }

  .nav-menu-item {
    padding: 12px 16px;
    margin-bottom: 8px;
    border-radius: 10px;
  }

  .nav-menu-item-icon {
    margin-right: 12px;
    font-size: 18px;
  }

  .nav-menu-item-text {
    font-size: 14px;
  }

  .nav-menu-item:hover {
    transform: translateX(4px);
  }
}

@media (max-width: 320px) {
  .sazzad-card {
    width: 200px;
    height: 260px;
  }

  .nav-menu-content {
    padding: 12px;
  }

  .nav-menu-item {
    padding: 10px 14px;
    margin-bottom: 6px;
    border-radius: 8px;
  }

  .nav-menu-item-icon {
    margin-right: 10px;
    font-size: 16px;
  }

  .nav-menu-item-text {
    font-size: 13px;
  }

  .nav-menu-item:hover {
    transform: translateX(3px);
  }
}

/* <!-- 进度指示器 --> */
/* From Uiverse.io by devsebastian44 */
.radio-group {
  display: flex;
  gap: 0;
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(20px);
  padding: 4px;
  border-radius: 25px;
  box-shadow:
    0 8px 32px rgba(0, 0, 0, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
  border: 1px solid rgba(255, 255, 255, 0.3);
  position: relative;
  animation: slide-in 0.6s ease-out;
  width: 100%;
  max-width: 600px;
  height: 40px;
  margin: 0 auto;
}

@keyframes slide-in {
  from {
    opacity: 0;
    transform: scale(0.9);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* Indicador deslizante de fondo */
.slider {
  position: absolute;
  top: 4px;
  bottom: 4px;
  left: 4px;
  width: calc(25% - 3px);
  background: #fff;
  border-radius: 25px;
  transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  box-shadow:
    0 3px 12px rgba(0, 0, 0, 0.15),
    0 1px 4px rgba(0, 0, 0, 0.1);
  z-index: 0;
}

.radio-option {
  position: relative;
  z-index: 1;
  flex: 1;
}

.radio-option input[type="radio"] {
  position: absolute;
  opacity: 0;
  cursor: pointer;
}

.radio-label {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 0 16px;
  color: #3C3C43;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  user-select: none;
  border-radius: 25px;
  position: relative;
  white-space: nowrap;
}

.radio-option input[type="radio"]:checked+.radio-label {
  color: #667eea;
  text-shadow: none;
}

.radio-label:hover {
  color: #1C1C1E;
}

/* 暗黑模式下的文字颜色 */
.dark-mode .radio-label {
  color: rgba(255, 255, 255, 0.8);
}

.dark-mode .radio-label:hover {
  color: rgba(255, 255, 255, 0.9);
}

.dark-mode .radio-option input[type="radio"]:checked+.radio-label {
  color: #8A8AFF;
}

/* Efecto de brillo al pasar el mouse */
.radio-label::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50px;
  background: rgba(255, 255, 255, 0.1);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.radio-label:hover::before {
  opacity: 1;
}

/* Animación de entrada escalonada */
.radio-option {
  animation: fade-in 0.5s ease-out backwards;
}

.radio-option:nth-child(1) {
  animation-delay: 0.1s;
}

.radio-option:nth-child(2) {
  animation-delay: 0.2s;
}

.radio-option:nth-child(3) {
  animation-delay: 0.3s;
}

.radio-option:nth-child(4) {
  animation-delay: 0.4s;
}

@keyframes fade-in {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Ajuste automático del slider */
.radio-group:has(#option1:checked) .slider {
  left: 4px;
  width: calc(25% - 3px);
}

.radio-group:has(#option2:checked) .slider {
  left: calc(25% + 1px);
  width: calc(25% - 3px);
}

.radio-group:has(#option3:checked) .slider {
  left: calc(50% + 1px);
  width: calc(25% - 3px);
}

.radio-group:has(#option4:checked) .slider {
  left: calc(75% + 1px);
  width: calc(25% - 3px);
}

/* Efecto de pulso en el slider */
@keyframes pulse {
  0% {
    box-shadow:
      0 3px 12px rgba(0, 0, 0, 0.15),
      0 1px 4px rgba(0, 0, 0, 0.1);
  }

  50% {
    box-shadow:
      0 5px 20px rgba(102, 126, 234, 0.3),
      0 2px 8px rgba(0, 0, 0, 0.15);
  }

  100% {
    box-shadow:
      0 3px 12px rgba(0, 0, 0, 0.15),
      0 1px 4px rgba(0, 0, 0, 0.1);
  }
}

/* 为滑块添加脉冲动画 */
.radio-group:has(input[type="radio"]:checked) .slider {
  animation: pulse 0.6s ease-out;
}

/* Brillo decorativo en el contenedor */
.radio-group::before {
  content: "";
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(45deg,
      transparent,
      rgba(255, 255, 255, 0.1),
      transparent);
  border-radius: 50px;
  z-index: -1;
  animation: shine 3s linear infinite;
  opacity: 0;
}

/* 暗黑模式适配 */
.dark-mode .radio-group {
  background: rgba(30, 30, 40, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow:
    0 8px 32px rgba(0, 0, 0, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.dark-mode .radio-label {
  color: rgba(255, 255, 255, 0.7);
}

.dark-mode .radio-label:hover {
  color: rgba(255, 255, 255, 0.9);
}

.dark-mode .radio-option input[type="radio"]:checked+.radio-label {
  color: #8A8AFF;
}

.dark-mode .slider {
  background: #2C2C2E;
  box-shadow:
    0 3px 12px rgba(0, 0, 0, 0.3),
    0 1px 4px rgba(0, 0, 0, 0.2);
}

.dark-mode .radio-label::before {
  background: rgba(255, 255, 255, 0.05);
}

.dark-mode .radio-group::before {
  background: linear-gradient(45deg,
      transparent,
      rgba(255, 255, 255, 0.05),
      transparent);
}

/* 响应式设计 */
@media (max-width: 768px) {
  .radio-group {
    max-width: 320px;
  }

  .radio-label {
    font-size: 12px;
    padding: 0 12px;
  }
}

@media (max-width: 480px) {
  .radio-group {
    max-width: 280px;
  }

  .radio-label {
    font-size: 11px;
    padding: 0 8px;
  }
}

@media (max-width: 320px) {
  .radio-group {
    max-width: 240px;
  }

  .radio-label {
    font-size: 10px;
    padding: 0 6px;
  }
}

@keyframes shine {
  0% {
    transform: translateX(-100%) rotate(45deg);
  }

  100% {
    transform: translateX(100%) rotate(45deg);
  }
}

/* 白天黑夜模式过渡加载动画效果 */
/* 加载动画遮罩层：覆盖整个屏幕，显示加载动画 */
.theme-loader-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.8);
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.theme-loader-overlay.active {
  opacity: 1;
  visibility: visible;
}

/* 加载器容器：包含整个加载动画的父容器 */
.loader-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 120px;
  width: auto;
  margin: 2rem;

  font-family: "Poppins", sans-serif;
  font-size: 1.6em;
  font-weight: 600;
  user-select: none;
  color: #fff;

  scale: 2;
}

/* 彩色条纹遮罩层：创建条纹遮罩效果 */
.loader {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 1;

  background-color: transparent;
  mask: repeating-linear-gradient(90deg,
      transparent 0,
      transparent 6px,
      black 7px,
      black 8px);
}

/* 彩色光晕效果：使用多个径向渐变创建多彩光晕 */
.loader::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;

  /* 五种颜色的径向渐变：黄、红、青、绿、蓝 */
  background-image: radial-gradient(circle at 50% 50%, #ff0 0%, transparent 50%),
    radial-gradient(circle at 45% 45%, #f00 0%, transparent 45%),
    radial-gradient(circle at 55% 55%, #0ff 0%, transparent 45%),
    radial-gradient(circle at 45% 55%, #0f0 0%, transparent 45%),
    radial-gradient(circle at 55% 45%, #00f 0%, transparent 45%);
  /* 圆形遮罩，只在中心区域显示光晕 */
  mask: radial-gradient(circle at 50% 50%,
      transparent 0%,
      transparent 10%,
      black 25%);
  /* 组合动画：位移和透明度变化 */
  animation:
    transform-animation 2s infinite alternate,
    opacity-animation 4s infinite;
  animation-timing-function: cubic-bezier(0.6, 0.8, 0.5, 1);
}

/* 位移动画：光晕左右移动 */
@keyframes transform-animation {
  0% {
    transform: translate(-55%);
  }

  100% {
    transform: translate(55%);
  }
}

/* 透明度动画：光晕淡入淡出 */
@keyframes opacity-animation {

  0%,
  100% {
    opacity: 0;
  }

  15% {
    opacity: 1;
  }

  65% {
    opacity: 0;
  }
}

/* 字母动画：单个字母的闪烁效果 */
.loader-letter {
  display: inline-block;
  opacity: 0;
  animation: loader-letter-anim 4s infinite linear;
  z-index: 2;
}

/* 每个字母的动画延迟，创建波浪效果 */
.loader-letter:nth-child(1) {
  animation-delay: 0.1s;
}

.loader-letter:nth-child(2) {
  animation-delay: 0.205s;
}

.loader-letter:nth-child(3) {
  animation-delay: 0.31s;
}

.loader-letter:nth-child(4) {
  animation-delay: 0.415s;
}

.loader-letter:nth-child(5) {
  animation-delay: 0.521s;
}

.loader-letter:nth-child(6) {
  animation-delay: 0.626s;
}

.loader-letter:nth-child(7) {
  animation-delay: 0.731s;
}

.loader-letter:nth-child(8) {
  animation-delay: 0.837s;
}

.loader-letter:nth-child(9) {
  animation-delay: 0.942s;
}

.loader-letter:nth-child(10) {
  animation-delay: 1.047s;
}

/* 字母动画关键帧：淡入、发光、缩放、上移 */
@keyframes loader-letter-anim {
  0% {
    opacity: 0;
  }

  5% {
    opacity: 1;
    text-shadow: 0 0 4px #fff;
    transform: scale(1.1) translateY(-2px);
  }

  20% {
    opacity: 0.2;
  }

  100% {
    opacity: 0;
  }
}

/* <!-- 应用Logo --> */
#box div {
  display: inline-block;
  margin: 1px;
  font-size: 20px;
  font-weight: bold;
  color: var(--text-main, #333);
  animation: 2s obrot linear forwards;
}

.dark-mode #box div {
  color: var(--text-main, #fff);
}

#box {
  width: auto;
  height: 40px;
  display: flex;
  justify-content: center;
  align-items: center;
}

@keyframes obrot {
  0% {
    transform: rotateX(0);
  }

  12.5% {
    transform: rotateX(90deg);
  }

  25% {
    transform: rotateX(180deg);
  }

  37.5% {
    transform: rotateX(270deg);
  }

  50% {
    transform: rotateX(360deg);
  }

  100% {
    transform: rotateX(360deg);
  }
}

#box div:nth-child(1) {
  animation-delay: 0s;
}

#box div:nth-child(2) {
  animation-delay: 0.1s;
}

#box div:nth-child(3) {
  animation-delay: 0.2s;
}

#box div:nth-child(4) {
  animation-delay: 0.3s;
}

#box div:nth-child(5) {
  animation-delay: 0.4s;
}

#box div:nth-child(6) {
  animation-delay: 0.5s;
}

#box div:nth-child(7) {
  animation-delay: 0.6s;
}

/* QQ群客服页面 */
.container {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.container .glass {
  position: relative;
  width: 180px;
  height: 200px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.05) 100%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 25px 25px rgba(0, 0, 0, 0.25);
  display: flex;
  justify-content: center;
  align-items: center;
  transition: 0.5s;
  border-radius: 10px;
  margin: 0 -45px;
  backdrop-filter: blur(10px);
  transform: rotate(calc(var(--r) * 1deg));
}

.container:hover .glass {
  transform: rotate(0deg);
  margin: 0 10px;
}

.container .glass::before {
  content: attr(data-text);
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 40px;
  background: rgba(255, 255, 255, 0.1);
  display: flex;
  justify-content: center;
  align-items: center;
  color: #666;
  font-weight: 600;
}

.container .glass svg {
  font-size: 2.5em;
  fill: #fff;
}

/* VIP勋章样式 - 高级玻璃态 */
.vip-badge {
  position: absolute;
  top: 8px;
  left: 8px;
  background: linear-gradient(135deg, rgba(255, 215, 0, 0.9) 0%, rgba(255, 140, 0, 0.85) 100%);
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  padding: 5px 10px;
  border-radius: 20px;
  box-shadow:
    0 4px 15px rgba(255, 140, 0, 0.4),
    0 0 0 1px rgba(255, 255, 255, 0.3) inset,
    0 2px 4px rgba(0, 0, 0, 0.1);
  z-index: 10;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
  letter-spacing: 0.5px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  transform: translateZ(0);
  transition: all 0.3s ease;
}

.vip-badge::before {
  content: '★';
  margin-right: 3px;
  font-size: 8px;
}

.glass:hover .vip-badge {
  transform: translateZ(0) scale(1.05);
  box-shadow:
    0 6px 20px rgba(255, 140, 0, 0.5),
    0 0 0 1px rgba(255, 255, 255, 0.4) inset;
}

/* 服务版勋章样式 - 蓝色主题 */
.service-badge {
  left: auto;
  right: 8px;
  background: linear-gradient(135deg, rgba(0, 122, 255, 0.9) 0%, rgba(88, 86, 214, 0.85) 100%);
  box-shadow:
    0 4px 15px rgba(0, 122, 255, 0.4),
    0 0 0 1px rgba(255, 255, 255, 0.3) inset,
    0 2px 4px rgba(0, 0, 0, 0.1);
}

.service-badge::before {
  content: '◆';
  font-size: 7px;
}

.glass:hover .service-badge {
  box-shadow:
    0 6px 20px rgba(0, 122, 255, 0.5),
    0 0 0 1px rgba(255, 255, 255, 0.4) inset;
}

/* 导航群勋章样式 - 绿色主题，居中 */
.nav-badge {
  left: 50%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, rgba(52, 199, 89, 0.9) 0%, rgba(48, 209, 88, 0.85) 100%);
  box-shadow:
    0 4px 15px rgba(52, 199, 89, 0.4),
    0 0 0 1px rgba(255, 255, 255, 0.3) inset,
    0 2px 4px rgba(0, 0, 0, 0.1);
}

.nav-badge::before {
  content: '◎';
  font-size: 8px;
}

.glass:hover .nav-badge {
  transform: translateX(-50%) scale(1.05);
  box-shadow:
    0 6px 20px rgba(52, 199, 89, 0.5),
    0 0 0 1px rgba(255, 255, 255, 0.4) inset;
}

/* 文档卡片 */
.book {
  position: relative;
  border-radius: 10px;
  width: 180px;
  height: 250px;
  background-color: whitesmoke;
  -webkit-box-shadow: 1px 1px 5px #000;
  box-shadow: 1px 1px 5px #000;
  -webkit-transform: preserve-3d;
  -ms-transform: preserve-3d;
  transform: preserve-3d;
  -webkit-perspective: 2000px;
  perspective: 600px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  color: #000;
  transition-duration: 0.5s;
}

.cover,
.inner {
  top: 0;
  position: absolute;
  background-color: lightgray;
  width: 100%;
  height: 100%;
  border-radius: 10px;
  cursor: pointer;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
  -webkit-transform-origin: 0;
  -ms-transform-origin: 0;
  transform-origin: 0;
  -webkit-box-shadow: 1px 1px 5px #000;
  box-shadow: 1px 1px 5px #000;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.book:hover .cover {
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
  -webkit-transform: rotatey(70deg);
  -ms-transform: rotatey(70deg);
  transform: rotatey(-70deg);
}

.book:hover .inner {
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
  transform: rotateZ(10deg) rotateX(-3deg) rotateY(-10deg) translateX(140px);
  -webkit-box-shadow: 1px 1px 20px #000a;
  box-shadow: 1px 1px 20px #000a;
}

.book:hover {
  transform: rotateZ(-10deg);
}

.text {
  font-size: 20px;
  font-weight: 400;
}

/* 授权服务保障 ISO 分格布局 */
.service-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px;
  margin: 30px 0;
}

.service-card {
  background: #fff;
  border-radius: 12px;
  padding: 24px;
  text-align: center;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
  transition: all 0.3s ease;
  border: 1px solid #f0f0f0;
}

.service-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}

.service-icon {
  margin-bottom: 16px;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 80px;
  height: 80px;
  background: #f0f7ff;
  border-radius: 50%;
  margin: 0 auto 16px;
}

.service-card h3 {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 12px;
  color: #333;
}

.service-card p {
  font-size: 14px;
  color: #666;
  line-height: 1.5;
  margin: 0;
}

.reminder-buttons {
  display: flex;
  gap: 16px;
  justify-content: center;
  margin-top: 30px;
  flex-wrap: wrap;
}

.service-button {
  padding: 12px 24px;
  border: 1px solid #4a84e8;
  background: #fff;
  color: #4a84e8;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.3s ease;
}

.service-button:hover {
  background: #4a84e8;
  color: #fff;
  transform: scale(1.05);
}

/* 响应式设计 */
@media (max-width: 768px) {
  .service-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .service-card {
    padding: 20px;
  }

  .reminder-buttons {
    flex-direction: column;
    align-items: center;
  }

  .service-button {
    width: 100%;
    max-width: 200px;
  }
}

/* 货源推荐按钮 */
.light-button button.bt {

  position: relative;

  height: 200px;

  display: flex;

  align-items: flex-end;

  outline: none;

  background: none;

  border: none;

  cursor: pointer;

}

.light-button button.bt .button-holder {

  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: center;

  height: 100px;

  width: 100px;

  background-color: #0a0a0a;

  border-radius: 5px;

  color: #0f0f0f;

  font-weight: 700;

  transition: 300ms;

  outline: #0f0f0f 2px solid;

  outline-offset: 20;

}

.light-button button.bt .button-holder svg {

  height: 50px;

  fill: #0f0f0f;

  transition: 300ms;

}

.light-button button.bt .light-holder {

  position: absolute;

  height: 200px;

  width: 100px;

  display: flex;

  flex-direction: column;

  align-items: center;

}

.light-button button.bt .light-holder .dot {

  position: absolute;

  top: 0;

  width: 10px;

  height: 10px;

  background-color: #0a0a0a;

  border-radius: 10px;

  z-index: 2;

}

.light-button button.bt .light-holder .light {

  position: absolute;

  top: 0;

  width: 200px;

  height: 200px;

  z-index: 1;

  clip-path: polygon(50% 0%, 25% 100%, 75% 100%);

  background: transparent;

}

.light-button button.bt:hover .button-holder svg {

  fill: rgba(255, 255, 255, 0.9);
  /* Soft white glow effect */

  transition: fill 0.3s ease-in-out;

}

.light-button button.bt:hover .button-holder {

  color: rgba(255, 255, 255, 1);

  border: 2px solid transparent;

  background-clip: padding-box;

  outline: none;

  outline-offset: 4px;

  box-shadow: 0px 0px 15px rgba(255, 255, 255, 0.7);
  /* Soft glow effect */

  position: relative;

}

.light-button button.bt:hover .button-holder::before {

  content: "";

  position: absolute;

  top: -4px;

  left: -4px;

  right: -4px;

  bottom: -4px;

  border-radius: 8px;

  background: radial-gradient(circle at 0 0, hsl(27deg 93% 60%), transparent),

    radial-gradient(circle at 100% 0, #00a6ff, transparent),

    radial-gradient(circle at 0 100%, #ff0056, transparent),

    radial-gradient(circle at 100% 100%, #6500ff, transparent);

  z-index: -1;

  filter: blur(6px);
  /* Soft glow effect */

}

.light-button button.bt:hover .light-holder .light {

  background: radial-gradient(ellipse at center,

      rgba(255, 255, 255, 0.9) 0%,

      /* Bright white center */
      rgba(245, 245, 245, 0.7) 40%,

      /* Soft glowing white */
      rgba(230, 230, 230, 0.4) 70%,

      /* Smooth fading */
      rgba(210, 210, 210, 0.1) 90%,

      rgba(255, 255, 255, 0) 100%
      /* Natural fade-out */

    );

  filter: blur(12px);
  /* Enhances the soft glow effect */

  opacity: 0.85;

  transition:

    background 0.4s ease-in-out,

    opacity 0.3s ease-in-out;

}

SOLO Coder

/* 密码框 */
/* 验证码输入框样式 */
.verification-input {
  width: 44px;
  height: 48px;
  text-align: center;
  font-size: 20px;
  font-weight: bold;
  color: #1a1a1a;
  background: #f5f5f5;
  border: 2px solid #e0e0e0;
  border-radius: 12px;
  transition: all 0.2s ease;
}

.verification-input:hover {
  border-color: #c0c0c0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.verification-input:focus {
  border-color: #1a1a1a;
  background: #ffffff;
  outline: none;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transform: scale(1.1);
}

/* 验证按钮样式 */
.verify-button {
  position: relative;
  width: 100%;
  padding: 14px 16px;
  background: linear-gradient(to right, #1a1a1a, #333333);
  color: #ffffff;
  font-weight: 600;
  border: none;
  border-radius: 12px;
  transition: all 0.3s ease;
  overflow: hidden;
}

.verify-button:hover {
  background: linear-gradient(to right, #2a2a2a, #444444);
  transform: scale(1.02);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}

.verify-button:active {
  transform: scale(0.98);
}

/* 重发按钮样式 */
.resend-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 500;
  color: #333333;
  background: #f5f5f5;
  border: none;
  border-radius: 8px;
  transition: all 0.2s ease;
}

.resend-button:hover {
  background: #e5e5e5;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.resend-button:active {
  transform: scale(0.95);
}

.resend-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* 动画效果 */
.animate-pulse {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes pulse {

  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0.5;
  }
}

/* 货源卡片ui */
.card {
  width: 360px;
  height: 150px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 15px;
  box-shadow:
    0 1px 4px rgba(0, 0, 0, 0.1),
    0 2px 3px rgba(0, 0, 0, 0.1);
  margin: 0 auto;
  padding: 0 10px;
  backdrop-filter: blur(10px);
  z-index: 1000;
}

.card-wrapper {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  width: 100%;
}

.card-icon {
  width: 20%;
}

.card-icon .icon-cart-box {
  background-color: #1a1a1a2f;
  width: 3em;
  height: 3em;
  border-radius: 50%;
  text-align: center;
  padding: 15px 0px;
  margin: 0 auto;
}

.card-content {
  width: 100%;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 10px 0;
}

.card-title-wrapper {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: baseline;
  width: 100%;
}

.card-title {
  width: 95%;
  font-size: 1em;
  font-weight: 600;
  color: #1b1b1b;
  padding: 20px 0 0 10px;
}

.card-action {
  width: 5%;
  text-align: right;
  padding: 0 30px;
}

.card-action svg {
  cursor: pointer;
  fill: rgba(0, 0, 0, 0.2);
  transition: 0.3s ease-in-out;
}

.card-action svg:hover {
  fill: rgba(0, 0, 0, 0.6);
}

.product-name {
  font-size: 0.8em;
  color: #2c2c2c;
  padding: 10px 0 0 10px;
}

.product-name:hover {
  cursor: pointer;
  text-decoration: underline;
}

.product-price {
  font-size: 0.9em;
  font-weight: 600;
  color: #333;
  padding: 0 0 10px 10px;
}

.button {
  position: relative;
  transition: all 0.3s ease-in-out;
  box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.15);
  padding-block: 0.375rem;
  padding-inline: 1rem;
  background-color: rgb(5, 5, 5);
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffff;
  gap: 8px;
  font-weight: bold;
  border: 2px solid #ffffff4d;
  outline: none;
  overflow: hidden;
  font-size: 13px;
  cursor: pointer;
  height: 30px;
}

.icon {
  width: 20px;
  height: 20px;
  transition: all 0.3s ease-in-out;
}

.button:hover {
  transform: scale(1.05);
  border-color: #fff9;
}

.button:hover .icon {
  transform: translate(4px);
}

.button:hover::before {
  animation: shine 1.5s ease-out infinite;
}

.button::before {
  content: "";
  position: absolute;
  width: 100px;
  height: 100%;
  background-image: linear-gradient(120deg,
      rgba(255, 255, 255, 0) 30%,
      rgba(255, 255, 255, 0.8),
      rgba(255, 255, 255, 0) 70%);
  top: 0;
  left: -100px;
  opacity: 0.6;
}

@keyframes shine {
  0% {
    left: -100px;
  }

  60% {
    left: 100%;
  }

  to {
    left: 100%;
  }
}

/* 货源卡片ui */
/* From Uiverse.io by ricson_3366 */
.card-wrapper {
  width: 360px;
  height: 150px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 15px;
  box-shadow:
    0 1px 4px rgba(0, 0, 0, 0.1),
    0 2px 3px rgba(0, 0, 0, 0.1);
  margin: 0 auto;
  padding: 0 20px;
  backdrop-filter: blur(10px);
  z-index: 999;
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  width: 100%;
  transition: all 0.3s ease;
}

.card-wrapper:hover {
  transform: translateY(-4px);
  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.15),
    0 6px 8px rgba(0, 0, 0, 0.1);
}

.card-icon {
  width: 20%;
}

.card-icon .icon-cart-box {
  background-color: #1a1a1a2f;
  width: 3em;
  height: 3em;
  border-radius: 50%;
  text-align: center;
  padding: 15px 0px;
  margin: 0 auto;
}

.card-content {
  width: 100%;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 10px 0;
}

.card-title-wrapper {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: baseline;
  width: 100%;
}

.card-title {
  width: 95%;
  font-size: 1em;
  font-weight: 600;
  color: #1b1b1b;
  padding: 20px 0 0 10px;
}

.card-action {
  width: 5%;
  text-align: right;
  padding: 0 30px;
}

.card-action svg {
  cursor: pointer;
  fill: rgba(0, 0, 0, 0.2);
  transition: 0.3s ease-in-out;
}

.card-action svg:hover {
  fill: rgba(0, 0, 0, 0.6);
}

.product-name {
  font-size: 0.8em;
  color: #2c2c2c;
  padding: 10px 0 0 10px;
}

.product-name:hover {
  cursor: pointer;
  text-decoration: underline;
}

.product-price {
  font-size: 0.9em;
  font-weight: 600;
  color: #333;
  padding: 0 0 10px 10px;
}

.button {
  position: relative;
  transition: all 0.3s ease-in-out;
  box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.15);
  padding-block: 0.375rem;
  padding-inline: 1rem;
  background-color: rgb(5, 5, 5);
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffff;
  gap: 8px;
  font-weight: bold;
  border: 2px solid #ffffff4d;
  outline: none;
  overflow: hidden;
  font-size: 13px;
  cursor: pointer;
  height: 30px;
}

.icon {
  width: 20px;
  height: 20px;
  transition: all 0.3s ease-in-out;
}

.button:hover {
  transform: scale(1.05);
  border-color: #fff9;
}

.button:hover .icon {
  transform: translate(4px);
}

.button:hover::before {
  animation: shine 1.5s ease-out infinite;
}

.button::before {
  content: "";
  position: absolute;
  width: 100px;
  height: 100%;
  background-image: linear-gradient(120deg,
      rgba(255, 255, 255, 0) 30%,
      rgba(255, 255, 255, 0.8),
      rgba(255, 255, 255, 0) 70%);
  top: 0;
  left: -100px;
  opacity: 0.6;
}

@keyframes shine {
  0% {
    left: -100px;
  }

  60% {
    left: 100%;
  }

  to {
    left: 100%;
  }
}

/* 提醒符号ui */
/* From Uiverse.io by pharmacist-sabot */
.plate-tooltip-container {
  display: flex;
  justify-content: center;
  padding: 3rem;
}

.tooltip-trigger {
  --primary: #ffb200;
  width: 3rem;
  height: 3rem;
  background: linear-gradient(to bottom, #3a3d44 0%, #212329 100%);
  border: 1px solid #444;
  box-shadow:
    inset 0 2px 2px -1px rgba(255, 255, 255, 0.2),
    inset 0 -5px 5px -2px rgba(0, 0, 0, 0.8),
    0 10px 20px -3px rgba(0, 0, 0, 0.5);
  border-radius: 0.25rem;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  cursor: help;
  transition: transform 0.1s ease-out;
}

.warning-symbol {
  width: 0;
  height: 0;
  border-left: 0.7rem solid transparent;
  border-right: 0.7rem solid transparent;
  border-bottom: 1.2rem solid var(--primary);
  position: relative;
}

.warning-symbol::after {
  content: "!";
  position: absolute;
  color: #111;
  font-size: 0.9rem;
  font-weight: bold;
  font-family: sans-serif;
  left: 50%;
  top: 0.8rem;
  transform: translate(-50%, -50%);
}

.tooltip-trigger::before {
  content: attr(data-tooltip);
  position: absolute;
  bottom: calc(100% + 0.5rem);
  left: 50%;
  transform: translateX(-50%) translateY(0.5rem);
  opacity: 0;
  pointer-events: none;
  background: var(--primary);
  color: #111;
  padding: 0.5rem 1rem;
  border-radius: 0.25rem;
  font-family: "Share Tech Mono", monospace;
  font-size: 0.9rem;
  font-weight: bold;
  white-space: nowrap;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.3);
  transition:
    transform 0.3s cubic-bezier(0.2, 1.5, 0.5, 1),
    opacity 0.3s ease;
}

.tooltip-trigger::after {
  content: "";
  position: absolute;
  bottom: 100%;
  left: 50%;
  width: 0;
  height: 0;
  border-left: 0.5rem solid transparent;
  border-right: 0.5rem solid transparent;
  border-top: 0.5rem solid var(--primary);
  transform: translateX(-50%) translateY(0.5rem);
  opacity: 0;
  pointer-events: none;
  transition:
    transform 0.3s cubic-bezier(0.2, 1.5, 0.5, 1),
    opacity 0.3s ease;
}

.tooltip-trigger:hover {
  animation: electric-shock 0.25s linear infinite;
}

.tooltip-trigger:hover .warning-symbol {
  animation: warning-pulse 1s ease-in-out infinite;
}

.tooltip-trigger:hover::before,
.tooltip-trigger:hover::after {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
}

@keyframes electric-shock {
  0% {
    transform: translate(0, 0);
    box-shadow:
      inset 0 2px 2px -1px rgba(255, 255, 255, 0.2),
      inset 0 -5px 5px -2px rgba(0, 0, 0, 0.8),
      0 10px 20px -3px rgba(0, 0, 0, 0.5);
  }

  20% {
    transform: translate(-1px, 1px);
    box-shadow:
      inset 0 2px 2px -1px rgba(255, 255, 255, 0.2),
      inset 0 -5px 5px -2px rgba(0, 0, 0, 0.8),
      0 10px 20px -3px rgba(0, 0, 0, 0.5),
      0 0 8px 1px var(--primary);
  }

  40% {
    transform: translate(-1px, -1px);
    box-shadow:
      inset 0 2px 2px -1px rgba(255, 255, 255, 0.2),
      inset 0 -5px 5px -2px rgba(0, 0, 0, 0.8),
      0 10px 20px -3px rgba(0, 0, 0, 0.5);
  }

  60% {
    transform: translate(1px, 1px);
    box-shadow:
      inset 0 2px 2px -1px rgba(255, 255, 255, 0.2),
      inset 0 -5px 5px -2px rgba(0, 0, 0, 0.8),
      0 10px 20px -3px rgba(0, 0, 0, 0.5),
      0 0 8px 1px var(--primary);
  }

  80% {
    transform: translate(1px, -1px);
    box-shadow:
      inset 0 2px 2px -1px rgba(255, 255, 255, 0.2),
      inset 0 -5px 5px -2px rgba(0, 0, 0, 0.8),
      0 10px 20px -3px rgba(0, 0, 0, 0.5);
  }

  100% {
    transform: translate(0, 0);
    box-shadow:
      inset 0 2px 2px -1px rgba(255, 255, 255, 0.2),
      inset 0 -5px 5px -2px rgba(0, 0, 0, 0.8),
      0 10px 20px -3px rgba(0, 0, 0, 0.5);
  }
}

@keyframes warning-pulse {
  0% {
    transform: scale(1);
    filter: drop-shadow(0 0 3px var(--primary));
  }

  50% {
    transform: scale(1.1);
    filter: drop-shadow(0 0 8px var(--primary));
  }

  100% {
    transform: scale(1);
    filter: drop-shadow(0 0 3px var(--primary));
  }
}

/* <!-- 分类菜单按钮 --> */
/* From Uiverse.io by Galahhad */
/* The design is inspired from the mockapi.io */

.popup {
  --burger-line-width: 1.8em;
  --burger-line-height: 0.2em;
  --burger-offset: 1em;
  --burger-bg: rgba(0, 0, 0, .15);
  --burger-color: #333;
  --burger-line-border-radius: 0.25em;
  --burger-diameter: 3em;
  --burger-btn-border-radius: calc(var(--burger-diameter) / 2);
  --burger-line-transition: .3s;
  --burger-transition: all .1s ease-in-out;
  --burger-hover-scale: 1.1;
  --burger-active-scale: .95;
  --burger-enable-outline-color: var(--burger-bg);
  --burger-enable-outline-width: 0.125em;
  --burger-enable-outline-offset: var(--burger-enable-outline-width);
  /* nav */
  --nav-padding-x: 0.75em;
  --nav-padding-y: 1.125em;
  --nav-border-radius: 0.75em;
  --nav-border-color: #ccc;
  --nav-border-width: 0.0625em;
  --nav-shadow-color: rgba(0, 0, 0, .2);
  --nav-shadow-width: 0 4px 12px;
  --nav-bg: linear-gradient(135deg, rgba(255, 255, 255, 0.8) 0%, rgba(255, 255, 255, 0.6) 100%);
  --nav-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --nav-default-scale: .8;
  --nav-active-scale: 1;
  --nav-position-left: -160px;
  --nav-position-right: unset;
  /* if you want to change sides just switch one property */
  /* from properties to "unset" and the other to 0 */
  /* title */
  --nav-title-size: 1em;
  --nav-title-color: #777;
  --nav-title-padding-x: 1.5rem;
  --nav-title-padding-y: 0.5em;
  /* nav button */
  --nav-button-padding-x: 1.5rem;
  --nav-button-padding-y: 0.625em;
  --nav-button-border-radius: 0.75em;
  --nav-button-font-size: 16px;
  --nav-button-hover-bg: #6495ed;
  --nav-button-hover-text-color: #fff;
  --nav-button-distance: 1.25em;
  /* underline */
  --underline-border-width: 0.0625em;
  --underline-border-color: rgba(0, 0, 0, 0.1);
  --underline-margin-y: 0.3125em;
}

/* popup settings 👆 */

.popup {
  display: inline-block;
  text-rendering: optimizeLegibility;
  position: relative;
}

.popup input {
  display: none;
}

.burger {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  background: var(--burger-bg);
  width: var(--burger-diameter);
  height: var(--burger-diameter);
  border-radius: var(--burger-btn-border-radius);
  border: none;
  cursor: pointer;
  overflow: hidden;
  transition: var(--burger-transition);
  outline: var(--burger-enable-outline-width) solid transparent;
  outline-offset: 0;
}

.burger span {
  height: var(--burger-line-height);
  width: var(--burger-line-width);
  background: var(--burger-color);
  border-radius: var(--burger-line-border-radius);
  position: absolute;
  transition: var(--burger-line-transition);
}

.burger span:nth-child(1) {
  top: var(--burger-offset);
}

.burger span:nth-child(2) {
  bottom: var(--burger-offset);
}

.burger span:nth-child(3) {
  top: 50%;
  transform: translateY(-50%);
}

.popup-window {
  transform: scale(var(--nav-default-scale));
  visibility: hidden;
  opacity: 0;
  position: absolute;
  padding: var(--nav-padding-y) var(--nav-padding-x);
  background: var(--nav-bg);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  font-family: var(--nav-font-family);
  color: var(--nav-text-color);
  border-radius: var(--nav-border-radius);
  box-shadow: var(--nav-shadow-width) var(--nav-shadow-color);
  border: var(--nav-border-width) solid var(--nav-border-color);
  bottom: calc(var(--burger-diameter) + var(--burger-enable-outline-width) + var(--burger-enable-outline-offset));
  left: var(--nav-position-left);
  right: var(--nav-position-right);
  transition: var(--burger-transition);
  z-index: 1000;
}

.popup-window legend {
  padding: var(--nav-title-padding-y) var(--nav-title-padding-x);
  margin: 0;
  color: var(--nav-title-color);
  font-size: var(--nav-title-size);
  text-transform: uppercase;
}

.popup-window ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
}

.popup-window ul button {
  outline: none;
  width: 100%;
  border: none;
  background: none;
  display: flex;
  align-items: center;
  color: var(--burger-color);
  font-size: var(--nav-button-font-size);
  padding: var(--nav-button-padding-y) var(--nav-button-padding-x);
  white-space: nowrap;
  border-radius: var(--nav-button-border-radius);
  cursor: pointer;
  column-gap: var(--nav-button-distance);
}

.popup-window ul li:nth-child(1) svg,
.popup-window ul li:nth-child(2) svg {
  color: cornflowerblue;
}

.popup-window ul li:nth-child(4) svg,
.popup-window ul li:nth-child(5) svg {
  color: rgb(153, 153, 153);
}

.popup-window ul li:nth-child(7) svg {
  color: red;
}

.popup-window hr {
  margin: var(--underline-margin-y) 0;
  border: none;
  border-bottom: var(--underline-border-width) solid var(--underline-border-color);
}

/* actions */

.popup-window ul button:hover,
.popup-window ul button:focus-visible,
.popup-window ul button:hover svg,
.popup-window ul button:focus-visible svg {
  color: var(--nav-button-hover-text-color);
  background: var(--nav-button-hover-bg);
}

.burger:hover {
  transform: scale(var(--burger-hover-scale));
}

.burger:active {
  transform: scale(var(--burger-active-scale));
}

.burger:focus:not(:hover) {
  outline-color: var(--burger-enable-outline-color);
  outline-offset: var(--burger-enable-outline-offset);
}

.popup input:checked+.burger span:nth-child(1) {
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}

.popup input:checked+.burger span:nth-child(2) {
  bottom: 50%;
  transform: translateY(50%) rotate(-45deg);
}

.popup input:checked+.burger span:nth-child(3) {
  transform: translateX(calc(var(--burger-diameter) * -1 - var(--burger-line-width)));
}

.popup input:checked~nav {
  transform: scale(var(--nav-active-scale));
  visibility: visible;
  opacity: 1;
}