I regret calling these "easy CSS fixes". No CSS is easy in FF. Button text vertical alignment appears to be a foreign concept in FF. Even their default buttons have all text 1px lower than centered. When you customize them, about 50% require one padding rule, and the other 50% a different padding rule. Even tried losing top/bottom padding and setting a hard height/line-height and it still shits its pants. If there was some simple way to make them consistent, it wasn't obvious to me, but I'm pretty sure I fixed them all. This bug is strictly Windows, Linux requires only the one rule. Windows stable, beta, and Nightly all behave the same, so at least the workaround is consistent. ESR behaves the same, but requires different rules for each, also accounted for. Tested in Chromium/Linux Chromium, Opera and Vivaldi, and the one normal padding rule works for all.
As for the buttons themselves, I think I've mimicked Windows Chromium buttons pretty well. As I mentioned, I recreated the subtle gradient using a transparent image, so we can put a slight transition on hover bg color. Hovers are smoother and slightly more obvious than the defaults, but nothing too drastic.
Regarding Linux, now that inputs and buttons are customized, the only thing preventing our UI from being 99.9% identical is the font issue. Shouldn't be too difficult, but I'm not sure what the most efficient way to load Arial would be. The number inputs are mostly stylable, except for the actual arrows, which are terrible in Linux FF. I've styled them to look normal, and set the arrows to be hidden unless the input is hovered or focused. They're rarely used, so at least they won't muck up the UI when they're not in use. I also abandoned trying to eliminate the dotted border inner text focus bullshit. I swear that one rule worked the other day, but turns out it doesn't. They actually render it according to text color. There are terrible hacks setting focused text to transparent and resetting text color with text shadow. They're buggy and shitty, so not worth implementing. No idea why they only still do this in Linux, but I guess they're used to it. Users who hate it probably figure out a config switch or some other workaround.
Didn't put a lot of effort into text inputs, but they all look fine in every browser/OS tested. We can tweak any properties to achieve the same styling if necessary. Only one styled differently is the manager search input, because it looks better shorter. In the search input, typed text and the clear "X" look 1px low vertically, which can't really be solved with padding, or the placeholder text becomes off center. This was the case with the previous CSS as well. NBD, but it'd be nice to fix. Double-check any obscure popups which may contain inputs/buttons I might've missed, particularly usercss shit.
I also found an unrelated Vivaldi bug. It fails to calculate the width of filter selects correctly on the initial page load. They only appear correctly after reloading the page. We set a max-width instead of any width property so they resize dynamically depending on the current selected option text. Works fine in all other browsers, so I don't wanna break it for a Vivaldi bug. Vivaldi has no special browser class, but it'd be nice if it did so we could only break dynamic resizing in Vivaldi to circumvent their bug.
* same icon in manager
(didn't change the editor config icons as those aren't for usercss)
* "external" icon for USO styles to avoid confusion
(opening a tab is an extremely different action)
* smaller paddings in popup
* removed hover effect on label text
(necause native <select> elements cannot be expanded from js)
* various fixups
* installation URL is preferred - same behavior as before
* @updateURL is used when the style was drag'n'dropped into the manage page
because there's no real URL in this case
* install-usercss page shows the new update URL, which is set as per the above,
under the checkbox that enables updates
* don't close on clicking "save" to allow continuous tweaking
* dirty item's label is marked with * and switches to italic
* "save" button is enabled when some value differs from saved
* "use default" button is enabled when some value differs from its default
* "close" becomes "cancel" when there are unsaved changed values
Select text color needs to be specified to override system color in Linux. Also got rid of he stupid dotted line around focused element text which still occurs in Linux FF.