:root { --login-primary: #16824b; --login-primary-dark: #11683d; --login-text: #17231d; --login-muted: #78847e; --login-border: #e4e9e6; --login-surface: #f7f9f8; }
* { box-sizing: border-box; }
body { margin: 0; background: #fff; color: var(--login-text); font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.login-page, .login-layout { min-height: 100vh; }
.login-layout { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(460px, .92fr); }
.login-visual { position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; padding: 4rem; background: radial-gradient(circle at 18% 15%, rgba(255,255,255,.92), transparent 28%), linear-gradient(145deg, #eef9f2 0%, #d8f0e0 100%); }
.login-visual::before, .login-visual::after { position: absolute; content: ""; border-radius: 999px; background: rgba(22,130,75,.08); }
.login-visual::before { width: 360px; height: 360px; top: -150px; right: -100px; }
.login-visual::after { width: 250px; height: 250px; bottom: -115px; left: -75px; }
.login-visual-content { position: relative; z-index: 1; width: min(100%, 650px); text-align: center; }
.login-illustration { display: block; width: min(100%, 570px); max-height: 53vh; margin: 0 auto 2.25rem; border-radius: 24px; object-fit: cover; box-shadow: 0 24px 34px rgba(20,85,51,.13); }
.login-visual-copy { max-width: 540px; margin: 0 auto; }
.login-eyebrow {
    display: inline-block;
    margin-bottom: .3rem;
    color: #343b3d;
    font-family: Arial, Helvetica, sans-serif;
    font-size: clamp(1.7rem, 2.3vw, 2.35rem);
    font-weight: 700;
    letter-spacing: .032em;
    text-transform: uppercase;
}
.login-visual-copy h1 { margin: 0 0 1rem; color: #343b3d; font-size: clamp(1.5rem, 2.1vw, 2.15rem); font-weight: 700; line-height: 1.2; white-space: nowrap; }
.login-visual-copy p { margin: 0; color: #63736a; font-size: 1rem; line-height: 1.7; }
.login-panel { display: flex; align-items: center; justify-content: center; padding: 3rem clamp(2rem, 6vw, 6rem); background: #fff; }
.login-card { width: min(100%, 440px); }
.login-form { position: relative; }
.login-back { position: absolute; top: 0; left: 0; width: 38px; height: 38px; padding: 0; border: 1px solid var(--login-border); border-radius: 10px; background: #fff; color: var(--login-muted); cursor: pointer; }
.login-brand { margin-bottom: 1.2rem; text-align: center; }
.login-brand img { max-width: 210px; max-height: 50px; }
.login-heading { margin-bottom: 1.2rem; text-align: center; }
.login-heading h2 { margin: 0 0 .55rem; font-size: 1.75rem; font-weight: 700; }
.login-heading p { margin: 0; color: var(--login-muted); font-size: .93rem; }
.login-field-heading { display: flex; align-items: center; justify-content: space-between; }
.login-field-label { display: block; margin-bottom: .5rem; font-size: .84rem; font-weight: 600; }
.label-input { display: flex; align-items: center; width: 100%; height: 50px; margin: 0; border: 1px solid var(--login-border); border-radius: 10px; background: var(--login-surface); transition: border-color .2s, box-shadow .2s, background .2s; }
.label-input:focus-within { border-color: var(--login-primary); background: #fff; box-shadow: 0 0 0 3px rgba(22,130,75,.1); }
input:not(.form-check-input) { width: 100%; height: 100%; padding: .75rem 1rem .75rem .75rem; border: 0; outline: 0; background: transparent; color: var(--login-text); font-size: .92rem; }
input::placeholder { color: #a0aaa5; }
.icon-modify { margin-left: 1rem; color: #929d97; font-size: .9rem; }
.login-password-field input { flex: 1; min-width: 0; }
.login-password-toggle { display: flex; align-items: center; justify-content: center; flex: 0 0 44px; height: 44px; margin-right: 2px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: var(--login-muted); cursor: pointer; }
.login-password-toggle:hover { color: var(--login-primary); }
.login-password-toggle:focus-visible { outline: 2px solid var(--login-primary); outline-offset: -2px; }
.login-password-eye-slash { display: none; }
.login-password-toggle[aria-pressed="true"] .login-password-eye-slash { display: block; }
a { color: var(--login-primary); font-size: .84rem; font-weight: 600; text-decoration: none; }
a:hover { color: var(--login-primary-dark); text-decoration: none; }
.login-recaptcha-row { display: flex; justify-content: center; margin: 1.25rem 0; }
.login-action { margin-top: .65rem; }
.login-action .btn { height: 35px; border-radius: 9px; font-size: .9rem; font-weight: 600; box-shadow: none; }
.login-action .btn-success { border-color: var(--login-primary); background: var(--login-primary); }
.login-action .btn-success:hover, .login-action .btn-success:focus { border-color: var(--login-primary-dark); background: var(--login-primary-dark); }
.login-action #acessar { display: flex; align-items: center; justify-content: center; gap: .75rem; width: 100%; height: auto; min-height: 35px; padding: .9rem 1.5rem; border-radius: 10px; color: #fff; font-size: 1rem; font-weight: 700; line-height: 1.4; box-shadow: 0 6px 16px rgba(22,130,75,.18); transition: background-color .2s, border-color .2s, box-shadow .2s; }
.login-action #acessar:hover:not(:disabled) { box-shadow: 0 8px 20px rgba(22,130,75,.25); }
.login-action #acessar:focus-visible { outline: 3px solid var(--login-primary); outline-offset: 3px; }
.login-action #acessar:active:not(:disabled) { box-shadow: 0 2px 6px rgba(22,130,75,.18); }
.login-action #acessar:disabled { opacity: .65; box-shadow: none; cursor: not-allowed; }
.login-action-secondary .btn { border: 1px solid var(--login-border); background: #fff; color: #425048; }
.login-action-secondary .btn:hover { background: var(--login-surface); }
.login-options { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.35rem; }
.form-switch { display: flex; align-items: center; gap: .45rem; min-width: 0; }
.form-check-input { flex: 0 0 auto; width: 1em; height: 1em; margin: 0; border: 1px solid rgba(1,26,15,.25); border-radius: .3em; background-color: #fff; appearance: none; }
.form-check-input:checked { border-color: var(--login-primary); background-color: var(--login-primary); background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M3 8l3 3 7-7'/%3e%3c/svg%3e"); background-position: center; background-repeat: no-repeat; background-size: contain; }
.tecladovirtual, .small, small { color: var(--login-muted); font-size: .78rem; font-weight: 500; }
.login-footer { margin: 1rem 0 0; color: #a0aaa5; font-size: .75rem; text-align: center; }
.toast-warning { background-color: #f89406 !important; }
.inputCheck { min-height: calc(.5em + 1rem + 2px) !important; }
@media (max-width: 1100px) { .login-visual-copy h1 { font-size: 1.5rem; white-space: normal; } }
@media (max-width: 991.98px) { .login-layout { grid-template-columns: 1fr; } #divImagem { display: none; } .login-panel { min-height: 100vh; } }
@media (max-width: 575.98px) { .login-panel { align-items: flex-start; padding: 2rem 1.25rem; } .login-card { padding-top: 1rem; } .login-options { align-items: flex-start; flex-direction: column; } .login-recaptcha-row { justify-content: flex-start; overflow-x: auto; } }
