/* Checklist de contraseña en vivo. Va en un archivo propio y no en site.css
   porque algunas páginas que lo usan (ChangePassword) no cargan el layout. */

.password-checklist-box {
    margin: 8px 0 4px;
    padding: 10px 12px;
    border-left: 3px solid #f6811a;
    background: rgba(246, 129, 26, 0.06);
    border-radius: 6px;
    font-size: 0.85rem;
    text-align: left;
}

.password-checklist__titulo {
    margin: 0 0 6px;
    font-weight: 600;
    color: #6c757d;
}

.password-checklist {
    list-style: none;
    margin: 0;
    padding: 0;
}

.password-checklist__item {
    display: flex;
    /* Arriba y no centrado: cuando el texto pasa a dos líneas en pantallas
       angostas, el punto tiene que quedar junto a la primera. */
    align-items: flex-start;
    gap: 8px;
    color: #6c757d;
    line-height: 1.5;
    /* max-height y opacity se animan al cumplirse la regla, para que la línea
       se retire sola en lugar de desaparecer de golpe. */
    max-height: 3rem;
    overflow: hidden;
    opacity: 1;
    transition: max-height 0.25s ease, opacity 0.2s ease, margin 0.25s ease;
}

.password-checklist__item i {
    font-size: 0.7rem;
    color: #adb5bd;
    flex-shrink: 0;
    margin-top: 0.45em;
}

/* Regla cumplida: se retira de la lista y solo queda lo que falta. */
.password-checklist__item--cumplida {
    max-height: 0;
    opacity: 0;
    margin: 0;
}

.password-checklist__listo {
    display: none;
    margin: 0;
    color: #198754;
    font-weight: 600;
}

.password-checklist__listo i {
    margin-right: 4px;
}

/* Sin reglas pendientes, el recuadro pasa a verde. */
.password-checklist--completo {
    border-left-color: #198754;
    background: rgba(25, 135, 84, 0.08);
}

.password-checklist--completo .password-checklist__titulo {
    display: none;
}

.password-checklist--completo .password-checklist__listo {
    display: block;
}

@media (prefers-reduced-motion: reduce) {
    .password-checklist__item {
        transition: none;
    }
}
