/* FEXP: estilos exclusivos das telas públicas de acesso. */
:root {
    color-scheme: light;
    --auth-bg: #F5F9FC;
    --auth-surface: #FFFFFF;
    --auth-text: #12324C;
    --auth-muted: #526B80;
    --auth-line: #DAE6ED;
    --auth-control: #8198AA;
    --auth-link: #1358BD;
    --auth-focus: #087B79;
    --auth-accent: #09C6C0;
    --auth-error-bg: #FFF2F1;
    --auth-error-text: #9D2821;
    --auth-success-bg: #EDF8F5;
    --auth-success-text: #17634E;
}
[data-theme="dark"] {
        color-scheme: dark;
        --auth-bg: #061B32;
        --auth-surface: #0E2D4C;
        --auth-text: #F0F8FF;
        --auth-muted: #B2C5D3;
        --auth-line: #254763;
        --auth-control: #7895AD;
        --auth-link: #09C6C0;
        --auth-focus: #09C6C0;
        --auth-error-bg: #402C37;
        --auth-error-text: #FFD1C9;
        --auth-success-bg: #153E3D;
        --auth-success-text: #A6E8CC;
}
[data-theme="dark"] .auth-page .auth-logo-light { display: none; }
[data-theme="dark"] .auth-page .auth-logo-dark { display: block; }
.auth-page, .auth-page * { box-sizing: border-box; }
.auth-page { margin: 0; background: var(--auth-bg); color: var(--auth-text); font: 400 15px/1.6 Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.auth-page [hidden] { display: none !important; }
.auth-page a { color: var(--auth-link); text-underline-offset: 3px; }
.auth-page a:hover { text-decoration-thickness: 2px; }
.auth-page button, .auth-page input { font: inherit; }
.auth-page button { cursor: pointer; }
.auth-page a:focus-visible, .auth-page button:focus-visible, .auth-page input:focus-visible, .auth-page [tabindex]:focus-visible { outline: 3px solid var(--auth-focus); outline-offset: 4px; }
.auth-wrap { max-width: 1280px; margin: 0 auto; padding: 48px 48px 24px; }
.auth-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); border: 1px solid var(--auth-line); border-radius: 20px; overflow: hidden; background: var(--auth-surface); min-height: 700px; }
.auth-story { background: #062D55; color: #F0F8FF; display: flex; flex-direction: column; padding: 42px; position: relative; overflow: hidden; isolation: isolate; }
.auth-home { align-self: flex-start; position: relative; z-index: 1; font-size: 13px; min-height: 44px; display: inline-flex; align-items: center; }
.auth-page .auth-home, .auth-page .auth-story a { color: #C2E8EF; }
.auth-story-copy { margin: 65px 0 210px; position: relative; z-index: 1; }
.auth-story h2 { font: 500 clamp(30px, 3vw, 40px)/1.3 Sora, system-ui, sans-serif; letter-spacing: -1.4px; margin: 0 0 24px; max-width: 340px; text-wrap: balance; }
.auth-story p { color: #BDD1E1; margin: 0; max-width: 330px; line-height: 1.85; }
.auth-story-note { border-top: 1px solid #315575; padding-top: 24px; margin-top: 36px; }
.auth-story-note h3 { font-size: 14px; font-weight: 600; margin: 0 0 8px; }
.auth-story-note p, .auth-story-note a { font-size: 13px; }
.auth-story-note a { display: inline-block; padding: 12px 0; }
.auth-story .auth-story-footer { margin-top: auto; position: relative; z-index: 1; font-size: 12px; }
.auth-brand-art { position: absolute; bottom: 70px; right: -80px; width: 380px; height: 220px; transform: skewX(-36deg); z-index: 0; pointer-events: none; }
.auth-brand-art span { position: absolute; right: 0; width: 360px; height: 54px; border: 1px solid #315575; }
.auth-brand-art span:nth-child(2) { top: 70px; right: 54px; }
.auth-brand-art span:nth-child(3) { top: 140px; right: 108px; }
.auth-brand-art i { position: absolute; right: 60px; top: 40px; width: 80px; height: 170px; background: #09C6C0; transform: skewX(57deg); }
.auth-panel { padding: 44px clamp(28px, 4.2vw, 62px); min-width: 0; align-self: center; }
.auth-logo { display: block; width: 166px; max-width: 100%; margin-bottom: 30px; }
.auth-logo img { display: block; width: 100%; height: auto; }
.auth-logo .auth-logo-dark { display: none; }
[data-theme="dark"] .auth-logo .auth-logo-dark { display: block; }
.auth-intro { margin-bottom: 28px; }
.auth-intro h1 { font: 600 28px/1.35 Sora, system-ui, sans-serif; letter-spacing: -.9px; margin: 0 0 12px; }
.auth-intro p { margin: 0; color: var(--auth-muted); font-size: 14px; }
.auth-field { margin: 0 0 20px; min-width: 0; }
.auth-field label, .auth-captcha > label { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 600; }
.auth-page input:not([type=checkbox]):not([type=hidden]) { width: 100%; min-width: 0; height: 48px; border: 1px solid var(--auth-control); border-radius: 8px; background: var(--auth-surface); color: var(--auth-text); padding: 0 13px; font-size: 16px; }
.auth-page input:disabled { opacity: 1; background: var(--auth-bg); color: var(--auth-muted); }
.auth-page input[aria-invalid=true] { border-color: var(--auth-error-text); }
.auth-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.auth-label-row { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.auth-label-row a { font-size: 12px; margin-bottom: 8px; }
.auth-password { position: relative; }
.auth-password input { padding-right: 78px !important; }
.auth-password button { position: absolute; right: 3px; top: 3px; padding: 0 10px; min-height: 42px; border: 0; border-radius: 5px; background: transparent; color: var(--auth-link); font-size: 12px; font-weight: 600; }
.auth-hint { color: var(--auth-muted); font-size: 12px; line-height: 1.6; margin: 7px 0 0; }
.auth-password-hint { margin: -10px 0 20px; }
.auth-terms { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 24px; }
.auth-terms input { flex: 0 0 20px; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--auth-focus); }
.auth-terms label { font-size: 13px; padding: 0 0 8px; }
.auth-submit { width: 100%; min-height: 50px; border: 1px solid transparent; border-radius: 8px; padding: 12px 16px; margin-top: 4px; background: var(--auth-accent); color: #061B32; font-size: 14px !important; font-weight: 700 !important; }
.auth-submit:hover { background: #2BD3CD; }
.auth-submit:disabled { cursor: wait; opacity: .75; }
.auth-links { padding-top: 22px; text-align: center; font-size: 13px; }
.auth-links p { margin: 0 0 8px; }
.auth-links a { display: inline-block; padding: 7px 0; }
.auth-back { display: block; padding: 12px 0; margin-top: 18px; text-align: center; font-size: 12px; color: var(--auth-muted) !important; }
.auth-footer { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 24px 0; color: var(--auth-muted); font-size: 12px; }
.auth-footer p { margin: 0; line-height: 1.8; }
.auth-footer p span { font-size: 10px; }
.auth-footer nav { display: flex; flex-wrap: wrap; gap: 20px; }
.auth-footer a { display: inline-flex; align-items: center; min-height: 44px; }
.auth-feedback, .auth-success, .auth-notice { padding: 16px; margin: 0 0 24px; border: 1px solid currentColor; border-radius: 8px; font-size: 14px; overflow-wrap: anywhere; }
.auth-feedback[data-state=error], .auth-notice { background: var(--auth-error-bg); color: var(--auth-error-text); }
.auth-feedback[data-state=success], .auth-success { background: var(--auth-success-bg); color: var(--auth-success-text); }
.auth-success h2 { font: 600 20px/1.4 Sora, system-ui, sans-serif; margin: 0 0 12px; }
.auth-success p { margin: 0 0 12px; }
.auth-success p:last-child { margin-bottom: 0; }
.auth-captcha { margin-bottom: 24px; min-width: 0; }
.auth-captcha-image { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 10px; }
.auth-captcha-image img { max-width: 100%; height: auto; }
.auth-text-button { padding: 10px 4px; border: 0; background: transparent; color: var(--auth-link); text-decoration: underline; text-underline-offset: 3px; min-height: 44px; font-size: 12px !important; }
.auth-captcha-provider { max-width: 100%; overflow-x: auto; }
.auth-cookie { display: flex; gap: 20px; align-items: center; padding: 16px; border: 1px solid var(--auth-line); border-radius: 8px; margin: 8px 0 24px; }
.auth-cookie p { margin: 0; font-size: 12px; color: var(--auth-muted); }
.auth-advertising { margin: 28px auto 0; padding-top: 20px; border-top: 1px solid var(--auth-line); max-width: 100%; }
.auth-advertising > p { text-align: center; color: var(--auth-muted); font-size: 11px; margin: 0 0 16px; }
.auth-ad-row { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; max-width: 100%; }
.auth-ad-slot { width: max-content; max-width: 100%; overflow-x: auto; margin: 0 auto 12px; }
.auth-ad-slot iframe { display: block; border: 0; }
.auth-skip { position: fixed; top: 12px; left: 16px; transform: translateY(-180%); padding: 12px 16px; z-index: 5; background: var(--auth-surface); }
.auth-skip:focus { transform: none; }
.auth-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
@media (max-width: 1050px) {
    .auth-wrap { padding: 32px 28px 20px; }
    .auth-story { padding: 32px 28px; }
    .auth-panel { padding: 36px 28px; }
    .auth-field-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .auth-story h2 { font-size: 32px; }
}
@media (max-width: 720px) {
    .auth-wrap { max-width: 560px; padding: 24px 20px 16px; }
    .auth-layout { display: block; min-height: 0; border-radius: 16px; }
    .auth-story { display: none; }
    .auth-panel { padding: 32px 26px; }
    .auth-logo { width: 150px; margin-bottom: 26px; }
    .auth-intro h1 { font-size: 25px; }
    .auth-field-grid { grid-template-columns: minmax(0, 1fr); }
    .auth-label-row { gap: 8px; flex-wrap: wrap; }
    .auth-footer { display: block; padding: 20px 0; }
    .auth-footer nav { gap: 16px; margin-top: 8px; }
    .auth-advertising { margin-top: 12px; }
}
@media (max-width: 360px) {
    .auth-wrap { padding: 16px 12px; }
    .auth-panel { padding: 26px 20px; }
    .auth-intro h1 { font-size: 23px; }
}
@media (prefers-reduced-motion: reduce) { .auth-page * { scroll-behavior: auto !important; } }

/* Integração de marca e preferência de tema com a área pública. */
.auth-brand-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.auth-theme{width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;background:transparent;border:1px solid var(--auth-control);border-radius:8px;color:var(--auth-text)}
.auth-theme svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.auth-theme .auth-theme-sun{display:none}
[data-theme="dark"] .auth-theme .auth-theme-moon{display:none}
[data-theme="dark"] .auth-theme .auth-theme-sun{display:block}
.auth-footer{flex-wrap:wrap;gap:18px}
.auth-page .auth-agency{display:flex;align-items:center;gap:6px;font-size:10px;flex-wrap:wrap;text-decoration:none}
.auth-agency img{width:18px;height:18px}
.auth-agency strong{font-weight:600}
