/* Shared sizing and rhythm for every portal sign-in surface. */
:root{--auth-control:44px;--auth-label:13px;--auth-card-pad:24px}
.login{width:min(640px,calc(100% - 32px));max-width:640px;margin:clamp(28px,7vh,72px) auto}
.login .panel{max-width:none;padding:var(--auth-card-pad);border-top:2px solid var(--accent)}
.login h1{font-size:clamp(26px,2.2vw,30px);line-height:1.15;margin-bottom:8px}
.login .footnote{margin:0 0 14px;font-size:13px;line-height:1.45}
.login-form{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr)) auto auto;align-items:end;gap:12px;margin:0}
.login-form>input[type=hidden]{display:none}
.login-form label{display:grid;gap:6px;min-width:0;color:var(--muted);font-size:var(--auth-label);font-weight:600}
.login-form input,.login .form input{width:100%;min-width:0;min-height:var(--auth-control);padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--txt);font:inherit;font-size:14px}
.login-form input:focus,.login .form input:focus{outline:2px solid var(--accent);outline-offset:2px}
.login-form .btn,.login .form .btn{min-height:42px;padding:8px 15px;font-size:13px;white-space:nowrap}
.login .form:not(.login-form){display:grid!important;grid-template-columns:1fr;gap:12px}
.wl-login-page{width:min(760px,100%);max-width:760px;margin:clamp(28px,7vh,72px) auto;gap:12px}
.wl-login-page .wl-heading{width:min(640px,100%);margin-inline:auto}
.wl-login-page .wl-heading h1{font-size:clamp(26px,2.2vw,30px);line-height:1.15;letter-spacing:-.025em}
.wl-login-page .wl-heading>div:first-child>p:last-child{font-size:14px;line-height:1.45;margin-top:5px}
.wl-login-page .wl-login-card{width:min(640px,100%);max-width:640px;margin-inline:auto;padding:var(--auth-card-pad);border-top:2px solid var(--accent)}
.wl-login-page .wl-login-form{grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:end;gap:12px}
.wl-login-page .wl-login-form label{gap:6px;font-size:var(--auth-label);font-weight:600}
.wl-login-page .wl-login-form input{min-height:var(--auth-control);padding:9px 11px;border-radius:8px;font-size:14px}
.wl-login-page .wl-login-form .btn{min-width:96px;min-height:42px;margin:0 0 1px;padding:8px 15px;font-size:13px}
.wl-login-page .wl-login-note{margin:12px 0 0;font-size:12px;line-height:1.45}
.user-portal-login-page{width:min(800px,calc(100% - 36px));margin-top:clamp(28px,6vh,60px)}
.user-portal-login-page .user-portal-heading h1{font-size:clamp(28px,2.6vw,34px)}
.user-portal-login{grid-template-columns:minmax(0,1fr) minmax(270px,.9fr);gap:24px;padding:var(--auth-card-pad)}
.user-portal-login h2{font-size:20px;margin:5px 0 7px}
.user-portal-login-copy{gap:12px}
.user-portal-login-copy p:not(.user-portal-kicker){font-size:13px;line-height:1.5}
.user-portal-login .user-portal-device-icon{flex-basis:40px;width:40px;height:40px;font-size:20px}
.user-portal-login .user-portal-form{gap:7px}
.user-portal-login .user-portal-form label{margin-top:4px;font-size:var(--auth-label)}
.user-portal-login .user-portal-form input,.user-portal-login .user-portal-form select{min-height:var(--auth-control);padding:9px 11px;font-size:14px}
.user-portal-login .user-portal-submit{min-height:42px;margin-top:5px;font-size:13px}
.user-portal-login .user-portal-security{font-size:11px;line-height:1.45}
.mobile-contact-login{width:min(420px,100%);margin:clamp(28px,7vh,64px) auto 0;padding:24px;border-radius:16px;border-top:2px solid #a4a7ad;box-shadow:0 14px 38px #0002}
.mobile-contact-login-mark{width:46px;height:46px;margin-bottom:15px;border-radius:13px;font-size:14px}
.mobile-contact-login h1{font-size:28px;line-height:1.15;letter-spacing:-.025em}
.mobile-contact-login-form{gap:12px;margin-top:17px}
.mobile-contact-login-form label{font-size:var(--auth-label);font-weight:600}
.mobile-contact-login-form input,.mobile-contact-primary{min-height:var(--auth-control);padding:9px 11px;border-radius:8px;font-size:14px}
.mobile-contact-primary{min-height:42px}
.mobile-contact-note{margin-top:13px;font-size:11px}
.receive-card{max-width:640px;padding:var(--auth-card-pad);border-top:2px solid var(--mint)}
.receive-card h2{font-size:20px}
.receive-card>p{font-size:13px;line-height:1.5}
.receive-card .admin-form{gap:10px;margin-top:14px}
.receive-card .admin-form label{font-size:var(--auth-label)}
.receive-card .admin-form input,.receive-card .admin-form select{height:var(--auth-control);font-size:14px}
.receive-card .admin-form button{min-height:42px;font-size:13px}
.backup-flow:not(.unlocked) .backup-access{width:min(640px,100%);margin-inline:auto;padding:var(--auth-card-pad);border-top-width:2px}
.backup-flow:not(.unlocked) .backup-access-symbol{width:42px;height:42px;margin-bottom:15px}
.backup-flow:not(.unlocked) .backup-access h2{font-size:21px}
.backup-flow:not(.unlocked) .backup-form{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;row-gap:8px;margin-top:16px}
.backup-flow:not(.unlocked) .backup-form label{margin-top:4px;font-size:var(--auth-label)}
.backup-flow:not(.unlocked) .backup-form select,.backup-flow:not(.unlocked) .backup-form input{min-height:var(--auth-control);padding:9px 11px;font-size:14px}
.backup-flow:not(.unlocked) .backup-form .backup-submit{grid-column:1/-1;justify-self:start;min-height:42px;font-size:13px}
@media(max-width:700px){
  .login-form{grid-template-columns:1fr 1fr;gap:10px}
  .login-form .btn,.login-form>a{grid-column:span 1;justify-self:stretch}
  .wl-login-page{margin:24px auto}
  .wl-login-page .wl-login-card{padding:20px}
  .wl-login-page .wl-login-form{grid-template-columns:1fr;gap:11px}
  .wl-login-page .wl-login-form .btn{width:100%;margin:2px 0 0}
  .user-portal-login-page{width:min(100% - 24px,520px);margin-top:24px}
  .user-portal-login{grid-template-columns:1fr;gap:18px}
  .receive-card{padding:20px}
}
@media(max-width:520px){
  :root{--auth-card-pad:19px}
  .login{width:calc(100% - 24px);margin:24px auto}
  .login .panel{padding:19px}
  .login-form{grid-template-columns:1fr}
  .login-form .btn,.login-form>a{grid-column:auto;width:100%}
  .login-form label{grid-column:1}
  .backup-flow:not(.unlocked) .backup-form{grid-template-columns:1fr}
  .backup-flow:not(.unlocked) .backup-form .backup-submit{grid-column:1;width:100%}
}
