/* Login v503: composição centralizada e independente do painel interno. */
* { box-sizing: border-box; }
.login-page-v502 { margin: 0; min-height: 100vh; background: #f5f5f5; color: #072e30; font-family: Inter, "Segoe UI", sans-serif; }
.login-v327-shell { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 30px; padding: 48px 16px; }
.login-v502-brand { display: flex; align-items: center; gap: 10px; color: #142c4c; text-decoration: none; }
.login-v502-brand img { display: block; width: 44px; height: 44px; flex: 0 0 44px; object-fit: contain; border-radius: 0; }
.login-v502-brand span { font-size: 20px; font-weight: 750; letter-spacing: -.4px; white-space: nowrap; }
.login-v502-brand strong { display: inline; color: #409c53; font-size: inherit; font-weight: inherit; letter-spacing: inherit; }
.login-v327-card { width: 100%; max-width: 448px; padding: 42px 40px 40px; background: #fff; border-radius: 24px; box-shadow: 0 14px 24px -12px rgb(18 35 48 / 30%); }
.login-v327-access-header h1 { margin: 0 0 36px; text-align: center; font-size: 24px; font-weight: 650; letter-spacing: -.6px; line-height: 1.3; }
.login-v327-field + .login-v327-field { margin-top: 20px; }
.login-v327-field label { display: block; margin-bottom: 10px; font-size: 14px; }
.login-v327-input-shell { display: flex; align-items: center; height: 44px; border: 1px solid #b8cbcd; border-radius: 6px; background: #fff; }
.login-v327-input-shell:focus-within { border-color: #36856c; box-shadow: 0 0 0 3px rgb(54 133 108 / 12%); }
.login-v327-input-shell input { flex: 1; min-width: 0; width: 100%; height: 100%; padding: 0 12px; border: 0; outline: 0; border-radius: 6px; color: #072e30; background: transparent; font: inherit; font-size: 14px; }
.login-v327-input-shell input::placeholder { color: #768c91; opacity: 1; }
.login-v327-password-toggle { display: grid; place-items: center; width: 44px; height: 42px; flex: 0 0 44px; padding: 0; border: 0; border-radius: 5px; background: transparent; color: #638a8e; cursor: pointer; font-size: 17px; }
.login-v327-password-toggle:hover { background: #f2f7f5; color: #184d3c; }
.login-v327-forgot { margin: 20px 0 24px; }
.login-v327-forgot a { color: #073f43; text-decoration: none; font-size: 14px; }
.login-v327-forgot a:hover { text-decoration: underline; }
.login-v327-submit { display: block; width: 100%; min-height: 44px; margin-top: 22px; padding: 10px 16px; border: 0; border-radius: 7px; background: #2563eb; color: #fff; font: inherit; font-size: 16px; font-weight: 650; cursor: pointer; }
.login-v327-submit:hover:not(:disabled) { background: #1d4ed8; }
.login-v327-submit:disabled { cursor: not-allowed; opacity: .6; }
.login-v327-flashes { display: grid; gap: 8px; margin-bottom: 22px; }
.login-v327-alert { display: flex; align-items: center; gap: 10px; padding: 12px; border-radius: 6px; font-size: 13px; line-height: 1.5; background: #edf6ff; color: #175a96; overflow-wrap: anywhere; }
.login-v327-alert.is-danger { color: #a61b1b; background: #fff0f0; }
.login-v327-alert.is-success { color: #176b32; background: #edf9f0; }
.login-v327-alert.is-warning { color: #855400; background: #fff7e3; }
[data-turnstile-container] { margin: 0; }
[data-turnstile-widget] { position: relative; left: 50%; transform: translateX(-50%); width: max(100%, 300px); }
[data-turnstile-status] { margin: 8px 0 0; color: #61777b; font-size: 12px; line-height: 1.5; }
[data-turnstile-status]:empty { display: none; }
a:focus-visible, button:focus-visible { outline: 3px solid #36856c; outline-offset: 4px; }
@media (max-width: 480px) {
  .login-v327-shell { padding: 32px 12px; gap: 24px; }
  .login-v502-brand span { font-size: 18px; }
  .login-v327-card { padding: 32px 24px; border-radius: 20px; }
  .login-v327-access-header h1 { margin-bottom: 30px; font-size: 23px; }
  .login-v327-input-shell input { font-size: 16px; }
}
