.auth-error{display:flex;align-items:center;gap:10px;animation:errorAppear .35s ease both}.error-icon{display:grid;place-items:center;flex:none;width:25px;height:25px;border-radius:50%;background:#c84f49;color:#fff;font-weight:800}.auth-card.login-failed{animation:loginShake .48s cubic-bezier(.36,.07,.19,.97)}
.auth-submit.is-loading{pointer-events:none;opacity:.85}.login-spinner{display:inline-block;width:18px;height:18px;margin:0 9px 0 0!important;border:2px solid rgba(255,255,255,.42);border-top-color:#fff;border-radius:50%;animation:loginSpin .7s linear infinite}
@keyframes loginShake{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(5px)}30%,50%,70%{transform:translateX(-8px)}40%,60%{transform:translateX(8px)}}@keyframes errorAppear{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@keyframes loginSpin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.auth-card.login-failed,.auth-error,.login-spinner{animation:none}}
