/* Visual isolado da autenticação. Não reutilizar fora de .iapp-login-v2. */
body.iapp-login-v2 {
    /* Tabler fixa height: 100%; o flex legado cortava cartões mais altos. */
    height: auto;
    display: block;
}

@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url("fonts/iapp/manrope-latin-variable.woff2") format("woff2");
}

@font-face {
    font-family: "Fraunces";
    font-style: normal;
    font-weight: 500 600;
    font-display: swap;
    src: url("fonts/iapp/fraunces-latin-variable.woff2") format("woff2");
}

.iapp-login-v2 {
    --tblr-primary: #d87837;
    --tblr-primary-rgb: 216, 120, 55;
    --iapp-paper: #f5f4f0;
    --iapp-surface: #fffefb;
    --iapp-surface-soft: #eeece6;
    --iapp-ink: #142033;
    --iapp-muted: #5f6978;
    --iapp-line: #dcd9d1;
    --iapp-blue: #3f5e89;
    --iapp-orange: #d87837;
    --iapp-orange-soft: #f3dfce;
    --iapp-orange-tint: #fdf3ea;
    position: relative;
    min-height: 100vh;
    padding: 32px 20px;
    overflow-x: hidden;
    background:
        radial-gradient(circle at 12% 12%, rgba(216, 120, 55, .13), transparent 30rem),
        radial-gradient(circle at 88% 88%, rgba(63, 94, 137, .13), transparent 28rem),
        var(--iapp-paper);
    color: var(--iapp-ink);
    font-family: "Manrope", system-ui, sans-serif;
}

.iapp-login-v2::before,
.iapp-login-v2::after {
    position: fixed;
    z-index: 0;
    width: 15rem;
    height: 15rem;
    border: 1px solid rgba(63, 94, 137, .14);
    border-radius: 42% 58% 63% 37%;
    content: "";
    pointer-events: none;
    transform: rotate(18deg);
}

.iapp-login-v2::before { top: -7rem; right: -5rem; }
.iapp-login-v2::after { bottom: -8rem; left: -6rem; }

.iapp-login-v2 .login-shell {
    position: relative;
    z-index: 1;
    display: grid;
    width: 100%;
    min-height: calc(100vh - 64px);
    place-items: center;
}

.iapp-login-v2 .login-box {
    width: calc(100vw - 40px);
    max-width: 460px;
    margin: 0;
    padding: clamp(24px, 5vw, 38px);
    border: 1px solid var(--iapp-line);
    border-radius: 18px;
    background: rgba(255, 254, 251, .97);
    box-shadow: 0 24px 70px rgba(20, 32, 51, .12), 0 4px 14px rgba(20, 32, 51, .06);
}

.iapp-login-v2 .login-header { margin-bottom: 26px; }

.iapp-login-v2 .login-brand-logo {
    width: 104px;
    margin-bottom: 14px;
    filter: drop-shadow(0 8px 16px rgba(20, 32, 51, .1));
}

.iapp-login-v2 .product-description {
    max-width: 36ch;
    margin: 0 auto;
    color: var(--iapp-muted);
    font-size: 14px;
}

.iapp-login-v2 .login-form { text-align: left; }

.iapp-login-v2 .form-label {
    margin: 0 0 7px;
    color: #334157;
    font-size: 13px;
    font-weight: 650;
}

.iapp-login-v2 .form-control {
    min-height: 48px;
    border-color: #b8c3d2;
    border-radius: 9px;
    color: var(--iapp-ink);
    font-size: 15px;
    box-shadow: none;
}

.iapp-login-v2 .form-control::placeholder { color: #94a5ad; }

.iapp-login-v2 .campo-senha { position: relative; }
.iapp-login-v2 .campo-senha input { padding-right: 52px; }
.iapp-login-v2 .campo-senha input::-ms-reveal,
.iapp-login-v2 .campo-senha input::-ms-clear { display: none; }
.iapp-login-v2 .senha-visibilidade {
    position: absolute;
    top: 50%;
    right: 2px;
    display: grid;
    width: 44px;
    height: 44px;
    min-height: 44px;
    margin: 0;
    padding: 0;
    place-items: center;
    transform: translateY(-50%);
    border: 1px solid transparent;
    border-radius: 7px;
    background: transparent;
    cursor: pointer;
}
.iapp-login-v2 .senha-visibilidade[hidden] { display: none; }
.iapp-login-v2 .senha-visibilidade:hover { background: #e8edf3; }
.iapp-login-v2 .senha-visibilidade:focus-visible {
    outline: 3px solid rgba(63, 94, 137, .28);
    outline-offset: 1px;
    border-color: var(--iapp-blue);
}
.iapp-login-v2 .senha-visibilidade img {
    display: block;
    width: 20px;
    height: 20px;
    object-fit: contain;
}

.iapp-login-v2 .form-control:focus {
    border-color: var(--iapp-blue);
    box-shadow: 0 0 0 3px rgba(63, 94, 137, .14);
}

.iapp-login-v2 .btn-primary {
    min-height: 48px;
    margin-top: 20px;
    border: 1px solid var(--iapp-orange);
    border-radius: 999px;
    background: var(--iapp-orange);
    font-size: 15px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(216, 120, 55, .2);
}

.iapp-login-v2 .btn-primary:hover,
.iapp-login-v2 .btn-primary:focus-visible {
    border-color: #b96027;
    background: #b96027;
}

.iapp-login-v2 .forgot-password {
    margin: 10px 0 0;
    text-align: center;
}

.iapp-login-v2 .forgot-password a {
    display: inline-block;
    padding: 8px;
    color: var(--iapp-blue);
    font-size: 13px;
    font-weight: 600;
    text-underline-offset: 3px;
}

.iapp-login-v2 .alert {
    margin-bottom: 18px;
    border-radius: 9px;
    font-size: 13px;
    line-height: 1.45;
}

.iapp-login-v2 .autocadastro-opcoes { margin-top: 18px; }

.iapp-login-v2 .autocadastro-link,
.iapp-login-v2 .google-login {
    border-color: #b8c3d2;
    border-radius: 9px;
    color: var(--iapp-blue);
}

.iapp-login-v2 .autocadastro-link:hover,
.iapp-login-v2 .autocadastro-link:focus-visible,
.iapp-login-v2 .google-login:hover,
.iapp-login-v2 .google-login:focus-visible {
    border-color: var(--iapp-blue);
    background: #e8edf3;
}

.iapp-login-v2 .legal-links {
    margin-top: 22px;
    padding-top: 18px;
    border-color: var(--iapp-line);
}

.iapp-login-v2 .legal-links a { color: #536a75; }
.iapp-login-v2 .privacy-summary,
.iapp-login-v2 .ownership-note { color: #71838c; }

@media (max-width: 420px) {
    .iapp-login-v2 { padding: 16px 12px; }
    .iapp-login-v2 .login-shell { min-height: calc(100vh - 32px); }
    .iapp-login-v2 .login-box {
        width: calc(100vw - 24px);
        min-width: 0;
        padding: 24px 20px;
        border-radius: 14px;
    }
    .iapp-login-v2 .login-box * { min-width: 0; }
    .iapp-login-v2 .product-description,
    .iapp-login-v2 .ownership-note { overflow-wrap: anywhere; }
    .iapp-login-v2 .login-brand-logo { width: 100px; }
}

@media (max-height: 680px) {
    .iapp-login-v2 { align-items: initial; }
    .iapp-login-v2 .login-shell { min-height: auto; place-items: start center; }
}

@media (prefers-reduced-motion: reduce) {
    .iapp-login-v2 *,
    .iapp-login-v2 *::before,
    .iapp-login-v2 *::after { scroll-behavior: auto !important; transition: none !important; }
}
