/* Login fits the viewport; authenticated administration can still scroll. */
body.portal-body:has(#login:not([hidden])){height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column}
body.portal-body:has(#login:not([hidden])) .portal-header{width:100%;height:clamp(58px,10dvh,100px);flex:none}
body.portal-body:has(#login:not([hidden])) .portal-main{width:100%;flex:1;min-height:0;display:flex;flex-direction:column}
body.portal-body:has(#login:not([hidden])) #login{flex:1;min-height:0;padding:clamp(12px,4dvh,48px) 0;column-gap:clamp(32px,6vw,90px)}
body.portal-body:has(#login:not([hidden])) footer{display:none}
body.portal-body:has(#login:not([hidden])) .login-story h1{font-size:clamp(40px,min(5.3vw,9dvh),76px)}
body.portal-body:has(#login:not([hidden])) .chrome-object{height:clamp(110px,25dvh,210px);margin-top:clamp(6px,3dvh,32px);flex-shrink:0}
body.portal-body:has(#login:not([hidden])) #message:not(:empty){flex:none;margin-top:10px;padding:10px 16px;font-size:12px}
@media(max-width:700px){
body.portal-body:has(#login:not([hidden])) #login{display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:clamp(8px,3dvh,26px);padding:12px 0}
body.portal-body:has(#login:not([hidden])) .login-story{flex:none;align-self:auto}
body.portal-body:has(#login:not([hidden])) .login-story h1{font-size:clamp(30px,min(10.5vw,7dvh),52px);margin:clamp(8px,2dvh,18px) 0}
body.portal-body:has(#login:not([hidden])) .login-story>.muted{font-size:11px;line-height:1.65}
body.portal-body:has(#login:not([hidden])) .login-form-panel{margin-top:0}
body.portal-body:has(#login:not([hidden])) .login-form-panel::before{padding:clamp(10px,2dvh,22px) 0 0;font-size:8px}
body.portal-body:has(#login:not([hidden])) .login-form-panel label{margin:clamp(10px,2dvh,20px) 0 7px}
body.portal-body:has(#login:not([hidden])) .login-form-panel input{height:clamp(42px,7dvh,55px);min-height:40px}
body.portal-body:has(#login:not([hidden])) .login-form-panel .primary{margin-top:clamp(14px,3dvh,26px)!important;min-height:44px;padding:12px 18px}
}
@media(max-height:480px) and (min-width:701px){
body.portal-body:has(#login:not([hidden])) .chrome-object{display:none}
body.portal-body:has(#login:not([hidden])) .login-story h1{font-size:40px;margin:14px 0}
body.portal-body:has(#login:not([hidden])) .login-form-panel input{height:42px;min-height:40px}
body.portal-body:has(#login:not([hidden])) .login-form-panel label{margin:10px 0 6px}
body.portal-body:has(#login:not([hidden])) .login-form-panel .primary{margin-top:14px!important;min-height:40px;padding:10px 18px}
body.portal-body:has(#login:not([hidden])) .login-form-panel::before{padding-top:10px}
}
@media(max-height:480px) and (max-width:700px){
body.portal-body:has(#login:not([hidden])) #login{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}
body.portal-body:has(#login:not([hidden])) .login-story h1{font-size:clamp(24px,5vw,34px)}
body.portal-body:has(#login:not([hidden])) .login-story>.muted{font-size:10px}
body.portal-body:has(#login:not([hidden])) .login-form-panel::before{display:none}
}
