:root{color-scheme:light;--navy:#142b43;--navy-2:#1e4f82;--indigo:#4f46e5;--indigo-hover:#4338ca;--canvas:#f4f7fb;--border:#dce5ee;--text:#182d44;--muted:#667b90;--soft-blue:#eaf2fb}
*{box-sizing:border-box}
html,body{min-width:320px;min-height:100%;margin:0}
body{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--canvas);color:var(--text);-webkit-font-smoothing:antialiased}
button,input{font:inherit}
button{cursor:pointer}
[hidden]{display:none!important}
.login-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(440px,1fr);min-height:100vh;min-height:100dvh}
.brand-panel{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:48px;overflow:hidden;padding:50px clamp(38px,5vw,84px);background:linear-gradient(145deg,#142b43 0%,#183854 55%,#10263d 100%);color:#fff}
.brand-grid{position:absolute;inset:0;background-image:linear-gradient(#9fc0df12 1px,transparent 1px),linear-gradient(90deg,#9fc0df12 1px,transparent 1px);background-size:24px 24px;mask-image:linear-gradient(100deg,#000 15%,transparent 100%);pointer-events:none}
.brand-panel::after{content:"";position:absolute;right:-20%;bottom:-30%;width:72%;aspect-ratio:1;border:1px solid #8eb6d021;border-radius:50%;box-shadow:0 0 0 80px #8eb6d009,0 0 0 160px #8eb6d007;pointer-events:none}
.brand-lockup,.brand-message,.brand-foot{position:relative;z-index:1}
.brand-lockup,.mobile-brand{display:flex;align-items:center;gap:12px}
.brand-mark{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:10px;background:var(--indigo);color:#fff;font-size:13px;font-weight:750;letter-spacing:-.03em;box-shadow:0 8px 18px #0b1d3850}
.brand-name{font-size:21px;font-weight:750;letter-spacing:-.045em}
.brand-name span{color:#9ca9ff}
.eyebrow,.form-kicker,.brand-foot{font-size:11px;font-weight:700;letter-spacing:.14em}
.eyebrow{color:#aeb8ff}
.brand-message{max-width:580px}
.brand-message h1{margin:16px 0 20px;font-size:clamp(42px,4.6vw,68px);font-weight:740;line-height:1.08;letter-spacing:-.055em}
.brand-message h1 span{color:#aeb8ff}
.brand-message p{max-width:470px;margin:0;color:#ccdae8;font-size:16px;line-height:1.7}
.brand-foot{display:flex;justify-content:space-between;gap:24px;color:#a7bdd1;font-size:10px;letter-spacing:.11em}
.form-panel{display:flex;align-items:center;justify-content:center;min-width:0;padding:48px 32px;background:var(--canvas)}
.form-content{width:min(100%,390px)}
.mobile-brand{display:none;margin-bottom:44px}
.mobile-brand .brand-name{color:var(--navy)}
.form-kicker{color:var(--indigo)}
.form-content h2{margin:9px 0 8px;color:var(--navy);font-size:30px;font-weight:700;letter-spacing:-.04em}
.form-intro{margin:0 0 32px;color:var(--muted);font-size:14px;line-height:1.55}
.field{margin-bottom:20px}
.field-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.field label{display:block;margin:0 0 8px;color:#40556b;font-size:12px;font-weight:650}
.field input{display:block;width:100%;height:44px;padding:0 13px;border:1px solid #c9d7e5;border-radius:8px;outline:0;background:#fff;color:var(--text);font-size:13px;transition:border-color .16s ease,box-shadow .16s ease}
.field input::placeholder{color:#9aaabb}
.field input:hover{border-color:#aabfd2}
.field input:focus{border-color:var(--indigo);box-shadow:0 0 0 3px #4f46e521}
.field input[aria-invalid="true"]{border-color:#dc5656}
.text-action,.back-action{border:0;background:none;color:var(--indigo);font-size:12px;font-weight:650}
.text-action{margin:0 0 8px;padding:0}
.text-action:hover,.back-action:hover{text-decoration:underline}
.submit-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:44px;margin-top:26px;padding:10px 16px;border:1px solid var(--indigo);border-radius:8px;background:var(--indigo);box-shadow:0 8px 18px #4f46e528;color:#fff;font-size:13px;font-weight:650;transition:background .16s ease,transform .16s ease,box-shadow .16s ease}
.submit-button:hover:not(:disabled){transform:translateY(-1px);background:var(--indigo-hover);box-shadow:0 11px 22px #4f46e538}
.submit-button:disabled{cursor:wait;opacity:.7}
.submit-button [aria-hidden]{font-size:19px;line-height:1}
.back-action{display:block;margin:20px auto 0;padding:4px}
.form-message{margin:0 0 20px;padding:11px 13px;border:1px solid #f4c7c7;border-radius:8px;background:#fff1f1;color:#a62c2c;font-size:12px;line-height:1.5}
.form-message.success{border-color:#b8e6d2;background:#eaf8f0;color:#196b47}
.form-footer{margin-top:42px;padding-top:20px;border-top:1px solid var(--border);color:#8293a4;text-align:center;font-size:11px}
.form-footer span{font-weight:600}
.login-splash{position:fixed;z-index:50;inset:0;display:grid;place-items:center;background:var(--navy);color:#fff;animation:splash-exit .65s 2.05s both}
.splash-content{display:flex;flex-direction:column;align-items:center;text-align:center}
.building-mark{display:flex;align-items:flex-end;gap:7px;height:76px;margin-bottom:24px}
.building-mark span{width:22px;height:var(--height);border-radius:4px 4px 2px 2px;background:#7ea5ca;transform-origin:bottom;animation:building-rise .85s var(--delay) cubic-bezier(.16,1,.3,1) both}
.building-mark span:nth-child(1){--height:34px;--delay:.1s}
.building-mark span:nth-child(2){--height:65px;--delay:.28s;background:var(--indigo)}
.building-mark span:nth-child(3){--height:48px;--delay:.2s}
.splash-content strong{font-size:23px;font-weight:700;letter-spacing:-.04em;animation:reveal-up .65s .5s both}
.splash-content>span{margin-top:9px;color:#b3c7da;font-size:10px;font-weight:650;letter-spacing:.2em;animation:reveal-up .65s .65s both}
.reveal{animation:reveal-up .65s var(--reveal-delay,0s) both}
@keyframes building-rise{from{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}
@keyframes reveal-up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes splash-exit{from{opacity:1;visibility:visible}to{opacity:0;visibility:hidden}}
.login-splash.is-hidden{opacity:0;visibility:hidden;pointer-events:none;animation:none;transition:opacity .3s ease,visibility .3s ease}
.login-splash.is-active{opacity:1;visibility:visible;pointer-events:auto;animation:none}
.login-splash.is-active .building-mark span{animation:building-rise .65s var(--delay) both}
@media(max-width:850px){.login-shell{grid-template-columns:1fr}.brand-panel{display:none}.form-panel{padding:50px 24px}.mobile-brand{display:flex}.form-content{max-width:400px}}
@media(max-width:480px){.form-panel{align-items:flex-start;padding:32px 22px}.mobile-brand{margin-bottom:68px}.form-content h2{font-size:27px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}.login-splash:not(.is-active){display:none}}
