/* Tela pública de acesso: usa apenas papéis visuais compartilhados. */
.auth-login {
    --theme-page: var(--bg-color);
    --theme-surface: var(--panel-color);
    --theme-input: var(--panel-color);
    --theme-text: var(--text-primary);
    --theme-muted: var(--text-secondary);
    --theme-border: var(--border-color);
    --login-brand-start: var(--header-grad-from);
    --login-brand-end: var(--header-grad-to);
    --login-action: var(--brand);
    --login-action-hover: var(--brand-hover);
    --login-on-action: #fff;
    --login-on-brand: #fff;
    --login-on-brand-muted: rgba(255,255,255,.82);
    margin: 0;
    min-height: 100vh;
    display: flex;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    background: var(--theme-page);
    color: var(--theme-text);
}
.auth-login *, .auth-login *::before, .auth-login *::after { box-sizing: border-box; }
.auth-login .brand-panel {
    flex: 0 0 42%;
    display: flex;
    align-items: center;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(2rem, 4vw, 5rem);
    background: linear-gradient(150deg, var(--login-brand-start), var(--login-brand-end));
    color: var(--login-on-brand);
}
.auth-login .brand-panel::before, .auth-login .brand-panel::after {
    content: '';
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    background: rgba(255,255,255,.055);
    pointer-events: none;
}
.auth-login .brand-panel::before { width: 30rem; height: 30rem; top: -12rem; right: -10rem; }
.auth-login .brand-panel::after { width: 20rem; height: 20rem; bottom: -8rem; left: -8rem; }
.auth-login .brand-inner { max-width: 29rem; }
.auth-login .brand-logo { display: flex; align-items: center; gap: 1rem; width: 100%; max-width: 29rem; margin: 0 0 1.75rem; padding-left: clamp(1.5rem, 3vw, 2.75rem); }
.auth-login .brand-logo img { display: block; width: clamp(10rem, 14vw, 13rem); height: auto; object-fit: contain; }
.auth-login .brand-logo-name { padding-left: 1rem; border-left: 1px solid var(--theme-border); color: var(--theme-text); font-size: 1rem; font-weight: 700; letter-spacing: .02em; }
.auth-login .brand-tagline h1 { margin: 0 0 1rem; font-size: clamp(2rem, 3vw, 2.7rem); line-height: 1.15; letter-spacing: -.025em; font-weight: 700; }
.auth-login .brand-tagline p { max-width: 22rem; margin: 0; line-height: 1.6; color: var(--login-on-brand-muted); }
.auth-login .form-panel { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 5rem 2rem 2rem; }
.auth-login .login-card { width: 100%; max-width: 29rem; padding: clamp(1.5rem, 3vw, 2.75rem); border: 1px solid var(--theme-border); border-radius: 1rem; background: var(--theme-surface); box-shadow: 0 10px 35px rgba(41,36,45,.08); }
.auth-login .card-header-text { margin-bottom: 1.75rem; }
.auth-login .card-header-text h4 { margin: 0 0 .25rem; font-size: 1.5rem; font-weight: 700; letter-spacing: -.02em; color: var(--theme-text); }
.auth-login .card-header-text p { margin: 0; color: var(--theme-muted); }
.auth-login .form-label { display: block; margin-bottom: .4rem; color: var(--theme-text); font-size: .72rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.auth-login .form-control { width: 100%; min-height: 2.75rem; border: 1px solid var(--theme-border); border-radius: .55rem; background: var(--theme-input); color: var(--theme-text); }
.auth-login .form-control::placeholder { color: var(--theme-muted); opacity: 1; }
.auth-login .form-control:focus { border-color: var(--login-action); background: var(--theme-input); color: var(--theme-text); box-shadow: var(--focus-ring); }
.auth-login :is(a, button, input):focus-visible { outline: 2px solid var(--login-action); outline-offset: 3px; }
.auth-login .btn-primary { display: block; width: 100%; min-height: 2.75rem; border: 1px solid var(--login-action); border-radius: .55rem; background: var(--login-action); color: var(--login-on-action); font-weight: 700; box-shadow: 0 4px 12px rgba(85,34,89,.18); }
.auth-login .btn-primary:hover, .auth-login .btn-primary:focus { background: var(--login-action-hover); border-color: var(--login-action-hover); color: var(--login-on-action); }
.auth-login .btn-microsoft { display: flex; justify-content: center; align-items: center; gap: .6rem; width: 100%; min-height: 2.75rem; padding: .55rem 1rem; border: 1px solid var(--theme-border); border-radius: .55rem; background: var(--theme-surface); color: var(--theme-text); font-weight: 600; text-decoration: none; }
.auth-login .btn-microsoft:hover { background: var(--theme-surface-muted); color: var(--theme-text); border-color: var(--theme-muted); }
.auth-login .btn-microsoft svg { flex: none; }
.auth-login .sso-divider { display: flex; align-items: center; gap: .75rem; margin: 1.25rem 0; color: var(--theme-muted); font-size: .75rem; font-weight: 700; text-transform: uppercase; }
.auth-login .sso-divider::before, .auth-login .sso-divider::after { content: ''; flex: 1; height: 1px; background: var(--theme-border); }
.auth-login .forgot-link { color: var(--login-action-hover); font-size: .82rem; font-weight: 600; text-decoration: none; }
.auth-login .forgot-link:hover { text-decoration: underline; }
.auth-login .alert { border-radius: .55rem; font-size: .875rem; }
.auth-login .twofa-email-hint { margin-bottom: 1.5rem; padding: .75rem 1rem; border: 1px solid var(--theme-border); border-radius: .55rem; background: var(--theme-surface-muted); color: var(--theme-muted); text-align: center; }
.auth-login .twofa-email-hint strong { display: block; margin-top: .2rem; color: var(--theme-text); }
.auth-login .code-input { font-size: 1.5rem; font-weight: 700; letter-spacing: .35em; text-align: center; }
.auth-login .btn-link { border: 0; background: none; }
html[data-bs-theme="dark"] .auth-login { --login-on-action: #241528; }
html[data-bs-theme="dark"] .auth-login .login-card { box-shadow: 0 12px 35px rgba(0,0,0,.2); }
html[data-bs-theme="dark"] .auth-login .brand-logo img { filter: brightness(1.5) saturate(1.1); }
html[data-bs-theme="dark"] .auth-login .forgot-link { color: var(--login-action-hover); }
@media (max-width: 767.98px) {
    .auth-login { display: block; }
    .auth-login .brand-panel { min-height: 11rem; padding: 1.75rem; }
    .auth-login .brand-logo { margin-bottom: 1.25rem; }
    .auth-login .brand-tagline h1 { margin: 0; font-size: 1.45rem; }
    .auth-login .brand-tagline p { display: none; }
    .auth-login .form-panel { padding: 2rem 1rem 3rem; }
}
@media (min-width: 768px) and (max-width: 1100px) {
    .auth-login .brand-logo { gap: .7rem; }
    .auth-login .brand-logo img { width: 10rem; }
    .auth-login .brand-logo-name { padding-left: .7rem; }
}
@media (max-width: 420px) {
    .auth-login .brand-logo { gap: .5rem; }
    .auth-login .brand-logo img { width: 9.5rem; }
    .auth-login .brand-logo-name { font-size: .9rem; }
    .auth-login .login-card { padding: 1.3rem; }
    .auth-login .password-heading { align-items: flex-start !important; gap: .4rem; flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) { .auth-login * { scroll-behavior: auto !important; transition: none !important; } }
