.login-container{background:var(--page-background);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2.5rem 1.5rem;display:flex}.login-container .wrapper{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-xl);width:min(100%,440px);box-shadow:var(--shadow-lg);flex-direction:column;justify-content:center;align-items:stretch;gap:1.5rem;padding:2.75rem 2.5rem;display:flex}.login-container .wrapper .logo{flex-direction:column;align-items:center;gap:.75rem;margin-bottom:.25rem;display:flex}.login-container .wrapper .logo img{filter:brightness(0)saturate();opacity:.9;width:44px;height:auto}.login-container .wrapper .tagline{text-align:center;color:var(--text-muted);margin-top:-.75rem;font-size:.9375rem;font-weight:500}.login-container .wrapper .form{flex-direction:column;gap:1.125rem;width:100%;display:flex}.login-container .wrapper .form .alert{border-radius:var(--radius-sm);padding:.75rem 1rem;font-size:.875rem;font-weight:500}.login-container .wrapper .form .alert.success{background:var(--success-soft);color:var(--success);border:1px solid var(--success-border)}.login-container .wrapper .form .alert.error{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger-border)}.login-container .wrapper .form .form-description{color:var(--text-muted);font-size:.875rem}.login-container .wrapper .form .form-actions{flex-wrap:wrap;gap:.75rem;display:flex}.login-container .wrapper .form label{color:var(--text-secondary);flex-direction:column;gap:.4rem;margin-bottom:0;font-size:.8125rem;font-weight:600;display:flex;position:relative}.login-container .wrapper .form label .required-indicator{color:var(--danger);margin-left:.2rem;font-weight:700}.login-container .wrapper .form label .form-hint{color:var(--text-muted);margin:.1rem 0 0;font-size:.8125rem;font-weight:500;display:block}.login-container .wrapper .form label .show-password-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:.2rem;display:inline-flex;position:absolute;top:2.1rem;right:.65rem}.login-container .wrapper .form label .show-password-btn svg{width:18px;height:18px}.login-container .wrapper .form label .show-password-btn:hover{color:var(--accent)}.login-container .wrapper .form input{border:1px solid var(--surface-border-strong);border-radius:var(--radius-sm);color:var(--text-primary);transition:border-color var(--duration-fast)var(--ease),box-shadow var(--duration-fast)var(--ease);padding:.7rem .85rem;font-family:inherit;font-size:.9375rem}.login-container .wrapper .form input::placeholder{color:var(--text-faint)}.login-container .wrapper .form input:focus{border-color:var(--accent);box-shadow:var(--shadow-focus);outline:none}.login-container .wrapper .form input:disabled{background:var(--surface-muted);color:var(--text-faint)}.login-container .wrapper .form .submit-btn{background:var(--accent);color:var(--text-on-accent);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast)var(--ease);border:none;justify-content:center;align-items:center;gap:.5rem;padding:.75rem;font-size:.9375rem;font-weight:600;display:flex}.login-container .wrapper .form .submit-btn:hover:not(:disabled){background:var(--accent-dark)}.login-container .wrapper .form .submit-btn:disabled{opacity:.6;cursor:not-allowed}.login-container .wrapper .form .submit-btn .spinner{animation:.8s linear infinite spin}.login-container .wrapper .form .ghost-btn{background:var(--accent-soft);color:var(--accent-dark);border-radius:var(--radius-sm);cursor:pointer;border:1px solid transparent;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.875rem;font-weight:600;display:flex}.login-container .wrapper .form .ghost-btn:hover:not(:disabled){background:rgba(var(--accent-rgb),.16)}.login-container .wrapper .form .ghost-btn:disabled{opacity:.6;cursor:not-allowed}.login-container .wrapper .form .ghost-btn .spinner{animation:.8s linear infinite spin}.login-container .wrapper .form .link-button{color:var(--accent);cursor:pointer;background:0 0;border:none;align-self:center;padding:0;font-size:.875rem;font-weight:600;text-decoration:none}.login-container .wrapper .form .link-button:hover{text-decoration:underline}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width:480px){.login-container{padding:1.5rem 1rem}.login-container .wrapper{gap:1.25rem;width:100%;padding:2rem 1.5rem}}
