Let $G$ be a finite group. It is well-known that for all irreducible complex character $\chi$ then $\deg(\chi)$ divides $\lvert G\rvert$. Motivated by some problems with modular tensor categories, we are interested in considering the finite groups $G$ such that for all $\chi$ (as above) then $\deg(\chi)^2$ divides $\lvert G\rvert$. Every abelian group satisfies this property, and the smallest non-abelian ones are $D_4$, $Q_8$, $D_6$, $\mathit{Dic}_3$. Now, we are specifically interested in the finite simple groups.
Question: Is there a non-abelian finite simple group $G$ such that for all irreducible complex character $\chi$ then $\deg(\chi)^2$ divides $\lvert G\rvert$?
We expect that the answer is no, and we need a proof without using the classification of finite simple groups (CFSG). A proof using CFSG starts as follows:
if $G$ is of Lie type over a finite field of characteristic $p$, then its Steinberg character has degree $d$ equal to the largest power of $p$ dividing $\lvert G\rvert$, in particular $d^2$ does not divide $\lvert G\rvert$.
if $G$ is sporadic, the proof reduces to the GAP computation in Appendix.
if $G$ is the alternating group $A_n$, then we can prove it for $n \le 23$ using the highest degree of an irreducible character, listed in A060955, see Appendix. Note that simple $A_n$ always has an irreducible character of degree $n-1$, so if $n-1$ is a prime $p$ then $p^2$ cannot divide $\lvert A_n\rvert = n!/2$. That permits to prove the case $n=24$.
We are interested in a general argument for the alternating groups (the only remaining case using CFSG).
Now, as written above, we need a proof without using CFSG.
Appendix
Sporadic case:
gap> L:=[ "M11", "M12", "M22", "M23", "M24", "J1", "J2", "J3", "J4", "Co1", "Co2", "Co3", "Fi22", "Fi23", "Fi24'", "Suz", "HS", "McL", "He", "HN", "Th", "B", "M", "ON", "Ly", "Ru", "Tits" ];;
gap> for N in L do
> c:=0;
> CD:=CharacterDegrees(CharacterTable(N));
> o:=Sum(List(CD,t->t[2]*t[1]^2));
> for d in CD do
> if RemInt(o,d[1]^2)<>0 then
> c:=1;
> break;
> fi;
> od;
> if c=0 then
> Print(N);
> Print(L);
> fi;
> od;
gap>
Alternating case
sage: L=[5, 10, 35, 70, 216, 567, 2310, 5775, 21450, 69498, 243243, 1153152, 3620864, 16336320, 64664600, 249420600, 997682400, 5462865408, 21422145536]
sage: for i in range(19):
....: n=i+5
....: if factorial(n)%(2*L[i]^2)==0:
....: print(i)
....:
sage: