.login-page{flex-direction:column;min-height:calc(100dvh - 120px);display:flex}.auth-page{flex:1;justify-content:center;align-items:center;padding:24px 20px;display:flex}.auth-card{background:var(--surface-card);border-radius:var(--radius-card);width:100%;max-width:400px;box-shadow:var(--shadow-elevated);padding:32px 28px}.auth-header{margin-bottom:28px}.auth-title{color:var(--text-heading);margin:0 0 6px;font-size:1.6rem;font-weight:800;line-height:1.2}.auth-subtitle{color:var(--text-muted);margin:0;font-size:.9rem;line-height:1.5}.auth-form{flex-direction:column;gap:16px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--text-body);letter-spacing:.02em;font-size:.82rem;font-weight:700}.field input{border-radius:var(--radius-button);border:1.5px solid var(--border-subtle);background:var(--surface-app);height:52px;color:var(--text-body);outline:none;padding:0 16px;font-size:1rem;transition:border-color .18s,box-shadow .18s,background .18s}.field input::placeholder{color:var(--text-muted);opacity:.6}.field input:focus{border-color:var(--color-primary);background:var(--surface-card);box-shadow:0 0 0 4px #14cca41f}.auth-error{border-radius:var(--radius-button);color:#c0392b;background:#ff503614;border:1px solid #ff503640;align-items:flex-start;gap:8px;margin:0;padding:12px 14px;font-size:.86rem;line-height:1.5;display:flex}.auth-error svg{flex-shrink:0;margin-top:1px}.btn-primary{border-radius:var(--radius-button);background:var(--color-primary);height:52px;color:var(--color-primary-dark);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;margin-top:4px;font-size:1rem;font-weight:800;transition:transform .12s,box-shadow .18s,opacity .18s;display:flex}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #14cca452}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-spinner{border:2.5px solid #3477684d;border-top-color:var(--color-primary-dark);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.auth-links{justify-content:center;align-items:center;gap:8px;margin-top:24px;display:flex}.auth-links a{color:var(--text-muted);font-size:.86rem;font-weight:600;text-decoration:none;transition:color .15s}.auth-links a:hover{color:var(--color-primary-dark)}.auth-links .sep{color:var(--border-subtle);font-size:.8rem}
