.login-page{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;color:#171744;background:linear-gradient(120deg,#0000c42b,#43a9ff1c 50%,#ba00df20),url('../images/cloud-sky.png') center/cover fixed no-repeat;font-family:var(--font-text)}
.login-home{align-self:flex-start;margin:28px 36px;color:#171744;font-size:13px;font-weight:700;text-decoration:none;display:flex;align-items:center;gap:10px}.login-home .bi{font-size:20px}
.login-stage{flex:1;display:grid;place-items:center;padding:24px}.login-glass{width:min(100%,450px);padding:38px;background:linear-gradient(135deg,#ffffff62,#ffffff28);border:1px solid #ffffffb0;border-bottom-color:#ffffff50;border-radius:26px;backdrop-filter:blur(24px) saturate(145%);-webkit-backdrop-filter:blur(24px) saturate(145%);box-shadow:0 24px 60px #00005630,inset 0 1px 0 #ffffffd0}
.login-brand{display:flex;align-items:center;justify-content:center;gap:10px;font-family:var(--font-display);font-size:24px;font-weight:700;color:#0000c4;text-decoration:none}.login-intro{text-align:center;margin:30px 0 26px}.login-eyebrow{font-size:8px;letter-spacing:1.7px;font-weight:800}.login-intro h1{font-size:43px;letter-spacing:-1px;margin:12px 0 6px}.login-intro p{font-size:13px;margin:0;color:#343e64}.login-field{margin-bottom:18px}.login-field label{font-size:12px;font-weight:700;margin-bottom:8px;display:block}.login-field .form-control{background:#ffffff48;border:1px solid #ffffffb0;border-radius:10px;min-height:47px;color:#171744;font-size:14px;box-shadow:inset 0 1px 5px #1d46ce0c}.login-field .form-control:focus{background:#ffffff77;border-color:#1d46ce}.login-field small{font-size:11px}.login-options{text-align:right;margin:-3px 0 22px;font-size:12px}.login-options a,.login-signup a{color:#00009b;font-weight:700;text-underline-offset:3px}.login-submit{width:auto;min-width:180px;max-width:100%;margin-inline:auto;padding:11px 22px;border:1px solid #ffffff40;border-radius:11px;background:linear-gradient(115deg,#0000c4,#1d46ce 65%,#8a00cb);color:white;display:flex;justify-content:center;gap:18px;align-items:center;font-size:14px;font-weight:700;box-shadow:0 6px 18px #1d46ce35}.login-submit:hover{background:#0000c4}.login-submit .bi{font-size:20px}.login-signup{text-align:center;font-size:12px;margin:24px 0}.login-disclosure{text-align:center;font-size:10px;color:#343e64;border-top:1px solid #ffffff70;padding-top:18px;margin:0}.login-errors{font-size:12px;background:#fff0f0c9;color:#8f1126;border-radius:8px;padding:10px;margin-block:8px}.login-errors ul{padding-left:18px;margin:0}.login-notice{background:#ffffff66;padding:12px;border-radius:8px;font-size:12px}.login-footer{display:flex;gap:24px;justify-content:center;padding:24px;font-size:11px}.login-footer a{color:#171744}.login-page a:focus-visible,.login-submit:focus-visible{outline:3px solid #0000c4;outline-offset:4px}@media(max-width:500px){.login-home{margin:20px}.login-stage{padding:12px 20px}.login-glass{padding:28px 24px}.login-intro h1{font-size:38px}}

.signup-page .login-glass{width:min(100%,490px)}.signup-page .login-intro{margin:22px 0}.signup-help{font-size:11px;line-height:1.6;color:#343e64;margin-top:8px}.signup-help ul{padding-left:18px;margin:0}.signup-page .login-field{margin-bottom:16px}

.password-input-wrap{position:relative}
.password-input-wrap .form-control{padding-right:48px}
.password-visibility{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:#00284f;font-size:20px;cursor:pointer}
.password-visibility[hidden]{display:none}
.password-visibility:hover{background:#ffffff70}
.password-visibility:focus-visible{outline:2px solid #004e9c;outline-offset:1px}
.login-loading[hidden]{display:none}
.login-loading{position:fixed;inset:0;z-index:10000;display:grid;place-content:center;justify-items:center;gap:24px;background:#10294355;backdrop-filter:blur(12px);color:white}
.login-loading .algobridge-logo{width:240px;height:160px}
.login-loading-spinner{width:54px;height:54px;border:6px dotted #fff;border-radius:50%;animation:login-spin 1.5s linear infinite}
@keyframes login-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.login-loading-spinner{animation:none}}
