.zf-input-password {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    width: 100%;
}

.zf-input-password .zf-label {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--zf-text-primary, #1f2937);
}

.zf-input-password .required-indicator {
    color: var(--zf-error, #dc2626);
    margin-left: 0.125rem;
}

.zf-input-password .input-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}

.zf-input-password .zf-input {
    width: 100%;
    padding: 0.625rem 2.75rem 0.625rem 0.875rem;
    font-size: 0.9375rem;
    line-height: 1.5;
    color: var(--zf-text-primary, #1f2937);
    background-color: var(--zf-input-bg, #ffffff);
    border: 1px solid var(--zf-border, #d1d5db);
    border-radius: 0.5rem;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.zf-input-password .zf-input:focus {
    outline: none;
    border-color: var(--zf-primary, #3b82f6);
    box-shadow: 0 0 0 3px var(--zf-primary-light, rgba(59, 130, 246, 0.15));
}

.zf-input-password .zf-input:disabled {
    background-color: var(--zf-disabled-bg, #f3f4f6);
    color: var(--zf-text-muted, #6b7280);
    cursor: not-allowed;
}

.zf-input-password .zf-input::placeholder {
    color: var(--zf-text-placeholder, #9ca3af);
}

.toggle-visibility {
    position: absolute;
    right: 0.5rem;
    padding: 0.375rem;
    background: transparent;
    border: none;
    color: var(--zf-text-muted, #6b7280);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.25rem;
    transition: color 0.15s ease-in-out;
}

.input-box .toggle-visibility {
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
}

.toggle-visibility:hover:not(:disabled) {
    color: var(--zf-text-primary, #1f2937);
}

.toggle-visibility:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.has-error .zf-input {
    border-color: var(--zf-error, #dc2626);
}

.has-error .zf-input:focus {
    box-shadow: 0 0 0 3px var(--zf-error-light, rgba(220, 38, 38, 0.15));
}

.zf-error-message {
    font-size: 0.8125rem;
    color: var(--zf-error, #dc2626);
}

.zf-help-text {
    font-size: 0.8125rem;
    color: var(--zf-text-muted, #6b7280);
}
