/* ============================================================
   云枢官网授权系统 - 前台样式 V5（云服务商科技官网风，参考 Edge SCDN 截图）
   主蓝 #006eff / 浅蓝渐变导航 / 浅蓝白渐变 Banner / 蓝底白字按钮
   ============================================================ */

:root {
  --primary: #006eff;
  --primary-light: #13adff;
  --primary-deep: #005ad6;
  --primary-dark: #0a3d94;
  --primary-soft: #f4faff;
  --primary-soft-2: #b5dfff;
  --violet: #13adff;
  --dark: #0b1d30;
  --ink-strong: #2b3441;   /* 标题文字色（--dark 留给深色背景用）*/
  --dark-2: #16305e;
  --dark-3: #0a1828;
  --ink: #454e5c;
  --ink-2: #6b7280;
  --ink-3: #999999;
  --bg: #f5f6fa;
  --card: #fff;
  --line: #eef0f4;
  --gold: #006eff;
  --orange: #ff7a00;
  --green: #67c23a;
  --red: #f56c6c;
  --radius: 10px;
  --radius-lg: 14px;
  --radius-xl: 18px;
  --shadow-sm: 0 2px 4px rgba(43, 36, 22, .05);
  --shadow: 0 2px 4px rgba(43, 36, 22, .05), 0 12px 24px rgba(43, 36, 22, .08);
  --shadow-hover: 0 2px 4px rgba(43, 36, 22, .04), 0 18px 40px rgba(0, 110, 255, .14);
  --font: "MiSans VF", "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  font-family: var(--font);
  font-size: 15px;
  color: var(--ink);
  background: var(--bg);
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; transition: color .2s; }
img { display: block; max-width: 100%; border: 0; }
ul, ol { list-style: none; }
button { font-family: inherit; cursor: pointer; border: 0; background: none; }
input, textarea, select { font-family: inherit; font-size: 14px; }

.container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; }

/* ---------------- 按钮 ---------------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 11px 30px;
  font-size: 15px;
  line-height: 1.4;
  border-radius: 12px;
  transition: all .22s;
  white-space: nowrap;
  font-weight: 500;
}
.btn-primary {
  background: linear-gradient(134deg, #13adff, #006eff);
  color: #ffffff;
  box-shadow: 0 6px 18px rgba(0, 110, 255, .3);
}
.btn-primary:hover { background: linear-gradient(134deg, #006eff, #005ad6); transform: translateY(-2px); box-shadow: 0 10px 26px rgba(0, 110, 255, .38); }
.btn-outline { background: var(--card); border: 1px solid #e3e6ec; color: var(--ink); }
.btn-outline:hover { border-color: var(--primary); color: var(--primary); transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0, 110, 255, .12); }
.btn-dark { background: var(--dark); color: #fff; box-shadow: 0 6px 18px rgba(0, 110, 255, .25); }
.btn-dark:hover { background: var(--dark-2); transform: translateY(-2px); }
.btn-lg { padding: 14px 42px; font-size: 16px; }
.btn-sm { padding: 7px 20px; font-size: 13px; border-radius: 8px; }
.btn-block { display: flex; width: 100%; }

/* ---------------- 顶部公告栏 ---------------- */
.notice-bar {
  background: linear-gradient(90deg, #005ad6, #006eff 45%, #13adff);
  color: #fff;
  font-size: 13px;
  text-align: center;
  padding: 8px 0;
}
.notice-bar .container { display: flex; align-items: center; justify-content: center; gap: 10px; }
.notice-bar .notice-dot { width: 6px; height: 6px; border-radius: 50%; background: #7cc4ff; flex: none; animation: notice-blink 2s ease-in-out infinite; }
@keyframes notice-blink { 0%, 100% { opacity: 1; } 50% { opacity: .3; } }

/* ---------------- 头部导航（浅蓝渐变通栏，云商官网风格） ---------------- */
.site-header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  background: transparent;
  border-bottom: 0;
  transition: box-shadow .3s;
}
.site-header.scrolled { box-shadow: 0 6px 24px rgba(0, 110, 255, .1); }
.header-inner { display: flex; align-items: center; height: 72px; gap: 28px; }

/* Logo 区 */
.logo { display: flex; align-items: center; gap: 10px; flex: none; }
.logo-mark {
  width: 38px; height: 38px;
  border-radius: 9px;
  background: linear-gradient(134deg, #13adff, #006eff);
  color: #fff;
  font-size: 20px;
  font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 14px rgba(0, 110, 255, .3);
}
.logo img { height: 54px; border-radius: 10px; }
.logo-texts { display: flex; flex-direction: column; line-height: 1.25; }
.logo-text { font-size: 18px; font-weight: 800; color: var(--ink-strong); letter-spacing: .5px; }
.logo-domain { font-size: 11px; color: var(--ink-3); }

/* 主导航 */
.main-nav { display: flex; align-items: center; gap: 4px; flex: 1; height: 100%; }
.nav-item { position: relative; height: 100%; display: flex; align-items: center; }
.nav-link {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 7px 14px;
  font-size: 15px;
  color: var(--ink-2);
  font-weight: 400;
  border-radius: 8px;
  transition: all .2s;
  white-space: nowrap;
}
.nav-link:hover { color: var(--primary); background: rgba(255, 255, 255, .7); }
.nav-link.active { color: var(--primary); font-weight: 600; }
.nav-caret { font-size: 18px; color: var(--ink-3); transition: transform .2s; }
.nav-item.has-dropdown:hover .nav-caret { transform: rotate(180deg); }

/* HOT 角标 */
.nav-hot {
  display: inline-block;
  padding: 0 6px;
  font-size: 10px;
  font-weight: 700;
  line-height: 15px;
  color: #fff;
  background: #ff4d4f;
  border-radius: 4px;
  transform: translateY(-7px);
  letter-spacing: .5px;
}

/* 下拉面板 */
.nav-dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  min-width: 150px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 12px 32px rgba(43, 36, 22, .14);
  padding: 8px;
  opacity: 0;
  visibility: hidden;
  transition: all .22s;
  z-index: 110;
}
.nav-item.has-dropdown:hover .nav-dropdown { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }

/* ===== 富下拉面板（二级菜单）：左栏分类 25% + 右栏卡片网格 75% =====
   版式、尺寸、配色、阴影均按参考站（xtuidc.cn「解决方案」）的计算样式 1:1 复刻；
   面板以 .site-header 为定位基准（所以父级要 static，让 left:0 落在视口左边）。 */
.nav-item.has-dropdown { position: static; }
.nav-sheet {
  position: absolute;
  left: 0;
  top: 100%;
  width: 80%;
  height: calc(100vh - 72px);
  background: #fff;
  box-shadow: 0 24px 48px rgba(55, 99, 170, .12);
  opacity: 0;
  visibility: hidden;
  transition: opacity .2s ease, visibility .2s ease;
  overflow: hidden;
}
.nav-item.has-dropdown:hover .nav-sheet { opacity: 1; visibility: visible; }
.nav-sheet-inner { display: flex; height: 100%; }

/* 左栏：分类名（粉蓝底小圆角标签，右箭头） */
.nav-sheet-left {
  width: 25%;
  height: 100%;
  padding: 27px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 18px;
  box-shadow: 8px 8px 20px rgba(55, 99, 170, .1);
}
.nav-sheet-list { display: flex; flex-direction: column; width: 70%; overflow-y: auto; }
.nav-sheet-list::-webkit-scrollbar { display: none; }
.nav-sheet-cat {
  position: relative;
  display: inline-block;
  padding: 8px 46px 8px 18px;
  font-size: 15px;
  font-weight: 600;
  color: #3860f4;
  background: #ebf1fd;
  border-radius: 7px;
}
.nav-sheet-cat .nav-hot { margin-left: 6px; }
.nav-sheet-arrow {
  position: absolute;
  right: 18px;
  top: 50%;
  width: 6px;
  height: 6px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-50%) rotate(-45deg);
}

/* 右栏：卡片网格（名称 + 介绍） */
.nav-sheet-right {
  width: 75%;
  height: 100%;
  padding: 27px;
  background: #f8f8f8;
  overflow: hidden auto;
}
.nav-sheet-right::-webkit-scrollbar { width: 9px; }
.nav-sheet-right::-webkit-scrollbar-thumb { background: #adadad; border-radius: 4px; }
.nav-sheet-right ul {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(328px, 1fr));
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.nav-sheet-right li {
  position: relative;
  border: 2px solid #fff;
  border-radius: 15px;
  background: linear-gradient(180deg, #f3f5f8, #fff);
  box-shadow: 8px 8px 20px rgba(55, 99, 170, .1), -8px -8px 20px #fff;
}
.nav-sheet-right li a {
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding: 18px;
}
.nav-sheet-right li a span {
  display: block;
  min-height: 26px;
  color: #16213a;
  font-size: 16px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nav-sheet-right li a p {
  margin: 0;
  color: rgba(34, 34, 34, .5);
  font-size: 14px;
  line-height: 25px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nav-sheet-right li:hover a span { color: #1664ff; }

/* 富下拉分组（2026-09-30）：左栏多个分组（如 增值服务 / 旗下网站），悬停切换右栏 */
.nav-sheet-list { gap: 12px; }
.nav-sheet-cat { cursor: pointer; transition: background .2s, color .2s; }
.nav-sheet-cat.active { background: #3860f4; color: #fff; }
.nav-sheet-cat.active .nav-hot { color: #fff; }
.nav-sheet-right.nav-sheet-right-grouped ul.nav-sheet-panel { display: none; }
.nav-sheet-right.nav-sheet-right-grouped ul.nav-sheet-panel.active { display: grid; }
.nav-drop-item {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 9px 14px;
  font-size: 14px;
  color: var(--ink-2);
  border-radius: 7px;
  transition: all .15s;
  white-space: nowrap;
}
.nav-drop-item:hover { color: var(--primary); background: var(--primary-soft); }

/* 右侧区 */
.header-right { display: flex; align-items: center; gap: 20px; flex: none; }
.region-select {
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: var(--ink-2);
  cursor: pointer;
  padding: 6px 10px;
  border-radius: 8px;
  transition: all .2s;
}
.region-select:hover { color: var(--primary); background: rgba(255, 255, 255, .7); }
.region-caret { font-size: 11px; color: var(--ink-3); }
.region-dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  min-width: 130px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 12px 32px rgba(43, 36, 22, .14);
  padding: 8px;
  opacity: 0;
  visibility: hidden;
  transition: all .22s;
  z-index: 110;
}
.region-select:hover .region-dropdown { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.region-dropdown a {
  display: block;
  padding: 9px 14px;
  font-size: 14px;
  color: var(--ink-2);
  border-radius: 7px;
  white-space: nowrap;
}
.region-dropdown a:hover { color: var(--primary); background: var(--primary-soft); }
.header-link { font-size: 14px; color: var(--ink-2); transition: color .2s; white-space: nowrap; }
.header-link:hover { color: var(--primary); }
.header-reg-btn {
  padding: 8px 24px;
  font-size: 14px;
  background: linear-gradient(134deg, #13adff, #006eff);
  color: #ffffff; font-weight: 600;
  border-radius: 8px;
  font-weight: 500;
  box-shadow: 0 4px 14px rgba(0, 110, 255, .4);
  transition: all .2s;
}
.header-reg-btn:hover { background: var(--primary-deep); transform: translateY(-1px); }

.nav-toggle { display: none; flex: none; width: 40px; height: 40px; flex-direction: column; align-items: center; justify-content: center; gap: 5px; border-radius: 8px; }
.nav-toggle:hover { background: rgba(255, 255, 255, .7); }
.nav-toggle span { display: block; width: 20px; height: 2px; border-radius: 2px; background: var(--dark); transition: all .3s; }
body.nav-open .nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
body.nav-open .nav-toggle span:nth-child(2) { opacity: 0; }
body.nav-open .nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---------------- 首页首屏 Banner（浅蓝白渐变 + 左文字右装饰图） ---------------- */
.hero {
  position: relative;
  overflow: hidden;
  background: #0b1d30;
}
.hero-slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  background:
    radial-gradient(900px 440px at 82% 16%, rgba(0, 110, 255, .18), transparent 62%),
    radial-gradient(700px 400px at 8% 88%, rgba(26, 122, 217, .12), transparent 62%),
    linear-gradient(135deg, #0b1d30 0%, #16305e 42%, #0a3d94 100%);
  opacity: 0;
  visibility: hidden;
  transform: translateY(14px);
  transition: opacity .6s ease, transform .6s ease, visibility .6s;
}
.hero-slide.active { opacity: 1; visibility: visible; transform: none; position: relative; }
.hero-grid {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 40px;
  padding: 130px 0 140px;
}
.hero-content { max-width: 620px; flex: none; }
/* 轮播文字样式（对标参考站：白字小标签 + 43px 标题 + 13px 描述 + 纯蓝按钮） */
.hero-tag {
  display: inline-block;
  font-size: 13px;
  font-weight: 600;
  color: #fff;
  letter-spacing: 1px;
}
.hero-title {
  margin-top: 20px;
  font-size: 43px;
  font-weight: 500;
  color: #2a3240;
  line-height: 1.1;
}
.hero-subtitle { margin-top: 16px; max-width: 480px; font-size: 13px; line-height: 1.7; color: #2a3240; }
.hero-btn {
  margin-top: 32px;
  padding: 11px 40px;
  font-size: 14px;
  font-weight: 400;
  background: #0052d9;
  color: #ffffff;
  border-radius: 0;
  box-shadow: 0 12px 40px rgba(11, 83, 255, .24);
  transition: opacity .3s ease;
}
.hero-btn:hover { opacity: .8; }
.hero-deco { flex: 1; max-width: 520px; display: flex; justify-content: flex-end; }
.hero-deco img { max-width: 100%; max-height: 340px; border-radius: var(--radius-lg); box-shadow: 0 24px 60px rgba(0, 110, 255, .18); animation: pd-float 7s ease-in-out infinite; }

/* 轮播指示器：横线样式（对标参考站），激活横线蓝色从左到右填充进度 */
.hero-dots { position: absolute; left: 50%; bottom: 28px; transform: translateX(-50%); display: flex; gap: 8px; z-index: 3; }
.hero-dot {
  position: relative;
  width: 40px;
  height: 4px;
  padding: 0;
  overflow: hidden;
  border-radius: 0;
  background: rgba(38, 38, 38, .28);
}
.hero-dot.active::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: #007aff;
  animation: hero-fill var(--hero-dur, 5s) linear forwards;
}
.hero:hover .hero-dot.active::before { animation-play-state: paused; }

/* 轮播文字滑入动画（对标参考站 left-right） */
.hero-slide.active .hero-tag { animation: hero-left .5s cubic-bezier(.49, 0, .01, 1) both; }
.hero-slide.active .hero-title { animation: hero-left .8s cubic-bezier(.49, 0, .01, 1) both; }
.hero-slide.active .hero-subtitle { animation: hero-left 1.1s cubic-bezier(.49, 0, .01, 1) both; }
.hero-slide.active .hero-btn { animation: hero-left 1.4s cubic-bezier(.49, 0, .01, 1) both; }
@keyframes hero-fill { from { left: -100%; } to { left: 0; } }
@keyframes hero-left { from { opacity: 0; transform: translateX(-46px); } to { opacity: 1; transform: none; } }

/* ---------------- 首页信息卡（Banner 下方 6 卡片） ---------------- */
.home-cards { padding: 0 0 10px; margin-top: -34px; position: relative; z-index: 5; }
.home-cards-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
.home-card {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 18px 16px;
  box-shadow: var(--shadow-sm);
  transition: all .22s;
}
.home-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-hover); border-color: rgba(0, 110, 255, .3); }
.home-card-icon { flex: none; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; font-size: 24px; background: var(--primary-soft); border-radius: 10px; }
.home-card-icon img { width: 34px; height: 34px; }
.home-card-body { display: flex; flex-direction: column; min-width: 0; }
.home-card-title { font-size: 15px; font-weight: 700; color: var(--ink-strong); }
.home-card:hover .home-card-title { color: var(--primary); }
.home-card-desc {
  font-size: 12px;
  color: var(--ink-3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ---------------- 右侧悬浮工具栏 ---------------- */
.float-bar { position: fixed; right: 18px; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; gap: 12px; z-index: 99; }
.float-btn {
  position: relative;
  width: 46px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 50%;
  box-shadow: 0 4px 16px rgba(43, 36, 22, .12);
  font-size: 20px;
  transition: all .22s;
}
.float-btn:hover { background: var(--primary); border-color: var(--primary); transform: translateY(-3px); box-shadow: 0 10px 26px rgba(0, 110, 255, .4); }
.float-btn:hover .float-icon { filter: brightness(0) invert(1); }
.float-tip {
  position: absolute;
  right: 58px;
  top: 50%;
  transform: translateY(-50%) translateX(6px);
  padding: 5px 14px;
  font-size: 12px;
  color: #fff;
  background: var(--dark);
  border-radius: 6px;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transition: all .2s;
  pointer-events: none;
}
.float-btn:hover .float-tip { opacity: 1; visibility: visible; transform: translateY(-50%) translateX(0); }

/* 响应式：导航与首页新模块 */
@media (max-width: 1024px) {
  .home-cards-grid { grid-template-columns: repeat(3, 1fr); }
  .header-right .header-link { display: none; }
}

@media (max-width: 768px) {
  .header-inner { height: 58px; gap: 12px; }
  .main-nav {
    position: fixed;
    top: 58px;
    left: 0;
    right: 0;
    background: #fff;
    flex-direction: column;
    align-items: stretch;
    height: auto;
    padding: 10px 20px 24px;
    box-shadow: 0 16px 32px rgba(43, 36, 22, .12);
    transform: translateY(-16px);
    opacity: 0;
    visibility: hidden;
    transition: all .3s;
    overflow-y: auto;
    max-height: calc(100vh - 58px);
  }
  body.nav-open .main-nav { transform: none; opacity: 1; visibility: visible; }
  .nav-item { height: auto; display: block; }
  .nav-link { padding: 13px 6px; border-bottom: 1px solid var(--line); border-radius: 0; }
  .nav-dropdown { position: static; transform: none; opacity: 1; visibility: visible; box-shadow: none; border: 0; padding: 0 0 4px 18px; display: none; }
  .nav-item.has-dropdown:hover .nav-dropdown { display: block; }
  /* 富下拉在手机上退回「缩进列表」形态（左栏隐藏，卡片拍平） */
  .nav-sheet { position: static; width: auto; height: auto; opacity: 1; visibility: visible; box-shadow: none; display: none; }
  .nav-item.has-dropdown:hover .nav-sheet { display: block; }
  .nav-sheet-inner { display: block; }
  .nav-sheet-left { display: none; }
  .nav-sheet-right { width: auto; height: auto; padding: 0 0 4px 18px; background: transparent; overflow: visible; }
  .nav-sheet-right ul { display: block; }
  .nav-sheet-right li { border: 0; border-radius: 0; background: none; box-shadow: none; }
  .nav-sheet-right li a { flex-direction: row; align-items: baseline; gap: 10px; padding: 9px 0; }
  .nav-sheet-right li a span { min-height: 0; font-size: 14px; color: var(--ink-2); }
  .nav-sheet-right li a p { white-space: normal; font-size: 12px; line-height: 1.5; }
  .header-reg-btn { padding: 7px 18px; font-size: 13px; }
  .region-select { display: none; }
  .nav-toggle { display: flex; margin-left: auto; }
  .hero-grid { flex-direction: column; padding: 86px 0 100px; gap: 26px; }
  .hero-title { font-size: 30px; }
  .hero-deco { max-width: 100%; justify-content: center; }
  .hero-deco img { max-height: 220px; }
  .home-cards { margin-top: -26px; }
  .home-cards-grid { grid-template-columns: repeat(2, 1fr); }
  .float-bar { right: 10px; }
  .float-btn { width: 40px; height: 40px; font-size: 17px; }
}
/* ---------------- 通用区块 ---------------- */
.section { padding: 84px 0; }
.section-alt { background: #f8fbff; }

.section-head { text-align: center; max-width: 680px; margin: 0 auto 56px; }
.section-title { font-size: 33px; font-weight: 800; color: var(--ink-strong); letter-spacing: 1px; }
.section-title::after {
  content: "";
  display: block;
  width: 52px;
  height: 4px;
  border-radius: 2px;
  background: linear-gradient(90deg, #006eff, #13adff 55%, #13adff);
  margin: 18px auto 0;
}
.section-sub { margin-top: 16px; font-size: 15px; color: var(--ink-3); }

.section-more { text-align: center; margin-top: 44px; }

/* ---------------- 产品卡片 ---------------- */
.product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.product-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: all .28s;
  display: flex;
  flex-direction: column;
}
.product-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-hover); border-color: rgba(0, 110, 255, .35); }
.product-thumb {
  display: block;
  aspect-ratio: 8 / 5;
  background: linear-gradient(134deg, var(--primary-soft), var(--primary-soft-2));
  overflow: hidden;
  position: relative;
}
.product-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s; }
.product-card:hover .product-thumb img { transform: scale(1.06); }
.product-body { padding: 24px; display: flex; flex-direction: column; flex: 1; }
.product-name { font-size: 19px; font-weight: 700; color: var(--ink-strong); }
.product-name a:hover { color: var(--primary); }
.product-subtitle {
  margin-top: 10px;
  font-size: 13px;
  color: var(--ink-3);
  line-height: 1.8;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 46px;
}
.product-actions { margin-top: 20px; display: flex; gap: 12px; }
.product-actions .btn { flex: 1; }

/* ---------------- 为什么选择我们 ---------------- */
.feature-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.feature-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 40px 26px;
  text-align: center;
  transition: all .28s;
}
.feature-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-hover); border-color: rgba(0, 110, 255, .3); }
.feature-icon {
  width: 74px;
  height: 74px;
  margin: 0 auto 24px;
  border-radius: 22px;
  background: linear-gradient(134deg, var(--primary-soft), var(--primary-soft-2));
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .28s;
}
.feature-card:hover .feature-icon { background: linear-gradient(134deg, #13adff, #006eff); box-shadow: 0 8px 22px rgba(0, 110, 255, .35); }
.feature-icon svg { width: 34px; height: 34px; stroke: var(--primary); transition: stroke .28s; }
.feature-card:hover .feature-icon svg { stroke: #fff; }
.feature-card h3 { font-size: 18px; font-weight: 700; color: var(--ink-strong); }
.feature-card p { margin-top: 12px; font-size: 13px; color: var(--ink-2); line-height: 1.9; }

/* ---------------- 数据统计 ---------------- */
.stats {
  background:
    radial-gradient(640px 320px at 15% 0%, rgba(19, 173, 255, .16), transparent 60%),
    radial-gradient(640px 320px at 85% 100%, rgba(254, 222, 40, .14), transparent 60%),
    linear-gradient(135deg, #0b1d30 0%, #16305e 42%, #0a3d94 100%);
  padding: 68px 0;
}
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; text-align: center; }
.stat-num {
  font-size: 45px;
  font-weight: 800;
  background: linear-gradient(134deg, #006eff, #13adff 55%, #13adff);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  text-shadow: 0 0 40px rgba(19, 173, 255, .25);
}
.stat-label { margin-top: 10px; font-size: 14px; color: rgba(255, 255, 255, .7); letter-spacing: 1px; }

/* ---------------- 新闻资讯 ---------------- */
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.news-card {
  display: flex;
  flex-direction: column;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: all .28s;
}
.news-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-hover); border-color: rgba(0, 110, 255, .35); }
.news-thumb { aspect-ratio: 16 / 9; overflow: hidden; background: var(--primary-soft); }
.news-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s; }
.news-card:hover .news-thumb img { transform: scale(1.06); }
.news-body { padding: 22px 24px; display: flex; flex-direction: column; flex: 1; }
.news-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink-strong);
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-card:hover .news-title { color: var(--primary); }
.news-summary {
  margin-top: 10px;
  font-size: 13px;
  color: var(--ink-3);
  line-height: 1.8;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-date { margin-top: auto; padding-top: 14px; font-size: 12px; color: #aab3c5; display: flex; align-items: center; gap: 8px; }
.news-date::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--primary); }

/* ---------------- 关于我们横幅 ---------------- */
.about-strip {
  background:
    radial-gradient(520px 320px at 90% 15%, rgba(19, 173, 255, .16), transparent 60%),
    linear-gradient(134deg, var(--primary-soft) 0%, #e3f1ff 100%);
  padding: 92px 0;
  position: relative;
  overflow: hidden;
}
.about-strip::before {
  content: "";
  position: absolute;
  right: -130px;
  top: -130px;
  width: 430px;
  height: 430px;
  border-radius: 50%;
  border: 2px dashed rgba(0, 110, 255, .18);
  animation: pd-float 10s ease-in-out infinite;
}
.about-strip-inner { position: relative; max-width: 720px; }
.about-strip h2 { font-size: 31px; font-weight: 800; color: var(--ink-strong); letter-spacing: 1px; }
.about-strip h2::after {
  content: "";
  display: block;
  width: 52px;
  height: 4px;
  border-radius: 2px;
  background: linear-gradient(90deg, #006eff, #13adff 55%, #13adff);
  margin: 18px 0 0;
}
.about-strip p { margin: 22px 0 36px; font-size: 15px; color: #4a5f80; line-height: 2; }

/* ---------------- 页脚 ---------------- */
.site-footer { background: #0a1828; color: rgba(255, 255, 255, .75); }
.site-footer .container { max-width: 1500px; }
.footer-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 72px;
  padding: 68px 30px 50px;
}
.footer-about { max-width: 320px; }
.footer-logo { display: flex; align-items: center; gap: 10px; margin-bottom: 22px; }
.footer-logo .logo-text { color: #fff; }
.footer-about p { font-size: 13px; line-height: 2; color: rgba(255, 255, 255, .5); }
.footer-col h4 {
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 24px;
  padding-left: 13px;
  position: relative;
}
.footer-col h4::before {
  content: "";
  position: absolute;
  left: 0;
  top: 5px;
  bottom: 5px;
  width: 3px;
  border-radius: 2px;
  background: linear-gradient(180deg, #006eff, #13adff 55%, #13adff);
}
.footer-col .footer-links { display: grid; grid-template-columns: 1fr 1fr; gap: 13px 8px; }
.footer-links a, .footer-contact p { font-size: 13px; color: rgba(255, 255, 255, .55); transition: color .2s; }
.footer-links a:hover { color: #006eff; }
.footer-contact p { line-height: 2.1; }
.footer-contact b { color: rgba(255, 255, 255, .8); font-weight: 500; margin-right: 6px; }
/* 关注我们：三个二维码 */
.footer-qrs { display: flex; gap: 16px; }
.footer-qrs figure { margin: 0; text-align: center; }
.footer-qrs img {
  width: 92px;
  height: 92px;
  object-fit: contain;
  padding: 5px;
  border-radius: 10px;
  background: #fff;
  display: block;
}
.footer-qrs figcaption { margin-top: 8px; font-size: 12px; color: rgba(255, 255, 255, .55); }
.footer-bottom { border-top: 1px solid rgba(255, 255, 255, .08); }
.footer-bottom .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  padding: 22px 20px;
  font-size: 12px;
  color: rgba(255, 255, 255, .4);
}

/* ---------------- 内页顶部 ---------------- */
.page-hero {
  background:
    radial-gradient(720px 320px at 85% 8%, rgba(255, 255, 255, .35), transparent 60%),
    radial-gradient(rgba(255, 255, 255, .04) 1.3px, transparent 1.8px),
    linear-gradient(134deg, #006eff 0%, #13adff 50%, #006eff 100%);
  background-size: auto, 24px 24px, auto;
  padding: 68px 0;
  text-align: center;
}
.page-hero h1 { font-size: 34px; font-weight: 800; color: #fff; letter-spacing: 2.5px; }
.breadcrumb { margin-top: 16px; font-size: 13px; color: rgba(255, 255, 255, .55); }
.breadcrumb a { color: rgba(255, 255, 255, .55); }
.breadcrumb a:hover { color: #7cc4ff; }
.breadcrumb span { margin: 0 8px; color: rgba(255, 255, 255, .3); }

/* ---------------- 分类标签 ---------------- */
.category-tabs { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 38px; }
.cat-tab {
  padding: 9px 26px;
  border-radius: 999px;
  background: var(--card);
  border: 1px solid #e3e6ec;
  font-size: 14px;
  color: var(--ink-2);
  transition: all .22s;
}
.cat-tab:hover { border-color: var(--primary); color: var(--primary); box-shadow: 0 4px 14px rgba(0, 110, 255, .12); }
.cat-tab.active {
  background: linear-gradient(134deg, #13adff, #006eff);
  color: #ffffff;
  border-color: transparent;
  font-weight: 600;
  box-shadow: 0 6px 18px rgba(0, 110, 255, .3);
}

/* ---------------- 文章列表 ---------------- */
.article-list { display: flex; flex-direction: column; gap: 20px; }
.article-item {
  display: flex;
  gap: 26px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 22px;
  transition: all .25s;
}
.article-item:hover { transform: translateY(-4px); box-shadow: var(--shadow-hover); border-color: rgba(0, 110, 255, .3); }
.article-item-thumb { flex: none; width: 240px; aspect-ratio: 16 / 10; border-radius: var(--radius); overflow: hidden; background: var(--primary-soft); }
.article-item-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.article-item:hover .article-item-thumb img { transform: scale(1.05); }
.article-item-body { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.article-item-body h3 { font-size: 18px; font-weight: 700; color: var(--ink-strong); line-height: 1.6; }
.article-item-body h3 a:hover { color: var(--primary); }
.article-item-summary {
  margin-top: 10px;
  font-size: 13px;
  color: var(--ink-3);
  line-height: 1.9;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.article-item-meta { margin-top: auto; padding-top: 14px; display: flex; align-items: center; gap: 18px; font-size: 12px; color: #aab3c5; }
.article-item-meta .tag { padding: 2px 12px; border-radius: 999px; background: var(--primary-soft); color: var(--primary); font-size: 12px; }

/* ---------------- 详情页 ---------------- */
.detail-wrap { display: grid; grid-template-columns: 1fr 320px; gap: 30px; align-items: start; }
.detail-main {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 44px 48px;
  box-shadow: var(--shadow-sm);
}
.detail-head h2 { font-size: 26px; font-weight: 800; color: var(--ink-strong); line-height: 1.5; }
.detail-subtitle { margin-top: 12px; font-size: 15px; color: var(--ink-2); }
.detail-meta { margin-top: 18px; padding-bottom: 20px; border-bottom: 1px dashed #dbe4f0; display: flex; gap: 24px; font-size: 13px; color: var(--ink-3); flex-wrap: wrap; }
.detail-image { margin: 26px 0; border-radius: var(--radius); overflow: hidden; }
.detail-image img { width: 100%; }

.rich-text { font-size: 15px; color: #56667b; line-height: 2; }
.rich-text p { margin: 14px 0; }
.rich-text h3 {
  font-size: 19px;
  font-weight: 700;
  color: var(--ink-strong);
  margin: 30px 0 14px;
  padding-left: 14px;
  border-left: 4px solid var(--primary);
  border-radius: 2px;
}
.rich-text ul { margin: 12px 0; padding-left: 6px; }
.rich-text ul li { position: relative; padding-left: 24px; margin: 8px 0; }
.rich-text ul li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 13px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: linear-gradient(134deg, #13adff, #006eff);
}
.rich-text img { border-radius: var(--radius); margin: 16px auto; }
.rich-text a { color: var(--primary); border-bottom: 1px dashed var(--primary); }
.rich-text blockquote {
  margin: 16px 0;
  padding: 14px 20px;
  background: var(--primary-soft);
  border-left: 4px solid var(--primary);
  border-radius: 0 8px 8px 0;
  color: #4a5f80;
}

/* 上一篇 / 下一篇 */
.detail-nav { margin-top: 30px; border-top: 1px solid var(--line); padding-top: 20px; display: flex; justify-content: space-between; gap: 16px; font-size: 14px; }
.detail-nav a { color: var(--ink-2); max-width: 46%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.detail-nav a:hover { color: var(--primary); }
.detail-nav .disabled { color: #c3cad6; cursor: default; }

/* 侧边栏 */
.side-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 26px; margin-bottom: 24px; box-shadow: var(--shadow-sm); }
.side-card h3 { font-size: 17px; font-weight: 700; color: var(--ink-strong); padding-bottom: 14px; border-bottom: 1px solid var(--line); margin-bottom: 16px; position: relative; }
.side-card h3::after { content: ""; position: absolute; left: 0; bottom: -1px; width: 40px; height: 2px; background: linear-gradient(90deg, #006eff, #13adff 55%, #13adff); }
.side-product { display: flex; gap: 14px; align-items: center; padding: 10px 0; border-bottom: 1px dashed var(--line); }
.side-product:last-child { border-bottom: 0; }
.side-product img { width: 84px; height: 56px; border-radius: 8px; object-fit: cover; flex: none; background: var(--primary-soft); }
.side-product-name { font-size: 14px; font-weight: 600; color: var(--ink); line-height: 1.5; }
.side-product:hover .side-product-name { color: var(--primary); }
.side-product-sub { font-size: 12px; color: var(--ink-3); display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.side-contact p { font-size: 13px; color: var(--ink-2); line-height: 2; }
.side-contact .btn { margin-top: 14px; }

/* ---------------- 分页 ---------------- */
.pagination { display: flex; justify-content: center; align-items: center; gap: 8px; margin-top: 48px; flex-wrap: wrap; }
.page-btn {
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--card);
  border: 1px solid #e3e6ec;
  font-size: 14px;
  color: var(--ink-2);
  transition: all .2s;
}
.page-btn:hover { border-color: var(--primary); color: var(--primary); box-shadow: 0 4px 12px rgba(0, 110, 255, .1); }
.page-btn.active {
  background: linear-gradient(134deg, #13adff, #006eff);
  color: #ffffff;
  border-color: transparent;
  font-weight: 600;
  box-shadow: 0 6px 16px rgba(0, 110, 255, .3);
}
.page-ellipsis { color: var(--ink-3); padding: 0 4px; }

/* ---------------- 表单 ---------------- */
.form-input, .form-textarea {
  width: 100%;
  height: 47px;
  padding: 0 16px;
  border: 1px solid #e3e6ec;
  border-radius: 10px;
  background: #fff;
  color: var(--ink);
  transition: all .22s;
  outline: none;
}
.form-textarea { height: auto; min-height: 140px; padding: 14px 16px; resize: vertical; line-height: 1.8; }
.form-input:focus, .form-textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 4px rgba(0, 110, 255, .12); }
.form-input::placeholder, .form-textarea::placeholder { color: #b3bccd; }
.form-tip { margin-top: 10px; font-size: 13px; display: none; }
.form-tip.error { display: block; color: var(--red); }
.form-tip.success { display: block; color: var(--green); }
.hp-field { position: absolute; left: -9999px; opacity: 0; }

.message-form { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 38px; box-shadow: var(--shadow-sm); }
.message-form h3 { font-size: 20px; font-weight: 700; color: var(--ink-strong); margin-bottom: 6px; }
.message-form .form-sub { font-size: 13px; color: var(--ink-3); margin-bottom: 26px; }
.form-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 16px; }

/* 联系信息卡 */
.contact-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-bottom: 40px; }
.contact-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 28px 18px;
  text-align: center;
  transition: all .25s;
}
.contact-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-hover); border-color: rgba(0, 110, 255, .3); }
.contact-card .contact-icon { width: 54px; height: 54px; margin: 0 auto 14px; border-radius: 16px; background: linear-gradient(134deg, var(--primary-soft), var(--primary-soft-2)); display: flex; align-items: center; justify-content: center; transition: all .25s; }
.contact-card:hover .contact-icon { background: linear-gradient(134deg, #13adff, #006eff); }
.contact-card .contact-icon svg { width: 25px; height: 25px; stroke: var(--primary); transition: stroke .25s; }
.contact-card:hover .contact-icon svg { stroke: #fff; }
.contact-card h4 { font-size: 14px; font-weight: 600; color: var(--ink-strong); }
.contact-card p { margin-top: 8px; font-size: 13px; color: var(--ink-2); word-break: break-all; }

.empty-tip { text-align: center; padding: 84px 0; color: var(--ink-3); font-size: 15px; }

/* ---------------- 产品详情页顶部（蓝色流体渐变） ---------------- */
.pd-hero {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(1000px 560px at 88% 15%, rgba(19, 173, 255, .4), transparent 62%),
    radial-gradient(760px 460px at 5% 95%, rgba(0, 110, 255, .5), transparent 65%),
    radial-gradient(560px 360px at 45% 0%, rgba(255, 255, 255, .12), transparent 60%),
    linear-gradient(134deg, #005ad6 0%, #006eff 45%, #13adff 100%);
  padding: 34px 0 64px;
}
.pd-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, .16) 1.5px, transparent 2px);
  background-size: 26px 26px;
  pointer-events: none;
}
.pd-deco { position: absolute; pointer-events: none; }
.pd-heart-1 { top: 12%; left: 6%; font-size: 26px; opacity: .35; animation: pd-float 6s ease-in-out infinite; }
.pd-heart-2 { top: 64%; left: 3%; font-size: 18px; opacity: .25; animation: pd-float 7s ease-in-out infinite 1.2s; }
.pd-heart-3 { bottom: 10%; left: 42%; font-size: 22px; opacity: .22; animation: pd-float 8s ease-in-out infinite .6s; }
.pd-dot-1 { top: 18%; right: 8%; width: 14px; height: 14px; border-radius: 50%; background: rgba(255, 255, 255, .25); }
.pd-dot-2 { top: 55%; right: 3%; width: 8px; height: 8px; border-radius: 50%; background: rgba(255, 255, 255, .3); }
.pd-dot-3 { bottom: 14%; right: 14%; width: 18px; height: 18px; border-radius: 50%; background: rgba(255, 255, 255, .18); }
.pd-dot-4 { top: 8%; left: 38%; width: 6px; height: 6px; border-radius: 50%; background: rgba(255, 255, 255, .35); }
@keyframes pd-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-14px); }
}

.pd-breadcrumb { color: rgba(255, 255, 255, .6); margin-bottom: 30px; }
.pd-breadcrumb a { color: rgba(255, 255, 255, .6); }
.pd-breadcrumb a:hover { color: #fff; }
.pd-breadcrumb span { color: rgba(255, 255, 255, .35); }

.pd-hero-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 56px;
  align-items: center;
}

/* 左侧信息区 */
.pd-name { font-size: 38px; font-weight: 800; color: #fff; line-height: 1.35; letter-spacing: 1px; text-shadow: 0 4px 20px rgba(0, 0, 0, .2); }
.pd-subtitle { margin-top: 14px; font-size: 14px; color: rgba(255, 255, 255, .75); line-height: 1.9; }
.pd-discount-tag {
  display: inline-block;
  margin-top: 18px;
  background: linear-gradient(134deg, #ff7a3d, #fd420a);
  color: #fff;
  font-size: 12px;
  padding: 3px 14px;
  border-radius: 4px;
  letter-spacing: 1px;
  box-shadow: 0 4px 12px rgba(253, 66, 10, .4);
}
.pd-price { display: flex; align-items: baseline; gap: 16px; margin-top: 16px; }
.pd-price-now { font-size: 36px; font-weight: 800; color: var(--gold); text-shadow: 0 2px 12px rgba(19, 173, 255, .4); }
.pd-price-old { font-size: 17px; color: rgba(255, 255, 255, .5); text-decoration: line-through; }
.pd-actions { display: flex; gap: 14px; margin-top: 24px; flex-wrap: wrap; }
.pd-actions .btn { border-radius: 8px; padding: 14px 44px; font-size: 16px; }
.pd-btn-buy { background: linear-gradient(134deg, #ff8a4d, var(--orange)); color: #fff; box-shadow: 0 8px 22px rgba(255, 105, 34, .4); }
.pd-btn-buy:hover { background: linear-gradient(134deg, var(--orange), #f0550e); transform: translateY(-2px); box-shadow: 0 12px 28px rgba(255, 105, 34, .5); }
.pd-btn-demo { background: linear-gradient(134deg, #13adff, #006eff);
  color: #ffffff; box-shadow: 0 8px 22px rgba(0, 110, 255, .35); }
.pd-btn-demo:hover { background: linear-gradient(134deg, #006eff, #005ad6); transform: translateY(-2px); }
.pd-mini-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.pd-mini-btn {
  padding: 8px 22px;
  font-size: 13px;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .65);
  background: rgba(0, 110, 255, .35);
  border-radius: 12px;
  transition: all .25s;
  backdrop-filter: blur(4px);
}
.pd-mini-btn:hover { background: rgba(255, 255, 255, .22); transform: translateY(-2px); }
.pd-member-card {
  margin-top: 22px;
  background: rgba(0, 110, 255, .35);
  border: 1px solid rgba(255, 255, 255, .28);
  backdrop-filter: blur(6px);
  border-radius: 10px;
  padding: 16px 22px;
}
.pd-member-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 8px 0;
  border-bottom: 1px dashed rgba(255, 255, 255, .18);
  font-size: 13px;
}
.pd-member-row:last-child { border-bottom: 0; }
.pd-member-row span { color: rgba(255, 255, 255, .62); flex: none; }
.pd-member-row b { color: #fff; font-weight: 600; text-align: right; }
.pd-member-row b.highlight { color: var(--gold); }
.pd-update-link { color: var(--gold); text-decoration: underline; }

/* 右侧浏览器预览 */
.pd-preview { position: relative; }
.pd-browser {
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(0, 110, 255, .45);
}
.pd-browser-bar { display: flex; align-items: center; gap: 7px; padding: 11px 14px; background: #eef2f7; }
.b-dot { width: 11px; height: 11px; border-radius: 50%; flex: none; }
.b-red { background: #fc615d; }
.b-yellow { background: #fdbc40; }
.b-green { background: #34c84a; }
.pd-browser-addr {
  flex: 1;
  margin-left: 10px;
  background: #fff;
  border: 1px solid #e3e8ef;
  border-radius: 999px;
  font-size: 11px;
  color: #8a93a8;
  padding: 4px 14px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pd-browser-body { aspect-ratio: 16 / 10; background: #f4faff; }
.pd-browser-body img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-thumbs { display: flex; gap: 12px; margin-top: 14px; }
.pd-thumb {
  flex: 1;
  border-radius: 7px;
  overflow: hidden;
  border: 2px solid rgba(255, 255, 255, .35);
  cursor: pointer;
  opacity: .78;
  transition: all .25s;
  background: rgba(255, 255, 255, .15);
}
.pd-thumb:hover { opacity: 1; }
.pd-thumb.active { border-color: var(--gold); opacity: 1; box-shadow: 0 6px 18px rgba(0, 0, 0, .3); }
.pd-thumb img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; }

/* ---------------- 产品详情页中部 ---------------- */
.pd-section { scroll-margin-top: 100px; padding: 64px 0; }
.pd-section-soft { background: linear-gradient(180deg, var(--primary-soft) 0%, #fff 70%); }
.pd-section-related { background: linear-gradient(180deg, #fff 0%, var(--primary-soft) 100%); }

.pd-sec-head { margin-bottom: 36px; }
.pd-sec-title {
  display: flex;
  align-items: center;
  gap: 13px;
  font-size: 26px;
  font-weight: 800;
  color: var(--ink-strong);
  letter-spacing: 1px;
}
.pd-sec-title::before {
  content: "";
  width: 6px;
  height: 26px;
  border-radius: 3px;
  background: linear-gradient(180deg, #006eff, #13adff 55%, #13adff);
  box-shadow: 0 4px 12px rgba(0, 110, 255, .3);
}
.pd-sec-sub { margin: 10px 0 0 19px; font-size: 14px; color: var(--ink-3); }

.pd-section-intro { padding-top: 56px; }
.pd-intro-card {
  background: #fff;
  border: 1px solid #d6e4fb;
  border-radius: 12px;
  padding: 34px 40px;
  box-shadow: 0 8px 28px rgba(0, 110, 255, .08);
}
.pd-intro-card .rich-text p:first-child { margin-top: 0; }

.pd-feature-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.pd-feature {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: #fff;
  border: 1px solid #dfe9fb;
  border-radius: 12px;
  padding: 18px 20px;
  transition: all .25s;
}
.pd-feature:hover { transform: translateY(-3px); box-shadow: 0 10px 26px rgba(0, 110, 255, .14); border-color: var(--primary); }
.pd-feature-check {
  flex: none;
  width: 26px;
  height: 26px;
  border-radius: 10px;
  background: linear-gradient(134deg, #13adff, #006eff);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 2px;
}
.pd-feature-text { font-size: 14px; color: var(--ink); line-height: 1.9; }
.pd-group-extra { margin-top: 24px; }

/* 底部咨询（与顶部同款蓝色渐变） */
.pd-cta {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(900px 420px at 85% 15%, rgba(19, 173, 255, .4), transparent 60%),
    radial-gradient(700px 380px at 10% 90%, rgba(0, 110, 255, .5), transparent 65%),
    linear-gradient(134deg, #005ad6 0%, #006eff 45%, #13adff 100%);
  padding: 84px 0;
  text-align: center;
}
.pd-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, .16) 1.5px, transparent 2px);
  background-size: 26px 26px;
  pointer-events: none;
}
.pd-cta .container { position: relative; z-index: 2; }
.pd-cta h2 { font-size: 34px; font-weight: 800; color: #fff; letter-spacing: 2px; text-shadow: 0 4px 20px rgba(0, 0, 0, .2); }
.pd-cta p { margin: 14px 0 34px; font-size: 15px; color: rgba(255, 255, 255, .75); }
.pd-cta-actions { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }
.pd-cta .btn { border-radius: 8px; }
.pd-btn-ghost {
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .7);
  color: #fff;
  box-shadow: none;
  backdrop-filter: blur(4px);
}
.pd-btn-ghost:hover { background: #fff; color: var(--primary-dark); border-color: #fff; transform: translateY(-2px); }

/* ---------------- 锚点导航 ---------------- */
.pd-tabs {
  position: sticky;
  top: 60px;
  z-index: 90;
  background: rgba(255, 255, 255, .96);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 2px 10px rgba(0, 110, 255, .04);
}
.pd-tabs .container { display: flex; gap: 2px; overflow-x: auto; }
.pd-tabs a {
  position: relative;
  padding: 15px 20px;
  font-size: 15px;
  color: var(--ink-2);
  white-space: nowrap;
  transition: color .25s;
}
.pd-tabs a::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -1px;
  width: 0;
  height: 3px;
  border-radius: 2px 2px 0 0;
  background: linear-gradient(90deg, #006eff, #13adff 55%, #13adff);
  transform: translateX(-50%);
  transition: width .25s;
}
.pd-tabs a:hover { color: var(--primary); }
.pd-tabs a.active { color: var(--primary); font-weight: 600; }
.pd-tabs a.active::after { width: 70%; }

/* ---------------- 安装向导 ---------------- */
.install-page {
  min-height: 100vh;
  background:
    radial-gradient(700px 400px at 80% 10%, rgba(19, 173, 255, .24), transparent 60%),
    radial-gradient(rgba(255, 255, 255, .04) 1.3px, transparent 1.8px),
    linear-gradient(134deg, var(--dark) 0%, var(--dark-2) 60%, var(--dark-3) 100%);
  background-size: auto, 24px 24px, auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
}
.install-card {
  background: var(--card);
  border-radius: var(--radius-xl);
  max-width: 780px;
  width: 100%;
  padding: 44px 48px;
  box-shadow: 0 24px 64px rgba(0, 0, 0, .35);
}
.install-head { text-align: center; margin-bottom: 34px; }
.install-head .logo-mark { margin: 0 auto 16px; width: 56px; height: 56px; font-size: 30px; border-radius: 16px; }
.install-head h1 { font-size: 24px; font-weight: 800; color: var(--ink-strong); letter-spacing: 2px; }
.install-head p { margin-top: 8px; font-size: 13px; color: var(--ink-3); }
.install-steps { display: flex; justify-content: center; gap: 0; margin-bottom: 36px; }
.install-step { display: flex; align-items: center; gap: 10px; color: var(--ink-3); font-size: 14px; }
.install-step .step-num {
  width: 30px; height: 30px;
  border-radius: 50%;
  background: #eef1f7;
  color: var(--ink-3);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700;
  font-size: 14px;
  transition: all .3s;
}
.install-step.active { color: var(--ink-strong); font-weight: 600; }
.install-step.active .step-num { background: linear-gradient(134deg, #13adff, #006eff);
  color: #ffffff; box-shadow: 0 4px 14px rgba(0, 110, 255, .3); }
.install-step.done .step-num { background: var(--green); color: #fff; }
.install-step-line { width: 64px; height: 2px; background: #eef0f4; margin: 0 18px; }
.install-step-line.done { background: var(--green); }

.install-panel { display: none; }
.install-panel.show { display: block; }

.env-table { width: 100%; border-collapse: collapse; margin-bottom: 30px; }
.env-table td { padding: 13px 6px; border-bottom: 1px solid var(--line); font-size: 14px; }
.env-table td:first-child { color: var(--ink); }
.env-table td:last-child { text-align: right; color: var(--ink-3); }
.env-pass { color: var(--green); font-weight: 600; }
.env-fail { color: var(--red); font-weight: 600; }

.install-form .form-row { grid-template-columns: 1fr 1fr; }
.install-form .form-item { margin-bottom: 16px; }
.install-form label { display: block; font-size: 13px; color: var(--ink-2); margin-bottom: 7px; font-weight: 500; }
.install-section-title { font-size: 14px; font-weight: 700; color: var(--ink-1); padding: 18px 0 4px; margin-top: 6px; border-top: 1px dashed var(--line); }
.install-section-title:first-of-type { margin-top: 0; }
.install-hint { font-size: 12.5px; color: var(--ink-3, #8a919f); background: var(--bg-2, #f7f9fc); border: 1px dashed var(--line); border-radius: 8px; padding: 10px 14px; margin: 2px 0 16px; line-height: 1.7; }
.install-actions { margin-top: 26px; text-align: center; }
.install-actions .btn { min-width: 200px; }
.install-msg { margin-top: 14px; font-size: 13px; text-align: center; display: none; }
.install-msg.error { display: block; color: var(--red); }
.install-msg.success { display: block; color: var(--green); }

.install-done { text-align: center; padding: 30px 0 10px; }
.install-done .done-icon {
  width: 84px; height: 84px;
  margin: 0 auto 24px;
  border-radius: 50%;
  background: linear-gradient(134deg, #34c84a, var(--green));
  color: #fff;
  font-size: 44px;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 12px 32px rgba(13, 122, 43, .35);
}
.install-done h2 { font-size: 22px; font-weight: 800; color: var(--ink-strong); }
.install-done p { margin: 12px 0 30px; font-size: 14px; color: var(--ink-3); }
.install-done .install-actions { display: flex; justify-content: center; gap: 16px; }

/* ---------------- 响应式 ---------------- */
@media (max-width: 1024px) {
  .product-grid, .news-grid { grid-template-columns: repeat(2, 1fr); }
  .feature-grid { grid-template-columns: repeat(2, 1fr); }
  .detail-wrap { grid-template-columns: 1fr; }
  .contact-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .pd-hero-grid { grid-template-columns: 1fr; gap: 40px; }
}

@media (max-width: 768px) {
  .header-inner { height: 60px; gap: 16px; }
  .main-nav {
    position: fixed;
    top: 60px;
    left: 0;
    right: 0;
    background: #fff;
    flex-direction: column;
    align-items: stretch;
    padding: 10px 20px 24px;
    box-shadow: 0 16px 32px rgba(0, 110, 255, .12);
    transform: translateY(-16px);
    opacity: 0;
    visibility: hidden;
    transition: all .3s;
  }
  body.nav-open .main-nav { transform: none; opacity: 1; visibility: visible; }
  .main-nav a { padding: 14px 4px; border-bottom: 1px solid var(--line); text-align: center; border-radius: 0; }
  .main-nav a::after { display: none; }
  .header-cta { margin-left: auto; }
  .nav-toggle { display: flex; }
  .notice-bar { font-size: 12px; padding: 6px 10px; }

  .hero-slide { padding: 70px 0 96px; }
  .hero-title { font-size: 30px; }
  .hero-subtitle { font-size: 15px; margin-bottom: 26px; }
  .hero-arrow { display: none; }

  .section { padding: 56px 0; }
  .section-title { font-size: 26px; }
  .section-head { margin-bottom: 36px; }
  .product-grid, .news-grid, .feature-grid { grid-template-columns: 1fr; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 28px 12px; }
  .stat-num { font-size: 34px; }

  .footer-grid { grid-template-columns: 1fr; gap: 32px; padding: 44px 20px 32px; }
  .footer-bottom .container { justify-content: center; text-align: center; }

  .page-hero { padding: 44px 0; }
  .page-hero h1 { font-size: 26px; }

  .article-item { flex-direction: column; }
  .article-item-thumb { width: 100%; }

  .detail-main { padding: 26px 20px; }
  .detail-nav { flex-direction: column; }
  .detail-nav a { max-width: 100%; }

  .form-row { grid-template-columns: 1fr; }
  .contact-grid { grid-template-columns: 1fr 1fr; gap: 12px; }

  .pd-hero { padding: 26px 0 46px; }
  .pd-name { font-size: 26px; }
  .pd-price-now { font-size: 28px; }
  .pd-actions .btn { padding: 12px 30px; }
  .pd-tabs { top: 0; }
  .pd-tabs a { padding: 13px 16px; font-size: 14px; }
  .pd-feature-grid { grid-template-columns: 1fr; }
  .pd-intro-card { padding: 24px 18px; }
  .pd-sec-title { font-size: 22px; }
  .pd-cta h2 { font-size: 26px; }

  .install-card { padding: 30px 20px; }
  .install-step-line { width: 28px; margin: 0 10px; }
  .install-form .form-row { grid-template-columns: 1fr; }
}

/* ---------------- 原站对齐：视频/图片 Banner + 双色标签 + 大图卡片 ---------------- */
.hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}
.hero-slide.has-media::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, rgba(12, 9, 4, .72) 20%, rgba(12, 9, 4, .35) 70%);
  z-index: 2;
}
.hero-slide.has-media .hero-grid { z-index: 3; }
.hero-slide.has-media .hero-title { color: #fff; text-shadow: 0 4px 24px rgba(0, 0, 0, .3); }
.hero-slide.has-media .hero-subtitle { color: rgba(255, 255, 255, .85); }
.hero-slide.has-media .hero-tag { background: rgba(255, 255, 255, .16); border-color: rgba(255, 255, 255, .35); backdrop-filter: blur(6px); }

/* 双色标签条：蓝渐变 + 橙 */
.hero-tag { display: inline-flex; align-items: center; gap: 2px; }
.hero-tag b { font-weight: 700; }
.hero-tag-blue {
  background: linear-gradient(120deg, #13adff, #006eff);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.hero-tag-orange { color: #ff6000; }

/* 6 卡片：大图竖排卡 */
.home-card { flex-direction: column; align-items: stretch; gap: 12px; padding: 12px; }
.home-card-img {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 16 / 9;
  border-radius: 8px;
  overflow: hidden;
  background: linear-gradient(134deg, var(--primary-soft), var(--primary-soft-2));
  font-size: 34px;
}
.home-card-img img { width: 100%; height: 100%; object-fit: cover; }
.home-card-body { align-items: flex-start; padding: 2px 6px 6px; }
.home-card-desc { white-space: normal; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; }

/* ---------------- 轮播文字入场动画（jingfaka 模式：切换时文字自下而上错峰滑入） ---------------- */
.hero-slide .hero-tag,
.hero-slide .hero-title,
.hero-slide .hero-subtitle,
.hero-slide .hero-btn {
  opacity: 0;
  transform: translateY(32px);
}
.hero-slide.active .hero-tag { animation: hero-in .6s ease .15s forwards; }
.hero-slide.active .hero-title { animation: hero-in .7s ease .3s forwards; }
.hero-slide.active .hero-subtitle { animation: hero-in .7s ease .45s forwards; }
.hero-slide.active .hero-btn { animation: hero-in .6s ease .6s forwards; }
@keyframes hero-in {
  to { opacity: 1; transform: translateY(0); }
}
/* 首次加载不重复执行动画的旧元素兼容：无动画时保持可见 */

/* ---------------- CeoTheme 导航模式：透明悬浮于轮播图上 + 白色字体 ---------------- */
.site-header { position: absolute; top: 0; left: 0; right: 0; background: transparent; border-bottom: 0; z-index: 100; }
.site-header.scrolled { background: rgba(11, 29, 48, .85); backdrop-filter: blur(14px); box-shadow: 0 6px 24px rgba(0, 0, 0, .25); }
.logo-text { color: #fff; }
.logo-domain { color: rgba(255, 255, 255, .6); }
.nav-link { color: rgba(255, 255, 255, .85); }
.nav-link:hover { color: #fff; background: rgba(255, 255, 255, .12); }
.nav-link.active { color: #fff; }
.nav-caret { color: rgba(255, 255, 255, .6); }
.nav-dropdown, .region-dropdown { background: #fff; }
.nav-drop-item { color: var(--ink-2); }
.nav-drop-item:hover { color: var(--primary); background: var(--primary-soft); }
.region-select { color: rgba(255, 255, 255, .85); }
.region-select:hover { color: #fff; background: rgba(255, 255, 255, .12); }
.region-caret { color: rgba(255, 255, 255, .6); }
.region-dropdown a { color: var(--ink-2); }
.header-link { color: rgba(255, 255, 255, .85); }
.header-link:hover { color: #fff; }
.nav-toggle span { background: #fff; }
.nav-toggle:hover { background: rgba(255, 255, 255, .12); }

/* 内页顶部留出悬浮导航高度 */
.page-hero { padding-top: 110px; }
.pd-hero { padding-top: 96px; }

/* 移动端：菜单展开为白色面板，文字恢复深色 */
@media (max-width: 768px) {
  .site-header { position: fixed; background: rgba(11, 29, 48, .92); }
  .main-nav { background: #fff; }
  .nav-link { color: var(--ink-2) !important; }
  .nav-link:hover { color: var(--primary) !important; background: var(--primary-soft) !important; }
  .nav-caret { color: var(--ink-3) !important; }
  .nav-toggle span { background: #fff; }
  .header-link, .region-select { display: none; }
  .header-reg-btn { margin-left: auto; }
  .nav-toggle { margin-left: 0; }
}

/* 轮播高度按图片原始比例自适应（1920×630），覆盖此前固定 padding */
.hero-slide.active { aspect-ratio: 1920 / 630; min-height: 440px; }
.hero-slide.active .hero-grid { padding: 70px 0 110px; }
@media (max-width: 768px) {
  .hero-slide.active { aspect-ratio: auto; min-height: 0; }
  .hero-slide.active .hero-grid { padding: 86px 0 100px; }
}

/* ---------------- 产品中心：解决方案切换模块 ---------------- */
.sol-module {
  background:
    radial-gradient(800px 400px at 80% 0%, rgba(19, 173, 255, .12), transparent 60%),
    linear-gradient(180deg, #141c29 0%, #1a2333 100%);
  padding: 84px 0 96px;
}
/* 顶部标签切换栏 */
.sol-tabs { display: flex; gap: 14px; margin-bottom: 54px; flex-wrap: wrap; }
.sol-tab {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  flex: 1;
  padding: 16px 20px 14px;
  background: #fff;
  border-radius: 10px;
  text-align: center;
  transition: all .25s;
}
.sol-tab .sol-tab-num {
  font-size: 26px;
  font-weight: 800;
  line-height: 1;
  color: #006eff;
}
.sol-tab .sol-tab-text { font-size: 13px; color: #8a94a6; line-height: 1.5; }
.sol-tab:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(0, 110, 255, .18); }
.sol-tab.active {
  background: linear-gradient(134deg, #13adff, #006eff);
  box-shadow: 0 10px 26px rgba(0, 110, 255, .35);
}
.sol-tab.active .sol-tab-num, .sol-tab.active .sol-tab-text { color: #fff; }
/* 激活标签左下角小尖角三角 */
.sol-tab.active::after {
  content: "";
  position: absolute;
  left: 22px;
  bottom: -9px;
  width: 0;
  height: 0;
  border-left: 9px solid #006eff;
  border-bottom: 9px solid transparent;
}

/* 主体左右分栏 */
.sol-body {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 56px;
  align-items: center;
}

/* 左侧：笔记本样机 */
.sol-laptop { position: relative; }
.laptop-frame {
  background: #2c3a52;
  border: 1px solid #3d4d68;
  border-radius: 14px 14px 0 0;
  padding: 12px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, .45);
}
.laptop-screen {
  position: relative;
  aspect-ratio: 16 / 10;
  background: #0b1424;
  border-radius: 6px;
  overflow: hidden;
}
.sol-screen {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity .55s ease;
  transform: none;
}
.sol-screen.active { opacity: 1; transform: none; }
.laptop-base {
  height: 15px;
  background: linear-gradient(180deg, #4a5c7a, #2c3a52);
  border-radius: 0 0 18px 18px;
  margin: 0 -28px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .4);
}

/* 右侧：文字内容 */
.sol-panel { display: none; }
.sol-panel.active { display: block; animation: sol-fade .5s ease; }
@keyframes sol-fade {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}
.sol-name { font-size: 32px; font-weight: 800; color: #fff; line-height: 1.4; }
.sol-line {
  display: block;
  width: 44px;
  height: 3px;
  border-radius: 2px;
  background: linear-gradient(90deg, #13adff, #006eff);
  margin: 16px 0 18px;
}
.sol-desc { font-size: 14px; color: #9aa7bb; line-height: 2; }
.sol-advs { display: flex; gap: 34px; margin-top: 28px; }
.sol-adv { display: flex; flex-direction: column; gap: 4px; }
.sol-adv b { font-size: 24px; font-weight: 800; color: #fff; }
.sol-adv span { font-size: 12px; color: #8a94a6; }
.sol-adv .sol-price { color: #ffb84d; }
.sol-adv .sol-price b { font-size: 18px; color: #ffb84d; }
.sol-btn {
  margin-top: 30px;
  padding: 11px 38px;
  font-size: 15px;
  background: linear-gradient(134deg, #13adff, #006eff);
  color: #fff;
  border-radius: 10px;
  font-weight: 600;
  box-shadow: 0 8px 22px rgba(0, 110, 255, .4);
  transition: all .22s;
}
.sol-btn:hover { background: linear-gradient(134deg, #006eff, #005ad6); transform: translateY(-2px); }

@media (max-width: 1024px) {
  .sol-body { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 768px) {
  .sol-tab { min-width: 0; flex: 1 1 45%; }
  .sol-name { font-size: 24px; }
  .sol-advs { gap: 18px; flex-wrap: wrap; }
  .sol-adv b { font-size: 20px; }
}

/* 产品中心模块大标题 */
.sol-head { text-align: center; margin-bottom: 46px; }
.sol-module-title { font-size: 36px; font-weight: 800; color: #fff; letter-spacing: 2px; }
.sol-head-line {
  display: block;
  width: 52px;
  height: 4px;
  border-radius: 2px;
  background: linear-gradient(90deg, #13adff, #006eff);
  margin: 16px auto 0;
}
.sol-module-sub { margin-top: 14px; font-size: 14px; color: #8a94a6; }

/* Tab 均分铺满 + 内容居中（产品名 + 第二行描述） */
.sol-tabs { gap: 16px; }
.sol-tab { flex: 1; min-width: 0; align-items: center; text-align: center; padding: 18px 16px 16px; }
.sol-tab-title { display: flex; align-items: baseline; justify-content: center; gap: 8px; font-size: 17px; font-weight: 700; color: var(--ink-strong); white-space: nowrap; }
.sol-tab .sol-tab-num { font-size: 18px; color: #006eff; }
.sol-tab.active .sol-tab-title { color: #fff; }
.sol-tab.active .sol-tab-num { color: #fff; }
.sol-tab-text { font-size: 12px; color: #8a94a6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.sol-tab.active .sol-tab-text { color: rgba(255, 255, 255, .85); }
@media (max-width: 768px) {
  .sol-tab { flex: 1 1 45%; }
  .sol-tab-title { font-size: 15px; }
}

/* ============ Tab 标签栏 V2：整条连续长条 + 底部尖角（覆盖旧卡片样式） ============ */
.sol-tabs {
  display: flex;
  gap: 0;
  margin-bottom: 56px;
  border-radius: 0;
  overflow: visible;
}
.sol-tab {
  position: relative;
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 18px 14px;
  background: #fff;
  border: 0;
  border-radius: 0;
  transition: background .25s, box-shadow .25s;
}
.sol-tab + .sol-tab { border-left: 1px solid #dde5f0; }
.sol-tab:hover { background: #f0f6ff; }
.sol-tab .sol-tab-num {
  font-size: 26px;
  font-weight: 800;
  line-height: 1;
  color: #006eff;
  letter-spacing: 1px;
}
.sol-tab .sol-tab-text {
  font-size: 15px;
  font-weight: 500;
  color: #5a6b85;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.sol-tab.active {
  background: linear-gradient(134deg, #13adff, #006eff);
  box-shadow: 0 12px 30px rgba(0, 110, 255, .35);
}
.sol-tab.active .sol-tab-num,
.sol-tab.active .sol-tab-text { color: #fff; }
/* 激活标签底部向下尖角三角（箭头朝下） */
.sol-tab.active::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -10px;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 10px solid #006eff;
}
/* 清除旧卡片式样式的干扰 */
.sol-tab-title { display: none; }
.sol-tab.active .sol-tab-text { color: #fff; }

/* ============ Tab 栏 V3：加高 + 整体圆角玻璃包裹 ============ */
.sol-tabs {
  gap: 0;
  background: rgba(255, 255, 255, .1);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 16px;
  overflow: hidden;
  padding: 0;
  margin-bottom: 56px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, .25);
}
.sol-tab {
  background: transparent;
  padding: 28px 16px;
  gap: 10px;
}
.sol-tab + .sol-tab { border-left: 1px solid rgba(255, 255, 255, .14); }
.sol-tab:hover { background: rgba(255, 255, 255, .14); }
.sol-tab .sol-tab-num { font-size: 30px; }
.sol-tab .sol-tab-text { color: rgba(255, 255, 255, .78); font-size: 16px; }
.sol-tab.active { background: linear-gradient(134deg, #13adff, #006eff); }
.sol-tab.active .sol-tab-num,
.sol-tab.active .sol-tab-text { color: #fff; }
.sol-tab.active::after { bottom: -10px; border-top-color: #006eff; }

/* ============ Tab 栏 V4：数字与标题同行 + 降低高度 ============ */
.sol-tab {
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 16px;
}
.sol-tab .sol-tab-num { font-size: 22px; }
.sol-tab .sol-tab-text { font-size: 15px; }
.sol-tab.active::after { bottom: -9px; }

/* ============ Tab 栏 V5：高度再增加 + 默认白色背景 ============ */
.sol-tabs {
  background: #fff;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: 1px solid #dde5f0;
  box-shadow: 0 12px 40px rgba(0, 0, 0, .3);
}
.sol-tab {
  padding: 20px 16px;
  background: #fff;
}
.sol-tab + .sol-tab { border-left: 1px solid #dde5f0; }
.sol-tab:hover { background: #f0f6ff; }
.sol-tab .sol-tab-num { font-size: 24px; color: #006eff; }
.sol-tab .sol-tab-text { color: #5a6b85; }
.sol-tab.active { background: linear-gradient(134deg, #13adff, #006eff); }
.sol-tab.active .sol-tab-num,
.sol-tab.active .sol-tab-text { color: #fff; }

/* Tab 栏 V6：继续加高 */
.sol-tab { padding: 26px 16px; }
.sol-tab .sol-tab-num { font-size: 26px; }
.sol-tab .sol-tab-text { font-size: 16px; }

/* Tab 栏 V7：横向加长（向两侧延伸超出内容区）
   出血量随视口自适应：宽屏最多外扩 100px，视口窄时自动收窄，
   保证标签条两端不被窗口边缘裁切（原来固定 -100px 在 <1400px 视口会把首尾标签切掉） */
.sol-tabs {
  --sol-bleed: min(100px, max(0px, calc((100vw - 1200px) / 2 - 10px)));
  margin: 0 calc(-1 * var(--sol-bleed)) 56px;
}
@media (max-width: 1024px) {
  .sol-tabs { margin: 0 0 56px; }
}

/* Tab 栏 V8：产品超过 6 个时，一屏只显示 6 个、整条可左右滑动（隐藏滚动条，箭头切到区外时 JS 滑一格）
   注意：基础样式是 flex-wrap: wrap，这里必须 nowrap，否则第 7 个起会自动换行、永远滑不动 */
.sol-tabs.sol-tabs-multi {
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.sol-tabs.sol-tabs-multi::-webkit-scrollbar { display: none; width: 0; height: 0; }
.sol-tabs.sol-tabs-multi .sol-tab { flex: 0 0 calc(100% / 6); }
@media (max-width: 768px) {
  /* 窄屏一屏放不下 6 个：恢复换行铺满，不做横向滑动 */
  .sol-tabs.sol-tabs-multi { flex-wrap: wrap; overflow: visible; }
  .sol-tabs.sol-tabs-multi .sol-tab { flex: 1 1 45%; }
}

/* 笔记本样机外壳改黑白配色 */
.laptop-frame {
  background: #141414;
  border: 2px solid #e8e8e8;
  border-radius: 16px 16px 0 0;
  box-shadow: 0 24px 60px rgba(0, 0, 0, .5);
}
.laptop-screen { background: #000; }
.laptop-base {
  background: linear-gradient(180deg, #e0e0e0, #8a8a8a);
  box-shadow: 0 10px 30px rgba(0, 0, 0, .45);
}

/* ============ 导航栏外壳 V2：通栏白底 + 深色字体（业务逻辑不变） ============ */
.site-header {
  position: sticky;
  top: 0;
  left: auto;
  right: auto;
  background: #fff;
  border-bottom: 1px solid var(--line);
  z-index: 100;
}
.site-header.scrolled { background: #fff; box-shadow: 0 4px 20px rgba(11, 29, 48, .08); }
.logo-text { color: var(--ink-strong); }
.logo-domain { color: var(--ink-3); }
/* 中间导航：深色文字，水平均匀排列 */
.main-nav { justify-content: center; }
.nav-link { color: var(--ink-2); }
.nav-link:hover { color: var(--primary); background: var(--primary-soft); }
.nav-link.active { color: var(--primary); }
.nav-caret { color: var(--ink-3); }
.nav-dropdown, .region-dropdown { background: #fff; }
.nav-drop-item { color: var(--ink-2); }
.nav-drop-item:hover { color: var(--primary); background: var(--primary-soft); }
/* 右侧：登录文字链接 + 免费注册蓝色胶囊 */
.header-link { color: var(--ink-2); }
.header-link:hover { color: var(--primary); }
.region-select { color: var(--ink-2); }
.region-select:hover { color: var(--primary); background: rgba(0, 110, 255, .06); }
.region-caret { color: var(--ink-3); }
.region-dropdown a { color: var(--ink-2); }
.header-reg-btn {
  background: var(--primary);
  color: #fff;
  border-radius: 999px;
  padding: 9px 26px;
  font-weight: 500;
  box-shadow: 0 4px 14px rgba(0, 110, 255, .3);
}
.header-reg-btn:hover { background: var(--primary-deep); transform: translateY(-1px); }
/* 移动端汉堡深色 */
.nav-toggle span { background: var(--dark); }
.nav-toggle:hover { background: var(--primary-soft); }

/* ============ 导航栏精修 V3：纯白通栏、去光晕阴影、均匀间距（逻辑不变） ============ */
.site-header {
  background: #fff;
  border-bottom: 1px solid #eef0f4;
  box-shadow: none;
}
.site-header.scrolled { box-shadow: none; }
.header-inner { height: 60px; gap: 24px; }
/* Logo：无发光 */
.logo-mark { box-shadow: none; border-radius: 8px; }
.logo-text { font-size: 18px; font-weight: 600; color: #2b3441; letter-spacing: 0; }
.logo-domain { display: none; }
/* 菜单：深黑常规字重、均匀间距、无发光 */
.main-nav { gap: 8px; }
.nav-link {
  padding: 7px 14px;
  font-size: 15px;
  font-weight: 400;
  color: #2b3441;
  border-radius: 6px;
  transition: color .2s;
}
.nav-link:hover { color: var(--primary); background: none; }
.nav-link.active { color: var(--primary); font-weight: 400; }
.nav-caret { font-size: 18px; color: #666; }
/* 下拉面板：干净白面板轻阴影 */
.nav-dropdown, .region-dropdown {
  background: #fff;
  box-shadow: 0 6px 20px rgba(0, 0, 0, .08);
  border: 1px solid #eef0f4;
}
.nav-drop-item { color: #454e5c; font-weight: 400; }
.nav-drop-item:hover { color: var(--primary); background: #f5f9ff; }
/* 右侧：登录纯文字 + 免费注册纯蓝胶囊（无光晕） */
.header-link { font-size: 15px; color: #2b3441; font-weight: 400; }
.header-link:hover { color: var(--primary); }
.region-select { color: #2b3441; }
.region-select:hover { color: var(--primary); background: none; }
.region-caret { color: #666; }
.header-reg-btn {
  background: var(--primary);
  color: #fff;
  border-radius: 999px;
  padding: 8px 24px;
  font-size: 14px;
  font-weight: 400;
  box-shadow: none;
  transition: background .2s;
}
.header-reg-btn:hover { background: var(--primary-deep); transform: none; }
.nav-toggle span { background: #1a1a1a; }
.nav-toggle:hover { background: #f5f7fa; }

/* ============ 导航 V4：悬浮玻璃胶囊条（视觉变化明显） ============ */
.site-header {
  position: sticky;
  top: 14px;
  margin: 14px 16px 0;
  border-radius: 16px;
  background: rgba(255, 255, 255, .78);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, .65);
  border-bottom: 1px solid rgba(255, 255, 255, .65);
  box-shadow: 0 8px 32px rgba(11, 29, 48, .1);
  overflow: visible;
}
.site-header.scrolled {
  margin-top: 10px;
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 12px 36px rgba(11, 29, 48, .14);
}
.header-inner { height: 60px; }
/* 移动端恢复贴顶玻璃 */
@media (max-width: 768px) {
  .site-header { top: 0; margin: 0; border-radius: 0; }
}

/* ============ 导航 V5：方形通栏玻璃条，贴顶左右到头 ============ */
.site-header {
  top: 0;
  margin: 0;
  border-radius: 0;
  background: rgba(255, 255, 255, .82);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 0;
  border-bottom: 1px solid rgba(230, 236, 245, .8);
  box-shadow: none;
}
.site-header.scrolled {
  margin-top: 0;
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 2px 16px rgba(11, 29, 48, .06);
}
@media (max-width: 768px) {
  .site-header { border-radius: 0; }
}

/* 视频轮播：去掉灰色蒙版，视频原色直接显示 */
.hero-slide.has-media::before { display: none; }
.hero-slide.has-media .hero-title { text-shadow: 0 3px 14px rgba(0, 0, 0, .55), 0 1px 3px rgba(0, 0, 0, .4); }
.hero-slide.has-media .hero-subtitle { text-shadow: 0 2px 8px rgba(0, 0, 0, .5); }
.hero-slide.has-media .hero-tag { background: rgba(255, 255, 255, .85); }
.hero-slide.has-media .hero-tag-blue { background: linear-gradient(120deg, #005ad6, #006eff); -webkit-background-clip: text; background-clip: text; }

/* 轮播区固定高度：切换稳定无黑条跳动 */
.hero { aspect-ratio: 1920 / 630; min-height: 460px; background: #0b1d30; }
/* z-index:0 创建层叠上下文：视频被限制在轮播层内，不会盖住顶栏下拉菜单 */
.hero-slide.active { position: absolute; inset: 0; z-index: 0; }
@media (max-width: 768px) {
  .hero { aspect-ratio: auto; min-height: 0; }
  .hero-slide.active { position: relative; inset: auto; }
}

/* ============ 产品中心模块 V2：白色背景 ============ */
.sol-module {
  background: #fff;
  padding: 84px 0 96px;
}
.sol-module-title { color: #2b3441; }
.sol-module-sub { color: #8a94a6; }
/* Tab 栏白底加浅边 */
.sol-tabs {
  background: #fff;
  border: 1px solid #e6ecf5;
  box-shadow: 0 10px 34px rgba(11, 29, 48, .08);
}
.sol-tab { background: #fff; }
.sol-tab + .sol-tab { border-left: 1px solid #e6ecf5; }
.sol-tab:hover { background: #f0f6ff; }
/* 右侧文字：深色标题与描述 */
.sol-name { color: #2b3441; }
.sol-desc { color: #5a6b85; }
.sol-adv b { color: #2b3441; }
.sol-adv span { color: #8a94a6; }
/* 激活 Tab 与按钮保持蓝底白字 */
.sol-tab.active .sol-tab-num,
.sol-tab.active .sol-tab-text { color: #fff; }
.sol-btn { color: #fff; }

/* ============ 整体页面：柔和渐变底色 ============ */
body {
  background:
    radial-gradient(900px 500px at 85% -5%, rgba(19, 173, 255, .08), transparent 60%),
    radial-gradient(700px 420px at 5% 30%, rgba(0, 110, 255, .05), transparent 55%),
    linear-gradient(180deg, #f0f6ff 0%, #f7faff 45%, #fdfeff 100%);
  background-attachment: fixed;
}

/* ============ 渐变底色 V2：加深可见 + 去遮挡 ============ */
body {
  background:
    radial-gradient(1000px 560px at 88% -8%, rgba(19, 173, 255, .18), transparent 62%),
    radial-gradient(800px 480px at 2% 35%, rgba(0, 110, 255, .12), transparent 58%),
    linear-gradient(180deg, #dcecff 0%, #eaf4ff 40%, #f6faff 75%, #fdfeff 100%);
  background-attachment: fixed;
}
/* 去掉浅色实底区块的遮挡，让渐变贯通 */
.section-alt { background: transparent; }
.pd-section-soft { background: transparent; }
.pd-section-related { background: transparent; }
.pd-intro-card { background: rgba(255, 255, 255, .75); }

/* ============ 功能入口卡片模块（视频轮播下方） ============ */
.entry-cards { padding: 40px 0 10px; }
.entry-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; }
.entry-card {
  display: flex;
  flex-direction: column;
  background: #f4f8ff;
  border-radius: 12px;
  padding: 22px 20px 18px;
  box-shadow: 0 4px 14px rgba(11, 29, 48, .06);
  transition: all .25s;
}
.entry-card:hover { transform: translateY(-5px); box-shadow: 0 14px 32px rgba(11, 29, 48, .12); }
.entry-top { display: flex; align-items: center; gap: 14px; }
.entry-icon {
  flex: none;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: linear-gradient(134deg, #4d9fff, #006eff);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  overflow: hidden;
}
.entry-icon img { width: 34px; height: 34px; }
.entry-body { display: flex; flex-direction: column; min-width: 0; }
.entry-title { font-size: 16px; font-weight: 700; color: #2b3441; line-height: 1.5; }
.entry-desc { font-size: 12px; color: #8a94a6; line-height: 1.6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.entry-btn {
  display: block;
  margin-top: 16px;
  padding: 9px 0;
  text-align: center;
  font-size: 14px;
  color: #fff;
  background: #006eff;
  border-radius: 8px;
  transition: background .2s;
}
.entry-card:hover .entry-btn { background: #005ad6; }

/* 响应式：5 → 3 → 2 → 1 */
@media (max-width: 1200px) { .entry-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px) { .entry-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .entry-grid { grid-template-columns: 1fr; } }

/* 功能入口卡片：【立即前往】按钮 hover 时才展开显示 */
.entry-btn {
  display: block;
  max-height: 0;
  margin-top: 0;
  padding: 0;
  opacity: 0;
  overflow: hidden;
  text-align: center;
  font-size: 14px;
  color: #fff;
  background: #006eff;
  border-radius: 8px;
  transition: max-height .3s ease, padding .3s ease, margin-top .3s ease, opacity .3s ease, background .2s;
}
.entry-card:hover .entry-btn {
  max-height: 44px;
  margin-top: 16px;
  padding: 9px 0;
  opacity: 1;
}
.entry-card:hover .entry-btn:hover { background: #005ad6; }

/* 指示点移到「了解更多」按钮下方（内容流内） */
.hero-dots {
  position: static;
  transform: none;
  margin-top: 30px;
  justify-content: flex-start;
}
.hero-dots .hero-dot { width: 8px; height: 8px; background: rgba(255, 255, 255, .4); }
.hero-dots .hero-dot.active { width: 28px; background: #006eff; }

/* 功能入口卡片平铺到视频底部（浮在视频上） */
.entry-cards {
  position: relative;
  z-index: 6;
  margin-top: -96px;
  padding: 0;
}
.entry-card {
  background: rgba(255, 255, 255, .92);
  backdrop-filter: blur(10px);
}

/* ============ 功能入口卡片 V2：大圆角 + 双层方框图标（数据不变） ============ */
.entry-card {
  background: #f2f7ff;
  border-radius: 18px;
  padding: 24px 22px 20px;
  box-shadow: 0 4px 16px rgba(11, 29, 48, .06);
  backdrop-filter: none;
  transition: transform .25s, box-shadow .25s;
}
.entry-card:hover { transform: translateY(-5px); box-shadow: 0 14px 34px rgba(11, 29, 48, .12); }
/* 双层方框圆角图标：外层蓝框 + 内层白底 + 蓝色线性图标 */
.entry-icon {
  width: 52px;
  height: 52px;
  border-radius: 15px;
  background: linear-gradient(134deg, #4d9fff, #006eff);
  padding: 6px;
  box-shadow: none;
}
.entry-icon img {
  width: 100%;
  height: 100%;
  background: #fff;
  border-radius: 10px;
  padding: 7px;
  object-fit: contain;
  box-sizing: border-box;
}
/* 文字排版：深黑加粗适中标题 + 小一号浅灰描述 */
.entry-title { font-size: 17px; font-weight: 600; color: #2b3441; line-height: 1.5; }
.entry-desc { font-size: 12px; color: #8a94a6; line-height: 1.6; }
.entry-top { align-items: center; gap: 14px; }

/* ============ 功能入口卡片 V3：整块容器 + 竖线分割 + 左右铺满 ============ */
.entry-cards { margin: -96px -100px 0; }
.entry-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 36px rgba(11, 29, 48, .1);
}
.entry-card {
  background: #fff;
  border-radius: 0;
  padding: 26px 24px;
  box-shadow: none;
  transition: background .25s;
}
.entry-card + .entry-card { border-left: 1px solid #e8edf5; }
.entry-card:hover { transform: none; box-shadow: none; background: #f0f6ff; }
.entry-icon {
  width: 52px;
  height: 52px;
  border-radius: 15px;
  background: linear-gradient(134deg, #4d9fff, #006eff);
  padding: 6px;
}
.entry-icon img {
  width: 100%;
  height: 100%;
  background: #fff;
  border-radius: 10px;
  padding: 7px;
  object-fit: contain;
  box-sizing: border-box;
}
.entry-title { font-size: 17px; font-weight: 600; color: #2b3441; }
.entry-desc { font-size: 12px; color: #8a94a6; }
@media (max-width: 1200px) {
  .entry-cards { margin: -96px 0 0; }
  .entry-grid { grid-template-columns: repeat(3, 1fr); }
  .entry-card:nth-child(4) { border-left: 0; }
  .entry-card { border-top: 1px solid #e8edf5; }
  .entry-card:nth-child(-n+3) { border-top: 0; }
}
@media (max-width: 768px) {
  .entry-grid { grid-template-columns: 1fr; }
  .entry-card { border-left: 0 !important; }
  .entry-card:nth-child(4) { border-top: 1px solid #e8edf5; }
}

/* 入口卡片 V3.1：真正全屏左右铺满（视口宽） */
.entry-cards {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-top: -96px;
  padding: 0 24px;
}
.entry-cards .container { max-width: none; padding: 0; }
.entry-grid { max-width: 100%; }
@media (max-width: 768px) {
  .entry-cards { padding: 0 12px; margin-top: -72px; }
}

/* 入口卡片：6 列布局 */
.entry-grid { grid-template-columns: repeat(6, 1fr); }
@media (max-width: 1200px) {
  .entry-grid { grid-template-columns: repeat(3, 1fr); }
  .entry-card:nth-child(5) { border-top: 1px solid #e8edf5; }
}

/* 入口卡片 V4：hover 上浮 + 图标去蓝框（原样图标） */
.entry-card { transition: transform .25s, background .25s; }
.entry-card:hover { transform: translateY(-6px); background: #f0f6ff; box-shadow: 0 14px 34px rgba(11, 29, 48, .12); }
.entry-icon {
  width: auto;
  height: auto;
  background: none;
  padding: 0;
  border-radius: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.entry-icon img {
  width: 44px;
  height: 44px;
  background: none;
  border-radius: 0;
  padding: 0;
  object-fit: contain;
  box-sizing: content-box;
}

/* 入口卡片 V5：立即前往 hover 才显示（强制覆盖，全部卡片生效） */
.entry-btn {
  display: block;
  max-height: 0 !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  opacity: 0 !important;
  overflow: hidden;
  text-align: center;
  font-size: 14px;
  color: #fff;
  background: #006eff;
  border-radius: 8px;
  transition: max-height .3s ease, margin .3s ease, padding .3s ease, opacity .3s ease, background .2s;
}
.entry-card:hover .entry-btn {
  max-height: 44px !important;
  margin-top: 16px !important;
  padding-top: 9px !important;
  padding-bottom: 9px !important;
  opacity: 1 !important;
}
.entry-btn:hover { background: #005ad6; }

/* hover 不再变灰：保持白色背景，仅上浮 + 阴影 */
.entry-card:hover { background: #fff; }
.sol-tab:hover { background: #fff; }

/* hover 变蓝色（与选中状态同款） */
.sol-tab:hover {
  background: linear-gradient(134deg, #13adff, #006eff);
}
.sol-tab:hover .sol-tab-num,
.sol-tab:hover .sol-tab-text { color: #fff; }
/* 入口卡片 hover 也变蓝：白字 */
.entry-card:hover {
  background: linear-gradient(134deg, #13adff, #006eff);
}
.entry-card:hover .entry-title { color: #fff; }
.entry-card:hover .entry-desc { color: rgba(255, 255, 255, .85); }
.entry-card:hover .entry-btn { background: #fff; color: #006eff; }

/* 导航玻璃化加强：更透 + 更强模糊 + 明显蓝色边框与高光 */
.site-header {
  background: rgba(255, 255, 255, .62);
  backdrop-filter: blur(26px) saturate(1.5);
  -webkit-backdrop-filter: blur(26px) saturate(1.5);
  border-bottom: 1px solid rgba(0, 110, 255, .25);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .95),
    0 4px 22px rgba(0, 110, 255, .1);
}
.site-header.scrolled {
  background: rgba(255, 255, 255, .78);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .95),
    0 6px 26px rgba(0, 110, 255, .14);
}

/* ============ 为什么选择我们模块（2×2 蓝色渐变卡） ============ */
.why-module { padding: 84px 0; }
.why-head { margin-bottom: 46px; }
.why-title {
  font-size: 32px;
  font-weight: 700;
  color: #2b3441;
  letter-spacing: 1px;
}
.why-sub { margin-top: 12px; font-size: 15px; color: #8a94a6; }
.why-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
}
.why-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 34px 30px;
  background: linear-gradient(134deg, #4d9fff 0%, #006eff 100%);
  border-radius: 0;
  overflow: hidden;
  transition: filter .25s;
}
.why-card:hover { filter: brightness(1.08); }
/* 右下角半透明装饰图标底纹 */
.why-card-deco {
  position: absolute;
  right: -18px;
  bottom: -20px;
  opacity: .12;
  pointer-events: none;
}
.why-card-deco img { width: 150px; height: 150px; }
.why-icon {
  flex: none;
  width: 58px;
  height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.why-icon img { width: 48px; height: 48px; }
.why-body { display: flex; flex-direction: column; gap: 6px; position: relative; }
.why-name { font-size: 20px; font-weight: 700; color: #fff; }
.why-desc { font-size: 14px; color: rgba(255, 255, 255, .85); line-height: 1.8; }

/* 响应式：平板/手机单列 */
@media (max-width: 768px) {
  .why-grid { grid-template-columns: 1fr; }
  .why-title { font-size: 26px; }
}

/* 为什么选择我们：顶部居中标题 */
.why-head-center { text-align: center; margin-bottom: 14px; }
.why-center-title {
  font-size: 34px;
  font-weight: 700;
  color: #2b3441;
  letter-spacing: 2px;
}
.why-center-title::after {
  content: "";
  display: block;
  width: 52px;
  height: 4px;
  border-radius: 2px;
  background: linear-gradient(90deg, #13adff, #006eff);
  margin: 16px auto 0;
}

/* 阿里巴巴普惠体 Bold（顶部导航专用） */
/* 原远程「阿里巴巴普惠体」已失效（OSS 返回 403），导航改用自托管 MiSans */
.site-header, .site-header a, .logo-text, .nav-link, .header-link, .header-reg-btn {
  font-family: 'MiSans VF', 'Noto Sans SC', 'Microsoft YaHei', sans-serif;
}
.logo-text { font-weight: 700; }
.nav-link { font-weight: 700; }
.header-reg-btn { font-weight: 700; }

/* 导航菜单靠近 Logo */
.main-nav { justify-content: flex-start; }
.header-inner { gap: 26px; }

/* 导航字体调大 */
.nav-link { font-size: 17px; }
.header-link { font-size: 16px; }
.header-reg-btn { font-size: 15px; }
.logo-text { font-size: 20px; }

/* 新闻资讯模块：与为什么选择我们同款蓝色渐变卡片 */
.news-module .news-grid { grid-template-columns: repeat(3, 1fr); gap: 22px; }
.news-module .news-card {
  background: linear-gradient(134deg, #4d9fff 0%, #006eff 100%);
  border-radius: 0;
  border: 0;
  box-shadow: none;
  transition: filter .25s;
}
.news-module .news-card:hover { transform: none; box-shadow: none; filter: brightness(1.08); }
.news-module .news-thumb { aspect-ratio: 16 / 9; }
.news-module .news-thumb img { width: 100%; height: 100%; object-fit: cover; }
.news-module .news-body { padding: 20px 22px 22px; }
.news-module .news-title { color: #fff; font-size: 17px; font-weight: 700; }
.news-module .news-card:hover .news-title { color: #fff; }
.news-module .news-summary { color: rgba(255, 255, 255, .8); }
.news-module .news-date { color: rgba(255, 255, 255, .65); }
.news-module .news-date::before { background: #fede28; }
@media (max-width: 1024px) { .news-module .news-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) { .news-module .news-grid { grid-template-columns: 1fr; } }

/* 为什么选择我们 + 新闻资讯：卡片玻璃化 */
.why-card {
  background: rgba(0, 110, 255, .28);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, .3);
  box-shadow: 0 8px 28px rgba(0, 110, 255, .12);
}
.why-card:hover { filter: none; background: rgba(0, 110, 255, .4); }
.news-module .news-card {
  background: rgba(0, 110, 255, .28);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, .3);
  box-shadow: 0 8px 28px rgba(0, 110, 255, .12);
}
.news-module .news-card:hover { filter: none; background: rgba(0, 110, 255, .4); }

/* 玻璃化修正：恢复蓝色渐变实底颜色，保留玻璃描边 */
.why-card {
  background: linear-gradient(134deg, #4d9fff 0%, #006eff 100%);
  border: 1px solid rgba(255, 255, 255, .35);
}
.why-card:hover { background: linear-gradient(134deg, #5cabff 0%, #0f7fff 100%); }
.news-module .news-card {
  background: linear-gradient(134deg, #4d9fff 0%, #006eff 100%);
  border: 1px solid rgba(255, 255, 255, .35);
}
.news-module .news-card:hover { background: linear-gradient(134deg, #5cabff 0%, #0f7fff 100%); }

/* ============ 新闻资讯模块 v2（2×2 蓝色卡片，整卡可点击） ============ */
.news-module .news-grid-v2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.news-module .news-card-v2 {
  position: relative;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 26px 28px;
  border-radius: 0;
  background: linear-gradient(134deg, #4d9fff 0%, #006eff 100%);
  border: 1px solid rgba(255, 255, 255, .35);
  overflow: hidden;
  transition: filter .3s;
}
.news-module .news-card-v2:hover { filter: brightness(1.08); }
.news-module .news-icon-v2 {
  position: relative;
  flex-shrink: 0;
  width: 58px;
  height: 58px;
  border-radius: 14px;
  overflow: visible;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, .15);
  border: 1px solid rgba(255, 255, 255, .32);
}
.news-module .news-icon-v2 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 14px;
}
/* 图标右下角黄色点缀 */
.news-module .news-icon-v2::after {
  content: "";
  position: absolute;
  right: -4px;
  bottom: -4px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fede28;
  border: 3px solid #006eff;
}
.news-module .news-body-v2 { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; text-align: left; }
.news-module .news-title-v2 {
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-module .news-summary-v2 {
  color: rgba(255, 255, 255, .82);
  font-size: 14px;
  line-height: 1.7;
  margin-top: 6px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-module .news-date-v2 {
  margin-top: 10px;
  font-size: 12.5px;
  color: rgba(255, 255, 255, .6);
}
/* 右下角低透明度同色系装饰底纹 */
.news-module .news-deco-v2 {
  position: absolute;
  right: -34px;
  bottom: -38px;
  width: 150px;
  height: 150px;
  opacity: .12;
  pointer-events: none;
}
.news-module .news-deco-v2 img { width: 100%; height: 100%; object-fit: cover; }
.news-module .empty-tip { text-align: center; padding: 64px 0; color: #9aa7bd; font-size: 15px; background: #fff; border-radius: 12px; }
@media (max-width: 768px) {
  .news-module .news-grid-v2 { grid-template-columns: 1fr; }
}

/* ============ 关于我们：左图右文（公司办公楼图片） ============ */
.about-strip-inner { max-width: 1200px; display: flex; align-items: center; gap: 64px; }
.about-img {
  flex: 0 0 46%;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 24px 50px rgba(0, 60, 140, .18);
  border: 1px solid rgba(0, 110, 255, .12);
}
.about-img img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .5s; }
.about-img:hover img { transform: scale(1.04); }
.about-text { flex: 1; }
@media (max-width: 768px) {
  .about-strip-inner { flex-direction: column; gap: 36px; }
  .about-img { flex: none; width: 100%; }
}

/* ============ 产品中心页面 UI 重构（与首页风格统一） ============ */
/* 顶部横幅：加装饰圆环 + 光斑 */
.page-hero { position: relative; overflow: hidden; padding: 88px 0; }
.page-hero::before {
  content: "";
  position: absolute;
  right: -90px;
  top: -110px;
  width: 340px;
  height: 340px;
  border-radius: 50%;
  border: 2px dashed rgba(255, 255, 255, .35);
  animation: pd-float 10s ease-in-out infinite;
}
.page-hero::after {
  content: "";
  position: absolute;
  left: -70px;
  bottom: -130px;
  width: 320px;
  height: 320px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, .15), transparent 65%);
}
.page-hero .container { position: relative; z-index: 2; }
.page-hero h1 { font-size: 38px; }

/* 分类 Tab：与首页 sol-tab 风格一致（白底圆角，active 蓝渐变 + 左下三角） */
.category-tabs { justify-content: center; gap: 14px; margin-bottom: 44px; }
.cat-tab {
  position: relative;
  padding: 13px 30px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid #e3e6ec;
  font-size: 14.5px;
  font-weight: 600;
  color: #5a6b85;
  transition: all .25s;
}
.cat-tab:hover { transform: translateY(-2px); border-color: var(--primary); color: var(--primary); box-shadow: 0 8px 20px rgba(0, 110, 255, .14); }
.cat-tab.active {
  background: linear-gradient(134deg, #13adff, #006eff);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 8px 22px rgba(0, 110, 255, .3);
}
.cat-tab.active::after {
  content: "";
  position: absolute;
  left: 26px;
  bottom: -7px;
  width: 0;
  height: 0;
  border-left: 8px solid #006eff;
  border-bottom: 8px solid transparent;
}

/* 产品卡片：白卡 + 顶部蓝渐变装饰条 + 推荐角标 */
.product-card {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #e6ebf3;
  transition: transform .3s, box-shadow .3s, border-color .3s;
}
.product-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, #006eff, #13adff);
  z-index: 3;
  opacity: 0;
  transition: opacity .3s;
}
.product-card:hover::before { opacity: 1; }
.product-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 18px 40px rgba(0, 70, 160, .16);
  border-color: rgba(0, 110, 255, .4);
}
.product-thumb { aspect-ratio: 16 / 9; overflow: hidden; }
.product-thumb img { transition: transform .45s; }
.product-card:hover .product-thumb img { transform: scale(1.06); }
/* 推荐角标：蓝色渐变胶囊 */
.product-badge {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 3;
  padding: 2px 12px 2px 10px;
  border-radius: 0 0 14px 0;
  background: linear-gradient(134deg, #13adff, #006eff);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;
  line-height: 1.5;
  box-shadow: 0 6px 14px rgba(0, 110, 255, .35);
}
.product-name { font-size: 19px; font-weight: 700; color: var(--ink-strong); transition: color .25s; }
.product-card:hover .product-name { color: var(--primary); }
.product-subtitle { color: #7a8aa3; }
/* 底部按钮：详情介绍 hover 蓝渐变白字 */
.product-actions .btn-outline:hover {
  background: linear-gradient(134deg, #13adff, #006eff);
  border-color: transparent;
  color: #fff;
}

/* ============ 授权中心（官网内置功能模块，正常授权界面） ============ */
.auth-page { padding: 56px 0 90px; }
.auth-wrap { max-width: 980px; }
.auth-card {
  background: #fff;
  border: 1px solid #e6ebf3;
  border-radius: 14px;
  padding: 34px 38px;
  margin-bottom: 26px;
  box-shadow: 0 8px 24px rgba(11, 29, 48, 0.05);
}
.auth-card-title { font-size: 22px; font-weight: 700; color: var(--ink-strong); }
.auth-card-desc { margin-top: 8px; font-size: 14px; color: #7a8aa3; }
.auth-hero-desc { margin-top: 14px; font-size: 16px; color: rgba(255, 255, 255, .9); letter-spacing: 1px; }
.auth-hero-btns { margin-top: 26px; display: flex; gap: 14px; justify-content: center; }
.auth-hero .btn-outline { background: transparent; border: 1px solid rgba(255, 255, 255, .85); color: #fff; }
.auth-hero .btn-outline:hover { background: #fff; border-color: #fff; color: var(--primary); }

/* 公告条 */
.auth-notice { background: #fff; border-bottom: 1px solid var(--line); }
.auth-notice .container { display: flex; align-items: center; gap: 12px; padding: 13px 20px; }
.auth-notice-label { flex: none; padding: 3px 12px; border-radius: 6px; background: linear-gradient(134deg, #13adff, #006eff); color: #fff; font-size: 12px; font-weight: 700; letter-spacing: 1px; }
.auth-notice-text { color: #5a6b85; font-size: 13.5px; }

/* 指标 */
.auth-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 26px; }
.auth-stat { text-align: center; padding: 20px 10px; background: #fff; border: 1px solid #e6ebf3; border-radius: 12px; }
.auth-stat b { display: block; font-size: 26px; font-weight: 800; background: linear-gradient(134deg, #13adff, #006eff); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.auth-stat span { font-size: 12.5px; color: #7a8aa3; }
@media (max-width: 640px) { .auth-stats { grid-template-columns: repeat(2, 1fr); } }

/* 功能入口卡 */
.auth-fn-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-bottom: 26px; }
.auth-fn-card {
  position: relative;
  overflow: hidden;
  background: #fff;
  border: 1px solid #e6ebf3;
  border-radius: 14px;
  padding: 24px 22px 20px;
  transition: transform .3s, box-shadow .3s, border-color .3s;
}
.auth-fn-card::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 4px; background: linear-gradient(90deg, #006eff, #13adff); opacity: 0; transition: opacity .3s; }
.auth-fn-card:hover::before { opacity: 1; }
.auth-fn-card:hover { transform: translateY(-6px); border-color: rgba(0, 110, 255, .4); box-shadow: 0 16px 36px rgba(0, 70, 160, .15); }
.auth-fn-en { display: block; font-size: 11px; letter-spacing: 2px; color: #9aa7bd; text-transform: uppercase; }
.auth-fn-card b { display: block; margin-top: 6px; font-size: 17px; color: var(--ink-strong); transition: color .25s; }
.auth-fn-card:hover b { color: var(--primary); }
.auth-fn-desc { display: block; margin-top: 8px; font-size: 13px; color: #7a8aa3; line-height: 1.7; }
@media (max-width: 900px) { .auth-fn-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .auth-fn-grid { grid-template-columns: 1fr; } }

/* 应用列表 */
.auth-app-list { display: flex; flex-direction: column; gap: 12px; margin-top: 20px; }
.auth-app-item { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; background: #f8fbff; border: 1px solid #e6ebf3; border-radius: 12px; transition: border-color .25s, box-shadow .25s; }
.auth-app-item:hover { border-color: rgba(0, 110, 255, .35); box-shadow: 0 8px 20px rgba(0, 70, 160, .1); }
.auth-app-info b { display: block; color: var(--ink-strong); font-size: 15px; }
.auth-app-info span { color: #7a8aa3; font-size: 13px; }

/* 为什么选择我们 */
.auth-sv-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 22px; }
.auth-sv-card { display: flex; flex-direction: column; gap: 6px; padding: 20px 22px; border-radius: 12px; background: linear-gradient(134deg, #4d9fff, #006eff); color: #fff; }
.auth-sv-num { font-size: 20px; font-weight: 800; color: rgba(255, 255, 255, .55); }
.auth-sv-card b { font-size: 16px; font-weight: 700; }
.auth-sv-desc { font-size: 13px; color: rgba(255, 255, 255, .82); line-height: 1.7; }
@media (max-width: 640px) { .auth-sv-grid { grid-template-columns: 1fr; } }

/* CTA */
.auth-cta { text-align: center; }
.auth-cta-btns { margin-top: 22px; display: flex; gap: 14px; justify-content: center; }

/* 表单 */
.auth-form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin-top: 24px; }
.auth-field label { display: block; margin-bottom: 8px; font-size: 13.5px; font-weight: 600; color: #5a6b85; }
.auth-input {
  width: 100%;
  padding: 11px 16px;
  border: 1px solid #e3e6ec;
  border-radius: 10px;
  font-size: 14px;
  color: var(--ink);
  background: #fff;
  outline: none;
  transition: border-color .25s, box-shadow .25s;
}
.auth-input:focus { border-color: #006eff; box-shadow: 0 0 0 3px rgba(0, 110, 255, .12); }
.auth-form-actions { margin-top: 26px; display: flex; gap: 12px; flex-wrap: wrap; }
.auth-code-row { display: flex; gap: 10px; }
.auth-code-row .auth-input { flex: 1; }
.auth-send-btn { flex: none; white-space: nowrap; }
@media (max-width: 640px) { .auth-form-grid { grid-template-columns: 1fr; } .auth-card { padding: 24px 20px; } }

/* 结果提示 */
.auth-msg { margin-top: 20px; padding: 14px 18px; border-radius: 10px; font-size: 14px; line-height: 1.8; }
.auth-msg-ok { background: #e8f8ef; border: 1px solid #b5e7c9; color: #0f7b3d; }
.auth-msg-err { background: #fdeeee; border: 1px solid #f5c2c2; color: #c0392b; }
.auth-dl-row { margin-top: 14px; }

/* 更新日志 */
.auth-uplog-body { margin-top: 16px; font-size: 14px; color: #4a5f80; line-height: 2; white-space: pre-wrap; }
.auth-ver-badge { display: inline-block; margin-left: 10px; padding: 2px 12px; border-radius: 999px; background: linear-gradient(134deg, #13adff, #006eff); color: #fff; font-size: 12px; font-weight: 700; vertical-align: middle; }

/* ============ 授权查询中心（独立页面：Logo 区 + 白卡片 + 页脚） ============ */
.auth-body { min-height: 100vh; display: flex; flex-direction: column; background: #F5F7FA; }

/* 顶部 Logo 区 */
.aq-head { padding: 58px 20px 0; text-align: center; }
.aq-logo { display: inline-block; }
.aq-logo img { height: 56px; margin: 0 auto; }
.aq-logo-mark {
  display: flex; align-items: center; justify-content: center;
  width: 56px; height: 56px; margin: 0 auto;
  border-radius: 14px;
  background: linear-gradient(134deg, #13adff, #006eff);
  color: #fff; font-size: 28px; font-weight: 800;
}
.aq-site-name { margin-top: 14px; font-size: 22px; font-weight: 700; color: #2b3441; letter-spacing: 1px; }
.aq-site-domain { margin-top: 4px; font-size: 13px; color: #8a94a6; letter-spacing: .5px; }

/* 中间白色卡片 */
.aq-main { flex: 1; display: flex; align-items: center; justify-content: center; padding: 42px 20px; }
.aq-card {
  width: 100%;
  max-width: 560px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 12px 44px rgba(11, 29, 48, 0.08);
  padding: 46px 44px;
  text-align: center;
}
.aq-title { font-size: 28px; font-weight: 800; color: #2b3441; letter-spacing: 2px; }
.aq-sub { margin-top: 10px; font-size: 14px; color: #8a94a6; }

/* 查询组件：输入框 + 按钮一体相连 */
.aq-search { display: flex; margin-top: 32px; }
.aq-input {
  flex: 1;
  min-width: 0;
  padding: 13px 18px;
  border: 2px solid #006eff;
  border-right: 0;
  border-radius: 10px 0 0 10px;
  font-size: 14.5px;
  color: var(--ink);
  background: #fff;
  outline: none;
  transition: box-shadow .25s;
}
.aq-input:focus { box-shadow: 0 0 0 3px rgba(0, 110, 255, .12); }
.aq-btn {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 26px;
  background: #006eff;
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 1px;
  border-radius: 0 10px 10px 0;
  white-space: nowrap;
  transition: background .25s;
}
.aq-btn:hover { background: #005ad6; }
.aq-btn:disabled { opacity: .75; cursor: not-allowed; }

/* 查询结果 */
.aq-result { display: none; margin-top: 24px; padding: 16px 18px; border-radius: 10px; font-size: 14px; line-height: 1.7; text-align: left; }
.aq-result.show { display: block; }
.aq-result.ok { background: #e8f8ef; border: 1px solid #b5e7c9; color: #0f7b3d; }
.aq-result.err { background: #fdeeee; border: 1px solid #f5c2c2; color: #c0392b; }
.aq-rows { margin-top: 8px; }
.aq-row { padding: 9px 0; border-top: 1px dashed rgba(0, 0, 0, .08); }
.aq-row b { display: block; font-size: 14.5px; }
.aq-row span { display: block; margin-top: 2px; font-size: 12.5px; opacity: .85; }

/* 三个功能按钮 */
.aq-links { display: flex; justify-content: center; gap: 14px; margin-top: 28px; }
.aq-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 22px;
  border: 1px solid #e3e6ec;
  background: #f8fafc;
  color: #5a6b85;
  border-radius: 10px;
  font-size: 13.5px;
  font-weight: 500;
  transition: all .25s;
}
.aq-link:hover { border-color: #006eff; color: #006eff; background: #f0f6ff; }

/* 页脚 */
.aq-foot { padding: 30px 20px 36px; text-align: center; }
.aq-foot-links { font-size: 13px; color: #9aa7bd; }
.aq-foot-links a { color: #9aa7bd; transition: color .2s; }
.aq-foot-links a:hover { color: #006eff; }
.aq-sep { margin: 0 12px; color: #d5dbe5; }
.aq-copy { margin-top: 10px; font-size: 12.5px; color: #b0b9c9; }

/* 手机端自适应 */
@media (max-width: 640px) {
  .aq-head { padding-top: 40px; }
  .aq-card { padding: 36px 22px; }
  .aq-title { font-size: 24px; }
  .aq-btn { padding: 0 18px; }
  .aq-links { gap: 10px; }
  .aq-link { padding: 9px 14px; }
}

/* ============ 授权中心 V2（参考 auth.nvvs.cn：Tab 切换 + 应用卡网格） ============ */
.auth2 { padding: 46px 0 90px; }
.a2-wrap { max-width: 1060px; }

/* Tab 切换栏 */
.a2-tabs {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}
.a2-tab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 24px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid #e6ebf3;
  color: #5a6b85;
  font-size: 14px;
  font-weight: 600;
  transition: all .25s;
}
.a2-tab svg { width: 16px; height: 16px; }
.a2-tab:hover { color: #006eff; border-color: rgba(0, 110, 255, .4); }
.a2-tab.active {
  background: linear-gradient(134deg, #13adff, #006eff);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 8px 20px rgba(0, 110, 255, .3);
}
.a2-panel { display: none; }
.a2-panel.active { display: block; }

/* 卡片 */
.a2-card {
  background: #fff;
  border: 1px solid #e6ebf3;
  border-radius: 14px;
  box-shadow: 0 8px 26px rgba(11, 29, 48, 0.05);
  margin-bottom: 22px;
  overflow: hidden;
}
.a2-card-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 20px 26px;
  border-bottom: 1px solid #f0f3f8;
}
.a2-card-head svg { width: 20px; height: 20px; color: #006eff; }
.a2-card-head h2 { font-size: 17px; font-weight: 700; color: var(--ink-strong); }
.a2-card-body { padding: 24px 26px 26px; }

/* 表单 */
.a2-field { margin-bottom: 20px; }
.a2-field > label { display: block; margin-bottom: 10px; font-size: 13.5px; font-weight: 600; color: #5a6b85; }
.a2-input {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid #dcdfe6;
  border-radius: 10px;
  font-size: 14px;
  color: var(--ink);
  background: #fff;
  outline: none;
  transition: border-color .25s, box-shadow .25s;
}
.a2-input:focus { border-color: #006eff; box-shadow: 0 0 0 3px rgba(0, 110, 255, .1); }

/* 应用选择卡网格 */
.a2-app-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.a2-app {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 18px 14px;
  border: 2px solid #ebeef5;
  border-radius: 12px;
  cursor: pointer;
  transition: all .25s;
  text-align: center;
}
.a2-app:hover { border-color: #a0cfff; transform: translateY(-2px); }
.a2-app.selected { border-color: #006eff; background: #ecf5ff; }
.a2-app img { width: 56px; height: 56px; object-fit: cover; border-radius: 12px; }
.a2-app b { font-size: 14.5px; color: var(--ink-strong); }
.a2-app span { font-size: 12px; color: #8a94a6; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
/* 应用卡上的「在线购买」：直接进产品中心那套「立即购买」（结账页），没有关联产品页的应用不显示 */
.a2-app-buy {
  display: block;
  width: 100%;
  margin-top: 10px;
  padding: 8px 0;
  border-radius: 8px;
  background: linear-gradient(134deg, #13adff, #006eff);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  text-align: center;
  transition: filter .25s;
}
.a2-app-buy:hover { filter: brightness(1.1); color: #fff; }
@media (max-width: 768px) { .a2-app-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .a2-app-grid { grid-template-columns: 1fr; } }

/* 提交按钮 */
.a2-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 13px 24px;
  border-radius: 10px;
  background: linear-gradient(134deg, #13adff, #006eff);
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 2px;
  transition: filter .25s, transform .2s;
}
.a2-submit svg { width: 17px; height: 17px; }
.a2-submit:hover { filter: brightness(1.1); }
.a2-submit:disabled { opacity: .7; cursor: not-allowed; }
.a2-submit-sm { width: auto; padding: 11px 22px; letter-spacing: 1px; }

/* 小按钮 */
.a2-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 22px;
  border-radius: 9px;
  background: linear-gradient(134deg, #13adff, #006eff);
  color: #fff;
  font-size: 13.5px;
  font-weight: 600;
  transition: filter .25s;
  white-space: nowrap;
}
.a2-btn:hover { filter: brightness(1.1); color: #fff; }
.a2-btn:disabled { opacity: .7; cursor: not-allowed; }
.a2-btn-plain { background: #fff; border: 1px solid #dcdfe6; color: #5a6b85; }
.a2-btn-plain:hover { color: #006eff; border-color: #006eff; filter: none; }

/* 结果提示 */
.a2-result { display: none; margin-top: 18px; padding: 14px 18px; border-radius: 10px; font-size: 14px; line-height: 1.8; }
.a2-result.show { display: block; }
.a2-result.ok { background: #e8f8ef; border: 1px solid #b5e7c9; color: #0f7b3d; }
.a2-result.err { background: #fdeeee; border: 1px solid #f5c2c2; color: #c0392b; }
.a2-dlrow { margin-top: 12px; }

/* 公告卡 */
.a2-notice { display: flex; gap: 14px; padding: 22px 26px; }
.a2-notice > svg { flex: none; width: 22px; height: 22px; color: #006eff; }
.a2-notice-body { font-size: 13.5px; color: #5a6b85; line-height: 1.9; }
.a2-notice-body p { margin: 0 0 6px; }
.a2-notice-body h3 { font-size: 14px; color: var(--ink-strong); margin: 8px 0 4px; }

/* 友情链接 */
.a2-links { display: flex; flex-wrap: wrap; gap: 12px; }
.a2-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 18px;
  border: 1px solid #e3e6ec;
  border-radius: 9px;
  background: #f8fafc;
  color: #5a6b85;
  font-size: 13.5px;
  transition: all .25s;
}
.a2-link svg { width: 15px; height: 15px; }
.a2-link:hover { color: #006eff; border-color: #006eff; }

/* 下载 tab 应用卡 */
.a2-app-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-bottom: 20px; }
.a2-appcard { display: flex; gap: 14px; padding: 18px; border: 1px solid #ebeef5; border-radius: 12px; transition: all .25s; }
.a2-appcard:hover { border-color: #a0cfff; box-shadow: 0 8px 20px rgba(0, 70, 160, .1); }
.a2-appcard > img { width: 76px; height: 76px; object-fit: cover; border-radius: 12px; flex: none; }
.a2-appcard-body h3 { font-size: 15.5px; color: var(--ink-strong); }
.a2-appcard-body p { margin: 6px 0 12px; font-size: 12.5px; color: #8a94a6; line-height: 1.6; }
.a2-appcard-actions { display: flex; gap: 10px; }
@media (max-width: 768px) { .a2-app-cards { grid-template-columns: 1fr; } }

/* 下载验证框 */
.a2-dlbox { margin-top: 18px; padding: 20px; background: #f8fbff; border: 1px dashed #a0cfff; border-radius: 12px; }
.a2-dlbox h3 { font-size: 14.5px; color: var(--ink-strong); margin-bottom: 14px; }
.a2-dl-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.a2-dl-grid .a2-submit-sm { grid-column: span 2; }
@media (max-width: 640px) { .a2-dl-grid { grid-template-columns: 1fr; } .a2-dl-grid .a2-submit-sm { grid-column: auto; } }

/* 验证码行 */
.a2-code-row { display: flex; gap: 10px; }
.a2-code-row .a2-input { flex: 1; }
.a2-code-row .a2-btn { flex: none; }

/* 日志弹窗 */
.a2-modal { position: fixed; inset: 0; z-index: 999; }
.a2-modal[hidden] { display: none; }
.a2-modal-mask { position: absolute; inset: 0; background: rgba(11, 29, 48, .45); }
.a2-modal-dialog {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(640px, calc(100vw - 40px));
  max-height: 70vh;
  overflow: auto;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, .25);
}
.a2-modal-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 22px; border-bottom: 1px solid #f0f3f8; position: sticky; top: 0; background: #fff; }
.a2-modal-head h3 { font-size: 16px; font-weight: 700; color: var(--ink-strong); }
.a2-modal-close { font-size: 22px; color: #8a94a6; line-height: 1; }
.a2-modal-close:hover { color: var(--ink-strong); }
.a2-modal-body { padding: 20px 22px; font-size: 14px; color: #4a5f80; line-height: 1.9; }

/* ============ 授权中心 V3：左侧菜单布局 + 首页风格标题 ============ */
.auth2 { padding: 40px 0 90px; }
.a2-head { text-align: center; padding: 14px 0 36px; }
.a2-head-title { font-size: 36px; font-weight: 800; color: #2b3441; letter-spacing: 3px; }
.a2-head-sub { margin-top: 12px; font-size: 14px; color: #8a94a6; letter-spacing: 1px; }
.a2-layout { display: flex; gap: 24px; align-items: flex-start; }
.a2-menu {
  flex: 0 0 214px;
  background: #fff;
  border: 1px solid #e6ebf3;
  border-radius: 14px;
  padding: 12px;
  box-shadow: 0 8px 26px rgba(11, 29, 48, 0.05);
  position: sticky;
  top: 92px;
}
.a2-menu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 13px 16px;
  margin-bottom: 4px;
  border-radius: 10px;
  color: #5a6b85;
  font-size: 14.5px;
  font-weight: 600;
  text-align: left;
  transition: all .25s;
}
.a2-menu-item:last-child { margin-bottom: 0; }
.a2-menu-item svg { width: 17px; height: 17px; flex: none; }
.a2-menu-item:hover { color: #006eff; background: #f0f6ff; }
.a2-menu-item.active {
  background: linear-gradient(134deg, #13adff, #006eff);
  color: #fff;
  box-shadow: 0 6px 16px rgba(0, 110, 255, .3);
}
.a2-content { flex: 1; min-width: 0; }

/* 移动端：菜单横排在标题下方 */
@media (max-width: 900px) {
  .a2-layout { flex-direction: column; }
  .a2-menu {
    flex: none;
    width: 100%;
    display: flex;
    gap: 8px;
    position: static;
    overflow-x: auto;
    padding: 10px;
  }
  .a2-menu-item { flex: none; width: auto; margin-bottom: 0; padding: 10px 16px; }
  .a2-head-title { font-size: 26px; }
}

/* ============ 授权中心 V4：横向 Tab（样式与首页产品中心 sol-tab 一致） ============ */
.a2-tabs-v3 { display: flex; gap: 16px; margin-bottom: 30px; }
.a2-tabv {
  position: relative;
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 20px 16px 16px;
  background: #fff;
  border: 1px solid #e3e6ec;
  border-radius: 12px;
  transition: all .25s;
}
.a2-tabv-num { font-size: 26px; font-weight: 800; color: #b3bfd1; line-height: 1.2; }
.a2-tabv-text { font-size: 15px; color: #5a6b85; margin-top: 4px; font-weight: 600; }
.a2-tabv:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(0, 110, 255, .18); border-color: rgba(0, 110, 255, .4); }
.a2-tabv:hover .a2-tabv-text { color: #006eff; }
.a2-tabv.active {
  background: linear-gradient(134deg, #13adff, #006eff);
  border-color: transparent;
  box-shadow: 0 10px 26px rgba(0, 110, 255, .35);
}
.a2-tabv.active .a2-tabv-num,
.a2-tabv.active .a2-tabv-text { color: #fff; }
/* 激活标签左下角小尖角三角（与产品中心一致） */
.a2-tabv.active::after {
  content: "";
  position: absolute;
  left: 22px;
  bottom: -9px;
  width: 0;
  height: 0;
  border-left: 9px solid #006eff;
  border-bottom: 9px solid transparent;
}
@media (max-width: 768px) {
  .a2-tabs-v3 { flex-wrap: wrap; }
  .a2-tabv { flex: 1 1 30%; min-width: 0; }
}
@media (max-width: 480px) {
  .a2-tabv { flex: 1 1 45%; }
}

/* ============ 授权中心 V5：连续横板 + 竖线分隔 + hover 切换 ============ */
.a2-tabs-v3 {
  display: flex;
  margin-bottom: 30px;
  background: #fff;
  border: 1px solid #e3e6ec;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(11, 29, 48, 0.05);
}
.a2-tabv {
  position: relative;
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 16px 10px 14px;
  background: #fff;
  transition: background .25s, box-shadow .25s;
}
/* 中间竖线分隔 */
.a2-tabv + .a2-tabv { border-left: 1px solid #e8edf5; }
.a2-tabv-num { font-size: 24px; font-weight: 800; color: #006eff; line-height: 1.1; transition: color .25s; }
.a2-tabv-text { font-size: 13.5px; color: #8a94a6; font-weight: 600; transition: color .25s; }
/* 鼠标放上去：蓝色渐变（与选中一致） */
.a2-tabv:hover {
  background: linear-gradient(134deg, #13adff, #006eff);
  box-shadow: 0 10px 26px rgba(0, 110, 255, .3);
  z-index: 1;
}
.a2-tabv:hover .a2-tabv-num,
.a2-tabv:hover .a2-tabv-text { color: #fff; }
.a2-tabv.active { background: linear-gradient(134deg, #13adff, #006eff); }
.a2-tabv.active .a2-tabv-num,
.a2-tabv.active .a2-tabv-text { color: #fff; }
.a2-tabv.active::after {
  content: "";
  position: absolute;
  left: 22px;
  bottom: -9px;
  width: 0;
  height: 0;
  border-left: 9px solid #006eff;
  border-bottom: 9px solid transparent;
}
@media (max-width: 768px) {
  .a2-tabs-v3 { flex-wrap: wrap; }
  .a2-tabv { flex: 1 1 33%; border-top: 1px solid #e8edf5; }
  .a2-tabv:nth-child(-n+3) { border-top: 0; }
}
@media (max-width: 480px) {
  .a2-tabv { flex: 1 1 50%; }
}

/* 授权中心 V6：Tab 仅保留标题文字（单行） */
.a2-tabv { flex-direction: row; gap: 0; padding: 14px 10px; }
.a2-tabv-text { font-size: 14.5px; margin: 0; }

/* 授权中心 V7：按钮去气泡包裹，通栏竖线分隔 */
.a2-tabv {
  background: transparent;
  padding: 15px 10px;
  transition: none;
}
.a2-tabv:hover {
  background: #f0f6ff;
  box-shadow: none;
  z-index: auto;
}
.a2-tabv.active { background: #f0f6ff; box-shadow: none; }
.a2-tabv:hover .a2-tabv-text,
.a2-tabv.active .a2-tabv-text { color: #006eff; }
/* 移除左下角三角箭头，改为底部蓝色指示条 */
.a2-tabv.active::after { display: none; }
.a2-tabv::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background: linear-gradient(90deg, #13adff, #006eff);
  opacity: 0;
  transition: opacity .25s;
}
.a2-tabv:hover::before,
.a2-tabv.active::before { opacity: 1; }

/* 授权中心 V8：彻底去气泡——hover/选中仅文字变蓝 + 底部蓝条，无任何色块背景 */
.a2-tabv:hover { background: transparent; }
.a2-tabv.active { background: transparent; }
.a2-tabv { background: transparent; }

/* ============ 授权中心 V9：与首页产品中心 sol-tab 完全一致的最终态复刻 ============ */
.a2-tabs-v3 {
  display: flex;
  gap: 16px;
  margin: 0 0 30px;
  flex-wrap: wrap;
  background: #fff;
  border: 1px solid #e6ecf5;
  border-radius: 12px;
  box-shadow: 0 10px 34px rgba(11, 29, 48, .08);
}
.a2-tabv {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  min-width: 0;
  padding: 26px 16px;
  background: #fff;
  border-radius: 0;
  text-align: center;
  transition: all .25s;
}
/* 中间竖线分隔 */
.a2-tabv + .a2-tabv { border-left: 1px solid #e6ecf5; }
.a2-tabv-text { font-size: 16px; font-weight: 600; color: #5a6b85; }
/* hover 与选中一致：蓝渐变白字 + 上浮阴影 */
.a2-tabv:hover {
  background: linear-gradient(134deg, #13adff, #006eff);
  transform: translateY(-3px);
  box-shadow: 0 10px 26px rgba(0, 110, 255, .35);
  z-index: 1;
}
.a2-tabv:hover .a2-tabv-text { color: #fff; }
.a2-tabv.active {
  background: linear-gradient(134deg, #13adff, #006eff);
  box-shadow: 0 10px 26px rgba(0, 110, 255, .35);
}
.a2-tabv.active .a2-tabv-text { color: #fff; }
/* 清除旧版底部指示条，恢复左下角小尖角三角（与产品中心一致） */
.a2-tabv::before { display: none; }
.a2-tabv.active::after {
  content: "";
  position: absolute;
  left: 22px;
  bottom: -9px;
  width: 0;
  height: 0;
  border-left: 9px solid #006eff;
  border-bottom: 9px solid transparent;
}
/* 移动端：与产品中心一致 */
@media (max-width: 768px) {
  .a2-tabv { flex: 1 1 45%; }
  .a2-tabv + .a2-tabv { border-left: 0; }
}

/* 授权中心 V10：按钮间无空隙，紧贴排列 */
.a2-tabs-v3 { gap: 0; }

/* ============ 在线咨询浮窗（全站） ============ */
.consult-widget { position: fixed; right: 26px; bottom: 26px; z-index: 90; }
.consult-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 13px 22px;
  border-radius: 999px;
  background: linear-gradient(134deg, #13adff, #006eff);
  color: #fff;
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: 1px;
  box-shadow: 0 10px 26px rgba(0, 110, 255, .4);
  transition: transform .25s, box-shadow .25s;
}
.consult-btn:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(0, 110, 255, .5); }
.consult-btn svg { width: 18px; height: 18px; }
.consult-panel {
  position: absolute;
  right: 0;
  bottom: 62px;
  width: 320px;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 18px 50px rgba(11, 29, 48, .2);
  overflow: hidden;
}
.consult-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 10px;
  padding: 14px 16px;
  background: linear-gradient(134deg, #13adff, #006eff);
  color: #fff;
}
.consult-head b { font-size: 15px; letter-spacing: 1px; }
.consult-head span { font-size: 11.5px; opacity: .85; }
.consult-close {
  margin-left: auto;
  background: none;
  border: 0;
  color: #fff;
  font-size: 20px;
  line-height: 1;
}
.consult-panel form { display: flex; flex-direction: column; gap: 10px; padding: 16px; }
.consult-panel form input,
.consult-panel form textarea {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid #e3e6ec;
  border-radius: 10px;
  font-size: 13.5px;
  font-family: inherit;
  outline: none;
  transition: border-color .25s, box-shadow .25s;
  resize: none;
}
.consult-panel form input:focus,
.consult-panel form textarea:focus { border-color: #006eff; box-shadow: 0 0 0 3px rgba(0, 110, 255, .1); }
.consult-hp { position: absolute; left: -9999px; opacity: 0; height: 0; }
.consult-submit { width: 100%; padding: 11px; border-radius: 10px; }
.consult-note { text-align: center; font-size: 11.5px; color: #9aa7bd; margin: 0; }
.consult-done { text-align: center; padding: 14px 6px; }
.consult-done b { display: block; margin-top: 8px; font-size: 15px; color: var(--ink-strong); }
.consult-done p { margin-top: 4px; font-size: 12.5px; color: #7a8aa3; }
@media (max-width: 640px) {
  .consult-panel { width: calc(100vw - 40px); }
  .consult-widget { right: 16px; bottom: 16px; }
}

/* ============ 轮播文字美化（对标参考站：43px 标题 / 13px 描述 / 纯蓝按钮） ============ */
.hero-slide.has-media .hero-title {
  font-size: 43px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.1;
  color: #2a3240;
  text-shadow: none;
}
.hero-slide.has-media .hero-subtitle {
  display: block;
  max-width: 480px;
  font-size: 13px;
  line-height: 1.7;
  letter-spacing: 0;
  color: #2a3240;
  text-shadow: none;
}
.hero-slide.has-media .hero-subtitle::before { display: none; }
.hero-slide.has-media .hero-tag {
  padding: 0;
  letter-spacing: 1px;
  background: none;
  border: 0;
  backdrop-filter: none;
  box-shadow: none;
}
.hero-slide.has-media .hero-tag-orange { color: #ffb057; }
.hero-slide.has-media .hero-btn {
  background: #0052d9;
  color: #fff;
  letter-spacing: 0;
  box-shadow: 0 12px 40px rgba(11, 83, 255, .24);
}
.hero-slide.has-media .hero-btn:hover { opacity: .8; background: #0052d9; color: #fff; box-shadow: 0 12px 40px rgba(11, 83, 255, .24); }
/* 指示点：横线 + 蓝色从左到右进度填充（对标参考站） */
.hero-dots .hero-dot {
  width: 40px;
  height: 4px;
  border-radius: 0;
  background: rgba(38, 38, 38, .28);
}
.hero-dots .hero-dot.active { width: 40px; background: rgba(38, 38, 38, .28); }
/* 文字入场动画：切到当前张时逐行上浮淡入 */
.hero-slide .hero-tag,
.hero-slide .hero-title,
.hero-slide .hero-subtitle,
.hero-slide .hero-btn { opacity: 0; }
.hero-slide.active .hero-tag { animation: heroIn .7s .1s ease-out forwards; }
.hero-slide.active .hero-title { animation: heroIn .8s .25s ease-out forwards; }
.hero-slide.active .hero-subtitle { animation: heroIn .8s .4s ease-out forwards; }
.hero-slide.active .hero-btn { animation: heroIn .8s .55s ease-out forwards; }
@keyframes heroIn {
  from { opacity: 0; transform: translateY(26px); }
  to { opacity: 1; transform: none; }
}

/* ============ 用户中心（官网风格 + Noto Sans SC） ============ */
/* 登录/注册页 */
.user-auth-page {
  min-height: 62vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 60px 20px;
  background:
    radial-gradient(600px 300px at 50% 0%, rgba(19, 173, 255, .1), transparent 60%),
    var(--bg);
}
.user-auth-card {
  width: 100%;
  max-width: 420px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 14px 44px rgba(11, 29, 48, .1);
  padding: 40px 36px;
  text-align: center;
}
.user-auth-card h2 { font-size: 24px; font-weight: 700; color: var(--ink-strong); letter-spacing: 2px; }
.user-auth-sub { margin: 8px 0 24px; font-size: 13.5px; color: #8a94a6; }
.uaf-item { text-align: left; margin-bottom: 16px; }
.uaf-item label { display: block; margin-bottom: 7px; font-size: 13px; font-weight: 600; color: #5a6b85; }
.uaf-input {
  width: 100%;
  padding: 11px 14px;
  border: 1px solid #e3e6ec;
  border-radius: 10px;
  font-size: 14px;
  color: var(--ink);
  background: #fff;
  outline: none;
  transition: border-color .25s, box-shadow .25s;
  font-family: inherit;
  resize: vertical;
}
.uaf-input:focus { border-color: #006eff; box-shadow: 0 0 0 3px rgba(0, 110, 255, .1); }
.uaf-input:disabled { background: #f5f7fa; color: #8a94a6; }
.uaf-submit { width: 100%; padding: 12px; margin-top: 6px; border-radius: 10px; font-size: 15px; letter-spacing: 4px; }
.uaf-links { margin-top: 16px; display: flex; justify-content: space-between; font-size: 13px; }
.uaf-links a { color: #5a6b85; }
.uaf-links a:hover { color: var(--primary); }

/* 用户中心布局 */
.user-wrap { padding: 40px 0 80px; background: var(--bg); min-height: 62vh; }
.user-layout { display: flex; gap: 22px; align-items: flex-start; }
.user-side {
  flex: 0 0 232px;
  background: #fff;
  border: 1px solid #e6ebf3;
  border-radius: 14px;
  box-shadow: 0 6px 22px rgba(11, 29, 48, .05);
  overflow: hidden;
  position: sticky;
  top: 92px;
}
.user-side-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 18px;
  background: linear-gradient(134deg, #13adff, #006eff);
  color: #fff;
}
.user-avatar {
  flex: none;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .25);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 19px;
  font-weight: 700;
}
.user-side-info b { display: block; font-size: 15px; }
.user-side-info span { font-size: 12.5px; opacity: .9; }
.us-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  font-size: 14px;
  color: #5a6b85;
  border-bottom: 1px solid #f5f7fa;
  transition: all .2s;
}
.us-item:hover { color: var(--primary); background: #f0f6ff; }
.us-item.active {
  background: linear-gradient(134deg, #13adff, #006eff);
  color: #fff;
  font-weight: 600;
}
.us-logout { color: #c0392b; }
.us-logout:hover { color: #c0392b; background: #fdeeee; }
.user-content { flex: 1; min-width: 0; }

/* 内容卡片 */
.user-card {
  background: #fff;
  border: 1px solid #e6ebf3;
  border-radius: 14px;
  box-shadow: 0 6px 22px rgba(11, 29, 48, .05);
  padding: 26px 28px;
  margin-bottom: 18px;
}
.user-card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.user-card-head h2 { font-size: 19px; font-weight: 700; color: var(--ink-strong); }
.us-more { font-size: 13px; color: #5a6b85; }
.us-more:hover { color: var(--primary); }
.user-tip {
  background: #e6f7ff;
  border: 1px solid #bae7ff;
  border-radius: 8px;
  padding: 10px 16px;
  font-size: 13px;
  color: #4a6a90;
  margin-bottom: 18px;
  line-height: 1.7;
}
.user-notice {
  background: #fffbe6;
  border: 1px solid #ffe58f;
  border-radius: 8px;
  padding: 10px 16px;
  font-size: 13px;
  color: #7a5c00;
  margin-bottom: 18px;
}
.user-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 22px; }
.user-stat {
  text-align: center;
  padding: 18px 10px;
  border-radius: 12px;
  background: linear-gradient(134deg, #4d9fff, #006eff);
  color: #fff;
}
.user-stat b { display: block; font-size: 24px; font-weight: 700; }
.user-stat span { font-size: 12.5px; opacity: .88; }
.user-quick { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.user-quick-item {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 16px 14px;
  border: 1px solid #e6ebf3;
  border-radius: 12px;
  background: #f8fbff;
  transition: all .25s;
}
.user-quick-item:hover { transform: translateY(-3px); border-color: rgba(0, 110, 255, .4); box-shadow: 0 10px 24px rgba(0, 70, 160, .12); }
.user-quick-item b { font-size: 14.5px; color: var(--ink-strong); }
.user-quick-item span { font-size: 12px; color: #8a94a6; }

/* 表格 */
.us-table { width: 100%; border-collapse: collapse; }
.us-table thead th {
  background: #fafbfd;
  font-size: 13px;
  font-weight: 600;
  color: #5a6b85;
  padding: 11px 14px;
  text-align: left;
  border-bottom: 1px solid #eef1f6;
}
.us-table tbody td {
  padding: 12px 14px;
  font-size: 13.5px;
  color: #4a5f80;
  border-bottom: 1px solid #f5f7fa;
  word-break: break-all;
}
.us-table tbody tr:hover td { background: #f8fbff; }
.us-ellipsis { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.us-mono { font-family: Consolas, Menlo, monospace; font-size: 12.5px; }
.us-empty { padding: 30px 0; text-align: center; color: #9aa7bd; font-size: 13.5px; }
.us-badge { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 12px; }
.us-badge-ok { background: #e8f8ef; color: #0f7b3d; }
.us-badge-no { background: #fdeeee; color: #c0392b; }
/* 我的授权：待激活徽标 + 下载源码按钮 */
.us-badge-wait { background: #fff7e6; color: #d46b08; }
.us-ops { white-space: nowrap; }
.us-ops > * { margin-right: 6px; }
.us-btn-dl {
  display: inline-block; padding: 4px 12px; border-radius: 6px; font-size: 12.5px;
  background: #006eff; color: #fff !important; text-decoration: none;
}
.us-btn-dl:hover { background: #0056cc; color: #fff !important; }
.us-rebind-btn {
  display: inline-block; padding: 4px 12px; border-radius: 6px; font-size: 12.5px;
  background: #fff; color: #006eff; border: 1px solid #bcd6ff; cursor: pointer;
}
.us-rebind-btn:hover { border-color: #006eff; background: #f3f8ff; }
.us-plus { color: #0f7b3d; }
.us-minus { color: #c0392b; }
.us-balance { font-size: 14px; color: #5a6b85; }
.us-balance b { font-size: 18px; color: #006eff; }

/* 提示与验证码行 */
.us-msg { padding: 12px 16px; border-radius: 10px; font-size: 13.5px; margin-bottom: 16px; }
.us-msg-ok { background: #e8f8ef; border: 1px solid #b5e7c9; color: #0f7b3d; }
.us-msg-err { background: #fdeeee; border: 1px solid #f5c2c2; color: #c0392b; }
.us-code-row { display: flex; gap: 10px; }
.us-code-row .uaf-input { flex: 1; }
.us-send-btn { flex: none; white-space: nowrap; }

/* 工单聊天 */
.us-sub-title { font-size: 15px; font-weight: 700; color: var(--ink-strong); margin: 20px 0 14px; }
.us-chat { display: flex; flex-direction: column; gap: 12px; }
.us-msg-item { max-width: 78%; padding: 12px 16px; border-radius: 12px; }
.us-msg-item b { display: block; font-size: 13px; margin-bottom: 5px; }
.us-msg-item b span { margin-left: 8px; font-size: 12px; font-weight: 400; color: #8a94a6; }
.us-msg-item p { font-size: 14px; line-height: 1.8; word-break: break-all; }
.us-me { align-self: flex-start; background: #f5f7fa; border: 1px solid #e8edf5; }
.us-kf { align-self: flex-end; background: #e6f4ff; border: 1px solid #bae7ff; }
.us-kf b { color: #006eff; }

/* 响应式 */
@media (max-width: 900px) {
  .user-layout { flex-direction: column; }
  .user-side { flex: none; width: 100%; position: static; display: flex; flex-wrap: wrap; }
  .user-side-head { width: 100%; }
  .us-item { flex: 1 1 30%; border-bottom: 0; }
  .user-stats, .user-quick { grid-template-columns: repeat(2, 1fr); }
}

/* 认证页错误提示 */
.uaf-err { text-align: left; background: #fdeeee; border: 1px solid #f5c2c2; color: #c0392b; border-radius: 8px; padding: 9px 14px; font-size: 13px; margin-bottom: 14px; }

/* ============ 用户中心独立布局（对标站 backend 风格，官网蓝） ============ */
.uc-page { min-height: 100vh; display: flex; background: #f0f2f5; }

/* 独立侧栏 */
.uc-sider {
  position: fixed;
  left: 0;
  top: 0;
  bottom: 0;
  width: 232px;
  background: #fff;
  border-right: 1px solid #e8edf5;
  display: flex;
  flex-direction: column;
  z-index: 50;
  box-shadow: 2px 0 10px rgba(11, 29, 48, .03);
}
.uc-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 18px 20px 14px;
  border-bottom: 1px solid #f0f3f8;
}
.uc-logo-mark {
  width: 36px;
  height: 36px;
  border-radius: 9px;
  background: linear-gradient(134deg, #9b88ff, #6c7bff);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  font-weight: 800;
  overflow: hidden;
}
.uc-logo-mark img { width: 100%; height: 100%; object-fit: cover; }
.uc-logo b { font-size: 20px; font-weight: 900; color: var(--ink-strong); }
.uc-sider-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 16px 14px 10px;
  padding: 13px 14px;
  border-radius: 12px;
  background: linear-gradient(134deg, #9b88ff, #6c7bff);
  color: #fff;
}
.uc-avatar {
  flex: none;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .25);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 700;
}
.uc-sider-info { min-width: 0; }
.uc-sider-info b { display: block; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.uc-sider-info span { font-size: 12px; opacity: .9; }

/* 菜单 */
.uc-nav { flex: 1; overflow-y: auto; padding: 4px 10px; }
.uc-item {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 11px 14px;
  margin-bottom: 3px;
  border-radius: 9px;
  color: #5a6b85;
  font-size: 14px;
  transition: all .2s;
}
.uc-item svg { width: 17px; height: 17px; flex: none; }
.uc-item:hover { color: #6c7bff; background: #f5f5ff; }
.uc-item.active {
  background: linear-gradient(134deg, #9b88ff, #6c7bff);
  color: #fff;
  font-weight: 600;
  box-shadow: 0 6px 16px rgba(108, 123, 255, .25);
}
.uc-sider-foot { border-top: 1px solid #f0f3f8; padding: 10px; }
.uc-item-logout { color: #c0392b; }
.uc-item-logout:hover { color: #c0392b; background: #fdeeee; }

/* 主区 */
.uc-main { flex: 1; margin-left: 232px; display: flex; flex-direction: column; min-height: 100vh; min-width: 0; }
.uc-topbar {
  height: 60px;
  background: #fff;
  border-bottom: 1px solid #e8edf5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  position: sticky;
  top: 0;
  z-index: 40;
}
.uc-topbar-title { font-size: 15px; color: #4a5f80; }
.uc-topbar-title b { color: var(--ink-strong); font-size: 16px; }
.uc-topbar-sub { margin-left: 8px; font-size: 12.5px; color: #9aa7bd; }
.uc-topbar-right { display: flex; gap: 18px; }
.uc-toplink {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13.5px;
  color: #5a6b85;
  transition: color .2s;
}
.uc-toplink svg { width: 15px; height: 15px; }
.uc-toplink:hover { color: #6c7bff; }
.uc-toplink-danger:hover { color: #c0392b; }
.uc-body { flex: 1; padding: 22px 24px 40px; }
.uc-container { max-width: 1080px; margin: 0 auto; }

/* 认证页独立全屏 */
.uc-auth-page {
  min-height: 100vh;
  background:
    radial-gradient(700px 380px at 50% -10%, rgba(19, 173, 255, .18), transparent 65%),
    radial-gradient(520px 300px at 90% 110%, rgba(108, 123, 255, .1), transparent 60%),
    linear-gradient(180deg, #f2f7ff, #f0f2f5);
  position: relative;
}
.uc-back {
  position: absolute;
  left: 26px;
  top: 22px;
  font-size: 13.5px;
  color: #5a6b85;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.uc-back:hover { color: #6c7bff; }
.uc-auth-page .user-auth-page { min-height: 100vh; background: none; }

/* 响应式 */
@media (max-width: 900px) {
  .uc-sider { width: 64px; }
  .uc-logo b, .uc-sider-info, .uc-item span { display: none; }
  .uc-logo { justify-content: center; padding: 16px 0 12px; }
  .uc-sider-head { justify-content: center; padding: 10px 0; margin: 12px 8px 6px; }
  .uc-item { justify-content: center; padding: 12px 0; }
  .uc-sider-foot { padding: 8px; }
  .uc-main { margin-left: 64px; }
}

/* ============ 用户中心 V2：分组菜单 + 商城 + 转让 + 提现 ============ */
/* 分组标题 */
.uc-group {
  padding: 16px 14px 6px;
  font-size: 11.5px;
  letter-spacing: 2px;
  color: #9aa7bd;
  text-transform: uppercase;
}

/* 商城 */
.uc-mall-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.uc-mall-card {
  border: 1px solid #e6ebf3;
  border-radius: 14px;
  overflow: hidden;
  transition: all .3s;
  background: #fff;
}
.uc-mall-card:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(0, 70, 160, .14); border-color: rgba(108, 123, 255, .35); }
.uc-mall-img { position: relative; height: 150px; overflow: hidden; background: #f5f5ff; }
.uc-mall-img img { width: 100%; height: 100%; object-fit: cover; }
.uc-mall-price {
  position: absolute;
  right: 12px;
  bottom: 10px;
  padding: 4px 14px;
  border-radius: 999px;
  background: linear-gradient(134deg, #9b88ff, #6c7bff);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  box-shadow: 0 6px 16px rgba(108, 123, 255, .35);
}
.uc-mall-body { padding: 18px; }
.uc-mall-body h3 { font-size: 16.5px; color: var(--ink-strong); }
.uc-mall-body p { margin: 6px 0 14px; font-size: 12.5px; color: #8a94a6; line-height: 1.6; }
.uc-mall-input { margin-bottom: 10px; }
.uc-mall-btn { width: 100%; padding: 11px; border-radius: 10px; }
@media (max-width: 768px) { .uc-mall-grid { grid-template-columns: 1fr; } }

/* 转让弹窗 */
.uc-modal { position: fixed; inset: 0; z-index: 300; }
.uc-modal[hidden] { display: none; }
.uc-modal-mask { position: absolute; inset: 0; background: rgba(11, 29, 48, .45); }
.uc-modal-dialog {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(440px, calc(100vw - 40px));
  background: #fff;
  border-radius: 14px;
  padding: 22px 24px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, .25);
}
.uc-modal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.uc-modal-head h3 { font-size: 17px; font-weight: 700; color: var(--ink-strong); }
.uc-modal-head button { font-size: 20px; color: #8a94a6; }
.uc-modal-tip { font-size: 13px; color: #5a6b85; margin-bottom: 14px; background: #f8fbff; border: 1px solid #e8edf5; border-radius: 8px; padding: 9px 12px; }

/* API 文档 */
.uc-api-item { padding: 18px 0; border-bottom: 1px solid #f0f3f8; }
.uc-api-item:last-child { border-bottom: 0; }
.uc-api-item h3 { display: flex; align-items: center; gap: 10px; font-size: 15px; color: var(--ink-strong); }
.uc-api-method {
  padding: 2px 10px;
  border-radius: 5px;
  background: #eef0ff;
  color: #6c7bff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;
}
.uc-api-item p { margin: 8px 0 12px; font-size: 13px; color: #7a8aa3; }

/* 用户中心：右侧内容平铺占满 */
.uc-container { max-width: none; margin: 0; }

/* 商城一行 4 个商品 */
.uc-mall-grid { grid-template-columns: repeat(4, 1fr); gap: 16px; }
@media (max-width: 1200px) { .uc-mall-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 900px) { .uc-mall-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .uc-mall-grid { grid-template-columns: 1fr; } }

/* 用户中心：分组默认折叠可展开 */
.uc-group { margin: 2px 0; }
.uc-group-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 12px 16px;
  background: none;
  border: 0;
  color: #6b7c99;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 1px;
  cursor: pointer;
  transition: color .2s;
}
.uc-group-title:hover { color: #6c7bff; }
.uc-group-arrow { font-size: 10px; transition: transform .25s; }
.uc-group.open .uc-group-arrow { transform: rotate(180deg); }
.uc-group-items { max-height: 0; overflow: hidden; transition: max-height .3s ease; }
.uc-group.open .uc-group-items { max-height: 600px; }
/* 覆盖旧分组标题样式 */
.uc-group { padding: 0; font-size: inherit; letter-spacing: inherit; color: inherit; text-transform: none; }

/* ============ 用户中心 UI 重构：深色侧栏 + Ant 浅灰内容（与后台风格统一） ============ */
/* 侧栏：深蓝渐变 */
.uc-sider {
  background: linear-gradient(180deg, #0b1d30 0%, #0a1628 100%);
  border-right: 0;
  box-shadow: 2px 0 12px rgba(11, 29, 48, .2);
}
.uc-logo { border-bottom: 1px solid rgba(255, 255, 255, .07); }
.uc-logo b { color: #fff; }
.uc-sider-head {
  background: linear-gradient(134deg, #9b88ff, #6c7bff);
  box-shadow: 0 8px 20px rgba(108, 123, 255, .35);
}
.uc-group-title { color: rgba(255, 255, 255, .4); font-size: 12px; }
.uc-group-title:hover { color: rgba(255, 255, 255, .75); }
.uc-group-arrow { color: rgba(255, 255, 255, .4); }
.uc-item { color: rgba(255, 255, 255, .62); }
.uc-item:hover { color: #fff; background: rgba(19, 173, 255, .12); }
.uc-item.active {
  background: linear-gradient(134deg, #9b88ff, #6c7bff);
  color: #fff;
  box-shadow: 0 6px 16px rgba(108, 123, 255, .35);
}
.uc-sider-foot { border-top: 1px solid rgba(255, 255, 255, .07); }
.uc-item-logout { color: rgba(255, 255, 255, .45); }
.uc-item-logout:hover { color: #ff7875; background: rgba(255, 77, 79, .12); }

/* 顶栏 */
.uc-topbar {
  height: 64px;
  box-shadow: 0 1px 4px rgba(0, 21, 41, .08);
}
.uc-topbar-title { font-size: 16px; }
.uc-topbar-title b { font-size: 17px; }

/* 内容区 Ant 化 */
.uc-body { background: #f0f2f5; }
.user-card {
  border: 0;
  border-radius: 8px;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .03), 0 1px 6px -1px rgba(0, 0, 0, .02), 0 2px 4px 0 rgba(0, 0, 0, .02);
  padding: 24px;
  margin-bottom: 16px;
}
.user-card-head h2 { font-size: 17px; font-weight: 600; }
.user-tip { border-radius: 6px; font-size: 12.5px; padding: 9px 14px; }
.user-notice { border-radius: 6px; }

/* 表格 Ant 化 */
.us-table thead th { background: #fafafa; font-size: 12.5px; color: rgba(0, 0, 0, .85); padding: 11px 14px; border-bottom: 1px solid #f0f0f0; }
.us-table tbody td { font-size: 13px; color: rgba(0, 0, 0, .65); border-bottom: 1px solid #f0f0f0; }
.us-table tbody tr:hover td { background: #fafafa; }

/* 表单 Ant 化 */
.uaf-input { border-radius: 6px; }
.uaf-input:focus { border-color: #006eff; box-shadow: 0 0 0 3px rgba(0, 110, 255, .1); }
.uaf-submit { border-radius: 6px; letter-spacing: 2px; }

/* 统计卡与快捷入口统一圆角 */
.user-stat { border-radius: 8px; box-shadow: 0 4px 14px rgba(0, 110, 255, .22); }
.user-quick-item { border-radius: 8px; }
.us-msg { border-radius: 6px; }
.uc-mall-card { border-radius: 10px; }
.uc-mall-price { font-size: 14px; }

/* 认证页 */
.uc-auth-page .user-auth-card { border-radius: 10px; box-shadow: 0 8px 32px rgba(11, 29, 48, .12); }

/* ============ 用户中心 UI V4：Ant Design Pro 浅色企业后台 ============ */
/* 主色切换为 AntD 蓝 */
.uc-item.active { color: #6c7bff !important; background: #eef0ff !important; box-shadow: none !important; }
.uc-toplink:hover { color: #6c7bff; }
.uc-group-title:hover { color: #6c7bff; }
.uaf-submit, .uc-mall-btn { background: #6c7bff; }
.uaf-submit:hover, .uc-mall-btn:hover { background: #8290ff; }
.us-msg a, .user-card a { color: #1677ff; }
/* 按钮内的链接不受上面蓝字规则影响（蓝色按钮白字） */
.user-card .btn-primary, .us-msg .btn-primary { color: #ffffff; }
.user-card .btn-primary:hover, .us-msg .btn-primary:hover { color: #ffffff; }
.user-card .btn-dark, .us-msg .btn-dark { color: #ffffff; }

/* 侧栏：白色（antd Menu 浅色主题） */
.uc-sider {
  background: #fff;
  border-right: 1px solid #f0f0f0;
  box-shadow: none;
}
.uc-logo { border-bottom: 1px solid #f5f5f5; }
.uc-logo b { color: rgba(0, 0, 0, .88); }
.uc-group-title { color: rgba(0, 0, 0, .45); font-size: 12.5px; }
.uc-group-arrow { color: rgba(0, 0, 0, .45); }
.uc-item { color: rgba(0, 0, 0, .65); font-size: 13.5px; border-radius: 8px; }
.uc-item:hover { color: rgba(0, 0, 0, .88); background: #f5f5f5; }
.uc-sider-foot { border-top: 1px solid #f5f5f5; }
.uc-item-logout { color: rgba(0, 0, 0, .45); }
.uc-item-logout:hover { color: #ff4d4f; background: #fff1f0; }
/* 用户卡保持蓝渐变品牌色 */
.uc-sider-head { border-radius: 10px; }

/* 顶栏：面包屑 + 搜索 */
.uc-topbar { background: #fff; box-shadow: 0 1px 4px rgba(0, 21, 41, .08); padding: 0 24px; }
.uc-breadcrumb { display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: rgba(0, 0, 0, .45); }
.uc-breadcrumb a { color: rgba(0, 0, 0, .45); }
.uc-breadcrumb a:hover { color: #6c7bff; }
.uc-breadcrumb b { color: rgba(0, 0, 0, .88); font-weight: 600; }
.uc-crumb-sep { color: rgba(0, 0, 0, .25); }
.uc-search { position: relative; }
.uc-search svg { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); width: 14px; height: 14px; color: rgba(0, 0, 0, .35); }
.uc-search input {
  width: 210px;
  height: 32px;
  padding: 0 12px 0 32px;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  font-size: 13px;
  outline: none;
  transition: all .3s;
  background: #fff;
}
.uc-search input:focus { border-color: #6c7bff; box-shadow: 0 0 0 3px rgba(108, 123, 255, .1); }
.uc-search-drop {
  position: absolute;
  top: 40px;
  right: 0;
  width: 240px;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 6px 16px -8px rgba(0, 0, 0, .12), 0 9px 28px 0 rgba(0, 0, 0, .08);
  padding: 6px;
  display: none;
  z-index: 300;
}
.uc-search-drop a { display: block; padding: 8px 12px; border-radius: 6px; font-size: 13px; color: rgba(0, 0, 0, .65); }
.uc-search-drop a:hover { background: #f5f5f5; }
.uc-search-empty { padding: 10px 12px; font-size: 13px; color: rgba(0, 0, 0, .45); }
.uc-user-chip { display: flex; align-items: center; gap: 8px; }
.uc-user-chip .uc-avatar {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #6c7bff;
  color: #fff;
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.uc-user-name { font-size: 13.5px; color: rgba(0, 0, 0, .65); }

/* 内容区 */
.uc-body { background: #f5f5f5; padding: 20px 24px 40px; }

/* 统计卡：白色卡 + 迷你柱状图（antd 数据卡风格） */
.user-stats { grid-template-columns: repeat(4, 1fr); gap: 16px; }
.user-stat {
  background: #fff;
  border: 1px solid #f0f0f0;
  border-radius: 8px;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .03);
  padding: 18px;
  text-align: left;
}
.us-stat-top { display: flex; align-items: baseline; justify-content: space-between; }
.user-stat b { font-size: 26px; font-weight: 600; color: rgba(0, 0, 0, .88); }
.us-stat-tag {
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 999px;
  background: #e6f4ff;
  color: #1677ff;
}
.us-tag-green { background: #f6ffed; color: #52c41a; }
.us-tag-orange { background: #fff7e6; color: #fa8c16; }
.us-tag-blue { background: #e6f4ff; color: #1677ff; }
.us-stat-label { display: block; margin-top: 4px; font-size: 12.5px; color: rgba(0, 0, 0, .45); }
.us-mini-bars {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  height: 42px;
  margin-top: 12px;
}
.us-mini-bars i {
  flex: 1;
  border-radius: 2px 2px 0 0;
  background: #91caff;
  min-height: 6px;
  transition: height .3s;
}
.us-mini-bars i:nth-child(odd) { background: #1677ff; }
.us-mini-green i { background: #b7eb8f; }
.us-mini-green i:nth-child(odd) { background: #52c41a; }
.us-mini-orange i { background: #ffd591; }
.us-mini-orange i:nth-child(odd) { background: #fa8c16; }
.us-mini-blue i { background: #91caff; }
.us-mini-blue i:nth-child(odd) { background: #1677ff; }

/* 快捷入口 */
.user-quick-item { border-radius: 8px; border: 1px solid #f0f0f0; box-shadow: 0 1px 2px rgba(0, 0, 0, .02); background: #fff; }
.user-quick-item:hover { border-color: #1677ff; box-shadow: 0 6px 16px rgba(0, 0, 0, .08); }

/* 卡片统一边框阴影（antd） */
.user-card {
  border: 1px solid #f0f0f0;
  border-radius: 8px;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .03);
}
.uc-mall-card { border: 1px solid #f0f0f0; box-shadow: 0 1px 2px rgba(0, 0, 0, .03); }

/* 表格/徽章主色 */
.us-table thead th { color: rgba(0, 0, 0, .85); }
.us-badge-ok { background: #f6ffed; color: #52c41a; }
.us-balance b { color: #1677ff; }
.us-plus { color: #52c41a; }
.uc-api-method { background: #eef0ff; color: #6c7bff; }

/* 充值快捷金额 */
.uc-quick-amounts { display: flex; gap: 10px; margin-bottom: 16px; }
.uc-amount-btn {
  flex: 1;
  padding: 9px;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  background: #fff;
  color: rgba(0, 0, 0, .65);
  font-size: 13.5px;
  font-weight: 600;
  transition: all .2s;
}
.uc-amount-btn:hover { border-color: #6c7bff; color: #6c7bff; }

/* ============ 用户中心 V5：深藏蓝侧栏 + 仪表盘规格复刻 ============ */
/* ---------- 侧栏：深藏蓝（深蓝近黑，规格原文） ---------- */
.uc-sider {
  background: linear-gradient(180deg, #0b2438 0%, #081a2c 55%, #061525 100%);
  border-right: 0;
  box-shadow: 2px 0 12px rgba(6, 21, 37, .35);
}
.uc-logo { border-bottom: 1px solid rgba(255, 255, 255, .07); }
.uc-logo b { color: #fff; }
/* 用户卡：蓝渐变品牌色 */
.uc-sider-head {
  background: linear-gradient(134deg, #9b88ff, #6c7bff);
  box-shadow: 0 8px 20px rgba(108, 123, 255, .35);
}
.uc-group-title { color: rgba(255, 255, 255, .4); font-size: 12px; }
.uc-group-title:hover { color: rgba(255, 255, 255, .75); }
.uc-group-arrow { color: rgba(255, 255, 255, .4); }
.uc-item { color: rgba(255, 255, 255, .62); font-size: 13.5px; border-radius: 8px; }
/* 悬浮：淡蓝色背景高亮（规格原文） */
.uc-item:hover { color: #fff; background: rgba(108, 123, 255, .15); }
/* 激活：整行亮蓝 + 白字 */
.uc-item.active {
  background: #6c7bff !important;
  color: #fff !important;
  box-shadow: none !important;
}
.uc-sider-foot { border-top: 1px solid rgba(255, 255, 255, .07); }
.uc-item-logout { color: rgba(255, 255, 255, .45); }
.uc-item-logout:hover { color: #ff7875; background: rgba(255, 77, 79, .12); }
/* 移动端收缩模式适配深色 */
@media (max-width: 900px) {
  .uc-sider { background: linear-gradient(180deg, #0b2438, #061525); }
}

/* ---------- 仪表盘：欢迎语 ---------- */
.uc-welcome { margin-bottom: 16px; }
.uc-welcome h1 { font-size: 24px; font-weight: 600; color: rgba(0, 0, 0, .88); }
.uc-welcome p { margin-top: 4px; font-size: 13.5px; color: rgba(0, 0, 0, .45); }

/* ---------- 统计卡：白卡 + 数字 + 同比标签 + 迷你折线 ---------- */
.uc-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 16px; }
.uc-stat {
  display: block;
  background: #fff;
  border: 1px solid #f0f0f0;
  border-radius: 8px;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .03);
  padding: 18px 20px 12px;
  transition: box-shadow .25s, transform .25s;
}
.uc-stat:hover { box-shadow: 0 6px 18px rgba(0, 0, 0, .08); transform: translateY(-2px); }
.uc-stat-top { display: flex; align-items: center; justify-content: space-between; }
.uc-stat-label { font-size: 13px; color: rgba(0, 0, 0, .45); }
.uc-ratio { font-size: 12px; font-weight: 600; padding: 1px 8px; border-radius: 999px; }
.uc-ratio-up { background: #f6ffed; color: #52c41a; }
.uc-ratio-down { background: #fff1f0; color: #ff4d4f; }
.uc-ratio-flat { background: #f5f5f5; color: rgba(0, 0, 0, .45); }
.uc-stat-num { font-size: 28px; font-weight: 600; color: rgba(0, 0, 0, .88); margin-top: 6px; line-height: 1.3; }
.uc-stat-sub { font-size: 12px; color: rgba(0, 0, 0, .45); margin-top: 2px; }
.uc-mini-chart { height: 46px; margin-top: 8px; }
@media (max-width: 1100px) { .uc-stats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .uc-stats { grid-template-columns: 1fr; } }

/* ---------- 图表区 ---------- */
.uc-charts { display: grid; grid-template-columns: 1.6fr 1fr; gap: 16px; margin-bottom: 16px; }
.uc-chart-card { margin-bottom: 0; }
.uc-head-sub { font-size: 12.5px; color: rgba(0, 0, 0, .45); }
.uc-head-link { font-size: 13px; color: rgba(0, 0, 0, .45); }
.uc-head-link:hover { color: #6c7bff; }
@media (max-width: 1100px) { .uc-charts { grid-template-columns: 1fr; } }

/* ---------- 表格斑马纹 ---------- */
.us-table tbody tr:nth-child(even) td { background: #fafafa; }
.us-table tbody tr:hover td { background: #e6f4ff; }

/* 主按钮统一 #1677ff */
.uaf-submit, .uc-mall-btn { background: #6c7bff; }
.uaf-submit:hover, .uc-mall-btn:hover { background: #8290ff; }

/* ============ 用户中心 V6：参考站玻璃拟态复刻（#3b82f6 主色） ============ */
/* 字体：IBM Plex Sans + 系统中文栈（参考站同款） */
.uc-page, .uc-page * {
  font-family: "MiSans VF", "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
}

/* 背景：浅灰 + 紫蓝径向光晕（参考站 bg-gradient-main） */
.uc-page {
  background:
    radial-gradient(circle at 50% 50%, rgba(76, 29, 149, .05) 0%, rgba(124, 58, 237, .05) 25%, rgba(59, 130, 246, .05) 50%, rgba(255, 255, 255, 0) 100%),
    #f0f2f5;
}

/* 侧栏：白色玻璃拟态（参考站 --bg-sider: rgba(255,255,255,.7)） */
.uc-sider {
  background: rgba(255, 255, 255, .7);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-right: 1px solid rgba(255, 255, 255, .6);
  box-shadow: 2px 0 12px rgba(0, 0, 0, .04);
}
.uc-logo { border-bottom: 1px solid rgba(226, 232, 240, .8); }
.uc-logo b { color: #333d4b; }
.uc-sider-head {
  background: linear-gradient(135deg, #6c7bff, #5a6af0);
  box-shadow: 0 10px 20px -5px rgba(37, 99, 235, .4);
}
.uc-group-title { color: #94a3b8; font-size: 12px; }
.uc-group-title:hover { color: #6c7bff; }
.uc-group-arrow { color: #94a3b8; }
.uc-item { color: #64748b; font-size: 13.5px; border-radius: 10px; }
.uc-item:hover { color: #333d4b; background: #f1f5f9; }
/* active：浅蓝底 + 主色字（参考站 antd 风） */
.uc-item.active {
  background: #f5f7ff !important;
  color: #6c7bff !important;
  font-weight: 600;
  box-shadow: none !important;
}
.uc-sider-foot { border-top: 1px solid rgba(226, 232, 240, .8); }
.uc-item-logout { color: #94a3b8; }
.uc-item-logout:hover { color: #ef4444; background: #fef2f2; }

/* 顶栏：白色玻璃 */
.uc-topbar {
  background: rgba(255, 255, 255, .7);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(226, 232, 240, .8);
}
.uc-breadcrumb a, .uc-breadcrumb span { color: #94a3b8; }
.uc-breadcrumb b { color: #333d4b; }
.uc-user-name { color: #333d4b; }
.uc-user-chip .uc-avatar { background: linear-gradient(135deg, #6c7bff, #5a6af0); }
.uc-search input:focus { border-color: rgba(59, 130, 246, .2); box-shadow: 0 0 0 4px rgba(59, 130, 246, .1); }

/* 卡片：玻璃拟态白卡 + 12px 圆角 */
.user-card {
  background: rgba(255, 255, 255, .75);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, .6);
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .05);
  padding: 22px 24px;
}
.user-card-head h2 { font-size: 16px; font-weight: 600; color: #333d4b; }
.uc-head-link { color: #94a3b8; }
.uc-head-link:hover { color: #6c7bff; }

/* 公告条 */
.uc-notice-bar {
  background: rgba(255, 255, 255, .75);
  border: 1px solid rgba(255, 255, 255, .6);
  border-radius: 12px;
  padding: 11px 18px;
  font-size: 13px;
  color: #64748b;
  margin-bottom: 16px;
  backdrop-filter: blur(12px);
}

/* 仪表盘双列网格 */
.uc-dash-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.uc-dash-col { display: flex; flex-direction: column; gap: 16px; }
@media (max-width: 1000px) { .uc-dash-grid { grid-template-columns: 1fr; } }

/* 余额大卡（渐变蓝） */
.uc-balance-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 26px 28px;
  border-radius: 12px;
  background: linear-gradient(135deg, #6c7bff 0%, #5a6af0 100%);
  color: #fff;
  box-shadow: 0 10px 20px -5px rgba(37, 99, 235, .4);
  transition: transform .25s;
}
.uc-balance-card:hover { transform: translateY(-3px); }
.uc-balance-label { font-size: 13px; opacity: .85; }
.uc-balance-num { font-size: 40px; font-weight: 700; letter-spacing: 1px; }
.uc-balance-foot { display: flex; align-items: center; justify-content: space-between; font-size: 13px; opacity: .9; }
.uc-btn-mini {
  padding: 5px 16px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .22);
  border: 1px solid rgba(255, 255, 255, .4);
  font-size: 12.5px;
}

/* 快捷菜单卡 */
.uc-menu-title { font-size: 16px; font-weight: 600; color: #333d4b; margin-bottom: 14px; }
.uc-menu-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.uc-menu-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px;
  border-radius: 10px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  transition: all .2s;
}
.uc-menu-item:hover { border-color: rgba(59, 130, 246, .35); box-shadow: 0 6px 16px rgba(59, 130, 246, .12); transform: translateY(-2px); }
.uc-menu-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #f5f7ff;
  color: #6c7bff;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 4px;
}
.uc-menu-icon svg { width: 19px; height: 19px; }
.uc-menu-item b { font-size: 14px; color: #333d4b; font-weight: 600; }
.uc-menu-item > span:last-child { font-size: 12px; color: #94a3b8; }

/* 概览卡：4 项 + 竖线分隔 */
.uc-overview-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 20px;
}
.uc-overview-item { flex: 1; text-align: center; }
.uc-overview-num { display: block; font-size: 26px; font-weight: 700; color: #333d4b; }
.uc-overview-label { display: block; margin-top: 4px; font-size: 12.5px; color: #94a3b8; }
.uc-overview-split { width: 1px; height: 36px; background: #e2e8f0; }

/* 资料卡 */
.uc-profile-card { display: flex; flex-direction: column; gap: 14px; }
.uc-profile-main { display: flex; align-items: center; gap: 14px; }
.uc-profile-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: linear-gradient(135deg, #6c7bff, #5a6af0);
  color: #fff;
  font-size: 22px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.uc-profile-name { display: block; font-size: 16px; font-weight: 600; color: #333d4b; }
.uc-profile-desc { display: block; margin-top: 2px; font-size: 12.5px; color: #94a3b8; }
.uc-profile-rows { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: #64748b; }
.uc-profile-link { font-size: 13px; color: #6c7bff; }
.uc-profile-link:hover { color: #5a6af0; }

/* 主按钮统一参考站渐变 */
.uaf-submit, .uc-mall-btn {
  background: linear-gradient(135deg, #6c7bff 0%, #5a6af0 100%);
  box-shadow: 0 10px 20px -5px rgba(37, 99, 235, .4);
}
.uaf-submit:hover, .uc-mall-btn:hover {
  background: linear-gradient(135deg, #5a6af0 0%, #1d4ed8 100%);
}

/* 徽章色板（参考站） */
.us-badge-ok { background: #ecfdf5; color: #059669; }
.us-badge-no { background: #fef2f2; color: #dc2626; }

/* 输入框参考站风 */
.uaf-input { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; }
.uaf-input:focus { background: #fff; border-color: rgba(59, 130, 246, .2); box-shadow: 0 0 0 4px rgba(59, 130, 246, .1); }

/* ============ 用户中心 V7：参考站仪表盘像素级复刻 ============ */
/* 覆盖 V6：卡片改纯白无阴影 */
.user-card {
  background: #fff;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: 0;
  border-radius: 12px;
  box-shadow: none;
  padding: 20px 24px;
}
.uc-notice-bar { background: #fff; border: 0; box-shadow: none; }
.uc-latest-card { margin-top: 16px; }

/* 仪表盘网格：1fr 1fr（参考站 grid-template-columns:1fr 1fr） */
.uc-dash-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  align-items: stretch;
}
@media (max-width: 900px) { .uc-dash-grid { grid-template-columns: 1fr; } }

/* 资料卡：左列占两行，横向布局 */
.uc-pcard {
  grid-column: 1;
  grid-row: 1 / span 2;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px;
  background: #fff;
  border-radius: 12px;
  cursor: pointer;
  transition: background .2s ease;
}
.uc-pcard:hover { background: #fafafa; }
.uc-pavatar {
  flex: none;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: linear-gradient(135deg, #6c7bff, #5a6af0);
  color: #fff;
  font-size: 22px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.uc-pmain { flex: 1; min-width: 0; }
.uc-pname { display: block; font-size: 17px; font-weight: 600; color: #2b3441; line-height: 1.3; }
.uc-pdesc { display: block; margin-top: 4px; font-size: 13px; color: #8c8c8c; }

/* 余额卡：右上 */
.uc-bcard {
  grid-column: 2;
  grid-row: 1;
  display: block;
  padding: 20px;
  background: #fff;
  border-radius: 12px;
  cursor: pointer;
  transition: background .2s ease;
}
.uc-bcard:hover { background: #fafafa; }
.uc-btop { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.uc-blabel { font-size: 13px; color: #8c8c8c; }
.uc-baction {
  padding: 4px 12px;
  border: 1px solid #8c8c8c;
  border-radius: 999px;
  background: #fff;
  font-size: 12px;
  color: #646d7a;
  line-height: 1.4;
  transition: all .2s ease;
}
.uc-bcard:hover .uc-baction { border-color: #4a4a4a; color: #5a6472; }
.uc-bamount {
  display: block;
  font-size: 32px;
  font-weight: 700;
  color: #2b3441;
  font-family: "DIN Alternate", DIN, -apple-system, sans-serif;
  letter-spacing: -.02em;
  line-height: 1.2;
}
.uc-bsub { display: block; margin-top: 6px; font-size: 13px; color: #8c8c8c; }

/* 概览卡：右中，4 项 + 竖线 */
.uc-ocard {
  grid-column: 2;
  grid-row: 2;
  display: flex;
  align-items: stretch;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
}
.uc-oitem {
  flex: 1;
  min-width: 0;
  padding: 14px 4px;
  text-align: center;
  cursor: pointer;
  transition: background .2s ease;
}
.uc-oitem:hover { background: #fafafa; }
.uc-oitem b { display: block; font-size: 20px; font-weight: 600; color: #2b3441; line-height: 1.2; }
.uc-oitem span { display: block; margin-top: 4px; font-size: 11px; line-height: 1.3; color: #8c8c8c; }
.uc-osplit { width: 1px; align-self: stretch; margin: 12px 0; background: #f0f0f0; }

/* 菜单卡：通栏，4 列横向菜单项 */
.uc-mcard {
  grid-column: 1 / -1;
  padding: 14px 12px 12px;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
}
.uc-mtitle { padding: 0 4px 10px; font-size: 14px; font-weight: 600; color: #2b3441; }
.uc-mgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.uc-mitem {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-radius: 10px;
  border: 1px solid #f0f0f0;
  background: #fff;
  transition: background .2s ease;
}
.uc-mitem:hover { background: #f5f5f5; }
.uc-micon { width: 36px; height: 36px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; color: #6c7bff; }
.uc-micon svg { width: 20px; height: 20px; }
.uc-mtext { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.uc-mtext b { font-size: 14px; font-weight: 600; color: #2b3441; }
.uc-mtext i { font-style: normal; font-size: 12px; color: #8c8c8c; }
@media (max-width: 1200px) { .uc-mgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .uc-mgrid { grid-template-columns: 1fr; } }

/* ============ 用户中心 V8：最终规格（白侧栏 + 左侧竖条选中） ============ */
/* ---------- 侧栏：纯白 ---------- */
.uc-sider {
  background: #fff;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-right: 1px solid #f0f0f0;
  box-shadow: none;
}
.uc-sider-top { border-bottom: 1px solid #f5f5f5; }
.uc-logo { padding: 18px 20px 14px; }
.uc-logo-mark {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: linear-gradient(135deg, #6c7bff, #5a6af0);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 17px;
  font-weight: 700;
  overflow: hidden;
}
.uc-logo-mark img { width: 100%; height: 100%; object-fit: cover; }
.uc-logo b { font-size: 16px; font-weight: 700; color: #2b3441; }
/* 隐藏旧用户卡 */
.uc-sider-head { display: none; }

/* 分组标题 */
.uc-group { margin: 2px 0; padding: 0; }
.uc-group-title {
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  padding: 12px 20px 6px;
  background: none;
  border: 0;
  color: #8c8c8c;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1px;
  cursor: pointer;
  transition: color .2s;
}
.uc-group-title:hover { color: #2b3441; }
.uc-group-arrow { font-size: 10px; transition: transform .25s; }
.uc-group.open .uc-group-arrow { transform: rotate(180deg); }
.uc-group-items { max-height: 0; overflow: hidden; transition: max-height .3s ease; }
.uc-group.open .uc-group-items { max-height: 700px; }

/* 菜单项：透明底 + 深灰字；hover 浅灰底不变色 */
.uc-item {
  display: flex;
  align-items: center;
  gap: 11px;
  position: relative;
  padding: 10px 20px;
  margin: 0;
  border-radius: 0;
  color: #454e5c;
  font-size: 14px;
  font-weight: 400;
  transition: background .15s ease;
}
.uc-item svg { width: 17px; height: 17px; flex: none; color: #5f6876; }
.uc-item:hover { background: #f5f5f5; color: #454e5c; }
/* 激活：左侧深灰竖条 + 文字加粗加深（禁止整行变色！） */
.uc-item.active {
  background: #fff !important;
  color: #2a3240 !important;
  font-weight: 600;
  box-shadow: none !important;
}
.uc-item.active::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 18px;
  border-radius: 0 3px 3px 0;
  background: #333;
}
.uc-item.active svg { color: #2a3240; }

/* NEW 红角标 */
.uc-badge-new {
  flex: none;
  margin-left: auto;
  padding: 0 6px;
  border-radius: 4px;
  background: #ef4444;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  line-height: 16px;
  letter-spacing: 0;
}
.uc-group-title .uc-badge-new { margin-left: 4px; }

/* 独立菜单项（申请开发/供货） */
.uc-item-single { margin: 0; }

/* 底部 */
.uc-sider-foot { border-top: 1px solid #f5f5f5; padding: 8px 0; }
.uc-item-logout { color: #5f6876; }
.uc-item-logout:hover { color: #ef4444; background: #fef2f2; }

/* ---------- 顶栏：图标按钮 + 铃铛 + 头像下拉 ---------- */
.uc-topbar { background: #fff; border-bottom: 1px solid #f0f0f0; }
.uc-breadcrumb a, .uc-breadcrumb span { color: #8c8c8c; }
.uc-breadcrumb b { color: #2b3441; font-weight: 600; }
.uc-icon-btn {
  position: relative;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #5f6876;
  background: none;
  border: 0;
  transition: background .2s;
}
.uc-icon-btn:hover { background: #f5f5f5; }
.uc-icon-btn svg { width: 18px; height: 18px; }
.uc-bell-dot {
  position: absolute;
  right: 6px;
  top: 6px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #ef4444;
  border: 2px solid #fff;
}
.uc-avatar-drop { position: relative; }
.uc-avatar-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 6px;
  border-radius: 999px;
  background: none;
  border: 0;
  transition: background .2s;
}
.uc-avatar-btn:hover { background: #f5f5f5; }
.uc-avatar-btn .uc-avatar {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: linear-gradient(135deg, #6c7bff, #5a6af0);
  color: #fff;
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.uc-avatar-name { font-size: 13.5px; color: #2b3441; }
.uc-avatar-caret { width: 14px; height: 14px; color: #8c8c8c; }
.uc-avatar-menu {
  position: absolute;
  right: 0;
  top: 44px;
  width: 150px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
  padding: 6px;
  z-index: 300;
}
.uc-avatar-menu a { display: block; padding: 9px 14px; border-radius: 8px; font-size: 13.5px; color: #454e5c; }
.uc-avatar-menu a:hover { background: #f5f5f5; }
.uc-avatar-logout { color: #ef4444; }

/* ---------- 用户信息卡 ---------- */
.uc-hero-card {
  display: flex;
  align-items: stretch;
  background: #fff;
  border-radius: 12px;
  margin-bottom: 16px;
  overflow: hidden;
}
.uc-hero-left {
  flex: 0 0 42%;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 24px 26px;
  position: relative;
}
.uc-hero-avatar {
  flex: none;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: linear-gradient(135deg, #6c7bff, #5a6af0);
  color: #fff;
  font-size: 24px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.uc-hero-info { min-width: 0; }
.uc-hero-name { display: block; font-size: 18px; font-weight: 600; color: #2b3441; }
.uc-hero-hello { display: block; margin-top: 3px; font-size: 13px; color: #8c8c8c; }
.uc-hero-id { display: block; margin-top: 2px; font-size: 12px; color: #b0b0b0; }
.uc-hero-arrow {
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  color: #b0b0b0;
}
.uc-hero-arrow svg { width: 18px; height: 18px; }
.uc-hero-right {
  flex: 1;
  padding: 20px 26px;
  background: #fafafa;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 14px;
}
.uc-hero-balance { display: flex; align-items: center; justify-content: space-between; }
.uc-hero-balance-label { font-size: 13px; color: #8c8c8c; }
.uc-hero-balance-num {
  display: block;
  margin-top: 2px;
  font-size: 30px;
  font-weight: 700;
  color: #2b3441;
  font-family: "DIN Alternate", DIN, -apple-system, sans-serif;
}
.uc-hero-recharge {
  padding: 6px 18px;
  border-radius: 999px;
  background: linear-gradient(135deg, #6c7bff, #5a6af0);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  box-shadow: 0 8px 16px -4px rgba(37, 99, 235, .4);
}
.uc-hero-stats { display: flex; align-items: center; }
.uc-hero-stat { flex: 1; text-align: center; }
.uc-hero-stat b { display: block; font-size: 17px; font-weight: 600; color: #2b3441; }
.uc-hero-stat span { display: block; margin-top: 2px; font-size: 12px; color: #8c8c8c; }
.uc-hero-split { width: 1px; height: 28px; background: #e8e8e8; }
@media (max-width: 900px) {
  .uc-hero-card { flex-direction: column; }
  .uc-hero-left { flex: none; }
}

/* ---------- 卡片与入口 ---------- */
.uc-card {
  background: #fff;
  border-radius: 12px;
  padding: 18px 20px;
  margin-bottom: 16px;
}
.uc-card-title { font-size: 15px; font-weight: 600; color: #2b3441; }
.uc-card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.uc-card-head .uc-card-title { margin-bottom: 0; }
.uc-card-more { font-size: 13px; color: #8c8c8c; }
.uc-card-more:hover { color: #6c7bff; }
.uc-entry-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px;
}
.uc-entry {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 16px 8px;
  border-radius: 10px;
  transition: background .2s;
}
.uc-entry:hover { background: #f5f5f5; }
.uc-entry-icon {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: #f0f4ff;
  color: #6c7bff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.uc-entry-icon svg { width: 20px; height: 20px; }
.uc-entry b { font-size: 13px; font-weight: 500; color: #454e5c; }
@media (max-width: 1100px) { .uc-entry-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .uc-entry-grid { grid-template-columns: repeat(2, 1fr); } }

/* ---------- 产品列表 + 最近动态 ---------- */
.uc-bottom-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 16px; }
@media (max-width: 1000px) { .uc-bottom-grid { grid-template-columns: 1fr; } }
.uc-bottom-grid .uc-card { margin-bottom: 0; }
.uc-prod-list { display: flex; flex-direction: column; gap: 10px; }
.uc-prod-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid #f0f0f0;
  transition: background .2s;
}
.uc-prod-item:hover { background: #f5f5f5; }
.uc-prod-item img { width: 44px; height: 44px; border-radius: 8px; object-fit: cover; flex: none; }
.uc-prod-info { flex: 1; min-width: 0; }
.uc-prod-info b { display: block; font-size: 14px; color: #2b3441; }
.uc-prod-info span { display: block; margin-top: 2px; font-size: 12px; color: #8c8c8c; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.uc-prod-price { font-style: normal; font-size: 14px; font-weight: 600; color: #6c7bff; }
.uc-news-list { list-style: none; margin: 0; padding: 0; }
.uc-news-list li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 9px 4px;
  font-size: 13px;
  color: #5f6876;
  border-bottom: 1px solid #f7f7f7;
  line-height: 1.6;
}
.uc-news-list li:last-child { border-bottom: 0; }
.uc-news-dot {
  flex: none;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #6c7bff;
  margin-top: 8px;
}
.uc-news-toggle a { color: #6c7bff; font-size: 12.5px; }
.uc-tip-text { font-size: 13px; color: #8c8c8c; margin-bottom: 16px; }

/* ---------- 邀请/日志页 ---------- */
.uc-invite-box {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 24px;
  border-radius: 12px;
  background: #fafafa;
  border: 1px dashed #d9d9d9;
}
.uc-invite-box span { font-size: 13px; color: #8c8c8c; }
.uc-invite-box b { font-size: 22px; font-weight: 700; color: #2b3441; letter-spacing: 1px; }
.uc-invite-copy {
  margin-left: auto;
  padding: 7px 18px;
  border-radius: 999px;
  background: linear-gradient(135deg, #6c7bff, #5a6af0);
  color: #fff;
  font-size: 13px;
}
.uc-invite-stats { display: flex; margin-top: 20px; }
.uc-invite-stats div { flex: 1; text-align: center; }
.uc-invite-stats b { display: block; font-size: 22px; font-weight: 700; color: #2b3441; }
.uc-invite-stats span { font-size: 12px; color: #8c8c8c; }
.uc-log-list { list-style: none; margin: 0; padding: 0; }
.uc-log-list li { display: flex; align-items: center; gap: 12px; padding: 12px 4px; border-bottom: 1px solid #f7f7f7; }
.uc-log-dot { flex: none; width: 8px; height: 8px; border-radius: 50%; background: #6c7bff; }
.uc-log-dot-order { background: #10b981; }
.uc-log-body { flex: 1; min-width: 0; }
.uc-log-body b { display: block; font-size: 14px; font-weight: 500; color: #2b3441; }
.uc-log-data { display: block; margin-top: 2px; font-size: 12px; color: #8c8c8c; }
.uc-log-time { font-style: normal; font-size: 12px; color: #b0b0b0; }

/* 深色主题（主题切换按钮演示） */
.uc-theme-dark.uc-page { background: #141414; }
.uc-theme-dark .uc-sider, .uc-theme-dark .uc-topbar, .uc-theme-dark .uc-card,
.uc-theme-dark .uc-hero-card { background: #1f1f1f; border-color: #303030; }
.uc-theme-dark .uc-card-title, .uc-theme-dark .uc-hero-name,
.uc-theme-dark .uc-item, .uc-theme-dark .uc-prod-info b { color: #f5f5f5; }
.uc-theme-dark .uc-item:hover { background: #2a2a2a; }

/* V8.1：平铺菜单（组标题为纯标签，子菜单始终可见） */
.uc-group-title {
  width: auto;
  padding: 16px 20px 6px;
  cursor: default;
  color: #8c8c8c;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1px;
}
.uc-group-title:hover { color: #8c8c8c; }
.uc-group-items { max-height: none; overflow: visible; }

/* V8.2：侧栏顶部标题与分组标题字体统一为菜单项规格 */
.uc-logo b { font-size: 14px; font-weight: 400; color: #2b3441; }
.uc-group-title { font-size: 14px; font-weight: 400; letter-spacing: 0; padding: 14px 20px 6px; }

/* V8.3：标题颜色统一菜单项 + 分组默认展开可折叠 */
.uc-logo b { color: #454e5c; }
.uc-group-title { color: #454e5c; font-size: 14px; font-weight: 400; letter-spacing: 0; padding: 14px 20px 6px; }
.uc-group-title:hover { color: #454e5c; }
.uc-group-arrow { margin-left: 4px; color: #666; transition: transform .25s; display: inline-flex; }
.uc-group-arrow svg { width: 14px; height: 14px; }
.uc-group.collapsed .uc-group-arrow { transform: rotate(-90deg); }
.uc-group.collapsed .uc-group-items { display: none; }
.uc-group-items { max-height: none; overflow: visible; }

/* V8.5：横线已删除，分组标题带图标与二级菜单文字对齐（绝对 58px），组图标 14px 灰色置于文字前 */
.uc-group-title { position: relative; padding-left: 48px; }
.uc-group-ico {
  position: absolute;
  left: 28px; /* 绝对 38px 起，右缘 52px，距文字 6px */
  top: 50%;
  transform: translateY(-50%);
  width: 14px;
  height: 14px;
  color: #999;
  pointer-events: none;
}

/* V8.6：为什么选择我们 + 新闻资讯 两模块内容加宽（1200 → 1320） */
.why-module .container { max-width: 1320px; }

/* ============ V8.7 产品详情页重构（参考鲸发卡：横幅+平台图标+锚点+优势+定价+CTA） ============ */
.pp-hero {
  background: radial-gradient(800px 300px at 70% 20%, rgba(255, 194, 0, .14), transparent 60%), linear-gradient(160deg, #2b2416, #1c1710);
  padding: 130px 0 74px;
  text-align: center;
}
.pp-name { font-size: 36px; font-weight: 800; color: #fff; letter-spacing: 1px; }
.pp-desc { max-width: 760px; margin: 16px auto 28px; font-size: 15px; line-height: 1.9; color: rgba(255, 255, 255, .72); }
.pp-icons { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; list-style: none; margin: 0 0 30px; padding: 0; }
.pp-icons li { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.pp-icons p { margin: 0; font-size: 12px; color: rgba(255, 255, 255, .6); }
.pp-ico {
  width: 52px; height: 52px;
  display: flex; align-items: center; justify-content: center;
  font-size: 24px; border-radius: 12px;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .16);
}
.pp-actions { display: flex; justify-content: center; align-items: center; gap: 18px; flex-wrap: wrap; }
.pp-btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 11px 36px; border-radius: 8px;
  font-size: 15px; font-weight: 700; transition: all .2s;
}
.pp-btn-buy { background: linear-gradient(135deg, #ffc200, #ffd84d); color: #2b2416; box-shadow: 0 8px 22px rgba(255, 194, 0, .35); }
.pp-btn-buy:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(255, 194, 0, .5); color: #2b2416; }
.pp-btn-demo { background: transparent; border: 1px solid rgba(255, 255, 255, .5); color: #fff; }
.pp-btn-demo:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.pp-btn-reg { background: transparent; border: 1px solid rgba(255, 255, 255, .5); color: #fff; }
.pp-btn-reg:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.pp-btn-log { color: rgba(255, 255, 255, .75); font-size: 14px; text-decoration: underline; }
.pp-btn-log:hover { color: #ffc200; }

/* 锚点菜单 */
.pp-tabs { position: sticky; top: 0; z-index: 90; background: #fff; border-bottom: 1px solid #f0f0f0; box-shadow: 0 2px 10px rgba(0, 0, 0, .04); }
.pp-tabs .container { display: flex; gap: 36px; }
.pp-tabs a { padding: 14px 2px; margin-bottom: -1px; font-size: 15px; color: #666; border-bottom: 3px solid transparent; transition: color .2s; }
.pp-tabs a:hover, .pp-tabs a.active { color: #c99700; font-weight: 600; border-bottom-color: #ffc200; }

/* 通用区块标题 */
.pp-sec { padding: 70px 0; }
.pp-sec-title { display: flex; align-items: center; justify-content: center; gap: 14px; font-size: 26px; font-weight: 800; color: #2b2416; margin-bottom: 36px; }
.pp-sec-title::before, .pp-sec-title::after { content: ""; width: 48px; height: 2px; border-radius: 1px; background: linear-gradient(90deg, transparent, #ffc200); }
.pp-sec-title::after { background: linear-gradient(90deg, #ffc200, transparent); }

/* 系统优势 */
.pp-adv { background: #fff; }
.pp-adv-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.pp-adv-item { display: flex; align-items: flex-start; gap: 14px; background: #faf8f2; border: 1px solid #f0ead9; border-radius: 12px; padding: 20px; }
.pp-adv-ico { width: 46px; height: 46px; border-radius: 10px; background: #fff7db; display: flex; align-items: center; justify-content: center; font-size: 22px; flex: none; }
.pp-adv-t { font-size: 15px; font-weight: 700; color: #2b2416; }
.pp-adv-d { margin-top: 4px; font-size: 13px; color: #8c8c8c; line-height: 1.6; }

/* 产品介绍 */
.pp-intro { background: #f5f6fa; }
.pp-rich { max-width: 920px; margin: 0 auto; background: #fff; border-radius: 14px; padding: 32px 38px; box-shadow: 0 2px 14px rgba(0, 0, 0, .05); }
.pp-shots { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 22px; }
.pp-shots img { width: 100%; border-radius: 8px; border: 1px solid #f0f0f0; }

/* 产品定价 */
.pp-price { background: #fff; }
.pp-price-card { max-width: 820px; margin: 0 auto; background: #fff; border: 1px solid #f0ead9; border-radius: 14px; overflow: hidden; box-shadow: 0 6px 24px rgba(43, 36, 22, .08); }
.pp-price-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 26px 30px; background: linear-gradient(135deg, #2b2416, #3a3120); flex-wrap: wrap; }
.pp-price-label { color: rgba(255, 255, 255, .6); font-size: 13px; margin: 0 0 6px; }
.pp-price-now { font-size: 40px; font-weight: 800; color: #ffc200; }
.pp-price-old { margin-left: 12px; font-size: 16px; color: rgba(255, 255, 255, .45); }
.pp-price-table { width: 100%; border-collapse: collapse; }
.pp-price-table th { width: 170px; text-align: left; padding: 14px 30px; font-size: 14px; font-weight: 600; color: #8c8c8c; background: #faf8f2; border-bottom: 1px solid #f0ead9; }
.pp-price-table td { padding: 14px 30px; font-size: 14px; color: #2b2416; border-bottom: 1px solid #f5f1e6; }
.pp-price-table tr:last-child th, .pp-price-table tr:last-child td { border-bottom: 0; }

/* 开始体验 */
.pp-cta { background: radial-gradient(700px 260px at 50% 0%, rgba(255, 194, 0, .16), transparent 60%), linear-gradient(160deg, #2b2416, #1c1710); padding: 62px 0; text-align: center; }
.pp-cta-title { font-size: 28px; font-weight: 800; color: #fff; }
.pp-cta-desc { margin: 10px 0 26px; color: rgba(255, 255, 255, .65); font-size: 14px; }
.pp-cta-btns { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }

/* 相关产品 */
.pp-related { background: #f5f6fa; }

@media (max-width: 900px) {
  .pp-adv-grid { grid-template-columns: repeat(2, 1fr); }
  .pp-tabs .container { gap: 20px; overflow-x: auto; }
}
@media (max-width: 600px) {
  .pp-adv-grid { grid-template-columns: 1fr; }
  .pp-name { font-size: 27px; }
  .pp-shots { grid-template-columns: 1fr; }
}

/* ============ V8.8 产品详情横幅重构：左右两栏 + 立体卡片 ============ */
.pp-hero-v2 { padding: 120px 0 80px; text-align: left; }
.pp-hero-v2 .container { display: flex; align-items: center; gap: 60px; }
.pp-hero-left { flex: 1; min-width: 0; }
.pp-hero-v2 .pp-name { font-size: 40px; }
.pp-hero-v2 .pp-desc { margin: 14px 0 24px; max-width: 660px; }

/* 价格区域 */
.pp-price-box { margin-bottom: 28px; }
.pp-tag-discount { display: inline-block; padding: 3px 14px; border-radius: 999px; background: #ef4444; color: #fff; font-size: 13px; font-weight: 700; margin-bottom: 10px; }
.pp-hero-v2 .pp-price-line { display: flex; align-items: baseline; gap: 14px; }
.pp-hero-v2 .pp-price-now { font-size: 44px; font-weight: 800; color: #ffc200; line-height: 1; }
.pp-hero-v2 .pp-price-old { font-size: 18px; color: rgba(255, 255, 255, .45); }

/* 按钮行：立即购买橙 / 查看演示·主题文档蓝 */
.pp-hero-v2 .pp-actions { justify-content: flex-start; }
.pp-btn-buy { background: linear-gradient(135deg, #ff8c1a, #ff6a00); box-shadow: 0 8px 22px rgba(255, 106, 0, .35); }
.pp-btn-buy:hover { box-shadow: 0 12px 28px rgba(255, 106, 0, .5); color: #2b2416; }
.pp-btn-demo, .pp-btn-docs { background: linear-gradient(135deg, #3b82f6, #2563eb); border: 0; }
.pp-btn-demo:hover, .pp-btn-docs:hover { background: linear-gradient(135deg, #2563eb, #1d4ed8); color: #fff; }

/* 浅蓝色半透明信息卡片 */
.pp-info-card { margin-top: 30px; max-width: 580px; background: rgba(59, 130, 246, .12); border: 1px solid rgba(59, 130, 246, .28); border-radius: 14px; padding: 14px 22px; }
.pp-info-row { display: flex; justify-content: space-between; gap: 16px; padding: 7px 0; font-size: 14px; }
.pp-info-row + .pp-info-row { border-top: 1px solid rgba(255, 255, 255, .08); }
.pp-info-row span { color: rgba(255, 255, 255, .62); flex: none; }
.pp-info-row b { color: #fff; font-weight: 600; text-align: right; }
.pp-info-row b.pp-hl { color: #ffc200; }
.pp-upd-link { color: #7dd3ff; font-weight: 400; }

/* 右侧立体卡片（纯 CSS+SVG） */
.pp-hero-right { flex: 0 0 300px; display: flex; justify-content: center; }
.pp3-card { position: relative; width: 280px; height: 310px; }
.pp3-wave { position: absolute; border-radius: 50%; filter: blur(30px); opacity: .5; animation: pp3pulse 6s ease-in-out infinite; }
.pp3-wave-1 { width: 220px; height: 220px; left: -30px; top: 10px; background: radial-gradient(circle at 30% 30%, rgba(59, 130, 246, .55), rgba(37, 99, 235, .15) 60%, transparent 75%); }
.pp3-wave-2 { width: 200px; height: 200px; right: -20px; bottom: 20px; background: radial-gradient(circle at 60% 60%, rgba(19, 173, 255, .5), rgba(19, 173, 255, .12) 60%, transparent 75%); animation-delay: 2s; }
@keyframes pp3pulse { 0%, 100% { transform: scale(1); opacity: .5; } 50% { transform: scale(1.12); opacity: .8; } }
.pp3-disc {
  position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
  width: 230px; height: 230px; border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #60a5fa, #2563eb 55%, #1d4ed8);
  box-shadow: 0 24px 48px rgba(37, 99, 235, .45), inset 0 -14px 30px rgba(0, 0, 0, .18);
}
.pp3-ticks {
  position: absolute; inset: 10px; border-radius: 50%;
  background: repeating-conic-gradient(rgba(255, 255, 255, .35) 0deg 1.5deg, rgba(255, 255, 255, 0) 1.5deg 12deg);
  -webkit-mask: radial-gradient(circle, transparent 62%, #000 63%);
  mask: radial-gradient(circle, transparent 62%, #000 63%);
}
.pp3-sheet {
  position: absolute; left: 50%; top: 34px; transform: translateX(-50%);
  width: 184px; background: #fff; border-radius: 22px;
  padding: 26px 18px 22px;
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  box-shadow: 0 20px 44px rgba(30, 64, 175, .35), 0 6px 16px rgba(0, 0, 0, .12);
  animation: pp3bob 4.5s ease-in-out infinite;
}
@keyframes pp3bob { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-10px); } }
.pp3-gear { width: 52px; height: 52px; border-radius: 50%; background: #eaf2ff; color: #2563eb; display: flex; align-items: center; justify-content: center; }
.pp3-gear svg { width: 30px; height: 30px; animation: pp3spin 10s linear infinite; }
@keyframes pp3spin { to { transform: rotate(360deg); } }
.pp3-name { margin: 0; font-size: 16px; font-weight: 700; color: #2563eb; text-align: center; line-height: 1.5; }

@media (max-width: 980px) {
  .pp-hero-v2 .container { flex-direction: column; gap: 48px; }
  .pp-hero-v2 { text-align: center; }
  .pp-hero-v2 .pp-desc { margin-left: auto; margin-right: auto; }
  .pp-hero-v2 .pp-price-line, .pp-hero-v2 .pp-actions { justify-content: center; }
  .pp-info-card { margin-left: auto; margin-right: auto; text-align: left; }
  .pp-hero-right { flex: none; }
}

/* V8.9：白色卡片放大并居中于蓝色圆盘 */
.pp3-sheet { width: 224px; top: 104px; padding: 28px 20px 24px; }
.pp3-gear { width: 60px; height: 60px; }
.pp3-gear svg { width: 34px; height: 34px; }
.pp3-name { font-size: 18px; }

/* V8.10：蓝色圆形底座放大 */
.pp3-disc { width: 260px; height: 260px; }

/* V8.11：立体卡片整体放大（白卡 360 / 蓝盘 540） */
.pp-hero-right { flex: 0 0 560px; }
.pp3-card { width: 560px; height: 600px; }
.pp3-disc { width: 540px; height: 540px; }
.pp3-wave-1 { width: 300px; height: 300px; }
.pp3-wave-2 { width: 260px; height: 260px; }
.pp3-sheet { width: 360px; top: 246px; padding: 30px 24px 26px; border-radius: 26px; }
.pp3-gear { width: 72px; height: 72px; }
.pp3-gear svg { width: 40px; height: 40px; }
.pp3-name { font-size: 20px; }

/* V8.12：右侧立体卡片整体居中；1280px 以下自动上下堆叠居中 */
.pp-hero-right { display: flex; justify-content: center; align-items: center; }
.pp3-card { margin: 0 auto; }
@media (max-width: 1280px) {
  .pp-hero-v2 .container { flex-direction: column; gap: 48px; }
  .pp-hero-v2 { text-align: center; }
  .pp-hero-v2 .pp-desc { margin-left: auto; margin-right: auto; }
  .pp-hero-v2 .pp-price-line, .pp-hero-v2 .pp-actions { justify-content: center; }
  .pp-info-card { margin-left: auto; margin-right: auto; text-align: left; }
  .pp-hero-right { flex: none; width: 100%; }
  .pp3-card { margin: 0 auto; }
}

/* ============ V8.13 立体卡片重构：亮蓝流体背景 + APP 图标方块 + 3D 凸起底座 ============ */
/* 横幅背景：蓝色渐变流体波纹（替换深色底） */
.pp-hero-v2 { position: relative; overflow: hidden; background: linear-gradient(150deg, #5ba8ff 0%, #3b82f6 42%, #2563eb 78%, #1d4ed8 100%); }
.pp-hero-v2::before, .pp-hero-v2::after {
  content: ""; position: absolute; border-radius: 50%;
  filter: blur(64px); opacity: .5; pointer-events: none;
  animation: pphwave 9s ease-in-out infinite;
}
.pp-hero-v2::before { width: 500px; height: 500px; left: -140px; top: -180px; background: radial-gradient(circle, rgba(255, 255, 255, .55), rgba(255, 255, 255, 0) 70%); }
.pp-hero-v2::after { width: 580px; height: 580px; right: -160px; bottom: -240px; background: radial-gradient(circle, rgba(125, 211, 255, .6), rgba(125, 211, 255, 0) 70%); animation-delay: 3s; }
@keyframes pphwave { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.15); } }
.pp-hero-v2 > .container { position: relative; z-index: 1; }

/* 文字适配亮蓝底 */
.pp-hero-v2 .pp-price-old { color: rgba(255, 255, 255, .65); }
.pp-hero-v2 .pp-info-card { background: rgba(255, 255, 255, .16); border-color: rgba(255, 255, 255, .35); }
.pp-btn-demo, .pp-btn-docs { box-shadow: 0 8px 22px rgba(30, 64, 175, .4), 0 0 0 2px rgba(255, 255, 255, .4); }
.pp3-wave-1 { background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, .4), rgba(255, 255, 255, .08) 60%, transparent 75%); }
.pp3-wave-2 { background: radial-gradient(circle at 60% 60%, rgba(125, 211, 255, .45), rgba(125, 211, 255, .08) 60%, transparent 75%); }

/* 底座：去时钟刻度，改多层淡细环 + 3D 凸起 + 向下投影 */
.pp3-ticks { display: none; }
.pp3-disc {
  background: radial-gradient(circle at 35% 28%, #7cb8ff, #3b82f6 55%, #2563eb 82%, #1d4ed8);
  box-shadow:
    inset 0 0 0 12px rgba(255, 255, 255, .06),
    inset 0 0 0 26px rgba(255, 255, 255, .045),
    inset 0 0 0 42px rgba(255, 255, 255, .03),
    inset 0 16px 34px rgba(255, 255, 255, .22),
    inset 0 -26px 48px rgba(30, 64, 175, .35),
    0 34px 64px rgba(30, 64, 175, .45);
}

/* 上层：类 APP 图标大圆角方块 + 厚度 + 悬浮阴影 */
.pp3-sheet {
  width: 380px; height: 380px;
  top: 140px;
  padding: 0;
  border-radius: 44px;
  gap: 20px;
  justify-content: center;
  background: linear-gradient(180deg, #ffffff, #f4f8ff);
  box-shadow:
    0 12px 0 #dbe9fb,
    0 34px 60px rgba(30, 64, 175, .38),
    0 8px 18px rgba(0, 0, 0, .1);
}
.pp3-gear { width: 96px; height: 96px; border-radius: 50%; background: #eaf2ff; color: #2563eb; }
.pp3-gear svg { width: 52px; height: 52px; }
.pp3-name { font-size: 24px; font-weight: 800; color: #2563eb; }

/* 小屏适配（不使用 scale 缩放，避免字体与 UI 模糊） */
@media (max-width: 700px) {
  .pp3-card { transform: none; margin-bottom: -170px; }
}

/* ============ V8.14 立体卡片终版：删除圆盘底座，白卡直接悬浮蓝色流体背景 ============ */
.pp3-disc, .pp3-ticks { display: none; }
.pp-hero-right { flex: 0 0 420px; }
.pp3-card { width: 420px; height: 420px; }
.pp3-sheet {
  top: 16px;
  box-shadow:
    0 14px 0 #dbe9fb,
    0 40px 70px rgba(30, 64, 175, .42),
    0 10px 20px rgba(0, 0, 0, .12);
}
@media (max-width: 700px) {
  .pp3-card { margin-bottom: -170px; }
}

/* ============ V8.15 全屏深蓝流体固定背景 + 字体栈 + 卡片直浮背景 ============ */
.pp-hero-v2 {
  font-family: "MiSans VF", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  background: linear-gradient(160deg, #0b2a5b 0%, #10396e 45%, #0a2247 100%);
  background-attachment: fixed;
}
.pp-hero-v2::before {
  width: 520px; height: 520px; left: -160px; top: -200px;
  background: radial-gradient(ellipse at 35% 35%, rgba(59, 130, 246, .5), rgba(59, 130, 246, 0) 70%);
}
.pp-hero-v2::after {
  width: 600px; height: 600px; right: -180px; bottom: -260px;
  background: radial-gradient(ellipse at 60% 60%, rgba(19, 173, 255, .4), rgba(19, 173, 255, 0) 70%);
}
.pp3-wave { display: none; }

/* ============ V8.16 右侧产品截图轮播（对标参考网页） ============ */
.pp-hero-right { flex: 0 0 520px; }
.pp-carousel {
  position: relative;
  width: 100%;
  border-radius: 18px;
  overflow: hidden;
  background: rgba(255, 255, 255, .08);
  box-shadow: 0 24px 60px rgba(10, 34, 71, .5), 0 8px 22px rgba(0, 0, 0, .25);
  aspect-ratio: 16 / 10;
}
.pp-car-track { display: flex; width: 100%; height: 100%; transition: transform .5s ease; }
.pp-car-slide { flex: 0 0 100%; height: 100%; }
.pp-car-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pp-car-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 42px; height: 42px; border-radius: 50%;
  border: 0; background: rgba(255, 255, 255, .22);
  color: #fff; font-size: 26px; line-height: 1;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: background .2s; z-index: 2;
}
.pp-car-arrow:hover { background: rgba(255, 255, 255, .45); }
.pp-car-prev { left: 14px; padding-bottom: 4px; }
.pp-car-next { right: 14px; padding-bottom: 4px; }
.pp-car-dots { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); display: flex; gap: 8px; z-index: 2; }
.pp-car-dot { width: 9px; height: 9px; border-radius: 999px; background: rgba(255, 255, 255, .45); cursor: pointer; transition: all .25s; }
.pp-car-dot.active { width: 24px; background: #fff; }
@media (max-width: 1280px) {
  .pp-hero-right { flex: none; width: 100%; max-width: 640px; }
}

/* V8.17：横幅整体降高 + 轮播高度对齐左侧内容 */
.pp-hero-v2 { padding: 96px 0 56px; }
.pp-hero-v2 .container { align-items: stretch; }
.pp-carousel { aspect-ratio: auto; height: 100%; min-height: 300px; }
@media (max-width: 1280px) {
  .pp-carousel { height: auto; aspect-ratio: 16 / 10; }
}

/* V8.18：轮播宽度加大，适配拉伸后的高度 */
.pp-hero-right { flex: 0 0 640px; }
@media (max-width: 1280px) {
  .pp-hero-right { flex: none; width: 100%; max-width: 760px; }
}

/* V8.19：轮播右移 + 限时优惠缩小置于原价上方 */
.pp-hero-v2 .container { gap: 96px; }
.pp-price-old-wrap { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.pp-tag-discount { padding: 2px 10px; font-size: 11px; margin-bottom: 0; }

/* V8.20：按钮保持一行 + 轮播再右移（左栏不动） */
.pp-hero-v2 .pp-actions { flex-wrap: nowrap; gap: 14px; }
.pp-hero-v2 .pp-btn { padding: 11px 26px; font-size: 14.5px; }
.pp-hero-v2 .container { gap: 160px; }

/* V8.21：左侧加宽（容器 1200→1460）+ 轮播继续右移 */
.pp-hero-v2 > .container { max-width: 1460px; gap: 200px; }

/* V8.22：横幅等比例压缩高度（宽度不变） */
.pp-hero-v2 { padding: 72px 0 40px; }
.pp-hero-v2 .pp-name { font-size: 36px; }
.pp-hero-v2 .pp-desc { margin: 10px 0 18px; font-size: 14px; line-height: 1.8; }
.pp-price-box { margin-bottom: 20px; }
.pp-hero-v2 .pp-price-now { font-size: 38px; }
.pp-hero-v2 .pp-price-old { font-size: 16px; }
.pp-hero-v2 .pp-btn { padding: 10px 26px; font-size: 14px; }
.pp-info-card { margin-top: 22px; padding: 10px 20px; }
.pp-info-row { padding: 6px 0; font-size: 13.5px; }
.pp-carousel { min-height: 260px; }

/* ============ V8.23 右侧 3D 立体卡片重做（双层：蓝圆底座 + 白色厚方块，无外圈/刻度） ============ */
.pp-carousel, .pp-car-arrow, .pp-car-dots { display: none; }
.pp3-card { width: 500px; height: 500px; margin: 0 auto; }
/* 下层：蓝色圆形立体底座（多层淡细环 + 凸起 + 向下投影） */
.pp3-disc {
  display: block;
  width: 460px; height: 460px;
  background: radial-gradient(circle at 35% 28%, #7cb8ff, #3b82f6 55%, #2563eb 82%, #1d4ed8);
  box-shadow:
    inset 0 0 0 12px rgba(255, 255, 255, .07),
    inset 0 0 0 28px rgba(255, 255, 255, .05),
    inset 0 0 0 46px rgba(255, 255, 255, .03),
    inset 0 18px 38px rgba(255, 255, 255, .22),
    inset 0 -28px 52px rgba(30, 64, 175, .35),
    0 36px 68px rgba(30, 64, 175, .45);
}
/* 上层：白色大圆角方形方块（厚度 + 底部阴影，悬浮） */
.pp3-sheet {
  width: 350px; height: 350px;
  top: 96px;
  padding: 0;
  border-radius: 40px;
  gap: 20px;
  justify-content: center;
  background: linear-gradient(180deg, #ffffff, #f4f8ff);
  box-shadow:
    0 14px 0 #dbe9fb,
    0 36px 64px rgba(30, 64, 175, .38),
    0 10px 20px rgba(0, 0, 0, .12);
}
.pp3-gear { width: 92px; height: 92px; border-radius: 50%; background: #eaf2ff; color: #2563eb; }
.pp3-gear svg { width: 50px; height: 50px; animation: pp3spin 10s linear infinite; }
.pp3-name { font-size: 22px; font-weight: 800; color: #2563eb; }
/* 小屏等比例缩放 */
@media (max-width: 700px) {
  .pp3-card { transform: scale(.6); transform-origin: top center; margin-bottom: -200px; }
}

/* ============ V8.24 横幅玻璃拟态化 ============ */
/* 信息卡片：磨砂玻璃 */
.pp-hero-v2 .pp-info-card {
  background: rgba(255, 255, 255, .12);
  border: 1px solid rgba(255, 255, 255, .3);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 10px 30px rgba(10, 34, 71, .25), inset 0 1px 0 rgba(255, 255, 255, .22);
}
/* 白色方块：磨砂玻璃质感 */
.pp3-sheet {
  background: rgba(255, 255, 255, .68);
  border: 1px solid rgba(255, 255, 255, .85);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
/* 蓝色底座：半透明玻璃渐变 */
.pp3-disc {
  background: radial-gradient(circle at 35% 28%, rgba(124, 184, 255, .78), rgba(59, 130, 246, .6) 55%, rgba(37, 99, 235, .68) 82%, rgba(29, 78, 216, .78));
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

/* V8.25：产品介绍卡片加宽至容器全宽 */
.pp-rich { max-width: none; }

/* ============ V8.26 详情页整体玻璃拟态化（全页深蓝流体固定背景 + 磨砂玻璃卡片） ============ */
.pp-page {
  background: linear-gradient(160deg, #0b2a5b 0%, #10396e 45%, #0a2247 100%);
  background-attachment: fixed;
}
/* 区块去底色，露出深蓝背景 */
.pp-page .pp-intro, .pp-page .pp-price, .pp-page .pp-related { background: transparent; }
.pp-page .pp-tabs { background: rgba(255, 255, 255, .55); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid rgba(255, 255, 255, .35); }
/* 区块标题改白 */
.pp-page .pp-sec-title { color: #fff; }
/* 产品介绍卡片：加宽 1200 + 磨砂玻璃 */
.pp-intro .container { max-width: 1240px; }
.pp-rich {
  max-width: 1200px;
  background: rgba(255, 255, 255, .78);
  border: 1px solid rgba(255, 255, 255, .55);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 18px 46px rgba(10, 34, 71, .35), inset 0 1px 0 rgba(255, 255, 255, .5);
}
/* 定价卡玻璃化 */
.pp-price-card { background: rgba(255, 255, 255, .8); border-color: rgba(255, 255, 255, .55); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); box-shadow: 0 18px 46px rgba(10, 34, 71, .35); }
.pp-price-table th { background: rgba(255, 255, 255, .45); border-bottom-color: rgba(255, 255, 255, .35); color: #5a6b85; }
.pp-price-table td { border-bottom-color: rgba(255, 255, 255, .35); }
/* CTA 玻璃化 */
.pp-cta { background: rgba(10, 34, 71, .5); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-top: 1px solid rgba(255, 255, 255, .14); }
/* 相关产品卡片玻璃化 */
.pp-related .product-card {
  background: rgba(255, 255, 255, .82);
  border: 1px solid rgba(255, 255, 255, .5);
  border-radius: 14px;
  overflow: hidden;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 12px 32px rgba(10, 34, 71, .28);
}

/* ============ V8.27 背景改柔色渐变（浅蓝柔和底 + 深色文字适配） ============ */
.pp-page, .pp-hero-v2 {
  background: linear-gradient(160deg, #e8f3ff 0%, #d6e9ff 40%, #eef7ff 100%);
  background-attachment: fixed;
}
.pp-hero-v2::before { background: radial-gradient(ellipse at 35% 35%, rgba(96, 165, 250, .32), rgba(96, 165, 250, 0) 70%); }
.pp-hero-v2::after { background: radial-gradient(ellipse at 60% 60%, rgba(56, 189, 248, .28), rgba(56, 189, 248, 0) 70%); }
/* 左栏文字转深色 */
.pp-hero-v2 .pp-name { color: #1d3a6b; }
.pp-hero-v2 .pp-desc { color: #5a6c88; }
.pp-hero-v2 .pp-price-now { color: #e6a500; }
.pp-hero-v2 .pp-price-old { color: #8fa3bd; }
.pp-hero-v2 .pp-info-card { background: rgba(255, 255, 255, .55); border-color: rgba(255, 255, 255, .85); }
.pp-hero-v2 .pp-info-row span { color: #5a6b85; }
.pp-hero-v2 .pp-info-row b { color: #1d3a6b; }
.pp-hero-v2 .pp-info-row b.pp-hl { color: #e6a500; }
.pp-upd-link { color: #2563eb; }
/* 区块标题转深色 */
.pp-page .pp-sec-title { color: #1d3a6b; }
/* CTA 柔色玻璃 */
.pp-cta { background: rgba(255, 255, 255, .5); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-top: 1px solid rgba(255, 255, 255, .75); }
.pp-cta-title { color: #1d3a6b; }
.pp-cta-desc { color: #5a6b85; }
.pp-btn-reg { border-color: rgba(18, 49, 94, .4); color: #1d3a6b; }
.pp-btn-reg:hover { background: rgba(18, 49, 94, .08); color: #1d3a6b; }

/* V8.28：横幅宽度与下方产品介绍卡片对齐（1240 容器 / 1200 内容） */
.pp-hero-v2 > .container { max-width: 1240px; gap: 100px; }
.pp-hero-right { flex: 0 0 560px; }

/* V8.29：产品定价宽度与上方对齐（1240 容器 / 1200 卡片） */
.pp-price .container { max-width: 1240px; }
.pp-price-card { max-width: 1200px; }

/* V8.30：产品介绍与产品定价宽度改为 1400 */
.pp-intro .container { max-width: 1440px; }
.pp-rich { max-width: 1400px; }
.pp-price .container { max-width: 1440px; }
.pp-price-card { max-width: 1400px; }

/* V8.31：锚点标签栏（产品介绍/产品定价）1400 宽 + 标签居中 */
.pp-page .pp-tabs .container { max-width: 1440px; justify-content: center; }

/* V8.32：锚点栏白底收窄到 1440（与下方模块对齐），悬浮圆角玻璃条 */
.pp-page .pp-tabs { background: transparent; border-bottom: 0; box-shadow: none; }
.pp-page .pp-tabs .container {
  max-width: 1440px;
  justify-content: center;
  background: rgba(255, 255, 255, .68);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, .6);
  border-radius: 16px;
  margin: 12px auto;
  box-shadow: 0 8px 26px rgba(10, 34, 71, .14);
}

/* V8.33：大标题字体加大 */
.pp-hero-v2 .pp-name { font-size: 44px; }

/* ============ V8.34 常见问题模块（折叠玻璃卡） ============ */
.pp-faq { background: transparent; }
.pp-faq .container { max-width: 1440px; }
.pp-faq-list { max-width: 1400px; margin: 0 auto; display: flex; flex-direction: column; gap: 14px; }
.pp-faq-item {
  background: rgba(255, 255, 255, .78);
  border: 1px solid rgba(255, 255, 255, .55);
  border-radius: 14px;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: 0 10px 30px rgba(10, 34, 71, .16);
  overflow: hidden;
}
.pp-faq-q {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  padding: 16px 24px; cursor: pointer;
  font-size: 15.5px; font-weight: 600; color: #1d3a6b;
  list-style: none;
}
.pp-faq-q::-webkit-details-marker { display: none; }
.pp-faq-plus { font-style: normal; color: #2563eb; font-size: 18px; transition: transform .25s; flex: none; }
.pp-faq-item[open] .pp-faq-plus { transform: rotate(45deg); }
.pp-faq-a { padding: 0 24px 18px; font-size: 14px; color: #5a6b85; line-height: 1.8; }
.pp-faq-empty { text-align: center; color: #8fa3bd; padding: 30px 0; }

/* ============ V8.35 产品定价头部重设计（右侧购买框） ============ */
.pp-price-head { background: rgba(255, 255, 255, .5); border-bottom: 1px solid rgba(255, 255, 255, .55); padding: 24px 30px; align-items: center; }
.pp-price-left .pp-price-label { color: #5a6b85; }
.pp-price-head .pp-price-now { font-size: 40px; font-weight: 800; color: #e6a500; line-height: 1.1; }
.pp-price-head .pp-price-old { font-size: 16px; color: #8fa3bd; }
.pp-buy-box {
  display: flex; align-items: center; gap: 20px;
  padding: 14px 22px;
  background: linear-gradient(135deg, rgba(59, 130, 246, .1), rgba(37, 99, 235, .05));
  border: 1px solid rgba(37, 99, 235, .22);
  border-radius: 16px;
  box-shadow: 0 6px 18px rgba(37, 99, 235, .12);
}
.pp-buy-info { display: flex; flex-direction: column; gap: 3px; }
.pp-buy-title { font-size: 15px; font-weight: 700; color: #1d3a6b; }
.pp-buy-sub { font-size: 12.5px; color: #5a6b85; }
@media (max-width: 900px) {
  .pp-price-head { flex-direction: column; align-items: stretch; }
  .pp-buy-box { justify-content: space-between; }
}

/* ============ V8.36 右侧立体卡片美化重设计 ============ */
/* 底座：缩小并柔化（浅蓝渐变平台 + 淡细环） */
.pp3-disc {
  width: 380px; height: 380px;
  background: radial-gradient(circle at 35% 28%, #f2f8ff, #dbeafe 45%, #bcd7f7 75%, #a8c8f2);
  box-shadow:
    inset 0 0 0 10px rgba(255, 255, 255, .55),
    inset 0 0 0 22px rgba(255, 255, 255, .28),
    inset 0 0 0 36px rgba(255, 255, 255, .16),
    inset 0 16px 30px rgba(255, 255, 255, .6),
    inset 0 -22px 42px rgba(59, 130, 246, .18),
    0 30px 56px rgba(59, 130, 246, .28);
}
/* 白色方块：纯白更干净 + 精致描边 */
.pp3-sheet {
  top: 135px;
  background: #fff;
  border: 1px solid #e8f0fc;
  border-radius: 34px;
  box-shadow:
    0 10px 0 #dbe9fb,
    0 30px 54px rgba(59, 130, 246, .3),
    0 8px 16px rgba(10, 34, 71, .08);
}
.pp3-gear { border: 1px solid #dbeafe; box-shadow: inset 0 2px 6px rgba(255, 255, 255, .9), 0 4px 12px rgba(37, 99, 235, .15); }
/* 浮动信息小徽章（后端变量） */
.pp3-chip {
  position: absolute;
  padding: 7px 16px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .92);
  border: 1px solid #e0ecfb;
  color: #2563eb;
  font-size: 13px;
  font-weight: 700;
  box-shadow: 0 10px 24px rgba(59, 130, 246, .22);
  animation: pp3chip 5s ease-in-out infinite;
  z-index: 3;
}
.pp3-chip-ver { top: 34px; right: -6px; }
.pp3-chip-php { bottom: 58px; left: -14px; animation-delay: 1.6s; }
@keyframes pp3chip { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }

/* ============ V8.37 右侧卡片科技风重设计（暗色玻璃面板 + 霓虹辉光 + 轨道环） ============ */
.pp3-card { width: 500px; height: 500px; }
.pp3-card::before, .pp3-card::after {
  content: ""; position: absolute; border-radius: 50%; filter: blur(34px); opacity: .5; z-index: 0; pointer-events: none;
}
.pp3-card::before { width: 180px; height: 180px; top: -20px; right: 20px; background: radial-gradient(circle, rgba(56, 189, 248, .5), rgba(56, 189, 248, 0) 70%); }
.pp3-card::after { width: 220px; height: 220px; bottom: 0; left: -30px; background: radial-gradient(circle, rgba(59, 130, 246, .45), rgba(59, 130, 246, 0) 70%); }
/* 底座 → 旋转虚线轨道环 */
.pp3-disc {
  left: 50%; bottom: 20px; margin-left: -230px; transform: none; z-index: 1;
  width: 460px; height: 460px;
  background: transparent;
  border: 2px dashed rgba(56, 189, 248, .38);
  border-radius: 50%;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  animation: pp3orbit 26s linear infinite;
}
@keyframes pp3orbit { to { transform: rotate(360deg); } }
/* 暗色科技面板 */
.pp3-sheet {
  width: 340px; height: 340px;
  top: 135px;
  background:
    repeating-linear-gradient(0deg, rgba(56, 189, 248, .05) 0 1px, rgba(56, 189, 248, 0) 1px 26px),
    repeating-linear-gradient(90deg, rgba(56, 189, 248, .05) 0 1px, rgba(56, 189, 248, 0) 1px 26px),
    linear-gradient(160deg, rgba(15, 30, 63, .97), rgba(9, 20, 46, .97));
  border: 1px solid rgba(56, 189, 248, .45);
  border-radius: 28px;
  box-shadow:
    0 0 0 1px rgba(56, 189, 248, .1),
    0 0 34px rgba(56, 189, 248, .22),
    0 26px 60px rgba(10, 34, 71, .45),
    inset 0 0 30px rgba(56, 189, 248, .07);
}
/* 科技角标：左上 + 右下 */
.pp3-sheet::before, .pp3-sheet::after {
  content: ""; position: absolute; width: 26px; height: 26px; pointer-events: none;
}
.pp3-sheet::before { top: -2px; left: -2px; border-top: 3px solid #22d3ee; border-left: 3px solid #22d3ee; border-top-left-radius: 10px; }
.pp3-sheet::after { bottom: -2px; right: -2px; border-bottom: 3px solid #22d3ee; border-right: 3px solid #22d3ee; border-bottom-right-radius: 10px; }
/* 齿轮：青色霓虹辉光 */
.pp3-gear { background: rgba(34, 211, 238, .1); color: #22d3ee; border: 1px solid rgba(34, 211, 238, .4); box-shadow: 0 0 18px rgba(34, 211, 238, .35), inset 0 0 12px rgba(34, 211, 238, .12); }
.pp3-name { color: #e0f2fe; text-shadow: 0 0 14px rgba(56, 189, 248, .65); }
/* 徽章：暗色玻璃 + 青色文字 */
.pp3-chip { background: rgba(15, 30, 63, .92); border: 1px solid rgba(56, 189, 248, .45); color: #22d3ee; box-shadow: 0 0 16px rgba(56, 189, 248, .25), 0 8px 20px rgba(10, 34, 71, .3); }

/* ============ V8.38 右侧浏览器窗口截图展示（全新设计） ============ */
.pp-brw-card {
  background: #fff;
  border: 1px solid #e5eefb;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 30px 60px rgba(10, 34, 71, .3), 0 8px 20px rgba(10, 34, 71, .12);
  animation: ppbrwbob 6s ease-in-out infinite;
}
@keyframes ppbrwbob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
.pp-brw-bar {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 14px;
  background: #f1f5f9;
  border-bottom: 1px solid #e8eef6;
}
.pp-brw-dot { width: 12px; height: 12px; border-radius: 50%; flex: none; }
.pp-brw-red { background: #f87171; }
.pp-brw-yellow { background: #fbbf24; }
.pp-brw-green { background: #34d399; }
.pp-brw-addr {
  display: flex; align-items: center; gap: 6px;
  margin: 0 6px 0 10px; padding: 5px 14px;
  flex: 1; min-width: 0;
  background: #fff; border: 1px solid #e8eef6; border-radius: 999px;
  font-size: 12px; color: #64748b;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pp-brw-addr svg { width: 12px; height: 12px; flex: none; color: #34d399; }
.pp-brw-body { aspect-ratio: 4 / 3; background: #f8fafc; }
.pp-brw-body img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
.pp-brw-empty { height: 100%; display: flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 700; color: #8fa3bd; }
/* 底座投影 */
.pp-brw-base {
  width: 72%; height: 20px;
  margin: 18px auto 0;
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(10, 34, 71, .28), rgba(10, 34, 71, 0) 70%);
  filter: blur(5px);
}

/* V8.39：窗口内容比例与截图一致（8:5），避免裁切 */
.pp-brw-body { aspect-ratio: 8 / 5; }

/* V8.40：右侧窗口放大（700px），横幅宽度同步对齐下方 1440 */
.pp-hero-v2 > .container { max-width: 1440px; gap: 80px; }
.pp-hero-right { flex: 0 0 700px; }
@media (max-width: 1280px) {
  .pp-hero-right { flex: none; width: 100%; max-width: 700px; }
}

/* V8.41：恢复窗口 560 宽，窗口内图片放大（4:3 更高） */
.pp-hero-v2 > .container { max-width: 1240px; gap: 100px; }
.pp-hero-right { flex: 0 0 560px; }
.pp-brw-body { aspect-ratio: 4 / 3; }
@media (max-width: 1280px) {
  .pp-hero-right { flex: none; width: 100%; max-width: 640px; }
}

/* ============ V8.42 右侧预览组件弹性适配（58% / 39% 分栏，高度撑满左侧） ============ */
.pp-hero-v2 > .container { max-width: 1440px; gap: 3%; align-items: stretch; }
.pp-hero-left { flex: 0 0 58%; }
.pp-hero-right { flex: 0 0 39%; display: flex; flex-direction: column; justify-content: center; padding: 6px 2px; }
.pp-brw-card {
  flex: 1; min-height: 0;
  width: 100%;
  display: flex; flex-direction: column;
  box-shadow: 0 34px 72px rgba(10, 34, 71, .28), 0 10px 26px rgba(10, 34, 71, .12);
}
.pp-brw-bar { flex: none; }
.pp-brw-body { flex: 1; min-height: 0; aspect-ratio: auto; }
.pp-brw-body img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.pp-brw-base { flex: none; margin-top: 16px; }
@media (max-width: 1280px) {
  .pp-hero-v2 .container { flex-direction: column; gap: 44px; }
  .pp-hero-left, .pp-hero-right { flex: none; width: 100%; }
  .pp-brw-card { height: auto; }
  .pp-brw-body { aspect-ratio: 4 / 3; }
}

/* V8.43：右侧预览组件底部与左侧内容底部对齐 */
.pp-hero-right { justify-content: flex-end; }

/* V8.44：预览组件缩短并贴底，顶部与左侧信息卡（购买按钮下方）对齐 */
.pp-hero-right { justify-content: flex-end; }
.pp-brw-card { flex: none; height: 48%; min-height: 0; }
.pp-brw-base { margin-top: 12px; }

/* V8.45：恢复组件填满右侧栏（不缩小），底边与左侧内容底边对齐 */
.pp-brw-card { flex: 1; height: auto; min-height: 0; }

/* ============ V8.46 右侧组件弹性底部对齐（自然尺寸 + flex-end，无固定px） ============ */
.pp-hero-right { position: relative; justify-content: flex-end; }
.pp-brw-card { flex: none; height: auto; }
.pp-brw-body { aspect-ratio: 4 / 3; flex: none; }
.pp-brw-base { position: absolute; bottom: -24px; left: 50%; transform: translateX(-50%); width: 72%; height: 20px; margin: 0; }
@media (max-width: 1280px) {
  .pp-hero-right { position: static; }
  .pp-brw-base { position: static; margin: 14px auto 0; }
}

/* V8.47：现价/原价/限时优惠同一排显示 */
.pp-hero-v2 .pp-price-line { align-items: center; }
.pp-hero-v2 .pp-tag-discount { margin-bottom: 0; }

/* ============ V8.48 产品列表页重做（蓝色标题栏 + 笔记本卡片网格） ============ */
.pl-page { font-family: "MiSans VF", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif; background: #F5F7FA; }

/* 顶部蓝色标题栏 */
.pl-hero { position: relative; overflow: hidden; background: #2367F6; padding: 76px 0 72px; }
.pl-hero .container { position: relative; z-index: 1; }
.pl-deco { position: absolute; right: -40px; top: -60px; width: 320px; height: 320px; pointer-events: none; z-index: 0; }
.pl-hero-title { font-size: 40px; font-weight: 700; color: #fff; line-height: 1.3; }
.pl-hero-sub { margin-top: 12px; font-size: 16px; font-weight: 400; color: rgba(255, 255, 255, .85); max-width: 720px; line-height: 1.7; }

/* 卡片网格区 */
.pl-sec { padding: 48px 0 72px; }
.pl-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-top: 26px; }

/* 前台产品中心：玻璃拟态展示区（柔色渐变底 + 毛玻璃卡片） */
.pl-sec {
  background: linear-gradient(160deg, rgba(19, 173, 255, .08), rgba(0, 110, 255, .03) 40%, rgba(255, 122, 69, .05) 100%), #f6f9fe;
}
.pl-grid { padding: 22px; border-radius: 20px; border: 1px solid rgba(255, 255, 255, .65); }
.pl-card {
  background: rgba(255, 255, 255, .55);
  border: 1px solid rgba(255, 255, 255, .82);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 10px 30px rgba(31, 58, 102, .08);
}
.pl-card:hover { background: rgba(255, 255, 255, .7); box-shadow: 0 16px 42px rgba(31, 58, 102, .14); }

/* 单卡 */
.pl-card {
  position: relative;
  background: #FFFFFF;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 6px 26px rgba(31, 41, 55, .07);
  transition: transform .25s ease, box-shadow .25s ease;
}
.pl-card:hover { transform: translateY(-6px); box-shadow: 0 16px 40px rgba(31, 41, 55, .13); }

/* 笔记本外壳预览 */
.pl-laptop { display: block; padding: 22px 22px 0; }
.pl-screen {
  display: block;
  aspect-ratio: 16 / 10;
  border: 1px solid #E5E7EB;
  border-bottom: 0;
  border-radius: 12px 12px 0 0;
  background: #F3F4F6;
  overflow: hidden;
  position: relative;
}
.pl-screen img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pl-base {
  display: block;
  width: 112%;
  margin-left: -6%;
  height: 13px;
  background: linear-gradient(180deg, #E5E7EB, #D1D5DB);
  border-radius: 3px 3px 10px 10px;
}

/* 内容区 */
.pl-body { padding: 18px 24px 24px; }
.pl-card-title { font-size: 17px; font-weight: 700; color: #333d4b; line-height: 1.45; }
.pl-card-title a { color: inherit; }
.pl-card-title a:hover { color: #2367F6; }
.pl-card-sub {
  margin-top: 6px;
  font-size: 13.5px;
  font-weight: 400;
  color: #9CA3AF;
  line-height: 1.6;
  height: 3.2em;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.pl-btn {
  margin-top: 14px;
  display: inline-flex; align-items: center; gap: 7px;
  padding: 9px 20px;
  border-radius: 10px;
  background: #2367F6;
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  transition: background .2s;
}
.pl-btn:hover { background: #1B54CC; color: #fff; }
.pl-btn svg { width: 15px; height: 15px; }

/* 分类标签适配浅灰底 */
.pl-sec .category-tabs { margin-bottom: 4px; }

/* 响应式：平板 2 列 / 手机 1 列 */
@media (max-width: 1024px) {
  .pl-grid { grid-template-columns: repeat(2, 1fr); gap: 22px; }
  .pl-hero { padding: 56px 0 52px; }
  .pl-hero-title { font-size: 32px; }
}
@media (max-width: 640px) {
  .pl-grid { grid-template-columns: 1fr; }
  .pl-hero-title { font-size: 26px; }
  .pl-deco { width: 220px; height: 220px; }
}

/* ============ V8.49 通用页顶部蓝色标题栏（与产品中心同风格） ============ */
.page-hero {
  position: relative;
  overflow: hidden;
  background: #2367F6;
  padding: 76px 0 72px;
  text-align: left;
}
.page-hero .container { position: relative; z-index: 1; }
.page-hero h1 { font-size: 40px; font-weight: 700; color: #fff; letter-spacing: 0; line-height: 1.3; }
.page-hero .breadcrumb { margin-top: 12px; font-size: 14px; color: rgba(255, 255, 255, .75); }
.page-hero .breadcrumb a { color: rgba(255, 255, 255, .75); }
.page-hero .breadcrumb a:hover { color: #fff; }
.page-hero .breadcrumb span { margin: 0 8px; color: rgba(255, 255, 255, .45); }
/* 右上角几何装饰（纯 CSS 同心圆环） */
.page-hero::before {
  content: ""; position: absolute; right: -70px; top: -90px;
  width: 340px; height: 340px;
  border: 2px solid rgba(255, 255, 255, .14);
  border-radius: 50%;
  box-shadow: 0 0 0 48px rgba(255, 255, 255, .05), 0 0 0 96px rgba(255, 255, 255, .04);
  pointer-events: none;
}
.page-hero::after {
  content: ""; position: absolute; right: 120px; top: 30px;
  width: 130px; height: 130px;
  border: 2px dashed rgba(255, 255, 255, .2);
  border-radius: 50%;
  pointer-events: none;
}
@media (max-width: 1024px) {
  .page-hero { padding: 56px 0 52px; }
  .page-hero h1 { font-size: 32px; }
}

/* V8.50：授权中心标题栏内容居中 */
.page-hero-center { text-align: center; }
.page-hero-center .pl-hero-sub { margin-left: auto; margin-right: auto; }

/* ============ V8.51 文档页布局（左侧目录 + 右侧内容卡） ============ */
.docs-wrap { display: grid; grid-template-columns: 230px 1fr; gap: 36px; align-items: start; }
.docs-nav { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 10px; }
.docs-nav-item {
  padding: 11px 18px;
  background: #fff;
  border-radius: 10px;
  color: #4b5563;
  font-size: 14px;
  box-shadow: 0 4px 14px rgba(31, 41, 55, .06);
  transition: all .2s;
}
.docs-nav-item:hover { color: #2367F6; }
.docs-nav-item.active { background: #2367F6; color: #fff; font-weight: 600; }
.docs-nav-empty { color: #9CA3AF; font-size: 13px; padding: 0 4px; }
.docs-body { min-width: 0; }
.docs-item { background: #fff; border-radius: 16px; padding: 28px 34px; box-shadow: 0 6px 26px rgba(31, 41, 55, .06); margin-bottom: 24px; }
.docs-item-title { font-size: 21px; font-weight: 700; color: #333d4b; margin-bottom: 16px; padding-bottom: 14px; border-bottom: 1px solid #F0F2F5; }
.docs-empty { color: #9CA3AF; text-align: center; }
@media (max-width: 900px) {
  .docs-wrap { grid-template-columns: 1fr; }
  .docs-nav { position: static; flex-direction: row; flex-wrap: wrap; }
}

/* V8.52：顶部导航整体加宽（1200 → 1400 内容区） */
.site-header .container { max-width: 1440px; }

/* V8.53：主导航选中态改为「蓝字 + 底部横线」标签样式（字重恢复常规） */
.nav-link { font-weight: 400; }
.nav-link.active { position: relative; font-weight: 400; }
.nav-link.active::after {
  content: "";
  position: absolute;
  left: 14px; right: 14px; bottom: 0;
  height: 3px;
  border-radius: 2px 2px 0 0;
  background: var(--primary);
}
/* 顶部悬浮态（深色/蓝色横幅上）：白字 + 白色横线 */
.site-header:not(.scrolled) .nav-link.active { color: #fff; }
.site-header:not(.scrolled) .nav-link.active::after { background: #fff; }

/* V8.54：修复选中项白字不可见——白底吸顶导航全程蓝字+蓝线 */
.site-header:not(.scrolled) .nav-link.active { color: var(--primary); }
.site-header:not(.scrolled) .nav-link.active::after { background: var(--primary); }

/* V8.55：产品中心「查看更多商品」按钮 */
.sol-more-wrap { text-align: center; margin-top: 30px; }
.sol-more-btn { padding: 12px 44px; font-size: 15px; }

/* ============ V8.56 开发文档页（分类树 + 文档列表） ============ */
.docs-page { font-family: "MiSans VF", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif; background: #F7F8FB; }
.docs2-sec { padding: 36px 0 72px; }
.docs2-wrap { display: grid; grid-template-columns: 280px 1fr; gap: 28px; align-items: start; }
.docs2-toggle { display: none; }

/* 左侧分类树卡片 */
.docs2-side { background: #fff; border-radius: 16px; box-shadow: 0 6px 22px rgba(31, 41, 55, .06); overflow: hidden; }
.docs2-side-head { padding: 18px 22px; font-size: 16px; font-weight: 700; color: #333d4b; border-bottom: 1px solid #F0F2F5; text-align: center; }
.docs2-tree { padding: 10px 10px 14px; }
.docs2-cat {
  display: flex; align-items: center; gap: 9px;
  padding: 11px 12px;
  border-radius: 10px;
  cursor: pointer;
  font-size: 14.5px; color: #454e5c;
  transition: background .18s;
  user-select: none;
}
.docs2-cat:hover { background: #F3F6FC; }
.docs2-cat.active { background: #EAF2FF; color: #2367F6; font-weight: 600; }
.docs2-folder { flex: none; width: 18px; height: 18px; color: #F59E0B; display: flex; }
.docs2-folder svg { width: 18px; height: 18px; }
.docs2-cat.active .docs2-folder { color: #2367F6; }
.docs2-cat-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.docs2-arrow { flex: none; width: 14px; height: 14px; color: #9CA3AF; display: flex; transition: transform .25s; }
.docs2-arrow svg { width: 14px; height: 14px; }
.docs2-node.open > .docs2-cat .docs2-arrow { transform: rotate(180deg); }
.docs2-sub { display: none; padding-left: 14px; border-left: 1px dashed #E5E7EB; margin-left: 18px; }
.docs2-node.open > .docs2-sub { display: block; }

/* 右侧内容 */
.docs2-main { min-width: 0; }
.docs2-breadcrumb { font-size: 13px; color: #9CA3AF; margin-bottom: 10px; }
.docs2-breadcrumb a { color: #9CA3AF; }
.docs2-breadcrumb a:hover { color: #2367F6; }
.docs2-breadcrumb span { margin: 0 6px; color: #D1D5DB; }
.docs2-breadcrumb b { color: #6B7280; font-weight: 500; }
.docs2-title { font-size: 26px; font-weight: 700; color: #2a3240; margin-bottom: 18px; }
.docs2-list-card { background: #fff; border-radius: 16px; box-shadow: 0 6px 22px rgba(31, 41, 55, .06); padding: 22px 26px; }
.docs2-list-title { font-size: 17px; font-weight: 700; color: #2a3240; margin-bottom: 14px; }
.docs2-list { list-style: none; margin: 0; padding: 0; }
.docs2-item { display: flex; align-items: center; gap: 12px; padding: 13px 2px; border-bottom: 1px dashed #E5E7EB; }
.docs2-item:last-child { border-bottom: 0; }
.docs2-dot { flex: none; width: 7px; height: 7px; border-radius: 50%; background: #2367F6; }
.docs2-item a { font-size: 15px; color: #2367F6; }
.docs2-item a:hover { text-decoration: underline; }
.docs2-empty { padding: 16px 2px; color: #9CA3AF; font-size: 14px; }

/* 详情页 */
.docs2-detail-wrap { max-width: 960px; }
.docs2-detail-card { background: #fff; border-radius: 16px; box-shadow: 0 6px 22px rgba(31, 41, 55, .06); padding: 30px 36px; }
.docs2-detail-title { font-size: 24px; font-weight: 700; color: #2a3240; padding-bottom: 16px; border-bottom: 1px dashed #E5E7EB; margin-bottom: 20px; }
.docs2-back { margin-top: 22px; }

/* 移动端：侧栏折叠 */
@media (max-width: 900px) {
  .docs2-wrap { grid-template-columns: 1fr; }
  .docs2-toggle { display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px; border-radius: 10px; background: #fff; border: 1px solid #E5E7EB; color: #454e5c; font-size: 14px; box-shadow: 0 4px 14px rgba(31, 41, 55, .06); }
  .docs2-side { display: none; }
  .docs2-side.open { display: block; }
}

/* ============ V8.57 授权中心应用市场卡片 ============ */
.mk-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.mk-card { background: #fff; border-radius: 14px; border: 1px solid #eef2f7; box-shadow: 0 6px 22px rgba(31, 41, 55, .06); padding: 20px 22px; display: flex; flex-direction: column; gap: 12px; transition: transform .2s, box-shadow .2s; }
.mk-card:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(31, 41, 55, .12); }
.mk-head { display: flex; align-items: center; gap: 13px; }
.mk-icon { width: 46px; height: 46px; border-radius: 12px; background: linear-gradient(135deg, #3b82f6, #2563eb); color: #fff; font-size: 22px; display: flex; align-items: center; justify-content: center; flex: none; overflow: hidden; }
.mk-icon img { width: 100%; height: 100%; object-fit: cover; }
.mk-info { flex: 1; min-width: 0; }
.mk-name { font-size: 16px; font-weight: 700; color: #333d4b; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mk-price { display: inline-block; margin-top: 4px; font-size: 16px; font-weight: 800; color: #e6a500; }
.mk-free { display: inline-block; margin-top: 4px; font-size: 13px; font-weight: 700; color: #10b981; }
.mk-desc { font-size: 13px; color: #9CA3AF; line-height: 1.7; height: 3.4em; overflow: hidden; margin: 0; }
.mk-foot { margin-top: auto; }
.mk-btn { display: inline-flex; align-items: center; justify-content: center; width: 100%; padding: 9px 0; border-radius: 10px; font-size: 14px; font-weight: 600; transition: background .2s; }
.mk-btn-buy { background: linear-gradient(135deg, #ff8c1a, #ff6a00); color: #fff; }
.mk-btn-buy:hover { filter: brightness(1.08); color: #fff; }
.mk-btn-get { background: #2367F6; color: #fff; }
.mk-btn-get:hover { background: #1B54CC; color: #fff; }
@media (max-width: 1024px) { .mk-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .mk-grid { grid-template-columns: 1fr; } }

/* V8.58：安装向导演示模式提示条 */
.install-preview-tip {
  margin: -2px 0 18px;
  padding: 10px 16px;
  border-radius: 10px;
  background: #fff7db;
  border: 1px solid #ffe08a;
  color: #8a6d00;
  font-size: 13.5px;
  text-align: center;
}

/* ============ V8.59 结账页 ============ */
.ck-sec { padding: 36px 0 72px; }
.ck-wrap { max-width: 960px; }
.ck-card { background: #fff; border-radius: 12px; box-shadow: 0 6px 22px rgba(31, 41, 55, .06); padding: 20px 24px; margin-bottom: 18px; }
.ck-table-card { padding: 0; }
.ck-table { width: 100%; border-collapse: collapse; }
.ck-table th { text-align: left; font-size: 13.5px; font-weight: 600; color: #4b5563; padding: 12px 24px; border-bottom: 1px solid #f0f2f5; }
.ck-table td { padding: 13px 24px; font-size: 14px; color: #333d4b; border-bottom: 1px solid #f5f6f8; }
.ck-table tbody tr:last-child td { border-bottom: 0; }
.ck-table tfoot td { border-top: 1px solid #e5e7eb; border-bottom: 0; font-weight: 600; }
.ck-price { color: #e6a500; font-weight: 700; white-space: nowrap; }
.ck-remove { color: #dc2626; font-size: 13px; }
.ck-remove:hover { text-decoration: underline; }
.ck-coupon-head { display: flex; align-items: center; gap: 14px; }
.ck-coupon-toggle { color: #2367F6; font-size: 14px; cursor: pointer; }
.ck-coupon-toggle:hover { text-decoration: underline; }
.ck-coupon-info { font-size: 13px; color: #9CA3AF; }
.ck-coupon-info.ok { color: #10b981; }
.ck-coupon-row { display: flex; gap: 10px; margin-top: 12px; }
.ck-coupon-row .form-control { max-width: 280px; }
.ck-title { font-size: 16px; font-weight: 700; color: #2a3240; margin-bottom: 14px; }
.ck-gateways { display: flex; gap: 22px; }
.ck-gateway { display: flex; align-items: center; gap: 7px; font-size: 14.5px; color: #454e5c; cursor: pointer; }
.ck-gateway input { accent-color: #2367F6; width: 16px; height: 16px; }
.ck-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ck-form-grid label { font-size: 14px; font-weight: 600; color: #454e5c; }
.ck-star { color: #ef4444; font-style: normal; }
.ck-hint { font-size: 12.5px; color: #9CA3AF; margin: 4px 0 8px; line-height: 1.6; }
.ck-form-grid .form-control { border: 1px solid #d1d5db; border-radius: 8px; padding: 9px 13px; font-size: 14px; width: 100%; outline: none; transition: border-color .15s; }
.ck-form-grid .form-control:focus { border-color: #2367F6; box-shadow: 0 0 0 3px rgba(35, 103, 246, .12); }
.ck-total-bar { background: #f3f7ff; border-radius: 10px; padding: 15px 22px; display: flex; align-items: center; gap: 10px; margin-bottom: 18px; font-size: 15px; color: #4b5563; }
.ck-total-bar b { font-size: 20px; color: #e6a500; }
.ck-discount-info { font-style: normal; font-size: 12.5px; color: #10b981; margin-left: 8px; }
.ck-actions { display: flex; align-items: center; gap: 16px; }
.ck-msg { font-size: 13px; color: #9CA3AF; }
.ck-msg.ok { color: #10b981; }
.ck-empty { text-align: center; padding: 50px 20px; }
.ck-empty p { color: #6b7280; font-size: 15px; margin-bottom: 18px; }
.ck-result { text-align: center; padding: 44px 24px; }
.ck-result-icon { width: 64px; height: 64px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 30px; margin-bottom: 14px; }
.ck-result-icon.ok { background: #e8f7ef; color: #10b981; }
.ck-result-icon.wait { background: #fff7db; color: #f59e0b; }
.ck-result h2 { font-size: 21px; color: #2a3240; margin-bottom: 10px; }
.ck-result p { font-size: 14px; color: #6b7280; margin-bottom: 22px; line-height: 1.8; }
.ck-result .ck-actions { justify-content: center; }
/* 用户中心内嵌结账页 */
.ck-sec-uc { padding: 0; }
.ck-sec-uc .ck-wrap { max-width: none; }
.ck-sec-uc .ck-card { box-shadow: none; border: 1px solid #eef1f6; }
.user-card-head .us-back { margin-left: auto; font-size: 13px; font-weight: 400; color: #006eff; }
.user-card-head .us-back:hover { text-decoration: underline; }

/* 用户中心选购商品：按钮白字 + 商品展示玻璃拟态 */
.user-card .pl-btn, .user-card .pl-btn:hover { color: #ffffff; }
/* 产品卡片按钮行：并排各占一半（用户中心只有一个按钮时占满） */
.pl-btn-row { display: flex; gap: 10px; }
.pl-btn-row .pl-btn { flex: 1; justify-content: center; margin-top: 14px; }
.uc-mall-pl .pl-body .pl-btn { width: 100%; justify-content: center; }
/* 前台产品中心列表整体加宽 */
.pl-sec .container { max-width: 1400px; }
.uc-mall-pl {
  position: relative;
  padding: 20px;
  border-radius: 18px;
  margin-top: 6px;
  border: 1px solid rgba(255, 255, 255, .65);
  background: linear-gradient(135deg, rgba(19, 173, 255, .16), rgba(108, 123, 255, .05) 45%, rgba(255, 122, 69, .07)), linear-gradient(180deg, #eef0ff, #f6faff);
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
@media (max-width: 1100px) { .uc-mall-pl { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .uc-mall-pl { grid-template-columns: 1fr; } }
.uc-mall-pl .pl-card {
  background: rgba(255, 255, 255, .52);
  border: 1px solid rgba(255, 255, 255, .8);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 10px 30px rgba(31, 58, 102, .08);
}
.uc-mall-pl .pl-card:hover {
  background: rgba(255, 255, 255, .68);
  box-shadow: 0 16px 42px rgba(31, 58, 102, .14);
}
/* 支付成功卡密展示 */
.ck-kami-box { max-width: 560px; margin: 0 auto 20px; padding: 18px 22px; border: 1px dashed #006eff; border-radius: 12px; background: #f5f9ff; text-align: left; }
.ck-kami-box h3 { font-size: 15px; color: #2a3240; margin-bottom: 10px; text-align: center; }
.ck-kami-line { font-family: Consolas, Monaco, monospace; font-size: 14px; color: #006eff; background: #fff; border: 1px solid #dbeafe; border-radius: 8px; padding: 9px 12px; margin-bottom: 8px; }
.ck-kami-tip { font-size: 13px; color: #f59e0b; margin: 4px 0 0; }
.ck-kami-usage { font-size: 13px; color: #6b7280; margin: 0 auto 22px; max-width: 560px; line-height: 1.8; }
.ck-kami-usage .link { color: #006eff; }
@media (max-width: 640px) {
  .ck-form-grid { grid-template-columns: 1fr; }
}

/* V8.60：产品卡片立即购买按钮（橙色，与主题介绍并排） */
.pl-body .pl-btn + .pl-btn { margin-left: 10px; }
.pl-btn-buy-now { background: linear-gradient(135deg, #ff8c1a, #ff6a00); }
.pl-btn-buy-now:hover { background: linear-gradient(135deg, #ff6a00, #e65c00); color: #fff; }

/* V8.61：结账页内容宽度改为 1200 */
.ck-wrap { max-width: 1200px; }

/* V8.62：充值页支付通道选择 */
.uc-pay-channels { display: flex; gap: 18px; flex-wrap: wrap; }
.uc-pay-chan { display: flex; align-items: center; gap: 7px; font-size: 14px; color: #454e5c; cursor: pointer; }
.uc-pay-chan input { accent-color: #6c7bff; width: 16px; height: 16px; }

/* V8.63：充值页支付通道气泡样式（标签同行，气泡占 1/3 宽度） */
.uc-pay-row { display: flex; align-items: center; gap: 14px; margin: 2px 0 18px; }
.uc-pay-label { font-size: 14px; color: #666; flex: none; }
.uc-pay-channels { display: flex; gap: 10px; flex: 1; }
.uc-pay-chan { flex: 0 0 33.33%; max-width: 220px; }
.uc-pay-chan input { display: none; }
.uc-pay-chan span {
  display: flex; align-items: center; justify-content: center;
  padding: 9px 0;
  border-radius: 999px;
  border: 1px solid #e2e8f0;
  background: #fff;
  color: #5f6876;
  font-size: 14px;
  cursor: pointer;
  transition: all .2s;
}
.uc-pay-chan input:checked + span {
  background: #eaf2ff;
  border-color: #6c7bff;
  color: #6c7bff;
  font-weight: 600;
}

/* V8.64：通道气泡改长方形圆角，选中变蓝底白字 */
.uc-pay-chan span { border-radius: 8px; }
.uc-pay-chan input:checked + span { background: #6c7bff; border-color: #6c7bff; color: #fff; }

/* V8.65：气泡加长，选中态黑字+蓝框 */
.uc-pay-chan { flex: 0 0 40%; max-width: 280px; }
.uc-pay-chan span { padding: 10px 0; color: #8a94a6; }
.uc-pay-chan input:checked + span { background: #fff; border-color: #6c7bff; color: #2a3240; font-weight: 600; }

/* V8.66：通道方框继续加长 */
.uc-pay-chan { flex: 0 0 100%; max-width: 100%; }

/* V8.67：支付通道卡片（图标+名称，选中蓝框+右下角蓝斜角白勾） */
.uc-pay-cards { display: flex; flex-wrap: wrap; gap: 14px; flex: 1; }
.uc-pay-card { flex: 0 0 210px; }
.uc-pay-card input { display: none; }
.uc-pay-card-body {
  position: relative;
  display: flex; align-items: center; gap: 10px;
  padding: 11px 16px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  cursor: pointer;
  overflow: hidden;
  transition: border-color .2s;
}
.uc-pay-card-body:hover { border-color: #c4d7f7; }
.uc-pay-card input:checked + .uc-pay-card-body { border-color: #6c7bff; }
.uc-pay-card input:checked + .uc-pay-card-body::after {
  content: "";
  position: absolute;
  right: 0; bottom: 0;
  width: 26px; height: 26px;
  background: linear-gradient(315deg, #6c7bff 50%, rgba(255, 255, 255, 0) 50%);
}
.uc-pay-card-ico {
  width: 30px; height: 30px; border-radius: 8px; flex: none;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 700; color: #fff;
}
.uc-ico-blue { background: linear-gradient(135deg, #6c7bff, #6c7bff); }
.uc-ico-green { background: linear-gradient(135deg, #34d399, #10b981); }
.uc-ico-cyan { background: linear-gradient(135deg, #38bdf8, #0284c7); }
.uc-pay-card-name { font-size: 14.5px; color: #2a3240; font-weight: 400; }
.uc-pay-card-check {
  display: none;
  position: absolute; right: 4px; bottom: 3px;
  font-style: normal; font-size: 11px; font-weight: 700; color: #fff;
  z-index: 1;
}
.uc-pay-card input:checked + .uc-pay-card-body .uc-pay-card-check { display: block; }
@media (max-width: 640px) {
  .uc-pay-card { flex: 0 0 calc(50% - 7px); }
}

/* V8.68：支付宝官方图标 + 卡片内容居中 */
.uc-ico-alipay { background: none; color: #6c7bff; width: 26px; height: 26px; border-radius: 0; }
.uc-ico-alipay path { fill: currentColor; }
.uc-pay-card-body { justify-content: center; }

/* V8.69：抖音支付图标与后台渠道图标 */
.uc-ico-douyin { background: linear-gradient(135deg, #1e293b, #06b6d4); }
.pay-ico-douyin { background: linear-gradient(135deg, #1e293b, #06b6d4); }

/* V8.70：微信/抖音官方图标配色 */
.uc-ico-wechat { background: none; color: #07C160; width: 26px; height: 26px; border-radius: 0; }
.uc-ico-wechat path { fill: currentColor; }
.uc-ico-douyin { background: none; color: #2a3240; width: 24px; height: 24px; border-radius: 0; }
.uc-ico-douyin path { fill: currentColor; }

/* V8.71：结账页余额支付卡片（余额不足时置灰不可选） */
.ck-ico-balance { background: linear-gradient(135deg, #6c7bff, #9b88ff); }
.ck-pay-off .uc-pay-card-body { opacity: .5; cursor: not-allowed; }
.ck-pay-off .uc-pay-card-body:hover { border-color: #e5e7eb; }
.ck-pay-off .uc-pay-card-body::after { display: none; }

/* ============================================================
   全站锐利化改版：字体锐利 / 棱角分明 / 去模糊
   ============================================================ */
/* 全局抗锯齿 */
* { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
img { image-rendering: auto; }
/* 标题统一 600 字重、深色 */
h1, h2, h3, h4, h5, h6 { font-weight: 600; color: #2a3240; }
.hero-title, .pl-card-title, .pp3-name, .entry-title, .home-card-title { font-weight: 600; }
/* 正文/辅助文字颜色：正文 #444，辅助 #666 */
p { color: #525b69; }
.muted, .user-tip, .pl-card-sub, .ck-hint, .pay-hint, .us-msg { color: #666; }
/* 关闭全部毛玻璃模糊 */
*, *::before, *::after { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
/* 顶栏恢复实色白底（去毛玻璃后避免透底），小圆角棱角分明 */
.site-header, .site-header.scrolled {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 4px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .08);
  overflow: visible;
}
/* 玻璃卡片恢复实色白底 + 实色边框 */
.pl-card, .uc-mall-pl .pl-card, .pp-carousel { background: #fff !important; border: 1px solid #e5e7eb; box-shadow: 0 1px 2px rgba(0, 0, 0, .06); }
.uc-mall-pl { background: #f2f6fc; border: 1px solid #e5e7eb; }
/* 圆角统一 2-4px（棱角利落） */
.btn, .btn-primary, .btn-outline, .btn-dark, .btn-plain, .btn-lg, .btn-sm,
.form-control, .form-input, .form-textarea, .uaf-input, .pay-form-grid input, .pay-form-grid select,
.ck-card, .ck-kami-box, .ck-kami-line, .pl-card, .user-card, .entry-card, .home-card,
.news-card, .article-item, .page-card, .uc-pay-card-body, .consult-panel, .a2-panel,
.mk-card, .uc-modal, .uc-pay-chan span { border-radius: 4px !important; }
.ck-table { border: 1px solid #e5e7eb; }
/* 卡片实色边框 + 轻阴影（不发虚） */
.ck-card, .user-card, .entry-card, .home-card, .news-card, .article-item {
  border: 1px solid #e5e7eb;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
}
/* 按钮实色、锐利阴影 */
.btn, .btn-primary, .btn-outline, .btn-dark, .hero-btn { box-shadow: 0 1px 2px rgba(0, 0, 0, .08) !important; }
/* 移除图片 hover 缩放（缩放会造成模糊） */
.product-card:hover .product-thumb img,
.news-card:hover .news-thumb img,
.article-item:hover .article-item-thumb img,
.about-img:hover img { transform: none !important; }
/* 过小字号提升到 12px */
.logo-domain, .auth-fn-en, .uc-oitem span { font-size: 12px; }

/* ============ 顶栏用户名下拉菜单（用户中心 / 我的订单 / 退出登录） ============ */
.header-user { position: relative; }
.header-user-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 10px;
  font-size: 14px;
  color: var(--ink-2);
  cursor: pointer;
  transition: color .2s;
}
.header-user-btn:hover { color: var(--primary); }
.header-user-caret { width: 14px; height: 14px; transition: transform .2s; }
.header-user:hover .header-user-caret { transform: rotate(180deg); }
.header-user-menu {
  position: absolute;
  top: 100%;
  right: 0;
  min-width: 140px;
  padding: 6px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 4px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .12);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: all .18s;
  z-index: 60;
}
/* 悬停桥接：防止鼠标经过间隙时菜单收起 */
.header-user-menu::before { content: ""; position: absolute; top: -8px; left: 0; right: 0; height: 8px; }
.header-user:hover .header-user-menu, .header-user-menu:hover { opacity: 1; visibility: visible; transform: none; }
.header-user-menu a {
  display: block;
  padding: 9px 14px;
  font-size: 14px;
  color: #525b69;
  border-radius: 4px;
}
.header-user-menu a:hover { background: #f2f6fc; color: #006eff; }

/* ============ 用户中心侧栏优化：图标徽章 + 层级清晰 + 锐利化 ============ */
/* 分组标题：纯图标无徽章 */
.uc-group-icobox {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #6c7bff;
  margin-right: 10px;
}
.uc-group-icobox svg { width: 16px; height: 16px; }
.uc-group-title {
  padding: 11px 14px;
  color: #525b69;
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: .3px;
  gap: 0;
}
.uc-group-title:hover { color: #6c7bff; }
.uc-group-arrow { color: #999; font-size: 0; }
.uc-group-arrow svg { width: 12px; height: 12px; }
/* 菜单项：统一图标尺寸、锐利圆角、激活左侧竖条 */
.uc-item {
  position: relative;
  margin: 2px 10px;
  padding: 10px 14px;
  border-radius: 4px;
  font-size: 14px;
}
.uc-item svg { width: 16px; height: 16px; flex: none; color: #7a8aa3; transition: color .2s; }
.uc-item:hover svg { color: #6c7bff; }
.uc-item.active svg { color: #6c7bff; }
.uc-item.active::before {
  content: "";
  position: absolute;
  left: -10px;
  top: 9px;
  bottom: 9px;
  width: 3px;
  border-radius: 2px;
  background: #6c7bff;
}
.uc-item-single { margin: 4px 10px; }
.uc-sider-foot .uc-item { margin: 2px 10px; padding: 10px 14px; }
.uc-item:hover { color: #6c7bff; }

/* ============ 用户中心两栏布局：左侧一级菜单 + 右侧二级菜单 ============ */
.uc-nav { padding: 8px 0; }
.uc-pri {
  display: flex;
  align-items: center;
  gap: 10px;
  width: calc(100% - 20px);
  margin: 2px 10px;
  padding: 11px 14px;
  border-radius: 4px;
  background: none;
  color: #525b69;
  font-size: 14px;
  cursor: pointer;
  text-align: left;
  transition: all .18s;
}
.uc-pri:hover { background: #f2f6fc; color: #6c7bff; }
.uc-pri.active { background: #0b1d30; color: #fff; }
.uc-pri.active .uc-pri-ico { color: #fff; }
.uc-pri-ico { display: inline-flex; flex: none; color: #6c7bff; }
.uc-pri-ico svg { width: 16px; height: 16px; }
.uc-pri-name { flex: 1; }
.uc-new {
  flex: none;
  font-style: normal;
  font-size: 12px;
  line-height: 1;
  padding: 2px 5px;
  border-radius: 3px;
  background: #ff4d4f;
  color: #fff;
}
/* 右侧二级菜单栏：下划线标签菜单 */
.uc-subnav {
  display: flex;
  align-items: stretch;
  gap: 20px;
  background: #fff;
  border-bottom: 1px solid #e5e7eb;
  padding: 0 24px;
}
.uc-subnav-title {
  display: flex;
  align-items: center;
  flex: none;
  font-size: 15px;
  font-weight: 600;
  color: #2a3240;
}
.uc-subnav-items { display: flex; align-items: stretch; gap: 4px; }
.uc-sub {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 15px 16px;
  margin-bottom: -1px;
  font-size: 14px;
  color: #525b69;
  border-bottom: 2px solid transparent;
  transition: color .18s;
}
.uc-sub:hover { color: #6c7bff; }
.uc-sub.active { color: #6c7bff; font-weight: 500; border-bottom-color: #6c7bff; }
.uc-sub-ico { display: inline-flex; flex: none; }
.uc-sub-ico svg { width: 15px; height: 15px; }

/* 用户中心侧栏顶标题：左对齐、与菜单层级统一 */
.uc-logo { justify-content: flex-start; padding: 18px 24px 14px; }
.uc-logo b { font-size: 16px; font-weight: 600; color: #2a3240; }

/* 用户中心侧栏顶：调用前台 Logo（按比例缩小显示） */
.uc-logo-img {
  height: 30px;
  width: auto;
  object-fit: contain;
  flex: none;
}

/* 用户中心首页：账户余额 + 充值行单独方框包裹 */
.uc-hero-balance {
  border: 1px solid #e5e7eb;
  border-radius: 4px;
  background: #f8fbff;
  padding: 14px 18px;
  margin-bottom: 16px;
}

/* 用户中心首页：权限组统计行同样方框包裹 */
.uc-hero-stats {
  border: 1px solid #e5e7eb;
  border-radius: 4px;
  background: #fff;
  padding: 14px 18px;
}

/* 用户中心首页：右侧两个方框撑满与左侧高度对齐 */
.uc-hero-right { justify-content: space-between; }
.uc-hero-balance { flex: 1; }
.uc-hero-stats { flex: 1; display: flex; align-items: center; justify-content: space-around; }

/* ============ 用户中心首页 Hero 卡 UI 重构（仅样式，不改数据） ============ */
/* 卡片纯白 + 小圆角 */
.uc-hero-card { border-radius: 4px; background: #fff; }
.uc-hero-left { background: #fff; }
.uc-hero-right { background: #fff; }
/* 头像：浅灰圆 + 灰色人形图标 */
.uc-hero-avatar { background: #f0f2f5; color: #9aa3ae; font-size: 0; }
.uc-hero-avatar svg { width: 26px; height: 26px; }
/* 文字：用户名大号黑字，欢迎语+ID 普通黑字 */
.uc-hero-name { font-size: 21px; font-weight: 600; color: #2a3240; }
.uc-hero-hello { display: block; margin-top: 6px; font-size: 13px; color: #454e5c; }
.uc-hero-id { display: inline; margin-top: 0; font-size: 13px; color: #454e5c; }
.uc-hero-arrow { color: #b0b0b0; }
/* 右侧两个方框：纯白底 */
.uc-hero-balance { background: #fff; align-items: center; }
.uc-hero-stats { background: #fff; }
/* 充值按钮：灰色边框圆角，白底灰字，无蓝色填充阴影 */
.uc-hero-recharge {
  background: #fff;
  color: #5f6876;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  padding: 5px 16px;
  font-size: 13px;
  font-weight: 400;
  box-shadow: none;
  transition: color .2s, border-color .2s;
}
.uc-hero-recharge:hover { color: #6c7bff; border-color: #6c7bff; }
/* 余额标题与数字 */
.uc-hero-balance-label { font-size: 13px; color: #525b69; }
.uc-hero-balance-num { font-size: 30px; font-weight: 700; color: #2a3240; }
/* 统计项：数字大号加粗、标签小字深灰 */
.uc-hero-stat b { font-size: 20px; font-weight: 700; color: #2a3240; }
.uc-hero-stat span { margin-top: 3px; font-size: 12px; color: #666; }
.uc-hero-split { height: 26px; background: #e8e8e8; }

/* 余额内容右移，与下方权限组第一项位置上下对齐 */
.uc-hero-balance > div { padding-left: 9%; }

/* 登录/注册 Tab 与验证码行 */
.uaf-tabs { display: flex; gap: 4px; border-bottom: 1px solid #e5e7eb; margin-bottom: 18px; }
.uaf-tab {
  position: relative;
  padding: 10px 18px;
  margin-bottom: -1px;
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  font-size: 14px;
  color: #525b69;
  cursor: pointer;
  transition: color .18s;
}
.uaf-tab:hover { color: #1677ff; }
.uaf-tab.active { color: #1677ff; border-bottom-color: #1677ff; }
.uaf-pane { display: none; }
.uaf-pane.active { display: block; }
.uaf-code-row { display: flex; gap: 10px; }
.uaf-code-row .uaf-input { flex: 1; }
.uaf-code-btn { flex: none; padding: 10px 16px; font-size: 13px; }

/* 授权中心在线购买提示 */
.a2-buy-tip { margin-top: 12px; font-size: 13px; color: #666; line-height: 1.8; }

/* 我的授权：授权码隐藏/查看/复制 */
.us-authcode { display: inline-flex; align-items: center; gap: 8px; }
.us-authcode-mask, .us-authcode-real { font-style: normal; font-family: Consolas, Monaco, monospace; font-size: 12.5px; color: #525b69; }
.us-authcode-view, .us-authcode-copy {
  background: none;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  padding: 2px 10px;
  font-size: 12px;
  color: #1677ff;
  cursor: pointer;
  transition: all .18s;
}
.us-authcode-view:hover, .us-authcode-copy:hover { border-color: #1677ff; background: #f2f6fc; }
.us-copied-tip {
  position: fixed;
  left: 50%;
  top: 80px;
  transform: translateX(-50%);
  z-index: 999;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 4px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, .12);
  padding: 9px 20px;
  font-size: 13px;
  color: #3c9b3c;
  display: none;
}

/* 我的授权：激活次数标签 */
.us-act-badge {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 4px;
  background: #e6f4ff;
  color: #1677ff;
  font-size: 12px;
}

/* 我的授权：统计标签行 */
.us-stat-tags { display: flex; gap: 14px; margin-bottom: 18px; }
.us-stat-tag {
  flex: 1;
  border: 1px solid #e5e7eb;
  border-radius: 4px;
  background: #f8faff;
  padding: 12px 18px;
  text-align: center;
}
.us-stat-tag b { display: block; font-size: 22px; font-weight: 700; color: #1677ff; }
.us-stat-tag span { display: block; margin-top: 3px; font-size: 12.5px; color: #666; }

/* 我的授权：详细信息弹窗小表格 */
.us-detail-modal {
  position: fixed; inset: 0; z-index: 999;
  background: rgba(0, 0, 0, .45);
  display: flex; align-items: center; justify-content: center;
}
.us-detail-box { width: 480px; max-width: 92vw; background: #fff; border-radius: 4px; box-shadow: 0 10px 34px rgba(0, 0, 0, .2); }
.us-detail-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid #e5e7eb; }
.us-detail-head b { font-size: 15px; font-weight: 600; color: #2a3240; }
.us-detail-close { background: none; border: 0; font-size: 20px; color: #999; cursor: pointer; line-height: 1; }
.us-detail-close:hover { color: #454e5c; }
.us-detail-body { padding: 14px 18px 18px; }
.us-detail-table { width: 100%; border-collapse: collapse; border: 1px solid #e5e7eb; }
.us-detail-table td { padding: 9px 14px; font-size: 13px; color: #454e5c; border-bottom: 1px solid #e5e7eb; }
.us-detail-table tr:last-child td { border-bottom: 0; }
.us-detail-table .us-detail-th { width: 100px; background: #f5f6fa; color: #525b69; }

/* 我的授权：订单详情弹窗 */
.us-order-box { width: 560px; }
.us-order-body { max-height: 76vh; overflow: auto; }
.us-order-tip { font-size: 13px; color: #454e5c; line-height: 1.8; margin-bottom: 14px; }
.us-order-info { margin-bottom: 16px; }
.us-order-secret-label {
  display: inline-block;
  margin-right: 10px;
  padding: 2px 10px;
  border-radius: 4px;
  background: #e6f4ff;
  color: #1677ff;
  font-size: 12px;
}
.us-order-secret { font-family: Consolas, Monaco, monospace; font-size: 12.5px; color: #525b69; word-break: break-all; }
.us-order-sub { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: #2a3240; margin: 0 0 10px; }
.us-order-sub i { width: 7px; height: 7px; border-radius: 50%; background: #1677ff; flex: none; }
.us-order-dl { margin-bottom: 16px; }
.us-order-dl thead th { background: #f5f6fa; font-weight: 400; }
.us-order-tut { margin-top: 4px; font-size: 12.5px; color: #666; }
.us-order-link { color: #1677ff; }
.us-order-link:hover { text-decoration: underline; }
.us-order-actions { display: flex; }
.us-order-dlbtn {
  background: linear-gradient(135deg, #3b82f6, #2563eb);
  color: #fff;
  border: 0;
  border-radius: 4px;
  padding: 10px 26px;
  font-size: 14px;
  cursor: pointer;
  transition: opacity .2s;
}
.us-order-dlbtn:hover { opacity: .88; }

/* 授权密钥：系统名称 + 密钥两个方格 */
.us-order-secrets { display: flex; flex-direction: column; gap: 8px; }
.us-order-secret-pair { display: flex; gap: 10px; flex-wrap: nowrap; align-items: center; }
.us-order-secret-box {
  display: inline-block;
  min-width: 130px;
  text-align: center;
  padding: 7px 14px;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  background: #fafafa;
  font-size: 13px;
  color: #454e5c;
}
.us-order-secret-box.key { font-family: Consolas, Monaco, monospace; font-size: 12.5px; color: #1677ff; background: none; border: 0; padding: 0; min-width: 0; }

/* 程序下载价格小方框（靠右收窄） */
.us-order-price { text-align: right; width: 120px; }
.us-order-price-box {
  display: inline-block;
  padding: 4px 12px;
  border: 1px solid #e5e7eb;
  border-radius: 4px;
  background: #fafafa;
  font-size: 13px;
  color: #e6501a;
}

/* 程序下载表：名称一排加长 / 安装教程小框居中 */
.us-order-name-td { white-space: nowrap; width: 52%; text-align: center; }
.us-order-tut-td { width: 110px; }
.us-order-tut-link {
  display: inline-block;
  width: 82px;
  padding: 4px 0;
  border: 1px solid #e5e7eb;
  border-radius: 4px;
  background: #fafafa;
  text-align: center;
  font-size: 12.5px;
}
.us-order-tut-link:hover { border-color: #1677ff; background: #f2f6fc; }

/* 用户中心首页左侧信息：头像居中 + ID/用户名/欢迎语纵向排列 */
.uc-hero-left { flex-direction: column; justify-content: center; text-align: center; }
.uc-hero-user { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.uc-hero-avatar img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; display: block; }
.uc-hero-id { display: block; margin-top: 10px; font-size: 15px; color: #454e5c; }
.uc-hero-name { display: block; font-size: 24px; font-weight: 600; color: #2a3240; }
.uc-hero-hello { display: block; margin-top: 6px; font-size: 15px; color: #454e5c; }

/* 用户中心操作成功小弹窗 */
.uc-toast {
  position: fixed;
  left: 50%;
  top: 84px;
  transform: translateX(-50%);
  z-index: 999;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 4px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, .12);
  padding: 10px 24px;
  font-size: 13px;
  color: #3c9b3c;
  display: none;
}

/* 用户等级文字（普通用户 / 代理商） */
.uc-hero-stat b.uc-hero-level { font-size: 16px; font-weight: 600; line-height: 1.5; }

/* ============ 代理升级（用户中心在线购买代理等级） ============ */
.uc-up-status { font-size: 13px; color: #666; }
.uc-up-status b { color: #6c7bff; }
.uc-up-gates { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 14px 0 18px; }
.uc-up-gates-label { font-size: 13px; color: #666; }
.uc-up-gate { display: inline-flex; align-items: center; padding: 6px 14px; border: 1px solid #d9d9d9; border-radius: 4px; background: #fff; cursor: pointer; font-size: 13px; color: #525b69; }
.uc-up-gate input { display: none; }
.uc-up-gate:hover { border-color: #6c7bff; color: #6c7bff; }
.uc-up-gate.active { border-color: #6c7bff; color: #6c7bff; background: #f0f7ff; }
.uc-up-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.uc-up-card { position: relative; border: 1px solid #e5e7eb; border-radius: 4px; background: #fff; padding: 18px; display: flex; flex-direction: column; gap: 10px; }
.uc-up-card.is-current { border-color: #6c7bff; box-shadow: 0 0 0 1px #6c7bff inset; }
.uc-up-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.uc-up-head h3 { font-size: 16px; font-weight: 600; color: #2b3441; margin: 0; }
.uc-up-badge { font-size: 12px; color: #6c7bff; background: #f0f7ff; border: 1px solid #91caff; border-radius: 3px; padding: 2px 8px; }
.uc-up-badge.gray { color: #999; background: #f5f5f5; border-color: #e5e5e5; }
.uc-up-discount { font-size: 15px; font-weight: 600; color: #d4a017; }
.uc-up-discount b { font-size: 22px; font-weight: 700; background: linear-gradient(180deg, #f9d976, #d4a017); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: #d4a017; }


.uc-up-price { display: flex; align-items: baseline; gap: 8px; }
.uc-up-price b { font-size: 24px; font-weight: 700; color: #f5222d; }
.uc-up-price span { font-size: 12px; color: #999; }
.uc-up-btn { width: 100%; height: 36px; border: none; border-radius: 4px; background: #6c7bff; color: #fff; font-size: 14px; cursor: pointer; }
.uc-up-btn:hover { background: #8290ff; }
.uc-up-btn:disabled { background: #f5f5f5; color: #999; cursor: not-allowed; }
@media (max-width: 1100px) { .uc-up-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px) { .uc-up-grid { grid-template-columns: 1fr; } }

/* ============ 代理升级：等级+应用选择 ============ */
.uc-up-step { font-size: 14px; font-weight: 600; color: #2b3441; margin: 18px 0 10px; padding-left: 9px; border-left: 3px solid #6c7bff; }
.uc-up-card { cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.uc-up-card.selectable:hover { border-color: #6c7bff; }
.uc-up-card.selected { border-color: #6c7bff; box-shadow: 0 0 0 1px #6c7bff inset; background: #f7fbff; }
.uc-up-card.is-lower { opacity: .55; cursor: not-allowed; }
.uc-ap-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.uc-ap-card { position: relative; border: 1px solid #e5e7eb; border-radius: 4px; background: #fff; padding: 14px 16px; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.uc-ap-card.selectable:hover { border-color: #6c7bff; }
.uc-ap-card.selected { border-color: #6c7bff; box-shadow: 0 0 0 1px #6c7bff inset; background: #f7fbff; }
.uc-ap-card.owned { opacity: .55; cursor: not-allowed; }
.uc-ap-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.uc-ap-name { font-size: 14px; font-weight: 600; color: #2b3441; }
.uc-ap-badge { font-size: 12px; color: #52c41a; background: #f6ffed; border: 1px solid #b7eb8f; border-radius: 3px; padding: 2px 8px; }
.uc-ap-sub { margin: 8px 0 0; font-size: 13px; color: #999; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.uc-up-foot { display: flex; align-items: center; justify-content: flex-end; gap: 18px; margin-top: 18px; padding-top: 16px; border-top: 1px solid #f0f0f0; }
.uc-up-summary { font-size: 14px; color: #666; }
.uc-up-summary b { font-size: 22px; color: #f5222d; }
.uc-up-btn.big { width: auto; min-width: 160px; height: 40px; padding: 0 30px; }
@media (max-width: 1100px) { .uc-ap-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px) { .uc-ap-grid { grid-template-columns: 1fr; } }

/* 余额支付图标（金色钱包） */
.uc-ico-balance { color: #d4a017; }

/* ============ 代理中心 ============ */
.dl-stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 18px; }
.dl-stat-card { border: 1px solid #e5e7eb; border-radius: 4px; background: #fff; padding: 16px 18px; display: flex; flex-direction: column; gap: 8px; }
.dl-stat-label { font-size: 13px; color: #666; }
.dl-stat-val { font-size: 22px; font-weight: 700; color: #2b3441; }
.dl-stat-sub { font-size: 12.5px; color: #999; }
.dl-link { color: #1677ff; }
.dl-app-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.dl-app-card { border: 1px solid #e5e7eb; border-radius: 4px; background: #fff; padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.dl-app-head { display: flex; align-items: center; justify-content: space-between; }
.dl-app-name { font-size: 15px; font-weight: 600; color: #2b3441; }
.dl-app-nums { display: flex; gap: 20px; font-size: 13px; color: #666; }
.dl-app-nums b { color: #1677ff; font-size: 15px; }
.dl-app-acts { display: flex; gap: 10px; }
.dl-app-btn { flex: 1; text-align: center; padding: 8px 0; border: 1px solid #1677ff; border-radius: 4px; background: #1677ff; color: #fff; font-size: 13px; }
.dl-app-btn:hover { background: #4096ff; }
.dl-app-btn.plain { background: #fff; color: #1677ff; }
.dl-km-form { display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap; }
.dl-km-item { display: flex; flex-direction: column; gap: 6px; }
.dl-km-item label { font-size: 13px; color: #666; }
.dl-km-item .uaf-input { width: 220px; }
.dl-km-actions { padding-bottom: 2px; }
/* 代理中心通用表格与标签 */
.uc-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.uc-table th { text-align: left; padding: 10px 12px; background: #fafbfc; color: #666; font-weight: 600; border-bottom: 1px solid #e5e7eb; white-space: nowrap; }
.uc-table td { padding: 10px 12px; border-bottom: 1px solid #f0f0f0; color: #454e5c; }
.uc-table tr:hover td { background: #fafbfc; }
.text-red { color: #f5222d; }
.text-green { color: #52c41a; }
.table-sub { color: #999; font-size: 12.5px; }
.font-mono { font-family: Consolas, Monaco, monospace; font-size: 12.5px; }
.table-empty { text-align: center; color: #999; padding: 24px 0; }
.badge-green { color: #52c41a; background: #f6ffed; border: 1px solid #b7eb8f; }
.badge-red { color: #f5222d; background: #fff1f0; border: 1px solid #ffa39e; }
.badge-gray { color: #999; background: #f5f5f5; border: 1px solid #e5e5e5; }
.badge-green, .badge-red, .badge-gray { display: inline-block; border-radius: 3px; padding: 1px 8px; font-size: 12px; }
.us-stat-tag.green b { color: #52c41a; }
.us-stat-tag.red b { color: #f5222d; }
@media (max-width: 1100px) { .dl-stat-grid { grid-template-columns: repeat(2, 1fr); } .dl-app-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px) { .dl-stat-grid, .dl-app-grid { grid-template-columns: 1fr; } }

/* 授权管理：统计方框独立一行强制横向 */
.us-stat-tags-row { display: flex; flex-wrap: nowrap; align-items: stretch; gap: 14px; }
.us-stat-tags-row .us-stat-tag { flex: 1; min-width: 0; }

/* 授权管理操作列与续费弹窗 */
.dl-op-btn { padding: 4px 10px; margin-right: 6px; border: 1px solid #d9d9d9; border-radius: 3px; background: #fff; color: #525b69; font-size: 12.5px; cursor: pointer; }
.dl-op-btn:hover { border-color: #1677ff; color: #1677ff; }
.dl-op-btn.blue { border-color: #1677ff; color: #1677ff; background: #f0f7ff; }
.dl-mask { position: fixed; inset: 0; z-index: 999; background: rgba(0, 0, 0, .45); display: flex; align-items: center; justify-content: center; }
.dl-modal { width: 420px; max-width: 92vw; background: #fff; border-radius: 4px; box-shadow: 0 10px 34px rgba(0, 0, 0, .2); }
.dl-modal-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid #e5e7eb; }
.dl-modal-head b { font-size: 15px; font-weight: 600; color: #2a3240; }
.dl-modal-close { background: none; border: 0; font-size: 20px; color: #999; cursor: pointer; line-height: 1; }
.dl-modal-close:hover { color: #454e5c; }
.dl-modal-body { padding: 16px 18px; }
.dl-renew-info { margin: 0 0 12px; font-size: 13px; color: #666; }
.dl-renew-info b { color: #2b3441; }
.dl-renew-opts { display: flex; gap: 10px; }
.dl-renew-opt { flex: 1; display: flex; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid #d9d9d9; border-radius: 4px; cursor: pointer; font-size: 13px; color: #525b69; }
.dl-renew-opt.selected { border-color: #1677ff; background: #f0f7ff; }
.dl-renew-opt.disabled { opacity: .5; cursor: not-allowed; }
.dl-renew-opt b { color: #f5222d; margin-left: auto; }
.dl-renew-tip { margin: 12px 0 0; font-size: 12.5px; color: #999; }
.dl-modal-foot { display: flex; justify-content: flex-end; gap: 10px; padding: 12px 18px 16px; }

/* 续费弹窗：hidden 属性优先于 display:flex（修复默认弹出且无法关闭） */
.dl-mask[hidden] { display: none; }
/* 授权管理操作按钮一排 */
.dl-ops { white-space: nowrap; }
.dl-ops .dl-op-btn { margin-right: 4px; padding: 4px 9px; }

/* 卡密类型选择 */
.dl-km-type-row { display: flex; gap: 10px; }
.dl-km-type { display: flex; align-items: center; gap: 6px; padding: 7px 14px; border: 1px solid #d9d9d9; border-radius: 4px; cursor: pointer; font-size: 13px; color: #525b69; background: #fff; }
.dl-km-type input { display: none; }
.dl-km-type.selected { border-color: #1677ff; background: #f0f7ff; color: #1677ff; }
.dl-km-type b { color: #f5222d; font-size: 13px; }
/* 授权类型徽章（前端） */
.badge-orange { color: #fa8c16; background: #fff7e6; border: 1px solid #ffd591; }
.badge-blue { color: #1677ff; background: #e6f4ff; border: 1px solid #91caff; }
.badge-orange, .badge-blue { display: inline-block; border-radius: 3px; padding: 1px 8px; font-size: 12px; }

/* 结账页授权期限选择 */
.ck-term { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.ck-term label { display: flex; align-items: center; gap: 7px; cursor: pointer; font-size: 13px; color: #525b69; }
.ck-term label input { accent-color: #1677ff; cursor: pointer; }
.ck-term label span { min-width: 34px; }
.ck-term label b { color: #f5222d; font-weight: 600; }

/* 产品详情页授权期限选择框 */
.pp-term-box { display: flex; gap: 10px; margin: 14px 0 16px; flex-wrap: wrap; max-width: 580px; }
.pp-term-item { flex: 1 1 auto; justify-content: center; min-width: 90px; }
.pp-term-item { display: flex; align-items: center; gap: 7px; padding: 8px 16px; border: 1px solid #d9d9d9; border-radius: 4px; cursor: pointer; font-size: 13px; color: #525b69; background: #fff; }
.pp-term-item input { display: none; }
.pp-term-item.selected { border-color: #ff6a00; background: #fff7f0; color: #ff6a00; }
.pp-term-item b { font-weight: 600; }
.pp-term-item.selected b { color: #ff6a00; }

/* 产品详情：操作按钮行与期限框/信息框同宽对齐，三按钮等宽 */
.pp-hero-v2 .pp-actions { max-width: 580px; }
.pp-hero-v2 .pp-actions .pp-btn { flex: 1; text-align: center; justify-content: center; }

/* 永久授权续费提示 */
.dl-renew-forever { margin: 0; padding: 14px 0; text-align: center; font-size: 14px; color: #52c41a; font-weight: 600; }

/* 授权管理：表格标签与内容居中显示 */
.uc-table.ct th, .uc-table.ct td { text-align: center; }
.uc-table.ct td.dl-ops { text-align: left; }

/* 分页条：分页 + 每页条数选择 */
.page-bar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 14px; flex-wrap: wrap; }
.ps-select { height: 32px; padding: 0 10px; border: 1px solid #d9d9d9; border-radius: 4px; background: #fff; font-size: 13px; color: #525b69; }

/* 用户中心分页条：分页样式与后台一致 */
.page-bar .pagination { justify-content: flex-end; gap: 6px; margin-top: 0; }
.page-bar .pagination li { list-style: none; }
.page-bar .pagination li a,
.page-bar .pagination li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 34px;
  padding: 0 8px;
  border-radius: 8px;
  border: 1px solid #e3e6ec;
  background: #fff;
  font-size: 13px;
  color: #525b69;
  transition: all .2s;
}
.page-bar .pagination li a:hover { border-color: #1677ff; color: #1677ff; box-shadow: 0 3px 10px rgba(22, 119, 255, .12); }
.page-bar .pagination li.active span {
  background: linear-gradient(134deg, #13adff, #006eff);
  border-color: transparent;
  color: #ffffff;
  font-weight: 600;
  box-shadow: 0 4px 12px rgba(0, 110, 255, .3);
}
.page-bar .pagination li.disabled span { color: #c3cad6; background: #f7f9fd; }

/* 程序下载页验证码行 */
.dn-code-row { display: flex; gap: 10px; }
.dn-code-row .form-control { flex: 1; }
.dn-code-row .btn { flex: none; white-space: nowrap; }
.down-form { max-width: none; margin: 0; }
.down-form .form-item { margin-bottom: 18px; }
.down-form label { display: block; margin-bottom: 7px; font-size: 14px; font-weight: 600; color: #454e5c; }
.down-form .form-actions { display: flex; align-items: center; gap: 12px; margin-top: 22px; }

/* ============ 程序下载页改版（2026-09-29：两栏布局 + 输入框补齐样式） ============
   原来只有 .ck-form-grid 里才定义输入框外观，下载页用的是 .down-form，
   于是 QQ / 验证码输入框是浏览器默认样式（没边框），和下拉框、按钮完全不搭。 */
.dn-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 20px; align-items: start; }
.dn-main { padding: 24px 28px 26px; }
.dn-sub { margin: -8px 0 20px; font-size: 13.5px; color: #8a93a6; }
.dn-hint { margin: 6px 0 0; font-size: 12.5px; color: #9CA3AF; line-height: 1.6; }
.down-form .form-control {
  width: 100%;
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 10px 13px;
  font-size: 14px;
  color: #2a3240;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
}
.down-form .form-control:focus { border-color: #2367F6; box-shadow: 0 0 0 3px rgba(35, 103, 246, .12); }
.dn-code-row .form-control { letter-spacing: 2px; font-size: 15px; }
.dn-side { display: flex; flex-direction: column; gap: 18px; }
.dn-card { padding: 18px 20px; }
.dn-card h4 { margin: 0 0 12px; font-size: 14.5px; font-weight: 600; color: #2a3240; }
.dn-card h4::before {
  content: ""; display: inline-block; width: 3px; height: 13px; margin-right: 8px;
  border-radius: 2px; background: linear-gradient(180deg, #4c9bff, #006eff); vertical-align: -1px;
}
.dn-steps { margin: 0; padding-left: 20px; font-size: 13px; line-height: 2.05; color: #5a6b85; list-style: decimal outside; }
.dn-steps li { list-style: inherit; }
.dn-steps li::marker { color: #006eff; font-weight: 600; }
.dn-notes { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.95; color: #5a6b85; list-style: disc outside; }
.dn-notes li { list-style: inherit; }
.dn-notes li::marker { color: #006eff; }
.dn-notes li + li { margin-top: 4px; }
@media (max-width: 900px) {
  .dn-wrap { grid-template-columns: 1fr; }
  .dn-main { padding: 20px 18px 22px; }
}

/* 用户中心封面上传行（与后台一致） */
.cover-upload-row { display: flex; gap: 10px; align-items: center; }
.cover-upload-row .form-control { flex: 1; }
.cover-upload-row .btn { flex: none; white-space: nowrap; }

/* ============ 开发者上传插件（美化版） ============ */
.dev-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; margin-bottom: 8px; }
.dev-form-item { display: flex; flex-direction: column; gap: 6px; }
.dev-form-item label { font-size: 13px; color: #666; }
.dev-form-item label .required { color: #f5222d; }
.dev-form-span { grid-column: 1 / -1; }
.dev-form-item .uaf-input { width: 100%; }
.dev-price-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 8px; }
.dev-price-item { border: 1px solid #e5e7eb; border-radius: 4px; padding: 12px 14px; background: #fff; display: flex; flex-direction: column; gap: 8px; }
.dev-price-item.hot { border-color: #ffd591; background: #fffaf3; }
.dev-price-label { font-size: 13px; font-weight: 600; color: #2b3441; }
.dev-price-input { display: flex; align-items: center; border: 1px solid #e2e8f0; border-radius: 4px; background: #fff; padding: 0 10px; }
.dev-price-input i { color: #999; font-style: normal; font-size: 13px; }
.dev-price-input .uaf-input { border: none; background: transparent; box-shadow: none; padding-left: 6px; flex: 1; }
.dev-file-row { display: flex; gap: 10px; align-items: center; }
.dev-file-row .uaf-input { flex: 1; }
.dev-file-row .btn { flex: none; white-space: nowrap; }
.dev-file-box { display: flex; align-items: center; gap: 12px; border: 1px dashed #d9d9d9; border-radius: 4px; padding: 12px 14px; background: #fafbfc; }
.dev-file-box.has-file { border-color: #52c41a; background: #f6ffed; }
.dev-file-name { font-size: 13px; color: #999; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dev-file-box.has-file .dev-file-name { color: #52c41a; }
.dev-submit-row { display: flex; align-items: center; gap: 14px; margin-top: 18px; padding-top: 16px; border-top: 1px solid #f0f0f0; }
.dev-submit { min-width: 180px; height: 40px; font-size: 15px; }
@media (max-width: 900px) { .dev-form-grid { grid-template-columns: 1fr; } .dev-price-grid { grid-template-columns: repeat(2, 1fr); } }

/* 提现表单（收款方式选择） */
.wd-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; }
.wd-item { display: flex; flex-direction: column; gap: 6px; }
.wd-item label { font-size: 13px; color: #666; }
.wd-span { grid-column: 1 / -1; }
.wd-way-row { display: flex; gap: 10px; }
.wd-way { display: inline-flex; align-items: center; padding: 8px 22px; border: 1px solid #d9d9d9; border-radius: 4px; cursor: pointer; font-size: 13.5px; color: #525b69; background: #fff; }
.wd-way.selected { border-color: #1677ff; color: #1677ff; background: #f0f7ff; font-weight: 600; }
.wd-actions { padding-top: 4px; }
@media (max-width: 900px) { .wd-grid { grid-template-columns: 1fr; } }

/* 提现方式图标 */
.wd-way-ico { width: 18px; height: 18px; flex: none; }
.wd-ico-alipay { color: #1677ff; }
.wd-ico-wechat { color: #52c41a; }
.wd-ico-bank { color: #fa8c16; }
.wd-way { display: inline-flex; align-items: center; gap: 7px; }

/* ============ 用户中心 UI 对齐后台规格 ============ */
.uc-page .uc-card { border-radius: 8px; padding: 16px 18px; border: 1px solid #eef0f4; box-shadow: 0 1px 3px rgba(31, 50, 79, .03); }
.uc-page .uc-card-title { font-size: 16px; font-weight: 700; }
.uc-page .uc-card-more { font-size: 13px; color: #666; }
.uc-page .uc-card-more:hover { color: #6c7bff; }
.uc-page .uc-stat { border-radius: 8px; }
.uc-page .uc-stat-num { font-size: 26px; font-weight: 800; }
.uc-page .dl-stat-val { font-size: 26px; font-weight: 800; }
.uc-page .dl-stat-sub { font-size: 12px; }
.uc-page .dl-app-name { font-size: 14px; font-weight: 600; }
.uc-page .dl-app-nums { font-size: 13px; }
.uc-page .dl-app-nums b { color: #6c7bff; font-size: 14px; }
.uc-page .dl-link { color: #6c7bff; }
.uc-page .uc-topbar-title { font-size: 14px; }
.uc-page .uc-topbar-title b { font-size: 15px; }
.uc-page .uc-topbar-sub { font-size: 12px; }
.uc-page .uc-btn-mini { font-size: 12px; }
/* 通用控件对齐后台 */
.uc-page .btn { font-size: 14px; border-radius: 8px; padding: 9px 22px; }
.uc-page .btn-sm { font-size: 13px; padding: 5px 14px; border-radius: 7px; }
.uc-page .form-control { font-size: 14px; height: 40px; border-radius: 8px; }
.uc-page textarea.form-control { height: auto; }
.uc-page .data-table th, .uc-page .data-table td { font-size: 14px; }
.uc-page .page-tip { font-size: 13px; }
.uc-page .pagination a, .uc-page .pagination span { font-size: 14px; }

/* ============ 用户中心对齐后台（二轮：全量补齐） ============ */
.uc-page .uc-card { border-radius: 10px; padding: 20px 22px; margin-bottom: 20px; }
.uc-page .uc-body { padding: 26px 26px 40px; }
.uc-page .uc-container { max-width: none; } /* 去掉 1380px 上限：宽屏下右侧会空出一大片 */
.uc-page .uc-topbar { height: 62px; }
.uc-page .uc-topbar-title { font-size: 15px; }
.uc-page .uc-topbar-title b { font-size: 16px; }
.uc-page .uc-entry b { font-size: 14px; }
.uc-page .uc-hero-stat b { font-size: 22px; font-weight: 700; }
.uc-page .uc-hero-stat span { font-size: 12px; }
.uc-page .uc-news-list li, .uc-page .uc-news-list .uc-news-text { font-size: 14px; }
.uc-page .us-empty { font-size: 14px; }
.uc-page .user-tip { font-size: 13px; }
.uc-page .uc-table { font-size: 14px; }
.uc-page .uc-prod-price { color: #6c7bff; }
.uc-page .us-stat-tag { font-size: 12px; }
.uc-page .dl-op-btn { font-size: 13px; border-radius: 6px; padding: 5px 12px; }
.uc-page .dl-modal { border-radius: 10px; }
.uc-page .dl-modal-head b { font-size: 15px; font-weight: 700; }
.uc-page .dl-modal-body { font-size: 14px; }
.uc-page .dl-renew-info, .uc-page .dl-renew-opt { font-size: 14px; }
.uc-page .dl-renew-tip { font-size: 12px; }

/* 用户中心侧栏 logo 与菜单文字左边缘对齐（菜单项 10px 容器留白 + 14px 项内边距 = 24px） */
.uc-page .uc-logo { justify-content: flex-start; padding-left: 24px; padding-right: 24px; }

/* 广告位申请 */
.adap-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 14px; }
.adap-cell { border: 1px solid #E5E9F2; border-radius: 8px; padding: 16px; text-align: center; transition: all .2s; }
.adap-cell:hover { border-color: #2B78E4; box-shadow: 0 4px 14px rgba(43, 120, 228, .1); }
.adap-cell-name { font-size: 14px; font-weight: 600; color: #333d4b; }
.adap-cell-pos { font-size: 12px; color: #8b96a8; margin-top: 4px; font-family: monospace; }
.adap-cell-price { margin: 10px 0; font-size: 18px; font-weight: 700; color: #2B78E4; }
.adap-free { color: #32b44a; font-size: 13px; }
@media (max-width: 860px) { .adap-grid { grid-template-columns: 1fr; } }
/* 下载页程序图标 */
.dn-app-row { display: flex; align-items: center; gap: 10px; }
.dn-app-icon { width: 42px; height: 42px; border-radius: 8px; object-fit: cover; border: 1px solid #e5e9f0; flex-shrink: 0; }
.dn-app-row .form-control { flex: 1; }

/* ===== 产品详情页风格统一（与前台首页一致：深蓝 hero + 蓝色主调） ===== */
.pp-hero {
  background:
    radial-gradient(900px 440px at 82% 16%, rgba(0, 110, 255, .18), transparent 62%),
    radial-gradient(700px 400px at 8% 88%, rgba(26, 122, 217, .12), transparent 62%),
    linear-gradient(160deg, #0b1d30, #102a45);
}
.pp-name { color: #fff; }
.pp-desc { color: rgba(255, 255, 255, .75); }
.pp-price-now { color: #ffd84d; }
.pp-price-old { color: rgba(255, 255, 255, .45); }
.pp-tag-discount { background: rgba(255, 100, 0, .16); color: #ffb04d; border-color: rgba(255, 176, 77, .35); }
/* 主按钮蓝色化（与首页 hero-btn #0052d9 一致） */
.pp-btn-buy { background: linear-gradient(135deg, #0052d9, #2b78e4); color: #fff; box-shadow: 0 8px 22px rgba(0, 82, 217, .35); }
.pp-btn-demo { background: rgba(255, 255, 255, .12); color: #fff; border: 1px solid rgba(255, 255, 255, .28); }
.pp-btn-demo:hover { background: rgba(255, 255, 255, .2); }
.pp-btn-docs { background: rgba(255, 255, 255, .12); color: #fff; border: 1px solid rgba(255, 255, 255, .28); }
.pp-btn-docs:hover { background: rgba(255, 255, 255, .2); }
/* 授权期限选择：蓝调 */
.pp-term-item { background: rgba(255, 255, 255, .07); border-color: rgba(255, 255, 255, .18); color: rgba(255, 255, 255, .85); }
.pp-term-item.selected { background: rgba(0, 110, 255, .16); border-color: #2b78e4; }
.pp-term-item b { color: #ffd84d; }
.pp-term-item.selected b { color: #ffd84d; }
/* 信息卡：深色半透明 → 浅蓝白 */
.pp-info-card { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .14); }
.pp-info-row span { color: rgba(255, 255, 255, .6); }
.pp-info-row b { color: #fff; }
.pp-hl { color: #ffd84d; }
.pp-upd-link { color: #6cb1ff; }
/* 右侧浏览器卡片微调 */
.pp-brw-card { border-color: rgba(255, 255, 255, .16); box-shadow: 0 24px 60px rgba(0, 20, 50, .5); }

/* ============ V9 产品详情页：宝塔产品页风格（白底居中 + 卡片流，品牌蓝） ============ */
.ppbt-page { background: #fff; }

/* 首屏 Hero：浅蓝渐变白底，全居中 */
.ppbt-hero {
  position: relative;
  padding: 96px 0 72px;
  text-align: center;
  background: linear-gradient(180deg, #eaf3ff 0%, #f7faff 55%, #ffffff 100%);
  overflow: hidden;
}
.ppbt-hero::before, .ppbt-hero::after {
  content: ""; position: absolute; border-radius: 50%; pointer-events: none;
}
.ppbt-hero::before { width: 460px; height: 460px; left: -160px; top: -200px; background: radial-gradient(circle, rgba(0, 110, 255, .12), rgba(0, 110, 255, 0) 70%); }
.ppbt-hero::after { width: 520px; height: 520px; right: -180px; top: 40px; background: radial-gradient(circle, rgba(19, 173, 255, .1), rgba(19, 173, 255, 0) 70%); }
.ppbt-hero .container { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; }

/* 顶部小徽标 */
.ppbt-badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 18px; border-radius: 999px;
  background: #fff; border: 1px solid #dbe9ff;
  color: #006eff; font-size: 13px; font-weight: 600;
  box-shadow: 0 4px 14px rgba(0, 110, 255, .08);
  margin: 0 0 22px;
}
.ppbt-badge svg { width: 14px; height: 14px; }

/* 产品名大标题 */
.ppbt-name { margin: 0; font-size: 48px; font-weight: 800; letter-spacing: 1px; color: #2b3441; line-height: 1.25; }
.ppbt-desc { max-width: 680px; margin: 18px auto 0; font-size: 15px; line-height: 1.9; color: #666; }

/* 价格行（居中） */
.ppbt-price-line { display: flex; align-items: baseline; justify-content: center; gap: 14px; margin-top: 26px; flex-wrap: wrap; }
.ppbt-price-now { font-size: 42px; font-weight: 800; color: #006eff; line-height: 1; }
.ppbt-price-old { font-size: 18px; color: #b8c2cc; }
.ppbt-tag-discount {
  padding: 4px 12px; border-radius: 999px;
  background: rgba(255, 122, 0, .1); color: #ff7a00;
  font-size: 12px; font-weight: 700;
}

/* 授权期限 pills */
.ppbt-terms { display: flex; justify-content: center; gap: 12px; margin-top: 22px; flex-wrap: wrap; }
.ppbt-term {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 22px; border-radius: 10px; cursor: pointer;
  background: #fff; border: 1px solid #e4ebf5;
  transition: all .2s;
}
.ppbt-term input { display: none; }
.ppbt-term span { font-size: 14px; color: #666; }
.ppbt-term b { font-size: 14px; color: #2b3441; }
.ppbt-term:hover { border-color: #bcd6ff; }
.ppbt-term.selected { background: #eaf3ff; border-color: #006eff; box-shadow: 0 6px 16px rgba(0, 110, 255, .14); }
.ppbt-term.selected span { color: #006eff; font-weight: 700; }
.ppbt-term.selected b { color: #006eff; }

/* 按钮行（居中） */
.ppbt-actions { display: flex; justify-content: center; gap: 16px; margin-top: 30px; flex-wrap: wrap; }
.ppbt-btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 152px; padding: 13px 28px; border-radius: 10px;
  font-size: 15px; font-weight: 700; text-decoration: none;
  transition: all .2s;
}
.ppbt-btn-buy {
  background: linear-gradient(134deg, #13adff, #006eff);
  color: #fff;
  box-shadow: 0 10px 24px rgba(0, 110, 255, .32);
}
.ppbt-btn-buy:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(0, 110, 255, .45); color: #fff; }
.ppbt-btn-line { background: #fff; color: #006eff; border: 1px solid #bcd6ff; }
.ppbt-btn-line:hover { border-color: #006eff; box-shadow: 0 6px 16px rgba(0, 110, 255, .12); color: #006eff; }

/* 信息小卡横排 */
.ppbt-meta {
  display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px;
  margin-top: 42px; width: 100%; max-width: 980px;
}
.ppbt-meta-item {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  background: rgba(255, 255, 255, .85); border: 1px solid #eef3fa; border-radius: 12px;
  padding: 16px 8px; text-align: center;
}
.ppbt-meta-item svg { width: 22px; height: 22px; color: #006eff; margin-bottom: 4px; }
.ppbt-meta-item span { font-size: 12px; color: #9aa7b5; }
.ppbt-meta-item b { font-size: 13px; color: #2b3441; font-weight: 700; }

/* 产品主截图：浏览器窗口样式大图 */
.ppbt-shot {
  width: 100%; max-width: 1060px; margin-top: 52px;
  background: #fff; border: 1px solid #e8eef7; border-radius: 14px;
  box-shadow: 0 30px 70px rgba(11, 29, 48, .14);
  overflow: hidden; text-align: left;
}
.ppbt-shot-bar {
  display: flex; align-items: center; gap: 7px;
  padding: 12px 18px; background: #f7f9fc; border-bottom: 1px solid #eef2f7;
}
.ppbt-dot { width: 11px; height: 11px; border-radius: 50%; }
.ppbt-dot-red { background: #ff5f57; }
.ppbt-dot-yellow { background: #febc2e; }
.ppbt-dot-green { background: #28c840; }
.ppbt-shot-addr {
  margin-left: 10px; display: inline-flex; align-items: center; gap: 6px;
  flex: 1; max-width: 420px; padding: 5px 14px; border-radius: 7px;
  background: #fff; border: 1px solid #eef2f7;
  font-size: 12px; color: #9aa7b5; white-space: nowrap; overflow: hidden;
}
.ppbt-shot-addr svg { width: 13px; height: 13px; flex: none; }
.ppbt-shot-img { display: block; width: 100%; max-height: 560px; object-fit: cover; object-position: top; }
.ppbt-shot-empty {
  height: 360px; display: flex; align-items: center; justify-content: center;
  font-size: 20px; color: #9aa7b5; font-weight: 700;
}

/* 锚点菜单（白底 sticky） */
.ppbt-tabs { position: sticky; top: 0; z-index: 90; background: rgba(255, 255, 255, .92); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid #eef2f7; }
.ppbt-tabs .container { display: flex; justify-content: center; gap: 40px; }
.ppbt-tabs a { padding: 15px 2px; font-size: 15px; color: #666; text-decoration: none; border-bottom: 3px solid transparent; transition: color .2s; }
.ppbt-tabs a:hover, .ppbt-tabs a.active { color: #006eff; font-weight: 700; border-bottom-color: #006eff; }

/* 通用区块 */
.ppbt-sec { padding: 72px 0; }
.ppbt-sec-title {
  display: flex; align-items: center; justify-content: center; gap: 16px;
  margin: 0 0 40px; font-size: 30px; font-weight: 800; color: #2b3441;
}
.ppbt-sec-title::before, .ppbt-sec-title::after { content: ""; width: 44px; height: 3px; border-radius: 2px; background: linear-gradient(90deg, transparent, #006eff); }
.ppbt-sec-title::after { background: linear-gradient(90deg, #006eff, transparent); }

/* 产品介绍：白底 + 白卡富文本 + 截图网格 */
.ppbt-intro { background: #fff; }
.ppbt-rich {
  max-width: 980px; margin: 0 auto;
  background: #fff; border: 1px solid #eef2f7; border-radius: 16px;
  padding: 36px 42px; box-shadow: 0 8px 30px rgba(11, 29, 48, .06);
  line-height: 1.9; color: #5f6876; font-size: 15px;
}
.ppbt-shots { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 24px; }
.ppbt-shots img { width: 100%; border-radius: 10px; border: 1px solid #eef2f7; }

/* 功能特性卡片网格（浅灰底） */
.ppbt-feats { background: #f5f7fa; }
.ppbt-feats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; max-width: 1060px; margin: 0 auto; }
.ppbt-feat {
  background: #fff; border: 1px solid #eef2f7; border-radius: 14px;
  padding: 28px 24px; text-align: center;
  transition: all .25s;
}
.ppbt-feat:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(11, 29, 48, .1); border-color: #dbe9ff; }
.ppbt-feat-ico {
  width: 54px; height: 54px; margin: 0 auto 14px; border-radius: 13px;
  background: linear-gradient(135deg, #eaf3ff, #d7e9ff);
  display: flex; align-items: center; justify-content: center;
  color: #006eff;
}
.ppbt-feat-ico svg { width: 26px; height: 26px; }
.ppbt-feat b { display: block; font-size: 16px; color: #2b3441; margin-bottom: 8px; }
.ppbt-feat p { margin: 0; font-size: 13px; color: #8c98a6; line-height: 1.7; }

/* 产品定价：白底居中卡，蓝色头部 */
.ppbt-price { background: #f5f7fa; }
.ppbt-price-card {
  max-width: 860px; margin: 0 auto;
  background: #fff; border: 1px solid #eef2f7; border-radius: 16px; overflow: hidden;
  box-shadow: 0 10px 34px rgba(11, 29, 48, .08);
}
.ppbt-price-head {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 28px 32px; flex-wrap: wrap;
  background: linear-gradient(135deg, #0b1d30, #10396e);
}
.ppbt-price-label { color: rgba(255, 255, 255, .6); font-size: 13px; margin: 0 0 8px; }
.ppbt-price-row { display: flex; align-items: baseline; gap: 14px; }
.ppbt-price-head .ppbt-price-now { font-size: 38px; color: #fff; }
.ppbt-price-head .ppbt-price-old { color: rgba(255, 255, 255, .5); }
.ppbt-buy-box { display: flex; align-items: center; gap: 18px; }
.ppbt-buy-info { display: flex; flex-direction: column; gap: 4px; text-align: right; }
.ppbt-buy-title { font-size: 15px; font-weight: 700; color: #fff; }
.ppbt-buy-sub { font-size: 12px; color: rgba(255, 255, 255, .55); }
.ppbt-price-table { width: 100%; border-collapse: collapse; }
.ppbt-price-table th, .ppbt-price-table td { padding: 15px 32px; font-size: 14px; border-bottom: 1px solid #f2f5f9; text-align: left; }
.ppbt-price-table th { width: 130px; color: #9aa7b5; font-weight: 600; }
.ppbt-price-table td { color: #454e5c; }
.ppbt-price-table tr:last-child th, .ppbt-price-table tr:last-child td { border-bottom: 0; }

/* 常见问题：白底居中折叠 */
.ppbt-faq { background: #fff; }
.ppbt-faq-list { max-width: 820px; margin: 0 auto; }
.ppbt-faq-item {
  background: #f9fbfe; border: 1px solid #eef2f7; border-radius: 12px;
  margin-bottom: 14px; overflow: hidden;
}
.ppbt-faq-item[open] { background: #fff; border-color: #dbe9ff; box-shadow: 0 8px 22px rgba(11, 29, 48, .06); }
.ppbt-faq-q {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 18px 24px; cursor: pointer; font-size: 15px; font-weight: 700; color: #2b3441;
  list-style: none;
}
.ppbt-faq-q::-webkit-details-marker { display: none; }
.ppbt-faq-plus { font-style: normal; color: #006eff; font-size: 20px; transition: transform .2s; }
.ppbt-faq-item[open] .ppbt-faq-plus { transform: rotate(45deg); }
.ppbt-faq-a { padding: 0 24px 20px; font-size: 14px; color: #666; line-height: 1.9; }
.ppbt-faq-empty { text-align: center; color: #9aa7b5; padding: 20px 0; }

/* 响应式 */
@media (max-width: 900px) {
  .ppbt-name { font-size: 34px; }
  .ppbt-meta { grid-template-columns: repeat(3, 1fr); }
  .ppbt-feats-grid { grid-template-columns: repeat(2, 1fr); }
  .ppbt-shot-img { max-height: 360px; }
  .ppbt-buy-info { text-align: left; }
}
@media (max-width: 600px) {
  .ppbt-hero { padding: 72px 0 48px; }
  .ppbt-name { font-size: 26px; }
  .ppbt-price-now { font-size: 32px; }
  .ppbt-meta { grid-template-columns: repeat(2, 1fr); }
  .ppbt-feats-grid { grid-template-columns: 1fr; }
  .ppbt-shot-img { max-height: 240px; }
  .ppbt-tabs .container { gap: 22px; }
  .ppbt-tabs a { font-size: 14px; }
  .ppbt-rich { padding: 24px 18px; }
  .ppbt-shots { grid-template-columns: 1fr; }
}

/* 固定「更多插件系统」入口标签（纯链接，不参与切换） */
.sol-tab.sol-tab-more {
  text-decoration: none;
  background: linear-gradient(134deg, rgba(19, 173, 255, .12), rgba(0, 110, 255, .12));
  border: 1px dashed rgba(19, 173, 255, .55);
}
.sol-tab.sol-tab-more .sol-tab-text { color: #4da3ff; font-weight: 700; }
.sol-tab.sol-tab-more:hover {
  background: linear-gradient(134deg, #13adff, #006eff);
  border-color: transparent;
  box-shadow: 0 10px 26px rgba(0, 110, 255, .35);
}
.sol-tab.sol-tab-more:hover .sol-tab-text { color: #fff; }
/* ===== 首页新闻动态模块（复刻 xtuidc 首页，2026-09-07） ===== */
.xj-news-showcase{--news-blue:#0b62f4;--news-dark:#101827;--news-muted:#7485a5;--news-border:rgba(190,211,244,.72);--news-ease:cubic-bezier(.22,1,.36,1);padding:20px 0 32px;color:var(--news-dark);position:relative;background:radial-gradient(circle at 49% 8%,rgba(94,164,255,.45),transparent 31%),linear-gradient(180deg,#075be9,#2677f4 27%,#6da6f7 43%,#eef5ff 55%,#fff 69%,#fff)}
.xj-news-showcase *,.xj-news-showcase *:before,.xj-news-showcase *:after{box-sizing:border-box}
.xj-news-shell{margin:0 auto;overflow:hidden;isolation:isolate}
.xj-news-bg{position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}
.xj-news-header{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:40px;min-height:192px;padding:33px 0 23px}
.xj-news-heading{min-width:0;color:#fff}
.xj-news-eyebrow{display:block;margin-bottom:7px;font-size:24px;font-weight:400;line-height:1;letter-spacing:.3px;opacity:.96}
.xj-news-heading h2{margin:0;font-size:clamp(38px,3.1vw,48px);font-weight:700;line-height:1.14;letter-spacing:-1.8px;text-shadow:0 5px 16px rgba(0,58,160,.18)}
.xj-news-heading p{margin:13px 0 0;color:#ffffffed;font-size:17px;line-height:1.7}
.xj-news-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(392px,34vw);min-width:320px;height:60px;padding:2px;overflow:hidden;border:1px solid rgba(255,255,255,.75);border-radius:999px;background:#f8fbfff2;box-shadow:0 14px 30px #0046b42b,inset 0 1px #fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.xj-news-tab{position:relative;border:0;border-radius:999px;color: #5f7088;font:inherit;font-size:18px;cursor:pointer;background:transparent;transition:color .25s ease,background .25s ease,box-shadow .25s ease}
.xj-news-tab:after{position:absolute;bottom:8px;left:50%;width:42px;height:3px;border-radius:999px;content:"";opacity:0;background:var(--news-blue);transform:translate(-50%) scaleX(.4);transition:opacity .25s ease,transform .28s var(--news-ease)}
.xj-news-tab:hover{color:var(--news-blue)}
.xj-news-tab.is-active{color:#075ce6;font-weight:600;background:#fff;box-shadow:7px 0 18px #2658a614}
.xj-news-tab.is-active:after{opacity:1;transform:translate(-50%) scaleX(1)}
.xj-news-body{position:relative;z-index:3;min-height:666px;margin:0 0 43px}
.xj-news-panel{display:none}
.xj-news-panel.is-active{display:block}
.xj-news-more{display:flex;width:292px;height:52px;margin:23px auto 0;align-items:center;justify-content:center;gap:18px;border:1.5px solid #0e64f3;border-radius:999px;color:#0b60e8;font-size:18px;text-decoration:none;background:#ffffffc7;box-shadow:0 8px 20px #1b5bbe0d;transition:color .25s ease,background .25s ease,box-shadow .3s ease,transform .3s var(--news-ease)}
.xj-news-more svg{width:22px;height:22px;transition:transform .25s var(--news-ease)}
.xj-news-more:hover{color:#fff;background:#0b64f4;box-shadow:0 13px 28px #0b64f43d;transform:translateY(-2px)}
.xj-news-more:hover svg{transform:translate(4px)}
.xj-featured-card{position:relative;display:block;min-height:230px;border:1px solid rgba(208,220,240,.92);border-radius:17px;cursor:pointer;text-decoration:none;background:radial-gradient(circle at 57% 18%,rgba(235,244,255,.74),transparent 26%),linear-gradient(100deg,#fff,#fff 41%,#fafdff 64%,#fff);box-shadow:0 16px 38px #204f961a,inset 0 1px #fff;transition:transform .35s var(--news-ease),box-shadow .35s ease,border-color .25s ease}
.xj-featured-card:hover{border-color:#417bed7a;box-shadow:0 23px 52px #22529a26;transform:translateY(-3px)}
.xj-featured-copy{position:relative;z-index:4;display:flex;width:46%;min-height:230px;padding:52px 36px 40px 43px;flex-direction:column;align-items:flex-start}
.xj-featured-title-row{display:flex;width:100%;min-width:0;align-items:center;gap:34px}
.xj-featured-badge{flex:0 0 auto;padding:6px 15px;border-radius:5px;color:#fff;font-size:14px;font-weight:600;line-height:1;background:linear-gradient(135deg,#ff9d16,#ff6900);box-shadow:0 7px 16px #ff6f0038}
.xj-featured-title-row h3{min-width:0;margin:0;overflow:hidden;color: #2a3240;font-size:clamp(23px,1.8vw,31px);font-weight:700;line-height:1.36;letter-spacing:-.6px;text-overflow:ellipsis;white-space:nowrap;transition:color .25s ease}
.xj-featured-card:hover .xj-featured-title-row h3{color:#0b5de0}
.xj-featured-copy>p{max-width:520px;margin:20px 0 0;display:-webkit-box;overflow:hidden;color:#6b7c99;font-size:14px;line-height:1.8;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.xj-featured-detail{display:inline-flex;align-items:center;gap:16px;margin-top:auto;padding:0;border:0;color:#095ff0;font-size:18px;cursor:pointer;background:transparent}
.xj-featured-detail svg{width:25px;height:25px;transition:transform .25s var(--news-ease)}
.xj-featured-card:hover .xj-featured-detail svg{transform:translate(5px)}
.xj-featured-art{position:absolute;z-index:2;top:-47px;left:42%;width:35%;height:310px;overflow:visible;pointer-events:none;filter:saturate(1.04);transform-origin:center;transition:transform .5s var(--news-ease),filter .35s ease}
.xj-featured-card:hover .xj-featured-art{filter:saturate(1.11);transform:translateY(-2px) scale(1.015)}
.xj-featured-date{position:absolute;z-index:4;top:50%;right:36px;display:flex;align-items:center;gap:20px;transform:translateY(-50%)}
.xj-featured-date-main{display:flex;align-items:baseline;color: #2a3240;font-size:clamp(34px,3vw,44px);font-weight:300;line-height:1;letter-spacing:-2px}
.xj-featured-date-main i{margin:0 8px;color:#636c7b;font-style:normal;font-size:28px}
.xj-featured-date-side{position:relative;display:flex;padding-left:20px;color:#74819a;font-size:14px;line-height:1.75;flex-direction:column}
.xj-featured-date-side:before{position:absolute;top:0;bottom:0;left:0;width:1px;content:"";background:#c9d2e0}
.xj-news-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin-top:23px}
.xj-news-item{position:relative;display:flex;min-width:0;min-height:103px;padding:16px 27px 16px 33px;align-items:center;border:1px solid rgba(211,222,239,.9);border-radius:12px;outline:none;cursor:pointer;text-decoration:none;background:#fffffff5;box-shadow:0 7px 18px #2a4d850b;transition:border-color .25s ease,box-shadow .35s ease,transform .35s var(--news-ease)}
.xj-news-item:hover{border-color:#2d70f4a8;box-shadow:0 15px 30px #215ab61c;transform:translateY(-3px)}
.xj-news-icon{position:relative;display:grid;width:70px;height:70px;flex:0 0 70px;place-items:center;border:1px solid rgba(91,139,228,.17);border-radius:50%;color:#0d63f4;background:linear-gradient(145deg,#f7faff,#e9f1ff);box-shadow:inset 0 0 0 6px #ffffffb8,0 7px 17px #3262b414;transition:transform .35s var(--news-ease),color .25s ease}
.xj-news-icon:after{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border:1px solid rgba(59,117,222,.1);border-radius:50%;content:""}
.xj-news-icon svg{width:30px;height:30px}
.xj-news-item:hover .xj-news-icon{color:#0054df;transform:rotate(-4deg) scale(1.04)}
.xj-news-content{min-width:0;margin-left:31px}
.xj-news-content h3{margin:0;overflow:hidden;color: #2a3240;font-size:19px;font-weight:650;line-height:1.45;text-overflow:ellipsis;white-space:nowrap;transition:color .25s ease}
.xj-news-item:hover .xj-news-content h3{color:#0b5fe8}
.xj-news-content time{display:block;margin-top:9px;color:#7a8bad;font-size:14px;line-height:1}
.xj-news-arrow{display:grid;width:42px;height:42px;margin-left:auto;flex:0 0 42px;place-items:center;border:1px solid rgba(62,119,238,.45);border-radius:50%;color:#1165f4;background:#fff;transition:color .25s ease,background .25s ease,transform .3s var(--news-ease)}
.xj-news-arrow svg{width:22px;height:22px}
.xj-news-item:hover .xj-news-arrow{color:#fff;background:#1268f4;transform:translate(3px)}
.xj-news-list .empty-tip{grid-column:1/-1}
@media(max-width:1320px){
.xj-news-header{padding-right:0;padding-left:0}
.xj-featured-copy{width:49%}
.xj-featured-art{left:43%;width:42%}
.xj-featured-date{right:25px}
.xj-news-item{padding-right:20px;padding-left:24px}
.xj-news-content{margin-left:22px}}
@media(max-width:1080px){
.xj-news-header{min-height:178px}
.xj-news-tabs{width:330px;min-width:300px}
.xj-featured-copy{width:56%;padding-right:20px}
.xj-featured-title-row{gap:20px}
.xj-featured-art{left:49%;width:40%;opacity:.93}
.xj-featured-date{top:28px;right:24px;transform:none}
.xj-featured-date-main{font-size:30px}
.xj-featured-date-main i{font-size:20px}
.xj-news-icon{width:60px;height:60px;flex-basis:60px}
.xj-news-content{margin-left:17px}
.xj-news-content h3{font-size:16px}
.xj-news-arrow{width:38px;height:38px;flex-basis:38px}}
@media(max-width:820px){
.xj-news-showcase{padding-top:12px}
.xj-news-header{min-height:auto;padding:28px 4px 26px;align-items:flex-start;flex-direction:column;gap:24px}
.xj-news-eyebrow{font-size:18px}
.xj-news-heading h2{font-size:36px}
.xj-news-heading p{margin-top:8px;font-size:14px}
.xj-news-tabs{width:100%;min-width:0;height:52px}
.xj-news-tab{font-size:16px}
.xj-news-body{min-height:500px;margin:0 0 30px}
.xj-featured-card{min-height:260px}
.xj-featured-copy{width:100%;min-height:260px;padding:35px 24px 28px}
.xj-featured-title-row{padding-right:90px;align-items:flex-start;gap:14px}
.xj-featured-badge{padding:7px 12px;border-radius:7px;font-size:14px}
.xj-featured-title-row h3{display:-webkit-box;overflow:hidden;font-size:21px;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.xj-featured-copy>p{max-width:74%;margin-top:18px}
.xj-featured-art{top:50px;right:-100px;left:auto;width:430px;height:235px;opacity:.44}
.xj-featured-date{top:23px;right:18px;gap:8px}
.xj-featured-date-main{font-size:23px;letter-spacing:-1px}
.xj-featured-date-main i{margin:0 4px;font-size:15px}
.xj-featured-date-side{display:none}
.xj-news-list{grid-template-columns:1fr}
.xj-news-item{min-height:92px;padding:14px 18px}
.xj-news-more{width:min(292px,100%)}}
@media(max-width:520px){
.xj-news-header{padding:23px 2px 20px}
.xj-news-heading h2{font-size:31px}
.xj-news-heading p{line-height:1.6}
.xj-featured-copy{padding:31px 18px 24px}
.xj-featured-title-row{padding-right:0;flex-direction:column;gap:10px}
.xj-featured-title-row h3{padding-right:50px;font-size:19px}
.xj-featured-copy>p{max-width:100%;padding-right:45px;font-size:13px}
.xj-featured-detail{font-size:15px}
.xj-featured-date{top:35px;right:16px}
.xj-featured-date-main{font-size:18px}
.xj-featured-art{bottom:-10px;top:auto;right:0;width:200px;height:150px;opacity:.32}
.xj-news-icon{width:52px;height:52px;flex-basis:52px}
.xj-news-icon svg{width:24px;height:24px}
.xj-news-content{margin-left:14px}
.xj-news-content h3{font-size:14px}
.xj-news-content time{margin-top:7px;font-size:12px}
.xj-news-arrow{width:34px;height:34px;flex-basis:34px}}

/* ===== 用户中心·账户钱包美化 ===== */
.uc-wallet-hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:32px 36px;border-radius:16px;overflow:hidden;color:#fff;background:linear-gradient(120deg,#5a6af0,#6c7bff 55%,#9b88ff);box-shadow:0 14px 34px rgba(108,123,255,.3)}
.uc-wallet-hero:after{position:absolute;right:-60px;top:-80px;width:260px;height:260px;border-radius:50%;content:"";background:radial-gradient(circle,rgba(255,255,255,.28),transparent 68%)}
.uc-wallet-hero-info{position:relative;z-index:1;display:flex;flex-direction:column;gap:8px}
.uc-wallet-hero-label{font-size:14px;opacity:.85;letter-spacing:.5px}
.uc-wallet-hero-rmb{font-size:44px;font-weight:700;line-height:1.15;letter-spacing:-1px;font-family:'DIN Alternate',system-ui,sans-serif}
.uc-wallet-hero-tip{font-size:13px;opacity:.75}
.uc-wallet-hero-actions{position:relative;z-index:1;display:flex;gap:12px;flex-wrap:wrap}
.uc-wallet-btn{display:inline-flex;height:44px;padding:0 26px;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.75);border-radius:999px;color:#6c7bff;font-size:15px;font-weight:600;text-decoration:none;background:#fff;transition:transform .25s ease,box-shadow .25s ease}
.uc-wallet-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,40,120,.25)}
.uc-wallet-btn-main{color:#fff;border-color:transparent;background:linear-gradient(135deg,#ff9d16,#ff6900);box-shadow:0 8px 18px rgba(255,105,0,.35)}
.uc-wallet-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0}
.uc-wallet-stat{display:flex;padding:18px 22px;flex-direction:column;gap:8px;border:1px solid #e8edf5;border-radius:12px;background:#fff;box-shadow:0 4px 14px rgba(38,74,140,.05)}
.uc-wallet-stat-label{font-size:13px;color:#8a97ad}
.uc-wallet-stat-val{font-size:22px;font-weight:700;color: #2b3441;letter-spacing:-.3px}
.uc-wallet-in{color:#18a058}
.uc-wallet-out{color:#e8544f}
.uc-wallet-list{display:flex;flex-direction:column}
.uc-wallet-item{display:flex;padding:15px 18px;align-items:center;gap:16px;border-bottom:1px solid #f0f3f8;transition:background .2s ease}
.uc-wallet-item:last-child{border-bottom:0}
.uc-wallet-item:hover{background:#f7faff}
.uc-wallet-ico{display:grid;width:42px;height:42px;flex:0 0 42px;place-items:center;border-radius:50%;font-size:18px;font-weight:700}
.uc-wallet-ico.in{color:#18a058;background:#e8f8ee}
.uc-wallet-ico.out{color:#e8544f;background:#fdeeec}
.uc-wallet-body{display:flex;min-width:0;flex:1;flex-direction:column;gap:4px}
.uc-wallet-body b{font-size:15px;color: #333d4b}
.uc-wallet-desc{overflow:hidden;font-size:13px;color:#93a1b8;text-overflow:ellipsis;white-space:nowrap}
.uc-wallet-right{display:flex;flex:0 0 auto;flex-direction:column;align-items:flex-end;gap:4px}
.uc-wallet-right b{font-size:16px}
.uc-wallet-time{font-size:12px;color:#a3b0c4}
@media(max-width:640px){
.uc-wallet-hero{flex-direction:column;align-items:flex-start;padding:26px 22px}
.uc-wallet-hero-rmb{font-size:36px}
.uc-wallet-stats{grid-template-columns:1fr;gap:10px;margin:12px 0}
.uc-wallet-item{gap:12px;padding:13px 10px}
.uc-wallet-ico{width:36px;height:36px;flex-basis:36px;font-size:16px}
.uc-wallet-desc{max-width:180px}
}

/* ===== 用户中心·邀请奖励美化 ===== */
.uc-invite-hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:34px 38px;border-radius:16px;overflow:hidden;color:#fff;background:linear-gradient(120deg,#5a6af0,#6c7bff 55%,#9b88ff);box-shadow:0 14px 34px rgba(108,123,255,.3)}
.uc-invite-hero:after{position:absolute;right:-70px;top:-90px;width:280px;height:280px;border-radius:50%;content:"";background:radial-gradient(circle,rgba(255,255,255,.28),transparent 68%)}
.uc-invite-hero-text{position:relative;z-index:1;max-width:400px}
.uc-invite-hero-text h2{margin:0 0 10px;font-size:30px;font-weight:700;letter-spacing:-.5px;color:#fff}
.uc-invite-hero-text p{margin:0;font-size:14px;line-height:1.8;color:#fff;opacity:1}
.uc-invite-code-wrap{position:relative;z-index:1;display:flex;min-width:340px;flex-direction:column;gap:12px}
.uc-invite-code-label{font-size:13px;color:#fff;opacity:1}
.uc-invite-code-row{display:flex;padding:10px 12px 10px 20px;align-items:center;justify-content:space-between;gap:12px;border:1px dashed rgba(255,255,255,.65);border-radius:12px;background:rgba(255,255,255,.14);backdrop-filter:blur(6px)}
.uc-invite-code-row b{font-size:24px;font-weight:700;letter-spacing:2px}
.uc-invite-copy{flex:0 0 auto;height:38px;padding:0 20px;border:0;border-radius:999px;color:#6c7bff;font-size:14px;font-weight:600;cursor:pointer;background:#fff;box-shadow:0 6px 16px rgba(0,40,120,.22);transition:transform .2s ease}
.uc-invite-copy:hover{transform:translateY(-1px)}
.uc-invite-links{position:relative;z-index:1;display:flex;gap:10px;flex-wrap:wrap}
.uc-invite-link{display:inline-flex;height:36px;padding:0 16px;align-items:center;gap:6px;border:1px solid rgba(255,255,255,.8);border-radius:999px;color:#fff;font-size:13px;font-weight:600;text-decoration:none;background:rgba(255,255,255,.12);backdrop-filter:blur(6px);transition:background .2s ease,transform .2s ease}
.uc-invite-link:hover{background:rgba(255,255,255,.28);transform:translateY(-1px)}
.uc-invite-reg:hover{opacity:1}
.uc-invite-steps{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:14px;margin:18px 0;align-items:stretch}
.uc-invite-step{position:relative;display:flex;padding:20px 22px;flex-direction:column;gap:8px;border:1px solid #e8edf5;border-radius:12px;background:#fff;box-shadow:0 4px 14px rgba(38,74,140,.05)}
.uc-invite-step-no{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;color:#fff;font-size:15px;font-weight:700;background:linear-gradient(135deg,#2f86ff,#6c7bff)}
.uc-invite-step b{font-size:15px;color: #333d4b}
.uc-invite-step p{margin:0;font-size:13px;line-height:1.7;color:#8a97ad}
.uc-invite-step-arrow{display:flex;align-items:center;color:#b6c2d6;font-size:18px}
.uc-invite-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}
.uc-invite-stat{display:flex;padding:20px 22px;align-items:center;gap:14px;border:1px solid #e8edf5;border-radius:12px;background:#fff;box-shadow:0 4px 14px rgba(38,74,140,.05)}
.uc-invite-stat-ico{display:grid;width:48px;height:48px;flex:0 0 48px;place-items:center;border-radius:12px;font-size:22px;background:#eef5ff}
.uc-invite-stat-body{display:flex;min-width:0;flex-direction:column;gap:4px}
.uc-invite-stat-body b{font-size:22px;font-weight:700;color: #2b3441}
.uc-invite-stat-body span{font-size:13px;color:#8a97ad}
.uc-invite-note{margin:0;padding:14px 18px;border-radius:10px;font-size:13px;line-height:1.8;color:#8a97ad;background:#f6f8fc}
@media(max-width:860px){
.uc-invite-hero{flex-direction:column;align-items:flex-start;padding:26px 22px}
.uc-invite-code-wrap{min-width:0;width:100%}
.uc-invite-steps{grid-template-columns:1fr;gap:10px}
.uc-invite-step-arrow{display:none}
.uc-invite-stats{grid-template-columns:1fr;gap:10px}
}

/* ===== 用户中心·账号安全标签切换 ===== */
.uc-profile-tabs{display:inline-flex;padding:3px;gap:2px;border-radius:999px;background:#eef2f8}
.uc-profile-tab{height:34px;padding:0 20px;border:0;border-radius:999px;color:#64718a;font-size:14px;font-weight:600;cursor:pointer;background:transparent;transition:color .2s ease,background .2s ease,box-shadow .2s ease}
.uc-profile-tab:hover{color:#6c7bff}
.uc-profile-tab.is-active{color:#6c7bff;background:#fff;box-shadow:0 3px 10px rgba(30,80,160,.14)}
.uc-profile-panel{display:none}
.uc-profile-panel.is-active{display:block}


/* ============ 登录 / 注册 / 找回密码：云枢商城同款风格（2026-09-23） ============ */
/* 参考站 demo1.xjukeji.cn 的登录页：全屏背景图 + 右侧浮层卡片 + 紫蓝渐变主色 */
.xjlogin-body { margin: 0; }

.public-login {
  width: 100%;
  min-height: 100vh;
  background: url("/static/img/bg-userlogin.webp") center center / cover no-repeat;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 20px 280px;
  box-sizing: border-box;
  position: relative;
}

/* 左侧品牌文案（HTML 渲染，跟随站点设置） */
.login-slogan {
  position: absolute;
  left: 10%;
  top: 15%;
  max-width: 46%;
  pointer-events: none;
}
.login-slogan-title {
  margin: 0;
  font-size: 52px;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: 2px;
  color: #2b3070;
}
.login-slogan-sub {
  margin: 22px 0 0;
  font-size: 20px;
  letter-spacing: 1px;
  color: #3a4178;
}

/* 右侧登录卡片 */
.login-main {
  width: 100%;
  max-width: 420px;
  border-radius: 16px;
  padding: 40px 30px;
  box-shadow: rgba(0, 0, 0, .08) 0 4px 20px;
  background: linear-gradient(rgba(222, 242, 255, .7) 0%, #fff 100%);
  border: 1px solid #fff;
  box-sizing: border-box;
}
.login-title {
  text-align: center;
  font-size: 32px;
  color: #454e5c;
  margin: 0 0 40px;
  font-weight: 500;
  letter-spacing: 1px;
}

/* Tab */
.login-tab { display: flex; margin-bottom: 30px; border-bottom: 1px solid #eee; }
.login-tab-item {
  flex: 1 1 0%;
  text-align: center;
  font-size: 16px;
  color: #666;
  padding: 10px 0;
  cursor: pointer;
  position: relative;
  transition: color .3s;
}
.login-tab-item.active { color: #6c7bff; font-weight: 500; }
.login-tab-item.active::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 2px;
  background: #6c7bff;
}

/* 表单 */
.login-form { display: none; }
.login-form.active { display: block; }
.login-input-wrap { margin-bottom: 20px; position: relative; }
.login-input {
  width: 100%;
  height: 56px;
  border: 1px solid #eee;
  border-radius: 12px;
  padding: 0 20px;
  font-size: 16px;
  color: #454e5c;
  background: #f8faff;
  outline: none;
  transition: border-color .3s;
  box-sizing: border-box;
  font-family: inherit;
}
.login-input.has-btn { padding-right: 110px; }
.login-input:focus { border-color: #6c7bff; }
.login-input::placeholder { color: #999; }

/* 获取验证码按钮（输入框内嵌） */
.get-code-btn {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 94px;
  height: 44px;
  background: linear-gradient(90deg, #9b88ff 0%, #6c7bff 100%);
  border: none;
  border-radius: 12px;
  color: #fff;
  font-size: 16px;
  cursor: pointer;
  transition: opacity .3s;
  font-family: inherit;
  padding: 0;
}
.get-code-btn:disabled { opacity: .6; cursor: not-allowed; }

/* 注册 / 忘记密码 链接行 */
.login-option-bar { display: flex; justify-content: space-between; margin: 15px 0 30px; font-size: 14px; }
.login-option-bar a { color: #6c7bff; text-decoration: none; }
.login-option-bar a:hover { opacity: .8; }

/* 主按钮：紫蓝渐变 + 白字 */
.login-btn {
  width: 100%;
  height: 56px;
  background: linear-gradient(90deg, #9b88ff 0%, #6c7bff 100%);
  border: none;
  border-radius: 12px;
  color: #fff;
  font-size: 18px;
  cursor: pointer;
  transition: opacity .3s;
  font-family: inherit;
  letter-spacing: 2px;
}
.login-btn:hover { opacity: .92; }
.login-btn:disabled { opacity: .6; cursor: not-allowed; }

/* 错误提示 */
.login-err {
  margin: 0 0 18px;
  padding: 10px 14px;
  font-size: 14px;
  line-height: 1.6;
  color: #ff4d4f;
  background: rgba(255, 77, 79, .08);
  border: 1px solid rgba(255, 77, 79, .22);
  border-radius: 10px;
}

/* 轻提示 */
.xj-toast {
  position: fixed;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(0, 0, 0, .75);
  color: #fff;
  padding: 10px 20px;
  border-radius: 4px;
  z-index: 9999;
  display: none;
  font-size: 14px;
  animation: xjToastIn .3s;
}
.xj-toast.success { background: rgba(82, 196, 26, .9); }
.xj-toast.error { background: rgba(255, 77, 79, .9); }
@keyframes xjToastIn {
  from { opacity: 0; transform: translate(-50%, -20px); }
  to { opacity: 1; transform: translate(-50%, 0); }
}

/* 响应式：窄屏隐藏背景图与左侧文案，卡片居中 */
@media (max-width: 1100px) {
  .public-login { padding: 20px 60px; }
  .login-slogan-title { font-size: 42px; }
  .login-slogan-sub { font-size: 17px; }
}
@media (max-width: 768px) {
  .public-login {
    justify-content: center;
    padding: 20px;
    background-color: #f5f7ff;
    background-image: none;
  }
  .login-slogan { display: none; }
  .login-main { margin: 0 auto; max-width: 460px; padding: 32px 22px; }
  .login-title { font-size: 26px; margin-bottom: 28px; }
}

/* ============ 前台登录/注册/找回密码：玻璃拟态（2026-09-23） ============ */
.login-main, .xja-card, .uc-auth-page .xja-card {
  background: rgba(255, 255, 255, .55) !important;
  -webkit-backdrop-filter: blur(26px) saturate(180%) !important;
  backdrop-filter: blur(26px) saturate(180%) !important;
  border: 1px solid rgba(255, 255, 255, .8) !important;
  box-shadow: 0 18px 48px rgba(31, 45, 90, .16), inset 0 1px 0 rgba(255, 255, 255, .7) !important;
}
.login-input, .uc-auth-page .xja-card .uaf-input, .uc-auth-page .uaf-input {
  background: rgba(255, 255, 255, .72) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  backdrop-filter: blur(8px) !important;
  border-color: rgba(255, 255, 255, .9) !important;
}
.login-input:focus, .uc-auth-page .xja-card .uaf-input:focus {
  background: rgba(255, 255, 255, .95) !important;
  border-color: #6c7bff !important;
}
.login-tab, .uc-auth-page .xja-tabs { border-bottom-color: rgba(255, 255, 255, .6) !important; }
.login-option-bar a, .uc-auth-page .xja-card .uaf-links a { color: #5a6af0; }

/* ============ 前台用户中心：紫蓝主题 + 玻璃拟态（2026-09-24） ============ */
/* 只作用于 .uc-page / .uc-* ，公共页面（首页/产品/新闻/文档）不受影响 */

/* 变量覆盖：区域内所有 var(--primary) 等自动跟随 */
.uc-page {
  --primary: #6c7bff;
  --primary-light: #9b88ff;
  --primary-deep: #5a6af0;
  --primary-dark: #5a6af0;
  --primary-soft: #f7f7ff;
  --primary-soft-2: #c9cfff;
  --gold: #6c7bff;
  /* 彩色光晕底（固定，玻璃才有东西可透） */
  background-color: #eef2ff !important;
  background-image:
    radial-gradient(1100px 780px at 4% 0%, rgba(155, 136, 255, .46), transparent 64%),
    radial-gradient(1000px 720px at 96% 4%, rgba(108, 123, 255, .36), transparent 62%),
    radial-gradient(920px 740px at 86% 96%, rgba(111, 208, 255, .32), transparent 66%),
    radial-gradient(840px 680px at 8% 94%, rgba(255, 154, 213, .26), transparent 66%),
    linear-gradient(160deg, #eaefff 0%, #f5f9ff 46%, #e6efff 100%) !important;
  background-attachment: fixed !important;
  background-repeat: no-repeat !important;
}
.uc-body, .uc-container { background: transparent !important; }

/* 侧栏：毛玻璃 */
.uc-sider {
  background: rgba(255, 255, 255, .58) !important;
  -webkit-backdrop-filter: blur(22px) saturate(170%) !important;
  backdrop-filter: blur(22px) saturate(170%) !important;
  border-right: 1px solid rgba(255, 255, 255, .7) !important;
  box-shadow: 1px 0 26px rgba(31, 45, 90, .07) !important;
}
.uc-logo, .uc-sider-foot { border-color: rgba(255, 255, 255, .6) !important; background: transparent !important; }
/* 侧栏菜单项：hover / 选中改半透明 */
.uc-item:hover, .uc-sider .uc-item:hover { background: rgba(255, 255, 255, .62) !important; }
.uc-item.active, .uc-sider .uc-item.active, .uc-item.is-active {
  background: rgba(255, 255, 255, .8) !important;
  color: #6c7bff !important;
  box-shadow: 0 2px 10px rgba(108, 123, 255, .14) !important;
}
.uc-item.active .uc-ico, .uc-item.active span { color: #6c7bff !important; }
/* 侧栏一级菜单（.uc-pri）/ 二级菜单（.uc-sub）选中态 */
.uc-page .uc-pri { border-radius: 12px; }
.uc-page .uc-pri:hover { background: rgba(255, 255, 255, .62) !important; color: #6c7bff !important; }
.uc-page .uc-pri.active {
  background: rgba(255, 255, 255, .82) !important;
  color: #6c7bff !important;
  font-weight: 600;
  box-shadow: 0 2px 10px rgba(108, 123, 255, .16) !important;
}
.uc-page .uc-pri.active .uc-pri-ico { color: #6c7bff !important; }
.uc-page .uc-sub { border-radius: 10px; }
.uc-page .uc-sub:hover { background: rgba(255, 255, 255, .55) !important; }
.uc-page .uc-sub.active {
  background: rgba(255, 255, 255, .8) !important;
  color: #6c7bff !important;
  box-shadow: 0 2px 8px rgba(108, 123, 255, .12) !important;
}

/* 顶栏：毛玻璃 */
.uc-topbar {
  background: rgba(255, 255, 255, .55) !important;
  -webkit-backdrop-filter: blur(20px) saturate(170%) !important;
  backdrop-filter: blur(20px) saturate(170%) !important;
  border-bottom: 1px solid rgba(255, 255, 255, .7) !important;
  box-shadow: 0 1px 20px rgba(31, 45, 90, .05) !important;
}

/* 卡片：半透明白 + 强模糊 + 高光描边 */
.uc-hero-card, .uc-card, .uc-bcard, .uc-mcard, .uc-chart-card, .uc-latest-card,
.uc-balance-card, .uc-mall-card, .uc-ap-card, .uc-invite-stat,
.uc-invite-step, .user-card, .uc-panel, .uc-ticket-card {
  background: rgba(255, 255, 255, .6) !important;
  -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
  backdrop-filter: blur(20px) saturate(180%) !important;
  border: 1px solid rgba(255, 255, 255, .78) !important;
  box-shadow: 0 8px 32px rgba(31, 45, 90, .1), inset 0 1px 0 rgba(255, 255, 255, .6) !important;
}
/* 卡片内部白底块透出玻璃 */
.uc-card-body, .uc-card-head, .uc-hero-left, .uc-hero-right { background: transparent !important; }

/* 表格：去实底 */
.uc-page .data-table, .uc-page .us-table { background: transparent !important; }
.uc-page .data-table th, .uc-page .us-table th { background: rgba(255, 255, 255, .5) !important; }
.uc-page .data-table td, .uc-page .us-table td { background: transparent !important; border-color: rgba(255, 255, 255, .55) !important; }
.uc-page .data-table tbody tr:nth-child(even) td,
.uc-page .us-table tbody tr:nth-child(even) td { background: rgba(255, 255, 255, .22) !important; }
.uc-page .data-table tbody tr:hover td,
.uc-page .us-table tbody tr:hover td { background: rgba(255, 255, 255, .62) !important; }

/* 输入框：磨砂白 + 淡紫描边（与卡片区分开） */
.uc-page input[type=text], .uc-page input[type=password], .uc-page input[type=number],
.uc-page input[type=email], .uc-page input[type=tel], .uc-page input[type=search],
.uc-page select, .uc-page textarea, .uc-page .uaf-input, .uc-page .form-control {
  background: rgba(255, 255, 255, .82) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  backdrop-filter: blur(8px) !important;
  border: 1px solid rgba(108, 123, 255, .22) !important;
}
.uc-page input:focus, .uc-page select:focus, .uc-page textarea:focus {
  background: rgba(255, 255, 255, .96) !important;
  border-color: #6c7bff !important;
  box-shadow: 0 0 0 3px rgba(108, 123, 255, .16) !important;
}

/* 弹窗 / 提示条 */
.uc-page .modal-content, .uc-page .ui-modal, .uc-page .dl-modal {
  background: rgba(255, 255, 255, .8) !important;
  -webkit-backdrop-filter: blur(26px) saturate(180%) !important;
  backdrop-filter: blur(26px) saturate(180%) !important;
  border: 1px solid rgba(255, 255, 255, .85) !important;
}
.uc-page .uc-tip, .uc-page .user-tip {
  background: rgba(238, 240, 255, .75) !important;
  border-color: rgba(108, 123, 255, .2) !important;
}

/* 按钮：紫蓝渐变 + 白字 */
.uc-page .uc-submit, .uc-page .uaf-submit, .uc-page .uc-btn-primary,
.uc-page .btn-primary, .uc-page .uaf-code-btn:hover {
  background: linear-gradient(90deg, #9b88ff 0%, #6c7bff 100%) !important;
  color: #fff !important;
  border-color: transparent !important;
  box-shadow: 0 6px 16px rgba(108, 123, 255, .24) !important;
}
.uc-page .btn-primary:hover, .uc-page .uc-submit:hover { filter: brightness(1.06); }
/* 钱包页橙色主按钮 → 紫蓝渐变（与主题统一） */
.uc-page .uc-wallet-btn-main {
  background: linear-gradient(135deg, #9b88ff 0%, #6c7bff 100%) !important;
  color: #fff !important;
  border-color: transparent !important;
  box-shadow: 0 8px 18px rgba(108, 123, 255, .35) !important;
}

/* 徽章 */
.uc-page .badge-blue, .uc-page .us-badge-ok { background: rgba(108, 123, 255, .14) !important; color: #5a6af0 !important; }
.uc-page .badge-gray { background: rgba(255, 255, 255, .6) !important; }

/* 滚动条 */
.uc-sider ::-webkit-scrollbar-thumb, .uc-body ::-webkit-scrollbar-thumb { background: rgba(108, 123, 255, .28) !important; }

/* ============ 用户中心：底部页脚 + 背景减淡（2026-09-24） ============ */
/* 内容区做成纵向 flex，容器撑开，页脚自然贴底，短内容页面不再出现大片空白 */
.uc-page .uc-body { display: flex; flex-direction: column; }
.uc-page .uc-container { flex: 1 0 auto; }

.uc-foot {
  flex: none;
  margin-top: 28px;
  padding: 18px 2px 6px;
  border-top: 1px solid rgba(255, 255, 255, .7);
  font-size: 13px;
  color: #8a94a6;
}
.uc-foot-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 18px;
}
.uc-foot-brand { font-weight: 600; color: #5a6480; }
.uc-foot-copy { color: #98a2b8; }
.uc-foot-links { margin-left: auto; display: flex; gap: 18px; }
.uc-foot-links a { color: #8a94a6; transition: color .2s; }
.uc-foot-links a:hover { color: #6c7bff; }
@media (max-width: 640px) {
  .uc-foot-links { margin-left: 0; width: 100%; }
}

/* 背景减淡：空白区不再是一大块彩色，看着像正常页面底色 */
.uc-page {
  background-color: #f4f7ff !important;
  background-image:
    radial-gradient(900px 620px at 4% 0%, rgba(155, 136, 255, .20), transparent 62%),
    radial-gradient(820px 580px at 96% 2%, rgba(108, 123, 255, .16), transparent 60%),
    radial-gradient(760px 600px at 92% 98%, rgba(111, 208, 255, .10), transparent 66%),
    radial-gradient(680px 540px at 6% 96%, rgba(255, 154, 213, .08), transparent 66%),
    linear-gradient(170deg, #eef2ff 0%, #f7faff 42%, #f4f8ff 100%) !important;
  background-attachment: fixed !important;
  background-repeat: no-repeat !important;
}



/* ============ 选中态紫色下划线（用户中心，2026-09-24） ============ */
.uc-page .uc-sub { position: relative; }
.uc-page .uc-sub.active {
  color: #6c7bff !important;
  border-bottom-color: transparent !important;
}
.uc-page .uc-sub.active::after {
  content: "" !important;
  display: block !important;
  position: absolute;
  left: 50%;
  bottom: -1px;
  width: 22px;
  height: 2px;
  margin-left: -11px;
  border-radius: 2px 2px 0 0;
  background: linear-gradient(90deg, #9b88ff, #6c7bff);
}
/* 页面内 tab（如文章列表/分类管理那种胶囊）选中也加条横线 */
.uc-page .uc-tabs .active::after,
.uc-page .page-tabs .active::after { content: "" !important; display: block !important; }

/* ---------- 代理查询页（用户中心内） ---------- */
.uc-query-msg {
  margin: 0 0 18px;
  padding: 12px 16px;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.7;
}
.uc-query-msg.ok { color: #2ea563; background: rgba(52, 185, 111, .12); border: 1px solid rgba(52, 185, 111, .25); }
.uc-query-msg.err { color: #d9564f; background: rgba(224, 96, 90, .1); border: 1px solid rgba(224, 96, 90, .22); }
.uc-query-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.uc-query-field label {
  display: block;
  margin-bottom: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #5a6b85;
}
.uc-query-actions { margin-top: 22px; }
.uc-query-actions .btn-primary {
  min-width: 140px;
  height: 42px;
  border-radius: 12px;
  font-size: 14px;
  color: #fff !important;
}
@media (max-width: 760px) {
  .uc-query-grid { grid-template-columns: 1fr; gap: 14px; }
}

/* ============ 用户中心侧栏 Logo：透明图 + 铺满左上角（2026-09-24） ============ */
.uc-page .uc-sider-top { border-bottom: 0; }
.uc-page .uc-logo {
  display: block;
  padding: 13px 20px 12px;
  margin: 0;
  line-height: 0;
}
.uc-page .uc-logo-img,
.uc-page .uc-logo img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  max-height: 38px;
  object-fit: contain;
  object-position: left center;
}

/* ============ 代理升级页：应用卡选中态（要压过玻璃层的 !important） ============ */
.uc-page .uc-ap-card.selectable:hover {
  border-color: #6c7bff !important;
  background: rgba(255, 255, 255, .82) !important;
}
.uc-page .uc-ap-card.selected {
  border-color: #6c7bff !important;
  background: rgba(238, 240, 255, .92) !important;
  box-shadow: 0 0 0 1px #6c7bff inset, 0 6px 18px rgba(108, 123, 255, .22) !important;
}
.uc-page .uc-ap-card.selected .uc-ap-name { color: #5a6af0 !important; }
.uc-page .uc-ap-card.selected::after {
  content: "✓";
  position: absolute;
  right: 10px;
  bottom: 8px;
  font-size: 13px;
  font-weight: 700;
  color: #6c7bff;
}
.uc-page .uc-ap-card.owned {
  opacity: .6;
  cursor: not-allowed;
  box-shadow: none !important;
}

/* ============ 代理升级页：应用卡图标（2026-09-24） ============ */
.uc-page .uc-ap-head { align-items: flex-start; }
.uc-page .uc-ap-title {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex: 1 1 auto;
}
.uc-page .uc-ap-ico {
  flex: none;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  overflow: hidden;
  display: grid;
  place-items: center;
  background: linear-gradient(134deg, #9b88ff, #6c7bff);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 3px 10px rgba(108, 123, 255, .25);
}
.uc-page .uc-ap-ico img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.uc-page .uc-ap-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* 已开通的卡图标降饱和，拉开与可开通的区分 */
.uc-page .uc-ap-card.owned .uc-ap-ico { filter: grayscale(1); opacity: .7; }


/* ============ 首页产品中心：左右箭头放在产品介绍两侧（2026-09-24） ============ */
.sol-stage {
  display: flex;
  align-items: center;
  gap: 20px;
}
.sol-stage .sol-body {
  flex: 1 1 auto;
  min-width: 0;
}

/* 圆形箭头：垂直居中于产品介绍块的两侧 */
.sol-nav {
  flex: none;
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border: 1px solid #e6ecf5;
  border-radius: 50%;
  background: #fff;
  color: #006eff;
  cursor: pointer;
  box-shadow: 0 10px 26px rgba(11, 29, 48, .1);
  transition: background .22s, color .22s, border-color .22s, transform .22s, box-shadow .22s;
}
.sol-nav svg { width: 22px; height: 22px; }
.sol-nav:hover {
  background: linear-gradient(134deg, #13adff, #006eff);
  border-color: transparent;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(0, 110, 255, .34);
}
.sol-nav:active { transform: translateY(0); }

@media (max-width: 1024px) {
  .sol-stage { gap: 12px; }
  .sol-nav { width: 42px; height: 42px; }
  .sol-nav svg { width: 18px; height: 18px; }
}
@media (max-width: 768px) {
  .sol-stage { flex-wrap: wrap; gap: 10px; }
  .sol-stage .sol-body { order: 1; flex: 1 1 100%; }
  .sol-nav { order: 2; width: 42px; height: 42px; }
  .sol-nav.prev { margin-left: auto; }
  .sol-nav.next { margin-right: auto; }
}

/* 桌面端（≥769px）：箭头再往两边靠——舞台按标签条同款出血铺满，箭头贴在舞台最外沿 */
@media (min-width: 769px) {
  .sol-stage {
    /* 箭头比标签条再往外靠（标签条出血 100px，箭头最多 170px；视口不够宽时自动收窄） */
    --sol-bleed: min(170px, max(0px, calc((100vw - 1200px) / 2 - 10px)));
    --sol-pad: max(64px, var(--sol-bleed));
    position: relative;
    display: block;
    margin: 0 calc(-1 * var(--sol-bleed));
    padding: 0 var(--sol-pad);
  }
  .sol-stage .sol-body { width: 100%; }
  .sol-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
  }
  .sol-nav.prev { left: 0; }
  .sol-nav.next { right: 0; }
  .sol-nav:hover { transform: translateY(calc(-50% - 2px)); }
  .sol-nav:active { transform: translateY(-50%); }
}

/* 首页新闻动态：分类 Tab 数量自适应等分（原来写死 2 列，出现第 3 个分类会换行被裁切） */
.xj-news-tabs {
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
}

/* 程序下载页：一次性安装包说明（2026-09-24） */
.dn-tip {
  margin: 18px 0 0;
  padding: 12px 16px;
  border: 1px solid #e3ecff;
  border-left: 3px solid #006eff;
  border-radius: 6px;
  background: #f6faff;
  font-size: 13px;
  line-height: 1.85;
  color: #5a6b85;
}

/* ============ 在线客服浮窗（在咨询浮窗基础上扩展为实时对话） ============ */
.chat-dot {
  position: absolute; top: -4px; right: -4px;
  width: 10px; height: 10px; border-radius: 50%;
  background: #ff4d4f; border: 2px solid #fff;
}
.consult-btn { position: relative; }
/* 面板：聊天窗比留言表单高，消息区独立滚动 */
.consult-panel { width: 340px; display: flex; flex-direction: column; max-height: 74vh; }
.chat-profile { padding: 16px; display: flex; flex-direction: column; gap: 10px; }
.chat-profile-tip { font-size: 12.5px; color: #7a8aa3; margin: 0 0 2px; line-height: 1.6; }
.chat-profile input {
  width: 100%; padding: 10px 14px; border: 1px solid #e3e6ec; border-radius: 10px;
  font-size: 13.5px; font-family: inherit; outline: none; transition: border-color .25s, box-shadow .25s;
}
.chat-profile input:focus { border-color: #006eff; box-shadow: 0 0 0 3px rgba(0, 110, 255, .1); }
.chat-profile-btns { display: flex; gap: 8px; margin-top: 2px; }
.chat-profile-btns .btn { flex: 1; padding: 10px; border-radius: 10px; }

.chat-body { display: flex; flex-direction: column; min-height: 0; flex: 1; }
.chat-msgs {
  flex: 1; min-height: 260px; max-height: 46vh; overflow-y: auto;
  padding: 14px; background: #f7f9fc; display: flex; flex-direction: column; gap: 10px;
  -webkit-overflow-scrolling: touch;
}
.msg { display: flex; flex-direction: column; max-width: 82%; }
.msg-text { padding: 9px 13px; border-radius: 12px; font-size: 13.5px; line-height: 1.6; word-break: break-word; }
.msg img { max-width: 100%; border-radius: 10px; display: block; }
.msg-file { font-size: 13px; color: #006eff; text-decoration: underline; word-break: break-all; }
.msg-user { align-self: flex-end; align-items: flex-end; }
.msg-user .msg-text { background: linear-gradient(134deg, #13adff, #006eff); color: #fff; border-bottom-right-radius: 4px; }
.msg-admin { align-self: flex-start; align-items: flex-start; }
.msg-admin .msg-text { background: #fff; color: #2b3441; border: 1px solid #e8edf5; border-bottom-left-radius: 4px; }
.msg-system { align-self: center; align-items: center; max-width: 92%; }
.msg-system .msg-text { background: rgba(0, 110, 255, .07); color: #5a6b85; font-size: 12.5px; border-radius: 8px; }
.msg-auto { margin-top: 3px; font-size: 11px; color: #9aa7bd; font-style: normal; }
.msg.is-sending { opacity: .6; }
.msg.is-fail .msg-text { background: #fff1f0 !important; color: #ff4d4f !important; border: 1px solid #ffccc7; }
.chat-tip { margin: 0; padding: 8px 14px; font-size: 12px; color: #b8860b; background: #fffbe6; border-top: 1px solid #ffe58f; }
.chat-tools {
  display: flex; align-items: flex-end; gap: 8px; padding: 10px 12px;
  border-top: 1px solid #eef1f6; background: #fff;
}
.chat-tool-btn {
  flex: none; width: 34px; height: 34px; border-radius: 9px; border: 1px solid #e3e6ec;
  background: #fff; color: #7a8aa3; display: flex; align-items: center; justify-content: center;
}
.chat-tool-btn:hover { border-color: #006eff; color: #006eff; }
.chat-tool-btn svg { width: 17px; height: 17px; }
.chat-tools textarea {
  flex: 1; resize: none; border: 1px solid #e3e6ec; border-radius: 10px;
  padding: 9px 12px; font-size: 13.5px; font-family: inherit; line-height: 1.5;
  max-height: 96px; outline: none; transition: border-color .25s, box-shadow .25s;
}
.chat-tools textarea:focus { border-color: #006eff; box-shadow: 0 0 0 3px rgba(0, 110, 255, .1); }
.chat-tools .btn { flex: none; padding: 9px 16px; border-radius: 10px; }
/* 聊天窗打开时避让右侧悬浮工具条 */
body.chat-open .float-bar { opacity: 0; pointer-events: none; }
@media (max-width: 640px) {
  .consult-panel { width: calc(100vw - 32px); }
  .chat-msgs { min-height: 200px; max-height: 42vh; }
}

/* hidden 属性必须优先于组件自带的 display（否则招呼卡/降级表单的 hidden 会被 .consult-panel form 的 flex 覆盖） */
.consult-panel [hidden] { display: none !important; }

/* 浮窗面板自身默认隐藏：display:flex 会盖掉 [hidden]，必须显式声明 */
.consult-panel[hidden] { display: none !important; }

/* ===== 源码市场（参考 xtuzy.cn「主题模板」分类页：横幅+搜索 / 筛选条 / 卡片网格） ===== */
.market-hero {
  /* 与其它页面统一的蓝色页头（同 .page-hero 的配色与纹理） */
  background:
    radial-gradient(720px 320px at 85% 8%, rgba(255, 255, 255, .35), transparent 60%),
    radial-gradient(rgba(255, 255, 255, .04) 1.3px, transparent 1.8px),
    linear-gradient(134deg, #006eff 0%, #13adff 50%, #006eff 100%);
  background-size: auto, 24px 24px, auto;
  padding: 56px 0 46px;
  text-align: center;
}
.market-hero h1 { margin: 0 0 22px; color: #fff; font-size: 34px; font-weight: 800; letter-spacing: 2.5px; }
.market-search {
  position: relative;
  max-width: 620px;
  margin: 0 auto;
  display: flex;
}
.market-search input {
  flex: 1;
  height: 52px;
  padding: 0 56px 0 20px;
  font-size: 15px;
  color: #333;
  background: #fff;
  border: 0;
  border-radius: 8px;
  outline: none;
}
.market-search button {
  position: absolute;
  right: 6px;
  top: 6px;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #666;
  background: none;
  border: 0;
  cursor: pointer;
}
.market-search button:hover { color: var(--primary); }

.market-section { padding-top: 26px; }
/* 源码市场用更宽的版心（筛选条与卡片一起加宽，比其它页面宽 200px） */
.market-hero .container,
.market-section .container { max-width: 1400px; }

/* 筛选条 */
.market-filters {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 6px 22px;
  margin-bottom: 24px;
}
.filter-row { display: flex; align-items: baseline; gap: 16px; padding: 13px 0; border-bottom: 1px dashed var(--line); }
.filter-row:last-child { border-bottom: 0; }
.filter-label { flex: none; width: 48px; color: #999; font-size: 14px; }
.filter-opts { display: flex; flex-wrap: wrap; gap: 6px 22px; }
.filter-opt { color: #444; font-size: 14px; line-height: 1.6; }
.filter-opt:hover { color: #ff6a00; }
.filter-opt.active { color: #ff6a00; font-weight: 700; }

/* 卡片网格 */
.market-grid {
  display: grid;
  /* 一排 4 个、一屏两行（一页 8 个由控制器 list_rows 控制），窄屏依次降为 3/2 个 */
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}
@media (max-width: 1280px) { .market-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 1024px) { .market-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* 手机端沿用下面 @media (max-width: 768px) 段里的两列自适应 */
.market-card {
  position: relative;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .18s, box-shadow .18s, border-color .18s;
}
.market-card:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(0, 0, 0, .09); border-color: #ffe0c2; }
.market-thumb { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #f4f6fa; }
.market-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
/* 笔记本样机（与产品中心同款）里的图片：悬停轻微放大 */
.market-card .pl-screen img { transition: transform .3s; }
.market-card:hover .pl-screen img { transform: scale(1.04); }
/* 付费/免费角标：贴卡片左上角，高度 ≤ .pl-laptop 的 22px 上内边距才不压截图 */
.market-tag {
  position: absolute; left: 0; top: 0; z-index: 3;
  padding: 2px 12px 2px 10px; font-size: 12px; font-weight: 600; line-height: 1.5; color: #fff;
  border-radius: 0 0 14px 0;
  box-shadow: 0 6px 14px rgba(31, 41, 55, .12);
}
.market-tag.is-paid { background: #ff6a00; }
.market-tag.is-free { background: #15b371; }
/* 右上角绿色「亲测」标（与左上角的付费/免费标同款，右侧对称） */
/* 「亲测」小标签：内联在 meta 行里（阅读量之后、价格之前） */
.market-tag-verify {
  padding: 0 8px; font-size: 11px; font-weight: 600; line-height: 1.7; color: #fff;
  background: #15b371;
  border-radius: 999px;
}
.market-owned {
  position: absolute; right: 8px; top: 8px;
  padding: 3px 9px; font-size: 12px; font-weight: 600;
  color: #fff; background: #1aab6b; border-radius: 6px;
}
.market-body { padding: 14px 22px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.market-cat { position: relative; padding-left: 12px; color: #9aa0a6; font-size: 12px; }
.market-cat::before {
  content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 5px; height: 5px; border-radius: 50%; background: #ff6a00;
}
.market-title { margin: 0; font-size: 15px; line-height: 1.5; flex: 1; }
.market-title a {
  color: #222;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.market-title a:hover { color: #ff6a00; }
.market-meta {
  display: flex; align-items: center; gap: 14px;
  color: #9aa0a6; font-size: 12.5px;
}
.market-meta .m-date::before { content: "🕒 "; }
.market-meta .m-views::before { content: "👁 "; }
.market-price { margin-left: auto; color: #ff6a00; font-size: 16px; font-weight: 700; }
.market-price.free { color: #15b371; font-size: 13px; font-weight: 600; }
.market-actions { display: flex; }
.market-btn {
  flex: 1; text-align: center;
  padding: 9px 14px; font-size: 14px; font-weight: 600;
  border-radius: 8px; white-space: nowrap; transition: all .18s;
}
.market-btn.is-buy { color: #fff; background: linear-gradient(134deg, #ff8a2b, #ff6a00); }
.market-btn.is-buy:hover { filter: brightness(1.06); }
.market-btn.is-download { color: #1aab6b; background: #e9f8f1; border: 1px solid #b7e6cf; }
.market-btn.is-download:hover { background: #dbf3e8; }

/* 文章详情页的购买/下载条 */
.detail-market { margin: 16px 0 4px; }
.detail-market-buy {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  padding: 14px 18px; border-radius: 12px;
  background: linear-gradient(180deg, #f7f9fc, #fff);
  border: 1px solid var(--line);
}
.detail-market-tip { color: var(--ink-3); font-size: 13px; }

@media (max-width: 768px) {
  .market-hero { padding: 26px 0 30px; }
  .market-hero h1 { font-size: 20px; margin-bottom: 14px; }
  .market-search input { height: 46px; font-size: 14px; }
  .market-search button { width: 36px; height: 36px; top: 5px; }
  .market-filters { padding: 4px 14px; }
  .filter-row { flex-direction: column; gap: 6px; padding: 10px 0; }
  .filter-label { width: auto; }
  .filter-opts { gap: 6px 16px; }
  .market-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
  .market-body { padding: 10px 12px 12px; gap: 6px; }
  .market-title { font-size: 14px; }
  .market-price { font-size: 15px; }
  .detail-market-buy { gap: 10px; padding: 12px 14px; }
}
/* 首页导航项的小房子图标（与文字同色，跟随 hover/active 变色） */
.nav-icon {
  width: 18px;
  height: 18px;
  flex: none;
  opacity: .9;
}
.nav-link:hover .nav-icon,
.nav-link.active .nav-icon { opacity: 1; }
@media (max-width: 768px) {
  .nav-icon { width: 18px; height: 18px; }
}


/* ============================================================
   顶部页头统一为「源码市场」那套渐变蓝（2026-09-27）
   原来 V8.49 把 .page-hero / .pl-hero 定义成纯色 #2367F6 + 左对齐，
   这里统一成与 .market-hero 完全相同的配色与纹理。
   居中只在带 .page-hero-center 的页面上生效（授权中心页原本就用这个修饰类），
   结算/授权/演示等页面仍是左对齐，只换颜色，不动版式。
   ============================================================ */
.page-hero,
.pl-hero {
  background:
    radial-gradient(720px 320px at 85% 8%, rgba(255, 255, 255, .35), transparent 60%),
    radial-gradient(rgba(255, 255, 255, .04) 1.3px, transparent 1.8px),
    linear-gradient(134deg, #006eff 0%, #13adff 50%, #006eff 100%);
  background-size: auto, 24px 24px, auto;
}

/* 产品中心（全站只有它用 .pl-hero）：文字与搜索框都居中，标题字号与市场一致 */
.pl-hero { text-align: center; }
.pl-hero .pl-hero-title { font-size: 34px; font-weight: 800; letter-spacing: 2.5px; }
.pl-hero .pl-hero-sub { margin-left: auto; margin-right: auto; }

/* 页头居中修饰类：文字、副标题、面包屑、搜索框一起居中 */
.page-hero-center { text-align: center; }
.page-hero-center .pl-hero-sub { margin-left: auto; margin-right: auto; }
.page-hero-center .market-search { margin-left: auto; margin-right: auto; }

/* ================= 源码市场 · 商品详情页 /market/{id}（版式与产品中心详情页一致） ================= */
/* Hero 按钮行旁边的状态提示（未登录 / 未购买 / 已购买），产品页没有这个元素，单独补一条 */
.ppbt-actions-tip { align-self: center; font-size: 13.5px; color: #9aa7b5; }

/* ================= 在线 SSH（/ssh） ================= */
.ssh-hero { background: linear-gradient(180deg, #f2f7ff, #fff); border-bottom: 1px solid #e9eff8; padding: 42px 0 34px; }
.ssh-hero-inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.ssh-hero-title { margin: 0; font-size: 30px; font-weight: 800; color: #16213a; letter-spacing: 1px; }
.ssh-hero-sub { margin: 10px 0 0; font-size: 14.5px; color: #6b7b93; }
.ssh-add-btn { padding: 11px 22px; font-size: 14.5px; }
.ssh-section { padding: 34px 0 64px; background: #fff; }

.ssh-card { border: 1px solid #e6ecf5; border-radius: 14px; overflow: hidden; box-shadow: 0 10px 30px rgba(55, 99, 170, .06); }
.ssh-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.ssh-table thead th { background: #f7faff; color: #56647d; font-weight: 600; text-align: left; padding: 14px 16px; border-bottom: 1px solid #e6ecf5; white-space: nowrap; }
.ssh-table tbody td { padding: 14px 16px; border-bottom: 1px solid #eef3fa; color: #34435c; vertical-align: middle; }
.ssh-table tbody tr:last-child td { border-bottom: 0; }
.ssh-table tbody tr:hover { background: #fbfdff; }
.ssh-mono { font-family: Menlo, Consolas, "Courier New", monospace; color: #2b3441; }
.ssh-note { margin-top: 4px; font-size: 12.5px; color: #9aa7b5; }
.ssh-tag { display: inline-block; padding: 2px 10px; border-radius: 4px; font-size: 12.5px; background: #eef3fb; color: #55708f; }
.ssh-tag-own { background: #e8f2ff; color: #1677ff; }
.ssh-tag-share { background: #eaf9ef; color: #17a94e; }
.ssh-ops { white-space: nowrap; }
.ssh-ops .btn { margin-right: 6px; }
.ssh-ops .btn:last-child { margin-right: 0; }
.ssh-del { color: #e5484d; }
.ssh-tip { margin: 16px 2px 0; font-size: 13px; color: #9aa7b5; }

.ssh-empty { padding: 60px 20px 70px; text-align: center; border: 1px dashed #dbe6f5; border-radius: 14px; background: #fbfdff; }
.ssh-empty-ico { font-size: 40px; }
.ssh-empty h3 { margin: 14px 0 8px; font-size: 18px; color: #2b3441; }
.ssh-empty p { margin: 0 0 20px; font-size: 14px; color: #8494ab; }

.ssh-modal { width: 560px; }
.ssh-form { display: flex; flex-direction: column; gap: 14px; }
.ssh-form label { display: block; font-size: 13.5px; color: #56647d; }
.ssh-form label i { color: #e5484d; font-style: normal; }
.ssh-form input[type=text], .ssh-form input[type=password], .ssh-form input[type=number], .ssh-form select, .ssh-form textarea {
  width: 100%; margin-top: 6px; padding: 10px 12px; border: 1px solid #dbe3ef; border-radius: 6px;
  font-size: 14px; color: #2b3441; background: #fff; box-sizing: border-box; font-family: inherit;
}
.ssh-form textarea { resize: vertical; font-family: Menlo, Consolas, monospace; font-size: 12.5px; }
.ssh-form input:focus, .ssh-form select:focus, .ssh-form textarea:focus { outline: none; border-color: #1677ff; box-shadow: 0 0 0 3px rgba(22, 119, 255, .12); }
.ssh-form-row { display: flex; gap: 14px; }
.ssh-form-row label { flex: 1; }
.ssh-form-row .ssh-col-port { flex: 0 0 120px; }
.ssh-check { display: flex !important; align-items: center; gap: 8px; }
.ssh-check input { width: auto; margin: 0; }

.ssh-toast { position: fixed; left: 50%; bottom: 60px; transform: translateX(-50%); z-index: 3000; padding: 11px 22px; border-radius: 8px;
  background: rgba(32, 40, 54, .92); color: #fff; font-size: 14px; box-shadow: 0 10px 26px rgba(0, 0, 0, .2); transition: opacity .35s; }
.ssh-toast.ok { background: rgba(22, 163, 74, .95); }
.ssh-toast.out { opacity: 0; }

/* WebSSH 终端：全屏深色 */
.ssh-term-mask { position: fixed; inset: 0; z-index: 2000; background: rgba(8, 12, 20, .72); display: flex; align-items: center; justify-content: center; padding: 24px; }
.ssh-term-mask[hidden] { display: none; }
.ssh-term { width: min(1180px, 96vw); height: min(720px, 88vh); display: flex; flex-direction: column; background: #0c0c0c; border-radius: 10px; overflow: hidden; box-shadow: 0 24px 60px rgba(0, 0, 0, .5); }
.ssh-term-bar { display: flex; align-items: center; gap: 10px; padding: 10px 14px; background: #1b1b1b; border-bottom: 1px solid #2b2b2b; color: #d4d4d4; font-size: 13.5px; }
.ssh-term-dot { width: 10px; height: 10px; border-radius: 50%; background: #3fb950; box-shadow: 0 0 8px rgba(63, 185, 80, .8); flex: 0 0 auto; }
.ssh-term-host { color: #8c8c8c; font-family: Menlo, Consolas, monospace; }
.ssh-term-status { margin-left: auto; color: #e3b341; }
.ssh-term-status.ok { color: #3fb950; }
.ssh-term-status.err { color: #f85149; }
.ssh-term-actions { display: flex; gap: 8px; margin-left: 12px; }
.ssh-term-btn { padding: 5px 12px; border: 1px solid #3e3e3e; border-radius: 5px; background: #262626; color: #d4d4d4; font-size: 12.5px; cursor: pointer; }
.ssh-term-btn:hover { background: #333; }
.ssh-term-close { border-color: #5b2b2b; color: #ff9a9a; }
.ssh-term-body { flex: 1; min-height: 0; padding: 8px 6px 6px 10px; background: #0c0c0c; }
.ssh-term-body .xterm { height: 100%; }

/* xterm.js 基础样式（对齐官方 xterm.css，避免额外加载一个样式文件） */
.xterm { position: relative; user-select: none; -ms-user-select: none; -webkit-user-select: none; cursor: text; }
.xterm.focus, .xterm:focus { outline: none; }
.xterm .xterm-helpers { position: absolute; top: 0; z-index: 5; }
.xterm .xterm-helper-textarea { position: absolute; opacity: 0; left: -9999em; top: 0; width: 0; height: 0; z-index: -5; white-space: nowrap; overflow: hidden; resize: none; }
.xterm .composition-view { background: #000; color: #fff; display: none; position: absolute; white-space: nowrap; z-index: 1; }
.xterm .composition-view.active { display: block; }
.xterm .xterm-viewport { background-color: #0c0c0c; overflow-y: scroll; cursor: default; position: absolute; right: 0; left: 0; top: 0; bottom: 0; }
.xterm .xterm-screen { position: relative; }
.xterm .xterm-screen canvas { position: absolute; left: 0; top: 0; }
.xterm .xterm-scroll-area { visibility: hidden; }
.xterm-char-measure-element { display: inline-block; visibility: hidden; position: absolute; top: 0; left: -9999em; line-height: normal; }
.xterm.enable-mouse-events { cursor: default; }
.xterm.xterm-cursor-pointer, .xterm .xterm-cursor-pointer { cursor: pointer; }
.xterm.column-select.focus { cursor: crosshair; }
.xterm .xterm-accessibility, .xterm .xterm-message { position: absolute; left: 0; top: 0; bottom: 0; right: 0; z-index: 10; color: transparent; }
.xterm .live-region { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.xterm-dim { opacity: .5; }
.xterm-underline { text-decoration: underline; }
.xterm-viewport::-webkit-scrollbar { width: 8px; }
.xterm-viewport::-webkit-scrollbar-thumb { background: #3a3a3a; border-radius: 4px; }

@media (max-width: 768px) {
  .ssh-form-row { flex-direction: column; gap: 14px; }
  .ssh-form-row .ssh-col-port { flex: 1; }
  .ssh-table thead { display: none; }
  .ssh-table tbody td { display: block; border-bottom: 0; padding: 6px 16px; }
  .ssh-table tbody tr { display: block; padding: 12px 0; border-bottom: 1px solid #eef3fa; }
  .ssh-term-mask { padding: 8px; }
  .ssh-term { width: 100%; height: 92vh; }
}

/* 源码市场详情：演示账号提示（跟在「查看演示 / 安装文档」按钮下面） */
.mk-demo-account { margin: 10px 0 0; font-size: 13.5px; color: #7b8aa1; }
.mk-demo-account b { color: #2b3441; }
