:root {
  --v-ink:#14181F; --v-body:#374151; --v-grey:#6B7380; --v-rule:#E4E7EB; --v-rule2:#D9DEE3;
  --v-accent:#0F766E; --v-primary:#0F766E; --v-wash2:#F4F6F7; --v-wash:rgba(15,118,110,.06); --v-tint:#F4F9F8; --v-sel:#EAF4F2; --v-paper:#FFFFFF;
  --v-c-plat:#0B4F49; --v-c-strat:#2E9A8C; --v-c-grow:#9ED3C7; --v-c-s4:#A8D5CB; --v-c-other:#CDD3D1;
  --v-tr-up:#188F6B; --v-tr-up-bg:rgba(18,164,122,.12); --v-tr-dn:#9B2C2C; --v-tr-dn-bg:rgba(155,44,44,.10); --v-tr-flat:#9AA1AC;
  --v-dash:#B4BAC3; --v-tag:#3A4250; --v-tag-bg:#EEF0F3; --v-reg-hd:#6F7886;
  --v-chip-line:#8FD9C4; --v-chip-wash:#ECFAF5; --v-theme-line:#C3C9D1;
  --v-neon:#53D8B8; --v-on-ink:#F9FAFB; --v-on-ink2:#8C94A1; --v-ink-field:#1B2029; --v-ink-line:#3A4149;
  --v-pad:clamp(16px, 3vw, 40px);
  --v-text:Inter,'Helvetica Neue','Segoe UI',Roboto,Helvetica,Arial,sans-serif; --v-frame:1240px;
  --v-1:4px; --v-2:8px; --v-3:12px; --v-4:16px; --v-5:24px; --v-6:32px; --v-7:48px;
  --v-at-rule:2px solid var(--v-accent); --v-sm-bullet:#333333;
  --v-fs-title:32px; --v-fw-title:700; --v-lh-title:1.2; --v-ls-title:-.5px;
  --v-fs-section:15px; --v-fw-section:600; --v-lh-section:1.35; --v-ls-section:.06em;
  --v-fs-label:11px; --v-fw-label:600; --v-lh-label:1.35; --v-ls-label:.08em;
  --v-fs-sublabel:11px; --v-fw-sublabel:600; --v-lh-sublabel:1.35; --v-ls-sublabel:.08em;
  --v-fs-nav:11px; --v-fw-nav:600; --v-lh-nav:1.35; --v-ls-nav:.08em;
  --v-fs-tab:15px; --v-fw-tab:500; --v-lh-tab:1.3; --v-ls-tab:0;
  --v-fs-headline:16.5px; --v-fw-headline:600; --v-lh-headline:1.35; --v-ls-headline:0;
  --v-fs-row-title:14px; --v-fw-row-title:600; --v-lh-row-title:1.35; --v-ls-row-title:0;
  --v-fs-item:14px; --v-fw-item:400; --v-lh-item:1.35; --v-ls-item:0;
  --v-fs-body:14.5px; --v-fw-body:400; --v-lh-body:1.55; --v-ls-body:0;
  --v-fs-row-meta:13px; --v-fw-row-meta:400; --v-lh-row-meta:1.45; --v-ls-row-meta:0;
  --v-fs-number:14.5px; --v-fw-number:600; --v-lh-number:1.35; --v-ls-number:0;
  --v-fs-small:12.5px; --v-fw-small:400; --v-lh-small:1.4; --v-ls-small:0;
  --v-fs-chip:9.5px; --v-fw-chip:400; --v-lh-chip:11px; --v-ls-chip:.06em;
  --v-fs-button:13px; --v-fw-button:600; --v-lh-button:1; --v-ls-button:.02em;
  --v-fs-display:44px; --v-fw-display:700; --v-lh-display:1.12; --v-ls-display:-1px;
  --v-fs-lede:18px; --v-fw-lede:400; --v-lh-lede:1.55; --v-ls-lede:0;
  --v-fs-name:18px; --v-fw-name:700; --v-lh-name:1.25; --v-ls-name:0;
}
.v-ts-title { font-family:var(--v-text); font-size:var(--v-fs-title); font-weight:var(--v-fw-title); line-height:var(--v-lh-title); letter-spacing:var(--v-ls-title); }
.v-ts-section { font-family:var(--v-text); font-size:var(--v-fs-section); font-weight:var(--v-fw-section); line-height:var(--v-lh-section); letter-spacing:var(--v-ls-section); text-transform:uppercase; }
.v-ts-label { font-family:var(--v-text); font-size:var(--v-fs-label); font-weight:var(--v-fw-label); line-height:var(--v-lh-label); letter-spacing:var(--v-ls-label); text-transform:uppercase; }
.v-ts-sublabel { font-family:var(--v-text); font-size:var(--v-fs-sublabel); font-weight:var(--v-fw-sublabel); line-height:var(--v-lh-sublabel); letter-spacing:var(--v-ls-sublabel); text-transform:uppercase; }
.v-ts-nav { font-family:var(--v-text); font-size:var(--v-fs-nav); font-weight:var(--v-fw-nav); line-height:var(--v-lh-nav); letter-spacing:var(--v-ls-nav); text-transform:uppercase; }
.v-ts-tab { font-family:var(--v-text); font-size:var(--v-fs-tab); font-weight:var(--v-fw-tab); line-height:var(--v-lh-tab); letter-spacing:var(--v-ls-tab); }
.v-ts-headline { font-family:var(--v-text); font-size:var(--v-fs-headline); font-weight:var(--v-fw-headline); line-height:var(--v-lh-headline); letter-spacing:var(--v-ls-headline); }
.v-ts-row-title { font-family:var(--v-text); font-size:var(--v-fs-row-title); font-weight:var(--v-fw-row-title); line-height:var(--v-lh-row-title); letter-spacing:var(--v-ls-row-title); }
.v-ts-item { font-family:var(--v-text); font-size:var(--v-fs-item); font-weight:var(--v-fw-item); line-height:var(--v-lh-item); letter-spacing:var(--v-ls-item); }
.v-ts-body { font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); }
.v-ts-row-meta { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); }
.v-ts-number { font-family:var(--v-text); font-size:var(--v-fs-number); font-weight:var(--v-fw-number); line-height:var(--v-lh-number); letter-spacing:var(--v-ls-number); }
.v-ts-small { font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); }
.v-ts-chip { font-family:var(--v-text); font-size:var(--v-fs-chip); font-weight:var(--v-fw-chip); line-height:var(--v-lh-chip); letter-spacing:var(--v-ls-chip); }
.v-ts-button { font-family:var(--v-text); font-size:var(--v-fs-button); font-weight:var(--v-fw-button); line-height:var(--v-lh-button); letter-spacing:var(--v-ls-button); }
.v-ts-display { font-family:var(--v-text); font-size:var(--v-fs-display); font-weight:var(--v-fw-display); line-height:var(--v-lh-display); letter-spacing:var(--v-ls-display); }
.v-ts-lede { font-family:var(--v-text); font-size:var(--v-fs-lede); font-weight:var(--v-fw-lede); line-height:var(--v-lh-lede); letter-spacing:var(--v-ls-lede); }
.v-ts-name { font-family:var(--v-text); font-size:var(--v-fs-name); font-weight:var(--v-fw-name); line-height:var(--v-lh-name); letter-spacing:var(--v-ls-name); }
/* ---- base + frame ---------------------------------------------------- */
body.v2 { margin:0; background:var(--v-paper); color:var(--v-ink); font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; font-variant-numeric:tabular-nums;
  -webkit-font-smoothing:antialiased; }
.v-frame { max-width:var(--v-frame); margin:0 auto; padding:0 var(--v-pad) var(--v-7); }
.v-frame * { font-variant-numeric:tabular-nums; }
.v-frame a { color:inherit; text-decoration:none; }
.v-frame a:hover, .v-frame a:focus-visible { color:var(--v-accent); }
.v-frame :focus-visible { outline:2px solid var(--v-accent); outline-offset:2px; }
.v-frame h1, .v-frame h2, .v-frame h3, .v-frame p, .v-frame ul { margin:0; }
.v-frame textarea { font-family:inherit; }
/* sectors always green (spec): a linked name beats .v-frame a's colour:inherit */
/* THE INLINE SECTOR (Kyle 2026-10-19 13:02): a sector or subsector named inline - a feed row, a Briefing or Calendar row,
   a Read paragraph, a list - is plain BOLD Deep Teal text linked to its page, never a box; the boxed chip (.v-tg-sector)
   is only the Deal Register's SECTOR column and the Read's routing chip */
.v-sec, .v-frame a.v-sec { color:var(--v-accent); font-weight:700; }
.v-subsec, .v-frame a.v-subsec { color:var(--v-accent); font-weight:700; }
.v-frame a.v-sec:hover, .v-frame a.v-subsec:hover { text-decoration:underline; text-underline-offset:3px; }
.v-dim { color:var(--v-grey); }
.v-ink { color:var(--v-ink); }
/* THE TEAL RULE (Kyle via Cowork 2026-10-15 12:15, option A): in SUMMARY BLOCKS - cards / Coverage boxes, the
   scoreboard, Notable meta lines, report and conference rows' meta, the theme card's Sources line - EVERY LINKED name
   (sector, subsector, firm, company, deal) is teal; an unlinked name stays ink; labels stay grey. The register is the
   one exception (only Sector + Subsector teal there). */
.v-frame .v-card a[href], .v-frame .v-sb-line a[href], .v-frame .v-nt-m a[href], .v-frame .v-rep-m a[href],
.v-frame .v-thm-s a[href] { color:var(--v-accent); }
.v-frame .v-card a[href]:hover, .v-frame .v-sb-line a[href]:hover, .v-frame .v-nt-m a[href]:hover,
.v-frame .v-rep-m a[href]:hover, .v-frame .v-thm-s a[href]:hover {
  text-decoration:underline; text-underline-offset:3px; }
.v-chev { display:inline-block; color:var(--v-accent); transition:transform .12s ease; }
@media (prefers-reduced-motion: reduce) { .v-chev { transition:none; } }

/* ---- the grid: two equal columns, 48px gap, one shared right x --------- */
.v-2col, .ui-2col { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:var(--v-7); row-gap:0; }
.v-2col > *, .ui-2col > * { min-width:0; }
@media (max-width:820px) { .v-2col, .ui-2col { grid-template-columns:minmax(0,1fr); } }

/* ---- masthead (Cowork 2026-10-15 01:15: back to the live site's full dark bar): the lockup | search | Sign in +
   Get trial access on ink across the frame, the neon rule under it, then the main nav (label caps) ------------ */
.v-mh { display:grid; grid-template-columns:1fr minmax(0,320px) 1fr; align-items:center; gap:var(--v-3) var(--v-5);
  background:var(--v-ink); margin:0 calc(-1 * var(--v-pad)); padding:14px var(--v-5); }
.v-mh > a { justify-self:start; }
.v-mh img { display:block; height:auto; max-width:min(310px,48vw); border:0; }
.v-neon { height:4px; background:var(--v-neon); margin:0 calc(-1 * var(--v-pad)); }
.v-mh-r { justify-self:end; display:flex; align-items:center; gap:var(--v-4); white-space:nowrap; }
.v-frame .v-mh-r .v-signin { font-family:var(--v-text); font-size:var(--v-fs-nav); font-weight:var(--v-fw-nav); line-height:var(--v-lh-nav); letter-spacing:var(--v-ls-nav); text-transform:uppercase; color:var(--v-on-ink); }
.v-frame .v-mh-r .v-signin:hover, .v-frame .v-mh-r .v-signin:focus-visible { color:var(--v-neon); }
.v-mh .v-btn:not(.v-primary) { background:transparent; color:var(--v-neon); border-color:var(--v-neon); }
.v-frame .v-mh a.v-btn:not(.v-primary):hover { background:var(--v-neon); color:var(--v-ink); border-color:var(--v-neon); }
.v-mh .th-visitor { display:inline-flex; align-items:center; gap:var(--v-4); }
.v-mh .th-acct-s { font-family:var(--v-text); font-size:var(--v-fs-nav); font-weight:var(--v-fw-nav); line-height:var(--v-lh-nav); letter-spacing:var(--v-ls-nav); text-transform:uppercase; color:var(--v-on-ink); }
.v-ms { position:relative; display:flex; align-items:center; gap:var(--v-2); background:var(--v-ink-field);
  border:1px solid var(--v-ink-line); border-radius:3px; padding:7px 10px; }
.v-ms:focus-within { border-color:var(--v-neon); }
.v-ms .v-colon { line-height:1; }
.v-ms input { flex:1; min-width:0; border:0; outline:0; background:transparent; font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-on-ink); padding:0; }
.v-ms input::placeholder { color:var(--v-on-ink2); }
.v-frame .v-ms input:focus-visible { outline:0; }   /* one highlight: the box's neon border only (Kyle 2026-10-21) */
.v-ms kbd { font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; color:var(--v-on-ink2); border:1px solid var(--v-ink-line); border-radius:3px; padding:0 6px; }
.v-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
/* THE SEARCH BOX'S POP-OUT (search_box; site_ui.SEARCH_DROP_JS draws it) - ONE for every box, the masthead's and every
   command bar's: a group's quiet label (THE WINDOW's label at its right when its counts are the window's), a row a
   result - its name, its meta at the right -, "All N results" under a rule */
.v-sd { position:absolute; left:-1px; right:-1px; top:calc(100% + 6px); background:var(--v-paper); text-align:left;
  border:1px solid var(--v-rule2); border-radius:3px; box-shadow:0 8px 24px rgba(20,24,31,.12); z-index:60; padding:var(--v-1) 0;
  max-height:70vh; overflow:auto; cursor:default; }
.v-sd[hidden] { display:none; }
.v-sd-g { display:flex; justify-content:space-between; gap:var(--v-3); font-family:var(--v-text); font-size:var(--v-fs-label); font-weight:var(--v-fw-label); line-height:var(--v-lh-label); letter-spacing:var(--v-ls-label); text-transform:uppercase; color:var(--v-grey); padding:9px 12px 4px; }
.v-frame .v-sd a.v-sd-o { display:flex; justify-content:space-between; gap:var(--v-3); padding:var(--v-2) 12px; font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-ink); }
.v-sd-o .v-sd-n { font-weight:600; min-width:0; overflow-wrap:anywhere; }
.v-sd-o .v-sd-k { color:var(--v-grey); white-space:nowrap; }
.v-frame .v-sd a.v-sd-o.act, .v-frame .v-sd a.v-sd-o:hover { background:var(--v-wash); }
.v-frame .v-sd a.v-sd-o.act .v-sd-n { color:var(--v-accent); }
.v-frame .v-sd a.v-sd-all { border-top:1px solid var(--v-rule); }
@media (max-width:760px) { .v-mh { grid-template-columns:minmax(0,1fr) auto; } .v-ms { grid-column:1 / -1; grid-row:2; } }
.v-mnav { display:flex; flex-wrap:wrap; gap:var(--v-1) var(--v-5); padding:var(--v-3) 0; border-bottom:1px solid var(--v-rule); }
.v-mnav a { font-family:var(--v-text); font-size:var(--v-fs-nav); font-weight:var(--v-fw-nav); line-height:var(--v-lh-nav); letter-spacing:var(--v-ls-nav); text-transform:uppercase; color:var(--v-grey); padding:var(--v-1) 0; border-bottom:2px solid transparent; }
.v-mnav a.on, .v-mnav a:hover, .v-mnav a:focus-visible { color:var(--v-ink); border-bottom-color:var(--v-accent); }

/* ---- buttons: ONE primary (teal) per page, the rest outline ------------ */
.v-btn, .v-btns a.th-up { display:inline-flex; align-items:center; gap:var(--v-2); font-family:var(--v-text); font-size:var(--v-fs-button); font-weight:var(--v-fw-button); line-height:var(--v-lh-button); letter-spacing:var(--v-ls-button); text-transform:none; padding:var(--v-2) var(--v-4);
  border:1px solid var(--v-ink); border-radius:3px; color:var(--v-ink); background:var(--v-paper); cursor:pointer; }
.v-frame a.v-btn:hover, .v-btn:hover { color:var(--v-accent); border-color:var(--v-accent); }
.v-btn.v-primary, .v-btns a.th-up { background:var(--v-primary); border-color:var(--v-primary); color:var(--v-paper); }
.v-frame a.v-btn.v-primary:hover, .v-btn.v-primary:hover, .v-frame .v-btns a.th-up:hover { color:var(--v-paper); filter:brightness(1.1); }
.v-btn[hidden] { display:none; }

/* ---- page title + grey count, then the in-page nav --------------------- */
.v-ph { padding-top:var(--v-6); }
.v-title { font-family:var(--v-text); font-size:var(--v-fs-title); font-weight:var(--v-fw-title); line-height:var(--v-lh-title); letter-spacing:var(--v-ls-title); text-transform:none; color:var(--v-ink); }
.v-title .v-dot { color:var(--v-accent); }
.v-ph-sub { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); margin-top:var(--v-1); }
.v-frame .v-ph-sub a { color:var(--v-grey); }
.v-frame .v-ph-sub a:hover, .v-frame .v-ph-sub a:focus-visible { color:var(--v-accent); text-decoration:underline; text-underline-offset:3px; }
.v-frame a.v-plink { color:var(--v-accent); }
.v-frame a.v-plink:hover { text-decoration:none; }
.v-sb-line .v-tr, .v-sb-line .v-flat, .v-card-n .v-tr, .v-card-n .v-flat { margin-left:var(--v-2); }
.v-crumb { font-family:var(--v-text); font-size:var(--v-fs-label); font-weight:var(--v-fw-label); line-height:var(--v-lh-label); letter-spacing:var(--v-ls-label); text-transform:uppercase; color:var(--v-grey); margin-bottom:var(--v-2); }
.v-crumb a { color:var(--v-grey); font-weight:400; }
.v-crumb .v-crumb-sl { color:var(--v-rule2); padding:0 6px; }
.v-crumb .v-crumb-on { color:var(--v-accent); }

/* ---- section header: green caps + a rule; ONE per section -------------- */
.v-section { margin-top:var(--v-7); }
.v-sh { display:flex; align-items:flex-end; justify-content:space-between; gap:var(--v-4); padding-bottom:var(--v-2);
  border-bottom:1px solid var(--v-rule2); margin-bottom:var(--v-4); }
.v-sh h2 { font-family:var(--v-text); font-size:var(--v-fs-section); font-weight:var(--v-fw-section); line-height:var(--v-lh-section); letter-spacing:var(--v-ls-section); text-transform:uppercase; color:var(--v-accent); display:flex; align-items:flex-end; }
.v-sh h2 a { color:var(--v-accent); display:inline-flex; align-items:flex-end; gap:6px; }
/* the label word's teal segment ON the hairline (Kyle via Cowork 2026-10-15 11:40-12:08; the email's sector head):
   2px, exactly the word's width, its lower pixel on the 1px rule (the .v-sh padding + the rule below the h2) */
.v-sh-w { position:relative; }
.v-sh-w::after { content:""; position:absolute; left:0; right:var(--v-ls-section); bottom:calc(-1 * var(--v-2) - 1px); height:2px;
  background:var(--v-accent); }
.v-sh-r { display:flex; align-items:center; gap:var(--v-3); }
.v-sh-r .v-note { font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; color:var(--v-grey); }
/* a collapsed section (collapsible_section): its header is the <summary>, the chevron after the count turns open */
.v-coll > summary { list-style:none; cursor:pointer; }
.v-coll > summary::-webkit-details-marker { display:none; }
.v-coll:not([open]) > summary .v-sh { margin-bottom:0; }
.v-coll[open] > summary .v-chev { transform:rotate(90deg); }

/* ---- the sub-label: the label caps in dark ink, no rule, no green (Kyle 2026-10-16 13:19; was quiet grey) ---- */
.v-lab { font-family:var(--v-text); font-size:var(--v-fs-sublabel); font-weight:var(--v-fw-sublabel); line-height:var(--v-lh-sublabel); letter-spacing:var(--v-ls-sublabel); text-transform:uppercase; color:var(--v-ink); margin:0 0 var(--v-2) 0; display:flex; align-items:baseline; gap:6px; }
.v-lab a { color:var(--v-ink); display:inline-flex; align-items:baseline; gap:6px; }
/* THE SUB-LABEL'S NOTE (sub_label(note=); Kyle 2026-10-18 12:29: the trend's window, "vs Sep 1–18", once per box or
   block): the section header's grey note face, at the label row's right end */
.v-lab .v-note { font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; color:var(--v-grey); margin-left:auto; white-space:nowrap; }
.v-lab:has(> .v-note) { flex-wrap:wrap; column-gap:var(--v-2); }
.v-frame .v-lab a:hover, .v-frame .v-lab a:focus-visible { color:var(--v-accent); }
/* A BLOCK'S HEAD IS A SECTION HEADER (Kyle 2026-10-21): the sub-label heading a block of rows - a column's box (Latest
   Deals, League Tables, Intelligence, Calendar), a rail block, a type section (Reports, Insights, Videos, Podcasts, the
   conference columns) - takes the section header's face and deep teal; the scoreboard's box labels, table heads and
   chart labels keep the small label */
.v-cols-l > .v-lab, .v-cols-r > .v-lab, .v-rb > .v-lab, .v-lg > .v-lab, .v-qh > .v-lab, .v-msec > .v-lab,
.v-frame .v-cols-l > .v-lab a, .v-frame .v-cols-r > .v-lab a, .v-frame .v-rb > .v-lab a, .v-frame .v-lg > .v-lab a,
.v-frame .v-qh > .v-lab a, .v-frame .v-msec > .v-lab a { font-family:var(--v-text); font-size:var(--v-fs-section); font-weight:var(--v-fw-section); line-height:var(--v-lh-section); letter-spacing:var(--v-ls-section); text-transform:uppercase; color:var(--v-accent); }
.v-frame .v-cols-l > .v-lab a:hover, .v-frame .v-cols-r > .v-lab a:hover, .v-frame .v-rb > .v-lab a:hover,
.v-frame .v-lg > .v-lab a:hover, .v-frame .v-qh > .v-lab a:hover, .v-frame .v-msec > .v-lab a:hover { color:var(--v-ink); }
.v-hov-chev { color:var(--v-accent); opacity:0; transition:opacity .12s ease, transform .12s ease; }
a:hover > .v-hov-chev, a:focus-visible > .v-hov-chev { opacity:1; transform:translateX(3px); }
@media (hover:none) { .v-hov-chev { opacity:1; } }
@media (prefers-reduced-motion: reduce) { .v-hov-chev { transition:none; } }

/* ---- scoreboard: one row of equal compact boxes, "Name · N" ------------ */
.v-sb { margin-top:var(--v-5); }
.v-sb-row { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); border-top:2px solid var(--v-ink);
  border-bottom:1px solid var(--v-rule2); }
.v-sb-box { padding:var(--v-3) var(--v-4) var(--v-3) var(--v-4); border-left:1px solid var(--v-rule); min-width:0; }
.v-sb-box:first-child { border-left:0; padding-left:0; }
.v-sb-box .v-lab { margin-bottom:var(--v-1); }
.v-sb-line { font-family:var(--v-text); font-size:var(--v-fs-number); font-weight:var(--v-fw-number); line-height:var(--v-lh-number); letter-spacing:var(--v-ls-number); text-transform:none; color:var(--v-ink); display:block; overflow-wrap:anywhere; }
.v-sb-line .v-n { color:var(--v-grey); font-weight:400; }
.v-sb-line .v-sw { display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:6px; }
/* a "Name · N [pill]" line: ONE line in every box (Kyle's Part C review, 2026-10-18: "Kaizen Equity
   Partners · 6" pushed "· latest Sep 17" onto its own line, out of step with the other columns) - the count and its
   tail never wrap or shrink; a name too long for the box ends in an ellipsis (its full text in the title) */
.v-sb-line.v-sb-t { display:flex; align-items:baseline; white-space:nowrap; overflow-wrap:normal; min-width:0; }
.v-sb-nm { flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.v-sb-t > :not(.v-sb-nm) { flex:none; white-space:nowrap; }
.v-sb-box > .v-note { display:block; font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; color:var(--v-grey); margin-top:var(--v-1); }
/* THE SCOREBOARD'S LINKED NAMES (Kyle 2026-10-19 20:33): every teal linked name in a box - firms, sectors, subsectors,
   companies, the Largest deals targets - regular weight, not bold; the teal and the link kept, a teal underline on hover.
   Counts, deltas and labels unchanged. */
.v-frame .v-sb a, .v-frame .v-sb a.v-sec, .v-frame .v-sb a.v-subsec, .v-frame .v-sb a.v-plink { font-weight:400; }
/* THE SECTOR / SUBSECTOR PAIR (Kyle 2026-10-21, site-wide): wherever a deal's sector and subsector show - the Deal
   Register's cells, Latest Deals, the deal record's key terms, the hubs' lists, the cards, the Intelligence and
   Calendar rows - the SECTOR is bold (teal link), the SUBSECTOR regular weight (still teal). The Read keeps its own
   rule (a name inside the bold headline or opening phrase follows it) */
.v-frame :is(.v-rr, .v-rr-hd, .v-nt, .v-kt, .v-er, .v-card, .v-rep, .v-conf, .v-lg, .v-reg, .v-list, .v-tags) .v-subsec,
.v-frame :is(.v-rr, .v-rr-hd, .v-nt, .v-kt, .v-er, .v-card, .v-rep, .v-conf, .v-lg, .v-reg, .v-list, .v-tags) a.v-subsec { font-weight:400; }
.v-frame .v-sb a:hover { text-decoration:underline; text-decoration-color:var(--v-accent); text-underline-offset:3px; }
/* THE BLOCK ROWS in a scoreboard box (block_rows, batch 11): a Deal mix row's swatch, a count's trend pill */
.v-vol-m .v-sw { display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:6px; }
.v-vol-n .v-tr, .v-vol-n .v-flat { margin-left:var(--v-2); }
@media (max-width:760px) { .v-sb-row { grid-auto-flow:row; grid-template-columns:repeat(2, minmax(0,1fr)); }
  .v-sb-box:nth-child(odd) { border-left:0; padding-left:0; } }

/* ---- What's moving: equal-height boxes on the tint panel --------------- */
.v-mv { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); gap:var(--v-5); background:var(--v-tint);
  border-top:2px solid var(--v-accent); padding:var(--v-5); align-items:stretch; }
.v-mv-box { min-width:0; display:flex; flex-direction:column; }
.v-mv-k { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); }
.v-mv-k .v-sec, .v-mv-k .v-subsec { font-weight:600; }
.v-mv-h { font-family:var(--v-text); font-size:var(--v-fs-headline); font-weight:var(--v-fw-headline); line-height:var(--v-lh-headline); letter-spacing:var(--v-ls-headline); text-transform:none; color:var(--v-ink); margin-top:6px; }
.v-mv-b { font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; color:var(--v-body); margin-top:var(--v-2); }
.v-mv-box > .v-mv-b:not(:last-child) { margin-bottom:var(--v-3); }
@media (max-width:760px) { .v-mv { grid-auto-flow:row; grid-template-columns:minmax(0,1fr); } }

/* ---- THE READ (Kyle's MASTER SPEC, 2026-10-19 11:11, and his two mockups, 11:16): ONE component wherever a Read
   shows (moving_band) - no coloured ground, nothing clamped or cut; the prose keeps its links. THE COLUMN: several
   Reads side by side in A PURE GRID (Kyle 2026-10-19 14:26 - read_rows: 1-3 Reads that many equal columns, exactly 4 a
   2x2, 5 or more rows of at most 3 balanced so no row holds one (5 = 3+2, 7 = 3+2+2), every row's cells equal; no
   lead over a row; one column under ~720px). Each the chip at the top left (the Read's chip as before - sector green
   outline and caps - minus its chevron), the headline in bold ink, then THE AGENT TEXT (the 2px teal rule - the ONLY
   vertical line: no band or container border) round the paragraph in slate and, a paragraph below, the action line -
   a teal "›" and the directive in ink, its opening phrase bold. No rule under a column; the provenance footer once,
   small grey caps, FLUSH RIGHT directly under the grid, no divider above it (Kyle 14:26). THE PAGE READ (the Reports and Conferences pages, .v-rd-pg): one
   full-width Read with NO box or outline, as Market's (Cowork's review 2026-10-19: the only vertical line is the 1px
   teal rule beside the AI text) - the headline bold and inline, the paragraph, the picks row, the action line; the
   footer at the right, as the column's */
.v-rd-hd { display:flex; flex-wrap:wrap; justify-content:flex-start; align-items:center; gap:var(--v-1) var(--v-3);
  margin-bottom:var(--v-2); }
.v-rd-chip { font-family:var(--v-text); font-size:var(--v-fs-label); font-weight:var(--v-fw-label); line-height:var(--v-lh-label); letter-spacing:var(--v-ls-label); text-transform:uppercase; color:var(--v-accent); border:1px solid var(--v-accent); border-radius:3px;
  padding:2px 7px; white-space:nowrap; }
@media (max-width:760px) { .v-rd-chip { white-space:normal; min-width:0; } }   /* a long chip wraps inside its column */
.v-frame a.v-rd-chip { color:var(--v-accent); }
.v-rd-h { font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; font-weight:700; color:var(--v-ink); margin:0 0 var(--v-2) 0; }   /* the WHOLE headline sentence bold Charcoal on the site (Kyle 2026-10-20 16:35, typography pass; the action line keeps its opening-words bold) */
.v-rd-h.v-rd-hl { font-weight:400; }   /* a headline with no short title: only its head_cut words bold (Kyle 2026-10-21 08:58) */
.v-rd-h strong { font-weight:700; color:var(--v-ink); }
.v-rd-p { font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; color:var(--v-body); }
.v-rd-p strong { font-weight:700; color:var(--v-ink); }
.v-rd-h .v-sec, .v-rd-h .v-subsec, .v-rd-p strong .v-sec, .v-rd-p strong .v-subsec,
.v-frame .v-rd-h a.v-sec, .v-frame .v-rd-h a.v-subsec, .v-frame .v-rd-p strong a.v-sec, .v-frame .v-rd-p strong a.v-subsec,
.v-rd-mv .v-sec, .v-rd-mv .v-subsec, .v-frame .v-rd-mv a.v-sec, .v-frame .v-rd-mv a.v-subsec
  { font-weight:inherit; }      /* the action line: a sector name (still green) is bold only inside the opening phrase */
.v-frame a.v-rd-a { color:inherit; text-decoration:none; }      /* no underline anywhere in the Read (Kyle 2026-10-20 16:35): weight and colour only */
.v-frame a.v-rd-a:hover, .v-frame a.v-rd-a:focus-visible { color:var(--v-accent); text-decoration:none; }
.v-frame .v-rd-mv { margin-top:var(--v-3); color:var(--v-ink); }
.v-rd-mv .v-chev { font-weight:700; margin-right:4px; font-size:1.25em; line-height:0; vertical-align:-0.06em; }   /* 1.25x, centred on the text (Kyle 2026-10-20 21:32) */
.v-rd-g { display:grid; grid-template-columns:repeat(6, minmax(0,1fr)); column-gap:var(--v-5); row-gap:var(--v-5); }
.v-rp { display:inline-flex; align-items:baseline; gap:var(--v-2); white-space:nowrap; }   /* THE READ PAGER (10-22) */
.v-rp-b { background:none; border:0; padding:0 2px; font:inherit; font-size:18px; line-height:1; font-weight:700;
  color:var(--v-accent); cursor:pointer; }
.v-rp-b:disabled { color:var(--v-rule2); cursor:default; }
.v-rp-n { font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; font-weight:400; color:var(--v-grey); text-transform:uppercase; letter-spacing:.04em; }
.v-rd-box[hidden] { display:none; }
.v-rd-g > .v-rd-box { min-width:0; grid-column:span 6; }     /* a row's cells: 6 / its size (read_rows) - equal widths */
.v-rd-g > .v-rd-w3 { grid-column:span 3; }
.v-rd-g > .v-rd-w2 { grid-column:span 2; }
.v-rd-prov { font-family:var(--v-text); font-size:var(--v-fs-label); font-weight:var(--v-fw-label); line-height:var(--v-lh-label); letter-spacing:var(--v-ls-label); text-transform:uppercase; color:var(--v-grey); opacity:.8; text-align:right; margin-top:var(--v-3); letter-spacing:.06em; }
.v-stamp { font-family:var(--v-text); font-size:11px; text-transform:uppercase; white-space:nowrap; }
.v-stamp-a { color:#0F766E; font-weight:600; letter-spacing:.04em; }
.v-stamp-b { color:#5F6875; font-weight:400; letter-spacing:.02em; }
@media (max-width:720px) { .v-rd-g { grid-template-columns:minmax(0,1fr); }
  .v-rd-g > .v-rd-box { grid-column:1 / -1; } }
/* THE READ'S PICKS ROW (Kyle's reference page, approved via Cowork 2026-10-18 - the Reports and Conferences pages'
   Reads): under the paragraph, the sub-label ("Worth reading" / "Worth the trip") over 2-3 cards side by side on the
   paper ground - the title (row-title, ink), the meta line (grey; the publisher and the sector green), the one-line
   why (ink); one column on a phone. Under the column's agent text (its paragraph and action line) */
.v-rd-pks { margin-top:var(--v-4); }
.v-rd-pk-g { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:var(--v-3); }
.v-rd-pk { background:var(--v-paper); border:1px solid var(--v-rule); border-radius:3px; padding:var(--v-3); min-width:0; }
.v-rd-pk-t { font-family:var(--v-text); font-size:var(--v-fs-row-title); font-weight:var(--v-fw-row-title); line-height:var(--v-lh-row-title); letter-spacing:var(--v-ls-row-title); text-transform:none; font-weight:700; color:var(--v-ink); display:block; overflow-wrap:anywhere; }
.v-frame a.v-rd-pk-t { color:var(--v-ink); }
.v-frame a.v-rd-pk-t:hover, .v-frame a.v-rd-pk-t:focus-visible { color:var(--v-accent); }
.v-rd-pk-m { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); margin:2px 0 6px 0; overflow-wrap:anywhere; }
.v-rd-pub, .v-frame a.v-rd-pub { color:var(--v-accent); font-weight:600; }
.v-frame a.v-rd-pub:hover { text-decoration:none; }
.v-rd-pk-w { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-ink); }
@media (max-width:560px) { .v-rd-pk-g { grid-template-columns:minmax(0,1fr); } }

/* ---- charts ------------------------------------------------------------- */
.v-c1 { background:var(--v-c-plat); } .v-c2 { background:var(--v-c-strat); } .v-c3 { background:var(--v-c-grow); }
.v-c4 { background:var(--v-c-s4); } .v-c5 { background:var(--v-c-other); }
.v-chart { min-width:0; }
.v-bars { display:flex; align-items:flex-end; gap:var(--v-2); height:200px; border-bottom:1px solid var(--v-rule2); }
.v-bar { flex:1 1 0; min-width:0; height:100%; display:flex; flex-direction:column; justify-content:flex-end; align-items:stretch; }
.v-bar-n { font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; color:var(--v-ink); text-align:center; padding-bottom:var(--v-1); }
.v-bar-s { display:flex; flex-direction:column-reverse; }
.v-bar-s i { display:block; }
.v-bar-x { display:flex; gap:var(--v-2); }
.v-bar-x span { flex:1 1 0; min-width:0; font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; color:var(--v-grey); text-align:center; padding-top:var(--v-1); }
.v-key { display:flex; flex-wrap:wrap; gap:var(--v-1) var(--v-4); margin-top:var(--v-3); font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; color:var(--v-grey); }
.v-key span { display:inline-flex; align-items:center; gap:6px; }
.v-key i { display:inline-block; width:10px; height:10px; border-radius:2px; }
.v-hb { display:grid; grid-template-columns:max-content minmax(0,1fr); column-gap:var(--v-4); row-gap:6px; align-items:center; }
.v-hb-n { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-ink); overflow-wrap:anywhere; }
.v-hb-b { display:flex; align-items:center; gap:var(--v-2); min-width:0; }
.v-hb-s { display:flex; height:14px; }
.v-hb-s i { display:block; height:100%; }
.v-hb-t { font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; color:var(--v-ink); flex:none; }
/* chart_hbars(cols=2) (the Sectors hub, Kyle 2026-10-16 13:00): two columns side by side on ONE grid - the two bar tracks
   are equal 1fr shares, so one scale serves both columns; the right column's rows (.v-hb-r) sit after it, and under
   the 2-column breakpoint they follow the left column's rows (order) in one column */
.v-hb.v-hb2 { grid-template-columns:max-content minmax(0,1fr) max-content minmax(0,1fr); }
.v-hb.v-hb3 { grid-template-columns:max-content minmax(0,1fr) max-content minmax(0,1fr) max-content minmax(0,1fr); row-gap:4px; }
.v-hb2 .v-hb-n.v-hb-r, .v-hb3 .v-hb-n.v-hb-r { padding-left:var(--v-5); }
.v-hb3 .v-hb-s { height:12px; }
@media (max-width:820px) { .v-hb.v-hb2, .v-hb.v-hb3 { grid-template-columns:max-content minmax(0,1fr); }
  .v-hb2 .v-hb-r, .v-hb3 .v-hb-r { order:1; } .v-hb3 .v-hb-r2 { order:2; }
  .v-hb2 .v-hb-n.v-hb-r, .v-hb3 .v-hb-n.v-hb-r { padding-left:0; } .v-hb-e { display:none; } }
.v-pc .v-bar-s i { background:var(--v-accent); }
.v-bar-x .v-bar-of { display:block; font-style:normal; opacity:.75; white-space:nowrap; }

/* ---- card / coverage box ------------------------------------------------ */
/* THE CARD GRID (Kyle 2026-10-18 #24): tight - 3 across (cards(cols=4): 4 across), a 12px gap */
.v-cards { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:var(--v-3); }
.v-cards.v-cards-4 { grid-template-columns:repeat(4, minmax(0,1fr)); }
@media (max-width:1100px) { .v-cards.v-cards-4 { grid-template-columns:repeat(3, minmax(0,1fr)); } }
@media (max-width:900px) { .v-cards, .v-cards.v-cards-4 { grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:560px) { .v-cards, .v-cards.v-cards-4 { grid-template-columns:minmax(0,1fr); } }
.v-card { border:1px solid var(--v-rule); border-radius:3px; padding:var(--v-4); min-width:0; }
.v-cards > .v-card { padding:var(--v-3); }     /* the card grid's cards: tight (#24) */
.v-card:hover { background:var(--v-wash); }
/* THE WHOLE CARD IS ONE LINK (Kyle 2026-10-17 07:56): a card with an href carries an overlay link (.v-card-ov, the card's
   whole area, out of the tab order - the name stays the one link to tab to); every other link inside the card (the
   name, subsectors, firms, the latest deal) sits above it and goes to its own page. The hover stays the card's wash. */
.v-card-a { position:relative; }
.v-card-ov { position:absolute; inset:0; z-index:0; }
.v-card-a a:not(.v-card-ov) { position:relative; z-index:1; }
.v-card-h { display:flex; justify-content:space-between; align-items:baseline; gap:var(--v-3); }
.v-card-h .v-card-nm { font-family:var(--v-text); font-size:var(--v-fs-row-title); font-weight:var(--v-fw-row-title); line-height:var(--v-lh-row-title); letter-spacing:var(--v-ls-row-title); text-transform:none; color:var(--v-ink); min-width:0; overflow-wrap:anywhere; }
.v-card-h .v-card-n { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); flex:none; }
/* the Sectors hub card's name (card(mark=True), Kyle 2026-10-16 23:46): bold ink, the teal segment under the word
   as the section header's (.v-sh-w), still a link */
.v-frame .v-card a.v-card-w, .v-card .v-card-w { position:relative; color:var(--v-ink); font-weight:var(--v-fw-name); }
.v-card-w::after { content:""; position:absolute; left:0; right:0; bottom:calc(-1 * var(--v-1)); height:2px; background:var(--v-accent); }
.v-frame .v-card a.v-card-w:hover { color:var(--v-accent); text-decoration:none; }
/* THE ROWS SIT CLOSE (Kyle 2026-10-18 #24): one grid a card - the labels' column as wide as its longest label, each value
   left-aligned right after it (no gap out to a right-aligned value); a row's label and value on one baseline */
.v-card-g { display:grid; grid-template-columns:max-content minmax(0,1fr); column-gap:var(--v-3); row-gap:var(--v-1);
  align-items:baseline; margin-top:var(--v-2); }
.v-card-r { display:contents; }
/* a card row's LABEL (Kyle 2026-10-18 #26): the label caps (small caps style, the text face), slate grey; the value ink -
   teal only where it is a link (THE TEAL RULE above: a subsector, a firm, a deal); a sector name stays green */
.v-card-k { font-family:var(--v-text); font-size:var(--v-fs-label); font-weight:var(--v-fw-label); line-height:var(--v-lh-label); letter-spacing:var(--v-ls-label); text-transform:uppercase; color:var(--v-grey); }
.v-card-v { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-ink); text-align:left; min-width:0; overflow-wrap:break-word; }
/* a card's PEOPLE row (firm Coverage cards, Kyle 2026-10-16 14:02): each name on its own line, never broken mid-name */
.v-card-ppl { display:flex; flex-direction:column; align-items:flex-start; }
.v-card-ppl > * { white-space:nowrap; }
.v-card-nil { color:var(--v-grey); }   /* a card row's missing value: the slate-grey em dash (Kyle 2026-10-18 #25) */
.v-more-n { color:var(--v-grey); }
/* THE SECTOR LIST (Kyle 2026-10-16 14:11): green linked sectors, spaced middle dots, "+N" grey */
.v-seclist .v-sep { color:var(--v-grey); margin:0 6px; }
.v-covers { display:flex; align-items:baseline; gap:var(--v-3); margin-top:var(--v-2); font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; }
.v-covers .v-lab { margin:0; flex:none; }
/* a scoreboard box of two counts side by side (a bank page's Sell-side / Buy-side; an investor page's Platforms / Add-ons) */
.v-sb-pair { display:flex; flex-wrap:wrap; gap:0 var(--v-5); }

/* ---- the one list (15 + Show more) and the register row ------------- */
.v-reg { border-top:1px solid var(--v-rule2); }
/* THE REGISTER GRID (Kyle 2026-10-17 08:26, approved; replaces the per-list content sizing of 2026-10-16): ONE fixed
   template for every register (REG_TRACKS) - chevron 16px | Target minmax(180px,1.5fr) | Sector the widest chip
   (reg_sector_w, computed from the taxonomy; 2026-10-19) | Subsector minmax(0,1.2fr) | Type, Sponsor, Sell-side
   minmax(0,1fr) | Buyer minmax(120px,1.5fr) | Value 100px | Date 80px, a 16px gap; minmax(0,...) so a long word never
   blows the grid out. A bank or investor page's Role column (roles=) sits
   right after Target, minmax(0,1fr) (.v-reg-role). The head and the list sit in one box (.v-reg-w) that scrolls
   sideways below the minimums' sum (--v-reg-min); Show more stays outside it. px, never em. */
:root { --v-reg-cols:16px minmax(180px,1.5fr) 155px minmax(0,1.2fr) minmax(0,1fr) minmax(120px,1.5fr) minmax(0,1fr) minmax(0,1fr) 100px 80px; --v-reg-min:1110px; --v-reg-gap:16px; }
.v-reg-role { --v-reg-cols:16px minmax(180px,1.5fr) minmax(0,1fr) 155px minmax(0,1.2fr) minmax(0,1fr) minmax(120px,1.5fr) minmax(0,1fr) minmax(0,1fr) 100px 80px; --v-reg-min:1201px; }
.v-reg-w { overflow-x:auto; }
.v-reg-w > .v-rr-hd, .v-reg-w > .v-reg { min-width:var(--v-reg-min); }
.v-rr { border-bottom:1px solid var(--v-rule); }
.v-rr > summary { list-style:none; cursor:pointer; display:grid; align-items:baseline; column-gap:var(--v-reg-gap);
  grid-template-columns:var(--v-reg-cols);
  padding:10px 0; font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-body); }
.v-rr > summary::-webkit-details-marker { display:none; }
.v-rr > summary:hover { background:var(--v-wash); }
/* NO TRUNCATION (Kyle 2026-10-16): every cell wraps - Target, Buyer, Sponsor, Sector, Subsector, Sell-side, Value */
.v-rr > summary > span { min-width:0; overflow-wrap:anywhere; }
.v-rr > summary > span.v-rr-y { overflow-wrap:normal; white-space:nowrap; }   /* the Type cell never wraps */
/* THE SECTOR CELL never wraps (Kyle 2026-10-19 20:41): its chip stays one line - the track is the widest chip's width */
.v-rr > summary > span.v-rr-s { overflow-wrap:normal; white-space:nowrap; }
/* THE CELLS (Kyle 2026-10-17 08:26): Target and Buyer ink 600; Sector teal 500; Subsector teal 400; Type a small tag;
   Value and Date 12.5px, tabular, never wrapping; an empty Sponsor / Sell-side / Value a muted em dash. The text face
   and normal case throughout (Kyle 23:17: no mono face; tabular figures keep the digits aligned) */
.v-rr .v-rr-t, .v-rr .v-rr-b { font-weight:600; color:var(--v-ink); }
.v-rr-y { justify-self:start; font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; font-weight:500; color:var(--v-tag); background:var(--v-tag-bg); border-radius:3px;
  padding:2px 6px; }
.v-rr-v, .v-rr-d { font-size:12.5px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.v-rr > summary > span.v-rr-v, .v-rr > summary > span.v-rr-d { overflow-wrap:normal; }
.v-rr .v-rr-v, .v-rr .v-rr-d { text-align:right; color:var(--v-grey); }
.v-rr-p:empty::before, .v-rr-e:empty::before, .v-rr-v:empty::before { content:"\2014"; color:var(--v-dash); }
.v-rr > summary .v-rr-x .v-chev { display:inline-block; font-size:1.25em; line-height:0; }   /* 1.25x, the Read action chevron's (Kyle 2026-10-20 22:00) */
.v-rr[open] > summary .v-chev { transform:rotate(90deg); }
.v-rr-more { position:relative; padding:0 0 var(--v-4) 28px; font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-body); }
.v-rr-more p { font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; color:var(--v-body); max-width:72ch; }
.v-rr-more .v-at { max-width:72ch; }
/* THE EXPANDED ROW (Kyle 2026-10-19 20:48 / 20:49): the description only - in THE AGENT TEXT (.v-at: its rule is the
   shared one, never a second) - with "View full record ›" inline at its end, teal, regular weight. The whole area is the
   record's link - a stretched link, no script, as the Tape rows: the link's ::after covers .v-rr-more; on hover the
   row's wash (--v-wash). Any other link inside it sits above and keeps its own click. */
.v-rr-more:has(a.v-rr-rec[href]):hover { background:var(--v-wash); }
.v-frame a.v-rr-rec { font-weight:400; color:var(--v-accent); white-space:nowrap; }
.v-frame a.v-rr-rec:hover, .v-frame a.v-rr-rec:focus-visible { text-decoration:underline; text-underline-offset:3px; }
.v-rr-more a.v-rr-rec[href]::after { content:""; position:absolute; inset:0; }
.v-rr-more a:not(.v-rr-rec) { position:relative; z-index:1; }
.v-rr-hd { display:grid; column-gap:var(--v-reg-gap); padding:0 0 6px;
  grid-template-columns:var(--v-reg-cols); }
.v-rr-hd .v-lab { margin:0; min-width:0; overflow:hidden; white-space:nowrap; }
/* the head (Kyle 2026-10-17 08:26): the label caps, #6F7886 (--v-reg-hd) */
.v-rr-hd .v-lab { color:var(--v-reg-hd); }
.v-rr-hd .v-r { justify-content:flex-end; }
@media (max-width:820px) { .v-reg-w > .v-rr-hd, .v-reg-w > .v-reg { min-width:0; }
  .v-rr > summary, .v-rr-hd { grid-template-columns:16px minmax(0,1fr) 72px; }
  .v-rr > summary > span:not(.v-rr-x):not(.v-rr-t):not(.v-rr-d), .v-rr-hd > :not(:nth-child(-n+2)):not(:last-child) { display:none; } }
.v-more { text-align:left; padding:var(--v-3) 0 0; }
/* SHOW MORE AS A NAKED LINK (Kyle 2026-10-21 08:18): "› Show more", bold Deep Teal, no box, no background, no underline */
.v-more-b { background:none; border:0; padding:0; font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-ink); cursor:pointer; }   /* charcoal, regular, row size (Kyle 2026-10-22 11:32, option A) */
.v-more-b::before { content:"› "; }
.v-more-b:hover { color:var(--v-accent); }
.v-more[hidden], .v-cap { display:none !important; }

.v-early { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; font-weight:600; color:var(--v-grey); padding:var(--v-5) 0 var(--v-2);
  border-bottom:1px solid var(--v-rule2); }
.v-early[hidden] { display:none; }
.v-frame a.v-all { display:inline-flex; align-items:baseline; gap:4px; margin-top:var(--v-2); font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-accent); }

/* ---- notable transactions: compact rows -------------------------------- */
.v-nt { display:block; padding:var(--v-2) 0; border-top:1px solid var(--v-rule); }
.v-nt:first-child { border-top:0; }
.v-nt-t { font-family:var(--v-text); font-size:var(--v-fs-item); font-weight:var(--v-fw-item); line-height:var(--v-lh-item); letter-spacing:var(--v-ls-item); text-transform:none; color:var(--v-ink); display:block; }
.v-nt-m { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); display:block; }
.v-nt > .v-at { margin-top:var(--v-1); }       /* THE DEAL REGISTER's why line (agent_text) under the meta line */

/* ---- report row: collapsible, teal chevron at the right, Key points ---- */
.v-rep { border-top:1px solid var(--v-rule); }
.v-rep > summary { list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:baseline;
  gap:var(--v-3); padding:var(--v-2) 0; }
.v-rep > summary::-webkit-details-marker { display:none; }
.v-rep > summary:hover { background:var(--v-wash); }
.v-rep-t { font-family:var(--v-text); font-size:var(--v-fs-item); font-weight:var(--v-fw-item); line-height:var(--v-lh-item); letter-spacing:var(--v-ls-item); text-transform:none; color:var(--v-ink); display:block; }
.v-rep-m { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); display:block; }
.v-rep[open] > summary .v-chev { transform:rotate(90deg); }
.v-rep-b { padding:0 0 var(--v-3) 0; }
.v-rep-b ul { padding-left:18px; font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-body); }
.v-rep-b li + li { margin-top:var(--v-1); }
.v-rep-m .v-tgs { margin-left:var(--v-2); }
/* THE BRIEFING ROW (briefing_row; Kyle 2026-10-19 16:09): open, no caret, no box, no columns - line 1 the title (THE
   LINK to the report: regular ink, teal on hover) and the date flush right; line 2, muted, "Publisher · sector · type";
   line 3 only with an approved brief, its bottom line (two lines at most); the rows ruled 1px apart */
.v-frame a.v-rep-t { color:var(--v-ink); }      /* the item style's regular weight (.v-rep-t) */
.v-frame a.v-rep-t:hover, .v-frame a.v-rep-t:focus-visible { color:var(--v-accent); }
.v-brf { padding:var(--v-2) 0; }
.v-brf-l { display:flex; align-items:baseline; gap:var(--v-2) var(--v-3); min-width:0; }
.v-brf-l > .v-rep-t { flex:1 1 auto; min-width:0; overflow-wrap:anywhere; }
.v-brf-d { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); white-space:nowrap; flex:none; margin-left:auto; }
.v-brf > .v-rep-m { display:block; margin-top:2px; }
/* the approved brief's bottom line: a preview, at most two lines (a preview blurb - the one clamp, Kyle 16:09), marked
   AI-written in THE AGENT TEXT (Kyle 2026-10-19 20:36: .v-at's teal rule beside it, its slate text - darker than the
   old grey so it reads); this rule adds only the clamp */
.v-sb-nil { color:var(--v-grey); }
.v-brf-nil { color:var(--v-grey); border-left:0; padding-left:0; }
.v-brf-b { margin-top:var(--v-1); display:-webkit-box; -webkit-box-orient:vertical;
  -webkit-line-clamp:2; line-clamp:2; overflow:hidden; }
.v-brf .v-rep-m .v-tgs { margin-left:0; }
/* THE MEDIA TYPE SECTIONS (media_sections; Kyle 2026-10-20 14:13): the shared .v-cols-2-1 grid, each type its own section -
   the rows are THE BRIEFING ROWS, so the date sits right of the title inside its half; a section's rows stay in its column */
.v-msecs { row-gap:var(--v-6); }
.v-msec { min-width:0; }
.v-msec > .v-list > .v-early:first-child { padding-top:var(--v-2); }
.v-pub { color:var(--v-accent); }
/* THE ITEM META (Kyle 2026-10-20 18:59): the publisher in small letter-spaced caps, semibold charcoal (linked to its firm
   page, teal on hover); the sector bold Deep Teal (.v-sec); the item's type and themes regular muted grey, plain text */
.v-pubk, .v-frame a.v-pubk { font-size:11.5px; letter-spacing:.07em; text-transform:uppercase; font-weight:700; color:var(--v-ink); }
/* THE STRICT META LINE (Kyle 2026-10-21): ENTITY bold charcoal caps · the primary sector REGULAR Deep Teal · the type
   regular slate */
.v-rep-m .v-sec, .v-frame .v-rep-m a.v-sec { font-weight:400; color:var(--v-accent); }
.v-frame a.v-pubk:hover { color:var(--v-accent); text-decoration:none; }
.v-kind, .v-frame a.v-kind { color:var(--v-grey); font-weight:400; }
.v-frame a.v-kind:hover { color:var(--v-ink); }
.v-brf > .v-at { margin-top:var(--v-1); }

/* ---- THE CALENDAR ROW (conference_row; batch 11, Kyle 2026-10-18 16:49 #18 - every Calendar instance, the
   Conferences page, Market and the sector pages, changes together): no box, the rows ruled 1px apart, never collapsed.
   (1) the title (its organizer green inside it) left; the date right-aligned in slate, then the add-to-calendar icon
   (its Google / Outlook / Apple .ics menu) FLUSH to the row's right edge, no caret or chevron after it (Kyle
   2026-10-19 16:01; 13:02: no carets, one right axis); (2) the sector(s) inline (bold Deep Teal links, sector_chips) · the location; (3) THE RIBBON - one
   slate line of figures, number + noun, mid-dots ("11k+ attendees · 70 deals"), software exhibitors a touch
   heavier; (4) the agent line (agent_text), open. Scraped metadata never gets the rule. */
.v-conf { display:block; border-top:1px solid var(--v-rule); padding:var(--v-2) 0; }
.v-conf-l { display:flex; align-items:baseline; gap:var(--v-2) var(--v-3); min-width:0; }
.v-conf-t { font-family:var(--v-text); font-size:var(--v-fs-item); font-weight:var(--v-fw-item); line-height:var(--v-lh-item); letter-spacing:var(--v-ls-item); text-transform:none; color:var(--v-ink); flex:1 1 auto; min-width:0; overflow-wrap:anywhere; }
.v-frame .v-conf-t a.v-conf-n { color:var(--v-ink); }
.v-frame .v-conf-t a.v-conf-n:hover { color:var(--v-accent); }
/* the organizer inside the title: the title's own ink, never green - green means a sector only (batch 11 review,
   Kyle via Cowork 2026-10-18); still linked to its firm page when it has one */
.v-conf-o, .v-frame .v-conf-t a.v-conf-o { color:var(--v-ink); }
.v-frame .v-conf-t a.v-conf-o:hover { color:var(--v-accent); }
.v-conf-r { flex:none; margin-left:auto; display:inline-flex; align-items:baseline; justify-content:flex-end;
  gap:var(--v-2); }
.v-conf-d { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); white-space:nowrap; }
.v-conf-s { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); margin-top:2px; }
.v-conf-w { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); overflow-wrap:anywhere; }
.v-conf-q { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); margin-top:2px; }
.v-conf-q b { font-weight:600; }
.v-conf > .v-at { margin-top:var(--v-1); }
/* EVERY AI BLURB AT MOST 2 LINES (Kyle 2026-10-21): Latest Deals, the Intelligence and media rows, the Calendar - the
   writers aim at 2 lines; a longer stored one is cut here with an ellipsis */
.v-nt > .v-at, .v-conf > .v-at, .v-brf > .v-at { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2;
  line-clamp:2; overflow:hidden; }
.v-cal { position:relative; flex:none; align-self:center; }
.v-cal-b { display:inline-flex; align-items:center; gap:2px; background:none; border:0; padding:0 2px; color:var(--v-accent);
  cursor:pointer; line-height:1; }
.v-cal-b:hover, .v-cal-b[aria-expanded=true] { color:var(--v-ink); }
.v-cal-m { position:absolute; right:0; top:calc(100% + 6px); z-index:30; display:flex; flex-direction:column; min-width:180px;
  background:var(--v-paper); border:1px solid var(--v-rule2); border-radius:3px; padding:var(--v-1) 0;
  box-shadow:0 6px 18px rgba(20,24,31,.12); }
.v-cal-m[hidden] { display:none; }
.v-frame .v-cal-m a[href] { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-ink); padding:6px var(--v-3); white-space:nowrap; }
.v-frame .v-cal-m a[href]:hover, .v-frame .v-cal-m a[href]:focus-visible { background:var(--v-wash); color:var(--v-accent); }
/* THE WHOLE ROW IS THE LINK (Kyle 2026-10-19 17:13) - THE TAPE (.v-nt), THE BRIEFING (.v-brf) and THE CALENDAR (.v-conf)
   rows: on hover the list rows' wash (.v-lt / .v-er) across the whole row block, and a click anywhere in the row opens
   the title's link - a stretched link, no script: the title anchor's ::after covers the row (the Calendar title's
   first segment only - conf_title_html splits it round the organizer). Every other link in the row (a sector, a firm,
   the organizer) and the add-to-calendar icon sit above it and keep their own click. A row with no title link has
   neither. */
.v-nt, .v-brf, .v-conf { position:relative; }
.v-nt:has(> .v-nt-t > a.v-nt-n[href]):hover, .v-brf:has(.v-brf-l > a.v-rep-t[href]):hover,
.v-conf:has(.v-conf-t > a.v-conf-n[href]):hover { background:var(--v-wash); }
.v-nt-t > a.v-nt-n[href]::after, .v-brf-l > a.v-rep-t[href]::after, .v-conf-t > a.v-conf-n[href]::after {
  content:""; position:absolute; inset:0; }
.v-nt-t > a.v-nt-n ~ a.v-nt-n::after, .v-conf-t > a.v-conf-n ~ a.v-conf-n::after { content:none; }
.v-frame .v-conf:hover .v-conf-t a.v-conf-n { color:var(--v-accent); }   /* the whole title teal, as its first segment */
.v-frame .v-nt:hover .v-nt-t a.v-nt-n { color:var(--v-accent); }         /* the Tape headline's deal words, the same */
/* THE TAPE'S FIRM LINKS (tape_headline; Kyle 2026-10-19 20:36): the buyer, the sponsor and the investor in the headline
   teal links to their pages (.v-plink), the headline's regular weight, underlined on hover; above the row's link */
.v-nt-t a.v-plink { font-weight:inherit; }
.v-nt a:not(.v-nt-n), .v-brf a:not(.v-rep-t), .v-conf a:not(.v-conf-n) { position:relative; z-index:1; }
.v-conf .v-cal { z-index:2; }   /* the icon and its menu over the row's link and the rows under it */
/* TYPOGRAPHY PASS (Kyle 2026-10-20 16:35) - THE READ, THE TAPE, THE BRIEFING, THE CALENDAR, the League Tables box:
   (1) NO UNDERLINE anywhere in these sections, hover and focus included - links rely on weight and colour only (the
   inline sector keeps its bold Deep Teal); (3) the Briefing and Calendar TITLES bold Charcoal, links teal on hover;
   (4) the Tape's lead party bold (a linked firm keeps its teal link colour, an unlinked one is Charcoal); (5) the
   League Tables' firm names bold Charcoal, counts and metadata regular; (6) 12px under each header before its first item */
.v-frame .v-rd-box a[href], .v-frame .v-rd-box a[href]:hover, .v-frame .v-rd-box a[href]:focus-visible, .v-frame .v-rd-pg a[href], .v-frame .v-rd-pg a[href]:hover, .v-frame .v-rd-pg a[href]:focus-visible,
.v-frame .v-nt a[href], .v-frame .v-nt a[href]:hover, .v-frame .v-nt a[href]:focus-visible,
.v-frame .v-brf a[href], .v-frame .v-brf a[href]:hover, .v-frame .v-brf a[href]:focus-visible,
.v-frame .v-conf a[href], .v-frame .v-conf a[href]:hover, .v-frame .v-conf a[href]:focus-visible,
.v-frame .v-lg a[href], .v-frame .v-lg a[href]:hover, .v-frame .v-lg a[href]:focus-visible,
.v-frame .v-rb .v-lab a, .v-frame .v-rb .v-lab a:hover, .v-frame .v-rb .v-lab a:focus-visible { text-decoration:none; }
.v-frame .v-nt-lead, .v-frame .v-nt-t .v-nt-lead a.v-plink { font-weight:700; }
.v-frame .v-brf .v-rep-t, .v-frame .v-brf a.v-rep-t, .v-frame .v-conf-t, .v-frame .v-conf-t a.v-conf-n,
.v-frame .v-conf-t a.v-conf-o, .v-frame .v-conf-t .v-conf-o { font-weight:700; }
.v-frame .v-lg-f, .v-frame .v-lg-f a, .v-frame .v-lg-f a.v-plink { font-weight:700; color:var(--v-ink); }
.v-frame .v-lg-f a.v-plink:hover, .v-frame .v-lg-f a.v-plink:focus-visible { color:var(--v-accent); }
.v-frame .v-lg-n, .v-frame .v-lg-l, .v-frame .v-lg-k { font-weight:400; }
.v-frame .v-lab:has(+ .v-nt), .v-frame .v-rb > .v-lab, .v-frame .v-lg > .v-lab { margin-bottom:var(--v-3); }
.v-cfw { display:block; }
.v-cfw[hidden] { display:none; }   /* a conference the bar or the kind toggle filters out (display:block beat [hidden]) */
.v-cfw-wk { margin-top:var(--v-6); }
.v-cfw-wk[hidden] { display:none; }

/* ---- tabs, sort control, filter rail ---------------------------------- */
.v-tabs { display:flex; gap:var(--v-1) var(--v-5); border-bottom:1px solid var(--v-rule2); margin-bottom:var(--v-4);
  overflow-x:auto; scrollbar-width:none; }
/* THE SEGMENTED CONTROL (.v-seg - seg_control's tab rows and view switches, the sort control, the side toggles, the
   plan cards' period toggle: ONE style; Kyle 2026-10-18 00:43 #33, Cowork 01:2x): inactive slate grey, regular weight;
   the selected / pressed one bold charcoal with a 2px teal underline exactly its word's width (.v-tab-w); no box, no
   pill. A tab's grey count sits after the word, outside the underline. A tab row's underline sits on the row's rule. */
.v-seg { gap:var(--v-1) var(--v-5); }
.v-sort.v-seg, .v-tog.v-seg { display:inline-flex; flex-wrap:wrap; gap:var(--v-1) var(--v-4); }
.v-seg button { font-family:var(--v-text); font-size:var(--v-fs-tab); font-weight:var(--v-fw-tab); line-height:var(--v-lh-tab); letter-spacing:var(--v-ls-tab); text-transform:none; font-weight:400; color:var(--v-grey); background:none; border:0; padding:0; cursor:pointer;
  display:inline-flex; align-items:baseline; white-space:nowrap; }
.v-seg button .v-tab-w { display:inline-block; padding-bottom:var(--v-1); border-bottom:2px solid transparent; }
.v-tabs.v-seg button { margin-bottom:-1px; }
.v-tabs.v-seg button .v-tab-w { padding-bottom:var(--v-2); }
.v-seg button:hover { color:var(--v-ink); }
.v-seg button[aria-selected=true], .v-seg button[aria-pressed=true] { color:var(--v-ink); font-weight:600; }
.v-seg button[aria-selected=true] .v-tab-w, .v-seg button[aria-pressed=true] .v-tab-w { border-bottom-color:var(--v-accent); }
.v-seg button .v-tabc { color:var(--v-grey); font-weight:400; margin-left:6px; }
.v-tabp[hidden] { display:none; }
.v-rail { min-width:0; }
.v-rail-q { width:100%; box-sizing:border-box; font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-ink); padding:var(--v-2) var(--v-3);
  border:1px solid var(--v-rule2); border-radius:3px; margin-bottom:var(--v-2); }
.v-rail-l { display:flex; flex-direction:column; gap:2px; }
.v-rail-r { display:flex; justify-content:space-between; align-items:baseline; gap:var(--v-3); width:100%; text-align:left;
  font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-accent); background:none; border:0; border-radius:3px; padding:6px var(--v-3); cursor:pointer; }
.v-rail-r .v-rail-n { font-weight:600; min-width:0; overflow-wrap:anywhere; }
.v-rail-r .v-rail-c { color:var(--v-grey); flex:none; }
.v-rail-r:hover, .v-rail-r[aria-pressed=true] { background:var(--v-sel); }
.v-rail-r[hidden] { display:none; }
.v-rail:not(.v-open) .v-rail-x:not([aria-pressed=true]) { display:none; }
.v-rail.v-q .v-rail-x { display:flex; }
.v-rail-a { display:flex; justify-content:space-between; margin-top:var(--v-2); }
.v-rail-a button { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); background:none; border:0; padding:0; cursor:pointer; }
.v-rail-a button:hover { color:var(--v-ink); }
.v-rail-a button[hidden] { display:none; }
.v-open .v-rail-a .v-chev { transform:rotate(90deg); }

.v-railw { display:grid; grid-template-columns:220px minmax(0,1fr); column-gap:var(--v-6); }
.v-railw > * { min-width:0; }
@media (max-width:820px) { .v-railw { grid-template-columns:minmax(0,1fr); } }

/* ---- subsector list row with the trend arrow -------------------------- */
.v-subl { background:var(--v-tint); padding:var(--v-3) var(--v-4); display:grid; grid-template-columns:repeat(3, minmax(0,1fr));
  column-gap:var(--v-6); }
@media (max-width:760px) { .v-subl { grid-template-columns:minmax(0,1fr); } }
.v-subl[hidden] { display:none; }
.v-subw:has(> .v-subl[hidden]) { display:none; }
.v-subw > .v-lab { margin-bottom:var(--v-1); }

/* ---- the deal finder (every deal list with a finder): the ask-or-filter bar with its tokens and suggestions, the market
   strip (Deals) / a sector's subsector strip and the count (no type chips: the bar's words, Kyle 2026-10-18 #18); then the register at full width with the
   column filters (Kyle 2026-10-15 13:20, mockup frames 1-3) --------------------------------------------------------- */
.v-find { position:relative; }
.v-find-c { display:flex; flex-direction:column; gap:var(--v-4); min-width:0; }
.v-find-n { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); margin-left:auto; }
.v-find-n b { color:var(--v-ink); font-weight:600; }
.v-pill { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-ink); background:var(--v-sel); border:1px solid var(--v-rule2); border-radius:3px;
  padding:2px var(--v-2); cursor:pointer; }
.v-pill:hover { border-color:var(--v-accent); }
/* SEARCH, BREADCRUMB AND TABLE AS ONE UNIT (Kyle 2026-10-18 #20): the table head - or THE REGISTER's tab row, then the
   head - sits the bar-to-breadcrumb gap (12px) under the breadcrumb line, not the section gap */
.v-find .v-rr-hd { margin-top:var(--v-3); }
.v-find-c + .v-tabs { margin:var(--v-3) 0; }
.v-find .v-tabp .v-rr-hd { margin-top:0; }
/* THE STICKY CONTROL UNIT (the Deals page, Kyle 2026-10-17 10:18): the bar and the breadcrumb row as one
   tight unit on the register's top - reduced vertical padding - stuck to the window's top on scroll, on the paper, over
   the rows (its panel and the column filters' lists open over everything: z-index 40 inside it / beside it) */
.v-find-s > .v-find-c { position:sticky; top:0; z-index:35; background:var(--v-paper); gap:var(--v-2);
  padding:var(--v-2) 0; border-bottom:1px solid var(--v-rule); }
.v-find-s .v-cb { gap:var(--v-2); }
.v-find-s .v-ask { padding-top:var(--v-2); padding-bottom:var(--v-2); }
.v-find-s .v-rr-hd { margin-top:var(--v-2); }
.v-ask { position:relative; display:flex; flex-wrap:wrap; align-items:center; gap:6px var(--v-2); border:1px solid var(--v-rule2);
  border-radius:5px; padding:var(--v-3) 14px; background:var(--v-paper); cursor:text; }
.v-ask:focus-within { border-color:var(--v-accent); box-shadow:0 0 0 3px color-mix(in srgb, var(--v-accent) 18%, transparent); }
.v-ask .v-colon { font-size:var(--v-fs-tab); line-height:1; }
.v-colon { flex:none; display:inline-block; line-height:1; }
.v-ask-t { display:contents; }
.v-tok { display:inline-flex; align-items:baseline; gap:6px; font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-c-plat); background:var(--v-sel);
  border:0; border-radius:3px; padding:2px var(--v-2); cursor:pointer; max-width:100%; }
.v-tok span { color:var(--v-grey); }
.v-tok:hover span, .v-tok:focus-visible span { color:var(--v-ink); }
.v-ask-q { flex:1 1 260px; min-width:0; border:0; outline:0; background:transparent; font-family:var(--v-text); font-size:var(--v-fs-tab); font-weight:var(--v-fw-tab); line-height:var(--v-lh-tab); letter-spacing:var(--v-ls-tab); text-transform:none; font-weight:400; color:var(--v-ink); padding:0; }
.v-ask-q::placeholder { color:var(--v-grey); }
.v-frame .v-ask-q:focus-visible { outline:0; }
.v-ask-q::-webkit-search-cancel-button { display:none; }
.v-ask-x { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); background:none; border:0; padding:0 2px; cursor:pointer; flex:none; }
.v-ask-x:hover, .v-ask-x:focus-visible { color:var(--v-ink); }
.v-ask-x[hidden] { display:none; }
.v-cf-pop { position:absolute; z-index:40; background:var(--v-paper); border:1px solid var(--v-rule2); border-radius:3px;
  box-shadow:0 8px 24px rgba(20,24,31,.12); padding:var(--v-1) 0; }
.v-cf-pop[hidden] { display:none; }
.v-cf-o { display:flex; justify-content:space-between; align-items:baseline; gap:var(--v-3); width:100%; text-align:left;
  font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-accent); background:none; border:0; padding:6px var(--v-3); cursor:pointer; }
.v-cf-o .v-cf-on { min-width:0; overflow-wrap:anywhere; }
.v-cf-o .v-cf-c { color:var(--v-grey); flex:none; }
.v-cf-o:hover, .v-cf-o:focus-visible { background:var(--v-sel); }
.v-cf-pop { width:260px; padding:var(--v-2); box-sizing:border-box; }
.v-cf-q { width:100%; box-sizing:border-box; font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-ink); padding:6px var(--v-2); border:1px solid var(--v-rule2);
  border-radius:3px; margin-bottom:var(--v-1); }
.v-frame .v-cf-q:focus-visible { outline:0; border-color:var(--v-accent); }
.v-cf-l { max-height:280px; overflow:auto; }
.v-cf-o { padding:5px var(--v-1); }
.v-cf { font-family:var(--v-text); font-size:11px; line-height:1; color:var(--v-accent); background:none; border:0; padding:0 2px;
  margin-left:2px; cursor:pointer; }
.v-cf:hover, .v-cf[aria-expanded=true] { color:var(--v-ink); }
.v-rr-hd .v-lab:has(.v-cf) { overflow:visible; }
/* the head's ▾ shows only on its label's hover (Kyle 2026-10-17 08:26) - and while its list is open or it has the
   keyboard focus (opacity, so it stays in the tab order) */
.v-rr-hd .v-cf { opacity:0; }
.v-rr-hd .v-lab:hover .v-cf, .v-rr-hd .v-cf[aria-expanded=true], .v-rr-hd .v-cf:focus-visible { opacity:1; }
/* THE SECTOR COMMAND BAR (Kyle 2026-10-16 00:25, mockup frames 1-3; command_bar): the bar, its panel attached under it
   (TRY, the sector index in three columns, a sector's subsectors on the light page background at the right, the
   footer), then ONE line: the breadcrumb, "Sector index (N) ›" at its right (Kyle 2026-10-16 11:55; was a line of its own) */
.v-cb { display:flex; flex-direction:column; gap:var(--v-3); min-width:0; }
.v-cb-w { position:relative; }
.v-cb-k { font-family:var(--v-text); font-size:var(--v-fs-label); font-weight:var(--v-fw-label); line-height:var(--v-lh-label); letter-spacing:var(--v-ls-label); text-transform:uppercase; color:var(--v-grey); border:1px solid var(--v-rule2); border-radius:3px; padding:1px 6px; margin-left:auto; flex:none; }
.v-ask.v-cb-on { border-bottom-left-radius:0; border-bottom-right-radius:0; }
.v-cb-p { position:absolute; z-index:40; left:0; right:0; top:100%; box-sizing:border-box; background:var(--v-paper);
  border:1px solid var(--v-accent); border-top-color:var(--v-rule); border-radius:0 0 5px 5px;
  box-shadow:0 12px 28px rgba(20,24,31,.10); padding:var(--v-4) var(--v-4) 0; }
.v-cb-p[hidden] { display:none; }
/* the masthead's panel (the same panel, Kyle 2026-10-19 20:38): centred under the narrow field, the index's width */
.v-ms > .v-cb-p { left:50%; right:auto; top:calc(100% + 6px); width:min(880px, calc(100vw - 32px)); transform:translateX(-50%);
  border-top-color:var(--v-accent); border-radius:5px; }
.v-cb-h { display:flex; justify-content:space-between; align-items:baseline; gap:var(--v-3); padding:0 var(--v-2); }
.v-cb-h .v-lab { margin:0 0 var(--v-1) 0; }
.v-cb-try { display:flex; flex-direction:column; margin-bottom:var(--v-4); }
.v-cb-o { display:flex; justify-content:space-between; align-items:baseline; gap:var(--v-3); width:100%; box-sizing:border-box;
  text-align:left; font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-ink); background:none; border:0; border-radius:3px; padding:5px var(--v-2); cursor:pointer; }
.v-cb-o .v-cb-on { min-width:0; overflow-wrap:anywhere; }
.v-cb-o .v-cb-oc { color:var(--v-grey); flex:none; }
.v-cb-o .v-cb-ot { flex:none; display:inline-grid; grid-template-columns:auto minmax(64px, auto); column-gap:var(--v-2);
  align-items:center; justify-items:end; }
.v-cb-o:hover, .v-cb-o.act { background:var(--v-sel); }
.v-cb-t { justify-content:flex-start; gap:var(--v-2); }
.v-cb-s .v-cb-on { color:var(--v-accent); font-weight:600; }
.v-cb-u .v-cb-on { color:var(--v-accent); }
.v-cb-ix { display:grid; grid-template-columns:minmax(0,1fr) 280px; margin:0 calc(-1 * var(--v-4)); }
.v-cb-ix.v-cb-ix1 { grid-template-columns:minmax(0,1fr); }
.v-cb-ixl { min-width:0; padding:0 var(--v-4) var(--v-3); }
.v-cb-cols { columns:3; column-gap:var(--v-5); }
.v-cb-cols .v-cb-o { break-inside:avoid; }
.v-cb-r { min-width:0; background:var(--v-wash2); border-left:1px solid var(--v-rule); padding:0 var(--v-3) var(--v-3); }
.v-cb-sub[hidden] { display:none; }
.v-cb-sub > .v-lab { margin:0 0 var(--v-1) 0; padding:0 var(--v-2); }
.v-frame a.v-cb-open { display:inline-flex; align-items:baseline; gap:4px; margin-top:var(--v-2); padding:0 var(--v-2);
  font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; font-weight:600; color:var(--v-accent); }
.v-frame a.v-cb-open:hover { text-decoration:underline; text-underline-offset:3px; }
.v-cb-f { display:flex; justify-content:space-between; flex-wrap:wrap; gap:var(--v-1) var(--v-4); margin:0 calc(-1 * var(--v-4));
  padding:var(--v-2) var(--v-4); border-top:1px solid var(--v-rule); font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; color:var(--v-grey); }
.v-cb-l { display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--v-1) var(--v-4); font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); }
.v-cb-ixb { margin-left:auto; display:inline-flex; align-items:baseline; gap:4px; font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-accent);
  background:none; border:0; padding:0; cursor:pointer; }
.v-cb-ixb:hover { text-decoration:underline; text-underline-offset:3px; }
.v-cb-l > .v-cb-c { min-width:0; }
.v-cb-c { display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--v-1) 6px; font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; color:var(--v-grey); }
.v-frame .v-cb-c a { color:var(--v-accent); }
.v-frame .v-cb-c a:hover { text-decoration:underline; text-underline-offset:3px; }
.v-cb-sl { color:var(--v-rule2); }
.v-frame .v-cb-c .v-cb-cur { color:var(--v-ink); font-weight:600; }
.v-cb-x { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); background:none; border:0; padding:0; margin-left:var(--v-2); cursor:pointer; }
.v-cb-x:hover { color:var(--v-ink); }
.v-cb-n { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); margin-left:var(--v-2); }
.v-hub { margin-bottom:var(--v-5); }
.v-feed > .v-cb { margin-bottom:var(--v-5); }
.v-feed [data-v-feed-l] > [hidden] { display:none; }
@media (max-width:760px) { .v-cb-ix { grid-template-columns:minmax(0,1fr); } .v-cb-cols { columns:2; }
  .v-cb-r { border-left:0; border-top:1px solid var(--v-rule); padding-top:var(--v-2); } .v-cb-k { display:none; } }
.v-sub { display:flex; justify-content:space-between; align-items:baseline; gap:var(--v-3); padding:6px var(--v-2);
  font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-body); background:none; border:0; border-radius:3px; text-align:left; cursor:pointer; width:100%; }
.v-sub:hover, .v-sub[aria-pressed=true] { background:var(--v-sel); }
.v-sub-n { color:var(--v-accent); min-width:0; overflow-wrap:anywhere; }
.v-sub-c { color:var(--v-grey); flex:none; display:inline-grid; grid-template-columns:auto minmax(64px, auto); column-gap:var(--v-2);
  align-items:center; justify-items:end; }
/* THE TREND PILL (Kyle 2026-10-16 16:41; trend_html, the one component sitewide): a small pill with the arrow and
   value inside - up green on a green fill, down brick red on a soft red tint (Kyle 2026-10-18 #22); flat is a plain grey dash with no pill. Right-
   aligned in its column (the subsector list's trend slot above). */
.v-tr { display:inline-block; font-size:11.5px; font-weight:600; line-height:1.2; letter-spacing:0;
  padding:2px 6px; border-radius:6px; white-space:nowrap; text-align:right; }
.v-tr.v-up { color:var(--v-tr-up); background:var(--v-tr-up-bg); }
.v-tr.v-down { color:var(--v-tr-dn); background:var(--v-tr-dn-bg); }
.v-flat { color:var(--v-tr-flat); text-align:right; }

/* ---- the landing's blocks: hero, sign-up form, check list, spec sheet, delivery boxes ---- */
.v-hero { padding:var(--v-7) 0 var(--v-6); border-bottom:1px solid var(--v-rule); }
.v-hero-h { font-family:var(--v-text); font-size:var(--v-fs-display); font-weight:var(--v-fw-display); line-height:var(--v-lh-display); letter-spacing:var(--v-ls-display); text-transform:none; color:var(--v-ink); max-width:900px; }
.v-hero-h .v-dot { color:var(--v-accent); }
.v-hero-h { text-wrap:balance; }   /* phones: "The Agentic / Coverage Engine / for Software M&A." (Kyle 2026-10-20 15:21) */
/* EVERY LANDING HEADLINE BALANCED (Kyle 2026-10-20 15:22): no headline leaves one word alone on a line - the feature
   labels, the engine headers and metrics, the delivery names, the section heads; their paragraphs wrap "pretty" */
.v-lz .v-lab, .v-spec-l, .v-spec-m, .v-dlv-n > span:first-child, .v-lz .v-sh-w, .v-spec .v-sh-w { text-wrap:balance; }
.v-lz .v-at, .v-prose, .v-dlv-t { text-wrap:pretty; }
@media (max-width:760px) { .v-hero-br { display:none; } }   /* the forced desktop break only on wide screens */
@media (max-width:420px) { .v-hero-h { font-size:2.5rem; } }   /* a phone fits "Coverage Engine" on one line (3 balanced lines) */
.v-colon { font-weight:700; color:var(--v-accent); }
/* THE BLINKING SEARCH COLON (Kyle 2026-10-17 07:53, restored from site_ui's .ui-blink): the colon in the masthead search
   and the command bar above every register / list blinks like a cursor - the old animation, 1.1s steps(1), hidden at 50%;
   no blink under reduced motion. */
.v-ms .v-colon, .v-ask .v-colon { animation:v-blink 1.1s steps(1) infinite; }
@keyframes v-blink { 50% { opacity:0; } }
@media (prefers-reduced-motion: reduce) { .v-ms .v-colon, .v-ask .v-colon { animation:none; } }
.v-hero .v-hero-s { font-family:var(--v-text); font-size:var(--v-fs-lede); font-weight:var(--v-fw-lede); line-height:var(--v-lh-lede); letter-spacing:var(--v-ls-lede); text-transform:none; color:var(--v-body); max-width:62ch; margin-top:var(--v-4); text-wrap:pretty; }
.v-hero-a { margin-top:var(--v-6); max-width:640px; }
.v-form { display:flex; flex-wrap:wrap; gap:var(--v-2); }
.v-form input[type=email] { flex:1 1 260px; min-width:0; box-sizing:border-box; font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; color:var(--v-ink);
  padding:var(--v-2) var(--v-3); border:1px solid var(--v-ink); border-radius:3px; background:var(--v-paper); }
.v-form .v-btn { padding:var(--v-3) var(--v-5); }
/* the hero's sign-up (Kyle 2026-10-21): the email field ~360px with the button right beside it; full width on a phone */
.v-hero-a .v-form { flex-wrap:nowrap; }
.v-hero-a .v-form input[type=email] { flex:0 0 320px; width:320px; }   /* compact (Kyle 2026-10-22 14:11) */
.v-hero-a .v-form .v-btn { flex:none; white-space:nowrap; }
@media (max-width:560px) { .v-hero-a .v-form { flex-wrap:wrap; } .v-hero-a .v-form input[type=email] { flex:1 1 100%; width:100%; } }
.v-form-m { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-body); min-height:1.45em; margin-top:var(--v-2); }
.v-form-m:empty { min-height:0; margin:0; }
.v-ctaline { display:flex; flex-wrap:wrap; align-items:center; gap:var(--v-2) var(--v-4); margin-top:var(--v-4);
  font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; color:var(--v-body); }
/* the secondary link (Kyle 2026-10-19 21:29): no box - plain bold Deep Teal text after the action link's "›" */
.v-ctaline-a, .v-frame a.v-ctaline-a { font-weight:700; color:var(--v-accent); }
.v-frame a.v-ctaline-a:hover, .v-frame a.v-ctaline-a:focus-visible { text-decoration:underline; text-underline-offset:3px; }
.v-frame .v-checks { list-style:none; padding:0; margin:var(--v-3) 0 0 0; }
.v-checks li { font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; color:var(--v-ink); display:flex; gap:var(--v-2); }
.v-checks li + li { margin-top:var(--v-1); }
.v-checks .v-ck { color:var(--v-accent); font-weight:700; flex:none; }
.v-prose { font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; color:var(--v-body); max-width:62ch; }
/* THE SPEC SHEET (Kyle 2026-10-18 10:34, the landing's four value blocks; 2026-10-19 21:29: a tight 2x2 grid, NO
   divider lines, everything left-aligned): each quadrant its label (the section header's caps, Deep Teal) over its ONE
   metric (large, heavy, charcoal), then the paragraph in the standard slate; in order The Agentic Engine | The Connected
   Graph / Compounding Insights | The Daily Register; one column on a phone */
.v-spec { margin-top:var(--v-6); display:grid; grid-template-columns:repeat(2, 1fr); column-gap:var(--v-7);
  row-gap:var(--v-6); text-align:left; }
.v-spec-r { min-width:0; }
.v-spec-r > .v-prose { margin-top:var(--v-2); }
.v-frame .v-spec-l { font-family:var(--v-text); font-size:var(--v-fs-section); font-weight:var(--v-fw-section); line-height:var(--v-lh-section); letter-spacing:var(--v-ls-section); text-transform:uppercase; color:var(--v-accent); }
.v-spec-m { font-family:var(--v-text); font-size:var(--v-fs-name); font-weight:var(--v-fw-name); line-height:var(--v-lh-name); letter-spacing:var(--v-ls-name); text-transform:none; color:var(--v-ink); margin-top:var(--v-2); }
@media (max-width:600px) { .v-spec { grid-template-columns:minmax(0,1fr); } }
.v-tag { font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; color:var(--v-grey); border:1px solid var(--v-rule2); border-radius:3px; padding:0 6px; white-space:nowrap; }
.v-tag.v-tag-on { color:var(--v-accent); border-color:var(--v-accent); }
/* the delivery grid (Kyle 2026-10-19 21:29, replacing the 10-18 boxes): no card borders - ONE flush grid, three to a
   row, separated only by 1px internal divider lines (the register's --v-rule), no outer box, the text on the page's own
   ground; the status chip (tag "live" / "hollow") at each name's right. The dividers follow the column count (3, then
   2 under 900px, then 1 under 600px): a line right of every cell but a row's last, a line over every row but the
   first; the outer cells sit flush with the frame */
.v-dlv { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); grid-auto-rows:1fr; gap:0; border:0; }
.v-dlv-i { display:flex; flex-direction:column; gap:var(--v-2); min-width:0; padding:var(--v-4) var(--v-5); border:0;
  border-radius:0; background:none; }
.v-dlv-i:not(:nth-child(3n)) { border-right:1px solid var(--v-rule); }
.v-dlv-i:nth-child(n+4) { border-top:1px solid var(--v-rule); }
.v-dlv-i:nth-child(3n+1) { padding-left:0; }
.v-dlv-i:nth-child(3n) { padding-right:0; }
.v-dlv-i:nth-child(-n+3) { padding-top:0; }
/* THE TAG (tag(); Kyle 2026-10-18 14:36): ONE rounded tag with the newsletter chip's box (build_issue CHIP_RADIUS 3px,
   CHIP_PAD 3px 7px 2px, 1px border, 9.5px / 11px, .06em) in the site's text face. solid = teal fill, white text;
   THE STATUS CHIPS (Kyle 2026-10-19 21:29, the universal chip - no fill, ALL CAPS): live = Deep Teal text and 1px
   border (Live); hollow = slate grey text and 1px border (Coming soon). The sector chip joins it as a variant. */
.v-tg { display:inline-block; font-family:var(--v-text); font-size:var(--v-fs-chip); font-weight:var(--v-fw-chip); line-height:var(--v-lh-chip); letter-spacing:var(--v-ls-chip); text-transform:none; border:1px solid; border-radius:3px; padding:3px 7px 2px 7px; white-space:nowrap; }
.v-tg-solid { background:var(--v-primary); border-color:var(--v-primary); color:var(--v-paper); }
.v-tg-hollow { background:transparent; border-color:var(--v-grey); color:var(--v-grey); text-transform:uppercase; }
.v-tg-live { background:transparent; border-color:var(--v-accent); color:var(--v-accent); text-transform:uppercase; }
/* THE SECTOR CHIP (tag variant "sector"; batch 11, Kyle 2026-10-18 13:23 #2 - replaces the square .v-stag tag): the
   newsletter chip exactly (build_issue CHIP_BORDER / CHIP_FG / CHIP_HOVER_*: white ground, the teal-tinted 1px border,
   the name in the sector green, ALL CAPS) in the site's text face; linked, its hover deepens the border and adds the
   wash, as the newsletter's. THE THEME CHIP (variant "theme"; Kyle 15:32 #17): the same shape in slate - green always
   means a sector. */
.v-tg-sector, .v-frame a.v-tg-sector { background:var(--v-paper); border-color:var(--v-chip-line); color:var(--v-accent);
  text-transform:uppercase; }
/* THE CHIP'S HOVER (Kyle 2026-10-19 14:26) - the linked sector chip and the Read's chip: Deep Teal fill, white text, a
   pointer, a short transition. Never a "›" inside a chip */
.v-frame a.v-tg-sector, .v-frame a.v-rd-chip { cursor:pointer;
  transition:background-color .13s ease, color .13s ease, border-color .13s ease; }
.v-frame a.v-tg-sector:hover, .v-frame a.v-tg-sector:focus-visible,
.v-frame a.v-rd-chip:hover, .v-frame a.v-rd-chip:focus-visible { background:var(--v-accent); border-color:var(--v-accent);
  color:var(--v-paper); }
@media (prefers-reduced-motion: reduce) { .v-frame a.v-tg-sector, .v-frame a.v-rd-chip { transition:none; } }
.v-tg-theme, .v-frame a.v-tg-theme { background:var(--v-paper); border-color:var(--v-theme-line); color:var(--v-body);
  text-transform:uppercase; }
.v-frame a.v-tg-theme:hover, .v-frame a.v-tg-theme:focus-visible { border-color:var(--v-body); color:var(--v-ink); }
.v-tgs { display:inline-flex; flex-wrap:wrap; gap:var(--v-1); vertical-align:baseline; }
/* THE AGENT TEXT (agent_text; Kyle 2026-10-18 15:33, the master rule): every piece of AI-written summary text - regular
   slate text, a teal rule on its left, no bullets. Scraped metadata never gets the rule. Two sizes from the scale:
   a row's line (row-meta, the default) and a Read's paragraph (body). THE RULE (Kyle 2026-10-19 20:44: 1px read grey)
   is 2px Deep Teal - ONE token, --v-at-rule (AT_RULE_PX), for every Read, Briefing blurb, Calendar line and why line;
   the email's Read box draws the same width (daily_read.box). */
.v-at { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-body); border-left:var(--v-at-rule); padding-left:var(--v-3); }
.v-at-b { font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; color:var(--v-body); }
.v-at strong { font-weight:700; }
.v-at p + p { margin-top:var(--v-2); }

.v-sm { display:block; margin:var(--v-1,4px) 0 0; padding:0; }
.v-sm .v-sm-s { margin:0; font-size:var(--v-fs-row-meta,13px); font-weight:600; line-height:1.45; color:var(--v-ink,#14181F); }
.v-sm .v-sm-b { margin:2px 0 0; padding:0; font-size:calc(var(--v-fs-row-meta,13px) - 1px); font-weight:400; line-height:1.45;
  color:var(--v-sm-bullet,#333333); }
.v-sm .v-sm-m { display:inline-block; margin-right:5px; font-size:calc(var(--v-fs-row-meta,13px) - 2px); font-weight:400;
  line-height:1; color:var(--v-accent,#0F766E); vertical-align:baseline; }
.v-sm .v-sec, .v-sm .v-subsec, .v-sm a.v-sec, .v-sm a.v-subsec { color:var(--v-accent,#0F766E); font-weight:700; }

/* THE ACTION LINK (action_link; Kyle 15:19 #16 / 15:32 #17): a plain bold teal text link with "›", right-aligned at
   the bottom of its cell - "View full record ›" */
.v-act { display:flex; justify-content:flex-end; margin-top:var(--v-2); }
.v-act-a, .v-frame a.v-act-a { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; font-weight:700; color:var(--v-accent); }
.v-frame a.v-act-a:hover, .v-frame a.v-act-a:focus-visible { text-decoration:underline; text-underline-offset:3px; }
.v-act-c { font-weight:700; color:var(--v-accent); }
.v-dlv-n { display:flex; justify-content:space-between; align-items:baseline; gap:var(--v-2); font-family:var(--v-text); font-size:var(--v-fs-row-title); font-weight:var(--v-fw-row-title); line-height:var(--v-lh-row-title); letter-spacing:var(--v-ls-row-title); text-transform:none; color:var(--v-ink); }
.v-dlv-t { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-body); }
@media (max-width:900px) { .v-dlv { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .v-dlv-i:nth-child(n) { border-right:0; border-top:0; padding:var(--v-4) var(--v-5); }
  .v-dlv-i:nth-child(2n+1) { border-right:1px solid var(--v-rule); padding-left:0; }
  .v-dlv-i:nth-child(2n) { padding-right:0; }
  .v-dlv-i:nth-child(n+3) { border-top:1px solid var(--v-rule); }
  .v-dlv-i:nth-child(-n+2) { padding-top:0; } }
@media (max-width:600px) { .v-dlv { grid-template-columns:minmax(0,1fr); }
  .v-dlv-i:nth-child(n) { border-right:0; border-top:0; padding:var(--v-4) 0; }
  .v-dlv-i:nth-child(n+2) { border-top:1px solid var(--v-rule); }
  .v-dlv-i:first-child { padding-top:0; } }

/* ---- league table: a name, the YTD count with its bar, then plain cells (the dashboard's tabs) -------- */
.v-lt6, .v-lt7 { display:grid; column-gap:var(--v-5); align-items:baseline; }
.v-lt6 { grid-template-columns:minmax(0,1.5fr) 10em 5em minmax(0,1.2fr) 9em minmax(0,1.5fr); }
.v-lt7 { grid-template-columns:minmax(0,1.3fr) 10em 5em minmax(0,1.4fr) minmax(0,1.1fr) minmax(0,1.2fr) minmax(0,1.3fr); }
/* the bank / investor tabs (league_panel): their split columns (Sell-side / Buy-side, PE platform / PE-backed strategic) are
   counts - narrow fixed tracks, right-aligned tabular figures (.v-lt6n / .v-lt7n; the skeleton agent via the coordinator,
   2026-10-16), the text columns keep the room */
.v-lt6n, .v-lt7n { display:grid; column-gap:var(--v-5); align-items:baseline; }
.v-lt6n { grid-template-columns:minmax(0,1.6fr) 10em 5em 8em 8em minmax(0,1.8fr); }
.v-lt7n { grid-template-columns:minmax(0,1.4fr) 10em 5em minmax(0,1.3fr) 8em 8em minmax(0,1.6fr); }
.v-lt6 > *, .v-lt7 > *, .v-lt6n > *, .v-lt7n > * { min-width:0; overflow-wrap:anywhere; }
.v-lt-hd { padding:0 0 6px; border-bottom:1px solid var(--v-rule2); }
.v-lt-hd .v-lab { margin:0; }
.v-lt-hd .v-r { justify-content:flex-end; }
.v-lt { padding:10px 0; border-bottom:1px solid var(--v-rule); font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-body); }
.v-lt:hover { background:var(--v-wash); }
.v-lt .v-lt-nm { font-family:var(--v-text); font-size:var(--v-fs-row-title); font-weight:var(--v-fw-row-title); line-height:var(--v-lh-row-title); letter-spacing:var(--v-ls-row-title); text-transform:none; color:var(--v-ink); }
.v-lt .v-lt-q { text-align:right; color:var(--v-grey); }
.v-lt .v-lt-nil { color:var(--v-grey); }
.v-lt-b { display:flex; align-items:center; gap:var(--v-2); }
.v-lt-b .v-lt-n { font-family:var(--v-text); font-size:var(--v-fs-number); font-weight:var(--v-fw-number); line-height:var(--v-lh-number); letter-spacing:var(--v-ls-number); text-transform:none; color:var(--v-ink); flex:none; min-width:2.2em; text-align:right; }
.v-lt-b .v-lt-t { flex:1 1 0; min-width:0; display:block; height:8px; }
.v-lt-b .v-lt-t i { display:block; height:100%; background:var(--v-c-grow); border-radius:1px; }
@media (max-width:900px) { .v-lt6, .v-lt7, .v-lt6n, .v-lt7n { grid-template-columns:minmax(0,1.4fr) 8em 4em minmax(0,1.2fr); }
  .v-lt6 > :nth-child(n+5), .v-lt7 > :nth-child(n+5), .v-lt6n > :nth-child(n+5), .v-lt7n > :nth-child(n+5) { display:none; } }

/* ---- tab row: the tabs with a control at the right end of the same row (the Banks hub's side toggle) ---- */
.v-tabrow { display:flex; align-items:flex-end; justify-content:space-between; gap:var(--v-2) var(--v-4); flex-wrap:wrap;
  border-bottom:1px solid var(--v-rule2); margin-bottom:var(--v-4); }
.v-tabrow .v-tabs { border-bottom:0; margin-bottom:0; }
.v-tabrow > .v-tog { margin-bottom:var(--v-2); }

/* ---- firm list: a register-style row per firm (the Banks hub list) ------------------------------------- */
:root { --v-firm-cols:minmax(0,1fr) 88px minmax(0,1fr) 88px 88px minmax(0,1fr); }
.v-er, .v-er-hd { display:grid; grid-template-columns:var(--v-firm-cols); column-gap:var(--v-4); align-items:baseline; }
.v-er { padding:10px var(--v-4) 10px 0; border-bottom:1px solid var(--v-rule); font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-body); }
.v-er:hover { background:var(--v-wash); }
.v-er[hidden] { display:none; }
.v-er > span { min-width:0; overflow-wrap:anywhere; }
.v-er .v-er-nm { font-family:var(--v-text); font-size:var(--v-fs-row-title); font-weight:var(--v-fw-row-title); line-height:var(--v-lh-row-title); letter-spacing:var(--v-ls-row-title); text-transform:none; color:var(--v-ink); }
.v-er .v-er-n { font-family:var(--v-text); font-size:var(--v-fs-number); font-weight:var(--v-fw-number); line-height:var(--v-lh-number); letter-spacing:var(--v-ls-number); text-transform:none; color:var(--v-ink); text-align:right; }
.v-er .v-er-q { text-align:right; color:var(--v-grey); }
.v-er-hd { padding:0 var(--v-4) 6px 0; border-bottom:1px solid var(--v-rule2); }
.v-er-hd .v-lab { margin:0; min-width:0; overflow:hidden; white-space:nowrap; }
.v-er-hd .v-r { justify-content:flex-end; }
/* every firm list's columns come from its pattern (firm_list, FL_PATTERNS: t a text column - one even share each -,
   n a number column - one fixed width each, right-aligned) */
.v-er .v-er-q { font-variant-numeric:tabular-nums; }
.v-fl-tntnnt { --v-firm-cols:minmax(0,1fr) 88px minmax(0,1fr) 88px 88px minmax(0,1fr); }
.v-fl-tntnt { --v-firm-cols:minmax(0,1fr) 88px minmax(0,1fr) 88px minmax(0,1fr); }
.v-fl-ttt { --v-firm-cols:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr); }
.v-fl-tntt { --v-firm-cols:minmax(0,1fr) 88px minmax(0,1fr) minmax(0,1fr); }
.v-fl-ntntt { --v-firm-cols:88px minmax(0,1fr) 88px minmax(0,1fr) minmax(0,1fr); }
.v-fl-ntntnt { --v-firm-cols:88px minmax(0,1fr) 88px minmax(0,1fr) 88px minmax(0,1fr); }
.v-fl-ntnttt { --v-firm-cols:88px minmax(0,1fr) 88px minmax(0,1fr) minmax(0,1fr) minmax(0,1fr); }
.v-empty { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); padding:var(--v-4) 0; }
.v-empty[hidden] { display:none; }
/* THE FIRM'S OWN MEDIA (firm_media_part; Kyle 2026-10-19 16:07): the channels strip - small inline teal links, each
   with the external-link arrow - over the type tabs; the empty line and "Show more" sit tight in the rail */
.v-chs { display:flex; flex-wrap:wrap; gap:var(--v-1) var(--v-3); font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; margin:0 0 var(--v-2) 0; }
.v-frame a.v-ch { color:var(--v-accent); white-space:nowrap; }
.v-frame a.v-ch:hover, .v-frame a.v-ch:focus-visible { text-decoration:underline; text-underline-offset:3px; }
.v-ch-x { margin-left:2px; }
.v-med-b > .v-empty { padding:var(--v-1) 0 0; }
.v-med-b .v-more { text-align:left; padding:var(--v-2) 0 0; }
@media (max-width:820px) { .v-er, .v-er-hd { grid-template-columns:minmax(0,1fr) 72px; }
  .v-er > :nth-child(n+3), .v-er-hd > :nth-child(n+3) { display:none; }
  .v-fl-ttt .v-er, .v-fl-ttt .v-er-hd { grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }
/* THE LEAGUE TABLE LIST (league_list; Kyle 2026-10-18 #39): the narrow "#" rank column first - slate grey,
   right-aligned, tabular figures; on a phone the rank, the name and the count */
.v-er .v-er-rk, .v-er .v-lt-nil { color:var(--v-grey); }
.v-er .v-er-rk { text-align:right; }
/* THE LEAGUE TABLE LIST'S ALIGNMENT (Kyle 2026-10-18 #43 / #49; 22:24): every column left-aligned, its head too - the
   name, the count (Deals tracked), Top sector, Platforms / Add-ons, Top sponsor and Latest deal; only the "#" rank
   right-aligned. The numbers keep tabular figures in the text face; each number column a fixed track with a clear
   gutter after it (firm_list: LT_NUM_GUTTER), so a count never touches the sector chip */
.v-fl-lt .v-er > span { text-align:left; }
/* THE LEAGUE TABLE GRID (Kyle 2026-10-21, third pass: "what Kyle judges is the whitespace between the end of one
   column's text and the start of the next"): the head and the rows shown on ONE grid (the list's own, each row a
   subgrid); every data column as wide as its widest entry shown (max-content; the firm, Top sponsor and Latest deal
   capped, a longer entry ellipsized), ONE 48px gap between columns - so the whitespace from each column's widest entry
   to the next column's text is the same 48px - and the leftover width after the last column (an empty track; the
   rows' rules still run the full width). # 40px and Deals right-aligned. A Show more or a filter re-sizes the columns
   to the rows then shown. Desktop only - the narrow rule below keeps its own columns */
@media (min-width:821px) {
  .v-fl-lt.v-fl-ntnttt, .v-fl-lt.v-fl-ntntnt { display:grid; column-gap:48px; row-gap:0;
    grid-template-columns:40px fit-content(300px) max-content max-content fit-content(240px) fit-content(320px) minmax(0,1fr); }
  .v-fl-lt.v-fl-ntntnt { grid-template-columns:40px fit-content(300px) max-content max-content max-content fit-content(320px) minmax(0,1fr); }
  .v-fl-lt.v-fl-ntnttt > *, .v-fl-lt.v-fl-ntntnt > * { grid-column:1 / -1; }
  .v-fl-lt.v-fl-ntnttt > .v-list, .v-fl-lt.v-fl-ntntnt > .v-list { display:contents; }
  .v-fl-lt.v-fl-ntnttt .v-er, .v-fl-lt.v-fl-ntnttt .v-er-hd, .v-fl-lt.v-fl-ntntnt .v-er, .v-fl-lt.v-fl-ntntnt .v-er-hd {
    grid-column:1 / -1; grid-template-columns:subgrid; column-gap:48px; padding-left:0; padding-right:0; }
  .v-fl-lt .v-er, .v-fl-lt .v-er-hd { padding-right:0; } }   /* head and rows on one grid width */
/* THE LEAGUE TABLE'S LINKS (Kyle's 10-13 rule "bank names not bold black", Cowork 2026-10-18 batch 4 review): the firm
   name and every firm in the row (Top sponsor, the investors' firms) are the standard teal link, the list's own weight */
.v-fl-lt .v-er .v-er-nm { font-weight:400; }
.v-frame .v-fl-lt .v-er a[href] { color:var(--v-accent); }
.v-frame .v-fl-lt .v-er a[href]:hover { text-decoration:underline; text-underline-offset:3px; }
/* a league row's QUIET cells (league_row quiet - batch 11, Kyle 2026-10-18 15:06 #13(b)): Top sponsor and Latest deal in
   slate grey, their links too (hover: underline, no colour change) */
.v-fl-lt .v-er .v-lt-q, .v-frame .v-fl-lt .v-er .v-lt-q a[href] { color:var(--v-grey); }
.v-fl-lt .v-er > .v-er-rk { text-align:right; font-variant-numeric:tabular-nums; font-family:var(--v-text); }
/* THE COUNT COLUMNS RIGHT-ALIGNED, heads and numbers, tabular figures (Kyle 2026-10-20 21:07): the count and
   Platforms / Add-ons line up digit for digit */
.v-fl-lt .v-er > .v-er-n, .v-fl-lt .v-er > .v-er-q { text-align:right; font-variant-numeric:tabular-nums;
  font-family:var(--v-text); }
/* a league list's HEAD LABELS WRAP, never cut (fixups 2026-10-19: "PLATFORMS /" on the Investors list): a label wider
   than its column takes a second line inside its column (the column's own width and gutter unchanged, firm_cols /
   LT_NUM_GUTTER); the head row's labels sit on its rule, their left edges on their cells' */
.v-fl-lt .v-er-hd { align-items:end; }
.v-fl-lt .v-er-hd .v-lab { white-space:normal; overflow:visible; overflow-wrap:normal; }
/* the count's MICRO-BAR (lt_mbar, Kyle 2026-10-18 #40): a short teal bar scaled to the list's top firm, then the number
   right-aligned at the column's edge */
.v-mb { display:flex; align-items:center; justify-content:flex-end; gap:var(--v-2); }
.v-mb-t { display:block; flex:none; width:56px; height:6px; }
.v-mb-t i { display:block; height:100%; background:var(--v-accent); border-radius:1px; }
.v-mb-n { min-width:3ch; text-align:right; }     /* every bar starts at one x, whatever the count's digits */
@media (max-width:820px) { .v-fl-lt .v-er, .v-fl-lt .v-er-hd { grid-template-columns:2.2em minmax(0,1fr) auto; }
  .v-fl-lt .v-er > :nth-child(3) { display:block; } .v-fl-lt .v-er-hd > :nth-child(3) { display:flex; }
  .v-fl-lt .v-er > :nth-child(n+4), .v-fl-lt .v-er-hd > :nth-child(n+4) { display:none; } }

/* ---- heatmap (the Banks hub's Coverage map): a name column, one teal scale over the grid (v-hm1..v-hm9, the
   count of one to the grid's busiest cell), a zero near-white; the count on hover (title); the row total at the right */
.v-hm { overflow-x:auto; }
.v-hmt { width:100%; border-collapse:separate; border-spacing:2px; table-layout:fixed; }
.v-hmt th { font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; color:var(--v-grey); font-weight:400; text-align:center; vertical-align:bottom; padding:0 2px var(--v-1);
  overflow-wrap:break-word; hyphens:auto; }
.v-hmt th.v-hm-nm { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-ink); text-align:left; width:18%; overflow-wrap:anywhere;
  padding:0 var(--v-2) 0 0; vertical-align:middle; }
.v-hmt thead th.v-hm-nm { vertical-align:bottom; }
.v-hmt th.v-hm-t, .v-hmt td.v-hm-t { width:52px; text-align:right; }
.v-hmt td.v-hm-t { font-family:var(--v-text); font-size:var(--v-fs-number); font-weight:var(--v-fw-number); line-height:var(--v-lh-number); letter-spacing:var(--v-ls-number); text-transform:none; color:var(--v-ink); padding:0 0 0 var(--v-2); }
.v-hmt td.v-hm-c { height:26px; border-radius:2px; background:var(--v-wash2); }
.v-hmt td.v-hm-c:hover, .v-hmt td.v-hm-c:focus-visible { outline:2px solid var(--v-ink); outline-offset:-2px; }
.v-hm1 { background:color-mix(in srgb, var(--v-accent) 12%, var(--v-paper)) !important; }
.v-hm2 { background:color-mix(in srgb, var(--v-accent) 22%, var(--v-paper)) !important; }
.v-hm3 { background:color-mix(in srgb, var(--v-accent) 32%, var(--v-paper)) !important; }
.v-hm4 { background:color-mix(in srgb, var(--v-accent) 42%, var(--v-paper)) !important; }
.v-hm5 { background:color-mix(in srgb, var(--v-accent) 52%, var(--v-paper)) !important; }
.v-hm6 { background:color-mix(in srgb, var(--v-accent) 62%, var(--v-paper)) !important; }
.v-hm7 { background:color-mix(in srgb, var(--v-accent) 72%, var(--v-paper)) !important; }
.v-hm8 { background:color-mix(in srgb, var(--v-accent) 81%, var(--v-paper)) !important; }
.v-hm9 { background:var(--v-accent) !important; }   /* the full teal: its white count clears 4.5:1 (Cowork 2026-10-18) */
/* the cell's count (Kyle 2026-10-18 #36; HM_WHITE_FROM): charcoal, white on the darkest steps; centred, tabular */
.v-hmt td.v-hm-c { text-align:center; vertical-align:middle; }
.v-hm-v { font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; font-weight:600; color:var(--v-ink); }
.v-hm9 .v-hm-v { color:var(--v-paper); }
.v-hm-side[hidden] { display:none; }
/* THE HUBS' COVERAGE MAP (heatmap ranked - batch 11, Kyle 2026-10-18 15:06 #13(c)): the names right-aligned against a 1px
   slate vertical rule right of the name column, full height (drawn across the cells' spacing), each led by its rank in
   slate */
.v-hm-rkd th.v-hm-nm { text-align:right; position:relative; padding-right:var(--v-3); }
.v-hm-rkd th.v-hm-nm::after { content:""; position:absolute; right:0; top:-2px; bottom:-2px; width:1px;
  background:var(--v-grey); }
.v-hm-rk { float:left; margin-right:var(--v-2); color:var(--v-grey); font-variant-numeric:tabular-nums; }   /* the ranks one column at the left */

/* ---- the deal page (spec 2.3, Type A: the live deal sheet's look on v2 tokens) ----------------------------- */
.v-dh { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--v-3) var(--v-5); padding-top:var(--v-6); }
.v-dh > div:first-child { flex:1 1 auto; min-width:0; }
.v-dh .v-title .v-dot { color:var(--v-accent); }
.v-dh-acts { flex:none; display:flex; flex-wrap:wrap; align-items:center; gap:var(--v-2); justify-content:flex-end; }
.v-frame .v-dsum { margin:14px 0 0 0; font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; line-height:1.6; color:var(--v-body); max-width:880px; }
.v-frame .v-kt { display:flex; flex-wrap:wrap; margin:26px 0 0 0; padding:0; background:var(--v-wash2); border-left:3px solid var(--v-accent); }
.v-kt > div { display:flex; flex-direction:column; gap:2px; padding:9px 16px; border-left:1px solid var(--v-rule); min-width:0; }
.v-kt > div:first-child { border-left:0; }
.v-kt dt { font-family:var(--v-text); font-size:var(--v-fs-label); font-weight:var(--v-fw-label); line-height:var(--v-lh-label); letter-spacing:var(--v-ls-label); text-transform:uppercase; color:var(--v-grey); white-space:nowrap; }
.v-frame .v-kt dd { margin:0; font-family:var(--v-text); font-size:var(--v-fs-number); font-weight:var(--v-fw-number); line-height:var(--v-lh-number); letter-spacing:var(--v-ls-number); text-transform:none; color:var(--v-ink); overflow-wrap:anywhere; }
.v-frame .v-kt dd a, .v-frame .v-fr dd a { color:var(--v-accent); }
.v-frame .v-kt dd a:hover, .v-frame .v-fr dd a:hover { text-decoration:underline; text-underline-offset:3px; }
.v-gt { color:var(--v-grey); margin:0 2px; }
.v-boxes { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--v-4); margin:var(--v-4) 0 0 0; align-items:stretch; align-content:start; }
.v-box { border:1px solid var(--v-rule); border-radius:3px; padding:14px 16px 10px; min-width:0; }
.v-box-k { font-family:var(--v-text); font-size:var(--v-fs-label); font-weight:var(--v-fw-label); line-height:var(--v-lh-label); letter-spacing:var(--v-ls-label); text-transform:uppercase; color:var(--v-ink); }   /* black (Kyle 2026-10-16 12:58); the one label style (23:17) */
.v-box-n { font-family:var(--v-text); font-size:var(--v-fs-name); font-weight:var(--v-fw-name); line-height:var(--v-lh-name); letter-spacing:var(--v-ls-name); text-transform:none; color:var(--v-accent); margin-top:2px; }                      /* the name bold and green (12:58) */
.v-frame .v-box-n a { color:var(--v-accent); }
.v-frame .v-box-n a:hover { text-decoration:underline; text-underline-offset:3px; }
.v-box-d { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-body); margin:3px 0 8px 0; overflow-wrap:anywhere; }   /* in full, wrapping (Kyle 09:30) */
.v-frame .v-box dl, .v-frame .v-facts { margin:0; }
.v-fr { display:grid; grid-template-columns:112px minmax(0,1fr); gap:10px; align-items:baseline; min-height:22px; padding:2px 0;
  border-top:1px solid var(--v-rule); }
.v-fr dt { font-family:var(--v-text); font-size:var(--v-fs-label); font-weight:var(--v-fw-label); line-height:var(--v-lh-label); letter-spacing:var(--v-ls-label); text-transform:uppercase; color:var(--v-grey); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.v-frame .v-fr dd { margin:0; font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; line-height:1.35; color:var(--v-ink); overflow-wrap:anywhere; }
.v-fr dd .v-dim { color:var(--v-grey); }
.v-fr dd > div { padding:1px 0; }
.v-facts { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:var(--v-5); }
.v-facts .v-fr { grid-template-columns:168px minmax(0,1fr); }
.v-src { margin:var(--v-1) 0 0 0; font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; color:var(--v-grey); }
.v-frame .v-src a { color:var(--v-accent); }
.v-dsec { margin-top:var(--v-6); }
.v-share { position:relative; display:inline-block; }
.v-share-m { display:none; position:absolute; z-index:20; right:0; top:calc(100% + 6px); background:var(--v-paper);
  border:1px solid var(--v-rule); border-radius:6px; box-shadow:0 6px 24px rgba(0,0,0,.10); padding:6px; min-width:150px; white-space:nowrap; }
.v-share-i { display:flex; align-items:center; gap:10px; padding:8px 12px; font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-ink); }
.v-share-i[hidden] { display:none; }
.v-share-i svg { flex:none; color:var(--v-grey); }
.v-btn.v-off, .v-btn.v-off:hover { color:var(--v-grey); border-color:var(--v-rule2); cursor:default; }
.v-off .v-tag { margin-left:2px; line-height:1; padding:2px 6px; }
@media (max-width:760px) { .v-dh { flex-direction:column; } .v-dh-acts { justify-content:flex-start; }
  .v-share-m { right:auto; left:0; }
  .v-boxes, .v-facts { grid-template-columns:minmax(0,1fr); }
  .v-facts .v-fr { grid-template-columns:minmax(0,1fr); gap:0; }
  .v-frame .v-kt { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v-kt > div { padding:8px 12px; border-left:0; border-top:1px solid var(--v-rule); }
  .v-kt > div:nth-child(-n+2) { border-top:0; } .v-kt > div:nth-child(2n) { border-left:1px solid var(--v-rule); } }

/* ---- fixed blocks side by side: each "All ›" sits on the pair's ONE baseline (Cowork 07:26) ---------------- */
.v-2col > div:has(.v-fx) { display:flex; flex-direction:column; }
.v-2col > div > div:has(> .v-fx) { flex:1 1 auto; display:flex; flex-direction:column; }
.v-fx { flex:1 1 auto; display:flex; flex-direction:column; }
.v-fx-none > .v-empty { padding:var(--v-1) 0 0; }
.v-fx-none > .v-lab { color:var(--v-grey); }
.v-frame .v-fx > a.v-all { margin-top:auto; padding-top:var(--v-2); align-self:flex-start; }
/* theme cards at the head of a reports column (a sector page, Kyle 2026-10-16 23:46), then its report rows */
.v-fx > .v-thms { margin-bottom:var(--v-4); }
.v-fx .v-thm-p { margin-top:var(--v-2); }

/* ---- THEMES (spec 2.10): the report brief, teal subsector tags, source chips, theme cards, the Research band,
   Numbers worth knowing, Where they disagree --------------------------------------------------------------- */
.v-brief { display:flex; flex-direction:column; gap:var(--v-3); padding-top:var(--v-1); max-width:880px; }
.v-bf .v-lab { margin-bottom:var(--v-1); }
.v-bf-p { font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; color:var(--v-ink); }
.v-frame .v-bf-co, .v-frame .v-bf-n { list-style:none; padding-left:0; }
.v-frame .v-bf-co { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); column-gap:var(--v-5); }
.v-bf-fig { font-family:var(--v-text); font-size:var(--v-fs-number); font-weight:var(--v-fw-number); line-height:var(--v-lh-number); letter-spacing:var(--v-ls-number); text-transform:none; color:var(--v-ink); margin-right:var(--v-2); }
.v-tags { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); }   /* subsector links, mid-dotted */
/* (the square .v-stag sector tag is gone: every sector / subsector tag is THE SECTOR CHIP, tag variant "sector" - batch 11) */
.v-tagb { margin-bottom:var(--v-3); }
.v-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:var(--v-3); }
.v-chip, .v-frame a.v-chip { display:inline-flex; align-items:baseline; gap:6px; max-width:100%; box-sizing:border-box;
  font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; color:var(--v-body); background:var(--v-paper); border:1px solid var(--v-rule2); border-radius:3px; padding:2px 8px; }
.v-frame a.v-chip:hover { border-color:var(--v-accent); color:var(--v-ink); }
.v-chip b { font-weight:600; color:var(--v-ink); flex:none; }
.v-chip span { min-width:0; overflow-wrap:anywhere; }
.v-chip .v-chip-n { color:var(--v-accent); font-weight:600; flex:none; }
.v-cite, .v-frame a.v-cite { font-family:var(--v-text); font-size:10.5px; font-weight:600; line-height:0; vertical-align:super;
  color:var(--v-accent); margin-left:2px; }
.v-thms { display:flex; flex-direction:column; gap:var(--v-5); }
.v-thm { border:1px solid var(--v-rule); border-top:2px solid var(--v-accent); border-radius:3px; padding:var(--v-5); min-width:0; }
.v-thm-h { font-family:var(--v-text); font-size:var(--v-fs-name); font-weight:var(--v-fw-name); line-height:var(--v-lh-name); letter-spacing:var(--v-ls-name); text-transform:none; color:var(--v-ink); margin:0 0 var(--v-2) 0; }
.v-frame .v-thm-h a { color:var(--v-ink); display:inline-flex; align-items:baseline; gap:6px; }
.v-frame .v-thm-h a:hover { color:var(--v-accent); }
.v-thm-g { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:var(--v-4) var(--v-7); margin-top:var(--v-4); }
.v-thm-g > * { min-width:0; }
@media (max-width:820px) { .v-thm-g { grid-template-columns:minmax(0,1fr); } }
.v-thm-p { font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; color:var(--v-body); max-width:72ch; }
/* the Research section's two slots (the other firm pages, firm_v2.other_html): theme cards first, then the reports list */
.v-rs .v-thm { height:100%; box-sizing:border-box; }
.v-names { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-body); }
.v-thm-d { margin-top:var(--v-5); }
.v-mv-r .v-mv-h a { color:var(--v-ink); }
.v-frame .v-mv-r .v-mv-h a:hover { color:var(--v-accent); }
.v-mv-r .v-chips { margin-top:auto; padding-top:var(--v-3); }
:root { --v-num-cols:96px minmax(0,2fr) minmax(0,1fr) minmax(0,1.6fr) 96px; }
.v-nw, .v-nw-hd { display:grid; grid-template-columns:var(--v-num-cols); column-gap:var(--v-4); align-items:baseline; }
.v-nw { padding:10px 0; border-bottom:1px solid var(--v-rule); font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-body); }
.v-nw > span { min-width:0; overflow-wrap:anywhere; }
.v-nw .v-nw-f { font-family:var(--v-text); font-size:var(--v-fs-number); font-weight:var(--v-fw-number); line-height:var(--v-lh-number); letter-spacing:var(--v-ls-number); text-transform:none; color:var(--v-ink); }
.v-nw .v-nw-d { text-align:right; color:var(--v-grey); }
.v-nw-hd { padding:0 0 6px; border-bottom:1px solid var(--v-rule2); }
.v-nw-hd .v-lab { margin:0; }
.v-nw-hd .v-r { justify-content:flex-end; }
@media (max-width:820px) { .v-nw, .v-nw-hd { grid-template-columns:96px minmax(0,1fr); }
  .v-nw > :nth-child(n+3), .v-nw-hd > :nth-child(n+3) { display:none; } }
.v-dis { padding:var(--v-4) 0; border-bottom:1px solid var(--v-rule); }
.v-dis-t { font-family:var(--v-text); font-size:var(--v-fs-row-title); font-weight:var(--v-fw-row-title); line-height:var(--v-lh-row-title); letter-spacing:var(--v-ls-row-title); text-transform:none; color:var(--v-ink); margin-bottom:var(--v-2); }

/* ---- pricing (plan cards), the sign-in pages and the locked page ---------------- */
.v-plans { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:var(--v-4); }
@media (max-width:1000px) { .v-plans { grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:600px) { .v-plans { grid-template-columns:minmax(0,1fr); } }
.v-plan { border:1px solid var(--v-rule); border-radius:3px; padding:var(--v-4) var(--v-4) var(--v-5); min-width:0;
  display:flex; flex-direction:column; gap:var(--v-3); }
.v-plan.v-plan-on { background:var(--v-wash); border-color:var(--v-accent); }
.v-plan .v-lab { margin:0; }
.v-plan .v-tog { align-self:flex-start; }
.v-plan-z { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); }
.v-plan-p { display:flex; align-items:baseline; flex-wrap:wrap; gap:var(--v-1) var(--v-2); }
.v-plan-p[hidden] { display:none; }
.v-plan-a { font-family:var(--v-text); font-size:var(--v-fs-title); font-weight:var(--v-fw-title); line-height:var(--v-lh-title); letter-spacing:var(--v-ls-title); text-transform:none; color:var(--v-ink); }
.v-plan-l { font-family:var(--v-text); font-size:var(--v-fs-name); font-weight:var(--v-fw-name); line-height:var(--v-lh-name); letter-spacing:var(--v-ls-name); text-transform:none; color:var(--v-ink); }
.v-plan-per { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); }
.v-frame .v-plan ul { list-style:none; padding:0; }
.v-plan li { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-body); border-top:1px solid var(--v-rule); padding:var(--v-2) 0; }
.v-plan li .v-tag { margin-left:6px; }
.v-plan-b { margin-top:auto; padding-top:var(--v-2); display:flex; flex-wrap:wrap; gap:var(--v-2); }
.v-plan-yours { font-family:var(--v-text); font-size:var(--v-fs-label); font-weight:var(--v-fw-label); line-height:var(--v-lh-label); letter-spacing:var(--v-ls-label); text-transform:uppercase; color:var(--v-accent); }
.v-btns { display:flex; flex-wrap:wrap; align-items:center; gap:var(--v-2); margin-top:var(--v-5); }
.v-auth { max-width:560px; padding:var(--v-5) 0 var(--v-7); }
.v-auth .v-prose + .v-prose, .v-auth .v-prose + .v-signup { margin-top:var(--v-3); }
.v-auth .v-form { margin:var(--v-4) 0 var(--v-2); }
.v-auth .v-btns { margin-top:var(--v-3); }
.v-auth [hidden] { display:none; }
.v-auth-m { font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; color:var(--v-ink); min-height:1.55em; }
.v-auth-d, .th-locked-s { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); }
.th-locked-s { margin-top:var(--v-3); }

/* ---- the shell pages (legal, /slack, the 404, search, ask; merged from v2-shells 2026-10-15) ------------ */
/* .v-txt a column of reading text (text_block); .v-appmark the /slack T-mark tile; .v-srch the search page's rows
   (build_pages.SEARCH_JS draws them with the old site_ui class names); .v-askpg the Ask page's blocks (ask_page.ASK_JS's
   ak-* names; .v-ask is the Deals finder's bar) */
.v-txt { max-width:66ch; }
.v-frame .v-txt > * + * { margin-top:var(--v-3); }
.v-frame .v-txt ul { padding-left:20px; list-style:disc; }
.v-txt li { font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; color:var(--v-body); }
.v-txt li + li { margin-top:var(--v-1); }
.v-frame .v-txt a, .v-frame .v-srch #zerostate a, .v-frame .v-askpg a { color:var(--v-accent); }
.v-frame .v-txt a:hover { text-decoration:underline; text-underline-offset:3px; }
.v-txt table { width:100%; border-collapse:collapse; }
.v-txt th { font-family:var(--v-text); font-size:var(--v-fs-label); font-weight:var(--v-fw-label); line-height:var(--v-lh-label); letter-spacing:var(--v-ls-label); text-transform:uppercase; color:var(--v-grey); text-align:left; border-bottom:1px solid var(--v-rule2); padding:var(--v-2) var(--v-3) var(--v-2) 0; }
.v-txt td { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-body); border-bottom:1px solid var(--v-rule); padding:var(--v-2) var(--v-3) var(--v-2) 0; vertical-align:top; }
.v-txt td:first-child { color:var(--v-ink); white-space:nowrap; }
@media (max-width:560px) { .v-txt td:first-child { white-space:normal; } }
.v-txt .v-btns { margin-top:var(--v-4); }
.v-appmark { display:flex; align-items:center; gap:var(--v-4); }
.v-appmark > span { display:inline-block; width:56px; height:56px; flex:none; box-sizing:border-box; padding:9px;
  border:1px solid var(--v-rule2); border-radius:12px; background:var(--v-paper); }
.v-appmark svg { display:block; width:100%; height:100%; }

.v-srch { max-width:880px; margin-top:var(--v-5); }
.v-srch .v-rail-q { font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; padding:var(--v-3) var(--v-4); }
.v-srch #note { font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; color:var(--v-grey); padding-top:var(--v-2); min-height:1.4em; }
.v-srch #zerostate { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); padding-top:var(--v-3); }
.v-srch #zerostate a { margin-left:var(--v-2); }
.v-srch .ui-sh { display:flex; align-items:flex-end; justify-content:space-between; gap:var(--v-4); padding-bottom:var(--v-2);
  border-bottom:1px solid var(--v-rule2); margin-top:var(--v-6); }
.v-srch .ui-sh h2 { font-family:var(--v-text); font-size:var(--v-fs-section); font-weight:var(--v-fw-section); line-height:var(--v-lh-section); letter-spacing:var(--v-ls-section); text-transform:uppercase; color:var(--v-accent); }
.v-srch .ui-sh em { font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; font-style:normal; color:var(--v-grey); }
.v-srch .ui-sh em b { font-weight:600; }
.v-frame .v-srch a.s-r { display:block; padding:var(--v-2) 0; border-bottom:1px solid var(--v-rule); color:var(--v-ink); }
.v-srch a.s-r .nm { font-family:var(--v-text); font-size:var(--v-fs-row-title); font-weight:var(--v-fw-row-title); line-height:var(--v-lh-row-title); letter-spacing:var(--v-ls-row-title); text-transform:none; color:var(--v-ink); }
.v-srch a.s-r.big .nm { font-family:var(--v-text); font-size:var(--v-fs-name); font-weight:var(--v-fw-name); line-height:var(--v-lh-name); letter-spacing:var(--v-ls-name); text-transform:none; }
.v-srch a.s-r:hover .nm { color:var(--v-accent); }
.v-srch a.s-r .ui-type { font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; color:var(--v-grey); text-transform:capitalize; margin-right:var(--v-1); }
.v-srch a.s-r .k, .v-srch a.s-r .ui-val { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); }
.v-srch a.s-r .ui-sec { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; font-weight:600; color:var(--v-accent); }
.v-srch a.s-r .ui-subsec { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-accent); }
.v-srch a.s-r .s-dt { font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; color:var(--v-grey); float:right; margin-left:var(--v-3); }
.v-srch a.s-r .d { display:block; font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); overflow-wrap:anywhere; }
.v-srch .s-more { padding:var(--v-3) 0; }
.v-srch .ui-btn { display:inline-flex; align-items:center; gap:var(--v-2); font-family:var(--v-text); font-size:var(--v-fs-button); font-weight:var(--v-fw-button); line-height:var(--v-lh-button); letter-spacing:var(--v-ls-button); text-transform:none; padding:var(--v-2) var(--v-4);
  border:1px solid var(--v-ink); border-radius:3px; color:var(--v-ink); background:var(--v-paper); cursor:pointer; }
.v-srch .ui-btn:hover { color:var(--v-accent); border-color:var(--v-accent); }

.v-askpg { max-width:880px; margin-top:var(--v-5); }
.v-askpg .v-rail-q { font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; padding:var(--v-3) var(--v-4); }
.v-askpg .ak-status { font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; color:var(--v-grey); padding-top:var(--v-3); min-height:1.4em; }
.v-askpg .ak-msg { font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; color:var(--v-ink); padding-top:var(--v-3); }
.v-askpg .ak-msg:empty { padding-top:0; }
.v-askpg .ak-chips { display:flex; flex-wrap:wrap; gap:var(--v-2); padding-top:var(--v-3); }
.v-askpg .ak-chip { display:inline-flex; align-items:center; gap:6px; font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-ink); background:var(--v-paper);
  border:1px solid var(--v-rule2); border-radius:3px; padding:var(--v-1) var(--v-2); }
.v-askpg .ak-chip button { border:0; background:transparent; cursor:pointer; font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; line-height:1; color:var(--v-grey); padding:0 2px; }
.v-askpg .ak-chip button:hover, .v-askpg .ak-chip button:focus-visible { color:var(--v-accent); }
.v-askpg .ak-answer { font-family:var(--v-text); font-size:var(--v-fs-lede); font-weight:var(--v-fw-lede); line-height:var(--v-lh-lede); letter-spacing:var(--v-ls-lede); text-transform:none; color:var(--v-ink); padding-top:var(--v-4); max-width:760px; }
.v-askpg .ak-answer p, .v-askpg .ak-answer ul { margin:0 0 var(--v-3) 0; }
.v-frame .v-askpg .ak-answer ul, .v-frame .v-askpg .ak-web ul { padding-left:20px; list-style:disc; }
.v-askpg .ak-head { font-family:var(--v-text); font-size:var(--v-fs-label); font-weight:var(--v-fw-label); line-height:var(--v-lh-label); letter-spacing:var(--v-ls-label); text-transform:uppercase; color:var(--v-grey); padding:var(--v-5) 0 var(--v-2) 0; border-bottom:1px solid var(--v-rule2); }
.v-frame .v-askpg a.ak-row { display:block; padding:var(--v-2) 0; border-bottom:1px solid var(--v-rule); }
.v-askpg .ak-row .h { font-family:var(--v-text); font-size:var(--v-fs-row-title); font-weight:var(--v-fw-row-title); line-height:var(--v-lh-row-title); letter-spacing:var(--v-ls-row-title); text-transform:none; color:var(--v-ink); }
.v-askpg .ak-row:hover .h { color:var(--v-accent); }
.v-askpg .ak-row .c { display:block; font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); }
.v-frame .v-askpg .ak-rank ol { padding:0; list-style:none; }
.v-askpg .ak-rank li { font-family:var(--v-text); font-size:var(--v-fs-row-title); font-weight:var(--v-fw-row-title); line-height:var(--v-lh-row-title); letter-spacing:var(--v-ls-row-title); text-transform:none; font-weight:400; color:var(--v-ink); padding:var(--v-2) 0; border-bottom:1px solid var(--v-rule); }
.v-askpg .ak-rank .d { display:block; font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); }
.v-askpg .ak-web { font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; color:var(--v-ink); padding-top:var(--v-1); max-width:760px; }
.v-askpg .ak-foot { font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; color:var(--v-grey); padding-top:var(--v-4); }

/* ---- THE PAGE TEMPLATE (Kyle 2026-10-17 10:11 / 10:25): the ONE place page layout is set, keyed by the config's
   classes. The columns slot has no section title, only a grey rule above it - .v-cols-2-1 LEFT THE TAPE | the RAIL
   (THE BRIEFING + THE CALENDAR), EXACTLY HALF AND HALF since Kyle 2026-10-19 17:13 (was ~2/3 | ~1/3; minmax(0,1fr) so
   long Tape content never widens its track), .v-cols-1-1 two halves, .v-cols-full one column; top-aligned; the rail's
   blocks (Volume, Industry reports, Conferences) stacked on hairline rules. Under 820px the columns stack, the left
   first ------------------------------------------------------------------------------------------------------- */
.v-ovw { border-top:1px solid var(--v-rule2); padding-top:var(--v-5); }
.v-cols { display:grid; column-gap:var(--v-7); row-gap:var(--v-6); align-items:start; }
.v-cols-2-1 { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }   /* 50 / 50 (Kyle 2026-10-19 17:13) */
.v-cols-1-1 { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.v-cols-full { grid-template-columns:minmax(0,1fr); }
.v-cols > * { min-width:0; }
.v-cols + .v-cols { margin-top:var(--v-6); }
.v-cols-l > .v-section:first-child { margin-top:0; }
.v-cols-2-1 > .v-cols-l .v-cards { grid-template-columns:repeat(2, minmax(0,1fr)); }
.v-rb + .v-rb { border-top:1px solid var(--v-rule); margin-top:var(--v-4); padding-top:var(--v-4); }
/* THE VOLUME BLOCK: a row a month - the month, its count, then its bar of small square blocks (one block = the page's
   unit of deals), shaded by the Deal mix colours (.v-c1-3, the scoreboard's swatches) */
.v-vol { display:grid; grid-template-columns:max-content max-content minmax(0,1fr); column-gap:var(--v-3); row-gap:var(--v-2);
  align-items:center; }
.v-vol-m { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); white-space:nowrap; }
.v-vol-n { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; font-weight:600; color:var(--v-ink); text-align:right; }
.v-vol-b { display:flex; flex-wrap:wrap; gap:2px; min-width:0; }
.v-vol-b i { display:block; width:10px; height:10px; border-radius:2px; }
.v-vol-key { margin-top:var(--v-2); }
/* the dashboard scoreboard's Market volume box (scoreboard kind "volume_blocks"): the same rows, tighter, thin blocks */
/* THE BARS FIT THEIR BOX, TO SCALE (fixups 2026-10-19: the Banks hub's share % ran into the next column): the bar column is at most
   the widest bar at full size (--vb, the box's most blocks - vol_body / block_rows set it by class v-vb-N - at 4px + a 2px gap each;
   plus --vr, the room kept for a count at the bar's end) and gives way to the box's width; every block and gap is a
   share of that column (the same in every row), so a narrow box draws thinner blocks, never a bar out of the box or a
   bar out of scale. At full width a block is 4px and a gap 2px, as before. */
.v-vol.v-vol-sb { column-gap:var(--v-2); row-gap:2px; justify-content:start;
  grid-template-columns:max-content max-content minmax(0, calc(var(--vb, 20) * 6px + var(--vr, 0px))); }
.v-vol-sb .v-vol-b { flex-wrap:nowrap; gap:0 calc((100% - var(--vr, 0px)) / var(--vb, 20) / 3); }
.v-vol-sb .v-vol-b i { flex:none; width:calc((100% - var(--vr, 0px)) / var(--vb, 20) * 2 / 3); height:10px;
  border-radius:1px; }   /* thin: 20 blocks fit a 5-column box */
.v-sb-box .v-vol-key { margin-top:var(--v-1); }
.v-vol.v-vb-1 { --vb:1; } .v-vol.v-vb-2 { --vb:2; } .v-vol.v-vb-3 { --vb:3; } .v-vol.v-vb-4 { --vb:4; } .v-vol.v-vb-5 { --vb:5; } .v-vol.v-vb-6 { --vb:6; } .v-vol.v-vb-7 { --vb:7; } .v-vol.v-vb-8 { --vb:8; } .v-vol.v-vb-9 { --vb:9; } .v-vol.v-vb-10 { --vb:10; } .v-vol.v-vb-11 { --vb:11; } .v-vol.v-vb-12 { --vb:12; } .v-vol.v-vb-13 { --vb:13; } .v-vol.v-vb-14 { --vb:14; } .v-vol.v-vb-15 { --vb:15; } .v-vol.v-vb-16 { --vb:16; } .v-vol.v-vb-17 { --vb:17; } .v-vol.v-vb-18 { --vb:18; } .v-vol.v-vb-19 { --vb:19; } .v-vol.v-vb-20 { --vb:20; } .v-vol.v-vb-21 { --vb:21; } .v-vol.v-vb-22 { --vb:22; } .v-vol.v-vb-23 { --vb:23; } .v-vol.v-vb-24 { --vb:24; } .v-vol.v-vb-25 { --vb:25; } .v-vol.v-vb-26 { --vb:26; } .v-vol.v-vb-27 { --vb:27; } .v-vol.v-vb-28 { --vb:28; } .v-vol.v-vb-29 { --vb:29; } .v-vol.v-vb-30 { --vb:30; } .v-vol.v-vb-31 { --vb:31; } .v-vol.v-vb-32 { --vb:32; } .v-vol.v-vb-33 { --vb:33; } .v-vol.v-vb-34 { --vb:34; } .v-vol.v-vb-35 { --vb:35; } .v-vol.v-vb-36 { --vb:36; } .v-vol.v-vb-37 { --vb:37; } .v-vol.v-vb-38 { --vb:38; } .v-vol.v-vb-39 { --vb:39; } .v-vol.v-vb-40 { --vb:40; } .v-vol.v-vb-41 { --vb:41; } .v-vol.v-vb-42 { --vb:42; } .v-vol.v-vb-43 { --vb:43; } .v-vol.v-vb-44 { --vb:44; } .v-vol.v-vb-45 { --vb:45; } .v-vol.v-vb-46 { --vb:46; } .v-vol.v-vb-47 { --vb:47; } .v-vol.v-vb-48 { --vb:48; } .v-vol.v-vb-49 { --vb:49; } .v-vol.v-vb-50 { --vb:50; } .v-vol.v-vb-51 { --vb:51; } .v-vol.v-vb-52 { --vb:52; } .v-vol.v-vb-53 { --vb:53; } .v-vol.v-vb-54 { --vb:54; } .v-vol.v-vb-55 { --vb:55; } .v-vol.v-vb-56 { --vb:56; } .v-vol.v-vb-57 { --vb:57; } .v-vol.v-vb-58 { --vb:58; } .v-vol.v-vb-59 { --vb:59; } .v-vol.v-vb-60 { --vb:60; }
/* the hubs' volume boxes (vol_body - Kyle 2026-10-18 22:23 / 22:26): the Banks hub's banked share a column after the
   bars (the bars as wide as the widest, the % beside them); the Investors hub's count at the end of each bar (--vr
   keeps its room: VOL_COUNT_ROOM) */
.v-vol.v-vol-pc { grid-template-columns:max-content max-content max-content max-content; justify-content:start; }
.v-vol.v-vol-sb.v-vol-pc { grid-template-columns:max-content max-content
  minmax(0, calc(var(--vb, 20) * 6px)) max-content; }
.v-vol-p { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-grey); white-space:nowrap; font-variant-numeric:tabular-nums; }
.v-vol-pr { text-align:right; }   /* a count after the bar (block_rows count_after): the digits right-aligned */
/* NO VALUE COLUMN, the grey count after the bar (Kyle 2026-10-19 14:30: the Deals page's Deal flow and Disclosed value -
   vol_body count_after, block_rows with no value): month | bar | count */
.v-vol.v-vol-ca { grid-template-columns:max-content max-content max-content; justify-content:start; }
.v-vol.v-vol-sb.v-vol-ca { grid-template-columns:max-content minmax(0, calc(var(--vb, 20) * 6px)) max-content; }
.v-vol.v-vol-ce { grid-template-columns:max-content minmax(0,1fr); }
.v-vol.v-vol-sb.v-vol-ce { --vr:40px; grid-template-columns:max-content
  minmax(0, calc(var(--vb, 20) * 6px + var(--vr))); }
.v-vol-ce .v-vol-b { align-items:center; }
.v-vol-ce .v-vol-b .v-vol-n { margin-left:var(--v-1); text-align:left; white-space:nowrap; }
@media (min-width:821px) { .v-cols-l .v-nt-m { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } }
@media (max-width:820px) { .v-cols-2-1, .v-cols-1-1 { grid-template-columns:minmax(0,1fr); } }
@media (max-width:560px) { .v-cols-2-1 > .v-cols-l .v-cards { grid-template-columns:minmax(0,1fr); } }

/* LEAGUE TABLES BOX (Kyle 2026-10-20 21:08 / 21:11; tiers_part): the header with the BANKS · INVESTORS toggle right of it,
   the size toggle under it, then a borderless list - rank (quiet grey) | the firm (bold charcoal) | the count flush right,
   tabular figures - and "› View full league tables" */
.v-lg { margin-top:var(--v-6); }
.v-cols-l > .v-lg:first-child, .v-cols-r > .v-lg:first-child { margin-top:0; }
.v-qh { display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--v-1) var(--v-4); }
.v-qh .v-lab { margin:0; }
.v-lg-t > .v-lab { border-bottom:1px solid var(--v-rule); padding-bottom:var(--v-2); margin-bottom:0; }   /* the sections' rule */
/* THE COLUMNS' BOXES LINE UP (Kyle 2026-10-21): in each row of boxes (Latest Deals | League Tables, Intelligence |
   Calendar) every heading is one fixed-height line with the grey rule under it, so headings and rules sit on one line;
   12px from the rule to the first item in every box (the first item drops its own top rule); the "› View" link pinned
   to the bottom of its box, on one baseline across the row */
@media (min-width:821px) {
.v-ovw > .v-cols > div > .v-lab:first-child, .v-ovw > .v-cols > div > :first-child > .v-lab:first-child,
.v-ovw > .v-cols > div > :first-child > .v-qh:first-child { box-sizing:border-box; height:30px; padding-bottom:var(--v-2);
  border-bottom:1px solid var(--v-rule); margin:0 0 var(--v-1); flex:none; }
.v-ovw > .v-cols > div > .v-lab:first-child + .v-nt, .v-ovw > .v-cols > div > :first-child > .v-lab:first-child + .v-nt,
.v-ovw > .v-cols > div > :first-child > .v-lab:first-child + .v-conf,
.v-ovw > .v-cols > div > :first-child > .v-qh:first-child ~ .v-tabp > .v-list > :first-child { border-top:0; }
.v-ovw > .v-cols > div > :first-child > .v-lab:first-child ~ .v-tabp > .v-lg-ctl { margin-top:var(--v-2); }
.v-ovw > .v-cols { align-items:stretch; }
.v-ovw > .v-cols > div { display:flex; flex-direction:column; }
.v-ovw > .v-cols > div > :last-child:has(.v-va), .v-ovw > .v-cols > div > :last-child :has(.v-va):not([hidden]) {
  display:flex; flex-direction:column; flex:1 1 auto; }
.v-ovw > .v-cols > div > .v-va, .v-ovw > .v-cols > div > :last-child .v-va { margin-top:auto; padding-top:var(--v-3);
  align-self:flex-start; }
.v-conf-r .v-cal { line-height:0; }
}
/* the controls under the rule (Kyle 2026-10-21): BANKS · INVESTORS | ALL · LARGE CAP · ... - one row, two when it wraps */
.v-lg-ctl { display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--v-2) var(--v-3); margin:var(--v-3) 0 var(--v-2); }
.v-lg-div { display:inline-block; width:1px; height:12px; background:var(--v-rule2); align-self:center; }
.v-lg-sub { margin:var(--v-2) 0 var(--v-2); }
.v-lg-r { display:grid; grid-template-columns:40px minmax(0,2fr) minmax(0,2fr) 56px; column-gap:24px;   /* the hubs' grid, */
  align-items:baseline; padding:var(--v-2) 0; border-bottom:1px solid var(--v-rule); }   /* Top sector / sponsor dropped (Kyle 2026-10-21) */
.v-lg-l { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--v-grey); }
.v-frame .v-lg-l a[href] { color:var(--v-grey); font-weight:400; }
.v-frame .v-lg-l a[href]:hover { color:var(--v-ink); }
.v-lg-k { color:var(--v-grey); font-variant-numeric:tabular-nums; text-align:right; }
.v-lg-f { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.v-lg-f, .v-frame .v-lg-f a[href] { color:var(--v-ink); font-weight:700; }
.v-frame .v-lg-f a[href]:hover { color:var(--v-accent); }
.v-lg-n { color:var(--v-ink); font-variant-numeric:tabular-nums; text-align:right; }
/* THE QUIET TEXT TOGGLE (quiet_tabs, Kyle 2026-10-20 21:08): small uppercase words, " · " between; the active one Deep
   Teal over a faint 1px line (the tab indicator - the one underline allowed), the others muted; no pill, no count */
.v-tabs.v-seg.v-quiet { display:inline-flex; flex-wrap:wrap; gap:0; border-bottom:0; margin:0; }
.v-quiet.v-seg button { font-size:11.5px; letter-spacing:.07em; text-transform:uppercase; font-weight:500; color:var(--v-grey);
  margin:0; }
.v-quiet.v-seg button + button::before { content:"·"; margin:0 var(--v-2); color:var(--v-grey); font-weight:400; }
.v-tabs.v-quiet.v-seg button .v-tab-w { padding-bottom:1px; border-bottom:1px solid transparent; }
.v-quiet.v-seg button[aria-selected=true] { color:var(--v-accent); font-weight:600; }
.v-quiet.v-seg button[aria-selected=true] .v-tab-w { border-bottom-color:color-mix(in srgb, var(--v-accent) 45%, transparent); }
/* THE IN-PLACE PAGER (pager_html, Kyle 2026-10-20 21:30): bold Deep Teal chevrons, the muted count between, no boxes */
.v-pg { display:flex; align-items:center; gap:var(--v-3); margin-top:var(--v-3); }
.v-pg-b { background:none; border:0; padding:0 var(--v-1); font-size:20px; line-height:1; font-weight:700; color:var(--v-accent); cursor:pointer; }
.v-pg-b:disabled { color:var(--v-rule2); cursor:default; }
.v-pg-c { color:var(--v-grey); font-variant-numeric:tabular-nums; }
/* THE VIEW-MORE LINK (view_all, Kyle 2026-10-20 21:08): "› View ...", naked, bold Deep Teal, ends a preview list */
.v-va, .v-frame a.v-va { display:inline-block; margin-top:var(--v-3); font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-ink); }   /* charcoal, regular, row size (Kyle 2026-10-22 11:32, option A) */
.v-frame a.v-va:hover { text-decoration:none; color:var(--v-accent); }

/* ---- footer -------------------------------------------------------------- */
.v-foot { margin-top:var(--v-7); padding:var(--v-5) 0 0; border-top:1px solid var(--v-rule2); font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; color:var(--v-grey); }
.v-foot-r { display:flex; flex-wrap:wrap; gap:var(--v-1) var(--v-4); }
.v-foot .v-foot-d { margin-top:var(--v-3); max-width:90ch; }

.v-hid { display:inline-block; width:5.5em; height:.8em; vertical-align:middle; background:var(--v-rule2); border-radius:2px; }
.v-frame .v-odl { margin:var(--v-5) 0 0 0; padding-top:var(--v-4); border-top:1px solid var(--v-rule); }
.v-odl-b { font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; color:var(--v-accent); background:none; border:0; padding:0; cursor:pointer; text-align:left;
  text-decoration:underline; text-underline-offset:3px; }
.v-odl-b:hover, .v-odl-b:focus-visible { color:var(--v-ink); }
.v-odl-s { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-body); margin:var(--v-2) 0 0 0; }
.v-frame .v-odl-s a, .v-frame .v-odl-n a { color:var(--v-accent); }
.v-odl-f { margin-top:var(--v-4); max-width:520px; }
.v-odl-f[hidden], .v-odl-n[hidden] { display:none; }
.v-odl-i { font-family:var(--v-text); font-size:var(--v-fs-body); font-weight:var(--v-fw-body); line-height:var(--v-lh-body); letter-spacing:var(--v-ls-body); text-transform:none; color:var(--v-body); margin:0 0 var(--v-3) 0; }
.v-odl-n { font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-body); margin:var(--v-2) 0 0 0; }
html.v-member .v-odl { visibility:hidden; }
html.v-signed .v-odl-b, html.v-signed .v-odl-f { display:none; }
html.v-signed .v-odl-s { margin-top:0; }
.v-odl-s { display:none; } html.v-signed .v-odl-s { display:block; }   /* the gate (Kyle 10-26): a visitor gets the box, never the plans link */

.v-lz { display:flex; flex-direction:column; row-gap:calc(2 * var(--v-7)); margin-top:var(--v-7); }
.v-lz-r { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,3fr); column-gap:var(--v-7); align-items:center; }
.v-lz-r.v-lz-flip { grid-template-columns:minmax(0,3fr) minmax(0,2fr); }
.v-lz-flip .v-lz-v { order:-1; }
.v-lz-t, .v-lz-v { min-width:0; }
/* NO GREEN FILLS ON THE LANDING (Kyle 2026-10-19 21:29: "check every pill and badge"): the momentum window's trend
   pills keep their arrow, value and colour, without the tinted ground (the Market page's pill is unchanged) */
.v-lz .v-tr.v-up, .v-lz .v-tr.v-down { background:none; }
@media (max-width:960px) {
  .v-lz { row-gap:calc(2 * var(--v-6)); }
  .v-lz-r, .v-lz-r.v-lz-flip { grid-template-columns:minmax(0,1fr); row-gap:var(--v-4); }
  .v-lz-flip .v-lz-v { order:0; }
}
.v-win { border-radius:12px; overflow:hidden; display:flex; flex-direction:column; min-width:0; align-self:start;
  border:1px solid var(--v-rule); background:var(--v-paper);
  box-shadow:0 18px 40px -24px color-mix(in srgb, var(--v-ink) 45%, transparent),
    0 6px 16px -10px color-mix(in srgb, var(--v-ink) 25%, transparent); }
.v-win-bar { display:flex; align-items:center; gap:var(--v-2); padding:var(--v-2) var(--v-3); font-family:var(--v-text); font-size:var(--v-fs-label); font-weight:var(--v-fw-label); line-height:var(--v-lh-label); letter-spacing:var(--v-ls-label); text-transform:uppercase; color:var(--v-grey);
  border-bottom:1px solid var(--v-rule); }
.v-win-dots { display:flex; gap:4px; flex:none; }
.v-win-dots i { width:7px; height:7px; border-radius:50%; background:currentColor; opacity:.3; }
.v-win-cap { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.v-win-cap b { color:var(--v-ink); }
.v-win-pill { flex:none; display:inline-flex; align-items:center; gap:5px; padding:2px 7px; border-radius:999px; white-space:nowrap;
  background:transparent; border:1px solid var(--v-accent); color:var(--v-accent); }
.v-win-pill::before { content:""; width:5px; height:5px; border-radius:50%; background:currentColor;
  animation:v-lv-pulse 2.4s ease-in-out infinite; }
@keyframes v-lv-pulse { 50% { opacity:.4; } }
/* the connected graph: the dark window (the masthead's ink), a faint dotted grid, the SVG one unit a pixel at 1280 */
.v-win.v-win-g { background:radial-gradient(260px 160px at 50% 45%, color-mix(in srgb, var(--v-neon) 11%, transparent), transparent 70%),
  var(--v-ink); border-color:var(--v-ink); color:var(--v-on-ink); }
.v-win-g .v-win-bar { color:var(--v-on-ink2); border-bottom-color:color-mix(in srgb, var(--v-on-ink) 9%, transparent); }
.v-win-g .v-win-pill { background:color-mix(in srgb, var(--v-neon) 10%, transparent); color:var(--v-neon);
  border:1px solid color-mix(in srgb, var(--v-neon) 28%, transparent); }
.v-gr { background-image:radial-gradient(color-mix(in srgb, var(--v-on-ink) 8%, transparent) 1px, transparent 1px);
  background-size:20px 20px; }
.v-gr svg { display:block; width:100%; height:auto; }
.v-gr svg.v-gr-narrow { display:none; }
@media (max-width:640px) { .v-gr svg.v-gr-wide { display:none; } .v-gr svg.v-gr-narrow { display:block; } }
.v-gr-foot { display:flex; flex-wrap:wrap; gap:2px var(--v-3); padding:var(--v-2) var(--v-3); font-family:var(--v-text); font-size:var(--v-fs-label); font-weight:var(--v-fw-label); line-height:var(--v-lh-label); letter-spacing:var(--v-ls-label); text-transform:uppercase; color:var(--v-on-ink2);
  border-top:1px solid color-mix(in srgb, var(--v-on-ink) 9%, transparent); }
.v-gr-foot span { white-space:nowrap; }
.v-gr-foot i { display:inline-block; width:7px; height:7px; border-radius:50%; margin-right:5px; }
.v-gr-foot .v-gr-k1 { background:var(--v-neon); }
.v-gr-foot .v-gr-k2 { background:var(--v-on-ink); }
.v-gr-e { fill:none; stroke:url(#v-gr-eg); stroke-width:1.3; stroke-dasharray:1; animation:v-gr-draw 1.1s ease backwards; }
.v-gr-wide .v-gr-e { stroke:url(#v-gr-eg-w); }
.v-gr-ed { fill:none; stroke:var(--v-neon); stroke-width:1.2; stroke-dasharray:3 4; stroke-opacity:.5;
  animation:v-gr-fade .6s ease backwards; }
.v-gr-n { animation:v-gr-fade .5s ease backwards; }
@keyframes v-gr-draw { from { stroke-dashoffset:1; } to { stroke-dashoffset:0; } }
@keyframes v-gr-fade { from { opacity:0; } to { opacity:1; } }
.v-gr-t1 { animation-delay:.1s; } .v-gr-t2 { animation-delay:.3s; } .v-gr-t3 { animation-delay:.5s; }
.v-gr-t4 { animation-delay:.7s; } .v-gr-t5 { animation-delay:.9s; } .v-gr-t6 { animation-delay:1.1s; }
.v-gr-s1 { stop-color:var(--v-neon); stop-opacity:.85; }
.v-gr-s2 { stop-color:var(--v-neon); stop-opacity:.3; }
.v-gr-h1 { stop-color:var(--v-neon); stop-opacity:.4; }
.v-gr-h2 { stop-color:var(--v-neon); stop-opacity:0; }
.v-gr-dot, .v-gr-pc, .v-gr-pg { fill:var(--v-neon); }
.v-gr-pg { opacity:.5; }
.v-gr-pf { fill:var(--v-on-ink); }
.v-gr-ring { fill:none; stroke:var(--v-neon); stroke-opacity:.18; transform-box:fill-box; transform-origin:center;
  animation:v-gr-ring 4s ease-in-out infinite; }
@keyframes v-gr-ring { 50% { transform:scale(1.25); } }
.v-gr-c { fill:var(--v-ink-field); stroke:var(--v-neon); stroke-width:1.3; }
.v-gr-cn { fill:var(--v-on-ink); font-family:var(--v-text); font-size:var(--v-fs-headline); font-weight:var(--v-fw-headline); line-height:var(--v-lh-headline); letter-spacing:var(--v-ls-headline); text-transform:none; font-weight:700; }
.v-gr-cv { fill:var(--v-neon); font-family:var(--v-text); font-size:var(--v-fs-label); font-weight:var(--v-fw-label); line-height:var(--v-lh-label); letter-spacing:var(--v-ls-label); text-transform:uppercase; }
.v-gr-nm { fill:var(--v-on-ink); font-family:var(--v-text); font-size:var(--v-fs-row-title); font-weight:var(--v-fw-row-title); line-height:var(--v-lh-row-title); letter-spacing:var(--v-ls-row-title); text-transform:none; }
.v-gr-nm.v-gr-ns { fill:var(--v-neon); }
.v-gr-cap { fill:var(--v-on-ink2); font-family:var(--v-text); font-size:var(--v-fs-label); font-weight:var(--v-fw-label); line-height:var(--v-lh-label); letter-spacing:var(--v-ls-label); text-transform:uppercase; }
/* sector momentum: the KPI tile(s), then the top sectors - each its name, the bar to scale, the count, the
   month-to-date trend pill (the site's one; its window the column's head), and its top subsector on a line under it */
.v-mo-kpis { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); border-bottom:1px solid var(--v-rule); }
.v-mo-kpi { padding:var(--v-2) var(--v-3); min-width:0; }
.v-mo-kpi + .v-mo-kpi { border-left:1px solid var(--v-rule); }
.v-mo-l { font-family:var(--v-text); font-size:var(--v-fs-label); font-weight:var(--v-fw-label); line-height:var(--v-lh-label); letter-spacing:var(--v-ls-label); text-transform:uppercase; color:var(--v-grey); }
.v-mo-v { font-family:var(--v-text); font-size:var(--v-fs-name); font-weight:var(--v-fw-name); line-height:var(--v-lh-name); letter-spacing:var(--v-ls-name); text-transform:none; color:var(--v-ink); margin-top:2px; display:flex; flex-wrap:wrap; align-items:center; gap:2px var(--v-2); }
.v-mo-v .v-sec { font-weight:700; }
.v-mo-tbl { padding:var(--v-1) var(--v-3) var(--v-2); }
.v-mo-r { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) 28px 96px; column-gap:var(--v-2); row-gap:0;
  align-items:center; padding:5px 0; border-bottom:1px solid var(--v-rule); font-family:var(--v-text); font-size:var(--v-fs-row-meta); font-weight:var(--v-fw-row-meta); line-height:var(--v-lh-row-meta); letter-spacing:var(--v-ls-row-meta); text-transform:none; color:var(--v-ink); }
.v-mo-r:last-child { border-bottom:0; }
.v-mo-r > * { min-width:0; }
.v-mo-hd { font-family:var(--v-text); font-size:var(--v-fs-label); font-weight:var(--v-fw-label); line-height:var(--v-lh-label); letter-spacing:var(--v-ls-label); text-transform:uppercase; color:var(--v-grey); border-bottom-color:var(--v-ink); }
.v-mo-hd span { white-space:nowrap; }
.v-mo-hd .v-mo-w { grid-column:2 / 4; text-align:right; }
.v-mo-hd .v-mo-rt { text-align:right; }
.v-mo-n { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.v-mo-b { height:6px; border-radius:3px; background:var(--v-sel); overflow:hidden; }
.v-mo-b i { display:block; height:100%; border-radius:3px; background:linear-gradient(90deg, var(--v-accent), var(--v-c-strat)); }
.v-mo-c { text-align:right; font-weight:600; }
.v-mo-r .v-tr, .v-mo-r .v-flat { justify-self:end; }
.v-mo-sb { grid-column:1 / -1; font-family:var(--v-text); font-size:var(--v-fs-small); font-weight:var(--v-fw-small); line-height:var(--v-lh-small); letter-spacing:var(--v-ls-small); text-transform:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
@media (prefers-reduced-motion: reduce) {
  .v-win-pill::before, .v-gr-e, .v-gr-ed, .v-gr-n, .v-gr-ring { animation:none; }
  .v-gr-dot { display:none; }
}

:root { --v-fw-title:600; --v-fw-display:600; --v-fw-name:600; --v-fw-headline:600; --v-fw-section:600;
  --v-ls-title:-0.02em; --v-ls-display:-0.02em; --v-ls-name:-0.02em; --v-ls-headline:-0.02em;
  --v-ls-section:.05em; --v-ls-label:.05em; --v-ls-sublabel:.05em; --v-ls-nav:.05em;
  --v-fw-label:500; --v-fw-sublabel:500; --v-fw-nav:500; --v-fw-row-meta:500; --v-fw-button:500;
  --v-lift:0 0 0 1px rgba(20,24,31,.06), 0 2px 4px rgba(20,24,31,.04), 0 10px 20px rgba(20,24,31,.05),
    0 24px 48px rgba(20,24,31,.07);
  --v-ease:150ms ease-in-out; }
body.v2 { -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; color:#14181F; }
.v-frame h1, .v-frame h2, .v-frame h3 { letter-spacing:-0.02em; }
.v-frame .v-sh h2 { letter-spacing:.05em; }
.v-frame .v-sd, .v-frame .v-cf-pop, .v-frame .v-share-m, .v-frame .v-cal-m, .v-frame .v-mh .th-acct > div,
.v-frame .v-mh .th-acct > ul { border-color:transparent; box-shadow:var(--v-lift); }
.v-frame .v-cb-p { box-shadow:var(--v-lift); }
.v-frame a, .v-frame button, .v-frame summary, .v-frame input, .v-frame select, .v-btn, .v-card, .v-sub, .v-rail-r,
.v-cb-o, .v-cf-o, .v-lt, .v-er, .v-dlv-i, .v-tag, .v-ms, .v-ask {
  transition:color var(--v-ease), background-color var(--v-ease), border-color var(--v-ease), box-shadow var(--v-ease); }
.v-frame:has(.v-hero) .v-hero-h { letter-spacing:-0.03em; }
.v-frame:has(.v-hero) { position:relative; isolation:isolate; }
.v-frame:has(.v-hero) .v-neon { height:0; background:none; position:relative; }
.v-frame:has(.v-hero) .v-neon::after { content:""; position:absolute; left:0; right:0; top:0; height:520px; z-index:-1;
  pointer-events:none; background:radial-gradient(60% 75% at 28% 0%, rgba(15,118,110,.10), rgba(15,118,110,0) 70%); }
.v-form input[type=email] { background:#F7F7F9; border:1px solid transparent; box-shadow:inset 0 1px 2px rgba(20,24,31,.08); }
.v-frame .v-form input[type=email]:focus, .v-frame .v-form input[type=email]:focus-visible { outline:0;
  box-shadow:inset 0 1px 2px rgba(20,24,31,.08), 0 0 0 1px #0F766E; }
.v-btn.v-primary, .v-frame a.v-btn.v-primary { background:linear-gradient(180deg, #0F766E 0%, #0B5E57 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2); }
.v-dlv { gap:var(--v-3); background:#FFFFFF; }
.v-dlv .v-dlv-i:nth-child(n) { border:0; border-radius:6px; background:#F7F7F9; padding:var(--v-4) var(--v-5); }
.v-dlv .v-dlv-i:nth-child(n):hover { background:linear-gradient(rgba(20,24,31,.05), rgba(20,24,31,.05)), #F7F7F9; }
/* the connected graph's window floats like the hero terminal (Kyle 14:30): machined glass over a faint Deep Teal glow;
   the graph inside is unchanged */
.v-win.v-win-g { border-radius:14px; border-color:transparent;
  background:radial-gradient(260px 160px at 50% 45%, color-mix(in srgb, var(--v-neon) 11%, transparent), transparent 70%),
    rgba(15,20,26,0.94);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,0.08), inset 0 1px 0 rgba(255,255,255,0.06), 0 1px 2px rgba(20,24,31,0.06),
    0 24px 64px -12px rgba(20,24,31,0.28); }
.v-lz-v:has(> .v-win-g) { position:relative; isolation:isolate; }
.v-lz-v:has(> .v-win-g)::before { content:""; position:absolute; inset:-64px -48px; z-index:-1; pointer-events:none;
  background:radial-gradient(closest-side, rgba(15,118,110,0.08), rgba(15,118,110,0)); }
@media (prefers-reduced-motion: reduce) { .v-frame a, .v-frame button, .v-btn, .v-dlv-i { transition:none; } }

/* ---- the quiet-luxury pass ------------------------------------------- */
body.v2 { background:#FFFFFF; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; }
/* rows: no rule between them, no rule around them */
.v-rr, .v-er, .v-lt, .v-lg-r, .v-nt, .v-rep, .v-conf, .v-nw, .v-dis, .v-fr, .v-early, .v-rb + .v-rb, .v-nt:first-child,
.v-find-s > .v-find-c, .v-frame .v-odl, .v-txt th, .v-txt td { border-top:0; border-bottom:0; }
.v-reg, .v-rr-hd, .v-lt-hd, .v-er-hd, .v-nw-hd, .v-bars, .v-ovw, .v-tabs, .v-tabrow, .v-lg-t > .v-lab, .v-sh { border-top:0; border-bottom:0; }
.v-ovw > .v-cols > div > .v-lab:first-child, .v-ovw > .v-cols > div > :first-child > .v-lab:first-child { border-bottom:0; }
/* grids: the scoreboard, key terms, the delivery grid - divided by space, not lines */
.v-sb-row { border-top:0; border-bottom:0; }
.v-sb-box, .v-sb-box:nth-child(odd), .v-kt > div, .v-kt > div:nth-child(2n), .v-dlv-i:not(:nth-child(3n)),
.v-dlv-i:nth-child(2n+1), .v-dlv-i:nth-child(n+2), .v-dlv-i:nth-child(n+3), .v-dlv-i:nth-child(n+4) { border-left:0; border-right:0; border-top:0; }
/* a table row's hover: translucent, 150ms */
.v-rr > summary, .v-er, .v-lt, .v-lg-r, .v-rep > summary { transition:background-color 150ms ease-in-out, color 150ms ease-in-out; }
.v-rr > summary:hover, .v-er:hover, .v-lt:hover, .v-lg-r:hover, .v-rep > summary:hover { background:rgba(15,118,110,0.04); }
/* column heads: 11px slate caps, 0.05em */
.v-rr-hd .v-lab, .v-er-hd .v-lab, .v-lt-hd .v-lab, .v-nw-hd .v-lab, .v-txt th, .v-hmt th { font-size:11px; letter-spacing:0.05em;
  text-transform:uppercase; color:#5F6875; }
/* data cells 500; entity names charcoal, sector names teal (the sector rule stands) */
.v-rr > summary, .v-er, .v-lt, .v-lg-r { font-weight:500; }
.v-frame .v-er .v-er-nm a[href], .v-frame .v-fl-lt .v-er .v-er-nm a[href], .v-frame .v-lt a:not(.v-sec):not(.v-subsec),
.v-frame .v-lg-r a:not(.v-sec):not(.v-subsec) { color:var(--v-ink); }
.v-frame .v-er .v-er-nm a[href]:hover, .v-frame .v-fl-lt .v-er .v-er-nm a[href]:hover, .v-frame .v-lt a:not(.v-sec):not(.v-subsec):hover,
.v-frame .v-lg-r a:not(.v-sec):not(.v-subsec):hover { color:var(--v-accent); }
/* cards and tiles: no border, no shadow - names on white, apart by space */
.v-card, .v-box, .v-thm { border:0; box-shadow:none; background:#FFFFFF; border-radius:0; padding-left:0; padding-right:0; }
.v-card:hover { background:#FFFFFF; }
/* every component's ground pure white - no seam against the workspace */
.v-mv, .v-subl, .v-frame .v-kt { background:#FFFFFF; }
/* the breadcrumb: the Read label's style - teal, 11px, 600, 0.04em */
.v-crumb { font-size:11px; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--v-accent); }
.v-crumb a, .v-frame .v-crumb a { color:var(--v-accent); font-weight:600; }
/* THE HOVER RIPPLE (Kyle 2026-10-28 15:14 #6): every row and list hover is the glass's teal at the same opacity */
.v-rr > summary:hover, .v-rr-more:has(a.v-rr-rec[href]):hover, .v-rep > summary:hover,
.v-conf:has(.v-conf-t > a.v-conf-n[href]):hover, .v-lt:hover, .v-er:hover, .v-lg-r:hover,
.v-frame .v-sd a.v-sd-o.act, .v-frame .v-sd a.v-sd-o:hover { background:rgba(15,118,110,0.04); }
/* THE SIGNAL COLON (drawn; colon_css) */
.th-colon{display:inline-block;font-size:1.32em;width:0.17em;height:0.17em;border-radius:50%;background:#53D8B8;box-shadow:0 0.42em 0 #53D8B8,0 0 6px rgba(83,216,184,.4),0 0.42em 6px rgba(83,216,184,.4);vertical-align:0.42em;font-style:normal}

.v-crumb .v-crumb-sl { color:var(--v-accent); opacity:.5; }
.v-crumb .v-crumb-on { color:var(--v-accent); }

/* ---- the slide-out drawer (drawer_part; the canvas deal drawer's look) ----------------------------------- */
.v-dw { position:fixed; top:0; right:0; bottom:0; width:520px; max-width:100vw; z-index:60; background:#FFFFFF; box-sizing:border-box;
  padding:28px 32px 40px; overflow-y:auto; transform:translateX(100%); visibility:hidden;
  box-shadow:0 0 0 1px rgba(20,24,31,.06), -12px 0 32px rgba(20,24,31,.08);
  transition:transform 180ms cubic-bezier(.4,0,1,1), visibility 0s linear 180ms; }
.v-dw.v-dw-on { transform:none; visibility:visible; transition:transform 260ms cubic-bezier(.22,1,.36,1), visibility 0s; }
.v-dw:focus { outline:0; }
.v-dw-x { position:absolute; top:18px; right:20px; border:0; background:transparent; font:inherit; font-size:22px; line-height:1;
  color:var(--v-grey); min-width:44px; min-height:44px; cursor:pointer; border-radius:8px; }
.v-dw-x:hover { color:var(--v-ink); background:rgba(15,118,110,0.04); }
.v-dw-x:focus-visible { outline:2px solid var(--v-accent); outline-offset:2px; }
.v-dw-p[hidden] { display:none; }
.v-dw-p > .v-lg, .v-dw-p > .v-rb { margin-top:0; }
.v-dw .v-lg-r { grid-template-columns:2.2em minmax(0,2fr) minmax(0,1.4fr) 3ch; column-gap:12px; }
.v-dw.v-dw-ns { position:static; visibility:visible; transform:none; width:auto; box-shadow:none; padding:0; margin-top:var(--v-6); }
.v-dw-ns .v-dw-p[hidden] { display:block; margin-top:var(--v-6); }
.v-dw-ns .v-dw-x { display:none; }
@media (max-width:760px) { .v-dw { width:100vw; padding:24px 16px 40px; } }
@media (prefers-reduced-motion:reduce) { .v-dw, .v-dw.v-dw-on { transition:none; } }

/* ---- the master pages as a briefing (Kyle 2026-10-28 15:14): one reading column, top to bottom ---------------- */
.v-ml { margin:var(--v-3) 0 0; font-size:14px; line-height:1.7; color:var(--v-grey); overflow-wrap:anywhere; }
.v-ml a { color:var(--v-grey); }
.v-frame .v-ml a.v-sec, .v-frame .v-ml a.v-subsec { color:var(--v-accent); }
.v-frame .v-ml a:hover { color:var(--v-accent); }
.v-ml-n { color:var(--v-grey); }
.v-ml-d { margin:0 var(--v-1); }
.v-ml-i { white-space:nowrap; }
.v-ml-mix { white-space:normal; }
@media (max-width:560px) { .v-ml-i { white-space:normal; } }
.v-frame .v-ml a.v-sec, .v-frame .v-ml a.v-subsec { font-weight:400; }
.v-lg-s + .v-rb, .v-lg-s + .v-lg { margin-top:var(--v-6); }
main[data-v-tpl="sector"], main[data-v-tpl="subsector"], main[data-v-tpl="deals"], main[data-v-tpl="banks"],
main[data-v-tpl="investors"], main[data-v-tpl="reports"], main[data-v-tpl="conferences"], main[data-v-tpl="bank"],
main[data-v-tpl="investor"] { --v-col:768px; }
main[data-v-tpl] > .v-ph, main[data-v-tpl] > .v-ml, main[data-v-tpl] > .v-section:not(#deals):not(#banks):not(#investors):not(#conferences),
main[data-v-tpl] > .v-view-brief > .v-section:not(#deals), main[data-v-tpl] > .v-view-brief > .v-rd-g, main[data-v-tpl] > .v-vt { max-width:var(--v-col, none); }
.v-rd-g.v-rd-stk { grid-template-columns:minmax(0,1fr); }
.v-rd-g.v-rd-stk > .v-rd-box { grid-column:1 / -1; }
main[data-v-tpl="sector"] .v-cols-2-1, main[data-v-tpl="subsector"] .v-cols-2-1,
main[data-v-tpl="reports"] .v-cols-2-1, main[data-v-tpl="conferences"] .v-cols-2-1 { grid-template-columns:minmax(0,1fr); }
main[data-v-tpl="conferences"] > .v-section { max-width:var(--v-col, none); }
/* the leagues block's tight list (the top banks) */
.v-lg-s .v-lg-r { grid-template-columns:2.2em minmax(0,2fr) minmax(0,2fr) 3ch; column-gap:16px; padding-top:var(--v-1); padding-bottom:var(--v-1); }
/* the framed layout: the column sits against the rail, not centred in the workspace */
html.cvf-on .cvf-col.cvf-brief { margin:0; }
/* the Banks / Investors views: the pool filters as one quiet slate line; a tight right-aligned rank column */
.v-hubrow .v-quiet.v-seg { margin:var(--v-3) 0; }
.v-quiet.v-pool-q button { text-transform:none; letter-spacing:0; font-size:14px; font-weight:400; color:var(--v-grey); }
.v-quiet.v-pool-q button[aria-selected=true] { color:var(--v-ink); font-weight:600; }
.v-quiet.v-pool-q button[aria-selected=true] .v-tab-w { border-bottom-color:var(--v-rule2); }
@media (min-width:821px) {
  .v-fl-lt.v-fl-ntnttt, .v-fl-lt.v-fl-ntntnt { grid-template-columns:3ch fit-content(300px) max-content max-content fit-content(240px) fit-content(320px) minmax(0,1fr); }
  .v-fl-lt.v-fl-ntntnt { grid-template-columns:3ch fit-content(300px) max-content max-content max-content fit-content(320px) minmax(0,1fr); }
  .v-fl-lt .v-er > .v-er-rk, .v-fl-lt .v-er-hd > :first-child { margin-right:-32px; text-align:right; } }

/* ---- THE LANDING'S MOTION (site_motion; END-DESIGNAUDIT, for review) -------------------------------- */
.v-cd { margin:0; width:100%; }
.v-win.v-cd-win { border:0; }
.v-cd-win { position:relative; display:flex; flex-direction:row; height:460px; overflow:hidden; border-radius:12px; background:#FFFFFF;
  box-shadow:0 0 0 1px rgba(20,24,31,.06),0 2px 4px rgba(20,24,31,.04),0 10px 20px rgba(20,24,31,.05),0 24px 48px rgba(20,24,31,.07);
  font-family:var(--v-text); font-weight:400; -webkit-font-smoothing:antialiased; text-align:left; }
.v-cd-rail { flex:0 0 200px; background:#F7F7F9; padding:20px 16px; box-sizing:border-box; display:flex; flex-direction:column; gap:7px; }
.v-cd-logo { font-weight:800; font-size:16px; color:#14181F; margin-bottom:10px; }
.v-cd-logo span { color:#0F766E; }
.v-cd-rh { font-size:10px; font-weight:700; letter-spacing:.08em; color:#5F6875; margin-top:10px; }
.v-cd-sec { font-size:13px; font-weight:700; color:#0F766E; }
.v-cd-v { font-size:13px; color:#14181F; }
.v-cd-main { position:relative; flex:1 1 auto; min-width:0; padding:22px 32px; box-sizing:border-box; display:flex; flex-direction:column; }
.v-cd-bar { display:flex; align-items:center; gap:12px; flex:none; border-radius:10px; padding:12px 16px; background:#FFFFFF;border:0;box-shadow:0 0 0 1px #53D8B8,0 0 6px rgba(83,216,184,.22),0 1px 2px rgba(20,24,31,.06);
  transition:box-shadow 120ms cubic-bezier(0.22, 1, 0.36, 1), background-color 120ms cubic-bezier(0.22, 1, 0.36, 1); }
.v-cd.v-cd-focus .v-cd-bar { background:#FFFFFF;box-shadow:0 0 0 1px #53D8B8,0 0 10px rgba(83,216,184,.42),0 2px 6px rgba(20,24,31,.08); }
.v-cd-colon { flex:none; font-size:15px; line-height:1; animation:vCdBlink 1.1s steps(1,end) infinite; }
@keyframes vCdBlink { 0%,49% { opacity:1; } 50%,100% { opacity:0; } }
.v-cd-q { flex:1 1 auto; min-width:0; font-size:15px; line-height:20px; color:#14181F; white-space:nowrap; overflow:hidden; }
.v-cd-ph { color:#6A727F; }
.v-cd-t:not(:empty) + .v-cd-ph { display:none; }
.v-cd-t:not(:empty)::after { content:""; display:inline-block; width:1px; height:1em; margin-left:1px; vertical-align:-2px; background:#14181F; }
.v-cd.v-cd-ans .v-cd-t::after, .v-cd.v-cd-rm .v-cd-t::after { display:none; }
.v-cd-tm { flex:none; min-width:3.2em; text-align:right; font-size:12px; line-height:20px; color:#5F6875; font-variant-numeric:tabular-nums; }
.v-cd-bar kbd { font:inherit; font-size:11px; color:#5F6875; border:1px solid #E6E9ED; border-radius:4px; padding:0 6px; }
/* THE ANSWER: a fixed-height stage (nothing moves between tasks); the three scenes sit on top of each other, the current
   one shown the instant the last letter lands (no transition: the timer measures it) */
.v-cd-stage { position:relative; flex:1 1 auto; min-height:0; margin:18px 372px 0 0; overflow:hidden; }
/* THE HAND-OFF (Kyle 16:40: no stutter-flash between questions): the scenes are stacked; the old answer dims (280ms) and
   stays dimmed while the next question types - the stage is never empty -, then gives way the instant the new one pops in
   at the last letter, with no transition (the timer measures it) */
.v-cd-sc { position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity 280ms cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 280ms; }
.v-cd-sc.v-cd-prev { opacity:.18; visibility:visible; transition:opacity 280ms cubic-bezier(0.22, 1, 0.36, 1); }
.v-cd[data-s='0'].v-cd-ans .v-cd-sc[data-k='0'] { opacity:1; visibility:visible; transition:none; }
.v-cd[data-s='1'].v-cd-ans .v-cd-sc[data-k='1'] { opacity:1; visibility:visible; transition:none; }
.v-cd[data-s='2'].v-cd-ans .v-cd-sc[data-k='2'] { opacity:1; visibility:visible; transition:none; }
.v-cd-ah { font-size:15px; font-weight:700; color:#14181F; margin-bottom:4px; }
.v-cd-ah .v-cd-sn, .v-cd-m .v-cd-sn { color:#0F766E; font-weight:700; }
.v-cd-ah .v-cd-dim { color:#5F6875; font-weight:600; }
.v-cd-gl { margin-top:8px; font-size:10px; font-weight:700; letter-spacing:.08em; color:#5F6875; text-transform:uppercase; }
.v-cd-row { padding:9px 10px; margin:0 -10px; border-radius:8px; transition:background-color 120ms cubic-bezier(0.22, 1, 0.36, 1); }
.v-cd-r2 { display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:6px 10px; }
.v-cd-n { flex:none; font-size:12.5px; color:#5F6875; font-variant-numeric:tabular-nums; }
.v-cd.v-cd-sel .v-cd-pk { background:rgba(15,118,110,.07); }
.v-cd-h { min-width:0; font-size:14px; color:#14181F; }
.v-cd-r2 .v-cd-h { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.v-cd-h b { font-weight:650; }
.v-cd-m { margin-top:3px; font-size:12px; color:#5F6875; letter-spacing:.01em; }
/* THE DRAWER (a result opened from the answer): pops in at the right edge, its groups one after the other */
.v-cd-dr { position:absolute; top:84px; right:20px; bottom:20px; width:360px; z-index:2; box-sizing:border-box; padding:22px 24px; background:#FFFFFF; border-radius:10px;
  display:flex; flex-direction:column; gap:14px; opacity:0; transform:translateX(14px); pointer-events:none; overflow:hidden;
  box-shadow:0 0 0 1px rgba(20,24,31,.07),0 2px 4px rgba(20,24,31,.04),0 12px 28px rgba(20,24,31,.07); transition:opacity 280ms cubic-bezier(0.22, 1, 0.36, 1), transform 280ms cubic-bezier(0.22, 1, 0.36, 1); }
.v-cd[data-s='0'].v-cd-sel .v-cd-dr[data-k='0'] { opacity:1; transform:none; }
.v-cd[data-s='1'].v-cd-sel .v-cd-dr[data-k='1'] { opacity:1; transform:none; }
.v-cd[data-s='2'].v-cd-sel .v-cd-dr[data-k='2'] { opacity:1; transform:none; }
.v-cd-drh { font-size:16px; line-height:1.35; color:#14181F; }
.v-cd-drh b { font-weight:650; }
.v-cd-dr .v-cd-m { margin-top:-8px; }
.v-cd-g { display:flex; flex-direction:column; gap:7px; opacity:0; transform:translateY(6px); transition:opacity 160ms cubic-bezier(0.22, 1, 0.36, 1), transform 160ms cubic-bezier(0.22, 1, 0.36, 1); }
.v-cd.v-cd-sel .v-cd-g { opacity:1; transform:none; transition-delay:calc(160ms + var(--i, 0) * 200ms); }
.v-cd-dl { font-size:10px; font-weight:700; letter-spacing:.08em; color:#5F6875; text-transform:uppercase; }
.v-cd-gi { font-size:13px; color:#14181F; }
.v-cd-gi b { font-weight:650; }
.v-cd-dt { display:block; color:#5F6875; font-size:12px; margin-top:2px; }
/* THE LINES UNDER THE PICTURE (landing copy A and D) */
.v-cd-cap { margin:var(--v-5) auto 0; max-width:100ch; text-align:center; }
.v-cd-cap p { margin:0; font-size:var(--v-fs-lede); line-height:var(--v-lh-lede); text-wrap:balance; }
.v-cd-cap .v-cd-a { font-weight:600; color:#14181F; }
.v-cd-cap .v-cd-d { margin-top:var(--v-1); color:#5F6875; }
@media (max-width:760px) { .v-cd-rail { display:none; } .v-cd-main { padding:16px; } .v-cd-dr { top:84px; right:12px; bottom:12px; width:78%; padding:14px; } .v-cd-stage { margin-right:0; } .v-cd-win { height:500px; }
  .v-cd-q { font-size:12.5px; line-height:16px; white-space:normal; height:32px; } .v-cd-bar { padding:10px 12px; gap:8px; }
  .v-cd-tm { min-width:2.8em; font-size:11px; } .v-cd-bar kbd { display:none; } .v-cd-stage { margin-top:14px; } }
@media (prefers-reduced-motion: reduce) { .v-cd-colon { animation:none; } .v-cd-g, .v-cd-sc, .v-cd-dr { transition:none; } }

/* THE HERO, FLAT (quiet luxury: no gradients) - the teal glow behind the headline off; no rule between the hero and the
   canvas demo, which sits right under the copy */
.v-frame:has(.v-hero) .v-neon::after { display:none; }
.v-frame:has(.v-cd) .v-hero { border-bottom:0; padding-bottom:var(--v-5); }
.v-cd-wrap { margin-top:0; }
/* THE HERO'S TYPE SCALE (the reference sites' bar: 56-64px display, tight tracking) */
.v-frame:has(.v-cd) .v-hero-h { font-size:clamp(2.5rem, 4.2vw, 3.75rem); line-height:1.04; letter-spacing:-0.025em; font-weight:650; }

/* ONE LIGHT WORLD (audit #8; Kyle 15:14 "the graph goes light"): the graph window on white like
   the canvas - their own colour tokens set to charcoal / slate / teal inside them, the glass and the glow off */
.v-win.v-win-g { --v-on-ink:#14181F; --v-on-ink2:#5F6875; --v-neon:#0F766E; --v-ink-field:#EEF1F3;
  background:#FFFFFF; border-color:transparent; -webkit-backdrop-filter:none; backdrop-filter:none;
  box-shadow:0 0 0 1px rgba(20,24,31,.06),0 2px 4px rgba(20,24,31,.04),0 10px 20px rgba(20,24,31,.05),0 24px 48px rgba(20,24,31,.07); }
.v-lz-v:has(> .v-win-g)::before { display:none; }

/* THE PHONE: drawn in CSS and two inline SVGs - a charcoal body, a white screen, a plain DM to @Thematic; no device artwork,
   no cutout, no carrier or brand mark. Fixed height (nothing moves as the answers change); the thread clips, never scrolls */
.v-pn-row { display:flex; align-items:center; justify-content:center; gap:clamp(24px, 4vw, 56px); }
.v-win.v-pn { flex:none; box-sizing:border-box; width:300px; padding:9px; align-self:center; border:0; border-radius:46px; background:#14181F;
  box-shadow:0 0 0 1px rgba(20,24,31,.9),0 2px 4px rgba(20,24,31,.06),0 12px 24px rgba(20,24,31,.1),0 28px 56px rgba(20,24,31,.14); }
.v-pn-s { display:flex; flex-direction:column; height:604px; border-radius:37px; overflow:hidden; background:#FFFFFF;
  font-family:var(--v-text); -webkit-font-smoothing:antialiased; text-align:left; }
.v-pn-hd { flex:none; display:flex; align-items:center; gap:8px; padding:22px 14px 10px 10px; border-bottom:1px solid #E6E9ED; }
.v-pn-av { flex:none; width:30px; height:30px; border-radius:9px; background:#14181F; color:#FFFFFF; display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:800; }
.v-pn-av b { color:#0F766E; }
.v-pn-nm { font-size:15px; font-weight:650; color:#14181F; }
.v-pn-th { flex:1 1 auto; min-height:0; overflow:hidden; display:flex; flex-direction:column; gap:10px; padding:14px 12px; }
.v-pn-u, .v-pn-b { box-sizing:border-box; font-size:13px; line-height:1.4; }
.v-pn-u { align-self:flex-end; max-width:84%; padding:8px 12px; border-radius:16px 16px 4px 16px; background:#0F766E; color:#FFFFFF; }
.v-pn-b { align-self:flex-start; width:100%; padding:6px 12px 10px; border-radius:16px 16px 16px 4px; background:#F7F7F9; color:#14181F; }
.v-pn-r { padding:7px 0; border-top:1px solid #E6E9ED; }
.v-pn-b > .v-pn-r:first-child, .v-pn-b > .v-pn-gl + .v-pn-r { border-top:0; }
.v-pn-rh { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.v-pn-rh b { font-weight:600; }
.v-pn-n { flex:none; font-size:12px; color:#5F6875; font-variant-numeric:tabular-nums; }
.v-pn-m { margin-top:2px; font-size:11.5px; color:#5F6875; }
.v-pn-gl { margin-top:8px; font-size:9.5px; font-weight:700; letter-spacing:.08em; color:#5F6875; text-transform:uppercase; }
.v-win .v-pn-l { display:block; margin-top:6px; font-size:12.5px; font-weight:600; color:#0F766E; text-decoration:none; }
.v-pn-cp { flex:none; display:flex; align-items:center; gap:8px; box-sizing:border-box; height:52px; margin:0 12px 14px; padding:0 8px 0 14px;
  border-radius:26px; box-shadow:0 0 0 1px #E6E9ED; transition:box-shadow 120ms cubic-bezier(0.22, 1, 0.36, 1); }
.v-pn.v-pn-f .v-pn-cp { box-shadow:0 0 0 1px rgba(15,118,110,.45); }
.v-pn-cx { flex:1 1 auto; min-width:0; font-size:13px; line-height:1.3; color:#14181F; max-height:2.6em; overflow:hidden; }
.v-pn-ph { color:#5F6875; }
.v-pn-ct { display:none; }
.v-pn.v-pn-f .v-pn-ct { display:inline; }
.v-pn.v-pn-f .v-pn-ph { display:none; }
.v-pn.v-pn-f .v-pn-ct::after { content:""; display:inline-block; width:1px; height:1em; margin-left:1px; vertical-align:-2px; background:#14181F; }
.v-pn-go { flex:none; width:32px; height:32px; border-radius:50%; background:#0F766E; display:flex; align-items:center; justify-content:center; opacity:.35;
  transition:opacity 120ms cubic-bezier(0.22, 1, 0.36, 1); }
.v-pn.v-pn-f .v-pn-go { opacity:1; }
.v-pn-u, .v-pn-b { transition:opacity 140ms cubic-bezier(0.22, 1, 0.36, 1), transform 140ms cubic-bezier(0.22, 1, 0.36, 1); }
.v-pn-th .v-pn-in { opacity:0; transform:translateY(6px); }
.v-pn-b .v-pn-r, .v-pn-b .v-pn-gl, .v-pn-b .v-pn-l { transition:opacity 140ms cubic-bezier(0.22, 1, 0.36, 1), transform 140ms cubic-bezier(0.22, 1, 0.36, 1); }
.v-pn-b .v-pn-x { opacity:0; transform:translateY(4px); }
.v-pn-cap { max-width:30ch; }
.v-pn-line, .v-pn-sub { margin:0; font-size:var(--v-fs-lede); line-height:var(--v-lh-lede); text-wrap:balance; }
.v-pn-line { font-weight:600; color:#14181F; }
.v-pn-sub { margin-top:var(--v-1); color:#5F6875; }
@media (max-width:640px) { .v-pn-row { flex-direction:column; gap:var(--v-4); } .v-pn-cap { max-width:none; text-align:center; } }

/* DELIVERY'S TAGS, NO BOX (audit #9): LIVE / COMING SOON as small caps text like the feed's tags - teal when live,
   slate when not; no outline */
.v-dlv .v-tg { border:0; padding:0; background:none; font-size:11px; font-weight:600; letter-spacing:.06em; }
.v-dlv .v-tg-live { color:#0F766E; }
.v-dlv .v-tg-hollow { color:#5F6875; }

/* THE SCROLL REVEAL (Linear's effect): rise from 95% and fade in as the block enters; parts a step apart */
@keyframes vRv { from { opacity:0; transform:scale(.95); } to { opacity:1; transform:none; } }
@supports (animation-timeline: view()) { @media (prefers-reduced-motion: no-preference) {
  .v-rv { animation:vRv linear both; animation-timeline:view(); animation-range:entry 5% cover 28%; }
  .v-lz-r .v-lz-t.v-rv { animation-range:entry 0% cover 22%; }
} }
html.v-io .v-rv:not(.v-in) { opacity:0; transform:scale(.95); }
html.v-io .v-rv { transition:opacity 420ms cubic-bezier(0.22, 1, 0.36, 1), transform 420ms cubic-bezier(0.22, 1, 0.36, 1); transition-delay:var(--v-d, 0ms); }

/* THE CARD CASCADE: each card rises 10px and fades in, 50ms after the one before */
html.v-io .v-cc > * { transition:opacity 360ms cubic-bezier(0.22, 1, 0.36, 1), transform 360ms cubic-bezier(0.22, 1, 0.36, 1); transition-delay:calc(var(--i, 0) * 50ms); }
html.v-io .v-cc:not(.v-in) > * { opacity:0; transform:translateY(10px); }
@media (prefers-reduced-motion: reduce) { html.v-io .v-rv, html.v-io .v-cc > * { opacity:1 !important; transform:none !important; transition:none; } }

/* ZERO UI (Kyle 2026-10-28 17:04): no decorative grey hairline on the master and firm pages or in the drawer - rows, heads,
   sections, blocks and popovers are set apart by space and type weight. KEPT, functional: focus rings, the search bars'
   SIGNAL border, form fields' own edges, the "/" key caps, the Read's teal rule (.v-at) and the key terms' teal rule, the
   teal chips and the hollow "Coming soon" tag (Kyle's components), the active tab's teal underline, the dark masthead's
   field. The landing's windows keep their chrome (not in this pass). */
.v-foot, .v-mnav, .v-sh, .v-tabs, .v-tabrow, .v-lt-hd, .v-er-hd, .v-nw-hd, .v-lg-t > .v-lab, .v-txt th, .v-txt td, .v-fr, .v-dis,
.v-ovw, .v-rb + .v-rb, .v-frame .v-odl, .v-find-s > .v-find-c, .v-cb-f, .v-cb-r, .v-hero, .v-srch .ui-sh, .v-frame .v-srch a.s-r,
.v-askpg .ak-head, .v-frame .v-askpg a.ak-row, .v-askpg .ak-rank li, .v-plan li, .v-bars, .v-early, .v-reg, .v-nt, .v-rep,
.v-conf, .v-rr, .v-er, .v-lt, .v-lg-r, .v-nw, .v-mo-r, .v-mo-kpis, .v-sb-row, .v-frame .v-sd a.v-sd-all { border-top:0; border-bottom:0; }
.v-cb-r, .v-kt > div, .v-kt > div:nth-child(2n), .v-mo-kpi + .v-mo-kpi, .v-sb-box { border-left:0; }
.v-rd-pk { border:0; padding-left:0; padding-right:0; background:transparent; }
.v-sd, .v-cal-m, .v-cf-pop, .v-share-m { border:0; box-shadow:0 2px 4px rgba(20,24,31,.05), 0 12px 28px rgba(20,24,31,.12); }
.v-dw { box-shadow:-12px 0 32px rgba(20,24,31,.08); }
.v-seg button .v-tab-w, .v-quiet.v-pool-q button[aria-selected=true] .v-tab-w { border-bottom-color:transparent; }
.v-seg button[aria-selected=true] .v-tab-w, .v-seg button[aria-pressed=true] .v-tab-w { border-bottom-color:var(--v-accent); }
.v-quiet.v-pool-q button[aria-selected=true] .v-tab-w { border-bottom-color:transparent; }
/* DESTINATION TABLES (Kyle 2026-10-28 17:55: "Drawers are for context, canvases are for destinations"): the Banks and
   Investors league tables and the Deal Register keep the full table as a premium borderless index. The table's own
   search is the SIGNAL colon prompt and text - no box (replaces the bordered bar here); the control rows quiet type with
   generous vertical padding; no grid or row lines; the rank "1." small muted slate on every row; the name bold charcoal;
   the metadata columns and their heads a lighter grey (#6A727F, still AA 4.85:1) so the eye drops down the names;
   sector names stay teal. */
.v-ask { border:0; background:transparent; box-shadow:none; padding-top:var(--v-3); padding-bottom:var(--v-3); padding-left:0; }
.v-ask:focus-within { box-shadow:none; }
.v-ask .v-ask-q:focus-visible { outline:0; }
/* EVERY LOWER TABLE FILTER (Kyle 2026-10-28 20:07 / 20:15 - the Deal Register page, the sector and firm Deal Register
   views, the Banks / Investors table search): no box AND no fill - it rests on the white page as the blinking SIGNAL
   colon and the lighter placeholder, nothing else (no "/" key cap); the colon blinks while the field is focused too.
   The top global search bar keeps its approved box (GLASS_REST). */
.v-ask, .v-ask:focus-within, .v-ask.v-cb-on, .v-ask .v-ask-q { background:transparent; border:0; box-shadow:none; }
.v-ask .v-cb-k { display:none; }
.v-ask .v-ask-q::placeholder { color:#6A727F; }
.v-pool-q, .v-tabrow, .v-fl-ctl { padding-top:var(--v-3); padding-bottom:var(--v-3); }
.v-fl-lt .v-er-rk::after { content:"."; }
.v-fl-lt .v-er-rk { font-size:12px; color:#6A727F; }
.v-fl-lt .v-er-nm, .v-fl-lt .v-er-nm a, .v-frame .v-fl-lt .v-er .v-er-nm a[href] { font-weight:700; color:var(--v-ink); }
.v-fl-lt .v-er-q, .v-fl-lt .v-er-q a:not(.v-sec):not(.v-subsec), .v-fl-lt .v-er-q .v-lt-q, .v-fl-lt .v-er-hd .v-lab { color:#6A727F; }
.v-fl-lt .v-er { padding-top:var(--v-2); padding-bottom:var(--v-2); }
.v-rr > summary .v-rr-t { font-weight:700; color:var(--v-ink); }
.v-rr > summary .v-rr-y, .v-rr > summary .v-rr-b, .v-rr > summary .v-rr-b a, .v-rr > summary .v-rr-p, .v-rr > summary .v-rr-p a,
.v-rr > summary .v-rr-e, .v-rr > summary .v-rr-e a, .v-rr > summary .v-rr-v, .v-rr > summary .v-rr-d, .v-rr-hd .v-lab { color:#6A727F; }
/* the Reads and every agent text: no vertical rule (Dispatcher 2026-10-28 for Kyle's final look; it was the 2px teal rule,
   Kyle 2026-10-18 15:33 / 10-19 20:44); the sector tag plain teal small caps, no box */
.v-at, .v-at-b { border-left:0; padding-left:0; }
.v-rd-chip, .v-frame a.v-rd-chip { border:0; padding:0; border-radius:0; background:transparent; font-size:11px; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; color:var(--v-accent); }
/* the league list's column labels (leagues_head) */
.v-lg-h { font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:#5F6875; font-weight:500; }
.v-lg-h:hover { background:transparent; }
/* COLLAPSE EMPTY SECTIONS (Dispatcher 2026-10-28): an empty section or block takes no space; the first section under the
   view toggle starts right under it - no stacked margin and padding (LLR's gap) */
.v-section:empty, .v-rb:empty, .v-part:empty, .v-cols-l:empty, .v-cols-r:empty { display:none; }
.v-view > .v-section:first-child, .v-view > :first-child { margin-top:0; padding-top:0; }

.v-xt-tl, .v-vt { display:flex; flex-wrap:wrap; column-gap:var(--v-5); row-gap:var(--v-1); }
.v-xt-tl { display:none; margin:var(--v-3) 0 var(--v-4); }
.v-xt.v-xt-js > .v-xt-tl { display:flex; }
.v-vt { margin:var(--v-4) 0 var(--v-6); }
.v-xt-tl button, .v-vt a, .v-frame .v-vt a { appearance:none; background:transparent; border:0; border-radius:0; margin:0; padding:var(--v-1) 0;
  font:inherit; font-size:12px; font-weight:700; line-height:1.4; letter-spacing:.06em; text-transform:uppercase; cursor:pointer;
  color:var(--v-grey); border-bottom:1px solid transparent; text-decoration:none; }
.v-xt-tl button:hover, .v-vt a:hover, .v-frame .v-vt a:hover { color:var(--v-ink); }
.v-xt-tl button[aria-selected=true], .v-vt a[aria-current=page], .v-frame .v-vt a[aria-current=page] { color:var(--v-accent); border-bottom-color:var(--v-accent); }
.v-xt-tl button:focus-visible, .v-vt a:focus-visible { outline:2px solid var(--v-accent); outline-offset:2px; }
.v-xt-p + .v-xt-p { margin-top:var(--v-6); }
.v-xt.v-xt-js .v-xt-ps { display:grid; }
.v-xt.v-xt-js .v-xt-p { grid-area:1 / 1; visibility:hidden; margin-top:0; }
.v-xt.v-xt-js .v-xt-p.v-xt-on { visibility:visible; }
.v-xt.v-xt-js .v-xt-h { display:none; }
.v-cvl { margin:0 0 var(--v-2); color:var(--v-body); } .v-rk { margin:0 0 var(--v-2); } .v-rk a { color:var(--v-body); text-decoration:none; } .v-rk a:hover { color:var(--v-ink); } .v-rk b { color:var(--v-ink); font-variant-numeric:tabular-nums; }
.v-xt-tl button[aria-disabled=true], .v-xt-tl button[aria-disabled=true]:hover { color:var(--v-grey); opacity:.55; cursor:default; }
html.v-vw-js:not(.v-reg-on) .v-view-reg, html.v-reg-on .v-view-brief { display:none; }

.v-share > .v-btn { border:0; background:none; padding:4px 0; color:var(--v-accent); font-weight:600; }
.v-frame .v-share > .v-btn:hover { color:#0B4F4A; background:none; border-color:transparent; }
.v-btn.v-off, .v-btn.v-off:hover { border:0; background:none; padding:4px 0; color:var(--v-grey); cursor:default; }
.v-btn.v-off .v-tag { border:0; background:none; padding:0; margin-left:8px; font-size:11px; font-weight:600; letter-spacing:.06em;
  text-transform:uppercase; color:var(--v-grey); }
