.login-page{min-height:100vh;justify-content:center;padding:24px;overflow:hidden;background:var(--inat-background);color:var(--inat-text-primary)}.login-page,.login-shell{display:flex;flex-direction:column;align-items:center;position:relative}.login-shell{z-index:1;width:min(100%,460px);gap:16px}.login-logo{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;margin-bottom:0;text-decoration:none}.login-logo img{width:min(100%,340px);height:auto;margin:-22% 0;display:block}.login-logo p{margin:0;color:#737b87;font-size:11px;font-weight:400;letter-spacing:.3em;line-height:16px;text-transform:uppercase}.login-card{width:100%;padding:24px;border:1px solid var(--inat-border-strong);border-radius:12px;background:var(--inat-surface);box-shadow:var(--inat-shadow-soft)}.login-card:hover{border-color:rgb(var(--inat-primary-strong-rgb)/.22)}.login-card-header{margin-bottom:20px}.login-card h1{margin:0;color:var(--inat-text-primary);font-size:16px;font-weight:600;letter-spacing:0;line-height:24px}.login-card-header>p{margin:2px 0 0;color:var(--inat-text-muted);font-size:.875rem;line-height:1.45}.login-error{margin-bottom:16px;padding:12px 14px;border:1px solid rgb(var(--inat-danger-rgb)/.35);border-radius:8px;background:rgb(var(--inat-danger-rgb)/.12);color:var(--inat-danger);font-size:.9rem}.login-form{display:grid;gap:16px}.login-field{display:flex;flex-direction:column;gap:4px}.login-field label{color:var(--inat-text-secondary);font-size:11px;font-weight:500;letter-spacing:.55px;line-height:16px;text-transform:uppercase}.login-field label span{color:var(--inat-text-subtle);font-weight:400}.login-field input{width:100%;min-height:44px;padding:10px 14px;border:1px solid var(--inat-border-medium);border-radius:8px;background:var(--inat-surface);color:var(--inat-text-primary);font-size:16px;box-shadow:none;outline:none;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease}.login-field input:focus,.login-field input:hover{border-color:var(--inat-primary)}.login-field input:focus{box-shadow:0 0 0 3px rgb(var(--inat-primary-rgb)/.14)}.login-field input[aria-invalid=true]{border-color:var(--inat-danger)}.login-field input[aria-invalid=true]:focus{box-shadow:0 0 0 3px rgb(var(--inat-danger-rgb)/.14)}.login-field-error{margin:2px 0 0;color:var(--inat-danger);font-size:.85rem;line-height:1.4}.login-password-wrap{position:relative}.login-password-wrap input{padding-right:52px}.login-password-toggle{position:absolute;top:50%;right:4px;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:8px;background:none;color:var(--inat-text-muted);cursor:pointer;transition:color .16s ease,background-color .16s ease}.login-password-toggle:focus-visible,.login-password-toggle:hover{color:var(--inat-text-primary);background:rgb(var(--inat-primary-rgb)/.08)}.login-password-toggle:focus-visible{outline:2px solid rgb(var(--inat-primary-strong-rgb)/.55);outline-offset:1px}.login-password-toggle svg{width:20px;height:20px}.login-actions-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.login-checkbox{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--inat-text-secondary);cursor:pointer;font-size:.88rem}.login-checkbox input{width:20px;min-width:20px;height:20px;min-height:20px;accent-color:var(--inat-primary);cursor:pointer}.login-link{color:var(--inat-primary-deep);font-size:.88rem;font-weight:700;text-decoration:none;transition:color .16s ease}.login-actions-row .login-link{display:inline-flex;align-items:center;min-height:44px}.login-link:focus-visible,.login-link:hover{color:var(--inat-primary)}.login-back:focus-visible,.login-link:focus-visible,.login-submit:focus-visible{outline:2px solid rgb(var(--inat-primary-strong-rgb)/.55);outline-offset:3px}.login-submit{width:100%;min-height:48px;padding:12px 18px;border-radius:24px;background:var(--inat-gradient-primary);border:1px solid rgb(var(--inat-primary-strong-rgb)/.45);box-shadow:0 16px 28px rgb(var(--inat-primary-deep-rgb)/.2);text-transform:uppercase;letter-spacing:.025em;color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:600;letter-spacing:.4px;line-height:20px;transition:background .16s ease,box-shadow .16s ease,opacity .16s ease}.login-submit:focus-visible,.login-submit:hover{background:var(--inat-gradient-primary-hover);box-shadow:0 18px 32px rgb(var(--inat-primary-deep-rgb)/.26)}.login-submit:disabled{cursor:not-allowed;opacity:.55}.login-spin{width:20px;height:20px;animation:login-spin .9s linear infinite}.login-scope-note{margin:0;color:var(--inat-text-secondary);font-size:.85rem}.login-register{margin-top:16px;padding-top:0;border-top:0}.login-register p{margin:0;color:var(--inat-text-secondary);font-size:.9rem;text-align:center}.login-result{display:grid;gap:16px}.login-result-hint,.login-result-text{margin:0;color:var(--inat-text-muted);font-size:.9rem;line-height:1.5}.login-result-hint{font-size:.82rem}.login-submit--link{text-decoration:none}.login-back-wrap{margin:0;text-align:center}.login-back{display:inline-flex;align-items:center;justify-content:center;gap:8px;color:var(--inat-text-secondary);font-size:.88rem;text-decoration:none}.login-back svg{width:16px;height:16px}.login-back:hover{color:var(--inat-text-primary)}.login-attribution{pointer-events:none;position:absolute;right:0;bottom:20px;left:0;margin:0;color:var(--inat-text-secondary);opacity:1;font-size:11px;line-height:16px;text-align:center}.hive-auth-logo-enter{animation:hive-auth-logo-enter .52s ease-out both}.hive-auth-form-enter{animation:hive-auth-form-enter .62s ease-out 80ms both}.hive-auth-footer-enter{animation:hive-auth-form-enter .62s ease-out .16s both}@media (max-width:520px){.login-page{align-items:stretch;justify-content:flex-start;padding:20px 16px;overflow:auto}.login-logo img{width:min(100%,280px);margin:-20% 0}.login-actions-row{align-items:flex-start;flex-direction:column}.login-card{padding:24px}.login-attribution{position:static;margin-top:28px}}@keyframes login-spin{to{transform:rotate(1turn)}}@keyframes hive-auth-logo-enter{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes hive-auth-form-enter{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.login-error{animation:hive-auth-error-enter .24s ease-out both}.login-result{animation:hive-auth-form-enter .32s ease-out both}@keyframes hive-auth-error-enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.hive-auth-footer-enter,.hive-auth-form-enter,.hive-auth-logo-enter,.login-error,.login-result{animation:none}}