.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:radial-gradient(ellipse at center,var(--bg-surface) 0%,var(--bg-primary) 70%);}
.auth-grid{position:absolute;inset:0;background-image:repeating-linear-gradient(0deg,rgba(255,255,255,0.015) 0,rgba(255,255,255,0.015) 1px,transparent 1px,transparent 40px),repeating-linear-gradient(90deg,rgba(255,255,255,0.015) 0,rgba(255,255,255,0.015) 1px,transparent 1px,transparent 40px);pointer-events:none;}
.auth-particle{position:absolute;width:4px;height:4px;border-radius:var(--radius-full);background:var(--accent-primary);opacity:0.2;}
@media(prefers-reduced-motion:no-preference){
  .auth-particle{animation:float var(--dur,20s) linear infinite;}
  @keyframes float{0%{transform:translateY(100vh) translateX(0)}100%{transform:translateY(-100px) translateX(var(--dx,20px));opacity:0;}}
}
.auth-logo{text-align:center;margin-bottom:var(--space-6);}
.auth-logo-mark{display:none;}
.auth-logo-img{height:104px;width:auto;display:block;margin:0 auto var(--space-2);}
.auth-card{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--space-10);width:100%;max-width:420px;box-shadow:var(--shadow-xl);position:relative;z-index:1;}
.auth-title{font-size:22px;font-weight:700;color:var(--text-primary);text-align:center;margin-bottom:var(--space-2);}
.auth-subtitle{font-size:14px;color:var(--text-muted);text-align:center;margin-bottom:var(--space-8);}
.auth-card.shake{animation:shake 0.4s ease;}
@keyframes shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}
.auth-footer-link{text-align:center;margin-top:var(--space-4);font-size:13px;color:var(--text-muted);}
