/* 金客策略库 · 整站横屏宽幅 */
:root{
  --bg:#f7f8fa;
  --white:#fff;
  --text:#1a2233;
  --muted:#64748b;
  --border:#e2e8f0;
  --navy:#0f172a;
  --navy-2:#1e293b;
  --blue:#2563eb;
  --blue-2:#3b82f6;
  --blue-deep:#1e40af;
  --blue-ink:#0b1220;
  --blue-soft:#eef2ff;
  --red:#dc2626;
  --green:#16a34a;
  --shadow:0 1px 3px rgba(15,23,42,.06), 0 8px 24px rgba(15,23,42,.05);
  --shadow-sm:0 1px 2px rgba(15,23,42,.05);
  --radius:8px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"PingFang SC","Microsoft YaHei","Segoe UI",system-ui,sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
  min-width:1180px;
}
a{color:inherit;text-decoration:none}
.wrap{width:min(1800px,calc(100% - 72px));margin:0 auto}

/* ============ 顶部深色 Banner（横幅） ============ */
.banner{
  position:relative;height:280px;overflow:hidden;
  background:var(--navy);
}
.hero-banner{
  height:auto;min-height:560px;padding:64px 0;
  background:
    radial-gradient(ellipse 80% 120% at 85% 20%, rgba(37,99,235,.18), transparent 55%),
    linear-gradient(135deg,#0f172a 0%,#1e293b 55%,#0f172a 100%);
}
.hero-banner::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(90deg, rgba(15,23,42,.4) 0%, transparent 40%),
    radial-gradient(ellipse 1px 100% at 20% 0%, rgba(148,163,184,.08), transparent 40%);
  pointer-events:none;
}
.hero-rays,.hero-coins,.banner-candles{display:none}
.banner-bg{
  position:absolute;inset:0;
  background:
    repeating-linear-gradient(90deg, transparent, transparent 47px, rgba(148,163,184,.04) 47px, rgba(148,163,184,.04) 48px),
    repeating-linear-gradient(0deg, transparent, transparent 47px, rgba(148,163,184,.03) 47px, rgba(148,163,184,.03) 48px);
}
.banner-content{
  position:relative;z-index:2;
  width:min(1800px,calc(100% - 72px));margin:0 auto;
  height:100%;
  display:flex;flex-direction:column;justify-content:center;gap:8px;
}
/* 首页 hero 专用两栏 */
.hero-content{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,400px);gap:clamp(32px,4vw,64px);align-items:center;
  height:auto;
}
.banner-left{padding-top:0}
.banner-content h1{
  margin:0;font-size:44px;font-weight:700;color:#fff;letter-spacing:.08em;
}
.banner-count{
  margin:10px 0 0;font-size:15px;color:rgba(255,255,255,.62);letter-spacing:.12em;
}
.banner-search{
  margin-top:22px;display:flex;gap:10px;max-width:480px;
}
.banner-search input{
  flex:1;padding:13px 18px;border:1px solid rgba(255,255,255,.18);border-radius:6px;
  background:rgba(255,255,255,.06);color:#fff;font-size:14px;
}
.banner-search input::placeholder{color:rgba(255,255,255,.42)}
.banner-search input:focus{outline:none;border-color:var(--blue-2)}
.banner-search button{
  padding:13px 26px;border:1px solid var(--blue);background:var(--blue);color:#fff;
  border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:.15s;
}
.banner-search button:hover{background:var(--blue-2);border-color:var(--blue-2)}
/* Hero 品牌 */
.hero-brand{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.hero-brand-badge{
  width:58px;height:58px;border-radius:4px;display:grid;place-items:center;
  background:var(--blue);
  color:#fff;font-family:Georgia,serif;font-size:21px;font-weight:700;
}
.hero-brand-name{font-size:34px;font-weight:700;color:#fff;letter-spacing:.06em}
.hero-brand-name em{font-style:normal;color:#93b4f8;font-family:Georgia,serif;font-size:22px;margin-left:6px;font-weight:400}
.hero-brand-tag{
  font-size:11px;letter-spacing:.22em;color:#93b4f8;
  border:1px solid rgba(147,180,248,.35);padding:5px 16px;border-radius:3px;font-weight:500;
}
/* Hero 广告语 */
.hero-slogan{
  margin:0 0 14px;font-size:clamp(30px,3vw,46px);font-weight:700;
  color:#fff;letter-spacing:.06em;line-height:1.25;
}
.hero-sub{
  margin:0 0 30px;font-size:16px;color:rgba(255,255,255,.65);letter-spacing:.08em;
  padding-left:16px;border-left:2px solid var(--blue);
}
/* 黄金外盘价格 —— 静态网格 */
.hero-ticker{
  margin-top:24px;position:relative;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(148,163,184,.16);border-radius:6px;
  padding:0;overflow:hidden;
}
.ticker-grid{
  display:grid;grid-template-columns:repeat(5,1fr);gap:0;
}
.ticker-item{
  display:flex;flex-direction:column;gap:8px;align-items:flex-start;
  padding:20px clamp(14px,1.4vw,26px);
  border-right:1px solid rgba(148,163,184,.14);
  transition:background .2s ease;
}
.ticker-item:last-child{border-right:0}
.ticker-item:hover{background:rgba(255,255,255,.05)}
.tk-sym{
  font-size:clamp(10px,.85vw,12px);font-weight:700;letter-spacing:.16em;
  color:#93b4f8;
}
.tk-name{font-size:11px;color:rgba(255,255,255,.45);letter-spacing:.08em;margin-top:-4px}
.tk-px{
  font-family:"DIN Alternate","Arial Black",Georgia,serif;
  font-size:clamp(19px,1.55vw,29px);font-weight:700;letter-spacing:.02em;
  color:#fff;
  font-variant-numeric:tabular-nums;
}
.tk-chg{
  font-size:clamp(10px,.8vw,11px);font-weight:600;padding:1px 6px;border-radius:3px;
  font-variant-numeric:tabular-nums;letter-spacing:.04em;
}
.tk-chg.up{color:#4ade80;background:rgba(74,222,128,.1)}
.tk-chg.down{color:#f87171;background:rgba(248,113,113,.1)}
.tk-chg.flash-up{animation:flashUp .5s ease-out}
.tk-chg.flash-down{animation:flashDown .5s ease-out}
@keyframes flashUp{0%{transform:scale(1.1);filter:brightness(1.5)}100%{transform:scale(1);filter:brightness(1)}}
@keyframes flashDown{0%{transform:scale(1.1);filter:brightness(1.5)}100%{transform:scale(1);filter:brightness(1)}}
.tk-px.tick{animation:pxTick .45s ease-out}
@keyframes pxTick{0%{opacity:.55}100%{opacity:1}}
/* 天数计数器 —— 商务简约 */
.hero-counter{margin-top:30px;display:flex;align-items:center;gap:40px;flex-wrap:wrap}
.counter-box{
  position:relative;padding:0 44px 0 0;
  border-right:1px solid rgba(148,163,184,.22);
  display:flex;flex-wrap:wrap;align-items:flex-end;gap:0 12px;
}
.counter-label{font-size:13px;color:rgba(255,255,255,.55);letter-spacing:.18em;font-weight:500;width:100%;order:-1;margin-bottom:10px}
.counter-num{
  font-family:"DIN Alternate","Arial Black",Georgia,serif;
  font-size:clamp(38px,4vw,58px);font-weight:700;line-height:1;letter-spacing:.02em;
  color:#fff;
  font-variant-numeric:tabular-nums;
}
.counter-unit{
  font-size:15px;color:#93b4f8;font-weight:600;letter-spacing:.22em;
  margin-bottom:10px;
}
.counter-sub{display:flex;flex-direction:column;gap:8px}
.counter-sub span{
  font-size:14px;color:rgba(255,255,255,.62);letter-spacing:.04em;
}
.counter-sub b{color:#93b4f8;font-variant-numeric:tabular-nums;font-weight:700}
/* 右侧业务范围 + 联系方式 */
.hero-side{display:flex;flex-direction:column;gap:24px;align-self:center}
.side-block{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(148,163,184,.16);border-radius:6px;
  padding:24px 26px;
}
.side-title{display:flex;align-items:center;gap:8px;margin-bottom:16px;font-size:12px;font-weight:700;color:#93b4f8;letter-spacing:.2em;text-transform:uppercase}
.side-title .st-ico{
  display:none;
}
.side-title::after{
  content:"";flex:1;height:1px;background:rgba(148,163,184,.18);
}
.biz-list,.contact-list{list-style:none;margin:0;padding:0}
.biz-list li{
  font-size:14px;color:rgba(255,255,255,.72);padding:9px 0 9px 14px;
  position:relative;letter-spacing:.03em;border-bottom:1px solid rgba(148,163,184,.1);
}
.biz-list li:last-child{border-bottom:0}
.biz-list li::before{
  content:"";position:absolute;left:0;top:50%;width:3px;height:3px;
  border-radius:50%;transform:translateY(-50%);
  background:#93b4f8;
}
.contact-list li{
  display:flex;align-items:center;gap:14px;padding:9px 0;
  border-bottom:1px solid rgba(148,163,184,.1);
}
.contact-list li:last-child{border-bottom:0}
.contact-list .ck{
  flex-shrink:0;font-size:11px;color:rgba(255,255,255,.5);letter-spacing:.12em;font-weight:500;min-width:62px;
}
.contact-list b{font-size:14px;color:#fff;font-weight:600;letter-spacing:.02em;font-variant-numeric:tabular-nums}

/* ============ 顶部导航（横幅条） ============ */
.topbar{
  position:sticky;top:0;z-index:50;
  background:var(--white);
  border-bottom:1px solid var(--border);
}
.topbar-inner{display:flex;align-items:center;gap:32px;height:68px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;flex-shrink:0}
.brand-badge{
  width:40px;height:40px;border-radius:4px;display:grid;place-items:center;
  background:var(--navy);
  color:#fff;font-family:Georgia,serif;font-size:15px;font-weight:800;letter-spacing:.04em;
}
.brand-text{font-size:18px}
.brand-text em{font-style:normal;color:var(--blue);font-family:Georgia,serif;font-size:13px;margin-left:2px}
.nav{display:flex;gap:34px;flex:1}
.nav a{color:var(--muted);font-size:15px;padding:10px 0;border-bottom:2px solid transparent;white-space:nowrap}
.nav a:hover{color:var(--text);border-color:var(--border)}
.nav a.on{color:var(--navy);border-color:var(--navy);font-weight:700}
.top-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.nav-toggle{display:none;background:none;border:1px solid var(--border);border-radius:4px;padding:6px 10px;cursor:pointer}

/* buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  border-radius:6px;padding:11px 24px;font-size:14px;font-weight:600;cursor:pointer;
  border:1px solid transparent;transition:.15s;white-space:nowrap;letter-spacing:.02em;
}
.btn-primary{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-primary:hover{background:var(--navy-2);border-color:var(--navy-2);color:#fff}
.btn-ghost{background:var(--white);border-color:var(--border);color:var(--text)}
.btn-ghost:hover{border-color:var(--navy-2);color:var(--navy)}

/* ============ 横幅数据条 ============ */
.stats-bar{
  background:var(--white);border-bottom:1px solid var(--border);padding:40px 0;
}
.stats-inner{display:grid;grid-template-columns:repeat(6,1fr);gap:0}
.stats-inner > *{min-width:0}
.stat-item{text-align:center;padding:14px 12px;position:relative}
.stat-item + .stat-item::before{
  content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:var(--border);
}
.stat-item .k{font-size:13px;color:var(--muted);display:block;letter-spacing:.18em}
.stat-item .v{font-size:clamp(26px,2.4vw,46px);font-weight:700;font-variant-numeric:tabular-nums;display:block;margin-top:8px;color:var(--navy);line-height:1.15}
.stat-item .v.up{color:var(--green)}
.stat-item .v.down{color:var(--red)}
.stat-item .v.gold{color:var(--blue)}

/* ============ 策略库主体（横幅布局） ============ */
.market-section{padding:56px 0 72px}
.market-layout{display:grid;grid-template-columns:288px 1fr;gap:40px;align-items:start}

/* 左侧筛选 */
.filter-sidebar{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:30px 26px;position:sticky;top:80px}
.filter-sidebar h3{margin:0 0 24px;font-size:20px;font-weight:700;letter-spacing:.1em;padding-bottom:16px;border-bottom:1px solid var(--border)}
.filter-group{margin-bottom:26px}
.filter-label{font-size:13px;color:var(--muted);margin-bottom:10px;letter-spacing:.14em}
.filter-sidebar select{
  width:100%;padding:13px 14px;border:1px solid var(--border);border-radius:6px;
  font-size:15px;color:var(--text);background:var(--white);
}
.cat-list{display:grid;gap:4px}
.cat-item{
  padding:13px 14px;border-radius:6px;cursor:pointer;font-size:15px;color:var(--muted);
  display:flex;justify-content:space-between;align-items:center;
}
.cat-item:hover{background:#f0f0f0;color:var(--text)}
.cat-item.on{background:var(--blue-soft);color:var(--navy);font-weight:700}
.cat-item .count{font-size:11px;opacity:.7}
.price-filters{display:grid;gap:6px}
.price-filters button{
  background:var(--white);border:1px solid var(--border);color:var(--muted);
  border-radius:6px;padding:7px 10px;cursor:pointer;font-size:12px;text-align:left;
}
.price-filters button:hover{border-color:var(--blue);color:var(--blue)}
.price-filters button.on{background:var(--blue-soft);color:var(--navy);border-color:var(--navy-2);font-weight:700}

/* 工具栏 */
.market-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;gap:20px}
.search-box{flex:1;max-width:680px}
#searchInput{
  width:100%;padding:16px 22px;border:1px solid var(--border);border-radius:8px;font-size:16px;
}
#searchInput:focus{outline:none;border-color:var(--navy-2)}
#searchInput::placeholder{color:#9aa6b6}
.result-count{
  font-size:14px;color:var(--muted);letter-spacing:.06em;white-space:nowrap;
  padding-right:8px;margin-left:auto;
}
.sort-box{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted)}
.sort-box select{
  padding:15px 22px;border:1px solid var(--border);border-radius:8px;font-size:15px;background:var(--white);
}

/* ============ 商品网格（横屏卡片） ============ */
.product-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:28px;
}
.product-card{
  background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;
  transition:border-color .18s, box-shadow .18s;cursor:pointer;
}
.product-card:hover{
  border-color:#c7d2e3;box-shadow:var(--shadow);
}
.product-img{
  width:100%;aspect-ratio:16/10;object-fit:cover;display:block;background:#e8ecf1;
}
.product-body{padding:20px 22px 24px}
.product-name{
  font-size:16px;font-weight:600;color:var(--text);margin:0 0 12px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  min-height:46px;line-height:1.45;
}
.product-meta{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px;
}
.ver-tag{
  font-size:11px;font-weight:700;padding:4px 11px;letter-spacing:.06em;
  border:1px solid transparent;
}
.ver-tag.normal{color:var(--navy-2);background:#f1f5f9;border-color:var(--border)}
.ver-tag.member{color:#fff;background:var(--navy);border-color:var(--navy)}
.product-byline{font-size:13px;color:var(--muted)}
.product-actions{display:flex;gap:10px;margin-top:10px}
.product-actions .btn-buy{
  flex:1;border-radius:6px;padding:13px 0;font-size:14px;font-weight:700;
  cursor:pointer;letter-spacing:.06em;transition:.15s;
}
.btn-buy.dl{
  background:var(--navy);color:#fff;border:1px solid var(--navy);
}
.btn-buy.dl:hover{background:var(--navy-2);border-color:var(--navy-2)}
.btn-buy.vip{
  background:var(--white);color:var(--navy);border:1px solid var(--border);
}
.btn-buy.vip:hover{border-color:var(--navy-2);color:var(--navy-2)}
.btn-buy.vip.locked{
  background:#f4f6f8;color:#94a3b8;border-color:var(--border);cursor:not-allowed;
}
.btn-buy.vip.locked:hover{border-color:var(--border);color:#94a3b8}
.dl-hint{
  margin-top:14px;font-size:12px;color:var(--muted);letter-spacing:.02em;
  display:flex;align-items:center;gap:7px;
}
.dl-hint i{width:4px;height:4px;background:var(--blue);display:inline-block}

/* ============ 信号监控（横幅卡片行） ============ */
.signal-section{background:var(--white);padding:64px 0;border-top:1px solid var(--border)}
.sec-kicker{
  display:inline-block;font-size:12px;letter-spacing:.34em;color:var(--blue);
  font-weight:600;margin-bottom:14px;
}
.sec-head{text-align:center;margin-bottom:44px}
.sec-head h2{margin:0;font-size:clamp(30px,3vw,44px);font-weight:700;letter-spacing:.1em;color:var(--navy)}
.sec-head h2::after{
  content:"";display:block;width:56px;height:3px;background:var(--blue);margin:18px auto 0;
}
.sec-head p{margin:16px 0 0;font-size:16px;color:var(--muted);letter-spacing:.04em}
.signal-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px}
.sm-item{background:#fafafa;border:1px solid var(--border);border-radius:var(--radius);padding:22px}
.sm-item .k{color:var(--muted);font-size:12px;display:block;letter-spacing:.12em}
.sm-item .v{font-size:30px;font-weight:700;font-variant-numeric:tabular-nums;display:block;margin-top:6px}
.sm-item .v.up{color:var(--green)}
.sm-item .v.down{color:var(--red)}
.signal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.signal-card{
  background:#fafafa;border:1px solid var(--border);border-radius:var(--radius);padding:16px;
}
.signal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}
.signal-head h4{margin:0;font-size:14px}
.signal-head .broker{color:var(--muted);font-size:11px;margin-top:2px}
.signal-status{
  display:inline-flex;align-items:center;gap:5px;font-size:10px;
  background:#e8f8ee;color:var(--green);border:1px solid #b8e6c8;
  border-radius:4px;padding:2px 8px;white-space:nowrap;
}
.signal-status i{width:6px;height:6px;border-radius:50%;background:var(--green);animation:pulse 1.5s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.signal-status.warn{background:var(--blue-soft);color:var(--blue-deep);border-color:#c7d2fe}
.signal-status.warn i{background:var(--blue)}
.signal-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px}
.sm-metric{background:var(--white);border-radius:6px;padding:8px 4px;text-align:center}
.sm-metric span{display:block;color:var(--muted);font-size:10px}
.sm-metric b{display:block;font-size:14px;font-variant-numeric:tabular-nums}
.sm-metric b.up{color:var(--green)}
.sm-metric b.down{color:var(--red)}
.signal-chart{height:48px;background:var(--white);border-radius:6px;margin-bottom:10px;overflow:hidden}
.signal-chart svg{width:100%;height:100%}
.signal-positions{margin-bottom:10px}
.signal-positions h5{margin:0 0 5px;font-size:11px;color:var(--muted)}
.update-time{font-size:10px;color:var(--muted);font-weight:400;margin-left:4px}
.pos-row{
  display:flex;justify-content:space-between;align-items:center;
  background:var(--white);border-radius:5px;padding:5px 8px;font-size:11px;margin-bottom:4px;
}
.pos-row .sym{font-weight:700}
.pos-row .dir{padding:1px 5px;border-radius:4px;font-size:10px;font-weight:700}
.pos-row .dir.buy{background:#e8f8ee;color:var(--green)}
.pos-row .dir.sell{background:#fde8e8;color:var(--red)}
.pos-row .pl{font-variant-numeric:tabular-nums}
.pos-row .pl.up{color:var(--green)}
.pos-row .pl.down{color:var(--red)}
.pos-row .vol{padding:1px 5px;border-radius:4px;font-size:10px;font-weight:700;background:#eef2ff;color:#3730a3;font-variant-numeric:tabular-nums}
.signal-foot{display:flex;justify-content:space-between;align-items:center}
.signal-foot .sub-btn{
  background:var(--white);border:1px solid var(--blue);color:var(--blue);
  border-radius:6px;padding:6px 12px;font-size:11px;font-weight:700;cursor:pointer;
}
.signal-foot .sub-btn:hover{background:var(--blue);color:#fff}
.muted{font-size:10px;color:var(--muted)}

/* ============ 聊天频道（横幅布局） ============ */
.chat-section{padding:32px 0}
.chat-layout{display:grid;grid-template-columns:200px 1fr 200px;gap:12px;height:440px}
.channel-sidebar{
  background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:14px;
  display:flex;flex-direction:column;
}
.channel-sidebar h3{margin:0 0 8px;font-size:13px;font-weight:700}
.channel-list{display:grid;gap:2px;overflow-y:auto;flex:1}
.channel-item{
  padding:8px 10px;border-radius:6px;cursor:pointer;font-size:12px;color:var(--muted);
  display:flex;justify-content:space-between;align-items:center;
}
.channel-item:hover{background:#f0f0f0;color:var(--text)}
.channel-item.on{background:var(--blue-soft);color:var(--navy);font-weight:700}
.channel-item .unread{
  background:var(--red);color:#fff;font-size:10px;padding:1px 5px;border-radius:3px;
}
.online-sidebar{
  background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:14px;
  display:flex;flex-direction:column;
}
.online-sidebar h3{margin:0 0 8px;font-size:13px;font-weight:700}
.online-list{display:grid;gap:5px;overflow-y:auto;flex:1}
.online-user{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted)}
.online-user .av{
  width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
  font-size:9px;font-weight:700;color:#fff;flex-shrink:0;
}
.online-user .st{width:6px;height:6px;border-radius:50%;background:var(--green);margin-left:auto}
.chat-main{
  background:var(--white);border:1px solid var(--border);border-radius:var(--radius);
  display:flex;flex-direction:column;overflow:hidden;
}
.chat-header{
  display:flex;justify-content:space-between;align-items:center;
  padding:10px 14px;border-bottom:1px solid var(--border);
}
.chat-title{font-size:13px;font-weight:700;color:var(--navy)}
.chat-count{font-size:11px;color:var(--muted)}
.chat-messages{
  flex:1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:8px;
}
.msg{display:flex;gap:8px;max-width:80%}
.msg .av{
  width:26px;height:26px;border-radius:50%;display:grid;place-items:center;
  font-size:10px;font-weight:700;color:#fff;flex-shrink:0;
}
.msg .bubble{background:#f5f5f5;border-radius:8px;padding:7px 11px}
.msg .sender{font-size:10px;color:var(--muted);margin-bottom:2px;font-weight:700}
.msg .text{font-size:12px;color:var(--text);line-height:1.5}
.msg .time{font-size:9px;color:var(--muted);margin-top:2px}
.msg.self{margin-left:auto;flex-direction:row-reverse}
.msg.self .bubble{background:var(--blue-soft)}
.msg.self .sender{text-align:right}
.chat-input{
  display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--border);
}
#chatMsg{
  flex:1;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-size:12px;
}
#chatMsg:focus{outline:none;border-color:var(--blue)}

/* ============ 发布策略（横幅双栏） ============ */
.publish-section{background:var(--white);padding:32px 0;border-top:1px solid var(--border)}
.publish-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}
.panel{
  background:#fafafa;border:1px solid var(--border);border-radius:var(--radius);padding:20px;
}
.panel h3{margin:0 0 14px;font-size:15px;font-weight:700}
.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.form-grid label,.wide{display:grid;gap:4px;font-size:12px;color:var(--muted)}
.form-grid input,.form-grid select,.wide textarea{
  padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px;color:var(--text);
  background:var(--white);resize:vertical;
}
.wide{margin:10px 0}
.btn-row{display:flex;gap:10px;margin-top:12px}
.steps{margin:0;padding-left:18px;font-size:13px;color:var(--muted);line-height:2}

/* ============ 底部（横幅条） ============ */
.contact-bar{
  background:var(--navy);
  color:#fff;padding:64px 0;position:relative;
}
.contact-bar::before{
  content:"";position:absolute;inset:0;
  border-top:1px solid rgba(255,255,255,.08);
}
.contact-inner{
  position:relative;z-index:2;
  display:grid;grid-template-columns:1.35fr 1fr;gap:64px;align-items:center;
}
.cb-title{font-size:clamp(26px,2.6vw,38px);font-weight:700;letter-spacing:.08em;margin-bottom:16px}
.cb-title::after{
  content:"";display:block;width:52px;height:3px;background:var(--blue-2);margin-top:18px;
}
.cb-sub{font-size:15px;color:rgba(255,255,255,.7);letter-spacing:.04em;line-height:1.9}
.cb-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.cb-tag{
  font-size:13px;color:rgba(255,255,255,.8);background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);padding:8px 18px;letter-spacing:.08em;
}
.cb-contact{gap:2px}
.cb-contact .ck{
  background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);color:rgba(255,255,255,.65);
}
.cb-contact b{color:#fff;font-size:16px}

.footer{
  background:#0b1220;color:rgba(255,255,255,.6);padding:40px 0;font-size:14px;
  border-top:1px solid rgba(255,255,255,.06);
}
.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.footer b{color:#fff;font-size:17px;font-weight:600;letter-spacing:.06em}
.footer p{margin:4px 0 0;font-size:12px}
.footer-links{display:flex;gap:32px}
.footer-links a{color:rgba(255,255,255,.55)}
.footer-links a:hover{color:#fff}
.footer-meta{text-align:right;font-size:11px}
.footer-contact{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.fc-item{
  display:inline-flex;align-items:center;gap:7px;
  font-size:12px;color:rgba(255,255,255,.7);
}
.fc-item .ck{
  font-size:10px;color:rgba(255,255,255,.55);background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);padding:1px 7px;letter-spacing:.06em;
}
.fc-item b{color:#fff;font-size:13px;font-weight:600;letter-spacing:.02em}

/* toast */
.toast-wrap{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:8px;z-index:999}
.toast{
  background:#222;color:#fff;border-radius:10px;padding:12px 18px;
  box-shadow:0 6px 20px rgba(0,0,0,.25);display:flex;flex-direction:column;gap:2px;
  animation:slideIn .25s ease;
}
.toast b{font-size:13px}
.toast span{font-size:12px;opacity:.8}
@keyframes slideIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* ============ 响应式（保持横屏比例） ============ */
@media(max-width:1600px){
  .product-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:1180px){
  body{min-width:auto}
  .product-grid{grid-template-columns:repeat(3,1fr)}
  .signal-grid{grid-template-columns:repeat(2,1fr)}
  .chat-layout{grid-template-columns:180px 1fr}
  .online-sidebar{display:none}
}
@media(max-width:800px){
  .market-layout{grid-template-columns:1fr}
  .sec-head h2{font-size:32px}
  .hero-slogan{font-size:32px}
  .product-grid{grid-template-columns:repeat(2,1fr)}
  .signal-grid{grid-template-columns:1fr}
  .signal-summary{grid-template-columns:1fr 1fr}
  .chat-layout{grid-template-columns:1fr;height:auto}
  .publish-grid{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr 1fr}
  .nav{display:none}
  .nav.open{display:flex;position:absolute;top:56px;left:0;right:0;background:#fff;flex-direction:column;padding:12px 16px;border-bottom:1px solid var(--border)}
  .nav-toggle{display:block}
  .banner-content h1{font-size:30px}
  .banner{height:140px}
}

/* ================================================================
   v3 · 大气重构（2026-10-25）
   结构：Hero 通栏 + 深色数据条 + 3 列大卡 + 社群区
   ================================================================ */

:root{
  --ink:#0b1220;
  --ink-2:#111c33;
  --line:#e8ecf3;
  --paper:#fbfcfe;
}
body{background:var(--paper)}

/* ---------- HERO ---------- */
.hero-banner{
  height:auto;min-height:0;padding:0;display:block;
  background:
    radial-gradient(ellipse 55% 75% at 82% 26%, rgba(37,99,235,.26), transparent 62%),
    radial-gradient(ellipse 45% 60% at 8% 92%, rgba(37,99,235,.10), transparent 60%),
    linear-gradient(158deg,#0a101c 0%,#131f38 48%,#080d17 100%);
}
.hero-wrap{
  position:relative;z-index:2;
  width:min(1800px,calc(100% - 72px));margin:0 auto;
  padding:52px 0 72px;
  display:flex;flex-direction:column;
}
.hero-brand{display:flex;align-items:center;gap:18px;margin:0 0 64px}
.hero-brand-badge{
  width:56px;height:56px;border-radius:6px;display:grid;place-items:center;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;font-family:Georgia,serif;font-size:21px;font-weight:700;letter-spacing:.04em;
}
.hero-brand-name{font-size:30px;font-weight:700;color:#fff;letter-spacing:.1em}
.hero-brand-name em{
  font-style:normal;color:rgba(255,255,255,.5);font-family:Georgia,serif;
  font-size:17px;margin-left:10px;font-weight:400;letter-spacing:.14em;
}
.hero-brand-tag{
  font-size:10px;letter-spacing:.3em;color:rgba(255,255,255,.42);
  padding:6px 14px;border:1px solid rgba(255,255,255,.16);border-radius:2px;font-weight:500;
}

.hero-main{
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,430px);
  gap:clamp(48px,6vw,110px);align-items:end;
}
.hero-kicker{
  margin:0 0 26px;font-size:11px;letter-spacing:.42em;
  color:#6f9bf0;font-weight:600;text-transform:uppercase;
}
.hero-slogan{
  margin:0;font-size:clamp(44px,4.6vw,78px);font-weight:700;
  line-height:1.06;letter-spacing:.02em;color:#fff;
}
.hero-slogan em{display:block;font-style:normal;color:#7ea6f5}
.hero-sub{
  margin:34px 0 0;padding:0;border:0;max-width:600px;
  font-size:16px;line-height:1.95;color:rgba(255,255,255,.58);letter-spacing:.03em;
}
.hero-cta{display:flex;gap:14px;margin-top:46px;flex-wrap:wrap}
.btn-hero{
  display:inline-flex;align-items:center;justify-content:center;
  padding:17px 44px;font-size:15px;font-weight:600;letter-spacing:.1em;
  border-radius:3px;transition:.18s;
}
.btn-hero.solid{background:#fff;color:#0b1220;border:1px solid #fff}
.btn-hero.solid:hover{background:#e7eeff;border-color:#e7eeff}
.btn-hero.line{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.28)}
.btn-hero.line:hover{border-color:rgba(255,255,255,.7);background:rgba(255,255,255,.05)}

.hero-right{
  display:flex;flex-direction:column;
  padding-left:clamp(28px,3vw,56px);
  border-left:1px solid rgba(255,255,255,.12);
}
.hstat{padding:24px 0;border-bottom:1px solid rgba(255,255,255,.09)}
.hstat:first-child{padding-top:0}
.hstat b{
  display:block;font-size:clamp(32px,2.6vw,44px);font-weight:700;color:#fff;
  font-variant-numeric:tabular-nums;line-height:1;letter-spacing:.01em;
}
.hstat span{
  display:block;margin-top:10px;font-size:12px;
  color:rgba(255,255,255,.42);letter-spacing:.16em;
}
.hero-biz{list-style:none;margin:0;padding:26px 0 0;display:grid;gap:11px}
.hero-biz li{
  position:relative;padding-left:20px;font-size:13px;
  color:rgba(255,255,255,.6);letter-spacing:.04em;
}
.hero-biz li::before{
  content:"";position:absolute;left:0;top:9px;width:10px;height:1px;background:#4b7ce0;
}

/* 行情通栏 */
.hero-ticker-bar{
  position:relative;z-index:2;
  border-top:1px solid rgba(255,255,255,.1);
  background:rgba(0,0,0,.22);
}
.ticker-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0}
.ticker-item{
  display:flex;flex-direction:column;gap:7px;
  padding:26px clamp(16px,2vw,36px);
  border-right:1px solid rgba(255,255,255,.07);
  transition:background .2s;
}
.ticker-item:last-child{border-right:0}
.ticker-item:hover{background:rgba(255,255,255,.03)}
.tk-sym{font-size:11px;font-weight:600;letter-spacing:.24em;color:#7ea6f5}
.tk-px{
  font-family:"DIN Alternate","Arial Black",Georgia,serif;
  font-size:clamp(20px,1.6vw,30px);font-weight:700;color:#fff;
  font-variant-numeric:tabular-nums;letter-spacing:.01em;line-height:1.1;
}
.tk-name{font-size:11px;color:rgba(255,255,255,.32);letter-spacing:.12em}
.tk-chg{
  align-self:flex-start;font-size:11px;font-weight:600;
  padding:2px 8px;border-radius:2px;letter-spacing:.06em;
  font-variant-numeric:tabular-nums;
}

/* ---------- 数据条（深色延续） ---------- */
.stats-bar{
  background:#0b1220;border-bottom:1px solid rgba(255,255,255,.08);
  padding:0;
}
.stats-inner{display:grid;grid-template-columns:repeat(6,1fr);gap:0}
.stats-inner > *{min-width:0}
.stat-item{
  position:relative;text-align:left;padding:42px 0 42px clamp(16px,2vw,40px);
}
.stat-item:first-child{padding-left:0}
.stat-item + .stat-item::before{
  content:"";position:absolute;left:0;top:32%;bottom:32%;width:1px;
  background:rgba(255,255,255,.1);
}
.stat-item .k{
  font-size:11px;color:rgba(255,255,255,.4);display:block;letter-spacing:.22em;
}
.stat-item .v{
  font-size:clamp(26px,2.3vw,40px);font-weight:700;color:#fff;
  font-variant-numeric:tabular-nums;display:block;margin-top:12px;line-height:1;
}
.stat-item .v.up{color:#f05252}
.stat-item .v.down{color:#22c55e}
.stat-item .v.gold{color:#fff}

/* ---------- 策略库 ---------- */
.market-section{padding:104px 0 120px}
.sec-head{
  display:flex;justify-content:space-between;align-items:flex-end;gap:48px;
  text-align:left;margin-bottom:56px;padding-bottom:30px;
  border-bottom:1px solid var(--line);
}
.sec-kicker{
  display:block;font-size:11px;letter-spacing:.42em;color:#2563eb;
  font-weight:600;margin-bottom:16px;text-transform:uppercase;
}
.sec-kicker.light{color:#7ea6f5}
.sec-head h2{
  margin:0;font-size:clamp(34px,3.2vw,54px);font-weight:700;
  letter-spacing:.06em;color:var(--ink);line-height:1;
}
.sec-head h2::after{display:none}
.sec-head-desc{
  margin:0 0 8px;font-size:15px;color:var(--muted);
  letter-spacing:.04em;text-align:right;line-height:1.8;
}

.market-layout{display:grid;grid-template-columns:270px 1fr;gap:56px;align-items:start}
.filter-sidebar{
  background:transparent;border:0;border-radius:0;padding:0;
  position:sticky;top:104px;
}
.filter-sidebar h3{
  margin:0 0 32px;padding:0 0 16px;font-size:12px;font-weight:600;
  letter-spacing:.34em;color:var(--muted);text-transform:uppercase;
  border-bottom:1px solid var(--line);
}
.filter-group{margin-bottom:36px}
.filter-label{
  font-size:11px;color:#94a3b8;margin-bottom:14px;letter-spacing:.24em;
  text-transform:uppercase;
}
.filter-sidebar select{
  width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:3px;
  font-size:14px;color:var(--text);background:#fff;
}
.cat-list{display:grid;gap:0}
.cat-item{
  padding:13px 0;border-radius:0;cursor:pointer;font-size:14px;color:var(--muted);
  display:flex;justify-content:space-between;align-items:center;
  border-bottom:1px solid var(--line);letter-spacing:.02em;
  transition:color .15s,padding .15s;
}
.cat-item:hover{background:none;color:var(--ink);padding-left:8px}
.cat-item.on{
  background:none;color:var(--ink);font-weight:700;
  border-bottom-color:var(--ink);padding-left:8px;
}
.cat-item .count{font-size:11px;opacity:.6}

.market-toolbar{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:36px;gap:24px;
}
.search-box{flex:1;max-width:720px}
#searchInput{
  width:100%;padding:17px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;
  font-size:16px;background:transparent;
}
#searchInput:focus{outline:none;border-bottom-color:var(--ink)}
#searchInput::placeholder{color:#a8b3c4}
.result-count{font-size:13px;color:#94a3b8;letter-spacing:.06em;white-space:nowrap}
.sort-box{display:flex;align-items:center;gap:12px;font-size:13px;color:#94a3b8}
.sort-box select{
  padding:12px 16px;border:1px solid var(--line);border-radius:3px;
  font-size:13px;background:#fff;color:var(--text);
}

.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 32px}
.product-card{
  background:transparent;border:0;border-radius:0;overflow:visible;
  transition:none;
}
.product-card:hover{border-color:transparent;box-shadow:none}
.product-img{
  width:100%;aspect-ratio:16/10;object-fit:cover;display:block;
  background:#0f172a;border-radius:3px;
  transition:transform .4s ease;
}
.product-card:hover .product-img{transform:translateY(-4px)}
.product-body{padding:20px 0 0}
.product-name{
  font-size:17px;font-weight:600;color:var(--ink);margin:0 0 14px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  min-height:48px;line-height:1.45;letter-spacing:.01em;
}
.product-meta{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px;
}
.ver-tag{
  font-size:10px;font-weight:700;padding:4px 10px;letter-spacing:.16em;
  border-radius:2px;border:1px solid transparent;text-transform:uppercase;
}
/* 缩略图上的叠层标题（非 kiosk 页面同样生效） */
.product-thumb{position:relative;overflow:hidden;border-radius:3px;background:#0f172a}
.product-thumb .ver-tag{position:absolute;top:12px;left:12px;z-index:2}
.thumb-meta{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:38px 16px 14px;
  background:linear-gradient(180deg,rgba(6,11,20,0) 0%,rgba(6,11,20,.72) 46%,rgba(6,11,20,.92) 100%);
}
.product-thumb .thumb-meta .product-name{
  margin:0 0 4px;min-height:0;font-size:15px;font-weight:700;line-height:1.35;
  color:#fff;letter-spacing:.01em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.product-thumb .thumb-meta .product-byline{font-size:11.5px;color:rgba(255,255,255,.72);letter-spacing:.04em}
.ver-tag.normal{color:#475569;background:#f1f5f9;border-color:var(--line)}
.ver-tag.member{color:#fff;background:var(--ink);border-color:var(--ink)}
.product-byline{font-size:12px;color:#94a3b8;letter-spacing:.04em}
.product-actions{display:flex;gap:10px;margin-top:0}
.product-actions .btn-buy{
  flex:1;border-radius:3px;padding:14px 0;font-size:13px;font-weight:600;
  cursor:pointer;letter-spacing:.12em;transition:.15s;
}
.btn-buy.dl{background:var(--ink);color:#fff;border:1px solid var(--ink)}
.btn-buy.dl:hover{background:#1c2b47;border-color:#1c2b47}
.btn-buy.vip{background:#fff;color:var(--ink);border:1px solid var(--line)}
.btn-buy.vip:hover{border-color:var(--ink)}
.btn-buy.vip.locked{background:#f8fafc;color:#b0bac9;border-color:var(--line);cursor:not-allowed}
.btn-buy.vip.locked:hover{border-color:var(--line);color:#b0bac9}
.dl-hint{
  margin-top:16px;font-size:11px;color:#94a3b8;letter-spacing:.06em;
  display:flex;align-items:center;gap:8px;
}
.dl-hint i{width:4px;height:4px;background:#cbd5e1;display:inline-block}

/* ---------- 社群 ---------- */
.community{background:#0b1220;color:#fff;padding:120px 0}
.community-inner{
  display:grid;grid-template-columns:1.05fr minmax(380px,1fr);
  gap:clamp(48px,6vw,110px);align-items:start;
}
.cm-left h2{
  margin:0 0 26px;font-size:clamp(32px,3vw,52px);font-weight:700;
  letter-spacing:.05em;line-height:1.15;color:#fff;
}
.cm-lead{
  margin:0 0 40px;max-width:580px;font-size:16px;line-height:1.95;
  color:rgba(255,255,255,.55);letter-spacing:.03em;
}
.cm-points{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.cm-points li{
  position:relative;padding-left:28px;font-size:14px;
  color:rgba(255,255,255,.72);letter-spacing:.04em;
}
.cm-points li::before{
  content:"";position:absolute;left:0;top:10px;width:14px;height:1px;background:#4b7ce0;
}
.cm-right{display:grid;gap:14px}
.cm-card{
  display:flex;align-items:center;gap:22px;
  padding:26px 28px;background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.11);border-radius:3px;
  transition:.18s;
}
.cm-card:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.2)}
.cm-k{font-size:11px;color:rgba(255,255,255,.4);letter-spacing:.2em;min-width:76px}
.cm-card b{font-size:19px;color:#fff;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.cm-card i{
  font-style:normal;margin-left:auto;font-size:12px;
  color:rgba(255,255,255,.34);letter-spacing:.04em;
}
.cm-note{
  margin-top:10px;font-size:12px;color:rgba(255,255,255,.34);
  letter-spacing:.12em;text-align:right;
}

/* ---------- 页脚 ---------- */
.footer{background:#05080f;border-top:1px solid rgba(255,255,255,.06);padding:48px 0}
.footer b{font-size:18px;letter-spacing:.1em}
.footer p{font-size:12px;letter-spacing:.1em;color:rgba(255,255,255,.38)}
.footer-links{gap:36px;font-size:13px}
.footer-links a{letter-spacing:.06em}
.fc-item b{font-size:13px}
.footer-meta{font-size:11px;color:rgba(255,255,255,.3)}

/* ---------- 通用按钮（副页面用） ---------- */
.btn{padding:12px 26px;font-size:14px;border-radius:3px;letter-spacing:.06em}
.btn-primary{background:var(--ink);border-color:var(--ink)}
.btn-primary:hover{background:#1c2b47;border-color:#1c2b47}
.btn-ghost{border-color:var(--line)}
.btn-ghost:hover{border-color:var(--ink);color:var(--ink)}

/* ---------- 副页面区块沿用新语言 ---------- */
.signal-section,.publish-section{padding:96px 0}
.panel{background:#fff;border:1px solid var(--line);border-radius:3px}
.signal-card{background:#fff;border:1px solid var(--line);border-radius:3px}
.sm-item{background:#f8fafc;border:1px solid var(--line);border-radius:3px}

/* ---------- 响应式 ---------- */
@media(max-width:1500px){
  .hero-main{grid-template-columns:minmax(0,1fr) 380px;gap:56px}
  .market-layout{grid-template-columns:250px 1fr;gap:44px}
  .product-grid{grid-template-columns:repeat(3,1fr);gap:36px 28px}
}
@media(max-width:1240px){
  .product-grid{grid-template-columns:repeat(2,1fr)}
  .hero-right{padding-left:32px}
  .hstat b{font-size:32px}
  .community-inner{grid-template-columns:1fr;gap:56px}
}
@media(max-width:1000px){
  body{min-width:auto}
  .hero-wrap{width:calc(100% - 48px)}
  .hero-main{grid-template-columns:1fr;gap:48px}
  .hero-slogan{font-size:clamp(36px,8vw,54px)}
  .hero-right{padding-left:0;border-left:0;border-top:1px solid rgba(255,255,255,.12);padding-top:32px}
  .hero-biz{padding-top:20px}
  .ticker-grid{grid-template-columns:repeat(5,1fr)}
  .ticker-item{padding:18px 10px}
  .stats-inner{grid-template-columns:repeat(3,1fr)}
  .stat-item{padding:28px 0 28px 20px}
  .stat-item:nth-child(3n+1){padding-left:0}
  .stat-item:nth-child(3n+1)::before{display:none}
  .stat-item:nth-child(n+4){border-top:1px solid rgba(255,255,255,.08)}
  .market-layout{grid-template-columns:1fr;gap:40px}
  .filter-sidebar{position:static}
  .sec-head{flex-direction:column;align-items:flex-start;gap:20px}
  .sec-head-desc{text-align:left}
  .product-grid{grid-template-columns:repeat(2,1fr);gap:32px 20px}
  .community{padding:80px 0}
  .wrap{width:calc(100% - 48px)}
  .nav{display:none}
  .nav.open{
    display:flex;position:absolute;top:68px;left:0;right:0;background:#fff;
    flex-direction:column;padding:16px 24px;border-bottom:1px solid var(--line);gap:0;
  }
  .nav.open a{padding:14px 0;border-bottom:1px solid var(--line)}
  .nav-toggle{display:block}
}
@media(max-width:680px){
  .product-grid{grid-template-columns:1fr}
  .ticker-grid{grid-template-columns:repeat(2,1fr)}
  .ticker-item:nth-child(2n){border-right:0}
  .stats-inner{grid-template-columns:repeat(2,1fr)}
  .stat-item{padding:24px 0 24px 16px}
  .stat-item:nth-child(2n+1){padding-left:0}
  .stat-item:nth-child(2n+1)::before{display:none}
  .hero-cta .btn-hero{flex:1}
  .cm-card{flex-wrap:wrap;gap:10px}
  .cm-card i{margin-left:0;width:100%}
}

/* ---------- v3.1 顶部导航深色化 + 卡图比例 ---------- */
.topbar{
  position:sticky;top:0;z-index:60;
  background:rgba(10,16,28,.93);
  border-bottom:1px solid rgba(255,255,255,.08);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
}
.topbar-inner{height:76px;gap:40px}
.brand-badge{
  width:40px;height:40px;border-radius:4px;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.22);
  color:#fff;font-size:15px;
}
.brand-text{color:#fff;font-size:18px;letter-spacing:.08em}
.brand-text em{color:rgba(255,255,255,.45);font-size:13px}
.nav{gap:38px}
.nav a{
  color:rgba(255,255,255,.55);font-size:14px;letter-spacing:.08em;
  padding:10px 0;border-bottom:1px solid transparent;
}
.nav a:hover{color:#fff;border-color:rgba(255,255,255,.45)}
.nav a.on{color:#fff;border-color:#fff;font-weight:600}
.top-actions .btn-primary{
  background:#fff;color:#0b1220;border-color:#fff;
}
.top-actions .btn-primary:hover{background:#e7eeff;border-color:#e7eeff;color:#0b1220}
.top-actions .btn-ghost{
  background:transparent;border-color:rgba(255,255,255,.24);color:rgba(255,255,255,.85);
}
.top-actions .btn-ghost:hover{border-color:rgba(255,255,255,.62);color:#fff}
.nav-toggle{border-color:rgba(255,255,255,.24);color:#fff;border-radius:3px}

/* hero 顶部留白（导航已独立） */
.hero-wrap{padding-top:76px}

/* 卡片图保持原图比例，避免裁切 */
.product-img{aspect-ratio:16/9}

/* ---------- v3.2 副页面统一 ---------- */
.banner-search button{
  background:#fff;border-color:#fff;color:#0b1220;font-weight:600;border-radius:3px;
}
.banner-search button:hover{background:#e7eeff;border-color:#e7eeff}
.banner-search input{
  border-radius:3px;border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.05);
}
.signal-summary{gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:48px}
.sm-item{
  background:transparent;border:0;border-radius:0;
  padding:34px 0 34px 32px;position:relative;
}
.sm-item:first-child{padding-left:0}
.sm-item + .sm-item::before{
  content:"";position:absolute;left:0;top:28%;bottom:28%;width:1px;background:var(--line);
}
.sm-item .k{font-size:11px;letter-spacing:.2em;color:#94a3b8}
.sm-item .v{font-size:clamp(24px,2.2vw,36px);margin-top:12px;color:var(--ink)}
.sm-item .v.up{color:#dc2626}
.sm-item .v.down{color:#16a34a}

/* ---------- v3.3 信号卡按钮 / 区块间距 ---------- */
.signal-section{padding:72px 0 104px}
.sub-btn{
  background:transparent;border:1px solid var(--ink);color:var(--ink);
  border-radius:3px;padding:8px 18px;font-size:12px;font-weight:600;
  letter-spacing:.1em;cursor:pointer;transition:.15s;
}
.sub-btn:hover{background:var(--ink);color:#fff}
.signal-foot .muted{font-size:11px;color:#94a3b8;letter-spacing:.04em}
.signal-card .spark{opacity:.9}

/* ================================================================
   v4 · 横屏看板（2026-10-25）
   Hero 压缩 + 横向筛选条 + 5 列网格 + 社群单行条
   ================================================================ */

/* ---- HERO 压缩为横向 ---- */
.hero-banner{background:
  radial-gradient(ellipse 50% 80% at 84% 20%, rgba(37,99,235,.24), transparent 62%),
  linear-gradient(120deg,#0a101c 0%,#121d34 55%,#080d17 100%);
}
.hero-wrap{
  padding:56px 0 58px;
}
.hero-main{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(430px,520px);
  gap:clamp(48px,6vw,100px);align-items:center;
}
.hero-kicker{margin:0 0 20px;font-size:10px;letter-spacing:.44em;color:#6f9bf0}
.hero-slogan{
  font-size:clamp(38px,3.6vw,58px);line-height:1.1;
}
.hero-slogan em{display:inline-block;margin-left:.22em;color:#7ea6f5}
.hero-sub{
  margin:22px 0 0;max-width:640px;font-size:15px;line-height:1.85;
  color:rgba(255,255,255,.55);
}
.hero-day{
  margin:26px 0 0;font-size:13px;letter-spacing:.14em;color:rgba(255,255,255,.45);
}
.hero-day b{
  font-size:26px;font-weight:700;color:#fff;letter-spacing:.02em;
  font-variant-numeric:tabular-nums;margin:0 4px;
}

/* 右侧 3×2 数据阵 */
.hero-stats{
  display:grid;grid-template-columns:repeat(3,1fr);
  border-left:1px solid rgba(255,255,255,.1);
}
.hs{
  padding:14px 0 14px clamp(16px,1.6vw,26px);
  border-bottom:1px solid rgba(255,255,255,.07);
}
.hs:nth-child(n+4){border-bottom:0}
.hs b{
  display:block;font-size:clamp(20px,1.8vw,30px);font-weight:700;color:#fff;
  font-variant-numeric:tabular-nums;line-height:1.1;letter-spacing:.01em;
}
.hs b.up{color:#f05252}
.hs b.down{color:#22c55e}
.hs span{
  display:block;margin-top:7px;font-size:10px;letter-spacing:.2em;
  color:rgba(255,255,255,.38);
}

/* ---- 横向筛选条 ---- */
.market-section{padding:56px 0 72px}
.filter-bar{
  display:flex;justify-content:space-between;align-items:center;gap:28px;
  padding-bottom:26px;margin-bottom:34px;border-bottom:1px solid var(--line);
  flex-wrap:wrap;
}
.fb-left{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.fb-right{display:flex;align-items:center;gap:14px;margin-left:auto}
.fb-select{
  padding:11px 36px 11px 16px;border:1px solid var(--line);border-radius:3px;
  font-size:13px;background:#fff;color:var(--text);letter-spacing:.04em;
  cursor:pointer;appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 5 5-5' fill='none' stroke='%2394a3b8' stroke-width='1.4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;
}
.fb-select:focus{outline:none;border-color:var(--ink)}
.cat-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cat-chips .cat-item{
  padding:10px 18px;border:1px solid var(--line);border-radius:3px;
  font-size:13px;color:var(--muted);cursor:pointer;letter-spacing:.04em;
  display:inline-flex;align-items:center;gap:8px;transition:.15s;
}
.cat-chips .cat-item:hover{border-color:#c3ccd9;color:var(--ink);padding-left:18px}
.cat-chips .cat-item.on{
  background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600;padding-left:18px;
}
.cat-chips .cat-item .count{font-size:11px;opacity:.65;font-weight:400}
.cat-chips .cat-item.on .count{opacity:.55;color:#fff}
.fb-search input{
  width:clamp(160px,16vw,260px);padding:11px 16px;border:1px solid var(--line);
  border-radius:3px;font-size:13px;background:#fff;
}
.fb-search input:focus{outline:none;border-color:var(--ink)}
.fb-search input::placeholder{color:#a8b3c4}
.result-count{font-size:12px;color:#94a3b8;letter-spacing:.06em;white-space:nowrap}

/* ---- 5 列紧凑网格 ---- */
.product-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:34px 20px}
.product-img{aspect-ratio:16/10;border-radius:3px}
.product-body{padding:14px 0 0}
.product-name{
  font-size:14px;font-weight:600;color:var(--ink);margin:0 0 10px;
  min-height:40px;line-height:1.45;
}
.product-meta{gap:8px;margin-bottom:14px}
.ver-tag{font-size:9px;padding:3px 8px;letter-spacing:.12em}
.product-byline{font-size:11px}
.product-actions{gap:8px}
.product-actions .btn-buy{padding:10px 0;font-size:12px;letter-spacing:.08em}
.dl-hint{margin-top:10px;font-size:10px;gap:6px}
.dl-hint i{width:3px;height:3px}

/* ---- 社群单行条 ---- */
.community-strip{
  background:#0b1220;border-top:1px solid rgba(255,255,255,.07);
  padding:30px 0;
}
.cs-inner{display:flex;align-items:center;gap:44px;flex-wrap:wrap}
.cs-text{display:flex;flex-direction:column;gap:6px;min-width:220px}
.cs-text b{font-size:16px;color:#fff;letter-spacing:.1em;font-weight:600}
.cs-text span{font-size:12px;color:rgba(255,255,255,.4);letter-spacing:.06em}
.cs-items{display:flex;align-items:center;gap:30px;flex-wrap:wrap;margin-left:auto}
.cs-i{display:inline-flex;align-items:baseline;gap:9px}
.cs-i i{font-style:normal;font-size:10px;color:rgba(255,255,255,.35);letter-spacing:.16em}
.cs-i b{
  font-size:15px;color:#fff;font-weight:600;letter-spacing:.04em;
  font-variant-numeric:tabular-nums;
}
.cs-time{
  font-size:11px;color:#7ea6f5;letter-spacing:.14em;
  padding:6px 14px;border:1px solid rgba(126,166,245,.3);border-radius:2px;
}

/* ---- 页脚压扁 ---- */
.footer{padding:34px 0}
.footer-inner{gap:24px}
.footer b{font-size:15px}
.footer p{font-size:11px}

/* ---- 响应式：横屏优先 ---- */
@media(max-width:1680px){
  .product-grid{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:1360px){
  .hero-main{grid-template-columns:1fr;gap:40px}
  .hero-stats{border-left:0;border-top:1px solid rgba(255,255,255,.1);padding-top:8px}
  .product-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:1000px){
  .product-grid{grid-template-columns:repeat(2,1fr)}
  .hero-main{grid-template-columns:1fr}
  .hero-slogan em{display:block;margin:6px 0 0}
  .filter-bar{flex-direction:column;align-items:flex-start;gap:16px}
  .fb-right{margin-left:0;width:100%;flex-wrap:wrap}
  .fb-search input{width:100%}
  .fb-search{flex:1}
  .cs-items{margin-left:0;gap:20px}
}
@media(max-width:680px){
  .product-grid{grid-template-columns:1fr 1fr;gap:24px 14px}
  .hero-stats{grid-template-columns:repeat(2,1fr)}
  .hs{padding:12px 0 12px 14px}
}

/* ---------- v4.1 首屏塞下一整行卡片 ---------- */
.hero-wrap{padding:44px 0 48px}
.hero-kicker{margin-bottom:16px}
.hero-sub{margin-top:18px}
.hero-day{margin-top:20px}
.market-section{padding:44px 0 64px}
.filter-bar{padding-bottom:22px;margin-bottom:26px}
.product-grid{gap:30px 20px}
.product-name{margin-bottom:9px;min-height:38px}
.product-meta{margin-bottom:12px}
.dl-hint{margin-top:9px}

/* ---------- v4.2 数据阵呼吸 + 细节 ---------- */
.hs{padding:16px 0 16px clamp(18px,1.6vw,28px)}
.hs span{margin-top:10px;font-size:10px;letter-spacing:.24em}
.hs b{line-height:1.15}

/* ---------- v4.3 副页面 banner 紧凑（注意排除首页 hero） ---------- */
.banner:not(.hero-banner){height:210px}
.banner-content{
  padding-top:8px;
}
.banner-content h1{font-size:clamp(30px,3vw,44px);letter-spacing:.06em}
.banner-count{margin-top:12px;font-size:14px;color:rgba(255,255,255,.52)}
.banner-search{margin-top:26px;max-width:440px}
.banner-search input{padding:11px 16px;font-size:13px}
.banner-search button{padding:11px 22px;font-size:13px}

/* 信号页配色与首页统一（涨红） */
.sm-item .v.up,.sm-metric b.up{color:#dc2626}
.sm-item .v.down,.sm-metric b.down{color:#16a34a}

/* ---------- v4.4 信号页间距 ---------- */
.signal-section{padding:48px 0 72px}
.signal-summary{margin-bottom:36px}

/* ================================================================
   v5 · 横屏看板（1920×1080 舞台，等比缩放，永不滚动）
   ================================================================ */

body.kiosk{
  margin:0;padding:0;height:100vh;overflow:hidden;
  background:#05080f;min-width:0;
}
#stage{
  position:fixed;left:50%;top:50%;
  width:1920px;height:1080px;
  transform:translate(-50%,-50%);
  transform-origin:center center;
  background:var(--paper);
  display:flex;flex-direction:column;
  overflow:hidden;
}

/* ---------- 顶部导航 58px ---------- */
.kiosk .topbar{
  position:relative;top:auto;height:58px;flex:0 0 58px;
  background:#0b1220;border-bottom:1px solid rgba(255,255,255,.07);
  backdrop-filter:none;-webkit-backdrop-filter:none;
}
.kiosk .tb-inner{
  width:100%;height:58px;padding:0 40px;
  display:flex;align-items:center;gap:48px;
}
.kiosk .brand{display:flex;align-items:center;gap:12px}
.kiosk .brand-badge{
  width:32px;height:32px;font-size:13px;border-radius:3px;
}
.kiosk .brand-text{font-size:16px;letter-spacing:.08em}
.kiosk .brand-text em{font-size:11px}
.kiosk .brand-tag{
  font-size:8px;letter-spacing:.26em;color:rgba(255,255,255,.34);
  padding:3px 9px;border:1px solid rgba(255,255,255,.14);border-radius:2px;margin-left:4px;
}
.kiosk .nav{display:flex;gap:34px;flex:1}
.kiosk .nav a{
  font-size:13px;color:rgba(255,255,255,.5);padding:5px 0;letter-spacing:.1em;
  border-bottom:1px solid transparent;
}
.kiosk .nav a:hover{color:#fff;border-color:rgba(255,255,255,.4)}
.kiosk .nav a.on{color:#fff;border-color:#fff;font-weight:600}
.kiosk .top-actions{display:flex;gap:10px}
.kiosk .btn{padding:8px 20px;font-size:12px;border-radius:3px;letter-spacing:.08em}
.kiosk .btn-primary{background:#fff;color:#0b1220;border-color:#fff}
.kiosk .btn-primary:hover{background:#e7eeff;border-color:#e7eeff;color:#0b1220}
.kiosk .btn-ghost{background:transparent;border-color:rgba(255,255,255,.22);color:rgba(255,255,255,.8)}
.kiosk .btn-ghost:hover{border-color:rgba(255,255,255,.6);color:#fff}
.kiosk .nav-toggle{display:none}

/* ---------- Hero 250px ---------- */
.kiosk .hero{
  flex:0 0 250px;height:250px;
  padding:0 40px;
  display:grid;grid-template-columns:1fr 620px;gap:60px;align-items:center;
  background:
    radial-gradient(ellipse 42% 90% at 78% 30%, rgba(37,99,235,.22), transparent 62%),
    linear-gradient(112deg,#0a101c 0%,#121d34 58%,#080d17 100%);
}
.kiosk .hero-kicker{
  margin:0 0 14px;font-size:9px;letter-spacing:.44em;color:#6f9bf0;
}
.kiosk .hero-slogan{
  margin:0;font-size:56px;font-weight:700;line-height:1.05;
  letter-spacing:.02em;color:#fff;
}
.kiosk .hero-slogan em{display:inline-block;margin-left:20px;color:#7ea6f5;font-style:normal}
.kiosk .hero-sub{
  margin:16px 0 0;padding:0;border:0;max-width:640px;
  font-size:13px;line-height:1.7;color:rgba(255,255,255,.5);letter-spacing:.04em;
}
.kiosk .hero-day{
  margin:14px 0 0;font-size:11px;letter-spacing:.18em;color:rgba(255,255,255,.4);
}
.kiosk .hero-day b{font-size:20px;color:#fff;font-weight:700;margin:0 4px;letter-spacing:.02em}

.kiosk .hero-stats{
  display:grid;grid-template-columns:repeat(3,1fr);
  border-left:1px solid rgba(255,255,255,.1);
}
.kiosk .hs{padding:12px 0 12px 26px;border-bottom:1px solid rgba(255,255,255,.06)}
.kiosk .hs:nth-child(n+4){border-bottom:0}
.kiosk .hs b{
  display:block;font-size:24px;font-weight:700;color:#fff;line-height:1.1;
  font-variant-numeric:tabular-nums;
}
.kiosk .hs b.up{color:#f05252}
.kiosk .hs span{
  display:block;margin-top:6px;font-size:9px;letter-spacing:.22em;
  color:rgba(255,255,255,.34);
}

/* ---------- 行情 54px ---------- */
.kiosk .ticker-bar{
  flex:0 0 54px;height:54px;
  background:#070c16;border-top:1px solid rgba(255,255,255,.07);
  border-bottom:1px solid rgba(255,255,255,.07);
  padding:0 40px;
}
.kiosk .ticker-grid{
  display:grid;grid-template-columns:repeat(5,1fr);height:54px;
}
.kiosk .ticker-item{
  display:flex;flex-direction:row;align-items:center;gap:14px;
  padding:0 26px 0 0;border-right:1px solid rgba(255,255,255,.06);
}
.kiosk .ticker-item:last-child{border-right:0}
.kiosk .tk-sym{font-size:10px;letter-spacing:.24em;color:#7ea6f5;min-width:62px}
.kiosk .tk-px{font-size:19px;color:#fff;font-weight:700;font-variant-numeric:tabular-nums}
.kiosk .tk-chg{font-size:10px;padding:2px 7px;border-radius:2px;align-self:center}
.kiosk .tk-name{display:none}

/* ---------- 筛选条 58px ---------- */
.kiosk .filter-bar{
  flex:0 0 58px;height:58px;
  padding:0 40px;margin:0;
  display:flex;justify-content:space-between;align-items:center;gap:24px;
  background:#fff;border-bottom:1px solid var(--line);
  flex-wrap:nowrap;
}
.kiosk .fb-left{display:flex;align-items:center;gap:12px}
.kiosk .fb-right{display:flex;align-items:center;gap:12px;margin-left:auto}
.kiosk .fb-select{
  padding:8px 30px 8px 13px;font-size:12px;border-radius:3px;
}
.kiosk .cat-chips{display:flex;gap:7px}
.kiosk .cat-chips .cat-item{
  padding:7px 15px;font-size:12px;border-radius:3px;gap:6px;
}
.kiosk .cat-chips .cat-item:hover{padding-left:15px}
.kiosk .cat-chips .cat-item.on{padding-left:15px}
.kiosk .cat-chips .cat-item .count{font-size:10px}
.kiosk .fb-search input{padding:8px 14px;font-size:12px;width:230px;border-radius:3px}
.kiosk .result-count{font-size:11px}

/* ---------- 卡片区（横向货架） ---------- */
.kiosk .grid-zone{
  flex:1;min-height:0;
  padding:16px 40px 14px;
  overflow-x:auto;overflow-y:hidden;
  background:var(--paper);
}
.kiosk .product-grid{
  display:grid;
  grid-template-columns:none;      /* 关键：清掉 v4 的 repeat(5,1fr) */
  grid-auto-flow:column;
  grid-template-rows:repeat(2, 1fr);
  grid-auto-columns:353px;
  justify-content:start;
  gap:14px 18px;
  height:100%;
}
.kiosk .product-card{
  display:flex;flex-direction:column;
  background:#fff;border:1px solid var(--line);border-radius:3px;
  overflow:hidden;cursor:pointer;
  transition:border-color .15s, box-shadow .15s;
}
.kiosk .product-card:hover{
  border-color:#c9d3e2;box-shadow:0 6px 20px rgba(15,23,42,.08);
}
.kiosk .product-thumb{position:relative;flex:0 0 auto}
.kiosk .product-img{
  width:100%;aspect-ratio:16/9;object-fit:cover;display:block;border-radius:0;
  transition:none;
}
.kiosk .product-card:hover .product-img{transform:none}
.kiosk .ver-tag{
  position:absolute;left:10px;top:10px;
  font-size:9px;font-weight:700;padding:3px 9px;letter-spacing:.14em;
  border-radius:2px;border:0;
  background:rgba(11,18,32,.82);color:#fff;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
}
.kiosk .ver-tag.normal{background:rgba(255,255,255,.9);color:#334155}
.kiosk .ver-tag.member{background:rgba(11,18,32,.88);color:#fff}
.kiosk .product-body{
  padding:10px 12px 12px;display:flex;flex-direction:column;gap:7px;
  flex:1;min-height:0;
}
.kiosk .product-name{
  font-size:13px;font-weight:600;color:var(--ink);
  margin:0;min-height:0;line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;letter-spacing:0;
}
.kiosk .product-meta{display:none}
.kiosk .product-byline{
  font-size:10px;color:#94a3b8;letter-spacing:.04em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.kiosk .product-actions{display:flex;gap:7px;margin-top:auto}
.kiosk .product-actions .btn-buy{
  flex:1;padding:7px 0;font-size:11px;font-weight:600;border-radius:3px;
  letter-spacing:.06em;
}
.kiosk .btn-buy.dl{background:var(--ink);color:#fff;border:1px solid var(--ink)}
.kiosk .btn-buy.dl:hover{background:#1c2b47;border-color:#1c2b47}
.kiosk .btn-buy.vip{background:#fff;color:var(--ink);border:1px solid var(--line)}
.kiosk .btn-buy.vip:hover{border-color:var(--ink)}
.kiosk .btn-buy.vip.locked{background:#f8fafc;color:#b6c0cd;border-color:var(--line);cursor:not-allowed}
.kiosk .dl-hint{display:none}

/* 横向滚动条 */
.kiosk .grid-zone::-webkit-scrollbar{height:6px}
.kiosk .grid-zone::-webkit-scrollbar-track{background:transparent}
.kiosk .grid-zone::-webkit-scrollbar-thumb{background:#d2dae6;border-radius:3px}
.kiosk .grid-zone::-webkit-scrollbar-thumb:hover{background:#b9c4d4}

/* ---------- 底部 76px ---------- */
.kiosk .bottom-bar{
  flex:0 0 76px;height:76px;
  padding:0 40px;
  display:flex;align-items:center;gap:48px;
  background:#0b1220;border-top:1px solid rgba(255,255,255,.07);
}
.kiosk .bb-left{display:flex;flex-direction:column;gap:5px;flex:0 0 auto}
.kiosk .bb-left b{font-size:14px;color:#fff;letter-spacing:.1em;font-weight:600}
.kiosk .bb-left span{font-size:10px;color:rgba(255,255,255,.36);letter-spacing:.06em}
.kiosk .bb-contact{display:flex;align-items:center;gap:32px;margin-left:auto}
.kiosk .cs-i{display:inline-flex;align-items:baseline;gap:8px}
.kiosk .cs-i i{font-style:normal;font-size:9px;color:rgba(255,255,255,.3);letter-spacing:.18em}
.kiosk .cs-i b{
  font-size:13px;color:#fff;font-weight:600;letter-spacing:.04em;
  font-variant-numeric:tabular-nums;
}
.kiosk .bb-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex:0 0 auto}
.kiosk .cs-time{
  font-size:9px;color:#7ea6f5;letter-spacing:.16em;
  padding:3px 10px;border:1px solid rgba(126,166,245,.28);border-radius:2px;
}
.kiosk .foot-time{font-size:9px;color:rgba(255,255,255,.26);letter-spacing:.04em}

/* ---------- 舞台内提示 ---------- */
.kiosk .toast-wrap{position:fixed;right:24px;bottom:24px;z-index:999}

/* ---------- v5.1 高度精调 ---------- */
.kiosk .hero{flex:0 0 230px;height:230px}
.kiosk .grid-zone{padding:14px 40px 12px}
.kiosk .product-body{padding:6px 11px 6px;gap:3px}
.kiosk .product-name{font-size:13px;line-height:1.24;max-height:32px;-webkit-line-clamp:2}
.kiosk .product-byline{font-size:9px;line-height:12px}
.kiosk .product-actions{gap:6px}
.kiosk .product-actions .btn-buy{padding:6px 0;font-size:11px;line-height:16px}

/* ---------- v5.2 信号页舞台 ---------- */
.kiosk .page-head{
  flex:0 0 200px;height:200px;
  padding:0 40px;
  display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;
  background:
    radial-gradient(ellipse 40% 90% at 80% 26%, rgba(37,99,235,.2), transparent 62%),
    linear-gradient(112deg,#0a101c 0%,#121d34 60%,#080d17 100%);
}
.kiosk .ph-title{
  margin:0;font-size:46px;font-weight:700;letter-spacing:.04em;color:#fff;line-height:1.1;
}
.kiosk .ph-sub{margin:12px 0 0;font-size:13px;color:rgba(255,255,255,.5);letter-spacing:.06em}
.kiosk .ph-right{display:flex;flex-direction:column;gap:26px}
.kiosk .ph-search{display:flex;gap:10px}
.kiosk .ph-search input{
  flex:1;padding:11px 16px;font-size:13px;border-radius:3px;
  border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.05);color:#fff;
}
.kiosk .ph-search input::placeholder{color:rgba(255,255,255,.38)}
.kiosk .ph-search input:focus{outline:none;border-color:rgba(255,255,255,.5)}
.kiosk .ph-search button{
  padding:11px 26px;font-size:13px;font-weight:600;border-radius:3px;
  background:#fff;border:1px solid #fff;color:#0b1220;cursor:pointer;letter-spacing:.08em;
}
.kiosk .ph-search button:hover{background:#e7eeff;border-color:#e7eeff}

.kiosk .signal-summary{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border-top:1px solid rgba(255,255,255,.1);padding-top:18px;margin:0;
}
.kiosk .signal-summary .sm-item{
  background:transparent;border:0;border-radius:0;padding:0 0 0 20px;position:relative;
}
.kiosk .signal-summary .sm-item:first-child{padding-left:0}
.kiosk .signal-summary .sm-item + .sm-item::before{
  content:"";position:absolute;left:0;top:10%;bottom:10%;width:1px;background:rgba(255,255,255,.1);
}
.kiosk .signal-summary .sm-item .k{
  font-size:9px;letter-spacing:.2em;color:rgba(255,255,255,.34);
}
.kiosk .signal-summary .sm-item .v{
  font-size:22px;font-weight:700;color:#fff;margin-top:8px;letter-spacing:.01em;
}
.kiosk .signal-summary .sm-item .v.up{color:#f05252}
.kiosk .signal-summary .sm-item .v.down{color:#22c55e}

/* 信号卡区 */
.kiosk .signal-zone{padding:22px 40px 18px}
.kiosk .signal-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  grid-template-rows:1fr;gap:18px;height:100%;
}
.kiosk .signal-card{
  background:#fff;border:1px solid var(--line);border-radius:3px;
  padding:18px 18px 14px;display:flex;flex-direction:column;
}
.kiosk .signal-head h4{font-size:15px;margin:0}
.kiosk .signal-head .broker{font-size:10px;color:#94a3b8;margin-top:3px}
.kiosk .signal-status{
  font-size:9px;padding:3px 8px;border-radius:2px;letter-spacing:.06em;
}
.kiosk .signal-metrics{gap:0;margin:16px 0 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.kiosk .sm-metric{
  background:transparent;border-radius:0;padding:14px 0;text-align:left;position:relative;
}
.kiosk .sm-metric + .sm-metric{padding-left:14px}
.kiosk .sm-metric + .sm-metric::before{
  content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:var(--line);
}
.kiosk .sm-metric span{font-size:9px;letter-spacing:.14em;color:#94a3b8}
.kiosk .sm-metric b{font-size:19px;margin-top:6px}
.kiosk .signal-card .spark{flex:1;min-height:0;margin:10px 0 0}
.kiosk .signal-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}
.kiosk .signal-foot .muted{font-size:10px;color:#94a3b8}
.kiosk .sub-btn{
  padding:7px 18px;font-size:11px;border-radius:3px;
  background:var(--ink);border:1px solid var(--ink);color:#fff;letter-spacing:.08em;
}
.kiosk .sub-btn:hover{background:#1c2b47;border-color:#1c2b47}

/* ---------- v5.3 信号卡 spark 定高 ---------- */
.kiosk .signal-card .spark{flex:0 0 132px;height:132px;margin:12px 0 4px;width:100%}
.kiosk .signal-card .pos-list,.kiosk .signal-card .positions{flex:0 0 auto}

/* ---------- 信号卡高度收口：卡片改为内容自适应，不再被拉伸到整屏 ---------- */
.kiosk .signal-grid{
  grid-template-rows:none;
  align-items:start;
  height:auto;
}
.kiosk .signal-card{
  height:auto;
  align-self:start;
}
.kiosk .signal-card .signal-foot{margin-top:14px}

/* ---------- v5.4 服务板块（加密 / 破解） ---------- */
.kiosk .svc-head{
  flex:0 0 176px;height:176px;
  grid-template-columns:1fr 1fr;
}
.kiosk .svc-head .ph-title{font-size:52px}
.kiosk .svc-facts{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border-left:1px solid rgba(255,255,255,.1);
  padding-left:0;align-items:center;
}
.kiosk .sf{padding:6px 0 6px 24px;position:relative}
.kiosk .sf + .sf::before{
  content:"";position:absolute;left:0;top:14%;bottom:14%;width:1px;background:rgba(255,255,255,.1);
}
.kiosk .sf b{
  display:block;font-size:26px;font-weight:700;color:#fff;line-height:1.1;
  font-variant-numeric:tabular-nums;
}
.kiosk .sf span{
  display:block;margin-top:7px;font-size:9px;letter-spacing:.2em;
  color:rgba(255,255,255,.36);
}

.kiosk .svc-zone{padding:20px 40px 16px}
.kiosk .svc-grid{
  display:grid;gap:18px;height:100%;
}
.kiosk .svc-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.kiosk .svc-grid.cols-4{grid-template-columns:repeat(4,1fr)}

.kiosk .svc-card{
  position:relative;background:#fff;border:1px solid var(--line);border-radius:3px;
  padding:26px 24px 22px;display:flex;flex-direction:column;
  transition:border-color .18s, box-shadow .18s;
}
.kiosk .svc-card:hover{border-color:#c9d3e2;box-shadow:0 10px 28px rgba(15,23,42,.07)}
.kiosk .svc-card.featured{
  background:#0b1220;border-color:#0b1220;color:#fff;
}
.kiosk .svc-card.featured .svc-lead{color:rgba(255,255,255,.55)}
.kiosk .svc-card.featured .svc-list li{color:rgba(255,255,255,.75);border-color:rgba(255,255,255,.08)}
.kiosk .svc-card.featured .svc-list li::before{background:#4b7ce0}
.kiosk .svc-card.featured .svc-no{color:rgba(255,255,255,.18)}
.kiosk .svc-card.featured .svc-meta span{color:rgba(255,255,255,.35)}
.kiosk .svc-card.featured .svc-meta b{color:#fff}
.kiosk .svc-card.featured .svc-foot{border-color:rgba(255,255,255,.12)}

.kiosk .svc-no{
  font-family:"DIN Alternate","Arial Black",Georgia,serif;
  font-size:44px;font-weight:700;line-height:1;color:#eef2f8;letter-spacing:.02em;
  margin-bottom:16px;
}
.kiosk .svc-card h3{
  margin:0 0 12px;font-size:22px;font-weight:700;letter-spacing:.06em;
}
.kiosk .svc-card.featured h3{color:#fff}
.kiosk .svc-lead{
  margin:0 0 20px;font-size:12px;line-height:1.75;color:#7c8aa0;
  letter-spacing:.02em;min-height:42px;
}
.kiosk .svc-list{
  list-style:none;margin:0;padding:0;display:grid;gap:0;
}
.kiosk .svc-list li{
  position:relative;padding:9px 0 9px 16px;font-size:12px;
  color:#475569;letter-spacing:.02em;line-height:1.4;
  border-bottom:1px solid #f1f5f9;
}
.kiosk .svc-list li:last-child{border-bottom:0}
.kiosk .svc-list li::before{
  content:"";position:absolute;left:0;top:16px;width:6px;height:1px;background:#94a3b8;
}
.kiosk .svc-foot{
  margin-top:auto;padding-top:18px;border-top:1px solid var(--line);
  display:flex;align-items:center;gap:20px;
}
.kiosk .svc-meta span{
  display:block;font-size:9px;letter-spacing:.16em;color:#a3aec0;
}
.kiosk .svc-meta b{
  display:block;margin-top:4px;font-size:15px;font-weight:700;color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.kiosk .svc-btn{
  margin-left:auto;padding:10px 20px;font-size:12px;font-weight:600;letter-spacing:.08em;
  border-radius:3px;background:#fff;border:1px solid var(--line);color:var(--ink);
  cursor:pointer;transition:.15s;white-space:nowrap;
}
.kiosk .svc-btn:hover{border-color:var(--ink)}
.kiosk .svc-btn.solid{background:#fff;border-color:#fff;color:#0b1220}
.kiosk .svc-btn.solid:hover{background:#dbe6ff;border-color:#dbe6ff}

/* 流程条 */
.kiosk .flow-bar{
  flex:0 0 132px;height:132px;
  padding:0 40px;margin:0;
  display:flex;align-items:center;gap:56px;
  background:#f4f7fb;border-top:1px solid var(--line);
}
.kiosk .flow-title{flex:0 0 auto}
.kiosk .flow-title b{
  display:block;font-size:15px;font-weight:700;color:var(--ink);letter-spacing:.1em;
}
.kiosk .flow-title span{
  display:block;margin-top:8px;font-size:10px;color:#94a3b8;letter-spacing:.06em;
}
.kiosk .flow-steps{display:flex;align-items:center;gap:0;flex:1}
.kiosk .fs{
  flex:1;position:relative;padding-left:44px;
}
.kiosk .fs i{
  position:absolute;left:0;top:2px;
  width:26px;height:26px;display:grid;place-items:center;
  background:#fff;border:1px solid var(--line);border-radius:50%;
  font-style:normal;font-size:11px;font-weight:700;color:#64748b;
}
.kiosk .fs:first-child i{background:var(--ink);border-color:var(--ink);color:#fff}
.kiosk .fs b{
  display:block;font-size:13px;font-weight:600;color:var(--ink);letter-spacing:.04em;
}
.kiosk .fs span{
  display:block;margin-top:6px;font-size:10px;color:#94a3b8;letter-spacing:.03em;
}
.kiosk .flow-cta{
  flex:0 0 auto;display:flex;align-items:center;gap:26px;
  padding-left:44px;border-left:1px solid var(--line);
}
.kiosk .flow-cta .cs-i i{color:#a3aec0}
.kiosk .flow-cta .cs-i b{color:var(--ink);font-size:13px}

/* ---------- v5.5 服务卡密度 ---------- */
.kiosk .svc-no{color:#e2e8f3;font-size:46px;margin-bottom:18px}
.kiosk .svc-card{padding:28px 26px 24px}
.kiosk .svc-lead{min-height:0;margin-bottom:22px;font-size:12.5px}
.kiosk .svc-list li{
  padding:15px 0 15px 17px;font-size:12.5px;line-height:1.45;
}
.kiosk .svc-list li::before{top:22px;width:7px}
.kiosk .svc-foot{padding-top:20px}
.kiosk .svc-meta b{font-size:16px}
.kiosk .svc-btn{padding:11px 22px}

/* ---------- v5.6 铺满窗口（去黑边） ---------- */
/* 舞台高度由 JS 按视口计算，宽度始终铺满 → 无左右黑边 */
#stage{width:1920px;height:1080px}

/* 卡片图片改为弹性填充，行高变化时自动适配 */
.kiosk .product-thumb{
  position:relative;flex:1 1 auto;min-height:70px;overflow:hidden;
}
.kiosk .product-img{
  width:100%;height:100%;object-fit:cover;aspect-ratio:auto;display:block;
}
.kiosk .product-body{flex:0 0 auto}

/* 服务页/信号页兜底：高度不足时内部滚动而不是溢出裁切 */
.kiosk .svc-zone,
.kiosk .signal-zone{overflow-y:auto}

/* 高度很矮时收紧 header */
@media(max-height:0px){
  .kiosk .hero{flex-basis:200px;height:200px}
}

/* ---------- v5.7 卡片图片限高，避免高屏过度裁切 ---------- */
.kiosk .product-thumb{flex:1 1 auto;min-height:70px;max-height:240px}
.kiosk .product-body{flex:1 1 auto;justify-content:space-between}

/* ---------- v5.8 矮视口自适应（笔记本/缩放 125% 场景） ---------- */
@media(max-height:860px){
  .kiosk .hero{flex:0 0 186px;height:186px}
  .kiosk .hero-slogan{font-size:44px}
  .kiosk .hero-sub{margin-top:12px;font-size:12px}
  .kiosk .hero-day{margin-top:12px}
  .kiosk .hero-kicker{margin-bottom:10px}
  .kiosk .ticker-bar{flex:0 0 46px;height:46px}
  .kiosk .ticker-grid{height:46px}
  .kiosk .filter-bar{flex:0 0 52px;height:52px}
  .kiosk .bottom-bar{flex:0 0 62px;height:62px}
  .kiosk .product-grid{grid-auto-columns:280px}
  .kiosk .product-name{font-size:12px;max-height:30px}
  .kiosk .product-byline{font-size:9px}
  .kiosk .product-actions .btn-buy{padding:6px 0;font-size:10px}
  .kiosk .topbar,.kiosk .tb-inner{height:52px;flex-basis:52px}
}

/* ---------- v5.9 矮视口下的服务页/信号页压缩 ---------- */
@media(max-height:860px){
  .kiosk .svc-head{flex:0 0 138px;height:138px}
  .kiosk .svc-head .ph-title{font-size:38px}
  .kiosk .svc-head .ph-sub{font-size:11px;margin-top:8px}
  .kiosk .svc-head .hero-kicker{margin-bottom:8px;font-size:8px}
  .kiosk .sf b{font-size:20px}
  .kiosk .sf span{margin-top:5px;font-size:8px}

  .kiosk .svc-zone{padding:16px 40px 12px}
  .kiosk .svc-card{padding:18px 18px 14px}
  .kiosk .svc-no{font-size:30px;margin-bottom:10px}
  .kiosk .svc-card h3{font-size:17px;margin-bottom:8px}
  .kiosk .svc-lead{font-size:11px;line-height:1.6;margin-bottom:12px}
  .kiosk .svc-list li{padding:8px 0 8px 14px;font-size:11px;line-height:1.35}
  .kiosk .svc-list li::before{top:14px;width:6px}
  .kiosk .svc-foot{padding-top:12px;gap:12px}
  .kiosk .svc-meta b{font-size:13px}
  .kiosk .svc-btn{padding:7px 14px;font-size:11px}

  .kiosk .flow-bar{flex:0 0 100px;height:100px;gap:32px}
  .kiosk .flow-title b{font-size:13px}
  .kiosk .flow-title span{font-size:9px;margin-top:5px}
  .kiosk .fs{padding-left:34px}
  .kiosk .fs i{width:22px;height:22px;font-size:10px}
  .kiosk .fs b{font-size:11px}
  .kiosk .fs span{font-size:9px;margin-top:4px}

  .kiosk .page-head{flex:0 0 168px;height:168px}
  .kiosk .ph-title{font-size:34px}
  .kiosk .signal-summary .sm-item .v{font-size:17px}
}

/* ================================================================
   v6 · 策略卡高端化：作品封面式（名字压在图上 + 底部按钮条）
   ================================================================ */
.kiosk .product-card{
  background:#fff;border:1px solid var(--line);border-radius:0;
  overflow:hidden;display:flex;flex-direction:column;
  transition:box-shadow .25s ease, border-color .25s ease;
}
.kiosk .product-card:hover{
  border-color:#bfcbdb;box-shadow:0 14px 34px rgba(10,18,32,.13);
}
.kiosk .product-thumb{
  position:relative;flex:1 1 auto;min-height:130px;overflow:hidden;
}
.kiosk .product-img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .55s cubic-bezier(.2,.7,.3,1);
}
.kiosk .product-card:hover .product-img{transform:scale(1.035)}

/* 底部渐变，保证文字可读 */
.kiosk .product-thumb::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to top,
    rgba(5,9,16,.94) 0%,
    rgba(5,9,16,.72) 22%,
    rgba(5,9,16,.28) 44%,
    rgba(5,9,16,0) 68%);
}
/* 版本标 */
.kiosk .product-thumb .ver-tag{
  position:absolute;left:12px;top:12px;z-index:3;
  font-size:9px;font-weight:700;padding:4px 9px;letter-spacing:.16em;
  border:0;border-radius:2px;
  background:rgba(255,255,255,.14);color:#fff;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
}
.kiosk .product-thumb .ver-tag.member{background:rgba(255,255,255,.9);color:#0b1220}
.kiosk .product-thumb .ver-tag.normal{background:rgba(255,255,255,.16);color:#fff}

/* 图上的名字层 */
.kiosk .thumb-meta{
  position:absolute;left:14px;right:14px;bottom:13px;z-index:2;
}
.kiosk .thumb-meta .product-name{
  margin:0 0 6px;max-height:none;
  font-size:15px;font-weight:600;line-height:1.32;letter-spacing:.01em;
  color:#fff;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  text-shadow:0 2px 12px rgba(0,0,0,.4);
}
.kiosk .thumb-meta .product-byline{
  font-size:10px;color:rgba(255,255,255,.58);letter-spacing:.1em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

/* 底部按钮条 */
.kiosk .product-body{
  flex:0 0 auto;padding:9px 12px;background:#fff;
  border-top:1px solid #eef2f7;
}
.kiosk .product-actions{display:flex;gap:7px;margin:0}
.kiosk .product-actions .btn-buy{
  flex:1;padding:7px 0;font-size:11px;font-weight:600;border-radius:2px;
  letter-spacing:.08em;transition:.15s;
}
.kiosk .btn-buy.dl{background:var(--ink);color:#fff;border:1px solid var(--ink)}
.kiosk .btn-buy.dl:hover{background:#1b2a45;border-color:#1b2a45}
.kiosk .btn-buy.vip{background:#fff;color:#3d4a5c;border:1px solid var(--line)}
.kiosk .btn-buy.vip:hover{border-color:#9fb0c6;color:var(--ink)}
.kiosk .btn-buy.vip.locked{background:#f7f9fc;color:#c0c9d6;border-color:#edf1f6;cursor:not-allowed}
.kiosk .dl-hint{display:none}

/* ---------- v6.1 封面文字可读性 ---------- */
.kiosk .product-thumb::after{
  background:linear-gradient(to top,
    rgba(4,8,14,.96) 0%,
    rgba(4,8,14,.86) 20%,
    rgba(4,8,14,.5) 42%,
    rgba(4,8,14,.12) 62%,
    rgba(4,8,14,0) 78%);
}
.kiosk .thumb-meta{bottom:15px}
.kiosk .thumb-meta .product-name{
  font-size:16px;font-weight:600;line-height:1.34;margin:0 0 7px;
  text-shadow:0 2px 14px rgba(0,0,0,.55);
}
.kiosk .thumb-meta .product-byline{
  font-size:10px;color:rgba(255,255,255,.66);letter-spacing:.12em;
}
.kiosk .product-thumb .ver-tag{
  font-size:8.5px;padding:3px 8px;letter-spacing:.18em;
  background:rgba(255,255,255,.12);
}
.kiosk .product-thumb .ver-tag.member{background:rgba(255,255,255,.92);color:#0b1220}

/* ---------- v6.2 去掉按钮条分割线，名字再大一档 ---------- */
.kiosk .product-body{border-top:0;padding:8px 12px 10px;background:#fff}
.kiosk .thumb-meta .product-name{font-size:17px}
@media(max-height:860px){
  .kiosk .thumb-meta .product-name{font-size:15px}
}

/* ---------- v6.3 细节提亮 ---------- */
.kiosk .thumb-meta .product-byline{color:rgba(255,255,255,.78)}
.kiosk .btn-buy.vip.locked{color:#a9b5c5;background:#f7f9fc}

/* ================================================================
   v7 · 社群 / 会员档位页
   ================================================================ */
.kiosk .cm-head{flex:0 0 168px;height:168px;grid-template-columns:1.25fr 1fr}
.kiosk .cm-head .ph-sub{max-width:760px}
.kiosk .cm-facts{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border-left:1px solid rgba(255,255,255,.1);align-items:center;
}
.kiosk .cm-facts .sf{padding:6px 0 6px 22px;position:relative}
.kiosk .cm-facts .sf + .sf::before{
  content:"";position:absolute;left:0;top:14%;bottom:14%;width:1px;background:rgba(255,255,255,.1);
}

/* 两档 */
.kiosk .plan-zone{padding:26px 40px 20px}
.kiosk .plan-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:26px;height:100%;
}
.kiosk .plan-card{
  background:#fff;border:1px solid var(--line);
  padding:34px 36px 30px;display:flex;flex-direction:column;
  transition:border-color .2s, box-shadow .2s;
}
.kiosk .plan-card:hover{border-color:#c4d0e0;box-shadow:0 16px 40px rgba(10,18,32,.09)}
.kiosk .plan-card.featured{
  background:#0b1220;border-color:#0b1220;
}
.kiosk .plan-top{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.kiosk .plan-tag{
  display:inline-block;font-size:10px;font-weight:700;letter-spacing:.2em;
  color:#2563eb;border:1px solid #cfdcf7;background:#f2f6ff;
  padding:4px 11px;border-radius:2px;margin-bottom:16px;
}
.kiosk .plan-card.featured .plan-tag{
  color:#0b1220;background:#fff;border-color:#fff;
}
.kiosk .plan-name h3{
  margin:0;font-size:30px;font-weight:700;letter-spacing:.06em;color:var(--ink);
}
.kiosk .plan-card.featured .plan-name h3{color:#fff}
.kiosk .plan-price{display:flex;align-items:baseline;gap:2px;white-space:nowrap}
.kiosk .plan-price .cur{font-size:22px;font-weight:600;color:var(--ink);margin-right:2px}
.kiosk .plan-price b{
  font-family:"DIN Alternate","Arial Black",Georgia,serif;
  font-size:64px;font-weight:700;line-height:.9;color:var(--ink);
  letter-spacing:-.01em;
}
.kiosk .plan-price .unit{font-size:14px;color:#8290a4;margin-left:8px;letter-spacing:.06em}
.kiosk .plan-card.featured .plan-price .cur,
.kiosk .plan-card.featured .plan-price b{color:#fff}
.kiosk .plan-card.featured .plan-price .unit{color:rgba(255,255,255,.45)}

.kiosk .plan-desc{
  margin:16px 0 0;font-size:12.5px;line-height:1.7;color:#7c8aa0;letter-spacing:.02em;
  padding-bottom:22px;border-bottom:1px solid var(--line);
}
.kiosk .plan-card.featured .plan-desc{
  color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.12);
}
.kiosk .plan-list{
  list-style:none;margin:0;padding:6px 0 0;flex:1;
}
.kiosk .plan-list li{
  position:relative;padding:14px 0 14px 26px;font-size:13.5px;
  color:#3f4c5e;letter-spacing:.02em;line-height:1.4;
  border-bottom:1px solid #f2f6fa;
}
.kiosk .plan-list li:last-child{border-bottom:0}
.kiosk .plan-list li::before{
  content:"";position:absolute;left:2px;top:22px;
  width:9px;height:5px;border-left:1.6px solid #2563eb;border-bottom:1.6px solid #2563eb;
  transform:rotate(-45deg);
}
.kiosk .plan-list li b{color:var(--ink);font-weight:700}
.kiosk .plan-card.featured .plan-list li{
  color:rgba(255,255,255,.74);border-color:rgba(255,255,255,.08);
}
.kiosk .plan-card.featured .plan-list li::before{
  border-color:#6f9bf0;
}
.kiosk .plan-card.featured .plan-list li b{color:#fff}

.kiosk .plan-cta{
  margin-top:22px;display:block;text-align:center;
  padding:15px 0;font-size:14px;font-weight:600;letter-spacing:.14em;
  background:#fff;border:1px solid var(--ink);color:var(--ink);
  border-radius:2px;transition:.18s;
}
.kiosk .plan-cta:hover{background:var(--ink);color:#fff}
.kiosk .plan-cta.solid{background:#fff;border-color:#fff;color:#0b1220}
.kiosk .plan-cta.solid:hover{background:#dde8ff;border-color:#dde8ff}

/* 开通说明条 */
.kiosk .note-bar{
  flex:0 0 104px;height:104px;
  padding:0 40px;display:flex;align-items:center;gap:48px;
  background:#f4f7fb;border-top:1px solid var(--line);
}
.kiosk .note-item{display:flex;align-items:flex-start;gap:12px;flex:1}
.kiosk .note-item i{
  font-style:normal;font-family:"DIN Alternate",Georgia,serif;
  font-size:15px;font-weight:700;color:#b8c4d4;line-height:1.5;
}
.kiosk .note-item b{
  display:block;font-size:13px;font-weight:600;color:var(--ink);letter-spacing:.06em;
}
.kiosk .note-item span{
  display:block;margin-top:6px;font-size:11px;color:#8a97a9;letter-spacing:.02em;
}
.kiosk .note-cta{
  flex:0 0 auto;display:flex;align-items:center;gap:26px;
  padding-left:40px;border-left:1px solid var(--line);
}
.kiosk .note-cta .cs-i i{color:#a3aec0}
.kiosk .note-cta .cs-i b{color:var(--ink);font-size:13px}

/* ---------- v7.1 档位卡密度 ---------- */
.kiosk .plan-top{align-items:flex-end}
.kiosk .plan-list li{padding:17px 0 17px 27px;font-size:14px}
.kiosk .plan-list li::before{top:25px}
.kiosk .plan-desc{font-size:13px;margin-top:14px}

/* ---------- v7.2 档位卡高度收口（防 CTA 被裁） ---------- */
.kiosk .plan-zone{padding:22px 40px 18px}
.kiosk .note-bar{flex:0 0 94px;height:94px}
.kiosk .plan-card{padding:30px 34px 26px}
.kiosk .plan-list li{padding:15px 0 15px 27px}
.kiosk .plan-list li::before{top:23px}
.kiosk .plan-cta{margin-top:18px;padding:14px 0}
.kiosk .plan-name h3{font-size:28px}
.kiosk .plan-price b{font-size:58px}

/* ---------- v7.3 矮屏下的档位卡压缩 ---------- */
@media(max-height:860px){
  .kiosk .cm-head{flex:0 0 132px;height:132px}
  .kiosk .cm-head .ph-title{font-size:34px}
  .kiosk .cm-head .ph-sub{font-size:11px;margin-top:8px}
  .kiosk .cm-facts .sf b{font-size:19px}
  .kiosk .cm-facts .sf span{font-size:8px;margin-top:4px}

  .kiosk .plan-zone{padding:16px 40px 14px}
  .kiosk .plan-grid{gap:18px}
  .kiosk .plan-card{padding:20px 24px 18px}
  .kiosk .plan-tag{font-size:9px;padding:3px 8px;margin-bottom:10px}
  .kiosk .plan-name h3{font-size:22px}
  .kiosk .plan-price .cur{font-size:16px}
  .kiosk .plan-price b{font-size:42px}
  .kiosk .plan-price .unit{font-size:11px;margin-left:6px}
  .kiosk .plan-desc{font-size:11px;line-height:1.55;margin-top:10px;padding-bottom:12px}
  .kiosk .plan-list{padding-top:2px}
  .kiosk .plan-list li{padding:10px 0 10px 24px;font-size:12px}
  .kiosk .plan-list li::before{top:17px;width:8px;height:4px}
  .kiosk .plan-cta{margin-top:12px;padding:11px 0;font-size:12px}
  .kiosk .note-bar{flex:0 0 78px;height:78px}
  .kiosk .note-item b{font-size:11px}
  .kiosk .note-item span{font-size:9px;margin-top:4px}
  .kiosk .note-item i{font-size:12px}
}

/* ================================================================
   v8 · 账号智控台
   ================================================================ */
.kiosk .ctl-head{flex:0 0 128px;height:128px;grid-template-columns:1fr 1fr}
.kiosk .ctl-head .ph-title{font-size:40px}
.kiosk .ctl-facts{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border-left:1px solid rgba(255,255,255,.1);align-items:center;
}
.kiosk .ctl-facts .sf{padding:4px 0 4px 22px;position:relative}
.kiosk .ctl-facts .sf + .sf::before{
  content:"";position:absolute;left:0;top:12%;bottom:12%;width:1px;background:rgba(255,255,255,.1);
}
.kiosk .ctl-facts .sf b{font-size:22px}
.kiosk .ctl-facts .sf b.up{color:#f05252}
.kiosk .ctl-facts .sf b.down{color:#22c55e}

.kiosk .ctl-main{
  flex:1;min-height:0;
  display:grid;grid-template-columns:352px minmax(0,1fr) 296px;
  gap:18px;padding:18px 40px 16px;
  background:var(--paper);
}

/* 左：账号列表 */
.kiosk .ctl-list{
  display:flex;flex-direction:column;background:#fff;
  border:1px solid var(--line);min-height:0;
}
.kiosk .ctl-list-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 16px;border-bottom:1px solid var(--line);
}
.kiosk .ctl-list-head span{font-size:12px;font-weight:600;letter-spacing:.16em;color:var(--ink)}
.kiosk .ctl-list-head em{font-style:normal;font-size:10px;color:#94a3b8;letter-spacing:.1em}
.kiosk .ctl-rows{flex:1;min-height:0;overflow-y:auto}
.kiosk .ctl-row{
  padding:14px 16px;border-bottom:1px solid #f2f6fa;cursor:pointer;
  transition:background .15s;position:relative;
}
.kiosk .ctl-row:hover{background:#f8fbff}
.kiosk .ctl-row.on{background:#f2f6ff}
.kiosk .ctl-row.on::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:#2563eb;
}
.kiosk .cr-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.kiosk .cr-top b{font-size:12.5px;font-weight:600;color:var(--ink);letter-spacing:.02em}
.kiosk .cr-status{
  font-size:9px;padding:2px 7px;border-radius:2px;letter-spacing:.1em;flex-shrink:0;
}
.kiosk .cr-status.live{background:#eafaf1;color:#12895a}
.kiosk .cr-status.warn{background:#fff3ed;color:#c2571f}
.kiosk .cr-mid{display:flex;align-items:baseline;justify-content:space-between;margin-top:9px}
.kiosk .cr-mid span{font-size:10px;color:#94a3b8;letter-spacing:.04em}
.kiosk .cr-mid b{font-size:13px;font-variant-numeric:tabular-nums;font-weight:700}
.kiosk .cr-bot{display:flex;align-items:center;gap:8px;margin-top:7px}
.kiosk .cr-bot span{font-size:10px;color:#a8b3c4}
.kiosk .cr-bot b{font-size:12px;font-weight:600;color:#475569;font-variant-numeric:tabular-nums}
.kiosk .cr-bot i{margin-left:auto;font-style:normal;font-size:9px;color:#b6c0cd}

/* 中：图表 + 持仓 */
.kiosk .ctl-center{display:flex;flex-direction:column;gap:18px;min-height:0}
.kiosk .ctl-chart{
  flex:1 1 52%;min-height:0;background:#fff;border:1px solid var(--line);
  padding:18px 20px 14px;display:flex;flex-direction:column;
}
.kiosk .ctl-chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.kiosk .ctl-chart-head b{font-size:16px;font-weight:700;color:var(--ink);letter-spacing:.02em}
.kiosk .ctl-chart-head span{display:block;margin-top:5px;font-size:10px;color:#94a3b8;letter-spacing:.06em}
.kiosk .ctl-chart-eq{text-align:right}
.kiosk .ctl-chart-eq b{font-size:26px;font-variant-numeric:tabular-nums;font-weight:700;color:var(--ink)}
.kiosk .ctl-chart-eq span{display:block;margin-top:4px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.kiosk .ctl-chart-canvas{flex:1;min-height:0;margin:14px 0 10px;position:relative}
.kiosk .spark-svg{width:100%;height:100%;display:block;overflow:visible}
.kiosk .ctl-chart-foot{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border-top:1px solid var(--line);padding-top:12px;
}
.kiosk .ctl-chart-foot span{position:relative;padding-left:14px}
.kiosk .ctl-chart-foot span:first-child{padding-left:0}
.kiosk .ctl-chart-foot span + span::before{
  content:"";position:absolute;left:0;top:14%;bottom:14%;width:1px;background:var(--line);
}
.kiosk .ctl-chart-foot i{display:block;font-style:normal;font-size:9px;color:#94a3b8;letter-spacing:.16em}
.kiosk .ctl-chart-foot b{display:block;margin-top:5px;font-size:14px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}

.kiosk .ctl-pos{flex:0 0 auto;background:#fff;border:1px solid var(--line);padding:14px 20px 16px}
.kiosk .ctl-pos-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.kiosk .ctl-pos-head span{font-size:12px;font-weight:600;letter-spacing:.16em;color:var(--ink)}
.kiosk .ctl-pos-head em{font-style:normal;font-size:10px;color:#94a3b8}
.kiosk .pos-tr{
  display:grid;grid-template-columns:1.4fr .8fr .8fr 1.2fr;
  align-items:center;padding:9px 0;border-bottom:1px solid #f4f7fb;font-size:11.5px;
}
.kiosk .pos-tr:last-child{border-bottom:0}
.kiosk .pos-tr > span:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.kiosk .pos-th{font-size:9.5px;color:#a8b3c4;letter-spacing:.14em;border-bottom:1px solid var(--line)}
.kiosk .pos-th > span:last-child{text-align:right;font-weight:400}
.kiosk .pos-sym{font-weight:600;color:var(--ink);letter-spacing:.04em}
.kiosk .pos-dir{font-size:9.5px;font-weight:700;letter-spacing:.1em}
.kiosk .pos-dir.buy{color:#dc2626}
.kiosk .pos-dir.sell{color:#16a34a}

/* 右：面板 */
.kiosk .ctl-side{display:flex;flex-direction:column;gap:16px;min-height:0}
.kiosk .side-panel{background:#fff;border:1px solid var(--line);padding:16px 18px}
.kiosk .sp-title{
  font-size:11px;font-weight:600;letter-spacing:.2em;color:#94a3b8;
  padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:14px;
}
.kiosk .quota-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}
.kiosk .quota-row span{font-size:11px;color:#7c8aa0}
.kiosk .quota-row b{font-size:12px;color:var(--ink);font-variant-numeric:tabular-nums}
.kiosk .quota-bar{height:4px;background:#eef2f7;border-radius:2px;overflow:hidden;margin-bottom:16px}
.kiosk .quota-bar:last-child{margin-bottom:0}
.kiosk .quota-bar i{display:block;height:100%;background:#2563eb}
.kiosk .quota-bar i.full{background:#c9d6e8}
.kiosk .risk-list{list-style:none;margin:0;padding:0}
.kiosk .risk-list li{
  display:flex;align-items:center;justify-content:space-between;
  padding:9px 0;border-bottom:1px solid #f4f7fb;font-size:11.5px;
}
.kiosk .risk-list li:last-child{border-bottom:0}
.kiosk .risk-list span{color:#7c8aa0}
.kiosk .risk-list b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.kiosk .risk-list b.ok{color:#12895a}
.kiosk .risk-list b.warn{color:#c2571f}
.kiosk .sp-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.kiosk .sp-btn{
  padding:10px 0;font-size:11.5px;font-weight:600;letter-spacing:.06em;
  background:#fff;border:1px solid var(--line);color:#475569;
  border-radius:2px;cursor:pointer;transition:.15s;
}
.kiosk .sp-btn:hover{border-color:#9fb0c6;color:var(--ink)}
.kiosk .sp-btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}
.kiosk .sp-btn.primary:hover{background:#1b2a45;border-color:#1b2a45}

/* 涨跌色（智控台统一） */
.kiosk .up{color:#e05252}
.kiosk .down{color:#16a34a}

/* 矮屏压缩 */
@media(max-height:860px){
  .kiosk .ctl-head{flex:0 0 104px;height:104px}
  .kiosk .ctl-head .ph-title{font-size:30px}
  .kiosk .ctl-facts .sf b{font-size:17px}
  .kiosk .ctl-main{grid-template-columns:300px minmax(0,1fr) 260px;gap:14px;padding:14px 40px 12px}
  .kiosk .ctl-row{padding:11px 14px}
  .kiosk .cr-mid{margin-top:6px}
  .kiosk .cr-bot{margin-top:5px}
  .kiosk .ctl-chart{padding:14px 16px 12px}
  .kiosk .ctl-chart-eq b{font-size:21px}
  .kiosk .pos-tr{padding:7px 0;font-size:11px}
  .kiosk .side-panel{padding:12px 14px}
  .kiosk .sp-title{padding-bottom:9px;margin-bottom:11px}
  .kiosk .risk-list li{padding:7px 0}
  .kiosk .sp-btn{padding:8px 0}
}

/* ---------- v5.10 服务页卡片防溢出（智控台/加密/破解共用） ---------- */
.kiosk .svc-card{overflow:hidden}
.kiosk .svc-list li{padding:13px 0 13px 16px}
.kiosk .svc-list li::before{top:20px}

/* ===== 信号卡 · 近 7 日收益 ===== */
.sig-daily{margin-top:12px;padding-top:12px;border-top:1px dashed #e2e8f0}
.sig-daily .sd-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.sig-daily .sd-head span{font-size:12px;color:#94a3b8;letter-spacing:.06em}
.sig-daily .sd-head b{font-size:15px;font-weight:700}
.sig-daily .sd-head b.up{color:var(--green)}
.sig-daily .sd-head b.down{color:var(--red)}
.sig-daily .sd-bars{display:flex;align-items:flex-end;gap:6px;height:52px}
.sig-daily .sd-col{flex:1 1 0;height:100%;display:flex;flex-direction:column;justify-content:flex-end}
.sig-daily .sd-col i{display:block;width:100%;border-radius:3px 3px 2px 2px;min-height:3px;background:#cbd5e1;transition:height .35s ease}
.sig-daily .sd-col.p i{background:var(--green)}
.sig-daily .sd-col.n i{background:var(--red)}
.sig-daily .sd-axis{display:flex;gap:6px;margin-top:6px}
.sig-daily .sd-axis span{flex:1 1 0;text-align:center;font-size:10.5px;color:#94a3b8;white-space:nowrap}
.sig-daily .sd-foot{display:flex;justify-content:space-between;margin-top:5px;font-size:11px;color:#94a3b8}
.kiosk .sig-daily{margin-top:14px;padding-top:14px}
.kiosk .sig-daily .sd-bars{height:62px;gap:7px}

/* ===== 智控台 · 我的账户实时总览 ===== */
.myacc-hd{display:flex;align-items:center;gap:12px;margin:0 0 10px;flex-wrap:wrap}
.myacc-hd b{font-size:16px;color:#0f172a}
.myacc-hd span{font-size:12px;color:#94a3b8}
.myacc-hd span:first-of-type{flex:1 1 auto;min-width:120px;text-align:right;padding-right:4px}
.myacc-hd .btn{margin-left:0}
.myacc-hd .btn + .btn{margin-left:0}
#myAccZone .myacc-hd .btn:last-child{margin-left:0}
/* .kiosk .btn-ghost 是给深色导航写的（白字+透明底），在白色账户区里看不见，这里改回深色实心 */
#myAccZone .myacc-hd .btn-ghost,
#myAccAddBar .myacc-hd .btn-ghost{
  background:#0f172a;border-color:#0f172a;color:#fff;
  padding:7px 16px;font-size:12.5px;border-radius:6px;line-height:1.2;
}
#myAccZone .myacc-hd .btn-ghost:hover,
#myAccAddBar .myacc-hd .btn-ghost:hover{background:#1c2b47;border-color:#1c2b47;color:#fff}
.myacc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:12px}
.myacc-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px 16px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.myacc-card .mc-hd{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.myacc-card .mc-hd b{font-size:14px;color:#0f172a}
.myacc-card .mc-tag{font-size:11px;padding:1px 7px;border-radius:9px;background:#eef2ff;color:#3730a3}
.myacc-card .mc-st{font-size:11px;padding:1px 7px;border-radius:9px;background:#e8f8ee;color:#0f7a3d;margin-left:auto}
.myacc-card .mc-st.off{background:#fde8e8;color:#b91c1c}
.myacc-card .mc-id{font-size:11.5px;color:#94a3b8;margin-bottom:8px}
.myacc-card .mc-eq{font-size:23px;font-weight:800;letter-spacing:-.4px;color:#0f172a;font-variant-numeric:tabular-nums}
.myacc-card .mc-eq small{font-size:12px;font-weight:600;color:#94a3b8;margin-left:4px}
.myacc-card .mc-rows{margin-top:9px;display:grid;gap:5px}
.myacc-card .mc-row{display:flex;justify-content:space-between;font-size:12px;color:#64748b}
.myacc-card .mc-row b{color:#0f172a;font-variant-numeric:tabular-nums}
.myacc-card .mc-row b.up{color:#e74c3c}
.myacc-card .mc-row b.down{color:#16a34a}
.myacc-pos{margin-top:10px;padding-top:9px;border-top:1px dashed #e2e8f0}
.myacc-pos .mp{display:flex;justify-content:space-between;font-size:11.5px;color:#475569;padding:2px 0}
.myacc-pos .mp b{font-variant-numeric:tabular-nums}
.myacc-pos .mp b.up{color:#e74c3c}
.myacc-pos .mp b.down{color:#16a34a}
.myacc-empty{background:#fff;border:1px dashed #cbd5e1;border-radius:12px;padding:22px 20px;font-size:13.5px;color:#475569}
.myacc-tip{font-size:12px;color:#94a3b8;margin-top:10px;line-height:1.6}
/* 智控台 9 项汇总条 */
.ctl-strip{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:8px;margin:2px 0 12px}
.ctl-strip .cs{background:#f8fafc;border:1px solid #e8edf5;border-radius:10px;padding:8px 10px;min-width:0}
.ctl-strip .cs span{display:block;font-size:11px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ctl-strip .cs b{display:block;font-size:15px;font-weight:800;color:#0f172a;letter-spacing:-.3px;margin-top:2px;
  font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ctl-strip .cs b.up{color:#e74c3c}
.ctl-strip .cs b.down{color:#16a34a}
@media (max-width:1500px){.ctl-strip{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (max-width:1100px){.ctl-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ===== 策略卡最终布局收口（只作用于 #stratGrid，避免影响左侧筛选栏） ===== */
/* 注意：body.kiosk 下原有 .kiosk .product-grid 用的是 grid-auto-flow:column + 横向货架，
   这里必须用 id 选择器 + 显式覆盖 auto-flow，否则会被 1408 行的规则顶回 2 行横向滚动。 */
.product-grid#stratGrid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  grid-template-rows:none;
  grid-auto-flow:row;
  grid-auto-columns:auto;
  justify-content:stretch;
  gap:24px 18px;
  align-items:start;
  height:auto;
  min-height:0;
}
@media(max-width:1500px){.product-grid#stratGrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1240px){.product-grid#stratGrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.product-grid#stratGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.product-grid#stratGrid{grid-template-columns:1fr}}

.product-grid#stratGrid .product-card{
  background:transparent;border:0;border-radius:0;box-shadow:none;
  overflow:visible;padding:0;display:flex;flex-direction:column;
}
.product-grid#stratGrid .product-card:hover{box-shadow:none;transform:none;border:0}
.product-grid#stratGrid .product-thumb{width:100%;flex:0 0 auto}
.product-grid#stratGrid .product-img{aspect-ratio:16/10;width:100%;object-fit:cover;display:block;border-radius:3px}
.product-grid#stratGrid .product-body{padding:14px 0 0;display:block}
.product-grid#stratGrid .product-actions{display:flex;gap:10px;margin:0}
.product-grid#stratGrid .dl-hint{margin-top:12px;font-size:11.5px;color:#94a3b8;display:flex;align-items:center;gap:8px}

/* ---- 分页模式下卡片紧凑化（3-5 列都能一屏放下） ---- */
.product-grid#stratGrid .product-img{aspect-ratio:16/10;border-radius:3px}
.product-grid#stratGrid .thumb-meta{padding:8px 10px}
.product-grid#stratGrid .product-thumb .thumb-meta .product-name{
  font-size:12.5px;line-height:1.3;min-height:0;margin:0 0 2px;
  -webkit-line-clamp:1;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;
}
.product-grid#stratGrid .thumb-meta .product-byline{font-size:10px;line-height:1.2}
.product-grid#stratGrid .ver-tag{font-size:9px;padding:2px 7px}
.product-grid#stratGrid .product-body{padding:9px 0 0}
.product-grid#stratGrid .product-actions{gap:7px}
.product-grid#stratGrid .product-actions .btn-buy{padding:7px 0;font-size:11.5px;line-height:16px}
.product-grid#stratGrid .dl-hint{margin-top:8px;font-size:10.5px;gap:5px}
.product-grid#stratGrid .dl-hint i{width:3px;height:3px}

/* ---- 分页条 ---- */
.strat-pager{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:22px 0 4px;margin-top:20px;border-top:1px solid var(--line);
}
.strat-pager .pg-btn{
  padding:7px 14px;font-size:12.5px;border:1px solid #cbd5e1;border-radius:6px;
  background:#fff;color:#0f172a;cursor:pointer;letter-spacing:.02em;
}
.strat-pager .pg-btn:hover:not(:disabled){border-color:#0f172a}
.strat-pager .pg-btn:disabled{opacity:.4;cursor:default}
.strat-pager .pg-num{
  min-width:34px;height:32px;padding:0 8px;font-size:12.5px;border:1px solid #cbd5e1;
  border-radius:6px;background:#fff;color:#0f172a;cursor:pointer;font-variant-numeric:tabular-nums;
}
.strat-pager .pg-num:hover{border-color:#0f172a}
.strat-pager .pg-num.on{background:#0f172a;border-color:#0f172a;color:#fff;font-weight:600}
.strat-pager .pg-gap{color:#94a3b8;font-size:12px;padding:0 2px}
.strat-pager .pg-info{font-size:12px;color:#94a3b8;margin-left:4px}
.strat-pager .pg-size{
  margin-left:auto;padding:6px 12px;font-size:12.5px;border:1px solid #cbd5e1;
  border-radius:6px;background:#fff;color:#0f172a;
}

/* ---- 信号卡：实时同步状态 ---- */
.signal-status.live{background:#ecfdf5;border-color:#a7f3d0;color:#047857}
.signal-status.off{background:#f1f5f9;border-color:#cbd5e1;color:#64748b}
.signal-status.demo{background:#fff7ed;border-color:#fed7aa;color:#c2410c}
.sig-live-dot{
  display:inline-block;width:6px;height:6px;border-radius:50%;background:#10b981;
  margin-left:6px;vertical-align:middle;box-shadow:0 0 0 0 rgba(16,185,129,.6);
  animation:sigPulse 1.8s infinite;
}
.sig-live-dot.off{background:#94a3b8;animation:none;box-shadow:none}
@keyframes sigPulse{
  0%{box-shadow:0 0 0 0 rgba(16,185,129,.55)}
  70%{box-shadow:0 0 0 7px rgba(16,185,129,0)}
  100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}
}
.pos-empty{font-size:11.5px;color:#94a3b8;padding:6px 0}

/* 首页货架区改为纵向滚动（原来 overflow-y:hidden，3 列纵向排布会被裁掉行） */
body.kiosk .grid-zone:has(> #stratGrid){overflow-y:auto;overflow-x:hidden}
body.kiosk #stage{overflow-y:auto}

/* ===== 智控台：我的账户区不要被 .kiosk .grid-zone 的 flex:1 撑成整屏 ===== */
body.kiosk #myAccZone,
body.kiosk #myAccGuest,
body.kiosk #myAccAddBar{
  flex:0 0 auto;
  overflow:visible;
  height:auto;
  padding:16px 40px;
}
.myacc-form{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:12px}
@media(max-width:1200px){.myacc-form{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.myacc-form{grid-template-columns:1fr 1fr}}
.myacc-form .mkt-input{
  height:38px;padding:0 12px;font-size:13px;border:1px solid #cbd5e1;border-radius:6px;
  background:#fff;color:#0f172a;width:100%;box-sizing:border-box;
}
.myacc-form .btn{height:38px;font-size:13px}
#myAccAddBar .myacc-hd span{font-size:12px;color:#94a3b8}

/* 能力模块区：去掉整屏占位造成的大片空白 */
body.kiosk .svc-zone{flex:0 0 auto;overflow:visible;height:auto}


/* ================================================================
   v7 · 策略卡：封面固定 4:3，一行 4 个（缩略图为 4:3 不再被拉成长条）
   ================================================================ */
.kiosk #stratGrid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.kiosk #stratGrid .product-card{height:100%}
.kiosk #stratGrid .product-thumb{
  flex:0 0 auto!important;height:auto!important;min-height:0!important;max-height:none!important;
  aspect-ratio:4/3;overflow:hidden;
}
.kiosk #stratGrid .product-img{
  width:100%!important;height:100%!important;aspect-ratio:4/3!important;
  object-fit:cover!important;display:block;
}
@media(max-width:1180px){
  .kiosk #stratGrid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:900px){
  .kiosk #stratGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:560px){
  .kiosk #stratGrid{grid-template-columns:repeat(1,minmax(0,1fr))!important}
}

/* ================================================================
   v5.6 信号卡整体放大（字号 / 间距 / 图表 / 少量卡片时加宽）
   ================================================================ */
.kiosk .signal-grid{gap:22px}
.kiosk .signal-card{padding:22px 22px 16px}
.kiosk .signal-head h4{font-size:19px;line-height:1.35}
.kiosk .signal-head .broker{font-size:11px;line-height:1.5;margin-top:4px}
.kiosk .signal-status{font-size:10px;padding:4px 9px}
.kiosk .signal-metrics{margin:18px 0 0}
.kiosk .sm-metric{padding:16px 0}
.kiosk .sm-metric + .sm-metric{padding-left:16px}
.kiosk .sm-metric span{font-size:10px}
.kiosk .sm-metric b{font-size:26px;margin-top:7px;line-height:1.12}
.kiosk .signal-card .signal-chart{height:150px;margin:14px 0 6px;background:transparent;border-radius:0}
.kiosk .signal-card .spark{flex:0 0 150px;height:150px;margin:14px 0 4px}
.kiosk .signal-card .signal-positions h5{font-size:11px}
.kiosk .signal-card .pos-row{font-size:11px;padding:6px 9px}
.kiosk .signal-card .pos-empty{font-size:11px}
.kiosk .signal-foot .muted{font-size:11px}
.kiosk .sub-btn{padding:8px 20px;font-size:12px}
.kiosk .signal-card .sig-range{
  font-style:normal;display:block;font-size:11.5px;line-height:1.45;
  color:#94a3b8;margin-top:4px;letter-spacing:0;font-weight:400;
}

/* 卡片始终四列、靠左排列（不因数量少而居中放大） */
.kiosk .signal-grid{grid-template-columns:repeat(4,minmax(0,1fr));justify-content:start}

/* ===== 策略多图（2026-10-27）：右上角标签组 + 灯箱 ===== */
.product-thumb .jk-thumb-tags{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;align-items:flex-end;gap:6px;z-index:3}
.product-thumb .jk-thumb-tags .ver-tag{position:static;top:auto;left:auto}
.jk-img-count{background:rgba(15,23,42,.82);color:#fff;font-size:11.5px;line-height:1;padding:5px 8px;border-radius:12px;letter-spacing:.3px;box-shadow:0 2px 10px rgba(0,0,0,.35);white-space:nowrap}

/* ================================================================
   v6 · eaquan 式长滚动（2026-10-27）：解除 kiosk 舞台，全站统一
   ================================================================ */
body.kiosk{height:auto!important;overflow:auto!important;min-height:100vh;display:block}
.kiosk #stage{position:static!important;left:auto!important;top:auto!important;width:auto!important;height:auto!important;transform:none!important;display:block;overflow:visible}

/* 顶栏 eaquan 化：sticky 深色 + 居中 1280 容器 */
.kiosk .topbar{position:sticky;top:0;z-index:50;height:64px;flex:0 0 auto;background:#0b1220;border-bottom:1px solid rgba(255,255,255,.08)}
.kiosk .tb-inner{max-width:1280px;margin:0 auto;height:64px;padding:0 28px;gap:36px}
.kiosk .nav{gap:26px;justify-content:center}
.kiosk .nav a{font-size:14px;color:rgba(255,255,255,.72);padding:20px 2px;border-bottom:2px solid transparent}
.kiosk .nav a:hover{color:#fff;border-color:rgba(255,255,255,.4)}
.kiosk .nav a.on{color:#f0c96a;border-color:#b8860b}
.kiosk .brand-badge{background:linear-gradient(135deg,#b8860b,#f0c96a);color:#0b1220;font-weight:800}
.kiosk .brand-tag{display:none}
.kiosk .top-actions{gap:10px}
.kiosk .top-actions .btn{border-radius:4px;font-size:13.5px;padding:8px 18px}

/* 内容主体限宽居中 */
.kiosk .hero,.kiosk .ticker-bar,.kiosk .filter-bar,.kiosk .grid-zone,.kiosk .page-head,.kiosk .signal-section,.kiosk .note-bar,.kiosk .bottom-bar,.kiosk .plan-zone,.kiosk .rank-wrap,.kiosk .console-zone,.kiosk .enc-zone,.kiosk .crack-zone{max-width:1280px;margin-left:auto;margin-right:auto;width:100%;box-sizing:border-box}
.kiosk .note-bar{flex:0 0 auto;height:auto;padding:22px 40px}

/* 页脚通栏 */
.kiosk .bottom-bar{background:#0b1220;color:rgba(255,255,255,.6);border-top:none;margin-bottom:0}
.kiosk .bottom-bar .bb-left b{color:#fff}
.kiosk .bottom-bar .bb-left span{color:rgba(255,255,255,.45)}
.kiosk .bottom-bar .cs-i b{color:#f0c96a}
.kiosk .bottom-bar .cs-time{color:rgba(255,255,255,.45)}

/* 排行页长滚动适配 */
.rank-wrap{padding:26px 28px 10px}
.rank-table-wrap{flex:0 0 auto;min-height:200px}
.rank-table tbody td{white-space:normal}

/* 响应式 */
@media(max-width:1100px){
  .kiosk .nav{display:none}
  .kiosk .tb-inner{justify-content:space-between}
}

/* 信号页长滚动适配：网格自适应 + 末尾虚线占位卡 */
.kiosk .signal-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-template-rows:auto;height:auto;align-items:stretch}
.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(184,134,11,.45);border-radius:3px;background:rgba(184,134,11,.04);
  color:#b8860b;font-size:13px;line-height:2.1;min-height:220px;padding:24px;letter-spacing:.04em;
}

/* 信号页网格：限宽 2 列居中，占位卡与卡片同高对齐 */
.kiosk .signal-grid{grid-template-columns:repeat(auto-fill,minmax(320px,380px));justify-content:center;grid-auto-rows:1fr;height:auto}

/* 信号页：固定 2 列（各 380px）居中 */
.kiosk .signal-grid{grid-template-columns:repeat(2,minmax(0,380px))!important;justify-content:center}

/* ================================================================
   v8 · eaquan 浅色风卡片（2026-10-27）
   ================================================================ */
/* 策略卡 */
.product-card{background:#fff;border:none!important;border-radius:14px;overflow:hidden;
  box-shadow:0 1px 2px rgba(16,24,40,.04);display:flex;flex-direction:column;
  transition:box-shadow .22s,transform .22s}
.product-card:hover{box-shadow:0 12px 30px rgba(16,24,40,.1);transform:translateY(-2px)}
.product-card .product-thumb{position:relative;aspect-ratio:16/10;overflow:hidden;background:#eef2ff}
.product-card .product-img{width:100%;height:100%;object-fit:cover;display:block}
.product-card .thumb-meta{position:absolute;left:0;right:0;bottom:0;padding:30px 14px 11px;
  background:linear-gradient(180deg,transparent,rgba(4,8,20,.78));z-index:2}
.product-card .thumb-meta .product-name{color:#fff;font-size:14.5px;font-weight:700;line-height:1.35;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.product-card .thumb-meta .product-byline{color:rgba(255,255,255,.72);font-size:10.5px;margin-top:4px;letter-spacing:.02em}
/* 角标 */
.product-card .ver-tag{position:absolute;top:10px;left:10px;z-index:3;font-size:10.5px;font-weight:600;
  padding:4px 9px;border-radius:5px;letter-spacing:.02em}
.product-card .ver-tag.normal{background:#16a34a;color:#fff}
.product-card .ver-tag.member{background:linear-gradient(135deg,#b8860b,#e0b64a);color:#fff}
.product-card .jk-thumb-tags{position:absolute;top:10px;right:10px;display:flex;flex-direction:column;align-items:flex-end;gap:6px;z-index:3}
.product-card .jk-thumb-tags .ver-tag{position:static;top:auto;left:auto;background:rgba(4,8,20,.6);color:#fff;backdrop-filter:blur(4px)}
/* 信息区 */
.product-card .product-body{padding:0 0 12px;display:flex;flex-direction:column;flex:1}
.product-card .p-tags{display:flex;align-items:center;gap:6px;padding:12px 14px 0;flex-wrap:wrap}
.product-card .p-cat{font-size:10.5px;color:#6b7280;background:#f4f5f7;border-radius:4px;padding:3px 8px;letter-spacing:.02em}
.product-card .p-price{margin-left:auto;font-size:12px;font-weight:700;color:#2f6bff}
.product-card .p-price.free{color:#16a34a}
.product-card .p-title{display:none}
.product-card .p-desc{padding:9px 14px 0;font-size:12px;color:#8a8f99;line-height:1.65;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;height:40px}
.product-card .p-author{display:flex;align-items:center;gap:7px;padding:11px 14px 0;font-size:11.5px;color:#9ca3af}
.product-card .p-author i{width:18px;height:18px;border-radius:50%;flex:0 0 auto}
.product-card .p-author b{color:#4b5563;font-weight:600;font-size:11.5px}
.product-card .product-actions{display:flex;gap:8px;padding:13px 14px 0;margin-top:auto}
.product-card .btn-buy{flex:1;border-radius:8px;font-size:12.5px;padding:9px 0;cursor:pointer;font-family:inherit;font-weight:600;border:none;transition:.18s}
.product-card .btn-buy.dl{background:#2f6bff;color:#fff}
.product-card .btn-buy.dl:hover{background:#1e54e6}
.product-card .btn-buy.vip{background:#f4f5f7;color:#6b7280}
.product-card .btn-buy.vip:hover{background:#eceef2;color:#374151}
.product-card .btn-buy.vip.locked{background:#fff7ed;color:#c2410c}
.product-card .dl-hint{display:none}

/* 筛选条浅色 */
.filter-bar{background:#fff;border:1px solid #eef0f4!important;border-radius:12px;padding:12px 14px!important;
  box-shadow:0 1px 2px rgba(16,24,40,.03);margin-bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.filter-bar .fb-select{border:1px solid #e5e7eb!important;background:#fff;border-radius:8px;font-size:12.5px;color:#4b5563;padding:8px 10px;outline:none;font-family:inherit}
.filter-bar .fb-search input{border:1px solid #e5e7eb;background:#fff;border-radius:8px;padding:9px 12px;font-size:12.5px;outline:none;width:230px;font-family:inherit}
.filter-bar .fb-search input:focus,.filter-bar .fb-select:focus{border-color:#c7d2fe;box-shadow:0 0 0 3px rgba(47,107,255,.08)}
.filter-bar .cat-chips{display:flex;gap:8px;flex-wrap:wrap}
.filter-bar .cat-chip{border:1px solid #e5e7eb;background:#fff;color:#6b7280;border-radius:20px;font-size:12px;padding:6px 14px;cursor:pointer;transition:.16s;font-family:inherit}
.filter-bar .cat-chip.on{border-color:#111827;background:#111827;color:#fff;font-weight:600}
.filter-bar .cat-chip:hover{border-color:#d1d5db;color:#374151}
.filter-bar .result-count{font-size:12px;color:#9ca3af;white-space:nowrap}
/* 分页 */
.strat-pager{margin:26px 0 8px;display:flex;justify-content:center;align-items:center;gap:8px}
.strat-pager button,.strat-pager .pg{border:1px solid #e5e7eb;background:#fff;color:#4b5563;border-radius:8px;
  font-size:12.5px;padding:8px 14px;cursor:pointer;font-family:inherit;min-width:38px}
.strat-pager .pg.on,.strat-pager button.on{background:#111827;border-color:#111827;color:#fff;font-weight:600}
.strat-pager select{border:1px solid #e5e7eb;border-radius:8px;padding:7px 8px;font-size:12px;color:#6b7280;font-family:inherit;background:#fff}

/* 信号 & 工具市场卡 */
.eq-sm-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.sm-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 1px 2px rgba(16,24,40,.04);transition:.22s;display:flex;flex-direction:column}
.sm-card:hover{box-shadow:0 12px 30px rgba(16,24,40,.1);transform:translateY(-2px)}
.sm-cover{position:relative;aspect-ratio:16/10;overflow:hidden;background:#eef2ff}
.sm-cover img{width:100%;height:100%;object-fit:cover}
.sm-free{position:absolute;top:10px;right:10px;background:#16a34a;color:#fff;font-size:10.5px;font-weight:600;padding:4px 9px;border-radius:5px;z-index:2}
.sm-title{position:absolute;left:0;right:0;bottom:0;padding:28px 13px 10px;color:#fff;font-size:14px;font-weight:700;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  background:linear-gradient(180deg,transparent,rgba(4,8,20,.78));text-shadow:0 1px 8px rgba(0,0,0,.4)}
.sm-eyes{position:absolute;left:13px;bottom:34px;color:rgba(255,255,255,.72);font-size:10.5px;z-index:2}
.sm-body{padding:12px 14px 14px}
.sm-cat{font-size:10.5px;color:#6b7280;background:#f4f5f7;border-radius:4px;padding:3px 8px}
.sm-desc{font-size:12px;color:#8a8f99;line-height:1.65;margin-top:9px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:39px}

@media(max-width:1180px){
  .eq-sm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .eq-sm-grid{grid-template-columns:1fr}
}

/* ===== v8b 视觉修正 ===== */
/* 社群卡：标题黑字 + 舒展留白 */
.community{padding:26px 24px 24px!important;min-height:186px;display:flex;flex-direction:column}
.community .k{color:#111827!important;font-size:15px;font-weight:700}
.community .s{color:#6b7280!important;font-size:12px;margin-top:8px;line-height:1.7}
.community .socials{margin-top:auto;padding-top:20px}
/* 卡片底部提示行彻底隐藏（避免高度不齐） */
.product-card .dl-hint{display:none!important}
/* 描述固定两行，不出现半行 */
.product-card .p-desc{height:39px;line-height:1.6}
/* 信号卡：订阅数移到标题行右侧 */
.sm-eyes{left:auto;right:13px;bottom:11px;color:rgba(255,255,255,.75);font-size:10.5px;z-index:3}
.sm-title{padding-right:64px}
/* 排行列表描述严格两行 */
.rank-item .s{-webkit-line-clamp:2!important;max-height:34px;overflow:hidden!important}
/* 任务中心贴边不遮内容 */
.float-task{right:10px;top:180px;width:64px;padding:12px 8px;font-size:10px}
.float-task .em{font-size:19px;margin-bottom:4px}

/* ===== v8c 细节 + 二级页顶栏浅色统一 ===== */
.product-card .p-desc{height:41px}
.rank-item .m{padding-right:34px}
.rank-item .v{padding-top:0;align-self:flex-end}
/* 二级页顶栏：白色（与首页一致） */
.kiosk .topbar{background:#fff!important;border-bottom:1px solid #eef0f4!important}
.kiosk .brand-text{color:#111827!important;font-weight:800}
.kiosk .brand-text em{color:#9ca3af!important}
.kiosk .brand-badge{background:#111827!important;color:#fff!important;font-family:Georgia,serif}
.kiosk .nav a{color:#6b7280!important}
.kiosk .nav a:hover{color:#111827!important;border-color:#d1d5db!important}
.kiosk .nav a.on{color:#111827!important;font-weight:600;border-color:#111827!important}
.kiosk .top-actions .btn-ghost{background:#fff;color:#374151;border:1px solid #e5e7eb}
.kiosk .top-actions .btn-primary{background:#2f6bff;color:#fff;border:none;box-shadow:none}
/* 二级页底部联系条浅色 */
.kiosk .bottom-bar{background:#fff!important;border-top:1px solid #eef0f4!important;color:#9ca3af!important}
.kiosk .bottom-bar .bb-left b{color:#111827!important}
.kiosk .bottom-bar .bb-left span{color:#9ca3af!important}
.kiosk .bottom-bar .cs-i b{color:#374151!important}
.kiosk .bottom-bar .cs-time{color:#9ca3af!important}

/* ===== v8d 排行卡对齐 ===== */
.rank-item .m{padding-right:10px!important;min-width:0}
.rank-item .v{align-self:flex-start!important;padding-top:3px!important;min-width:46px;justify-content:flex-end}
.rank-item .s{max-height:32px}

/* ===== v8e 移动端修正 ===== */
body{min-width:0!important}
@media(max-width:768px){
  .container{padding:0 16px!important;max-width:100%!important}
  .hero-grid{grid-template-columns:1fr!important;gap:16px!important}
  .news{padding:20px 18px 18px!important}
  .news h1{font-size:19px!important}
  .news-banner{height:158px!important}
  .news-banner .txt{left:20px!important}
  .news-banner .txt b{font-size:22px!important}
  .news-banner .txt span{font-size:14px!important}
  .news-banner .art{width:250px!important;height:190px!important;right:-40px!important;top:-10px!important}
  .news-banner .art i:nth-child(1){width:130px!important;height:130px!important;right:30px!important;top:20px!important}
  .news-banner .art i:nth-child(2){width:80px!important;height:80px!important;right:130px!important;top:60px!important}
  .news-banner .art i:nth-child(3){width:54px!important;height:54px!important;right:16px!important;top:96px!important}
  .news-foot{flex-direction:column;gap:12px;align-items:flex-start!important}
  .pills{flex-wrap:wrap}
  .rank-card,.community{padding:18px 16px!important}
  .sec-hd{margin:30px 0 14px!important}
  .sec-hd h2{font-size:19px!important}
  .sec-hd .left{gap:12px!important}
  .seg button{padding:6px 12px;font-size:12px}
  .filter-bar{padding:10px!important;gap:10px}
  .filter-bar .fb-left,.filter-bar .fb-right{width:100%;flex-wrap:wrap;gap:8px}
  .filter-bar .fb-search{flex:1;min-width:150px}
  .filter-bar .fb-search input{width:100%!important}
  .filter-bar .result-count{display:none}
  .tut-grid{grid-template-columns:1fr 1fr!important}
  .tut{padding:18px 14px 16px!important;min-height:auto!important}
  .tut b{font-size:13px;min-height:auto}
  .tut .no{font-size:22px;right:12px;top:12px}
  .foot .container{padding:26px 16px 18px!important;gap:24px}
  .foot .cr{padding:14px 16px!important}
  .float-task{display:none!important}
}
@media(max-width:420px){
  .tut-grid{grid-template-columns:1fr!important}
}

/* ===== v8f 移动端宽度强制 ===== */
html,body{overflow-x:hidden}
@media(max-width:768px){
  main.container,.hero-grid,.side,.news,.community,.rank-card{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box}
  .hero-grid{display:grid!important;grid-template-columns:1fr!important}
}

/* ===== v8g 移动端 logo 与社群卡 ===== */
.logo .txt{white-space:nowrap}
@media(max-width:768px){
  .logo .txt em{display:none}
  .logo .txt{font-size:18px}
  .logo .mark{width:34px;height:34px;font-size:13px}
  .community{min-height:auto!important}
  .community .socials{margin-top:16px!important;padding-top:0!important}
}
