@ Section8: Ah. I see what's happening now.
My source material is epub. I delete all margin-left:0 and margin-right:0 so that it uses the epub reader defaults. To get azw3, I convert epub > azw3 using Calibre and add negative margins in the Extra CSS section.
If I add negative margins to p, div, h1, h2, etc. everything works out fine.
If I use body or html, Calibre will sometimes (but not always) add margin-left:0 and margin-right:0 to the <p> elements, which overrides the negative <body> and <html> margins, rendering them useless.
I don't know how Calibre determines when to add margin-left:0 and margin-right:0 to <p>. If anyone has any clues, I'd be curious. However, I have no problem adding negative margins to <p> elements to get the desired results, and it's working fine.
Ignore what I wrote above. I was mistaken. I use the Extra CSS section to set negative margins in p, h1, h2, etc. This works fine. However, when I try it with body or html, the Extra CSS doesn't make it into the converted azw3. In
this post kovidgoyal (Calibre creator) explains: "Extra css is not going to work for body/html margins. Those are controlled by the page layout section of the conversion dialog." That's why it doesn't work. Nothing to do with overrides or Voyage or 5.6.1, etc.
Good to know that, per Section8 and JSWolf below, you can use the html element if you convert from epub > azw3 first, then add it directly to the azw3 CSS using Edit Book.
@EbokJunkie: Thanks for your recipe, but I'm on a Mac!