
  /* ---------- shared Research-Reports chrome ---------- */
  * { box-sizing:border-box; }
  body { background:var(--bg); color:var(--text); font:14px/1.6 -apple-system,"Segoe UI",Roboto,Helvetica,sans-serif; margin:0; padding:18px 18px 60px; }
  @media(min-width:1100px){ body{ padding-left:max(18px,calc((100vw - 1096px)/2)); padding-right:max(18px,calc((100vw - 1096px)/2)); } }
  a { color:var(--link); text-decoration:none; }
  .wrap { max-width:1060px; margin:0 auto; }
  /* unambiguous move colours (NOT tied to the zh red=up swap) */
  .r-neg { color:#d23f3f; font-weight:600; }
  .r-pos { color:#1f9a55; font-weight:600; }
  html[data-theme="dark"] .r-neg { color:#ef6a6a; }
  html[data-theme="dark"] .r-pos { color:#3fc07e; }
  .mut { color:var(--muted); }
  /* tags / chips */
  .chip { display:inline-flex; align-items:center; gap:5px; font-size:11.5px; line-height:1; padding:5px 10px; border-radius:999px;
          background:var(--panel2); border:1px solid var(--line); color:var(--muted); white-space:nowrap; }
  .chip.tag-macro   { color:#5b8def; border-color:#5b8def55; }
  .chip.tag-fed     { color:#c77dff; border-color:#c77dff55; }
  .chip.tag-rates   { color:#3fb6c0; border-color:#3fb6c055; }
  .chip.tag-equities{ color:#46b87a; border-color:#46b87a55; }
  .chip.tag-crypto  { color:#e0973a; border-color:#e0973a55; }
  .chip.tag-energy  { color:#cf7b3a; border-color:#cf7b3a55; }
  .chip.tag-event   { color:#e0607a; border-color:#e0607a55; }
  .chip.tag-ai      { color:#b48ead; border-color:#b48ead55; }
  .chip.tag-china   { color:#d0554f; border-color:#d0554f55; }
  .chip.tag-credit  { color:#d08770; border-color:#d0877055; }
  footer.rfoot { color:var(--muted); font-size:11.5px; margin:46px auto 0; max-width:1060px; border-top:1px solid var(--line); padding-top:14px; }
  
/* ── Four-tab workbench layout ── */
.tl-page { max-width:1080px; margin:0 auto; padding:0 20px 48px; }
.tl-hero { margin:24px 0 0; }
.eyebrow { font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px; }
.tl-hero h1 { font-size:26px;font-weight:800;margin-bottom:6px; }
.tl-sub { color:var(--muted);font-size:13px;max-width:820px;line-height:1.6; }
.tl-meta { display:flex;gap:7px;flex-wrap:wrap;margin-top:12px; }
.chip { display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;background:var(--panel2);color:var(--muted);border:1px solid var(--line); }
.chip.tag-equities { background:rgba(91,155,240,.15);color:var(--info);border-color:rgba(91,155,240,.3); }
.chip.tag-warn { background:rgba(224,160,48,.12);color:var(--warn);border-color:rgba(224,160,48,.25); }

/* ── Display-only banner ── */
.display-banner { margin:14px 0 0;padding:12px 16px;background:rgba(224,160,48,.08);border:1px solid rgba(224,160,48,.25);border-radius:10px;font-size:12.5px;color:var(--warn);display:flex;align-items:flex-start;gap:10px;line-height:1.6; }
.display-banner .icon { font-size:16px;flex:none;margin-top:1px; }
.display-banner strong { color:var(--text); }
.hb-dots { display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:6px; }
.hb-dot::before { content:"·";margin-right:5px; }
.hb-dot { font-size:11.5px;color:var(--warn); }

/* ── Sample banner ── */
.tl-sample-banner { margin:10px 0 0;background:rgba(224,151,58,.13);border:1px solid rgba(224,151,58,.35);border-radius:10px;padding:10px 14px;font-size:12.5px;color:#c77a1f; }
html[data-theme="dark"] .tl-sample-banner { color:#e0973a; }

/* ── Tab bar ── */
.tab-bar { display:flex;gap:2px;margin:20px 0 0;border-bottom:2px solid var(--line);overflow-x:auto;scrollbar-width:none; }
.tab-bar::-webkit-scrollbar { display:none; }
.tbl-scroll { overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch; }
.tab-btn { padding:10px 20px;font-size:13px;font-weight:600;border:none;background:transparent;color:var(--muted);cursor:pointer;transition:color .15s;position:relative;white-space:nowrap; }
.tab-btn:hover { color:var(--text); }
.tab-btn.active { color:var(--link); }
.tab-btn.active::after { content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--link);border-radius:2px 2px 0 0; }
.tab-badge { display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:var(--panel2);border-radius:9px;font-size:10px;font-weight:700;color:var(--muted);margin-left:6px; }
.tab-btn.active .tab-badge { background:rgba(122,167,224,.2);color:var(--link); }
.tab-panel { display:none;padding-top:20px; }
.tab-panel.active { display:block; }

/* ── Section card ── */
.tl-card { background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;min-width:0;box-sizing:border-box; }
.tl-card-header { display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap; }
.tl-card-header h2 { font-size:14px;font-weight:700;display:flex;align-items:center;gap:8px; }
.h-note { font-size:11px;color:var(--muted);font-weight:400; }

/* ── Table ── */
.tbl-wrap { overflow-x:auto;-webkit-overflow-scrolling:touch; }
table.tl { width:100%;border-collapse:collapse;font-size:12.5px;min-width:480px; }
table.tl th { text-align:left;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line);padding:7px 9px;white-space:nowrap;font-size:11px;letter-spacing:.03em; }
table.tl th.sortable { cursor:pointer;user-select:none; }
table.tl th.sortable:hover { color:var(--text); }
table.tl th.sorted { color:var(--link); }
table.tl td { padding:7px 9px;border-bottom:1px solid var(--line);vertical-align:middle; }
table.tl tr:last-child td { border-bottom:none; }
table.tl tbody tr { cursor:pointer;transition:background .1s; }
table.tl tbody tr:hover { background:var(--panel2); }
table.tl tbody tr.selected { background:rgba(122,167,224,.08); }
td.tl-num,th.tl-num { text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap; }
.tl-tk { font-weight:700;font-size:13px; }
.tl-name { color:var(--muted);font-size:10.5px;display:block;margin-top:1px; }
.tbl-footer { display:flex;align-items:center;justify-content:space-between;padding-top:10px;font-size:11.5px;color:var(--muted);flex-wrap:wrap;gap:8px; }
.tbl-page-btns { display:flex;gap:4px; }
.tbl-page-btn { width:28px;height:28px;border-radius:6px;border:1px solid var(--line);background:var(--panel2);color:var(--muted);font-size:12px;display:flex;align-items:center;justify-content:center;cursor:pointer; }
.tbl-page-btn.active { background:var(--link);color:#fff;border-color:var(--link); }

/* ── Color helpers ── */
.r-pos { color:#1f9a55;font-weight:600; } html[data-theme="dark"] .r-pos { color:#3fc07e; }
.r-neg { color:#d23f3f;font-weight:600; } html[data-theme="dark"] .r-neg { color:#ef6a6a; }
.r-neu { color:var(--muted); }

/* ── Score gauge ── */
.gauge-wrap { display:inline-flex;align-items:center;gap:7px;min-width:100px; }
.gauge { flex:1;min-width:52px;height:6px;border-radius:3px;background:var(--panel2);overflow:hidden; }
.gauge i { display:block;height:100%;border-radius:3px; }
.g-hi i  { background:#1f9a55; } html[data-theme="dark"] .g-hi i { background:#3fc07e; }
.g-mod i { background:#5b8def; }
.g-lo i  { background:var(--muted); }
.g-neg i { background:#d23f3f; } html[data-theme="dark"] .g-neg i { background:#ef6a6a; }
.gauge-score { font-variant-numeric:tabular-nums;font-weight:700;font-size:12.5px;min-width:36px;text-align:right; }

/* ── Band chips ── */
.band-chip { display:inline-block;padding:2px 8px;border-radius:5px;font-size:10px;font-weight:700;letter-spacing:.03em;white-space:nowrap; }
.band-Buy  { background:rgba(31,154,85,.18);color:#1f9a55; } html[data-theme="dark"] .band-Buy { color:#3fc07e; }
.band-Hold { background:rgba(91,141,239,.15);color:#5b8def; }
.band-Sell { background:rgba(210,63,63,.18);color:#d23f3f; } html[data-theme="dark"] .band-Sell { color:#ef6a6a; }

/* ── Signal dots ── */
.sig-dots { display:flex;gap:3px;flex-wrap:wrap;max-width:96px; }
.sig-dot { width:7px;height:7px;border-radius:50%; }
.dot-buy { background:var(--up); }
.dot-sell { background:var(--down); }
.dot-off { background:var(--line); }

/* ═══ TAB 1: SCREENER ═══ */
.screener-layout { display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px; }
@media(max-width:900px){ .screener-layout { grid-template-columns:minmax(0,1fr); } }
.screener-controls { display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px; }
.sc-input { padding:7px 11px;font-size:12.5px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text);outline:none;transition:border-color .15s;flex:1;min-width:120px; }
.sc-input:focus { border-color:var(--link); }
.sc-select { padding:7px 10px;font-size:12.5px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text);cursor:pointer;outline:none; }

/* ── Confluence builder ── */
.confl-builder { background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0;max-width:100%;box-sizing:border-box; }
.confl-title { font-size:13px;font-weight:700;margin-bottom:2px; }
.confl-desc { font-size:11.5px;color:var(--muted);line-height:1.5; }
.confl-section-label { font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:6px; }
.confl-chips { display:flex;flex-wrap:wrap;gap:6px; }
.confl-chip { padding:4px 10px;border-radius:20px;font-size:11.5px;font-weight:600;border:1px solid var(--line);background:var(--panel2);color:var(--muted);cursor:pointer;transition:all .13s;user-select:none; }
.confl-chip:hover { border-color:var(--link);color:var(--text); }
.confl-chip.active { background:rgba(122,167,224,.18);border-color:var(--link);color:var(--link); }
.confl-chip.buy-chip.active { background:rgba(31,154,85,.15);border-color:var(--up);color:var(--up); } html[data-theme="dark"] .confl-chip.buy-chip.active { color:#3fc07e;border-color:#3fc07e; }
.confl-count-label { font-size:11px;color:var(--muted);margin-top:2px; }
.tl-empty { color:var(--muted);font-size:13px;padding:20px 0;text-align:center; }

/* ═══ TAB 2: SIGNAL LAB ═══ */
.lab-layout { display:grid;grid-template-columns:280px 1fr;gap:16px; }
@media(max-width:800px){ .lab-layout { grid-template-columns:1fr; } }

/* Signal browser picker */
.sig-picker-wrap { display:flex;flex-direction:column;gap:0; }
.sig-family-label { font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:10px 4px 4px; }
.sig-row { width:100%;text-align:left;padding:7px 8px;border-radius:8px;border:none;background:transparent;color:var(--muted);font-size:12px;transition:all .13s;cursor:pointer;display:flex;align-items:center;gap:8px; }
.sig-row:hover { background:var(--panel2);color:var(--text); }
.sig-row.active { background:rgba(122,167,224,.12);border:1px solid rgba(122,167,224,.3);color:var(--text);font-weight:600; }
.sig-dir-badge { width:16px;height:16px;border-radius:4px;flex:none;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800; }
.dir-up   { background:rgba(31,154,85,.2);color:var(--up); } html[data-theme="dark"] .dir-up { color:#3fc07e; }
.dir-down { background:rgba(210,63,63,.2);color:var(--down); } html[data-theme="dark"] .dir-down { color:#ef6a6a; }
.dir-neu  { background:var(--panel2);color:var(--muted); }
.sig-row-name { flex:1;font-size:11.5px;text-align:left; }
.wr-bar-mini { display:flex;align-items:center;gap:4px;flex:none; }
.wr-track { width:36px;height:5px;background:var(--panel2);border-radius:3px;overflow:hidden;flex:none; }
.wr-fill  { height:100%;border-radius:3px; }
.wr-val   { font-size:10px;font-variant-numeric:tabular-nums;min-width:30px;text-align:right; }
.fire-badge { font-size:9.5px;color:var(--muted);white-space:nowrap;min-width:20px;text-align:right; }
.fire-badge.active { color:var(--up); } html[data-theme="dark"] .fire-badge.active { color:#3fc07e; }

/* Signal catalog (sortable table) */
.catalog-table-wrap { overflow-x:auto; }
.tl-edge-chip { display:inline-block;padding:1px 7px;border-radius:5px;font-size:10px;font-weight:700;white-space:nowrap; }
.edge-strong { background:rgba(31,154,85,.18);color:#1f9a55; } html[data-theme="dark"] .edge-strong { color:#3fc07e; }
.edge-pos    { background:rgba(91,155,240,.15);color:var(--info); }
.edge-neu    { background:var(--panel2);color:var(--muted);border:1px solid var(--line); }
.edge-neg    { background:rgba(210,63,63,.15);color:#d23f3f; } html[data-theme="dark"] .edge-neg { color:#ef6a6a; }
.era-badge2  { display:inline-block;padding:1px 7px;border-radius:5px;font-size:9.5px;font-weight:700;white-space:nowrap; }
.era-stable  { background:rgba(91,155,240,.12);color:var(--info); }
.era-post    { background:rgba(224,160,48,.12);color:var(--warn); }
.era-divg    { background:rgba(210,63,63,.12);color:#d23f3f; }

/* Signal profile (detail pane) */
.sig-profile { padding-left:2px; }
.sig-profile h2 { font-size:18px;font-weight:800;margin-bottom:4px; }
.sig-profile-sub { font-size:12px;color:var(--muted);margin-bottom:14px; }
.stat-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px; }
@media(max-width:600px){ .stat-grid { grid-template-columns:repeat(2,1fr); } }
.stat-cell { background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px; }
.stat-cell .sk { font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted); }
.stat-cell .sv { font-size:22px;font-weight:750;font-variant-numeric:tabular-nums;margin-top:4px;line-height:1; }
.stat-cell .sb { font-size:10.5px;color:var(--muted);margin-top:3px; }
.sv-up  { color:#1f9a55; } html[data-theme="dark"] .sv-up { color:#3fc07e; }
.sv-neg { color:#d23f3f; } html[data-theme="dark"] .sv-neg { color:#ef6a6a; }
.sv-neu { color:var(--text); }

/* Era split 3-row table */
.era-table-wrap { margin-bottom:14px;background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden; }
.era-table-wrap table { width:100%;border-collapse:collapse;font-size:12px; }
.era-table-wrap th { text-align:left;color:var(--muted);font-weight:600;padding:8px 12px;border-bottom:1px solid var(--line);font-size:10.5px; }
.era-table-wrap td { padding:8px 12px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums; }
.era-table-wrap tr:last-child td { border-bottom:none; }
.era-tag { display:inline-block;padding:1px 7px;border-radius:4px;font-size:9.5px;font-weight:700;white-space:nowrap; }
.era-pre  { background:rgba(224,160,48,.12);color:var(--warn); }
.era-post { background:rgba(91,155,240,.12);color:var(--info); }
.era-pool { background:var(--panel2);color:var(--muted);border:1px solid var(--line); }

/* Chart area */
.mini-chart-wrap { background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:14px; }
.mini-chart-header { display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;flex-wrap:wrap;gap:8px; }
.mini-chart-title { font-size:12.5px;font-weight:700; }
.chart-note { font-size:10.5px;color:var(--muted);margin-top:6px;font-style:italic; }
.chart-ctrl { display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px; }
.chart-ctrl select { padding:5px 8px;font-size:11.5px;border:1px solid var(--line);border-radius:7px;background:var(--panel2);color:var(--text);cursor:pointer;outline:none; }
.chart-container { width:100%;height:220px;position:relative; }
.chart-fallback { display:flex;align-items:center;justify-content:center;min-height:220px;color:var(--muted);font-size:12px;font-style:italic;border:1px dashed var(--line);border-radius:8px; }

/* null caveat */
.null-banner { padding:10px 14px;border-radius:9px;background:rgba(139,147,161,.1);border:1px solid rgba(139,147,161,.25);font-size:12px;color:var(--muted);line-height:1.6;margin-top:10px; }
.null-banner strong { color:var(--text); }

/* ═══ TAB 3: STOCK PROFILE ═══ */
.stock-profile-layout { display:grid;grid-template-columns:1fr 300px;gap:16px; }
@media(max-width:860px){ .stock-profile-layout { grid-template-columns:1fr; } }
.profile-header { display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:18px; }
.profile-ticker { font-size:32px;font-weight:900;line-height:1; }
.profile-name { font-size:15px;color:var(--muted);margin-bottom:4px; }
.profile-price { font-size:22px;font-weight:700;font-variant-numeric:tabular-nums; }
.profile-actions { display:flex;gap:8px;align-items:flex-start;margin-left:auto; }
.open-terminal-btn { display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:9px;font-size:12.5px;font-weight:700;background:var(--link);color:#fff;border:none;cursor:pointer;transition:opacity .13s; }
.open-terminal-btn:hover { opacity:.88; }
.perf-row { display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px; }
.perf-cell { background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:8px 14px;min-width:90px; }
.pk { font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted); }
.pv { font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;margin-top:2px; }
.confl-callout { display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:10px;background:rgba(122,167,224,.08);border:1px solid rgba(122,167,224,.2);margin-bottom:16px;flex-wrap:wrap; }
.confl-n { font-size:36px;font-weight:900;color:var(--link);line-height:1; }
.confl-label { font-size:12px;color:var(--muted);line-height:1.5; }
.confl-label strong { color:var(--text); }
.stock-chart-card { background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:16px; }
.chart-ticker-label { font-size:12px;font-weight:700;color:var(--muted);margin-bottom:8px; }
.stock-chart-container { width:100%;height:240px;position:relative; }
.sig-state-list { display:flex;flex-direction:column;gap:4px; }
.sig-state-row { display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;font-size:12.5px;transition:background .1s; }
.sig-state-row:hover { background:var(--panel2); }
.sig-state-row.on { background:rgba(31,154,85,.08); } html[data-theme="dark"] .sig-state-row.on { background:rgba(63,192,126,.08); }
.sig-state-row.off { opacity:.5; }
.sig-state-name { flex:1; }
.sig-state-age { font-size:10.5px;color:var(--muted);margin-left:auto;white-space:nowrap; }
.sig-on-mark  { color:var(--up);font-size:13px; } html[data-theme="dark"] .sig-on-mark { color:#3fc07e; }
.sig-off-mark { color:var(--muted);font-size:13px; }
.family-divider { font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:10px 0 4px;margin-top:4px; }
.ticker-search-card { background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px; }
.ts-input { width:100%;padding:10px 14px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--text);font-size:14px;outline:none;transition:border-color .15s; }
.ts-input:focus { border-color:var(--link); }
.ts-results { display:flex;flex-direction:column;gap:3px;margin-top:8px; }
.ts-result-row { display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;cursor:pointer;transition:background .1s; }
.ts-result-row:hover,.ts-result-row.sel { background:var(--panel2); }
.ts-tk { font-weight:700;font-size:13px;min-width:44px; }
.ts-name { font-size:12px;color:var(--muted);flex:1; }

/* ═══ TAB 4: HOW TO TEST ═══ */
.how-grid { display:grid;grid-template-columns:1fr 1fr;gap:16px; }
@media(max-width:700px){ .how-grid { grid-template-columns:1fr; } }
.how-card { background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px; }
.how-card h3 { font-size:14px;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:8px; }
.how-card p,.how-card li { font-size:12.5px;color:var(--muted);line-height:1.7; }
.how-card ul { padding-left:16px;margin-top:6px; }
.code-block { margin-top:10px;padding:12px 14px;background:var(--panel2);border:1px solid var(--line);border-radius:9px;font-family:"SF Mono","Fira Code","JetBrains Mono",Consolas,monospace;font-size:11.5px;color:var(--text);line-height:1.7;overflow-x:auto;white-space:pre;position:relative; }
.code-block-wrap { position:relative;max-width:100%; }
.how-grid > * { min-width:0; }
.how-card h3, .how-card p { overflow-wrap:anywhere; }
.copy-btn { position:absolute;top:8px;right:8px;padding:3px 8px;font-size:10px;font-weight:600;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--muted);cursor:pointer;transition:all .12s;z-index:1; }
.copy-btn:hover { color:var(--text);border-color:var(--muted); }
.copy-btn.copied { color:var(--ok);border-color:var(--ok); }
.code-comment { color:var(--muted); }
.code-kw { color:var(--link); }
.code-str { color:#1f9a55; } html[data-theme="dark"] .code-str { color:#3fc07e; }

/* ═══ TAB: COMBOS ═══ */
.cb-stance { margin:0 0 16px;padding:12px 16px;border-radius:10px;background:rgba(122,167,224,.07);border:1px solid rgba(122,167,224,.18);font-size:12.5px;line-height:1.65;color:var(--text); }
.cb-stance .muted { color:var(--muted); }
.cb-toolbar { display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px; }
.cb-side-toggle { display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden; }
.cb-side-btn { padding:6px 16px;font-size:12px;font-weight:700;border:none;background:var(--panel2);color:var(--muted);cursor:pointer;transition:all .12s; }
.cb-side-btn.active-long { background:rgba(31,154,85,.16);color:#1f9a55; } html[data-theme="dark"] .cb-side-btn.active-long { color:#3fc07e; }
.cb-side-btn.active-short { background:rgba(210,63,63,.14);color:#d23f3f; } html[data-theme="dark"] .cb-side-btn.active-short { color:#ef6a6a; }
.cb-name { font-weight:700;font-size:12.5px;line-height:1.35; }
.cb-legs { display:flex;flex-wrap:wrap;gap:4px;margin-top:4px; }
.cb-leg-chip { display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:5px;font-size:9.5px;font-weight:600;background:var(--panel2);border:1px solid var(--line);color:var(--muted);white-space:nowrap; }
.cb-leg-chip .tfb { font-weight:800;font-size:8.5px;padding:0 3px;border-radius:3px;background:rgba(122,167,224,.18);color:var(--link); }
.cb-leg-chip .tfb.w { background:rgba(224,160,48,.16);color:var(--warn); }
.wrbar { display:inline-flex;align-items:center;gap:6px; }
.wrbar svg { flex:none; }
.wr-of10 { font-weight:750;font-variant-numeric:tabular-nums;font-size:13px; }
.cons-chip { display:inline-block;padding:1px 7px;border-radius:5px;font-size:9.5px;font-weight:700;white-space:nowrap; }
.cons-yes { background:rgba(31,154,85,.14);color:#1f9a55; } html[data-theme="dark"] .cons-yes { color:#3fc07e; }
.cons-no  { background:rgba(224,160,48,.12);color:var(--warn); }
.match-now-btn { display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:12px;font-size:11px;font-weight:700;background:rgba(122,167,224,.12);border:1px solid rgba(122,167,224,.3);color:var(--link);cursor:pointer;white-space:nowrap; }
.match-now-btn.zero { background:var(--panel2);border-color:var(--line);color:var(--muted); }

/* combo detail drawer */
.cbd-header { display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:12px; }
.cbd-title { font-size:17px;font-weight:800;line-height:1.3;flex:1;min-width:200px; }
.cbd-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px; }
@media(max-width:640px){ .cbd-grid { grid-template-columns:repeat(2,1fr); } }
.cbd-htable-wrap { background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:14px; }
.cbd-htable-wrap table { width:100%;border-collapse:collapse;font-size:12px; }
.cbd-htable-wrap th { text-align:right;color:var(--muted);font-weight:600;padding:8px 12px;border-bottom:1px solid var(--line);font-size:10.5px; }
.cbd-htable-wrap th:first-child { text-align:left; }
.cbd-htable-wrap td { padding:7px 12px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;text-align:right; }
.cbd-htable-wrap td:first-child { text-align:left;font-weight:600; }
.cbd-htable-wrap tr:last-child td { border-bottom:none; }
.cbd-matches { display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 12px; }
.cbd-match-tk { padding:3px 10px;border-radius:7px;font-size:12px;font-weight:700;background:var(--panel2);border:1px solid var(--line);cursor:pointer;transition:all .12s; }
.cbd-match-tk:hover,.cbd-match-tk.sel { border-color:var(--link);color:var(--link); }

/* custom combo builder */
.cb-builder-grid { display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px; }
@media(max-width:860px){ .cb-builder-grid { grid-template-columns:minmax(0,1fr); } }
.cb-pick-search { width:100%;padding:7px 11px;font-size:12.5px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text);outline:none;margin-bottom:8px;box-sizing:border-box; }
.cb-pick-area { max-height:340px;overflow-y:auto;padding-right:4px; }
.cb-result-card { background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;position:sticky;top:12px;align-self:start; }
.cbr-count { font-size:30px;font-weight:800;color:var(--link);line-height:1;font-variant-numeric:tabular-nums; }
.cbr-stats { margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:12px;line-height:1.7; }
.cbr-stats .row { display:flex;justify-content:space-between;gap:8px; }
.cbr-stats .k { color:var(--muted); }
.cbr-note { font-size:11px;color:var(--muted);margin-top:8px;line-height:1.5; }
.cbr-names { display:flex;flex-wrap:wrap;gap:5px;margin-top:8px; }

/* screener right rail — top combos now */
.rail-combo-card { padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);cursor:pointer;transition:border-color .12s; }
.rail-combo-card:hover { border-color:var(--link); }
.rail-combo-name { font-size:12px;font-weight:700;line-height:1.35; }
.rail-combo-sub { font-size:10.5px;color:var(--muted);margin-top:3px; }
.rail-combo-tks { font-size:11px;color:var(--link);font-weight:600;margin-top:5px; }

/* help tip (Tier-2 receipt popover) */
.tl-help { position:relative;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--panel2);border:1px solid var(--line);color:var(--muted);font-size:10px;font-weight:700;cursor:default; }
.tl-help:hover::before { content:attr(data-tip-en);position:absolute;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);min-width:230px;max-width:300px;padding:9px 11px;border-radius:8px;background:var(--panel);border:1px solid var(--line);box-shadow:0 6px 24px rgba(0,0,0,.18);font-size:11px;font-weight:400;color:var(--text);line-height:1.55;white-space:normal;z-index:50;text-align:left;padding-bottom:13px; }
html[data-lang="zh"] .tl-help:hover::before { content:attr(data-tip-zh); }

/* scrollbar */
::-webkit-scrollbar { width:6px;height:6px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--line);border-radius:3px; }

/* ── 红涨绿跌: directional colour flips for Chinese mode ── */
/* Bullish-green → red in zh (light: #1f9a55→#cf4040; dark: #3fc07e→#e06464) */
html[data-lang="zh"] .r-pos { color:#cf4040; }
html[data-theme="dark"][data-lang="zh"] .r-pos { color:#e06464; }
html[data-lang="zh"] .g-hi i { background:#cf4040; }
html[data-theme="dark"][data-lang="zh"] .g-hi i { background:#e06464; }
html[data-lang="zh"] .band-Buy { color:#cf4040; }
html[data-theme="dark"][data-lang="zh"] .band-Buy { color:#e06464; }
html[data-lang="zh"] .edge-strong { color:#cf4040; }
html[data-theme="dark"][data-lang="zh"] .edge-strong { color:#e06464; }
html[data-lang="zh"] .sv-up { color:#cf4040; }
html[data-theme="dark"][data-lang="zh"] .sv-up { color:#e06464; }
html[data-lang="zh"] .cb-side-btn.active-long { color:#cf4040; }
html[data-theme="dark"][data-lang="zh"] .cb-side-btn.active-long { color:#e06464; }
/* These use var(--up) which auto-flips, but have a dark override; dark zh must use red */
html[data-theme="dark"][data-lang="zh"] .confl-chip.buy-chip.active { color:#e06464; border-color:#e06464; }
html[data-theme="dark"][data-lang="zh"] .dir-up { color:#e06464; }
/* Bearish-red dark override → green in zh (dark: #ef6a6a→#45b873) */
html[data-theme="dark"][data-lang="zh"] .dir-down { color:#45b873; }


