Thanks to both Harry and Kovid. Since it was already installed (even though undocumented), I used calibre-debug to unpack one of my mobi files. I now understand:
- the non-standard use of the html negative width property for the hanging indents
- full left margin indents can only be made using blockquote
- Different devices use different widths for the levels of nested blockquote, so it is impossible to force any other formatting to reliably align with them.
My application is for play scripts. There is no practical alternative but to redesign the typography for the Kindle, and to manually deal with each case where a character begins a speech in song or in verse (therefore needing indenting after the character name and any stage directions).
I have marked the title "SOLVED", even though it is a poor solution... It is the best available. Thanks again for the help.