Edit: limiting it to square flips was a great idea. There are just enough moves to make the answer non-obvious (after lvl 15), but not so many possible moves that you get overwhelmed.
---
Edit 2: I just remembered I made a similar "game"[1], where you select columns to XOR with other columns and try to reach the target pattern. Use the scroll wheel and shift+wheel to change the pattern and size.
That was actually part of a real research project in optimizing circuits for computing binary finite fields, where the "game" was a sandbox to try different algorithms. The best algorithm was actually found by someone playing in this sandbox and coming up with an efficient strategy.
Also, the game does give you a hint about how to bruteforce the level if you only have one square left. Good job.
—-
Edit: and the right answer was so obvious, too
https://archive.org/details/Quadromania_1987_CP_Verlag_de-en...
edit: found a way to solve it in 6, but not in 4
Well done!