.auth-layout{min-height:100vh;padding:var(--space-4);z-index:1;justify-content:center;align-items:center;display:flex;position:relative}.auth-container{border:1px solid var(--border);border-radius:var(--radius-md);width:100%;max-width:420px;padding:var(--space-8);box-shadow:0 0 40px var(--accent-glow), 0 0 80px #5e9e6e0d;animation:authFadeUp .8s var(--ease-breathe) both;background:#110f0dd9}.auth-title{font-size:var(--font-size-xl);color:var(--text-primary);text-align:center;margin-bottom:var(--space-2);text-shadow:0 0 30px var(--accent-glow-strong)}.auth-subtitle{font-size:var(--font-size-sm);color:var(--text-secondary);text-align:center;margin-bottom:var(--space-8)}.auth-form{gap:var(--space-4);flex-direction:column;display:flex}.auth-field{gap:var(--space-1);flex-direction:column;display:flex}.auth-label{font-size:var(--font-size-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em}.auth-input{background:var(--color-soil-950);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-base);transition:border-color var(--duration-fast) var(--ease-organic), box-shadow var(--duration-fast) var(--ease-organic)}.auth-input::placeholder{color:var(--text-muted)}.auth-input:focus{border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow), 0 0 4px var(--accent-glow-strong);outline:none}.auth-input.has-error{border-color:var(--color-spore-400);box-shadow:0 0 8px var(--color-spore-glow)}.auth-error{font-size:var(--font-size-xs);color:var(--color-spore-400);min-height:1.2em}.auth-error-global{font-size:var(--font-size-sm);color:var(--color-spore-400);text-align:center;padding:var(--space-3);border-radius:var(--radius-sm);background:#b8943e0f;border:1px solid #b8943e26}.auth-button{margin-top:var(--space-4);padding:var(--space-3) var(--space-8);color:var(--accent-hover);border:1px solid var(--accent);border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:var(--font-size-base);cursor:pointer;transition:color var(--duration-fast) var(--ease-organic), border-color var(--duration-medium) var(--ease-organic), transform var(--duration-medium) var(--ease-grow), box-shadow var(--duration-medium) var(--ease-organic);background:0 0;justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:hidden}.auth-button:hover:not(:disabled){color:var(--color-moss-200);border-color:var(--accent-hover);box-shadow:0 0 20px var(--accent-glow), 0 0 40px var(--accent-glow);transform:translateY(-1px)}.auth-button:disabled{opacity:.5;cursor:not-allowed;animation:authPulse 2s var(--ease-breathe) infinite}.auth-link{font-size:var(--font-size-sm);color:var(--text-secondary);text-align:center;margin-top:var(--space-6)}.auth-link a{color:var(--accent-hover);transition:color var(--duration-fast) var(--ease-organic);text-decoration:none}.auth-link a:hover{color:var(--color-moss-300)}.auth-code-input{text-align:center;font-size:var(--font-size-2xl);letter-spacing:.3em;padding:var(--space-4)}.auth-steps{justify-content:center;gap:var(--space-4);margin-bottom:var(--space-6);display:flex}.auth-step{background:var(--border);width:8px;height:8px;transition:background var(--duration-medium) var(--ease-organic), box-shadow var(--duration-medium) var(--ease-organic);border-radius:50%}.auth-step.active{background:var(--accent);box-shadow:0 0 8px var(--accent-glow-strong)}.auth-step.completed{background:var(--color-moss-300)}.auth-qr-wrap{padding:var(--space-4);border-radius:var(--radius-sm);margin:var(--space-4) auto;background:#fff;justify-content:center;width:fit-content;display:flex}.auth-manual-key{font-size:var(--font-size-xs);color:var(--text-secondary);text-align:center;word-break:break-all;padding:var(--space-3);background:var(--color-soil-950);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);margin-top:var(--space-2)}.auth-manual-key code{color:var(--accent-hover);letter-spacing:.05em}.auth-backup-grid{gap:var(--space-2);padding:var(--space-4);background:var(--color-soil-950);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);margin:var(--space-4) 0;grid-template-columns:repeat(2,1fr);display:grid}.auth-backup-code{font-size:var(--font-size-sm);color:var(--accent-hover);text-align:center;padding:var(--space-2);font-family:var(--font-mono);letter-spacing:.05em}.auth-instructions{font-size:var(--font-size-sm);color:var(--text-secondary);text-align:center;margin:var(--space-4) 0;line-height:1.6}.auth-button-secondary{padding:var(--space-2) var(--space-6);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:var(--font-size-sm);cursor:pointer;transition:color var(--duration-fast) var(--ease-organic), border-color var(--duration-fast) var(--ease-organic);background:0 0;justify-content:center;align-items:center;display:inline-flex}.auth-button-secondary:hover{color:var(--text-primary);border-color:var(--text-secondary)}.auth-toggle-link{font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer;font-family:var(--font-mono);margin-top:var(--space-4);text-align:center;width:100%;transition:color var(--duration-fast) var(--ease-organic);background:0 0;border:none;display:block}.auth-toggle-link:hover{color:var(--accent-hover)}@keyframes authFadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes authPulse{0%,to{opacity:.5}50%{opacity:.35}}
