/* ==========================================================================
   p-registry.css — page styles for findings.html + engine.html ONLY.
   Prefix: .rg- (shared by both pages; every rule is scoped to one of the two
   body classes below; nothing here may reach another page).
   Token-fed like every section builder: no colour that is not a shell token.
   Green budget on both pages is zero — nothing here reaches for --pass.
   ========================================================================== */

/* one prose measure for both documents (mirrors p-practice's .pp-body) */
:is(body[data-page="findings"],body[data-page="engine"]) .rg-body{
  margin:0;max-width:62ch;
  font-family:var(--prose);font-size:1.06rem;line-height:1.65;color:var(--ink-60);
  text-wrap:pretty;
}
:is(body[data-page="findings"],body[data-page="engine"]) .rg-body p{margin:0 0 1.05rem;}
:is(body[data-page="findings"],body[data-page="engine"]) .rg-body p:last-child{margin-bottom:0;}
:is(body[data-page="findings"],body[data-page="engine"]) .rg-body strong,
:is(body[data-page="findings"],body[data-page="engine"]) .rg-body b{color:var(--ink);font-weight:600;}

/* quiet-link rows (mirrors p-practice's .pp-links) */
:is(body[data-page="findings"],body[data-page="engine"]) .rg-links{
  margin:1.7rem 0 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.7rem 1.6rem;
}

/* the dated machine line above a register entry's heading */
body[data-page="findings"] .rg-meta{
  margin:.2rem 0 0;
  font-family:var(--mono);font-size:.75rem;font-weight:500;line-height:1.7;
  letter-spacing:.07em;text-transform:uppercase;color:var(--muted);
}

/* the per-entry counts line. Deliberately small: an index to the artifacts,
   never a headline (mirrors p35-pubproof's .pp-index). */
body[data-page="findings"] .rg-index{
  display:flex;flex-wrap:wrap;gap:.2rem 1.6rem;margin:1.6rem 0 0;max-width:none;
  font-family:var(--mono);font-size:.78rem;line-height:1.7;letter-spacing:.02em;
  color:var(--muted);
}
body[data-page="findings"] .rg-index b{
  color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums;
  padding-right:.35em;
}

/* the triage-boundary plate: one bordered card per entry, machine label first */
body[data-page="findings"] .rg-bound{
  margin:1.8rem 0 0;max-width:62ch;
  border:1px solid var(--hair);border-radius:var(--radius);background:var(--card);
  padding:1.05rem 1.3rem 1.15rem;
}
body[data-page="findings"] .rg-bound-k{
  margin:0 0 .55rem;
  font-family:var(--mono);font-size:.75rem;font-weight:500;
  letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
}
body[data-page="findings"] .rg-bound p{
  margin:0;font-size:.95rem;line-height:1.62;color:var(--ink-60);
}
/* the credit-rule plate (site v10) is the first .rg-bound to carry more than
   one paragraph, so the stack needs air between them */
body[data-page="findings"] .rg-bound p + p{margin-top:.85rem;}
/* the label already carries the gap below itself */
body[data-page="findings"] .rg-bound .rg-bound-k + p{margin-top:0;}
body[data-page="findings"] .rg-bound b{color:var(--ink);font-weight:600;}

/* the "how to read this" key: the five state words every register entry is
   written in, one bordered plate, same chassis as .rg-bound. The badge glyph
   itself is .rst-badge from p35-pubproof.css — the roster's own component —
   so a word learned here reads the same on the roster cards. The green budget
   still holds: no row here carries .is-fixed, so nothing reaches --pass. */
body[data-page="findings"] .rg-key{
  display:grid;grid-template-columns:max-content 1fr;
  gap:.6rem 1.5rem;margin:0;max-width:62ch;
  border:1px solid var(--hair);border-radius:var(--radius);background:var(--card);
  padding:1.15rem 1.3rem 1.25rem;
}
body[data-page="findings"] .rg-key dt{margin:0;padding-top:.2rem;color:var(--ink);}
body[data-page="findings"] .rg-key dd{
  margin:0;font-size:.95rem;line-height:1.6;color:var(--ink-60);
}
body[data-page="findings"] .rg-key + .rg-body{margin-top:1.8rem;}

/* engine: the artifact line closing each link of the chain */
body[data-page="engine"] .rg-cell{min-width:0;}
body[data-page="engine"] .rg-cell .rg-artifact{
  margin-top:.5rem;
  font-family:var(--mono);font-size:.75rem;line-height:1.6;
  letter-spacing:.05em;color:var(--muted);
}

/* engine: the artifact shapes — placeholders, printed the way the tube
   prints everything. Wide content scrolls inside its own container. */
body[data-page="engine"] .rg-shapes{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:1rem;margin-top:2.2rem;
}
body[data-page="engine"] .rg-shape{
  min-width:0;border:1px solid var(--hair);border-radius:var(--radius);
  background:var(--card);
}
body[data-page="engine"] .rg-shape.rg-shape-wide{grid-column:1 / -1;}
body[data-page="engine"] .rg-shape-h{
  margin:0;padding:.65rem 1.1rem;border-bottom:1px solid var(--hair);
  font-family:var(--mono);font-size:.75rem;font-weight:500;
  letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
}
body[data-page="engine"] .rg-shape pre{
  margin:0;padding:1rem 1.1rem 1.15rem;
  font:400 .78rem/1.7 var(--mono);color:var(--ink);
  overflow-x:auto;
}
body[data-page="engine"] .rg-shape pre .dim{color:var(--muted);}

@media (max-width: 760px){
  body[data-page="findings"] .rg-index{gap:.2rem 1.15rem;}
}

@media (max-width: 560px){
  body[data-page="findings"] .rg-key{grid-template-columns:1fr;gap:0;}
  body[data-page="findings"] .rg-key dt{padding-top:.95rem;}
  body[data-page="findings"] .rg-key dt:first-child{padding-top:0;}
  body[data-page="findings"] .rg-key dd{margin-top:.2rem;}
}

/* --------------------------------------------------------------------------
   v10 · engine.html only. Two additions, both scoped to body[data-page="engine"]
   so findings.html is untouched.

   (a) THE EVIDENCE-BOUNDARY BADGE. Section 06 prints Proof's own corpus counts.
       Those numbers come from Proof's own repository, which is not published,
       so a reader cannot re-run them. The badge says so before the numbers.
       The visual signature is deliberately the same as .pc-chip.is-seeded on
       product.html -- dashed --stale border, --ink label -- so a reader meets
       one badge grammar site-wide. The label is --ink and only the border and
       dot are --stale for the contrast reason p35-product.css documents:
       --stale at chip size lands under the 4.5:1 text floor, while a border
       and a dot are non-text, where 3:1 is the bar.

   (b) THE LANGUAGE MATURITY TABLE. Same geometry as .mp-tbl on method.html
       (which p35-method.css owns and this page does not load): a horizontal
       scroll box around a min-width table, so a four-column matrix never
       makes the page body scroll sideways.
   -------------------------------------------------------------------------- */

body[data-page="engine"] .rg-bound{margin:1.6rem 0 0;}
body[data-page="engine"] .rg-badge{
  display:inline-flex;align-items:center;gap:.45em;
  margin:0;max-width:100%;flex-wrap:wrap;
  font-family:var(--mono);font-size:.63rem;font-weight:600;line-height:1.4;
  letter-spacing:.16em;text-transform:uppercase;
  padding:.24rem .5rem;border-radius:calc(var(--radius) - 3px);
  color:var(--ink);border:1px dashed var(--stale);
}
body[data-page="engine"] .rg-badge::before{
  content:"";flex:0 0 auto;width:6px;height:6px;
  background:var(--stale);border-radius:50%;
}
body[data-page="engine"] .rg-badge-sub{
  margin:.5rem 0 0;
  font-family:var(--mono);font-size:.68rem;font-weight:500;line-height:1.6;
  letter-spacing:.11em;text-transform:uppercase;color:var(--muted);
}

body[data-page="engine"] .rg-tscroll{
  margin:clamp(1.4rem,2.6vw,2rem) 0 0;overflow-x:auto;
}
body[data-page="engine"] .rg-tbl{border-collapse:collapse;width:100%;min-width:42rem;}
body[data-page="engine"] .rg-tbl th,
body[data-page="engine"] .rg-tbl td{
  text-align:left;vertical-align:top;padding:.85rem 1.1rem .85rem 0;
  border-bottom:1px solid var(--hair);
}
body[data-page="engine"] .rg-tbl thead th{
  font-family:var(--mono);font-size:.7rem;font-weight:500;
  letter-spacing:.09em;text-transform:uppercase;color:var(--muted);
  border-bottom:1px solid var(--hair-strong);white-space:nowrap;
}
body[data-page="engine"] .rg-tbl tbody tr:last-child td{border-bottom:0;}
body[data-page="engine"] .rg-tbl .rg-t-lang{
  width:9rem;font-family:var(--mono);font-size:.86rem;font-weight:500;color:var(--ink);
}
body[data-page="engine"] .rg-tbl .rg-t-how{
  font-size:.95rem;line-height:1.5;color:var(--ink-60);
}
body[data-page="engine"] .rg-tbl .rg-t-how b{color:var(--ink);font-weight:600;}
body[data-page="engine"] .rg-tbl .rg-t-ev{
  width:14rem;font-size:.95rem;line-height:1.5;color:var(--ink-60);
}
body[data-page="engine"] .rg-tbl-h{margin:clamp(2rem,3.6vw,2.8rem) 0 .7rem;}
body[data-page="engine"] .rg-tbl-sub{
  margin:0;max-width:62ch;
  font-family:var(--prose);font-size:1.02rem;line-height:1.6;color:var(--ink-60);
}
body[data-page="engine"] .rg-tbl-foot{margin:1rem 0 0;max-width:74ch;}
body[data-page="engine"] .rg-tbl .rg-t-ev b{color:var(--ink);font-weight:600;}

/* ==========================================================================
   THE PRIVATE-WORK BLOCK (site v10, findings.html#entry-gateway)
   The anonymous enterprise engagement is no longer an equivalent entry beside
   public evidence. It sits under its own group heading, inside this block, so
   the subordination is structural and not a sentence a reader has to notice.

   The block reads as an inset: a hairline rule down the left edge, a recessed
   ground, and a title one step below the register's h2. Nothing here uses
   --pass; green on this site is a machine state, and a provenance boundary is
   not one. The PRIVATE / ANONYMIZED badge itself is .pp-chip.is-private from
   p35-pubproof.css §12b, which this page already loads.
   ========================================================================== */
body[data-page="findings"] .rg-private{
  padding:1.5rem 0 1.5rem 1.5rem;
  border-left:1px solid var(--hair-strong);
  background:linear-gradient(90deg,rgba(var(--ink-rgb),.035),transparent 42%);
}
/* the entry kicker now carries a badge beside it: it must be allowed to wrap
   or the chip pushes the row past the viewport at 390px */
body[data-page="findings"] .rg-private .kicker{flex-wrap:wrap;row-gap:.45rem;}
body[data-page="findings"] .rg-private h3{
  margin:.7rem 0 1.1rem;
  font-size:clamp(1.3rem,2.4vw,1.75rem);line-height:1.2;letter-spacing:-.022em;
}
body[data-page="findings"] .rg-private .rg-bound{margin-top:1.6rem;}

@media (max-width: 560px){
  body[data-page="findings"] .rg-private{padding-left:1rem;}
}
