body.login-body {
    display: flex;
    align-items: center;
    justify-content: center;
}

.login-wrap { width: 100%; max-width: 400px; padding: 0 1.5rem; }

.login-logo { text-align: center; margin-bottom: 2rem; }

.login-logo-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    background: #059669;
    margin-bottom: .75rem;
}

.login-logo-icon svg { width: 24px; height: 24px; }

.login-logo-title { font-size: 1.125rem; font-weight: 700; color: #111827; letter-spacing: -.01em; }
.login-logo-sub { font-size: .75rem; color: #9ca3af; margin-top: .25rem; }

.login-card { background: #fff; border: 1px solid #d1d5db; padding: 2rem 1.75rem; }

.login-card h2 {
    font-size: .65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #9ca3af;
    margin-bottom: 1.5rem;
}

.login-error {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #dc2626;
    padding: .5rem .75rem;
    font-size: .8125rem;
    margin-bottom: 1rem;
}

.inp-wrap { position: relative; }
.inp-wrap .inp { padding-right: 2.5rem; }

.pw-toggle {
    position: absolute;
    right: .625rem;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: #9ca3af;
    cursor: pointer;
    padding: .25rem;
    display: flex;
    align-items: center;
}

.pw-toggle:hover { color: #6b7280; }

.btn-login {
    width: 100%;
    background: #059669;
    color: #fff;
    border: 1px solid #059669;
    padding: .625rem 1.5rem;
    font-size: .875rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s;
    font-family: inherit;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    position: relative;
}

.btn-login:hover { background: #047857; border-color: #047857; }
.btn-login:active { background: #065f46; }
.btn-login:disabled { opacity: .6; cursor: not-allowed; }

.login-footer { text-align: center; margin-top: 1.25rem; font-size: .75rem; color: #9ca3af; }
