body.login-page {font-family:Inter,system-ui,-apple-system,'Segoe UI',sans-serif;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);margin:0;min-height:100dvh;background:#fff;line-height:1.55;}
.login-mobile-photo,.login-mobile-welcome,.login-mobile-title {display:none;}
.login-page * {box-sizing:border-box;}
.login-brand {background:#21414f;color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(2rem,4vw,5rem);min-height:100dvh;min-width:0;}
.login-brand-top {display:flex;align-items:center;justify-content:space-between;gap:2rem;}
.login-brand-top img {width:12rem;height:auto;}
.login-brand-top>span {border:1px solid #ffffff30;border-radius:.4rem;font-size:.73rem;padding:.45rem .7rem;white-space:nowrap;color:#d3e1e8;}
.login-brand-main {padding:3rem 0;max-width:48rem;}
.login-eyebrow {display:block;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:#b4d0dd;margin-bottom:1.2rem;font-weight:600;}
.login-brand h1 {font-size:clamp(2.2rem,1.6rem + 1.1vw,4rem);line-height:1.16;letter-spacing:-.05em;margin:0 0 1.5rem;font-weight:600;}
.login-brand-main>p {font-size:.95rem;color:#c4d7e0;line-height:1.7;max-width:44ch;margin:0;}
.login-features {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem 2rem;margin-top:3rem;}
.login-features>div {display:grid;grid-template-columns:2.5rem minmax(0,1fr);gap:.15rem .8rem;}
.login-features .fa-solid {grid-row:1/3;color:#d1e3eb;font-size:1.8rem;}
.login-features strong {font-size:.89rem;line-height:1.45;}
.login-features span {font-size:.75rem;color:#b4cbd7;line-height:1.55;}
.login-brand-footer {display:flex;justify-content:space-between;gap:1rem;border-top:1px solid #ffffff25;padding-top:1.3rem;color:#a9c4d2;font-size:.73rem;}
.login-panel {display:flex;align-items:center;justify-content:center;padding:clamp(1.5rem,4vw,5rem);min-width:0;}
.login-form-wrap {width:100%;max-width:29rem;}
.login-panel h2 {font-size:2rem;letter-spacing:-.04em;line-height:1.25;margin:.65rem 0 .75rem;color:#21414f;}
.login-sub {font-size:.9rem;color:var(--text-soft);margin:0 0 2.3rem;}
.login-field {margin-bottom:1.3rem;}
.login-field label {display:block;font-size:.82rem;margin-bottom:.55rem;font-weight:600;}
.login-input {position:relative;}
.login-input>.fa-solid {position:absolute;left:.9rem;top:1.05rem;color:#638493;font-size:1.1rem;}
.login-field .login-input input {width:100%;min-height:3.3rem;padding:.85rem 1rem .85rem 2.7rem;font-size:.95rem;background:#fff;border:1px solid #bdcfd8;}
.login-field input:focus {border-color:var(--primary);box-shadow:0 0 0 3px #41769018;}
button.btn-login {display:flex;align-items:center;justify-content:space-between;background:#417690;color:#fff;border:0;width:100%;min-height:3.3rem;margin-top:1.8rem;cursor:pointer;font-family:inherit;}
.login-support {display:flex;align-items:start;gap:.8rem;background:#f1f5f7;border:1px solid #e1e9ed;border-radius:.5rem;padding:1rem;margin-top:2rem;}
.login-support i {font-size:1.05rem;margin-top:.2rem;color:#417690;}
.login-support p {font-size:.77rem;color:#526c79;line-height:1.6;margin:0;}
.login-form-footer {border-top:1px solid #e2e9ed;padding-top:1.3rem;margin-top:2rem;font-size:.73rem;color:#708996;}
.login-error {display:flex;align-items:start;gap:.7rem;color:#922b21;background:#fff2ef;border:1px solid #e5c6bd;border-radius:.5rem;font-size:.85rem;padding:1rem;margin-bottom:1.5rem;}
.login-error i {flex:none;}
.login-messages {list-style:none;padding:0;}
.login-messages li {padding:.8rem;background:#edf3f6;border-radius:.4rem;font-size:.85rem;}
@media(max-width:1100px) and (min-width:701px) {.login-brand {padding:2rem;}.login-features {grid-template-columns:minmax(0,1fr);gap:1.4rem;}.login-brand-top>span {display:none;}.login-brand h1 {font-size:2.4rem;}.login-brand-footer>span:last-child {display:none;}.login-panel {padding:2rem;}}
@media(max-width:700px) {body.login-page {display:block;background:#fff;}.login-brand {min-height:0;padding:1.3rem 1.3rem 1.6rem;}.login-brand-top img {width:10rem;}.login-brand-top>span {font-size:.65rem;padding:.35rem .55rem;}.login-brand-main {padding:1.5rem 0 0;}.login-brand h1 {font-size:1.6rem;line-height:1.25;margin:0;letter-spacing:-.03em;}.login-eyebrow {font-size:.66rem;margin-bottom:.55rem;}.login-brand-main>p,.login-features,.login-brand-footer {display:none;}.login-panel {padding:1.5rem 1.3rem 2rem;}.login-panel h2 {font-size:1.6rem;}.login-sub {font-size:.85rem;margin-bottom:1.4rem;}.login-field .login-input input {font-size:16px;}.login-support {margin-top:1.5rem;}.login-form-footer {margin-top:1.5rem;}}
@media(max-width:359px) {.login-brand-top>span {display:none;}.login-brand,.login-panel {padding-left:1.1rem;padding-right:1.1rem;}.login-brand h1 {font-size:1.4rem;}}

/* Separate grid columns keep icons clear of filled and autofilled input text. */
.login-brand{position:relative;isolation:isolate;overflow:hidden;background:#21414f;}
.login-brand-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:36% center;z-index:-2;}
.login-brand:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#102e4090 0%,#173d4f40 25%,#183c4feb 65%,#173a4ffa 100%);}
.login-brand-main{margin-top:auto;padding-top:clamp(7rem,18vh,16rem);}
.login-features{border-top:1px solid #ffffff35;padding-top:1.5rem;margin-top:2rem;gap:1.2rem 1.4rem;}
.login-brand-footer{font-size:.65rem;align-items:center;flex-wrap:wrap;}
.login-brand-footer a{color:#d4e3eb;text-decoration:none;}
.login-brand-footer a:hover{color:#fff;text-decoration:none;}
.login-panel{background:#f6f8f9;flex-direction:column;align-items:center;justify-content:space-between;gap:2rem;padding:clamp(1.5rem,3vw,4rem);}
.login-panel-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;font-size:.7rem;color:#526c79;}
.login-panel-top img{width:9rem;height:auto;}
.login-form-wrap{max-width:31rem;margin:auto 0;}
.login-entry-icon{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;background:#e5eef2;color:#417690;border:1px solid #d3e2e9;border-radius:.65rem;margin-bottom:1.4rem;font-size:1.3rem;}
.login-sub{margin-bottom:1.6rem;}
.login-card{padding:1.6rem;background:#fff;border:1px solid #dbe5eb;border-radius:.7rem;box-shadow:0 .6rem 2.4rem #21414f08;}
.login-card-heading{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin-bottom:1.7rem;}
.login-card-heading strong{font-size:.9rem;color:#21414f;}
.login-card-heading span{font-size:.65rem;white-space:nowrap;border:1px solid #e0e9ee;border-radius:.3rem;background:#f6f8f9;padding:.3rem .5rem;color:#526c79;}
.login-input{display:grid;grid-template-columns:3rem minmax(0,1fr);align-items:center;min-height:3.4rem;border:1px solid #b9cdd8;border-radius:.45rem;overflow:hidden;background:#fff;}
.login-input-password{grid-template-columns:3rem minmax(0,1fr) 3rem;}
.login-input-icon{display:flex;align-items:center;justify-content:center;color:#638493;font-size:1.1rem;}
.login-page .login-field .login-input input{width:100%;min-width:0;min-height:3.3rem;margin:0;border:0!important;border-radius:0!important;padding:.8rem .55rem .8rem .1rem!important;font-size:.95rem;background:transparent;box-shadow:none!important;outline:0;}
.login-input:focus-within{border-color:#417690;box-shadow:0 0 0 3px #41769018;}
.login-show-password{display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;padding:0!important;border:0!important;background:transparent;color:#526c79;cursor:pointer;}
.login-show-password:hover{background:#edf3f6;color:#21414f;}
.login-show-password:focus-visible{outline:2px solid #417690;outline-offset:-4px;}
button.btn-login{min-height:3.4rem;margin-top:1.5rem;padding:.9rem 1.1rem!important;}
button.btn-login:hover{background:#35647c;text-decoration:none;}
.login-account-note{font-size:.69rem;color:#526c79;line-height:1.6;margin:1rem 0 0;}
.login-help{border-bottom:1px solid #dbe5eb;margin-top:1rem;color:#526c79;font-size:.75rem;}
.login-help summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:.65rem;list-style:none;}
.login-help summary::-webkit-details-marker{display:none;}
.login-help summary:after{content:"+";margin-left:auto;font-size:1.1rem;}
.login-help[open] summary:after{content:"−";}
.login-help p{line-height:1.65;margin:.2rem 0 1rem;}
.login-workflow{display:flex;align-items:center;justify-content:center;gap:1rem;color:#526c79;font-size:.7rem;padding:1.3rem 0 .1rem;}
.login-workflow i{color:#8ca6b4;}
.login-form-footer{margin-top:1rem;font-size:.65rem;}
@media(min-width:2400px){.login-form-wrap{max-width:36rem;}.login-card{padding:2rem;}.login-brand h1{font-size:3.65rem;}}
@media(max-width:1100px) and (min-width:701px){.login-panel{padding:1.5rem;}.login-panel-top>span{display:none;}.login-card{padding:1.2rem;}.login-card-heading>span{display:none;}.login-brand h1{font-size:2.25rem;}}
@media(max-width:700px){.login-brand-main{padding:1.65rem 0 0;}.login-brand:before{background:linear-gradient(90deg,#183c4ff5,#183c4f8c);}.login-brand-photo{object-position:45% 40%;}.login-panel{padding:1.4rem 1.1rem 1.5rem;}.login-panel-top,.login-entry-icon{display:none;}.login-card{padding:1.15rem;}.login-card-heading{margin-bottom:1.4rem;}.login-page .login-field .login-input input{font-size:16px;}.login-form-wrap{max-width:32rem;}}
@media(max-width:359px){.login-card-heading>span{display:none;}.login-panel{padding-left:.8rem;padding-right:.8rem;}.login-card{padding:1rem;}.login-workflow{gap:.75rem;}}

/* A full-screen photograph and a compact, readable mobile sign-in surface. */
@media(max-width:700px){
 body.login-page{display:flex;flex-direction:column;min-height:100svh;background:#21414f;isolation:isolate;}
 .login-mobile-photo{display:block;position:fixed;inset:0;width:100%;height:100%;object-fit:cover;object-position:48% center;z-index:-2;pointer-events:none;}
 body.login-page:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#102f4578 0%,#173d4f35 32%,#102f45ab 100%);}
 .login-brand{flex:none;background:transparent;overflow:visible;isolation:auto;padding:calc(1.3rem + env(safe-area-inset-top)) clamp(1rem,5vw,2rem) 1rem;}
 .login-brand:before,.login-brand-photo,.login-brand-main{display:none;}
 .login-brand-top{gap:.7rem;}
 .login-brand-top img{width:clamp(8rem,32vw,10rem);}
 .login-brand-top>span{color:#fff;background:#173d4f60;font-size:.6rem;padding:.35rem .5rem;}
 .login-mobile-welcome{display:block;padding-top:clamp(1.5rem,5svh,3rem);animation:login-welcome-in .65s ease-out both;}
 .login-mobile-welcome>span{display:block;color:#edf4f7;font-size:.65rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;}
 .login-mobile-welcome strong{display:block;color:#fff;font-size:clamp(1.45rem,6.4vw,2.3rem);line-height:1.18;letter-spacing:-.035em;margin:.65rem 0;max-width:18ch;}
 .login-mobile-welcome p{margin:0;color:#edf4f7;font-size:.8rem;}
 .login-panel{flex:1;justify-content:center;gap:0;background:transparent;padding:.6rem clamp(.85rem,4vw,1.5rem) calc(1.2rem + env(safe-area-inset-bottom));}
 .login-form-wrap{max-width:29rem;margin:0;width:100%;background:#fffffff5;border:1px solid #ffffffc0;border-radius:1.15rem;padding:clamp(1.15rem,5vw,1.8rem);box-shadow:0 1.2rem 3rem #102e4033;animation:login-form-in .7s .15s ease-out both;}
 .login-form-wrap>.ui-eyebrow{font-size:.62rem;color:#526c79;letter-spacing:.08em;}
 .login-panel h2{font-size:clamp(1.5rem,5.8vw,1.9rem);margin:.4rem 0 .45rem;}
 .login-desktop-title{display:none;}.login-mobile-title{display:inline;}
 .login-sub{font-size:.8rem;margin:0 0 1.3rem;}
 .login-card{padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;}
 .login-card-heading,.login-workflow{display:none;}
 .login-field{margin-bottom:1rem;}
 .login-field label{font-size:.78rem;margin-bottom:.4rem;}
 .login-input{min-height:3.2rem;}
 .login-page .login-field .login-input input{min-height:3.2rem;}
 button.btn-login{margin-top:1.2rem;min-height:3.2rem;border-radius:.5rem;}
 .login-account-note{font-size:.65rem;margin-top:.8rem;}
 .login-help{margin-top:.65rem;font-size:.7rem;}
 .login-form-footer{margin:.8rem 0 0;padding:0;border:0;font-size:.6rem;color:#526c79;}
 .login-error{font-size:.78rem;padding:.8rem;margin-bottom:1rem;}
}
@media(max-width:700px) and (max-height:650px){
 .login-brand{padding-top:calc(.85rem + env(safe-area-inset-top));padding-bottom:.7rem;}
 .login-mobile-welcome{padding-top:1rem;}
 .login-mobile-welcome p{display:none;}
 .login-panel{justify-content:flex-start;}
}
@keyframes login-welcome-in{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
@keyframes login-form-in{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
@media(prefers-reduced-motion:reduce){.login-mobile-welcome,.login-form-wrap{animation:none!important;}}
