.public-auth-body {
    min-height: 100vh;
    background: #f4f6fb;
    color: #172033;
}

.public-auth-header {
    display: flex;
    min-height: 76px;
    align-items: center;
    padding: 12px max(20px, calc((100vw - 1120px) / 2));
    border-bottom: 1px solid #e5eaf1;
    background: #fff;
}

.public-auth-brand {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 11px;
    color: #172033;
    font-size: 15px;
    font-weight: 750;
    text-decoration: none;
}

.public-auth-brand:hover { color: #172033; }
.public-auth-brand img, .public-auth-brand-mark { width: 40px; height: 40px; flex: 0 0 40px; border-radius: 11px; object-fit: contain; }
.public-auth-brand img { padding: 3px; background: #fff; }
.public-auth-brand-mark { display: grid; place-items: center; background: var(--brand-primary, #4f46e5); color: #fff; }

.public-auth-main {
    display: flex;
    min-height: calc(100vh - 130px);
    align-items: flex-start;
    justify-content: center;
    padding: clamp(28px, 6vh, 56px) 20px;
}

.public-auth-main-full {
    display: block;
    min-height: 0;
    padding: 0;
}

.public-auth-body-full { background: #fff; }
.public-auth-footer { padding: 16px 20px; color: #8792a3; font-size: 11px; text-align: center; }

.public-login-card {
    width: min(100%, 440px);
    padding: clamp(26px, 5vw, 40px);
    border: 1px solid #e5eaf1;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 50px rgba(15, 23, 42, .08);
}

.public-login-card h1 { margin: 0 0 8px; color: #172033; font-size: clamp(25px, 4vw, 32px); font-weight: 750; letter-spacing: -.035em; }
.public-login-intro { margin: 0 0 26px; color: #64748b; font-size: 14px; line-height: 1.6; }
.public-login-card .form-label { color: #344054; font-size: 13px; font-weight: 650; }
.public-login-card .form-control { min-height: 46px; border-color: #d9e0ea; border-radius: 9px; }
.public-login-card .form-control:focus { border-color: var(--brand-primary, #4f46e5); box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--brand-primary, #4f46e5), transparent 82%); }
.public-login-submit { min-height: 46px; border: 0; border-radius: 9px; background: var(--brand-primary, #4f46e5); color: #fff; font-size: 14px; font-weight: 650; }
.public-login-submit:hover, .public-login-submit:focus { background: color-mix(in srgb, var(--brand-primary, #4f46e5), black 12%); color: #fff; }
.public-login-request { margin: 22px 0 0; color: #64748b; font-size: 13px; text-align: center; }
.public-login-request a { color: var(--brand-primary, #4f46e5); font-weight: 650; text-decoration: none; }
.public-login-request a:hover { text-decoration: underline; }

@media (max-width: 600px) {
    .public-auth-header { min-height: 66px; padding-inline: 18px; }
    .public-auth-main { min-height: calc(100vh - 114px); padding: 26px 14px; }
    .public-auth-main-full { min-height: 0; padding: 0; }
}
