*{box-sizing:border-box}
body{margin:0;background:var(--paper,#fafaf8);font-size:16px;line-height:1.55}
header,main{max-width:760px;margin-inline:auto;padding-inline:24px}
header{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:20px}
a{color:var(--accent,#5147bc);text-underline-offset:3px}
.brand{display:inline-flex;align-items:center;gap:8px;color:var(--ink,#25232c);font-weight:700;text-decoration:none;letter-spacing:-.025em;min-height:44px}
.brand svg{flex-shrink:0;color:var(--accent,#5147bc)}
.nav-link{min-height:44px;display:inline-flex;align-items:center;font-weight:650;white-space:nowrap}
.page-heading{padding:32px 0 26px}
h1,h2,p{margin-top:0}
h1{font-size:clamp(2rem,6.5vw,3.2rem);line-height:1.1;letter-spacing:-.04em;max-width:620px;margin-bottom:18px}
h2{font-size:1.35rem;line-height:1.25;letter-spacing:-.02em;margin-bottom:10px}
p{color:var(--ink-soft,#65616e);margin-bottom:16px}
.eyebrow{color:var(--accent-ink,#43399f);font-size:.875rem;font-weight:700;margin-bottom:12px}
.intro{font-size:1.125rem;max-width:590px}
.reassurance{font-size:1rem;max-width:590px;margin-bottom:0}
.panel{background:var(--card,#fff);border:1px solid var(--line,#e4e1e9);border-radius:16px;padding:28px;box-shadow:var(--shadow);margin-bottom:20px}
.panel>p:last-child{margin-bottom:0}
form{margin-top:22px}
fieldset{padding:0;margin:0;border:0;min-width:0}
legend{font-weight:650;margin-bottom:18px;padding:0}
legend span{font-weight:400;color:var(--ink-soft,#65616e)}
.field{margin-bottom:20px}
label:not(.consent){display:block;font-weight:600;margin-bottom:7px}
input[type=email],select{display:block;width:100%;max-width:100%;min-width:0;min-height:48px;padding:10px 12px;font:inherit;font-size:16px;line-height:1.45;color:var(--ink,#25232c);background:#fff;border:1px solid #a9a3b5;border-radius:9px}
select{padding-right:28px}
button{min-height:48px;padding:11px 18px;border:1px solid var(--accent,#5147bc);border-radius:9px;font:inherit;font-weight:650;line-height:1.4;background:var(--accent,#5147bc);color:#fff;cursor:pointer}
button:hover{background:var(--accent-ink,#43399f);border-color:var(--accent-ink,#43399f)}
button.secondary{background:#fff;color:var(--accent-ink,#43399f)}
button.secondary:hover{background:var(--accent-soft,#f0eef9)}
button:disabled,fieldset:disabled button{opacity:.65;cursor:wait}
#signInForm button,#retryPanel button{margin-top:16px}
.consent{display:flex;align-items:flex-start;gap:12px;padding:18px 16px;background:var(--accent-soft,#f0eef9);border-radius:10px;margin-top:28px;cursor:pointer}
.consent input{width:22px;height:22px;flex-shrink:0;margin:2px 0 0;accent-color:var(--accent,#5147bc)}
.hint{font-size:1rem;margin:12px 0 22px}
.account-line{overflow-wrap:anywhere;font-size:1rem}
.account-line strong{font-weight:600}
.saved-state{padding:12px 14px;border-left:3px solid #1a7355;background:#eaf4ee;color:#195b45;border-radius:6px}
.actions{display:flex;gap:12px;flex-wrap:wrap}
.status:not(:empty),.error{padding:14px 16px;border-radius:9px;margin:0 0 20px;overflow-wrap:anywhere}
.status:not(:empty){color:var(--accent-ink,#43399f);background:var(--accent-soft,#f0eef9);border-left:3px solid var(--accent,#5147bc)}
.error{background:#fff2ef;color:#8c3021;border-left:3px solid #a53a28}
footer{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:10px 0 40px}
footer a{display:inline-flex;align-items:center;min-height:44px}
.skip-link{position:absolute;left:12px;top:-100px;z-index:10;background:#fff;padding:10px 16px;border-radius:8px}
.skip-link:focus{top:12px}
:focus-visible{outline:3px solid var(--accent,#5147bc);outline-offset:3px}
#main:focus:not(:focus-visible){outline:none}
@media(max-width:480px){header,main{padding-inline:16px}header{min-height:68px;gap:12px}.page-heading{padding:22px 0}.panel{padding:22px 18px}.actions{flex-direction:column}.actions button{width:100%}.consent{padding:16px 12px;gap:10px}#signInForm button{width:100%}}
