:root{font-family:Arial,Helvetica,sans-serif;color:#254350;background:white;font-synthesis:none;color-scheme:light}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}[hidden]{display:none!important}a{color:#006689}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #54badb;outline-offset:3px}.login-layout{display:grid;grid-template-columns:55% 45%;min-height:100dvh}.login-panel{position:relative;display:flex;flex-direction:column;min-height:100dvh;padding:30px 40px}.login-brand{display:inline-flex;width:164px;align-self:flex-start}.login-brand img{width:164px;height:66px;object-fit:contain;filter:brightness(0) saturate(100%) invert(24%) sepia(83%) saturate(1026%) hue-rotate(157deg) brightness(91%) contrast(103%)}.login-content{width:100%;max-width:440px;margin:auto;padding:48px 0}.login-eyebrow{display:block;text-align:center;font-size:11px;letter-spacing:2px;color:#6c8d9c;margin-bottom:17px}h1{font-size:32px;line-height:1.25;color:#006788;font-weight:400;text-align:center;margin:0 0 15px}.login-subtitle{font-size:16px;line-height:1.6;color:#646d72;text-align:center;margin:0 0 35px}label{display:block;font-size:12px;font-weight:600;color:#557582;margin:0 0 9px}input{width:100%;height:55px;background:#f0f3f4;border:1px solid #c7dce5;border-radius:7px;padding:0 17px;font-size:16px;color:#254350;min-width:0}input::placeholder{color:#92999d}input:focus{border-color:#278bab;outline-color:#c3e5f0}#email{margin-bottom:20px}.password-field{position:relative}.password-field input{padding-right:52px}.show-password{border:0;background:none;position:absolute;right:6px;top:7px;height:41px;width:40px;display:grid;place-items:center;color:#6a8794}.show-password svg{width:22px;height:22px}.primary-button{display:flex;width:100%;align-items:center;justify-content:center;min-height:55px;border:0;border-radius:7px;background:#006486;color:#fff;font-size:16px;font-weight:600;text-decoration:none;padding:15px 20px;margin-top:22px;transition:background .2s}.primary-button:hover{background:#004f6b}.primary-button:disabled{opacity:.6;cursor:wait}.text-link{display:block;width:fit-content;margin:29px auto 0;border:0;background:none;padding:3px 0;font-size:15px;font-weight:600;color:#006788;text-decoration:none}.text-link:hover,.admin-entry:hover{text-decoration:underline}.login-divider{height:1px;background:#e1eaf0;margin:38px 0 24px}.invitation-note{text-align:center;color:#82939b;font-size:13px;line-height:1.8;margin:0}.admin-entry{display:block;text-align:center;font-size:12px;color:#5b7e8c;margin-top:21px;text-decoration:none}footer{font-size:11px;color:#92a3ab;text-align:center}footer span{padding:0 8px}.login-visual{position:sticky;top:0;height:100dvh;border-radius:100px 0 0 100px;background:#00536e;overflow:hidden}.login-visual>img{width:100%;height:100%;object-fit:cover}.visual-caption{position:absolute;bottom:65px;left:60px;color:#dff5fa;text-shadow:0 2px 18px #02394b}.visual-caption span{font-size:10px;letter-spacing:2px}.visual-caption p{font-size:34px;font-weight:400;line-height:1.35;margin:18px 0 0}.auth-message{border-radius:7px;border:1px solid #d5e3e9;background:#eff7fa;color:#315f73;padding:14px 16px;font-size:14px;line-height:1.65;margin-bottom:24px;overflow-wrap:anywhere}.auth-message.error{background:#fff4f0;border-color:#efcdc0;color:#8b4e35}.password-guidance,.small-note{font-size:12px;color:#718b97;line-height:1.7;margin:12px 0 22px}#forgotContent p{font-size:14px;line-height:1.8;color:#637d89}#forgotContent .small-note{font-size:12px;text-align:center}body.setup .login-content{padding-top:25px;padding-bottom:25px}body.setup .login-subtitle{margin-bottom:25px}body.setup .login-divider{margin-top:24px}@media(max-width:1000px){.login-panel{padding:24px 28px}.login-layout{grid-template-columns:58% 42%}.login-visual{border-radius:70px 0 0 70px}.visual-caption{left:32px;bottom:40px}.visual-caption p{font-size:27px}}@media(max-width:700px){.login-layout{display:block}.login-visual{display:none}.login-panel{padding:24px;min-height:100dvh}.login-content{padding:42px 0;max-width:440px}.login-brand,.login-brand img{width:139px;height:56px}h1{font-size:29px}.login-divider{margin-top:30px}.login-eyebrow{font-size:10px}footer{margin-top:8px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Keep the sign-in and reset screens within the available viewport. */
body:not(.setup){height:100dvh;overflow:hidden;overscroll-behavior:none}
body:not(.setup) .login-layout{height:100%;min-height:0;overflow:hidden}
body:not(.setup) .login-panel{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:clamp(12px,3dvh,30px) clamp(20px,3vw,40px);gap:clamp(6px,1.5dvh,16px);overflow:hidden}
body:not(.setup) .login-brand{width:clamp(112px,17dvh,164px)}
body:not(.setup) .login-brand img{width:100%;height:clamp(44px,7dvh,66px)}
body:not(.setup) .login-content{align-self:center;justify-self:center;margin:0;padding:0;min-width:0}
body:not(.setup) h1{font-size:clamp(25px,4dvh,32px);margin-bottom:clamp(8px,1.7dvh,15px)}
body:not(.setup) .login-subtitle{font-size:clamp(14px,2.1dvh,16px);line-height:1.5;margin-bottom:clamp(16px,3.6dvh,32px)}
body:not(.setup) label{margin-bottom:clamp(5px,1dvh,9px)}
body:not(.setup) input{height:clamp(44px,6.5dvh,55px)}
body:not(.setup) #email{margin-bottom:clamp(12px,2.4dvh,20px)}
body:not(.setup) .show-password{top:50%;transform:translateY(-50%);height:40px}
body:not(.setup) .primary-button{min-height:clamp(44px,6.5dvh,55px);padding:10px 20px;margin-top:clamp(14px,2.6dvh,22px)}
body:not(.setup) .text-link{margin-top:clamp(14px,3dvh,26px);font-size:14px;line-height:1.4;padding:5px 0}
body:not(.setup) .login-divider{margin:clamp(16px,3.6dvh,32px) 0 clamp(12px,2dvh,20px)}
body:not(.setup) .admin-entry{margin-top:0;line-height:1.4;padding:6px 0}
body:not(.setup) footer{margin:0;line-height:1.4}
body:not(.setup) .auth-message{font-size:13px;line-height:1.45;padding:10px 12px;margin-bottom:14px}
body:not(.setup) .login-visual{position:relative;height:100%;min-height:0}
@media(max-height:660px){
 body:not(.setup) .login-panel{gap:6px;padding-top:12px;padding-bottom:12px}
 body:not(.setup) .login-brand img{height:40px}
 body:not(.setup) h1{font-size:25px;margin-bottom:8px}
 body:not(.setup) .login-subtitle{margin-bottom:16px}
 body:not(.setup) .text-link{margin-top:12px}
 body:not(.setup) .login-divider{margin:12px 0 6px}
}
/* Landscape phones and short windows use two columns for the form. */
@media(max-height:540px) and (min-width:560px){
 body:not(.setup) .login-layout{display:block}
 body:not(.setup) .login-visual{display:none}
 body:not(.setup) .login-panel{padding:10px 24px;gap:5px}
 body:not(.setup) .login-brand,body:not(.setup) .login-brand img{width:108px;height:38px}
 body:not(.setup) .login-content{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);column-gap:32px;row-gap:8px;max-width:850px;align-items:center}
 body:not(.setup) h1{grid-column:1;grid-row:1;text-align:left;margin:0;align-self:end}
 body:not(.setup) .login-subtitle{grid-column:1;grid-row:2;text-align:left;margin:0;align-self:start}
 body:not(.setup) #authMessage{grid-column:1;grid-row:3;margin:0}
 body:not(.setup) #loginForm{grid-column:2;grid-row:1 / span 4}
 body:not(.setup) #forgotPassword{grid-column:2;grid-row:5;margin:0 auto}
 body:not(.setup) #backLogin,body:not(.setup) .admin-entry{grid-column:1;grid-row:5;text-align:left;margin:0;justify-self:start}
 body:not(.setup) .login-divider{display:none}
 body:not(.setup) input{height:42px}
 body:not(.setup) #email{margin-bottom:10px}
 body:not(.setup) .primary-button{min-height:42px;margin-top:12px}
 body:not(.setup) .text-link{font-size:13px}
}
/* The virtual keyboard leaves less height on portrait phones. */
@media(max-height:540px) and (max-width:559px){
 body:not(.setup) .login-panel{padding:8px 20px;gap:4px}
 body:not(.setup) .login-brand,body:not(.setup) .login-brand img{width:100px;height:34px}
 body:not(.setup) h1{font-size:23px;margin-bottom:4px}
 body:not(.setup) .login-subtitle{font-size:13px;margin-bottom:10px}
 body:not(.setup) input{height:40px}
 body:not(.setup) #email{margin-bottom:8px}
 body:not(.setup) label{margin-bottom:4px}
 body:not(.setup) .primary-button{min-height:40px;margin-top:10px;padding:8px 16px}
 body:not(.setup) .text-link{margin-top:6px;font-size:13px}
 body:not(.setup) .login-divider{margin:6px 0}
 body:not(.setup) .auth-message{padding:6px 8px;font-size:12px;margin-bottom:8px}
 body:not(.setup) footer{font-size:10px}
}
