.auth-pagina {
    position: relative;
    min-height: calc(100vh - 82px);
    padding: 72px 0 90px;
    overflow: hidden;
    background:
        radial-gradient(
            circle at 10% 22%,
            rgba(231, 130, 111, 0.17),
            transparent 28%
        ),
        radial-gradient(
            circle at 90% 68%,
            rgba(140, 79, 159, 0.17),
            transparent 32%
        ),
        linear-gradient(135deg, #fffaf6, #f8edef 58%, #f4e8f3);
}

.auth-luz {
    position: absolute;
    width: 320px;
    height: 320px;
    border-radius: 50%;
    filter: blur(30px);
    pointer-events: none;
}

.auth-luz-esquerda {
    top: 8%;
    left: -190px;
    background: rgba(244, 178, 143, 0.23);
}

.auth-luz-direita {
    right: -170px;
    bottom: 4%;
    background: rgba(179, 119, 193, 0.2);
}

.auth-container {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 570px) minmax(300px, 1fr);
    gap: 70px;
    align-items: center;
}

.auth-card {
    padding: 44px 48px 42px;
    border: 1px solid rgba(99, 53, 111, 0.12);
    border-radius: 32px;
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 30px 75px rgba(66, 30, 76, 0.14);
    backdrop-filter: blur(16px);
}

.auth-cabecalho {
    margin-bottom: 31px;
    text-align: center;
}

.auth-cabecalho .etiqueta {
    display: block;
    margin: 14px 0 10px;
}

.auth-cabecalho h1 {
    font-size: clamp(2.25rem, 5vw, 3.2rem);
    letter-spacing: -0.04em;
}

.auth-cabecalho p {
    max-width: 430px;
    margin: 15px auto 0;
    font-size: 0.96rem;
}

.auth-cabecalho p strong {
    color: var(--cor-roxo);
}

.auth-icone {
    display: grid;
    width: 54px;
    height: 54px;
    margin-inline: auto;
    place-items: center;
    color: var(--cor-branca);
    border-radius: 18px;
    background: linear-gradient(
        145deg,
        var(--cor-roxo),
        var(--cor-violeta) 66%,
        var(--cor-coral)
    );
    box-shadow: 0 12px 28px rgba(92, 47, 108, 0.25);
    font-family: var(--fonte-titulo);
    font-size: 1.35rem;
    font-weight: 700;
}

.auth-icone-sucesso {
    background: linear-gradient(145deg, #668f77, #8aaf92);
}

.auth-icone-alerta {
    background: linear-gradient(145deg, #c66a59, #e59a79);
}

.google-auth-icone {
    color: #4b4b4b;
    background: var(--cor-branca);
    box-shadow: 0 10px 28px rgba(66, 30, 76, 0.14);
    font-family: var(--fonte-texto);
}

.auth-form {
    display: grid;
    gap: 19px;
}

.campo-auth {
    display: grid;
    gap: 8px;
}

.campo-auth > label {
    color: var(--cor-roxo);
    font-size: 0.84rem;
    font-weight: 700;
}

.campo-auth input:not([type="checkbox"]) {
    width: 100%;
    min-height: 53px;
    padding: 13px 16px;
    color: var(--cor-texto);
    border: 1px solid rgba(87, 49, 97, 0.18);
    border-radius: 14px;
    outline: 0;
    background: rgba(255, 250, 247, 0.8);
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        background-color 0.2s ease;
}

.campo-auth input:not([type="checkbox"]):focus {
    border-color: var(--cor-violeta);
    background: var(--cor-branca);
    box-shadow: 0 0 0 4px rgba(140, 79, 159, 0.11);
}

.campo-auth-erro input:not([type="checkbox"]) {
    border-color: #c66a59;
}

.ajuda-campo {
    color: var(--cor-texto-suave);
    font-size: 0.74rem;
    line-height: 1.5;
}

.ajuda-campo ul {
    display: grid;
    gap: 3px;
    padding-left: 18px;
}

.ajuda-campo a,
.auth-opcoes a,
.auth-rodape-texto a {
    color: var(--cor-violeta);
    font-weight: 700;
}

.erro-campo {
    color: #ad4f43;
    font-size: 0.76rem;
    line-height: 1.45;
}

.erro-termos {
    margin-top: -12px;
}

.auth-erros,
.auth-mensagem {
    margin-bottom: 20px;
    padding: 13px 15px;
    border: 1px solid rgba(173, 79, 67, 0.2);
    border-radius: 13px;
    background: rgba(248, 226, 221, 0.82);
    color: #8c4037;
    font-size: 0.82rem;
}

.auth-erros p {
    color: inherit;
}

.auth-mensagem-success {
    border-color: rgba(76, 128, 91, 0.18);
    background: rgba(226, 241, 230, 0.9);
    color: #426d4e;
}

.auth-mensagem-info {
    border-color: rgba(115, 74, 129, 0.18);
    background: rgba(238, 228, 242, 0.9);
    color: var(--cor-roxo-medio);
}

.auth-opcoes {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    font-size: 0.8rem;
}

.check-auth,
.termos-auth {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--cor-texto-suave);
    cursor: pointer;
}

.check-auth input,
.termos-auth input {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    margin-top: 2px;
    accent-color: var(--cor-violeta);
}

.termos-auth {
    padding: 13px 14px;
    border: 1px solid var(--cor-borda);
    border-radius: 13px;
    background: rgba(249, 240, 239, 0.62);
    font-size: 0.78rem;
    line-height: 1.55;
}

.termos-auth-erro {
    border-color: rgba(173, 79, 67, 0.6);
}

.botao-auth {
    width: 100%;
    min-height: 53px;
    margin-top: 3px;
    cursor: pointer;
}

a.botao-auth {
    margin-top: 4px;
}

.auth-divisor {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 24px 0 19px;
    color: var(--cor-texto-suave);
    font-size: 0.72rem;
    text-transform: uppercase;
}

.auth-divisor::before,
.auth-divisor::after {
    height: 1px;
    flex: 1;
    content: "";
    background: var(--cor-borda);
}

.botao-google {
    display: flex;
    width: 100%;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 12px 18px;
    color: #463d47;
    border: 1px solid rgba(68, 55, 72, 0.18);
    border-radius: 999px;
    background: var(--cor-branca);
    box-shadow: 0 8px 22px rgba(66, 30, 76, 0.07);
    cursor: pointer;
    font-weight: 700;
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.botao-google:hover {
    box-shadow: 0 12px 28px rgba(66, 30, 76, 0.12);
    transform: translateY(-2px);
}

.google-icone {
    display: grid;
    width: 25px;
    height: 25px;
    place-items: center;
    color: #4285f4;
    border: 1px solid rgba(66, 133, 244, 0.22);
    border-radius: 50%;
    font-size: 0.82rem;
    font-weight: 800;
}

.auth-rodape-texto {
    margin-top: 25px;
    color: var(--cor-texto-suave);
    font-size: 0.84rem;
    text-align: center;
}

.auth-legado {
    max-width: 470px;
}

.auth-legado h2 {
    margin-bottom: 23px;
    font-size: clamp(2.4rem, 4.7vw, 4.1rem);
}

.auth-legado > p {
    max-width: 440px;
    font-size: 1.04rem;
}

.auth-legado ul {
    display: grid;
    gap: 15px;
    margin-top: 31px;
    list-style: none;
}

.auth-legado li {
    position: relative;
    padding-left: 31px;
    color: var(--cor-texto);
    font-size: 0.91rem;
}

.auth-legado li::before {
    position: absolute;
    top: 1px;
    left: 0;
    display: grid;
    width: 20px;
    height: 20px;
    place-items: center;
    color: var(--cor-branca);
    border-radius: 50%;
    content: "✓";
    background: var(--cor-violeta);
    font-size: 0.66rem;
    font-weight: 700;
}

@media (max-width: 930px) {
    .auth-container {
        grid-template-columns: minmax(0, 620px);
        justify-content: center;
    }

    .auth-legado {
        display: none;
    }
}

@media (max-width: 620px) {
    .auth-pagina {
        padding: 35px 0 55px;
    }

    .auth-card {
        padding: 32px 22px 30px;
        border-radius: 24px;
    }

    .auth-cabecalho h1 {
        font-size: 2.25rem;
    }

    .auth-opcoes {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
    }
}
