/* Electronic Market Intelligence — research terminal. Light "research report" theme. */
:root {
  --bg: #eef2f7;          /* soft light-gray page */
  --surface: #ffffff;     /* cards / table */
  --surface-2: #f4f7fb;
  --border: #d4dde8;
  --border-soft: #e7edf4;
  --text: #0f172a;        /* slate-900 */
  --text-dim: #475569;    /* slate-600 */
  --text-faint: #8294a9;  /* slate-400/500 */
  --accent: #16a34a;      /* green-600 */
  --blue: #2563eb;
  --pos: #15803d;
  --neg: #dc2626;
  --mono: "Fira Code", ui-monospace, "SF Mono", Menlo, monospace;
  --sans: "Fira Sans", system-ui, -apple-system, sans-serif;
}
* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; }
body { background: var(--bg); color: var(--text); font-family: var(--sans); font-size: 14px; -webkit-font-smoothing: antialiased; }
.num { font-family: var(--mono); font-feature-settings: "tnum" 1; }
button { font-family: inherit; cursor: pointer; }
::-webkit-scrollbar { width: 11px; height: 11px; }
::-webkit-scrollbar-thumb { background: #c2ccd9; border-radius: 6px; border: 2px solid var(--bg); }
::-webkit-scrollbar-track { background: transparent; }

.app { display: grid; grid-template-rows: 54px 1fr; height: 100vh; }
.topbar { display: flex; align-items: center; gap: 16px; padding: 0 22px;
  background: linear-gradient(180deg, #ffffff, #f3f6fb); border-bottom: 1px solid var(--border); box-shadow: 0 1px 2px rgba(15,23,42,.05); }
.brand { display: flex; align-items: baseline; gap: 9px; }
.brand .dot { color: var(--accent); font-size: 15px; }
.brand b { font-weight: 700; letter-spacing: .4px; font-size: 15px; color: var(--text); }
.brand small { color: var(--text-faint); font-size: 11px; }
.asof { color: var(--text-dim); font-size: 12px; }
.asof b { color: var(--text); font-family: var(--mono); }
.spacer { flex: 1; }
.legend-hint { color: var(--text-faint); font-size: 11px; }
.pagenav { display: flex; gap: 12px; }
.pagenav a { font-size: 12px; font-weight: 600; color: var(--blue, #2563eb); text-decoration: none; padding: 3px 9px; border: 1px solid var(--border, #e2e8f0); border-radius: 6px; }
.pagenav a:hover { background: #eff6ff; }
.tabs { display: flex; gap: 4px; margin-left: 6px; }
.tab { background: transparent; border: 1px solid transparent; color: var(--text-dim); padding: 6px 13px; border-radius: 8px; font-size: 13px; font-weight: 600; }
.tab:hover { color: var(--text); }
.tab.active { background: #e8f0ff; color: #1d4ed8; border-color: #bcd3f5; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 1100px) { .grid2 { grid-template-columns: 1fr; } }
.seedtag { font-size: 10px; color: #b45309; background: #fef3c7; border-radius: 4px; padding: 1px 6px; margin-left: 8px; font-weight: 600; text-transform: none; letter-spacing: 0; }
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin: 4px 0 16px; }
.kpi { background: #fff; border: 1px solid var(--border); border-radius: 10px; padding: 12px 15px; box-shadow: 0 1px 2px rgba(15,23,42,.04); }
.kpi .label { color: var(--text-faint); font-size: 11px; text-transform: uppercase; letter-spacing: .5px; }
.kpi .value { font-family: var(--mono); font-size: 21px; margin-top: 6px; font-weight: 500; }
.kpi .value.phase { color: #1d4ed8; }
.kpi .value.pos { color: var(--pos); }
.kpi .value.neg { color: var(--neg); }
.kpi .sub { font-size: 12px; margin-top: 3px; font-family: var(--mono); }
.dim { color: var(--text-dim); }
.mkbar { display: flex; gap: 22px; flex-wrap: wrap; align-items: center; margin: 2px 0 14px; }
.seggrp { display: flex; align-items: center; gap: 2px; }
.seglbl { font-size: 11px; color: var(--text-faint); text-transform: uppercase; letter-spacing: .5px; margin-right: 8px; }
.seg { background: #fff; border: 1px solid var(--border); color: var(--text-dim); padding: 5px 12px; font-size: 12px; font-weight: 600; cursor: pointer; }
.seg:first-of-type { border-radius: 7px 0 0 7px; }
.seg:last-of-type { border-radius: 0 7px 7px 0; }
.seg + .seg { border-left: none; }
.seg:hover { color: var(--text); }
.seg.on { background: #e8f0ff; color: #1d4ed8; border-color: #bcd3f5; }
.seg.pend { color: #b45309; font-style: italic; }              /* quarter still posting — sparse until reported */
.seg.pend.on { background: #fffbeb; color: #b45309; border-color: #fcd34d; }
.pendnote { font-size: 11.5px; color: #b45309; margin: 6px 2px 0; }
.exbar { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 0 0 10px; padding: 8px 12px; background: #fff7ed; border: 1px solid #fed7aa; border-radius: 9px; }
.exlbl { font-size: 12px; font-weight: 700; color: #b45309; letter-spacing: .5px; margin-right: 4px; }
.exbar .seg { border-color: #fdba74; }
.exbar .seg.on { background: #b45309; color: #fff; border-color: #b45309; }
.vbanner { display: flex; gap: 8px; flex-wrap: wrap; margin: 4px 0 18px; }
.vpill { font-size: 12px; font-weight: 600; padding: 5px 12px; border-radius: 20px; border: 1px solid; }
.vpill.up { color: #166534; background: #dcfce7; border-color: #bbf7d0; }
.vpill.down { color: #b91c1c; background: #fee2e2; border-color: #fecaca; }
.vpill.warn { color: #b45309; background: #fef3c7; border-color: #fde68a; }
.jstation { background: #fff; border: 1px solid var(--border); border-left: 5px solid var(--c); border-radius: 10px; padding: 15px 18px; box-shadow: 0 1px 2px rgba(15,23,42,.04); }
.jhead { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 14px; }
.jnum { flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--c); color: #fff; font-weight: 700; font-size: 17px; display: flex; align-items: center; justify-content: center; }
.jtitle { font-size: 15px; font-weight: 700; color: var(--text); }
.jverdict { font-size: 13px; color: var(--text-dim); line-height: 1.55; margin-top: 4px; max-width: 90ch; }
.jcards { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 12px; }
.jcard { border: 1px solid var(--border); border-radius: 9px; padding: 10px 12px; background: #f8fafc; }
.jc-top { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.jc-sent { font-weight: 700; font-size: 13px; margin-left: auto; }
.spark { width: 60px; height: 24px; flex: none; }
.jc-meters { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.meter { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.meter .ml { font-size: 9px; color: var(--text-faint); text-transform: uppercase; letter-spacing: .3px; }
.meter .mp { font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 5px; text-transform: capitalize; }
.jc-themes .th { font-size: 10px; margin-right: 9px; white-space: nowrap; line-height: 1.7; }
.jconn { text-align: center; color: var(--text-dim); font-size: 12px; font-weight: 600; padding: 9px 0; }
.jconn::before { content: ''; display: block; width: 2px; height: 16px; background: var(--border); margin: 0 auto 6px; }
.jfinale { margin-top: 16px; border-top: 3px solid #0284c7; }
.cyctab { width: 100%; border-collapse: separate; border-spacing: 3px; font-size: 12px; }
.cyctab th { color: var(--text-dim); font-size: 11px; font-weight: 600; padding: 4px 6px; text-align: center; }
.cyctab th:first-child { text-align: left; }
.cyctab .cycname { white-space: nowrap; font-weight: 600; font-size: 12px; }
.cyctab .cyc { text-align: center; font-weight: 700; border-radius: 6px; padding: 9px 6px; text-transform: capitalize; min-width: 64px; }
.cyctab .cyc.na { background: #f1f5f9; }
.radrow { display: flex; flex-direction: column; gap: 1px; padding: 8px 11px; margin-bottom: 7px; border-radius: 8px; border-left: 3px solid; font-size: 13px; }
.radrow.up { background: #f0fdf4; border-color: #16a34a; }
.radrow.down { background: #fef2f2; border-color: #dc2626; }
.radrow.warn { background: #fffbeb; border-color: #d97706; }
.radrow .dim { font-size: 11px; }
.glg { display: inline-block; color: #fff; font-size: 10px; font-weight: 700; padding: 1px 7px; border-radius: 4px; margin-left: 6px; }
.gaxis { display: flex; margin-left: 176px; border-bottom: 1px solid var(--border); margin-bottom: 8px; }
.gaxis span { flex: 1; font-size: 10px; color: var(--text-faint); border-left: 1px solid var(--border); padding: 0 0 3px 5px; }
.glayer { margin-bottom: 10px; }
.glayer-h { font-weight: 700; font-size: 12px; color: var(--c); display: flex; align-items: center; gap: 6px; margin: 6px 0 5px; }
.grow { display: flex; align-items: center; height: 23px; margin-bottom: 3px; }
.glabel { flex: none; width: 168px; font-size: 11px; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-right: 8px; }
.gtrack { position: relative; flex: 1; height: 20px; background: #f1f5f9; border-radius: 4px; }
.gbar { position: absolute; top: 2px; height: 16px; border-radius: 4px; box-shadow: 0 1px 2px rgba(15,23,42,.12); }
.gnow { position: absolute; top: -2px; bottom: -2px; width: 2px; background: #dc2626; z-index: 3; }
.defsbox { background: #fbfdff; }
.defs p { font-size: 12px; line-height: 1.6; margin: 5px 0; color: var(--text-dim); }
.defs b { color: var(--text); }
.defs .ex { background: #f0f9ff; border-left: 3px solid #0284c7; border-radius: 0 7px 7px 0; padding: 8px 11px; color: var(--text); }
.cyc.tcc { white-space: nowrap; }
.tcc-lab { display: block; font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; opacity: .62; margin-bottom: 1px; }
.tcc-v { font-weight: 800; }
.tcc-g { display: inline-block; margin-left: 4px; font-size: 10px; font-weight: 700; line-height: 1.4; padding: 0 4px; border-radius: 6px; vertical-align: middle; }
.tcc-g.sm { background: #dcfce7; color: #166534; }
.tcc-g.mid { background: #fef3c7; color: #92400e; }
.tcc-g.big { background: #fee2e2; color: #991b1b; }
/* Topic trends lens */
.tlgrow { display: flex; flex-wrap: wrap; gap: 7px 9px; margin: 12px 2px 4px; }
.tlg { display: inline-flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 500; color: var(--text-dim); background: var(--surface); border: 1px solid var(--border); border-radius: 999px; padding: 4px 11px 4px 9px; box-shadow: 0 1px 2px rgba(15,23,42,.04); transition: box-shadow .15s, transform .15s; }
.tlg:hover { box-shadow: 0 3px 10px rgba(15,23,42,.09); transform: translateY(-1px); }
/* compact one-line legend bar: domain = clickable filter (shape glyph) + colour key */
.legendbar { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 7px; margin: 9px 2px 2px; }
.leglbl { font-size: 11px; color: var(--text-faint); text-transform: uppercase; letter-spacing: .5px; font-weight: 700; }
.legsep { width: 1px; height: 15px; background: var(--border); margin: 0 5px; }
.domchip { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; font-weight: 600; color: var(--text-dim); background: #fff; border: 1px solid var(--border); border-radius: 999px; padding: 3px 10px 3px 8px; cursor: pointer; transition: background .12s, border-color .12s; }
.domchip:hover { color: var(--text); border-color: #9fb2c9; }
.domchip.on { background: #eef4ff; color: #1d4ed8; border-color: #bcd3f5; }
.seg.laytag { font-weight: 800; color: var(--text-faint); padding-left: 9px; padding-right: 9px; }
.seg.laytag.on { color: #1d4ed8; }
.tdot { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.tcols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 16px; }
.tcol { background: linear-gradient(180deg,#ffffff,#fbfdff); border: 1px solid var(--border); border-radius: 14px; padding: 14px 16px; box-shadow: 0 4px 16px rgba(15,23,42,.05); }
.tcol h4 { margin: 0 0 8px; font-size: 13px; letter-spacing: .2px; }
.trow { display: flex; align-items: center; gap: 9px; padding: 6px 6px; margin: 0 -6px; border-radius: 8px; border-bottom: 1px solid var(--border); transition: background .12s; }
.trow:hover { background: var(--surface-2); }
.trow:last-child { border-bottom: 0; }
.tlab { flex: 1; font-size: 12px; color: var(--text); }
.tmom { font-weight: 800; font-size: 12.5px; font-variant-numeric: tabular-nums; }
.tmom.up { color: #16a34a; }
.tmom.down { color: #dc2626; }
.kco { font-size: 11px; color: var(--text-faint); white-space: nowrap; margin-right: 10px; font-variant-numeric: tabular-nums; }
/* hover detail panel beside the bubble chart */
.topicctl { position: sticky; top: 0; z-index: 30; background: var(--bg); padding: 6px 0 8px; border-bottom: 1px solid var(--border); box-shadow: 0 8px 14px -8px rgba(15,23,42,.22); }
.thead-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.thead-row h3 { margin: 0; }
.tctl-toggle { font-size: 12px; white-space: nowrap; flex: none; }
.mkbar.tight { gap: 14px; row-gap: 6px; margin: 0 0 6px; }
.mkbar.tight:last-child { margin-bottom: 0; }
.topiccap { font-size: 11px; margin: 7px 0 8px; line-height: 1.45; }
.ctl-collapsed { font-size: 12px; padding: 6px 0; cursor: pointer; border-bottom: 1px solid var(--border-soft); }
.topicwrap2 { display: flex; gap: 0; align-items: stretch; }
.topicwrap2 .chart { flex: 1; min-width: 260px; }
.topicdetail { flex: 0 0 var(--drawer-w, 40%); width: var(--drawer-w, 40%); min-width: 0; height: 600px; overflow-y: auto; border: 1px solid var(--border); border-radius: 12px; padding: 0; background: linear-gradient(180deg,#ffffff,#fbfdff); }
/* draggable splitter between chart and drawer */
.topic-split { flex: 0 0 12px; align-self: stretch; cursor: col-resize; position: relative; }
.topic-split::before { content: ''; position: absolute; left: 5px; top: 0; bottom: 0; width: 2px; background: var(--border); border-radius: 2px; transition: background .12s; }
.topic-split:hover::before, .topic-split.dragging::before { background: var(--blue); width: 3px; left: 4px; }
.topicdetail > .tdwrap { padding: 14px 16px; }   /* hover-preview content */
.tdhead { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: var(--text); }
.tddot { width: 11px; height: 11px; border-radius: 50%; flex: none; }
.tdcat { font-size: 10px; color: var(--text-faint); letter-spacing: .5px; text-transform: uppercase; margin-top: 3px; }
.tdquad { font-size: 12px; font-weight: 700; margin: 6px 0 3px; }
.tdnote { font-size: 12px; color: var(--text-dim); line-height: 1.5; margin: 6px 0 4px; border-bottom: 1px solid var(--border-soft); padding-bottom: 10px; }
.tdrow { display: grid; grid-template-columns: 1fr 104px 46px; align-items: center; column-gap: 10px; margin: 7px 0; }
.tdl { color: var(--text-dim); font-size: 12px; }
.tdspark { text-align: right; line-height: 0; }
.tdval { text-align: right; font-size: 12.5px; font-weight: 700; color: var(--text); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ttl { font-size: 10px; font-weight: 700; letter-spacing: .4px; color: var(--text-faint); text-transform: uppercase; margin: 13px 0 6px; }
@media (max-width: 1080px) { .topicwrap2 { flex-direction: column; } .topicdetail { flex: none; width: auto; height: auto; max-height: 480px; } .topic-split { display: none; } }
/* company search + dropdown */
.cosearch-wrap { position: relative; display: inline-block; }
.cosearch { font: inherit; font-size: 12px; padding: 5px 11px; border: 1px solid var(--border); border-radius: 8px; width: 230px; background: var(--surface); color: var(--text); }
.cosearch-dd .sdh { font-size: 10px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; color: var(--text-faint); padding: 8px 11px 3px; }
.cosearch:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(37,99,235,.12); }
.cosearch-dd { position: absolute; top: calc(100% + 4px); left: 0; z-index: 30; background: #fff; border: 1px solid var(--border); border-radius: 10px; box-shadow: 0 12px 32px rgba(15,23,42,.16); min-width: 250px; max-height: 290px; overflow: auto; display: none; }
.cosearch-item { padding: 8px 12px; font-size: 12px; cursor: pointer; display: flex; align-items: center; gap: 8px; color: var(--text); }
.cosearch-item:hover, .cosearch-item.active { background: #eff6ff; }
.stag { font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; padding: 1px 5px; border-radius: 5px; }
.stag.exc { background: #dcfce7; color: #166534; }
.stag.con { background: #fee2e2; color: #991b1b; }
.stag.mix { background: #fef3c7; color: #92400e; }
.whorow { display: flex; flex-wrap: wrap; gap: 6px; }
.whochip { font-size: 12px; font-weight: 600; padding: 3px 9px; border-radius: 999px; background: var(--surface-2); border: 1px solid var(--border); color: var(--text); }
.tq { font-size: 12px; line-height: 1.5; padding: 6px 0; border-bottom: 1px solid var(--border); color: var(--text); }
.tq:last-child { border-bottom: 0; }
.tqco { font-weight: 700; color: var(--text); }
.tqdir.up { color: #16a34a; }
.tqdir.down { color: #dc2626; }
.tqdir.new { color: #2563eb; }
.credrow { padding: 7px 0; border-bottom: 1px solid var(--border); }
.credhd { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.credspark { flex: none; width: 84px; height: 22px; display: inline-block; }
.credconf { font-size: 11px; color: var(--text-dim); }
.tonewrap { display: flex; align-items: center; gap: 12px; margin: 5px 0 2px; }
.tonebar { position: relative; flex: 1; max-width: 360px; height: 14px; background: #eef2f7; border-radius: 7px; }
.tonebar .zero { position: absolute; left: 50%; top: -3px; bottom: -3px; width: 1px; background: #cbd5e1; }
.tonebar .tseg { position: absolute; top: 0; height: 14px; border-radius: 4px; }
.tonenum { font-family: var(--mono); font-size: 12px; white-space: nowrap; }
.redflag { font-size: 11px; font-weight: 600; color: #b91c1c; background: #fee2e2; border-radius: 5px; padding: 1px 8px; }
.creddodge { font-size: 11px; color: var(--text-dim); margin-top: 3px; }
.sigboard { width: 100%; border-collapse: collapse; font-size: 12px; }
.sigboard th { text-align: center; color: var(--text-dim); font-size: 11px; text-transform: uppercase; letter-spacing: .4px; padding: 6px 4px; border-bottom: 1px solid var(--border); }
.sigboard th:first-child { text-align: left; }
.sigboard td { padding: 7px 4px; border-bottom: 1px solid var(--border); text-align: center; }
.sigboard .signame { text-align: left; white-space: nowrap; }
.sigboard .sigc { font-weight: 600; border-radius: 5px; text-transform: capitalize; }
.callout { font-size: 13px; line-height: 1.5; padding: 8px 12px; margin-bottom: 7px; background: #f0f9ff; border-left: 3px solid #0284c7; border-radius: 0 7px 7px 0; }
.themerow { display: flex; align-items: center; gap: 10px; padding: 5px 0; flex-wrap: wrap; }
.themetag { font-size: 12px; font-weight: 600; border: 1px solid; border-radius: 6px; padding: 2px 9px; }
.sigcard { padding: 8px 0; border-bottom: 1px solid var(--border); }
.sigquote { font-size: 12px; font-style: italic; color: var(--text); margin: 4px 0; }
.sigcard .th { font-size: 11px; margin-right: 10px; white-space: nowrap; }
.view-head { display: flex; align-items: baseline; gap: 12px; margin: 14px 0 2px; flex-wrap: wrap; }
.view-head h1 { font-size: 19px; font-weight: 700; margin: 0; }
.crumb { color: var(--text-dim); font-size: 12px; font-family: var(--mono); }
.view-sub { color: var(--text-dim); font-size: 13px; margin: 0 0 14px; }

.main { overflow-y: auto; padding: 0 22px 50px; }

/* toolbar */
.toolbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px;
  position: sticky; top: 0; z-index: 20; background: var(--bg); padding: 8px 0; }
.metric-switch { display: flex; gap: 6px; flex-wrap: wrap; }
.chip { background: #fff; border: 1px solid var(--border); color: var(--text-dim);
  border-radius: 7px; padding: 8px 14px; font-size: 12.5px; font-weight: 500; transition: all .12s; }
.chip:hover { color: var(--text); border-color: #9fb2c9; }
.chip.active { background: var(--accent); color: #fff; border-color: var(--accent); font-weight: 600; }
.seg-group { display: inline-flex; background: #fff; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.seg { background: transparent; border: 0; color: var(--text-dim); padding: 8px 15px; font-size: 12.5px; font-weight: 500; }
.seg + .seg { border-left: 1px solid var(--border); }
.seg:hover { color: var(--text); }
.seg.active { background: #e8f0ff; color: #1d4ed8; box-shadow: inset 0 -2px 0 var(--blue); }
.seg-btn { background: #fff; border: 1px solid var(--border); color: var(--text-dim); border-radius: 8px; padding: 8px 13px; font-size: 12.5px; font-weight: 500; }
.seg-btn:hover { color: var(--text); border-color: #9fb2c9; }
.seg-btn.active { background: #e8f0ff; color: #1d4ed8; border-color: var(--blue); }
.cc-wrap { position: relative; }
.cc-panel { position: absolute; top: 110%; left: 0; z-index: 40; background: #fff; border: 1px solid var(--border);
  border-radius: 10px; padding: 10px; width: 320px; box-shadow: 0 12px 30px rgba(15,23,42,.18); }
.cc-row { margin-bottom: 8px; }
.cc-all { width: 100%; background: var(--surface-2); border: 1px solid var(--border); color: var(--text); border-radius: 7px; padding: 7px; font-size: 12px; }
.cc-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.cc-grid-1 { grid-template-columns: 1fr; }
.cc-grid-1 .cc-chip { padding: 8px 10px; text-align: left; font-family: inherit; font-size: 12px; }
.cc-chip { background: #fff; border: 1px solid var(--border); color: var(--text-dim); border-radius: 6px; padding: 6px 0; font-size: 11px; font-family: var(--mono); }
.cc-chip.on { background: var(--accent); color: #fff; border-color: var(--accent); font-weight: 600; }
.search { background: #fff; border: 1px solid var(--border); color: var(--text); border-radius: 8px; padding: 8px 12px; font-size: 13px; margin-left: auto; width: 210px; }
.search::placeholder { color: var(--text-faint); }
.search:focus { outline: 2px solid #93c5fd; border-color: transparent; }

/* matrix */
.tbl-wrap { width: 100%; overflow: visible; margin-bottom: 22px; border: 1px solid var(--border); border-radius: 10px; background: #fff; }
table.matrix { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 14px; }
.matrix th, .matrix td { border-bottom: 1px solid var(--border-soft); white-space: nowrap; }
.matrix thead th { position: sticky; top: 50px; z-index: 10; background: #eaf0f7; color: var(--text-dim);
  font-size: 11px; font-weight: 600; padding: 7px 14px; text-align: right; border-bottom: 1px solid var(--border); }
.matrix thead th.l { text-align: left; }
.matrix .qh { font-family: var(--mono); color: var(--text-dim); }
.matrix .qh.fwd { color: var(--blue); font-style: italic; }
.matrix .qh.sumcol { color: var(--text-dim); }
.matrix .sticky { position: sticky; left: 0; z-index: 5; min-width: 300px; max-width: 360px;
  overflow: hidden; text-overflow: ellipsis; border-right: 1px solid var(--border); }
.matrix thead .sticky { z-index: 12; }
.matrix td { padding: 6px 14px; text-align: right; }
.matrix td.l { text-align: left; }
.matrix .cell { font-size: 12.5px; }
.matrix td.fwd, .matrix thead th.fwd { border-left: 1px dashed #b9c6db; }
.matrix td.sumcol, .matrix thead th.sumcol { border-left: 1px solid var(--border); }
.matrix td.now, .matrix thead th.now { border-left: 1px solid var(--border); }
.matrix thead th.now { color: var(--text); }
.matrix td.muted { color: #b6c0cd; }

/* growth chips (Option 3) */
.chip { display: inline-block; padding: 2px 9px; border-radius: 11px; font-size: 11.5px; }
.chip.up { color: #0f5132; }
.chip.down { color: #9a1c1c; }

/* Row hierarchy — Option 3B: layer-color left rail + tree + layer-colored section rule */
tr.grp { cursor: pointer; }
tr.lvl0 td { background-color: #e9f1f9; border-top: 1px solid var(--c, #94a3b8); }
tr.lvl0 .sticky { background: #e9f1f9; box-shadow: inset 4px 0 0 var(--c, #94a3b8); }
tr.lvl0 .g-name { font-weight: 700; color: #0f172a; font-size: 14px; }
tr.lvl0 .g-tag { color: var(--c, var(--blue)); }
tr.lvl1 td { background-color: #f2f7fc; }
tr.lvl1 .sticky { background: #f2f7fc; box-shadow: inset 4px 0 0 var(--c, #94a3b8); }
tr.lvl1 .g-name { color: #0f172a; font-weight: 600; }
tr.co { cursor: pointer; }
tr.co td { background-color: #ffffff; }
tr.co .sticky { background: #ffffff; }
tr.co .sticky .tk::before { content: '└ '; color: #c2ccd9; font-family: var(--mono); }
tr.co:hover td, tr.co:hover .sticky { filter: brightness(0.96); }
tr.grp:hover td, tr.grp:hover .sticky { filter: brightness(0.985); }
.caret { display: inline-block; width: 15px; color: var(--text-faint); font-size: 11px; }
.lyr-dot { display: inline-block; width: 9px; height: 9px; border-radius: 2px; margin-right: 8px; vertical-align: middle; }
.g-tag { font-family: var(--mono); font-size: 11px; }
.g-name { font-size: 13.5px; }
.g-n { font-family: var(--mono); font-size: 10px; color: var(--text-faint); margin-left: 7px; }
.tk { font-family: var(--mono); color: var(--blue); font-size: 12px; }
.co-name { color: var(--text-dim); font-size: 13px; }
.co-reg { font-family: var(--mono); font-size: 10px; color: var(--text-faint); margin-left: 8px; }
.flag { color: #d97706; font-size: 11px; margin-left: 6px; cursor: help; }
.estbadge { color: #075985; background: #e0f2fe; font-size: 9px; font-weight: 700; letter-spacing: .5px; border-radius: 4px; padding: 1px 4px; margin-left: 6px; cursor: help; }
.segbadge { color: #92400e; background: #fef3c7; font-size: 9px; font-weight: 700; letter-spacing: .5px; border-radius: 4px; padding: 1px 4px; margin-left: 6px; cursor: help; }
.empty { text-align: center; color: var(--text-faint); padding: 34px; }

/* panels / chart */
.panel { background: #fff; border: 1px solid var(--border); border-radius: 10px; padding: 13px 15px; margin-bottom: 16px; box-shadow: 0 1px 2px rgba(15,23,42,.04); }
.panel h3 { margin: 0 0 8px; font-size: 12px; font-weight: 600; color: var(--text-dim); text-transform: uppercase; letter-spacing: .5px; }
.chart { width: 100%; height: 300px; }
.chart-sm { width: 100%; height: 220px; }
.note { color: var(--text-faint); font-size: 11px; margin-top: 8px; line-height: 1.5; }
.loading { padding: 60px; text-align: center; color: var(--text-dim); }

/* modal */
.scrim { position: fixed; inset: 0; background: rgba(15,23,42,.35); display: none; z-index: 50; }
.scrim.open { display: block; }
.modal { position: fixed; top: 0; right: 0; height: 100vh; width: min(720px, 95vw); background: #fff;
  border-left: 1px solid var(--border); z-index: 60; transform: translateX(100%); transition: transform .2s ease; display: flex; flex-direction: column; box-shadow: -8px 0 30px rgba(15,23,42,.12); }
.modal.open { transform: translateX(0); }
.modal.wide { width: min(880px, 97vw); }
.verdict { font-size: 13px; line-height: 1.6; color: var(--text-dim); background: var(--surface-2); border: 1px solid var(--border-soft); border-radius: 10px; padding: 11px 13px; margin-bottom: 12px; }
.verdict b { color: var(--text); }
.modal header { display: flex; justify-content: space-between; align-items: flex-start; padding: 16px 20px; border-bottom: 1px solid var(--border); }
.modal header h2 { margin: 0; font-size: 18px; }
.modal header .sub { color: var(--text-dim); font-size: 12px; margin-top: 4px; font-family: var(--mono); }
.modal .body { padding: 14px 20px; overflow-y: auto; }
.x { background: var(--surface-2); border: 1px solid var(--border); color: var(--text); border-radius: 8px; width: 32px; height: 32px; font-size: 16px; }
.statrow { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; margin: 12px 0; }
.stat { background: var(--surface-2); border: 1px solid var(--border-soft); border-radius: 8px; padding: 9px 12px; }
.stat .l { color: var(--text-faint); font-size: 10px; text-transform: uppercase; letter-spacing: .5px; }
.stat .v { font-family: var(--mono); font-size: 16px; margin-top: 4px; }
.pos { color: var(--pos); }
.neg { color: var(--neg); }

/* ── Topic Outlook (forward-looking deep-dive) ───────────────────────────── */
.tout { margin-top: 16px; }
.tout-bar { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.tout-head { display: flex; gap: 18px; align-items: stretch; margin-bottom: 18px; }
.tout-dir { flex: 0 0 134px; border-radius: 12px; padding: 14px 10px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.tout-dir.up { background: rgba(22,163,74,.10); color: #16a34a; }
.tout-dir.down { background: rgba(220,38,38,.10); color: #dc2626; }
.tout-dir.mix { background: rgba(217,119,6,.10); color: #d97706; }
.tout-arrow { font-size: 30px; line-height: 1; }
.tout-dirlab { font-weight: 800; font-size: 15px; margin-top: 5px; text-transform: uppercase; letter-spacing: .04em; }
.tout-conf { font-size: 11px; color: var(--text-dim); margin-top: 5px; text-transform: none; letter-spacing: 0; }
.tout-h { flex: 1; min-width: 0; }
.tout-topic { font-size: 13px; color: var(--text-dim); font-weight: 600; display: flex; align-items: center; gap: 6px; margin-bottom: 6px; }
.tout-headline { font-size: 18px; font-weight: 800; line-height: 1.34; color: var(--text); margin-bottom: 8px; }
.tout-summary { font-size: 13.5px; line-height: 1.6; color: var(--text-dim); }
.tout-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 28px; }
.tout-col h4 { font-size: 13px; margin: 0 0 9px; font-weight: 700; color: var(--text); }
.tout-col h4 span { font-weight: 400; font-size: 11.5px; }
/* stance matrix */
.smx { display: flex; flex-direction: column; gap: 3px; font-size: 12px; }
.smx-row { display: grid; grid-template-columns: 108px repeat(5, 30px) 1fr; align-items: center; gap: 3px; }
.smx-hdr { color: var(--text-faint); font-size: 10.5px; }
.smx-hdr .smx-c { background: none !important; color: var(--text-faint); }
.smx-co { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: flex; align-items: center; gap: 5px; color: var(--text); }
.smx-c { height: 24px; display: flex; align-items: center; justify-content: center; border-radius: 4px; font-size: 9.5px; color: #334155; font-variant-numeric: tabular-nums; }
.smx-st { display: flex; align-items: center; gap: 6px; padding-left: 9px; }
.smx-badge { font-size: 10px; font-weight: 700; border: 1px solid; border-radius: 999px; padding: 1px 7px; white-space: nowrap; }
.smx-pt { font-size: 11px; color: var(--text-dim); line-height: 1.35; }
.smx-row:hover { background: var(--surface-2, #f8fafc); }
/* consensus strip */
.cons { margin-top: 16px; }
.cons-axis { display: flex; justify-content: space-between; font-size: 10px; color: var(--text-faint); margin-bottom: 3px; }
.cons-track { position: relative; height: 14px; background: linear-gradient(90deg, rgba(220,38,38,.20), rgba(217,119,6,.15), rgba(22,163,74,.20)); border-radius: 7px; }
.cons-mid { position: absolute; left: 50%; top: -2px; bottom: -2px; width: 1px; background: #cbd5e1; }
.cons-dot { position: absolute; top: 50%; width: 10px; height: 10px; border-radius: 50%; transform: translate(-50%,-50%); border: 1.5px solid #fff; box-shadow: 0 1px 2px rgba(0,0,0,.18); }
.cons-note { font-size: 11.5px; color: var(--text-dim); margin-top: 8px; }
/* drivers */
.drv { display: flex; gap: 9px; align-items: flex-start; margin-bottom: 10px; }
.drv-pol { flex: 0 0 18px; height: 18px; border-radius: 5px; color: #fff; font-weight: 800; font-size: 12px; display: flex; align-items: center; justify-content: center; margin-top: 1px; }
.drv-b { flex: 1; min-width: 0; }
.drv-l { font-size: 12.5px; line-height: 1.45; color: var(--text); }
.drv-d { font-weight: 400; color: var(--text-dim); }
.drv-t { margin-top: 3px; display: flex; flex-wrap: wrap; gap: 4px; }
.drv-tag { font-size: 10px; background: #eef2f7; color: var(--text-dim); border-radius: 4px; padding: 1px 6px; }
.risk { font-size: 12px; color: var(--text-dim); line-height: 1.5; margin-bottom: 5px; }
@media (max-width: 900px) { .tout-grid { grid-template-columns: 1fr; } }

/* ── Topic INSPECTOR (pinned right panel) ─────────────────────────────────── */
.insp { font-size: 12px; }
.insp-banner { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; gap: 7px; flex-wrap: wrap; padding: 11px 14px; background: rgba(255,255,255,.96); backdrop-filter: blur(3px); border-bottom: 1px solid var(--border); }
.insp-banner > b { font-size: 14px; color: var(--text); }
.insp-banner .tddot { width: 11px; height: 11px; border-radius: 50%; flex: none; }
.insp-banner .unpin { margin-left: auto; border: 1px solid var(--border); background: #fff; color: var(--text-dim); width: 22px; height: 22px; border-radius: 6px; cursor: pointer; font-size: 12px; line-height: 1; }
.insp-banner .unpin:hover { background: #f1f5f9; color: var(--text); }
.insp-sub { flex-basis: 100%; font-size: 11px; color: var(--text-dim); }
.insp-sec { padding: 12px 14px; border-top: 1px solid var(--border-soft); }
.insp-sec:first-of-type { border-top: none; }
.insp-sec h5 { font-size: 11px; font-weight: 700; letter-spacing: .3px; color: var(--text-faint); text-transform: uppercase; margin: 0 0 8px; }
.insp-sec h5 span { font-weight: 400; text-transform: none; letter-spacing: 0; }
/* stats */
.insp-stats { grid-template-columns: repeat(2, 1fr); gap: 7px; margin: 0 0 10px; }
.insp-charts { display: flex; flex-direction: row; gap: 12px; }
.insp-ch { flex: 1; min-width: 0; }
.insp-ch .chlbl { font-size: 10px; color: var(--text-faint); text-transform: uppercase; letter-spacing: .4px; margin-bottom: 2px; }
.chart-xs { width: 100%; height: 132px; }
/* executive summary highlights / lowlights */
.insp-exec { background: linear-gradient(180deg,#fbfdff,#f6f9fd); }
.exec-hl-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 11px; }
.hl-col h6 { font-size: 11px; font-weight: 700; letter-spacing: .3px; text-transform: uppercase; margin: 0 0 6px; }
.hl-up { color: #16a34a; }
.hl-dn { color: #dc2626; }
.hl-item { display: flex; gap: 6px; align-items: flex-start; font-size: 11.5px; line-height: 1.45; color: var(--text); margin-bottom: 7px; }
.hl-item .hl-mk { flex: none; font-weight: 700; font-size: 11px; line-height: 1.5; }
.hl-mk.up { color: #16a34a; }
.hl-mk.dn { color: #dc2626; }
.hl-mk.warn { color: #d97706; }
@media (max-width: 1240px) { .exec-hl-grid { grid-template-columns: 1fr; gap: 8px; } }
/* forward call */
.insp-dir { display: flex; flex-direction: row; align-items: center; gap: 9px; border-radius: 9px; padding: 8px 11px; margin-bottom: 8px; }
.insp-dir.up { background: rgba(22,163,74,.10); color: #16a34a; }
.insp-dir.down { background: rgba(220,38,38,.10); color: #dc2626; }
.insp-dir.mix { background: rgba(217,119,6,.10); color: #d97706; }
.insp-dir .tout-arrow { font-size: 20px; line-height: 1; }
.insp-dir .tout-dirlab { font-weight: 800; font-size: 13px; text-transform: uppercase; letter-spacing: .03em; }
.insp-dir .tout-conf { font-size: 10.5px; color: var(--text-dim); margin-left: auto; }
.insp-headline { font-size: 13.5px; font-weight: 800; line-height: 1.36; color: var(--text); margin-bottom: 6px; }
.insp .tout-summary { font-size: 12px; line-height: 1.55; color: var(--text-dim); }
.lnk { background: none; border: none; color: var(--blue); font-size: 11px; cursor: pointer; padding: 3px 0 0; }
/* distribution + movers */
.dist-bar { display: flex; height: 10px; border-radius: 5px; overflow: hidden; margin: 0 0 4px; }
.dist-leg { font-size: 11px; color: var(--text-dim); margin-bottom: 8px; }
.topmovers { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-bottom: 8px; }
.mover { font-size: 11px; background: #f1f5f9; border-radius: 5px; padding: 1px 7px; display: inline-flex; align-items: center; gap: 4px; }
/* layer groups */
.lgrps { margin-top: 10px; }
.lgrp { border: 1px solid var(--border-soft); border-radius: 8px; margin-bottom: 5px; overflow: hidden; }
.lgrp-h { padding: 6px 9px; cursor: pointer; background: #fafcff; }   /* a grid row (.smx-row) — the layer's per-quarter AVERAGE, same format as company rows */
.lgrp-h:hover { background: #f1f5f9; }
.lgrp-tw { width: 10px; color: #94a3b8; flex: none; }
.lgrp-h .dim { font-size: 11px; }
.lgrp-avg { font-weight: 700; font-size: 11px; white-space: nowrap; }
.lgrp-body { padding: 7px 9px; border-top: 1px solid var(--border-soft); }
/* stance rows inside the inspector — sized for the wide drawer */
.insp .smx-row { grid-template-columns: 145px repeat(5, 50px) minmax(110px, 1fr); gap: 4px; font-size: 11.5px; align-items: center; }
.insp .smx-c { height: 22px; font-size: 10px; border-radius: 4px; }
/* empty (topic not mentioned that quarter) vs a real 0.0 (mentioned, neutral) — faint hatch */
.smx-c.miss { background-color: #f6f8fb; background-image: repeating-linear-gradient(45deg, transparent 0, transparent 3px, rgba(148,163,184,.28) 3px, rgba(148,163,184,.28) 4px); }
.smx-c.fut { background: #fbfcfe; color: #cbd5e1; }
.insp .smx-hdr .smx-c { font-size: 9.5px; }
.insp .smx-co { font-size: 11.5px; }
.insp .smx-st { padding-left: 8px; gap: 6px; }
.insp .smx-pt { font-size: 10.5px; white-space: normal; line-height: 1.35; }
.insp .cons { margin-top: 4px; }
.insp .tdrow { grid-template-columns: 1fr auto; }

/* ── Topic inspector as a FULL-HEIGHT right DRAWER (wide screens) ──────────── */
/* drawer is DOCKED beside the chart (resizable via .topic-split) and always shows content
   (idle = quarter summary). No overlay, so it never blocks the chart. */
.insp-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; min-height: 240px; text-align: center; padding: 24px; font-size: 13px; line-height: 1.6; }
.isum-row { display: flex; align-items: center; gap: 7px; padding: 5px 0; border-bottom: 1px solid var(--border-soft); cursor: pointer; }
.isum-row:last-child { border-bottom: none; }
.isum-row:hover { background: #f8fafc; }
.isum-lab { flex: 1; font-size: 12.5px; color: var(--text); }
/* LLM stance-by-company rows in the inspector */
.lockchip { font-size: 10.5px; font-weight: 700; padding: 1px 7px; border-radius: 999px; border: 1px solid var(--border); color: var(--text-dim); background: #fff; }
.lockchip.on { color: #15803d; border-color: #86efac; background: #f0fdf4; }
.pitchip { font-size: 10.5px; font-weight: 700; padding: 1px 7px; border-radius: 999px; border: 1px solid #fcd34d; color: #92400e; background: #fffbeb; white-space: nowrap; }
.llm-row { display: grid; grid-template-columns: 92px 58px 1fr; align-items: baseline; column-gap: 8px; padding: 4px 0; border-bottom: 1px solid var(--border-soft); }
.llm-row:last-child { border-bottom: none; }
.llm-co { font-size: 12px; font-weight: 600; color: var(--text); }
.llm-fav { font-size: 11px; font-weight: 700; text-transform: capitalize; }
.llm-why { font-size: 11.5px; color: var(--text-dim); line-height: 1.4; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }

.hatchkey { display: inline-block; width: 16px; height: 12px; border-radius: 2px; vertical-align: -2px; background-color: #f6f8fb; background-image: repeating-linear-gradient(45deg, transparent 0, transparent 3px, rgba(148,163,184,.28) 3px, rgba(148,163,184,.28) 4px); }

/* ── Overview lens ("quarter in one view") ─────────────────────────────────── */
.ov-take { font-size: 14px; line-height: 1.6; color: var(--text); background: var(--surface-2); border: 1px solid var(--border-soft); border-radius: 10px; padding: 12px 15px; margin: 4px 0 16px; }
.ov-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
@media (max-width: 1000px) { .ov-grid { grid-template-columns: 1fr; } }
.ov-card { border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; background: #fff; }
.ov-card h4 { margin: 0 0 8px; font-size: 13px; }
.ov-card h4 .dim { font-weight: 400; font-size: 11px; }
.ov-row { display: flex; align-items: center; gap: 7px; padding: 5px 0; border-bottom: 1px solid var(--border-soft); cursor: pointer; }
.ov-row:last-child { border-bottom: none; }
.ov-row:hover { background: #f8fafc; }
.ov-lab { flex: 1; min-width: 0; font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ov-x { font-family: var(--mono); font-size: 11px; color: var(--text-dim); }
.ov-b { font-size: 10px; color: var(--text-faint); white-space: nowrap; }
.ov-row .tmom { font-size: 11px; font-weight: 700; }

/* Alerts lens — newly emerged · accelerating · fading, segmented by area */
.al-sec { margin-top: 14px; }
.al-sec > h4 { margin: 0 0 9px; font-size: 14px; }
.al-sec > h4 .dim { font-size: 11.5px; }
.al-new-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(248px, 1fr)); gap: 10px; }
.al-new { border: 1px solid var(--border); border-left: 3px solid #6366f1; border-radius: 9px; padding: 9px 11px; background: linear-gradient(180deg,#fbfbff,#fff); }
.al-new-top { display: flex; align-items: center; gap: 7px; }
.al-badge { font-size: 13px; line-height: 1; }
.al-new-lab { flex: 1; min-width: 0; font-size: 13px; font-weight: 700; color: var(--text); }
.al-cos { font-family: var(--mono); font-size: 11px; font-weight: 700; color: #4f46e5; background: #eef2ff; border-radius: 5px; padding: 1px 6px; white-space: nowrap; }
.al-ex { margin-top: 5px; font-size: 11px; color: var(--text-dim); line-height: 1.4; }
.al-area { border: 1px solid var(--border); border-radius: 10px; padding: 11px 13px; background: #fff; margin-bottom: 12px; }
.al-area-h { display: flex; align-items: center; gap: 7px; font-size: 13.5px; font-weight: 800; color: var(--text); margin-bottom: 6px; }
.al-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 760px) { .al-cols { grid-template-columns: 1fr; } }
.al-col-h { font-size: 12px; font-weight: 800; padding: 3px 0 4px; border-bottom: 1px solid var(--border-soft); margin-bottom: 2px; }
.al-col-h.up { color: #15803d; }
.al-col-h.dn { color: #b45309; }

/* Correlation lens — co-occurrence + co-movement */
.cor-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 6px; }
@media (max-width: 920px) { .cor-grid { grid-template-columns: 1fr; } }
.cor-card { border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; background: #fff; }
.cor-card h4 { margin: 0 0 8px; font-size: 13.5px; display: flex; align-items: center; }
.cor-sel { font-size: 12.5px; font-weight: 700; color: var(--text); border: 1px solid var(--border); border-radius: 6px; padding: 3px 6px; background: #f8fafc; max-width: 220px; cursor: pointer; }
.cor-row { gap: 9px; }
.cor-track { flex: 0 0 56px; height: 7px; border-radius: 4px; background: #eef2f7; overflow: hidden; }
.cor-bar { display: block; height: 100%; background: linear-gradient(90deg,#818cf8,#4f46e5); border-radius: 4px; }
.cor-bar.neg { background: linear-gradient(90deg,#fca5a5,#dc2626); }
.cor-both { font-family: var(--mono); font-size: 11px; color: var(--text-dim); white-space: nowrap; }
.cor-r { font-family: var(--mono); font-size: 11px; font-weight: 700; white-space: nowrap; }
.cor-r.up { color: #16a34a; }
.cor-r.down { color: #dc2626; }
.cor-link { display: flex; align-items: center; gap: 9px; padding: 5px 0; border-bottom: 1px solid var(--border-soft); }
.cor-link:last-child { border-bottom: none; }
.cor-link-head { font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--text-faint); border-bottom: 1px solid var(--border); }
.cor-j { flex: 0 0 46px; font-family: var(--mono); font-size: 12px; font-weight: 800; color: #4f46e5; text-align: right; }
.cor-pair { flex: 1; min-width: 0; font-size: 12px; line-height: 1.35; }
.cor-pair b { cursor: pointer; }
.cor-pair b:hover { color: var(--blue); text-decoration: underline; }
.cor-link .cor-both { flex: 0 0 auto; }
.cor-sub { font-size: 11.5px; font-weight: 800; margin: 9px 0 2px; }
.cor-sub.up { color: #15803d; }
.cor-sub.dn { color: #b45309; }

/* Data coverage / readiness lens */
.cov-strip { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; margin: 4px 2px 12px; padding: 9px 12px; background: #f8fafc; border: 1px solid var(--border); border-radius: 9px; }
.cov-kpi { font-size: 13px; color: var(--text); }
.cov-kpi b { font-size: 15px; }
.cov-sect { margin-top: 14px; }
.cov-sect-h { font-size: 13.5px; font-weight: 800; color: var(--text); margin: 0 0 5px; }
.cov-tbl { width: 100%; border-collapse: collapse; font-size: 12px; }
.cov-tbl th { text-align: left; font-size: 10.5px; text-transform: uppercase; letter-spacing: .03em; color: var(--text-faint); font-weight: 700; padding: 4px 8px; border-bottom: 1px solid var(--border); }
.cov-tbl td { padding: 4px 8px; border-bottom: 1px solid var(--border-soft); white-space: nowrap; }
.cov-tbl tbody tr:hover { background: #f8fafc; }
.cov-name { font-weight: 600; color: var(--text); max-width: 260px; overflow: hidden; text-overflow: ellipsis; }
.cov-num { font-family: var(--mono); text-align: right; }
.cov-date { font-family: var(--mono); font-size: 11px; }
.cov-ok { color: #16a34a; }
.cov-no { color: #cbd5e1; }
.cov-reg { font-size: 10.5px; font-weight: 700; border-radius: 5px; padding: 1px 6px; }
.cov-reg.us { background: #eef4ff; color: #1d4ed8; }
.cov-reg.x { background: #fef3e8; color: #b45309; }
.cov-screened { opacity: .5; }
.cov-screened .cov-name { text-decoration: line-through; }

/* topic taxonomy drill-down: breadcrumb + group inspector rows */
.topic-crumb { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; margin: 8px 0 2px; }
.topic-crumb .crumb { display: inline-flex; align-items: center; gap: 5px; font-family: var(--mono); font-size: 12px; color: var(--text-dim);
  border: 1px solid var(--border); background: #fff; border-radius: 6px; padding: 3px 9px; cursor: pointer; }
.topic-crumb .crumb:hover { background: #f1f5f9; color: var(--text); }
.topic-crumb .crumb.on { color: var(--text); font-weight: 700; border-color: #cbd5e1; background: #f8fafc; }
.topic-crumb .crumb-sep { color: #cbd5e1; font-size: 12px; }
.grp-row { display: flex; align-items: center; gap: 7px; padding: 6px 4px; border-bottom: 1px solid var(--border-soft); cursor: pointer; border-radius: 5px; }
.grp-row:last-child { border-bottom: none; }
.grp-row:hover { background: #f1f5f9; }
.grp-lab { flex: 1; font-size: 12.5px; color: var(--text); }

/* top-N bubble count slider */
.topn-bar { display: flex; align-items: center; gap: 9px; margin: 8px 0 2px; flex-wrap: wrap; }
.topn-slider { width: 200px; max-width: 40vw; accent-color: var(--blue); cursor: pointer; }
.topn-val { font-size: 12px; color: var(--text); font-variant-numeric: tabular-nums; }
.ov-outs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
@media (max-width: 1000px) { .ov-outs { grid-template-columns: 1fr; } }
.ov-out { border: 1px solid var(--border); border-radius: 10px; padding: 11px 13px; cursor: pointer; background: #fff; }
.ov-out:hover { border-color: #bcd3f5; background: #f8fbff; }
.ov-out-h { display: flex; align-items: center; gap: 7px; font-size: 13px; }
.ov-out-h .ov-dir { margin-left: auto; font-weight: 700; font-size: 12px; }
.ov-out-hl { font-size: 12px; color: var(--text-dim); line-height: 1.45; margin-top: 5px; }
/* ── By-company lens ───────────────────────────────────────────────────────── */
.cv { display: flex; flex-direction: column; }
.cv-row { display: grid; grid-template-columns: 230px repeat(5, 44px) 78px 48px minmax(0, 1fr); gap: 4px; align-items: center; padding: 5px 0; border-bottom: 1px solid var(--border-soft); cursor: pointer; font-size: 12px; }
.cv-row:hover { background: #f8fafc; }
.cv-hdr { cursor: default; color: var(--text-faint); font-size: 10.5px; }
.cv-hdr:hover { background: none; }
.cv-hdr .smx-c { background: none; color: var(--text-faint); }
.cv-lab { display: flex; align-items: center; gap: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--text); }
.cv-row .smx-c { height: 22px; font-size: 10px; }
.cv-st { text-align: center; }
.cv-m { text-align: right; font-family: var(--mono); font-size: 11px; color: var(--text-dim); }

.cosel { font-family: var(--sans); font-size: 12px; font-weight: 600; color: var(--text); background: #fff; border: 1px solid var(--border); border-radius: 7px; padding: 5px 28px 5px 10px; cursor: pointer; max-width: 280px; }
.cosel:hover { border-color: #bcd3f5; }
.cosel:focus { outline: none; border-color: #2563eb; }
.cv-why { font-size: 11px; color: var(--text-dim); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-left: 14px; }
.cv-hdr .cv-why { color: var(--text-faint); }
.cv-why.quote { font-style: italic; color: var(--text-faint); }
.cv-why.llm { color: var(--text-dim); }

/* shared News widget (EMINews.block) — self-contained so it renders inside the company modal */
.newsblock{background:#fff;border:1px solid #e5e9f0;border-radius:12px;padding:13px 15px;margin-top:16px;}
.nb-h{display:flex;align-items:baseline;justify-content:space-between;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#64748b;margin-bottom:9px;}
.nb-more{font-size:11px;font-weight:600;color:#2563eb;text-decoration:none;text-transform:none;letter-spacing:0;}
.nb-more:hover{text-decoration:underline;}
.nb-sig{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.nb-dir{font-size:9.5px;font-weight:800;border-radius:5px;padding:1px 8px;}
.nb-tw{color:#047857;background:#ecfdf5;}.nb-hw{color:#b91c1c;background:#fef2f2;}.nb-wa{color:#b45309;background:#fffbeb;}
.nb-n{font-size:10.5px;color:#64748b;font-weight:600;}
.nb-spark{margin-left:auto;display:inline-flex;align-items:center;}
.nb-lead{font-size:13.5px;font-weight:600;color:#0f172a;line-height:1.4;margin-bottom:2px;}
.nb-so{font-size:12px;line-height:1.45;background:#f0f7ff;border:1px solid #dbeafe;border-radius:7px;padding:6px 9px;color:#1e3a5f;margin:6px 0 4px;}
.nb-item{display:flex;align-items:baseline;gap:8px;padding:5px 0;text-decoration:none;border-top:1px solid #eef1f5;}
.nb-item:first-of-type{border-top:none;}
.nb-dot{flex:none;width:5px;height:5px;border-radius:50%;background:#2563eb;transform:translateY(-2px);}
.nb-tt{flex:1;font-size:13px;color:#0f172a;line-height:1.35;}
.nb-item:hover .nb-tt{color:#2563eb;text-decoration:underline;}
.nb-src{flex:none;font-size:10.5px;color:#94a3b8;font-weight:600;white-space:nowrap;}
.nb-foot{font-size:10px;color:#94a3b8;margin-top:8px;}

/* ── Latest earnings insights (Latest tab) — daily talking-point feed ───────── */
.ec-wrap{max-width:1120px;margin:0 auto;padding:18px 20px 40px;}
.ec-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:16px;}
.ec-h2{font-size:20px;font-weight:700;color:var(--text);margin:0 0 3px;letter-spacing:-.01em;}
.ec-sub{font-size:12.5px;line-height:1.5;max-width:640px;}
.ec-count{flex:none;text-align:right;color:var(--text-faint);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.3;}
.ec-count b{display:block;font-size:26px;color:var(--accent);letter-spacing:-.02em;}
.ec-count span{display:block;}
.ec-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.ec-list.dimmed{opacity:.82;}
.ec-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 15px;display:flex;flex-direction:column;}
.ec-card.fresh{border-left:3px solid var(--accent);}
.ec-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;}
.ec-id{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;min-width:0;}
.ec-name{font-size:15px;font-weight:700;color:var(--text);}
.ec-tk{font-family:var(--mono);font-size:11px;color:var(--text-faint);}
.ec-core{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#0f5132;background:#dcfce7;border-radius:5px;padding:1px 5px;}
.ec-layer{font-size:10px;font-weight:600;color:var(--text-faint);background:var(--surface-2);border-radius:5px;padding:1px 6px;}
.ec-meta{flex:none;text-align:right;white-space:nowrap;}
.ec-per{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--blue);}
.ec-date{display:block;font-family:var(--mono);font-size:10.5px;color:var(--text-faint);margin-top:1px;}
.ec-bal{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0 4px;}
.ec-b{font-size:10.5px;font-weight:600;border-radius:6px;padding:2px 7px;}
.ec-b.up{color:#0f5132;background:#e7f6ec;}
.ec-b.down{color:#9a1c1c;background:#fdeaea;}
.ec-b.muted{color:var(--text-faint);background:var(--surface-2);}
.ec-reads{display:flex;flex-direction:column;}
.ec-read{padding:8px 0;border-top:1px solid var(--border-soft);}
.ec-read:first-child{border-top:none;}
.ec-read-h{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:3px;}
.ec-read-h b{font-size:12.5px;font-weight:600;color:var(--text);}
.ec-sig{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-radius:5px;padding:1px 6px;}
.ec-sig.up{color:#0f5132;background:#dcfce7;}
.ec-sig.down{color:#9a1c1c;background:#fde2e2;}
.ec-sig.flat{color:var(--text-dim);background:var(--surface-2);}
.ec-state{font-family:var(--mono);font-size:9.5px;color:var(--text-faint);background:var(--surface-2);border-radius:4px;padding:1px 5px;}
.ec-why{font-size:12px;line-height:1.5;color:var(--text-dim);}
.ec-more{align-self:flex-start;margin-top:8px;background:none;border:none;color:var(--blue);font-size:11.5px;font-weight:600;cursor:pointer;padding:2px 0;}
.ec-more:hover{text-decoration:underline;}
.ec-div{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);margin:26px 0 12px;padding-bottom:6px;border-bottom:1px solid var(--border);}
.ec-restnote{font-size:11.5px;margin-top:12px;text-align:center;}
@media(max-width:720px){.ec-list{grid-template-columns:1fr;}.ec-head{flex-direction:column;gap:8px;}.ec-count{text-align:left;}.ec-count b{display:inline;font-size:18px;}.ec-count span{display:inline;margin-left:5px;}}
/* evidence-weight badge: only shown when a read rests on a single sentence */
.ec-thin{font-size:9.5px;font-weight:700;letter-spacing:.03em;color:#92400e;background:#fef3c7;border-radius:4px;padding:1px 5px;text-transform:uppercase;}
