.password-requirements {
    margin-top: var(--spacing-2);
    margin-bottom: var(--spacing-3);
    padding: var(--spacing-2) var(--spacing-3);
    border-radius: var(--radius-md);
    background: var(--bg-secondary);
    border: 1px solid var(--border-color);
    font-size: var(--font-size-sm);
    line-height: var(--form-label-line-height);
}

.password-requirements[hidden] {
    display: none !important;
}

.password-requirements__title {
    margin: 0 0 var(--spacing-1);
    color: var(--text-secondary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
}

.password-requirements__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: var(--spacing-1);
}

.password-requirements__item {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-2);
    color: var(--text-secondary);
}

.password-requirements__item.is-met {
    color: var(--color-success);
}

.password-requirements__item.is-unmet {
    color: var(--text-secondary);
}

.password-requirements__icon {
    width: var(--spacing-4);
    margin-top: var(--spacing-1);
    flex-shrink: 0;
    font-size: var(--font-size-sm);
}

.password-requirements__item.is-met .password-requirements__icon {
    color: var(--color-success);
}

.password-requirements__item.is-unmet .password-requirements__icon {
    color: var(--text-muted);
}

.password-requirements__label {
    flex: 1;
}

.password-match-hint {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    margin: var(--spacing-2) 0 0;
    font-size: var(--font-size-sm);
    line-height: var(--form-label-line-height);
}

.password-match-hint[hidden] {
    display: none !important;
}

.password-match-hint.is-match {
    color: var(--color-success);
}

.password-match-hint.is-mismatch {
    color: var(--color-danger);
}

.password-match-hint__icon {
    flex-shrink: 0;
    font-size: var(--font-size-sm);
}

.password-match-hint__text {
    flex: 1;
}
