.auth-page{justify-content:center;align-items:center;min-height:calc(100vh - 72px);padding:40px 24px;display:flex;position:relative;overflow:hidden}.auth-glow{pointer-events:none;z-index:0;background:radial-gradient(circle,#8b5cf61f 0%,#0000 70%);width:600px;height:600px;position:absolute;top:-100px;left:50%;transform:translate(-50%)}.auth-card{z-index:1;width:100%;max-width:440px;padding:40px;position:relative}.auth-logo{font-size:1.75rem;font-weight:700;font-family:var(--font-display);text-align:center;margin-bottom:24px}.auth-title{text-align:center;margin-bottom:8px;font-size:1.75rem}.auth-subtitle{text-align:center;margin-bottom:24px}.admin-hint{background:var(--accent-light);border-radius:var(--radius-md);color:var(--text-secondary);border:1px solid #8b5cf64d;align-items:center;gap:8px;margin-bottom:24px;padding:10px 14px;font-size:.8rem;display:flex}.admin-hint code{color:var(--accent-primary);background:#8b5cf633;border-radius:4px;padding:1px 6px;font-size:.78rem}.auth-form{flex-direction:column;gap:16px;display:flex}.input-with-icon{position:relative}.input-with-icon .form-input{width:100%;padding-right:48px}.input-icon-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;padding:4px;transition:color .2s;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.input-icon-btn:hover{color:var(--text-primary)}.auth-error{color:#fca5a5;border-radius:var(--radius-md);background:#ef44441f;border:1px solid #ef44444d;padding:12px 16px;font-size:.9rem}.auth-btn{margin-top:4px;padding:14px;font-size:1rem}.auth-footer{border-top:1px solid var(--border-color);justify-content:center;align-items:center;gap:8px;margin-top:24px;padding-top:24px;font-size:.9rem;display:flex}.auth-link{color:var(--accent-primary);cursor:pointer;font-weight:500;transition:color .2s}.auth-link:hover{color:#c4b5fd}.terms-note{line-height:1.5}.loading-dots span{animation:1.4s infinite both blink}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:0}40%{opacity:1}}
