/* ═══════════════════════════════════════════════════════════════════════════
   live.css — 会员实时信号追踪表

   只用 xtq.css 里已有的 CSS 变量，不引入任何新配色。
   颜色口径与 量化/option_monitor.py:1815-1845 的 GUI 常量一一对应：
     CALL_COLOR #00E676 → --green     PUT_COLOR  #FF1744 → --red
     AUTO_HIGH  #FFD600 → --gold      INFO_COLOR #00BCD4 → --teal
     WARN_COLOR #FF9100 → --orange    DIM_COLOR  #546E7A → --dim-2
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 状态横幅 ──────────────────────────────────────────────────────────── */
.live-banner {
  display: none; align-items: flex-start; gap: 12px;
  border-radius: var(--r); padding: 14px 18px; margin: 0 0 18px;
  font-size: 14px; line-height: 1.7;
}
.live-banner.show { display: flex; }
.live-banner .bi { font-family: var(--mono); font-weight: 700; flex-shrink: 0; }
.live-banner.frozen { background: rgba(255,214,0,.06);  border: 1px solid rgba(255,214,0,.32);
  border-left: 3px solid var(--gold);   color: var(--ink-2); }
.live-banner.frozen .bi { color: var(--gold); }
.live-banner.offline { background: rgba(255,23,68,.07); border: 1px solid rgba(255,23,68,.34);
  border-left: 3px solid var(--red);    color: var(--ink-2); }
.live-banner.offline .bi { color: var(--red); }
.live-banner b { color: var(--ink); }

/* ── 表格容器：表头吸顶 + 纵向滚动 ───────────────────────────────────── */
.live-wrap {
  border: 1px solid var(--border); border-radius: var(--r);
  background: var(--card);
  max-height: min(62vh, 620px);
  overflow: auto;              /* 纵向滚动 + 窄屏横向滚动 */
  overscroll-behavior: contain;
  scrollbar-width: thin; scrollbar-color: var(--border-lit) transparent;
}
.live-wrap::-webkit-scrollbar { width: 10px; height: 10px; }
.live-wrap::-webkit-scrollbar-track { background: var(--panel); }
.live-wrap::-webkit-scrollbar-thumb { background: var(--border-lit); border-radius: 5px; }
.live-wrap::-webkit-scrollbar-thumb:hover { background: var(--teal); }

table.live { border-collapse: separate; border-spacing: 0; width: 100%; min-width: 880px; }

table.live thead th {
  position: sticky; top: 0; z-index: 3;
  background: var(--panel); color: var(--dim);
  font-family: var(--mono); font-size: 11px; letter-spacing: .12em; font-weight: 600;
  text-align: left; white-space: nowrap;
  padding: 11px 14px; border-bottom: 1px solid var(--border-lit);
}
/* 第一列（录入时间）横向滚动时也钉住 */
table.live thead th:first-child,
table.live tbody td:first-child { position: sticky; left: 0; z-index: 2; }
table.live thead th:first-child { z-index: 4; }
table.live tbody td:first-child { background: inherit; box-shadow: 1px 0 0 var(--border); }

table.live tbody td {
  font-family: var(--mono); font-size: 13px; white-space: nowrap;
  padding: 9px 14px; border-bottom: 1px solid var(--border);
  color: var(--ink);
}
table.live tbody tr:last-child td { border-bottom: 0; }
table.live tbody tr { transition: filter .12s; }
table.live tbody tr:hover { filter: brightness(1.35); }

/* 行底色按状态 —— 与 option_monitor.py 的 BG_MAP 同口径 */
tr[data-st="SIGNAL"]     td { background: #0a1622; }
tr[data-st="EOD_SIGNAL"] td { background: #0a1420; }
tr[data-st="TRACKING"]   td { background: #0a1828; }
tr[data-st="OPEN"]       td { background: #0a1e14; }
tr[data-st="TP"]         td { background: #1a1400; }
tr[data-st="SL"]         td { background: #1a0000; }
tr[data-st="EXPIRED"]    td { background: #101010; }
tr[data-st="IGNORED"]    td { background: var(--bg); }
tr[data-st="CLOSED"]     td,
tr[data-st="EOD_CLOSED"] td { background: #12121e; }

/* 列着色 —— 与 col_colors 一一对应 */
.c-dim   { color: var(--dim-2) !important; }
.c-call  { color: var(--green) !important; }
.c-put   { color: var(--red) !important; }
.c-score { color: var(--orange) !important; font-weight: 700; }
.c-info  { color: var(--teal) !important; }
.c-gold  { color: var(--gold) !important; }
.c-ink   { color: var(--ink) !important; }
td.num-r { text-align: right; }

/* 空表 */
.live-empty { padding: 54px 24px; text-align: center; }
.live-empty .le-t { font-family: var(--mono); font-size: 15px; color: var(--dim); margin-bottom: 8px; }
.live-empty .le-s { font-size: 13px; color: var(--dim-2); line-height: 1.8; }

/* 表下方的行数 / 刷新条 */
.live-foot {
  display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center;
  margin-top: 12px; font-family: var(--mono); font-size: 11.5px; color: var(--dim-2);
}
.live-foot .sep { color: var(--border-lit); }
.live-foot b { color: var(--dim); font-weight: 600; }

/* 会员水印 */
.live-who {
  margin-left: auto; padding: 3px 10px; border-radius: 999px;
  border: 1px solid var(--border-lit); color: var(--dim);
  font-family: var(--mono); font-size: 11px;
}

/* 图例 */
.live-legend {
  display: flex; flex-wrap: wrap; gap: 8px 14px; margin: 16px 0 0;
  font-family: var(--mono); font-size: 11px; color: var(--dim-2);
}
.live-legend span { display: inline-flex; align-items: center; gap: 6px; }
.live-legend i { width: 10px; height: 10px; border-radius: 2px; border: 1px solid var(--border-lit); }

@media (max-width: 640px) {
  .live-wrap { max-height: 68vh; }
  table.live tbody td { padding: 8px 11px; font-size: 12.5px; }
  table.live thead th { padding: 9px 11px; }
}

/* ── 来源列：信号引擎标签（反转 / 动量）─────────────────────────────────
   配色经 dataviz 校验器验证（暗色表底 #0F1729）：
     反转 #9B7BD8 —— 整行里唯一未被语义占用的色相；与相邻「评分」橙、「状态」青绿 ΔE ≥ 18
     动量 #00E5FF —— 与反转 ΔE 75；与「状态·信号追踪」青绿相邻时 ΔE 15（刚过线）
   所以另加描边标签形状 + 加粗作第二编码，不单靠颜色区分。
   否决：金色（16:00 后「收盘信号」状态即金色，会与动量相邻同色糊成一格）；
         原紫 #7E57C2（暗行底上文字对比仅约 3.4:1）。
   与桌面端 option_monitor.py 的 REVERSAL_COLOR / MOMENTUM_COLOR 同值。 */
.eng {
  display: inline-block; min-width: 3.4em; text-align: center; box-sizing: border-box;
  font-family: var(--cjk); font-size: 12px; font-weight: 700; letter-spacing: .1em;
  line-height: 1.5; padding: 1px 8px; border-radius: 3px; border: 1px solid transparent;
}
.eng-rev  { color: #9B7BD8;      border-color: rgba(155,123,216,.55); background: rgba(155,123,216,.10); }
.eng-mom  { color: var(--cyan);  border-color: rgba(0,229,255,.50);   background: rgba(0,229,255,.08); }
.eng-none { color: var(--dim-2); font-weight: 400; }
