
@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. */
.cover{list-style:none;padding:0;margin:0;border-top:1px solid var(--rule)}
.cover li{font-size:14px;line-height:1.5;color:var(--ink);padding:11px 0;
 border-bottom:1px solid var(--rule);max-width:88ch}
.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}
.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}
@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}
 .masthead a.link{margin:0 20px 0 0;padding:8px 0 12px}
 .masthead .brand{padding:11px 0 5px}
 /* 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}
}
@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}
}

/* Screen-reader-only. ⚠ Not `display:none`, which removes it from the
   accessibility tree as well as from the page — the disclosure button's only
   accessible name is in here. */
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
 clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* ── the filter bar (S048) ────────────────────────────────────────────────
   Sticky, because a register is scrolled and a filter you have to scroll back up
   to reach is one nobody uses twice. Full frame width, on the sunk surface, with a
   rule under it — the same ruled vocabulary as the table it controls, one shade
   apart so it reads as chrome rather than as data. */
.fbar{position:sticky;top:0;z-index:5;background:var(--sunk);
 border-bottom:1px solid var(--ink);margin:0 0 2px}
.fbar-in{max-width:var(--frame);margin:0 auto;padding:10px var(--gut) 8px;
 display:flex;flex-wrap:wrap;gap:10px 13px;align-items:flex-end}
.fc{display:flex;flex-direction:column;gap:3px;position:relative;min-width:0}
/* ⚠ Sized so the search box and all six axes hold **one line** at 1400px, which
   is where the frame is. Measured by rendering: at 210px of search and 132px of
   select the row wrapped and put Status and Sort on a second line, which reads as
   two unrelated control groups rather than one bar. */
.fc.grow{flex:1 1 150px;max-width:250px}
.fc label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;
 color:var(--faint);font-weight:700}
/* ⚠ `appearance:none` plus an explicit square border, because a native select is
   rounded on macOS and the owner's no-radius rule is the one constant of this
   design. The chevron is a CSS triangle on the wrapper rather than a background
   data-URI, so it inherits `currentColor` and survives the dark-scheme flip —
   a data-URI arrow would need a second copy of the file per palette. */
.fc select,.fc input{font:inherit;font-size:13px;color:var(--ink);
 background:var(--surface);border:1px solid var(--rule);padding:6px 9px;
 border-radius:0;appearance:none;-webkit-appearance:none;min-height:31px;
 max-width:100%}
.fc.sel select{padding-right:24px;min-width:112px}
.fc.sel::after{content:"";position:absolute;right:10px;bottom:12px;width:0;
 height:0;border-left:4px solid transparent;border-right:4px solid transparent;
 border-top:5px solid var(--muted);pointer-events:none}
.fc select:focus,.fc input:focus{outline:2px solid var(--accent);
 outline-offset:-1px;border-color:var(--accent)}
.fc input::placeholder{color:var(--faint)}
.fstate{max-width:var(--frame);margin:0 auto;padding:0 var(--gut) 9px;
 display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.fsort{margin-left:auto;display:flex;gap:8px;align-items:center}
.fsort label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;
 color:var(--faint);font-weight:700}
.fsort select{font:inherit;font-size:12.5px;color:var(--ink);
 background:var(--surface);border:1px solid var(--rule);padding:4px 7px;
 border-radius:0;min-height:26px}
.fcount{margin:0;font-size:12px;font-weight:700;color:var(--muted);
 font-variant-numeric:tabular-nums;text-transform:uppercase;letter-spacing:.05em}
.fclear{font:inherit;font-size:12px;font-weight:700;color:var(--accent);
 background:none;border:0;padding:0;cursor:pointer;text-decoration:underline}
/* ── the expandable row ───────────────────────────────────────────────────
   ⚠ The panel is a sibling <tr> with the `hidden` attribute, not a CSS-collapsed
   cell, and it carries free fields only (`index_row`). `PAYWALL.md` Part 2 §1 is
   about *gated* values: those are absent from the index, so they cannot reach a
   panel whether it is open or shut. */
/* ⚠⚠ **The name column is given a share and the rest size to content.** Without
   this the table's whole slack landed in the one cell with long content, so at
   1512px there was ~150px of blank between the transaction name and the LANE
   column and the five dimension columns were jammed against the right edge — it
   read as a broken layout rather than a wide one. A percentage makes the slack
   distribute. Checked by rendering. */
/* ⚠⚠⚠ **`table-layout:fixed`, and it took three measurements to get here.** With
   auto layout the declared widths are advisory: the browser sizes each column by its
   longest unbreakable content, and since every cell here is `nowrap` the table came
   out **1,533px inside a 1,376px container** and pushed TERMS and the disclosure off
   the right edge at every viewport width — 1512, 1280 and 1024 all overflowed.
   Before that, with the name unbounded, the slack all landed in it and left ~150px
   of blank between the transaction and LANE. Fixed layout is the only one of the
   three that is deterministic: the declared widths are honoured, the name column
   takes whatever is left, and long values clip instead of widening the table.
   ⚠ Scoped to `.reg.dense` and not to `.reg`, because the archive table and the
   three league tables share that class with four and three columns — fixed layout
   there would divide the width equally and wreck both. */
.reg.dense{table-layout:fixed}
/* ⚠ Each of these was widened after rendering clipped a real value: `ANNOUNCED`
   collided with the header beside it at 6.5em, `RESTRUCTURING` read `RESTRUCTU…` at
   7.5em, and `CONSTRUCTION & BUILDING` lost its second word at 13em. The 4em they
   cost comes out of the name column, which has the slack. */
.reg.dense th:nth-child(1){width:7.2em}
.reg.dense th:nth-child(3){width:9.6em}
.reg.dense th:nth-child(4){width:14.5em}
.reg.dense th:nth-child(5){width:3.4em}
.reg.dense th:nth-child(6){width:9.5em}
.reg.dense th:nth-child(7){width:3.6em}
.reg.dense th:nth-child(8){width:2.2em}
/* The name column is the one that is *not* declared: it takes the remainder. */
.reg td.nm{min-width:0}
.reg td.dim{overflow:hidden;text-overflow:ellipsis}
/* ⚠⚠ **One line per row, clipped, and that is what makes the row height a
   constant.** With the name allowed to wrap, a two-line row was 56px and a one-line
   row 34px, so the register scanned unevenly and fitted 14 deals rather than 22 —
   the owner's brief was "see many deals on one screen". The reference is
   stockanalysis.com's screener, which sets `white-space:nowrap` on the whole table
   and exempts one text column with a max-width.
   ⚠ Clipped and **not** truncated in the markup: the whole name is in the document
   for a crawler and for a screen reader, and `PAYWALL.md`'s "absent, never hidden"
   governs *gated values* — a company name is the one thing this surface exists to
   publish. The full name is also in the expanded panel and in the `title`. */
.reg td.nm a{display:block;white-space:nowrap;overflow:hidden;
 text-overflow:ellipsis}
.reg th.xc,.reg td.xc{width:30px;padding-right:0;text-align:right}
.reg .x{font:inherit;font-size:15px;line-height:1;font-weight:700;
 color:var(--muted);background:none;border:1px solid transparent;
 padding:2px 5px;cursor:pointer;border-radius:0}
.reg .x:hover{color:var(--ink);border-color:var(--rule)}
.reg .x:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.reg tr.dp>td{background:var(--sunk);padding:12px 14px 14px;
 border-bottom:1px solid var(--rule)}
.reg tr.dp .pm{margin:0 0 7px;font-size:11px;text-transform:uppercase;
 letter-spacing:.06em;color:var(--faint);font-weight:700}
.reg tr.dp .pw{margin:0 0 9px;font-size:13.5px;line-height:1.55;color:var(--ink);
 max-width:96ch}
.reg tr.dp .pt{margin:0 0 5px;font-size:12.5px;color:var(--muted)}
.reg tr.dp .pt b{color:var(--ink)}
.reg tr.dp .pl{margin:9px 0 0;font-size:12.5px;font-weight:700}
.reg tr.dp .pl a{margin-right:16px}
.loadmore{margin:14px 0 0;font-size:13px}
.mb{font:inherit;font-size:13px;font-weight:700;color:var(--ink);
 background:var(--surface);border:1px solid var(--ink);padding:9px 20px;
 cursor:pointer;border-radius:0}
.mb:hover{background:var(--ink);color:var(--surface)}
.mb:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* ── the crawlable filter ─────────────────────────────────────────────────
   ⚠ Kept, and kept below the table. It is the no-JavaScript route to the same
   narrowing, and each of its links is an indexable page — "CCAA filings in
   Alberta" is a search, and this is what gives it somewhere to land. The bar above
   is faster for a reader; this is what a crawler follows. */
.facets{max-width:var(--frame);margin:0 auto;background:var(--surface);
 padding:0 var(--gut) 18px}
.facets .grid{display:grid;
 grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:20px 24px;
 border-top:1px solid var(--ink);padding-top:16px}
.facets .col{min-width:0}
.facets h2{margin:0 0 8px;border:0;padding:0;font-size:11px;
 text-transform:uppercase;letter-spacing:.11em;color:var(--faint);font-weight:700}
.facets ul{list-style:none;margin:0;padding:0}
.facets li{font-size:13px;line-height:1.7}
.facets a{color:var(--accent);text-decoration:none}
.facets a:hover{text-decoration:underline}
.facets .n{color:var(--faint);font-variant-numeric:tabular-nums}
.crumb{max-width:var(--frame);margin:0 auto;background:var(--surface);
 padding:12px var(--gut) 0;font-size:12px;color:var(--faint)}
.crumb a{color:var(--muted);text-decoration:none}
.crumb a:hover{color:var(--ink)}
.terms{display:block;font-size:12px;color:var(--faint);margin:5px 0 0}
.reg .full{display:block;margin:7px 0 0;font-size:13px;color:var(--ink);
 font-variant-numeric:tabular-nums}
.pager{max-width:var(--frame);margin:0 auto;background:var(--surface);
 padding:0 var(--gut) 34px;font-size:13px;display:flex;gap:18px;
 align-items:baseline;border-top:1px solid var(--rule)}
.pager a{color:var(--accent);text-decoration:none;font-weight:700;padding-top:14px}
.pager .of{color:var(--faint);padding-top:14px;white-space:nowrap}
.pager .nums{padding-top:14px;display:flex;flex-wrap:wrap;gap:0 9px;
 font-variant-numeric:tabular-nums}
.pager .nums a{padding-top:0}
.pager .nums .here{font-weight:700;color:var(--ink);
 border-bottom:2px solid var(--accent)}
/* A transaction's own page. The record is a ruled definition list rather than a
   set of boxes — the same reference class as the archive table. */
.rec{max-width:var(--measure);margin:0 auto;background:var(--surface);
 padding:4px 28px 10px}
.rec dl{margin:0;border-top:1px solid var(--rule)}
.rec dt{font-size:11px;text-transform:uppercase;letter-spacing:.09em;
 color:var(--faint);font-weight:700;padding:12px 0 0}
.rec dd{margin:0;padding:2px 0 12px;font-size:15px;color:var(--ink);
 border-bottom:1px solid var(--rule);font-variant-numeric:tabular-nums}
.rec dd .q{display:block;font-size:13px;color:var(--muted);line-height:1.5;
 margin:5px 0 0}
.rec dd .basis{color:var(--faint);font-size:13px}
.rec ul.docs{list-style:none;margin:0;padding:0}
.rec ul.docs li{font-size:14px;line-height:1.6;padding:0 0 5px}
.rec .none{color:var(--faint);font-size:14px;margin:0}
.rec .gate{margin:20px 0 6px}
/* The league tables (TODO 17). ⚠⚠★★★ **In this sheet and not in a third one, and
   that is a correctness rule rather than tidiness.** `site.stylesheet_path` is
   content-addressed on its `extra_css` (TODO 15, S038), so a page passing
   `BROWSE_CSS + LEAGUE_CSS` links `/assets/site-<hash of both>.css` — a URL
   `site.build` never writes, because it emits exactly two sheets. The first
   version of this shipped four **unstyled** pages, found by resolving the href
   against the build tree rather than by looking at the markup. A test now asserts
   every page's sheet exists. */
.lg{max-width:var(--measure);margin:0 auto;background:var(--surface);
 padding:0 28px 8px}
.lg table{width:100%;border-collapse:collapse;margin:0 0 6px}
.lg caption{text-align:left;font-size:12px;color:var(--faint);padding:0 0 8px}
.lg th{text-align:left;font-size:11px;text-transform:uppercase;
 letter-spacing:.09em;color:var(--faint);font-weight:700;
 border-bottom:1px solid var(--rule);padding:0 0 6px}
.lg td{font-size:15px;color:var(--ink);padding:7px 0;
 border-bottom:1px solid var(--rule);font-variant-numeric:tabular-nums}
.lg td.rank,.lg th.rank{width:2.6em;color:var(--faint);font-size:13px}
.lg td.num,.lg th.num{text-align:right;width:7em}
.lg .note{font-size:13px;color:var(--muted);line-height:1.55;margin:0 0 18px}
.lg .more{font-size:13px;margin:0 0 30px}
.lg .more a{color:var(--accent);text-decoration:none;font-weight:700}
.lg h2{font-size:19px;margin:26px 0 4px;border:0;padding:0}
/* The disclosure is desktop-invisible: above 720px every control is on one line. */
.ftoggle{display:none}
@media(max-width:720px){
 .ftoggle{display:block;width:100%;font:inherit;font-size:13px;font-weight:700;
  text-align:left;color:var(--ink);background:var(--surface);
  border:1px solid var(--ink);border-radius:0;padding:10px 12px;cursor:pointer;
  margin:9px var(--gut) 0;width:calc(100% - 2*var(--gut))}
 .ftoggle::after{content:" ▾";color:var(--muted)}
 .fbar[open-filters] .ftoggle::after{content:" ▴"}
 .fbar-in{display:none}
 .fbar[open-filters] .fbar-in{display:flex}
 .fbar-in{gap:9px 12px}
 .fc,.fc.grow{flex:1 1 132px;max-width:none}
 .fc select,.fc input{width:100%}
 /* ⚠ Sticky is wrong on a phone: the bar is two-thirds of the viewport when open,
    so pinning it leaves no register to look at. */
 .fbar{position:static}
 .fsort{margin-left:0}
}
@media(max-width:560px){
 .facets,.crumb,.pager,.rec,.lg{padding-left:var(--gut);padding-right:var(--gut)}
 .facets .grid{gap:16px}
 /* ⚠⚠ **`display:block` on a `<tr>` overrides the `hidden` attribute, and that had
    every detail panel open on a phone.** `hidden` works by a UA-stylesheet
    `display:none`, which an author-level `display:block` beats — so the stacked-row
    rules in `site.SITE_CSS` were silently un-hiding the collapsed panel. Found by
    rendering at 390px. It has to be restated here rather than fixed there, because
    the stacked layout is what needs the block display in the first place. */
 .reg tr[hidden]{display:none}
 /* ⚠ And the fixed layout has to go with it: the column widths are proportions of a
    desktop table, and on a stacked row they squeezed the name into a ~20-character
    column that broke a headline across seven lines. */
 .reg.dense{table-layout:auto}
 .reg.dense th{width:auto}
 .reg td.nm a{white-space:normal;overflow:visible}
 .reg td.dim{max-width:none}
 /* ⚠ The disclosure is pulled out of the stack and onto the date's line, where it
    reads as the row's own control. Left in flow it sat alone under the size, three
    lines below the name it belongs to. */
 .reg tbody tr.r{position:relative;padding-right:34px}
 .reg th.xc{display:none}
 .reg td.xc{position:absolute;top:8px;right:0;width:auto;text-align:right;
  padding:0}
 .reg tr.dp>td{padding:10px 0 12px}
}
