/* Providence lightweight front-end styles */
:root {
  --primary: #0b3b5e;
  --primary-600: #0e4a78;
  --accent: #c99b2b;
  --bg: #f7f8fa;
  --surface: #fff;
  --text: #222;
  --muted: #6b7a8a;
  --success: #25d0a6;
}
* {
  box-sizing: border-box;
}

/* 全局动画 */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes pulse {
  0%,
  100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
}
@keyframes shimmer {
  0% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

/* 页面加载动画 - VIP卡不动画（问题12） */
#app > main {
  animation: none !important;
}
/* 导航栏动画已合并到主样式（第4539行） */
.vipcard {
  animation: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.grid-item {
  animation: slideUp 0.5s ease-out backwards;
}
.grid-item:nth-child(1) {
  animation-delay: 0.05s;
}
.grid-item:nth-child(2) {
  animation-delay: 0.1s;
}
.grid-item:nth-child(3) {
  animation-delay: 0.15s;
}
.grid-item:nth-child(4) {
  animation-delay: 0.2s;
}
.grid-item:nth-child(5) {
  animation-delay: 0.25s;
}
.grid-item:nth-child(6) {
  animation-delay: 0.3s;
}
.grid-item:nth-child(7) {
  animation-delay: 0.35s;
}
.grid-item:nth-child(8) {
  animation-delay: 0.4s;
}
html,
body {
  margin: 0;
  padding: 0;
  background: linear-gradient(180deg, #0e2b44, #091c2e);
  color: var(--text);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text",
    "SF Pro Display", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial",
    sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-weight: 400;
  letter-spacing: -0.01em;
  /* 修复底部导航栏固定定位 - 确保父级元素不影响 fixed */
  transform: none !important;
  perspective: none !important;
  filter: none !important;
  overflow-x: visible !important;
  backface-visibility: visible !important;
}
body.page-other {
  background: #f7f8fa !important;
}
/* 统一标题栏标准 - 标题紧跟返回按钮 */
.hero-simple {
  background: linear-gradient(180deg, #0e2b44, #091c2e);
  padding: clamp(12px, 3vw, 16px) clamp(16px, 4vw, 16px) clamp(16px, 4vw, 20px);
  position: sticky;
  top: 0;
  z-index: 10;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.hero-simple .hero-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
}
.hero-simple .back-btn {
  width: clamp(24px, 8vw, 40px);
  height: clamp(24px, 8vw, 40px);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(24px, 6vw, 28px);
  color: #e8edf3;
  text-decoration: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  transition: all 0.3s ease;
  flex-shrink: 0;
}
.hero-simple .back-btn:active {
  background: rgba(255, 255, 255, 0.2);
  transform: scale(0.95);
}
.hero-simple .brand {
  flex: 1;
  margin-left: clamp(12px, 3vw, 16px);
  font-size: clamp(18px, 4.5vw, 20px);
  font-weight: 700;
  color: #e8edf3;
  letter-spacing: 1px;
  text-align: left;
}
.hero-simple .brand .b1 {
  display: block;
}
#app {
  min-height: 100vh;
  padding-bottom: calc(
    clamp(60px, 15vw, 70px) + env(safe-area-inset-bottom, 0)
  );
  position: relative;
  /* 修复底部导航栏固定定位 - 确保父级元素不影响 fixed */
  transform: none !important;
  perspective: none !important;
  filter: none !important;
  overflow-x: visible !important;
  backface-visibility: visible !important;
}
.hero {
  background: radial-gradient(
    ellipse at 50% 0%,
    #1a314a 60%,
    #081428 100%
  ) !important;
  color: #e8edf3;
  padding: 16px 16px 40px;
  border-radius: 0;
  margin: 0;
  box-shadow: none;
  width: 100%;
  position: relative;
  overflow: hidden;
  min-height: 180px;
  height: auto;
  z-index: 1;
}
.hero::before,
.hero::after {
  display: none !important;
  content: none !important;
  background: none !important;
}
/* 数字地球 - 与VIP卡左边对齐 */
.earth-canvas {
  position: absolute !important;
  bottom: -120px !important;
  left: 16px !important;
  transform: none !important;
  width: 320px !important;
  height: 320px !important;
  z-index: 0 !important;
  pointer-events: none !important;
  opacity: 0.95 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  overflow: visible !important;
  background: transparent !important;
  mix-blend-mode: normal !important;
}
.earth-canvas img,
.earth-canvas canvas {
  background: transparent !important;
  mix-blend-mode: normal !important;
}
/* 移动端适配 */
@media (max-width: 480px) {
  .earth-canvas {
    width: 280px !important;
    height: 280px !important;
    bottom: -140px !important;
    left: 16px !important;
  }
}
.hero-top {
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
  z-index: 10;
  margin-bottom: 12px;
}
.logo {
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.logo-full {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.logo-img {
  height: 20px;
  width: auto;
  object-fit: contain;
}
.logo-img-small {
  height: 24px;
  width: auto;
  object-fit: contain;
}
.brand {
  display: flex;
  flex-direction: column;
  gap: 2px;
  position: relative;
  z-index: 10;
}
.brand-name {
  display: flex;
  font-weight: 700;
  letter-spacing: 2px;
  font-size: 20px;
  line-height: 1.2;
  color: #e8edf3;
}
.brand-name span {
  display: inline-block;
  opacity: 0;
  animation: fadeInLetter 9s ease-in-out infinite;
  animation-delay: calc(var(--i) * 0.12s);
}
.brand-subtitle-animated {
  display: flex;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 1.5px;
  line-height: 1.2;
  color: #e8edf3;
  opacity: 0.85;
}
.brand-subtitle-animated span {
  display: inline-block;
  opacity: 0;
  animation: fadeInLetter 9s ease-in-out infinite;
  animation-delay: calc(var(--i) * 0.12s);
}
@keyframes fadeInLetter {
  0% {
    opacity: 0;
    transform: translateY(4px);
  }
  6% {
    opacity: 1;
    transform: translateY(0);
  }
  72% {
    opacity: 1;
    transform: translateY(0);
  }
  78% {
    opacity: 0;
    transform: translateY(-4px);
  }
  100% {
    opacity: 0;
    transform: translateY(4px);
  }
}
.brand-subtitle {
  display: block;
  font-size: 10px;
  opacity: 0.85;
  letter-spacing: 0.5px;
  line-height: 1.2;
}
.assets {
  display: flex;
  gap: 24px;
  margin-top: 16px;
}
.assets {
  flex-direction: column;
  gap: 6px;
  margin-top: 16px;
  position: relative;
  z-index: 10;
  min-height: 100px;
}
.asset {
  min-width: 46%;
}
.asset {
  min-width: auto;
}
.asset .label {
  font-size: 12px;
  opacity: 0.9;
}
/* 荣誉卡片轮播 - 纯文字展示 */
.honor-carousel-full {
  position: relative;
  overflow: hidden;
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 0;
  border: none;
  border-radius: 12px;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
  background: transparent;
}

/* 移除地球背景层 */
.honor-carousel-full::before {
  display: none;
}

/* 移除发光节点层 */
.honor-carousel-full::after {
  display: none;
}

/* 文字内容层级提升 */
.honor-title,
.honor-subtitle,
.honor-main,
.honor-year {
  position: relative;
  z-index: 2;
}

/* 地球旋转动画 */
@keyframes earthRotate {
  0% {
    transform: rotate(0deg) scale(1);
  }
  100% {
    transform: rotate(360deg) scale(1);
  }
}

/* 地球光晕动画 */
@keyframes earthGlow {
  0%,
  100% {
    filter: brightness(1) drop-shadow(0 0 20px rgba(0, 255, 255, 0.3));
  }
  50% {
    filter: brightness(1.2) drop-shadow(0 0 30px rgba(0, 255, 255, 0.5));
  }
}

/* 首页hero区域地球旋转动画 */
@keyframes heroEarthRotate {
  0% {
    transform: rotate(0deg) scale(1);
  }
  100% {
    transform: rotate(360deg) scale(1);
  }
}

/* 首页hero区域地球光晕动画 */
@keyframes heroEarthGlow {
  0%,
  100% {
    filter: brightness(1) drop-shadow(0 0 20px rgba(0, 255, 255, 0.3));
  }
  50% {
    filter: brightness(1.2) drop-shadow(0 0 30px rgba(0, 255, 255, 0.5));
  }
}

/* 首页hero区域网格旋转动画 */
@keyframes heroGridRotate {
  0% {
    background-position: 15% 42%, 30% 45%, 46% 42%, 35% 50%, 22% 46%, center,
      center, center, center, 25% center, 25% center, 25% center, 25% center;
    transform: rotate(0deg);
  }
  100% {
    background-position: 18% 45%, 33% 48%, 49% 45%, 38% 53%, 25% 49%, center,
      center, center, center, 25% center, 25% center, 25% center, 25% center;
    transform: rotate(360deg);
  }
}
/* 经纬线网格旋转动画 - 只显示部分 */
@keyframes gridRotatePartial {
  0% {
    background-position: 25% center, 25% center, 25% center, center;
    transform: rotate(0deg);
  }
  100% {
    background-position: 25% center, 25% center, 25% center, center;
    transform: rotate(360deg);
  }
}

/* 节点闪烁脉冲动画 */
@keyframes nodesPulse {
  0%,
  100% {
    filter: brightness(1) drop-shadow(0 0 8px rgba(255, 255, 255, 0.8));
    opacity: 1;
  }
  25% {
    filter: brightness(1.3) drop-shadow(0 0 12px rgba(255, 255, 255, 1));
    opacity: 0.95;
  }
  50% {
    filter: brightness(1.5) drop-shadow(0 0 16px rgba(255, 255, 255, 1.2));
    opacity: 0.9;
  }
  75% {
    filter: brightness(1.3) drop-shadow(0 0 12px rgba(255, 255, 255, 1));
    opacity: 0.95;
  }
}
/* 节点位置移动动画（模拟地球旋转）- 只显示部分 */
@keyframes nodesMovePartial {
  0% {
    background-position: 15% 45%, 35% 40%, 30% 55%, 20% 60%, 25% 50%, center,
      center, center, center;
    transform: rotate(0deg);
  }
  100% {
    background-position: 18% 48%, 38% 43%, 33% 58%, 23% 63%, 28% 53%, center,
      center, center, center;
    transform: rotate(360deg);
  }
}
.honor-slide {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  opacity: 0;
  pointer-events: none;
  text-align: center;
  transform: translateY(-50%);
  z-index: 2;
}
.honor-slide.active {
  opacity: 1;
  pointer-events: auto;
  position: relative;
}
.honor-title,
.honor-subtitle,
.honor-main,
.honor-year {
  opacity: 0;
  transform: translateY(10px);
}
.honor-title {
  font-size: 12px;
  font-weight: 800;
  background: linear-gradient(135deg, #fff 0%, #f0f0f0 50%, #e8e8e8 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  letter-spacing: 1.5px;
  line-height: 1.4;
  margin-bottom: 4px;
  text-transform: uppercase;
  filter: drop-shadow(0 2px 4px rgba(255, 255, 255, 0.3));
}
.honor-subtitle {
  font-size: 11px;
  font-weight: 700;
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.95) 0%,
    rgba(255, 255, 255, 0.75) 100%
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  letter-spacing: 1px;
  line-height: 1.4;
  margin-bottom: 8px;
}
.honor-main {
  font-size: 24px;
  font-weight: 900;
  background: linear-gradient(
    135deg,
    #ffd700 0%,
    #ffed4e 25%,
    #f6c952 50%,
    #d4af37 75%,
    #c9a84a 100%
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  letter-spacing: 1.2px;
  line-height: 1.15;
  text-shadow: 0 3px 12px rgba(246, 201, 82, 0.5);
  filter: drop-shadow(0 3px 10px rgba(246, 201, 82, 0.45))
    drop-shadow(0 1px 3px rgba(255, 215, 0, 0.35));
  margin-bottom: 4px;
}
.honor-year {
  font-size: 13px;
  font-weight: 800;
  background: linear-gradient(135deg, #fff 0%, #f5f5f5 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  letter-spacing: 1px;
  line-height: 1.3;
  filter: drop-shadow(0 1px 2px rgba(255, 255, 255, 0.2));
}
.honor-slide.show-line1 .honor-main {
  animation: slideInUp 0.5s ease forwards;
}
.honor-slide.show-line2 .honor-title {
  animation: slideInUp 0.5s ease forwards;
}
.honor-slide.show-line3 .honor-subtitle {
  animation: slideInUp 0.5s ease forwards;
}
.honor-slide.show-line4 .honor-year {
  animation: slideInUp 0.5s ease forwards;
}
@keyframes slideInUp {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.award-badge {
  position: absolute;
  right: 0;
  top: 10px;
  width: 75px;
  height: auto;
  z-index: 2;
  pointer-events: none;
  animation: breathe 4s ease-in-out infinite;
}
.award-badge svg {
  width: 100%;
  height: auto;
  opacity: 0.35;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.12))
    drop-shadow(0 0 0 rgba(201, 155, 43, 0));
  animation: badge-glow 4s ease-in-out infinite;
}
.award-badge img {
  width: 100%;
  height: auto;
  opacity: 0.35;
  filter: brightness(1.1) contrast(0.95)
    drop-shadow(0 1px 3px rgba(0, 0, 0, 0.15));
}
@keyframes breathe {
  0%,
  100% {
    opacity: 0.3;
    transform: scale(0.98);
  }
  50% {
    opacity: 0.75;
    transform: scale(1.08);
  }
}
@keyframes badge-glow {
  0%,
  100% {
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.12))
      drop-shadow(0 0 0 rgba(192, 192, 192, 0))
      drop-shadow(0 0 0 rgba(255, 255, 255, 0));
  }
  25% {
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.12))
      drop-shadow(0 0 10px rgba(192, 192, 192, 0.7))
      drop-shadow(0 0 20px rgba(240, 240, 255, 0.5));
  }
  50% {
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.12))
      drop-shadow(0 0 16px rgba(224, 224, 224, 0.9))
      drop-shadow(0 0 32px rgba(240, 240, 255, 0.7))
      drop-shadow(0 0 48px rgba(255, 255, 255, 0.4));
  }
  75% {
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.12))
      drop-shadow(0 0 10px rgba(192, 192, 192, 0.7))
      drop-shadow(0 0 20px rgba(240, 240, 255, 0.5));
  }
}
.award-badge .badge-border {
  animation: border-flow 4s ease-in-out infinite;
}
@keyframes border-flow {
  0%,
  100% {
    stroke: #a8a8a8;
    stroke-width: 1.5;
    opacity: 0.4;
    stroke-dasharray: 0, 600;
    filter: drop-shadow(0 0 0 rgba(255, 255, 255, 0));
  }
  15% {
    stroke: #c0c0c0;
    stroke-width: 2.5;
    opacity: 0.7;
    stroke-dasharray: 150, 600;
    filter: drop-shadow(0 0 3px rgba(240, 240, 255, 0.3));
  }
  35% {
    stroke: #d8d8d8;
    stroke-width: 3;
    opacity: 0.9;
    stroke-dasharray: 300, 600;
    filter: drop-shadow(0 0 6px rgba(240, 240, 255, 0.5));
  }
  50% {
    stroke: #f0f0f0;
    stroke-width: 3.5;
    opacity: 1;
    stroke-dasharray: 600, 0;
    filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.8))
      drop-shadow(0 0 15px rgba(240, 240, 255, 0.5));
  }
  65% {
    stroke: #d8d8d8;
    stroke-width: 3;
    opacity: 0.9;
    stroke-dasharray: 300, 600;
    filter: drop-shadow(0 0 6px rgba(240, 240, 255, 0.5));
  }
  85% {
    stroke: #c0c0c0;
    stroke-width: 2.5;
    opacity: 0.7;
    stroke-dasharray: 150, 600;
    filter: drop-shadow(0 0 3px rgba(240, 240, 255, 0.3));
  }
}
.eye-toggle {
  cursor: pointer;
  opacity: 0.7;
  margin-left: 4px;
  transition: opacity 0.2s;
}
.eye-toggle:hover {
  opacity: 1;
}
.asset .value {
  font-size: 28px;
  font-weight: 800;
  letter-spacing: 0.2px;
  line-height: 1.2;
}
.assets .asset:first-child .label {
  margin-bottom: 4px;
}
.assets .asset:first-child .value {
  color: #f6d27a;
}
.assets .asset:last-child {
  margin-top: 2px;
}
.assets .asset:last-child .label {
  margin-bottom: 2px;
}
.assets .asset:last-child .value {
  color: var(--success);
  font-size: 26px;
}
.green {
  color: var(--success);
}
.content {
  padding: 0;
  position: relative;
}
/* 分段控件（市场/服务） */
.seg {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border-radius: 24px;
  padding: 6px;
  width: 260px;
  margin: 10px 0 12px;
  box-shadow: 0 6px 14px rgba(15, 25, 40, 0.08);
}
.seg-item {
  flex: 1;
  border: none;
  background: transparent;
  border-radius: 18px;
  color: #9aa3ad;
  height: 34px;
  line-height: 34px;
  font-weight: 700;
}
.seg-item.active {
  background: #fff;
  color: #222;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.06);
}
/* 黑卡横幅 */
.vipcard {
  position: relative;
  border-radius: clamp(10px, 2.5vw, 14px);
  padding: 0;
  margin: -35px 16px 0;
  color: #f5f5f5;
  overflow: hidden;
  z-index: 2;
  min-height: clamp(110px, 28vw, 140px);
  width: calc(100% - 32px);
  background: transparent url("img/31aa22bd49265f73dcf7006708311f0f.png?v=4")
    center top/100% auto no-repeat;
  background-clip: padding-box;
  box-shadow: none;
}
.vipcard::before {
  content: "";
  position: absolute;
  inset: 0;
  background: transparent;
  z-index: 1;
  pointer-events: none;
}
.vipcard[data-vip-level="1"] .vip-level-badge {
  background-image: url("img/V1_small.png?v=2");
}
.vipcard[data-vip-level="2"] .vip-level-badge {
  background-image: url("img/V2_small.png?v=2");
}
.vipcard[data-vip-level="3"] .vip-level-badge {
  background-image: url("img/V3_small.png?v=2");
}
.vipcard[data-vip-level="4"] .vip-level-badge {
  background-image: url("img/V4_small.png?v=2");
}
.vipcard[data-vip-level="5"] .vip-level-badge {
  background-image: url("img/V5_small.png?v=2");
}
.vipcard[data-vip-level="6"] .vip-level-badge {
  background-image: url("img/V6_small.png?v=2");
}
.vipcard[data-vip-level="7"] .vip-level-badge {
  background-image: url("img/V7_small.png?v=2");
}
.vipcard[data-vip-level="8"] .vip-level-badge {
  background-image: url("img/V8_small.png?v=2");
}
.vipcard .vip-gloss {
  display: none;
}
.vipcard .vip-inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  z-index: 1;
  gap: 8px;
}
.vip-level-badge {
  position: absolute;
  top: 50%;
  right: 8px;
  transform: translateY(-50%);
  width: clamp(65px, 16vw, 80px);
  height: clamp(40px, 10vw, 50px);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 2;
  pointer-events: none;
  border-radius: clamp(6px, 1.5vw, 8px);
  overflow: hidden;
}
.chip {
  display: inline-block;
  padding: 3px 8px;
  border-radius: 8px;
  font-size: 12px;
  margin-right: 6px;
}
.chip-dark {
  background: #1e1e1e;
  border: 1px solid rgba(255, 255, 255, 0.15);
}
.chip-gold {
  background: linear-gradient(90deg, #caa56b, #e6cfaa);
  color: #2a1e0b;
}
.chip-light {
  background: #f5f5f5;
  color: #333;
}
.signature {
  font-family: cursive;
  font-size: 16px;
  opacity: 0.9;
  margin-left: 8px;
}
.vip-right {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 6px;
}
.vip-bottom {
  position: absolute;
  z-index: 2;
  top: 50%;
  right: 14px;
  transform: translateY(-50%);
  background: transparent;
  color: #fff;
  border-radius: 0;
  padding: 0;
  font-weight: 600;
  font-size: 12px;
  text-align: right;
  white-space: nowrap;
}
.vip-bottom::after {
  content: "›";
  margin-left: 4px;
  opacity: 0.75;
}
/* 白底容器 - 向上压住黑卡 */
/* 九宫格左侧标签 - 覆盖在VIP卡片上，左右排列 */
/* 九宫格容器 */
.grid-container {
  position: relative;
  margin: -40px 0 0;
  z-index: 4;
}

/* 标签突出按钮 - 内八字（上宽下窄），遮盖九宫格边缘 */
.grid-tabs-top {
  position: absolute;
  left: 40px;
  top: -32px;
  display: flex;
  gap: 0;
  z-index: 3;
  background: linear-gradient(180deg, #fafafa, #fff);
  border-radius: 12px 12px 0 0;
  box-shadow: 0 -3px 10px rgba(0, 0, 0, 0.15), 0 -1px 3px rgba(0, 0, 0, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
  overflow: visible;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-bottom: none;
  padding: 0 0 6px;
}
.grid-tab {
  padding: 8px 32px 10px;
  border: none;
  background: transparent;
  font-size: 13px;
  font-weight: 500;
  color: #999;
  cursor: pointer;
  transition: all 0.3s ease;
  position: relative;
  border-right: 1px solid rgba(0, 0, 0, 0.08);
  clip-path: polygon(0% 0%, 100% 0%, 92% 100%, 8% 100%);
}

.grid-tab:last-child {
  border-right: none;
}

.grid-tab.active {
  color: #d4af37;
  font-weight: 600;
  text-shadow: 0 1px 2px rgba(212, 175, 55, 0.2);
}

.grid-tab:hover {
  color: #666;
  background: rgba(0, 0, 0, 0.02);
}

.grid-tab:active {
  transform: scale(0.98);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.08);
}
.grid-wrap {
  position: relative;
  background: #f8f9fa;
  border-radius: 24px;
  padding: 14px 16px 16px;
  box-shadow: 0 6px 18px rgba(5, 15, 30, 0.06), 0 2px 6px rgba(0, 0, 0, 0.04);
  margin: 0;
  z-index: 5;
  overflow: visible;
  width: 100%;
}
/* 功能区：四列网格 - 移动端自适应 */
.grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  column-gap: clamp(8px, 2vw, 24px);
  row-gap: clamp(12px, 3vw, 22px);
  background: transparent;
  border-radius: 14px;
  padding: clamp(6px, 1.5vw, 12px) clamp(2px, 1vw, 8px) clamp(4px, 2vw, 8px);
}
.grid.grid-left-align {
  justify-items: start;
}
.grid-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  text-decoration: none;
  color: #3a3f45;
  transition: transform 0.08s ease, opacity 0.08s ease;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.grid-item:active {
  transform: scale(0.95);
  opacity: 0.9;
}
.grid-item:active .icon {
  transform: scale(0.95);
}
.grid-item .icon {
  position: relative;
  width: clamp(44px, 11vw, 58px);
  height: clamp(44px, 11vw, 58px);
  border-radius: 50%;
  background: linear-gradient(135deg, #f8f8f3 0%, #e8e6e1 50%, #dcd9d2 100%);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s ease;
  border: 1.5px solid #d4af37;
  box-shadow: inset 0 2px 8px rgba(255, 255, 255, 0.5),
    inset 0 -2px 6px rgba(0, 0, 0, 0.15), 0 2px 8px rgba(0, 0, 0, 0.1);
}
/* 移除伪元素，只使用 <img> 控制图标显示 */
/* .grid-item .icon::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.4) 0%,
    rgba(255, 255, 255, 0) 100%
  );
  border-radius: 50% 50% 0 0;
  pointer-events: none;
  z-index: 1;
} */
/* .grid-item .icon::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0) 0%,
    rgba(0, 0, 0, 0.08) 100%
  );
  border-radius: 0 0 50% 50%;
  pointer-events: none;
  z-index: 1;
} */
.grid-item:hover .icon {
  transform: translateY(-2px) scale(1.05);
  box-shadow: inset 0 2px 8px rgba(255, 255, 255, 0.6),
    inset 0 -2px 6px rgba(0, 0, 0, 0.2), 0 4px 12px rgba(0, 0, 0, 0.15);
}
.grid-item .icon svg {
  position: relative;
  z-index: 2;
  width: 160%;
  height: 160%;
  display: block;
  filter: none;
}
.grid-item .icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  image-rendering: auto;
  transform: scale(1.7);
  transform-origin: center center;
  filter: none;
  padding: 4px;
}
.grid-item:nth-child(3) .icon img {
  width: 100%;
  height: 100%;
  padding: 6px;
  transform: scale(2.04);
  transform-origin: center center;
}
.grid-item:nth-child(3) .icon svg {
  width: 180%;
  height: 180%;
}
.grid-item .text {
  margin-top: clamp(6px, 1.5vw, 11px) !important;
  font-size: clamp(11px, 2.8vw, 14px) !important;
  line-height: 1.3 !important;
  font-weight: 600 !important;
  color: #1a2332 !important;
  text-shadow: 0 1px 2px rgba(255, 255, 255, 0.9) !important;
  opacity: 1 !important;
  visibility: visible !important;
  z-index: 9999 !important;
  position: relative !important;
  display: block !important;
  height: auto !important;
  min-height: 16px !important;
  overflow: visible !important;
  white-space: nowrap !important;
  background: transparent !important;
}
.grid-item .text * {
  color: #1a2332 !important;
  display: inline !important;
}
.grid:first-child .grid-item:nth-child(1) .text,
.grid:first-child .grid-item:nth-child(4) .text {
  color: #1a2332 !important;
  z-index: 99999 !important;
}
/* 新增模块通用样式 */
.section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px 12px;
  margin-top: 16px;
}
.section-header-inline {
  padding: 12px 0 8px;
  text-align: left;
}
.section-title {
  font-size: 17px;
  font-weight: 700;
  color: #1a2332;
  margin: 0;
  letter-spacing: 0.3px;
}
.section-title-small {
  font-size: 15px;
  font-weight: 700;
  color: #1a2332;
  margin: 0;
}
.section-more {
  font-size: 13px;
  color: #6c757d;
  text-decoration: none;
  transition: color 0.2s;
}
.section-more:hover {
  color: #2563eb;
}
/* 市场概览 */
.market-overview {
  background: #fff;
  margin: 0 0 12px;
  padding: 12px 16px 16px;
  border-radius: 0;
}
.market-indices {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

.market-flipper-container {
  position: relative;
  width: 100%;
  min-height: 200px;
}
.market-flipper {
  position: relative;
  width: 100%;
}
.market-card {
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}
.market-card.active {
  opacity: 1;
  position: relative;
  z-index: 2;
}
.market-card.leaving {
  opacity: 0;
  z-index: 1;
}
.market-card.entering {
  animation: fadeIn 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}
@keyframes fadeIn {
  to {
    opacity: 1;
  }
}
.market-index-item {
  background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
  border-radius: 12px;
  padding: 14px 12px;
  border: 1px solid rgba(0, 0, 0, 0.04);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
  transition: transform 0.2s, box-shadow 0.2s;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 90px;
}
.market-index-item:active {
  transform: scale(0.98);
}
.market-index-item.product-item {
  cursor: pointer;
  background: linear-gradient(135deg, #fff 0%, #f8f9fa 100%);
  border: 1px solid rgba(212, 175, 55, 0.15);
}
.market-index-item.product-item:hover {
  box-shadow: 0 4px 12px rgba(212, 175, 55, 0.2);
}
.index-name {
  font-size: 12px;
  color: #6c757d;
  margin-bottom: 6px;
  font-weight: 500;
}
.product-item .index-name {
  color: #1a2332;
  font-weight: 600;
}
.index-value {
  font-size: 18px;
  font-weight: 700;
  color: #1a2332;
  margin-bottom: 4px;
  font-variant-numeric: tabular-nums;
}
.product-rate {
  font-size: 22px;
  color: #d4af37;
  font-weight: 800;
}
.index-change {
  font-size: 12px;
  display: flex;
  gap: 6px;
  font-weight: 600;
}
.index-change.up {
  color: #22c55e;
}
.index-change.down {
  color: #ef4444;
}
.index-change.flat {
  color: #6c757d;
}
.change-value::before {
  content: "";
}
.index-change.up .change-value::before {
  content: "▲ ";
}
.index-change.down .change-value::before {
  content: "▼ ";
}
.product-item .index-change {
  color: #666;
}
.product-item .index-change.up::before {
  content: "";
}
/* 公司动态 */
.company-news {
  background: #fff;
  margin: 16px 16px 12px;
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
}
.section-title {
  font-size: 16px;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0;
}
.section-more {
  font-size: 13px;
  color: #999;
  text-decoration: none;
}
.news-card {
  display: flex;
  gap: 12px;
  cursor: pointer;
  transition: transform 0.2s;
}
.news-card:active {
  transform: scale(0.98);
}
.news-image {
  flex-shrink: 0;
  width: 110px;
  height: 80px;
  border-radius: 8px;
  overflow: hidden;
  background: #f5f5f5;
}
.news-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.news-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.news-title {
  font-size: 14px;
  font-weight: 600;
  color: #1a1a1a;
  margin: 0 0 6px;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-desc {
  font-size: 12px;
  color: #666;
  margin: 0;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
}
.news-time {
  font-size: 11px;
  color: #999;
}
.news-tag {
  font-size: 11px;
  color: #ff4d4f;
  background: #fff1f0;
  padding: 2px 8px;
  border-radius: 4px;
}

/* 财经快讯 */
.news-flash {
  background: transparent;
  margin: -20px 0 -20px;
  padding: 12px 0;
  position: relative;
  overflow: visible;
  z-index: 50;
}
.news-flash::before {
  display: none;
}
.news-marquee {
  overflow: hidden;
  position: relative;
  padding: 0;
  height: 50px;
}
.news-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.news-list:hover {
  animation-play-state: paused;
}
.news-item {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0;
  padding: 12px 16px;
  background: linear-gradient(135deg, #1e3a5f 0%, #0f2337 100%);
  border-radius: 10px;
  border-left: 3px solid #caa56b;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
  opacity: 0;
  animation: fadeInUp 3s ease-out forwards;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  min-height: 50px;
}
.news-item .news-time {
  font-size: 11px;
  color: #caa56b;
  font-weight: 700;
  min-width: 42px;
  font-variant-numeric: tabular-nums;
}
.news-item .news-status {
  font-size: 10px;
  color: rgba(202, 165, 107, 0.8);
  margin-left: 8px;
  font-style: italic;
}
.news-item:nth-child(1) {
  animation-delay: 0s;
}
.news-item:nth-child(2) {
  animation-delay: 3s;
}
.news-item:nth-child(3) {
  animation-delay: 6s;
}
.news-item:nth-child(4) {
  animation-delay: 9s;
}
.news-item:nth-child(5) {
  animation-delay: 12s;
}
@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  5% {
    opacity: 1;
    transform: translateY(0);
  }
  95% {
    opacity: 1;
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    transform: translateY(-10px);
  }
}
.news-time {
  font-size: 11px;
  color: #94a3b8;
  font-weight: 600;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.news-content {
  font-size: 13px;
  color: #e8edf3;
  line-height: 1.5;
  flex: 1;
}
/* 专家团队 */
.expert-team {
  background: #fff;
  margin: 0 0 12px;
  padding: 12px 0 16px;
}
.expert-scroll {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  padding: 0 16px;
  scrollbar-width: none;
}
.expert-scroll::-webkit-scrollbar {
  display: none;
}
.expert-list {
  display: flex;
  gap: 12px;
  padding-bottom: 4px;
}
.expert-card {
  min-width: 140px;
  background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
  border-radius: 12px;
  padding: 14px;
  text-align: center;
  border: 1px solid rgba(0, 0, 0, 0.04);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
  transition: transform 0.2s, box-shadow 0.2s;
}
.expert-card:active {
  transform: translateY(2px);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}
.expert-avatar {
  font-size: 48px;
  margin-bottom: 8px;
}
.expert-info {
  text-align: center;
}
.expert-name {
  font-size: 14px;
  font-weight: 700;
  color: #1a2332;
  margin-bottom: 4px;
}
.expert-title {
  font-size: 12px;
  color: #6c757d;
  margin-bottom: 3px;
  line-height: 1.3;
}
.expert-exp {
  font-size: 11px;
  color: #94a3b8;
  font-weight: 500;
}
/* 公司动态 */
.company-news {
  background: #fff;
  margin: 0 0 12px;
  padding: 12px 0 20px;
  width: 100%;
}
.news-cards {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 0 16px;
}
.news-card {
  display: block;
  background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
  border-radius: 12px;
  padding: 14px;
  text-decoration: none;
  border: 1px solid rgba(0, 0, 0, 0.04);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
  transition: transform 0.2s, box-shadow 0.2s;
}
.news-card:active {
  transform: scale(0.98);
}
.news-card.featured-news {
  display: block;
  padding: 0;
  background: #fff;
  border: 1px solid rgba(212, 175, 55, 0.2);
  overflow: hidden;
}
.news-card-image-full {
  width: 100%;
  max-height: 105px;
  overflow: hidden;
  background: #f5f5f5;
  display: flex;
  align-items: center;
  justify-content: center;
}
.news-card-image-full img {
  width: auto;
  max-width: 100%;
  max-height: 105px;
  object-fit: contain;
  display: block;
}
.news-card.featured-news .news-card-header {
  margin: 12px 14px 8px;
  padding: 0;
}
.news-card.featured-news .news-card-title {
  margin: 0 14px 8px;
  padding: 0;
}
.news-card.featured-news .news-card-desc {
  margin: 0 14px 14px;
  padding: 0;
}
.news-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.news-card-badge {
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 12px;
  background: #e8edf3;
  color: #1a2332;
}
.news-card-badge.highlight {
  background: linear-gradient(135deg, #ff4d4f, #ff7875);
  color: #fff;
}
.news-card-badge.success {
  background: #d1fae5;
  color: #065f46;
}
.news-card-badge.info {
  background: #dbeafe;
  color: #1e40af;
}
.news-card-date {
  font-size: 11px;
  color: #94a3b8;
  font-variant-numeric: tabular-nums;
}
.news-card-title {
  font-size: 14px;
  font-weight: 700;
  color: #1a2332;
  margin-bottom: 6px;
  line-height: 1.4;
}
.news-card-desc {
  font-size: 12px;
  color: #6c757d;
  line-height: 1.5;
}
/* 财经快讯页面 */
.news-filter-tabs {
  display: flex;
  gap: 8px;
  padding: 12px 16px;
  background: #fff;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  overflow-x: auto;
  scrollbar-width: none;
}
.news-filter-tabs::-webkit-scrollbar {
  display: none;
}
.news-filter-btn {
  padding: 6px 16px;
  border-radius: 20px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #6c757d;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
}
.news-filter-btn:hover {
  border-color: #d4af37;
  color: #d4af37;
}
.news-filter-btn.active {
  background: linear-gradient(135deg, #d4af37, #c9a732);
  color: #fff;
  border-color: #d4af37;
}
.live-indicator {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  background: linear-gradient(135deg, #1e3a5f, #0f2337);
  color: #fff;
  font-size: 12px;
}
.live-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #22c55e;
  box-shadow: 0 0 8px rgba(34, 197, 94, 0.6);
  animation: pulse 2s ease-in-out infinite;
}
.live-text {
  font-weight: 600;
}
.update-time {
  margin-left: auto;
  opacity: 0.7;
  font-size: 11px;
}
.news-flash-list {
  background: #f8f9fa;
  padding: 12px 16px;
  min-height: auto;
}
.flash-item {
  background: #fff;
  border-radius: 12px;
  padding: 14px;
  margin-bottom: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  display: flex;
  gap: 12px;
  transition: transform 0.2s, box-shadow 0.2s;
  cursor: pointer;
  position: relative;
}
.flash-item:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
  transform: translateY(-2px);
}
.flash-item:active {
  transform: scale(0.98);
}
.flash-time {
  font-size: 12px;
  font-weight: 700;
  color: #d4af37;
  min-width: 42px;
  padding-top: 2px;
  font-variant-numeric: tabular-nums;
}
.flash-content {
  flex: 1;
  position: relative;
}
.importance-badge {
  position: absolute;
  top: -2px;
  right: 0;
  font-size: 10px;
  padding: 2px 8px;
  border-radius: 10px;
  font-weight: 600;
}
.importance-badge.high {
  background: linear-gradient(135deg, #ff4757, #ff6b7a);
  color: #fff;
  box-shadow: 0 2px 8px rgba(255, 71, 87, 0.3);
}
.importance-badge.medium {
  background: linear-gradient(135deg, #ffa502, #ff6348);
  color: #fff;
  box-shadow: 0 2px 8px rgba(255, 165, 2, 0.3);
}
.flash-title {
  font-size: 14px;
  font-weight: 700;
  color: #1a2332;
  margin-bottom: 6px;
  line-height: 1.4;
  padding-right: 50px;
}
.flash-desc {
  font-size: 12px;
  color: #6c757d;
  line-height: 1.5;
  margin-bottom: 8px;
}
.flash-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
  font-size: 11px;
  color: #95a5a6;
}
.flash-source {
  display: flex;
  align-items: center;
  gap: 4px;
}
.flash-views {
  display: flex;
  align-items: center;
  gap: 4px;
}
.flash-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.tag {
  font-size: 10px;
  padding: 2px 8px;
  border-radius: 10px;
  background: #e8edf3;
  color: #6c757d;
  font-weight: 600;
}
.tag.important {
  background: #fee;
  color: #ef4444;
}
.load-more-wrap {
  text-align: center;
  padding: 16px;
  background: #f8f9fa;
}
.load-more-btn {
  padding: 10px 32px;
  border-radius: 20px;
  border: 1px solid #d4af37;
  background: #fff;
  color: #d4af37;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}
.load-more-btn:hover:not(:disabled) {
  background: #d4af37;
  color: #fff;
}
.load-more-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.no-data {
  text-align: center;
  padding: 60px 20px;
  color: #95a5a6;
  font-size: 14px;
}
.live-indicator {
  cursor: pointer;
  user-select: none;
}
/* 财经日历页面 */
.calendar-filters {
  background: #fff;
  padding: 12px 16px;
  margin-bottom: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(0, 0, 0, 0.04);
  border-radius: 12px;
}
.filter-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
  overflow-x: auto;
  scrollbar-width: none;
}
.filter-tabs::-webkit-scrollbar {
  display: none;
}
.filter-tab {
  padding: 8px 20px;
  border-radius: 20px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #6c757d;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
}
.filter-tab.active {
  background: linear-gradient(135deg, #d4af37, #c9a732);
  color: #fff;
  border-color: #d4af37;
  box-shadow: 0 2px 8px rgba(212, 175, 55, 0.3);
}
.filter-row {
  display: flex;
  gap: 12px;
}
.filter-group {
  flex: 1;
}
.filter-label {
  display: block;
  font-size: 12px;
  color: #6c757d;
  margin-bottom: 4px;
  font-weight: 600;
}
.filter-select {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 13px;
  background: #fff;
  color: #1a2332;
  font-weight: 500;
}
.date-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background: #fff;
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(0, 0, 0, 0.04);
  border-radius: 12px;
}
.date-nav-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid #d4af37;
  background: #fff;
  color: #d4af37;
  font-size: 18px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
}
.date-nav-btn:hover {
  background: #d4af37;
  color: #fff;
}
.date-display {
  font-size: 16px;
  font-weight: 700;
  color: #1a2332;
  min-width: 180px;
  text-align: center;
}
.date-today-btn {
  padding: 8px 16px;
  border-radius: 20px;
  border: 1px solid #d4af37;
  background: #fff;
  color: #d4af37;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}
.date-today-btn:hover {
  background: #d4af37;
  color: #fff;
}
.calendar-events {
  background: transparent;
  padding: 12px 16px;
  min-height: 400px;
}
.loading-indicator {
  text-align: center;
  padding: 60px 20px;
  color: #95a5a6;
}
.loading-spinner {
  width: 40px;
  height: 40px;
  border: 4px solid rgba(0, 0, 0, 0.1);
  border-top-color: #d4af37;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin: 0 auto 16px;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.events-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.event-item {
  background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
  border-radius: 12px;
  padding: 14px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(0, 0, 0, 0.04);
  transition: transform 0.2s, box-shadow 0.2s;
  position: relative;
}
.event-item:active {
  transform: scale(0.98);
}
.event-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.event-time {
  font-size: 13px;
  font-weight: 700;
  color: #d4af37;
  min-width: 48px;
  font-variant-numeric: tabular-nums;
}
.event-country {
  font-size: 13px;
  color: #6c757d;
  font-weight: 600;
}
.event-importance {
  font-size: 12px;
  margin-left: auto;
  font-weight: 700;
}
.event-importance.importance-high {
  color: #ef4444;
}
.event-importance.importance-medium {
  color: #f59e0b;
}
.event-importance.importance-low {
  color: #6c757d;
}
.event-body {
  padding-top: 8px;
  border-top: 1px solid rgba(212, 175, 55, 0.2);
}
.event-name {
  font-size: 14px;
  font-weight: 700;
  color: #1a2332;
  margin-bottom: 10px;
  line-height: 1.4;
}
.event-data {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}
.data-item {
  flex: 1;
  min-width: 80px;
  text-align: center;
  padding: 8px;
  background: #f8f9fa;
  border-radius: 8px;
  border: 1px solid rgba(0, 0, 0, 0.04);
}
.data-label {
  display: block;
  font-size: 11px;
  color: #6c757d;
  margin-bottom: 4px;
}
.data-value {
  display: block;
  font-size: 14px;
  font-weight: 700;
  color: #1a2332;
}
.data-value.actual {
  color: #22c55e;
}
.holiday-item {
  background: linear-gradient(135deg, #fef3c7, #fde68a);
  border-left: 4px solid #f59e0b;
}
.holiday-item .event-name {
  color: #92400e;
}
.event-item-special {
  background: linear-gradient(135deg, #dbeafe, #bfdbfe);
  border-left: 4px solid #3b82f6;
}
.event-item-special .event-name {
  color: #1e40af;
}
.no-events {
  text-align: center;
  padding: 80px 20px;
  color: #95a5a6;
}
.no-events-icon {
  font-size: 64px;
  margin-bottom: 16px;
  opacity: 0.6;
}
.no-events-text {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 8px;
}
.no-events-hint {
  font-size: 13px;
  opacity: 0.8;
}
.calendar-info {
  background: #f8f9fa;
  padding: 12px 16px;
}
.info-card {
  background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(0, 0, 0, 0.04);
}
.info-title {
  font-size: 14px;
  font-weight: 700;
  color: #1a2332;
  margin-bottom: 8px;
}
.info-card p {
  font-size: 13px;
  color: #6c757d;
  line-height: 1.6;
  margin: 0;
}
.info-card ul {
  color: #6c757d;
}
.info-card li {
  color: #6c757d;
}
.importance-legend {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: #6c757d;
}
.importance-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  display: inline-block;
}
.importance-dot.high {
  background: #ef4444;
}
.importance-dot.medium {
  background: #f59e0b;
}
.importance-dot.low {
  background: #94a3b8;
}
.event-source {
  font-size: 11px;
  color: #95a5a6;
  margin-top: 8px;
  font-style: italic;
}
.update-info {
  background: #fff;
  border-radius: 12px;
  padding: 14px;
  margin-top: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}
.update-text {
  font-size: 12px;
  color: #6c757d;
}
.refresh-btn {
  padding: 6px 16px;
  border-radius: 16px;
  border: 1px solid #d4af37;
  background: #fff;
  color: #d4af37;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}
.refresh-btn:hover {
  background: #d4af37;
  color: #fff;
}

/* 投资课堂页面 */
.edu-welcome {
  background: linear-gradient(135deg, #1e3a5f, #0f2337);
  padding: 24px 16px;
  margin-bottom: 12px;
}
.edu-welcome-content {
  text-align: center;
}
.edu-welcome-title {
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  margin: 0 0 8px;
}
.edu-welcome-desc {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.8);
  margin: 0;
}
.edu-categories {
  background: #fff;
  padding: 12px 16px;
  margin-bottom: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(0, 0, 0, 0.04);
  border-radius: 12px;
}
.cat-tabs {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none;
}
.cat-tabs::-webkit-scrollbar {
  display: none;
}
.cat-tab {
  padding: 8px 20px;
  border-radius: 20px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #6c757d;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
}
.cat-tab.active {
  background: linear-gradient(135deg, #d4af37, #c9a732);
  color: #fff;
  border-color: #d4af37;
  box-shadow: 0 2px 8px rgba(212, 175, 55, 0.3);
}
.edu-courses {
  background: transparent;
  padding: 12px 16px;
  min-height: 400px;
}
.courses-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
.course-card {
  background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(0, 0, 0, 0.04);
  transition: transform 0.2s, box-shadow 0.2s;
  cursor: pointer;
  position: relative;
}
.course-card.locked {
  opacity: 0.6;
  cursor: not-allowed;
  background: linear-gradient(135deg, #e8e8e8 0%, #f5f5f5 100%);
}
.course-card.locked:hover {
  transform: none !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04) !important;
}
.course-card.completed {
  border: 2px solid #22c55e;
  background: linear-gradient(135deg, #f0fdf4 0%, #fff 100%);
}
.course-lock-icon {
  position: absolute;
  top: 12px;
  right: 12px;
  font-size: 20px;
  opacity: 0.5;
}
.course-completed-badge {
  position: absolute;
  top: 8px;
  right: 8px;
  background: linear-gradient(135deg, #22c55e, #16a34a);
  color: #fff;
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 4px;
}
.complete-course-btn {
  width: 100%;
  margin-top: 20px;
  padding: 12px 20px;
  background: linear-gradient(135deg, #22c55e, #16a34a);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 3px 10px rgba(34, 197, 94, 0.3);
}
.complete-course-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 5px 15px rgba(34, 197, 94, 0.5);
}
.complete-course-btn:active {
  transform: translateY(0);
}
.complete-course-btn.completed {
  background: linear-gradient(135deg, #94a3b8, #64748b);
  cursor: default;
  pointer-events: none;
}
.progress-indicator {
  font-size: 12px;
  color: #22c55e;
  margin-top: 8px;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 6px;
}
.course-card:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
  transform: translateY(-2px);
}
.course-card:active {
  transform: scale(0.98);
}
.course-featured-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: linear-gradient(135deg, #ff6b6b, #ff8e53);
  color: #fff;
  font-size: 11px;
  padding: 4px 10px;
  border-radius: 12px;
  font-weight: 600;
  z-index: 10;
  box-shadow: 0 2px 8px rgba(255, 107, 107, 0.3);
}
.course-icon {
  font-size: 32px;
  margin-bottom: 12px;
}
.course-content {
  position: relative;
}
.course-level-badge {
  position: absolute;
  top: -4px;
  right: 0;
  font-size: 10px;
  padding: 3px 10px;
  border-radius: 10px;
  font-weight: 600;
  color: #fff;
}
.course-level-badge.basic {
  background: linear-gradient(135deg, #10b981, #059669);
}
.course-level-badge.intermediate {
  background: linear-gradient(135deg, #f59e0b, #d97706);
}
.course-level-badge.advanced {
  background: linear-gradient(135deg, #ef4444, #dc2626);
}
.course-title {
  font-size: 16px;
  font-weight: 700;
  color: #1a2332;
  margin-bottom: 6px;
  line-height: 1.4;
}
.course-desc {
  font-size: 13px;
  color: #6c757d;
  line-height: 1.5;
  margin-bottom: 10px;
}
.course-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  color: #95a5a6;
  margin-bottom: 12px;
}
.course-duration,
.course-lessons {
  display: flex;
  align-items: center;
  gap: 4px;
}
.course-btn {
  width: 100%;
  padding: 10px;
  border-radius: 8px;
  border: none;
  background: linear-gradient(135deg, #d4af37, #f4e5a8);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 2px 8px rgba(212, 175, 55, 0.2);
}
.course-btn:hover {
  box-shadow: 0 4px 12px rgba(212, 175, 55, 0.4);
  transform: translateY(-1px);
}
.course-btn:active {
  transform: scale(0.98);
}
.no-courses {
  text-align: center;
  padding: 60px 20px;
  color: #95a5a6;
  font-size: 14px;
}
.learning-path {
  background: #fff;
  padding: 20px 16px;
  margin-top: 0;
  border-radius: 12px;
  margin-bottom: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(0, 0, 0, 0.04);
}
.path-header {
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 12px;
  position: relative;
}
.path-title {
  font-size: 18px;
  font-weight: 700;
  color: #1a2332;
  margin: 0;
  flex: 1;
}
.back-btn-inline {
  font-size: 24px;
  color: #1a2332;
  text-decoration: none;
  line-height: 1;
  padding: 4px;
  transition: transform 0.2s ease;
}
.back-btn-inline:hover {
  transform: translateX(-3px);
}
.path-intro {
  font-size: 14px;
  color: #6c757d;
  line-height: 1.6;
  text-align: center;
  padding: 12px 20px;
  background: linear-gradient(135deg, #fff8e1, #fff3cd);
  border-radius: 8px;
  border-left: 3px solid #d4af37;
}
.path-steps {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}
.path-step {
  flex: 1;
  min-width: 90px;
  background: #f8f9fa;
  border-radius: 12px;
  padding: 12px;
  text-align: center;
}
.step-number {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: linear-gradient(135deg, #d4af37, #f4e5a8);
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 8px;
}
.step-content {
  text-align: center;
}
.step-title {
  font-size: 12px;
  font-weight: 700;
  color: #1a2332;
  margin-bottom: 4px;
}
.step-desc {
  font-size: 10px;
  color: #6c757d;
  line-height: 1.3;
}
.path-arrow {
  font-size: 20px;
  color: #d4af37;
  flex-shrink: 0;
}

/* 快讯详情页 */
.news-detail-container {
  background: #f8f9fa;
  min-height: calc(100vh - 200px);
  padding-bottom: 20px;
}
.news-detail-header {
  background: #fff;
  padding: 20px 16px;
  margin-bottom: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}
.detail-title {
  font-size: 20px;
  font-weight: 700;
  color: #1a2332;
  line-height: 1.5;
  margin: 0 0 12px;
}
.detail-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  color: #6c757d;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.detail-time {
  font-weight: 700;
  color: #d4af37;
}
.detail-date,
.detail-source {
  color: #94a3b8;
}
.detail-date::before {
  content: "|";
  margin-right: 12px;
  color: #e5e7eb;
}
.detail-source::before {
  content: "|";
  margin-right: 12px;
  color: #e5e7eb;
}
.detail-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.news-detail-content {
  background: #fff;
  padding: 20px 16px;
  margin-bottom: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}
.detail-excerpt {
  font-size: 15px;
  color: #495057;
  line-height: 1.8;
  padding: 12px;
  background: #f8f9fa;
  border-left: 3px solid #d4af37;
  margin-bottom: 16px;
}
.detail-body {
  font-size: 15px;
  color: #333;
  line-height: 1.8;
}
.detail-actions {
  display: flex;
  gap: 12px;
  padding: 0 16px;
  margin-bottom: 16px;
}
.action-btn {
  flex: 1;
  padding: 12px;
  border-radius: 8px;
  border: 1px solid #d4af37;
  background: #fff;
  color: #d4af37;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}
.action-btn:active {
  transform: scale(0.95);
}
.action-btn:hover {
  background: #d4af37;
  color: #fff;
}
.related-news {
  background: #fff;
  padding: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}
.related-header h3 {
  font-size: 16px;
  font-weight: 700;
  color: #1a2332;
  margin: 0 0 12px;
}
.related-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.related-item {
  padding: 12px;
  background: #f8f9fa;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
}
.related-item:active {
  transform: scale(0.98);
}
.related-item-title {
  font-size: 14px;
  color: #333;
  font-weight: 600;
  margin-bottom: 4px;
}
.related-item-time {
  font-size: 11px;
  color: #94a3b8;
}
/* 首页顾问横幅 */
.advisor-banner {
  background: linear-gradient(135deg, #667eea, #764ba2);
  border-radius: 16px;
  padding: 18px;
  margin: 12px 16px;
  box-shadow: 0 6px 16px rgba(102, 126, 234, 0.25);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  position: relative;
  overflow: hidden;
}
.advisor-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    120% 180% at -10% -20%,
    rgba(255, 255, 255, 0.15),
    transparent 65%
  );
  pointer-events: none;
}
.advisor-content {
  display: flex;
  align-items: center;
  gap: 12px;
  position: relative;
  z-index: 1;
}
.advisor-avatar-circle {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}
.advisor-details {
  color: #fff;
}
.advisor-name {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 2px;
}
.advisor-title {
  font-size: 12px;
  opacity: 0.9;
  margin-bottom: 4px;
}
.advisor-status {
  font-size: 11px;
  display: flex;
  align-items: center;
  gap: 4px;
}
.status-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #22c55e;
  box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.3);
}
.btn-consult {
  background: #fff;
  color: #667eea;
  border: none;
  border-radius: 10px;
  padding: 10px 20px;
  font-weight: 700;
  cursor: pointer;
  position: relative;
  z-index: 1;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/* 首页营销横幅 */
.promo-banner {
  background: linear-gradient(135deg, #ff6b6b, #ff8e53);
  border-radius: 16px;
  padding: 18px;
  margin: 12px 16px 20px;
  box-shadow: 0 6px 16px rgba(255, 107, 107, 0.25);
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}
.promo-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    120% 180% at -10% -20%,
    rgba(255, 255, 255, 0.2),
    transparent 65%
  );
  pointer-events: none;
}
.promo-icon {
  font-size: 32px;
  position: relative;
  z-index: 1;
}
.promo-content {
  flex: 1;
  color: #fff;
  position: relative;
  z-index: 1;
}
.promo-title {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 4px;
}
.promo-desc {
  font-size: 12px;
  opacity: 0.95;
  line-height: 1.4;
}
.promo-arrow {
  font-size: 24px;
  color: #fff;
  opacity: 0.8;
  position: relative;
  z-index: 1;
}
/* 理财页面概览卡片 */
.finance-overview {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  padding: 16px;
  margin-bottom: 16px;
}
.overview-card {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  text-align: center;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
}
.overview-icon {
  font-size: 28px;
  margin-bottom: 8px;
}
.overview-label {
  display: block;
  font-size: 12px;
  color: #666;
  margin-bottom: 4px;
}
.overview-value {
  display: block;
  font-size: 18px;
  font-weight: 700;
  color: #222;
}
.overview-value.green {
  color: var(--success);
}
.overview-value.gold {
  color: var(--accent);
}

/* 理财产品卡片 */
.product-section {
  padding: 0 16px 80px;
  margin-bottom: 0;
}
.product-section h2 {
  margin: 0 0 16px;
  font-size: 17px;
  font-weight: 700;
  color: #1a1a1a;
}
.product-card {
  background: linear-gradient(135deg, #fff, #fffbf5);
  border-radius: 16px;
  padding: 18px;
  margin-bottom: 14px;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease;
}
.product-card:active {
  transform: scale(0.98);
}
.product-card.premium {
  border: 2px solid #d4af37;
  background: linear-gradient(135deg, #fffbf0, #fff9e6);
}
.product-card.premium::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle at top right,
    rgba(212, 175, 55, 0.08),
    transparent 70%
  );
  pointer-events: none;
}
.product-card.product-locked {
  opacity: 0.6;
  position: relative;
}
.product-card.product-locked::after {
  content: "🔒";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 48px;
  opacity: 0.3;
  pointer-events: none;
}
.product-badge {
  position: absolute;
  top: 14px;
  right: 14px;
  padding: 5px 12px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  background: #e5e7eb;
  color: #666;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}
.product-badge.exclusive {
  background: linear-gradient(90deg, #d4af37, #f5d77d);
  color: #fff;
  box-shadow: 0 2px 8px rgba(212, 175, 55, 0.3);
}
.vip-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  padding: 5px 12px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  background: linear-gradient(135deg, #1a1f2e, #13161f);
  color: #f5d771;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}
.product-header h3 {
  margin: 0 0 4px;
  font-size: 17px;
  font-weight: 700;
  color: #1a1a1a;
  padding-right: 70px;
}
.product-subtitle {
  margin: 0;
  font-size: 12px;
  color: #999;
  line-height: 1.5;
}
.product-highlights {
  margin: 14px 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}
.highlight {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: rgba(212, 175, 55, 0.05);
  border-radius: 8px;
  font-size: 13px;
  color: #333;
}
.hl-icon {
  font-size: 16px;
}
.highlight strong {
  color: #d4af37;
  font-weight: 700;
}
.product-progress {
  margin: 14px 0;
}
.progress-label {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: #999;
  margin-bottom: 6px;
}
.progress-bar {
  height: 8px;
  background: #f0f0f0;
  border-radius: 10px;
  overflow: hidden;
}
.progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #d4af37, #f5d77d);
  transition: width 0.3s;
  box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.3);
}
.btn-product {
  width: 100%;
  background: linear-gradient(135deg, #d4af37, #c99b2b);
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: 12px;
  font-weight: 700;
  font-size: 15px;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(212, 175, 55, 0.3);
  transition: all 0.3s;
}
.btn-product:active {
  transform: scale(0.98);
  box-shadow: 0 2px 6px rgba(212, 175, 55, 0.4);
}
.btn-product.btn-locked {
  background: linear-gradient(135deg, #999, #666);
  cursor: not-allowed;
  opacity: 0.7;
}
/* VIP加息显示 */
.product-rate-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 12px;
  background: linear-gradient(
    135deg,
    rgba(212, 175, 55, 0.08),
    rgba(212, 175, 55, 0.03)
  );
  border-radius: 10px;
  margin: 12px 0;
  border: 1px solid rgba(212, 175, 55, 0.2);
}
.rate-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
}
.rate-label {
  font-size: 10px;
  color: #999;
  margin-bottom: 4px;
}
.rate-value {
  font-size: 16px;
  font-weight: 700;
  color: #333;
}
.rate-value.vip-rate {
  color: #d4af37;
}
.rate-value.total {
  color: #52c41a;
  font-size: 18px;
}
.rate-plus {
  font-size: 18px;
  color: #d4af37;
  font-weight: 700;
}
.rate-total {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
  border-left: 1px solid rgba(212, 175, 55, 0.3);
  padding-left: 8px;
}

/* 收益图表区域 */
.income-chart-section {
  padding: 0 16px;
  margin-bottom: 20px;
}
.income-chart-section h2 {
  margin: 0 0 16px;
  font-size: 18px;
  font-weight: 700;
  color: #222;
}
.chart-container {
  background: #fff;
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
}
.chart-placeholder {
  position: relative;
  height: 160px;
  background: #f8f9fa;
  border-radius: 10px;
  margin-bottom: 12px;
}
.chart-line {
  position: absolute;
  inset: 0;
}
.chart-dot {
  position: absolute;
  width: 10px;
  height: 10px;
  background: var(--accent);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(202, 165, 107, 0.5);
}
.chart-legend {
  text-align: center;
  font-size: 12px;
  color: #666;
}

/* 投资建议区域 */
.recommend-section {
  padding: 0 16px;
  margin-bottom: 20px;
}
.recommend-section h2 {
  margin: 0 0 16px;
  font-size: 18px;
  font-weight: 700;
  color: #222;
}
.advice-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 12px;
}
.advice-card {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
  border-left: 4px solid #e5e7eb;
}
.advice-card.low-risk {
  border-left-color: #10b981;
}
.advice-card.mid-risk {
  border-left-color: #f59e0b;
}
.advice-card.high-risk {
  border-left-color: #ef4444;
}
.risk-badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  margin-bottom: 8px;
  background: #f1f3f5;
  color: #666;
}
.advice-card p {
  margin: 0;
  font-size: 13px;
  color: #666;
  line-height: 1.6;
}

/* Wind风格市场数据 */
.market-overview {
  padding: 0;
}
.market-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin-bottom: 16px;
}
.index-card {
  background: #fff;
  border-radius: 8px;
  padding: 12px;
  box-shadow: 0 2px 8px rgba(5, 15, 30, 0.06);
  border-left: 3px solid var(--accent);
}
.index-code {
  font-size: 10px;
  color: #666;
  font-family: monospace;
}
.index-name {
  font-size: 13px;
  font-weight: 600;
  color: #222;
  margin: 2px 0;
}
.index-price {
  font-size: 18px;
  font-weight: 700;
  color: #222;
  margin: 4px 0;
}
.index-change {
  font-size: 12px;
  font-weight: 600;
}
.index-change.up {
  color: var(--success);
}
.index-change.down {
  color: #ff4757;
}
.mini-chart {
  position: absolute;
  top: 8px;
  right: 8px;
  font-size: 12px;
}
.index-card {
  position: relative;
}

.data-panel {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
}
.panel-title {
  font-size: 16px;
  font-weight: 600;
  color: #222;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid #eee;
}
.data-stream {
  font-family: monospace;
  font-size: 12px;
}
.data-row {
  display: grid;
  grid-template-columns: 80px 1fr 80px 60px;
  gap: 8px;
  padding: 6px 0;
  border-bottom: 1px solid #f5f5f5;
  align-items: center;
}
.data-row:last-child {
  border-bottom: none;
}
.symbol {
  color: #666;
  font-weight: 600;
}
.name {
  color: #222;
  font-weight: 500;
}
.price {
  color: #222;
  font-weight: 700;
  text-align: right;
}
.change {
  text-align: right;
  font-weight: 600;
}
.change.up {
  color: var(--success);
}
.change.down {
  color: #ff4757;
}
/* 消息页面样式 */
.msg-badge {
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
  background: #ff4757;
  color: #fff;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
}
.msg-tabs {
  display: flex;
  gap: 6px;
  padding: 16px;
  background: #fff;
  border-bottom: 1px solid #f1f3f5;
}
.msg-tab-btn {
  flex: 1;
  background: transparent;
  border: none;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  color: #666;
  cursor: pointer;
}
.msg-tab-btn.active {
  background: var(--primary);
  color: #fff;
}
.message-list {
  padding: 16px;
}
.msg-item {
  background: #fff;
  border-radius: 12px;
  margin-bottom: 12px;
  padding: 16px;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
  display: flex;
  gap: 12px;
  position: relative;
}
.msg-item.unread {
  border-left: 3px solid var(--accent);
}
.msg-icon {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, #f0f2f5, #e5e7eb);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}
.msg-icon.system {
  background: linear-gradient(135deg, #3b82f6, #2563eb);
}
.msg-icon.trade {
  background: linear-gradient(135deg, #10b981, #059669);
}
.msg-icon.invest {
  background: linear-gradient(135deg, #f59e0b, #d97706);
}
.msg-icon.service {
  background: linear-gradient(135deg, #8b5cf6, #7c3aed);
}
.msg-content {
  flex: 1;
}
.msg-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}
.msg-title {
  font-size: 15px;
  font-weight: 600;
  color: #222;
}
.msg-time {
  font-size: 11px;
  color: #999;
}
.msg-text {
  font-size: 13px;
  color: #666;
  line-height: 1.6;
}
.msg-dot {
  position: absolute;
  top: 20px;
  right: 16px;
  width: 8px;
  height: 8px;
  background: #ff4757;
  border-radius: 50%;
}
.msg-item:not(.unread) .msg-dot {
  display: none;
}

/* 客服入口卡片 */
.service-entry {
  padding: 0 16px 20px;
}
.service-card {
  background: linear-gradient(135deg, #667eea, #764ba2);
  border-radius: 16px;
  padding: 20px;
  display: flex;
  align-items: center;
  gap: 14px;
  box-shadow: 0 6px 16px rgba(102, 126, 234, 0.3);
}
.service-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}
.service-info {
  flex: 1;
}
.service-name {
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 4px;
}
.service-desc {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.8);
}
.btn-contact {
  background: #fff;
  color: #667eea;
  border: none;
  border-radius: 10px;
  padding: 10px 20px;
  font-weight: 700;
  cursor: pointer;
}

/* 其他页面样式（非首页） - 深蓝色主题（与主页一致） */
.page-other {
  background: #f7f8fa !important;
  min-height: 100vh;
}
.page-other #app {
  background: transparent !important;
}
.hero-simple {
  background: linear-gradient(180deg, #0e2b44, #091c2e);
  color: #e8edf3;
  padding: 16px;
  position: relative;
  overflow: hidden;
  border-radius: 0;
}
.hero-simple::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
      120% 180% at -10% -20%,
      rgba(255, 255, 255, 0.18),
      transparent 65%
    ),
    radial-gradient(
      140% 160% at 110% -10%,
      rgba(255, 255, 255, 0.12),
      transparent 58%
    );
  pointer-events: none;
}
.hero-simple .hero-top {
  position: relative;
  z-index: 1;
}
.hero-simple .brand-name {
  font-size: 20px;
  font-weight: 700;
}
.hero-simple .back-btn {
  color: #ffffff !important;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.5) !important;
  font-weight: 700 !important;
  opacity: 1 !important;
}
.content-white {
  background: #f7f8fa;
  padding: 0;
  min-height: calc(100vh - 120px);
}

/* 市场页面专用组件 */
.market-tabs {
  display: flex;
  gap: 8px;
  margin: 0 16px 16px;
  padding-top: 16px;
}
.tab-btn {
  flex: 1;
  background: #fff;
  border: none;
  border-radius: 8px;
  padding: 10px;
  font-weight: 600;
  color: #666;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
  cursor: pointer;
  transition: all 0.2s;
}
.tab-btn:active {
  transform: scale(0.98);
}
.tab-btn.active {
  background: var(--primary);
  color: #fff;
}

/* 市场概览区域 - 蓝色主题渐变 */
.market-summary {
  display: flex;
  background: linear-gradient(135deg, #0e2b44, #0a1f38);
  border-radius: 0;
  padding: 16px;
  margin: 0 0 16px;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.15);
  position: relative;
  overflow: hidden;
}
.market-summary::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
      120% 180% at -10% -20%,
      rgba(255, 255, 255, 0.12),
      transparent 65%
    ),
    radial-gradient(
      140% 160% at 110% -10%,
      rgba(255, 255, 255, 0.08),
      transparent 58%
    );
  pointer-events: none;
}
.summary-circle {
  margin-right: 20px;
  position: relative;
  z-index: 1;
}
.circle-chart {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: conic-gradient(
    #5aa7ff 0deg 188deg,
    rgba(255, 255, 255, 0.2) 188deg 360deg
  );
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.circle-inner {
  background: linear-gradient(135deg, #0a1f38, #0e2b44);
  width: 60px;
  height: 60px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  color: #5aa7ff;
}
.summary-stats {
  flex: 1;
  position: relative;
  z-index: 1;
}
.stat-item {
  display: flex;
  justify-content: space-between;
  margin-bottom: 8px;
}
.stat-label {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.7);
}
.stat-value {
  font-size: 14px;
  font-weight: 600;
  color: #fff;
}
.stat-value.red {
  color: #ff6b6b;
}
.stat-value.green {
  color: #5eead4;
}

/* 板块标题样式 */
.section-header {
  padding: 0 16px 16px;
  text-align: center;
}
.section-header h2 {
  margin: 0 0 4px;
  font-size: 20px;
  font-weight: 700;
  color: #222;
}
.section-header p {
  margin: 0;
  font-size: 13px;
  color: #666;
}

/* 基金板块样式 */
.fund-cards {
  padding: 0 16px;
  margin-bottom: 20px;
}
.fund-card-large {
  background: #fff;
  border-radius: 16px;
  padding: 18px;
  margin-bottom: 16px;
  box-shadow: 0 6px 16px rgba(5, 15, 30, 0.1);
  border-left: 4px solid var(--accent);
}
.fund-card-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.fund-badge {
  font-size: 12px;
  padding: 4px 10px;
  border-radius: 12px;
  font-weight: 600;
}
.fund-badge.hot {
  background: linear-gradient(90deg, #ff6b6b, #ff8e53);
  color: #fff;
}
.fund-badge.stable {
  background: linear-gradient(90deg, #667eea, #764ba2);
  color: #fff;
}
.fund-name {
  font-size: 16px;
  font-weight: 700;
  color: #222;
  flex: 1;
}
.fund-code {
  font-size: 11px;
  color: #999;
  font-family: monospace;
}
.fund-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 14px;
}
.metric {
  text-align: center;
}
.metric-label {
  display: block;
  font-size: 11px;
  color: #666;
  margin-bottom: 4px;
}
.metric-value {
  display: block;
  font-size: 16px;
  font-weight: 700;
}
.fund-chart-area {
  background: #f8f9fa;
  border-radius: 10px;
  padding: 12px;
}
.mini-line-chart {
  font-size: 32px;
  text-align: center;
  margin-bottom: 8px;
}
.fund-stats-row {
  display: flex;
  justify-content: space-around;
  font-size: 11px;
  color: #666;
}
.fund-rank-section {
  padding: 0 16px;
  background: #fff;
  border-radius: 12px;
  margin: 0 16px 16px;
  padding: 16px;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
}
.fund-rank-section h3 {
  margin: 0 0 12px;
  font-size: 16px;
  font-weight: 600;
  color: #222;
}
.rank-list {
}
.rank-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #f5f5f5;
}
.rank-item:last-child {
  border-bottom: none;
}
.rank-num {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--accent), #e6cfaa);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
}
.rank-name {
  flex: 1;
  font-size: 14px;
  color: #222;
  font-weight: 500;
}
.rank-return {
  font-size: 14px;
  font-weight: 700;
}

/* IPO板块样式 */
.ipo-timeline {
  padding: 0 16px;
}
.ipo-card-pro {
  background: #fff;
  border-radius: 16px;
  padding: 20px;
  margin-bottom: 16px;
  box-shadow: 0 6px 16px rgba(5, 15, 30, 0.1);
  position: relative;
  overflow: hidden;
}
.ipo-status申购中 {
  position: absolute;
  top: 12px;
  right: 12px;
  background: linear-gradient(90deg, #10b981, #059669);
  color: #fff;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
}
.ipo-status即将开盘 {
  position: absolute;
  top: 12px;
  right: 12px;
  background: linear-gradient(90deg, #f59e0b, #d97706);
  color: #fff;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
}
.ipo-main {
  padding-right: 80px;
}
.ipo-title-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.ipo-title-row h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: #222;
}
.ipo-code {
  font-size: 13px;
  font-family: monospace;
  color: #666;
  font-weight: 600;
}
.ipo-board {
  font-size: 11px;
  padding: 4px 8px;
  border-radius: 6px;
  font-weight: 600;
}
.ipo-board.sci {
  background: #ff6b6b;
  color: #fff;
}
.ipo-board.gem {
  background: #3b82f6;
  color: #fff;
}
.ipo-price-section {
  background: #f8f9fa;
  border-radius: 10px;
  padding: 12px;
  margin-bottom: 14px;
}
.price-main {
  font-size: 14px;
  color: #222;
  margin-bottom: 4px;
}
.price-num {
  font-size: 24px;
  font-weight: 800;
  color: var(--accent);
  margin: 0 4px;
}
.price-range {
  font-size: 12px;
  color: #666;
}
.ipo-data-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 14px;
}
.ipo-data-item {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 10px;
  text-align: center;
}
.data-label {
  display: block;
  font-size: 11px;
  color: #666;
  margin-bottom: 4px;
}
.data-value {
  display: block;
  font-size: 14px;
  font-weight: 700;
  color: #222;
}
.data-value.warn {
  color: #f59e0b;
}
.ipo-timeline-bar {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}
.timeline-step {
  flex: 1;
  text-align: center;
  font-size: 11px;
  padding: 8px 4px;
  border-radius: 6px;
  background: #f1f3f5;
  color: #666;
}
.timeline-step.active {
  background: var(--primary);
  color: #fff;
  font-weight: 600;
}
.timeline-step.done {
  background: #10b981;
  color: #fff;
}
.ipo-analysis {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  margin: 0 16px 16px;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
}
.ipo-analysis h3 {
  margin: 0 0 12px;
  font-size: 16px;
  font-weight: 600;
  color: #222;
}
.ipo-analysis ul {
  margin: 0;
  padding-left: 20px;
}
.ipo-analysis li {
  margin-bottom: 8px;
  font-size: 13px;
  color: #666;
  line-height: 1.6;
}
/* 债券板块样式 */
.bond-filter-tabs {
  display: flex;
  gap: 8px;
  padding: 16px;
  overflow-x: auto;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
}
.bond-filter-tabs::-webkit-scrollbar {
  display: none;
}
.bond-filter-btn {
  background: #f1f3f5;
  border: none;
  border-radius: 20px;
  padding: 8px 16px;
  font-size: 13px;
  color: #666;
  cursor: pointer;
  transition: all 0.3s;
  flex-shrink: 0;
}
.bond-filter-btn.active {
  background: #2563eb;
  color: #fff;
  font-weight: 600;
}
.bond-list {
  padding: 0 16px 16px;
}
.bond-item {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fff;
  border-radius: 12px;
  padding: 14px;
  margin-bottom: 10px;
  box-shadow: 0 2px 8px rgba(5, 15, 30, 0.06);
  transition: all 0.3s;
}
.bond-item:active {
  transform: scale(0.98);
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.12);
}
.bond-icon-box {
  font-size: 24px;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f8f9fa;
  border-radius: 10px;
  flex-shrink: 0;
}
.bond-info-main {
  flex: 1;
  min-width: 0;
}
.bond-title {
  font-size: 15px;
  font-weight: 600;
  color: #222;
  margin-bottom: 4px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.bond-code-small {
  font-size: 12px;
  color: #999;
  font-weight: 400;
}
.bond-meta {
  font-size: 12px;
  color: #666;
}
.bond-price-box,
.bond-yield-box {
  text-align: right;
  min-width: 60px;
}
.bond-price,
.bond-yield {
  font-size: 16px;
  font-weight: 700;
  color: #222;
  margin-bottom: 2px;
}
.bond-yield.positive {
  color: #10b981;
}
.bond-label {
  font-size: 11px;
  color: #999;
}
/* 我的页面样式 */
.settings-icon {
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
  font-size: 22px;
  cursor: pointer;
  opacity: 0.8;
}
.profile-header {
  background: linear-gradient(135deg, #0e2b44, #0a1f38);
  border-radius: 0;
  padding: 24px 16px;
  margin: 0;
  position: relative;
  overflow: hidden;
}
.profile-header::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    120% 180% at -10% -20%,
    rgba(255, 255, 255, 0.15),
    transparent 65%
  );
  pointer-events: none;
}
.profile-header-vip {
  background: linear-gradient(135deg, #0a1929, #060f1a);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  width: 100%;
  max-width: 400px;
  height: 255px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  padding: 16px 20px;
  box-sizing: border-box;
  position: relative;
}
.profile-header-vip[data-vip-level="1"] {
  background-image: url("assets/a3d23c948ed38.png");
}
.profile-header-vip[data-vip-level="2"] {
  background-image: url("assets/ab9ef37b6aa06.png");
}
.profile-header-vip[data-vip-level="3"] {
  background-image: url("assets/af803bfb4e600.png");
}
.profile-header-vip[data-vip-level="4"] {
  background-image: url("assets/a531644b2edbb.png");
}
.profile-header-vip[data-vip-level="5"] {
  background-image: url("assets/a1ec33b48703f.png");
}
.profile-header-vip[data-vip-level="6"] {
  background-image: url("assets/aa602da1a9eca.png");
}
.profile-header-vip[data-vip-level="7"] {
  background-image: url("assets/aa1f68608b6b2.png");
}
.profile-header-vip[data-vip-level="8"] {
  background-image: url("assets/a90865e3c6f97.png");
}
.profile-header-vip::before {
  display: none;
}
.profile-avatar-large {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background: linear-gradient(135deg, #5aa7ff, #2a66ff);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  margin: 0 auto 12px;
  box-shadow: 0 6px 16px rgba(42, 102, 255, 0.4);
  position: relative;
  z-index: 1;
}
.profile-info {
  text-align: center;
  color: #fff;
  position: relative;
  z-index: 1;
}
.profile-info-left {
  text-align: left;
  color: #fff;
  position: relative;
  z-index: 2;
  max-width: 60%;
}
.profile-name {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 4px;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}
.profile-id {
  font-size: 12px;
  opacity: 0.85;
  margin-bottom: 0;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}
.profile-vip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: linear-gradient(90deg, var(--accent), #e6cfaa);
  color: #2a1e0b;
  padding: 6px 12px;
  border-radius: 16px;
  font-size: 13px;
  font-weight: 600;
}
.vip-icon {
  font-size: 14px;
}
.profile-vip-badge {
  width: 120px;
  height: 60px;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  margin-top: 8px;
}
.profile-vip-badge[data-vip-level="1"] {
  background-image: url("assets/a3d23c948ed38.png");
}
.profile-vip-badge[data-vip-level="2"] {
  background-image: url("assets/ab9ef37b6aa06.png");
}
.profile-vip-badge[data-vip-level="3"] {
  background-image: url("assets/af803bfb4e600.png");
}
.profile-vip-badge[data-vip-level="4"] {
  background-image: url("assets/a531644b2edbb.png");
}
.profile-vip-badge[data-vip-level="5"] {
  background-image: url("assets/a1ec33b48703f.png");
}
.profile-vip-badge[data-vip-level="6"] {
  background-image: url("assets/aa602da1a9eca.png");
}
.profile-vip-badge[data-vip-level="7"] {
  background-image: url("assets/aa1f68608b6b2.png");
}
.profile-vip-badge[data-vip-level="8"] {
  background-image: url("assets/a90865e3c6f97.png");
}

.asset-overview-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  padding: 16px;
  margin-bottom: 16px;
}
.asset-card {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  text-align: center;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
}
.asset-icon {
  font-size: 26px;
  margin-bottom: 6px;
}
.asset-label {
  display: block;
  font-size: 11px;
  color: #666;
  margin-bottom: 6px;
}
.asset-amount {
  display: block;
  font-size: 16px;
  font-weight: 700;
  color: #222;
}

.quick-actions {
  padding: 0 16px;
  margin-bottom: 20px;
}
.action-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.action-item {
  text-align: center;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.2s;
}
.action-item:active {
  transform: scale(0.95);
}
.action-icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  margin: 0 auto 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  background: linear-gradient(135deg, #f0f2f5, #e5e7eb);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
}
.action-icon.deposit {
  background: linear-gradient(135deg, #10b981, #059669);
}
.action-icon.withdraw {
  background: linear-gradient(135deg, #f59e0b, #d97706);
}
.action-icon.record {
  background: linear-gradient(135deg, #3b82f6, #2563eb);
}
.action-icon.team {
  background: linear-gradient(135deg, #8b5cf6, #7c3aed);
}
.action-text {
  font-size: 13px;
  color: #666;
  font-weight: 500;
}
.menu-item:active {
  background: #f8f9fa;
}
.menu-icon {
  font-size: 20px;
  width: 24px;
  text-align: center;
}
.menu-label {
  flex: 1;
  font-size: 15px;
  color: #222;
  font-weight: 500;
}
.menu-text {
  font-size: 13px;
  color: #999;
}
.menu-badge {
  padding: 3px 8px;
  border-radius: 10px;
  font-size: 10px;
  font-weight: 600;
  margin-left: auto;
}
.menu-badge.verified {
  background: #dcfce7;
  color: #16a34a;
}
.menu-badge.hot {
  background: linear-gradient(90deg, #ff6b6b, #ff8e53);
  color: #fff;
}
.menu-arrow {
  font-size: 18px;
  color: #ccc;
  margin-left: 8px;
}

.logout-section {
  padding: 0 16px 20px;
}
.btn-logout {
  width: 100%;
  background: #fff;
  color: #ef4444;
  border: 1px solid #fee2e2;
  border-radius: 10px;
  padding: 14px;
  font-weight: 600;
  cursor: pointer;
}

/* 积分商城样式 */
.points-header {
  padding: 16px;
  margin-bottom: 16px;
}
.points-balance-card {
  background: linear-gradient(135deg, #111, #2a2a2a);
  border-radius: 16px;
  padding: 20px;
  display: flex;
  align-items: center;
  gap: 16px;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3);
  position: relative;
  overflow: hidden;
}
.points-balance-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
      120% 180% at -10% -20%,
      rgba(255, 255, 255, 0.15),
      transparent 65%
    ),
    radial-gradient(
      140% 160% at 110% -10%,
      rgba(202, 165, 107, 0.2),
      transparent 58%
    );
  pointer-events: none;
}
.points-icon {
  font-size: 36px;
  position: relative;
  z-index: 1;
}
.points-info {
  flex: 1;
  position: relative;
  z-index: 1;
}
.points-label {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 4px;
}
.points-value {
  font-size: 32px;
  font-weight: 800;
  color: var(--accent);
  text-shadow: 0 2px 8px rgba(202, 165, 107, 0.5);
}
.btn-points-rules {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 10px;
  padding: 8px 16px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  position: relative;
  z-index: 1;
}

.shop-categories {
  display: flex;
  gap: 8px;
  padding: 0 16px 16px;
  overflow-x: auto;
}
.cat-btn {
  background: #fff;
  border: none;
  border-radius: 8px;
  padding: 10px 20px;
  font-size: 14px;
  font-weight: 600;
  color: #666;
  cursor: pointer;
  white-space: nowrap;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
}
.cat-btn.active {
  background: var(--primary);
  color: #fff;
}

.products-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  padding: 0 16px;
  margin-bottom: 20px;
}
.product-item {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
  cursor: pointer;
  transition: transform 0.2s;
}
.product-item:active {
  transform: scale(0.98);
}
.product-img-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 1;
  background: #f8f9fa;
  overflow: hidden;
}
.product-img-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.product-label {
  position: absolute;
  top: 8px;
  left: 8px;
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
}
.product-label.hot {
  background: linear-gradient(90deg, #ff6b6b, #ff8e53);
  color: #fff;
}
.product-label.new {
  background: linear-gradient(90deg, #10b981, #059669);
  color: #fff;
}
.product-info {
  padding: 12px;
}
.product-name {
  font-size: 14px;
  color: #222;
  font-weight: 600;
  margin-bottom: 6px;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.product-points {
  margin-bottom: 6px;
}
.points-price {
  font-size: 20px;
  font-weight: 800;
  color: var(--accent);
  margin-right: 4px;
}
.product-meta {
  font-size: 11px;
  color: #999;
}

.earn-points-section {
  padding: 0 16px 20px;
}
.earn-points-section h2 {
  margin: 0 0 16px;
  font-size: 18px;
  font-weight: 700;
  color: #222;
}
.earn-cards {
  display: grid;
  gap: 12px;
}
.earn-card {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
  display: flex;
  align-items: center;
  gap: 14px;
}
.earn-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--accent), #e6cfaa);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
}
.earn-info {
  flex: 1;
}
.earn-title {
  font-size: 15px;
  font-weight: 600;
  color: #222;
  margin-bottom: 4px;
}
.earn-desc {
  font-size: 12px;
  color: #666;
}
.earn-reward {
  font-size: 16px;
  font-weight: 700;
  color: var(--accent);
}

.hidden {
  display: none;
}
.red {
  color: #ff4757;
}
.green {
  color: var(--success);
}

/* 底部导航 - 精美图标 - 统一全局样式，禁止页面覆盖 */
/* APP标准：固定在视口底部，不随页面滚动 */
/* 使用更高优先级的选择器确保不被覆盖 */
body .tabbar,
html .tabbar,
#app .tabbar,
.tabbar,
.bottom-nav,
.navbar-fixed {
  /* APP标准：固定在视口底部，不随页面滚动 */
  /* 使用 fixed 定位，相对于视口（viewport），不随页面滚动 */
  position: fixed !important;
  position: -webkit-fixed !important;
  bottom: 0 !important;
  bottom: env(safe-area-inset-bottom, 0) !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 999999 !important;
  transform: translateZ(0) !important;
  -webkit-transform: translateZ(0) !important;
  margin: 0 !important;
  background: linear-gradient(
    180deg,
    rgba(11, 59, 94, 0.95) 0%,
    rgba(18, 76, 106, 0.95) 100%
  ) !important;
  backdrop-filter: blur(15px) !important;
  -webkit-backdrop-filter: blur(15px) !important;
  display: flex !important;
  justify-content: space-around !important;
  align-items: center !important;
  border-top: 1px solid rgba(212, 175, 55, 0.15) !important;
  height: clamp(60px, 15vw, 70px) !important;
  min-height: clamp(60px, 15vw, 70px) !important;
  max-height: clamp(60px, 15vw, 70px) !important;
  z-index: 99999 !important;
  padding: clamp(6px, 1.5vw, 8px) 0 !important;
  padding-left: env(safe-area-inset-left, 0) !important;
  padding-right: env(safe-area-inset-right, 0) !important;
  padding-bottom: calc(
    clamp(6px, 1.5vw, 8px) + env(safe-area-inset-bottom, 0)
  ) !important;
  margin: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  box-shadow: 0 -2px 20px rgba(0, 0, 0, 0.2) !important;
  will-change: auto !important;
  backface-visibility: hidden !important;
  -webkit-backface-visibility: hidden !important;
  contain: layout style paint !important;
  isolation: isolate !important;
  /* 禁用动画，避免闪烁 */
  animation: none !important;
  /* 优化性能：减少过渡动画，使用GPU加速 */
  transition: opacity 0.15s ease, transform 0.15s ease !important;
}
.tab {
  width: 20%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #8b9aa8;
  text-decoration: none;
  transition: color 0.1s ease !important;
  position: relative !important;
  padding: 8px 0 6px;
  gap: 0;
  -webkit-tap-highlight-color: transparent;
  tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  user-select: none;
  flex-shrink: 0;
  transform: translateZ(0) !important;
  -webkit-transform: translateZ(0) !important;
  will-change: color !important;
}
.tab:active .ico {
  transform: translateZ(0) scale(0.95) !important;
  -webkit-transform: translateZ(0) scale(0.95) !important;
  transition: transform 0.05s ease !important;
}
.tab:active {
  background: transparent !important;
}
.tab.active {
  color: #f5d771;
}
.tab.active .txt {
  color: #f5d771;
  font-weight: 600;
}
.tab .ico {
  width: clamp(46px, 11.5vw, 52px) !important;
  height: clamp(46px, 11.5vw, 52px) !important;
  min-width: clamp(46px, 11.5vw, 52px) !important;
  min-height: clamp(46px, 11.5vw, 52px) !important;
  max-width: clamp(46px, 11.5vw, 52px) !important;
  max-height: clamp(46px, 11.5vw, 52px) !important;
  background-image: url("assets/a75728afde83d.jpg");
  background-size: contain !important;
  background-repeat: no-repeat;
  background-color: transparent;
  background-position: center;
  margin-bottom: 0;
  transition: opacity 0.1s ease !important;
  position: relative !important;
  border-radius: 50%;
  overflow: visible;
  will-change: opacity !important;
  flex-shrink: 0;
  transform: translateZ(0) !important;
  -webkit-transform: translateZ(0) !important;
}
.tab:not(.active) .ico {
  opacity: 0.65;
  filter: grayscale(0.3);
}
.tab:hover:not(.active) .ico {
  opacity: 0.85;
}
.tab.active .ico {
  opacity: 1 !important;
  transform: translateZ(0) !important;
  -webkit-transform: translateZ(0) !important;
  filter: none !important;
}
.tab .txt {
  font-size: clamp(9px, 2.2vw, 10px);
  font-weight: 500;
  letter-spacing: 0.3px;
  margin-top: clamp(3px, 0.8vw, 4px);
  line-height: 1;
  padding-top: 0;
  margin-bottom: 0;
  color: #8b9aa8;
  flex-shrink: 0;
}
.tab .ico.dot::after {
  display: none;
}
.ico-home {
  background-image: url("img/zy.png") !important;
  background-size: contain !important;
  background-position: center !important;
  image-rendering: auto !important;
}
.ico-finance {
  background-image: url("img/w1.png") !important;
  background-size: contain !important;
  background-position: center !important;
  image-rendering: auto !important;
}
.ico-market {
  background-image: url("img/xm.png") !important;
  background-size: contain !important;
  background-position: center !important;
  image-rendering: auto !important;
}
.ico-message {
  background-image: url("img/34.png") !important;
  background-size: contain !important;
  background-position: center !important;
  image-rendering: auto !important;
}
.ico-me {
  background-image: url("img/wd.png") !important;
  background-size: contain !important;
  background-position: center !important;
  image-rendering: auto !important;
}

/* 返回按钮和右侧操作按钮 */
.back-btn {
  font-size: 28px;
  color: #fff;
  text-decoration: none;
  margin-right: 12px;
  opacity: 1;
  cursor: pointer;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  font-weight: 700;
  transition: all 0.2s ease;
}
.back-btn:hover {
  transform: scale(1.1);
  opacity: 1;
}
.add-card-btn {
  font-size: 24px;
  color: #fff;
  text-decoration: none;
  margin-left: auto;
  opacity: 0.9;
  cursor: pointer;
  font-weight: 300;
}

/* 银行卡页面样式 */
.bank-cards-list {
  padding: 16px;
  margin-bottom: 20px;
}
.bank-card-item {
  background: linear-gradient(135deg, #111, #2a2a2a);
  border-radius: 16px;
  padding: 24px 20px;
  margin-bottom: 16px;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3);
  position: relative;
  overflow: hidden;
  color: #fff;
}
.bank-card-item::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    120% 180% at -10% -20%,
    rgba(202, 165, 107, 0.2),
    transparent 65%
  );
  pointer-events: none;
}
.bank-card-item.primary {
  border: 2px solid var(--accent);
}
.card-bank {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 24px;
  position: relative;
  z-index: 1;
}
.card-number {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 2px;
  margin-bottom: 16px;
  font-family: monospace;
  position: relative;
  z-index: 1;
}
.card-holder {
  font-size: 13px;
  opacity: 0.8;
  position: relative;
  z-index: 1;
}
.card-badge {
  position: absolute;
  top: 16px;
  right: 16px;
  background: linear-gradient(90deg, var(--accent), #e6cfaa);
  color: #2a1e0b;
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
}
.card-actions {
  display: flex;
  gap: 10px;
  margin-top: 16px;
  position: relative;
  z-index: 1;
}
.card-action-btn {
  flex: 1;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #fff;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
.card-action-btn.primary {
  background: var(--accent);
  border-color: var(--accent);
  color: #2a1e0b;
}

.add-card-section {
  padding: 0 16px 20px;
}
.btn-add-card {
  width: 100%;
  background: #fff;
  border: 2px dashed #ccc;
  color: #666;
  border-radius: 12px;
  padding: 16px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
}

.card-tips {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  margin: 0 16px 20px;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
}
.card-tips h3 {
  margin: 0 0 12px;
  font-size: 16px;
  font-weight: 600;
  color: #222;
}
.card-tips ul {
  margin: 0;
  padding-left: 20px;
}
.card-tips li {
  margin-bottom: 8px;
  font-size: 13px;
  color: #666;
  line-height: 1.6;
}

/* 充值提现页面样式 */
.balance-display {
  padding: 16px;
  margin-bottom: 20px;
}
.balance-card-black {
  background: linear-gradient(135deg, #111, #2a2a2a);
  border-radius: 16px;
  padding: 24px;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3);
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  gap: 16px;
}
.balance-card-black::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    120% 180% at -10% -20%,
    rgba(202, 165, 107, 0.25),
    transparent 65%
  );
  pointer-events: none;
}
.balance-icon {
  font-size: 40px;
  position: relative;
  z-index: 1;
}
.balance-info {
  flex: 1;
  position: relative;
  z-index: 1;
}
.balance-label {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 6px;
}
.balance-amount {
  font-size: 32px;
  font-weight: 800;
  color: var(--accent);
  text-shadow: 0 2px 8px rgba(202, 165, 107, 0.5);
}

.deposit-methods,
.withdraw-form {
  background: #fff;
  border-radius: 16px;
  padding: 20px;
  margin: 0 16px 20px;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
}
.deposit-methods h3,
.withdraw-form h3 {
  margin: 0 0 16px;
  font-size: 16px;
  font-weight: 600;
  color: #222;
}
.method-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.method-card {
  background: #f8f9fa;
  border-radius: 12px;
  padding: 16px;
  text-align: center;
  cursor: pointer;
  border: 2px solid transparent;
  transition: all 0.2s;
}
.method-card.active {
  border-color: var(--primary);
  background: #fff;
  box-shadow: 0 4px 10px rgba(14, 74, 120, 0.15);
}
.method-icon {
  font-size: 28px;
  margin-bottom: 8px;
}
.method-name {
  font-size: 14px;
  font-weight: 600;
  color: #222;
  margin-bottom: 4px;
}
.method-desc {
  font-size: 11px;
  color: #666;
}

.amount-section {
  background: #fff;
  border-radius: 16px;
  padding: 20px;
  margin: 0 16px 20px;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
}
.amount-section h3 {
  margin: 0 0 16px;
  font-size: 16px;
  font-weight: 600;
  color: #222;
}
.amount-input-wrapper {
  position: relative;
  margin-bottom: 16px;
}
.currency-symbol {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  font-weight: 700;
  color: #666;
}
.amount-input {
  width: 100%;
  border: 2px solid #e5e7eb;
  border-radius: 12px;
  padding: 16px 16px 16px 48px;
  font-size: 24px;
  font-weight: 700;
  color: #222;
}
.amount-input:focus {
  border-color: var(--primary);
  outline: none;
}
.btn-all {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 8px 16px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
.quick-amounts {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.quick-btn {
  background: #f8f9fa;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 10px;
  font-size: 14px;
  font-weight: 600;
  color: #222;
  cursor: pointer;
}
.quick-btn:active {
  background: #e5e7eb;
}
.amount-hint {
  font-size: 12px;
  color: #999;
  margin-top: 8px;
}

.deposit-info,
.withdraw-notice {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  margin: 0 16px 20px;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
}
.info-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid #f1f3f5;
}
.info-row:last-child {
  border-bottom: none;
}
.info-label {
  font-size: 14px;
  color: #666;
}
.info-value {
  font-size: 15px;
  font-weight: 600;
  color: #222;
}

.deposit-notice,
.withdraw-notice {
  border-left: 4px solid #f59e0b;
}
.deposit-notice h4,
.notice-header {
  margin: 0 0 12px;
  font-size: 14px;
  font-weight: 600;
  color: #222;
  display: flex;
  align-items: center;
  gap: 6px;
}
.notice-icon {
  font-size: 16px;
}
.deposit-notice ul,
.withdraw-notice ul {
  margin: 0;
  padding-left: 20px;
}
.deposit-notice li,
.withdraw-notice li {
  margin-bottom: 6px;
  font-size: 12px;
  color: #666;
  line-height: 1.5;
}
.btn-deposit-submit,
.btn-withdraw-submit {
  width: calc(100% - 32px);
  margin: 0 16px 20px;
  background: linear-gradient(90deg, var(--primary-600), var(--primary));
  color: #fff;
  border: none;
  border-radius: 12px;
  padding: 16px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(14, 74, 120, 0.3);
}

.form-group {
  margin-bottom: 20px;
}
.form-group label {
  display: block;
  font-size: 14px;
  color: #666;
  margin-bottom: 10px;
  font-weight: 500;
}
.bank-selector {
  background: #f8f9fa;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 14px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
}
.bank-name {
  font-size: 15px;
  color: #222;
  font-weight: 500;
}
.selector-arrow {
  font-size: 18px;
  color: #ccc;
}
.fee-display,
.arrival-display {
  background: #f8f9fa;
  border-radius: 10px;
  padding: 14px 16px;
}
.fee-amount,
.arrival-display {
  font-size: 18px;
  font-weight: 700;
  color: #222;
}
.fee-rate {
  font-size: 12px;
  color: #10b981;
  margin-left: 8px;
}

/* 签到页面样式 */
.checkin-hero {
  padding: 16px;
  margin-bottom: 20px;
}
.checkin-bg-card {
  background: linear-gradient(135deg, #111, #2a2a2a, #111);
  border-radius: 20px;
  padding: 32px 20px;
  text-align: center;
  position: relative;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}
.checkin-bg-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
      120% 180% at 50% -20%,
      rgba(202, 165, 107, 0.3),
      transparent 70%
    ),
    radial-gradient(
      140% 160% at 50% 120%,
      rgba(255, 255, 255, 0.08),
      transparent 60%
    );
  pointer-events: none;
}
.checkin-main-icon {
  font-size: 64px;
  margin-bottom: 16px;
  position: relative;
  z-index: 1;
}
.checkin-streak {
  position: relative;
  z-index: 1;
  margin-bottom: 20px;
}
.streak-label {
  display: block;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 8px;
}
.streak-days {
  font-size: 48px;
  font-weight: 800;
  color: var(--accent);
  text-shadow: 0 4px 12px rgba(202, 165, 107, 0.6);
  margin: 0 8px;
}
.streak-unit {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.8);
}
.btn-checkin {
  background: linear-gradient(90deg, var(--accent), #e6cfaa);
  color: #2a1e0b;
  border: none;
  border-radius: 16px;
  padding: 14px 32px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  position: relative;
  z-index: 1;
  box-shadow: 0 4px 12px rgba(202, 165, 107, 0.4);
  transition: transform 0.2s;
}
.btn-checkin:active {
  transform: scale(0.95);
}
.checkin-reward {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.7);
  margin-top: 12px;
  position: relative;
  z-index: 1;
}

.checkin-calendar {
  background: #fff;
  border-radius: 16px;
  padding: 20px;
  margin: 0 16px 20px;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
}
.checkin-calendar h3 {
  margin: 0 0 16px;
  font-size: 16px;
  font-weight: 600;
  color: #222;
}
.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 8px;
}
.calendar-day {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: #f8f9fa;
  font-size: 14px;
  color: #666;
  font-weight: 500;
}
.calendar-day.done {
  background: linear-gradient(135deg, var(--accent), #e6cfaa);
  color: #fff;
  font-weight: 700;
  box-shadow: 0 2px 6px rgba(202, 165, 107, 0.3);
}

.checkin-rewards {
  background: #fff;
  border-radius: 16px;
  padding: 20px;
  margin: 0 16px 20px;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
}
.checkin-rewards h3 {
  margin: 0 0 16px;
  font-size: 16px;
  font-weight: 600;
  color: #222;
}
.reward-list {
  display: grid;
  gap: 10px;
}
.reward-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px;
  border-radius: 10px;
  background: #f8f9fa;
}
.reward-item.highlighted {
  background: linear-gradient(135deg, #fffbf0, #fff8e1);
  border: 2px solid var(--accent);
}
.reward-day {
  font-size: 14px;
  color: #222;
  font-weight: 600;
}
.reward-points {
  font-size: 16px;
  font-weight: 700;
  color: var(--accent);
}

/* 交易记录页面样式 */
.records-filter {
  display: flex;
  gap: 8px;
  padding: 16px;
  background: #fff;
  overflow-x: auto;
  border-bottom: 1px solid #f1f3f5;
}
.filter-btn {
  background: #f8f9fa;
  border: none;
  border-radius: 8px;
  padding: 8px 16px;
  font-size: 13px;
  font-weight: 600;
  color: #666;
  cursor: pointer;
  white-space: nowrap;
}
.filter-btn.active {
  background: var(--primary);
  color: #fff;
}
.records-list {
  padding: 16px;
}
.record-item {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
  display: flex;
  align-items: center;
  gap: 12px;
}
.record-item.income {
  border-left: 3px solid #10b981;
}
.record-item.outcome {
  border-left: 3px solid #ff6b6b;
}
.record-icon {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #f8f9fa;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}
.record-item.income .record-icon {
  background: linear-gradient(135deg, #d1fae5, #a7f3d0);
}
.record-item.outcome .record-icon {
  background: linear-gradient(135deg, #fee2e2, #fecaca);
}
.record-content {
  flex: 1;
}
.record-title {
  font-size: 15px;
  font-weight: 600;
  color: #222;
  margin-bottom: 4px;
}
.record-desc {
  font-size: 12px;
  color: #666;
  margin-bottom: 4px;
}
.record-time {
  font-size: 11px;
  color: #999;
  font-family: monospace;
}
.record-amount {
  font-size: 18px;
  font-weight: 700;
  text-align: right;
}
.record-amount.income {
  color: #10b981;
}
.record-amount.outcome {
  color: #ff6b6b;
}

.load-more {
  padding: 0 16px 20px;
  text-align: center;
}
.btn-load-more {
  background: #fff;
  border: 1px solid #e5e7eb;
  color: #666;
  border-radius: 10px;
  padding: 12px 32px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}

/* 我的投资页面样式 */
.investment-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  padding: 16px;
  margin-bottom: 16px;
}
.summary-card {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  text-align: center;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
}
.summary-card.total {
  border-top: 3px solid var(--primary);
}
.summary-card.profit {
  border-top: 3px solid #10b981;
}
.summary-card.rate {
  border-top: 3px solid var(--accent);
}
.summary-label {
  font-size: 12px;
  color: #666;
  margin-bottom: 8px;
  display: block;
}
.summary-value {
  font-size: 20px;
  font-weight: 800;
  color: #222;
}

.investment-tabs {
  display: flex;
  gap: 8px;
  padding: 0 16px 16px;
}
.inv-tab-btn {
  flex: 1;
  background: #fff;
  border: none;
  border-radius: 10px;
  padding: 12px;
  font-size: 15px;
  font-weight: 600;
  color: #666;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
}
.inv-tab-btn.active {
  background: var(--primary);
  color: #fff;
}

.investments-list {
  padding: 0 16px;
}
.inv-card {
  background: #fff;
  border-radius: 16px;
  padding: 20px;
  margin-bottom: 16px;
  box-shadow: 0 6px 16px rgba(5, 15, 30, 0.1);
}
.inv-card.active {
  border: 2px solid var(--accent);
  background: linear-gradient(135deg, #fff, #fffbf0);
}
.inv-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
.inv-name {
  font-size: 16px;
  font-weight: 700;
  color: #222;
}
.inv-status {
  padding: 4px 12px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
}
.inv-status.running {
  background: linear-gradient(90deg, #10b981, #059669);
  color: #fff;
}
.inv-status.completed {
  background: #e5e7eb;
  color: #666;
}
.inv-details {
}
.inv-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid #f8f9fa;
}
.inv-row:last-child {
  border-bottom: none;
}
.inv-row .label {
  font-size: 13px;
  color: #666;
}
.inv-row .value {
  font-size: 14px;
  font-weight: 600;
  color: #222;
}
.inv-row .value.profit {
  color: #10b981;
}
.inv-progress {
  margin-top: 16px;
}
.progress-bar-inv {
  height: 6px;
  background: #e5e7eb;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 6px;
}
.progress-fill-inv {
  height: 100%;
  background: linear-gradient(90deg, var(--accent), #e6cfaa);
}
.progress-text {
  font-size: 12px;
  color: #999;
  text-align: right;
}

/* 课程详情 - 翻书效果 */
.course-detail-modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.85);
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  backdrop-filter: blur(8px);
}
.course-detail-modal.active {
  display: flex;
  animation: fadeIn 0.3s ease;
}
.book-container {
  width: 100%;
  max-width: 520px;
  height: 85vh;
  perspective: 2000px;
  position: relative;
}
.book {
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  position: relative;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 15px 60px rgba(0, 0, 0, 0.4);
}
.book-page {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #fffef7 0%, #fefcf3 100%);
  border-radius: 12px;
  padding: 30px 25px 60px;
  overflow-y: auto;
  position: absolute;
  top: 0;
  left: 0;
  box-shadow: inset 0 0 40px rgba(0, 0, 0, 0.03);
  transition: opacity 0.4s ease, transform 0.4s ease;
  scrollbar-width: thin;
  scrollbar-color: #d4af37 #f5f5f5;
}
.book-page::-webkit-scrollbar {
  width: 6px;
}
.book-page::-webkit-scrollbar-track {
  background: #f5f5f5;
  border-radius: 3px;
}
.book-page::-webkit-scrollbar-thumb {
  background: #d4af37;
  border-radius: 3px;
}
.book-page.hidden {
  opacity: 0;
  transform: translateX(-20px);
  pointer-events: none;
}
.book-page::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 2px;
  background: linear-gradient(
    transparent,
    rgba(212, 175, 55, 0.15) 20%,
    rgba(212, 175, 55, 0.15) 80%,
    transparent
  );
  opacity: 0.5;
}
.page-header {
  text-align: center;
  margin-bottom: 25px;
  padding-bottom: 15px;
  border-bottom: 2px solid #d4af37;
  position: relative;
}
.page-number {
  position: absolute;
  bottom: 20px;
  right: 25px;
  font-size: 12px;
  color: #999;
  font-family: Georgia, serif;
  font-weight: 500;
}
.page-nav {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 15px;
  align-items: center;
  z-index: 10;
}
.page-nav-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, #d4af37, #c9a732);
  color: #fff;
  border: none;
  font-size: 20px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 3px 10px rgba(212, 175, 55, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-nav-btn:hover {
  transform: scale(1.1);
  box-shadow: 0 5px 15px rgba(212, 175, 55, 0.5);
}
.page-nav-btn:active {
  transform: scale(0.95);
}
.page-nav-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
  pointer-events: none;
}
.page-indicator {
  font-size: 13px;
  color: #666;
  font-weight: 600;
  min-width: 60px;
  text-align: center;
  background: rgba(255, 255, 255, 0.9);
  padding: 5px 12px;
  border-radius: 20px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.close-book {
  position: absolute;
  top: 15px;
  right: 15px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.1);
  color: #666;
  border: none;
  font-size: 18px;
  cursor: pointer;
  z-index: 10;
  transition: all 0.2s;
}
.close-book:hover {
  background: rgba(0, 0, 0, 0.2);
  transform: scale(1.1);
}
.course-detail-title {
  font-size: 22px;
  font-weight: 700;
  color: #1a2332;
  margin: 0 0 10px;
  line-height: 1.4;
}
.course-detail-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  font-size: 12px;
  color: #6c757d;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.course-detail-icon {
  font-size: 42px;
  margin: 20px 0;
}
.course-detail-content {
  font-size: 14px;
  line-height: 1.8;
  color: #333;
}
.course-detail-content h4 {
  font-size: 16px;
  font-weight: 700;
  color: #d4af37;
  margin: 20px 0 12px;
  padding-left: 12px;
  border-left: 3px solid #d4af37;
}
.course-detail-content p {
  margin: 0 0 15px;
  text-indent: 2em;
}
.course-detail-content ul {
  margin: 0 0 15px;
  padding-left: 25px;
}
.course-detail-content li {
  margin-bottom: 8px;
  line-height: 1.6;
}
.nav-buttons {
  display: flex;
  gap: 10px;
  margin-top: 25px;
  padding-top: 20px;
  border-top: 1px solid #eee;
}
.nav-btn {
  flex: 1;
  padding: 12px;
  border-radius: 8px;
  border: 1px solid #d4af37;
  background: #fff;
  color: #d4af37;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}
.nav-btn:hover {
  background: #d4af37;
  color: #fff;
  transform: translateY(-2px);
}
.nav-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
  transform: none;
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@media (max-width: 480px) {
  .book-page {
    padding: 20px 15px;
  }
  .course-detail-title {
    font-size: 18px;
  }
  .course-detail-content {
    font-size: 13px;
  }
}

/* 财经快讯标题实时状态 */
.live-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: 12px;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.8);
  font-weight: 500;
  padding: 4px 10px;
  background: rgba(34, 197, 94, 0.15);
  border-radius: 12px;
  border: 1px solid rgba(34, 197, 94, 0.3);
}
.live-dot-small {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #22c55e;
  box-shadow: 0 0 8px rgba(34, 197, 94, 0.6);
  animation: pulse 2s ease-in-out infinite;
}
@keyframes pulse {
  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.5;
    transform: scale(0.8);
  }
}

/* 财经快讯标题横向排列 */
.hero-simple .brand {
  flex-direction: row;
  align-items: center;
  gap: 8px;
}
.hero-simple .brand-subtitle {
  color: #e8edf3;
  opacity: 1;
  font-size: 11px;
  font-weight: 500;
}

/* =================法律服务页面样式================= */
.lawyer-intro {
  background: transparent;
  padding: 16px;
  margin-top: 0;
  margin-bottom: -20px;
  position: relative;
  z-index: 9;
}
.intro-card {
  text-align: center;
  background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
  border-radius: 20px;
  padding: 20px 20px 40px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.08);
}
.intro-title {
  font-size: 20px;
  font-weight: 700;
  color: #1a2332;
  margin: 0 0 8px;
}
.intro-subtitle {
  font-size: 13px;
  color: #6c757d;
  font-style: italic;
  margin: 0 0 16px;
  font-weight: 500;
}
.intro-tagline {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.tagline-item {
  font-size: 12px;
  color: #d4af37;
  font-weight: 600;
  background: rgba(212, 175, 55, 0.1);
  padding: 6px 12px;
  border-radius: 16px;
}
.tagline-divider {
  color: #d4af37;
  font-weight: 700;
}
.intro-desc {
  font-size: 14px;
  line-height: 1.8;
  color: #6c757d;
  margin: 0 0 20px;
  text-align: left;
}
.service-scope {
  margin: 20px 0;
  text-align: left;
}
.scope-title {
  font-size: 15px;
  font-weight: 700;
  color: #1a2332;
  margin: 0 0 12px;
}
.scope-list {
  list-style: none;
  padding: 0;
  margin: 12px 0 0;
}
.scope-list li {
  padding: 12px 0 12px 20px;
  border-bottom: 1px dashed rgba(0, 0, 0, 0.08);
  font-size: 13px;
  color: #666;
  line-height: 1.8;
  position: relative;
}
.scope-list li::before {
  content: "▸";
  position: absolute;
  left: 0;
  color: #d4af37;
  font-weight: 700;
  font-size: 16px;
}
.scope-list li:last-child {
  border-bottom: none;
}
.scope-list li strong {
  color: #1a2332;
  font-weight: 600;
}
.firm-philosophy {
  margin: 20px 0;
  padding: 16px;
  background: rgba(212, 175, 55, 0.05);
  border-radius: 8px;
  border-left: 3px solid #d4af37;
  text-align: left;
}
.firm-philosophy p {
  font-size: 13px;
  line-height: 1.7;
  color: #6c757d;
  margin: 0 0 10px;
}
.firm-philosophy p:last-child {
  margin-bottom: 0;
}
.philosophy-highlight {
  color: #1a2332 !important;
  font-weight: 600;
}
.key-features {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 20px;
}
.feature-tag {
  background: linear-gradient(135deg, #d4af37, #c9a732);
  color: #fff;
  padding: 8px 16px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(212, 175, 55, 0.3);
}

/* 私募股权基金专业服务 */
.pe-services-section {
  background: transparent;
  padding: 12px 16px 16px;
  margin-bottom: 12px;
}
.pe-intro {
  background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(0, 0, 0, 0.04);
}
.pe-intro p {
  font-size: 14px;
  line-height: 1.8;
  color: #6c757d;
  margin: 0;
}
.pe-services-list {
  background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
  border-radius: 12px;
  padding: 20px 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(0, 0, 0, 0.04);
}
.services-subtitle {
  font-size: 16px;
  font-weight: 700;
  color: #1a2332;
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid #d4af37;
}
.professional-services {
  list-style: none;
  padding: 0;
  margin: 0;
}
.professional-services li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}
.professional-services li:last-child {
  border-bottom: none;
}
.service-icon {
  font-size: 24px;
  flex-shrink: 0;
  width: 20px;
  text-align: center;
}
.service-content {
  flex: 1;
}
.service-content strong {
  display: block;
  font-size: 14px;
  font-weight: 700;
  color: #1a2332;
  margin-bottom: 6px;
}
.service-content p {
  font-size: 13px;
  line-height: 1.6;
  color: #6c757d;
  margin: 0;
}

/* 专长领域 */
.expertise-section {
  background: transparent;
  padding: 12px 16px 16px;
  margin-bottom: 12px;
}
.expertise-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.expertise-card {
  background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(0, 0, 0, 0.04);
  text-align: center;
  transition: all 0.2s;
}
.expertise-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
}
.expertise-icon {
  font-size: 32px;
  margin-bottom: 10px;
}
.expertise-title {
  font-size: 15px;
  font-weight: 700;
  color: #1a2332;
  margin: 0 0 8px;
}
.expertise-desc {
  font-size: 12px;
  line-height: 1.5;
  color: #6c757d;
}
/* 律师名片 - 简约现代风格 V2（移动端优先）*/
.lawyers-section {
  background: linear-gradient(180deg, #0b3b5e 0%, #1a5a7f 100%);
  padding: 30px 12px 60px;
  margin-top: -20px;
  margin-bottom: -20px;
  border-radius: 20px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15), 0 4px 8px rgba(0, 0, 0, 0.1);
  position: relative;
  z-index: 7;
}
.lawyers-section .team-photo-container {
  margin: 0 0 16px 0;
}
.lawyers-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.business-card-v2 {
  background: linear-gradient(135deg, #fff 0%, #f8f9fa 100%);
  border-radius: 18px;
  padding: 20px 16px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15), 0 3px 6px rgba(0, 0, 0, 0.1);
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 16px;
}
.business-card-v2:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15), 0 4px 8px rgba(0, 0, 0, 0.1);
}
.business-card-v2::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #d4af37 0%, #f4d03f 50%, #d4af37 100%);
}
.card-logo-watermark {
  position: absolute;
  bottom: 10px;
  right: 10px;
  width: 100px;
  height: 100px;
  opacity: 0.06;
  pointer-events: none;
  z-index: 1;
}
.card-logo-watermark img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.card-photo-v2 {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid #d4af37;
  box-shadow: 0 4px 12px rgba(212, 175, 55, 0.3);
  flex-shrink: 0;
  position: relative;
  z-index: 2;
}
.card-photo-v2 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  image-rendering: auto;
}
.card-info-v2 {
  width: 100%;
  position: relative;
  z-index: 2;
}
.lawyer-name-v2 {
  font-size: 22px;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0 0 4px;
  letter-spacing: 0.5px;
}
.lawyer-name-en-v2 {
  font-size: 12px;
  color: #666;
  margin: 0 0 6px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
}
.lawyer-position-v2 {
  font-size: 12px;
  color: #999;
  margin: 0 0 12px;
  font-weight: 500;
}
.expertise-line {
  width: 50px;
  height: 2px;
  background: linear-gradient(90deg, #d4af37, transparent);
  margin: 0 auto 12px;
}
.expertise-tags-v2 {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
  justify-content: center;
}
.tag-v2 {
  display: inline-block;
  padding: 5px 12px;
  background: linear-gradient(135deg, #d4af37, #c9a732);
  color: #fff;
  font-size: 10px;
  font-weight: 600;
  border-radius: 16px;
  box-shadow: 0 2px 6px rgba(212, 175, 55, 0.3);
  transition: all 0.2s;
}
.tag-v2:hover {
  transform: scale(1.05);
  box-shadow: 0 3px 10px rgba(212, 175, 55, 0.4);
}
.lawyer-intro-v2 {
  font-size: 12px;
  line-height: 1.6;
  color: #666;
  margin: 0;
  text-align: justify;
  padding: 0 8px;
}
@media (min-width: 769px) {
  .business-card-v2 {
    flex-direction: row;
    text-align: left;
    padding: 30px;
    gap: 30px;
    align-items: flex-start;
  }
  .card-photo-v2 {
    width: 120px;
    height: 120px;
  }
  .card-logo-watermark {
    width: 150px;
    height: 150px;
    bottom: auto;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
  }
  .lawyer-name-v2 {
    font-size: 26px;
  }
  .lawyer-name-en-v2 {
    font-size: 14px;
  }
  .lawyer-position-v2 {
    font-size: 13px;
  }
  .expertise-line {
    margin: 0 0 16px;
    width: 60px;
  }
  .expertise-tags-v2 {
    justify-content: flex-start;
  }
  .lawyer-intro-v2 {
    font-size: 13px;
    padding: 0;
  }
}

/* 团队合照（移动端优先）*/
.team-photo-container {
  background: linear-gradient(135deg, #fff 0%, #f8f9fa 100%);
  border-radius: 20px;
  padding: 0;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15), 0 3px 6px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  position: relative;
  margin-top: -10px;
}
.team-photo-container::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #d4af37 0%, #f4d03f 50%, #d4af37 100%);
  z-index: 1;
}
.team-photo-img {
  width: 100%;
  height: auto;
  display: block;
  margin-top: 3px;
  image-rendering: auto;
}
.team-photo-desc {
  padding: 16px 20px 18px;
  background: #fff;
  position: relative;
}
.team-photo-desc::before {
  content: "";
  position: absolute;
  top: 0;
  left: 20px;
  right: 20px;
  height: 2px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    #d4af37 50%,
    transparent 100%
  );
}
.team-photo-desc p {
  font-size: 12px;
  line-height: 1.7;
  color: #666;
  margin: 8px 0 0;
  text-align: justify;
}
.team-photo-desc strong {
  color: #1a1a1a;
  font-weight: 600;
}
@media (min-width: 769px) {
  .team-photo-container {
    border-radius: 20px;
  }
  .team-photo-container::before {
    height: 4px;
  }
  .team-photo-img {
    margin-top: 4px;
  }
  .team-photo-desc {
    padding: 20px 30px;
  }
  .team-photo-desc p {
    font-size: 14px;
    line-height: 1.8;
  }
}
/* 自动轮播卡片 - 服务范围 & 成功案例 */
.services-section {
  background: transparent;
  padding: 0 16px 20px;
  margin-top: -45px;
  margin-bottom: -20px;
  position: relative;
  z-index: 10;
}
.cases-section {
  background: transparent;
  padding: 0 16px 20px;
  margin-top: -20px;
  margin-bottom: 12px;
  position: relative;
  z-index: 8;
}
.auto-carousel-container {
  position: relative;
  overflow: hidden;
  padding: 0;
}
.auto-carousel-track {
  position: relative;
  min-height: 300px;
}
.carousel-card {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  background: linear-gradient(135deg, #fff 0%, #f8f9fa 100%);
  border-radius: 20px;
  padding: 24px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.08);
  opacity: 0;
  transform: translateX(100px);
  transition: all 0.6s ease;
  pointer-events: none;
  border: 2px solid transparent;
}
.carousel-card.active {
  opacity: 1;
  transform: translateX(0);
  pointer-events: auto;
  border-color: rgba(212, 175, 55, 0.2);
}
.carousel-icon {
  font-size: 56px;
  text-align: center;
  margin: 0 0 20px;
  filter: drop-shadow(0 3px 6px rgba(0, 0, 0, 0.15));
}
.carousel-title {
  font-size: 20px;
  font-weight: 700;
  color: #1a2332;
  margin: 0 0 20px;
  text-align: center;
  padding-bottom: 12px;
  border-bottom: 3px solid #d4af37;
  line-height: 1.4;
  position: relative;
}
.carousel-items {
  list-style: none;
  padding: 0;
  margin: 0;
}
.carousel-items li {
  padding: 10px 0 10px 20px;
  color: #666;
  font-size: 14px;
  line-height: 1.7;
  border-bottom: 1px dashed rgba(0, 0, 0, 0.06);
  position: relative;
}
.carousel-items li::before {
  content: "▸";
  position: absolute;
  left: 0;
  color: #d4af37;
  font-weight: 700;
}
.carousel-items li:last-child {
  border-bottom: none;
}
.case-tag {
  display: inline-block;
  padding: 6px 16px;
  background: linear-gradient(135deg, #d4af37, #c9a732);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  border-radius: 20px;
  margin-bottom: 16px;
  box-shadow: 0 2px 6px rgba(212, 175, 55, 0.3);
}
.case-content {
  margin-top: 16px;
}
.case-content p {
  margin: 10px 0;
  color: #666;
  font-size: 14px;
  line-height: 1.7;
}
.case-content p strong {
  color: #1a2332;
  font-weight: 600;
}
.carousel-dots {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 20px;
  padding: 12px 0;
}
.carousel-dots .dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #ccc;
  cursor: pointer;
  transition: all 0.3s ease;
}
.carousel-dots .dot.active {
  background: #d4af37;
  width: 28px;
  border-radius: 5px;
}
.carousel-dots .dot:hover {
  background: #b8982e;
  transform: scale(1.2);
}

/* 成功案例 */
.cases-section {
  background: transparent;
  padding: 12px 16px 16px;
  margin-bottom: 12px;
}
.cases-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.case-card {
  background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(0, 0, 0, 0.04);
  position: relative;
}
.case-tag {
  display: inline-block;
  padding: 4px 12px;
  background: linear-gradient(135deg, #d4af37, #c9a732);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  border-radius: 12px;
  margin-bottom: 10px;
}
.case-title {
  font-size: 16px;
  font-weight: 700;
  color: #1a2332;
  margin: 0 0 12px;
}
.case-desc {
  font-size: 13px;
  line-height: 1.7;
  color: #6c757d;
}
.case-desc p {
  margin: 0 0 8px;
}
.case-desc strong {
  color: #1a2332;
  font-weight: 600;
}

/* 行业洞察 */
.insights-section {
  background: transparent;
  padding: 12px 16px 16px;
  margin-bottom: 12px;
}
.insights-grid {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.insight-card {
  background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(0, 0, 0, 0.04);
  transition: all 0.2s;
}
.insight-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
}
.insight-date {
  font-size: 12px;
  color: #95a5a6;
  margin-bottom: 8px;
}
.insight-title {
  font-size: 16px;
  font-weight: 700;
  color: #1a2332;
  margin: 0 0 10px;
  line-height: 1.4;
}
.insight-summary {
  font-size: 13px;
  line-height: 1.7;
  color: #6c757d;
  margin: 0 0 10px;
}
.insight-link {
  font-size: 13px;
  color: #d4af37;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s;
}
.insight-link:hover {
  color: #c9a732;
}

/* 行业洞察最后一个section底部留空 */
.insights-section {
  padding-bottom: 80px;
}

/* ========================================
   市场数据页面样式 - 混合布局
   ======================================== */

/* 市场内容区 */
.market-content-compact {
  padding: 0 0 80px;
  background: #f8f9fa;
}

/* 市场紧凑标签 */
.market-tabs-compact {
  display: flex;
  gap: 0;
  padding: 0;
  background: #fff;
  border-bottom: 1px solid #e9ecef;
  position: sticky;
  top: 0;
  z-index: 99;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}
.market-tab-compact {
  flex: 1;
  padding: 14px 16px;
  background: transparent;
  border: none;
  border-bottom: 3px solid transparent;
  font-size: 14px;
  font-weight: 600;
  color: #6c757d;
  cursor: pointer;
  transition: all 0.2s;
  outline: none;
  text-align: center;
}
.market-tab-compact.active {
  color: #0b3b5e;
  border-bottom-color: #0b3b5e;
  background: rgba(11, 59, 94, 0.02);
}
.market-tab-compact:hover:not(.active) {
  color: #495057;
  background: rgba(0, 0, 0, 0.02);
}

/* 板块内容区 */
.market-section-compact {
  padding: 16px 12px;
  animation: fadeIn 0.3s ease-out;
}
.market-section-compact.hidden {
  display: none;
}

/* 板块头部 */
.section-header-compact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
  background: transparent;
  margin-bottom: 12px;
}
.section-header-compact h3 {
  font-size: 13px;
  font-weight: 600;
  color: #495057;
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.data-count {
  font-size: 11px;
  font-weight: 500;
  color: #6c757d;
  background: transparent;
  padding: 0;
}

/* 债券筛选 */
.bond-filter-compact {
  display: flex;
  gap: 6px;
  margin-bottom: 12px;
  padding: 0 4px;
}
.filter-btn-compact {
  padding: 6px 12px;
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: 16px;
  font-size: 11px;
  font-weight: 500;
  color: #6c757d;
  cursor: pointer;
  transition: all 0.2s;
  outline: none;
}
.filter-btn-compact.active {
  background: #0b3b5e;
  color: #fff;
  border-color: #0b3b5e;
}
.filter-btn-compact:hover:not(.active) {
  background: #f8f9fa;
  border-color: #adb5bd;
}

/* 加载占位符 */
.loading-compact {
  padding: 40px 20px;
  text-align: center;
  font-size: 13px;
  color: #adb5bd;
}

/* 数据闪烁动画 */
@keyframes dataPulse {
  0% {
    border-color: #dee2e6;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
  }
  50% {
    border-color: #0b3b5e;
    box-shadow: 0 4px 12px rgba(11, 59, 94, 0.2);
  }
  100% {
    border-color: #dee2e6;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
  }
}
.data-pulse {
  animation: dataPulse 0.6s ease-out;
}

/* ========================================
   基金板块 - 移动端双列卡片
   ======================================== */
.data-table {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  padding: 0;
}
.fund-card-unique {
  background: #fff;
  padding: 16px 12px;
  border-radius: 12px;
  border: none;
  position: relative;
  transition: all 0.15s;
  display: flex;
  flex-direction: column;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  min-height: 140px;
}
.fund-card-unique:active {
  transform: scale(0.96);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}

/* 基金顶部 */
.fund-header-row {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: auto;
}
.fund-title-group {
  width: 100%;
}
.fund-name-large {
  font-size: 14px;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 6px;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 40px;
}
.fund-meta-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
}
.fund-code-tag {
  font-size: 11px;
  color: #999;
}
.fund-type-tag {
  padding: 3px 6px;
  background: #f0f0f0;
  color: #666;
  font-size: 10px;
  font-weight: 400;
  border-radius: 4px;
}
.fund-badge-hot {
  padding: 3px 6px;
  background: linear-gradient(135deg, #ff6b6b, #ee5a6f);
  color: #fff;
  font-size: 10px;
  font-weight: 500;
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(238, 90, 111, 0.3);
}
.fund-badge-stable {
  padding: 3px 6px;
  background: linear-gradient(135deg, #4facfe, #00f2fe);
  color: #fff;
  font-size: 10px;
  font-weight: 500;
  border-radius: 4px;
}
.fund-badge-new {
  padding: 3px 6px;
  background: linear-gradient(135deg, #ffd89b, #19547b);
  color: #fff;
  font-size: 10px;
  font-weight: 500;
  border-radius: 4px;
}

/* 净值显示 */
.fund-nav-display {
  text-align: center;
  margin-top: auto;
  padding-top: 12px;
}
.nav-number {
  font-size: 24px;
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.2;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}
.nav-change-badge {
  display: inline-block;
  margin-top: 6px;
  padding: 2px 8px;
  font-size: 13px;
  font-weight: 600;
  border-radius: 4px;
}
.nav-change-badge.positive {
  color: #fff;
  background: #f5222d;
}
.nav-change-badge.negative {
  color: #fff;
  background: #52c41a;
}

/* 底部收益率 - 隐藏 */
.fund-returns-grid {
  display: none;
}
.fund-footer-info {
  display: none;
}

/* ========================================
   IPO板块 - 移动端双列卡片
   ======================================== */
.ipo-card-unique {
  background: #fff;
  padding: 16px 12px;
  border-radius: 12px;
  border: none;
  transition: all 0.15s;
  display: flex;
  flex-direction: column;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  min-height: 140px;
}
.ipo-card-unique:active {
  transform: scale(0.96);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}

/* IPO顶部状态 */
.ipo-status-bar {
  display: inline-block;
  padding: 4px 10px;
  font-size: 10px;
  font-weight: 600;
  border-radius: 4px;
  margin-bottom: 10px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.ipo-status-bar.applying {
  background: linear-gradient(135deg, #f5222d, #ff4d4f);
  color: #fff;
}
.ipo-status-bar.listing {
  background: linear-gradient(135deg, #faad14, #ffc53d);
  color: #fff;
}
.ipo-status-bar.upcoming {
  background: linear-gradient(135deg, #8c8c8c, #bfbfbf);
  color: #fff;
}
.board-label {
  display: inline-block;
  padding: 3px 7px;
  background: #f5f5f5;
  color: #666;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 400;
  margin-left: 6px;
}
.board-label.sci {
  background: #fff1f0;
  color: #f5222d;
  border: 1px solid #ffccc7;
}
.board-label.gem {
  background: #e6f7ff;
  color: #1890ff;
  border: 1px solid #91d5ff;
}

/* IPO主内容 */
.ipo-main-content {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.ipo-title-section {
  margin-bottom: auto;
}
.ipo-stock-name {
  font-size: 14px;
  font-weight: 600;
  color: #1a1a1a;
  margin: 0 0 8px;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 40px;
}
.ipo-stock-code {
  font-size: 11px;
  color: #999;
  display: inline-block;
  margin-right: 6px;
}
.ipo-industry-tag {
  padding: 3px 6px;
  background: #fffbe6;
  color: #d48806;
  font-size: 10px;
  font-weight: 400;
  border-radius: 4px;
  border: 1px solid #ffe58f;
}

/* IPO底部价格 */
.ipo-price-row {
  margin-top: auto;
  padding-top: 12px;
  text-align: center;
}
.price-box {
  display: block;
}
.price-label {
  font-size: 11px;
  color: #999;
  display: block;
  margin-bottom: 4px;
}
.price-number {
  font-size: 24px;
  font-weight: 700;
  color: #f5222d;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  line-height: 1.2;
}
.data-box {
  display: none;
}
.ipo-timeline-bar {
  display: none;
}

/* ========================================
   债券板块 - 移动端列表布局
   ======================================== */
.bond-bar-item {
  background: #fff;
  padding: 14px 16px;
  border-radius: 12px;
  border: none;
  transition: all 0.15s;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.bond-bar-item:active {
  transform: scale(0.98);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}
/* 债券左侧信息 */
.bond-left-section {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
  min-width: 0;
  overflow: hidden;
}
.bond-name-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 2px;
}
.bond-name {
  font-size: 14px;
  font-weight: 600;
  color: #1a1a1a;
  line-height: 1.4;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bond-code {
  font-size: 11px;
  color: #999;
  font-weight: 400;
  flex-shrink: 0;
}
.bond-meta-row {
  display: flex;
  align-items: center;
  gap: 4px;
  overflow: hidden;
}
.meta-text {
  font-size: 10px;
  color: #666;
  white-space: nowrap;
}
.rating-badge {
  padding: 2px 6px;
  background: linear-gradient(135deg, #fff7e6, #ffe7ba);
  color: #d48806;
  font-size: 9px;
  font-weight: 500;
  border-radius: 4px;
  border: 1px solid #ffe58f;
  margin-left: 2px;
  flex-shrink: 0;
}

/* 债券右侧数据 */
.bond-right-section {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
  align-items: center;
}
.bond-data-col {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1px;
  min-width: 45px;
}
.bond-data-col.highlight {
  background: transparent;
  padding: 0;
}
.data-label-small {
  font-size: 10px;
  color: #999;
  font-weight: 400;
  line-height: 1.2;
}
.data-value-medium {
  font-size: 15px;
  font-weight: 700;
  color: #1a1a1a;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  line-height: 1.2;
}
.data-value-large {
  font-size: 17px;
  font-weight: 700;
  color: #1a1a1a;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  line-height: 1.2;
}
.data-value-large.high {
  color: #f5222d;
}
.data-value-small {
  font-size: 13px;
  font-weight: 600;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  line-height: 1.2;
}
.data-value-small.up {
  color: #f5222d;
}
.data-value-small.down {
  color: #52c41a;
}

/* 移动端专用 - 无需响应式 */

/* ============================================
   Wind金融终端风格 - 专业数据展示
   ============================================ */

/* 主容器 */
.market-content-mobile {
  padding: 0 0 20px;
  background: #f7f8fa;
  min-height: calc(100vh - 140px);
  max-height: calc(100vh - 140px);
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}
/* 顶部标签栏 */
.market-tabs-mobile {
  display: flex;
  gap: 0;
  padding: 0;
  background: rgba(255, 255, 255, 0.98);
  border-bottom: 2px solid rgba(201, 155, 43, 0.3);
  position: sticky;
  top: 0;
  z-index: 100;
  backdrop-filter: blur(12px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.market-tab-mobile {
  flex: 1;
  padding: 14px 8px;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  font-size: 14px;
  font-weight: 600;
  color: #666;
  cursor: pointer;
  transition: all 0.15s ease;
  outline: none;
  text-align: center;
  letter-spacing: 0.5px;
}

.market-tab-mobile.active {
  color: #c99b2b;
  border-bottom-color: #c99b2b;
  background: rgba(201, 155, 43, 0.08);
}

.market-tab-mobile:active {
  background: rgba(70, 158, 255, 0.12);
}

/* 板块容器 */
.market-section-mobile {
  padding: 0;
  animation: fadeIn 0.2s ease-out;
}

.market-section-mobile.hidden {
  display: none;
}
/* 板块标题 */
.section-header-mobile {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 12px;
  background: rgba(14, 43, 68, 0.7);
  border-bottom: 1px solid rgba(212, 175, 55, 0.1);
}

.section-header-mobile h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  color: #e8edf3;
  letter-spacing: 0.5px;
}

.data-count-mobile {
  font-size: 12px;
  color: #8b9aa8;
  padding: 3px 10px;
  background: rgba(0, 0, 0, 0.3);
  border-radius: 4px;
  font-weight: 600;
  font-family: monospace;
}

/* 列表容器 */
.market-list-mobile {
  display: block;
}

/* 加载状态 */
.loading-mobile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  color: #8b9aa8;
}

.loading-spinner {
  width: 20px;
  height: 20px;
  border: 3px solid rgba(100, 120, 150, 0.2);
  border-top-color: #4a9eff;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
  margin-bottom: 12px;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

.loading-mobile p {
  margin: 0;
  font-size: 13px;
}

/* ============================================
   Wind风格表格/方格 - 专业金融数据展示
   ============================================ */

/* Wind方格布局 - 基金专用 */
.wind-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  padding: 8px;
  background: #f7f8fa;
  min-height: auto;
  grid-auto-rows: minmax(90px, auto);
}

.wind-tile {
  background: linear-gradient(135deg, #fff, #fffbf0);
  border: 1px solid rgba(201, 155, 43, 0.3);
  border-radius: 8px;
  padding: 9px;
  min-height: 90px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  transition: all 0.2s ease;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(5, 15, 30, 0.06);
}

.wind-tile:active {
  background: linear-gradient(135deg, #fffbf0, #fff8e1);
  border-color: rgba(201, 155, 43, 0.5);
  transform: scale(0.97);
}

.tile-name {
  font-size: 11px;
  font-weight: 600;
  color: #222;
  line-height: 1.2;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  min-height: 26px;
  margin-bottom: 4px;
}

.tile-name.hot-fund {
  color: #ff4757;
}
.tile-name.stable-fund {
  color: #26de81;
}

.tile-code {
  font-size: 10px;
  color: #999;
  font-family: monospace;
  margin-bottom: 6px;
}

.tile-main {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.tile-nav {
  font-size: 16px;
  font-weight: 800;
  color: #222;
  font-family: monospace;
  line-height: 1;
}

.tile-change {
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
}

.tile-change.up {
  color: #ff4757;
}
.tile-change.down {
  color: #2ed573;
}

/* 数据更新闪烁动画 */
@keyframes flashBorderUp {
  0% {
    border-color: rgba(201, 155, 43, 0.3);
    background: linear-gradient(135deg, #fff, #fffbf0);
  }
  25% {
    border-color: #ff4757;
    background: linear-gradient(135deg, #fff8f0, #ffe8e8);
    box-shadow: 0 0 12px rgba(255, 71, 87, 0.6);
  }
  50% {
    border-color: #ff4757;
    background: linear-gradient(135deg, #fff0f0, #ffd8d8);
    box-shadow: 0 0 16px rgba(255, 71, 87, 0.8);
  }
  75% {
    border-color: #ff4757;
    background: linear-gradient(135deg, #fff8f0, #ffe8e8);
    box-shadow: 0 0 12px rgba(255, 71, 87, 0.6);
  }
  100% {
    border-color: rgba(201, 155, 43, 0.3);
    background: linear-gradient(135deg, #fff, #fffbf0);
    box-shadow: 0 2px 6px rgba(5, 15, 30, 0.06);
  }
}

@keyframes flashBorderDown {
  0% {
    border-color: rgba(201, 155, 43, 0.3);
    background: linear-gradient(135deg, #fff, #fffbf0);
  }
  25% {
    border-color: #2ed573;
    background: linear-gradient(135deg, #f0fff8, #e8ffe8);
    box-shadow: 0 0 12px rgba(46, 213, 115, 0.6);
  }
  50% {
    border-color: #2ed573;
    background: linear-gradient(135deg, #e8fff0, #d8ffd8);
    box-shadow: 0 0 16px rgba(46, 213, 115, 0.8);
  }
  75% {
    border-color: #2ed573;
    background: linear-gradient(135deg, #f0fff8, #e8ffe8);
    box-shadow: 0 0 12px rgba(46, 213, 115, 0.6);
  }
  100% {
    border-color: rgba(201, 155, 43, 0.3);
    background: linear-gradient(135deg, #fff, #fffbf0);
    box-shadow: 0 2px 6px rgba(5, 15, 30, 0.06);
  }
}

@keyframes flashBorderUpdate {
  0% {
    border-color: rgba(255, 255, 255, 0.05);
  }
  25% {
    border-color: #4a9eff;
    box-shadow: 0 0 6px rgba(74, 158, 255, 0.5);
  }
  50% {
    border-color: #4a9eff;
    box-shadow: 0 0 10px rgba(74, 158, 255, 0.7);
  }
  75% {
    border-color: #4a9eff;
    box-shadow: 0 0 6px rgba(74, 158, 255, 0.5);
  }
  100% {
    border-color: rgba(255, 255, 255, 0.05);
    box-shadow: none;
  }
}

.wind-tile.flash-up {
  animation: flashBorderUp 0.8s ease-in-out;
}

.wind-tile.flash-down {
  animation: flashBorderDown 0.8s ease-in-out;
}

/* 债券表格行闪烁动画 - 上涨（增强版，更明显） */
@keyframes flashRowUp {
  0%,
  100% {
    border-color: rgba(0, 0, 0, 0.08);
    background: #f8f9fa;
    box-shadow: 0 2px 4px rgba(5, 15, 30, 0.04), 0 1px 2px rgba(5, 15, 30, 0.02);
    transform: scale(1);
  }
  50% {
    border-color: rgba(255, 71, 87, 0.7);
    background: linear-gradient(90deg, #fff5f5, #ffe8e8, #fff5f5);
    box-shadow: 0 0 0 2px rgba(255, 71, 87, 0.3),
      0 4px 16px rgba(255, 71, 87, 0.2), 0 2px 8px rgba(255, 71, 87, 0.15);
    transform: scale(1.02);
  }
}

/* 债券表格行闪烁动画 - 下跌（增强版，更明显） */
@keyframes flashRowDown {
  0%,
  100% {
    border-color: rgba(0, 0, 0, 0.08);
    background: #f8f9fa;
    box-shadow: 0 2px 4px rgba(5, 15, 30, 0.04), 0 1px 2px rgba(5, 15, 30, 0.02);
    transform: scale(1);
  }
  50% {
    border-color: rgba(46, 213, 115, 0.7);
    background: linear-gradient(90deg, #f0fff7, #e6ffe6, #f0fff7);
    box-shadow: 0 0 0 2px rgba(46, 213, 115, 0.3),
      0 4px 16px rgba(46, 213, 115, 0.2), 0 2px 8px rgba(46, 213, 115, 0.15);
    transform: scale(1.02);
  }
}

.wind-table-row.flash-up {
  animation: flashRowUp 1s ease-in-out;
  will-change: border-color, box-shadow, background, transform;
}

.wind-table-row.flash-down {
  animation: flashRowDown 1s ease-in-out;
  will-change: border-color, box-shadow, background, transform;
}

.wind-table-row.flash-update {
  animation: flashBorderUpdate 0.8s ease-in-out;
  background: rgba(74, 158, 255, 0.05);
}

/* 价格字段单独闪烁动画 - 增强版，更明显 */
@keyframes flashPriceHigh {
  0%,
  100% {
    color: #444;
    background: transparent;
    transform: scale(1);
    box-shadow: none;
  }
  50% {
    color: #fff;
    background: linear-gradient(135deg, #ff4757, #ff6b7a);
    border-radius: 6px;
    padding: 3px 8px;
    transform: scale(1.15);
    box-shadow: 0 0 12px rgba(255, 71, 87, 0.5),
      0 2px 8px rgba(255, 71, 87, 0.3);
  }
}

@keyframes flashPriceLow {
  0%,
  100% {
    color: #444;
    background: transparent;
    transform: scale(1);
    box-shadow: none;
  }
  50% {
    color: #fff;
    background: linear-gradient(135deg, #2ed573, #54e690);
    border-radius: 6px;
    padding: 3px 8px;
    transform: scale(1.15);
    box-shadow: 0 0 12px rgba(46, 213, 115, 0.5),
      0 2px 8px rgba(46, 213, 115, 0.3);
  }
}

.col-high.flash-price,
.col-low.flash-price,
.col-current.flash-price {
  display: inline-block;
  animation-duration: 1.2s;
  animation-timing-function: ease-in-out;
  will-change: color, background, transform, box-shadow;
}

.col-high.flash-price,
.col-current.flash-price.up {
  animation-name: flashPriceHigh;
}

.col-low.flash-price,
.col-current.flash-price.down {
  animation-name: flashPriceLow;
}

/* 根据当前涨跌决定闪烁颜色 */
.col-current.flash-price:not(.up):not(.down) {
  animation-name: flashPriceHigh;
}

/* 详情弹窗 */
.detail-modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  display: none;
}

.detail-modal.active {
  display: block;
}
.detail-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(4px);
}

.detail-container {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #f7f8fa;
  overflow-y: auto;
  animation: slideUp 0.3s ease-out;
}

@keyframes slideUp {
  from {
    transform: translateY(100%);
  }
  to {
    transform: translateY(0);
  }
}
.detail-header {
  position: sticky;
  top: 0;
  background: linear-gradient(180deg, #0e2b44, #091c2e);
  backdrop-filter: blur(12px);
  border-bottom: none;
  padding: 14px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  z-index: 100;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
}

.detail-back {
  background: rgba(255, 255, 255, 0.15);
  border: none;
  color: #fff;
  padding: 8px;
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}

.detail-back:active {
  transform: scale(0.9);
  background: rgba(255, 255, 255, 0.25);
}

.detail-title {
  flex: 1;
  font-size: 17px;
  font-weight: 700;
  color: #e8edf3;
  margin: 0;
}

.detail-actions {
  width: 40px;
}

.detail-content {
  padding: 16px;
  padding-bottom: 80px;
  background: transparent;
}

/* 详情卡片 */
.detail-card {
  background: linear-gradient(135deg, #fff, #fffbf0);
  border: 1px solid rgba(201, 155, 43, 0.3);
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
}

/* 紧凑卡片样式 */
.detail-card.compact-card {
  padding: 8px;
  margin-bottom: 6px;
}

.detail-section-title {
  font-size: 13px;
  font-weight: 600;
  color: #222;
  margin: 0 0 6px 0;
  line-height: 1.3;
}

/* 债券信息网格 - 三列布局 */
.bond-info-grid-3col {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
}

.bond-info-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 6px;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 6px;
  min-height: 50px;
}

.bond-info-item.full-row {
  grid-column: 1 / -1;
}

.bond-info-item.highlight-item {
  background: linear-gradient(
    135deg,
    rgba(201, 155, 43, 0.12),
    rgba(201, 155, 43, 0.08)
  );
  border: 1px solid rgba(201, 155, 43, 0.3);
}

.bond-label {
  font-size: 11px;
  color: #999;
  line-height: 1.2;
}

.bond-value {
  font-size: 13px;
  color: #222;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  line-height: 1.3;
  word-break: break-all;
}

.bond-value.rating-highlight {
  font-weight: 700;
  color: #c99b2b;
  font-size: 15px;
}

.bond-value.rate-highlight {
  font-weight: 700;
  color: #c99b2b;
  font-size: 15px;
}

.bond-value.price-big {
  font-size: 18px;
  font-weight: 700;
}

/* 紧凑文本 */
.compact-text {
  font-size: 13px;
  line-height: 1.5;
}

.compact-text p {
  margin: 0 0 8px 0;
}

.compact-text p:last-child {
  margin-bottom: 0;
}

/* 投资分析特殊卡片 - 白色背景 */
.detail-card.analysis-card {
  background: linear-gradient(135deg, #fff, #fffbf0);
  border: 1px solid rgba(201, 155, 43, 0.3);
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
}

/* 基金信息头部 - 与标题融合 */
.fund-info-header {
  padding: 16px;
  margin-bottom: 12px;
  background: linear-gradient(135deg, #fff, #fffbf0);
  border: 1px solid rgba(201, 155, 43, 0.3);
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.08);
}

.fund-info-row {
  display: flex;
  gap: 16px;
  margin-bottom: 10px;
}

.fund-info-row:last-child {
  margin-bottom: 0;
}
.fund-info-item {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.fund-info-label {
  font-size: 12px;
  color: #666;
  white-space: nowrap;
  flex-shrink: 0;
}

.fund-info-value {
  font-size: 13px;
  color: #222;
  font-weight: 500;
  text-align: right;
  flex: 1;
}
.fund-info-value.positive {
  color: #ff4757;
}

.fund-info-value.negative {
  color: #2ed573;
}

.detail-card-title {
  font-size: 15px;
  font-weight: 600;
  color: #222;
  margin: 0 0 12px 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

.detail-card-title svg {
  width: 18px;
  height: 18px;
  color: #4a9eff;
}

/* 基本信息 */
.detail-info-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.detail-info-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.detail-info-label {
  font-size: 12px;
  color: #666;
}

.detail-info-value {
  font-size: 16px;
  font-weight: 600;
  color: #222;
}

.detail-info-value.up {
  color: #ff4757;
}

.detail-info-value.down {
  color: #2ed573;
}

/* 性能数据 */
.detail-perf-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.detail-perf-item {
  background: linear-gradient(
    135deg,
    rgba(90, 167, 255, 0.08),
    rgba(42, 102, 255, 0.06)
  );
  border: 1px solid rgba(90, 167, 255, 0.2);
  border-radius: 8px;
  padding: 10px;
  text-align: center;
  box-shadow: 0 2px 8px rgba(90, 167, 255, 0.1);
  position: relative;
  overflow: hidden;
}

.detail-perf-item::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    120% 180% at -10% -20%,
    rgba(90, 167, 255, 0.05),
    transparent 65%
  );
  pointer-events: none;
}

/* 图表容器 */
.detail-chart {
  background: rgba(15, 30, 50, 0.5);
  border: 1px solid rgba(100, 120, 150, 0.1);
  border-radius: 8px;
  padding: 12px;
  margin-top: 12px;
  min-height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chart-placeholder {
  text-align: center;
  color: #8b95a5;
}

.chart-placeholder svg {
  width: 48px;
  height: 48px;
  margin-bottom: 8px;
  opacity: 0.5;
}

/* 历史数据表格 */
.detail-history-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 8px;
}

.detail-history-table th {
  background: rgba(15, 30, 50, 0.5);
  color: #8b95a5;
  font-size: 12px;
  font-weight: 600;
  padding: 8px;
  text-align: left;
  border-bottom: 1px solid rgba(100, 120, 150, 0.1);
}

.detail-history-table td {
  padding: 8px;
  font-size: 13px;
  color: #e8edf3;
  border-bottom: 1px solid rgba(100, 120, 150, 0.08);
}

.detail-history-table tr:last-child td {
  border-bottom: none;
}

.detail-history-table td.positive {
  color: #ff4757;
}

.detail-history-table td.negative {
  color: #2ed573;
}

/* 资产配置圆环图 */
.detail-allocation {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 12px;
}
.allocation-chart {
  flex-shrink: 0;
  width: 120px;
  height: 120px;
  position: relative;
}

.allocation-ring {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: conic-gradient(
    from 0deg,
    #ffa502 0deg 122deg,
    #4a9eff 122deg 158deg,
    #ff4757 158deg 266deg,
    #2ed573 266deg 360deg
  );
  position: relative;
}
.allocation-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 75px;
  height: 75px;
  background: rgba(20, 35, 55, 0.95);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.allocation-center-label {
  font-size: 10px;
  color: #8b95a5;
}

.allocation-center-value {
  font-size: 14px;
  font-weight: 700;
  color: #e8edf3;
}
.allocation-list {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.allocation-item {
  display: flex;
  align-items: center;
  gap: 8px;
}

.allocation-color {
  width: 8px;
  height: 8px;
  border-radius: 2px;
  flex-shrink: 0;
}

.allocation-color.stock {
  background: #ffa502;
}

.allocation-color.bond {
  background: #4a9eff;
}

.allocation-color.money {
  background: #ff4757;
}

.allocation-color.other {
  background: #2ed573;
}

.allocation-name {
  font-size: 12px;
  color: #666;
  width: 60px;
  flex-shrink: 0;
}

.allocation-percent {
  font-size: 13px;
  font-weight: 600;
  color: #222;
  width: 45px;
  text-align: right;
  flex-shrink: 0;
}

.allocation-trend {
  font-size: 11px;
  text-align: right;
  width: 50px;
  flex-shrink: 0;
}

.allocation-trend.up {
  color: #ff4757;
}

.allocation-trend.down {
  color: #2ed573;
}

/* 简单折线图 */
.simple-line-chart {
  margin-top: 0;
  padding: 4px 0;
}

.simple-line-chart svg {
  width: 100%;
  height: 70px;
  display: block;
  margin-bottom: 0;
}

.chart-labels {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 0 4px;
}

.chart-label-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.label-time {
  font-size: 10px;
  color: #666;
}

.label-value {
  font-size: 11px;
  font-weight: 600;
  color: #222;
}

.label-value.positive {
  color: #ff4757;
}

.label-value.negative {
  color: #2ed573;
}

/* 持仓占比 - 圆环图 */
.holdings-ring {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: conic-gradient(
    from 0deg,
    #ffa502 0deg 29.52deg,
    #ff6348 29.52deg 52.92deg,
    #a29bfe 52.92deg 73.8deg,
    #2ed573 73.8deg 91.44deg,
    #fd79a8 91.44deg 106.92deg,
    #fdcb6e 106.92deg 360deg
  );
  position: relative;
}

/* IPO股东结构饼图 */
.ipo-ring {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: conic-gradient(
    from 0deg,
    #ffa502 0deg 126.72deg,
    #ff6348 126.72deg 229.68deg,
    #a29bfe 229.68deg 310.32deg,
    #2ed573 310.32deg 342.36deg,
    #fd79a8 342.36deg 360deg
  );
  position: relative;
}

/* 债券投资者结构饼图 */
.bond-ring {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: conic-gradient(
    from 0deg,
    #ffa502 0deg 153deg,
    #ff6348 153deg 249.48deg,
    #a29bfe 249.48deg 306deg,
    #2ed573 306deg 339.12deg,
    #fd79a8 339.12deg 360deg
  );
  position: relative;
}

.allocation-color.holding-1 {
  background: #ffa502;
}

.allocation-color.holding-2 {
  background: #ff6348;
}

.allocation-color.holding-3 {
  background: #a29bfe;
}
.allocation-color.holding-5 {
  background: #fd79a8;
}

.detail-perf-label {
  font-size: 11px;
  color: #666;
  margin-bottom: 4px;
  position: relative;
  z-index: 1;
}

.detail-perf-value {
  font-size: 15px;
  font-weight: 700;
  color: #222;
  position: relative;
  z-index: 1;
}
.detail-perf-value.up {
  color: #ff4757;
}

.detail-perf-value.down {
  color: #2ed573;
}

/* 详细数据列表 */
.detail-data-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.detail-data-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.detail-data-row:last-child {
  border-bottom: none;
}

.detail-data-label {
  font-size: 13px;
  color: #8b95a5;
}

.detail-data-value {
  font-size: 14px;
  font-weight: 500;
  color: #e8edf3;
}

/* 分析文本 */
.detail-analysis {
  font-size: 14px;
  line-height: 1.6;
  color: #555;
}

.detail-analysis p {
  margin: 0 0 10px 0;
}

.detail-analysis p:last-child {
  margin-bottom: 0;
}

.detail-analysis strong {
  color: #222;
}

/* 风险提示 */
.detail-risk {
  background: rgba(255, 71, 87, 0.08);
  border: 1px solid rgba(255, 71, 87, 0.3);
  border-radius: 8px;
  padding: 12px;
  font-size: 12px;
  line-height: 1.5;
  color: #d63031;
}

.detail-risk strong {
  color: #c0392b;
  font-weight: 600;
}

/* 表格容器 */
.wind-table {
  background: transparent;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC",
    "Helvetica Neue", sans-serif;
  padding: 0 8px;
}

/* 表格头部 */
.wind-table-header {
  display: flex;
  background: linear-gradient(135deg, #fff, #fffbf0);
  border: 1px solid rgba(201, 155, 43, 0.3);
  border-radius: 6px;
  padding: 12px 10px;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 700;
  color: #b88a1f;
  letter-spacing: 0.5px;
  position: sticky;
  top: 54px;
  z-index: 10;
  box-shadow: 0 2px 6px rgba(201, 155, 43, 0.12);
  text-rendering: optimizeLegibility;
}
/* 表格行 - 统一灰白背景 + 彩色指示条 */
.wind-table-row {
  display: flex;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 6px;
  padding: 12px 10px;
  margin-bottom: 8px;
  transition: all 0.2s ease;
  min-height: 44px;
  align-items: center;
  background: #f8f9fa;
  box-shadow: 0 2px 4px rgba(5, 15, 30, 0.04), 0 1px 2px rgba(5, 15, 30, 0.02);
  position: relative;
}

.wind-table-row::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: transparent;
  border-radius: 6px 0 0 6px;
  transition: all 0.2s ease;
}

.wind-table-row.row-up::before {
  background: linear-gradient(180deg, #ff4757, #ff6b7a);
  box-shadow: 0 0 8px rgba(255, 71, 87, 0.4);
}

.wind-table-row.row-down::before {
  background: linear-gradient(180deg, #2ed573, #54e690);
  box-shadow: 0 0 8px rgba(46, 213, 115, 0.4);
}

.wind-table-row:active {
  background: #f0f1f3;
  box-shadow: 0 4px 8px rgba(5, 15, 30, 0.08), 0 2px 4px rgba(5, 15, 30, 0.04);
  transform: translateY(-1px);
}

/* 列定义 */
.wind-table .col {
  font-size: 13px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 0 5px;
}

/* 基金表格列宽 - 精简版 */
.wind-table .col-name {
  flex: 2.2;
  min-width: 0;
  color: #000;
  font-weight: 600;
  font-size: 13.5px;
  line-height: 1.6;
  letter-spacing: 0;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.wind-table .col-code {
  flex: 1.4;
  color: #1a3a6b;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC",
    sans-serif;
  font-size: 12px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
.wind-table .col-nav {
  flex: 1.3;
  text-align: right;
  color: #222;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.wind-table .col-change {
  flex: 1.2;
  text-align: right;
  font-weight: 700;
}

/* IPO表格列宽 - 精简版 */
.wind-table .col-price {
  flex: 1.2;
  text-align: right;
  color: #222;
  font-weight: 700;
}
.wind-table .col-status {
  flex: 1.3;
  text-align: center;
}

/* 债券表格列宽 - 精简版 */
.wind-table .col-yield {
  flex: 1.2;
  text-align: right;
  color: #222;
  font-weight: 700;
}

.wind-table .col-current {
  flex: 1.5;
  text-align: right;
  color: #000;
  font-weight: 800;
  font-size: 13.5px;
  font-variant-numeric: tabular-nums;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  letter-spacing: -0.02em;
}

.wind-table .col-open {
  flex: 1.4;
  text-align: right;
  color: #444;
  font-size: 13px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.wind-table .col-high {
  flex: 1.4;
  text-align: right;
  color: #444;
  font-size: 13px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.wind-table .col-low {
  flex: 1.4;
  text-align: right;
  color: #444;
  font-size: 13px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

/* 涨跌颜色 - 清晰版 */
.wind-table .col.up {
  color: #f5222d;
  font-weight: 700;
}

.wind-table .col.down {
  color: #1a9c5e;
  font-weight: 700;
}

/* 高亮 - 改用金色 */
.wind-table .col.highlight {
  color: #c99b2b;
}

/* 名称文本 */
.name-text {
  display: inline-block;
  max-width: calc(100% - 40px);
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: middle;
}

/* 小标签 */
.tag-hot,
.tag-stable {
  display: inline-block;
  font-size: 10px;
  padding: 2px 5px;
  border-radius: 3px;
  font-style: normal;
  margin-left: 5px;
  vertical-align: middle;
  font-weight: 600;
}

.tag-hot {
  background: #ff4757;
  color: #fff;
}

.tag-stable {
  background: #1e90ff;
  color: #fff;
}

/* 板块标签 */
.board-tag {
  display: inline-block;
  font-size: 10px;
  padding: 2px 5px;
  border-radius: 3px;
  font-style: normal;
  margin-left: 5px;
  color: #fff;
  font-weight: 600;
}

.board-tag.sci {
  background: #ff6348;
}

.board-tag.gem {
  background: #1e90ff;
}

.board-tag.main {
  background: #747d8c;
}

/* 状态徽章 */
.status-badge {
  display: inline-block;
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 3px;
  font-weight: 600;
}

.status-badge.applying {
  background: #ff4757;
  color: #fff;
}

.status-badge.listing {
  background: #1e90ff;
  color: #fff;
}

.status-badge.upcoming {
  background: #747d8c;
  color: #fff;
}

/* 评级徽章 */
.rating-badge {
  display: inline-block;
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 2px;
  font-weight: 600;
}

.rating-badge.rating-AAA {
  background: #ffa502;
  color: #2f3542;
}

.rating-badge.rating-AA {
  background: #1e90ff;
  color: #fff;
}

.rating-badge.rating-A {
  background: #2ed573;
  color: #fff;
}
/* 评级标签（内联在名称后） */
.rating-tag {
  display: inline-block;
  font-size: 10px;
  padding: 2px 5px;
  border-radius: 3px;
  font-style: normal;
  margin-left: 5px;
  vertical-align: middle;
  font-weight: 600;
}

.rating-tag.rating-AAA {
  background: #e8edf3;
  color: #0d2439;
}

.rating-tag.rating-AA {
  background: #1e90ff;
  color: #fff;
}
.rating-tag.rating-A {
  background: #2ed573;
  color: #fff;
}

/* 债券筛选器 */
/* 债券指数卡片 */
.bond-indices {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  padding: 12px;
  background: rgba(255, 255, 255, 0.02);
}

.bond-index-card {
  background: linear-gradient(135deg, #fff, #fffbf0);
  border: 1px solid rgba(201, 155, 43, 0.3);
  border-radius: 8px;
  padding: 12px 10px;
  text-align: center;
  box-shadow: 0 2px 8px rgba(5, 15, 30, 0.06);
  transition: all 0.3s ease;
  cursor: pointer;
}

.bond-index-card.active {
  border: 2px solid #c99b2b;
  box-shadow: 0 0 20px rgba(201, 155, 43, 0.4), 0 4px 12px rgba(5, 15, 30, 0.12);
  background: linear-gradient(135deg, #fffbf0, #fff5e0);
  transform: scale(1.02);
}

.bond-index-card:hover {
  box-shadow: 0 4px 12px rgba(5, 15, 30, 0.1);
}

.bond-index-name {
  font-size: 11px;
  color: #999;
  margin-bottom: 6px;
  font-weight: 500;
}

.bond-index-value {
  font-size: 16px;
  font-weight: 700;
  color: #222;
  margin-bottom: 4px;
}
.bond-index-change {
  font-size: 11px;
  font-weight: 600;
}

.bond-index-change.up {
  color: #ff4757;
}

.bond-index-change.down {
  color: #2ed573;
}

.bond-filter-mobile {
  display: flex;
  gap: 8px;
  padding: 12px 12px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  background: rgba(14, 43, 68, 0.6);
  border-bottom: 1px solid rgba(212, 175, 55, 0.1);
}

.bond-filter-mobile::-webkit-scrollbar {
  display: none;
}

.filter-btn-mobile {
  padding: 6px 14px;
  background: rgba(0, 0, 0, 0.3);
  border: 1px solid rgba(212, 175, 55, 0.2);
  border-radius: 4px;
  font-size: 12px;
  color: #8b9aa8;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
  flex-shrink: 0;
}

.filter-btn-mobile.active {
  background: rgba(70, 158, 255, 0.15);
  border-color: #4a9eff;
  color: #4a9eff;
}

.filter-btn-mobile:active {
  transform: scale(0.95);
}

/* 响应式优化 */
@media (max-width: 360px) {
  .wind-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 6px;
    padding: 6px;
  }

  .wind-tile {
    min-height: 90px;
    padding: 7px;
  }

  .tile-name {
    font-size: 10px;
  }

  .tile-nav {
    font-size: 14px;
  }

  .tile-change {
    font-size: 12px;
  }

  .wind-table .col-name {
    flex: 1.8;
    font-size: 11px;
  }

  .wind-table .col-code {
    flex: 1.2;
    font-size: 10px;
  }

  .wind-table .col-current,
  .wind-table .col-open,
  .wind-table .col-high,
  .wind-table .col-low {
    flex: 1.3;
    font-size: 11px;
  }

  .wind-table-header {
    font-size: 10px;
    padding: 10px 8px;
  }

  .wind-table-row {
    padding: 10px 8px;
    min-height: 40px;
  }

  .wind-table .col {
    font-size: 11px;
  }
}

@media (min-width: 361px) and (max-width: 400px) {
  .wind-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 401px) {
  .wind-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
/* 小屏手机高度优化 - 确保5行完整显示 */
@media (max-height: 667px) {
  .wind-tile {
    min-height: 80px;
    padding: 7px;
    gap: 2px;
  }

  .tile-name {
    font-size: 10px;
    min-height: 22px;
    margin-bottom: 2px;
  }

  .tile-code {
    font-size: 9px;
    margin-bottom: 3px;
  }

  .tile-nav {
    font-size: 14px;
  }

  .tile-change {
    font-size: 10px;
  }

  .wind-grid {
    gap: 6px;
    padding: 6px;
  }
}

/* 超小屏手机高度优化 - iPhone SE等 */
@media (max-height: 600px) {
  .wind-tile {
    min-height: 70px;
    padding: 6px;
    gap: 1px;
  }

  .tile-name {
    font-size: 10px;
    min-height: 20px;
    margin-bottom: 1px;
  }

  .tile-code {
    font-size: 8px;
    margin-bottom: 2px;
  }

  .tile-nav {
    font-size: 13px;
  }

  .tile-change {
    font-size: 9px;
  }

  .wind-grid {
    gap: 5px;
    padding: 5px;
  }

  .market-content-mobile {
    max-height: calc(100vh - 120px);
  }
}

/* 超超小屏 - 确保不被截断 */
@media (max-height: 568px) {
  .wind-tile {
    min-height: 65px;
    padding: 5px;
  }

  .tile-name {
    font-size: 9px;
    min-height: 18px;
  }

  .tile-code {
    font-size: 8px;
    margin-bottom: 1px;
  }

  .tile-nav {
    font-size: 12px;
  }

  .tile-change {
    font-size: 8px;
  }

  .wind-grid {
    gap: 4px;
    padding: 4px;
  }
}

/* 分页组件 */
.pagination-container {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  padding: 16px 8px 8px;
  background: #f7f8fa;
}

.page-btn {
  min-width: 36px;
  height: 36px;
  border-radius: 6px;
  border: 1px solid rgba(0, 0, 0, 0.1);
  background: #ffffff;
  color: #222;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  padding: 0 8px;
}

.page-btn:hover:not(:disabled) {
  background: linear-gradient(135deg, #fff, #fffbf0);
  border-color: rgba(201, 155, 43, 0.5);
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

.page-btn.active {
  background: linear-gradient(135deg, #c99b2b, #b8892a);
  border-color: #c99b2b;
  color: #fff;
  box-shadow: 0 2px 8px rgba(201, 155, 43, 0.4);
}

.page-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
  background: #f5f5f5;
  border-color: rgba(0, 0, 0, 0.05);
}

.page-btn.prev,
.page-btn.next {
  font-size: 18px;
  font-weight: 700;
}

.holdings-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.holding-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.6);
  border-radius: 8px;
  font-size: 13px;
  border: 1px solid rgba(0, 0, 0, 0.08);
}

.holding-left {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  min-width: 0;
}

.holding-rank {
  width: 20px;
  height: 20px;
  background: #f0f0f0;
  color: #666;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  flex-shrink: 0;
}

.holding-rank.top3 {
  background: linear-gradient(135deg, #ff9500, #ff6b00);
  color: #fff;
}
.holding-name {
  font-weight: 500;
  color: #222;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.holding-right {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

.holding-percent {
  font-weight: 700;
  color: #222;
  font-size: 14px;
}

.holding-trend {
  font-size: 12px;
  font-weight: 500;
}

.holding-trend.up {
  color: #ff4d4f;
}
.holding-trend.down {
  color: #52c41a;
}

/* VIP卡片上的服务按钮 */
.vip-service-btn {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  padding: 6px 16px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  z-index: 10;
}

.vip-service-btn:hover {
  background: rgba(255, 255, 255, 0.25);
  transform: translateY(-50%) scale(1.05);
  box-shadow: 0 4px 12px rgba(255, 255, 255, 0.2);
}

.vip-service-btn:active {
  transform: translateY(-50%) scale(0.95);
}

/* VIP卡片内容布局 */
.vip-content {
  position: relative;
  width: 100%;
  height: 100%;
  padding: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  z-index: 1;
}

.vip-left {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.vip-level {
  font-size: 18px;
  font-weight: 700;
  color: #f5d771;
}

.vip-desc {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.7);
}

/* VIP卡片上的市场/服务标签 - 覆盖在图片左侧 */
.vip-tabs {
  position: absolute;
  left: 16px;
  bottom: 16px;
  display: flex;
  gap: 12px;
  z-index: 10;
}

.vip-tab {
  padding: 0;
  border: none;
  background: transparent;
  font-size: 16px;
  font-weight: 500;
  color: rgba(200, 180, 140, 0.6);
  cursor: pointer;
  transition: all 0.3s ease;
  position: relative;
}

.vip-tab.active {
  color: rgba(200, 180, 140, 1);
  font-weight: 600;
}

.vip-tab.active::after {
  content: "";
  position: absolute;
  bottom: -4px;
  left: 0;
  right: 0;
  height: 2px;
  background: rgba(200, 180, 140, 0.8);
  border-radius: 2px;
}

.vip-tab:hover {
  color: rgba(200, 180, 140, 0.9);
}

.vip-tab:active {
  transform: scale(0.95);
}

/* 智能理财顾问广告卡片 */
.ai-advisor-banner {
  margin: -20px 16px -10px;
  background: transparent;
  border-radius: 16px;
  padding: 16px 20px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  position: relative;
  z-index: 100;
  overflow: visible;
  backdrop-filter: blur(10px);
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(212, 175, 55, 0.2);
}

.ai-advisor-content {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 12px;
}

.ai-logo {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #0e2b44, #091c2e);
  border-radius: 10px;
  padding: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.ai-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.ai-info {
  flex: 1;
}

.ai-title {
  font-size: 15px;
  font-weight: 700;
  color: #1a2332;
  margin-bottom: 4px;
}

.ai-subtitle {
  font-size: 11px;
  color: #6c757d;
  line-height: 1.4;
}
.ai-consult-btn {
  padding: 8px 18px;
  background: linear-gradient(135deg, #0e2b44, #091c2e);
  border: 1px solid rgba(212, 175, 55, 0.3);
  border-radius: 20px;
  color: #f5d771;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  backdrop-filter: blur(10px);
  flex-shrink: 0;
}

.ai-consult-btn:hover {
  background: rgba(212, 175, 55, 0.3);
  transform: scale(1.05);
}

.ai-consult-btn:active {
  transform: scale(0.98);
}

/* 筛选标签 */
.filter-tabs {
  display: flex;
  gap: 12px;
  padding: 12px 16px;
  background: #fff;
  margin-bottom: 16px;
}

.filter-btn {
  padding: 8px 16px;
  border: 1px solid #ddd;
  background: #fff;
  border-radius: 20px;
  font-size: 14px;
  color: #666;
  cursor: pointer;
  transition: all 0.3s ease;
}

.filter-btn.active {
  background: #d4af37;
  color: #fff;
  border-color: #d4af37;
}

.filter-btn:active {
  transform: scale(0.95);
}

/* 日利宝页面 */
.ribao-overview {
  background: linear-gradient(135deg, #0e2b44, #091c2e);
  border-radius: 16px;
  padding: 24px 20px;
  margin: 16px;
  color: #fff;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
}

.ribao-balance {
  text-align: center;
  margin-bottom: 20px;
}

.ribao-label {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 8px;
}

.ribao-amount {
  font-size: 36px;
  font-weight: 700;
  color: #f5d771;
  margin-bottom: 8px;
  font-variant-numeric: tabular-nums;
}

.ribao-rate {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.6);
}

.ribao-profit-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.ribao-profit-item {
  text-align: center;
}

.profit-label {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 6px;
}

.profit-value {
  font-size: 20px;
  font-weight: 700;
  color: #f5d771;
  font-variant-numeric: tabular-nums;
}

.ribao-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 20px 16px;
}

.ribao-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 20px;
  border-radius: 12px;
  border: none;
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s;
  font-size: 15px;
  font-weight: 600;
}

.ribao-btn-in {
  background: linear-gradient(135deg, #4ade80, #22c55e);
  color: #fff;
  box-shadow: 0 4px 12px rgba(34, 197, 94, 0.3);
}

.ribao-btn-out {
  background: linear-gradient(135deg, #60a5fa, #3b82f6);
  color: #fff;
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}

.ribao-btn:active {
  transform: scale(0.95);
}

.btn-icon {
  font-size: 24px;
  margin-bottom: 6px;
}

.btn-text {
  font-size: 15px;
}

.ribao-info-card {
  background: #fff;
  border-radius: 12px;
  padding: 16px 20px;
  margin: 0 16px 16px;
  border: 1px solid rgba(0, 0, 0, 0.06);
}

.info-title {
  font-size: 15px;
  font-weight: 700;
  color: #1a2332;
  margin-bottom: 12px;
}

.info-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.info-item {
  display: flex;
  align-items: flex-start;
  font-size: 13px;
  color: #6c757d;
  line-height: 1.6;
}

.info-dot {
  color: #d4af37;
  margin-right: 8px;
  flex-shrink: 0;
}

.ribao-records {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  margin: 0 16px 80px;
  border: 1px solid rgba(0, 0, 0, 0.06);
}
.records-header h3 {
  font-size: 15px;
  font-weight: 700;
  color: #1a2332;
  margin: 0 0 16px 0;
}

.records-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.record-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px;
  background: #f8f9fa;
  border-radius: 8px;
}

.record-left {
  flex: 1;
}

.record-date {
  font-size: 13px;
  color: #1a2332;
  font-weight: 600;
  margin-bottom: 4px;
}

.record-money {
  font-size: 12px;
  color: #6c757d;
}

.record-right {
  text-align: right;
}

.record-profit {
  font-size: 16px;
  font-weight: 700;
  color: #22c55e;
  margin-bottom: 2px;
}

.record-rate {
  font-size: 11px;
  color: #6c757d;
}

.empty-state {
  text-align: center;
  padding: 40px 20px;
}

.empty-icon {
  font-size: 48px;
  margin-bottom: 12px;
  opacity: 0.3;
}

.empty-text {
  font-size: 14px;
  color: #9ca3af;
}

/* 弹窗样式 */
.modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(4px);
}

.modal-content {
  position: relative;
  background: #fff;
  border-radius: 20px;
  width: 90%;
  max-width: 400px;
  z-index: 10000;
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(0, 0, 0, 0.05);
  animation: slideUp 0.3s ease;
  overflow: hidden;
}

@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(30px) scale(0.95);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 24px 24px 20px;
  border-bottom: 1px solid #f0f0f0;
  background: linear-gradient(180deg, #fafafa 0%, #fff 100%);
}

.modal-header h3 {
  font-size: 19px;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0;
  letter-spacing: -0.3px;
}

.modal-close {
  font-size: 24px;
  color: #999;
  background: #f5f5f5;
  border: none;
  cursor: pointer;
  padding: 0;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: all 0.2s;
  line-height: 1;
}

.modal-close:hover {
  background: #e5e5e5;
  color: #666;
}

.modal-close:active {
  transform: scale(0.9);
  background: #d5d5d5;
}

.modal-body {
  padding: 24px;
}

.form-group {
  margin-bottom: 20px;
}

.form-group label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: #333;
  margin-bottom: 10px;
  letter-spacing: -0.2px;
}

.balance-display {
  font-size: 28px;
  font-weight: 800;
  color: #ff6b6b;
  padding: 16px;
  background: linear-gradient(135deg, #fff5f5 0%, #ffe5e5 100%);
  border-radius: 12px;
  text-align: center;
  border: 2px solid #ffdddd;
  letter-spacing: -1px;
}
.form-input {
  width: 100%;
  padding: 14px 16px;
  border: 2px solid #e5e5e5;
  border-radius: 12px;
  font-size: 16px;
  box-sizing: border-box;
  transition: all 0.2s;
  font-weight: 500;
}

.form-input:focus {
  outline: none;
  border-color: #ff6b6b;
  background: #fff5f5;
  box-shadow: 0 0 0 4px rgba(255, 107, 107, 0.1);
}

.quick-amount {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-top: 12px;
}

.quick-btn {
  padding: 10px 8px;
  background: #fafafa;
  border: 2px solid #e5e5e5;
  border-radius: 10px;
  font-size: 14px;
  color: #333;
  cursor: pointer;
  transition: all 0.2s;
  font-weight: 600;
}

.quick-btn:hover {
  border-color: #ff6b6b;
  background: #fff5f5;
  color: #ff6b6b;
}

.quick-btn:active {
  transform: scale(0.94);
  box-shadow: 0 2px 8px rgba(255, 107, 107, 0.2);
}

.form-tip {
  font-size: 13px;
  color: #666;
  margin-top: 12px;
  padding: 12px 14px;
  background: #f8f9fa;
  border-radius: 10px;
  border-left: 3px solid #ff6b6b;
  line-height: 1.5;
}

.form-tip span {
  color: #ff6b6b;
  font-weight: 700;
}

.modal-footer {
  display: flex;
  gap: 12px;
  padding: 20px 24px 24px;
  border-top: 1px solid #f0f0f0;
  background: #fafafa;
}

.btn {
  flex: 1;
  padding: 14px 20px;
  border-radius: 12px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  border: none;
  transition: all 0.2s;
  letter-spacing: -0.3px;
}

.btn-cancel {
  background: #fff;
  color: #666;
  border: 2px solid #e5e5e5;
}

.btn-cancel:hover {
  background: #f5f5f5;
  border-color: #d5d5d5;
}

.btn-cancel:active {
  transform: scale(0.96);
}

.btn-primary {
  background: linear-gradient(135deg, #ff6b6b 0%, #ff5252 100%);
  color: #fff;
  box-shadow: 0 4px 16px rgba(255, 107, 107, 0.4);
  border: none;
}

.btn-primary:hover {
  box-shadow: 0 6px 20px rgba(255, 107, 107, 0.5);
}

.btn-primary:active {
  transform: scale(0.96);
  box-shadow: 0 2px 10px rgba(255, 107, 107, 0.3);
}
/* Toast提示 - 优化版 */
.toast {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.8);
  background: rgba(26, 26, 26, 0.95);
  color: #fff;
  padding: 14px 28px;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 500;
  z-index: 10001;
  opacity: 0;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  backdrop-filter: blur(10px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
  min-width: 120px;
  text-align: center;
  letter-spacing: -0.2px;
}

.toast.show {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

.toast.success {
  background: linear-gradient(135deg, #10b981 0%, #059669 100%);
}

.toast.error {
  background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
}

.toast.warning {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
}

.toast.info {
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
}

/* 我的投资页面补充样式 */
.inv-footer {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid #f3f4f6;
}

.inv-btn-detail {
  width: 100%;
  padding: 10px;
  background: linear-gradient(135deg, #d4af37, #e6c75a);
  color: #1a1a1a;
  border: none;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}

.inv-btn-detail:active {
  transform: scale(0.95);
}

.loading-state {
  text-align: center;
  padding: 60px 20px;
}

.loading-spinner {
  width: 40px;
  height: 40px;
  border: 3px solid #f3f4f6;
  border-top-color: #d4af37;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin: 0 auto 16px;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.loading-text {
  font-size: 14px;
  color: #9ca3af;
}

.empty-btn {
  display: inline-block;
  margin-top: 20px;
  padding: 10px 32px;
  background: linear-gradient(135deg, #d4af37, #e6c75a);
  color: #1a1a1a;
  border-radius: 24px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: transform 0.2s;
}

.empty-btn:active {
  transform: scale(0.95);
}

/* 投资项目页面样式 */
/* 投资项目页面样式 - 永豐金風格 */
.project-filters {
  padding: 16px 16px 12px;
  background: #fff;
  margin-bottom: 0;
  border-bottom: 1px solid #f0f0f0;
}

.search-box {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #f8f9fa;
  border-radius: 10px;
  padding: 11px 14px;
  margin-bottom: 14px;
  border: 1px solid #e5e7eb;
}

.search-icon {
  font-size: 15px;
  color: #999;
}

.search-box input {
  flex: 1;
  border: none;
  background: transparent;
  font-size: 14px;
  outline: none;
  color: #1a1a1a;
}

.search-box input::placeholder {
  color: #999;
}

.filter-tags {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 2px;
}

.filter-tags::-webkit-scrollbar {
  display: none;
}

.filter-tag {
  padding: 7px 18px;
  border: none;
  border-radius: 6px;
  background: #f5f7fa;
  font-size: 13px;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.2s;
  font-weight: 500;
  color: #666;
}

.filter-tag.active {
  background: linear-gradient(135deg, #d4af37, #e6c75a);
  color: #1a1a1a;
  font-weight: 600;
  box-shadow: 0 2px 6px rgba(212, 175, 55, 0.3);
}

.projects-container {
  padding: 12px 16px 100px;
  background: #f5f7fa;
}

.project-card {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
  position: relative;
  overflow: hidden;
  transition: all 0.2s;
  border: 1px solid rgba(0, 0, 0, 0.04);
}

.project-card:active {
  transform: translateY(1px);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
}

.lock-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(26, 26, 26, 0.85),
    rgba(45, 45, 45, 0.85)
  );
  backdrop-filter: blur(6px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 10;
  border-radius: 12px;
}

.lock-icon {
  font-size: 36px;
  margin-bottom: 6px;
  opacity: 0.9;
}

.lock-text {
  color: #f5d771;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.5px;
}

.project-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid #f0f0f0;
}

.project-title-row {
  flex: 1;
}

.project-title {
  font-size: 15px;
  font-weight: 700;
  color: #1a1a1a;
  margin-bottom: 6px;
  line-height: 1.4;
}

.project-status {
  display: inline-block;
  padding: 3px 9px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.3px;
}

.status-active {
  background: #e8f5e9;
  color: #2e7d32;
  border: 1px solid #c8e6c9;
}

.status-paused {
  background: #fff3e0;
  color: #f57c00;
  border: 1px solid #ffe0b2;
}

.status-sold {
  background: #ffebee;
  color: #c62828;
  border: 1px solid #ffcdd2;
}

.vip-badge {
  background: linear-gradient(135deg, #1a1a1a, #2d2d2d);
  color: #f5d771;
  padding: 5px 11px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
  border: 1px solid rgba(245, 215, 113, 0.3);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}
.project-body {
  margin-bottom: 12px;
}
.rate-box {
  background: linear-gradient(135deg, #fff9e6, #fff4d6);
  padding: 14px;
  border-radius: 8px;
  margin-bottom: 14px;
  text-align: center;
  border: 1px solid rgba(212, 175, 55, 0.2);
  box-shadow: inset 0 1px 3px rgba(212, 175, 55, 0.1);
}

.rate-label {
  font-size: 11px;
  color: #996515;
  margin-bottom: 3px;
  font-weight: 500;
  letter-spacing: 0.3px;
}

.rate-value {
  font-size: 30px;
  font-weight: 800;
  color: #d4af37;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.rate-desc {
  font-size: 10px;
  color: #b8860b;
  margin-top: 3px;
  font-weight: 500;
}

.project-info {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px 14px;
  margin-bottom: 14px;
  padding: 12px;
  background: #f8f9fa;
  border-radius: 8px;
}

.info-row {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.info-label {
  font-size: 11px;
  color: #999;
  font-weight: 500;
}

.info-value {
  font-size: 13px;
  font-weight: 700;
  color: #1a1a1a;
  font-variant-numeric: tabular-nums;
}
.project-progress {
  margin-bottom: 12px;
}

.progress-header-small {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: #666;
  margin-bottom: 7px;
  font-weight: 500;
}

.progress-bar-small {
  height: 5px;
  background: #e5e7eb;
  border-radius: 3px;
  overflow: hidden;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.08);
}

.progress-fill-small {
  height: 100%;
  background: linear-gradient(90deg, #d4af37, #e6c75a);
  border-radius: 3px;
  transition: width 0.3s;
  box-shadow: 0 1px 2px rgba(212, 175, 55, 0.3);
}

.project-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.btn-invest {
  flex: 1;
  padding: 13px;
  background: linear-gradient(135deg, #1a1a1a, #2d2d2d);
  color: #f5d771;
  border: none;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  border: 1px solid rgba(245, 215, 113, 0.2);
}

.btn-invest:active {
  transform: translateY(1px);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
  background: linear-gradient(135deg, #2d2d2d, #1a1a1a);
}
/* 升级进度卡片（遮盖效果） */
.upgrade-card-overlay {
  position: relative;
  margin-top: -35px;
  z-index: 10;
}

.upgrade-card-inner {
  background: linear-gradient(
    135deg,
    rgba(14, 43, 68, 0.95),
    rgba(9, 28, 46, 0.95)
  );
  backdrop-filter: blur(10px);
  border: 1px solid rgba(212, 175, 55, 0.3);
  border-radius: 12px;
  padding: 16px 20px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}

.upgrade-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}

.upgrade-label {
  font-size: 13px;
  color: #e5e7eb;
}

.upgrade-label strong {
  color: #f5d771;
  font-weight: 700;
}

.upgrade-percent {
  font-size: 18px;
  font-weight: 700;
  color: #4ade80;
}

.upgrade-progress-bar {
  height: 8px;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 10px;
}

.upgrade-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #4ade80, #22c55e);
  border-radius: 8px;
  transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 0 10px rgba(74, 222, 128, 0.5);
}

.upgrade-footer {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: #cbd5e1;
}

.current-invest {
  color: #94a3b8;
}

.need-invest {
  color: #e5e7eb;
}

.need-invest strong {
  color: #f5d771;
  font-weight: 700;
}

/* 资产概览优化 */
.asset-overview-grid {
  padding: 0 16px;
  margin-bottom: 16px;
}
.asset-card {
  background: #fff;
  border: 1px solid #e5e7eb;
}
/* 快捷操作优化 */
.quick-actions {
  padding: 0 16px;
  margin-bottom: 16px;
}

.action-grid {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

/* 菜单区域优化 */
.menu-section {
  padding: 0 16px;
}

.menu-group {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.menu-title {
  font-size: 14px;
  font-weight: 700;
  color: #1f2937;
  margin-bottom: 12px;
  padding-left: 4px;
}

.menu-item {
  padding: 12px 0;
  border-bottom: 1px solid #f3f4f6;
}

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

/* 退出登录 */
.logout-section {
  padding: 20px 16px;
}

.btn-logout {
  width: 100%;
  padding: 14px;
  background: #fff;
  color: #ef4444;
  border: 1px solid #fecaca;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}

.btn-logout:active {
  transform: scale(0.98);
  background: #fef2f2;
}

/* 广告横幅翻牌效果（向上翻动 - 机场牌效果） */
.ad-banner-container {
  margin: -20px 16px -10px;
  perspective: 1500px;
  height: 88px;
  position: relative;
  z-index: 20;
  overflow: hidden;
}

.ad-banner-flipper {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  transform-origin: center top;
}

@keyframes flipShadow {
  0%,
  100% {
    filter: drop-shadow(0 4px 16px rgba(0, 0, 0, 0.15));
  }
  50% {
    filter: drop-shadow(0 8px 24px rgba(0, 0, 0, 0.3));
  }
}

.ad-banner {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.18);
}

/* 中间螺丝装饰 - 更明显 */
.ad-banner::before {
  content: "";
  position: absolute;
  width: 12px;
  height: 12px;
  background: radial-gradient(
    circle,
    rgba(0, 0, 0, 0.3) 0%,
    rgba(0, 0, 0, 0.15) 40%,
    rgba(0, 0, 0, 0.08) 70%,
    transparent 100%
  );
  border-radius: 50%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 999;
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.4),
    0 1px 3px rgba(255, 255, 255, 0.3);
  border: 1px solid rgba(0, 0, 0, 0.2);
}

/* 螺丝十字槽 */
.ad-banner::after {
  content: "";
  position: absolute;
  width: 8px;
  height: 1.5px;
  background: rgba(0, 0, 0, 0.4);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1000;
  box-shadow: 0 -1px 0 rgba(255, 255, 255, 0.2);
}

/* 正面 - AI顾问（向上翻出） */
.ad-banner-front {
  background: #fff;
  border: 1px solid #e5e7eb;
  transform: translateY(0) rotateX(0deg);
  transform-origin: center bottom;
}

.ad-banner-flipper.flipped .ad-banner-front {
  transform: translateY(-100%) rotateX(-90deg);
}

/* 背面 - 邀友（向上翻入） */
.ad-banner-back {
  transform: translateY(100%) rotateX(90deg);
  transform-origin: center bottom;
}

.ad-banner-flipper.flipped .ad-banner-back {
  transform: translateY(0) rotateX(0deg);
}

.ad-banner-invite {
  background: linear-gradient(135deg, #1a1a1a, #2d2d2d);
  border: 1px solid rgba(212, 175, 55, 0.3);
  position: relative;
}

.ad-banner-invite::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent, rgba(212, 175, 55, 0.1));
  pointer-events: none;
}

.ad-content {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  height: 100%;
}

/* AI顾问样式 */
.ad-logo {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: #f0f9ff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.ad-logo img {
  width: 20px;
  height: 20px;
  object-fit: contain;
}

.ad-info {
  flex: 1;
}
.ad-title {
  font-size: 16px;
  font-weight: 700;
  color: #1f2937;
  margin-bottom: 4px;
}

.ad-subtitle {
  font-size: 12px;
  color: #6b7280;
  line-height: 1.4;
}
.ad-btn {
  padding: 10px 20px;
  background: #3b82f6;
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  transition: all 0.2s;
}

.ad-btn:active {
  transform: scale(0.96);
  background: #2563eb;
}

/* 邀友样式 */
.ad-content-invite {
  background: transparent;
}

.ad-icon-invite {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: linear-gradient(135deg, #d4af37, #f0d574);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(212, 175, 55, 0.4);
}

.ad-banner-invite .ad-title {
  color: #f5d771;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.ad-banner-invite .ad-subtitle {
  color: rgba(255, 255, 255, 0.85);
}

.ad-btn-invite {
  background: linear-gradient(135deg, #d4af37, #e6c75a);
  color: #1a1a1a;
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(212, 175, 55, 0.3);
}

.ad-btn-invite:active {
  background: linear-gradient(135deg, #c49d2e, #d4af37);
}

/* 邀请好友页面 */
.page-invite {
  background: linear-gradient(180deg, #0e2b44, #f5f7fa 30%);
}
.hero-invite {
  background: transparent;
}
.content-invite {
  padding: 0 16px 100px;
}
.invite-hero {
  text-align: center;
  padding: 20px 0;
  color: #fff;
}
.invite-icon {
  font-size: 60px;
  margin-bottom: 12px;
}
.invite-title {
  font-size: 24px;
  font-weight: 700;
  margin: 0 0 8px;
  color: #f5d771;
}
.invite-subtitle {
  font-size: 14px;
  opacity: 0.9;
}

.invite-code-card {
  background: #fff;
  border-radius: 16px;
  padding: 24px;
  margin-bottom: 20px;
  text-align: center;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}
.code-label {
  font-size: 13px;
  color: #666;
  margin-bottom: 8px;
}
.code-display {
  font-size: 32px;
  font-weight: 700;
  color: #d4af37;
  letter-spacing: 4px;
  margin: 12px 0 20px;
  font-family: monospace;
}
.btn-copy {
  width: 100%;
  padding: 14px;
  background: linear-gradient(135deg, #d4af37, #e6c75a);
  color: #1a1a1a;
  border: none;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}
.btn-copy:active {
  transform: scale(0.98);
}

.section-title-small {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 16px;
  color: #1a1a1a;
}
.invite-rewards,
.invite-steps,
.my-invites,
.share-actions {
  margin-bottom: 24px;
}

.reward-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.reward-card {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  transition: transform 0.2s;
}
.reward-card:active {
  transform: scale(0.98);
}
.reward-icon {
  font-size: 32px;
  margin-bottom: 8px;
}
.reward-title {
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 4px;
  color: #1a1a1a;
}
.reward-desc {
  font-size: 12px;
  color: #666;
  line-height: 1.4;
}

.steps-list {
  background: #fff;
  border-radius: 16px;
  padding: 20px;
}
.step-item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid #f0f0f0;
}
.step-item:first-child {
  padding-top: 0;
}
.step-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.step-number {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, #d4af37, #e6c75a);
  color: #1a1a1a;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  font-weight: 700;
  flex-shrink: 0;
}
.step-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.step-title {
  font-size: 15px;
  font-weight: 600;
  margin-bottom: 4px;
  color: #1a1a1a;
  line-height: 1.4;
}
.step-desc {
  font-size: 13px;
  color: #666;
  line-height: 1.5;
}

.invite-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.stat-item {
  background: #fff;
  border-radius: 12px;
  padding: 20px;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.stat-value {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 8px;
  color: #1a1a1a;
  font-variant-numeric: tabular-nums;
}
.stat-value.gold {
  color: #d4af37;
}
.stat-label {
  font-size: 13px;
  color: #666;
}

.share-actions {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.btn-share {
  padding: 14px;
  border: none;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  text-align: center;
  transition: all 0.2s;
}
.btn-share:active {
  transform: scale(0.98);
}
.btn-share-wechat {
  background: #07c160;
  color: #fff;
}
.btn-share-link {
  background: #fff;
  color: #1a1a1a;
  border: 2px solid #e5e7eb;
}

/* 收益日历页面 - 紧凑版 */
.page-profit-calendar {
  background: #f8f9fa;
}
.page-profit-calendar .hero-simple {
  background: #2c3e50;
  border-radius: 0;
}
.page-profit-calendar .back-btn {
  color: #fff;
  font-size: 22px;
  padding: 8px;
}
.page-profit-calendar .hero-title {
  color: #fff;
  font-size: 18px;
  font-weight: 700;
}

.profit-overview {
  padding: 0;
  background: linear-gradient(135deg, #ff6b6b 0%, #ff5252 100%);
  margin-bottom: 0;
  border-radius: 0;
  position: relative;
  overflow: hidden;
}
.profit-overview::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -20%;
  width: 300px;
  height: 300px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 50%;
  pointer-events: none;
}
.profit-overview::after {
  content: "";
  position: absolute;
  bottom: -40%;
  left: -10%;
  width: 200px;
  height: 200px;
  background: rgba(255, 255, 255, 0.03);
  border-radius: 50%;
  pointer-events: none;
}
.overview-card {
  background: transparent;
  border-radius: 0;
  padding: 16px 20px;
  box-shadow: none;
  color: #fff;
  position: relative;
  z-index: 1;
}
.amount-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.amount-label {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.9);
  font-weight: 600;
}
.refresh-link {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.95);
  text-decoration: none;
  padding: 5px 12px;
  background: rgba(255, 255, 255, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 12px;
  backdrop-filter: blur(10px);
  transition: all 0.2s;
  font-weight: 600;
}
.refresh-link:active {
  background: rgba(255, 255, 255, 0.3);
  transform: scale(0.96);
}
.amount-value {
  font-size: 36px;
  font-weight: 800;
  margin-bottom: 12px;
  font-variant-numeric: tabular-nums;
  color: #fff;
  letter-spacing: -2px;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.amount-value.positive {
  color: #fff;
}
.amount-value.negative {
  color: #fff;
}
.overview-stats {
  display: flex;
  gap: 0;
  padding: 12px 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  border-bottom: none;
}
.stat-item {
  flex: 1;
  text-align: center;
  padding: 0 4px;
}
.stat-label {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.8);
  margin-bottom: 4px;
  font-weight: 500;
}
.stat-value {
  font-size: 17px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: #fff;
  letter-spacing: -0.5px;
}
.stat-value.positive {
  color: #fff;
}
.stat-value.negative {
  color: #fff;
}
.stat-divider {
  width: 1px;
  height: 36px;
  background: rgba(255, 255, 255, 0.2);
  align-self: center;
}

.profit-distribution {
  padding: 16px 16px 100px;
  background: #fff;
  margin-top: 0;
  border-radius: 0;
}
.distribution-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
.section-title-main {
  font-size: 16px;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0;
}

.calendar-view {
  background: transparent;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}
.time-period-tabs {
  display: flex;
  gap: 6px;
  margin-bottom: 12px;
  flex-wrap: wrap;
  padding: 0;
}
.period-btn {
  padding: 6px 12px;
  border: 1px solid #e5e5e5;
  border-radius: 16px;
  background: #fafafa;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.2s;
  flex: 1;
  min-width: 50px;
  text-align: center;
  color: #666;
  font-weight: 600;
}
.period-btn.active {
  background: #ff6b6b;
  color: #fff;
  border-color: #ff6b6b;
  box-shadow: 0 2px 6px rgba(255, 107, 107, 0.25);
}
.period-btn:active {
  transform: scale(0.96);
}

.month-selector {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  padding: 8px 0;
}
.month-nav-btn {
  width: 20px;
  height: 20px;
  border: none;
  border-radius: 50%;
  background: #f5f5f5;
  font-size: 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
  color: #666;
  font-weight: 700;
}
.month-nav-btn:active {
  background: #e5e5e5;
  transform: scale(0.92);
}
.current-month {
  font-size: 16px;
  font-weight: 700;
  color: #1a1a1a;
}

.calendar-table {
  width: 100%;
  background: transparent;
  border-radius: 0;
  padding: 0;
}
.calendar-header {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  margin-bottom: 8px;
  padding: 0;
}
.calendar-th {
  text-align: center;
  font-size: 12px;
  color: #999;
  font-weight: 600;
  padding: 6px 0;
}
.calendar-body {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 5px;
}
.calendar-cell {
  aspect-ratio: 1;
  border-radius: 8px;
  padding: 4px 2px;
  text-align: center;
  cursor: pointer;
  transition: all 0.15s;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 60px;
  position: relative;
  overflow: hidden;
}
.calendar-cell.empty {
  cursor: default;
  background: transparent;
}
.calendar-cell:not(.empty) {
  background: #f8f9fa;
  border: 1px solid #f0f0f0;
}
.calendar-cell:not(.empty):active {
  transform: scale(0.94);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.calendar-cell.today {
  background: #fff3f3;
  border: 2px solid #ff6b6b;
  box-shadow: 0 3px 12px rgba(255, 107, 107, 0.25);
  font-weight: 700;
}
.calendar-cell.today::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: #ff6b6b;
}
.calendar-cell.profit-up {
  background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
  border: 1px solid #a7f3d0;
  color: #059669;
}
.calendar-cell.profit-down {
  background: linear-gradient(135deg, #fef2f2 0%, #fee2e2 100%);
  border: 1px solid #fecaca;
  color: #dc2626;
}
.calendar-cell.profit-neutral {
  background: #fafafa;
  border: 1px solid #e5e5e5;
  color: #737373;
}
.cell-day {
  font-size: 15px;
  font-weight: 700;
  color: #1a1a1a;
  margin-bottom: 3px;
  line-height: 1;
}
.calendar-cell.profit-up .cell-day {
  color: #059669;
}
.calendar-cell.profit-down .cell-day {
  color: #dc2626;
}
.calendar-cell.profit-neutral .cell-day {
  color: #737373;
}
.cell-profit {
  font-size: 10px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.3px;
  padding: 0 2px;
}
.cell-profit.positive {
  color: #10b981;
}
.cell-profit.negative {
  color: #ef4444;
}

.chart-view {
  background: rgba(26, 35, 50, 0.5);
  border-radius: 12px;
  padding: 40px 16px;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
.chart-placeholder {
  color: rgba(212, 175, 55, 0.5);
}

.profit-info {
  padding: 0 16px 20px;
}
.info-card-small {
  background: rgba(26, 35, 50, 0.3);
  border-radius: 10px;
  padding: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  border: 1px solid rgba(212, 175, 55, 0.1);
}
.info-text {
  font-size: 12px;
  color: rgba(212, 175, 55, 0.7);
  line-height: 1.6;
  margin: 4px 0;
}

/* 项目详情页 - 永豐金證券大戶豐APP风格 */
.page-project-detail {
  background: #f5f7fa;
  min-height: 100vh;
  padding-bottom: 80px;
}
.detail-header {
  background: #fff;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #f0f0f0;
  position: sticky;
  top: 0;
  z-index: 100;
}
.back-btn-detail {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  color: #1a1a1a;
  text-decoration: none;
}

.detail-header-title {
  font-size: 17px;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0;
  flex: 1;
  text-align: center;
}

.share-btn-detail {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  color: #666;
  border: none;
  background: transparent;
  cursor: pointer;
}

/* 主收益率卡片 */
.rate-highlight-card {
  background: linear-gradient(135deg, #fff9e6, #fff4d6);
  margin: 12px 16px;
  border-radius: 12px;
  padding: 20px;
  border: 1px solid rgba(212, 175, 55, 0.2);
  box-shadow: 0 2px 8px rgba(212, 175, 55, 0.1);
}

.rate-top-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(212, 175, 55, 0.15);
}

.rate-main {
}

.rate-label-main {
  font-size: 13px;
  color: #996515;
  margin-bottom: 8px;
  font-weight: 500;
}

.rate-value-main {
  font-size: 42px;
  font-weight: 800;
  color: #d4af37;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.rate-extra {
}

.vip-bonus {
  background: linear-gradient(135deg, #1a1a1a, #2d2d2d);
  padding: 8px 12px;
  border-radius: 8px;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.vip-bonus-label {
  font-size: 10px;
  color: #f5d771;
  font-weight: 600;
}

.vip-bonus-value {
  font-size: 16px;
  color: #f5d771;
  font-weight: 800;
}

.rate-bottom-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.rate-detail-item {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
}

.rate-detail-label {
  font-size: 12px;
  color: #996515;
  font-weight: 500;
}

.rate-detail-value {
  font-size: 15px;
  color: #1a1a1a;
  font-weight: 700;
}

.status-text.status-active {
  color: #10b981;
}

.status-text.status-paused {
  color: #f59e0b;
}

.status-text.status-sold {
  color: #ef4444;
}

.rate-divider-v {
  width: 1px;
  height: 30px;
  background: rgba(212, 175, 55, 0.2);
}

/* 进度卡片 */
.progress-card {
  background: #fff;
  margin: 0 16px 12px;
  padding: 16px;
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.progress-header-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}

.progress-title {
  font-size: 14px;
  color: #1a1a1a;
  font-weight: 600;
}
.progress-percent-text {
  font-size: 14px;
  color: #d4af37;
  font-weight: 700;
}

.progress-bar-detail {
  height: 6px;
  background: #e5e7eb;
  border-radius: 3px;
  overflow: hidden;
  margin-bottom: 10px;
}

.progress-fill-detail {
  height: 100%;
  background: linear-gradient(90deg, #d4af37, #e6c75a);
  border-radius: 3px;
  transition: width 0.3s;
}

.progress-info-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.progress-info-label {
  font-size: 12px;
  color: #666;
}
.progress-info-label strong {
  color: #1a1a1a;
  font-weight: 600;
}
/* 计算器卡片 */
.calculator-card {
  background: #fff;
  margin: 0 16px 12px;
  padding: 16px;
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.calculator-header {
  margin-bottom: 14px;
}

.calculator-title {
  font-size: 15px;
  color: #1a1a1a;
  font-weight: 600;
}

.calculator-input-group {
  margin-bottom: 14px;
}

.calculator-input-group label {
  display: block;
  font-size: 13px;
  color: #666;
  margin-bottom: 8px;
  font-weight: 500;
}

.calculator-input-group input {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 600;
  color: #1a1a1a;
  background: #f8f9fa;
  box-sizing: border-box;
}

.calculator-input-group input:focus {
  outline: none;
  border-color: #d4af37;
  background: #fff;
}

.calculator-result {
  display: flex;
  gap: 14px;
  padding: 14px;
  background: #f8f9fa;
  border-radius: 8px;
}

.calc-result-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.calc-result-label {
  font-size: 12px;
  color: #666;
  font-weight: 500;
}

.calc-result-value {
  font-size: 18px;
  color: #1a1a1a;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.calc-result-value.primary {
  color: #d4af37;
  font-size: 20px;
}

/* 信息卡片 */
.info-card {
  background: #fff;
  margin: 0 16px 12px;
  padding: 16px;
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.info-card-header {
  margin-bottom: 14px;
}

.info-card-title {
  font-size: 15px;
  color: #1a1a1a;
  font-weight: 600;
}

.info-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}

.info-item {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.info-item-label {
  font-size: 12px;
  color: #666;
  font-weight: 500;
}

.info-item-value {
  font-size: 14px;
  color: #1a1a1a;
  font-weight: 600;
}

.text-error {
  color: #ef4444;
}

.text-success {
  color: #10b981;
}

.text-gold {
  color: #d4af37;
}

.text-primary {
  color: #d4af37;
  font-weight: 700;
}

/* 收益说明 */
.profit-description {
  font-size: 13px;
  color: #666;
  line-height: 1.8;
}

.profit-description p {
  margin: 8px 0;
}

.profit-description strong {
  color: #1a1a1a;
  font-weight: 600;
}

/* 风险卡片 */
.risk-card {
  border: 1px solid #ffe4e1;
  background: #fff9f9;
}

.risk-content {
  font-size: 12px;
  color: #666;
  line-height: 1.8;
}

.risk-content p {
  margin: 6px 0;
}

/* 底部固定操作栏 */
.detail-footer-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: #fff;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 16px;
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08);
  z-index: 100;
}

.footer-left {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.footer-amount-label {
  font-size: 11px;
  color: #666;
}
.footer-amount-value {
  font-size: 16px;
  color: #1a1a1a;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.btn-invest-detail {
  flex: 1;
  padding: 14px 24px;
  background: linear-gradient(135deg, #1a1a1a, #2d2d2d);
  color: #f5d771;
  border: none;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  border: 1px solid rgba(245, 215, 113, 0.2);
}

.btn-invest-detail:active {
  transform: translateY(1px);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
}

/* 项目列表页面 - 永豐金證券大戶豐APP风格（全新） */
.page-projects-new {
  background: #f5f7fa;
  min-height: 100vh;
  padding-bottom: 70px;
}

.projects-header {
  background: #fff;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #f0f0f0;
  position: sticky;
  top: 0;
  z-index: 100;
}

.back-btn-projects {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  color: #1a1a1a;
  text-decoration: none;
}

.projects-header-title {
  font-size: 17px;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0;
  flex: 1;
  text-align: center;
}

.filter-btn-projects {
  width: auto;
  padding: 6px 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  color: #666;
  border: 1px solid #e5e7eb;
  background: #fff;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 500;
}

/* 统计横幅 */
.stats-banner {
  background: linear-gradient(135deg, #1a1a1a, #2d2d2d);
  margin: 12px 16px;
  padding: 16px 20px;
  border-radius: 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.stats-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  flex: 1;
}

.stats-label {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.7);
  font-weight: 500;
}

.stats-value {
  font-size: 24px;
  color: #f5d771;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}
.stats-value.active {
  color: #10b981;
}

.stats-value.invested {
  color: #3b82f6;
}

.stats-divider {
  width: 1px;
  height: 40px;
  background: rgba(255, 255, 255, 0.1);
}

/* 快速筛选 */
.quick-filter {
  display: flex;
  gap: 8px;
  padding: 12px 16px 8px;
  overflow-x: auto;
}

.quick-filter::-webkit-scrollbar {
  display: none;
}

.quick-filter-btn {
  padding: 8px 16px;
  border: 1px solid #e5e7eb;
  background: #fff;
  border-radius: 8px;
  font-size: 13px;
  color: #666;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.2s;
  font-weight: 500;
}

.quick-filter-btn.active {
  background: linear-gradient(135deg, #1a1a1a, #2d2d2d);
  color: #f5d771;
  border-color: #1a1a1a;
  font-weight: 600;
}

/* 项目列表 */
.projects-list-new {
  padding: 8px 16px 20px;
}

.project-card-new {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
  position: relative;
  cursor: pointer;
  transition: all 0.2s;
  border: 1px solid rgba(0, 0, 0, 0.04);
}

.project-card-new:active {
  transform: translateY(1px);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.project-card-new.locked-card {
  opacity: 0.75;
}
.lock-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  background: linear-gradient(135deg, #1a1a1a, #2d2d2d);
  color: #f5d771;
  padding: 4px 10px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 700;
  z-index: 10;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}
.lock-icon {
  font-size: 10px;
}

.hot-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: linear-gradient(135deg, #ff6b6b, #ee5a6f);
  color: #fff;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  z-index: 5;
  box-shadow: 0 2px 4px rgba(255, 107, 107, 0.3);
}

.project-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid #f0f0f0;
}

.project-card-left {
  flex: 1;
}

.project-card-title {
  font-size: 16px;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0 0 8px;
  line-height: 1.4;
}

.project-card-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.project-tag {
  padding: 3px 8px;
  background: #f8f9fa;
  border-radius: 4px;
  font-size: 11px;
  color: #666;
  font-weight: 500;
}

.project-tag.vip-tag {
  background: linear-gradient(135deg, #1a1a1a, #2d2d2d);
  color: #f5d771;
  font-weight: 600;
}

.project-tag.status-tag.active {
  background: #e8f5e9;
  color: #2e7d32;
}

.project-tag.status-tag.paused {
  background: #fff3e0;
  color: #f57c00;
}

.project-tag.status-tag.sold {
  background: #ffebee;
  color: #c62828;
}

.project-card-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.rate-display {
  display: flex;
  align-items: baseline;
  gap: 2px;
  margin-bottom: 2px;
}

.rate-number {
  font-size: 28px;
  font-weight: 800;
  color: #d4af37;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.rate-unit {
  font-size: 14px;
  color: #d4af37;
  font-weight: 600;
}

.rate-label-small {
  font-size: 10px;
  color: #999;
  font-weight: 500;
}

.project-card-body {
  margin-bottom: 12px;
}

.progress-section {
  margin-bottom: 12px;
}

.progress-info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}

.progress-label {
  font-size: 12px;
  color: #666;
  font-weight: 500;
}

.progress-percent {
  font-size: 12px;
  color: #d4af37;
  font-weight: 700;
}

.progress-bar-new {
  height: 5px;
  background: #e5e7eb;
  border-radius: 3px;
  overflow: hidden;
}

.progress-fill-new {
  height: 100%;
  background: linear-gradient(90deg, #d4af37, #e6c75a);
  border-radius: 3px;
  transition: width 0.3s;
}

.project-details-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  padding: 12px;
  background: #f8f9fa;
  border-radius: 8px;
}

.detail-col {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.detail-label {
  font-size: 11px;
  color: #666;
  font-weight: 500;
}

.detail-value {
  font-size: 13px;
  color: #1a1a1a;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.detail-value.highlight {
  color: #d4af37;
}
.project-card-footer {
  display: flex;
  justify-content: flex-end;
}

.btn-detail {
  padding: 10px 24px;
  background: linear-gradient(135deg, #1a1a1a, #2d2d2d);
  color: #f5d771;
  border: none;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
  border: 1px solid rgba(245, 215, 113, 0.2);
}
.btn-detail:active {
  transform: translateY(1px);
  background: linear-gradient(135deg, #2d2d2d, #1a1a1a);
}

/* 加载状态 */
.loading-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 20px;
}

.loading-spinner-new {
  width: 40px;
  height: 40px;
  border: 3px solid #f0f0f0;
  border-top-color: #d4af37;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

.loading-text {
  margin-top: 12px;
  font-size: 13px;
  color: #999;
}

/* 空状态 */
.empty-state-new {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 80px 20px;
}

.empty-icon-new {
  font-size: 64px;
  margin-bottom: 16px;
  opacity: 0.5;
}

.empty-text-new {
  font-size: 14px;
  color: #999;
}

/* ========================================
   项目列表 - 大戶豐IPO募集风格
   ======================================== */
.page-projects-ipo {
  background: #f7f8fa;
  min-height: 100vh;
  padding-bottom: 70px;
}
.ipo-header {
  background: #fff;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid #e8e8e8;
  position: sticky;
  top: 0;
  z-index: 100;
}

.back-btn-ipo {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  color: #333;
  text-decoration: none;
  margin-right: 8px;
}

.ipo-header-title {
  font-size: 18px;
  font-weight: 700;
  color: #333;
  margin: 0;
  flex: 1;
}

.header-spacer {
  width: 40px;
}

/* IPO卡片列表 */
.ipo-list {
  padding: 12px 16px;
}

.ipo-card {
  background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%);
  border-radius: 16px;
  margin-bottom: 16px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  border: 1px solid rgba(212, 175, 55, 0.2);
  position: relative;
}

.ipo-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #d4af37, #f4d03f, #d4af37);
}

.ipo-card:active {
  transform: translateY(2px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.ipo-card.ipo-locked {
  opacity: 0.6;
  filter: grayscale(0.3);
}

/* 顶部状态栏 */
.ipo-status-bar {
  padding: 12px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  font-weight: 700;
  background: rgba(212, 175, 55, 0.08);
  border-bottom: 1px solid rgba(212, 175, 55, 0.1);
}

.ipo-status-bar.status-active {
  background: rgba(16, 185, 129, 0.15);
  color: #10b981;
}

.ipo-status-bar.status-paused {
  background: rgba(245, 158, 11, 0.15);
  color: #f59e0b;
}

.ipo-status-bar.status-sold {
  background: rgba(239, 68, 68, 0.15);
  color: #ef4444;
}

.status-text {
  display: flex;
  align-items: center;
  letter-spacing: 0.5px;
}

.status-text::before {
  content: "●";
  margin-right: 8px;
  font-size: 8px;
  animation: pulse 2s ease-in-out infinite;
}

@keyframes pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}
.vip-lock {
  font-size: 11px;
  padding: 4px 10px;
  background: rgba(212, 175, 55, 0.2);
  color: #d4af37;
  border-radius: 12px;
  border: 1px solid rgba(212, 175, 55, 0.3);
  backdrop-filter: blur(10px);
}

/* 项目标题 */
.ipo-title-section {
  padding: 20px 16px 16px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.ipo-title {
  font-size: 18px;
  font-weight: 700;
  color: #ffffff;
  margin: 0;
  flex: 1;
  line-height: 1.5;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.hot-tag {
  padding: 6px 12px;
  background: linear-gradient(135deg, #d4af37, #f4d03f);
  color: #1a1a1a;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
  box-shadow: 0 2px 8px rgba(212, 175, 55, 0.4);
  letter-spacing: 0.5px;
}

/* 关键数据行 */
.ipo-data-row {
  display: flex;
  padding: 0 16px 16px;
  border-bottom: 1px solid #f0f0f0;
}

.data-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.data-col.main-col {
  flex: 1.3;
}

.data-label {
  font-size: 12px;
  color: #999;
  font-weight: 500;
}

.data-value {
  font-size: 16px;
  font-weight: 700;
  color: #333;
  font-variant-numeric: tabular-nums;
}

.data-value.primary {
  font-size: 24px;
  color: #f04134;
}

.vip-bonus-mini {
  font-size: 10px;
  color: #f04134;
  font-weight: 600;
  margin-top: -2px;
}

.data-divider {
  width: 1px;
  background: #e8e8e8;
  margin: 0 12px;
}

/* 募集进度 */
.ipo-progress-section {
  padding: 16px;
}

.progress-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}

.progress-title {
  font-size: 13px;
  color: #666;
  font-weight: 600;
}

.progress-value {
  font-size: 15px;
  color: #f04134;
  font-weight: 700;
}

.progress-bar-ipo {
  height: 8px;
  background: #f0f0f0;
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 10px;
}

.progress-fill-ipo {
  height: 100%;
  background: linear-gradient(90deg, #ff6b6b, #f04134);
  border-radius: 4px;
  transition: width 0.3s;
}

.progress-footer {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: #999;
}

.progress-stat {
  font-weight: 500;
}

/* 底部信息 */
.ipo-footer {
  padding: 12px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid #f0f0f0;
  background: #fafafa;
}

.footer-info {
  display: flex;
  align-items: center;
  font-size: 12px;
  color: #999;
  gap: 8px;
}

.info-item {
  white-space: nowrap;
}

.info-divider {
  color: #e8e8e8;
}

.btn-subscribe {
  padding: 8px 24px;
  background: #f04134;
  color: #fff;
  border: none;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
}

.btn-subscribe:active {
  background: #d73d33;
  transform: scale(0.98);
}

/* ========================================
   项目详情 - 大戶豐IPO风格
   ======================================== */
.page-project-detail-ipo {
  background: #f7f8fa;
  min-height: 100vh;
  padding-bottom: 80px;
}
.detail-header-ipo {
  background: #fff;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid #e8e8e8;
  position: sticky;
  top: 0;
  z-index: 100;
}

.back-btn-detail-ipo {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  color: #333;
  text-decoration: none;
  margin-right: 8px;
}
.detail-header-title-ipo {
  font-size: 18px;
  font-weight: 700;
  color: #333;
  margin: 0;
  flex: 1;
}

.detail-content-ipo {
  padding: 12px 16px;
}
/* 关键指标卡片 */
.key-metrics-card {
  background: #fff;
  border-radius: 8px;
  padding: 20px;
  margin-bottom: 12px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.metrics-grid {
  display: flex;
  gap: 16px;
}

.metric-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
  text-align: center;
}

.metric-item.main-metric {
  flex: 1.5;
  border-right: 1px solid #e8e8e8;
  padding-right: 16px;
}

.metric-label {
  font-size: 12px;
  color: #999;
  font-weight: 500;
}

.metric-value {
  font-size: 20px;
  font-weight: 700;
  color: #333;
  font-variant-numeric: tabular-nums;
}

.metric-value.large {
  font-size: 32px;
  color: #f04134;
}

.metric-sub {
  font-size: 11px;
  color: #f04134;
  font-weight: 600;
}

/* 详情卡片通用样式 */
.detail-progress-card,
.calculator-card-ipo,
.info-table-card,
.description-card,
.risk-card-ipo {
  background: #fff;
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
}

.card-title {
  font-size: 15px;
  font-weight: 700;
  color: #333;
  margin: 0;
}

.card-badge {
  padding: 4px 10px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
}

.card-badge.status-active {
  background: #e8f5e9;
  color: #2e7d32;
}

.card-badge.status-paused {
  background: #fff3e0;
  color: #f57c00;
}

.card-badge.status-sold {
  background: #ffebee;
  color: #c62828;
}

/* 进度详情 */
.progress-detail {
}

.progress-bar-detail-ipo {
  height: 8px;
  background: #f0f0f0;
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 12px;
}

.progress-fill-detail-ipo {
  height: 100%;
  background: linear-gradient(90deg, #ff6b6b, #f04134);
  border-radius: 4px;
  transition: width 0.3s;
}

.progress-stats {
  display: flex;
  justify-content: space-between;
}

.stat-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.stat-label {
  font-size: 12px;
  color: #999;
  font-weight: 500;
}

.stat-value {
  font-size: 14px;
  color: #333;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.stat-value.highlight {
  color: #f04134;
}

/* 收益试算 */
.calculator-body {
}

.input-group {
  margin-bottom: 14px;
}

.input-group label {
  display: block;
  font-size: 13px;
  color: #666;
  margin-bottom: 8px;
  font-weight: 600;
}

.input-wrapper {
  position: relative;
}
.input-wrapper input {
  width: 100%;
  padding: 12px 40px 12px 12px;
  border: 1px solid #e8e8e8;
  border-radius: 4px;
  font-size: 16px;
  font-weight: 600;
  color: #333;
  background: #fafafa;
  box-sizing: border-box;
}

.input-wrapper input:focus {
  outline: none;
  border-color: #f04134;
  background: #fff;
}
.input-unit {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 14px;
  color: #999;
  font-weight: 600;
}

.calc-result-grid {
  display: flex;
  gap: 12px;
  padding: 14px;
  background: #f7f8fa;
  border-radius: 4px;
}

.result-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.result-label {
  font-size: 12px;
  color: #999;
  font-weight: 500;
}

.result-value {
  font-size: 18px;
  color: #333;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.result-value.profit {
  color: #f04134;
}

.result-value.total {
  color: #f04134;
  font-size: 20px;
}

/* 信息表格 */
.info-table {
  display: flex;
  flex-direction: column;
}

.info-row {
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px solid #f0f0f0;
}

.info-row:last-child {
  border-bottom: none;
}

.info-label {
  font-size: 13px;
  color: #999;
  font-weight: 500;
}

.info-value {
  font-size: 13px;
  color: #333;
  font-weight: 600;
}

.info-value.error {
  color: #f04134;
}

.info-value.success {
  color: #52c41a;
}

/* 说明内容 */
.description-content {
  font-size: 13px;
  color: #666;
  line-height: 1.8;
}

.desc-section {
  margin-bottom: 16px;
}

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

.desc-subtitle {
  font-size: 14px;
  font-weight: 700;
  color: #333;
  margin: 0 0 8px;
}

.desc-text {
  margin: 4px 0;
}

.highlight-text {
  color: #f04134;
  font-weight: 700;
  font-size: 16px;
}

/* 风险提示 */
.risk-card-ipo {
  background: #fff9f7;
  border: 1px solid #ffe4e1;
}

.risk-content {
  font-size: 12px;
  color: #666;
  line-height: 1.8;
}

.risk-content p {
  margin: 6px 0;
}

/* 底部操作栏 */
.detail-footer-ipo {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: #fff;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 16px;
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08);
  z-index: 100;
}

.footer-left {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.balance-label {
  font-size: 11px;
  color: #999;
}

.balance-value {
  font-size: 16px;
  color: #333;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.btn-invest-ipo {
  flex: 1;
  padding: 14px 24px;
  background: #f04134;
  color: #fff;
  border: none;
  border-radius: 4px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
}

.btn-invest-ipo:active {
  background: #d73d33;
  transform: scale(0.98);
}
/* ==========================================
   理财产品页面 - 新UI样式
   ========================================== */

/* 重新定义页面背景 */
body.page-projects-ipo {
  background: linear-gradient(180deg, #1e3a5f 0%, #f5f5f5 300px) !important;
}

/* 金融产品页头部 */
.financial-header {
  background: linear-gradient(135deg, #2c5f8d, #1e3a5f);
  padding: 20px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.header-icon {
  font-size: 28px;
}

.financial-title {
  font-size: 20px;
  font-weight: 700;
  color: #ffffff;
  margin: 0;
}

/* 统计卡片区域 */
.stats-section {
  display: flex;
  gap: 12px;
  padding: 16px;
  margin-top: -10px;
}

.stat-card {
  flex: 1;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.stat-icon {
  font-size: 28px;
  flex-shrink: 0;
}

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

.stat-label {
  font-size: 11px;
  color: #666;
  font-weight: 500;
  white-space: nowrap;
}

.stat-value {
  font-size: 16px;
  font-weight: 800;
  color: #1a1a1a;
  font-variant-numeric: tabular-nums;
  overflow: hidden;
  text-overflow: ellipsis;
}

.stat-value-positive {
  color: #10b981;
}

.stat-value-rate {
  color: #f59e0b;
}

/* 热门产品标题 */
.section-header-hot {
  padding: 20px 16px 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.hot-icon {
  font-size: 20px;
}

.hot-title {
  font-size: 18px;
  font-weight: 700;
  color: #1a1a1a;
}

/* 产品列表容器 */
.product-list {
  padding: 0 16px 100px;
}

/* 产品卡片 - 参考永豐金證券风格 */
.product-card {
  background: #ffffff;
  border-radius: 20px;
  margin-bottom: 16px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
  border: 2px solid #d4af37;
  position: relative;
}

.product-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 20px 16px 16px;
  background: linear-gradient(135deg, #fffef7 0%, #ffffff 100%);
}

.product-title {
  flex: 1;
  font-size: 17px;
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.4;
}

.product-tag {
  padding: 6px 12px;
  background: linear-gradient(135deg, #d4af37, #f4d03f);
  color: #1a1a1a;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
  margin-left: 8px;
}

.product-subtitle {
  padding: 0 16px 16px;
  font-size: 13px;
  color: #666;
  background: linear-gradient(135deg, #fffef7 0%, #ffffff 100%);
}

.product-stats {
  padding: 16px;
  display: flex;
  gap: 12px;
}

.product-stat {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
}

.stat-icon-small {
  font-size: 18px;
}

.stat-content {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.stat-label-small {
  font-size: 11px;
  color: #999;
}

.stat-value-small {
  font-size: 15px;
  font-weight: 700;
  color: #d4af37;
}

.product-progress {
  padding: 16px;
  border-top: 1px solid #f0f0f0;
}

.progress-info {
  display: flex;
  justify-content: space-between;
  margin-bottom: 8px;
}
.progress-label {
  font-size: 12px;
  color: #666;
}

.progress-percent {
  font-size: 12px;
  font-weight: 700;
  color: #d4af37;
}

.progress-bar {
  height: 8px;
  background: #f5f5f5;
  border-radius: 4px;
  overflow: hidden;
}
.progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #d4af37, #f4d03f);
  border-radius: 4px;
  transition: width 0.3s ease;
}

.product-footer {
  padding: 16px;
  background: linear-gradient(135deg, #2c5f8d, #1e3a5f);
}

.btn-subscribe {
  width: 100%;
  padding: 14px;
  background: #ffffff;
  color: #1e3a5f;
  border: none;
  border-radius: 12px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s;
}

.btn-subscribe:active {
  transform: scale(0.98);
}

.product-card.product-locked {
  opacity: 0.7;
  filter: grayscale(0.3);
}

/* ==========================================
   我的团队页面样式
   ========================================== */

.page-team {
  background: url("assets/ad69dc869229a.jpg") center top / cover no-repeat fixed,
    linear-gradient(
      180deg,
      rgba(14, 43, 68, 0.75) 0%,
      rgba(9, 28, 46, 0.85) 50%,
      rgba(5, 15, 30, 0.92) 100%
    );
  background-blend-mode: overlay;
  min-height: 100vh;
  padding-bottom: 70px;
}

/* 团队页头部 - 主题色 */
.team-header {
  background: linear-gradient(135deg, #2c5f8d, #1e3a5f);
  padding: 14px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.team-header .back-btn {
  color: #ffffff;
  font-size: 28px;
}

.team-header .team-title {
  color: #ffffff;
}

.team-title {
  font-size: 18px;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0;
}

.back-btn {
  font-size: 28px;
  color: #333;
  text-decoration: none;
  cursor: pointer;
}

.header-spacer {
  width: 28px;
}

/* 团队统计 */
.team-stats {
  display: flex;
  gap: 12px;
  padding: 16px;
  background: #fff;
  margin-bottom: 12px;
}

.stat-box {
  flex: 1;
  background: linear-gradient(135deg, #fff 0%, #f8f9fa 100%);
  border-radius: 12px;
  padding: 16px 12px;
  text-align: center;
  border: 1px solid #e8e8e8;
}

.stat-box .stat-label {
  font-size: 12px;
  color: #666;
  margin-bottom: 8px;
}

.stat-box .stat-value {
  font-size: 20px;
  font-weight: 800;
  color: #1a1a1a;
  font-variant-numeric: tabular-nums;
}
.stat-value-gold {
  color: #d4af37 !important;
}

/* 级别切换标签 */
.level-tabs {
  display: flex;
  gap: 12px;
  padding: 12px 16px;
  background: #fff;
  margin-bottom: 8px;
}

.level-tab {
  flex: 1;
  padding: 10px 16px;
  border-radius: 20px;
  border: 2px solid #e8e8e8;
  background: #fff;
  color: #666;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
}

.level-tab.active {
  background: linear-gradient(135deg, #d4af37, #f4d03f);
  border-color: #d4af37;
  color: #1a1a1a;
}

/* 团队列表 */
.team-list {
  padding: 8px 16px 20px;
}

/* 团队成员卡片 */
.team-member-card {
  background: #fff;
  border-radius: 16px;
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.member-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #f0f0f0;
}

.member-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, #d4af37, #f4d03f);
  color: #1a1a1a;
  font-size: 20px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.member-info {
  flex: 1;
  min-width: 0;
}

.member-name {
  font-size: 16px;
  font-weight: 700;
  color: #1a1a1a;
  margin-bottom: 4px;
}

.member-id {
  font-size: 12px;
  color: #999;
}
.member-vip {
  padding: 4px 10px;
  background: linear-gradient(135deg, #d4af37, #f4d03f);
  color: #1a1a1a;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 700;
}

/* 成员统计 */
.member-stats {
  display: flex;
  align-items: center;
  gap: 12px;
}

.member-stat-item {
  flex: 1;
  text-align: center;
}

.stat-label-sm {
  font-size: 11px;
  color: #999;
  margin-bottom: 4px;
}

.stat-value-sm {
  font-size: 15px;
  font-weight: 700;
  color: #1a1a1a;
  font-variant-numeric: tabular-nums;
}

.stat-value-highlight {
  color: #d4af37;
}

.stat-divider-sm {
  width: 1px;
  height: 40px;
  background: #e8e8e8;
}

.btn-view-sub {
  padding: 8px 16px;
  background: linear-gradient(135deg, #d4af37, #f4d03f);
  color: #1a1a1a;
  border: none;
  border-radius: 16px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}

.btn-view-sub:active {
  transform: scale(0.95);
}

/* 空状态 */
.empty-state {
  text-align: center;
  padding: 60px 20px;
}

.empty-icon {
  font-size: 64px;
  margin-bottom: 16px;
  opacity: 0.5;
}

.empty-text {
  font-size: 14px;
  color: #999;
}

/* Loading */
.loading-container {
  text-align: center;
  padding: 60px 20px;
}

.loading-spinner {
  width: 40px;
  height: 40px;
  border: 4px solid #f3f3f3;
  border-top: 4px solid #d4af37;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin: 0 auto 16px;
}

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

.loading-text {
  font-size: 14px;
  color: #999;
}

/* Toast */
.toast {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(0, 0, 0, 0.8);
  color: #fff;
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 14px;
  opacity: 0;
  transition: opacity 0.3s;
  z-index: 10000;
}

.toast.show {
  opacity: 1;
}

/* ==========================================
   项目卡片 - 紧凑高端版
   ========================================== */

/* 紧凑版产品卡片 */
.product-card-compact {
  background: #ffffff;
  border-radius: 16px;
  margin-bottom: 12px;
  overflow: visible;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
  border: 2px solid #d4af37;
  position: relative;
  transition: all 0.3s;
}

.product-card-compact:active {
  transform: translateY(1px);
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.06);
}

/* VIP标识 - 右上角 */
.vip-badge-corner {
  position: absolute;
  top: -1px;
  right: -1px;
  background: linear-gradient(135deg, #d4af37, #f4d03f);
  color: #1a1a1a;
  padding: 4px 10px;
  border-radius: 0 14px 0 12px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.5px;
  box-shadow: 0 2px 8px rgba(212, 175, 55, 0.4);
  z-index: 10;
}

/* 产品头部 - 紧凑 */
.product-header-compact {
  padding: 14px 16px 10px;
  background: linear-gradient(135deg, #fffef7 0%, #ffffff 100%);
}

.product-title-compact {
  font-size: 16px;
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.4;
  margin-bottom: 4px;
  padding-right: 60px;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.product-code-compact {
  font-size: 12px;
  color: #999;
  font-weight: 500;
}

/* 关键数据行 - 3列 */
.product-data-row {
  display: flex;
  align-items: center;
  padding: 12px 16px;
  background: #fff;
  border-top: 1px solid #f0f0f0;
  border-bottom: 1px solid #f0f0f0;
}
.data-item {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.data-icon {
  font-size: 16px;
  flex-shrink: 0;
}

.data-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.data-label {
  font-size: 10px;
  color: #999;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.data-value {
  font-size: 14px;
  font-weight: 700;
  color: #d4af37;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.data-divider {
  width: 1px;
  height: 20px;
  background: #e8e8e8;
  margin: 0 4px;
  flex-shrink: 0;
}

/* 底部区域 - 进度+按钮 */
.product-bottom-compact {
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fff;
}

.progress-compact {
  flex: 1;
  min-width: 0;
}

.progress-text {
  font-size: 11px;
  color: #666;
  margin-bottom: 6px;
  display: flex;
  justify-content: space-between;
}
.progress-text span {
  color: #d4af37;
  font-weight: 700;
}

.progress-bar-compact {
  height: 6px;
  background: #f5f5f5;
  border-radius: 3px;
  overflow: hidden;
}

.progress-fill-compact {
  height: 100%;
  background: linear-gradient(90deg, #d4af37, #f4d03f);
  border-radius: 3px;
  transition: width 0.3s ease;
}

.btn-apply-compact {
  padding: 10px 20px;
  background: linear-gradient(135deg, #2c5f8d, #1e3a5f);
  color: #ffffff;
  border: none;
  border-radius: 20px;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(30, 58, 95, 0.3);
  transition: all 0.3s;
  flex-shrink: 0;
}

.btn-apply-compact:active {
  transform: scale(0.95);
}

/* 锁定状态 */
.product-card-compact.product-locked {
  opacity: 0.6;
  border-color: #999;
}

.product-card-compact.product-locked .btn-apply-compact {
  background: linear-gradient(135deg, #999, #777);
  cursor: not-allowed;
}

/* Toast消息 */
.toast-message {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(0, 0, 0, 0.85);
  color: #fff;
  padding: 14px 24px;
  border-radius: 12px;
  font-size: 14px;
  opacity: 0;
  transition: opacity 0.3s;
  z-index: 10000;
  max-width: 80%;
  text-align: center;
}

.toast-message.show {
  opacity: 1;
}

/* 移动端优化 */
@media (max-width: 375px) {
  .product-title-compact {
    font-size: 15px;
  }

  .data-label {
    font-size: 9px;
  }

  .data-value {
    font-size: 13px;
  }

  .data-icon {
    font-size: 14px;
  }

  .btn-apply-compact {
    padding: 8px 16px;
    font-size: 13px;
  }
}

@media (min-width: 768px) {
  .product-list {
    max-width: 600px;
    margin: 0 auto;
  }
}

/* ==========================================
   个人中心 - 统一卡片（用户信息+升级进度）
   ========================================== */

/* 统一卡片 - VIP卡片背景图 */
.profile-unified-card {
  background: url("assets/a56c1b3e95811.jpg") center / cover no-repeat,
    linear-gradient(
      135deg,
      rgba(255, 255, 255, 0.88),
      rgba(248, 249, 250, 0.92)
    );
  background-blend-mode: overlay;
  margin: 12px 16px 40px;
  border-radius: 20px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
  overflow: hidden;
  border: 2px solid rgba(212, 175, 55, 0.25);
  position: relative;
  z-index: 1;
}
.profile-unified-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(212, 175, 55, 0.04),
    rgba(244, 208, 63, 0.06)
  );
  pointer-events: none;
}
/* 用户信息区 - 半透明白色 */
.user-section {
  display: flex;
  align-items: center;
  padding: 20px 16px;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(212, 175, 55, 0.15);
  position: relative;
  z-index: 1;
}

.user-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, #d4af37, #f4d03f);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-right: 14px;
  box-shadow: 0 4px 12px rgba(212, 175, 55, 0.3);
}

.avatar-text {
  font-size: 26px;
  font-weight: 800;
  color: #1a1a1a;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

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

.user-name {
  font-size: 19px;
  font-weight: 700;
  color: #1a1a1a;
  margin-bottom: 4px;
}

.user-id {
  font-size: 13px;
  color: #999;
  font-weight: 500;
}

.user-vip-badge {
  width: 50px;
  height: 50px;
  flex-shrink: 0;
  background: url("img/V3_small.png") center / contain no-repeat;
  position: relative;
  filter: drop-shadow(0 2px 8px rgba(212, 175, 55, 0.4));
}

/* 根据data-vip-level属性显示不同的VIP图标 */
.user-vip-badge[data-vip-level="1"] {
  background-image: url("img/V1_small.png");
}

.user-vip-badge[data-vip-level="2"] {
  background-image: url("img/V2_small.png");
}

.user-vip-badge[data-vip-level="3"] {
  background-image: url("img/V3_small.png");
}

.user-vip-badge[data-vip-level="4"] {
  background-image: url("img/V4_small.png");
}

.user-vip-badge[data-vip-level="5"] {
  background-image: url("img/V5_small.png");
}

.user-vip-badge[data-vip-level="6"] {
  background-image: url("img/V6_small.png");
}

.user-vip-badge[data-vip-level="7"] {
  background-image: url("img/V7_small.png");
}

.user-vip-badge[data-vip-level="8"] {
  background-image: url("img/V8_small.png");
}

/* 隐藏文字，只显示图片 */
.vip-text,
.vip-number {
  display: none;
}

/* 升级进度区 - 浅色背景 */
.upgrade-section {
  padding: 16px;
  background: linear-gradient(135deg, #fefdfb 0%, #f8f7f5 100%);
}

.upgrade-info-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.upgrade-label {
  font-size: 14px;
  color: #666;
  font-weight: 500;
}

.upgrade-label strong {
  color: #d4af37;
  font-weight: 800;
}

.upgrade-percent {
  font-size: 18px;
  font-weight: 800;
  color: #d4af37;
  text-shadow: 0 1px 2px rgba(212, 175, 55, 0.2);
}

.upgrade-bar-wrapper {
  height: 10px;
  background: #f0ede8;
  border-radius: 5px;
  overflow: hidden;
  margin-bottom: 12px;
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.08);
}

.upgrade-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #d4af37, #f4d03f, #d4af37);
  background-size: 200% 100%;
  border-radius: 5px;
  transition: width 0.5s ease;
  box-shadow: 0 2px 6px rgba(212, 175, 55, 0.4);
  animation: shimmer 3s ease-in-out infinite;
}

@keyframes shimmer {
  0% {
    background-position: 200% center;
  }
  50% {
    background-position: 0% center;
  }
  100% {
    background-position: -200% center;
  }
}

.upgrade-detail-row {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
}

.current-amount {
  color: #666;
  font-weight: 600;
}

.need-amount {
  color: #999;
}

.need-amount strong {
  color: #d4af37;
  font-weight: 800;
}

/* 隐藏旧的VIP卡片样式 */
.profile-vip-section {
  display: none !important;
}

/* ==========================================
   双栏布局：团队 + 邀请
   ========================================== */

.dual-panel-section {
  display: flex;
  gap: 12px;
  padding: 16px;
}
.panel-left,
.panel-right {
  flex: 1;
  background: #ffffff;
  border-radius: 16px;
  padding: 16px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
  display: flex;
  flex-direction: column;
}
.panel-left {
  border: 2px solid #2c5f8d;
}

.panel-right {
  border: 2px solid #d4af37;
}

.panel-header {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid #f0f0f0;
}

.panel-icon {
  font-size: 18px;
}
.panel-title {
  font-size: 15px;
  font-weight: 700;
  color: #1a1a1a;
}

/* 左侧：团队统计 */
.team-stat-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px dashed #f0f0f0;
}

.team-stat-item:last-child {
  border-bottom: none;
}

.stat-label-dual {
  font-size: 13px;
  color: #666;
}

.stat-value-dual {
  font-size: 16px;
  font-weight: 800;
  color: #1a1a1a;
}

.stat-gold {
  color: #d4af37 !important;
}

/* 右侧：邀请信息 */
.invite-code-compact {
  background: linear-gradient(135deg, #fffef7, #f8f7f5);
  border-radius: 12px;
  padding: 12px;
  margin-bottom: 12px;
  text-align: center;
  border: 1px solid rgba(212, 175, 55, 0.2);
}

.code-label {
  font-size: 11px;
  color: #999;
  margin-bottom: 6px;
}

.code-value {
  font-size: 20px;
  font-weight: 800;
  color: #d4af37;
  letter-spacing: 2px;
  font-family: monospace;
  margin-bottom: 10px;
}

.btn-copy-compact {
  padding: 6px 16px;
  background: linear-gradient(135deg, #d4af37, #f4d03f);
  color: #1a1a1a;
  border: none;
  border-radius: 16px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.btn-copy-compact:active {
  transform: scale(0.95);
}

.commission-compact {
  background: #f8f7f5;
  border-radius: 10px;
  padding: 10px;
  margin-bottom: 12px;
}

.commission-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 0;
}

.comm-label {
  font-size: 12px;
  color: #666;
}

.comm-value {
  font-size: 15px;
  font-weight: 800;
  color: #d4af37;
}

.btn-share-link {
  width: 100%;
  padding: 10px;
  background: linear-gradient(135deg, #2c5f8d, #1e3a5f);
  color: #ffffff;
  border: none;
  border-radius: 12px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  margin-top: auto;
}

.btn-share-link:active {
  transform: scale(0.98);
}

/* 个人中心内容区背景 - 使用31.jpg */
.content-profile {
  background: url("assets/ad69dc869229a.jpg") center top / cover no-repeat fixed;
  position: relative;
  min-height: calc(100vh - 60px);
  padding-bottom: 80px;
}

.content-profile::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
    180deg,
    rgba(14, 43, 68, 0.75) 0%,
    rgba(9, 28, 46, 0.85) 50%,
    rgba(5, 15, 30, 0.92) 100%
  );
  z-index: 0;
  pointer-events: none;
}

.content-profile > * {
  position: relative;
  z-index: 1;
}

/* ==========================================
   首页数据展示栏 - 新UI（参考图片样式）
   ========================================== */

.market-overview-new {
  background: url("assets/a3473214e1b36.jpg") center / cover no-repeat,
    linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(248, 249, 250, 0.95));
  background-blend-mode: overlay;
  padding: 12px 16px;
  margin: 0 0 12px;
  position: relative;
}

.market-overview-new::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(212, 175, 55, 0.05),
    rgba(244, 208, 63, 0.08)
  );
  pointer-events: none;
}

.data-cards-container {
  display: flex;
  gap: 8px;
}
.data-card {
  flex: 1;
  background: #ffffff;
  border: 2px solid #d4af37;
  border-radius: 12px;
  padding: 12px 10px;
  cursor: pointer;
  transition: all 0.3s;
  box-shadow: 0 2px 8px rgba(212, 175, 55, 0.15);
}
.data-card:active {
  transform: translateY(2px);
  box-shadow: 0 1px 4px rgba(212, 175, 55, 0.1);
}

.card-title {
  font-size: 11px;
  color: #666;
  margin-bottom: 6px;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.card-code {
  font-size: 10px;
  color: #999;
  margin-bottom: 4px;
  text-align: center;
  font-family: monospace;
}

.card-value {
  font-size: 20px;
  font-weight: 800;
  color: #1a1a1a;
  text-align: center;
  margin-bottom: 6px;
  font-variant-numeric: tabular-nums;
}

.card-change {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.change-num {
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
}

.change-percent {
  font-size: 11px;
  font-weight: 700;
}

/* 涨跌颜色 */
.card-change.up .change-num {
  color: #ef4444;
}

.card-change.up .change-percent {
  color: #ef4444;
}

.card-change.down .change-num {
  color: #10b981;
}

.card-change.down .change-percent {
  color: #10b981;
}

.card-change.neutral .change-num,
.card-change.neutral .change-percent {
  color: #999;
}

/* 小箭头 */
.change-num.up::before {
  content: "▲";
  font-size: 10px;
  margin-right: 2px;
}

.change-num.down::before {
  content: "▼";
  font-size: 10px;
  margin-right: 2px;
}

/* 响应式 */
@media (max-width: 375px) {
  .card-title {
    font-size: 10px;
  }
  .card-value {
    font-size: 18px;
  }
}

/* ==========================================
   我的团队页面 - 顶部邀请按钮
   ========================================== */

.btn-invite-header {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 8px 16px;
  background: linear-gradient(135deg, #d4af37, #f4d03f);
  color: #1a1a1a;
  border: none;
  border-radius: 20px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(212, 175, 55, 0.3);
}

.btn-invite-header:active {
  transform: scale(0.95);
}

/* ==========================================
   邀请好友页面样式
   ========================================== */

.page-invite-share {
  background: #f5f5f5;
  min-height: 100vh;
  padding-bottom: 70px;
}

.invite-header-main {
  background: #fff;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #e5e5e5;
}

.invite-title-main {
  font-size: 18px;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0;
}

/* 邀请奖励横幅 */
.invite-reward-banner {
  background: linear-gradient(135deg, #1a1a1a, #2d2d2d);
  padding: 30px 20px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.invite-reward-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent, rgba(212, 175, 55, 0.1));
}

.reward-title {
  font-size: 22px;
  font-weight: 800;
  color: #d4af37;
  margin-bottom: 8px;
  position: relative;
  z-index: 1;
}
.reward-subtitle {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.8);
  position: relative;
  z-index: 1;
}

/* 通用section样式 */
.invite-code-section,
.invite-link-section-main,
.commission-rates-section,
.invite-steps-section {
  background: #fff;
  margin: 12px 16px;
  padding: 20px;
  border-radius: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.section-title {
  font-size: 16px;
  font-weight: 700;
  color: #1a1a1a;
  margin-bottom: 16px;
}
/* 邀请码展示 */
.invite-code-display {
  background: linear-gradient(135deg, #fffef7, #f8f7f5);
  border-radius: 12px;
  padding: 20px;
  text-align: center;
  border: 2px solid #d4af37;
}

.code-text {
  font-size: 32px;
  font-weight: 800;
  color: #d4af37;
  letter-spacing: 4px;
  font-family: monospace;
  margin-bottom: 16px;
}

.btn-copy-code {
  padding: 12px 32px;
  background: linear-gradient(135deg, #d4af37, #f4d03f);
  color: #1a1a1a;
  border: none;
  border-radius: 24px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(212, 175, 55, 0.3);
}

.btn-copy-code:active {
  transform: scale(0.95);
}

/* 邀请链接展示 */
.invite-link-display {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.link-input {
  width: 100%;
  padding: 14px 16px;
  border: 2px solid #e8e8e8;
  border-radius: 12px;
  font-size: 14px;
  color: #666;
  background: #f8f9fa;
}

.btn-copy-link-main {
  padding: 14px;
  background: linear-gradient(135deg, #2c5f8d, #1e3a5f);
  color: #ffffff;
  border: none;
  border-radius: 12px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
}

.btn-copy-link-main:active {
  transform: scale(0.98);
}

/* 佣金比例网格 */
.commission-grid {
  display: flex;
  gap: 12px;
}

.commission-card {
  flex: 1;
  background: linear-gradient(135deg, #fffef7, #ffffff);
  border: 2px solid #d4af37;
  border-radius: 12px;
  padding: 16px 12px;
  text-align: center;
}

.commission-level {
  font-size: 12px;
  color: #666;
  margin-bottom: 8px;
}

.commission-rate {
  font-size: 24px;
  font-weight: 800;
  color: #d4af37;
  margin-bottom: 6px;
}

.commission-desc {
  font-size: 11px;
  color: #999;
}

/* 邀请步骤 */
.steps-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.step-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.step-number {
  width: 20px;
  height: 20px;
  background: linear-gradient(135deg, #d4af37, #f4d03f);
  color: #1a1a1a;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 800;
  flex-shrink: 0;
}

.step-content {
  flex: 1;
  padding-top: 4px;
}

.step-title {
  font-size: 15px;
  font-weight: 700;
  color: #1a1a1a;
  margin-bottom: 4px;
}

.step-desc {
  font-size: 13px;
  color: #999;
}

/* 团队页面卡片增强 - 适配深色背景 */
.page-team .team-stats {
  background: url("img/team-stats-bg-new.jpg") center / cover no-repeat,
    linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(248, 249, 250, 0.94));
  background-blend-mode: overlay;
  margin: 12px 16px;
  padding: 20px 16px;
  border-radius: 16px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
  position: relative;
  border: 1px solid rgba(212, 175, 55, 0.2);
}

.page-team .team-stats::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(212, 175, 55, 0.05),
    rgba(244, 208, 63, 0.08)
  );
  border-radius: 16px;
  pointer-events: none;
}

.page-team .level-tabs {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  margin: 0 16px 12px;
  border-radius: 16px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
}

.page-team .team-member-card {
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(10px);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
}

/* 二级佣金网格 */
.commission-grid-two {
  max-width: 400px;
  margin: 0 auto;
}

.commission-grid-two .commission-card {
  flex: 0 0 calc(50% - 6px);
}
.commission-note {
  margin-top: 16px;
  padding: 12px 16px;
  background: linear-gradient(135deg, #fff5e6, #fffef7);
  border-left: 3px solid #d4af37;
  border-radius: 8px;
  font-size: 12px;
  color: #666;
  line-height: 1.6;
}
/* ==========================================
   收益明细页面 - 主题色标题栏
   ========================================== */

.profit-header-theme {
  background: linear-gradient(135deg, #2c5f8d, #1e3a5f);
  padding: 14px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.back-btn-profit {
  color: #ffffff;
  font-size: 28px;
  text-decoration: none;
  flex-shrink: 0;
}

.profit-title-inline {
  color: #ffffff;
  font-size: 18px;
  font-weight: 700;
  margin: 0;
  flex: 1;
}

/* 今日收益板块 - 背景图（c7ab297...） */
.page-profit-calendar .profit-overview {
  background: url("img/profit-today-bg.jpg") center / cover no-repeat,
    linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(248, 249, 250, 0.94));
  background-blend-mode: overlay;
  position: relative;
  border: 2px solid rgba(212, 175, 55, 0.2);
  margin: 0 0 12px;
}

.page-profit-calendar .profit-overview::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(212, 175, 55, 0.06),
    rgba(244, 208, 63, 0.09)
  );
  pointer-events: none;
}

.page-profit-calendar .overview-card {
  position: relative;
  z-index: 1;
}

/* ==========================================
   首页AI顾问横幅 - 拉长至两边
   ========================================== */

.ai-advisor-banner-full {
  margin: -20px 0 -10px;
  background: #fff;
  border-top: 1px solid #e5e5e5;
  border-bottom: 1px solid #e5e5e5;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  position: relative;
  z-index: 20;
}

.ai-advisor-content {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
}

.ai-advisor-logo {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, #f8f9fa, #e9ecef);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 8px;
}

.ai-advisor-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.ai-advisor-info {
  flex: 1;
  min-width: 0;
}

.ai-advisor-title {
  font-size: 15px;
  font-weight: 700;
  color: #1a1a1a;
  margin-bottom: 4px;
}

.ai-advisor-subtitle {
  font-size: 12px;
  color: #999;
}

.ai-advisor-btn {
  padding: 8px 20px;
  background: linear-gradient(135deg, #2c5f8d, #1e3a5f);
  color: #ffffff;
  border-radius: 20px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
}

.ai-advisor-btn:active {
  transform: scale(0.95);
}
/* AI顾问横幅背景图 - 移动端适配 */
.ai-advisor-banner-full {
  background: url("assets/acfa8f429c137.jpg") center / cover no-repeat,
    linear-gradient(
      135deg,
      rgba(255, 255, 255, 0.88),
      rgba(248, 249, 250, 0.92)
    ) !important;
  background-blend-mode: overlay !important;
  margin: -20px 0 -10px !important;
  position: relative;
  z-index: 20;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
  border-top: 1px solid rgba(212, 175, 55, 0.15);
  border-bottom: 1px solid rgba(212, 175, 55, 0.15);
}

.ai-advisor-banner-full::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.75) 0%,
    rgba(255, 255, 255, 0.55) 50%,
    rgba(255, 255, 255, 0.75) 100%
  );
  pointer-events: none;
}

.ai-advisor-content {
  position: relative;
  z-index: 1;
}

/* ==========================================
   首页市场数据 - 紧凑表格样式（固定高度）
   ========================================== */

.market-table-home {
  position: relative;
  z-index: 1;
}

/* 紧凑表格 */
.wind-table-compact {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.table-row-compact {
  display: flex;
  align-items: center;
  background: #ffffff;
  border-radius: 8px;
  padding: 8px 10px;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(212, 175, 55, 0.1);
}

.table-row-compact:active {
  transform: scale(0.98);
}

.col-compact {
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}
.col-code {
  width: 55px;
  color: #666;
  font-weight: 600;
  font-family: monospace;
  flex-shrink: 0;
}
.col-name {
  flex: 1;
  color: #1a1a1a;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 0 8px;
}

.col-value {
  width: 50px;
  text-align: right;
  color: #1a1a1a;
  font-weight: 700;
  flex-shrink: 0;
}

.col-change {
  width: 70px;
  text-align: right;
  font-weight: 700;
  font-size: 11px;
  flex-shrink: 0;
}

.col-change.up {
  color: #ef4444;
}

.col-change.down {
  color: #10b981;
}

/* 固定容器高度，防止切换时布局跳动 */
.market-table-home {
  min-height: 115px;
}

/* ==========================================
   首页市场数据 - 简洁专业版
   ========================================== */

.market-overview-home {
  background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
  padding: 14px 16px;
  margin: 0 0 12px;
  border-radius: 12px;
}

.market-cards-grid {
  display: flex;
  gap: 10px;
}

.market-card-home {
  flex: 1;
  background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
  border: 1px solid rgba(202, 165, 107, 0.15);
  border-radius: 10px;
  padding: 14px 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  position: relative;
  overflow: hidden;
}

.market-card-home::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(202, 165, 107, 0.3),
    transparent
  );
  opacity: 0;
  transition: opacity 0.3s;
}

.market-card-home:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  border-color: rgba(202, 165, 107, 0.3);
}

.market-card-home:hover::before {
  opacity: 1;
}

.market-card-home:active {
  transform: translateY(0) scale(0.98);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}

.card-code {
  font-size: 10px;
  color: #94a3b8;
  font-family: monospace;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

.card-name {
  font-size: 12px;
  color: #1a2332;
  font-weight: 700;
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  width: 100%;
  line-height: 1.3;
}

.card-price {
  font-size: 22px;
  color: #1a2332;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
  margin: 2px 0;
}

.card-change-home {
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 6px;
  font-variant-numeric: tabular-nums;
}

.card-change-home.up {
  color: #ef4444;
  background: rgba(239, 68, 68, 0.1);
}

.card-change-home.down {
  color: #10b981;
  background: rgba(16, 185, 129, 0.1);
}

/* 邀请好友页面 - 统一深蓝主题 */
.page-invite-share {
  background: url("assets/ad69dc869229a.jpg") center top / cover no-repeat fixed,
    linear-gradient(
      180deg,
      rgba(14, 43, 68, 0.75) 0%,
      rgba(9, 28, 46, 0.85) 50%,
      rgba(5, 15, 30, 0.92) 100%
    );
  background-blend-mode: overlay;
  min-height: 100vh;
  padding-bottom: 70px;
}

.invite-header-main {
  background: linear-gradient(135deg, #2c5f8d, #1e3a5f);
  padding: 14px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.invite-header-main .back-btn,
.invite-title-main {
  color: #ffffff;
}

.page-invite-share .invite-reward-banner,
.page-invite-share .invite-code-section,
.page-invite-share .invite-link-section-main,
.page-invite-share .commission-rates-section,
.page-invite-share .invite-steps-section {
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(10px);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
}

/* ==========================================
   项目列表页面 - 紧凑正规版
   ========================================== */

.projects-header-theme {
  background: linear-gradient(135deg, #2c5f8d, #1e3a5f);
  padding: 14px 16px;
  display: flex;
  align-items: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.back-btn-projects {
  color: #ffffff;
  font-size: 28px;
  text-decoration: none;
  margin-right: 12px;
}
.projects-title {
  color: #ffffff;
  font-size: 18px;
  font-weight: 700;
  margin: 0;
  flex: 1;
}

.header-spacer {
  width: 28px;
}

.page-projects-ipo {
  background: #f5f5f5 !important;
}

.product-list {
  padding: 12px 16px 100px !important;
}

/* 项目卡片 - 紧凑正规版 */
.product-card-compact {
  background: #ffffff !important;
  border: 1px solid #e8e8e8 !important;
  border-radius: 12px !important;
  margin-bottom: 10px !important;
  padding: 14px !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08) !important;
}

.product-header-compact {
  padding: 0 0 10px !important;
  border-bottom: 1px solid #f0f0f0 !important;
  background: transparent !important;
}

.product-title-compact {
  font-size: 15px !important;
  color: #1a1a1a !important;
  padding-right: 50px !important;
}

.vip-badge-corner {
  top: 0 !important;
  right: 0 !important;
  padding: 4px 10px !important;
  font-size: 10px !important;
  border-radius: 0 10px 0 10px !important;
}

.product-data-row {
  padding: 10px 0 !important;
  border-top: none !important;
  border-bottom: 1px solid #f0f0f0 !important;
}

.data-item {
  gap: 4px !important;
}

.data-label {
  font-size: 10px !important;
}

.data-value {
  font-size: 14px !important;
}

.product-bottom-compact {
  padding: 10px 0 0 !important;
}

.btn-apply-compact {
  padding: 10px 20px !important;
  font-size: 14px !important;
}
/* 项目详情页 - 紧凑正规版 */
.page-project-detail-ipo {
  background: #f5f5f5 !important;
}

.detail-header-ipo {
  background: linear-gradient(135deg, #0e2b44, #1a3a5f) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  border-bottom: none !important;
}

.back-btn-detail-ipo {
  color: #ffffff !important;
  font-size: 32px !important;
  font-weight: 700 !important;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important;
}

.detail-header-title-ipo {
  color: #ffffff !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important;
}

.detail-content-ipo {
  padding: 10px 16px !important;
}

.key-metrics-card,
.detail-progress-card,
.calculator-card-ipo,
.info-table-card,
.description-card,
.risk-card-ipo {
  margin-bottom: 10px !important;
  padding: 14px !important;
  border-radius: 12px !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08) !important;
  border: 1px solid #e8e8e8 !important;
}

.card-header {
  margin-bottom: 12px !important;
  padding-bottom: 10px !important;
}

.card-title {
  font-size: 14px !important;
}

.metric-value.large {
  font-size: 28px !important;
}

.detail-footer-ipo {
  padding: 10px 16px !important;
}

/* ==========================================
   个人中心 - 资产+快捷操作合并板块
   ========================================== */

.asset-actions-unified {
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(10px);
  margin: -20px 0 16px;
  border-radius: 16px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
  overflow: hidden;
  position: relative;
  z-index: 10;
}

/* 资产数据行 */
.asset-row {
  display: flex;
  align-items: center;
  padding: 16px;
  background: rgba(255, 255, 255, 0.5);
  border-bottom: 1px solid rgba(212, 175, 55, 0.1);
}

.asset-item {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
}

.asset-icon-new {
  font-size: 24px;
  flex-shrink: 0;
}

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

.asset-label-new {
  font-size: 11px;
  color: #999;
  margin-bottom: 2px;
}

.asset-value-new {
  font-size: 14px;
  font-weight: 800;
  color: #1a1a1a;
  font-variant-numeric: tabular-nums;
}

.asset-positive {
  color: #10b981 !important;
}
.asset-divider {
  width: 1px;
  height: 36px;
  background: rgba(212, 175, 55, 0.2);
  flex-shrink: 0;
}
/* 快捷操作行 */
.actions-row {
  display: flex;
  padding: 12px;
  gap: 8px;
}

.action-btn-new {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 12px 8px;
  background: linear-gradient(135deg, #f8f9fa, #ffffff);
  border-radius: 12px;
  text-decoration: none;
  border: 1px solid #e8e8e8;
  transition: all 0.3s;
}

.action-btn-new:active {
  transform: scale(0.95);
  background: linear-gradient(135deg, #e8e9ea, #f5f5f5);
}

.action-icon-new {
  font-size: 26px;
}

.action-text-new {
  font-size: 12px;
  color: #666;
  font-weight: 600;
}

/* ==========================================
   登录页面样式
   ========================================== */

.page-login {
  background: linear-gradient(180deg, #1e3a5f 0%, #2c5f8d 100%);
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.login-header {
  text-align: center;
  margin-bottom: 40px;
}

.login-logo {
  width: 80px;
  height: 80px;
  margin-bottom: 20px;
}

.login-title {
  font-size: 28px;
  font-weight: 800;
  color: #ffffff;
  margin: 0 0 8px;
  letter-spacing: 2px;
}

.login-subtitle {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.8);
  margin: 0;
  letter-spacing: 1px;
}

.login-form-container {
  background: #ffffff;
  border-radius: 20px;
  padding: 30px 24px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
  max-width: 400px;
  width: 100%;
}

.form-tabs {
  display: flex;
  gap: 12px;
  margin-bottom: 24px;
}

.form-tab {
  flex: 1;
  padding: 10px;
  border: none;
  background: #f5f5f5;
  color: #666;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
}

.form-tab.active {
  background: linear-gradient(135deg, #2c5f8d, #1e3a5f);
  color: #ffffff;
}

.form-content {
  display: block;
}

.form-content.hidden {
  display: none;
}

.form-group {
  margin-bottom: 20px;
}

.form-group label {
  display: block;
  font-size: 14px;
  color: #666;
  margin-bottom: 8px;
  font-weight: 600;
}

.form-group input {
  width: 100%;
  padding: 14px 16px;
  border: 2px solid #e8e8e8;
  border-radius: 10px;
  font-size: 15px;
  box-sizing: border-box;
  transition: all 0.3s;
}

.form-group input:focus {
  outline: none;
  border-color: #2c5f8d;
  background: #f8f9fa;
}

.sms-input-group {
  display: flex;
  gap: 10px;
}

.sms-input-group input {
  flex: 1;
}

.btn-send-sms {
  padding: 14px 16px;
  background: #f5f5f5;
  border: none;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  color: #666;
  white-space: nowrap;
  cursor: pointer;
}

.btn-send-sms:active {
  background: #e8e8e8;
}

.form-actions {
  display: flex;
  justify-content: space-between;
  margin-bottom: 20px;
}

.link-text {
  font-size: 13px;
  color: #2c5f8d;
  text-decoration: none;
}
.btn-login {
  width: 100%;
  padding: 16px;
  background: linear-gradient(135deg, #d4af37, #f4d03f);
  color: #1a1a1a;
  border: none;
  border-radius: 12px;
  font-size: 17px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(212, 175, 55, 0.3);
  transition: all 0.3s;
}

.btn-login:active {
  transform: scale(0.98);
}
.test-account-hint {
  margin-top: 20px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  text-align: center;
  backdrop-filter: blur(10px);
}

.test-account-hint p {
  margin: 4px 0;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.9);
}

.test-account-hint p:first-child {
  font-weight: 700;
  font-size: 14px;
}

/* ==========================================
   个人中心 - 三板块合一（VIP+资产+快捷操作）
   ========================================== */
/* VIP卡片底部留空 */
.profile-unified-card {
  margin-bottom: 0 !important;
}

/* 资产数据 - 纵向排列，紧贴VIP卡 */
.asset-grid-vertical {
  display: flex;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(10px);
  margin: 0;
  padding: 16px;
  border-top: 1px dashed rgba(212, 175, 55, 0.2);
  position: relative;
  z-index: 2;
}

.asset-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.asset-icon-v {
  font-size: 28px;
}

.asset-label-v {
  font-size: 12px;
  color: #999;
  font-weight: 500;
}

.asset-value-v {
  font-size: 16px;
  font-weight: 800;
  color: #1a1a1a;
  font-variant-numeric: tabular-nums;
}

.asset-positive {
  color: #10b981 !important;
}

/* 快捷操作 - 紧贴资产数据 */
.quick-actions-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(10px);
  padding: 16px;
  border-top: 1px dashed rgba(212, 175, 55, 0.2);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
  border-radius: 0 0 20px 20px;
  margin: 0 0 16px;
  position: relative;
  z-index: 2;
}

.quick-action-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 12px 8px;
  background: linear-gradient(135deg, #f8f9fa, #ffffff);
  border-radius: 10px;
  text-decoration: none;
  border: 1px solid #e8e8e8;
  transition: all 0.3s;
}

.quick-action-item:active {
  transform: scale(0.95);
  background: linear-gradient(135deg, #e8e9ea, #f5f5f5);
}

.quick-icon {
  font-size: 24px;
}

.quick-text {
  font-size: 12px;
  color: #666;
  font-weight: 600;
}

/* 让VIP卡、资产、快捷操作连成一体 */
.profile-unified-card,
.asset-grid-vertical,
.quick-actions-grid {
  margin-left: 16px !important;
  margin-right: 16px !important;
}

.profile-unified-card {
  border-radius: 20px 20px 0 0 !important;
}

/* ===============================
   登录页 - 大气化视觉与交互
   =============================== */
.page-login {
  min-height: 100vh;
  background: radial-gradient(
    1200px 600px at 50% -10%,
    #0b132b 0%,
    #0b132b 40%,
    #0f1a3a 70%,
    #0b1024 100%
  );
  display: flex;
  align-items: center;
}
.page-login .login-header {
  text-align: center;
  color: #fff;
  letter-spacing: 2px;
  margin: 24px 0 12px;
}
.page-login .login-title {
  font-size: 28px;
  font-weight: 800;
}
.page-login .login-subtitle {
  font-size: 12px;
  opacity: 0.85;
  margin-top: 4px;
}
.page-login .login-form-container {
  width: 100%;
  max-width: none;
  margin: 0;
  background: rgba(255, 255, 255, 0.06);
  border: none;
  border-radius: 0;
  backdrop-filter: blur(10px);
  padding: 24px 20px;
  box-shadow: none;
}
.page-login .form-tabs {
  display: flex;
  gap: 10px;
}
.page-login .form-tab {
  flex: 1;
  background: transparent;
  color: #e6e6e6;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 10px;
  height: 40px;
}
.page-login .form-tab.active {
  background: linear-gradient(135deg, #d4af37, #f4d03f);
  color: #1a1a1a;
  border-color: transparent;
  font-weight: 800;
}
.page-login .form-group label {
  color: #e8e8e8;
}
.page-login .form-group input {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 10px;
}
.page-login .form-group input::placeholder {
  color: rgba(255, 255, 255, 0.55);
}
.page-login .form-actions .link-text {
  color: #f4d03f;
}
.page-login .btn-login {
  background: linear-gradient(135deg, #d4af37, #f4d03f);
  color: #1a1a1a;
  font-weight: 800;
  border: none;
  border-radius: 10px;
  height: 44px;
}
.page-login .btn-login:active {
  transform: translateY(1px);
}
.page-login .btn-wechat {
  background: #07c160 !important;
  color: #fff !important;
}
.page-login .oauth-section {
}
.page-login .test-account-hint {
  color: #dcdcdc;
  opacity: 0.85;
}

/* 按钮加载态 */
.btn-loading {
  position: relative;
  color: transparent !important;
  pointer-events: none;
}
.btn-loading::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 18px;
  margin: -9px 0 0 -9px;
  border: 2px solid rgba(0, 0, 0, 0.2);
  border-top-color: #000;
  border-radius: 50%;
  animation: btnspin 0.8s linear infinite;
}
@keyframes btnspin {
  to {
    transform: rotate(360deg);
  }
}

/* ===============================
   注册页 - 高端视觉升级
   =============================== */
.page-register {
  min-height: 100vh;
  background: radial-gradient(
    1100px 520px at 50% -10%,
    #0b132b 0%,
    #0f1a3a 60%,
    #0b1024 100%
  );
}
.page-register .login-header {
  text-align: center;
  color: #fff;
  letter-spacing: 2px;
  margin: 24px 0 12px;
}
.page-register .login-title {
  font-size: 28px;
  font-weight: 800;
}
.page-register .login-subtitle {
  font-size: 12px;
  opacity: 0.85;
  margin-top: 4px;
}
.page-register .login-form-container {
  width: 100%;
  max-width: none;
  margin: 0;
  background: rgba(255, 255, 255, 0.06);
  border: none;
  border-radius: 0;
  backdrop-filter: blur(10px);
  padding: 24px 20px;
  box-shadow: none;
}
.page-register .form-group label {
  color: #e8e8e8;
}
.page-register .form-group input {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 10px;
}
.page-register .form-group input::placeholder {
  color: rgba(255, 255, 255, 0.55);
}
.page-register .btn-login {
  background: linear-gradient(135deg, #d4af37, #f4d03f);
  color: #1a1a1a;
  font-weight: 800;
  border: none;
  border-radius: 10px;
  height: 44px;
}
.page-register .btn-login:active {
  transform: translateY(1px);
}

/* 表单小提示 */
.register-hint {
  color: #f4d03f;
  font-size: 12px;
  text-align: center;
  margin: 8px 0 0;
  opacity: 0.95;
}

/* 顶部徽标光效 */
.page-register .login-logo {
  filter: drop-shadow(0 6px 16px rgba(212, 175, 55, 0.35));
}

/* 注册页 - 全宽布局（贴两侧） */
@media (max-width: 9999px) {
  /* 登录页 - 全宽布局（贴两侧） */
  @media (max-width: 9999px) {
    /* ===============================
   收益日历页 - 背景图优化
   =============================== */
    .profit-overview {
      background: url("assets/afc13592d0979.jpg") center center no-repeat !important;
      background-size: cover !important;
      position: relative;
    }

    .profit-overview::before {
      content: "";
      position: absolute;
      inset: 0;
      background: rgba(0, 0, 0, 0.15);
      pointer-events: none;
    }

    .profit-overview > * {
      position: relative;
      z-index: 1;
    }

    .profit-distribution {
      background: url("img/76641795ce6a9bf77cb7ff9cc30f612d.jpg") center center
        no-repeat !important;
      background-size: cover !important;
      position: relative;
    }

    .profit-distribution::before {
      content: "";
      position: absolute;
      inset: 0;
      background: rgba(255, 255, 255, 0.85);
      pointer-events: none;
    }

    .profit-distribution > * {
      position: relative;
      z-index: 1;
    }

    /* ===============================
   全站弹窗 - iOS风格
   =============================== */
    .toast-message,
    .toast {
      position: fixed !important;
      top: 50% !important;
      left: 50% !important;
      transform: translate(-50%, -50%) scale(0.9) !important;
      background: rgba(255, 255, 255, 0.95) !important;
      backdrop-filter: blur(20px) saturate(180%) !important;
      -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
      color: #1a1a1a !important;
      padding: 16px 24px !important;
      border-radius: 14px !important;
      font-size: 15px !important;
      font-weight: 500 !important;
      z-index: 99999 !important;
      opacity: 0 !important;
      transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
      box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25), 0 2px 8px rgba(0, 0, 0, 0.1) !important;
      border: 0.5px solid rgba(255, 255, 255, 0.3) !important;
      min-width: 160px !important;
      max-width: 80% !important;
      text-align: center !important;
    }

    .toast-message.show,
    .toast.show {
      opacity: 1 !important;
      transform: translate(-50%, -50%) scale(1) !important;
    }

    /* 深色模式弹窗 */
    @media (prefers-color-scheme: dark) {
      .toast-message,
      .toast {
        background: rgba(30, 30, 30, 0.95) !important;
        color: #ffffff !important;
      }
    }

    /* ===============================
   个人中心 - 背景图
   =============================== */
    .page-profile,
    body:has(.profile-unified-card) {
      background: url("img/1a170c215ff5dc163297525d67a04251.jpg") center top
        no-repeat !important;
      background-size: cover !important;
      background-attachment: fixed !important;
      position: relative;
    }

    .page-profile::before {
      content: "";
      position: absolute;
      inset: 0;
      background: rgba(0, 0, 0, 0.25);
      pointer-events: none;
      z-index: 0;
    }

    .page-profile > * {
      position: relative;
      z-index: 1;
    }

    /* ===============================
   个人中心 - 新用户信息区（背景图）
   =============================== */
    .profile-header-new {
      margin: 0 0 16px;
      padding: 0;
      background: url("assets/a180d44deaf8c.jpg") center center no-repeat;
      background-size: cover;
      min-height: 160px;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      overflow: hidden;
    }

    .profile-header-new::before {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(
        135deg,
        rgba(0, 0, 0, 0.3),
        rgba(0, 0, 0, 0.5)
      );
      pointer-events: none;
    }

    .user-info-compact {
      position: relative;
      z-index: 1;
      display: flex;
      align-items: center;
      gap: 16px;
      padding: 20px;
    }

    .user-avatar-new {
      width: 64px;
      height: 64px;
      border-radius: 50%;
      background: linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.2),
        rgba(255, 255, 255, 0.1)
      );
      backdrop-filter: blur(10px);
      border: 2px solid rgba(255, 255, 255, 0.3);
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }
    .avatar-text {
      font-size: 28px;
      font-weight: 800;
      color: #ffffff;
      text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    }
    .user-details {
      display: flex;
      flex-direction: column;
      gap: 4px;
    }

    .user-name-new {
      font-size: 20px;
      font-weight: 800;
      color: #ffffff;
      text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
    }
    .user-id-new {
      font-size: 13px;
      color: rgba(255, 255, 255, 0.8);
      text-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
    }

    .user-vip-level {
      display: inline-block;
      padding: 4px 12px;
      background: linear-gradient(
        135deg,
        rgba(212, 175, 55, 0.3),
        rgba(244, 208, 63, 0.3)
      );
      backdrop-filter: blur(10px);
      border: 1px solid rgba(212, 175, 55, 0.5);
      border-radius: 12px;
      font-size: 12px;
      font-weight: 700;
      color: #f4d03f;
      text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
      align-self: flex-start;
      margin-top: 4px;
    }

    /* 隐藏旧的VIP卡和升级条 */
    .profile-unified-card,
    .upgrade-section {
      display: none !important;
    }

    /* ===============================
   VIP等级页 - 简洁背景用户信息区
   =============================== */
    .vip-user-header {
      background: url("assets/a180d44deaf8c.jpg") center center no-repeat;
      background-size: cover;
      min-height: 180px;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      margin: 0;
      padding: 30px 20px;
    }

    .vip-user-header::before {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(
        135deg,
        rgba(0, 0, 0, 0.4),
        rgba(0, 0, 0, 0.6)
      );
      pointer-events: none;
    }

    .vip-user-info {
      position: relative;
      z-index: 1;
      text-align: center;
    }

    .vip-user-name {
      font-size: 24px;
      font-weight: 800;
      color: #ffffff;
      margin-bottom: 8px;
      text-shadow: 0 2px 12px rgba(0, 0, 0, 0.6);
    }

    .vip-user-id {
      font-size: 14px;
      color: rgba(255, 255, 255, 0.85);
      margin-bottom: 16px;
      text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
    }

    .vip-current-badge {
      display: inline-block;
      padding: 8px 24px;
      background: linear-gradient(
        135deg,
        rgba(212, 175, 55, 0.25),
        rgba(244, 208, 63, 0.25)
      );
      backdrop-filter: blur(15px);
      border: 2px solid rgba(212, 175, 55, 0.6);
      border-radius: 20px;
      font-size: 16px;
      font-weight: 800;
      color: #f4d03f;
      text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
      box-shadow: 0 4px 16px rgba(212, 175, 55, 0.3);
    }

    /* 隐藏旧样式 */
    .current-vip-card {
      display: none !important;
    }
  }

  /* ===============================
   财经快讯页 - 背景随内容滚动
   =============================== */
  .page-news-flash {
    background: #f7f8fa !important;
    min-height: auto;
    position: relative;
  }

  .page-news-flash::before {
    display: none !important;
  }

  .page-news-flash .hero-simple,
  .page-news-flash .news-list {
    position: relative;
    z-index: 1;
  }

  .page-news-flash .tabbar {
    position: fixed !important;
    z-index: 100 !important;
  }

  .page-news-flash .news-item {
    background: #ffffff !important;
  }

  /* 快讯页背景修正 - 背景在底层，内容透明浮在上面 */
  body.page-news-flash,
  body:has(#newsFlashList) {
    background: #f7f8fa !important;
  }

  body.page-news-flash::before {
    display: none !important;
  }

  .page-news-flash .news-item,
  .page-news-flash .flash-item {
    background: #ffffff !important;
    border: 1px solid #e8e8e8 !important;
  }

  .page-news-flash .flash-title {
    color: #1a1a1a !important;
  }

  .page-news-flash .flash-desc {
    color: #666 !important;
  }

  .page-news-flash .flash-time {
    color: #d4af37 !important;
  }
  /* 快讯页背景修复 - 避免超长变形 */
  body.page-news-flash {
    background: #f7f8fa !important;
    min-height: auto !important;
    height: auto !important;
  }

  body.page-news-flash::before {
    display: none !important;
  }

  .page-news-flash .flash-item {
    background: #ffffff !important;
    border: 1px solid #e8e8e8 !important;
    margin-bottom: 12px;
    border-radius: 12px;
    padding: 14px;
  }

  .page-news-flash .flash-title {
    color: #1a1a1a !important;
  }

  .page-news-flash .flash-desc {
    color: #666 !important;
  }

  .page-news-flash .flash-time {
    color: #d4af37 !important;
  }

  /* 快讯页面高度修复 - 完全移除最小高度限制 */
  .page-news-flash #app {
    min-height: auto !important;
    height: auto !important;
    padding-bottom: 70px;
  }
  .page-news-flash .content-other {
    min-height: auto !important;
    height: auto !important;
    padding-bottom: 20px;
  }

  .page-news-flash .hero-simple {
    padding: 16px !important;
  }

  .page-news-flash .news-flash-list {
    min-height: auto !important;
    height: auto !important;
    padding-bottom: 0 !important;
  }
  .page-news-flash .back-btn {
    color: #ffffff !important;
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.5) !important;
    font-weight: 700 !important;
    opacity: 1 !important;
  }

  html:has(.page-news-flash),
  html:has(.page-news-flash) body {
    min-height: auto !important;
    height: auto !important;
  }

  /* VIP等级页底部导航图标修复 */
  body:has(.vip-levels-container) .tab .ico {
    width: 28px !important;
    height: 28px !important;
    background-size: contain !important;
    transform: none !important;
    opacity: 1 !important;
  }
}

/* 个人中心顶部用户信息区 - 新背景 */
.profile-header-new {
  background: url("img/5ecdd30f899f8a184a87de645f93a6ba.jpg") center center
    no-repeat !important;
  background-size: cover !important;
}

.profile-header-new::before {
  background: linear-gradient(
    135deg,
    rgba(0, 0, 0, 0.35),
    rgba(0, 0, 0, 0.45)
  ) !important;
}

/* 自定义金色模态框 */
.custom-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(4px);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  animation: fadeIn 0.2s ease;
}

.custom-modal-overlay.active {
  display: flex;
}

.custom-modal {
  background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
  border-radius: 16px;
  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.3);
  width: 90%;
  max-width: 360px;
  animation: modalSlideIn 0.3s ease;
  border: 2px solid rgba(212, 175, 55, 0.3);
}

@keyframes modalSlideIn {
  from {
    opacity: 0;
    transform: translateY(-30px) scale(0.9);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.custom-modal-header {
  padding: 20px 20px 12px;
  text-align: center;
  border-bottom: 1px solid rgba(212, 175, 55, 0.2);
}

.custom-modal-title {
  font-size: 18px;
  font-weight: 700;
  color: #1a2332;
  margin: 0;
}

.custom-modal-body {
  padding: 20px;
}

.custom-modal-message {
  font-size: 14px;
  color: #6c757d;
  line-height: 1.6;
  margin-bottom: 16px;
  text-align: center;
}

.custom-modal-input {
  width: 100%;
  padding: 12px 16px;
  border: 2px solid #e1e8ed;
  border-radius: 8px;
  font-size: 14px;
  transition: all 0.3s;
  outline: none;
}

.custom-modal-input:focus {
  border-color: #d4af37;
  box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.1);
}

.custom-modal-footer {
  padding: 12px 20px 20px;
  display: flex;
  gap: 12px;
}

.custom-modal-btn {
  flex: 1;
  padding: 12px;
  border: none;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}

.custom-modal-btn-cancel {
  background: #f1f3f5;
  color: #6c757d;
}
.custom-modal-btn-cancel:hover {
  background: #e9ecef;
}

.custom-modal-btn-confirm {
  background: linear-gradient(135deg, #d4af37 0%, #f4d03f 100%);
  color: #1a1a1a;
  box-shadow: 0 4px 12px rgba(212, 175, 55, 0.3);
}

.custom-modal-btn-confirm:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(212, 175, 55, 0.4);
}

.custom-modal-btn-confirm:active {
  transform: scale(0.98);
}

/* 充值页面 - Providence风格 */
.balance-display-card {
  background: linear-gradient(135deg, #0e2b44 0%, #1a3a5f 100%);
  margin: 16px;
  padding: 24px;
  border-radius: 16px;
  text-align: center;
  color: #fff;
  box-shadow: 0 8px 24px rgba(14, 43, 68, 0.3);
  position: relative;
  overflow: hidden;
}

.balance-display-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle at top right,
    rgba(212, 175, 55, 0.1),
    transparent 60%
  );
  pointer-events: none;
}

.balance-label {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 8px;
  position: relative;
  z-index: 1;
}
.balance-amount {
  font-size: 42px;
  font-weight: 900;
  color: #f4d03f;
  letter-spacing: -1px;
  margin-bottom: 4px;
  position: relative;
  z-index: 1;
}

.balance-unit {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.6);
  position: relative;
  z-index: 1;
}

.deposit-section {
  margin: 0 16px 20px;
}
.section-title-compact {
  font-size: 15px;
  font-weight: 700;
  color: #1a2332;
  margin-bottom: 12px;
  padding-left: 4px;
  border-left: 3px solid #d4af37;
}

.payment-methods {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.payment-method-card {
  background: #fff;
  border: 2px solid #e1e8ed;
  border-radius: 12px;
  padding: 16px 8px;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s;
}

.payment-method-card.active {
  background: linear-gradient(135deg, #0e2b44 0%, #1a3a5f 100%);
  border-color: #d4af37;
  box-shadow: 0 4px 16px rgba(14, 43, 68, 0.2);
}

.payment-method-card:active {
  transform: scale(0.96);
}

.payment-method-card .payment-icon {
  font-size: 32px;
  margin-bottom: 8px;
}

.payment-method-card .payment-name {
  font-size: 14px;
  font-weight: 600;
  color: #1a2332;
  margin-bottom: 4px;
}

.payment-method-card.active .payment-name {
  color: #fff;
}

.payment-method-card .payment-desc {
  font-size: 11px;
  color: #999;
}

.payment-method-card.active .payment-desc {
  color: rgba(255, 255, 255, 0.7);
}

.amount-input-box {
  background: #fff;
  border: 2px solid #e1e8ed;
  border-radius: 12px;
  padding: 0 16px;
  display: flex;
  align-items: center;
  transition: all 0.3s;
  margin-bottom: 12px;
}

.amount-input-box:focus-within {
  border-color: #d4af37;
  box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.1);
}

.currency-symbol {
  font-size: 24px;
  font-weight: 800;
  color: #d4af37;
  margin-right: 8px;
}

.amount-input-field {
  flex: 1;
  height: 56px;
  border: none;
  outline: none;
  font-size: 24px;
  font-weight: 700;
  color: #1a2332;
  background: transparent;
}

.amount-input-field::placeholder {
  color: #adb5bd;
  font-size: 14px;
  font-weight: 400;
}

.quick-amount-buttons {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

.quick-amount-btn {
  padding: 12px 8px;
  background: #fff;
  border: 1px solid #e1e8ed;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  color: #1a2332;
  cursor: pointer;
  transition: all 0.2s;
}

.quick-amount-btn:hover {
  border-color: #d4af37;
  color: #d4af37;
}

.quick-amount-btn:active {
  transform: scale(0.95);
  background: #f8f9fa;
}

.info-list {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.info-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid #f1f3f5;
}

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

.info-label {
  font-size: 14px;
  color: #6c757d;
}

.info-value {
  font-size: 14px;
  font-weight: 700;
  color: #1a2332;
}

.notice-card {
  background: linear-gradient(135deg, #fff8e1 0%, #fffbea 100%);
  border: 1px solid rgba(212, 175, 55, 0.3);
  border-radius: 12px;
  padding: 16px;
}

.notice-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.notice-icon {
  font-size: 18px;
}
.notice-title-text {
  font-size: 14px;
  font-weight: 700;
  color: #d4af37;
}

.notice-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.notice-list li {
  font-size: 13px;
  color: #6c757d;
  line-height: 1.8;
  padding-left: 16px;
  position: relative;
}
.notice-list li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: #d4af37;
  font-size: 16px;
}

.button-container {
  padding: 0 16px 20px;
}

.btn-submit-primary {
  width: 100%;
  height: 52px;
  background: linear-gradient(135deg, #d4af37 0%, #f4d03f 100%);
  border: none;
  border-radius: 12px;
  font-size: 17px;
  font-weight: 800;
  color: #1a2332;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(212, 175, 55, 0.3);
  transition: all 0.3s;
}

.btn-submit-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(212, 175, 55, 0.4);
}

.btn-submit-primary:active {
  transform: scale(0.98);
}

/* USDT充值优惠高亮 */
.payment-desc.usdt-bonus {
  color: #d4af37 !important;
  font-weight: 700 !important;
  font-size: 12px !important;
}

.payment-method-card.active .payment-desc.usdt-bonus {
  color: #f4d03f !important;
  animation: pulse 2s ease-in-out infinite;
}

/* 底部导航栏优化 - 更流畅的切换动画（已合并到主样式） */
/* 样式已合并到第4539行的主.tabbar样式中，避免重复定义 */

/* 过渡动画已优化到主样式，避免重复定义导致性能问题 */

/* 确保图标在所有页面都显示 */
.ico {
  width: 110px !important;
  height: 110px !important;
  background-size: 75% !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}

/* 激活状态优化 */
/* 激活状态样式已优化到主样式，避免重复定义 */
.quick-action-btn .btn-icon {
  font-size: 24px;
}

/* ========================================
   日利宝板块颜色优化 - updated by AI - providence integration 2025-10
   ======================================== */

/* 收益金额使用经典金色 */
.ribao-amount,
.profit-value,
#yesterdayProfit,
#totalProfit,
#ribaoTotal {
  color: #d9b45d !important; /* 经典金色 */
}

/* 收益率使用蓝色 */
.ribao-rate,
.record-rate {
  color: #3b82f6 !important; /* 蓝色 */
}

/* 金额快捷按钮改为金色主题 */
.quick-btn,
.amount-btn {
  background: rgba(217, 180, 93, 0.08) !important;
  border: 1px solid rgba(217, 180, 93, 0.2) !important;
  border-radius: 8px !important;
  color: #d9b45d !important; /* 经典金色 */
  padding: 6px 12px !important;
  font-size: 13px !important;
  cursor: pointer !important;
  transition: 0.3s ease !important;
}

.quick-btn:hover,
.amount-btn:hover {
  color: #e6c56e !important; /* 悬停时更亮 */
  background: rgba(217, 180, 93, 0.15) !important;
  border-color: rgba(217, 180, 93, 0.4) !important;
}

.quick-btn:active,
.amount-btn:active {
  transform: scale(0.94) !important;
  box-shadow: 0 2px 8px rgba(217, 180, 93, 0.2) !important;
}

/* 说明卡片位置调整 - 往上移 */
.ribao-info-card {
  margin-top: 12px !important; /* 减少上边距 */
}

/* 收益记录中的金额也用金色 */
.record-profit {
  color: #d9b45d !important;
  font-weight: 600 !important;
}

/* ========================================
   Market 详情页标题栏颜色统一 - updated by AI - providence integration 2025-10
   ======================================== */

.market-detail-header,
.page-market .detail-header,
.market-header {
  background: linear-gradient(135deg, #0e2b44, #1a3a5f) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
  border-bottom: none !important;
}

.market-detail-header .back-btn,
.page-market .detail-header .back-btn,
.market-header .back-btn {
  color: #ffffff !important;
  font-size: 32px !important;
  font-weight: 700 !important;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important;
}

.market-detail-header h1,
.page-market .detail-header h1,
.market-header h1 {
  color: #ffffff !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important;
}
/* ========================================
   永豐金證券風格 - 全局样式优化
   updated by AI - providence integration 2025-10
   来源：recharge.html 测试页面
   ======================================== */

/* 配色变量 */
:root {
  --primary-blue: #1b365d;
  --secondary-blue: #2c4a6b;
  --accent-blue: #3a5f8a;
  --gold-accent: #d4af37;
  --light-gold: #f4e4bc;
  --text-primary: #2c3e50;
  --text-secondary: #6c7b7f;
  --background-light: #f8fafb;
  --border-light: #e8ecef;
  --shadow-light: rgba(0, 0, 0, 0.08);
  --shadow-medium: rgba(0, 0, 0, 0.12);
}
/* 通用卡片样式 - 三层背景 */
.card-elegant-style,
.info-card-elegant,
.payment-card-elegant {
  position: relative;
  background: linear-gradient(
    135deg,
    #f0f4f8 0%,
    #ffffff 30%,
    #f8fafb 70%,
    #f0f4f8 100%
  );
  border-radius: 12px;
  box-shadow: 0 4px 12px var(--shadow-light), 0 2px 4px rgba(0, 0, 0, 0.1);
  padding: 20px;
  margin: 16px 0;
  transition: all 0.3s ease;
  overflow: hidden;
  border: 1px solid #d1d9e0;
}

/* 金色顶部边框 - 一闪一闪效果的基础 */
.card-elegant-style::before,
.info-card-elegant::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(
    90deg,
    var(--gold-accent) 0%,
    var(--light-gold) 50%,
    var(--gold-accent) 100%
  );
  animation: goldenFlow 3s ease-in-out infinite;
}

@keyframes goldenFlow {
  0%,
  100% {
    opacity: 0.6;
    filter: brightness(1);
  }
  50% {
    opacity: 1;
    filter: brightness(1.3);
  }
}

/* 底部阴影线 */
.card-elegant-style::after,
.info-card-elegant::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(0, 0, 0, 0.1) 50%,
    transparent 100%
  );
}

/* 悬停效果 */
.card-elegant-style:hover,
.info-card-elegant:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px var(--shadow-medium);
  background: linear-gradient(135deg, #ffffff 0%, #f0f4f8 50%, #ffffff 100%);
}

/* 金色闪光按钮效果 */
.btn-shimmer,
.btn-primary-shimmer {
  position: relative;
  overflow: hidden;
  background: linear-gradient(
    135deg,
    var(--gold-accent) 0%,
    var(--light-gold) 100%
  );
  color: var(--primary-blue);
  font-weight: 700;
  border: none;
  border-radius: 8px;
  padding: 12px 24px;
  font-size: 16px;
  letter-spacing: 0.5px;
  cursor: pointer;
  box-shadow: 0 4px 12px var(--shadow-light);
  transition: all 0.3s ease;
}

.btn-shimmer::before,
.btn-primary-shimmer::before {
  content: "";
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: linear-gradient(
    45deg,
    transparent 30%,
    rgba(255, 255, 255, 0.3) 50%,
    transparent 70%
  );
  animation: shimmer 2s infinite;
}

@keyframes shimmer {
  0% {
    transform: translateX(-100%) translateY(-100%) rotate(30deg);
  }
  100% {
    transform: translateX(100%) translateY(100%) rotate(30deg);
  }
}

.btn-shimmer:hover,
.btn-primary-shimmer:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px var(--shadow-medium);
  filter: brightness(1.05);
}

.btn-shimmer:active,
.btn-primary-shimmer:active {
  transform: scale(0.98);
}

/* 深色金额显示区域 */
.amount-display-dark {
  position: relative;
  background: linear-gradient(
    135deg,
    #0a0a0c 0%,
    var(--primary-blue) 40%,
    var(--secondary-blue) 100%
  );
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
  border: 1px solid rgba(0, 0, 0, 0.2);
  padding: 20px;
  text-align: center;
}

.amount-display-dark::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
    135deg,
    rgba(0, 0, 0, 0.2) 0%,
    transparent 30%,
    transparent 70%,
    rgba(0, 0, 0, 0.2) 100%
  );
  pointer-events: none;
  z-index: 1;
}

.amount-display-dark .amount-value {
  position: relative;
  z-index: 2;
  font-size: 48px;
  font-weight: 900;
  color: #ffffff;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  letter-spacing: -1px;
  font-variant-numeric: tabular-nums;
}

.amount-display-dark .currency-symbol {
  font-size: 32px;
  font-weight: 700;
  color: var(--light-gold);
  margin-right: 8px;
}

/* 须知/提示框样式 */
.notice-elegant {
  background: linear-gradient(
    135deg,
    var(--light-gold) 0%,
    #fff8e1 50%,
    var(--light-gold) 100%
  );
  border: 1px solid var(--gold-accent);
  border-left: 4px solid var(--gold-accent);
  border-radius: 8px;
  padding: 20px;
  margin: 16px 0;
  box-shadow: 0 2px 8px var(--shadow-light);
  transition: all 0.3s ease;
  position: relative;
}

.notice-elegant::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(
    90deg,
    var(--gold-accent) 0%,
    var(--light-gold) 50%,
    var(--gold-accent) 100%
  );
}
.notice-elegant:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px var(--shadow-medium);
}

/* 应用到现有元素 */
.team-stats-card,
.vip-upgrade-card,
.points-balance-card,
.reward-card,
.project-card,
.ipo-card {
  position: relative;
  background: linear-gradient(
    135deg,
    #f0f4f8 0%,
    #ffffff 30%,
    #f8fafb 70%,
    #f0f4f8 100%
  );
  border: 1px solid #d1d9e0;
  transition: all 0.3s ease;
}
.team-stats-card::before,
.vip-upgrade-card::before,
.points-balance-card::before,
.reward-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(
    90deg,
    var(--gold-accent) 0%,
    var(--light-gold) 50%,
    var(--gold-accent) 100%
  );
  animation: goldenFlow 3s ease-in-out infinite;
}

.team-stats-card:hover,
.vip-upgrade-card:hover,
.points-balance-card:hover,
.reward-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px var(--shadow-medium);
}

/* 主要操作按钮应用闪光效果 */
.claim-btn-active,
.exchange-btn,
.btn-submit-primary,
.checkin-btn-action {
  position: relative;
  overflow: hidden;
  background: linear-gradient(
    135deg,
    var(--gold-accent) 0%,
    var(--light-gold) 100%
  );
  color: var(--primary-blue);
}
.claim-btn-active::before,
.exchange-btn::before,
.btn-submit-primary::before,
.checkin-btn-action::before {
  content: "";
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: linear-gradient(
    45deg,
    transparent 30%,
    rgba(255, 255, 255, 0.3) 50%,
    transparent 70%
  );
  animation: shimmer 2s infinite;
}

/* ========================================
   修复 VIP 升级进度条位置
   updated by AI - providence integration 2025-10
   ======================================== */

/* 确保VIP进度条在资产卡片下方，快捷操作上方 */
.vip-upgrade-card {
  margin: 16px !important;
  padding: 16px !important;
  background: linear-gradient(
    135deg,
    #f0f4f8 0%,
    #ffffff 30%,
    #f8fafb 70%,
    #f0f4f8 100%
  ) !important;
  border-radius: 12px !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08) !important;
  border: 1px solid #d1d9e0 !important;
  position: relative !important;
  z-index: 1 !important;
}

.vip-upgrade-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-bottom: 12px !important;
}

.vip-current,
.vip-next {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
}

.vip-icon {
  font-size: 20px;
}

.vip-text {
  font-size: 16px;
  font-weight: 700;
  color: #1a2332;
}

.vip-arrow {
  font-size: 18px;
  color: #d4af37;
}

.vip-progress-bar {
  width: 100%;
  height: 8px;
  background: rgba(0, 0, 0, 0.05);
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 12px;
}

.vip-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #d4af37 0%, #f4d03f 100%);
  border-radius: 4px;
  transition: width 0.5s ease;
  box-shadow: 0 0 8px rgba(212, 175, 55, 0.4);
}

.vip-upgrade-info {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.vip-info-text {
  font-size: 13px;
  color: #666;
}

.vip-amount {
  font-weight: 700;
  color: #d4af37;
}

.vip-progress-percent {
  font-size: 14px;
  font-weight: 700;
  color: #d4af37;
}

/* ==================== 项目详情 - 购买限制样式 ==================== */
.project-restrictions-section {
  margin: 16px 0;
  padding: 16px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 12px;
  border: 1px solid rgba(217, 180, 93, 0.2);
}

.restrictions-title {
  font-size: 16px;
  font-weight: 700;
  color: #f4d03f;
  margin-bottom: 12px;
}

.restrictions-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.restriction-item {
  display: flex;
  align-items: center;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 1.5;
}

.restriction-icon {
  font-size: 18px;
  margin-right: 8px;
}

.restriction-text {
  flex: 1;
}

.restriction-info {
  background: rgba(52, 152, 219, 0.1);
  border: 1px solid rgba(52, 152, 219, 0.3);
  color: #3498db;
}

.restriction-warning {
  background: rgba(241, 196, 15, 0.1);
  border: 1px solid rgba(241, 196, 15, 0.3);
  color: #f1c40f;
}
.restriction-success {
  background: rgba(46, 204, 113, 0.1);
  border: 1px solid rgba(46, 204, 113, 0.3);
  color: #2ecc71;
}

/* VIP升级进度条 - 嵌入在用户信息中 */
.vip-upgrade-progress {
  background: rgba(255, 255, 255, 0.15);
  padding: 12px;
  border-radius: 8px;
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.25);
}
.user-info-text .vip-upgrade-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-bottom: 10px !important;
}

.user-info-text .vip-current,
.user-info-text .vip-next {
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
}

.user-info-text .vip-icon {
  font-size: 16px;
}

.user-info-text .vip-text {
  font-size: 14px;
  font-weight: 700;
  color: #ffffff;
}

.user-info-text .vip-arrow {
  font-size: 16px;
  color: #f4d03f;
  margin: 0 4px;
}

.user-info-text .vip-progress-bar {
  width: 100%;
  height: 6px;
  background: rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  overflow: hidden;
  margin-bottom: 10px;
}

.user-info-text .vip-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #d4af37 0%, #f4d03f 100%);
  border-radius: 3px;
  transition: width 0.5s ease;
  box-shadow: 0 0 8px rgba(244, 208, 63, 0.6);
}

.user-info-text .vip-upgrade-info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
}

.user-info-text .vip-info-text {
  color: rgba(255, 255, 255, 0.9);
}

.user-info-text .vip-amount {
  font-weight: 700;
  color: #f4d03f;
}

.user-info-text .vip-progress-percent {
  font-size: 13px;
  font-weight: 700;
  color: #f4d03f;
}

/* 日历详情模态框 */
.day-detail-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.day-detail-modal.show {
  opacity: 1;
}

.day-detail-modal .modal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(4px);
}

.modal-content-day {
  position: relative;
  background: linear-gradient(135deg, #0e2b44 0%, #1a3a5f 100%);
  border-radius: 20px;
  width: 90%;
  max-width: 450px;
  max-height: 80vh;
  overflow: hidden;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
  border: 1px solid rgba(217, 180, 93, 0.3);
  transform: scale(0.9);
  transition: transform 0.3s ease;
}

.day-detail-modal.show .modal-content-day {
  transform: scale(1);
}

.modal-header-day {
  background: linear-gradient(90deg, #0e2b44, #1a4a6f);
  padding: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(217, 180, 93, 0.2);
}

.modal-header-day h3 {
  margin: 0;
  font-size: 18px;
  color: #e6c56e;
  font-weight: 700;
}

.modal-close {
  background: none;
  border: none;
  color: #e6c56e;
  font-size: 32px;
  cursor: pointer;
  line-height: 1;
  padding: 0;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s ease;
}

.modal-close:hover {
  transform: rotate(90deg);
}

.modal-body-day {
  padding: 20px;
  max-height: 60vh;
  overflow-y: auto;
}

.detail-summary {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
  margin-bottom: 25px;
}

.summary-item {
  background: rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(5px);
  border-radius: 12px;
  padding: 15px;
  border: 1px solid rgba(217, 180, 93, 0.1);
}

.summary-label {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 8px;
}

.summary-value {
  font-size: 20px;
  font-weight: 700;
}

.summary-value.positive {
  color: #4caf50;
}

.summary-value.negative {
  color: #f44336;
}
.detail-projects {
  margin-top: 20px;
}

.projects-title {
  font-size: 15px;
  color: #e6c56e;
  margin-bottom: 15px;
  font-weight: 600;
}
.project-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.project-item {
  display: flex;
  align-items: center;
  gap: 12px;
  background: rgba(255, 255, 255, 0.03);
  padding: 12px;
  border-radius: 10px;
  border: 1px solid rgba(217, 180, 93, 0.1);
  transition: all 0.3s ease;
}

.project-item:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(217, 180, 93, 0.2);
}

.project-icon {
  font-size: 24px;
}

.project-info {
  flex: 1;
}

.project-name {
  font-size: 14px;
  color: #fff;
  margin-bottom: 4px;
}

.project-time {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
}

.project-profit {
  font-size: 15px;
  font-weight: 700;
}

.project-profit.positive {
  color: #4caf50;
}

.project-profit.negative {
  color: #f44336;
}

.modal-footer-day {
  padding: 15px 20px;
  border-top: 1px solid rgba(217, 180, 93, 0.2);
  display: flex;
  justify-content: center;
}

.btn-modal-close {
  background: linear-gradient(90deg, #d9b45d, #e6c56e);
  border: none;
  border-radius: 10px;
  color: #0e2b44;
  font-size: 15px;
  font-weight: 600;
  padding: 12px 40px;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 12px rgba(217, 180, 93, 0.3);
}

.btn-modal-close:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(217, 180, 93, 0.4);
}

.no-data {
  text-align: center;
  padding: 30px;
  color: rgba(255, 255, 255, 0.5);
}

.quick-action-icon-new svg {
  width: 24px !important;
  height: 24px !important;
}

.quick-action-text-new {
  font-size: 11px !important;
}
/* Providence 系统全面优化 - CSS补丁 */
/* 应用到 styles.css 末尾 */

/* ========================================
   任务3: 调整首页会员卡和九宫格位置
   ======================================== */
.vipcard {
  margin-top: -30px !important;
  margin-bottom: 10px !important;
}

.market-overview-home {
  margin-top: -20px !important;
  position: relative;
  z-index: 10;
}

/* ========================================
   任务4: 首页快讯显示时间和标题
   ======================================== */
.news-flash .news-item .news-time {
  display: inline-block !important;
  font-size: 12px !important;
  color: #f4d03f !important;
  font-weight: 700 !important;
  min-width: 45px !important;
  flex-shrink: 0 !important;
  margin-right: 8px !important;
}

.news-flash .news-item .news-content {
  flex: 1 !important;
  font-size: 14px !important;
  color: #ffffff !important;
  line-height: 1.5 !important;
  font-weight: 500 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* ========================================
   任务5: 修复数据详情标题栏颜色
   ======================================== */
.detail-header,
.detail-header-ipo,
.hero-simple {
  background: linear-gradient(135deg, #0e2b44, #1a3a5f) !important;
}

.detail-header-title,
.detail-header-title-ipo,
.hero-simple .back-btn,
.detail-header .back-btn {
  color: #ffffff !important;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important;
}

/* ========================================
   任务7: 优化九宫格快讯板块
   ======================================== */
.grid-item[href="news-flash.html"] .grid-text,
.grid-item[href="news-flash.html"] .text {
  font-size: 13px !important;
  color: rgba(255, 255, 255, 0.9) !important;
}

/* 去掉关注图标 */
.news-flash .follow-icon,
.news-item .follow-btn {
  display: none !important;
}

/* ========================================
   任务8: 优化九宫格日历板块
   ======================================== */
.grid-item[href="profit-calendar.html"] .grid-icon,
.grid-item[href="profit-calendar.html"] .ico {
  font-size: 32px !important;
  filter: drop-shadow(0 2px 8px rgba(217, 180, 93, 0.4));
}

.grid-item[href="profit-calendar.html"] .grid-text,
.grid-item[href="profit-calendar.html"] .text {
  font-size: 13px !important;
  color: rgba(255, 255, 255, 0.95) !important;
  font-weight: 600 !important;
}

/* ========================================
   任务9: 优化九宫格课堂板块
   ======================================== */
.grid-item[href="classroom.html"] .grid-icon,
.grid-item[href="classroom.html"] .ico {
  font-size: 32px !important;
  filter: drop-shadow(0 2px 8px rgba(66, 153, 225, 0.4));
}
.grid-item[href="classroom.html"] .grid-text,
.grid-item[href="classroom.html"] .text {
  font-size: 13px !important;
  color: rgba(255, 255, 255, 0.95) !important;
  font-weight: 600 !important;
}
/* ========================================
   任务10: 优化九宫格签到板块
   ======================================== */
.grid-item[href="daily-checkin.html"] .grid-icon,
.grid-item[href="daily-checkin.html"] .ico {
  font-size: 32px !important;
  filter: drop-shadow(0 2px 8px rgba(255, 215, 0, 0.4));
}

.grid-item[href="daily-checkin.html"] .grid-text,
.grid-item[href="daily-checkin.html"] .text {
  font-size: 13px !important;
  color: rgba(255, 255, 255, 0.95) !important;
  font-weight: 600 !important;
}

/* ========================================
   任务12: 优化profile.html UI
   ======================================== */
.profile-hero {
  background: linear-gradient(135deg, #0e2b44, #1a4a6f) !important;
  border-radius: 0 0 24px 24px !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2) !important;
}

.asset-cards {
  background: linear-gradient(
    135deg,
    rgba(217, 180, 93, 0.1),
    rgba(217, 180, 93, 0.05)
  ) !important;
  border-radius: 16px !important;
  padding: 16px !important;
  margin: 16px !important;
}

.asset-card-item {
  background: rgba(255, 255, 255, 0.05) !important;
  border-radius: 12px !important;
  border: 1px solid rgba(217, 180, 93, 0.2) !important;
}

.quick-actions-new {
  background: rgba(255, 255, 255, 0.03) !important;
}

.quick-btn {
  background: linear-gradient(
    135deg,
    rgba(217, 180, 93, 0.15),
    rgba(217, 180, 93, 0.08)
  ) !important;
  border: 1px solid rgba(217, 180, 93, 0.3) !important;
  transition: all 0.3s ease !important;
}

.quick-btn:hover,
.quick-btn:active {
  background: linear-gradient(
    135deg,
    rgba(217, 180, 93, 0.25),
    rgba(217, 180, 93, 0.15)
  ) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 12px rgba(217, 180, 93, 0.3) !important;
}

.menu-list {
  background: rgba(255, 255, 255, 0.03) !important;
}

.menu-item {
  border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
  transition: background 0.3s ease !important;
}

.menu-item:hover,
.menu-item:active {
  background: rgba(217, 180, 93, 0.05) !important;
}

/* ========================================
   通用优化
   ======================================== */
/* 所有卡片统一圆角 */
.card,
.data-card,
.project-card,
.ipo-card,
.invest-card {
  border-radius: 16px !important;
}

/* 所有按钮统一样式 */
.btn,
.btn-primary,
.btn-submit {
  border-radius: 12px !important;
  transition: all 0.3s ease !important;
}

.btn:active,
.btn-primary:active,
.btn-submit:active {
  transform: scale(0.98) !important;
}

/* 所有标题栏统一深蓝色 */
.page-header,
.detail-header,
.hero-simple {
  background: linear-gradient(135deg, #0e2b44, #1a3a5f) !important;
}

/* 所有金色文字统一 */
.gold-text,
.highlight,
.vip-amount,
.profit-value {
  color: #d9b45d !important;
}

/* 移动端优化 */
@media screen and (max-width: 768px) {
  .vipcard {
    margin-top: -20px !important;
  }

  .market-overview-home {
    margin-top: -15px !important;
  }
}

/* ========================================
   项目详情页优化样式 2025-10-28
   ======================================== */
.page-project-detail-ipo {
  background: #f5f7fa !important;
}

.detail-content-ipo {
  padding: 16px !important;
  padding-bottom: 90px !important;
}

/* 关键指标卡片优化 */
.key-metrics-card {
  background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%) !important;
  border: 1px solid #e8ecf0 !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08) !important;
  margin-bottom: 16px !important;
}
.metrics-grid {
  gap: 20px !important;
}

.metric-item {
  padding: 12px !important;
}

.metric-item.main-metric {
  background: linear-gradient(135deg, #f0f7ff 0%, #e6f2ff 100%) !important;
  border: 1px solid #b3d9ff !important;
  border-radius: 8px !important;
}

.metric-label {
  font-size: 13px !important;
  color: #6b7a8a !important;
  margin-bottom: 8px !important;
  font-weight: 500 !important;
}

.metric-value {
  font-size: 24px !important;
  font-weight: 800 !important;
  color: #0e2b44 !important;
}

.metric-value.large {
  font-size: 32px !important;
  color: #f04134 !important;
}

.metric-sub {
  font-size: 12px !important;
  color: #ff7a45 !important;
  margin-top: 4px !important;
  font-weight: 600 !important;
}

/* 募集进度卡片优化 */
.detail-progress-card {
  background: #ffffff !important;
  border: 1px solid #e8ecf0 !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08) !important;
  margin-bottom: 16px !important;
}

.card-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-bottom: 16px !important;
}
.card-title {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #222 !important;
}
.progress-bar-detail-ipo {
  height: 12px !important;
  background: #f0f3f7 !important;
  border-radius: 6px !important;
  overflow: hidden !important;
  margin-bottom: 16px !important;
}

.progress-fill-detail-ipo {
  height: 100% !important;
  background: linear-gradient(90deg, #1890ff 0%, #40a9ff 100%) !important;
  border-radius: 6px !important;
  transition: width 0.6s ease !important;
  box-shadow: 0 0 10px rgba(24, 144, 255, 0.3) !important;
}

.progress-stats {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 12px !important;
}

.stat-item {
  text-align: center !important;
  padding: 8px !important;
  background: #f8f9fa !important;
  border-radius: 8px !important;
}

.stat-label {
  font-size: 12px !important;
  color: #6b7a8a !important;
  display: block !important;
  margin-bottom: 6px !important;
}

.stat-value {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #222 !important;
}

.stat-value.highlight {
  color: #f04134 !important;
}

/* 收益试算卡片优化 */
.calculator-card-ipo {
  background: linear-gradient(135deg, #fff9f0 0%, #fff5e6 100%) !important;
  border: 1px solid #ffd591 !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08) !important;
  margin-bottom: 16px !important;
}

.input-wrapper input {
  width: 100% !important;
  padding: 12px 50px 12px 12px !important;
  border: 2px solid #ffd591 !important;
  border-radius: 8px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: #222 !important;
  background: #fff !important;
}

.calc-result-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 12px !important;
}

.result-value.profit {
  color: #f04134 !important;
}

.result-value.total {
  color: #25d0a6 !important;
}

/* 底部操作栏优化 */
.detail-footer-ipo {
  padding: 16px !important;
  background: #ffffff !important;
  border-top: 1px solid #e8ecf0 !important;
  box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.08) !important;
}

.btn-invest-ipo {
  padding: 16px 32px !important;
  background: linear-gradient(135deg, #f04134 0%, #d73d33 100%) !important;
  border: none !important;
  border-radius: 24px !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #fff !important;
  box-shadow: 0 4px 16px rgba(240, 65, 52, 0.3) !important;
  transition: all 0.3s ease !important;
}

.btn-invest-ipo:active {
  transform: scale(0.98) !important;
}

/* ========================================
   我的投资页面优化样式 2025-10-28
   ======================================== */
.page-other {
  background: #f5f7fa !important;
}

/* 投资概览卡片 */
.investment-summary {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 12px !important;
  padding: 16px !important;
  margin-bottom: 16px !important;
}

.summary-card {
  background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%) !important;
  border: 1px solid #e8ecf0 !important;
  border-radius: 12px !important;
  padding: 16px 12px !important;
  text-align: center !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08) !important;
}

.summary-card.total {
  border-top: 3px solid #1890ff !important;
}

.summary-card.profit {
  border-top: 3px solid #f04134 !important;
}

.summary-card.rate {
  border-top: 3px solid #ffa940 !important;
}

.summary-label {
  font-size: 12px !important;
  color: #6b7a8a !important;
  margin-bottom: 8px !important;
  font-weight: 500 !important;
}

.summary-value {
  font-size: 20px !important;
  font-weight: 800 !important;
  color: #222 !important;
}

.summary-value.green {
  color: #25d0a6 !important;
}

.summary-value.gold {
  color: #ffa940 !important;
}

/* 投资标签 */
.investment-tabs {
  display: flex !important;
  gap: 12px !important;
  padding: 0 16px !important;
  margin-bottom: 16px !important;
}

.inv-tab-btn {
  flex: 1 !important;
  padding: 10px 20px !important;
  background: #ffffff !important;
  border: 1px solid #e8ecf0 !important;
  border-radius: 20px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #6b7a8a !important;
  cursor: pointer !important;
  transition: all 0.3s ease !important;
}

.inv-tab-btn.active {
  background: linear-gradient(135deg, #1890ff 0%, #40a9ff 100%) !important;
  border-color: #1890ff !important;
  color: #ffffff !important;
  box-shadow: 0 4px 12px rgba(24, 144, 255, 0.3) !important;
}

/* 投资列表 */
.investments-list {
  padding: 0 16px 16px !important;
}
.inv-card {
  background: #ffffff !important;
  border: 1px solid #e8ecf0 !important;
  border-radius: 12px !important;
  padding: 16px !important;
  margin-bottom: 12px !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08) !important;
}

.inv-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-bottom: 16px !important;
}

.inv-name {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #222 !important;
}

.inv-status {
  padding: 4px 12px !important;
  border-radius: 12px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}

.inv-status.running {
  background: #e6f7ff !important;
  color: #1890ff !important;
}

.inv-status.completed {
  background: #f0f5ff !important;
  color: #999 !important;
}

.inv-details {
  margin-bottom: 16px !important;
}

.inv-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 8px 0 !important;
  border-bottom: 1px solid #f0f3f7 !important;
}

.inv-row:last-child {
  border-bottom: none !important;
}

.inv-row .label {
  font-size: 13px !important;
  color: #6b7a8a !important;
}

.inv-row .value {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #222 !important;
}

.inv-row .value.profit {
  color: #f04134 !important;
}

.inv-progress {
  margin-bottom: 12px !important;
}

.progress-bar-inv {
  height: 8px !important;
  background: #f0f3f7 !important;
  border-radius: 4px !important;
  overflow: hidden !important;
  margin-bottom: 8px !important;
}

.progress-fill-inv {
  height: 100% !important;
  background: linear-gradient(90deg, #1890ff 0%, #40a9ff 100%) !important;
  border-radius: 4px !important;
  transition: width 0.6s ease !important;
}

.progress-text {
  font-size: 12px !important;
  color: #6b7a8a !important;
  text-align: right !important;
}
.inv-footer {
  display: flex !important;
  justify-content: flex-end !important;
}

.inv-btn-detail {
  padding: 8px 20px !important;
  background: linear-gradient(135deg, #1890ff 0%, #40a9ff 100%) !important;
  border: none !important;
  border-radius: 16px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #ffffff !important;
  cursor: pointer !important;
  box-shadow: 0 2px 8px rgba(24, 144, 255, 0.3) !important;
  transition: all 0.3s ease !important;
}

.inv-btn-detail:active {
  transform: scale(0.98) !important;
}

/* 空状态 */
.empty-state {
  text-align: center !important;
  padding: 60px 20px !important;
}

.empty-icon {
  font-size: 60px !important;
  margin-bottom: 16px !important;
}

.empty-text {
  font-size: 15px !important;
  color: #6b7a8a !important;
  margin-bottom: 24px !important;
}

.empty-btn {
  display: inline-block !important;
  padding: 12px 32px !important;
  background: linear-gradient(135deg, #1890ff 0%, #40a9ff 100%) !important;
  border: none !important;
  border-radius: 20px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #ffffff !important;
  text-decoration: none !important;
  box-shadow: 0 4px 12px rgba(24, 144, 255, 0.3) !important;
  transition: all 0.3s ease !important;
}

.empty-btn:active {
  transform: scale(0.98) !important;
}

/* 加载状态 */
.loading-state {
  text-align: center !important;
  padding: 60px 20px !important;
}

.loading-spinner {
  width: 40px !important;
  height: 40px !important;
  margin: 0 auto 16px !important;
  border: 4px solid #f0f3f7 !important;
  border-top-color: #1890ff !important;
  border-radius: 50% !important;
  animation: spin 1s linear infinite !important;
}

@keyframes spin {
  to {
    transform: rotate(360deg) !important;
  }
}

.loading-text {
  font-size: 14px !important;
  color: #6b7a8a !important;
}

/* ========================================
   个人中心页面优化样式 2025-10-28
   ======================================== */
/* 用户信息头部简版 */
.profile-hero-simple {
  background: linear-gradient(
    135deg,
    #0a1929 0%,
    #0e2b44 50%,
    #1a3a5f 100%
  ) !important;
  padding: 30px 20px !important;
  margin-bottom: -30px !important;
}

.user-card-simple {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  position: relative !important;
  z-index: 10 !important;
}
.user-avatar-circle {
  width: 60px !important;
  height: 60px !important;
  border-radius: 50% !important;
  background: linear-gradient(
    135deg,
    #e6c56e 0%,
    #d9b45d 50%,
    #c9a647 100%
  ) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 4px 12px rgba(217, 180, 93, 0.4) !important;
  cursor: pointer !important;
}

.avatar-text-large {
  font-size: 24px !important;
  font-weight: 900 !important;
  color: #0a1929 !important;
}

.user-info-simple {
  flex: 1 !important;
}

.user-name-large {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #ffffff !important;
  margin-bottom: 4px !important;
}

.user-id-large {
  font-size: 13px !important;
  color: rgba(255, 255, 255, 0.7) !important;
}

/* 资产数据卡片优化 */
.asset-cards {
  display: flex !important;
  gap: 0 !important;
  padding: 20px 0 !important;
  background: url("assets/a83b5de7f9d6d.jpg") center/cover no-repeat !important;
  margin: -30px 0 16px !important;
  border-radius: 0 !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15) !important;
  position: relative !important;
  z-index: 2 !important;
  overflow: hidden !important;
}

.asset-cards::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: rgba(10, 25, 41, 0.5) !important;
  z-index: 0 !important;
}

.asset-card-item {
  text-align: center !important;
  padding: 16px 10px !important;
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-decoration: none !important;
  border-right: 1px solid rgba(255, 255, 255, 0.1) !important;
  position: relative !important;
  z-index: 1 !important;
  transition: all 0.3s ease !important;
}

.asset-card-item:last-child {
  border-right: none !important;
}

.asset-card-item:active {
  transform: scale(0.98) !important;
  background: rgba(255, 255, 255, 0.1) !important;
}

.asset-card-header {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 8px !important;
}

.asset-icon-new {
  width: 30px !important;
  height: 30px !important;
}

.asset-icon-new svg {
  width: 100% !important;
  height: 100% !important;
  fill: url(#goldGradient) !important;
  filter: drop-shadow(0 2px 4px rgba(217, 180, 93, 0.3)) !important;
}

.asset-label-new {
  font-size: 12px !important;
  color: rgba(255, 255, 255, 0.8) !important;
  font-weight: 500 !important;
}

.asset-value-new {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #e6c56e !important;
}

.asset-value-new.profit {
  color: #25d0a6 !important;
}

/* ========================================
   项目详情页面完整优化样式 2025-10-28
   ======================================== */

/* 页面背景 */
.page-project-detail-ipo {
  background: #f5f7fa !important;
}

.detail-content-ipo {
  padding: 16px !important;
  padding-bottom: 90px !important;
}

/* 顶部导航栏 */
.detail-header-ipo {
  background: linear-gradient(135deg, #0e2b44, #1a3a5f) !important;
  padding: 12px 16px !important;
  display: flex !important;
  align-items: center !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
}

.back-btn-detail-ipo {
  font-size: 28px !important;
  color: #ffffff !important;
  text-decoration: none !important;
  margin-right: 12px !important;
  line-height: 1 !important;
}

.detail-header-title-ipo {
  flex: 1 !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #ffffff !important;
  margin: 0 !important;
}

.header-spacer {
  width: 32px !important;
}

/* 关键指标卡片 */
.key-metrics-card {
  background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%) !important;
  border: 1px solid #e8ecf0 !important;
  border-radius: 12px !important;
  padding: 20px !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08) !important;
  margin-bottom: 16px !important;
}

.metrics-grid {
  display: grid !important;
  grid-template-columns: 2fr 1fr 1fr !important;
  gap: 16px !important;
}

.metric-item {
  padding: 12px !important;
  background: #f8f9fa !important;
  border-radius: 8px !important;
  text-align: center !important;
}

.metric-item.main-metric {
  background: linear-gradient(135deg, #fff5f0 0%, #ffe8e0 100%) !important;
  border: 2px solid #ffb399 !important;
  border-radius: 10px !important;
}

.metric-label {
  font-size: 12px !important;
  color: #6b7a8a !important;
  margin-bottom: 8px !important;
  font-weight: 500 !important;
}

.metric-value {
  font-size: 20px !important;
  font-weight: 800 !important;
  color: #0e2b44 !important;
}
.metric-value.large {
  font-size: 28px !important;
  color: #f04134 !important;
  line-height: 1.2 !important;
}

.metric-sub {
  font-size: 11px !important;
  color: #ff7a45 !important;
  margin-top: 6px !important;
  font-weight: 600 !important;
}

/* 募集进度卡片 */
.detail-progress-card {
  background: #ffffff !important;
  border: 1px solid #e8ecf0 !important;
  border-radius: 12px !important;
  padding: 18px !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08) !important;
  margin-bottom: 16px !important;
}

.card-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-bottom: 16px !important;
}

.card-title {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #222 !important;
  margin: 0 !important;
}

.card-badge {
  padding: 4px 12px !important;
  border-radius: 12px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}

.card-badge.status-active {
  background: #e6f7ff !important;
  color: #1890ff !important;
}
.card-badge.status-sold {
  background: #f6f6f6 !important;
  color: #999 !important;
}

.progress-detail {
  margin-top: 12px !important;
}

.progress-bar-detail-ipo {
  height: 12px !important;
  background: #f0f3f7 !important;
  border-radius: 6px !important;
  overflow: hidden !important;
  margin-bottom: 16px !important;
  position: relative !important;
}

.progress-fill-detail-ipo {
  height: 100% !important;
  background: linear-gradient(90deg, #1890ff 0%, #40a9ff 100%) !important;
  border-radius: 6px !important;
  transition: width 0.6s ease !important;
  box-shadow: 0 0 10px rgba(24, 144, 255, 0.3) !important;
  position: relative !important;
}

.progress-fill-detail-ipo::after {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  width: 30px !important;
  height: 100% !important;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.4)
  ) !important;
  animation: shimmerProgress 2s infinite !important;
}

.progress-stats {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 12px !important;
}

.stat-item {
  text-align: center !important;
  padding: 12px 8px !important;
  background: #f8f9fa !important;
  border-radius: 8px !important;
}

.stat-label {
  font-size: 12px !important;
  color: #6b7a8a !important;
  display: block !important;
  margin-bottom: 6px !important;
}

.stat-value {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #222 !important;
}

.stat-value.highlight {
  color: #f04134 !important;
}

/* 收益试算卡片 */
.calculator-card-ipo {
  background: linear-gradient(135deg, #fffbf0 0%, #fff5e6 100%) !important;
  border: 2px solid #ffd591 !important;
  border-radius: 12px !important;
  padding: 18px !important;
  box-shadow: 0 2px 12px rgba(255, 169, 64, 0.15) !important;
  margin-bottom: 16px !important;
}

.calculator-body {
  margin-top: 12px !important;
}

.input-group {
  margin-bottom: 16px !important;
}

.input-group label {
  display: block !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #222 !important;
  margin-bottom: 8px !important;
}

.input-wrapper {
  position: relative !important;
}

.input-wrapper input {
  width: 100% !important;
  padding: 14px 60px 14px 14px !important;
  border: 2px solid #ffd591 !important;
  border-radius: 8px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: #222 !important;
  background: #fff !important;
  transition: all 0.3s ease !important;
}

.input-wrapper input:focus {
  outline: none !important;
  border-color: #ffa940 !important;
  box-shadow: 0 0 0 3px rgba(255, 169, 64, 0.1) !important;
}

.input-unit {
  position: absolute !important;
  right: 14px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  font-size: 14px !important;
  color: #999 !important;
  font-weight: 600 !important;
}

.calc-result-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 12px !important;
}

.result-item {
  text-align: center !important;
  padding: 14px !important;
  background: #fff !important;
  border-radius: 8px !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06) !important;
}

.result-label {
  font-size: 12px !important;
  color: #6b7a8a !important;
  margin-bottom: 8px !important;
}

.result-value {
  font-size: 22px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
}
.result-value.profit {
  color: #f04134 !important;
}

.result-value.total {
  color: #25d0a6 !important;
}

/* 项目信息卡片 */
.info-table-card {
  background: #ffffff !important;
  border: 1px solid #e8ecf0 !important;
  border-radius: 12px !important;
  padding: 18px !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08) !important;
  margin-bottom: 16px !important;
}

.info-table {
  margin-top: 12px !important;
}

.info-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 12px 0 !important;
  border-bottom: 1px solid #f0f3f7 !important;
}

.info-row:last-child {
  border-bottom: none !important;
}

.info-label {
  font-size: 14px !important;
  color: #6b7a8a !important;
}

.info-value {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #222 !important;
}

.info-value.error {
  color: #f04134 !important;
}

.info-value.success {
  color: #25d0a6 !important;
}

/* 投资说明卡片 */
.description-card {
  background: #ffffff !important;
  border: 1px solid #e8ecf0 !important;
  border-radius: 12px !important;
  padding: 18px !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08) !important;
  margin-bottom: 16px !important;
}

.description-content {
  margin-top: 12px !important;
}

.desc-section {
  margin-bottom: 16px !important;
  padding: 12px !important;
  background: #f8f9fa !important;
  border-radius: 8px !important;
}

.desc-section:last-child {
  margin-bottom: 0 !important;
}

.desc-subtitle {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #222 !important;
  margin-bottom: 8px !important;
}

.desc-text {
  font-size: 13px !important;
  color: #6b7a8a !important;
  line-height: 1.8 !important;
  margin-bottom: 6px !important;
}

.desc-text:last-child {
  margin-bottom: 0 !important;
}

.highlight-text {
  color: #f04134 !important;
  font-weight: 700 !important;
  font-size: 16px !important;
}

/* 风险提示卡片 */
.risk-card-ipo {
  background: linear-gradient(135deg, #fff9f7 0%, #fff5f2 100%) !important;
  border: 2px solid #ffe4e1 !important;
  border-radius: 12px !important;
  padding: 18px !important;
  box-shadow: 0 2px 12px rgba(255, 107, 107, 0.08) !important;
  margin-bottom: 16px !important;
}

.risk-content {
  margin-top: 12px !important;
}

.risk-content p {
  font-size: 13px !important;
  color: #ff7a45 !important;
  line-height: 1.8 !important;
  margin-bottom: 8px !important;
  padding-left: 8px !important;
}

.risk-content p:last-child {
  margin-bottom: 0 !important;
}

/* 底部操作栏 */
.detail-footer-ipo {
  position: fixed !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  padding: 16px !important;
  background: #ffffff !important;
  border-top: 1px solid #e8ecf0 !important;
  box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.08) !important;
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  z-index: 100 !important;
}

.footer-left {
  flex: 1 !important;
}

.footer-left .balance-label {
  font-size: 12px !important;
  color: #6b7a8a !important;
  margin-bottom: 4px !important;
}

.footer-left .balance-value {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #222 !important;
}

.btn-invest-ipo {
  flex: 0 0 auto !important;
  padding: 14px 32px !important;
  background: linear-gradient(135deg, #f04134 0%, #d73d33 100%) !important;
  border: none !important;
  border-radius: 24px !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #fff !important;
  box-shadow: 0 4px 16px rgba(240, 65, 52, 0.3) !important;
  transition: all 0.3s ease !important;
  cursor: pointer !important;
}

.btn-invest-ipo:hover {
  background: linear-gradient(135deg, #d73d33 0%, #c23127 100%) !important;
  box-shadow: 0 6px 20px rgba(240, 65, 52, 0.4) !important;
  transform: translateY(-2px) !important;
}

.btn-invest-ipo:active {
  transform: scale(0.98) !important;
  box-shadow: 0 2px 8px rgba(240, 65, 52, 0.3) !important;
}

/* 购买限制提示 */
.project-restrictions-section {
  background: linear-gradient(135deg, #fff9f0 0%, #fff5e6 100%) !important;
  border: 2px solid #ffd591 !important;
  border-radius: 12px !important;
  padding: 16px !important;
  margin-bottom: 16px !important;
}
.restrictions-title {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #222 !important;
  margin-bottom: 12px !important;
}
.restrictions-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

.restriction-item {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 10px 12px !important;
  background: #fff !important;
  border-radius: 6px !important;
  font-size: 13px !important;
}

.restriction-icon {
  font-size: 16px !important;
}

.restriction-text {
  flex: 1 !important;
  color: #222 !important;
}

.restriction-info {
  border-left: 3px solid #1890ff !important;
}

.restriction-warning {
  border-left: 3px solid #ffa940 !important;
}

.restriction-warning .restriction-text {
  color: #fa8c16 !important;
}

.restriction-success {
  border-left: 3px solid #25d0a6 !important;
}

.restriction-success .restriction-text {
  color: #25d0a6 !important;
}

/* ========================================
   🎨 完整UI优化样式 - 2025-10-28 最终版
   ======================================== */

/* ========================================
   个人中心页面 (profile.html)
   ======================================== */

/* 用户信息头部简版 */
.profile-hero-simple {
  background: linear-gradient(
    135deg,
    #0a1929 0%,
    #0e2b44 50%,
    #1a3a5f 100%
  ) !important;
  padding: 30px 20px !important;
  margin-bottom: -30px !important;
  position: relative !important;
  overflow: hidden !important;
}

/* 星空动画背景 */
.profile-hero-simple::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background-image: radial-gradient(
      circle at 20% 30%,
      rgba(255, 255, 255, 0.8) 1.5px,
      transparent 1.5px
    ),
    radial-gradient(
      circle at 80% 20%,
      rgba(217, 180, 93, 0.9) 1px,
      transparent 1px
    ),
    radial-gradient(
      circle at 50% 70%,
      rgba(255, 255, 255, 0.7) 1px,
      transparent 1px
    ),
    radial-gradient(
      circle at 30% 80%,
      rgba(217, 180, 93, 0.8) 1.5px,
      transparent 1.5px
    ),
    radial-gradient(
      circle at 70% 60%,
      rgba(255, 255, 255, 0.6) 1px,
      transparent 1px
    ) !important;
  background-size: 300px 300px, 250px 250px, 200px 200px, 280px 280px,
    220px 220px !important;
  background-position: 0% 0%, 10% 10%, 20% 20%, 30% 30%, 40% 40% !important;
  animation: warpSpeed 2.5s linear infinite !important;
}

@keyframes warpSpeed {
  0% {
    transform: scale(0.3);
    opacity: 0;
  }
  30% {
    opacity: 1;
  }
  100% {
    transform: scale(3.5);
    opacity: 0;
  }
}

.user-card-simple {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  position: relative !important;
  z-index: 10 !important;
}

.user-avatar-circle {
  width: 60px !important;
  height: 60px !important;
  border-radius: 50% !important;
  background: linear-gradient(
    135deg,
    #e6c56e 0%,
    #d9b45d 50%,
    #c9a647 100%
  ) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 4px 12px rgba(217, 180, 93, 0.4) !important;
  cursor: pointer !important;
  transition: transform 0.3s ease !important;
}

.user-avatar-circle:active {
  transform: scale(0.95) !important;
}

.avatar-text-large {
  font-size: 24px !important;
  font-weight: 900 !important;
  color: #0a1929 !important;
}

.user-info-simple {
  flex: 1 !important;
}

.user-name-large {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #ffffff !important;
  margin-bottom: 4px !important;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important;
}

.user-id-large {
  font-size: 13px !important;
  color: rgba(255, 255, 255, 0.7) !important;
}

/* 资产数据卡片 */
.asset-cards {
  display: flex !important;
  gap: 0 !important;
  padding: 20px 0 !important;
  background: url("assets/a83b5de7f9d6d.jpg") center/cover no-repeat !important;
  margin: -30px 0 16px !important;
  border-radius: 0 !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15) !important;
  position: relative !important;
  z-index: 2 !important;
  overflow: hidden !important;
}

.asset-cards::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: rgba(10, 25, 41, 0.5) !important;
  z-index: 0 !important;
}

.asset-card-item {
  text-align: center !important;
  padding: 16px 10px !important;
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-decoration: none !important;
  border-right: 1px solid rgba(255, 255, 255, 0.1) !important;
  position: relative !important;
  z-index: 1 !important;
  transition: all 0.3s ease !important;
}

.asset-card-item:last-child {
  border-right: none !important;
}

.asset-card-item:active {
  transform: scale(0.98) !important;
  background: rgba(255, 255, 255, 0.1) !important;
}

.asset-card-header {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 8px !important;
}

.asset-icon-new {
  width: 30px !important;
  height: 30px !important;
}

.asset-icon-new svg {
  width: 100% !important;
  height: 100% !important;
  fill: url(#goldGradient) !important;
  filter: drop-shadow(0 2px 4px rgba(217, 180, 93, 0.3)) !important;
}
.asset-label-new {
  font-size: 12px !important;
  color: rgba(255, 255, 255, 0.8) !important;
  font-weight: 500 !important;
}

.asset-value-new {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #e6c56e !important;
}

.asset-value-new.profit {
  color: #25d0a6 !important;
}

/* ========================================
   项目详情页面 (project-detail.html) - 补充
   ======================================== */

.page-project-detail-ipo {
  background: #f5f7fa !important;
}

/* 关键指标卡片增强 */
.key-metrics-card {
  background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%) !important;
  border: 1px solid #e8ecf0 !important;
  border-radius: 12px !important;
  padding: 20px !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08) !important;
  margin-bottom: 16px !important;
}

.metrics-grid {
  display: grid !important;
  grid-template-columns: 2fr 1fr 1fr !important;
  gap: 16px !important;
}

.metric-item.main-metric {
  background: linear-gradient(135deg, #fff5f0 0%, #ffe8e0 100%) !important;
  border: 2px solid #ffb399 !important;
  border-radius: 10px !important;
}

.metric-value.large {
  font-size: 28px !important;
  color: #f04134 !important;
}

/* ========================================
   消息页面 (messages.html) - 完全重写
   ======================================== */

/* 消息页面容器 */
.page-messages {
  background: #f5f7fa !important;
  min-height: 100vh !important;
}

/* 聊天容器 */
.chat-container {
  display: flex !important;
  flex-direction: column !important;
  height: calc(100vh - 70px) !important;
  background: #ffffff !important;
}

/* 聊天头部 */
.chat-header {
  background: linear-gradient(135deg, #0e2b44, #1a3a5f) !important;
  padding: 16px !important;
  color: #ffffff !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
}

.chat-header-avatar {
  width: 40px !important;
  height: 40px !important;
  border-radius: 50% !important;
  background: linear-gradient(135deg, #e6c56e, #d9b45d) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 20px !important;
}

.chat-header-info {
  flex: 1 !important;
}

.chat-header-name {
  font-size: 16px !important;
  font-weight: 700 !important;
  margin-bottom: 2px !important;
}

.chat-header-status {
  font-size: 12px !important;
  color: rgba(255, 255, 255, 0.7) !important;
}

/* 消息列表区域 */
.messages-area {
  flex: 1 !important;
  overflow-y: auto !important;
  padding: 16px !important;
  background: #f8f9fa !important;
}

/* 输入区域 - 固定在底部 */
.message-input-area {
  position: fixed !important;
  bottom: 70px !important;
  left: 0 !important;
  right: 0 !important;
  background: #ffffff !important;
  border-top: 1px solid #e8ecf0 !important;
  padding: 12px 16px !important;
  box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.05) !important;
  z-index: 100 !important;
}

.message-input-wrapper {
  display: flex !important;
  gap: 12px !important;
  align-items: center !important;
}

.message-input-wrapper input {
  flex: 1 !important;
  padding: 12px 16px !important;
  border: 1px solid #e8ecf0 !important;
  border-radius: 24px !important;
  font-size: 14px !important;
  background: #f8f9fa !important;
  transition: all 0.3s ease !important;
}
.message-input-wrapper input:focus {
  outline: none !important;
  border-color: #1890ff !important;
  background: #ffffff !important;
  box-shadow: 0 0 0 3px rgba(24, 144, 255, 0.1) !important;
}

.message-send-btn {
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  background: linear-gradient(135deg, #1890ff, #40a9ff) !important;
  border: none !important;
  color: #ffffff !important;
  font-size: 18px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  transition: all 0.3s ease !important;
  box-shadow: 0 2px 8px rgba(24, 144, 255, 0.3) !important;
}

.message-send-btn:active {
  transform: scale(0.95) !important;
}

/* 消息气泡 */
.message-bubble {
  max-width: 70% !important;
  margin-bottom: 12px !important;
  display: flex !important;
  flex-direction: column !important;
}

.message-bubble.ai {
  align-items: flex-start !important;
}

.message-bubble.user {
  align-items: flex-end !important;
  margin-left: auto !important;
}

.message-content {
  padding: 12px 16px !important;
  border-radius: 16px !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  word-wrap: break-word !important;
}

.message-bubble.ai .message-content {
  background: #ffffff !important;
  color: #222 !important;
  border: 1px solid #e8ecf0 !important;
  border-bottom-left-radius: 4px !important;
}
.message-bubble.user .message-content {
  background: linear-gradient(135deg, #1890ff, #40a9ff) !important;
  color: #ffffff !important;
  border-bottom-right-radius: 4px !important;
}

.message-time {
  font-size: 11px !important;
  color: #999 !important;
  margin-top: 4px !important;
  padding: 0 8px !important;
}

/* 快捷回复按钮 */
.quick-replies {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 8px !important;
  margin-bottom: 16px !important;
}

.quick-reply-btn {
  padding: 12px !important;
  background: #ffffff !important;
  border: 1px solid #e8ecf0 !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  color: #222 !important;
  cursor: pointer !important;
  transition: all 0.3s ease !important;
  text-align: left !important;
}

.quick-reply-btn:active {
  transform: scale(0.98) !important;
  background: #f8f9fa !important;
}

/* 紧凑项目卡片样式 - 优化版 */
.product-card-compact {
  background: #fff;
  border-radius: 12px;
  padding: 14px;
  margin: 0 14px 14px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  position: relative;
  cursor: pointer;
  transition: all 0.3s ease;
}

.product-card-compact:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  transform: translateY(-2px);
}

.product-card-compact.product-locked {
  opacity: 0.75;
  border: 1px solid rgba(217, 180, 93, 0.3);
}

.vip-badge-corner {
  position: absolute;
  top: 10px;
  right: 10px;
  background: linear-gradient(135deg, #d9b45d, #f4d03f);
  color: #1a2332;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 12px;
  z-index: 2;
}

.product-header-compact {
  margin-bottom: 8px;
}

.product-title-compact {
  font-size: 16px;
  font-weight: 700;
  color: #1a2332;
  margin-bottom: 4px;
  line-height: 1.3;
  padding-right: 60px;
}

.product-code-compact {
  font-size: 12px;
  color: #6b7a8a;
  opacity: 0.8;
}

.product-data-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin: 12px 0;
  padding: 10px 0;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.data-item {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1;
}

.data-icon {
  font-size: 18px;
  line-height: 1;
}

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

.data-label {
  font-size: 10px;
  color: #6b7a8a;
  line-height: 1.2;
  margin-bottom: 2px;
}

.data-value {
  font-size: 13px;
  font-weight: 700;
  color: #0b3b5e;
  line-height: 1.2;
}

.data-divider {
  width: 1px;
  height: 24px;
  background: rgba(0, 0, 0, 0.08);
}

.product-bottom-compact {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
}

.progress-compact {
  flex: 1;
}

.progress-text {
  font-size: 11px;
  color: #6b7a8a;
  margin-bottom: 4px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.progress-text span {
  font-weight: 700;
  color: #0b3b5e;
}

.progress-bar-compact {
  height: 6px;
  background: rgba(0, 0, 0, 0.06);
  border-radius: 3px;
  overflow: hidden;
}

.progress-fill-compact {
  height: 100%;
  background: linear-gradient(90deg, #25d0a6, #20b896);
  border-radius: 3px;
  transition: width 0.6s ease;
}

.btn-apply-compact {
  padding: 8px 18px;
  background: linear-gradient(135deg, #0b3b5e, #0e4a78);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.3s ease;
  flex-shrink: 0;
}

.btn-apply-compact:hover {
  background: linear-gradient(135deg, #0e4a78, #0b3b5e);
  transform: scale(1.05);
}
.btn-apply-compact:active {
  transform: scale(0.98);
}
/* 加载和空状态优化 */
.product-list {
  padding-top: 80px;
  min-height: 100vh;
}

.empty-state {
  padding: 60px 20px;
  text-align: center;
}

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

.empty-text {
  font-size: 14px;
  color: #6b7a8a;
}

/* Toast消息 */
.toast-message {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.8);
  background: rgba(0, 0, 0, 0.85);
  color: #fff;
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 14px;
  z-index: 9999;
  opacity: 0;
  transition: all 0.3s ease;
  max-width: 80%;
  text-align: center;
}

.toast-message.show {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

/* 移动端优化 */
@media (max-width: 375px) {
  .product-card-compact {
    padding: 12px;
    margin: 0 12px 12px;
  }

  .product-title-compact {
    font-size: 15px;
  }

  .data-value {
    font-size: 12px;
  }

  .btn-apply-compact {
    padding: 7px 14px;
    font-size: 12px;
  }
}

/* Profile 页面九宫格容器 - 透明背景，无圆角，无内边距 */
#profile-grid .grid-item {
  background: transparent !important;
  background-color: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

/* Profile 页面九宫格图标颜色统一 - 与首页风格一致 */
#profile-grid .grid-item .icon {
  width: clamp(44px, 11vw, 52px) !important;
  height: clamp(44px, 11vw, 52px) !important;
  background: #f8f9fa !important;
  box-shadow: none !important;
  border: none !important;
  position: relative;
  border-radius: 50% !important;
  overflow: hidden !important;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* 移除伪元素，只使用 <img> 控制图标显示 */
/* #profile-grid .grid-item .icon::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.4) 0%,
    rgba(255, 255, 255, 0) 100%
  );
  border-radius: 50% 50% 0 0;
  pointer-events: none;
  z-index: 1;
} */
/* #profile-grid .grid-item .icon::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0) 0%,
    rgba(0, 0, 0, 0.08) 100%
  );
  border-radius: 0 0 50% 50%;
  pointer-events: none;
  z-index: 1;
} */
#profile-grid .grid-item:hover .icon {
  box-shadow: inset 0 2px 8px rgba(255, 255, 255, 0.6),
    inset 0 -2px 6px rgba(0, 0, 0, 0.2), 0 4px 12px rgba(0, 0, 0, 0.15);
}
#profile-grid .grid-item .icon img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  display: block;
  image-rendering: auto;
  transform: scale(1.8) !important;
  transform-origin: center center;
  filter: none;
  padding: 0 !important;
  position: relative;
  z-index: 2;
  border-radius: 50% !important;
}
#profile-grid .grid-item:nth-child(3) .icon img {
  transform: scale(2.04) !important;
  transform-origin: center center;
}
#profile-grid .grid-item .icon svg {
  position: relative;
  z-index: 2;
  width: 160%;
  height: 160%;
  display: block;
  filter: none;
}
/* 统一 Profile 页面 SVG 图标颜色为温暖棕褐色/金色渐变 - 第一张图风格 */
/* 只修改渐变定义，保留图标清晰度和层次结构 */
#profile-grid .grid-item .icon svg linearGradient stop[offset="0%"] {
  stop-color: #d2b48c !important;
}
#profile-grid .grid-item .icon svg linearGradient stop[offset="30%"],
#profile-grid .grid-item .icon svg linearGradient stop[offset="40%"] {
  stop-color: #e6d3a3 !important;
}
#profile-grid .grid-item .icon svg linearGradient stop[offset="50%"],
#profile-grid .grid-item .icon svg linearGradient stop[offset="70%"] {
  stop-color: #d4a574 !important;
}
#profile-grid .grid-item .icon svg linearGradient stop[offset="100%"] {
  stop-color: #c9a884 !important;
}
#profile-grid .grid-item .icon svg radialGradient stop[offset="0%"] {
  stop-color: #d2b48c !important;
}
#profile-grid .grid-item .icon svg radialGradient stop[offset="30%"],
#profile-grid .grid-item .icon svg radialGradient stop[offset="40%"] {
  stop-color: #d4a574 !important;
}
#profile-grid .grid-item .icon svg radialGradient stop[offset="100%"] {
  stop-color: #c9a884 !important;
}
/* 统一描边颜色 */
#profile-grid .grid-item .icon svg path[stroke],
#profile-grid .grid-item .icon svg circle[stroke],
#profile-grid .grid-item .icon svg rect[stroke],
#profile-grid .grid-item .icon svg ellipse[stroke] {
  stroke: #b8941f !important;
}

/* ========== 修复底部导航栏固定定位 - 确保父级元素不影响 fixed ========== */
/* 为 .bottom-nav 和 .navbar-fixed 添加固定定位（如果存在） */
.bottom-nav,
.navbar-fixed {
  position: fixed !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 999999 !important;
  transform: translateZ(0) !important;
}

/* 修复底部导航栏固定定位 - 确保父级元素不影响 fixed */
.page-container,
.viewport-wrapper,
.wrapper {
  transform: none !important;
  perspective: none !important;
  overflow-x: visible !important;
  backface-visibility: visible !important;
}
