Noise floor is measured as power spectral density, that plot is showing the power spectrum w.r.t. the loudest tone, so the
-78dB isn't meaningful as a measure of noise, since changing the FFT number of points will shift it up and down as the bins change size.
I've a Python tool for analyzing sound files, and displays the spectrum with scales for both power spectrum and power spectral density,
with 0dB representing a full-scale sinewave (just before the samples would clip, basically).

I measure the PSD at low frequencies as about -115dB/Hz and the mains hum as a spectral peak at -90dB. The tone itself is -6dB, so the
mains hum is -84dB down. Audacity's plot spectrum uses +6dB for a full-scale sine wave, so my dB are basically 6dB less than Audacity's.
If the noise floor were -115dB/Hz across the audio band (20kHz) that would be a total noise power of -72dB (or -66dB compared to the tone).
Your plot with only a 1024 point FFT has large bins of 43Hz width and is completely unable to resolve the mains peak, and the skirts of
the Hann window's spectral leakage are obscuring a lot.
Try 4096 point FFT and a window like Blackman-Harris that has more contained spectral leakage and you'll see that -78dB is purely an
artifact of your FFT and window.