:root{--purple:#8b5cf6;--ink:#15111d;--muted:#817b8e;--line:#e9e5ee}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;font-family:Manrope,Arial,sans-serif;background:#f5f4f8;color:var(--ink)}
.login-shell{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}
.login-visual{position:relative;overflow:hidden;padding:44px 55px;color:#fff;background:radial-gradient(circle at 75% 25%,#6c3cbc 0,transparent 30%),linear-gradient(145deg,#171022,#08070d)}
.visual-brand,.mobile-brand{display:flex;align-items:center;gap:12px}.visual-brand span,.mobile-brand span{width:42px;height:42px;border-radius:11px;background:linear-gradient(135deg,#c287ff,#7055ff);display:grid;place-items:center;color:#15101c;font-weight:800}.visual-brand b{font-size:17px}.visual-copy{position:relative;z-index:2;max-width:560px;margin-top:20vh}.visual-copy small{color:#b998df;letter-spacing:3px;font-size:10px;font-weight:800}.visual-copy h1{font-size:clamp(58px,7vw,102px);line-height:.88;letter-spacing:-6px;margin:24px 0}.visual-copy h1 em{font-style:normal;color:#b77cff}.visual-copy p{color:#9b92a5;max-width:410px;line-height:1.7}.visual-orb{position:absolute;width:520px;height:520px;border:1px solid #9e6bf331;border-radius:50%;right:-250px;bottom:-220px;box-shadow:0 0 0 80px #9e6bf309,0 0 0 160px #9e6bf306}
.login-form-wrap{display:grid;place-items:center;padding:40px}.login-form-wrap form{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;padding:42px;box-shadow:0 25px 70px #20132e14}.mobile-brand{display:none}.eyebrow{color:var(--purple);font-size:9px;letter-spacing:2px;font-weight:800;margin:0 0 14px}.login-form-wrap h2{font-size:34px;letter-spacing:-1.5px;margin:0 0 8px}.subtitle{color:var(--muted);font-size:11px;margin:0 0 28px}.login-form-wrap label{display:grid;gap:8px;font-size:10px;font-weight:700;color:#5f5868;margin-top:16px}.login-form-wrap input{width:100%;border:1px solid var(--line);border-radius:9px;padding:13px 14px;outline:0;background:#fbfafe;color:#292330}.login-form-wrap input:focus{border-color:var(--purple);box-shadow:0 0 0 3px #8b5cf612}.password-field{position:relative}.password-field input{padding-right:60px}.password-field button{position:absolute;right:8px;top:7px;border:0;background:transparent;color:var(--purple);font-size:9px;font-weight:800;padding:7px}.login-button{width:100%;border:0;border-radius:10px;padding:14px 17px;margin-top:24px;background:linear-gradient(135deg,#a66fff,#6f4ee0);color:#fff;font-weight:800;display:flex;justify-content:space-between;box-shadow:0 12px 28px #8b5cf62c;cursor:pointer}.login-button:disabled{opacity:.65;cursor:wait}.error{min-height:17px;color:#d94761;font-size:10px;text-align:center;margin:12px 0 0}.secure-note{display:block;color:#9a94a2;text-align:center;font-size:8px;margin-top:8px}
@media(max-width:760px){.login-shell{grid-template-columns:1fr}.login-visual{display:none}.login-form-wrap{min-height:100vh;padding:20px}.login-form-wrap form{padding:30px 24px}.mobile-brand{display:flex;margin-bottom:35px}.mobile-brand b{font-size:16px}}

/* Premium authentication experience */
body{background:#f7f7fb;overflow-x:hidden}
.login-visual{isolation:isolate;background:
  radial-gradient(circle at 72% 26%,rgba(69,115,255,.46),transparent 24%),
  radial-gradient(circle at 18% 82%,rgba(128,66,255,.3),transparent 31%),
  linear-gradient(145deg,#0d1428,#05070f 68%,#101126)}
.login-grid-glow{position:absolute;inset:0;z-index:-2;opacity:.3;background-image:linear-gradient(rgba(74,124,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(74,124,255,.16) 1px,transparent 1px);background-size:54px 54px;transform:perspective(650px) rotateX(58deg) scale(1.6) translateY(18%);transform-origin:bottom;animation:gridMove 10s linear infinite}
.visual-brand{position:relative;z-index:3;display:flex;align-items:center;gap:13px}.visual-brand img{width:74px;height:58px;object-fit:contain;filter:drop-shadow(0 0 14px #2978ff)}
.visual-copy{position:relative;z-index:3}.visual-copy h1{text-shadow:0 0 34px rgba(60,122,255,.25)}
.visual-orb{animation:orbFloat 5s ease-in-out infinite}
.login-pulse{position:absolute;border:1px solid rgba(80,146,255,.42);border-radius:50%;z-index:-1;animation:pulseRing 4.5s ease-out infinite}.pulse-one{width:290px;height:290px;right:-70px;top:16%}.pulse-two{width:190px;height:190px;left:-70px;bottom:8%;animation-delay:1.8s}
.login-form-wrap{position:relative;background:radial-gradient(circle at 90% 10%,#edf1ff 0,transparent 30%),linear-gradient(150deg,#fff,#f6f5fb)}
.auth-card{width:min(520px,100%);background:rgba(255,255,255,.9);border:1px solid rgba(111,78,224,.15);border-radius:24px;padding:22px 42px 38px;box-shadow:0 30px 90px rgba(32,19,46,.12),inset 0 1px #fff;backdrop-filter:blur(18px);animation:cardEnter .75s cubic-bezier(.2,.75,.25,1)}
.login-form-wrap form{width:100%;background:transparent;border:0;border-radius:0;padding:20px 0 0;box-shadow:none}
.login-form-wrap form[hidden]{display:none}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#f2eff8;padding:5px;border-radius:13px;margin-bottom:12px}.auth-tabs button{border:0;background:transparent;color:#847d8d;border-radius:9px;padding:11px;font:inherit;font-size:11px;font-weight:800;cursor:pointer;transition:.25s}.auth-tabs button.active{color:#fff;background:linear-gradient(135deg,#9c62ff,#5e54e8);box-shadow:0 8px 20px rgba(111,78,224,.22)}
.signup-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.signup-grid label{min-width:0}
.gmail-button{width:100%;min-height:48px;border:1px solid #e1deea;border-radius:11px;margin-top:23px;background:#fff;color:#27222f;font:inherit;font-weight:800;display:flex;align-items:center;justify-content:center;gap:12px;cursor:pointer;box-shadow:0 10px 25px rgba(35,29,48,.08);transition:.2s}.gmail-button span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;font-size:15px;font-weight:900;color:#4285f4;background:conic-gradient(from -45deg,#4285f4 0 25%,#34a853 0 50%,#fbbc05 0 75%,#ea4335 0);-webkit-background-clip:text;background-clip:text}.gmail-button:hover{transform:translateY(-2px);border-color:#b9a9f8}
.otp-copy{color:#756f7e;font-size:12px;line-height:1.65;margin:6px 0 22px}.otp-copy strong{color:#3b3150}.login-form-wrap .otp-input{text-align:center;font-size:25px;font-weight:800;letter-spacing:12px;padding-left:24px}.otp-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:4px 18px;margin-top:14px}.otp-actions button,.otp-fallback{border:0;background:transparent;color:#7654e9;font:inherit;font-size:10px;font-weight:800;cursor:pointer;padding:7px 0}.otp-actions button:hover,.otp-fallback:hover{text-decoration:underline}.otp-fallback{display:block;margin:8px auto 0}.otp-fallback[hidden]{display:none}
.login-button,.gmail-button{position:relative;overflow:hidden}.login-button:after,.gmail-button:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 25%,rgba(255,255,255,.55),transparent 75%);transform:translateX(-120%)}.login-button:hover:after,.gmail-button:hover:after{animation:buttonShine .8s ease}
.loading{opacity:.7;cursor:wait!important}
.mobile-brand img{width:68px;height:50px;object-fit:contain;filter:drop-shadow(0 0 10px #2978ff)}
.auth-success .auth-card{transform:scale(.96);opacity:0;transition:.5s}.auth-success:after{content:"✓";position:fixed;left:50%;top:50%;z-index:20;display:grid;place-items:center;width:84px;height:84px;border-radius:50%;background:linear-gradient(135deg,#25ca7a,#0f9d68);color:#fff;font-size:38px;box-shadow:0 20px 60px rgba(15,157,104,.35);animation:successPop .5s both}
@keyframes cardEnter{from{opacity:0;transform:translateY(30px) scale(.98)}to{opacity:1;transform:none}}
@keyframes gridMove{to{background-position:0 54px,54px 0}}
@keyframes orbFloat{50%{transform:translateY(-18px) scale(1.035)}}
@keyframes pulseRing{0%{transform:scale(.6);opacity:.7}75%,100%{transform:scale(1.35);opacity:0}}
@keyframes buttonShine{to{transform:translateX(120%)}}
@keyframes successPop{from{opacity:0;transform:translate(-50%,-50%) scale(.55)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@media(max-width:760px){.auth-card{padding:20px 22px 28px}.login-form-wrap form{padding:18px 0 0}.mobile-brand{align-items:center;gap:10px;margin-bottom:24px}.signup-grid{grid-template-columns:1fr}.login-form-wrap{background:radial-gradient(circle at 85% 0,#e9edff,transparent 34%),#f7f7fb}}
@media(prefers-reduced-motion:reduce){.login-grid-glow,.visual-orb,.login-pulse,.auth-card{animation:none!important}}


/* GS Nexus fast layout fixes */
.sidebar,
.app-sidebar,
aside {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.sidebar .user-card,
.app-sidebar .user-card,
aside .user-card,
.sidebar-footer,
.nav-footer {
  margin-top: auto;
  flex-shrink: 0;
}

.success-check,
.login-success-check {
  background: radial-gradient(circle at 35% 30%, #6ee7ff, #7c3aed 45%, #111827 100%) !important;
  box-shadow: 0 0 28px rgba(124, 58, 237, .45), 0 0 48px rgba(59, 130, 246, .28) !important;
}

@media (max-width: 768px) {
  .bottom-nav, .mobile-nav {
    overflow-x: auto;
    justify-content: flex-start;
  }
}


/* GS Nexus emergency layout polish */
html, body { min-height: 100%; }
aside, .sidebar, .app-sidebar { min-height: 100vh; display: flex; flex-direction: column; }
.sidebar-footer, .user-card, .profile-card { margin-top: auto; }
.success-check, .login-success-check { background: linear-gradient(135deg,#7c3aed,#06b6d4) !important; box-shadow: 0 0 34px rgba(124,58,237,.35) !important; }
@media (max-width: 768px) {
  aside, .sidebar, .app-sidebar { min-height: auto; }
  .bottom-nav, .mobile-nav { overflow-x: auto; scrollbar-width: none; }
}


/* GS Nexus restored login success animation */
.auth-success:before{content:"";position:fixed;left:50%;top:50%;z-index:20;width:124px;height:124px;border-radius:34px;background:linear-gradient(135deg,rgba(48,122,255,.22),rgba(139,92,246,.2));border:1px solid rgba(255,255,255,.36);box-shadow:0 24px 70px rgba(52,92,255,.28),0 0 0 12px rgba(124,58,237,.08);transform:translate(-50%,-50%);animation:successBadgeIn .58s cubic-bezier(.2,.8,.2,1) both}
.auth-success:after{content:"GS"!important;position:fixed!important;left:50%!important;top:50%!important;z-index:21!important;display:grid!important;place-items:center!important;width:82px!important;height:82px!important;border-radius:26px!important;background:radial-gradient(circle at 30% 20%,#59d8ff,#6657f4 52%,#11152c 100%)!important;color:#fff!important;font-size:28px!important;font-weight:900!important;letter-spacing:-1px!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),0 0 40px rgba(68,132,255,.45)!important;transform:translate(-50%,-50%)!important;animation:successSealPulse .82s ease-in-out infinite alternate!important}
@keyframes successBadgeIn{from{opacity:0;transform:translate(-50%,-50%) scale(.68) rotate(-8deg)}to{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}}
@keyframes successSealPulse{from{filter:drop-shadow(0 0 8px rgba(89,216,255,.55));transform:translate(-50%,-50%) scale(.98)}to{filter:drop-shadow(0 0 24px rgba(139,92,246,.85));transform:translate(-50%,-50%) scale(1.04)}}
