/* === 强隔离 v0.7.9.2：首页与工作区共存 (稳定版) === */
body { overflow-x: hidden; margin: 0; padding: 0; }

/* panel-home: 全宽容器 + 内层 1400 居中 */
#panel-home {
  display: none;
  width: 100%;
  box-sizing: border-box;
  padding: 16px;
  background: var(--bg-primary);
}
#panel-home.active {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: min-content;
  gap: 14px;
  max-width: 1400px;
  margin: 0 auto;
}
#panel-home * { box-sizing: border-box; }

/* 工作区：保持原有的 main-container 不动 */
.main-container {
  width: 100%;
}

/* 工作区上方加分割标题 */
.workspace-anchor {
  width: 100%;
  max-width: 1400px;
  margin: 30px auto 16px;
  padding: 0 16px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.workspace-anchor::before,
.workspace-anchor::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--border-color);
}
.workspace-anchor-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ============================================================
   首页 panel-home 样式 · v0.7.9 (V2 布局)
   ============================================================ */

/* 旧 #panel-home 定义已合并到顶部隔离规则 */

/* 顶部细横幅（替代原高级版大卡） */
.home-promo-bar {
  grid-column: span 12;
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 16px; border-radius: 8px;
  background: linear-gradient(90deg, rgba(245,158,11,.15), rgba(255,77,77,.10));
  border: 1px solid rgba(245,158,11,.3);
  font-size: 13px; color: var(--text-primary);
}
.home-promo-bar a { color: var(--color-gold); font-weight: 600; cursor: pointer; }
.home-promo-bar .pb-close { color: var(--text-muted); cursor: pointer; padding: 0 6px; }
.home-promo-bar .pb-close:hover { color: var(--text-primary); }

.home-card {
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 14px 16px;
  display: flex; flex-direction: column;
  min-height: 0;
  transition: border-color .2s;
 min-width:0; overflow:hidden;}
.home-card:hover { border-color: var(--text-muted); }

.card-header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 10px; padding-bottom: 8px;
  border-bottom: 1px dashed var(--border-color);
}
.card-title { font-size: 14px; font-weight: 700; color: var(--text-primary); display:flex; align-items:center; gap:6px; }
.card-sub { font-size: 11px; color: var(--text-muted); }
.card-body { flex: 1; }
.card-loading { text-align: center; padding: 30px 0; color: var(--text-muted); font-size: 12px; }

/* 卡片占位（PC 网格）*/
.card-pulse   { grid-column: span 7; }
.card-snapshot{ grid-column: span 5; }
.card-vip-picks { grid-column: span 12; }
.card-emotion-trend { grid-column: span 12; }
.card-top-rank { grid-column: span 12; }
  display: none !important;
.card-tiers   { grid-column: span 5; }
.card-strength{ grid-column: span 5; }
.card-rank    { grid-column: span 7; }
.card-models  { grid-column: span 7; }
.card-review  { grid-column: span 5; }
.card-tools   { grid-column: span 12; }

/* ===== ① 大盘体检（ECharts 仪表盘）===== */
.pulse-wrap {
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: center;
}
#pulseChart { width: 100%; height: 200px; }
.pulse-mini { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pulse-cell {
  background: var(--bg-secondary); border-radius: 8px;
  padding: 10px 8px; text-align: center;
}
.pulse-cell .num { font-size: 20px; font-weight: 700; font-family: 'Courier New', monospace; }
.pulse-cell .lb { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.pulse-cell.up    .num { color: var(--color-up); }
.pulse-cell.down  .num { color: var(--color-down); }
.pulse-cell.blast .num { color: var(--color-warning); }
.pulse-cell.money .num { color: var(--color-info); }
.pulse-extra {
  grid-column: span 2; padding: 8px 10px; margin-top: 4px;
  background: var(--bg-secondary); border-radius: 6px;
  font-size: 12px; color: var(--text-secondary);
  display: flex; justify-content: space-between; align-items: center;
}
.pulse-extra b { color: var(--color-up); margin: 0 2px; }
.mood-badge { padding: 3px 9px; border-radius: 10px; font-size: 11px; font-weight: 600; }
.mood-hot     { background: rgba(220,38,38,.15); color: #ff6b6b; }
.mood-warm    { background: rgba(245,158,11,.15); color: #f59e0b; }
.mood-neutral { background: rgba(148,163,184,.15); color: var(--text-secondary); }
.mood-cold    { background: rgba(0,179,134,.15); color: var(--color-down); }

/* ===== ② 涨停梯队（横向柱状条）===== */
.tier-row { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.tier-label { width: 56px; font-size: 13px; font-weight: 600; color: var(--text-primary); }
.tier-label.t-high { color: #ff4d4d; }
.tier-label.t-mid  { color: #f97316; }
.tier-bar-wrap { flex: 1; height: 18px; background: var(--bg-secondary); border-radius: 4px; overflow: hidden; position: relative; }
.tier-bar { height: 100%; background: linear-gradient(90deg, #ff4d4d, #f97316); border-radius: 4px; transition: width .6s; }
.tier-bar.t-1 { background: #f97316; }
.tier-bar.t-2 { background: #ff6b6b; }
.tier-bar.t-3 { background: #ff4d4d; }
.tier-bar.t-4 { background: linear-gradient(90deg, #ff4d4d, #dc2626); }
.tier-count { width: 40px; text-align: right; font-size: 13px; font-weight: 700; color: var(--text-primary); font-family: 'Courier New', monospace; }
.tier-top {
  margin-top: 8px; padding: 10px 12px;
  background: linear-gradient(90deg, rgba(255,77,77,.12), rgba(245,158,11,.08));
  border-radius: 6px; border-left: 3px solid #ff4d4d;
  font-size: 12px; display: flex; justify-content: space-between; align-items: center;
}
.tier-top-name { font-weight: 700; color: var(--text-primary); }
.tier-top-tag { color: #ff4d4d; font-weight: 600; }

/* ===== ③ 评分排行 ===== */
.rank-item {
  display: grid; grid-template-columns: 28px 1fr auto;
  gap: 10px; align-items: center;
  padding: 9px 6px; border-bottom: 1px solid var(--border-color);
  cursor: pointer; transition: background .15s;
}
.rank-item:hover { background: var(--bg-hover); }
.rank-item:last-child { border-bottom: none; }
.rank-num {
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--bg-secondary); color: var(--text-secondary);
  font-size: 11px; font-weight: 700; font-family: 'Courier New', monospace;
  display: flex; align-items: center; justify-content: center;
}
.rank-num.top1 { background: #f59e0b; color: #000; }
.rank-num.top2 { background: #cbd5e1; color: #000; }
.rank-num.top3 { background: #b45309; color: #fff; }
.rank-stock { min-width: 0; }
.rank-stock-line1 { display: flex; align-items: baseline; gap: 8px; margin-bottom: 3px; }
.rank-stock-name { font-size: 13px; font-weight: 700; color: var(--text-primary); }
.rank-stock-code { font-size: 11px; color: var(--text-muted); font-family: 'Courier New', monospace; }
.rank-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.chip {
  padding: 2px 7px; border-radius: 10px; font-size: 11px; font-weight: 500;
  border: 1px solid; white-space: nowrap;
}
.chip-theme    { color: #f59e0b; border-color: rgba(245,158,11,.4); background: rgba(245,158,11,.08); }
.chip-pattern  { color: #a855f7; border-color: rgba(168,85,247,.4); background: rgba(168,85,247,.08); }
.chip-strength { color: #ff4d4d; border-color: rgba(255,77,77,.4); background: rgba(255,77,77,.08); }
.chip-volume   { color: #3b82f6; border-color: rgba(59,130,246,.4); background: rgba(59,130,246,.08); }
.chip-position { color: var(--text-secondary); border-color: var(--border-color); background: var(--bg-secondary); }
.rank-score { text-align: right; min-width: 50px; }
.rank-score-num { font-size: 17px; font-weight: 700; font-family: 'Courier New', monospace; color: var(--color-up); }
.rank-score-lb { font-size: 10px; color: var(--text-muted); }

/* 评分排行转化锚点（游客 + 移动端用） */
.rank-locked-row {
  margin-top: 8px; padding: 12px;
  background: linear-gradient(180deg, rgba(245,158,11,.10), rgba(245,158,11,.02));
  border: 1px dashed rgba(245,158,11,.4);
  border-radius: 8px; text-align: center;
}
.rank-locked-row .rl-title { font-size: 12px; color: var(--color-gold); margin-bottom: 6px; }
.rank-locked-row .rl-btn {
  padding: 6px 14px; background: var(--color-gold); color: #fff;
  border: none; border-radius: 5px; font-size: 12px; font-weight: 600; cursor: pointer;
}

/* ===== ④ 强度分布（环形 + 列表） ===== */
.strength-wrap { display: grid; grid-template-columns: 130px 1fr; gap: 14px; align-items: center; }
#strengthChart { width: 130px; height: 130px; }
.strength-list { display: flex; flex-direction: column; gap: 6px; }
.strength-row {
  display: grid; grid-template-columns: 16px 1fr auto auto;
  gap: 8px; align-items: center; padding: 4px 0;
  font-size: 12px;
}
.strength-dot { width: 10px; height: 10px; border-radius: 50%; }
.strength-label { color: var(--text-secondary); }
.strength-count { font-weight: 700; font-family: 'Courier New', monospace; color: var(--text-primary); min-width: 38px; text-align: right; }
.strength-pct { color: var(--text-muted); font-size: 11px; min-width: 38px; text-align: right; }
.strength-structure {
  margin-top: 8px; padding: 6px 10px; text-align: center;
  background: var(--bg-secondary); border-radius: 6px;
  font-size: 12px; color: var(--text-secondary);
}
.strength-structure b { color: var(--color-info); margin-left: 4px; }

/* ===== ⑤ AI 模型 TOP ===== */
.model-item {
  padding: 10px 12px; margin-bottom: 7px;
  background: var(--bg-secondary); border-radius: 8px;
  border-left: 3px solid var(--text-muted);
  cursor: pointer; transition: all .2s;
  display: flex; justify-content: space-between; align-items: center;
}
.model-item:hover { background: var(--bg-hover); }
.model-item.r-spp { border-left-color: #ff4d4d; }
.model-item.r-s   { border-left-color: #f59e0b; }
.model-item.r-a   { border-left-color: #3b82f6; }
.model-info { flex: 1; min-width: 0; }
.model-name { font-size: 13px; font-weight: 600; color: var(--text-primary); margin-bottom: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.model-meta { font-size: 11px; color: var(--text-muted); }
.model-meta .hits { color: var(--color-up); font-weight: 600; }
.rating-badge {
  flex-shrink: 0; margin-left: 10px;
  padding: 4px 8px; border-radius: 4px; font-size: 11px; font-weight: 700;
  background: var(--bg-card); border: 1px solid var(--border-color);
}
.rating-spp { color: #ff4d4d; border-color: #ff4d4d; }
.rating-s   { color: #f59e0b; border-color: #f59e0b; }
.rating-a   { color: #3b82f6; border-color: #3b82f6; }

/* ===== ⑥ 复盘日历 ===== */
.review-row { display: flex; gap: 8px; flex-wrap: wrap; }
.review-btn {
  padding: 6px 12px; border-radius: 6px;
  background: var(--bg-secondary); border: 1px solid var(--border-color);
  color: var(--text-primary); font-size: 12px; cursor: pointer;
}
.review-btn:hover { border-color: var(--color-info); color: var(--color-info); }
.review-btn.today { background: var(--color-info); color: #fff; border-color: var(--color-info); }
.review-btn.locked { opacity: .6; cursor: not-allowed; position: relative; }
.review-btn.locked::after { content: '🔒'; margin-left: 4px; }
.review-tip { font-size: 11px; color: var(--text-muted); margin-top: 10px; line-height: 1.6; }

/* ===== ⑦ 快捷功能条 ===== */
.tools-row { display: flex; gap: 10px; flex-wrap: wrap; }
.tool-btn {
  flex: 1; min-width: 150px;
  padding: 14px 12px; border-radius: 10px;
  background: var(--bg-secondary); border: 1px solid var(--border-color);
  cursor: pointer; transition: all .2s;
  display: flex; align-items: center; gap: 10px;
}
.tool-btn:hover { border-color: var(--color-info); transform: translateY(-2px); }
.tool-btn .tb-ic { font-size: 24px; }
.tool-btn .tb-title { font-size: 13px; font-weight: 700; color: var(--text-primary); }
.tool-btn .tb-desc  { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.tool-btn .tb-lock {
  margin-left: auto; padding: 2px 7px; border-radius: 4px;
  background: rgba(245,158,11,.15); color: var(--color-gold); font-size: 10px;
}

/* ============================================================
   响应式 · 平板 768~1279
   ============================================================ */
@media (max-width: 1279px) {
  .card-vip-picks,
  .card-pulse, .card-snapshot, .card-tiers,
  .card-strength, .card-rank,
  .card-models, .card-review,
  .card-tools { grid-column: span 12 !important; }
}

/* ============================================================
   响应式 · 移动 <768
   ============================================================ */
@media (max-width: 767px) {
  #panel-home.active { 
    grid-template-columns: 1fr !important; 
    padding: 8px 8px 100px 8px !important;  /* v0.7.9.7 底栏安全距离 */
    gap: 10px !important; 
  }
  #panel-home > * { grid-column: span 1 !important; }
  .main-container { padding-bottom: 100px !important; }
  .tools-row { flex-direction: column; }
  .tool-btn { flex: 1 1 100% !important; }
  .hd-center { display: none !important; }
  .home-card { padding: 12px; border-radius: 10px; }
  .card-title { font-size: 13px; }
  .card-sub { font-size: 10px; }

  /* 大盘体检：仪表盘居中 + 4 格横排 */
  .pulse-wrap { grid-template-columns: 1fr; }
  #pulseChart { height: 160px; }
  .pulse-mini { grid-template-columns: repeat(4, 1fr); }
  .pulse-cell { padding: 8px 4px; }
  .pulse-cell .num { font-size: 17px; }
  .pulse-cell .lb { font-size: 10px; }
  .pulse-extra { grid-column: span 4; font-size: 11px; padding: 6px 8px; }

  /* 强度分布：竖向堆叠 */
  .strength-wrap { grid-template-columns: 1fr; }
  #strengthChart { width: 140px; height: 140px; margin: 0 auto; }

  /* 涨停梯队 */
  .tier-label { width: 50px; font-size: 12px; }
  .tier-count { font-size: 12px; }

  /* 评分排行 */
  .rank-stock-name { font-size: 13px; }
  .rank-score-num { font-size: 15px; }

  /* 快捷条改 2 列 */
  .tools-row { gap: 8px; }
  .tool-btn { min-width: 0; flex: 1 1 calc(50% - 4px); padding: 10px; }
  .tool-btn .tb-ic { font-size: 20px; }
  .tool-btn .tb-title { font-size: 12px; }
  .tool-btn .tb-desc { font-size: 10px; }
}

/* ============================================================
   v0.7.9.3 顶栏 Tab 切换样式
   ============================================================ */
.hd-center { display: flex; gap: 8px; align-items: center; }
.nav-tab {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 18px; border-radius: 8px;
  background: var(--bg-secondary);
  color: var(--text-secondary);
  border: 1px solid var(--border-color);
  cursor: pointer; font-size: 14px; font-weight: 600;
  transition: all .2s;
}
.nav-tab:hover { background: var(--bg-hover); color: var(--text-primary); }
.nav-tab .cta-ic { font-size: 16px; }
.nav-tab-active {
  background: linear-gradient(135deg, #3b82f6, #2563eb);
  color: #fff !important;
  border-color: #3b82f6;
  box-shadow: 0 2px 8px rgba(59,130,246,.3);
}
.nav-tab-active:hover { background: linear-gradient(135deg, #3b82f6, #2563eb); }

/* Tab 模式下隐藏分割锚点 */
.workspace-anchor { display: none !important; }

/* 移动端 Tab 也好用（双保险，移动端底栏也能切） */
@media (max-width: 767px) {
  .nav-tab { padding: 6px 12px; font-size: 12px; }
  .nav-tab .cta-ic { font-size: 14px; }
}

/* v0.7.9.6 主推按钮（立即竞价打分）*/
.tool-btn-primary {
  background: linear-gradient(135deg, #10b981, #059669) !important;
  border-color: #10b981 !important;
}
.tool-btn-primary .tb-title,
.tool-btn-primary .tb-desc { color: #fff !important; }
.tool-btn-primary:hover { transform: translateY(-3px); box-shadow: 0 4px 16px rgba(16,185,129,.4); }

/* v0.7.9.9 次推按钮（今日选股结果）*/
.tool-btn-secondary {
  background: linear-gradient(135deg, #3b82f6, #2563eb) !important;
  border-color: #3b82f6 !important;
}
.tool-btn-secondary .tb-title,
.tool-btn-secondary .tb-desc { color: #fff !important; }
.tool-btn-secondary:hover { transform: translateY(-3px); box-shadow: 0 4px 16px rgba(59,130,246,.4); }

/* ============================================================
   v0.7.9.12 顶部公告横幅（滚动公告 + 时间区）
   ============================================================ */
.home-promo-bar.promo-v2 {
  display: flex;
  align-items: stretch;
  gap: 12px;
  padding: 10px 14px;
  background: linear-gradient(135deg, rgba(251,191,36,.08), rgba(245,158,11,.04));
  border: 1px solid rgba(251,191,36,.2);
  border-radius: 10px;
  margin: 10px 0;
  min-height: 48px;
}

/* 左侧滚动公告 */
.promo-scroll {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  overflow: hidden;
}
.promo-scroll .ps-icon {
  font-size: 16px;
  flex-shrink: 0;
}
.promo-scroll .ps-viewport {
  flex: 1;
  height: 24px;
  overflow: hidden;
  position: relative;
  min-width: 0;
}
.promo-scroll .ps-track {
  display: flex;
  flex-direction: column;
  transition: transform .5s cubic-bezier(.4,0,.2,1);
}
.promo-scroll .ps-item {
  height: 24px;
  line-height: 24px;
  font-size: 13px;
  color: #fbbf24;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
}
.promo-scroll .ps-item.level-warning { color: #fb923c; }
.promo-scroll .ps-item.level-important { color: #ef4444; font-weight: 600; }
.promo-scroll .ps-item b { color: inherit; }
.promo-scroll .ps-item a {
  color: #60a5fa;
  text-decoration: none;
  cursor: pointer;
  margin-left: 4px;
}
.promo-scroll .ps-item a:hover { text-decoration: underline; }

/* 右侧时间状态区（固定不滚动）*/
.promo-status {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  padding-left: 12px;
  border-left: 1px solid rgba(251,191,36,.15);
  min-width: 240px;
}
.promo-status .ps-row1 {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: #94a3b8;
}
.promo-status .ps-row1 .sp-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: #10b981;
}
.promo-status .ps-row1 .sp-phase {
  font-weight: 600;
  color: #fbbf24;
}
.promo-status .ps-row1 .sp-time {
  font-family: 'Consolas', monospace;
  font-weight: 700;
  color: #e2e8f0;
  font-size: 13px;
}
.promo-status .ps-row1 .sp-countdown {
  color: #64748b;
  font-size: 11.5px;
}
.promo-status .ps-row2 {
  font-size: 11.5px;
  color: #94a3b8;
}

/* 移动端：堆叠 */
@media (max-width: 767px) {
  .home-promo-bar.promo-v2 {
    flex-direction: column;
    gap: 6px;
    padding: 8px 10px;
  }
  .promo-status {
    border-left: none;
    border-top: 1px solid rgba(251,191,36,.15);
    padding-left: 0;
    padding-top: 6px;
    min-width: auto;
  }
  .promo-status .ps-row1 { font-size: 11px; gap: 6px; }
}

/* v0.7.9.13 顶栏冗余组件隐藏（数据已搬到公告横幅）
   注意：DOM 保留，因为 home-promo-v2.js 还要镜像 dfl-text 内容 */
.header-right .dfl-wrap,
.header-v2 .dfl-wrap,
header .dfl-wrap { display: none !important; }

#announcementMarquee,
.announcement-marquee,
.ann-marquee,
[class*="announcement"][class*="marquee"] { display: none !important; }

/* v0.7.9.13 旧版顶栏跑马灯兜底隐藏（已被首页公告横幅替代） */
#annMarquee { display: none !important; }

/* ============================================================
   v0.7.9.14 移动端公告横幅深度优化
   ============================================================ */
@media (max-width: 768px) {
  /* 横幅整体：纵向布局 + 紧凑间距 */
  .home-promo-bar.promo-v2 {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px !important;
    padding: 10px 12px !important;
    margin: 8px 0 !important;
    min-height: auto !important;
  }

  /* 左侧公告区：限定单行高度，强制截断 */
  .home-promo-bar.promo-v2 .promo-scroll {
    width: 100% !important;
    flex: none !important;
    gap: 8px !important;
  }
  .home-promo-bar.promo-v2 .promo-scroll .ps-icon {
    font-size: 14px !important;
  }
  .home-promo-bar.promo-v2 .promo-scroll .ps-viewport {
    height: 22px !important;
    width: 100% !important;
    flex: 1 !important;
  }
  .home-promo-bar.promo-v2 .promo-scroll .ps-item {
    height: 22px !important;
    line-height: 22px !important;
    font-size: 12px !important;
    /* 关键：移动端单行截断，不换行 */
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    display: block !important;
    max-width: 100% !important;
  }

  /* 右侧时间区：横向单行布局 */
  .home-promo-bar.promo-v2 .promo-status {
    width: 100% !important;
    min-width: 0 !important;
    border-left: none !important;
    border-top: 1px dashed rgba(251,191,36,.18) !important;
    padding-left: 0 !important;
    padding-top: 8px !important;
    gap: 3px !important;
  }
  .home-promo-bar.promo-v2 .promo-status .ps-row1 {
    flex-wrap: nowrap !important;
    gap: 6px !important;
    font-size: 11px !important;
    overflow: hidden !important;
    white-space: nowrap !important;
  }
  .home-promo-bar.promo-v2 .promo-status .ps-row1 .sp-time {
    font-size: 12px !important;
  }
  .home-promo-bar.promo-v2 .promo-status .ps-row1 .sp-countdown {
    font-size: 11px !important;
    white-space: nowrap !important;
  }
  .home-promo-bar.promo-v2 .promo-status .ps-row2 {
    font-size: 11px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
}

/* 超窄屏（≤360px，小屏老机型）再压缩 */
@media (max-width: 360px) {
  .home-promo-bar.promo-v2 .promo-scroll .ps-item,
  .home-promo-bar.promo-v2 .promo-status .ps-row1,
  .home-promo-bar.promo-v2 .promo-status .ps-row2 {
    font-size: 10.5px !important;
  }
  .home-promo-bar.promo-v2 .promo-status .ps-row1 .sp-countdown {
    /* 极窄屏隐藏倒计时，避免溢出 */
    display: none !important;
  }
}


/* ========== v0.8.1 今日盘面速览 + 涨停梯队升级 ========== */
.snapshot-section {
  margin-bottom: 14px;
}
.snapshot-section:last-child { margin-bottom: 0; }
.snapshot-title {
  font-size: 12px;
  color: var(--text-muted);
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.snapshot-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 0;
  font-size: 13px;
  border-bottom: 1px dashed rgba(148,163,184,.08);
}
.snapshot-row:last-child { border-bottom: none; }
.snapshot-row .sr-label {
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  gap: 6px;
}
.snapshot-row .sr-value {
  font-weight: 700;
  font-family: 'Courier New', monospace;
  color: var(--text-primary);
}
.snapshot-row .sr-value.up { color: #ff4d4d; }
.snapshot-row .sr-value.down { color: #16a34a; }
.snapshot-row .sr-pct {
  font-size: 11px;
  color: var(--text-muted);
  margin-left: 6px;
  font-weight: 500;
}
.snapshot-row .sr-arrow {
  color: var(--text-muted);
  font-size: 11px;
  margin: 0 4px;
}
.snapshot-idx-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.snapshot-idx {
  background: var(--bg-secondary);
  border-radius: 6px;
  padding: 8px 6px;
  text-align: center;
}
.snapshot-idx .idx-name {
  font-size: 11px;
  color: var(--text-muted);
  margin-bottom: 2px;
}
.snapshot-idx .idx-val {
  font-size: 14px;
  font-weight: 700;
  font-family: 'Courier New', monospace;
}
.snapshot-idx .idx-val.up { color: #ff4d4d; }
.snapshot-idx .idx-val.down { color: #16a34a; }

/* —— 涨停梯队卡升级 —— */
.tier-stats {
  display: flex;
  justify-content: space-around;
  align-items: center;
  padding: 8px 0;
  margin-top: 6px;
  border-top: 1px dashed rgba(148,163,184,.12);
  border-bottom: 1px dashed rgba(148,163,184,.12);
  font-size: 12px;
}
.tier-stats .ts-item {
  display: flex;
  align-items: center;
  gap: 4px;
  color: var(--text-secondary);
}
.tier-stats .ts-item b {
  font-family: 'Courier New', monospace;
  font-weight: 700;
  font-size: 13px;
}
.tier-stats .ts-item.seal b { color: #ff4d4d; }
.tier-stats .ts-item.blast b { color: #f97316; }
.tier-top-link {
  color: var(--text-primary);
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px dashed rgba(255,77,77,.4);
  cursor: pointer;
}
.tier-top-link:hover {
  color: #ff4d4d;
  border-bottom-color: #ff4d4d;
}
.tier-lag-badge {
  display: inline-block;
  margin-top: 8px;
  padding: 3px 10px;
  background: rgba(245,158,11,.15);
  color: #f59e0b;
  border: 1px solid rgba(245,158,11,.3);
  border-radius: 10px;
  font-size: 11px;
  font-weight: 600;
}
/* ========== END ========== */


/* ========== v0.8.2 速览卡可视化升级 ========== */
/* 指数卡：带渐变背景 */
.snapshot-idx { position: relative; overflow: hidden; }
.snapshot-idx.idx-bg-up {
  background: linear-gradient(135deg, rgba(255,77,77,.12), rgba(255,77,77,.04));
  border: 1px solid rgba(255,77,77,.2);
}
.snapshot-idx.idx-bg-down {
  background: linear-gradient(135deg, rgba(22,163,74,.12), rgba(22,163,74,.04));
  border: 1px solid rgba(22,163,74,.2);
}
.snapshot-idx .idx-price {
  font-size: 10px;
  color: var(--text-muted);
  margin-top: 2px;
  font-family: 'Courier New', monospace;
}

/* 漏斗 */
.funnel-wrap { padding: 4px 0; }
.funnel-row {
  display: grid;
  grid-template-columns: 38px 1fr 68px;
  gap: 8px;
  align-items: center;
  margin-bottom: 6px;
}
.funnel-label {
  font-size: 12px;
  color: var(--text-secondary);
  font-weight: 600;
  text-align: right;
}
.funnel-bar-wrap {
  position: relative;
  height: 22px;
  background: rgba(148,163,184,.06);
  border-radius: 4px;
  overflow: hidden;
}
.funnel-bar {
  height: 100%;
  border-radius: 4px;
  transition: width .8s ease-out;
}
.funnel-lv0 { background: linear-gradient(90deg, #f97316, #fb923c); }
.funnel-lv1 { background: linear-gradient(90deg, #ff6b6b, #ff8787); }
.funnel-lv2 { background: linear-gradient(90deg, #ff4d4d, #ff6b6b); }
.funnel-lv3 { background: linear-gradient(90deg, #dc2626, #ef4444); }
.funnel-lv4 { background: linear-gradient(90deg, #991b1b, #dc2626); }
.funnel-cnt {
  position: absolute;
  top: 50%; left: 8px;
  transform: translateY(-50%);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  font-family: 'Courier New', monospace;
  text-shadow: 0 1px 2px rgba(0,0,0,.5);
}
.funnel-pct {
  font-size: 11px;
  font-weight: 700;
  font-family: 'Courier New', monospace;
  text-align: right;
  padding: 2px 6px;
  border-radius: 4px;
}
.funnel-pct.pct-hot  { color: #ff4d4d; background: rgba(255,77,77,.12); }
.funnel-pct.pct-warm { color: #f97316; background: rgba(249,115,22,.12); }
.funnel-pct.pct-mid  { color: #f59e0b; background: rgba(245,158,11,.10); }
.funnel-pct.pct-low  { color: #94a3b8; background: rgba(148,163,184,.10); }

/* AI 点评 */
.ai-tips-wrap { margin-top: 10px; display: flex; flex-direction: column; gap: 4px; }
.ai-tip {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 12px;
  line-height: 1.5;
}
.ai-tip .tip-emo { flex-shrink: 0; }
.ai-tip .tip-txt { flex: 1; color: var(--text-primary); }
.ai-tip .tip-txt b { color: inherit; font-weight: 700; }
.ai-tip.tip-hot     { background: rgba(255,77,77,.10); border-left: 3px solid #ff4d4d; }
.ai-tip.tip-hot .tip-txt b   { color: #ff4d4d; }
.ai-tip.tip-good    { background: rgba(34,197,94,.08); border-left: 3px solid #22c55e; }
.ai-tip.tip-good .tip-txt b  { color: #22c55e; }
.ai-tip.tip-warn    { background: rgba(245,158,11,.08); border-left: 3px solid #f59e0b; }
.ai-tip.tip-warn .tip-txt b  { color: #f59e0b; }
.ai-tip.tip-neutral { background: rgba(148,163,184,.06); border-left: 3px solid #64748b; color: var(--text-muted); }

/* 温度进度条 */
.temp-row {
  display: grid;
  grid-template-columns: 72px 1fr 78px;
  gap: 8px;
  align-items: center;
  padding: 5px 0;
}
.temp-label { font-size: 12px; color: var(--text-secondary); }
.temp-bar-wrap {
  height: 8px;
  background: rgba(148,163,184,.10);
  border-radius: 4px;
  overflow: hidden;
}
.temp-bar { height: 100%; border-radius: 4px; transition: width .8s; }
.temp-bar.tb-hot   { background: linear-gradient(90deg, #ff6b6b, #dc2626); }
.temp-bar.tb-warm  { background: linear-gradient(90deg, #fb923c, #f97316); }
.temp-bar.tb-mid   { background: linear-gradient(90deg, #fbbf24, #f59e0b); }
.temp-bar.tb-cold  { background: linear-gradient(90deg, #60a5fa, #3b82f6); }
.temp-bar.tb-good  { background: linear-gradient(90deg, #4ade80, #22c55e); }
.temp-bar.tb-warn  { background: linear-gradient(90deg, #fbbf24, #f59e0b); }
.temp-bar.tb-bad   { background: linear-gradient(90deg, #f87171, #dc2626); }
.temp-bar.tb-seal  { background: linear-gradient(90deg, #ff6b6b, #ff4d4d); }
.temp-val {
  font-size: 12px;
  font-weight: 700;
  font-family: 'Courier New', monospace;
  text-align: right;
  color: var(--text-primary);
}
/* ========== END v0.8.2 ========== */


/* ============================================================
   首页整体美化 v1.0 (基于现有深色金融风增强,兼容日夜主题)
   ============================================================ */
/* 卡片质感: 微渐变+层次阴影+hover上浮 */
#panel-home.active .home-card {
  background: linear-gradient(160deg, var(--bg-card), color-mix(in srgb, var(--bg-card) 88%, #000));
  box-shadow: 0 1px 3px rgba(0,0,0,.18);
  transition: border-color .2s, box-shadow .25s, transform .2s;
}
#panel-home.active .home-card:hover {
  box-shadow: 0 6px 22px rgba(0,0,0,.28);
  transform: translateY(-2px);
}
/* 标题: 左侧色条点缀,层级更清晰 */
#panel-home.active .card-title {
  position: relative; padding-left: 12px;
}
#panel-home.active .card-title::before {
  content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 3px; height: 15px; border-radius: 2px;
  background: linear-gradient(180deg, var(--color-up), var(--color-gold));
}
/* card-header 间距统一 */
#panel-home.active .card-header { margin-bottom: 12px; }

/* 首尾收口: 顶部促销条到首卡片、末块到底部留白 */
#panel-home.active { padding: 18px 16px 32px; }
#panel-home.active .home-promo-bar { margin-bottom: 0; }

/* 复盘子卡片: 硬编码色→主题变量(兼容日夜) */
.rv-subcard { background: var(--bg-secondary) !important; border-color: var(--border-color) !important; }
.rv-subtitle { color: var(--text-primary) !important; }

/* 折叠按钮: 精致横条,呼应整体风格 */
.rv-more-btn {
  width: 100%; margin-top: 4px; padding: 11px;
  background: linear-gradient(135deg, rgba(59,130,246,.10), rgba(99,102,241,.08));
  border: 1px dashed rgba(99,102,241,.35); border-radius: 10px;
  color: #93c5fd; font-size: 13px; font-weight: 600; cursor: pointer;
  transition: all .2s; display: flex; align-items: center; justify-content: center; gap: 6px;
}
.rv-more-btn:hover {
  background: linear-gradient(135deg, rgba(59,130,246,.18), rgba(99,102,241,.14));
  border-color: rgba(99,102,241,.55); color: #bfdbfe;
}
.rv-more-arrow { font-size: 12px; transition: transform .2s; }
/* 折叠区: 平滑展开收起 */
.rv-more-wrap { display: flex; flex-direction: column; gap: 12px; margin-top: 12px; overflow: hidden; }
.rv-more-wrap.collapsed { display: none; }

/* ============ v2026.06 终版: 预览卡一行 + 页脚一行 ============ */
.rv-more-btn {
  display:flex !important; align-items:center; justify-content:center;
  gap:16px; flex-wrap:wrap; cursor:pointer;
  background:linear-gradient(135deg, rgba(59,130,246,.10), rgba(99,102,241,.06)) !important;
  border:1px dashed rgba(99,102,241,.4) !important; border-radius:10px !important;
  padding:12px 18px !important; transition:all .2s;
}
.rv-more-btn:hover { transform:translateY(-1px); border-color:rgba(99,102,241,.7) !important; box-shadow:0 4px 16px rgba(99,102,241,.18); }
.rv-mp-lead { color:var(--text-primary); font-size:13px; font-weight:600; }
.rv-mp-lead b { color:var(--color-gold); margin:0 2px; }
.rv-mp-tags { color:var(--text-muted); font-size:12.5px; letter-spacing:.3px; }
.rv-mp-go { color:#fff; background:linear-gradient(135deg,#3b82f6,#6366f1); padding:5px 16px; border-radius:14px; font-size:12.5px; font-weight:700; display:inline-flex; align-items:center; gap:4px; }
.rv-mp-go .rv-more-arrow { font-size:11px; }

/* 页脚: span满行, 居中小灰字, 顶部细线收口 */
.home-footer {
  grid-column:1/-1; text-align:center;
  color:var(--text-muted); font-size:12px; line-height:1.7;
  padding:20px 16px 8px; margin-top:10px;
  border-top:1px solid var(--border-color);
}
