:root {
  --bg: #0a0e17; --panel: #0f1522; --panel2: #131b2c; --border: #1e2a3f;
  --txt: #d7dee9; --muted: #6b7a90; --accent: #f59e0b; --blue: #3b82f6;
  --up: #ef4444; --down: #22c55e; --orange: #f97316; --purple: #a78bfa;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body { background: var(--bg); color: var(--txt); font: 13px/1.6 "Microsoft YaHei", sans-serif; }
.hidden { display: none !important; }
.muted { color: var(--muted); }
.c-red { color: var(--up); } .c-green { color: var(--down); } .c-orange { color: var(--orange); }
.right { float: right; }

/* 顶栏 */
.topbar { display: flex; align-items: center; gap: 24px; padding: 10px 20px; background: #0c1220; border-bottom: 1px solid var(--border); }
.brand { font-size: 16px; font-weight: bold; color: #fff; }
.brand .sub { font-size: 11px; color: var(--muted); margin-left: 6px; font-weight: normal; }
.nav { display: flex; gap: 6px; flex: 1; }
.nav button { background: transparent; border: none; color: var(--muted); padding: 6px 14px; cursor: pointer; border-radius: 6px; font-size: 13px; }
.nav button.active { background: #1a2438; color: var(--accent); }
.userbox { display: flex; align-items: center; gap: 8px; font-size: 12px; }
.avatar { width: 22px; height: 22px; border-radius: 50%; background: var(--accent); color: #000; display: inline-flex; align-items: center; justify-content: center; font-weight: bold; }
.tag-red { background: #7f1d1d; color: #fca5a5; padding: 1px 8px; border-radius: 4px; font-size: 11px; }

/* 状态栏 */
.statusbar { padding: 8px 20px; background: #0c1220; border-bottom: 1px solid var(--border); font-size: 12px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.statusbar b { color: #fff; }
.sep { color: var(--border); margin: 0 4px; }
.dot-green, .dot-orange { width: 8px; height: 8px; border-radius: 50%; display: inline-block; margin-right: 4px; }
.dot-green { background: var(--down); box-shadow: 0 0 6px var(--down); }
.dot-orange { background: var(--orange); box-shadow: 0 0 6px var(--orange); }
.btn { background: #1a2438; border: 1px solid var(--border); color: var(--txt); padding: 5px 12px; border-radius: 6px; cursor: pointer; font-size: 12px; }
.btn-blue { background: var(--blue); border-color: var(--blue); color: #fff; }
.btn-orange { background: var(--orange); border-color: var(--orange); color: #fff; }
.btn-red { background: var(--up); border-color: var(--up); color: #fff; }
.auto-tag { color: var(--muted); font-size: 11px; }

/* 主区 */
main { padding: 14px 20px 60px; }
.toolbar { display: flex; gap: 8px; align-items: center; padding: 10px 12px; background: var(--panel); border: 1px solid var(--border); border-radius: 10px; margin-bottom: 12px; flex-wrap: wrap; }
.inp { background: #0b111e; border: 1px solid var(--border); color: var(--txt); padding: 6px 10px; border-radius: 6px; font-size: 12px; }
.w80 { width: 80px; } .w200 { width: 200px; } .w220 { width: 220px; }
.tabs-mini { display: flex; gap: 4px; margin-left: auto; }
.tabs-mini button { background: transparent; border: 1px solid var(--border); color: var(--muted); padding: 5px 12px; border-radius: 6px; cursor: pointer; font-size: 12px; }
.tabs-mini button.active { color: var(--accent); border-color: var(--accent); background: #2a1f0a; }

/* 面板 */
.panel { background: var(--panel); border: 1px solid var(--border); border-radius: 10px; margin-bottom: 14px; overflow: hidden; }
.panel-title { padding: 10px 14px; font-weight: bold; border-bottom: 1px solid var(--border); background: var(--panel2); }
.panel-title .count { color: var(--muted); font-weight: normal; font-size: 12px; margin-left: 10px; }
.tablewrap { overflow-x: auto; max-height: 480px; overflow-y: auto; }
table { width: 100%; border-collapse: collapse; font-size: 12px; }
th { background: #0b111e; color: var(--muted); padding: 7px 10px; text-align: left; position: sticky; top: 0; z-index: 2; white-space: nowrap; }
td { padding: 6px 10px; border-top: 1px solid #141d2e; white-space: nowrap; }
tr:hover td { background: #131c30; cursor: pointer; }
.empty { text-align: center; color: var(--muted); padding: 30px; }
.badge { padding: 1px 8px; border-radius: 4px; font-size: 11px; }
.b-seal { background: #7f1d1d; color: #fecaca; } .b-zb { background: #14532d; color: #bbf7d0; }
.b-strategy { background: #1e3a5f; color: #93c5fd; }
.star { color: var(--accent); }
.chipwrap { padding: 14px; display: flex; flex-wrap: wrap; gap: 8px; }
.chip { background: var(--panel2); border: 1px solid var(--border); padding: 4px 12px; border-radius: 14px; font-size: 12px; }
.chip b { color: var(--accent); }
.match-line { padding: 8px 14px; color: var(--accent); font-size: 12px; background: #171208; }
.pct-up { color: var(--up); } .pct-down { color: var(--down); }

/* 统计卡 */
.stats-row { display: flex; gap: 12px; padding: 14px; }
.stat-card { background: var(--panel2); border: 1px solid var(--border); border-radius: 10px; padding: 14px 30px; text-align: center; }
.stat-card .num { font-size: 26px; font-weight: bold; color: var(--accent); }
.stat-card .lbl { font-size: 11px; color: var(--muted); }

/* 弹窗 */
.modal { position: fixed; inset: 0; background: rgba(0,0,0,.6); display: flex; align-items: flex-start; justify-content: center; padding-top: 10vh; z-index: 100; }
.modal-box { background: #101828; border: 1px solid var(--border); border-radius: 12px; width: 760px; max-width: 92vw; max-height: 75vh; overflow: auto; box-shadow: 0 20px 60px rgba(0,0,0,.6); }
.modal-box.w520 { width: 520px; }
.modal-head { padding: 12px 16px; border-bottom: 1px solid var(--border); font-weight: bold; position: sticky; top: 0; background: #101828; }
.x { float: right; cursor: pointer; color: var(--muted); }
.comment-pre { padding: 16px; white-space: pre-wrap; font-family: inherit; font-size: 13px; color: #cfe3ff; }
.form { padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.form label { font-size: 12px; color: var(--muted); }
.form .inp { width: 100%; }
.group-row { display: flex; gap: 10px; flex-wrap: wrap; padding: 10px 16px; }
.stock-chip { background: var(--panel2); border: 1px solid var(--border); border-radius: 8px; padding: 6px 10px; font-size: 12px; min-width: 130px; }
.stock-chip .nm { font-weight: bold; }
.kv { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 6px; padding: 10px 16px; font-size: 12px; }
.kv div { background: var(--panel2); border-radius: 6px; padding: 6px 10px; }
.kv b { color: var(--accent); }

/* 底栏 */
.footbar { position: fixed; bottom: 0; left: 0; right: 0; background: #0c1220; border-top: 1px solid var(--border); padding: 8px 20px; display: flex; align-items: center; gap: 12px; font-size: 12px; z-index: 50; }
.link { background: none; border: none; color: var(--accent); cursor: pointer; font-size: 12px; }
.page { display: none; } .page.active { display: block; }

/* ---- v2 新增 ---- */
.b-mid { background: #713f12; color: #fcd34d; }
.tiny { font-size: 11px; }
.pre { white-space: pre-wrap; max-width: 380px; }
.warnbar { background: #3a2a08; border: 1px solid #f59e0b; color: #fbbf24; padding: 7px 14px; border-radius: 8px; margin-bottom: 12px; font-size: 12px; }
.warnbar.info { background: #0d2a33; border-color: #22b8cf; color: #63e6be; }
.hint { padding: 8px 14px; color: var(--muted); font-size: 12px; background: #0d1422; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.sec-title { padding: 12px 16px 6px; font-weight: bold; font-size: 13px; color: var(--accent); border-top: 1px solid var(--border); margin-top: 6px; }
.cond-list { padding: 4px 16px 10px; display: flex; flex-wrap: wrap; gap: 6px; }
.cond { background: #14261a; border: 1px solid #1f5132; color: #86efac; padding: 3px 10px; border-radius: 6px; font-size: 12px; }
.bd-table { width: 100%; border-collapse: collapse; font-size: 12px; margin: 4px 0 8px; }
.bd-table th { background: #0b111e; color: var(--muted); padding: 6px 16px; text-align: left; position: static; }
.bd-table td { padding: 5px 16px; border-top: 1px solid #141d2e; }
.rules-block { padding: 10px 16px 16px; }
.rule-row { display: flex; gap: 12px; padding: 7px 0; border-bottom: 1px dashed #1a2438; font-size: 12px; }
.rule-row b { min-width: 110px; color: var(--accent); }
.rule-row span { color: var(--txt); }
.group-label { padding: 8px 16px 0; font-size: 12px; color: var(--accent); font-weight: bold; }
.foot-note { padding: 12px 16px 18px; font-size: 11px; }
.chip-big { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 8px 14px; max-width: 420px; }
.chip-big .tiny { line-height: 1.5; }

/* ---- v4 新增：主线 / 市场情绪 / 筹码 / 图表 / 快讯 ---- */
.mainline-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 20px; background: #0f1726; border-bottom: 1px solid var(--border); font-size: 12px; }
.ml-tag { background: #7f1d1d; color: #fecaca; padding: 2px 10px; border-radius: 4px; font-weight: bold; }
.ml-item { background: var(--panel2); border: 1px solid var(--border); padding: 3px 10px; border-radius: 12px; }
.ml-item.is-main { border-color: #b91c1c; color: #fca5a5; }
.ml-item b { color: var(--accent); }
.ml-grab { background: #7c2d12; color: #fdba74; padding: 0 6px; border-radius: 4px; margin-left: 4px; font-size: 11px; }
.ml-sum { margin-left: auto; color: var(--muted); }
.ml-sum b { color: #fff; }

.cardsrow { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin-bottom: 14px; }
.mcard { background: var(--panel); border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; }
.mcard .mk { font-size: 11px; color: var(--muted); }
.mcard .mv { font-size: 22px; font-weight: bold; color: #fff; margin: 2px 0; }
.mcard .ms { font-size: 11px; color: var(--muted); }
.mcard.red .mv { color: var(--up); }
.mcard.green .mv { color: var(--down); }
.mcard.orange .mv { color: var(--orange); }

.dist { display: flex; align-items: flex-end; gap: 6px; height: 200px; padding: 16px 20px 6px; }
.dbar { flex: 1; display: flex; flex-direction: column; align-items: center; height: 100%; justify-content: flex-end; }
.dnum { font-size: 11px; color: var(--muted); }
.dcol { width: 100%; flex: 1; display: flex; align-items: flex-end; }
.dcol i { width: 100%; border-radius: 3px 3px 0 0; display: block; }
.dcol i.up { background: linear-gradient(180deg, #ef4444, #7f1d1d); }
.dcol i.down { background: linear-gradient(180deg, #22c55e, #14532d); }
.dcol i.flat { background: #334155; }
.dlab { font-size: 10px; color: var(--muted); margin-top: 4px; white-space: nowrap; }

.newslist { max-height: 400px; overflow-y: auto; padding: 6px 0; }
.newsitem { display: flex; gap: 10px; align-items: baseline; padding: 6px 14px; border-bottom: 1px dashed #161f31; font-size: 12px; }
.newsitem:hover { background: #131c30; }
.ntime { color: var(--accent); min-width: 92px; font-size: 11px; }
.ntitle { color: var(--txt); }
.ndigest { font-size: 11px; }

.chartrow { display: flex; gap: 12px; padding: 8px 16px 12px; flex-wrap: wrap; }
.chartbox { background: #0b111e; border: 1px solid var(--border); border-radius: 8px; padding: 6px; }
.chartcap { font-size: 11px; color: var(--muted); padding: 0 0 4px 2px; }
.chiprow { display: flex; gap: 14px; padding: 8px 16px 12px; flex-wrap: wrap; }
.chipinfo { flex: 1; min-width: 280px; }
.chipinfo .chipscore { font-size: 14px; margin-bottom: 6px; }
.chipinfo .chipscore b { font-size: 20px; }

.mini-stock { display: inline-block; background: var(--panel2); border: 1px solid var(--border); border-radius: 4px; padding: 1px 6px; margin: 1px 3px 1px 0; cursor: pointer; }
.mini-stock:hover { border-color: var(--accent); }

/* 涨停归因（ztReason）：个股催化 > 板块催化 > 板块联动 > 无板块，颜色直接表达「这板硬不硬」 */
td.rz { font-size: 11.5px; line-height: 1.35; max-width: 320px; color: var(--muted); }
td.rz-newsstock { color: var(--orange); font-weight: 600; }
td.rz-newsector { color: #fb923c; font-weight: 500; }
td.rz-sector { color: #fca5a5; }
td.rz-pair { color: #9aa8bd; }
td.rz-solo { color: #55617a; }

.modal-box { width: 920px; }


/* ==================== v5：题材体系 / 成交额预估 ==================== */
/* 题材标签（可点击） */
.ttag { display: inline-block; background: #16233a; border: 1px solid #24354f; color: #9ec5ff; border-radius: 4px;
  padding: 0 5px; margin: 1px 3px 1px 0; font-size: 11px; cursor: pointer; white-space: nowrap; }
.ttag:hover { background: #1d3557; border-color: var(--accent); color: #cfe4ff; }
tr.clickable { cursor: pointer; }

/* 题材统计卡 */
.chip-h { display: flex; align-items: center; gap: 6px; margin-bottom: 3px; }
.chip-main { border-color: var(--up) !important; box-shadow: inset 0 0 0 1px rgba(239,68,68,.25); }
.chipwrap .chip-big { cursor: pointer; }
.chipwrap .chip-big:hover { background: #17223a; }

/* 主线条目可点 */
.ml-item { cursor: pointer; }
.ml-item:hover { border-color: var(--accent); }

/* 成交额面板 */
.amt-row { display: flex; align-items: center; gap: 10px; padding: 14px 18px 6px; flex-wrap: wrap; }
.amt-main { flex: 1; min-width: 130px; background: var(--panel2); border: 1px solid var(--border); border-radius: 10px; padding: 10px 14px; text-align: center; }
.amt-num { font-size: 24px; font-weight: bold; color: var(--txt); }
.amt-lbl { font-size: 11px; color: var(--muted); margin-top: 2px; }
.amt-arrow { font-size: 20px; color: var(--muted); }
.amt-prog { position: relative; height: 22px; margin: 6px 18px 4px; background: var(--panel2); border: 1px solid var(--border);
  border-radius: 6px; overflow: hidden; }
.amt-prog i { display: block; height: 100%; background: linear-gradient(90deg, #7f1d1d, #ef4444); transition: width .4s; }
.amt-prog span { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-size: 11px; color: #e2e8f0; text-shadow: 0 0 3px #000; }

/* 题材弹窗 */
.modal-box.w760 { width: 860px; }
.tm-sum { display: flex; gap: 10px; flex-wrap: wrap; padding: 10px 16px 4px; }
.tm-kv { background: var(--panel2); border: 1px solid var(--border); border-radius: 8px; padding: 6px 12px; min-width: 110px; }
.tm-kv span { display: block; font-size: 11px; color: var(--muted); }
.tm-kv b { font-size: 15px; }
.tm-dragons { display: flex; gap: 10px; flex-wrap: wrap; padding: 8px 16px; }
.tm-dragon { background: var(--panel2); border: 1px solid var(--border); border-radius: 8px; padding: 6px 12px; cursor: pointer; }
.tm-dragon:hover { border-color: var(--accent); }
.th-sec { padding: 8px 12px 4px; font-size: 12px; color: var(--muted); font-weight: bold; }
.chipwrap-inner { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 12px 10px; }

/* ===== v6：题材去重 + 低吸优选 ===== */
.ml-carry { color: var(--muted); font-size: 10px; margin-left: 3px; }

.dip-best { padding: 10px 14px 4px; }
.dip-best-box { display: flex; gap: 16px; align-items: stretch; flex-wrap: wrap;
  background: linear-gradient(135deg, #1a1508, #131b2c); border: 1px solid var(--accent);
  border-radius: 12px; padding: 12px 16px; }
.db-left { flex: 1; min-width: 320px; }
.db-right { min-width: 240px; text-align: right; display: flex; flex-direction: column; justify-content: center; }
.db-tag { font-size: 12px; color: var(--accent); font-weight: bold; margin-bottom: 4px; }
.db-name { font-size: 20px; font-weight: bold; color: #fff; cursor: pointer; }
.db-name:hover { color: var(--accent); }
.db-sub { font-size: 12px; color: var(--muted); margin-top: 3px; }
.db-sub b { color: var(--txt); }
.db-why { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.db-chip { background: #23293a; border: 1px solid var(--border); color: #cbd5e1;
  font-size: 11px; padding: 2px 8px; border-radius: 10px; }
.db-zone { font-size: 26px; font-weight: bold; color: var(--up); letter-spacing: .5px; }
.db-zone-lbl { font-size: 11px; color: var(--muted); margin-top: 2px; }
.db-stop { font-size: 12px; color: var(--down); margin-top: 6px; }
.db-stop b { color: var(--down); }
.db-basis { font-size: 11px; color: var(--muted); margin-top: 2px; }

/* ===== v7：市场情绪首页化 —— 快讯/雷达 左右一分二 + 重要快讯抽选 ===== */
.duo { display: grid; grid-template-columns: minmax(350px, 430px) minmax(0, 1fr); gap: 14px; align-items: start; }
.duo > .panel { margin-bottom: 0; }
@media (max-width: 1180px) { .duo { grid-template-columns: 1fr; } }

/* 快讯列表：整条可点 */
a.newsitem { text-decoration: none; color: inherit; }
.newsitem { border-left: 3px solid transparent; }
.newsitem.hi { border-left-color: var(--up); background: #1a0d0d; }
.newsitem.hi .ntitle { color: #fca5a5; font-weight: bold; }
.newsitem.mid { border-left-color: #92610f; }
.ntag { flex: 0 0 auto; font-size: 10px; line-height: 16px; padding: 0 6px; border-radius: 4px;
  background: #1e2a3f; color: #9fb3c8; white-space: nowrap; }
.ntag-hi { background: #7f1d1d; color: #fecaca; }
.ntag-no { background: transparent; color: #334155; }
.duo-l .newslist { max-height: 340px; }

/* 重要快讯抽选栏（在快讯列表下方，常驻可见） */
.hotwrap { border-top: 2px solid var(--up); background: #160a0a; }
.hot-head { display: flex; align-items: baseline; gap: 8px; padding: 8px 14px; font-weight: bold; font-size: 12px;
  color: #fca5a5; background: #1f0f10; border-bottom: 1px solid #3b1616; }
.hot-head .count { color: #b45a5a; font-weight: normal; font-size: 11px; margin-left: 8px; }
.hot-head .right { margin-left: auto; float: none; }
.hotlist { max-height: 230px; overflow-y: auto; padding: 4px 0; }
.hotitem { display: flex; gap: 8px; align-items: baseline; padding: 6px 14px; font-size: 12px;
  text-decoration: none; color: inherit; border-bottom: 1px dashed #3b1616; }
.hotitem:last-child { border-bottom: none; }
.hotitem:hover { background: #24100f; }
.hot-time { color: var(--up); font-size: 11px; min-width: 44px; font-weight: bold; flex: 0 0 auto; }
.hot-txt { flex: 1; color: #fecaca; }
.hot-score { flex: 0 0 auto; color: #b91c1c; font-size: 10px; }
.pad6 { padding: 10px 14px; }

/* ===== v8：外围市场 + 成交额/涨跌分布 一分二 + 快讯利多利空 ===== */
.duo { margin-bottom: 14px; }
.duo-2 { grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr); }
@media (max-width: 1240px) { .duo-2 { grid-template-columns: 1fr; } }
.duo-2 .amt-main { min-width: 104px; padding: 8px 10px; }
.duo-2 .amt-num { font-size: 19px; }
.duo-2 .amt-row { padding: 12px 14px 4px; gap: 7px; }
.duo-2 .panel-title .right.tiny { display: none; }
#panel-dist .dist { height: 176px; padding: 14px 16px 6px; }

/* 外围市场 */
.gi-hint { padding: 8px 16px 2px; font-size: 12px; color: #cbd5e1; line-height: 1.7; }
.gi-hint b { color: #fff; }
.gi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(168px, 1fr)); gap: 10px; padding: 12px 16px 14px; }
.gi-item { background: var(--panel2); border: 1px solid var(--border); border-radius: 10px;
  padding: 10px 12px; position: relative; overflow: hidden; }
.gi-item::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--muted); }
.gi-item.up::before { background: var(--up); }
.gi-item.down::before { background: var(--down); }
.gi-top { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; }
.gi-name { font-size: 12px; color: var(--txt); font-weight: bold; }
.gi-reg { font-size: 10px; color: var(--muted); border: 1px solid var(--border); border-radius: 4px; padding: 0 4px; }
.gi-val { font-size: 20px; font-weight: bold; color: #fff; margin-top: 4px; letter-spacing: .3px; }
.gi-pct { font-size: 13px; font-weight: bold; margin-top: 1px; }
.gi-item.up .gi-pct { color: var(--up); }
.gi-item.down .gi-pct { color: var(--down); }
.gi-chg { font-size: 11px; color: var(--muted); margin-left: 6px; }
.gi-foot { font-size: 10px; color: #4b5a6e; margin-top: 5px; }
.gi-item.na .gi-val { color: var(--muted); }

/* 快讯 利多 / 利空 */
.sent { flex: 0 0 auto; font-size: 10px; line-height: 16px; padding: 0 6px; border-radius: 4px; white-space: nowrap; }
.sent-bull { background: #7f1d1d; color: #fecaca; }
.sent-bear { background: #14532d; color: #bbf7d0; }
.sent-mix { background: #4c1d95; color: #ddd6fe; }
.sent-sec { flex: 0 0 auto; font-size: 10px; color: #7dd3fc; }
.hotitem .sent { margin-right: 2px; }
.rule-row em { color: var(--muted); font-style: normal; font-size: 11px; }

/* 可排序列头（v11：一下 高→低 · 两下 低→高 · 三下 回原状态） */
th.th-sort { cursor: pointer; user-select: none; }
th.th-sort:hover { color: var(--accent); background: #16203a; }
th.th-sort .th-arrow { margin-left: 3px; font-size: 9px; opacity: .4; vertical-align: 1px; }
th.th-sort:hover .th-arrow { opacity: .85; }
th.th-sort.on { color: var(--accent); }
th.th-sort.on .th-arrow { opacity: 1; }

/* 表头拖动换列（v16）：按住表头左右拖，松手即换位置；顺序存 localStorage */
th.th-drag { cursor: grab; }
th.th-drag:active { cursor: grabbing; }
th.th-drag::before {
  content: '⋮';
  display: inline-block;
  margin-right: 2px;
  font-size: 9px;
  opacity: 0;
  color: var(--accent);
  transition: opacity .12s;
}
th.th-drag:hover::before { opacity: .6; }
th.th-dragging { opacity: .3; }
th.th-drop { outline: 2px dashed var(--accent); outline-offset: -2px; background: #16203a; }
body.col-dragging { cursor: grabbing; user-select: none; }

/* 低吸小工具：综合分算法说明（可折叠） */
.score-doc { margin: 0 14px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--panel); overflow: hidden; }
.score-doc > summary { cursor: pointer; padding: 9px 14px; font-size: 12px; background: var(--panel2); color: var(--txt); list-style: none; }
.score-doc > summary::-webkit-details-marker { display: none; }
.score-doc > summary::before { content: '\25B8 '; color: var(--accent); }
.score-doc[open] > summary::before { content: '\25BE '; }
.score-doc > summary:hover { color: var(--accent); }
.sd-body { padding: 6px 14px 12px; }
.sd-line { font-size: 12px; color: var(--txt); padding: 4px 0; }
.sd-line b { color: var(--accent); }
.sd-table { margin: 6px 0; }
.sd-table th { background: #0b111e; }
.sd-table td { font-size: 12px; }
.sd-table td:nth-child(3) { color: var(--orange); font-weight: bold; white-space: nowrap; }
.sd-table td:nth-child(2) { color: var(--muted); }

/* ===== v11：排序三态 + 竞价强势榜抢筹行 ===== */
.ml-item.clickable { cursor: pointer; }
.ml-item.clickable:hover { border-color: var(--accent); }
#auc-grab { background: #121a2a; padding-top: 6px; padding-bottom: 6px; }

/* ===== v12：竞价解码分 v2（回测权重）口径面板；v13：低吸综合分 v3 同款 ===== */
#auc-caliber, #dip-caliber, #drg-caliber { margin: 0 14px 10px; }
#auc-caliber .sd-line, #dip-caliber .sd-line, #drg-caliber .sd-line { font-size: 12px; color: var(--muted); padding: 3px 0; line-height: 1.7; }
#auc-caliber .sd-line b, #dip-caliber .sd-line b { color: var(--txt); }
#auc-caliber .sd-table td:nth-child(1), #dip-caliber .sd-table td:nth-child(1) { color: var(--muted); white-space: nowrap; }
#auc-caliber .sd-table td:nth-child(2), #dip-caliber .sd-table td:nth-child(2) { color: var(--txt); white-space: nowrap; }
#auc-caliber .sd-table td:nth-child(3), #dip-caliber .sd-table td:nth-child(3) { text-align: right; }
#auc-caliber .sd-table td:nth-child(n+4), #dip-caliber .sd-table td:nth-child(n+4) { color: var(--muted); text-align: right; white-space: nowrap; }
#auc-caliber .badge, #dip-caliber .badge { margin-right: 4px; }
#dip-caliber .sd-table td:nth-child(3) { color: var(--orange); }

/* ===== v11 / v12 双版本标识（两版并存，靠徽章与浏览器标签区分） ===== */
.ver-badge { display: inline-block; margin-left: 8px; padding: 1px 9px; border-radius: 10px; font-size: 11px; font-weight: 600; letter-spacing: .3px; vertical-align: middle; white-space: nowrap; }
.ver-badge.v11 { background: #1a2233; color: #7d8fa8; border: 1px solid #2b3a52; }
.ver-badge.v12 { background: #1c2a45; color: #6aa9ff; border: 1px solid #2b4a75; }
.ver-banner { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 20px; background: #131a29; border-bottom: 1px solid #2b3a52; color: var(--muted); font-size: 12px; }
.ver-banner b { color: #9fb3cc; }
.ver-banner a { color: #6aa9ff; text-decoration: none; }
.ver-banner a:hover { text-decoration: underline; }
.ver-banner-r { display: flex; align-items: center; gap: 10px; white-space: nowrap; }
.ver-banner-x { background: transparent; border: none; color: var(--muted); cursor: pointer; font-size: 12px; padding: 0 4px; }
.ver-banner-x:hover { color: var(--txt); }

/* ===== 龙回头：情绪横幅（v18.1）===== */
.drg-mood-bar {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  margin: 0 14px 12px; padding: 12px 16px; border-radius: 10px;
  background: #16203a; border: 1px solid #24304d;
}
.drg-mood-bar .lbl { font-size: 13px; color: var(--muted); }
.drg-mood-bar .n { font-size: 30px; font-weight: 700; line-height: 1; }
.drg-mood-bar .verdict { font-size: 16px; font-weight: 700; padding: 3px 10px; border-radius: 6px; }
.drg-mood-bar .desc { font-size: 12px; color: var(--muted); flex: 1 1 320px; line-height: 1.6; }
.drg-mood-bar.hi { background: rgba(239,68,68,.10); border-color: rgba(239,68,68,.55); }
.drg-mood-bar.hi .n, .drg-mood-bar.hi .verdict { color: #ff6b6b; }
.drg-mood-bar.hi .verdict { background: rgba(239,68,68,.18); }
.drg-mood-bar.mid { background: rgba(249,115,22,.10); border-color: rgba(249,115,22,.5); }
.drg-mood-bar.mid .n, .drg-mood-bar.mid .verdict { color: #fb923c; }
.drg-mood-bar.mid .verdict { background: rgba(249,115,22,.16); }
.drg-mood-bar.low { background: rgba(34,197,94,.10); border-color: rgba(34,197,94,.45); }
.drg-mood-bar.low .n, .drg-mood-bar.low .verdict { color: #4ade80; }
.drg-mood-bar.low .verdict { background: rgba(34,197,94,.16); }
.drg-id { display: inline-block; margin-right: 4px; }

/* 主线条上的「有相关新闻」小标（题材维度，hover 看标题） */
.ml-news { cursor: help; font-size: 10px; opacity: .75; margin-left: 2px; }
