/* A4 polish v1 — successor layer, loaded after every earlier stylesheet.
   Frozen files stay byte-identical; every rule here overrides by order and
   is scoped to the exact element the A4 audit (2026-11-04) flagged.
   Proposal for Ralph's approval — see PROPOSALS.md. */

/* M1 — footer copyright: #4a5672 on #000818 was 2.73:1. Keep it the dimmest
   footer line (the disclaimer above it is #7d8aa5, 5.77:1). */
.brief03-shell .b03-footer p.b03-footer-copyright { color: #6f7c97; } /* 4.78:1 on #000818; brief03-chrome.css loads after this file, so out-rank it */

/* M2 — Privacy email link: browser-default #0000ee. Match Contact's links. */
.privacy-page a { color: var(--link, #7daeff); text-decoration: underline; }
.privacy-page a:focus-visible { outline: 2px solid #ffd43b; outline-offset: 2px; border-radius: 2px; }

/* M3 — hidden Live Board <h1> (injected by a4-polish-v1.js). */
.a4-sr-only {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}

/* M4 — muted grey just under AA. Scoped to the flagged elements only; the
   global --lpph-v12-dim token and the freshness "gray" dot are not touched. */
.lpph-v12-room-live-head span,
.lpph-v12-room-rake-head span,
.lpph-v12-series-head span,
.lpph-v12-promotion-section,
.candidate-promotion-kicker,
.candidate-promotion-freshness,
.candidate-spec-row dt,
.lpph-v12-event-stamp { color: #7d8ba0; }            /* 5.37:1 on #041424 */
.list-v3-showcase .list-v3-ref-36,
.list-v3-showcase .list-v3-ref-72 { color: #7d8ba0; } /* ≥5.6:1 on the list panel */

/* M5 + S1 — hit areas only. Each ::before is transparent and absolutely
   positioned, so layout and pixels are unchanged. */
.sps-header > a[href="/"],
.b04-tab,
.b04-partner-name,
.pilot-footer-action,
.b03-footer-logo,
.candidate-promotion-info,
.candidate-weekly-toggle,
.lpph-v11-action,
.lpph-v12-global-event-room,
.lpph-v11-list-copy a,
.list-v3-dot { position: relative; }

.sps-header > a[href="/"]::before,
.b04-tab::before,
.b04-partner-name::before,
.pilot-footer-action::before,
.b03-footer-logo::before,
.candidate-promotion-info::before,
.candidate-weekly-toggle::before,
.lpph-v11-action::before,
.lpph-v12-global-event-room::before,
.lpph-v11-list-copy a::before,
.list-v3-dot::before { content: ""; position: absolute; }

.sps-header > a[href="/"]::before       { inset: -3px -0px; }   /* 38 -> 44 */
.b04-tab::before                         { inset: -7px -3px; }   /* 32 -> 46 */
.b04-partner-name::before                { inset: -11px 0; }     /* 21-24 -> 43-46 */
.pilot-footer-action::before             { inset: -7px -2px; }   /* 32 -> 46 */
.b03-footer-logo::before                 { inset: -5px -6px; }   /* 34 -> 44 */
/* ROOM / EVENTS tabs (57x34) are NOT expanded: .room-tabs is overflow:hidden, so a taller hit area
   needs a taller tab row - a layout change. Listed in PROPOSALS.md (S1). */
.candidate-promotion-info::before        { inset: -11px; }       /* 24 -> 46 */
.candidate-weekly-toggle::before         { inset: -6px 0; }      /* 34 -> 46 */
.lpph-v11-action::before                 { inset: -1px 0; }      /* 42 -> 44 */
.lpph-v12-global-event-room::before      { inset: -7px 0; }      /* 11 -> 25 (>= 24 AA); 44 needs a layout change */
.lpph-v11-list-copy a::before            { inset: -15px -4px; }  /* 14 -> 44 */

/* List carousel dots: 5x5 / 16x5 -> >= 24x24 inside the scaled carousel. */
.list-v3-showcase .list-v3-dot::before          { inset: -12.5px -6.2px; }
.list-v3-showcase .list-v3-dot:not([aria-pressed="true"]):first-of-type::before { inset: -12.5px -4.5px -12.5px -19.5px; }
.list-v3-showcase .list-v3-dot:not([aria-pressed="true"]):last-of-type::before  { inset: -12.5px -19.5px -12.5px -4.5px; }

/* ---- Current room renderer (Brief 05 "b05-*"), re-checked against a Worker-served build. ---- */
/* M4: "Updated 80h ago" on promotion cards, #7D8AA5 on #0c1526 = 4.47:1 -> 4.5+. */
.b05-room .promotions-card.promotions-card .promotions-card-time { color: #8795ad; }
/* S1/M5: Socials/Contact/Directions 38 -> 44, info "i" 32 -> 44, Room/Events switch 40 -> 44. */
.b05-actions .b05-button,
.b05-info-button,
.b05-switch,
.b05-dots button { position: relative; }
.b05-actions .b05-button::before,
.b05-info-button::before,
.b05-switch::before,
.b05-dots button::before { content: ""; position: absolute; }
.b05-actions .b05-button::before { inset: -3px 0; }
.b05-info-button::before         { inset: -6px; }
.b05-switch::before              { inset: -2px 0; }
/* Room photo dots are 6px (active 18px) with a 6px gap: 24px tall; width is limited by the gap. */
.b05-dots button::before         { inset: -9px -3px; }
/* M4: Live Board "Room / Tables / Updated" list header, #6d7c96 = 4.36:1 -> 4.5+. */
.b04-list-head > span { color: #7d8ba0; }
