/* ==========================================================================
   Estilos de Autenticação Customizados (custom_auth.css)
   ========================================================================== */

/* --- Estilos Gerais e Logo --- */
/* ... Seus estilos anteriores ... */
#auth-logo.logo-login img {
    height: 100px;
    margin-bottom: 30px;
    margin-top: 30px;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* Logo no Cadastro - Reduzido e com mais margem inferior */
#auth-logo.logo-register img {
    height: 45px;
    /* Altura que definimos */
    margin-bottom: 25px;
    /* AUMENTADO (era 10px ou 15px antes) */
    margin-top: 10px;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.form-control:focus {
    border-color: #86b7fe;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

/* --- Transição Suave entre Formulários --- */
/* ... Seus estilos anteriores ... */
#form-fields {
    transition: opacity 0.15s ease-in-out;
    opacity: 1;
    min-height: 150px;
}

#form-fields.auth-form-fading {
    opacity: 0;
}

/* --- Popover Customizado de Senha - Estilo "Premium" --- */

/* Container Principal */
#custom-password-popover {
    /* -- Aparência Clean & Moderna -- */
    background-color: var(--bs-body-bg, #fff);
    border-radius: 10px;
    /* Raio um pouco maior, mais suave */
    /* Sombra mais sutil e difusa */
    box-shadow: 0px 12px 32px rgba(0, 0, 0, 0.08), 0px 4px 12px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, 0.06));
    /* Borda quase invisível */
    max-width: 340px;
    /* Espaço confortável */
    font-size: 0.9rem;
    font-family: inherit;
    /* Usar a fonte base do seu tema */
    z-index: 1071;
    padding: 0;
    overflow: hidden;
    /* Para border-radius funcionar bem */

    /* -- Efeito de Entrada (Scale + Fade) -- */
    opacity: 0;
    transform: scale(0.95) translateX(-6px);
    /* Começa menor/deslocado */
    transform-origin: left center;
    /* Pivô da animação */
    /* Curva de easing suave (similar a ease-out-expo) */
    transition: opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
    /* display é controlado via JS */
}

/* Estado Visível */
#custom-password-popover[style*="display: block"] {
    opacity: 1;
    transform: scale(1) translateX(0);
}

/* Seta - Mais integrada e refinada */
#custom-password-popover .arrow {
    position: absolute;
    width: 10px;
    /* Largura da base da seta */
    height: 10px;
    /* Metade da altura visual */
    overflow: hidden;
    /* Para permitir rotação/clip */
    /* Posicionamento top/left via JS */
}

#custom-password-popover .arrow::before {
    content: '';
    position: absolute;
    width: 10px;
    height: 10px;
    background-color: var(--bs-body-bg, #fff);
    border: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, 0.06));
    border-right-color: transparent;
    /* Esconde borda direita */
    border-bottom-color: transparent;
    /* Esconde borda inferior */
    transform: translateX(-50%) translateY(-50%) rotate(45deg);
    /* Cria o triângulo rotacionado */
    left: 50%;
    top: 50%;
    /* Sombra discreta na seta */
    box-shadow: -1px 1px 5px rgba(0, 0, 0, 0.04);
}


/* Corpo Interno */
#custom-password-popover .popover-body {
    padding: 1.3rem 1.6rem;
    /* Padding generoso */
    color: var(--bs-body-color, #212529);
}

/* Lista */
#custom-password-popover ul {
    padding-left: 0;
    margin-bottom: 0;
    list-style: none;
}

/* Itens da Lista */
#custom-password-popover li {
    margin-bottom: 0.8rem;
    /* Mais espaço vertical ainda */
    display: flex;
    align-items: center;
    line-height: 1.5;
    transition: color 0.3s ease, opacity 0.3s ease;
    /* Transição suave de cor/opacidade */
}

#custom-password-popover li:last-child {
    margin-bottom: 0;
}

/* Ícones (::before) - Usando SVGs inline para mais controle */
#custom-password-popover li::before {
    content: '';
    flex-shrink: 0;
    display: inline-block;
    width: 20px;
    height: 20px;
    margin-right: 0.9rem;
    background-size: 18px 18px;
    /* Tamanho do ícone dentro do espaço */
    background-repeat: no-repeat;
    background-position: center;
    /* Microanimação na troca de estado */
    transition: background-image 0.25s ease-in-out, transform 0.25s cubic-bezier(0.2, 1.2, 0.8, 1);
    /* Easing com "overshoot" */
}

/* --- Estados Válido / Inválido --- */

/* Estado Inválido (Padrão) */
#custom-password-popover li.invalid {
    color: var(--bs-secondary-color, #6c757d);
    /* Cinza neutro */
    opacity: 0.85;
    /* Levemente esmaecido */
}

#custom-password-popover li.invalid::before {
    /* Ícone X (SVG inline - cinza) */
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%236c757d' class='bi bi-x-circle-fill' viewBox='0 0 16 16'%3e%3cpath d='M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM5.354 4.646a.5.5 0 1 0-.708.708L7.293 8l-2.647 2.646a.5.5 0 0 0 .708.708L8 8.707l2.646 2.647a.5.5 0 0 0 .708-.708L8.707 8l2.647-2.646a.5.5 0 0 0-.708-.708L8 7.293 5.354 4.646z'/%3e%3c/svg%3e");
    transform: scale(0.9);
    /* Começa/permanece menor */
}

/* Estado Válido */
#custom-password-popover li.valid {
    color: var(--bs-success-text-emphasis, #0f5132);
    /* Verde escuro elegante */
    opacity: 1;
    font-weight: 500;
    /* Destaque sutil */
}

#custom-password-popover li.valid::before {
    /* Ícone Check (SVG inline - verde) */
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23198754' class='bi bi-check-circle-fill' viewBox='0 0 16 16'%3e%3cpath d='M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z'/%3e%3c/svg%3e");
    transform: scale(1.05);
    /* Efeito leve de "pop" ao validar */
}

/* --- Estilo para Toggle de Visibilidade de Senha --- */

.input-group .password-toggle-icon {
    cursor: pointer;
    /* Mãozinha ao passar o mouse */
    user-select: none;
    /* Evita selecionar o ícone */
    /* Ajuste cor ou fundo no hover/focus se desejar */
    /* Ex:
    transition: background-color 0.15s ease-in-out;
    */
}

/* Opcional: Efeito hover
.input-group .password-toggle-icon:hover {
    background-color: var(--bs-secondary-bg);
}
*/

/* Garante que o input não tenha borda dupla estranha com o input-group */
.input-group>.form-control:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.input-group>.input-group-text:not(:first-child) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}


/* --- Suporte Básico a Modo Escuro (Ajustado) --- */
@media (prefers-color-scheme: dark) {
    #custom-password-popover {
        background-color: #2b3035;
        /* Tom escuro ligeiramente diferente */
        border-color: rgba(255, 255, 255, 0.1);
        box-shadow: 0px 12px 32px rgba(0, 0, 0, 0.2), 0px 4px 12px rgba(0, 0, 0, 0.15);
    }

    #custom-password-popover .popover-body {
        color: #ced4da;
        /* Texto claro */
    }

    #custom-password-popover .arrow {
        border-right-color: #2b3035;
        /* Cor da seta = fundo escuro */
    }

    #custom-password-popover .arrow::before {
        border-right-color: rgba(255, 255, 255, 0.1);
        /* Cor da borda clara */
    }

    #custom-password-popover li.invalid {
        color: #848d97;
        /* Cinza claro */
    }

    #custom-password-popover li.invalid::before {
        /* Ícone de X (Cinza Claro) */
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23848d97' class='bi bi-x-circle-fill' viewBox='0 0 16 16'%3e%3cpath d='M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM5.354 4.646a.5.5 0 1 0-.708.708L7.293 8l-2.647 2.646a.5.5 0 0 0 .708.708L8 8.707l2.646 2.647a.5.5 0 0 0 .708-.708L8.707 8l2.647-2.646a.5.5 0 0 0-.708-.708L8 7.293 5.354 4.646z'/%3e%3c/svg%3e");
    }

    #custom-password-popover li.valid {
        color: #61c78f;
        /* Verde claro mais vibrante */
    }

    #custom-password-popover li.valid::before {
        /* Ícone de Check (Verde - manter o mesmo SVG, a cor já está boa) */
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23198754' class='bi bi-check-circle-fill' viewBox='0 0 16 16'%3e%3cpath d='M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z'/%3e%3c/svg%3e");
    }
}
/* Força altura mínima para que o rodapé com o link "esqueceu a senha" apareça */
.auth-fluid-form-box .card-body {
    min-height: 540px;
    /* Pode ajustar conforme necessário */
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
link-reset {
    color: #7a3cff;
    font-weight: 600;
    font-size: 0.92rem;
    text-decoration: none;
}

.link-reset:hover {
    text-decoration: underline;
}