:root {
  --bg: #ffffff; --panel: #f6f8fa; --border: #e1e4e8; --text: #1f2328;
  --muted: #6e7781; --accent: #2962FF; --ok: #1a8754; --no: #d1242f;
  --grid-line: #eef1f4;
}
* { box-sizing: border-box; }
body {
  margin: 0; background: var(--bg); color: var(--text);
  font: 14px/1.45 -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
code { background: var(--panel); padding: 1px 5px; border-radius: 4px; }

.topbar {
  display: flex; align-items: center; gap: 12px; padding: 10px 18px;
  background: var(--panel); border-bottom: 1px solid var(--border);
  position: sticky; top: 0; z-index: 10;
}
.brand { font-weight: 700; font-size: 17px; color: var(--text); }
.tag {
  font-size: 11px; color: var(--muted); border: 1px solid var(--border);
  padding: 1px 7px; border-radius: 10px;
}
.muted { color: var(--muted); font-size: 12px; }
.scanlive { font-size: 12px; font-weight: 600; }
.scanlive.on { color: #9a6700; }
.scanlive .spin { display: inline-block; animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.back { margin-left: auto; }
main { padding: 16px 18px; }

/* filters */
.filters { display: flex; gap: 8px; margin-bottom: 12px; }
.fbtn {
  background: var(--panel); color: var(--text); border: 1px solid var(--border);
  border-radius: 6px; padding: 4px 12px; cursor: pointer; font-size: 13px;
}
.fbtn.active { background: var(--accent); border-color: var(--accent); color: #fff; }

/* grid */
.grid { width: 100%; border-collapse: collapse; font-size: 13px; }
.grid th {
  text-align: left; padding: 8px 10px; color: var(--muted); font-weight: 600;
  border-bottom: 2px solid var(--border); cursor: pointer; white-space: nowrap;
  user-select: none;
}
.grid th.num { text-align: right; }
.grid td { padding: 7px 10px; border-bottom: 1px solid var(--grid-line); }
.grid td.num { text-align: right; font-variant-numeric: tabular-nums; }
.grid tbody tr { cursor: pointer; }
.grid tbody tr:hover { background: #f0f3f6; }
.ticker { font-weight: 700; }
.name { color: var(--muted); max-width: 220px; overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap; }
.empty { color: var(--muted); }

.mkt { font-size: 11px; font-weight: 700; padding: 1px 6px; border-radius: 4px; }
.mkt-US { background: #ddf4ff; color: #0969da; }
.mkt-GPW { background: #dafbe1; color: #1a7f37; }
.mkt-NC { background: #fff1cc; color: #9a6700; }

.score { font-weight: 700; padding: 1px 8px; border-radius: 4px; background: #eef1f4; }
.score-2 { color: #0969da; } .score-3 { color: #1a7f37; } .score-4 { color: #bf8700; }

.chip {
  display: inline-block; font-size: 11px; padding: 1px 6px; margin: 1px 2px;
  border-radius: 4px; background: #eef1f4; color: var(--muted);
}
.chip-bands_cross { background: #ddf4ff; color: #0969da; }
.chip-bands_buy_fresh { background: #ddf4ff; color: #0969da; }
.chip-bands_buy { background: #eef1f4; color: #57606a; }
.chip-rsi_weak, .chip-rsi_strong, .chip-rsi_extreme { background: #dafbe1; color: #1a7f37; }
.chip-breakout { background: #fff1cc; color: #9a6700; }
.chip-settle { background: #eaeef2; color: #57606a; }
.chip-squeeze { background: #ffe8cc; color: #b35900; }   /* squeeze = amber (hot catalyst) */
.chip-revenue { background: #dafbe1; color: #1a7f37; }   /* revenue-growth = green (fundamental) */

/* booster labels on the company card */
.boosters { gap: 8px; margin-top: 4px; }
.booster { display: inline-block; font-size: 12px; padding: 2px 8px; border-radius: 5px;
  background: #eef1f4; color: var(--muted); border: 1px solid var(--grid-line); }
.booster.on { background: #eaeef2; color: #57606a; border-color: #d0d7de; font-weight: 700; }
/* per-type signal colors: green = fundamental (revenue), amber = hot catalyst (squeeze) */
.booster.on.booster-revenue { background: #dafbe1; color: #1a7f37; border-color: #aceebb; }
.booster.on.booster-short_interest { background: #ffe8cc; color: #b35900; border-color: #ffcf99; }
/* revenue booster hover chart (revenue bars + EPS line) */
.booster.has-pop { position: relative; cursor: default; }
.booster-pop { display: none; position: absolute; top: 100%; left: 0; z-index: 60;
  margin-top: 6px; background: #fff; border: 1px solid #d0d7de; border-radius: 6px;
  padding: 6px 8px; box-shadow: 0 6px 18px rgba(0,0,0,.14); }
.booster.has-pop:hover .booster-pop { display: block; }
.bp-title { display: block; font-size: 10px; color: #57606a; margin-bottom: 2px; white-space: nowrap; }
.ins-tbl { border-collapse: collapse; font-size: 11px; }
.ins-tbl th { color: #8a919a; font-weight: 600; text-align: left; padding: 1px 8px 3px 0; }
.ins-tbl td { padding: 1px 8px 1px 0; white-space: nowrap; }
.ins-tbl .r { text-align: right; }
.ins-tbl tr td:last-child { font-weight: 700; color: #7a3fd0; }
/* unified (confluence) card - packed horizontally to keep it short */
.srow.hdr { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 12px; }
.srow.hdr .hm { font-size: 12px; color: #57606a; }
.conv { margin-left: auto; font-weight: 700; font-size: 12px; padding: 2px 8px;
  border-radius: 5px; color: #57606a; background: #eaeef2; }
.conv i { font-style: normal; font-weight: 600; opacity: .8; font-size: 11px; }
/* colour by conviction level: higher = stronger green */
.conv-1 { color: #0969da; background: #ddf4ff; }
.conv-2 { color: #1a7f37; background: #dafbe1; }
.conv-3 { color: #116329; background: #b6f0c2; }
.conv-4 { color: #fff; background: #1a7f37; }
.sigs { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center;
  gap: 6px; margin: 6px 0; }
.sigblock { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 5px;
  padding: 3px 8px; border: 1px solid #eaecef; border-radius: 6px; background: #fbfcfd; }
.sigblock.from { border-color: #0969da; background: #f0f7ff; }
.sigblock.detail .muted b { color: var(--text); font-weight: 600; }
.sigblock.offsig { opacity: .55; }
.sig-name { font-weight: 700; font-size: 12px; }
.vbdetail { display: flex; flex-wrap: wrap; gap: 6px 12px; opacity: .85; }

/* embedded chart (right panel of the split view): hide chrome, compact */
.embed .brand, .embed .tabs, .embed .settings-link, .embed .back { display: none; }
.embed .topbar { padding: 3px 46px 3px 10px; min-height: 0; gap: 8px; }  /* right pad clears the pane close-X */
.embed main { padding: 4px 8px; }
.embed .summary { padding: 6px 10px; margin-bottom: 6px; }
.embed .legend { display: none; }

/* chart page: fill the viewport via flexbox so #charts auto-fills the space
   below the summary - NO JS height measurement (kills the cold-load race where
   a 0-measured summary made #charts too tall and pushed the bar off-screen) */
body.chart-page { height: 100vh; margin: 0; display: flex; flex-direction: column; overflow: hidden; }
body.chart-page .topbar { flex: 0 0 auto; }
body.chart-page main { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
body.chart-page #summary, body.chart-page #legend { flex: 0 0 auto; }
body.chart-page .charts { flex: 1 1 auto; min-height: 0; height: auto !important; }

/* list/HTF page as an app shell: header + filters fixed, the list+chart area
   fills the viewport and the LIST scrolls INTERNALLY - so the page never scrolls
   and the chart panel (with its info bar) is always in view, whatever row you
   click (no more "scroll up to see the bar" for rows below the fold). */
body.list-page { height: 100vh; margin: 0; display: flex; flex-direction: column; overflow: hidden; }
body.list-page .topbar { flex: 0 0 auto; }
body.list-page main { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
body.list-page .filters, body.list-page .htf-note { flex: 0 0 auto; }
body.list-page .sm-toggle { flex: 0 0 auto; }
body.list-page .splitview { flex: 1 1 auto; min-height: 0; align-items: stretch; }
body.list-page .splitview .listpane { overflow: auto; height: auto; }

/* split view: list (left) + live chart panel (right) */
.splitview { display: flex; align-items: flex-start; }
.splitview .listpane { flex: 1 1 auto; min-width: 0; }
.splitview .chartpane { display: none; }
/* left pane shrinks to the table's natural width (no 100%-stretch gaps) */
.splitview.open .listpane { flex: 0 0 auto; max-width: 50%; overflow: auto; height: 100%;
  padding-right: 14px; }   /* room so the scrollbar doesn't cover the last column */
.splitview.open .listpane .grid { width: auto; font-size: 12px; white-space: nowrap; }
.splitview.open .listpane .grid td, .splitview.open .listpane .grid th { padding: 6px 9px; }
.splitview.open .listpane .name { display: none; }   /* drop Name col to compress */
.splitview.open .chartpane { display: block; flex: 1 1 0; height: 100%; position: relative;
  border-left: 1px solid var(--border); }
.chartpane iframe { width: 100%; height: 100%; border: 0; display: block; }
.closeChart { position: absolute; top: 8px; right: 14px; z-index: 10; width: 26px; height: 26px;
  border: 1px solid var(--border); border-radius: 6px; background: #fff; cursor: pointer;
  font-size: 17px; line-height: 22px; color: var(--muted); padding: 0; }
.closeChart:hover { background: #eef1f4; color: var(--fg); }
.grid tbody tr.selected { background: #eaf3ff !important; }
.grid tbody tr.viewed .ticker::after { content: " ✓"; color: #1a7f37; font-weight: 700; }

/* tab navigation (Volume breakout | HTF Buy) */
.tabs { display: inline-flex; gap: 4px; margin-left: 6px; }
.tab { font-size: 13px; font-weight: 600; color: var(--muted); text-decoration: none;
  padding: 4px 10px; border-radius: 6px; }
.tab:hover { background: #eef1f4; color: var(--fg); }
.tab.active { background: #ddf4ff; color: #0969da; }

.tvlink { font-size: 12px; font-weight: 600; color: #0969da; }

/* timeframe switch on the detail chart */
.tfswitch { display: inline-flex; gap: 2px; margin-left: 4px; }
.tfbtn { font-size: 12px; font-weight: 600; color: var(--muted); text-decoration: none;
  padding: 2px 8px; border-radius: 5px; border: 1px solid var(--border); }
.tfbtn:hover { background: #eef1f4; }
.tfbtn.active { background: #ddf4ff; color: #0969da; border-color: #aacdf0; }

/* HTF buy tab */
.htf-note { font-size: 12px; color: var(--muted); margin: 0 0 10px; }
.htf-badge { display: inline-block; font-size: 11px; font-weight: 700; padding: 1px 7px;
  margin: 1px 2px; border-radius: 4px; white-space: nowrap; }
.htf-W { background: #ddf4ff; color: #0969da; }       /* weekly */
.htf-M { background: #efe6fb; color: #8250df; }       /* monthly */
/* coloured by buy type to match the chart tiles */
.htf-buy-strong { background: #4CAF50; color: #fff; }
.htf-buy-ext { background: #19E883; color: #fff; }
.rescan { font-size: 12px; font-weight: 600; cursor: pointer; padding: 3px 10px;
  border: 1px solid var(--border); border-radius: 6px; background: #fff; color: var(--fg); }
.rescan:hover { background: #eef1f4; }
.rescan:disabled { opacity: .5; cursor: default; }

/* tracking: NEW / unreviewed / inactive badges + saved star */
.badge { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .2px;
  padding: 1px 6px; border-radius: 4px; white-space: nowrap; }
.badge-new { background: #dafbe1; color: #1a7f37; }
.badge-unrev { background: #fff1cc; color: #9a6700; border: 1px solid #f0d98a; }
.badge-off { background: #eaeef2; color: #8b949e; }
.elite-rkt { font-size: 15px; vertical-align: middle; }
.htf-buy-dip { background: #d1f0ee; color: #0e7c7b; }
.htf-buy-lead { background: #e3ecff; color: #2952cc; }
.htf-buy-xtr { background: #ffe0e0; color: #c0322b; }
.starcol { width: 28px; text-align: center; padding-left: 4px !important; padding-right: 0 !important; }
.star { background: none; border: none; cursor: pointer; font-size: 16px; line-height: 1;
  color: #e6c200; padding: 2px; }
.star:hover { color: #f5b301; }
.star.on { color: #f5b301; }
.detail-star { font-size: 20px; margin-left: 4px; }
.grid tbody tr.saved-row { background: #fffaf0; }
.grid tbody tr.saved-row:hover { background: #fff3da; }
.grid tbody tr.off-row .ticker, .grid tbody tr.off-row .name { color: #8b949e; }
/* gap/divider between the pinned Saved block and the rest */
.grid tbody tr.saved-row + tr:not(.saved-row) td { border-top: 3px solid #d0d7de; }
.grid tbody tr.new-row + tr:not(.new-row) td { border-top: 3px solid #d0d7de; }
.grid tbody tr.new-row:first-child td { border-top: 3px solid #d0d7de; }

/* detail */
.summary { background: var(--panel); border: 1px solid var(--border);
  border-radius: 8px; padding: 12px 14px; margin-bottom: 10px; }
.srow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.srow.metrics { margin-top: 8px; gap: 16px; color: var(--muted); font-size: 13px; }
.srow.metrics b { color: var(--text); }
.srow.metrics i { color: var(--muted); font-style: normal; font-size: 11px; }
.big { font-size: 22px; font-weight: 800; }
.sname { color: var(--muted); }
.badge { font-size: 12px; font-weight: 700; padding: 2px 10px; border-radius: 10px; }
.badge.ok { background: #dafbe1; color: #1a7f37; }
.badge.no { background: #ffebe9; color: #cf222e; }
.reason { margin-top: 8px; color: var(--no); font-size: 13px; }

.legend { display: flex; flex-wrap: wrap; gap: 14px; margin: 6px 2px; font-size: 12px;
  color: var(--muted); }
.lg::before { content: ""; display: inline-block; width: 12px; height: 3px;
  margin-right: 5px; vertical-align: middle; }
.lg-blue::before { background: #A8E7F0; }
.lg-red::before { background: #FAC2C7; }
.lg-cross::before { background: #3FBCCF; border-radius: 50%; height: 8px; width: 8px; }
.lg-base::before { background: #e3a008; }
.lg-cluster::before { background: #f1c40f; border-radius: 50%; height: 8px; width: 8px; }
.lg-peak::before { background: #e67e22; border-radius: 50%; height: 8px; width: 8px; }
.lg-buy::before { background: #4CAF50; }
.lg-sell::before { background: #FF5252; }

.charts { display: flex; flex-direction: column; }
.chart { width: 100%; border: 1px solid var(--border); border-top: none;
  overflow: hidden; min-height: 0; }
.chart.first { border-top: 1px solid var(--border); border-radius: 8px 8px 0 0; }
/* proportional heights - price gets the most space */
.cprice { flex: 6; }
.cvol { flex: 1.3; }
.crsi { flex: 2; }
.cstoch { flex: 2; }
.pane-label { flex: 0 0 auto; font-size: 11px; color: var(--muted);
  padding: 3px 8px 0; background: var(--bg); }

/* nav + settings panel */
.navlink { margin-left: auto; color: var(--muted); font-size: 12px; }
.navlink:hover { color: var(--text); text-decoration: none; }
.back + .navlink { margin-left: 14px; }
.saved { background: #dafbe1; color: #1a7f37; border: 1px solid #a6e6bd;
  padding: 8px 12px; border-radius: 6px; margin-bottom: 12px; font-size: 13px; }
.settings { max-width: 1100px; }
.setsec { background: var(--panel); border: 1px solid var(--border);
  border-radius: 8px; padding: 16px 18px; margin-bottom: 32px; }
.setsec h2 { font-size: 15px; margin: 0 0 12px; padding-bottom: 8px;
  border-bottom: 1px solid var(--border); }
.subgrp { font-size: 12px; color: var(--muted); margin: 26px 0 10px;
  padding-top: 16px; border-top: 1px solid var(--border);
  text-transform: uppercase; letter-spacing: .04em; }
/* first sub-group right after the section title: no extra separator */
.setsec h2 + .subgrp { margin-top: 4px; padding-top: 0; border-top: none; }
.fields { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 8px 18px; }
.field { display: flex; align-items: center; justify-content: space-between;
  gap: 10px; font-size: 13px; position: relative; cursor: help; }
.flabel { color: var(--text); }
/* instant framed tooltip (replaces slow native title) */
.field[data-help]:not([data-help=""]):hover::after {
  content: attr(data-help);
  position: absolute; left: 0; top: calc(100% + 6px); z-index: 60;
  width: max-content; max-width: 300px; white-space: normal;
  background: #1f2328; color: #fff; padding: 9px 11px; border-radius: 7px;
  font-size: 12px; line-height: 1.45; box-shadow: 0 6px 20px rgba(0,0,0,.22);
  pointer-events: none; }
.field[data-help]:not([data-help=""]):hover::before {
  content: ""; position: absolute; left: 14px; top: calc(100% + 1px); z-index: 61;
  border: 6px solid transparent; border-bottom-color: #1f2328; pointer-events: none; }
.field input[type=number] { width: 130px; padding: 4px 7px; font-size: 13px;
  border: 1px solid var(--border); border-radius: 5px; background: #fff;
  color: var(--text); text-align: right; font-variant-numeric: tabular-nums; }
/* no spinner arrows - values typed by hand */
.field input[type=number]::-webkit-inner-spin-button,
.field input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none; margin: 0; }
.field input[type=number] { -moz-appearance: textfield; appearance: textfield; }
.field input[type=checkbox] { width: 18px; height: 18px; }
.actions { display: flex; gap: 10px; margin: 4px 0 20px; position: sticky;
  bottom: 0; background: var(--bg); padding: 10px 0; }
.btn { padding: 8px 16px; border: 1px solid var(--border); border-radius: 6px;
  background: var(--panel); color: var(--text); cursor: pointer; font-size: 13px; }
.btn-primary { background: var(--accent); border-color: var(--accent); color: #fff; }
.btn:disabled { opacity: .5; cursor: default; }
.scanstatus { margin: 8px 0 30px; font-size: 13px; }
.scanstatus.on { color: #9a6700; } .scanstatus.done { color: #1a7f37; }
.scanstatus pre { background: var(--panel); border: 1px solid var(--border);
  border-radius: 6px; padding: 8px 10px; overflow-x: auto; font-size: 12px; }

/* ---- Smart money tab ---- */
.htf-note .pos { color: var(--ok); font-weight: 600; }
.htf-note .neg { color: var(--no); font-weight: 600; }
.sm-grid td.net { font-weight: 700; }
.sm-grid .pos { color: var(--ok); }
.sm-grid .neg { color: var(--no); }
.sm-grid td.net.pos, .sm-grid td.net.neg { font-variant-numeric: tabular-nums; }
.sm-row { cursor: pointer; }
.sm-row td.rank { color: var(--muted); width: 28px; }
.sm-grid td.src { font-variant-numeric: tabular-nums; white-space: nowrap; }
.sm-grid td.src .bs { color: var(--muted); font-size: 10px; margin-left: 4px; }
.sm-grid td.src .z { color: var(--border); }
.sm-grid td.expcol { width: 20px; padding-right: 0; }
.sm-grid .exp {
  background: none; border: none; color: var(--muted); cursor: pointer;
  font-size: 11px; padding: 2px 4px; line-height: 1;
}
.sm-grid .exp:hover { color: var(--text); }
.detail-row > td { background: var(--panel); padding: 8px 12px; }
.sm-detail { display: flex; gap: 22px; flex-wrap: wrap; }
.sm-col { min-width: 180px; }
.sm-col-h { font-size: 11px; font-weight: 700; margin-bottom: 4px; text-transform: uppercase; letter-spacing: .03em; }
.sm-col-h.pos { color: var(--ok); }
.sm-col-h.neg { color: var(--no); }
.sm-col ul { list-style: none; margin: 0; padding: 0; }
.sm-col li { font-size: 11.5px; padding: 1px 0; display: flex; gap: 6px; align-items: baseline; }
.sm-col li .d { color: var(--muted); font-variant-numeric: tabular-nums; }
.sm-col li .w { font-weight: 600; }
.sm-col li .ti { color: var(--muted); font-size: 10.5px; }
.sm-col li .a { margin-left: auto; font-variant-numeric: tabular-nums; }
.sm-col li .a.pos { color: var(--ok); }
.sm-col li .a.neg { color: var(--no); }

/* ---- booster popover sections (buys/sells/options) ---- */
.bp-sec { font-size: 11px; font-weight: 700; margin: 7px 0 3px; text-transform: uppercase; letter-spacing: .03em; color: var(--muted); }
.bp-sec.pos { color: var(--ok); }
.bp-sec.neg { color: var(--no); }
.booster-pop .ins-tbl td.pos, .booster-pop .ins-tbl .pos { color: var(--ok); font-weight: 600; }
.booster-pop .ins-tbl td.neg, .booster-pop .ins-tbl .neg { color: var(--no); font-weight: 600; }

/* ---- Smart money hover tooltip (replaces the inline expand) ---- */
.sm-grid td.has-pop { cursor: default; }
.sm-grid td.has-pop .pop-src { display: none; }
.sm-tip { display: none; position: fixed; z-index: 80; background: #fff;
  border: 1px solid #d0d7de; border-radius: 6px; padding: 6px 8px;
  box-shadow: 0 6px 18px rgba(0,0,0,.16); text-align: left; max-height: 64vh; overflow: auto; }
.sm-tip .bp-title { white-space: normal; max-width: 360px; }
.sm-tip .ti { color: var(--muted); font-size: 10px; margin-left: 4px; }
.sm-tip .ins-tbl tr td:last-child { color: inherit; font-weight: 600; }
.sm-tip .ins-tbl td.pos { color: var(--ok); }
.sm-tip .ins-tbl td.neg { color: var(--no); }

/* ---- conviction badge hover explainer (floating, fixed) ---- */
.conv.conv-trigger { cursor: default; }
#convtip { display: none; position: fixed; z-index: 90; background: #fff;
  border: 1px solid #d0d7de; border-radius: 8px; padding: 10px 12px;
  box-shadow: 0 8px 22px rgba(0,0,0,.18); width: max-content; max-width: 440px;
  white-space: normal; line-height: 1.45; }
#convtip .bp-title { display: block; font-size: 12.5px; color: #57606a;
  margin-bottom: 6px; white-space: normal; }
#convtip .conv-row { font-size: 13px; margin: 4px 0; }
#convtip .conv-row b { font-weight: 700; }
#convtip .conv-note { font-size: 11.5px; color: var(--muted); margin-top: 6px; }

/* ---- chart pane visibility toggles ---- */
.pane-toggles { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 2px 2px 6px; }
body.chart-page .pane-toggles { flex: 0 0 auto; }
.pt-lbl { font-size: 11px; color: var(--muted); margin-right: 2px; }
.pt-btn { font-size: 11px; padding: 2px 10px; border: 1px solid var(--border); border-radius: 12px;
  background: var(--panel); color: var(--muted); cursor: pointer; line-height: 1.5; }
.pt-btn:hover { color: var(--text); }
.pt-btn.on { background: var(--accent); border-color: var(--accent); color: #fff; }

/* CMF (accumulation) pane + chip */
.ccmf { flex: 2; }
.booster.on.booster-accum { background: #d2f4ee; color: #0e7490; border-color: #a7e8dc; }
.chip-accum { background: #d2f4ee; color: #0e7490; }


/* Smart Money source toggle (Congress / Insiders) */
.sm-toggle { display: flex; gap: 6px; margin: 4px 0 10px; }
.sm-toggle button { padding: 6px 18px; border: 1px solid var(--line, #d0d7de); background: var(--card, #f6f8fa); color: var(--muted, #57606a); border-radius: 6px; cursor: pointer; font-size: 13px; font-weight: 600; }
.sm-toggle button:hover { border-color: #8c959f; }
.sm-toggle button.active { background: #0969da; color: #fff; border-color: #0969da; }
.sm-grid .bs { color: var(--muted, #8a8a8a); font-size: 11px; margin-left: 6px; white-space: nowrap; }


/* VB belka setup status (live detect vs no-longer-qualifying) */
.vb-status { font-size: 11px; font-weight: 600; padding: 1px 8px; border-radius: 10px; margin-left: 8px; }
.vb-status.live { background: #e6f4ea; color: #137333; }
.vb-status.stale { background: #fce8e6; color: #b3261e; cursor: help; }
.vb-status.offlist { background: #fef7e0; color: #b06000; cursor: help; }

/* company profile / context enrichment */
.ind-chip { display:inline-block; margin-left:6px; padding:0 6px; border-radius:8px;
            background:#f1f3f5; color:#57606a; font-size:11px; white-space:nowrap; vertical-align:1px; }
.profile-block { margin-top:6px; }
.profile-head { font-size:12px; color:#57606a; margin-bottom:2px; }
.profile-head a { color:#0969da; }
.profile-desc { font-size:12px; color:#57606a; line-height:1.35; max-height:2.8em;
                overflow:hidden; cursor:pointer; }
.profile-desc.open { max-height:none; }
.booster-earnings { background:#fff3cd; color:#7a5b00; }
.booster-analyst  { background:#e7f0fe; color:#1a56a8; }
.booster-reddit   { background:#ffe9d6; color:#b04a00; }
