
.os-wrap[data-v-2903aac4] { max-width: 1180px;
}
.live-dot[data-v-2903aac4] { display: inline-block; width: 8px; height: 8px; border-radius: 50%;
            background: var(--tx-sub); margin-left: 8px; vertical-align: middle;
}
.live-dot.on[data-v-2903aac4] { background: #e0342f; box-shadow: 0 0 0 0 rgba(224,52,47,.6); animation: pulse-2903aac4 1.6s infinite;
}
@keyframes pulse-2903aac4 {
70% { box-shadow: 0 0 0 8px rgba(224,52,47,0);
}
100% { box-shadow: 0 0 0 0 rgba(224,52,47,0);
}
}
.live-txt[data-v-2903aac4] { font-size: 12px; font-weight: 400; color: var(--tx-sub); margin-left: 6px;
}

/* 时段进度 */
.win-bar[data-v-2903aac4] { display: flex; gap: 12px; align-items: stretch; flex-wrap: wrap; margin-bottom: 14px;
}
.win[data-v-2903aac4] { flex: 1; min-width: 132px; border: 1px solid var(--bd); border-radius: 10px; padding: 10px 12px;
       background: var(--chip); position: relative; transition: .2s;
}
.win.cur[data-v-2903aac4] { border-color: #e0342f; background: rgba(224,52,47,.07);
}
.win.active .win-tag[data-v-2903aac4] { color: #e0342f; font-weight: 700;
}
.win.pending .win-tag[data-v-2903aac4] { color: #e6a23c;
}
.win.closed[data-v-2903aac4] { opacity: .55;
}
.win.closed .win-tag[data-v-2903aac4] { color: var(--tx-sub);
}
.win-time[data-v-2903aac4] { font-weight: 800; font-size: 14px; letter-spacing: .5px;
}
.win-name[data-v-2903aac4] { font-size: 12px; color: var(--tx-sub); margin: 2px 0 4px;
}
.win-tag[data-v-2903aac4] { font-size: 11px;
}
.win-side[data-v-2903aac4] { display: flex; flex-direction: column; gap: 6px; justify-content: center;
            min-width: 210px; padding-left: 12px; border-left: 1px dashed var(--bd);
}
.countdown[data-v-2903aac4] { font-size: 13px; color: var(--tx-sub);
}
.countdown b[data-v-2903aac4] { font-size: 18px; color: #e0342f; font-variant-numeric: tabular-nums;
}
.countdown.off[data-v-2903aac4] { color: var(--tx-sub);
}
.upd[data-v-2903aac4] { font-size: 11px; color: var(--tx-sub);
}
.stale-tag[data-v-2903aac4] { color: #e6a23c;
}

/* 空态 */
.empty[data-v-2903aac4] { text-align: center; padding: 50px 20px;
}
.empty-icon[data-v-2903aac4] { font-size: 42px;
}
.empty-title[data-v-2903aac4] { font-size: 16px; font-weight: 700; margin: 10px 0 4px;
}
.empty-sub[data-v-2903aac4] { color: var(--tx-sub); font-size: 12.5px;
}

/* 主标的 */
.hero[data-v-2903aac4] { display: flex; gap: 20px; align-items: center; margin-bottom: 14px;
        background: linear-gradient(135deg, rgba(224,52,47,.06), transparent 60%);
}
.hero-l[data-v-2903aac4] { flex: 1; min-width: 0;
}
.hero-name[data-v-2903aac4] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.hero-name .nm[data-v-2903aac4] { font-size: 24px; font-weight: 800; color: var(--tx); text-decoration: none;
}
.hero-name .nm[data-v-2903aac4]:hover { color: #409eff;
}
.hero-name .code[data-v-2903aac4] { color: var(--tx-sub); font-size: 13px;
}
.hero-price[data-v-2903aac4] { display: flex; align-items: baseline; gap: 12px; margin: 8px 0;
}
.hero-price .px[data-v-2903aac4] { font-size: 30px; font-weight: 800; font-variant-numeric: tabular-nums;
}
.hero-price .up[data-v-2903aac4], .hero-price .dn[data-v-2903aac4] { font-size: 15px; font-weight: 700;
}
.hero-meta[data-v-2903aac4] { display: flex; gap: 14px; flex-wrap: wrap; align-items: center;
             font-size: 12.5px; color: var(--tx-sub);
}
.lamp-line[data-v-2903aac4] { display: flex; align-items: center; gap: 10px; margin-top: 12px;
}
.lamp-label[data-v-2903aac4] { font-size: 12.5px; color: var(--tx-sub);
}
.lamps[data-v-2903aac4] { display: inline-flex; gap: 3px;
}
.lamps i[data-v-2903aac4] { width: 22px; height: 7px; border-radius: 2px; display: inline-block;
}
.lamps i.on[data-v-2903aac4] { background: #e0342f;
}
.lamps i.off[data-v-2903aac4] { background: #2ea44f; opacity: .5;
}
.lamps.sm i[data-v-2903aac4] { width: 13px; height: 6px;
}
.lamp-tip[data-v-2903aac4] { font-size: 12px; color: var(--tx-sub);
}
.hero-r[data-v-2903aac4] { text-align: center; min-width: 190px; border-left: 1px dashed var(--bd); padding-left: 20px;
}
.big-score[data-v-2903aac4] { font-size: 46px; font-weight: 900; color: #e0342f; line-height: 1;
             font-variant-numeric: tabular-nums;
}
.big-score-sub[data-v-2903aac4] { font-size: 12px; color: var(--tx-sub); margin-top: 2px;
}
.since[data-v-2903aac4] { font-size: 11px; color: var(--tx-sub); margin-top: 8px;
}
.hold[data-v-2903aac4] { font-size: 11px; color: #e6a23c; margin-top: 4px;
}
.hero-btns[data-v-2903aac4] { margin-top: 10px; display: flex; gap: 8px; justify-content: center;
}

/* 四维打分 */
.grid4[data-v-2903aac4] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 14px;
}
.dim-head[data-v-2903aac4] { display: flex; justify-content: space-between; align-items: baseline;
}
.dim-name[data-v-2903aac4] { font-size: 13px; font-weight: 700;
}
.dim-score[data-v-2903aac4] { font-size: 15px; font-weight: 800; color: var(--tx-sub); font-variant-numeric: tabular-nums;
}
.dim-score.up[data-v-2903aac4] { color: #e0342f;
}
.bar[data-v-2903aac4] { height: 8px; border-radius: 4px; background: var(--chip); overflow: hidden; margin: 8px 0 4px;
}
.bar i[data-v-2903aac4] { display: block; height: 100%; border-radius: 4px; background: #409eff; transition: width .4s;
}
.bar i.capital[data-v-2903aac4] { background: linear-gradient(90deg,#f56c6c,#e0342f);
}
.bar i.quality[data-v-2903aac4] { background: linear-gradient(90deg,#79bbff,#409eff);
}
.bar i.resonance[data-v-2903aac4] { background: linear-gradient(90deg,#e6a23c,#f56c6c);
}
.bar i.macd[data-v-2903aac4] { background: linear-gradient(90deg,#b37feb,#722ed1);
}
.bar i.good[data-v-2903aac4] { background: #e0342f;
}
.bar i.mid[data-v-2903aac4] { background: #e6a23c;
}
.bar i.low[data-v-2903aac4] { background: #2ea44f;
}
.dim-ratio[data-v-2903aac4] { font-size: 11px; color: var(--tx-sub);
}
.dim-detail[data-v-2903aac4] { font-size: 11.5px; color: var(--tx-sub); margin-top: 6px; line-height: 1.5;
}
.dim-detail[data-v-2903aac4] b { color: var(--tx);
}

/* 评分 / 资金 双列 */
.grid2[data-v-2903aac4] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 14px;
}
.sec-title[data-v-2903aac4] { font-weight: 700; font-size: 14px; margin-bottom: 10px;
}
.kv[data-v-2903aac4] { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0;
      border-bottom: 1px dashed var(--bd); font-size: 12.5px;
}
.kv[data-v-2903aac4]:last-child { border-bottom: none;
}
.kv .k[data-v-2903aac4] { color: var(--tx-sub);
}
.kv .v[data-v-2903aac4] { font-weight: 700; text-align: right; font-variant-numeric: tabular-nums;
}
.kv .v em[data-v-2903aac4] { font-style: normal; font-weight: 400; color: var(--tx-sub); font-size: 11px;
}
.kv .v.strong[data-v-2903aac4] { color: #e0342f; font-size: 15px;
}
.sub-detail[data-v-2903aac4] { margin-top: 10px;
}
.sub-group[data-v-2903aac4] { margin-top: 8px;
}
.sub-g-name[data-v-2903aac4] { font-size: 12px; font-weight: 700; color: #409eff; margin-bottom: 2px;
}
.kv.mini[data-v-2903aac4] { font-size: 11.5px; padding: 3px 0;
}
.risk-line[data-v-2903aac4] { margin-top: 10px; font-size: 12px; color: #e0342f;
}

/* 理由 */
.reasons[data-v-2903aac4] { margin: 0; padding-left: 4px; list-style: none;
}
.reasons li[data-v-2903aac4] { font-size: 13px; padding: 5px 0 5px 22px; position: relative; line-height: 1.6;
}
.reasons li[data-v-2903aac4]:before { position: absolute; left: 0;
}
.reasons li.good[data-v-2903aac4]:before { content: '●'; color: #2ea44f;
}
.reasons li.risk[data-v-2903aac4]:before { content: '▲'; color: #e0342f;
}
.reasons li.risk[data-v-2903aac4] { color: #e0342f;
}

/* 点位阶梯 */
.lv-grid[data-v-2903aac4] { display: flex; flex-direction: column; gap: 5px; margin-bottom: 10px;
}
.lv[data-v-2903aac4] { display: flex; justify-content: space-between; padding: 6px 12px; border-radius: 7px;
      font-size: 12.5px; background: var(--chip); border-left: 3px solid var(--bd);
}
.lv b[data-v-2903aac4] { font-variant-numeric: tabular-nums;
}
.lv.r2[data-v-2903aac4], .lv.r1[data-v-2903aac4] { border-left-color: #e0342f;
}
.lv.s1[data-v-2903aac4], .lv.s2[data-v-2903aac4] { border-left-color: #2ea44f;
}
.lv.px[data-v-2903aac4] { border-left-color: #409eff; background: rgba(64,158,255,.1); font-weight: 700;
}
.cond[data-v-2903aac4] { margin-top: 10px;
}
.cond-title[data-v-2903aac4] { font-size: 12.5px; font-weight: 700; color: var(--tx-sub);
}
.cond-list[data-v-2903aac4] { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0;
}
.cond-chip[data-v-2903aac4] { font-size: 11px; padding: 3px 9px; border-radius: 10px; border: 1px solid var(--bd);
}
.cond-chip.yes[data-v-2903aac4] { color: #2ea44f; border-color: rgba(46,164,79,.4); background: rgba(46,164,79,.07);
}
.cond-chip.no[data-v-2903aac4] { color: var(--tx-sub); opacity: .7;
}
.advice[data-v-2903aac4] { font-size: 12.5px; color: var(--tx-sub); line-height: 1.6; margin-top: 4px;
}

/* 四维画像 */
.quad-grid[data-v-2903aac4] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px;
}
.quad[data-v-2903aac4] { display: flex; flex-direction: column; gap: 4px;
}
.quad-name[data-v-2903aac4] { font-size: 12.5px; color: var(--tx-sub);
}
.quad-val[data-v-2903aac4] { font-size: 15px; font-weight: 800;
}

/* 表格 */
.tlink[data-v-2903aac4] { color: var(--tx); font-weight: 700; text-decoration: none;
}
.tlink[data-v-2903aac4]:hover { color: #409eff;
}
.tcode[data-v-2903aac4] { color: var(--tx-sub); font-size: 11px; margin-left: 6px;
}

/* 响应式 */
@media (max-width: 900px) {
.grid4[data-v-2903aac4], .grid2[data-v-2903aac4], .quad-grid[data-v-2903aac4] { grid-template-columns: 1fr 1fr;
}
.hero[data-v-2903aac4] { flex-direction: column; align-items: stretch;
}
.hero-r[data-v-2903aac4] { border-left: none; border-top: 1px dashed var(--bd); padding-left: 0; padding-top: 14px;
}
}
@media (max-width: 560px) {
.grid4[data-v-2903aac4], .grid2[data-v-2903aac4], .quad-grid[data-v-2903aac4] { grid-template-columns: 1fr;
}
.win-side[data-v-2903aac4] { border-left: none; padding-left: 0;
}
}
