I ended up using explicit input type selectors, rather than exclude certain types with input:not([type="checkbox"]):not([type="file"]):not([type="image"]):not([type="radio"]):not([type="range"]), to avoid the 0/5/1 specificity of this selector, which made it harder to override later.