CSS is quite powerful and you can pretty much change anything you want, including the existing SAP themes, if you decide to change properties in the existing standard classes (normally beginning with "sap").
See it this way: Fiori always loads a standard theme first and applies its styles to the existing controls based on the Fiori UX and Guidelines. Now you can pretty much change anything in your CSS you want to overwrite, but be aware that you easily break things like responsiveness if you change size properties like width/height of controllers.
I would only use CSS in combination with custom classes on my controls and only change things that do not interfere with the sizing/layouting of controls. So I would only change colors, font sizes, etc.