/* ===== 缠论四周期共振选股 APP ===== 移动端优先 · 浅色主题 */
* { box-sizing: border-box; margin: 0; padding: 0; -webkit-tap-highlight-color: transparent; }
:root {
  --bg: #f3f5f8;
  --card: #ffffff;
  --line: #e6e8ee;
  --text: #1b2330;
  --sub: #6b7482;
  --brand: #1b2a4a;
  --blue: #2468f2;
  --red: #d83931;
  --green: #1a7f37;
  --amber: #c87d1f;
  --tab-h: 52px;
  --header-h: 58px;
}
html, body { min-height: 100%; } /* min-height 而非 height：内容超一屏时 padding-bottom 仍生效，底部说明不被固定导航遮挡 */
body {
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Helvetica Neue", sans-serif;
  background: var(--bg); color: var(--text);
  overflow-x: hidden;
  overscroll-behavior-y: contain;
  padding-bottom: calc(78px + env(safe-area-inset-bottom)); /* 底部主导航高度 + 余量 */
}

/* ===== 下拉刷新指示器 ===== */
.ptr {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  height: 72px; display: flex; align-items: flex-end; justify-content: center;
  padding-bottom: 8px; pointer-events: none;
  transition: transform .18s ease-out;
  transform: translateY(-72px);
  color: var(--sub);
}
.ptr-inner { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.ptr-icon { display: inline-block; font-size: 18px; transition: transform .15s; }
.ptr.spinning .ptr-icon { animation: spin .8s linear infinite; }
.ptr.spinning { color: var(--blue); }
@keyframes spin { to { transform: rotate(360deg); } }

/* ===== 顶栏 ===== */
.app-header {
  position: sticky; top: 0; z-index: 40;
  display: flex; align-items: center; justify-content: space-between;
  min-height: var(--header-h);
  padding: calc(env(safe-area-inset-top) + 8px) 16px 8px;
  background: var(--brand); color: #fff;
  box-shadow: 0 2px 10px rgba(27,42,74,.25);
}
.brand-title { font-size: 17px; font-weight: 700; letter-spacing: .5px; }
.brand-sub { font-size: 11.5px; color: rgba(255,255,255,.75); margin-top: 3px; }

/* ===== 更新状态条（与消息面统一样式） ===== */
.update-bar {
  margin: 10px 12px 0; padding: 10px 12px;
  background: var(--card); border: 1px solid var(--line); border-radius: 14px;
  box-shadow: 0 2px 8px rgba(27,42,74,.08);
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
}
.update-bar .ub-info { flex: 1; min-width: 0; }
.update-bar .ub-title { font-size: 13.5px; font-weight: 700; display: flex; align-items: center; gap: 6px; color: var(--text); }
.update-bar .ub-sub { font-size: 11.5px; color: var(--sub); margin-top: 2px; white-space: normal; word-break: break-all; line-height: 1.5; }
.update-bar .ub-manual { margin-top: 4px; color: var(--blue); }
.ub-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--green); flex: none; }
.ub-dot.off { background: #94a3b8; }
.ub-btn {
  min-height: 38px; border: 1.5px solid var(--blue); border-radius: 12px;
  background: #fff; color: var(--blue); font-size: 13px; font-weight: 600;
  padding: 0 13px; cursor: pointer; white-space: nowrap;
  display: inline-flex; align-items: center; justify-content: center;
  transition: transform .12s, background .15s;
}
.ub-btn:active { transform: scale(.96); background: #eef3fe; }

/* ===== 漏斗摘要 ===== */
.funnel {
  margin: 10px 12px 0; padding: 9px 12px;
  background: var(--card); border: 1px solid var(--line); border-radius: 12px;
  font-size: 11.5px; color: var(--sub); line-height: 1.65;
}
.funnel b { color: var(--brand); }
.funnel .hl { color: var(--red); font-weight: 600; }
.funnel .hl.pend { color: #1a6fb5; }

/* ===== 排序规则说明条 ===== */
.sort-rule {
  margin: 0 12px 10px; padding: 8px 12px;
  background: #fffbe6; border: 1px solid #f2e3a8; border-radius: 10px;
  font-size: 11.5px; color: #7a6a1f; line-height: 1.6;
}
.sort-rule b { color: #5c4d12; }

/* ===== 当日热点板块条 ===== */
.hot-strip {
  margin: 0 12px 10px; padding: 8px 12px;
  background: #fff3e0; border: 1px solid #ffd9a8; border-radius: 10px;
  font-size: 11.5px; color: #7c3e0e; line-height: 1.75;
}
.hot-strip b { color: #b45309; }
.hot-strip .hot-item { margin-right: 4px; white-space: nowrap; }
.hot-strip .hot-item em { font-style: normal; font-family: Consolas, Menlo, monospace; font-weight: 600; }
.hot-strip .hot-item em.up { color: var(--red); }
.hot-strip .hot-item em.down { color: var(--green); }

/* ===== Tab 切换栏 ===== */
.tabs {
  position: sticky; top: 0;
  z-index: 39; display: flex; gap: 6px;
  margin: 10px 12px 0; padding: 5px;
  background: #e9ecf2; border-radius: 14px;
}
.tab {
  flex: 1; min-width: 0; padding: 8px 2px;
  border: none; border-radius: 10px; background: transparent;
  font-size: 12.5px; font-weight: 600; color: var(--sub);
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  transition: all .18s; cursor: pointer;
}
.tab .n { font-size: 10.5px; font-weight: 700; opacity: .8; }
.tab.active { background: var(--card); color: var(--blue); box-shadow: 0 2px 8px rgba(27,42,74,.12); }
.tab.active .n { color: var(--red); opacity: 1; }
.tab:active { transform: scale(.96); }
/* 买点状态切换（预形成/已形成）：不吸顶，紧贴漏斗下方 */
.tabs.status-tabs { position: static; margin-top: 10px; background: #eef1f6; }
.tabs.status-tabs .tab.active { color: #1a6fb5; }

/* ===== 池说明 ===== */
.pool-desc {
  margin: 10px 14px 0; font-size: 12px; color: var(--sub); line-height: 1.6;
}

/* ===== 池筛选按钮 ===== */
.filter-wrap { margin: 10px 12px 0; display: flex; flex-direction: column; gap: 8px; }
.filter-row { display: flex; gap: 8px; }
.filter-row[hidden] { display: none; }

/* 池筛选按钮: 第一行(股价上涨/下跌) + 第二行(热点/龙头/Pinbar) + 第三行(盘整背驰/盘整背驰＋黄白线)，等宽均分 */
.filter-btn {
  flex: 1; min-width: 0; height: 40px; padding: 0 4px;
  border: 1px solid var(--line); border-radius: 12px;
  background: var(--card); font-size: 13px; font-weight: 600;
  color: var(--text); cursor: pointer; white-space: nowrap;
  text-overflow: ellipsis; overflow: hidden;
  transition: all .15s ease;
}
.filter-btn:active { transform: scale(.96); }
.filter-btn.active {
  background: var(--green); border-color: var(--green); color: #fff;
  box-shadow: 0 2px 8px rgba(0,168,107,.35);
}
.filter-btn.active .n { font-size: 11px; font-weight: 400; opacity: .9; }
/* 热点按钮激活: 橙色（呼应卡片热点🔥标签） */
.filter-btn.hot.active {
  background: #e65100; border-color: #e65100;
  box-shadow: 0 2px 8px rgba(230,81,0,.35);
}
/* 龙头按钮激活: 红色（呼应卡片👑龙头徽标） */
.filter-btn.leader.active {
  background: var(--red); border-color: var(--red);
  box-shadow: 0 2px 8px rgba(220,38,38,.35);
}
/* Pinbar按钮激活: 紫色（呼应卡片📌Pinbar徽标） */
.filter-btn.pin.active {
  background: #7c3aed; border-color: #7c3aed;
  box-shadow: 0 2px 8px rgba(124,58,237,.35);
}
/* 股价上涨按钮激活: 红色（中国市场惯例红涨） */
.filter-btn.up.active {
  background: var(--red); border-color: var(--red);
  box-shadow: 0 2px 8px rgba(220,38,38,.35);
}
/* 股价下跌按钮激活: 绿色（中国市场惯例绿跌） */
.filter-btn.down.active {
  background: var(--green); border-color: var(--green);
  box-shadow: 0 2px 8px rgba(0,168,107,.35);
}
/* 盘整背驰＋黄白线按钮激活: 青绿色（与仅面积的绿色盘整背驰按钮区分） */
.filter-btn.divdif.active {
  background: #0d9488; border-color: #0d9488;
  box-shadow: 0 2px 8px rgba(13,148,136,.35);
}

/* ===== 股票卡片列表 ===== */
.list { padding: 10px 12px calc(24px + env(safe-area-inset-bottom)); }
.stock {
  background: var(--card); border: 1px solid var(--line); border-radius: 14px;
  padding: 12px 14px; margin-bottom: 10px;
  /* 长列表性能: 视口外卡片跳过渲染 */
  content-visibility: auto;
  contain-intrinsic-size: auto 132px;
}
/* 显示更多按钮（列表分批渲染） */
.more-btn {
  display: block; width: 100%; margin: 4px 0 12px; padding: 11px 0;
  border: 1px dashed #c4cadb; border-radius: 12px; background: #f7f9fc;
  font-size: 13px; font-weight: 600; color: var(--brand); cursor: pointer;
}
.more-btn:active { transform: scale(.98); background: #eef2f9; }
.stock .row1 { display: flex; align-items: center; gap: 8px; }
.stock .name { font-size: 15.5px; font-weight: 700; }
.stock .sector {
  font-size: 10px; font-weight: 600; padding: 2px 7px; border-radius: 7px;
  background: #eef4ff; color: var(--blue); white-space: nowrap;
  flex-shrink: 0;
}
.stock .sector.hot {
  background: #fff3e0; color: #e65100;
  box-shadow: 0 0 0 1px #ffd9a8 inset;
}
.stock .leader {
  font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 7px;
  background: #d83931; color: #fff; white-space: nowrap;
  flex-shrink: 0;
  box-shadow: 0 1px 3px rgba(216, 57, 49, .35);
}
.stock .pin {
  font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 7px;
  background: #f3e8ff; color: #7c3aed; white-space: nowrap;
  flex-shrink: 0;
  box-shadow: 0 0 0 1px #d8b4fe inset;
}
.stock .code { font-size: 12px; color: var(--sub); font-family: Consolas, Menlo, monospace; }
.stock .price { margin-left: auto; font-size: 16px; font-weight: 700; font-family: Consolas, Menlo, monospace; }
.stock .pct { font-size: 12px; font-weight: 700; font-family: Consolas, Menlo, monospace; white-space: nowrap; }
.stock .pct.up { color: var(--red); }
.stock .pct.down { color: var(--green); }
.stock .row2 .pct { font-size: 10.5px; font-weight: 600; }
.stock .row2 { display: flex; align-items: center; gap: 8px; margin-top: 5px; font-size: 11.5px; color: var(--sub); }
.stock .row2 .amt { font-family: Consolas, Menlo, monospace; }
.stock .lvl { margin-left: auto; font-size: 10.5px; font-weight: 700; padding: 2px 8px; border-radius: 9px; white-space: nowrap; }
.lvl.l1 { background: #eef4ff; color: var(--blue); }
.lvl.l2 { background: #e8f7ee; color: var(--green); }
.lvl.l3 { background: #fdf3e3; color: var(--amber); }
.lvl.l4 { background: #fdecec; color: var(--red); }

/* 状态徽章行 */
.badges { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 9px; }
.badge {
  font-size: 10px; font-weight: 600; padding: 2.5px 7px; border-radius: 7px;
  background: #f0f2f6; color: #9aa1ad; white-space: nowrap;
}
.badge.pass { background: #e8f7ee; color: var(--green); }
.badge.fail { background: #fdecec; color: var(--red); }
.badge.bonus { background: #eef4ff; color: var(--blue); }

/* 背驰详情 / 介入区间 */
.detail {
  margin-top: 9px; padding-top: 9px; border-top: 1px dashed var(--line);
  font-size: 11.5px; color: var(--sub); line-height: 1.7;
}
.detail .k { color: var(--green); font-weight: 600; }
.detail .entry { color: var(--red); font-weight: 600; }

/* 综合标记 */
.mark-line { margin-top: 8px; display: flex; align-items: center; gap: 6px; font-size: 12px; }
.mark-badge { width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 14px; }
.mark-badge.ok { background: #fdecec; }
.mark-badge.warn { background: #fdf3e3; }
.mark-line .note { color: var(--sub); font-size: 11.5px; }

/* 空态 */
.empty {
  text-align: center; color: var(--sub); padding: 46px 20px;
  background: var(--card); border: 1px dashed var(--line); border-radius: 14px;
  font-size: 13.5px; line-height: 1.8;
}
.empty .big { font-size: 30px; display: block; margin-bottom: 8px; }

/* 状态条 */
.status {
  margin: 6px 12px 0; padding: 10px 14px; border-radius: 12px;
  font-size: 12.5px; text-align: center;
}
.status.error { background: #fdecec; color: var(--red); }
.status.ok { background: #e8f7ee; color: var(--green); }

/* 页脚 */
.footer { padding: 4px 16px calc(20px + env(safe-area-inset-bottom)); text-align: center; }
.footer-line { font-size: 11px; color: var(--sub); line-height: 1.7; }
.footer-line.sub { color: #a0a7b2; font-size: 10.5px; }

/* 无动画偏好 */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}

/* ================================================================
   以下为缠论实战工作台 v14 新增样式
   ================================================================ */

/* ===== 主导航（固定底部：买点/共振/解析） ===== */
.main-nav {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
  display: flex; gap: 5px;
  margin: 0; padding: 6px 10px calc(6px + env(safe-area-inset-bottom));
  background: #1b2a4a;
  box-shadow: 0 -2px 12px rgba(27,42,74,.22);
}
.nav-btn {
  flex: 1; min-width: 0; padding: 11px 2px;
  border: none; border-radius: 10px; background: transparent;
  font-size: 13px; font-weight: 600; color: rgba(255,255,255,.62);
  white-space: nowrap; cursor: pointer; transition: all .18s;
}
.nav-btn.active {
  background: rgba(255,255,255,.16); color: #fff;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.22);
}
.nav-btn:active { transform: scale(.96); }
.view { display: block; }
.view[hidden] { display: none; }

/* ===== 买点视图：级别切换 chips ===== */
.level-chips {
  display: flex; gap: 7px; margin: 10px 12px 0;
}
.chip {
  flex: 1; min-width: 0; padding: 7px 4px;
  border: 1px solid var(--line); border-radius: 11px;
  background: var(--card); font-size: 12.5px; font-weight: 600;
  color: var(--sub); cursor: pointer; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis; transition: all .15s;
}
.chip .n { font-size: 10.5px; font-weight: 700; opacity: .85; margin-left: 3px; }
.chip.active {
  background: var(--brand); border-color: var(--brand); color: #fff;
  box-shadow: 0 2px 8px rgba(27,42,74,.3);
}
.chip.active .n { color: #ffd9a8; }
.chip:active { transform: scale(.95); }

/* ===== 买点视图：排序条 ===== */
.sort-bar {
  display: flex; gap: 7px; margin: 9px 12px 0;
}
.sort-btn {
  flex: 1; min-width: 0; padding: 7px 4px;
  border: 1px solid var(--line); border-radius: 11px;
  background: var(--card); font-size: 12px; font-weight: 600;
  color: var(--sub); cursor: pointer; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis; transition: all .15s;
}
.sort-btn.active {
  background: #eef4ff; border-color: #b6ccff; color: var(--blue);
  box-shadow: 0 0 0 1px #b6ccff inset;
}
.sort-btn:active { transform: scale(.95); }

/* ===== 买点信号卡片 ===== */
/* A股涨跌配色约定：买点=红、卖点=绿 */
.sig-type {
  font-size: 10.5px; font-weight: 700; padding: 2px 8px; border-radius: 9px;
  white-space: nowrap; flex-shrink: 0;
}
.sig-type.t1 { background: #fbe0e0; color: #c01d1d; }
.sig-type.t2 { background: #fdecec; color: var(--red); }
.sig-type.t3 { background: #d91313; color: #fff; }
.sig-type.t3s { background: #b45309; color: #fff; }
.sig-type.t23 { background: #b8860b; color: #fff; }
.sig-type.sell { background: #e8f7ee; color: var(--green); }
.sig-type.std { background: #eef4ff; color: var(--blue); }
.sig-type.suspect { background: #fdf3e3; color: var(--amber); }
.sig-type.pend { background: #eef7ff; color: #1a6fb5; border: 1px dashed #6aa9d8; }
.sig-lvl {
  font-size: 10.5px; font-weight: 700; padding: 2px 8px; border-radius: 9px;
  background: #f0f2f6; color: var(--sub); white-space: nowrap;
}
.sig-lvl.D { background: #1b2a4a; color: #fff; }
.sig-lvl.l30 { background: #33456e; color: #fff; }
.sig-lvl.l5 { background: #55688f; color: #fff; }
.sig-rel { font-size: 10.5px; font-weight: 700; padding: 2px 8px; border-radius: 9px; white-space: nowrap; }
.sig-rel.r高 { background: #fdecec; color: var(--red); }
.sig-rel.r中 { background: #fdf3e3; color: var(--amber); }
.sig-rel.r低 { background: #f0f2f6; color: #9aa1ad; }
.sig-cap {
  font-size: 12px; font-weight: 700; white-space: nowrap;
  font-family: Consolas, Menlo, monospace; color: var(--brand);
}
.sig-cap .u { font-size: 10px; font-weight: 400; color: var(--sub); }
.sig-scan { margin-left: auto; font-size: 10.5px; color: #a0a7b2; white-space: nowrap; }
.tags-line { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.tag {
  font-size: 10px; font-weight: 600; padding: 2px 7px; border-radius: 7px;
  background: #f0f2f6; color: var(--sub); white-space: nowrap;
}
.tag.hot { background: #fff3e0; color: #e65100; }
.tag.leader { background: #d83931; color: #fff; }
.tag.pin { background: #f3e8ff; color: #7c3aed; }
.tag.four { background: #0d9488; color: #fff; }
.tag.warn { background: #fdf3e3; color: var(--amber); }
.tag.ok { background: #e8f7ee; color: var(--green); }
.tag.best { background: #b8860b; color: #fff; }
.tag.pend { background: #eef7ff; color: #1a6fb5; border: 1px dashed #6aa9d8; }
.sig-reason {
  margin-top: 8px; font-size: 11px; color: var(--sub); line-height: 1.65;
}
/* 历史操作按钮 */
.act-line {
  display: flex; gap: 7px; margin-top: 9px; padding-top: 9px;
  border-top: 1px dashed var(--line);
}
.act-btn {
  flex: 1; padding: 6px 2px; border: 1px solid var(--line); border-radius: 9px;
  background: var(--card); font-size: 11.5px; font-weight: 600;
  color: var(--sub); cursor: pointer; transition: all .15s; white-space: nowrap;
}
.act-btn:active { transform: scale(.95); }
.act-btn.watch.active { background: #eef4ff; border-color: var(--blue); color: var(--blue); }
.act-btn.drop.active { background: #f0f2f6; border-color: #9aa1ad; color: var(--sub); text-decoration: line-through; }
.act-btn.done.active { background: #e8f7ee; border-color: var(--green); color: var(--green); }
.act-btn.del { flex: 0 0 64px; background: #fdecec; border-color: #f5c6c2; color: var(--red); }
/* 「进入待操作」：与深度解析同排，橙色系区别于默认蓝 */
.act-btn.pend { background: #fff7ec; border-color: #f5c98a; color: #d96c00; }
.act-btn.pend.active { background: #fdeee0; border-color: #e8a24c; color: #b3540a; }
/* 「撤销待操作」：与进入待操作同排，红色系；未加入时灰态不可点 */
.act-btn.revoke { background: #fdecec; border-color: #f5c6c2; color: var(--red); }
.act-btn.revoke.off { background: #f4f4f5; border-color: #e3e3e6; color: #b9b9bf; cursor: default; }
.act-btn.revoke.off:active { transform: none; }
/* 第二行动作行（进入/撤销）去掉顶部分隔线，与深度解析成组 */
.act-line.sub { border-top: none; padding-top: 0; margin-top: 0; }

/* ===== 深度解析视图 ===== */
.detail-search {
  display: flex; gap: 8px; margin: 10px 12px 0;
}
.detail-search input {
  flex: 1; min-width: 0; height: 42px; padding: 0 14px;
  border: 1px solid var(--line); border-radius: 12px;
  background: var(--card); font-size: 14px; color: var(--text);
  outline: none;
}
.detail-search input:focus { border-color: var(--blue); }
.go-btn {
  flex: 0 0 74px; border: none; border-radius: 12px;
  background: var(--brand); color: #fff; font-size: 14px; font-weight: 700;
  cursor: pointer;
}
.go-btn:active { transform: scale(.95); }
.detail-head {
  margin: 10px 12px 0; padding: 12px 14px;
  background: var(--card); border: 1px solid var(--line); border-radius: 14px;
}
.detail-head .r1 { display: flex; align-items: center; gap: 8px; }
.detail-head .name { font-size: 16px; font-weight: 700; }
.detail-head .code { font-size: 12px; color: var(--sub); font-family: Consolas, Menlo, monospace; }
.detail-head .r2 { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; font-size: 11.5px; color: var(--sub); }
.detail-head .cap { font-family: Consolas, Menlo, monospace; font-weight: 700; color: var(--brand); }
.detail-lv-tabs { display: flex; gap: 7px; margin: 10px 12px 0; }
.chart-box {
  margin: 10px 12px 0; padding: 8px 6px 4px;
  background: var(--card); border: 1px solid var(--line); border-radius: 14px;
  overflow: hidden;
}
.chart-box svg { display: block; width: 100%; height: auto; }
.chart-note { font-size: 10.5px; color: #a0a7b2; text-align: center; padding: 4px 8px 6px; }
.zs-list {
  margin: 10px 12px 0; padding: 11px 14px;
  background: var(--card); border: 1px solid var(--line); border-radius: 14px;
  font-size: 12px; color: var(--sub); line-height: 1.85;
}
.zs-list b { color: var(--brand); }
.zs-list .mono { font-family: Consolas, Menlo, monospace; }

/* ===== 历史视图 ===== */
.hist-bar {
  margin: 10px 12px 0; padding: 10px 14px;
  background: var(--card); border: 1px solid var(--line); border-radius: 14px;
  font-size: 12px; color: var(--sub); line-height: 1.7;
}
.hist-bar b { color: var(--brand); }
.hist-filters { margin: 8px 12px 0; display: flex; flex-direction: column; gap: 8px; }
.hist-row { display: flex; gap: 7px; flex-wrap: wrap; }
.hist-row select, .hist-row input {
  flex: 1; min-width: 70px; height: 36px; padding: 0 8px;
  border: 1px solid var(--line); border-radius: 10px;
  background: var(--card); font-size: 12.5px; color: var(--text);
  outline: none;
}
.hist-status {
  flex: 1; min-width: 0; height: 36px; padding: 0 4px;
  border: 1px solid var(--line); border-radius: 10px;
  background: var(--card); font-size: 12.5px; font-weight: 600;
  color: var(--sub); cursor: pointer;
}
.hist-status.active { background: var(--brand); border-color: var(--brand); color: #fff; }
.hist-stat {
  font-size: 10.5px; font-weight: 700; padding: 2px 8px; border-radius: 9px;
  white-space: nowrap;
}
.hist-stat.watch { background: #eef4ff; color: var(--blue); }
.hist-stat.done { background: #e8f7ee; color: var(--green); }
.hist-stat.drop { background: #f0f2f6; color: #9aa1ad; text-decoration: line-through; }

/* 通用搜索建议列表 */
.suggest-list {
  margin: 8px 12px 0; background: var(--card);
  border: 1px solid var(--line); border-radius: 12px; overflow: hidden;
}
.suggest-item {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 14px; font-size: 13px; cursor: pointer;
  border-bottom: 1px solid #f0f1f3;
}
.suggest-item:last-child { border-bottom: none; }
.suggest-item:active { background: #eef4ff; }
.suggest-item .sc { font-family: Consolas, Menlo, monospace; color: var(--sub); font-size: 12px; }

/* ===== 最优买点榜 ===== */
.best-head { padding: 14px 16px 2px; }
.best-title { font-size: 17px; font-weight: 800; color: var(--text); }
.best-desc { margin-top: 4px; font-size: 11.5px; line-height: 1.5; color: var(--sub); }
.best-rank {
  flex: 0 0 auto; width: 26px; height: 26px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 800; font-family: Consolas, Menlo, monospace; line-height: 1;
}
.best-rank.top {
  background: linear-gradient(135deg, #fbbf24, #f59e0b); color: #fff;
  box-shadow: 0 1px 3px rgba(245, 158, 11, .4);
}
.best-rank.n { background: #eef2f9; color: #64748b; }
.best-score {
  font-size: 13px; font-weight: 800; color: #b45309; font-family: Consolas, Menlo, monospace;
  background: #fef3e2; padding: 2px 8px; border-radius: 8px; white-space: nowrap;
}
.best-lv { font-size: 11.5px; font-weight: 700; color: #0d9488; white-space: nowrap; }
.best-factors { font-size: 10.5px; color: #94a3b8; font-family: Consolas, Menlo, monospace; white-space: nowrap; }
.best .sig-reason { color: var(--sub); line-height: 1.5; }
