i think it's kind of diferrent in each spanish speaking country.
in mexico "chica" and "muchacha" are pretty much the same, both are meant to name a female from her teens to her late twenies, more or less, but both are kind of old fashioned in my country.
young people in an informal context, talking with their friends for example, use "chava" or "tipa", like: "quien es esa chava?/quien es esa tipa?" meaning who is that girl? take notice the later one, "tipa", sounds more agressive like someone you are not happy to see.
in a formal context you should use "señorita" for unmarried women and "señora" for married women.