[hidden]{display:none!important}
.auth-body{min-height:100vh;overflow-x:hidden}
.auth-stage{min-height:100vh;display:grid;place-items:center;padding:32px 20px;position:relative;isolation:isolate}
.auth-stage::before,.auth-stage::after{content:"";position:fixed;z-index:-1;border-radius:50%;filter:blur(10px);pointer-events:none}
.auth-stage::before{width:min(58vw,680px);height:min(58vw,680px);left:-18vw;top:-28vw;background:radial-gradient(circle,rgba(139,92,246,.24),transparent 66%)}
.auth-stage::after{width:min(44vw,520px);height:min(44vw,520px);right:-15vw;bottom:-25vw;background:radial-gradient(circle,rgba(196,181,253,.16),transparent 68%)}
.login-card{width:min(100%,460px);padding:clamp(28px,6vw,46px);border:1px solid rgba(196,181,253,.2);border-radius:24px;background:linear-gradient(145deg,rgba(25,17,43,.96),rgba(14,9,25,.96));box-shadow:0 32px 100px rgba(0,0,0,.45),inset 0 1px rgba(255,255,255,.04);position:relative;overflow:hidden}
.login-card::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#6d36d3,#c4b5fd,#6d36d3)}
.login-brand{display:grid;place-items:center;width:54px;height:54px;margin-bottom:24px;border-radius:16px;background:linear-gradient(145deg,#c4b5fd,#7c3fe4);color:#170a2f;font-size:14px;font-weight:950;box-shadow:0 14px 34px rgba(139,92,246,.3)}
.login-eyebrow{display:block;margin-bottom:9px;color:#a78bfa;font-size:.76rem;font-weight:900;letter-spacing:.14em}
.login-card h1{margin:0;font-size:clamp(2rem,8vw,3.1rem);line-height:1;letter-spacing:-.055em}
.login-intro{margin:16px 0 28px;color:#b3abc4;font-size:1rem;line-height:1.6}
.login-form{display:grid;gap:10px}
.login-form label{font-size:.9rem;font-weight:800}
.login-form input{width:100%;min-height:50px;padding:0 15px;border:1px solid rgba(196,181,253,.24);border-radius:12px;background:rgba(8,5,15,.7);color:#f7f4ff;font:inherit;font-size:1rem;outline:none;transition:border-color .18s,box-shadow .18s}
.login-form input::placeholder{color:#716982}
.login-form input:focus{border-color:#a78bfa;box-shadow:0 0 0 4px rgba(139,92,246,.14)}
.login-submit{min-height:50px;margin-top:4px;border:1px solid #9b72f5;border-radius:12px;background:linear-gradient(135deg,#8b5cf6,#6d36d3);color:white;font:inherit;font-size:.98rem;font-weight:850;cursor:pointer;box-shadow:0 14px 34px rgba(139,92,246,.24);transition:transform .18s,filter .18s}
.login-submit:hover{transform:translateY(-1px);filter:brightness(1.08)}
.login-submit:disabled{cursor:wait;opacity:.68;transform:none}
.login-status{min-height:24px;margin:14px 0 0;color:#b9b0ca;font-size:.9rem;line-height:1.45}
.login-status.is-success{color:#8be6b9}.login-status.is-error{color:#ff9c9c}
.login-security{display:grid;grid-template-columns:24px 1fr;gap:10px;align-items:start;margin-top:17px;padding-top:17px;border-top:1px solid rgba(221,214,254,.11)}
.login-security span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:rgba(96,223,162,.1);color:#60dfa2;font-weight:900}
.login-security p{margin:0;color:#938aa5;font-size:.82rem;line-height:1.5}
.login-footer{position:absolute;bottom:20px;left:20px;right:20px;text-align:center;color:#736b82;font-size:.75rem}
.auth-stage--loading{background:#0b0714}
.loading-card{display:grid;justify-items:center;gap:9px;color:#f7f4ff}
.loading-card small{color:#aaa1bc}.loading-ring{width:38px;height:38px;margin-bottom:8px;border:3px solid rgba(196,181,253,.16);border-top-color:#a78bfa;border-radius:50%;animation:auth-spin .8s linear infinite}
@keyframes auth-spin{to{transform:rotate(360deg)}}
noscript{position:fixed;inset:auto 20px 20px;padding:12px;border-radius:10px;background:#321828;color:#ffd7e7;text-align:center}
@media(max-width:520px){.auth-stage{align-items:start;padding-top:56px}.login-card{border-radius:20px}.login-footer{position:static;margin-top:28px}.auth-stage{grid-template-rows:auto auto;gap:0}}
@media(prefers-reduced-motion:reduce){.loading-ring{animation-duration:1.8s}}
