XPath vs CSS is very old debate. Earlier it made sense to use CSS Selector over xPath as it was much faster. But latest browsers are coming up with more optimized JavaScript engine which are much faster. So, you can make use of any of CSS Selector or xPath. Just mind that if you use CSS selector, you should not use nth-child as many of IE versions does not support nth-child and you may have to refractor your code to use xPath.
To to use CSS Selector or xPath is something depends on your application complexity and browsers you are planning to use for test automation.
Let me know your further points in comments.