
@font-face{font-family:"Public Sans";font-style:normal;font-weight:400 700;
 font-display:swap;src:url(/fonts/PublicSans-Variable.woff2) format("woff2")}

body{margin:0;background:#f6f7f9;color:#14181f;
 font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif}
.wrap{max-width:660px;margin:0 auto;background:#fff;padding:32px 28px}
h1{font-size:23px;line-height:1.25;margin:0 0 4px;letter-spacing:-.02em}
h2{font-size:13px;text-transform:uppercase;letter-spacing:.09em;color:#6b7280;
 margin:34px 0 14px;padding-bottom:7px;border-bottom:1px solid #e5e7eb}
h3{font-size:17px;margin:0 0 5px;line-height:1.3}
p{margin:0 0 13px}
a{color:#1b4dd8}
.kicker{font-size:12px;text-transform:uppercase;letter-spacing:.11em;color:#8a93a0;margin:0 0 18px}
.lede{font-size:16px;color:#374151;border-left:3px solid #14181f;padding-left:14px;margin:0 0 8px}
.stats{width:100%;border-collapse:collapse;margin:18px 0 6px}
.stats td{padding:11px 12px;border:1px solid #e5e7eb;font-size:14px;width:50%}
.stats .n{font-size:21px;font-weight:650;display:block;letter-spacing:-.02em}
.stats .k{color:#6b7280;font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.deal{border:1px solid #e5e7eb;padding:16px 17px;margin:0 0 13px}
.deal.top{border-color:#14181f;border-width:2px}
.meta{font-size:13px;color:#6b7280;margin:0 0 9px}
.figs{font-size:14px;margin:0 0 9px}
.figs b{font-variant-numeric:tabular-nums}
.desc{font-size:14px;color:#4b5563;margin:0 0 10px}
.credits{font-size:13px;color:#14181f;background:#f3f4f6;padding:8px 10px;margin:0 0 10px}
.cite{font-size:12px;color:#6b7280;margin:0}
.tag{display:inline-block;font-size:11px;background:#eef1f5;color:#374151;
 padding:3px 7px;margin:0 4px 4px 0;letter-spacing:.01em}
.event{float:right;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#6b7280}
table.rows{width:100%;border-collapse:collapse;font-size:13px;margin:0 0 8px}
table.rows th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;
 color:#6b7280;border-bottom:1px solid #e5e7eb;padding:7px 8px;font-weight:600}
table.rows td{border-bottom:1px solid #f1f2f4;padding:8px;vertical-align:top}
.corr{margin:0 0 13px;padding-left:20px;font-size:14px;color:#4b5563}
.corr li{margin:0 0 6px}
.corrnote{border-left:3px solid #b45309;background:#fffbeb;padding:13px 15px;
 margin:22px 0 0;font-size:14px;color:#4b5563}
.corrnote .k{display:block;font-size:11px;text-transform:uppercase;
 letter-spacing:.08em;color:#b45309;font-weight:650;margin:0 0 7px}
.corrnote ul{margin:0;padding-left:19px}
.corrnote li{margin:0 0 5px}
.gate{border:2px dashed #c9ced6;padding:22px;margin:22px 0}
.gate .big{font-size:19px;font-weight:650;margin:0 0 8px;letter-spacing:-.01em}
.gate p{font-size:14px;color:#4b5563;margin:0 0 15px}
.gate ul{margin:0 0 16px;padding-left:20px;font-size:14px;color:#374151}
.gate li{margin:0 0 5px}
.btn{display:inline-block;background:#14181f;color:#fff!important;text-decoration:none;
 padding:12px 26px;font-weight:600;font-size:15px}
.foot{margin-top:34px;padding-top:16px;border-top:1px solid #e5e7eb;
 font-size:12px;color:#8a93a0}
.foot p{margin:0 0 7px}
@media(prefers-color-scheme:dark){
 body{background:#0e1116;color:#e6e8ec}.wrap{background:#151a21}
 h2{color:#9aa3b0;border-color:#262c36}.lede{color:#c3c9d2;border-color:#e6e8ec}
 .stats td{border-color:#262c36}.deal{border-color:#262c36}.deal.top{border-color:#e6e8ec}
 .desc{color:#a8b0bc}.credits{background:#1c222b;color:#e6e8ec}.tag{background:#1c222b;color:#c3c9d2}
 table.rows td{border-color:#1c222b}table.rows th{border-color:#262c36}
 .gate{border-color:#39414d}.gate p,.gate ul{color:#a8b0bc}
 .corr{color:#a8b0bc}
 .corrnote{background:#231c10;border-color:#d97706;color:#c3c9d2}
 .corrnote .k{color:#f59e0b}
 .btn{background:#e6e8ec;color:#0e1116!important}a{color:#7aa2ff}
}

:root{--ink:#16191d;--muted:#565d66;--faint:#78808a;--rule:#d4d8dd;
 --hair:#e7eaee;--surface:#fff;--accent:#0b4ea2;--sunk:#f2f4f6;
 --band:#14181f;--band-ink:#f4f5f7;--band-mute:#9aa3af;
 --measure:660px;--frame:1440px;--gut:32px}
/* ★ `--frame` is the page and `--measure` is the text. A page embedding an issue
   collapses the first onto the second, so the chrome still aligns to the sample
   (S048). `brief.CSS` pins `.wrap` to 660px on its own, so the fragment itself is
   the same width either way. */
body.narrow{--frame:var(--measure);--gut:28px}
.masthead,.hero,.signup,.sample-head,.listing,.sitefoot,.homesec,.figstrip{
 font-family:"Public Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif}
.bound{max-width:var(--frame);margin:0 auto;padding-left:var(--gut);
 padding-right:var(--gut)}
/* ── the masthead ──────────────────────────────────────────────────────────
   ★★ A dark band, which is the one place this design spends contrast. The
   reference class stays a public register — no radius, no shadow, one typeface —
   but a register that charges for a subscription needs a masthead that reads as a
   publication rather than a form. The band does that with weight instead of
   colour, so it survives the dark-scheme flip without a second palette. */
.masthead{background:var(--band);border-bottom:2px solid var(--accent)}
.masthead-in{max-width:var(--frame);margin:0 auto;
 padding:0 var(--gut);display:flex;justify-content:space-between;
 align-items:center;gap:20px;flex-wrap:wrap;min-height:56px}
.masthead .brand{font-weight:700;font-size:17px;letter-spacing:-.012em;
 text-decoration:none;color:var(--band-ink);display:flex;align-items:center;
 gap:9px;padding:11px 0}
.masthead .mark{flex:none;display:block}
.masthead nav{display:flex;flex-wrap:wrap}
.masthead a.link{font-size:12px;color:var(--band-mute);text-decoration:none;
 text-transform:uppercase;letter-spacing:.085em;font-weight:700;
 padding:19px 0 17px;margin-left:24px;border-bottom:2px solid transparent}
.masthead a.link:hover{color:var(--band-ink)}
.masthead a.link.on{color:var(--band-ink);border-bottom-color:var(--accent)}
/* ── page furniture ─────────────────────────────────────────────────────── */
.hero{max-width:var(--frame);margin:0 auto;background:var(--surface);
 padding:38px var(--gut) 6px}
.hero h1{font-size:36px;line-height:1.1;letter-spacing:-.024em;margin:0 0 14px;
 font-weight:700;max-width:30ch}
.hero .sub{font-size:18px;line-height:1.5;color:var(--muted);margin:0 0 24px;
 max-width:74ch}
/* ⚠⚠ **The register's own hero, and it is a fix rather than a variant.** At the
   full scale a listing page spent ~300px of vertical space on a headline and a
   standfirst before the filter bar, on the one surface whose whole brief was "see
   many deals on one screen". A facet page's heading is a *label* — "Mining &
   metals", "Over $1B" — and a label does not need 36px. Checked by rendering. */
.hero.tight{padding:20px var(--gut) 4px}
.hero.tight h1{font-size:25px;margin:0 0 6px;letter-spacing:-.02em;
 max-width:46ch}
.hero.tight .sub{font-size:14.5px;line-height:1.5;margin:0 0 14px;
 max-width:96ch}
.hero.tight .eyebrow{margin:0 0 7px}
.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.13em;
 color:var(--faint);font-weight:700;margin:0 0 12px}
.cta{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 4px}
.cta a{display:inline-block;font-size:15px;font-weight:700;text-decoration:none;
 padding:12px 24px;border:1px solid var(--ink);color:var(--ink)}
.cta a.solid{background:var(--ink);color:var(--surface)}
.cta a:hover{border-color:var(--accent);color:var(--accent)}
.cta a.solid:hover{background:var(--accent);border-color:var(--accent);
 color:#fff}
/* The coverage block: a labelled list read as a spec sheet, not bullets. */
/* ⚠ The cap is on the LIST and not on the item (S056). Each `li` carried
   `max-width:88ch` while its `border-bottom` spanned the container, so once
   `--frame` grew the text stopped at ~790px and the rule under it ran on to
   1,472 — a separator three quarters of which separates nothing. Found by
   rendering `/sources` at 1512 and looking at it. */
.cover{list-style:none;padding:0;margin:0;border-top:1px solid var(--rule);
 max-width:88ch}
.cover li{font-size:14px;line-height:1.5;color:var(--ink);padding:11px 0;
 border-bottom:1px solid var(--rule)}
.who{font-size:13px;color:var(--faint);margin:16px 0 0}
/* ── the figure strip: what the register holds, in numbers ────────────────
   ⚠ Every number here is counted off the build, never written in prose. A
   hardcoded "3,000+ deals" is a claim that rots on the first Monday. */
.figstrip{max-width:var(--frame);margin:0 auto;background:var(--surface);
 padding:6px var(--gut) 0}
.figstrip dl{display:flex;flex-wrap:wrap;gap:0;margin:0;
 border-top:1px solid var(--ink);border-bottom:1px solid var(--rule)}
.figstrip div{padding:14px 26px 13px 0;margin-right:26px;
 border-right:1px solid var(--hair)}
.figstrip div:last-child{border-right:0;margin-right:0}
.figstrip dt{font-size:11px;text-transform:uppercase;letter-spacing:.1em;
 color:var(--faint);font-weight:700;margin:0 0 3px}
.figstrip dd{margin:0;font-size:25px;font-weight:700;letter-spacing:-.022em;
 font-variant-numeric:tabular-nums;line-height:1.1}
.figstrip dd small{display:block;font-size:12px;font-weight:400;
 letter-spacing:0;color:var(--muted);margin-top:3px}
/* ── a home-page section ─────────────────────────────────────────────────── */
.homesec{max-width:var(--frame);margin:0 auto;background:var(--surface);
 padding:30px var(--gut) 4px}
.homesec h2{font-size:13px;text-transform:uppercase;letter-spacing:.1em;
 color:var(--ink);margin:0 0 4px;padding:0 0 9px;font-weight:700;
 border-bottom:1px solid var(--ink)}
.homesec .lead{font-size:15px;color:var(--muted);margin:12px 0 16px;
 max-width:74ch;line-height:1.55}
.homesec .more{font-size:13px;font-weight:700;margin:12px 0 0}
.homesec .more a{color:var(--accent);text-decoration:none}
.homesec .more a:hover{text-decoration:underline}
/* The four lanes, as entry points. A grid of ruled cells rather than cards:
   same reference class as the register table, one step up in scale. */
.lanes{display:grid;grid-template-columns:repeat(auto-fit,minmax(238px,1fr));
 gap:1px;background:var(--hair);border:1px solid var(--hair);margin:14px 0 0}
.lanes a{background:var(--surface);padding:17px 18px 18px;text-decoration:none;
 display:block;color:var(--ink)}
.lanes a:hover{background:var(--sunk)}
.lanes .n{font-size:23px;font-weight:700;letter-spacing:-.02em;
 font-variant-numeric:tabular-nums;display:block}
.lanes .k{font-size:13px;font-weight:700;color:var(--accent);display:block;
 margin:2px 0 5px}
.lanes .d{font-size:12.5px;color:var(--muted);line-height:1.5;display:block}
.signup{max-width:var(--frame);margin:0 auto;background:var(--surface);
 padding:26px var(--gut) 34px}
.signup .box{border:1px solid var(--ink);padding:22px 22px 18px;
 max-width:var(--measure)}
.signup h2{margin:0 0 10px;border:0;padding:0;font-size:13px;
 text-transform:uppercase;letter-spacing:.09em;color:var(--ink)}
.signup p{font-size:14px;color:var(--muted)}
.signup .note{font-size:12px;color:var(--faint);margin:12px 0 0}
.unwired{border:1px solid var(--accent);border-left-width:4px;padding:16px 18px;
 font-size:14px;color:var(--muted)}
.unwired b{color:var(--ink)}
.sample-head{max-width:var(--frame);margin:0 auto;background:var(--surface);
 padding:8px var(--gut) 0}
.sample-head .label{font-size:11px;text-transform:uppercase;letter-spacing:.13em;
 color:var(--faint);font-weight:700;margin:0 0 6px;padding-top:22px;
 border-top:1px solid var(--ink)}
.sample-head p{font-size:13px;color:var(--muted);margin:0}
/* ── the register table ───────────────────────────────────────────────────
   ★★ The company names in it are the whole free acquisition channel (2e), so
   they stay in the markup at full length.
   ⚠⚠ **S048 halved the row height, and density is the product.** At 14px with
   13px of padding a row was 44px tall and eleven of them filled a laptop screen;
   a deal professional scans a register the way they scan a blotter. 13px type on
   7px padding puts a row at 30px and ~24 on the same screen, which is what the
   secondary metadata moving from a second line into its own columns bought. */
.listing{max-width:var(--frame);margin:0 auto;background:var(--surface);
 padding:4px var(--gut) 26px}
.listing.flush{padding-top:0}
.reg{width:100%;border-collapse:collapse;font-size:13px;
 font-variant-numeric:tabular-nums}
.reg caption{text-align:left;font-size:11px;text-transform:uppercase;
 letter-spacing:.13em;color:var(--faint);font-weight:700;padding:0 0 9px}
.reg th{text-align:left;font-size:10.5px;text-transform:uppercase;
 letter-spacing:.085em;color:var(--muted);font-weight:700;padding:0 14px 7px 0;
 border-bottom:1px solid var(--ink);white-space:nowrap}
.reg td{padding:7px 14px 7px 0;border-bottom:1px solid var(--hair);
 vertical-align:top;color:var(--ink);line-height:1.45}
.reg td:last-child,.reg th:last-child{padding-right:0}
.reg tbody tr:hover{background:var(--sunk)}
.reg .num{white-space:nowrap;font-weight:700}
.reg .when{white-space:nowrap;color:var(--muted);width:6.6em}
.reg a{color:var(--accent);text-decoration:none;font-weight:700}
.reg a:hover{text-decoration:underline}
.reg .names{color:var(--muted);font-size:12.5px;line-height:1.45;
 margin:3px 0 0;display:block}
/* A dimension cell: the value, small caps, not a coloured pill. A pill grid is
   the tell that a design came out of a component library. */
.reg .dim{font-size:11px;text-transform:uppercase;letter-spacing:.055em;
 color:var(--muted);white-space:nowrap}
.reg .amt{white-space:nowrap;text-align:right;font-weight:700}
/* ── the archive table's own density pass (item 56, S051) ─────────────────
   ⚠⚠ **It already had two thirds of what the register got, for free.** 13px type
   on 7px padding is on `.reg` itself, so the archive shares it; what it did not
   share was the deterministic layout, because `table-layout:fixed` is scoped to
   `.reg.dense` on purpose — this table has four columns and the three league
   tables have three, and fixed layout divides the width equally where no width is
   declared. Hence a **third** class rather than reusing `dense`: its column count
   is its own, and its widths are declared here against it.
   ⚠ Measured before and after by rendering, not by reading this: a row was
   **73px at 1512, 1280 and 1024 and 91px at 820**, because the company list wrapped
   to two lines and then three as the frame narrowed. It is **55px and the same 55px
   at all four**, which is the register's actual finding — the row height is a
   *constant*, and one line per line of content is what makes it one.
   ⚠⚠ **Clipped, never summarised.** The names are the whole free acquisition
   channel (2e), so the full string stays in the markup and in a `title`, exactly as
   `browse`'s `.reg td.nm a` keeps a transaction's whole name in a clipped cell.
   ⚠ The middle three columns are declared and `Covered in this issue` is not: it
   takes the remainder, which is `.reg.dense`'s rule and the reason the slack does
   not all land in the one cell with long content. */
.reg.issues{table-layout:fixed}
.reg.issues th:nth-child(1){width:4.6em}
.reg.issues th:nth-child(2){width:7.6em}
.reg.issues th:nth-child(3){width:8.2em}
.reg.issues td.cov a,.reg.issues td.cov .names{display:block;
 white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reg.issues .names{margin:1px 0 0}
.empty{font-size:14px;color:var(--muted)}
/* The correction note sits outside the published fragment by design, so it
   needs the measure applied to it here — see `issue_page`. */
.corrbox{max-width:var(--frame);margin:0 auto;background:var(--surface);
 padding:0 var(--gut) 30px}
.corrbox .corrnote{margin-top:0;max-width:var(--measure)}
/* ── the footer, as a route rather than a signature ──────────────────────
   ⚠ A column of links per surface. The old footer named three; a crawler
   reaching a detail page 3,000 links deep needs a way back up to the lane, the
   league tables and the archive from wherever it landed. */
.sitefoot{max-width:var(--frame);margin:0 auto;background:var(--surface);
 padding:26px var(--gut) 48px;font-size:12px;line-height:1.6;color:var(--faint);
 border-top:1px solid var(--ink)}
.sitefoot a{color:var(--muted);text-decoration:none}
.sitefoot a:hover{color:var(--ink);text-decoration:underline}
.sitefoot .cols{display:grid;
 grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:20px 26px;
 margin:0 0 24px}
.sitefoot h2{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;
 color:var(--ink);font-weight:700;margin:0 0 7px;padding:0;border:0}
.sitefoot ul{list-style:none;margin:0;padding:0}
.sitefoot li{font-size:12.5px;line-height:1.85}
.sitefoot .fine{max-width:82ch}
.sitefoot .fine p{margin:0 0 7px}
/* ── the frame grows on a large monitor ────────────────────────────────────
   ⚠⚠⚠ **`--frame` was a fixed 1440px, so a 2560px monitor showed 1,056px of page
   background (41% of the screen) and the register was no wider than it is on a
   laptop.** Measured over HTTP at ten widths: content held at **1,504px from
   1512 all the way to 2560**. The owner's brief was that the site does not adjust
   to their monitor, and this is the whole of it: there was no rule above 1080px
   at all, in either direction.
   ★ The steps are set by the **register table** and not by taste. It is the
   widest thing the site renders — eight columns, every cell `nowrap` — and S048
   measured its natural width at 1,533px, which needs 1,597px of frame at the
   32px gutter. 1440 could never give it that, 1600 can, and 1760 leaves the
   1,533px table its own whitespace on a 1920 screen rather than filling it edge
   to edge.
   ⚠ Prose does not widen with it, which is the point of having two variables:
   `--measure` is untouched, so `.hero .sub`, `.homesec .lead` and every `ch`
   cap hold their line length while the tables take the room. */
@media(min-width:1600px){:root{--frame:1600px;--gut:40px}}
@media(min-width:1900px){:root{--frame:1760px;--gut:48px}}
@media(max-width:1080px){
 :root{--gut:24px}
 .reg .hide-l{display:none}
 .reg th.hide-l{display:none}
}
@media(max-width:820px){
 .reg .hide-m,.reg th.hide-m{display:none}
 .figstrip div{padding-right:20px;margin-right:20px}
 .figstrip dd{font-size:21px}
}
@media(max-width:560px){
 :root{--gut:18px}
 .hero{padding-top:26px}.hero h1{font-size:28px}.hero .sub{font-size:16px}
 .masthead-in{padding-top:2px;padding-bottom:2px}
 /* ⚠ The four surfaces wrapped to two rows with `SUBSCRIBE` orphaned on the
    second, which reads as a page that ran out of room rather than one laid out
    for a phone. Found by screenshotting at 390px, not by measuring overflow —
    there is none, and that is why the probe missed it. The set fits one row at
    390 with the tracking eased and the gaps tightened. */
 .masthead a.link{margin:0 15px 0 0;padding:8px 0 12px;font-size:11px;
  letter-spacing:.055em}
 .masthead nav{flex-wrap:nowrap}
 .masthead .brand{padding:11px 0 5px}
 /* ⚠⚠ **The figure strip stacked and kept its dividers.** `.figstrip div` has a
    `border-right`, which reads as a column rule while the items sit side by
    side and as a **stray vertical line beside each number** once they are one
    per row. Same class of defect as the `.rel` margin stripe S051 found: a rule
    that means one thing in a row and another in a column. Two per row here, so
    the strip is still a strip, with the rule between the pair only. */
 .figstrip dl{display:grid;grid-template-columns:1fr 1fr;gap:0}
 .figstrip div{padding:12px 14px 11px 0;margin-right:0;border-right:0;
  border-top:1px solid var(--hair)}
 .figstrip div:nth-child(-n+2){border-top:0}
 .figstrip dd{font-size:20px}
 /* A multi-column register does not fit a phone: the header row is dropped and
    each row reads as a stacked record. Same markup, so the table is still a
    table to a crawler and to a screen reader. */
 .reg thead{position:absolute;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0)}
 .reg td{display:block;border:0;padding:0 0 3px}
 .reg td.when{width:auto;color:var(--faint)}
 .reg td.amt{text-align:left}
 .reg tr{display:block;padding:11px 0;border-bottom:1px solid var(--rule)}
 .reg tbody tr:hover{background:transparent}
 /* ⚠⚠⚠ **The register's stacked row published unlabelled values and bare
    placeholders, and that is what "it does not really work on my phone" was.**
    With `thead` hidden and every `td` a block, a row read: the date, then the
    name, then `—` on a line of its own, then `1` on a line of its own. Two
    facts with no labels and a placeholder standing in for a third. There is no
    overflow anywhere on this site at 390px or even 360px — the probe found none
    at ten widths — so nothing measurable was wrong. It was found by taking a
    screenshot and reading it, which is S048's lesson for the fourth time.
    ★ The fix puts the date and the name on their own lines and everything else
    on **one meta line**, each item separated by a middot supplied by CSS, and
    hides an item that has nothing to say. `.dim` cells are un-hidden here
    because the lane and the province are the two facts a register reader wants
    and they are short; `.hide-l` stays hidden, because `industry` is
    `Unclassified` on most rows and would be the longest string on the line.
    ⚠⚠ **Scoped to `.reg.dense`, which is S051's finding arriving as a rule
    rather than as a bug.** `.num` is shared by three tables — the register, the
    three league tables and the archive's issue list — so an unscoped
    `.reg td.num::before` would put a middot in front of a firm's transaction
    count and in front of an issue number. `table-layout:fixed` is scoped the
    same way and for the same reason.
    ⚠ The separator is a **leading** middot on every meta cell except the first,
    so a hidden cell takes its own separator with it. A trailing separator
    cannot be suppressed in CSS when the cell after it is display:none, which is
    how the dangling `—` got there in the first place. */
 /* ⚠ `white-space:normal` is not tidiness. Every cell in this table is `nowrap`
    (S048, so `table-layout:fixed` has something to hold), and an inline run of
    four unbreakable cells is one unbreakable line: measured at **370px inside a
    324px box at 360px wide**, a 28px overflow this rule created. The meta line
    is the one place on the narrow layout that must wrap. */
 .reg.dense td.dim,.reg.dense td.amt,.reg.dense td.num{display:inline;
  font-size:12.5px;color:var(--muted);padding:0;white-space:normal}
 .reg.dense td.hide-m{display:inline}
 /* ⚠ Industry stays hidden and needs its own rule at this specificity, because
    `.reg.dense td.dim` above outranks the `.reg .hide-l{display:none}` in the
    1080px block and was un-hiding it by accident. It reads `Unclassified` on
    2,184 of 3,316 rows, so on the one layout where the meta line is a scarce
    resource it is the longest string with the least in it. */
 .reg.dense td.hide-l{display:none}
 /* ⚠ A LEADING space in the separator as well as a trailing one. The cell before
    it is inline and contributes no trailing whitespace of its own, so `"· "`
    rendered `BC· Not in C$`. Found by reading a screenshot. */
 .reg.dense td.dim::before,.reg.dense td.amt::before,
 .reg.dense td.num::before{content:" · ";color:var(--rule)}
 .reg.dense td.lane::before{content:none}
 .reg.dense td.num::after{content:" " attr(data-n)}
 .reg.dense td.empty{display:none}
 .reg.dense td.nm{padding:1px 0 4px}
 /* ⚠ The fixed layout goes with the stacked row, for `browse`'s reason on
    `.reg.dense`: the widths are proportions of a desktop table, and on a phone a
    clipped one-line company list shows three names of eight. Here the names are
    the channel, so on the narrow layout they wrap and nothing is clipped. */
 .reg.issues{table-layout:auto}
 .reg.issues th{width:auto}
 .reg.issues td.cov a,.reg.issues td.cov .names{white-space:normal;
  overflow:visible}
}
@media(prefers-color-scheme:dark){
 :root{--ink:#e8eaed;--muted:#a6adb6;--faint:#828a94;--rule:#272c33;
  --hair:#22272e;--surface:#151a21;--accent:#7fb0ff;--sunk:#1b2129;
  --band:#0c1016;--band-ink:#f0f2f5;--band-mute:#8b949f}
 .cta a.solid{background:var(--ink);color:#0c1016}
 .cta a.solid:hover{color:#0c1016}
}
