If you are not able to access the internet from Pi-hole host, you will need to temporarily reset the nameserver on the Pi to bypass Pi-Hole DNS.
sudo nano /etc/resolv.conf
Edit the nameserver line to nameserver 9.9.9.9 or your preferred third party DNS service, save and exit
Then, please upload a debug log and post just the token URL that is generated after the log is uploaded by running the following command from the Pi-hole host terminal:
pihole -d
or do it through the Web interface: Tools > Generate Debug Log
I think your issue is your Pi-hole is on a different network (192.168.90.2/24) than your PC (I'm guessing it is192.168.20.101) and you configure Pi-hole to listen only local requests (DNSMASQ_LISTENING=local).
I have a setup similar in that my Pihole is on one network (192.168.3.0/24) and other VLANs are on 192.168.1.0/24, 10.10.5.0/24, etc. I had the same problem you describe initially, but change the Interface settings to "Respond only on interface eth0" fixed it, since ultimately all LAN DNS traffic is going through my RPi's ethernet port.
Note that your "...interface..." may have a different name from mine.