/* ============================================================
   POWDERHOUSE ACCESS v2 — route-scoped presentation layer.
   Applies ONLY under body.access-v2. powderhouse-v16.css is not
   edited; this file extends it for the Access surface per the
   Access redesign doc (Chad, Aug 16 2026).
   Visual budget: ~70% black/abyss · 20% bone · 9% descriptor
   blue (#0A4C74 family) · 1% lime. Lime appears ONLY at the
   accepted/final state and the single active completion marker.
   Motion explains hierarchy: 12–16px slide + opacity on stage
   reveal. No loading theater, no fabricated progress.
   ============================================================ */

body.access-v2 { background:#0A0A0A; }

/* ---------- head of page ---------- */
body.access-v2 .acc-head { padding:6.5rem 0 3.2rem; }
body.access-v2 .acc-head .eyebrow { font-size:0.68rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--faint); font-weight:600; margin-bottom:1.2rem; }
body.access-v2 .acc-head h1 { font-family:var(--sans); font-weight:700; font-size:clamp(2rem,4.4vw,3.1rem); color:var(--type); margin-bottom:1.6rem; }
body.access-v2 .acc-head .acc-decl { font-family:var(--serif); font-weight:300; font-size:clamp(1.45rem,3vw,2rem); line-height:1.35; color:var(--dim); max-width:30ch; margin-bottom:1.6rem; }
body.access-v2 .acc-head .acc-support { font-family:var(--serif); font-weight:300; font-size:1.08rem; line-height:1.7; color:#9AA3AF; max-width:52ch; }

/* ---------- system line: IDENTITY → CONTEXT → SUBMIT → REVIEW ---------- */
body.access-v2 .sysline { display:flex; align-items:center; gap:0.9rem; margin:2.6rem 0 0; font-size:0.66rem; letter-spacing:0.26em; text-transform:uppercase; font-weight:600; color:#3A4149; }
body.access-v2 .sysline .sys-sep { color:#242A31; }
body.access-v2 .sysline .sys-node.is-current { color:var(--type); }
body.access-v2 .sysline .sys-node.is-done { color:#5E93B8; }
@media (max-width:680px){ body.access-v2 .sysline { gap:0.55rem; letter-spacing:0.18em; flex-wrap:wrap; } }

/* ---------- relationship selection rows ---------- */
body.access-v2 .acc-select { border-top:1px solid var(--hair); margin-top:3rem; padding-top:2.6rem; }
body.access-v2 .acc-select .sel-label { font-size:0.68rem; letter-spacing:0.26em; text-transform:uppercase; color:var(--faint); font-weight:600; margin-bottom:1.6rem; }
body.access-v2 .sel-row { display:flex; align-items:baseline; gap:1.6rem; width:100%; text-align:left; background:none; border:0; border-bottom:1px solid var(--hair); padding:1.15rem 0.2rem; cursor:pointer; font:inherit; color:inherit; transition:background .2s ease; }
body.access-v2 .sel-row:hover { background:#0F1114; }
body.access-v2 .sel-row .sel-name { font-family:var(--sans); font-weight:600; font-size:0.92rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--type); min-width:9.5ch; }
body.access-v2 .sel-row .sel-desc { font-family:var(--serif); font-weight:300; font-size:0.98rem; color:#77808A; flex:1; }
body.access-v2 .sel-row .sel-state { font-size:0.62rem; letter-spacing:0.24em; text-transform:uppercase; font-weight:600; color:transparent; white-space:nowrap; }
body.access-v2 .sel-row[aria-pressed="true"] { border-bottom-color:#0A4C74; }
body.access-v2 .sel-row[aria-pressed="true"] .sel-state { color:#5E93B8; }
body.access-v2 .sel-row[aria-pressed="true"] .sel-state::after { content:"SELECTED"; }
body.access-v2 .sel-row .sel-state::after { content:""; }
body.access-v2 .acc-select.has-selection .sel-row:not([aria-pressed="true"]) { opacity:0.38; }
@media (max-width:680px){ body.access-v2 .sel-row { flex-wrap:wrap; gap:0.4rem 1rem; } body.access-v2 .sel-row .sel-desc { flex-basis:100%; order:3; } }

/* ---------- the intake field ---------- */
body.access-v2 .acc-form { margin-top:1.4rem; }
body.access-v2 .acc-form[hidden] { display:none; }
body.access-v2 .stage { padding:2.6rem 0 0.6rem; opacity:1; transform:none; transition:opacity .35s ease, transform .35s ease; }
body.access-v2 .stage.is-pending { display:none; }
body.access-v2 .stage.is-entering { opacity:0; transform:translateY(14px); }
body.access-v2 .stage-head { display:flex; align-items:baseline; gap:1.1rem; margin-bottom:1.7rem; }
body.access-v2 .stage-index { font-size:0.78rem; letter-spacing:0.08em; color:#3A4149; font-weight:600; font-variant-numeric:tabular-nums; }
body.access-v2 .stage-name { font-size:0.68rem; letter-spacing:0.26em; text-transform:uppercase; color:var(--faint); font-weight:600; }
body.access-v2 .stage.is-current .stage-index { color:#5E93B8; }
body.access-v2 .stage.is-current .stage-name { color:var(--type); }

body.access-v2 .fld { padding:1.05rem 0 1.15rem; border-bottom:1px solid var(--hair); position:relative; transition:border-color .25s ease; }
body.access-v2 .fld:focus-within { border-bottom-color:#0A4C74; }
body.access-v2 .fld-label { display:block; font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase; font-weight:600; color:#77808A; margin-bottom:0.55rem; transition:color .25s ease; }
body.access-v2 .fld:focus-within .fld-label { color:var(--type); }
body.access-v2 .fld input, body.access-v2 .fld textarea, body.access-v2 .fld select {
  width:100%; background:transparent; border:0; outline:0; color:var(--type);
  font-family:var(--serif); font-weight:300; font-size:1.12rem; line-height:1.5; padding:0;
}
body.access-v2 .fld ::placeholder { color:#3A4149; }
body.access-v2 .fld select { appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml,%3Csvg width='8' height='5' viewBox='0 0 8 5' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l3 3 3-3' fill='none' stroke='%2377808A' stroke-width='1'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 2px center; padding-right:1.4rem; }
body.access-v2 .fld select:invalid { color:#3A4149; }
body.access-v2 .fld textarea { resize:vertical; min-height:4.6rem; }
body.access-v2 .fld-mark { position:absolute; right:0.1rem; top:1.05rem; font-size:0.6rem; letter-spacing:0.2em; text-transform:uppercase; font-weight:600; color:transparent; }
body.access-v2 .fld:focus-within .fld-mark { color:#33506B; }
body.access-v2 .fld:focus-within .fld-mark::after { content:"ACTIVE"; }
body.access-v2 .fld.is-complete .fld-mark { color:#5E93B8; }
body.access-v2 .fld.is-complete .fld-mark::after { content:"SET"; }
body.access-v2 .fld-mark::after { content:""; }
body.access-v2 .fld-count { position:absolute; right:0.1rem; bottom:0.55rem; font-size:0.68rem; color:#3A4149; font-variant-numeric:tabular-nums; }

/* precise error: one error, one location, one instruction */
body.access-v2 .fld-error { display:none; font-family:var(--sans); font-size:0.8rem; color:#C8CFD6; margin-top:0.6rem; }
body.access-v2 .fld-error::before { content:attr(data-fld) "  ·  "; font-size:0.62rem; letter-spacing:0.2em; text-transform:uppercase; font-weight:600; color:#77808A; }
body.access-v2 .fld.is-invalid { border-bottom-color:#5A5148; }
body.access-v2 .fld.is-invalid .fld-error { display:block; }

/* ---------- submit ---------- */
body.access-v2 form.acc-form:not(.is-ready) .acc-submit { display:none; }
body.access-v2 .acc-submit { padding:2.8rem 0 1rem; border-top:1px solid var(--hair); margin-top:2.4rem; }
body.access-v2 .acc-submit button { font:inherit; font-family:var(--sans); font-weight:600; font-size:0.9rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--black); background:var(--type); border:0; padding:1rem 1.8rem; cursor:pointer; }
body.access-v2 .acc-submit button:disabled { opacity:0.55; cursor:default; }
body.access-v2 .acc-submit .submit-note { font-family:var(--serif); font-weight:300; font-size:0.96rem; color:#77808A; margin-top:1.3rem; max-width:46ch; }

/* honest three-state line — driven by real states only */
body.access-v2 .txline { display:none; align-items:center; gap:0.9rem; margin-top:1.6rem; font-size:0.62rem; letter-spacing:0.24em; text-transform:uppercase; font-weight:600; color:#3A4149; }
body.access-v2 form.is-busy .txline, body.access-v2 form[data-form-state="sent"] .txline { display:flex; }
body.access-v2 .txline .tx-sep { color:#242A31; }
body.access-v2 .txline .tx-node.is-on { color:#5E93B8; }
body.access-v2 .txline .tx-node.is-final { color:var(--lime); }

/* nav.js status node: keep for aria; visually subordinate */
body.access-v2 .form-status { font-family:var(--sans); font-size:0.84rem; color:#9AA3AF; margin-top:1.2rem; }
body.access-v2 .form-status.is-error { color:#C8CFD6; }
body.access-v2 form[data-form-state="sent"] .form-status { position:absolute; left:-9999px; }

/* ---------- received state ---------- */
body.access-v2 .acc-received { display:none; padding:4rem 0 2rem; }
body.access-v2 .acc-received.is-shown { display:block; }
body.access-v2 .acc-received .rcv-eyebrow { font-size:0.68rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--lime); font-weight:600; margin-bottom:1.4rem; }
body.access-v2 .acc-received h2 { font-family:var(--serif); font-weight:300; font-size:clamp(1.8rem,3.8vw,2.6rem); color:var(--type); margin-bottom:2.6rem; }
body.access-v2 .rcv-grid { border-top:1px solid var(--hair); max-width:34rem; }
body.access-v2 .rcv-row { display:flex; gap:2rem; padding:0.95rem 0.1rem; border-bottom:1px solid var(--hair); }
body.access-v2 .rcv-key { font-size:0.66rem; letter-spacing:0.24em; text-transform:uppercase; font-weight:600; color:#77808A; min-width:12ch; padding-top:0.2rem; }
body.access-v2 .rcv-val { font-family:var(--serif); font-weight:300; font-size:1.05rem; color:var(--type); }
body.access-v2 .rcv-val.is-pending { color:#9AA3AF; }
body.access-v2 .rcv-note { font-family:var(--serif); font-weight:300; font-size:0.98rem; line-height:1.7; color:#9AA3AF; margin-top:2.2rem; max-width:48ch; }
body.access-v2 .rcv-close { font-family:var(--serif); font-weight:300; font-size:clamp(1.3rem,2.6vw,1.7rem); line-height:1.45; color:var(--dim); margin-top:3rem; max-width:34ch; }
body.access-v2 .rcv-close b { font-weight:300; color:var(--type); }

/* transmit failure: record-integrity honesty */
body.access-v2 .acc-failed { display:none; margin-top:1.6rem; }
body.access-v2 form[data-form-state="error"].was-transmitting .acc-failed { display:block; }
body.access-v2 .acc-failed .fail-line { font-family:var(--serif); font-weight:300; font-size:1.05rem; color:var(--type); }
body.access-v2 .acc-failed .fail-sub { font-family:var(--sans); font-size:0.84rem; color:#9AA3AF; margin-top:0.4rem; }

/* ---------- mobile ---------- */
@media (max-width:680px){
  body.access-v2 .acc-head { padding:5rem 0 2.4rem; }
  body.access-v2 .acc-sticky-pos { position:sticky; top:0; z-index:5; background:rgba(10,10,10,0.92); backdrop-filter:blur(6px); padding:0.7rem 0; font-size:0.62rem; letter-spacing:0.24em; text-transform:uppercase; font-weight:600; color:#77808A; display:block; }
  body.access-v2 .acc-submit { position:sticky; bottom:0; background:rgba(10,10,10,0.92); backdrop-filter:blur(6px); padding:1.2rem 0; margin-top:2rem; z-index:5; }
  body.access-v2 .acc-submit .submit-note { display:none; }
}
@media (min-width:681px){ body.access-v2 .acc-sticky-pos { display:none; } }
@media (prefers-reduced-motion:reduce){ body.access-v2 .stage { transition:none; } }

/* ---------- three-step headers ---------- */
body.access-v2 .stage-head { flex-wrap:wrap; }
body.access-v2 .stage-sub { flex-basis:100%; font-family:var(--serif); font-weight:300; font-size:0.98rem; color:#77808A; margin-top:0.45rem; }
body.access-v2 .stage-index { text-transform:uppercase; letter-spacing:0.2em; font-size:0.66rem; }

/* ---------- received ledger (Basecamp anchor) ---------- */
body.access-v2 .rcv-ledger { border-top:1px solid var(--hair); margin-top:2.6rem; max-width:40rem; }
body.access-v2 .rcv-ledger .led { display:grid; grid-template-columns:3.2rem 1fr; gap:0.2rem 1rem; padding:1.25rem 0.1rem; border-bottom:1px solid var(--hair); }
body.access-v2 .rcv-ledger .led-n { font-size:0.74rem; font-weight:600; color:#3A4149; font-variant-numeric:tabular-nums; }
body.access-v2 .rcv-ledger .led-t { font-size:0.78rem; letter-spacing:0.2em; text-transform:uppercase; font-weight:600; color:#77808A; }
body.access-v2 .rcv-ledger .led-d { grid-column:2; font-family:var(--serif); font-weight:300; font-size:1rem; line-height:1.65; color:#77808A; }
body.access-v2 .rcv-ledger .led.is-done .led-t { color:#5E93B8; }
body.access-v2 .rcv-ledger .led.is-current .led-t { color:var(--type); }
body.access-v2 .rcv-ledger .led.is-current .led-d { color:#9AA3AF; }

/* ---------- route intro (per-relationship framing) ---------- */
body.access-v2 .route-intro { border-top:1px solid var(--hair); padding:3rem 0 0.6rem; }
body.access-v2 .route-key { font-size:0.68rem; letter-spacing:0.3em; text-transform:uppercase; color:#5E93B8; font-weight:600; margin-bottom:1.1rem; }
body.access-v2 .route-intro h2 { font-family:var(--serif); font-weight:300; font-size:clamp(1.6rem,3.4vw,2.2rem); line-height:1.3; color:var(--type); margin-bottom:1.1rem; }
body.access-v2 .route-p { font-family:var(--serif); font-weight:300; font-size:1.05rem; line-height:1.7; color:#9AA3AF; max-width:54ch; }
body.access-v2 .route-sys { margin-top:2rem; }

/* ---------- field help + stage footnote ---------- */
body.access-v2 .fld-help { font-family:var(--serif); font-weight:300; font-size:0.94rem; line-height:1.6; color:#5F6873; margin:0.6rem 0 0; max-width:52ch; }
body.access-v2 .stage-foot { font-family:var(--serif); font-weight:300; font-size:0.94rem; color:#5F6873; margin-top:1.4rem; max-width:52ch; }

/* ---------- hub selection rows with CTA ---------- */
body.access-v2 .sel-row { align-items:flex-start; }
body.access-v2 .sel-body { flex:1; display:block; }
body.access-v2 .sel-head { display:block; font-family:var(--serif); font-weight:300; font-size:1.12rem; color:var(--type); margin-bottom:0.25rem; }
body.access-v2 .sel-desc { display:block; }
body.access-v2 .sel-cta { font-size:0.66rem; letter-spacing:0.2em; text-transform:uppercase; font-weight:600; color:#33506B; white-space:nowrap; align-self:center; }
body.access-v2 .sel-row:hover .sel-cta { color:#5E93B8; }
body.access-v2 .sel-row[aria-pressed="true"] .sel-cta { color:#5E93B8; }
@media (max-width:680px){ body.access-v2 .sel-cta { display:none; } }

/* ---------- received ledger status ---------- */
body.access-v2 .rcv-ledger .led { grid-template-columns:3.2rem 1fr auto; }
body.access-v2 .rcv-ledger .led-s { font-size:0.6rem; letter-spacing:0.22em; text-transform:uppercase; font-weight:600; color:#3A4149; text-align:right; }
body.access-v2 .rcv-ledger .led.is-done .led-s { color:#5E93B8; }
body.access-v2 .rcv-ledger .led.is-current .led-s { color:var(--type); }
body.access-v2 .rcv-caveat { font-family:var(--sans); font-size:0.84rem; color:#5F6873; margin-top:1.8rem; max-width:48ch; }

/* ---------- draft + relationship switch ---------- */
body.access-v2 .acc-draft, body.access-v2 .acc-switch { border:1px solid var(--hair); padding:1.6rem 1.5rem; margin-top:2.4rem; }
body.access-v2 .draft-t, body.access-v2 .switch-t { font-size:0.66rem; letter-spacing:0.24em; text-transform:uppercase; font-weight:600; color:#5E93B8; margin-bottom:0.7rem; }
body.access-v2 .draft-d, body.access-v2 .switch-d { font-family:var(--serif); font-weight:300; font-size:1.02rem; line-height:1.65; color:#9AA3AF; max-width:56ch; }
body.access-v2 .draft-acts, body.access-v2 .switch-acts { display:flex; gap:1.6rem; align-items:center; margin-top:1.3rem; flex-wrap:wrap; }
body.access-v2 .draft-acts button, body.access-v2 .switch-acts button { font:inherit; font-family:var(--sans); font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase; font-weight:600; background:none; border:0; color:var(--type); cursor:pointer; padding:0; border-bottom:1px solid #33506B; }
body.access-v2 .draft-acts button.ghost, body.access-v2 .switch-acts button.ghost { color:#77808A; border-bottom-color:var(--hair); }

/* ---------- transmit failure retry ---------- */
body.access-v2 .acc-failed .retry { margin-top:1.1rem; font:inherit; font-family:var(--sans); font-size:0.8rem; letter-spacing:0.16em; text-transform:uppercase; font-weight:600; background:none; border:1px solid #333A41; color:var(--type); padding:0.7rem 1.2rem; cursor:pointer; }

/* ---------- verification stage ---------- */
body.access-v2 .verify-stage { border-top:1px solid var(--hair); margin-top:2.4rem; }
body.access-v2 .verify-lede { font-family:var(--serif); font-weight:300; font-size:1.05rem; line-height:1.7; color:#9AA3AF; max-width:52ch; margin-bottom:1.8rem; }
body.access-v2 .verify-lede span { color:var(--type); }
body.access-v2 .code-input { font-family:var(--sans) !important; font-size:1.9rem !important; letter-spacing:0.55em; font-variant-numeric:tabular-nums; }
body.access-v2 .verify-fld { padding-bottom:1.4rem; }
body.access-v2 .verify-acts { display:flex; gap:1.8rem; align-items:center; flex-wrap:wrap; margin-top:2rem; }
body.access-v2 .verify-go { font:inherit; font-family:var(--sans); font-weight:600; font-size:0.9rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--black); background:var(--type); border:0; padding:1rem 1.8rem; cursor:pointer; }
body.access-v2 .verify-go:disabled { opacity:0.55; cursor:default; }
body.access-v2 .verify-acts .ghost { font:inherit; font-family:var(--sans); font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase; font-weight:600; background:none; border:0; color:#77808A; cursor:pointer; padding:0; border-bottom:1px solid var(--hair); }
body.access-v2 .verify-acts .ghost:disabled { color:#3A4149; cursor:default; }
body.access-v2 .verify-note { font-family:var(--sans); font-size:0.84rem; color:#77808A; margin-top:1.4rem; }
body.access-v2 .verify-note.is-error { color:#C8CFD6; }
/* verifying: the submitted record is locked, not re-edited */
body.access-v2 form.is-verifying .acc-select { display:none; }

/* ============================================================
   DOSSIER TREATMENT — the record-ledger aesthetic from the
   original resolved-record screen, applied to truthful declared
   content. Values read as record entries, not form inputs.
   ============================================================ */
body.access-v2 .acc-form { max-width:36rem; }
body.access-v2 .fld input, body.access-v2 .fld select {
  font-family:var(--sans); font-weight:600; font-size:1.02rem; letter-spacing:0.01em;
}
body.access-v2 .fld textarea { font-family:var(--serif); font-weight:300; font-size:1.08rem; }
body.access-v2 .fld-label { font-size:0.66rem; letter-spacing:0.24em; color:#5F6873; }
body.access-v2 .fld-prov { display:flex; align-items:center; gap:0.7rem; font-family:var(--sans); font-size:0.68rem; letter-spacing:0.06em; color:#4A5560; margin-top:0.55rem; }
body.access-v2 .fld-prov::after { content:""; width:2.2rem; height:1px; background:#22303C; }
body.access-v2 .stage-head { border-top:1px solid var(--hair); padding-top:2rem; }
body.access-v2 .stage-index { font-size:0.62rem; letter-spacing:0.28em; color:#5E93B8; }
body.access-v2 .stage-name { font-family:var(--sans); font-weight:700; font-size:0.9rem; letter-spacing:0.22em; color:var(--type); }
body.access-v2 .stage-foot { display:flex; align-items:flex-start; gap:0.8rem; }
body.access-v2 .stage-foot::before { content:""; margin-top:0.55rem; width:1.6rem; height:1px; background:#33506B; flex:none; }

/* ---------- v43 fixes (Rylian review) ---------- */
/* Nav dropdowns were trapped under page content: main carried its own stacking
   context above the nav. Nav wins, always. */
body.access-v2 nav.top { position: relative; z-index: 60; }
body.access-v2 nav.top .glass { z-index: 61; }
body.access-v2 main.wrap { position: relative; z-index: 1; }
/* Request Access button on access pages: loc-marking made the label illegible
   on the bone button. Current-page state shows as a rule, not a color swap. */
body.access-v2 nav.top a.access.loc { color: var(--black); box-shadow: inset 0 -2px 0 var(--black); }

/* ---------- confidentiality note (restored from the original Access page) ---------- */
body.access-v2 .acc-conf { border-top:1px solid var(--hair); margin-top:2.6rem; padding-top:1.5rem; max-width:52ch; }
body.access-v2 .conf-label { font-size:0.62rem; letter-spacing:0.26em; text-transform:uppercase; font-weight:600; color:#5E93B8; margin-bottom:0.55rem; }
body.access-v2 .conf-text { font-family:var(--serif); font-weight:300; font-size:0.96rem; line-height:1.65; color:#77808A; }
/* keep it visible while verifying, hidden once received (intake hides wholesale) */
