/* Account controls follow the reading order on every screen. */
.account-entry { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:2rem 4rem; }
.account-entry .account-welcome { grid-column:1/-1; }
.account-entry .account-access { grid-column:1; grid-row:2; min-width:0; }
.account-entry .account-benefits { grid-column:2; grid-row:2; min-width:0; }
.account-entry input { min-width:0; max-width:100%; }
.account-header + .acc { max-width:900px; }
#prefs { min-width:0; }
#prefs h2 { margin-top:2.5rem; }
#prefs h3 { font-family:inherit; font-size:1.15rem; }
#prefs .entity-picker { margin-top:2rem; }
.account-delivery { background:var(--surface); padding:1.5rem; margin:2rem 0; }
.account-delivery h2 { margin-top:0!important; }
#prefs [data-save-state] { display:block; margin-top:1rem; }
#prefs [data-save-state="unsaved"], #prefs [data-save-state="failed"] { font-weight:600; }
#delete-confirm { max-width:36rem; width:calc(100% - 2rem); padding:2rem; border:0; color:var(--ink); background:var(--surface); }
#delete-confirm::backdrop { background:var(--scrim); }
#delete-confirm h2 { margin-top:0; }
.account-dialog-actions { display:flex; flex-wrap:wrap; gap:1rem; margin-top:1.5rem; }
#delete-confirm button { min-height:44px; }
@media(max-width:700px) {
.account-entry { display:flex; flex-direction:column; gap:1.5rem; }
.account-entry .account-welcome { order:0; }
.account-entry .account-access { order:1; }
.account-entry .account-benefits { order:2; }
.account-delivery { padding:1rem; }
#delete-confirm { padding:1.25rem; }
}
.account-entry[hidden], .account-entry [hidden] { display:none!important; }

/* Signup call to action (home, reports, dossiers) */
/* The sign-up panel is an inverse feature panel: it uses the --inv-* tokens of the light and dark themes (fallbacks keep it readable without them). */
.signup-cta { --cta-bg:var(--inv-bg,var(--surface)); --cta-ink:var(--inv-ink,var(--ink)); --cta-note:var(--inv-note,var(--muted)); --cta-accent:var(--inv-accent,var(--accent)); --cta-accent-ink:var(--inv-accent-ink,var(--accent-ink)); --cta-line:var(--inv-line,var(--line)); --cta-field:var(--inv-field,var(--field,var(--bg))); --cta-field-ink:var(--inv-field-ink,var(--field-ink,var(--ink)));
  background:var(--cta-bg); color:var(--cta-ink); display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:1.25rem 3rem; align-items:start; margin:3rem var(--m); padding:clamp(1.25rem,3vw,2rem); border-top:3px solid var(--cta-accent); }
.signup-cta[hidden] { display:none!important; }
.signup-cta h2 { font-size:var(--step-lead); margin:0 0 .5rem; color:var(--cta-ink); }
.signup-cta p { margin:0; color:var(--cta-note); font-size:1rem; max-width:52ch; }
.signup-cta a { color:var(--cta-ink); text-decoration-color:var(--cta-accent); }
.signup-form { display:grid; gap:.5rem; min-width:0; font-family:var(--sans); }
.signup-form label:not(.sr-only) { font:600 var(--step-small) var(--sans); color:var(--cta-ink); }
.signup-row { display:flex; flex-wrap:wrap; gap:.5rem; }
.signup-row input[type=email], .signup-row select { min-height:48px; font:400 1rem var(--sans); color:var(--cta-field-ink); background:var(--cta-field); border:1px solid var(--cta-line); border-radius:4px; }
.signup-row input[type=email] { flex:1 1 15rem; min-width:0; padding:0 14px; }
.signup-row select { flex:0 1 11rem; padding:0 10px; }
.signup-row .btn { flex:1 1 12rem; background:var(--cta-accent); color:var(--cta-accent-ink); }
.signup-form .signup-note, .signup-cta noscript .signup-note { font-size:var(--step-small); color:var(--cta-note); }
.signup-form .signup-status { min-height:1.4em; font-size:var(--step-small); color:var(--cta-accent); }
.signup-cta .sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
@media(max-width:800px) { .signup-cta { grid-template-columns:minmax(0,1fr); gap:1rem; margin:2rem var(--m); } .signup-row > * { flex-basis:100%!important; } }

/* Sponsorship: labelled, never in news feeds */
.presented-by { display:flex; flex-wrap:wrap; align-items:baseline; gap:.5rem; margin:1rem var(--m); font:var(--step-small) var(--sans); color:var(--muted); }
.presented-by span { text-transform:uppercase; letter-spacing:.06em; font-weight:700; }
.presented-by small { flex-basis:100%; font-size:.8125rem; }
.advertise-page section { margin:2.5rem var(--m); }
.advertise-page .formats { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr)); gap:1rem; }
.advertise-page .format { background:var(--surface); padding:1.25rem; border-top:3px solid var(--accent); }
.advertise-page .format h3 { font-size:1.25rem; margin-bottom:.5rem; }
.advertise-page .format p, .advertise-page li { color:var(--muted); font-size:1rem; }
.advertise-page .rules li { margin:.4rem 0; }
.welcome-note { margin:1rem var(--m); padding:1rem 1.25rem; background:var(--surface); border-left:3px solid var(--accent); font-family:var(--sans); }
