Also, I'd like to know if these .inf_* entries will show up for admins only?
No, they will show up for anyone who can see warnings or issue warnings. Which will be members who can see their own warning history. So member without any extra tests is appropriate.
Also, you forgot to add commas after your new .warn_* classes. I'm surprised you didn't catch it at commit time..?
I managed to miss a *much* bigger thing in r2060 than that. I would have spotted it when I actually got to testing the places where the style will be applied, which right now isn't anywhere.
Next time I'll just wait until I'm completely done before committing, I guess, and I'll go through it again with a fine tooth comb to make sure it's perfect.
As I said: please use final keywords when you're playing with anything that's used as an extend anywhere else...
And as I said, most of this stuff went over my head. In any case I haven't decided if this is the final code yet or not, it might change and I really don't see any point in worrying about optimising until it's actually done. Pre-emptive optimisation can actually make it very hard to get anything done.
I also said before I'm having a real hard time trying to keep all this straight in my head. Not including a comma at this point in time is a... minor omission.