New with file with overrides. Every time.
If I'm handed minifed code and expected to make magic happen, I'm not thinking about the next developer after me. Usually these projects spawn from bad clients or bad designers and the conflicts they tend to create (read: not your problem).
Your only goal: Make sure the job gets done as quickly as possible. We're cutting losses here. If the client cared about "future-proofing", "clean code", or "developer experience", they wouldn't have this issue in the first place (or would just pay for a recode -- knowing in the long run it's better than using frankenstein'd code).
If the changes are so substantial that you're on the brink of recoding it from scratch yourself (because it's easier at that point than playing around with overrides) -- it's time to convince the client they need to pay for a new project, not a revision. It's easier when you work by the hour, and you can show them how much time was wasted so far vs how much time could be spent from scratch.
Or if you know you'll have to dig into the rat's nest again, leave the project organized for your own sanity. Otherwise? Slap some !important in there and wait until the client requests a proposal for a redesign.