:root{--teal:#0b6f8f;--deep:#08546c;--pale:#e2f2f6;--ink:#0f1b33;--muted:#55627d;--line:#c9d3e3;--coral:#ff6b4a;--font:'Bricolage Grotesque',system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font:16px/1.55 var(--font)}h1,h2,p{margin:0}a{color:var(--deep);text-underline-offset:4px}button,input{font:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--teal);outline-offset:4px}.skip-link{position:absolute;top:-100px}.skip-link:focus{top:8px;padding:12px;background:var(--ink);color:#fff;z-index:10}header{max-width:1280px;margin:auto;padding:20px 40px;display:flex;align-items:center;justify-content:space-between;gap:16px}.logo{font-size:28px;font-weight:800;letter-spacing:-.05em;text-decoration:none;color:var(--ink)}.logo span{color:var(--teal);margin-left:4px}header>a:last-child{display:flex;align-items:center;min-height:44px;font-size:14px;font-weight:700}main{max-width:1120px;margin:auto;padding:64px 40px 80px;display:grid;grid-template-columns:1fr minmax(0,440px);gap:80px;align-items:start}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--deep);margin-bottom:14px}h1{font-size:clamp(40px,5vw,64px);font-weight:800;line-height:1.05;letter-spacing:-.045em}.login-intro>p:last-of-type{max-width:28em;color:var(--muted);font-size:18px;margin-top:22px}.retention-note{border-left:3px solid var(--coral);padding-left:16px;margin-top:32px;max-width:26em;font-size:14px}.retention-note p{margin-top:6px;color:var(--muted)}.login-panel{border-top:4px solid var(--teal);padding:26px 28px;background:var(--pale);border-radius:0 0 16px 16px}h2{font-size:28px;line-height:1.15;font-weight:800;letter-spacing:-.035em}form{margin-top:24px}label{display:block;font-size:14px;font-weight:700;margin-top:16px;margin-bottom:6px}input{width:100%;min-height:48px;padding:11px 12px;border:1px solid #93aebe;border-radius:8px;background:#fff;color:var(--ink)}.password-field{position:relative}.password-field input{padding-right:70px}.show-password{position:absolute;top:2px;right:2px;min-height:44px;min-width:60px;padding:0 10px;background:transparent;border:0;color:var(--deep);font-size:13px;font-weight:700;border-radius:6px}.primary,.secondary{display:flex;align-items:center;justify-content:center;gap:16px;width:100%;min-height:48px;padding:10px 18px;border-radius:9px;font-size:15px;font-weight:700}.primary{border:0;background:var(--teal);color:#fff;margin-top:12px}.primary:hover{background:var(--deep)}.secondary{border:1px solid var(--teal);background:#fff;color:var(--deep);margin-top:12px}button:disabled{opacity:.65;cursor:wait}.form-message{font-size:13px;color:var(--deep);margin-top:10px;min-height:0;overflow-wrap:anywhere}.form-message.error{color:#a72b20}.signup-link{font-size:14px;margin:20px 0 24px}.signup-link a{font-weight:700}details{border-top:1px solid #b8d4df;padding-top:14px;margin-top:14px}summary{cursor:pointer;font-size:14px;font-weight:700;min-height:44px;display:flex;align-items:center;gap:10px;list-style:none}summary:before{content:'+';font-size:22px;font-weight:500;color:var(--teal)}details[open] summary:before{content:'−'}summary::-webkit-details-marker{display:none}details>p,.field-help{font-size:13px;color:var(--muted);margin-top:10px}#setup-form{margin-top:14px}.recovery p{margin-bottom:8px}footer{border-top:1px solid var(--line);padding:20px 24px}footer nav{display:flex;gap:4px 24px;justify-content:center;flex-wrap:wrap}footer a{display:flex;align-items:center;min-height:44px;font-size:13px}
@media(max-width:800px){header{padding:16px 24px}main{padding:32px 24px 48px;gap:32px;grid-template-columns:1fr minmax(0,380px)}h1{font-size:44px}.login-intro>p:last-of-type{font-size:16px}.login-panel{padding:24px}}
@media(max-width:600px){header{padding:14px 20px}main{grid-template-columns:1fr;padding:24px 20px 40px;gap:26px}h1{font-size:40px}.login-intro h1 br{display:none}.login-intro>p:last-of-type{margin-top:12px;max-width:30em}.retention-note{margin-top:16px;font-size:13px}.login-panel{padding:22px}h2{font-size:26px}.eyebrow{margin-bottom:10px}}

/* Keep the mobile form ahead of the membership reminder. */
main{row-gap:24px}.login-intro{grid-column:1;grid-row:1}.login-panel{grid-column:2;grid-row:1 / span 2}.retention-note{grid-column:1;grid-row:2;margin-top:0}
@media(max-width:600px){.login-intro,.login-panel,.retention-note{grid-column:1;grid-row:auto}.retention-note{margin-top:0}.login-intro h1 br{display:none}}

.reset-request{display:inline-flex;align-items:center;min-height:44px;margin-top:16px;font-size:14px;font-weight:700}.reset-security{margin-top:24px!important}#reset-result{margin-top:24px}#reset-result .primary{text-decoration:none}.recovery form{margin-top:12px}

[hidden]{display:none!important}.recovery-mode #login-form,.recovery-mode .signup-link,.recovery-mode #existing-login,.recovery-mode .forgot-link{display:none}.recovery-mode .recovery{margin-top:20px}.recovery-mode .recovery>p{margin-top:0}#reset-result:focus{outline:0}
