body:has(.login-shell-modern) { overflow:hidden; background:#fff; }
body:has(.login-shell-modern) .staging-banner { display:none; }
body:has(.login-shell-modern) .topbar { display:none; }
body:has(.login-shell-modern) .page { width:100%; max-width:none; margin:0; padding:0; }
.login-shell-modern { display:grid; grid-template-columns:minmax(0,1fr); width:100%; height:100dvh; min-height:100dvh; place-items:stretch; gap:0; padding:0; }
.login-frame { display:grid; grid-template-columns:minmax(0,55fr) minmax(430px,45fr); width:100%; height:100%; min-width:0; min-height:0; overflow:hidden; border:0; border-radius:0; background:#fff; box-shadow:none; }
.login-brand-panel { position:relative; display:flex; min-width:0; flex-direction:column; padding:clamp(38px,4vw,58px); overflow:hidden; color:#073860; background:linear-gradient(150deg,#eff9f8 0%,#e9f4f7 55%,#e5eff6 100%); isolation:isolate; }
.login-pointer-glow { position:absolute; z-index:-1; inset:0; pointer-events:none; background:radial-gradient(circle 310px at var(--glow-x,68%) var(--glow-y,42%),rgba(68,201,190,.13),rgba(111,176,209,.045) 43%,transparent 72%); opacity:.9; }
.login-cursor-particles { position:absolute; z-index:1; inset:0; overflow:hidden; pointer-events:none; }
.login-cursor-particle { position:absolute; top:0; left:0; width:7px; height:7px; border-radius:50%; opacity:0; background:#159f99; box-shadow:0 0 10px rgba(21,159,153,.38); transform:translate3d(-20px,-20px,0); will-change:transform,opacity; }
.login-cursor-particle:nth-child(2n) { width:6px; height:6px; background:#438cbb; box-shadow:0 0 9px rgba(67,140,187,.34); }
.login-cursor-particle:nth-child(3n) { width:5px; height:5px; background:#8174c4; box-shadow:0 0 8px rgba(129,116,196,.32); }
.login-brand-panel::before,.login-brand-panel::after { position:absolute; content:""; border-radius:50%; pointer-events:none; }
.login-brand-panel::before { right:-125px; bottom:-145px; width:360px; height:360px; border:1px solid rgba(8,142,137,.14); transform:translate3d(var(--shape-a-x,0),var(--shape-a-y,0),0); will-change:transform; }
.login-brand-panel::after { right:-48px; bottom:-75px; width:215px; height:215px; background:rgba(45,199,190,.08); transform:translate3d(var(--shape-b-x,0),var(--shape-b-y,0),0); will-change:transform; }
.login-brand-logo { position:relative; z-index:1; display:inline-flex; width:fit-content; align-items:center; color:#073f78; text-decoration:none; }
.login-brand-logo img { display:block; width:450px; height:120px; object-fit:contain; }
.login-brand-message { position:relative; z-index:1; max-width:470px; margin:auto 0; padding:30px 0; }
.login-security-label { display:inline-flex; align-items:center; gap:9px; color:#087f7a; font-size:.75rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.login-security-label i { width:8px; height:8px; border-radius:50%; background:#20b9af; box-shadow:0 0 0 5px rgba(32,185,175,.12); }
.login-brand-message h1 { margin:20px 0 18px; color:#07345d; font:750 clamp(2.5rem,4vw,3.7rem)/1.04 Inter,system-ui,sans-serif; letter-spacing:-.052em; }
.login-brand-message p { max-width:400px; margin:0; color:#5d7586; font-size:1rem; line-height:1.65; }
.login-trust-card { position:relative; z-index:1; display:flex; max-width:390px; align-items:center; gap:13px; padding:14px 16px; border:1px solid rgba(7,92,119,.11); border-radius:15px; background:rgba(255,255,255,.63); }
.login-trust-icon { display:grid; width:34px; height:34px; flex:0 0 34px; place-items:center; border-radius:10px; color:#fff; background:#16a9a1; font-size:.9rem; font-weight:800; }
.login-trust-card>span:last-child { display:grid; gap:2px; }
.login-trust-card strong { color:#173f5d; font-size:.86rem; }
.login-trust-card small { color:#607887; font-size:.78rem; line-height:1.4; }
.login-access-panel { display:grid; min-width:0; place-items:center; padding:48px clamp(38px,5vw,72px); background:#fff; }
.login-card-modern { width:100%; max-width:430px; min-width:0; padding:0; }
.login-mobile-logo { display:none; }
.login-card-modern>.eyebrow { color:#0b938d; font-size:.78rem; letter-spacing:.08em; }
.login-card-modern h2 { margin:9px 0; color:#082f57; font:750 clamp(2rem,3vw,2.45rem)/1.12 Inter,system-ui,sans-serif; letter-spacing:-.035em; }
.login-card-modern .login-lead { margin:0; color:#607684; font-size:.94rem; line-height:1.55; }
.login-fields { display:grid; gap:17px; margin-top:32px; }
.login-card-modern .login-fields label { display:grid; min-width:0; gap:8px; margin:0; color:#173b59; font-size:.875rem; font-weight:750; }
.login-card-modern .login-fields input { width:100%; height:54px; padding:0 16px; border:1px solid #cad9e2; border-radius:12px; outline:0; color:#102f49; background:#fff; font:500 .94rem Inter,system-ui,sans-serif; transition:border-color .18s ease,box-shadow .18s ease; }
.login-card-modern .login-fields input::placeholder { color:#9aabb7; }
.login-card-modern .login-fields input:focus { border-color:#149f9a; box-shadow:0 0 0 4px rgba(20,159,154,.11); }
.login-card-modern .login-fields input[aria-invalid="true"] { border-color:#c85b5b; }
.login-password-field { position:relative; display:block; min-width:0; }
.login-card-modern .login-password-field input { padding-right:86px; }
.login-password-toggle { position:absolute; top:50%; right:8px; min-width:70px; min-height:38px; padding:0 10px; transform:translateY(-50%); border:0; border-radius:9px; color:#075d99; background:#edf5f9; font:750 .78rem Inter,system-ui,sans-serif; cursor:pointer; }
.login-password-toggle:hover { background:#dfeff5; }
.login-password-toggle:focus-visible,.login-submit:focus-visible,.forgot-password-link:focus-visible,.login-signup a:focus-visible { outline:3px solid rgba(20,159,154,.28); outline-offset:3px; }
.field-error { color:#a33e3e; font-size:.78rem; font-weight:600; line-height:1.4; }
.login-options { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 20px; margin:17px 0 22px; }
.login-card-modern .login-options .remember { display:flex; min-height:44px; align-items:center; gap:9px; margin:0; color:#536b7a; font-size:.82rem; font-weight:650; }
.login-card-modern .remember input { width:17px; height:17px; margin:0; accent-color:#078c88; }
.login-card-modern .forgot-password-link { display:flex; min-height:44px; align-items:center; margin:0; color:#075d99; font-size:.82rem; }
.login-card-modern .success,.login-card-modern .error { margin-bottom:16px; }
.login-card-modern .login-submit { display:flex; width:100%; min-height:54px; align-items:center; justify-content:center; gap:12px; margin:0; border-radius:12px; background:#073f78; font-size:1rem; box-shadow:0 10px 22px rgba(7,63,120,.16); transition:transform .18s ease,background .18s ease,box-shadow .18s ease; }
.login-card-modern .login-submit:hover { transform:translateY(-1px); background:#052f5f; box-shadow:0 13px 28px rgba(7,63,120,.21); }
.login-card-modern .login-submit:disabled { cursor:wait; transform:none; opacity:.72; }
.login-signup { max-width:100%; margin:23px 0 0; color:#5f7483; font-size:.84rem; line-height:1.6; overflow-wrap:anywhere; text-align:center; }
.login-signup a { color:#075d99; font-weight:800; text-decoration:none; }
.login-signup a:hover { text-decoration:underline; }
.login-card-modern .privacy { margin-top:24px; padding-top:18px; border-top:1px solid #e4ebef; color:#667d8b; font-size:.78rem; text-align:center; }
@media(max-width:980px) {
  body:has(.login-shell-modern) { overflow:auto; }
  body:has(.login-shell-modern) { background:#f1f8f8; }
  .login-shell-modern { height:auto; min-height:100dvh; padding:28px; }
  .login-frame { grid-template-columns:1fr; width:100%; min-height:100%; }
  .login-brand-panel { display:none; }
  .login-access-panel { width:100%; max-width:520px; margin:auto; padding:38px; border:1px solid rgba(7,92,119,.1); border-radius:20px; background:#fff; box-shadow:0 18px 50px rgba(7,63,120,.08); }
  .login-mobile-logo { display:flex; width:fit-content; align-items:center; margin:0 auto 30px; color:#073f78; }
  .login-mobile-logo img { width:220px; height:64px; object-fit:contain; }
}
@media(prefers-reduced-motion:reduce) {
  .login-pointer-glow,.login-cursor-particles { display:none; }
  .login-brand-panel::before,.login-brand-panel::after { transform:none; }
}
@media(max-width:480px) {
  .login-shell-modern { align-items:start; padding:0; background:#fff; }
  .login-frame { border-radius:0; }
  .login-access-panel { max-width:none; padding:24px 20px 32px; border:0; border-radius:0; box-shadow:none; }
  .login-mobile-logo { margin-bottom:24px; }
  .login-mobile-logo img { width:205px; height:60px; }
  .login-options { align-items:flex-start; flex-direction:column; gap:2px; }
}
