div having different appearances in different themes

You need to be specific when defining your CSS styles so that a theme will not overwrite your intended style.

When outputting your markup, perhaps you should even consider wrapping your div element within another div element and assuming this is the only markup on the page, you can specify them both with an #ID selector as opposed to a class selector, then in your CSS styling:

div#myPlugin div#innerWrap {
    background: black
    /* etc */
}

…and so on.

That is going to be pretty hard to overwrite as you are being far more specific than what a theme could possibly ever be without the theme knowing the exact div ID names ahead of time, which they wont.

You could also inject your styles inline which will take top precedence over all other defined styles,

<div id="myPlugin">
    <div id="innerWrap" style="background:black">
         content
    </div>
</div> 

Inline wins!