Taking higher level theoretical mathematics vs taking less math and more courses in application areas? I intend to go to graduate school for applied/computational mathematics, specifically a program like this https://icme.stanford.edu/. 

At this point, I'm trying to decide whether to take graduate level theoretical math courses in areas like Algebraic Topology, Differential Geometry, etc. (which I don't currently have any experience with, but I could still take), or just take courses in application areas (the ones I'm interested in are statistics, biology, chemistry, computer science). 

My math education in the latter case will consist of basic linear algebra+calculus, a course on PDEs, a course on abstract algebra, a complex analysis course with an applied focus, a couple mathematical modeling courses, basic number theory, basic probability theory, a couple numerical analysis courses, and upper-level real analysis. So not a ton, but not negligible either.

There's also a lot of math in the non-math courses I will take (algorithms, theory of computing, quantum mechanics, optimization, stochastic processes, machine learning, etc., some of which are grad-level) However, this schedule is perhaps lighter on mathematical theory, and contains zero grad math classes.

Should I drop some of the courses in application areas (although courses with significant mathematical content that yet focus on applications are perhaps my favorite type of courses) and take graduate-level theory courses to increase my readiness for and chances of getting accepted to graduate school? Or will I have ample time for that in graduate school and should I take courses I enjoy more (and have greater aptitude for) while informally studying theory on my own? 

Or do I need to take more theory even as an undergrad, and even though I'm not gunning for pure maths? (I do not plan to go into academia after graduate school, in case that matters.)
I think that at this stage in your career, you should set yourself the goal of reaching some sort of mathematical maturity 


  ... fearlessness in the face of symbols: the ability to read and
  understand notation, to introduce clear and useful notation when
  appropriate (and not otherwise!), and a general facility of expression
  in the terse—but crisp and exact—language that mathematicians use to
  communicate ideas.


Courses like abstract algebra, algebraic topology, differential geometry and e.g. combinatorics will give you a combination of breadth and depth that will make it much easier to quickly master any applied field that you will choose in grad school. 

In my experience (PhD in string theory, currently applied economist), mastering the really advanced math courses should be done as soon as possible, when you have all the time and energy to immerse yourself. It's also my experience that it is rather straightforward to apply abstract patterns when you already know them, but the reverse (the emergence of abstractions from concrete applications) is much, much harder.

Of course, by all means mix and match your fundamental math courses with a small selection of interesting applied courses. There's no sense in not enjoying yourself.