/* pn-present-room-20260913.css — STAGE 03 · PRESENT: the pitch room gets the verdict's hierarchy.
   =============================================================================================
   CEO, 13 Sep 2026, two notes on two consecutive screens:
     PRESENT (03): "this whole PP experience lacks design hierarchy, the room warmth graphics are
                    still weak — we should have a better version of this by now"
     VERDICT (04): "this is better — but the previous experience lacks this design nuance"
   So the brief is exact: the VERDICT screen is the reference, PRESENT must read like it.

   WHAT THE VERDICT DOES that the room did not: one column of SOLID objects, top to bottom (seal →
   the WORD at hero scale → brand row → the quote with an accent spine → THE LEDGER: big numeral,
   long track, bar tick → notes), a real portrait card with a mono caption ("THE ROOM, AFTER"), and
   nothing translucent laid over anything else.

   MEASURED BEFORE (design/present-room-2026-09-13/before_1440.png + before_measure.json, real match
   booted headless): the temperature strip (635×187) sat ON TOP of the client feed at y=148 with the
   caption above it — three glass plates over one photograph; the participant tiles were 2×2 px
   dots (`.pn-part` has aspect-ratio and no width once pn-final made the rail a flex strip); the
   verdict word was an 11px 66×23 chip; the "warmth" was two 96px rings.

   NOW: stage = FEED (a portrait card, name-plate + read chip + "THE ROOM, LIVE" caption inside it)
   → THE LIVE LINE (accent spine, cabinet face) → THE ROOM LEDGER (eyebrow, the WORD at hero scale in
   the semantic colour, TEMP as a big numeral + long track with the bar as a tick, INTEREST as a
   second read, the one-line verdict). The room's warmth is AMBIENT: `.pn-call.is-win/.is-edge/
   .is-lose` (set in updateCallRoom) tints the glow behind the feed and the ledger's fill. Rail =
   "IN THE ROOM" header, real participant tiles, the transcript as a stack of cards.
   Loaded LAST; pn-final-20260820.css §30 uses `html body .X{…!important}` (0,1,2), so every rule
   that has to beat it is `html body .pn-callroom .X` (0,2,2) with !important.
   The call is a sanctioned dark seam in every theme (Theme Law §5) — single palette, stated fully.
   ============================================================================================= */
/* CEO launch-weekend audit: the temperature word ("NAIL-BITER") rendered gold/yellow and the
   interest gauge rendered blue — neither colour is in the system. Semantic state is now pinned to
   pn-ds.css's own tokens (--ds-good/--ds-warn/--ds-bad), and "edge" (the un-won, un-lost middle
   state — NAIL-BITER's actual state) reads as --ds-warn, an amber-orange, never gold. */
.pn-callroom{
  --pr-ground:#0B0F16; --pr-card:#10151E; --pr-card-2:#141A25; --pr-line:rgba(255,255,255,.10);
  --pr-ink:#F2F5FA; --pr-ink-dim:#AEB8C7; --pr-eyebrow:#8E9AAC;
  --pr-acc:var(--accent,#F97316);
  --pr-win:var(--ds-good,#3FB950); --pr-win-2:var(--ds-good,#3FB950);
  --pr-edge:var(--ds-warn,#E8862C); --pr-edge-2:var(--ds-warn,#E8862C);
  --pr-lose:var(--ds-bad,#E5484D); --pr-lose-2:var(--ds-bad,#E5484D);
  --pr-cool:var(--ds-accent,#F97316);
  --pr-v:var(--pr-edge); --pr-v2:var(--pr-edge-2); --pr-vglow:232,134,44;
}
.pn-callroom .pn-call.is-win{ --pr-v:var(--pr-win); --pr-v2:var(--pr-win-2); --pr-vglow:63,185,80; }
.pn-callroom .pn-call.is-lose{ --pr-v:var(--pr-lose); --pr-v2:var(--pr-lose-2); --pr-vglow:229,72,77; }
.pn-callroom .pn-call.is-edge{ --pr-v:var(--pr-edge); --pr-v2:var(--pr-edge-2); --pr-vglow:232,134,44; }

/* ── the window ─────────────────────────────────────────────────────────────────────────────── */
html body .pn-callroom .pn-call{ background:var(--pr-ground) !important; border-color:var(--pr-line) !important; }
html body .pn-callroom .pn-call-tb{ background:#0E131B !important; border-bottom:1px solid var(--pr-line) !important; height:46px !important; }
html body .pn-callroom .pn-call-tbtitle{ font-size:11.5px !important; color:var(--pr-ink-dim) !important; }
html body .pn-callroom .pn-call-tbtitle b{ color:var(--pr-ink) !important; }
html body .pn-callroom .pn-call-body{ gap:0 !important; }

/* ── STAGE: a column of solid objects ──────────────────────────────────────────────────────── */
html body .pn-callroom .pn-call-stage{
  padding:18px 18px 16px !important; gap:14px !important;
  background:var(--pr-ground) !important; border-right:1px solid var(--pr-line);
}
/* the boardroom plate stays as ATMOSPHERE only — graded far down, and warmed/cooled by the room */
html body .pn-callroom .pn-call-boardroom,
html body .pn-callroom .pn-call-envbed{ opacity:.22 !important; filter:grayscale(.5) brightness(.45) contrast(1.05) !important; }
html body .pn-callroom .pn-call-stage::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(60% 45% at 50% 38%, rgba(var(--pr-vglow),.26), transparent 70%);
  transition:background .8s ease;
}
/* 1 · THE FEED — a portrait card, the object everything else is measured against */
html body .pn-callroom .pn-call-feed{
  position:relative !important; inset:auto !important; z-index:1;
  flex:1 1 auto !important; min-height:160px !important;
  border-radius:12px !important; overflow:hidden !important;
  box-shadow:0 24px 60px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.10) !important;
}
html body .pn-callroom .pn-call-feed::after{
  background:linear-gradient(180deg,rgba(4,7,12,.28) 0,transparent 22%,transparent 58%,rgba(4,7,12,.86) 100%) !important;
}
html body .pn-callroom .pn-call-feed .pn-call-cliname{
  position:absolute !important; top:auto !important; bottom:14px !important; left:14px !important; z-index:4 !important;
  padding:8px 12px 9px !important; border-left:3px solid var(--pr-acc) !important; border-radius:0 6px 6px 0 !important;
  background:rgba(6,9,14,.82) !important; font-family:var(--pn-type-face) !important; font-weight:800 !important;
  font-size:13px !important; letter-spacing:.02em !important; text-transform:none !important; color:var(--pr-ink) !important;
}
html body .pn-callroom .pn-call-feed .pn-call-cliname span{ font:700 9px/1 var(--mono) !important; letter-spacing:.18em !important; color:var(--pr-ink-dim) !important; margin-top:4px !important; }
html body .pn-callroom .pn-call-feed .pn-call-cliread{
  position:absolute !important; top:14px !important; right:14px !important; z-index:4 !important;
  font:800 9.5px/1 var(--mono) !important; letter-spacing:.16em !important; padding:7px 10px !important;
  border-radius:4px !important; background:rgba(6,9,14,.82) !important; border:1px solid rgba(255,255,255,.18) !important; color:var(--pr-ink) !important;
}
html body .pn-callroom .pn-feed-cap{
  position:absolute; right:14px; bottom:16px; z-index:4;
  font:700 9px/1 var(--mono); letter-spacing:.22em; color:var(--pr-ink-dim);
}
html body .pn-callroom .pn-call-stage:has(.pn-swing-ov) .pn-feed-cap{ visibility:hidden; }
/* 2 · THE LIVE LINE — the verdict's KEY TAKEAWAY block, live */
html body .pn-callroom .pn-call-caption{
  position:relative !important; z-index:1; flex:0 0 auto !important; margin:0 !important;
  padding:12px 16px 12px 18px !important; border-radius:0 8px 8px 0 !important;
  background:var(--pr-card) !important; border-left:3px solid var(--pr-acc) !important; border-top:0 !important;
}
html body .pn-callroom .pn-call-caption p{
  font-family:var(--pn-type-face) !important; font-weight:700 !important; font-style:normal !important;
  font-size:clamp(15px,1.25vw,19px) !important; line-height:1.3 !important; letter-spacing:-.01em !important;
  color:var(--pr-ink) !important; text-shadow:none !important; text-wrap:balance;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
html body .pn-callroom .pn-call-caption p b{ font-weight:700 !important; color:var(--pr-acc) !important; }
/* 3 · THE ROOM LEDGER — the verdict's THE LEDGER, before the verdict exists */
html body .pn-callroom .pn-tempstrip{
  position:relative !important; z-index:1; flex:0 0 auto !important;
  padding:14px 18px 16px !important; border-radius:10px !important;
  background:var(--pr-card) !important; border:1px solid var(--pr-line) !important; border-top:1px solid var(--pr-line) !important;
  display:grid; grid-template-columns:auto 1fr; grid-template-areas:"head head" "word gauges" "verdict verdict";
  column-gap:22px; row-gap:8px; align-items:center;
}
html body .pn-callroom .pn-temp-head{ grid-area:head; margin:0 !important; }
html body .pn-callroom .pn-temp-eyebrow{ font:800 9.5px/1 var(--mono) !important; letter-spacing:.22em !important; color:var(--pr-eyebrow) !important; }
html body .pn-callroom .pn-temp-note{ display:none; }
/* THE WORD — hero scale, semantic colour, the same object as the verdict's WON/LOST */
html body .pn-callroom .pn-temp-stamp{
  grid-area:word; align-self:center; justify-self:start;
  font-family:var(--pn-type-face) !important; font-weight:900 !important;
  font-size:clamp(30px,3.3vw,50px) !important; line-height:.92 !important; letter-spacing:-.03em !important;
  padding:0 !important; border:0 !important; border-radius:0 !important; background:none !important;
  color:var(--pr-v) !important; text-shadow:0 0 34px rgba(var(--pr-vglow),.45) !important; white-space:nowrap;
}
/* the two reads, as ledger rows: label · numeral · long track */
html body .pn-callroom .pn-gauges{ grid-area:gauges; display:flex !important; flex-direction:column !important; gap:16px !important; padding-top:2px; align-items:stretch !important; justify-content:center !important; min-width:0; }
html body .pn-callroom .pn-gauge{
  position:relative !important; width:auto !important; aspect-ratio:auto !important; flex:none !important;
  display:grid !important; grid-template-columns:64px 44px 1fr; align-items:center !important; column-gap:10px;
}
html body .pn-callroom .pn-gauge-lbl{ margin:0 !important; font:800 9px/1 var(--mono) !important; letter-spacing:.18em !important; color:var(--pr-eyebrow) !important; position:static !important; }
html body .pn-callroom .pn-gauge-n{
  position:static !important; font-family:var(--pn-type-face) !important; font-weight:900 !important;
  font-size:24px !important; line-height:1 !important; letter-spacing:-.02em !important; color:var(--pr-ink) !important;
  font-variant-numeric:tabular-nums; text-align:right;
}
html body .pn-callroom .pn-gauge--temp .pn-gauge-n{ color:var(--pr-v) !important; }
html body .pn-callroom .pn-gauge-bar{ position:relative; display:block; height:12px; border-radius:6px; background:rgba(255,255,255,.10); overflow:visible; }
html body .pn-callroom .pn-gauge-arc{
  position:absolute; left:0; top:0; bottom:0; width:0; border-radius:6px;
  background:linear-gradient(90deg,var(--pr-v2),var(--pr-v)); transition:width .7s cubic-bezier(.2,.8,.3,1), background .4s ease;
  stroke:none; fill:none;
}
/* interest is not a win/lose read — it stays on the accent, never the banned blue. */
html body .pn-callroom .pn-gauge--interest .pn-gauge-arc{ background:var(--ds-accent,#f97316); }
html body .pn-callroom .pn-gauge-mk{ position:absolute; top:-3px; bottom:-3px; width:3px; margin-left:-1px; background:#fff; box-shadow:0 0 8px rgba(255,255,255,.6); border-radius:2px; }
html body .pn-callroom .pn-gauge-mk em{
  position:absolute; top:calc(100% + 5px); left:50%; transform:translateX(-50%);
  font:800 7.5px/1 var(--mono); font-style:normal; letter-spacing:.16em; color:var(--pr-ink-dim); white-space:nowrap;
}
html body .pn-callroom .pn-temp-verdict{
  grid-area:verdict; margin:2px 0 0 !important; text-align:left !important;
  font:500 12.5px/1.4 IS,ui-sans-serif,system-ui,sans-serif !important; color:var(--pr-ink-dim) !important;
}
/* ── RAIL: who is in the room, and what they said ──────────────────────────────────────────── */
html body .pn-callroom .pn-call-rail{ background:#0D1219 !important; padding:18px 18px 12px !important; gap:12px !important; border-left:1px solid var(--pr-line) !important; }
html body .pn-callroom .pn-call-rail::before{
  content:"IN THE ROOM"; flex:none; font:800 9.5px/1 var(--mono); letter-spacing:.22em; color:var(--pr-eyebrow);
}
html body .pn-callroom .pn-rail-parts{ padding:0 !important; gap:8px !important; }
html body .pn-callroom .pn-part{
  width:64px !important; height:64px !important; flex:none !important; aspect-ratio:1 !important;
  border-radius:8px !important; background:var(--pr-card-2) !important; border:1px solid var(--pr-line) !important;
}
html body .pn-callroom .pn-part.speaking{ border-color:var(--pr-acc) !important; box-shadow:0 0 0 1px var(--pr-acc), 0 0 18px rgba(249,115,22,.35) !important; }
html body .pn-callroom .pn-part .nm{ font:700 8px/1.1 var(--mono) !important; padding:12px 6px 5px !important; }
html body .pn-callroom .pn-part .mc{ top:4px !important; right:4px !important; min-width:28px !important; height:14px !important; font-size:7px !important; }
html body .pn-callroom .pn-rail-transcript{
  position:relative; padding:12px 4px 0 0 !important; border-top:1px solid var(--pr-line) !important;
  gap:8px !important; font-size:14.5px !important;
}
html body .pn-callroom .pn-rail-transcript::before{
  content:"LIVE TRANSCRIPT · NEWEST FIRST"; display:block; flex:none; margin-bottom:2px;
  font:800 9.5px/1 var(--mono); letter-spacing:.22em; color:var(--pr-eyebrow);
}
html body .pn-callroom .pn-rail-transcript > *{ margin-bottom:0 !important; }
html body .pn-callroom .pn-tr-beat{
  padding:11px 14px 11px 16px !important; border-radius:0 8px 8px 0 !important; border-left-width:3px !important;
  background:var(--pr-card) !important; color:var(--pr-ink) !important; font:500 14px/1.45 IS,ui-sans-serif,system-ui,sans-serif !important;
}
html body .pn-callroom .pn-tr-beat.beat-event{ background:var(--pr-card-2) !important; border-left-color:var(--pr-acc) !important; }
html body .pn-callroom .pn-tr-beat.beat-warm, html body .pn-callroom .pn-tr-beat.beat-open{ border-left-color:var(--pr-win) !important; }
html body .pn-callroom .pn-tr-beat.beat-cool{ border-left-color:var(--pr-lose) !important; }
html body .pn-callroom .pn-tr-beat.beat-swing{ border-left-color:var(--pr-edge) !important; }
html body .pn-callroom .pn-tr-beat .muted, html body .pn-callroom .pn-tr-beat .small{ color:var(--pr-ink-dim) !important; }
html body .pn-callroom .pn-tr-empty{ color:var(--pr-ink-dim) !important; font-size:14px !important; }
/* ── DOCK ──────────────────────────────────────────────────────────────────────────────────── */
html body .pn-callroom .pn-call-dock{ background:#0E131B !important; border-top:1px solid var(--pr-line) !important; padding:12px 18px !important; }
html body .pn-callroom .pn-dock-ctrl{ background:var(--pr-card-2) !important; border-color:var(--pr-line) !important; color:var(--pr-ink) !important; font-size:9.5px !important; }
html body .pn-callroom .pn-call-boom{ background:var(--pr-card-2) !important; border-color:var(--pr-line) !important; }

/* ── THE SWING, MOVED INTO THE DOCK · CEO launch-weekend audit ───────────────────────────────
   "The only prominent action is 'Skip to verdict' — the swing choice exists but sits down the
   left column where the eye never goes. Move the swing choice into the dock rail beside the
   primary action so the player's real move is where their attention already is." Presentation
   only: `.pn-swing-host` moved in the markup (script-01.js callWindowHTML) from inside
   `.pn-call-stage` to a direct child of `.pn-call-dock`, right before the spacer/Skip button.
   `matchSwing()`, its Time costs and both option ids (#match-swing-safe/#match-swing-bold) are
   byte-for-byte unchanged — updateCallRoom() still just fills `.pn-swing-host` and wires the
   same two onclicks, wherever that host now lives in the DOM.

   The old full-stage overlay treatment (position:absolute, hazard-hatched glow card, chamfer)
   does not fit a dock row and was already off-system (binding ruling #4/#6: no glow, no
   gradient fill, no chamfer) — repainted here as two flat pill buttons in the dock's own
   language, TIME cost kept (the one number that matters at a glance), the long description
   dropped (a dock row is not the place for a paragraph; the two words + the cost say the
   decision). Skip to verdict is hidden for the moment the swing is live — it already no-ops
   behind a toast then (script-01.js: "the Big Swing is on the table — make your call first"),
   so showing it as if it were a third live choice was the confusion, not a feature. */
html body .pn-callroom .pn-call-dock{ flex-wrap:wrap; row-gap:10px; }
html body .pn-callroom .pn-call-dock:has(.pn-swing-ov) #match-skip{ display:none !important; }
html body .pn-callroom .pn-call-dock .pn-swing-ov{
  position:static !important; inset:auto !important; z-index:auto !important; animation:none !important;
  display:flex !important; flex-direction:row !important; flex-wrap:wrap !important;
  align-items:center !important; justify-content:flex-start !important; gap:8px 12px !important;
  width:100% !important; order:5; padding:0 !important; text-align:left !important; background:none !important;
}
html body .pn-callroom .pn-call-dock .pn-swing-ov::before{ content:none !important; }
html body .pn-callroom .pn-call-dock .pn-swing-ov .kick{ flex:0 0 100% !important; margin:0 !important; }
html body .pn-callroom .pn-call-dock .pn-swing-ov h4{
  flex:1 1 200px !important; margin:0 !important; font-size:14px !important; font-style:normal !important;
  text-transform:none !important; color:var(--pr-ink) !important; text-shadow:none !important; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
/* the long description reads fine as the button's own title/aria — not as dock copy. A dock row
   is a strip, not a card: both the intro paragraph AND each option's own long line are dropped
   VISUALLY here, leaving the bold word + the Time cost — "the two words + the cost say the
   decision". `.sr-only` (pn-feedback-20260815.css), not display:none, so a screen reader still
   reads the full option text; only the sighted layout is compacted. */
html body .pn-callroom .pn-call-dock .pn-swing-ov .sub{
  position:absolute !important; width:1px !important; height:1px !important; padding:0 !important;
  margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important;
}
html body .pn-callroom .pn-call-dock .pn-swing-opt small{
  position:absolute !important; width:1px !important; height:1px !important; padding:0 !important;
  margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important;
}
html body .pn-callroom .pn-call-dock .pn-swing-ov .opts{
  display:flex !important; flex:0 0 auto !important; width:auto !important; margin:0 !important; gap:8px !important;
}
html body .pn-callroom .pn-call-dock .pn-swing-opt{
  position:relative !important; flex-direction:row !important; align-items:center !important; gap:9px !important;
  min-width:0 !important; flex:0 0 auto !important; min-height:44px !important; padding:0 16px !important;
  border-radius:var(--ds-r-pill,999px) !important; box-shadow:none !important; transform:none !important;
}
html body .pn-callroom .pn-call-dock .pn-swing-opt::before{ content:none !important; }
html body .pn-callroom .pn-call-dock .pn-swing-opt .lbl{
  position:absolute !important; width:1px !important; height:1px !important; padding:0 !important;
  margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important;
}
html body .pn-callroom .pn-call-dock .pn-swing-opt b{
  font-size:13px !important; font-style:normal !important; text-transform:none !important; letter-spacing:normal !important;
  white-space:nowrap;
}
html body .pn-callroom .pn-call-dock .pn-swing-opt .stakes{ margin:0 !important; padding:0 !important; gap:6px !important; }
/* the Time cost is the one number a dock row keeps visually; the other stake chips (Certain /
   High variance / Fame or flames) stay in the DOM and reachable, just visually compacted. */
html body .pn-callroom .pn-call-dock .pn-swing-opt .stakes .pn-stake--calm,
html body .pn-callroom .pn-call-dock .pn-swing-opt .stakes .pn-stake--hot{
  position:absolute !important; width:1px !important; height:1px !important; padding:0 !important;
  margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important;
}
/* A · Safe — unfilled, stroked (binding ruling #6: "strokes where appropriate") */
html body .pn-callroom .pn-call-dock .pn-swing-opt.is-safe{
  background:transparent !important; border:1px solid var(--pr-line) !important;
}
html body .pn-callroom .pn-call-dock .pn-swing-opt.is-safe:hover{ background:var(--pr-card-2) !important; transform:none !important; }
/* B · The swing — filled accent, flat, no glow/gradient/chamfer */
html body .pn-callroom .pn-call-dock .pn-swing-opt.is-bold{
  background:var(--pr-acc) !important; border:0 !important; box-shadow:none !important;
}
html body .pn-callroom .pn-call-dock .pn-swing-opt.is-bold b,
html body .pn-callroom .pn-call-dock .pn-swing-opt.is-bold .pn-stake--time{ color:#14060d !important; }
html body .pn-callroom .pn-call-dock .pn-swing-opt.is-bold .pn-stake--time{ border-color:rgba(20,6,13,.35) !important; background:rgba(20,6,13,.12) !important; }
html body .pn-callroom .pn-call-dock .pn-swing-opt.is-bold:hover{ filter:brightness(1.08); transform:none !important; box-shadow:none !important; }
@media (max-width:640px){
  /* the two buttons alone carry the choice at 390px — sr-only, not display:none, same reasoning */
  html body .pn-callroom .pn-call-dock .pn-swing-ov h4{
    position:absolute !important; width:1px !important; height:1px !important; padding:0 !important;
    margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important;
  }
  html body .pn-callroom .pn-call-dock .pn-swing-ov .opts{ width:100% !important; }
  html body .pn-callroom .pn-call-dock .pn-swing-opt{ flex:1 1 0 !important; justify-content:center !important; }
}

/* ── ≤1100: the body stacks (pn-final) — the ledger keeps its grid, the word steps down ────── */
@media (max-width:1100px){
  html body .pn-callroom .pn-call-stage{ border-right:0; border-bottom:1px solid var(--pr-line); }
  html body .pn-callroom .pn-call-feed{ height:34vh !important; min-height:200px !important; }
}
/* ── phone: one object at a time, solid, in order (PN-M4b stands: caption hidden, verdict hidden,
   participants hidden — the transcript carries the words). The WORD stays the biggest thing on the
   ledger and the two reads stack under it. ── */
@media (max-width:760px){
  html body .pn-callroom .pn-call-stage{ padding:12px 12px 10px !important; gap:10px !important; }
  html body .pn-callroom .pn-call-feed{ height:30vh !important; min-height:180px !important; border-radius:10px !important; }
  html body .pn-callroom .pn-tempstrip{
    padding:12px 14px 13px !important; grid-template-columns:1fr; grid-template-areas:"head" "word" "gauges"; row-gap:10px;
  }
  html body .pn-callroom .pn-temp-stamp{ font-size:34px !important; }
  html body .pn-callroom .pn-temp-note{ display:none; }
  html body .pn-callroom .pn-gauge{ grid-template-columns:56px 40px 1fr; }
  html body .pn-callroom .pn-gauge-n{ font-size:20px !important; }
  html body .pn-callroom .pn-call-rail{ padding:12px 12px 8px !important; }
  html body .pn-callroom .pn-call-rail::before{ display:none; }
  /* PN-M4b stands: five cam tiles on a 390 screen is the dual-view waste the team law bans — and
     pn-final's `display:flex !important` had quietly overruled style-01's phone hide. */
  html body .pn-callroom .pn-rail-parts{ display:none !important; }
  html body .pn-callroom .pn-rail-transcript{ border-top:0 !important; padding-top:0 !important; }
}
@media (prefers-reduced-motion:reduce){
  html body .pn-callroom .pn-gauge-arc{ transition:none; }
  html body .pn-callroom .pn-call-stage::before{ transition:none; }
}
