existe uma hierarquia de informações em um css. a última declaração css sempre sobrescreve as anteriores. até se estiverem em arquivos separados, a declaração seguinte sempre prevalecerá.
também se dá mais importância à declarações com maior especificidade, mesmo se ela vier antes. por exemplo .pai .filho
sobrescreverá .filho
independente da ordem.
por fim, dá-se preferência aos atributos declarados inline no próprio elemento. ou seja, no <div style="color: pink">
o !important
ignora todas essas regras e trás aquele atributo selecionado como o mais importante sempre.
é óbvio que ele é importante, mas não existe !important!important
. ou seja, é impossível sobrescrevê-lo naturalmente, você teria que aumentar a especificidade. e isso acarreta em um código extremamente difícil de se dar manutenção.
ou seja, evite.