Responsive CSS for small screens

- Add responsive CSS to make everything work on mobile devices and other
small screen sizes
- Sort and optimise CSS