:root {
  --v-ink:#14181F; --v-body:#374151; --v-grey:#7A8290; --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:'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-fs-title:32px; --v-fw-title:700; --v-lh-title:1.2; --v-ls-title:-.5px;
  --v-fs-section:11px; --v-fw-section:600; --v-lh-section:1.35; --v-ls-section:.08em;
  --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-pagenav:14px; --v-fw-pagenav:500; --v-lh-pagenav:1.3; --v-ls-pagenav:0;
  --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-pagenav { font-family:var(--v-text); font-size:var(--v-fs-pagenav); font-weight:var(--v-fw-pagenav); line-height:var(--v-lh-pagenav); letter-spacing:var(--v-ls-pagenav); }
.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 */
.v-sec, .v-frame a.v-sec { color:var(--v-accent); font-weight:600; }
.v-subsec, .v-frame a.v-subsec { color:var(--v-accent); font-weight:400; }
.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 { color:var(--v-neon); }
.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-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:underline; text-underline-offset:3px; }
.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); }
.v-pnav { position:sticky; top:0; z-index:30; background:var(--v-paper); display:flex; gap:var(--v-1) var(--v-5);
  overflow-x:auto; white-space:nowrap; scrollbar-width:none; margin-top:var(--v-3); padding:var(--v-2) 0;
  border-bottom:1px solid var(--v-rule); }
.v-pnav::-webkit-scrollbar { display:none; }
.v-pnav a { font-family:var(--v-text); font-size:var(--v-fs-pagenav); font-weight:var(--v-fw-pagenav); line-height:var(--v-lh-pagenav); letter-spacing:var(--v-ls-pagenav); text-transform:none; color:var(--v-grey); padding:2px 0; border-bottom:2px solid transparent; }
.v-pnav a.on, .v-pnav a:hover, .v-pnav a:focus-visible { color:var(--v-ink); border-bottom-color:var(--v-accent); }
html:has(.v-pnav) { scroll-padding-top:56px; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce) { html:has(.v-pnav) { scroll-behavior:auto; } }

/* ---- 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); }
.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: the name shows in full (Kyle 2026-10-17 23:17: "make names fit"), wrapping between words
   to a second line when the box is narrow - never mid-word; the count and the trend pill stay together right after
   the name's last word and never wrap apart (Cowork 2026-10-17) */
.v-sb-t { white-space:nowrap; overflow-wrap:normal; }
.v-sb-nm { white-space:normal; }
.v-sb-line .v-sb-lt { white-space:normal; }
.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 Deals page's MARKET VOLUME box (Kyle 2026-10-17 10:18): a row a month - "Aug · 220 (36%)" in normal case (Kyle
   23:17), then a small bar on one shared track (the box's grid), so the bars scale to the months' counts */
.v-sb-vol { display:grid; grid-template-columns:max-content minmax(24px,1fr); column-gap:var(--v-2); row-gap:var(--v-1);
  align-items:center; }
.v-sb-vl { 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); white-space:nowrap; }
.v-sb-vt { display:block; min-width:0; }
.v-sb-vt i { display:block; height:6px; border-radius:1px; background:var(--v-accent); }
@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 2026-10-16 12:24 / 12:46; 2026-10-17 23:20 #4-#6): ONE component wherever The Read shows, the
   email Read box's look (daily_read.box): a light teal ground with a 3px teal rule on the left; each box its chip at
   the top left (teal outline, linked), the claim in bold, then its evidence, then straight on - a small gap, no rule -
   its own Move as one paragraph: the chevron, "The Move" a bold run-in, the Move; the receipt-light provenance footer
   at the bottom right */
.v-rd { background:var(--v-sel); border-left:3px solid var(--v-accent); padding:var(--v-4) var(--v-5); }
.v-rd-hd { display:flex; flex-wrap:wrap; justify-content:flex-start; align-items:center; gap:var(--v-1) var(--v-3);
  margin-bottom:6px; }
.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; }
.v-frame a.v-rd-chip { color:var(--v-accent); }
.v-frame a.v-rd-chip:hover, .v-frame a.v-rd-chip:focus-visible { background:var(--v-paper); }
.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-ink); }
.v-at > .v-rd-p { color:var(--v-body); }       /* the Read's claim and Move: THE AGENT TEXT's slate (agent_text) */
.v-rd-thin { background:none; border-left:0; padding:0; }   /* THE THIN READ (moving_band thin): the agent text alone */
.v-rd-p strong { font-weight:700; }
.v-rd-p strong .v-sec, .v-frame .v-rd-p strong a.v-sec { font-weight:inherit; }
.v-frame a.v-rd-a { color:inherit; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px;
  text-decoration-color:color-mix(in srgb, var(--v-accent) 35%, transparent); }
.v-frame a.v-rd-a:hover, .v-frame a.v-rd-a:focus-visible { color:var(--v-accent); text-decoration-color:currentColor; }
.v-frame .v-rd-mv { margin-top:var(--v-2); }
.v-rd-mv .v-chev { margin-right:4px; }
.v-rd-mk { font-weight:700; color:var(--v-ink); }
.v-rd-lead { padding-bottom:var(--v-4); margin-bottom:var(--v-4);
  border-bottom:1px solid color-mix(in srgb, var(--v-accent) 25%, transparent); }
.v-rd-g { display:grid; column-gap:var(--v-5); row-gap:0; }
.v-rd-c2 { grid-template-columns:repeat(2, minmax(0,1fr)); }
.v-rd-c3 { grid-template-columns:repeat(3, minmax(0,1fr)); }
.v-rd-box { min-width:0; }
.v-rd-dt { 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; white-space:nowrap; }
.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;
  border-top:1px solid color-mix(in srgb, var(--v-accent) 18%, transparent); margin-top:var(--v-4); padding-top:10px; }
@media (max-width:760px) { .v-rd-c2, .v-rd-c3 { grid-template-columns:minmax(0,1fr); }
  .v-rd-g > .v-rd-box:not(:first-child) { margin-top:var(--v-5); } }
/* 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. Then the Move, a full step below */
.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; 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:underline; text-underline-offset:3px; }
.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); }
.v-frame .v-rd-pks + .v-rd-mv { margin-top:var(--v-4); }
@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, Subsector
   minmax(0,1.2fr) | Type, Sponsor, Sell-side minmax(0,1fr) | Buyer minmax(180px,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) minmax(0,1.2fr) minmax(0,1.2fr) minmax(0,1fr) minmax(180px,1.5fr) minmax(0,1fr) minmax(0,1fr) 100px 80px; --v-reg-min:1105px; --v-reg-gap:16px; }
.v-reg-role { --v-reg-cols:16px minmax(180px,1.5fr) minmax(0,1fr) minmax(0,1.2fr) minmax(0,1.2fr) minmax(0,1fr) minmax(180px,1.5fr) minmax(0,1fr) minmax(0,1fr) 100px 80px; --v-reg-min:1196px; }
.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 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-frame .v-rr-s a.v-sec { font-weight:500; }
.v-frame .v-rr-u a.v-subsec { font-weight:400; }
.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[open] > summary .v-chev { transform:rotate(90deg); }
.v-rr-more { 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 p.v-rr-hq { 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-bottom:var(--v-2); }   /* "HQ: Austin, TX" - metadata, no rule */
.v-rr-more .v-at { max-width:72ch; }
.v-rr-s .v-tg-sector { white-space:normal; max-width:100%; }     /* a long sector's chip wraps inside its track */
.v-rr-f { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:var(--v-1) var(--v-6); margin:var(--v-3) 0; }
.v-rr-f div { display:flex; gap:var(--v-2); }
.v-rr-f .v-rr-k { color:var(--v-grey); flex:none; min-width:90px; }
.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:center; padding:var(--v-4) 0; }
.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); }
.v-dr-lead { margin-bottom:var(--v-5); }       /* THE DEAL REGISTER's short rows over the full list (page_template) */       /* 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; batch 11, Kyle 2026-10-18 #3 / #17): open, no caret, no box - the title, the meta line
   "Publisher (green) · SECTOR chip · date", the 2-sentence synthesis in THE AGENT TEXT, "Read the report ›" (the action
   link) at the bottom right; the rows ruled 1px apart */
.v-brf { padding:var(--v-2) 0; }
.v-brf .v-rep-m .v-tgs { margin-left:0; }
.v-pub { color:var(--v-accent); }
.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 flush right in slate, then the add-to-calendar control
   (the teal calendar icon and the bold teal chevron - the action link's node), ONE right-hand column on fixed tracks
   so every row lines up; (2) the sector chip(s) · the location; (3) THE RIBBON - one slate line of figures, number +
   noun, mid-dots ("11k+ attendees · 70 deals since Aug 1"), software exhibitors a touch heavier; (4) the agent line
   (agent_text). 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:grid; grid-template-columns:auto 40px; column-gap:var(--v-2);
  align-items:baseline; justify-items:end; }
.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; grid-column:1; }
.v-conf-r > .v-cal { grid-column:2; }
.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); }
.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-b .v-act-c { display:inline-block; transition:transform .12s ease; }
.v-cal-b[aria-expanded=true] .v-act-c { transform:rotate(90deg); }
@media (prefers-reduced-motion: reduce) { .v-cal-b .v-act-c { transition:none; } }
.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); }
.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-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-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; }
.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); }
@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-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); }
.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); }
.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); }
.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): one row per block - its label (the section
   header's caps and colour) over its ONE metric, the paragraph beside them; 1px slate-grey rules between the rows (the
   site's slate grey, --v-grey); one column on a phone */
.v-spec { margin-top:var(--v-7); }
.v-spec-r { display:grid; grid-template-columns:minmax(0,280px) minmax(0,1fr); column-gap:var(--v-7); row-gap:var(--v-2);
  padding:var(--v-5) 0; }
.v-spec-r + .v-spec-r { border-top:1px solid var(--v-grey); }
.v-spec-r:first-child { padding-top:0; }
.v-spec-r:last-child { padding-bottom:0; }
.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:820px) { .v-spec-r { 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 boxes (Kyle 2026-10-18 10:34): equal boxes, three to a row, square corners, a 1px border, no fill; the
   status tag hard-edged - Live a solid teal rectangle, white text; Coming soon a hollow grey-bordered rectangle */
.v-dlv { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); grid-auto-rows:1fr; gap:var(--v-4); }
.v-dlv-i { display:flex; flex-direction:column; gap:var(--v-2); min-width:0; padding:var(--v-4); border:1px solid var(--v-rule2);
  border-radius:0; background:var(--v-paper); }
/* 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 (Live);
   hollow = grey border and text (Coming soon). The sector chip joins it as a variant (the Market batch). */
.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); }
/* 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; }
.v-frame a.v-tg-sector:hover, .v-frame a.v-tg-sector:focus-visible { background:var(--v-chip-wash); border-color:var(--v-accent);
  color:var(--v-accent); }
.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 1px 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). */
.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:1px solid var(--v-accent); 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); }
/* 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 ›", "Read the report ›"; the chevron alone (action_chev) is the same node
   (the calendar's menu control) */
.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)); } }
@media (max-width:600px) { .v-dlv { grid-template-columns:minmax(0,1fr); } }

/* ---- 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; }
@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): the name, Top sector, Top sponsor and Latest deal
   left-aligned; the rank and every number (the count, Platforms / Add-ons) right-aligned, tabular figures, the text face */
.v-fl-lt .v-er > span { text-align:left; }
/* 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; }
.v-fl-lt .v-er > .v-er-rk, .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); }
/* 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 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 ~2/3 (Notable, or the
   Sectors hub's cards) | the RAIL ~1/3, .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,2fr) minmax(0,1fr); }
.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-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 */
.v-vol.v-vol-sb { column-gap:var(--v-2); row-gap:2px; }
.v-vol-sb .v-vol-b { flex-wrap:nowrap; }
.v-vol-sb .v-vol-b i { width:4px; 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-key i.v-vol-sq { background:var(--v-grey); }
@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); } }

/* ---- 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-lz { display:flex; flex-direction:column; row-gap:calc(2 * var(--v-7)); margin-top:calc(2 * 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; }
@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:var(--v-sel); color:var(--v-accent); }
.v-win-pill::before { content:""; width:5px; height:5px; border-radius:50%; background:var(--v-neon);
  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; }
/* Ask Thematic in Slack: the channel in the bar, then the Slack sidebar (Kyle 2026-10-18 14:32: the workspace name,
   the channel list, the active channel lit - in the masthead's ink; it takes the card's white space on the right, so the
   window keeps its size; folds away under 640px) beside the thread - the question, Thematic's answer (the bot's
   deal-list card: its bold header, each deal's headline over its date / subsector / value line) */
.v-sk-body { display:grid; grid-template-columns:136px minmax(0,1fr); }
.v-sk-side { background:var(--v-ink); padding:var(--v-3) var(--v-2); display:flex; flex-direction:column; gap:2px; min-width:0; }
.v-sk-ws { display:flex; align-items:center; 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-on-ink); margin-bottom:var(--v-2);
  white-space:nowrap; }
.v-sk-side .v-sk-av.v-sk-t { background:var(--v-ink-field); flex:none; }
.v-sk-lbl { 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); padding:var(--v-1) var(--v-1) 2px; }
.v-sk-chn { 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-ink2); padding:2px var(--v-1); border-radius:4px; white-space:nowrap; }
.v-sk-chn.v-on { background:var(--v-ink-field); color:var(--v-on-ink); }
@media (max-width:640px) { .v-sk-body { grid-template-columns:minmax(0,1fr); } .v-sk-side { display:none; } }
.v-sk-thread { padding:var(--v-2) var(--v-3) var(--v-3); display:flex; flex-direction:column; gap:var(--v-2); }
.v-sk-msg { display:grid; grid-template-columns:26px minmax(0,1fr); gap:var(--v-2); }
.v-sk-msg > div { min-width:0; }
.v-sk-av { width:26px; height:26px; border-radius:6px; display:flex; align-items:center; justify-content:center; white-space:nowrap;
  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; color:var(--v-paper); background:var(--v-grey); }
.v-sk-av.v-sk-t { background:var(--v-ink); }
.v-sk-av b { color:var(--v-neon); }
.v-sk-who { 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-sk-who em { font-style:normal; 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); background:var(--v-tag-bg); padding:0 4px;
  border-radius:3px; margin-left:var(--v-1); }
.v-frame .v-sk-txt { 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); margin-top:2px; }
.v-sk-ment { color:var(--v-accent); background:var(--v-sel); padding:0 3px; border-radius:3px; font-weight:600; }
.v-sk-card { margin-top:var(--v-1); border:1px solid var(--v-rule); border-radius:8px; overflow:hidden; }
.v-sk-hd { padding:5px 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; font-weight:700; color:var(--v-ink); background:var(--v-wash2);
  border-bottom:1px solid var(--v-rule); }
.v-sk-r { display:grid; grid-template-columns:44px minmax(0,1fr); column-gap:var(--v-2); padding:4px var(--v-3);
  border-bottom:1px solid var(--v-rule); }
.v-sk-d { 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-top:2px; white-space:nowrap; }
.v-sk-r b { 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; font-weight:600; color:var(--v-ink); }
.v-sk-m { 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); }
.v-sk-r:last-child { border-bottom:0; }
/* (the card's header 5px and its rows 4px top and bottom - the third deal fits in the window's height; 14:32) */
/* 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; }
}
