/* Participant-only composition; no staff or authorization visibility rules. */
.rv #participant:has(.participant-intro){max-width:640px;width:100%;margin-inline:auto}
.rv #participant .participant-intro,.rv #participant .participant-pager{max-width:640px;margin:0 auto 16px}
.rv #participant .participant-intro h2{font-size:24px;line-height:1.25}
.rv #participant .participant-intro p{overflow-wrap:anywhere}
.rv #participant .participant-progress{font-size:13px;color:var(--secondary);margin:8px 0}
.rv #participant .participant-page-actions{display:flex;justify-content:space-between;gap:12px}
.rv #participant .participant-page-error{color:var(--warning-ink);background:var(--warning-fill);padding:12px;border-radius:var(--r-button)}
.rv #participant .participant-change{display:block;margin-top:6px;min-height:36px}
.rv #participant #questions fieldset{min-width:0;max-width:640px;margin:0 auto 18px;border:0;padding:0}
.rv #participant #questions legend{font-size:22px;line-height:1.3;margin-bottom:18px;font-weight:600}
.rv #participant #questions legend:focus{outline:2px solid var(--focus);outline-offset:4px}
@media(max-width:700px){.rv #participant #questions legend{font-size:20px}}

/* Intro offers Begin only; recovery remains independently available. */
.rv #participant:has(.participant-intro:not([hidden])) #participant-review-original{display:none}
.rv #participant:has(.participant-intro) > h2,
.rv #participant:has(.participant-intro) > .participant-arrival,
.rv #participant:has(.participant-intro) > #participant-code-guidance,
.rv #participant:has(.participant-intro) > #about,
.rv #participant:has(.participant-intro) > p.note:not([id]),
.rv #participant:has(.participant-intro) > #redeem > label,
.rv #participant:has(.participant-intro) > #redeem > button{display:none}

/* Shared participant route: brand + right side only; no staff chrome or wording.
   Presentation only — authority-bearing hidden flags and identity text are untouched. */
@media screen {
  body[data-workspace-route="participant"] #workspace > .headrow,
  body[data-workspace-route="participant"] #workspace > .introduction,
  body[data-workspace-route="participant"] aside.tree,
  body[data-workspace-route="participant"] #signout { display:none; }
  /* Bugbot 4036574263: hiding the aside must also collapse the shell grid (the shared route does it via aside[hidden]). */
  body[data-workspace-route="participant"] .shell { grid-template-columns:minmax(0,1fr); }
  /* #identity is a route signal read by public-entry/stage-composition through textContent only, so it stays in the DOM
     with its text intact. visibility:hidden (not clip-path) removes it from the accessibility tree as well as the screen:
     a participant must not hear "Not signed in". Absolute positioning keeps it from taking space in the top bar. */
  body[data-workspace-route="participant"] #identity {
    position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;
    visibility:hidden;white-space:nowrap;
  }
  body[data-workspace-route="participant"] #participant { max-width:640px;width:100%;margin-inline:auto; }
  body:not([data-workspace-route="participant"]) .participant-footer { display:none; }
}
