/* =================================================================
   金客 JINKE · v9 全站视觉统一层  (2026-10-27)
   仅做覆盖，不改原 style.css；删掉本文件引用即可完整回滚
   目标：统一圆角 / 阴影层次 / 描边粗细 / 交互反馈 / 排版节奏
   ================================================================= */

/* ---------------- 1. 基础 ---------------- */
body.kiosk{
  background:#f5f6f9!important;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
.kiosk ::selection{background:rgba(37,99,235,.14)}

/* 滚动条 */
html{scrollbar-width:thin;scrollbar-color:rgba(16,24,40,.18) transparent}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{
  background:rgba(16,24,40,.16);border-radius:10px;
  border:3px solid transparent;background-clip:content-box;
}
::-webkit-scrollbar-thumb:hover{background:rgba(16,24,40,.3);background-clip:content-box}

/* ---------------- 2. 顶栏 ---------------- */
.kiosk .topbar{
  background:rgba(255,255,255,.9)!important;
  -webkit-backdrop-filter:saturate(180%) blur(16px);
  backdrop-filter:saturate(180%) blur(16px);
  border-bottom:1px solid rgba(16,24,40,.06)!important;
  box-shadow:0 1px 2px rgba(16,24,40,.03),0 8px 24px -20px rgba(16,24,40,.2);
}
.kiosk .brand-badge{
  background:linear-gradient(155deg,#1d2839,#0a1120)!important;
  color:#e8c77d!important;
  font-family:Georgia,"Times New Roman",serif;
  border-radius:9px!important;
  letter-spacing:.02em;
  box-shadow:0 6px 16px -8px rgba(10,17,32,.9),inset 0 1px 0 rgba(255,255,255,.14);
}
.kiosk .brand-text{font-weight:800;letter-spacing:.005em}
.kiosk .nav a{position:relative;transition:color .18s}
.kiosk .nav a.on{color:#0b1220!important;font-weight:700}
.kiosk .nav a.on::after{
  content:"";position:absolute;left:50%;transform:translateX(-50%);
  bottom:-21px;width:18px;height:2px;border-radius:2px;background:#0b1220;
  opacity:.9;
}
.kiosk .top-actions .btn{
  border-radius:9px!important;font-weight:600;transition:transform .18s,box-shadow .18s,background .18s,border-color .18s;
}
.kiosk .top-actions .btn-primary{
  background:linear-gradient(140deg,#3b7bff,#2563eb)!important;
  border:none!important;color:#fff!important;
  box-shadow:0 8px 18px -10px rgba(37,99,235,.9);
}
.kiosk .top-actions .btn-primary:hover{
  transform:translateY(-1px);
  box-shadow:0 12px 24px -10px rgba(37,99,235,1);
}
.kiosk .top-actions .btn-ghost{
  background:#fff!important;border:1px solid #e6e9ef!important;color:#4b5563!important;
}
.kiosk .top-actions .btn-ghost:hover{
  border-color:#c9d7fb!important;color:#2563eb!important;background:#f7faff!important;
}

/* ---------------- 3. 页头：统一圆角深色卡 ---------------- */
.kiosk .page-head{
  position:relative;overflow:hidden;
  border-radius:20px!important;
  margin-top:20px!important;
  background:
    radial-gradient(105% 150% at 94% -42%,rgba(59,130,246,.5),transparent 58%),
    radial-gradient(76% 130% at 1% 134%,rgba(184,134,11,.26),transparent 62%),
    linear-gradient(114deg,#080e1a 0%,#101b30 54%,#0a1120 100%)!important;
  box-shadow:0 26px 58px -34px rgba(8,14,26,.85),inset 0 1px 0 rgba(255,255,255,.06)!important;
}
.kiosk .page-head::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:48px 48px;
  -webkit-mask-image:radial-gradient(70% 120% at 84% 40%,#000,transparent 74%);
  mask-image:radial-gradient(70% 120% at 84% 40%,#000,transparent 74%);
}
.kiosk .page-head::after{
  content:"";position:absolute;right:-110px;top:-130px;width:320px;height:320px;z-index:0;
  border-radius:50%;border:1px solid rgba(255,255,255,.07);
  box-shadow:0 0 0 44px rgba(255,255,255,.02),0 0 0 90px rgba(255,255,255,.014);
  pointer-events:none;
}
.kiosk .page-head>*{position:relative;z-index:2}

/* 页头标题排版 */
.kiosk .ph-title{letter-spacing:-.018em!important}
.kiosk .hero-kicker{
  font-size:10px!important;letter-spacing:.2em!important;
  color:#e8c77d!important;font-weight:700!important;
}
.kiosk .ph-sub{color:rgba(255,255,255,.58)!important;line-height:1.85!important}
/* 页头内统计块 */
.kiosk .signal-summary{
  background:rgba(255,255,255,.045)!important;
  border:1px solid rgba(255,255,255,.09)!important;
  border-radius:14px!important;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
}
.kiosk .ph-search input{
  border-radius:10px!important;
  background:rgba(255,255,255,.06)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  color:#fff!important;
  transition:.2s;
}
.kiosk .ph-search input::placeholder{color:rgba(255,255,255,.38)}
.kiosk .ph-search input:focus{
  background:rgba(255,255,255,.1)!important;
  border-color:rgba(120,170,255,.55)!important;
  box-shadow:0 0 0 3px rgba(59,130,246,.16)!important;
}

/* ---------------- 4. 卡片统一 ---------------- */
.kiosk .signal-card,
.kiosk .plan-card,
.kiosk .svc-card,
.kiosk .note-item,
.kiosk .rank-card{
  border-radius:16px!important;
  border:1px solid rgba(16,24,40,.055)!important;
  box-shadow:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.025)!important;
  transition:box-shadow .26s cubic-bezier(.4,0,.2,1),transform .26s cubic-bezier(.4,0,.2,1),border-color .26s!important;
}
.kiosk .signal-card:hover,
.kiosk .plan-card:hover,
.kiosk .svc-card:hover,
.kiosk .note-item:hover,
.kiosk .rank-card:hover{
  transform:translateY(-2px);
  border-color:rgba(16,24,40,.08)!important;
  box-shadow:0 1px 3px rgba(16,24,40,.05),0 18px 38px -20px rgba(16,24,40,.24)!important;
}
/* 深色强调卡（会员 B / VM 虚拟化）不套白边 */
.kiosk .plan-card.featured,
.kiosk .svc-card.featured{
  border-color:rgba(255,255,255,.08)!important;
  box-shadow:0 24px 48px -24px rgba(6,11,22,.9),inset 0 1px 0 rgba(255,255,255,.07)!important;
}
.kiosk .plan-card.featured:hover,
.kiosk .svc-card.featured:hover{
  box-shadow:0 30px 58px -24px rgba(6,11,22,.95),inset 0 1px 0 rgba(255,255,255,.09)!important;
}
/* 卡片内分隔线淡化 */
.kiosk .plan-list li,
.kiosk .svc-list li,
.kiosk .plan-card hr,
.kiosk .svc-card hr{
  border-color:rgba(16,24,40,.055)!important;
}
/* 卡片内按钮 */
.kiosk .plan-cta,
.kiosk .svc-btn,
.kiosk .signal-card .subscribe-btn{
  border-radius:10px!important;
  transition:transform .18s,box-shadow .18s,background .18s,border-color .18s,color .18s!important;
}
.kiosk .plan-cta:hover,
.kiosk .svc-btn:hover{transform:translateY(-1px)}

/* ---------------- 5. 排行榜表格 ---------------- */
.kiosk .rank-table-wrap{
  border-radius:16px!important;
  border:1px solid rgba(16,24,40,.055)!important;
  box-shadow:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.025)!important;
  overflow:auto!important;
}
.kiosk .rank-table thead th{
  background:linear-gradient(180deg,#141d2e,#0b1220)!important;
  color:rgba(255,255,255,.88)!important;
  font-weight:700!important;letter-spacing:.08em!important;
  border-bottom:1px solid rgba(255,255,255,.08)!important;
}
.kiosk .rank-table tbody td{border-bottom:1px solid rgba(16,24,40,.045)!important}
.kiosk .rank-table tbody tr:hover td{background:#f7f9fc!important}

/* ---------------- 6. 页脚 ---------------- */
.kiosk .bottom-bar{
  background:rgba(255,255,255,.92)!important;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-top:1px solid rgba(16,24,40,.06)!important;
  box-shadow:0 -1px 0 rgba(16,24,40,.02);
}
.kiosk .bottom-bar .bb-left b{letter-spacing:.01em}
.kiosk .bottom-bar .cs-i b{font-weight:700}

/* ---------------- 7. 细节 ---------------- */
/* 输入框聚焦统一 */
.kiosk input[type="text"]:focus,
.kiosk input[type="search"]:focus,
.kiosk textarea:focus{
  outline:none;
  border-color:#c9d7fb!important;
  box-shadow:0 0 0 3px rgba(37,99,235,.08)!important;
}
/* 数字等宽 */
.kiosk .price,.kiosk .ph-num,.kiosk .signal-summary b,.kiosk .rk-nums{font-variant-numeric:tabular-nums}
/* 图片卡片圆角 */
.kiosk .product-thumb,.kiosk .sm-cover{border-radius:14px 14px 0 0}

/* ---------------- 8. 移动端 ---------------- */
@media(max-width:880px){
  .kiosk .page-head{
    border-radius:16px!important;
    margin-top:14px!important;
    padding:22px 20px!important;
    height:auto!important;min-height:0!important;flex:0 0 auto!important;
  }
  .kiosk .page-head::after{display:none}
  .kiosk .ph-title{font-size:22px!important}
}

/* =================================================================
   v9b 细节补齐（2026-10-27）
   ================================================================= */

/* 卡片内按钮：统一圆角（原样式特异性较高，需强制） */
.kiosk .plan-cta,
.kiosk .svc-btn,
.kiosk .subscribe-btn,
.kiosk .signal-card button,
.kiosk .plan-card button,
.kiosk .svc-card button{
  border-radius:10px!important;
}

/* 列表虚线 → 浅实线 */
.kiosk .svc-list li,
.kiosk .plan-list li{
  border-bottom:1px solid rgba(16,24,40,.05)!important;
  border-top:none!important;
  padding-top:9px!important;padding-bottom:9px!important;
  color:#4b5563;
}
.kiosk .svc-card.featured .svc-list li,
.kiosk .plan-card.featured .plan-list li{
  border-bottom-color:rgba(255,255,255,.09)!important;
}
/* 列表前的短横线改成对勾点 */
.kiosk .svc-list li::before,
.kiosk .plan-list li::before{
  color:#b8860b!important;opacity:.85;
}

/* 信号页占位卡：降噪，做成设计预留位 */
.kiosk .signal-grid::after{
  content:"更多实盘信号陆续接入\A\A加微信 JINKE-FX 第一时间获取";
  white-space:pre-line;
  display:flex;align-items:center;justify-content:center;text-align:center;
  border:1px dashed rgba(16,24,40,.13)!important;
  border-radius:16px!important;
  background:
    radial-gradient(circle at 50% 42%,rgba(184,134,11,.05),transparent 58%),
    #fff!important;
  color:#98a0ad!important;
  font-size:12.5px!important;
  line-height:2!important;
  letter-spacing:.04em;
  min-height:220px;padding:30px;
}

/* 排行榜表格更透气 */
.kiosk .rank-table tbody td{
  padding:12px 14px!important;
  font-size:13px!important;
}
.kiosk .rank-table thead th{
  padding:12px 14px!important;
  font-size:11.5px!important;
}
.kiosk .rank-table tbody tr:last-child td{border-bottom:none!important}

/* 页脚内文字节奏 */
.kiosk .bottom-bar .bb-left span{letter-spacing:.02em}
.kiosk .bottom-bar .cs-time{
  font-size:10.5px!important;
  border:1px solid rgba(16,24,40,.07);
  border-radius:20px;padding:3px 11px;
  color:#8b93a1!important;background:#fafbfd;
}

/* 顶部标题（rank 等无 page-head 的页） */
.kiosk .rank-head{
  border-radius:16px;
}

/* =================================================================
   v9c 卡片阴影/圆角提升特异性（原样式含 .kiosk .signal-grid .signal-card 等长链）
   ================================================================= */
.kiosk .signal-grid .signal-card,
.kiosk .grid-zone .plan-card,
.kiosk .grid-zone .svc-card{
  border-radius:16px!important;
  border:1px solid rgba(16,24,40,.06)!important;
  box-shadow:0 1px 2px rgba(16,24,40,.045),0 1px 3px rgba(16,24,40,.03)!important;
  background-clip:padding-box;
}
.kiosk .signal-grid .signal-card:hover,
.kiosk .grid-zone .plan-card:hover,
.kiosk .grid-zone .svc-card:hover{
  transform:translateY(-2px);
  box-shadow:0 1px 3px rgba(16,24,40,.05),0 20px 40px -22px rgba(16,24,40,.26)!important;
}
.kiosk .grid-zone .plan-card.featured,
.kiosk .grid-zone .svc-card.featured{
  border-color:rgba(255,255,255,.09)!important;
  box-shadow:0 26px 52px -26px rgba(6,11,22,.92),inset 0 1px 0 rgba(255,255,255,.08)!important;
}
/* 信号卡内部结构随圆角裁切 */
.kiosk .signal-grid .signal-card{overflow:hidden}
/* 占位卡文字再柔化 */
.kiosk .signal-grid::after{color:#8b93a1!important}

/* =================================================================
   v9d 信号页：两列铺满，消除两侧空白
   ================================================================= */
.kiosk .signal-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  justify-content:stretch!important;
  gap:18px!important;
  max-width:1216px;
  margin:0 auto;
}
.kiosk .signal-grid .signal-card{
  box-shadow:0 2px 4px rgba(16,24,40,.05),0 12px 28px -16px rgba(16,24,40,.16)!important;
}
.kiosk .signal-grid .signal-card:hover{
  box-shadow:0 4px 8px rgba(16,24,40,.06),0 22px 44px -20px rgba(16,24,40,.26)!important;
}
@media(max-width:820px){
  .kiosk .signal-grid{grid-template-columns:1fr!important}
}

/* =================================================================
   v9e 信号页收尾：按钮圆角 + 占位卡空状态插画
   ================================================================= */
.kiosk .signal-grid .signal-card button,
.kiosk .signal-card .sub-btn,
.kiosk .signal-card .btn-sub{
  border-radius:10px!important;
  transition:transform .18s,box-shadow .18s,background .18s!important;
}
.kiosk .signal-grid .signal-card button:hover{transform:translateY(-1px)}

.kiosk .signal-grid::after{
  align-items:center!important;
  background:
    radial-gradient(circle at 50% 30%,transparent 0 33px,rgba(184,134,11,.16) 33px 34px,transparent 35px),
    radial-gradient(circle at 50% 30%,rgba(184,134,11,.055) 0 32px,transparent 33px),
    radial-gradient(circle at 50% 30%,rgba(184,134,11,.05) 0 52px,transparent 53px),
    #fff!important;
  padding:118px 40px 40px!important;
  line-height:2.1!important;
  color:#8b93a1!important;
}

/* v9f 信号卡内链接按钮圆角 */
.kiosk .signal-card a{border-radius:10px!important;transition:transform .18s,box-shadow .18s!important}
.kiosk .signal-card a:hover{transform:translateY(-1px)}

/* =================================================================
   v9g 移动端：页头从两列网格改为纵向堆叠，信号卡数字换行
   ================================================================= */
@media(max-width:900px){
  .kiosk .page-head{
    display:block!important;
    grid-template-columns:none!important;
    height:auto!important;min-height:0!important;flex:0 0 auto!important;
    padding:20px 18px!important;
    border-radius:16px!important;margin-top:14px!important;
  }
  .kiosk .page-head>*{width:100%!important;min-width:0!important}
  .kiosk .page-head::after{display:none}
  .kiosk .ph-left,.kiosk .ph-right{display:block!important}
  .kiosk .ph-title{font-size:22px!important;line-height:1.28!important;margin:6px 0 0!important}
  .kiosk .ph-sub{font-size:12px!important}
  .kiosk .hero-kicker{
    font-size:9px!important;letter-spacing:.13em!important;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;
  }
  .kiosk .ph-right{margin-top:18px!important}
  .kiosk .ph-search{display:flex!important;gap:8px!important;width:100%!important}
  .kiosk .ph-search input{flex:1!important;width:auto!important;min-width:0!important}
  .kiosk .ph-search button{flex:0 0 auto}
  .kiosk .signal-summary{
    display:grid!important;grid-template-columns:1fr 1fr!important;
    gap:12px 10px!important;margin-top:14px!important;padding:14px!important;
    border-radius:12px!important;
  }
  .kiosk .signal-summary>div{min-width:0}
  .kiosk .signal-summary b{font-size:18px!important;white-space:nowrap}
  /* 页头内通用统计组（社群/加密/智控台） */
  .kiosk .page-head [class*="stat"],
  .kiosk .page-head [class*="metrics"]{min-width:0}
}
@media(max-width:560px){
  .kiosk .signal-metrics{
    display:grid!important;grid-template-columns:1fr 1fr!important;
    gap:12px 10px!important;
  }
  .kiosk .signal-metrics .sm-metric:nth-child(3){grid-column:1/-1}
  .kiosk .signal-metrics .sm-metric b{font-size:19px!important;white-space:nowrap}
  .kiosk .signal-metrics .sig-range{display:block!important;margin-top:2px}
  .kiosk .signal-foot{flex-wrap:wrap;gap:8px}
  .kiosk .signal-foot .sub-btn{margin-left:auto!important}
}

/* =================================================================
   v9h 移动端：多列卡片与页头事实条改单列/两列
   ================================================================= */
@media(max-width:900px){
  /* 社群/加密/智控台 多列卡片 → 单列 */
  .kiosk .plan-grid,
  .kiosk .svc-grid,
  .kiosk .svc-grid.cols-3,
  .kiosk .plan-zone .plan-grid{
    grid-template-columns:1fr!important;
    gap:14px!important;
    height:auto!important;min-height:0!important;
  }
  /* 页头事实条（社群 2/1/7×24/10%）→ 2×2 */
  .kiosk .ph-right.cm-facts,
  .kiosk .cm-facts{
    display:grid!important;grid-template-columns:1fr 1fr!important;
    gap:16px 12px!important;margin-top:17px!important;width:100%!important;
  }
  .kiosk .cm-facts .sf{
    width:auto!important;padding:0!important;
    border-left:none!important;border-right:none!important;
  }
  .kiosk .cm-facts .sf b{font-size:20px!important}
  .kiosk .cm-facts .sf span{font-size:10.5px!important}

  /* 页头内其他统计组通用兜底 */
  .kiosk .page-head .ph-right{display:grid!important;grid-template-columns:1fr 1fr!important;gap:14px 10px!important}
  .kiosk .page-head .ph-right .signal-summary{grid-column:1/-1!important}
  .kiosk .page-head .ph-right .ph-search{grid-column:1/-1!important}
}
@media(max-width:600px){
  .kiosk .plan-card,.kiosk .svc-card{padding:22px 18px 18px!important}
  .kiosk .plan-name,.kiosk .svc-card h3{font-size:17px!important;white-space:normal!important}
  .kiosk .plan-price{font-size:30px!important}
}

/* =================================================================
   v9i 移动端顶栏压缩 + 列表符号统一
   ================================================================= */
@media(max-width:768px){
  .kiosk .tb-inner{padding:0 12px!important;gap:9px!important}
  .kiosk .brand{gap:8px!important}
  .kiosk .brand-tag{display:none!important}
  .kiosk .brand-text{font-size:15px!important}
  .kiosk .brand-text em{display:none!important}
  .kiosk .brand-badge{width:32px!important;height:32px!important;font-size:12px!important;border-radius:8px!important}
  .kiosk .top-actions{gap:5px!important;flex:0 0 auto}
  .kiosk .top-actions .btn{
    padding:6px 9px!important;font-size:10.5px!important;
    border-radius:7px!important;white-space:nowrap!important;letter-spacing:0;
  }
}
/* 列表符号：短横 → 对勾 */
.kiosk .svc-list li::before,
.kiosk .plan-list li::before{
  content:"✓"!important;
  font-size:11px!important;
  color:#b8860b!important;
  margin-right:8px;
  opacity:.95;
}

/* =================================================================
   v9j 修正列表符号：恢复"CSS 绘制"的对勾/短横，避免字符符号错位
   ================================================================= */
.kiosk .plan-list li::before{
  content:""!important;
  position:absolute!important;left:2px!important;top:21px!important;
  width:9px!important;height:5px!important;
  border-left:1.6px solid #2563eb!important;
  border-bottom:1.6px solid #2563eb!important;
  border-radius:0!important;
  transform:rotate(-45deg)!important;
  background:none!important;
  opacity:1!important;
}
.kiosk .plan-card.featured .plan-list li::before{
  border-color:#e8c77d!important;
}
.kiosk .svc-list li::before{
  content:""!important;
  position:absolute!important;left:0!important;top:50%!important;
  width:9px!important;height:2px!important;border-radius:2px!important;
  background:#c3cbd9!important;
  transform:translateY(-50%)!important;
}
.kiosk .svc-card.featured .svc-list li::before{background:rgba(232,199,125,.55)!important}
/* 分隔线再淡一档 */
.kiosk .svc-list li{border-bottom-color:rgba(16,24,40,.045)!important}
.kiosk .plan-list li{border-bottom-color:rgba(16,24,40,.045)!important}

/* =================================================================
   v9k · 顶栏 sticky 修复 (2026-10-27)
   #stage 上残留的 overflow:hidden/auto 会建立滚动上下文，
   使 position:sticky 相对 #stage 而非视口 → 顶栏跟着页面滚走。
   长滚动模式下 #stage 只是普通块容器，放开 overflow 即可恢复吸顶。
   ================================================================= */
body.kiosk #stage{overflow:visible!important}

/* 真正的元凶：style.css 里 html,body{overflow-x:hidden} 会把 body 变成滚动容器，
   sticky 于是相对 body 计算而失效。overflow-x:clip 同样裁切横向溢出，但不建立滚动容器。 */
html{overflow-x:clip!important}
body{overflow-x:clip!important;overflow-y:visible!important}
body.kiosk{overflow-x:clip!important;overflow-y:visible!important}

/* 顶栏当前页下划线：原 bottom:-21px 是为 58px 旧顶栏写的，64px 下会跑出顶栏外 */
.kiosk .nav a.on{color:#0b1220!important;border-bottom-color:transparent!important}
.kiosk .nav a.on::after{bottom:5px!important;width:16px!important;height:2px!important;background:#2563eb!important}

/* 社群页教程条：整块可点，指向教程页对应章节 */
.kiosk a.note-item{text-decoration:none!important;color:inherit!important;cursor:pointer}
.kiosk a.note-item:hover b{color:#2563eb!important}
.kiosk a.note-item:hover i{color:#2563eb!important}
.kiosk .note-cta a.cs-i{text-decoration:none!important;cursor:pointer}
.kiosk .note-cta a.cs-i:hover b{color:#2563eb}

/* 个别页（console-demo）内联样式把顶栏改回 relative，这里统一钉住 */
.kiosk .topbar{position:sticky!important;top:0!important;z-index:60!important;
  background:rgba(255,255,255,.965)!important}

/* 首页（eh 版式）顶栏原本没有吸顶，一并补上 */
.eh-top{position:sticky!important;top:0;z-index:60;background:rgba(255,255,255,.975)!important;
  -webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid rgba(16,24,40,.06);box-shadow:0 1px 2px rgba(16,24,40,.03)}
body:not(.kiosk) section[id]{scroll-margin-top:92px}

/* 吸顶后页头与内容的滚动锚点偏移，避免锚点定位被顶栏压住 */
.kiosk section[id],.kiosk .tw-art{scroll-margin-top:84px}

/* =================================================================
   v10 · 策略卡改版（对齐参考图：图上标题 / 元信息行 / 两行描述 /
   作者行 / 双按钮），类名前缀 pc- 与旧 product-* 结构解耦
   ================================================================= */
.product-grid{gap:20px!important}

.product-card.pc{
  background:#fff;border:1px solid rgba(16,24,40,.07);border-radius:12px;
  overflow:hidden;display:flex;flex-direction:column;
  box-shadow:0 1px 2px rgba(16,24,40,.04);
  transition:box-shadow .24s,transform .24s,border-color .24s;
}
.product-card.pc:hover{
  transform:translateY(-3px);border-color:rgba(16,24,40,.1);
  box-shadow:0 18px 36px -20px rgba(16,24,40,.3);
}

/* 封面 */
.product-card.pc .pc-thumb{position:relative;flex:0 0 auto;aspect-ratio:16/9;overflow:hidden;background:#0d1526}
.product-card.pc .pc-thumb .product-img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .55s cubic-bezier(.4,0,.2,1);
}
.product-card.pc:hover .pc-thumb .product-img{transform:scale(1.045)}
.product-card.pc .pc-thumb::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(5,10,20,.34) 0%,rgba(5,10,20,0) 30%,
             rgba(5,10,20,.10) 58%,rgba(5,10,20,.88) 100%);
}

/* 角标 */
.product-card.pc .pc-badge{
  position:absolute;left:9px;top:9px;z-index:3;line-height:1.5;
  font-size:10.5px;font-weight:700;letter-spacing:.05em;
  padding:3px 8px;border-radius:5px;white-space:nowrap;
}
.product-card.pc .pc-badge.member{
  background:linear-gradient(135deg,#fbdfa0,#e8a91b);color:#5d3300;
  box-shadow:0 3px 10px -4px rgba(180,120,0,.75),inset 0 1px 0 rgba(255,255,255,.5);
}
.product-card.pc .pc-badge.normal{background:#16a34a;color:#fff;box-shadow:0 3px 10px -5px rgba(22,163,74,.9)}
.product-card.pc .pc-shield{
  position:absolute;right:9px;top:9px;z-index:3;
  font-size:10px;letter-spacing:.02em;padding:3px 7px;border-radius:5px;
  background:rgba(8,14,26,.52);color:rgba(255,255,255,.94);
  border:1px solid rgba(255,255,255,.16);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
}
.product-card.pc .pc-imgs{
  position:absolute;right:9px;top:36px;z-index:3;
  font-size:10px;padding:3px 7px;border-radius:5px;
  background:rgba(8,14,26,.52);color:rgba(255,255,255,.9);
  border:1px solid rgba(255,255,255,.14);
}

/* 图上标题 */
.product-card.pc .pc-cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:24px 11px 9px}
.product-card.pc .pc-name{
  font-size:14.5px;font-weight:700;line-height:1.36;color:#fff;letter-spacing:-.004em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  text-shadow:0 1px 8px rgba(0,0,0,.6),0 0 2px rgba(0,0,0,.4);
}
.product-card.pc .pc-sub{
  margin-top:5px;font-size:10.5px;color:rgba(255,255,255,.74);letter-spacing:.01em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  text-shadow:0 1px 6px rgba(0,0,0,.5);
}

/* 卡片正文 */
.product-card.pc .pc-body{display:flex;flex-direction:column;flex:1 1 auto;padding:11px 12px 12px;gap:8px}
.product-card.pc .pc-meta{display:flex;align-items:center;gap:7px;font-size:11.5px;color:#7b8794;letter-spacing:.02em}
.product-card.pc .pc-sep{width:1px;height:10px;background:#cfd6e0;flex:0 0 1px}
.product-card.pc .pc-price{
  margin-left:auto;font-size:13px;font-weight:800;letter-spacing:0;
  color:#2563eb;font-variant-numeric:tabular-nums;
}
.product-card.pc .pc-price.free{color:#16a34a}
.product-card.pc .pc-price.vip{color:#b45309;font-size:11.5px;font-weight:700}
.product-card.pc .pc-desc{
  margin:0;min-height:39px;font-size:11.5px;line-height:1.72;color:#8b95a3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.product-card.pc .pc-author{display:flex;align-items:center;gap:6px;font-size:11px;color:#9aa4b2;min-width:0}
.product-card.pc .pc-author i{
  width:16px;height:16px;border-radius:50%;flex:0 0 16px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.4);
}
.product-card.pc .pc-author b{
  font-size:11.5px;font-weight:600;color:#4b5563;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;
}
.product-card.pc .pc-author span{white-space:nowrap;font-size:10.5px;color:#a7b0bd}

/* 双按钮 */
.product-card.pc .pc-acts{display:grid;grid-template-columns:1fr 1.6fr;gap:8px;margin-top:auto;padding-top:1px}
.product-card.pc .pc-btn{
  height:32px;border-radius:7px;font-family:inherit;font-size:12px;font-weight:600;
  letter-spacing:.02em;cursor:pointer;border:1px solid transparent;
  transition:background .18s,border-color .18s,color .18s,box-shadow .18s,transform .18s;
}
.product-card.pc .pc-btn.ghost{background:#fff;color:#6b7280;border-color:#e5e7eb}
.product-card.pc .pc-btn.ghost:hover{color:#374151;border-color:#d1d5db;background:#fafbfc}
.product-card.pc .pc-btn.ghost.locked{background:#fff8e9;color:#b45309;border-color:#f6e3bd;cursor:pointer}
.product-card.pc .pc-btn.ghost.locked:hover{background:#fdf1d8;border-color:#efd9ad}
.product-card.pc .pc-btn.primary{
  background:linear-gradient(140deg,#3b7bff,#2563eb);color:#fff;
  box-shadow:0 8px 16px -10px rgba(37,99,235,.95);
}
.product-card.pc .pc-btn.primary:hover{background:linear-gradient(140deg,#2f6df5,#1d4ed8);transform:translateY(-1px)}

@media(max-width:900px){
  .product-card.pc .pc-name{font-size:13.5px}
  .product-card.pc .pc-acts{grid-template-columns:1fr 1.4fr}
  .product-card.pc .pc-btn{height:30px;font-size:11.5px}
}

/* =================================================================
   v11 · 策略卡 v2（对齐参考图：整幅封面 + Free 角标 / 标签行 + 价格
   / 大标题 / 三行简介 / 作者行 / 指标条 + 查看详情）
   悬停：该卡放大并浮起，封面上滑出「运行数据」层
   ================================================================= */
.product-grid{gap:22px!important}

.dcard{
  position:relative;z-index:1;display:flex;flex-direction:column;
  background:#fff;border:1px solid rgba(15,23,42,.075);border-radius:14px;
  overflow:hidden;box-shadow:0 1px 2px rgba(15,23,42,.045);
  transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s,border-color .3s;
  transform-origin:50% 50%;
}
@media(hover:hover){
  .dcard:hover{
    transform:translateY(-2px) scale(1.038);z-index:40;
    border-color:rgba(37,99,235,.26);
    box-shadow:0 30px 60px -26px rgba(15,23,42,.42),0 2px 6px rgba(15,23,42,.06);
  }
}

/* 封面 */
.dcard .dc-hero{position:relative;flex:0 0 auto;aspect-ratio:16/9;overflow:hidden;background:#0e1726}
.dcard .dc-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.22,1,.36,1)}
@media(hover:hover){
  .dcard:hover .dc-img{transform:scale(1.07)}
  .dcard:hover .dc-flag{opacity:0;transform:translateY(-4px)}
}
.dcard .dc-flag{transition:opacity .2s,transform .2s}

.dcard .dc-flag{
  position:absolute;right:10px;top:10px;z-index:3;line-height:1.5;
  font-size:11px;font-weight:700;letter-spacing:.01em;padding:2px 9px;border-radius:999px;
  background:#fff;box-shadow:0 2px 10px rgba(15,23,42,.22);
}
.dcard .dc-flag.free{color:#16a34a}
.dcard .dc-flag.paid{color:#2563eb}
.dcard .dc-flag.vip{color:#7c3f00;background:linear-gradient(135deg,#ffeec2,#f5c04a)}
.dcard .dc-imgs{
  position:absolute;left:10px;top:10px;z-index:3;display:inline-flex;align-items:center;gap:3px;
  font-size:10px;padding:2px 7px;border-radius:999px;color:rgba(255,255,255,.92);
  background:rgba(9,15,28,.5);border:1px solid rgba(255,255,255,.16);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
}
.dcard .dc-imgs svg{width:10px;height:10px;stroke-width:2}

/* 悬停层：运行数据 + 快捷按钮 */
.dcard .dc-zoom{
  position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;justify-content:flex-end;gap:7px;
  padding:12px 12px 11px;opacity:0;visibility:hidden;transform:translateY(10px);
  background:linear-gradient(180deg,rgba(9,15,28,.34) 0%,rgba(9,15,28,.82) 58%,rgba(9,15,28,.93) 100%);
  -webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);
  transition:opacity .26s ease,transform .3s cubic-bezier(.22,1,.36,1),visibility .26s;
}
@media(hover:hover){.dcard:hover .dc-zoom{opacity:1;visibility:visible;transform:translateY(0)}}
.dcard .dc-zlb{font-size:9px;letter-spacing:.16em;color:rgba(255,255,255,.48);font-weight:600}
.dcard .dc-zgrid{display:grid;grid-template-columns:1fr 1fr;gap:5px 10px}
.dcard .dc-zgrid>div{display:flex;flex-direction:column;gap:0;min-width:0}
.dcard .dc-zgrid b{
  font-size:15px;font-weight:800;line-height:1.22;color:#fff;letter-spacing:-.01em;
  font-variant-numeric:tabular-nums;white-space:nowrap;
}
.dcard .dc-zgrid b.up{color:#ff9d9d}
.dcard .dc-zgrid b.dn{color:#68dfa3}
.dcard .dc-zgrid span{font-size:9.5px;color:rgba(255,255,255,.52);white-space:nowrap}
.dcard .dc-zacts{display:grid;grid-template-columns:1.35fr 1fr;gap:6px;margin-top:2px}
.dcard .dc-btn,.dc-sheet .dc-btn{
  height:28px;border-radius:7px;border:1px solid transparent;font-family:inherit;
  font-size:11.5px;font-weight:600;letter-spacing:.01em;cursor:pointer;
  transition:background .18s,border-color .18s,color .18s,transform .18s;
}
.dcard .dc-btn.primary,.dc-sheet .dc-btn.primary{
  background:linear-gradient(140deg,#3b7bff,#2563eb);color:#fff;
  box-shadow:0 8px 16px -10px rgba(37,99,235,.95);
}
.dcard .dc-btn.primary:hover,.dc-sheet .dc-btn.primary:hover{background:linear-gradient(140deg,#2f6df5,#1d4ed8)}
.dcard .dc-btn.ghost{
  background:rgba(255,255,255,.12);color:rgba(255,255,255,.94);border-color:rgba(255,255,255,.3);
}
.dcard .dc-btn.ghost:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.45)}

/* 正文 */
.dcard .dc-body{display:flex;flex-direction:column;gap:8px;flex:1 1 auto;padding:12px 14px 11px}
.dcard .dc-tags{display:flex;align-items:center;gap:8px;overflow:hidden;flex-wrap:nowrap}
.dcard .dc-tagw{display:flex;align-items:center;gap:6px;flex:1 1 auto;min-width:0;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,#000 90%,rgba(0,0,0,0) 100%);
  mask-image:linear-gradient(90deg,#000 90%,rgba(0,0,0,0) 100%)}
/* 卡片窄时限制标签数量，避免切半 */
.dcard .dc-tagw .dc-tag:nth-of-type(n+4){display:none}
.dcard .dc-tag{
  flex:0 0 auto;font-size:11px;line-height:1.62;color:#6b7280;
  background:#f4f5f7;border:1px solid #edeff2;border-radius:6px;padding:1px 7px;white-space:nowrap;
}
.dcard .dc-price{
  margin-left:auto;flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;
  font-size:11.5px;font-weight:700;color:#2563eb;white-space:nowrap;
}
.dcard .dc-price.vip{color:#b45309}
.dcard .dc-price i{
  position:relative;width:13px;height:13px;border-radius:50%;
  border:1.7px solid currentColor;display:inline-block;
}
.dcard .dc-price i::after{
  content:"";position:absolute;left:50%;top:50%;width:1.7px;height:7.5px;
  background:currentColor;border-radius:1px;transform:translate(-50%,-50%) rotate(45deg);
}
.dcard .dc-title{
  margin:0;font-size:15px;line-height:1.42;font-weight:700;color:#111827;letter-spacing:-.005em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  min-height:2.84em;
}
.dcard .dc-desc{
  margin:0;font-size:12.5px;line-height:1.74;color:#8b95a3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  min-height:3.48em;
}
.dcard .dc-author{display:flex;align-items:center;gap:9px;margin-top:auto;padding-top:2px;min-width:0}
.dcard .dc-author>i{
  flex:0 0 34px;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:13px;font-weight:700;font-style:normal;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.28),0 0 0 1px rgba(15,23,42,.05);
}
.dcard .dc-au-t{display:flex;flex-direction:column;gap:1px;min-width:0}
.dcard .dc-au-t b{
  font-size:12.5px;font-weight:700;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.dcard .dc-au-t span{font-size:10.5px;color:#a3adba;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 底部指标条 */
.dcard .dc-foot{
  display:flex;align-items:center;gap:6px;padding:9px 12px;
  border-top:1px solid #f1f3f6;background:#fbfcfd;
}
.dcard .dc-stats{display:flex;align-items:center;gap:4px;min-width:0;overflow:hidden;flex:1 1 auto}
.dcard .dc-stats>span{
  display:inline-flex;align-items:center;gap:3px;flex:0 0 auto;
  font-size:9.5px;letter-spacing:-.01em;color:#8b95a3;background:#f3f5f8;border-radius:5px;
  padding:3px 5px;white-space:nowrap;
}
.dcard .dc-stats svg{width:10px;height:10px;stroke-width:2.1;opacity:.85;flex:0 0 auto}
.dcard .dc-more{
  margin-left:auto;flex:0 0 auto;height:28px;padding:0 11px;border:0;border-radius:8px;
  background:linear-gradient(140deg,#3b7bff,#2563eb);color:#fff;font-family:inherit;
  font-size:11.5px;font-weight:700;letter-spacing:.02em;cursor:pointer;
  box-shadow:0 8px 16px -10px rgba(37,99,235,.95);transition:background .18s,transform .18s;
}
.dcard .dc-more:hover{background:linear-gradient(140deg,#2f6df5,#1d4ed8);transform:translateY(-1px)}

/* 详情弹层 */
.dc-sheet-mask{
  position:fixed;inset:0;z-index:9990;display:flex;align-items:center;justify-content:center;padding:20px;
  background:rgba(8,12,22,.56);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
  opacity:0;transition:opacity .2s ease;
}
.dc-sheet-mask.on{opacity:1}
.dc-sheet{
  width:min(560px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:16px;
  box-shadow:0 40px 90px -32px rgba(2,6,23,.62);transform:translateY(14px) scale(.985);
  transition:transform .26s cubic-bezier(.22,1,.36,1);
}
.dc-sheet-mask.on .dc-sheet{transform:none}
.dc-sheet-hd{position:relative;aspect-ratio:16/7;overflow:hidden;background:#0e1726}
.dc-sheet-hd img{width:100%;height:100%;object-fit:cover;display:block}
.dc-sheet-x{
  position:absolute;right:10px;top:10px;z-index:3;width:28px;height:28px;border-radius:50%;border:0;
  background:rgba(9,15,28,.55);color:#fff;font-size:12px;cursor:pointer;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .18s;
}
.dc-sheet-x:hover{background:rgba(9,15,28,.8)}
.dc-sheet-bd{padding:14px 16px 4px;display:flex;flex-direction:column;gap:9px}
.dc-sheet-ttl{margin:0;font-size:17px;line-height:1.42;font-weight:800;color:#111827;letter-spacing:-.01em}
.dc-mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.dc-sheet .dc-m{background:#f7f9fc;border:1px solid #eef1f5;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:1px}
.dc-sheet .dc-m b{font-size:16px;font-weight:800;color:#111827;font-variant-numeric:tabular-nums;line-height:1.2}
.dc-sheet .dc-m b.up{color:#dc2626}
.dc-sheet .dc-m b.dn{color:#16a34a}
.dc-sheet .dc-m span{font-size:10px;color:#9aa4b2}
.dc-sheet-desc{margin:0;font-size:13px;line-height:1.8;color:#6b7280}
.dc-sheet-ft{display:grid;grid-template-columns:1fr 1.6fr;gap:8px;padding:12px 16px 16px}
.dc-sheet .dc-btn{height:38px;border-radius:9px;font-size:12.5px}
.dc-sheet .dc-btn.ghost{background:#fff;color:#6b7280;border-color:#e5e7eb}
.dc-sheet .dc-btn.ghost:hover{background:#fafbfc;border-color:#d1d5db;color:#374151}

@media(max-width:1180px){
  .dcard .dc-title{font-size:14px}
  .dcard .dc-desc{font-size:12px}
}
@media(max-width:900px){
  .dcard .dc-tagw .dc-tag:nth-of-type(4){display:inline-block}

}
@media(max-width:560px){
  .product-grid{gap:14px!important}
  .dcard .dc-tagw .dc-tag:nth-of-type(4),.dcard .dc-tagw .dc-tag:nth-of-type(5){display:inline-block}
  .dcard .dc-hero{aspect-ratio:16/8}
  .dcard .dc-title{font-size:15px;min-height:0}
  .dcard .dc-desc{font-size:12.5px;-webkit-line-clamp:3;min-height:0}
}
@media(prefers-reduced-motion:reduce){
  .dcard,.dcard .dc-zoom,.dc-sheet{transition:none!important}
}

/* 详情弹层：标签行 / 作者行复用卡片视觉 */
.dc-sheet .dc-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.dc-sheet .dc-tag{
  flex:0 0 auto;font-size:11px;line-height:1.62;color:#6b7280;
  background:#f4f5f7;border:1px solid #edeff2;border-radius:6px;padding:1px 8px;white-space:nowrap;
}
.dc-sheet .dc-author{display:flex;align-items:center;gap:9px;min-width:0;margin-top:2px}
.dc-sheet .dc-author>i{
  flex:0 0 34px;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:13px;font-weight:700;font-style:normal;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.28),0 0 0 1px rgba(15,23,42,.05);
}
.dc-sheet .dc-au-t{display:flex;flex-direction:column;gap:1px;min-width:0}
.dc-sheet .dc-au-t b{font-size:12.5px;font-weight:700;color:#374151}
.dc-sheet .dc-au-t span{font-size:10.5px;color:#a3adba}

/* 市场区块空状态 */
.dc-empty{
  grid-column:1/-1;padding:44px 16px;text-align:center;font-size:13px;color:#9aa4b2;
  background:#fbfcfd;border:1px dashed #e3e8ef;border-radius:14px;
}
