.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 24px;position:relative;z-index:1}
.login-card{width:100%;max-width:440px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-xl);padding:44px 40px;box-shadow:var(--shadow-lg);animation:modalIn .4s cubic-bezier(.4,0,.2,1)}
.login-brand{text-align:center;margin-bottom:32px}
.login-brand img{width:64px;height:64px;border-radius:16px;margin-bottom:20px;box-shadow:var(--shadow-md);background:#fff;padding:4px}
.login-brand h1{font-size:1.75rem;margin-bottom:8px}
.login-brand p{font-size:14px;color:var(--neutral-500)}
.login-error{margin-top:18px;padding:12px 16px;background:var(--rose-soft);color:var(--rose);border-radius:var(--r-md);font-size:13.5px;font-weight:500;display:flex;align-items:center;gap:10px;animation:modalIn .3s ease}
.login-error.hidden{display:none}
.login-error::before{content:'\f071';font-family:'Font Awesome 6 Free';font-weight:900}
.login-foot{margin-top:28px;padding-top:22px;border-top:1px solid var(--border-subtle);text-align:center;font-size:12.5px;color:var(--neutral-400);display:flex;align-items:center;justify-content:center;gap:8px}
.login-foot i{color:var(--secondary)}
@media(max-width:480px){.login-card{padding:32px 24px}}