/* ==========================================================================
   p-proof.css — exp38 stage-7 polish, scoped to TWO pages only:
   public-proof.html (body[data-page="public-proof"]) and
   rsync.html        (body[data-page="rsync"]).

   Loads LAST in both heads, after s37-a11y.css. Every rule is scoped to one
   of the two body classes above; nothing here may reach another page.
   Colour is token-only; no new palette entries.

   Contents
     1. Metadata floor  — remaining sub-12px text these pages render
     2. Terminal radius — flatten the +4px/-3px offsets baked around
                          var(--radius) (terminal's ladder is zero)
     3. Tap targets     — .rs-link hit area; .pp-links halo de-confliction
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. METADATA FLOOR (DESIGN.md founder item 14: nothing renders under 12px).
   s35-craft.css's floors cover the shared classes; these are the leftovers
   on sheets only these two pages load.
   -------------------------------------------------------------------------- */

/* p35-pubproof.css .pp-pm-meta ships .68rem (10.88px). Its children are
   spans, which the craft safety net floors to 12px at render — this makes
   the authored size honest instead of leaning on the net. */
body[data-page="public-proof"] .pp-pm-meta{ font-size:.75rem; }

/* s35-evidence.css .rx-src ships .7rem (11.2px) from an ID-specificity
   :is(#evidence, .ev-embed) rule. s37-a11y.css floors the #evidence copy on
   the landing; this is the same floor for the .ev-embed mounts here. The
   weight is required: no class selector outranks the :is() ID. */
body[data-page="public-proof"] .ev-embed .rx-src{ font-size:12px !important; }

/* p35-pubproof.css .pp-fig .tl: SVG text at 11.5px — the craft safety net
   does not reach SVG <text>, so this floor is a real rendered change. */
body[data-page="public-proof"] .pp-fig .tl{ font-size:12px; }

/* s35-rsync.css: .rs-contract-lab is a <p> with bare text (no span for the
   safety net to catch) at .72rem (11.52px); .rs-found-cve rides the same
   authored size. */
body[data-page="rsync"] .rs-contract-lab,
body[data-page="rsync"] .rs-found-cve{ font-size:.75rem; }

/* --------------------------------------------------------------------------
   2. TERMINAL RADIUS LADDER = 0 (DESIGN.md: terminal flattens every corner;
   "a rounded CRT bar would be wrong"). These page selectors bake arithmetic
   offsets around var(--radius) that survive the token being zero:
   calc(0 + 4px) renders 4px on the plates; calc(0 - 3px) clamps to 0 on the
   chips but stays declared. Terminal is the shipped theme, so flatten flat.
   -------------------------------------------------------------------------- */
body[data-page="public-proof"] .pp-chip,
body[data-page="public-proof"] .pp-ok{ border-radius:0; }
body[data-page="rsync"] .rs-contract,
body[data-page="rsync"] .rs-nums,
body[data-page="rsync"] .rs-ledger,
body[data-page="rsync"] .rs-findings,
body[data-page="rsync"] .rs-found,
body[data-page="rsync"] .rs-chip{ border-radius:0; }

/* --------------------------------------------------------------------------
   2b. DOOR 03's BRANCH NOTE. The hero door li is display:flex and the
   .portal-note span sits beside the anchor, so the note took the row and
   crushed the card into a one-word column at every width. The note belongs
   under the door, full width; the anchor keeps the card.
   -------------------------------------------------------------------------- */
body[data-page="public-proof"] .pp-door{ flex-direction:column; }
body[data-page="public-proof"] .pp-door > .portal-note{
  flex:0 0 auto;
  margin:.45rem 0 0 .15rem;
}

/* --------------------------------------------------------------------------
   3. TAP TARGETS (same device as s37-a11y.css §3: an absolutely-positioned
   pseudo-element grows the hit box without moving a resting pixel).

   .rs-link rests ~17px tall (mono .8rem + border-bottom). Its row wraps at a
   .6rem row gap, so the vertical halo stays under half of it and two hit
   boxes can never intersect.
   -------------------------------------------------------------------------- */
/* the finding-id column ships 5.5rem wide; "CVE-2026-70452" is ~6.6rem in
   .78rem mono, so every CVE id wrapped mid-number. One line per id. */
body[data-page="rsync"] .rs-finding{ grid-template-columns:7rem minmax(0,1fr); }
@media (max-width:640px){
  body[data-page="rsync"] .rs-finding{ grid-template-columns:1fr; }
}

body[data-page="rsync"] .rs-link{ position:relative; }
body[data-page="rsync"] .rs-link::after{
  content:"";
  position:absolute;
  inset:-0.25rem -0.3rem;
}

/* s37-a11y.css gives .cta-quiet a ±0.9rem halo sized for single-link rows.
   .pp-links rows hold up to two quiet links and wrap at a .7rem row gap;
   clamp the vertical halo under half the gap, as s37 does for .link-row. */
body[data-page="public-proof"] .pp-links .cta-quiet::after{ inset:-0.3rem 0; }
