.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0b1628,#0f1f3a 50%,#1a3d7c);font-family:DM Sans,system-ui,sans-serif;padding:2rem 1rem}.auth-card{background:white;border-radius:16px;padding:2.5rem;width:100%;max-width:440px;box-shadow:0 20px 60px rgba(0,0,0,.3)}.auth-logo{display:flex;justify-content:center;margin-bottom:2rem}.auth-logo img{height:80px;width:auto}.auth-title{font-family:"Instrument Serif",Georgia,serif;font-size:1.75rem;color:#0b1628;text-align:center;margin-bottom:.5rem;letter-spacing:-.01em}.auth-subtitle{text-align:center;color:#64748b;font-size:.9rem;margin-bottom:2rem}.auth-form{gap:1.25rem}.auth-field,.auth-form{display:flex;flex-direction:column}.auth-field{gap:.4rem}.auth-field label{font-size:.85rem;font-weight:600;color:#1a2f52}.auth-field input{padding:.75rem 1rem;border:2px solid #e2e8f0;border-radius:10px;font-size:.95rem;font-family:inherit;color:#0b1628;background:#f8fafc;transition:border-color .2s,box-shadow .2s;outline:none}.auth-field input:focus{border-color:#3d8b40;box-shadow:0 0 0 3px rgba(61,139,64,.15);background:white}.auth-field input::placeholder{color:#94a3b8}.auth-error{background:#fef2f2;border:1px solid #fecaca;border-radius:10px;color:#dc2626}.auth-error,.auth-success{padding:.75rem 1rem;font-size:.85rem;text-align:center}.auth-success{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;color:#16a34a}.auth-button{padding:.85rem 1.5rem;background:linear-gradient(135deg,#3d8b40,#4caf50);color:white;border:none;border-radius:10px;font-size:1rem;font-weight:600;font-family:inherit;cursor:pointer;transition:transform .15s,box-shadow .15s,opacity .15s;margin-top:.5rem}.auth-button:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(61,139,64,.35)}.auth-button:active{transform:translateY(0)}.auth-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.auth-link{text-align:center;margin-top:1.5rem;font-size:.9rem;color:#64748b}.auth-link a{color:#1a3d7c;text-decoration:none;font-weight:600;transition:color .2s}.auth-link a:hover{color:#3d8b40}.auth-spinner{display:inline-block;width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:white;border-radius:50%;animation:auth-spin .6s linear infinite;vertical-align:middle;margin-right:.5rem}@keyframes auth-spin{to{transform:rotate(1turn)}}@media (max-width:480px){.auth-card{padding:1.75rem 1.5rem;border-radius:12px}.auth-title{font-size:1.5rem}.auth-logo img{height:60px}}