Configuring Emacs to display white on black indeed seems
unpolished. When I started using Emacs, it took some experimentation
and web searching to arrive at:
• Customize frame-background-mode 'dark
• Customize inverse-video t (didn't observe this have any effect,
but it looked relevant)
• For graphical Emacs: run with -r flag
• For Emacs in terminal (also configured white on black): run with
-nw (no -r)
I didn't find a way to drop the -r flag in favor of pure Elisp config,
and still get good display.
I use graphical most of the time so don't generally notice terminal
display issues. Under this setup, the terminal colors are very
different from the graphical, but a brief look didn't uncover any poor
contrast.
In your case, the frame-background-mode variable makes the difference
between minibuffer-prompt face being medium blue or cyan, the latter
having better contrast on black. To confirm the value of that face, do
M-x customize-face RET minibuffer-prompt RET.