Does it also format CSS inside <style> and JS inside <script> tags?
No — the tag itself is indented in place, but the CSS or JS inside it is left exactly as typed. Format that separately with the CSS Formatter or JavaScript Formatter, then paste it back in.