Questions & Answers about Ela tem bom coração.
Because coração is a masculine noun in Portuguese: o coração.
Adjectives usually agree with the noun they describe, so:
- bom coração = masculine
- boa pessoa = feminine
Even though ela refers to a woman, bom is describing coração, not ela.
In Portuguese, especially in set expressions, you can often leave out the article where English would naturally include one.
So both of these are possible:
- Ela tem bom coração.
- Ela tem um bom coração.
The version without um sounds a little more idiomatic and general, like saying she is kind-hearted by nature. The version with um is also correct and may sound slightly more concrete or emphatic.