:root{--alv-blue:#01426a;--alv-blue-action:#0067b9;--alv-yellow:#ffc72c;--alv-ink:#263c49;--alv-muted:#607480;--alv-line:#d6e2e9}
*{box-sizing:border-box}
html,body{min-height:100%;margin:0}
body{font-family:Montserrat,Arial,sans-serif;color:var(--alv-ink);background:#fff}
button,input{font:inherit}
a{color:var(--alv-blue-action)}
:focus-visible{outline:3px solid var(--alv-yellow);outline-offset:3px}
.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.22fr) minmax(390px,.78fr)}
.login-brand{min-height:100vh;position:relative;display:flex;flex-direction:column;overflow:hidden;padding:clamp(34px,6vw,90px);background:linear-gradient(145deg,#f2f9fc,#dfedf5);border-right:3px solid var(--alv-yellow);color:var(--alv-blue)}
.login-brand:after{content:"360";position:absolute;right:-35px;bottom:-128px;font-size:clamp(230px,27vw,370px);font-weight:800;line-height:1;color:#01426a0a;pointer-events:none}
.brand-lockup,.brand-copy,.brand-systems{position:relative;z-index:1}
.brand-lockup{display:flex;align-items:center;gap:20px;white-space:nowrap}
.brand-logo-frame{width:205px;height:86px;display:grid;place-items:center;flex:none;padding:12px;border-radius:9px;background:#fff;box-shadow:0 8px 24px #01426a20}
.brand-logo-frame img{display:block;width:100%;height:100%;object-fit:contain}
.brand-rule{width:1px;height:52px;background:#01426a33}
.brand-lockup strong{font-size:24px;letter-spacing:.2px;font-weight:600}
.brand-copy{margin:auto 0;max-width:690px;padding:60px 0}
.eyebrow{text-transform:uppercase;font-size:13px;font-weight:800;letter-spacing:1.6px}
.brand-copy h1{margin:22px 0 26px;font-size:clamp(42px,4.8vw,70px);line-height:1.04;letter-spacing:-2px}
.brand-copy>p:last-child{max-width:650px;color:#4b6575;font-size:17px;line-height:1.6}
.brand-systems{display:flex;align-items:center;gap:14px;color:#466f83;font-size:12px;font-weight:700}
.brand-systems i{width:40px;height:1px;background:var(--alv-yellow)}
.login-access{display:grid;place-items:center;padding:42px clamp(28px,5vw,76px)}
.login-card{width:min(460px,100%)}
.iana-intro{display:flex;align-items:flex-start;gap:13px;padding:16px;margin-bottom:34px;border-left:4px solid var(--alv-yellow);background:#edf6fb}
.iana-mark{width:42px;height:42px;flex:none;display:grid;place-items:center;border-radius:11px;background:var(--alv-blue);color:#fff;font-weight:800;box-shadow:inset -4px -4px var(--alv-yellow)}
.iana-intro strong{font-size:14px}.iana-intro p{margin:5px 0 0;color:var(--alv-muted);font-size:11px;line-height:1.5}
.login-card h2{margin:0;font-size:30px;line-height:1.2}.login-subtitle{margin:16px 0 22px;color:var(--alv-muted);font-size:14px;line-height:1.5}
.login-card form{display:grid}.login-card label{margin:13px 0 7px;color:#173247;font-size:12px;font-weight:700}
.login-card input{width:100%;height:51px;padding:0 14px;border:1px solid #bdcbd2;border-radius:6px;background:#fff;color:var(--alv-ink);font-size:14px}
.login-card input:focus{outline:3px solid var(--alv-yellow);outline-offset:2px}
.password-field{position:relative}.password-field input{padding-right:80px}.password-field button{position:absolute;right:5px;top:5px;height:41px;padding:0 9px;border:0;background:transparent;color:var(--alv-blue);font-size:11px;font-weight:700;cursor:pointer}
.login-submit{height:44px;margin-top:22px;border:0;border-radius:6px;background:var(--alv-blue);color:#fff;font-size:12px;font-weight:700;cursor:pointer}.login-submit:hover{background:#003756}.login-submit:disabled{opacity:.7;cursor:wait}
.forgot-link{display:block;margin:17px auto;text-align:center;text-decoration:none;font-size:13px}.forgot-link:hover,.login-meta a:hover{text-decoration:underline}
.login-meta{display:flex;justify-content:center;gap:12px;padding-top:17px;border-top:1px solid var(--alv-line);font-size:11px}.login-meta a{text-decoration:none}
.auth-message{padding:11px 13px;margin:0 0 8px;border-radius:6px;font-size:12px;line-height:1.5}.auth-message.info{background:#edf6fb;color:#01426a}.auth-message.danger{background:#fff2ef;color:#a33a2f}.field-error{margin:3px 0;color:#a33a2f;font-size:11px}
@media(max-width:850px){.login-shell{grid-template-columns:1fr}.login-brand{min-height:390px;padding:30px}.brand-copy{padding:30px 0}.brand-copy h1{font-size:clamp(38px,7vw,54px);margin:15px 0}.brand-copy>p:last-child{font-size:14px}.login-access{padding:38px 26px}}
@media(max-width:520px){.login-brand{min-height:360px;padding:23px}.brand-lockup{gap:10px}.brand-logo-frame{width:155px;height:67px;padding:8px}.brand-rule{height:38px}.brand-lockup strong{font-size:17px}.brand-copy h1{font-size:39px;letter-spacing:-1.5px}.eyebrow{font-size:10px}.brand-systems{font-size:10px}.brand-systems i{width:24px}.login-access{padding:30px 20px}.iana-intro{margin-bottom:25px}.login-card h2{font-size:26px}}
