O parametro background pode reescrever outros parametros, pois com ele podemos passar todos os outros parametros do tipo background.
Por exemplo:
.classe { background: #000 url('imagem.png'); }
Aqui vou estar passando background-color e background-image ao mesmo tempo.
.classe { background: #000 url('imagem.png'); background-position: 0% 0% }
Aqui vou estar passando background-color e background-image ao mesmo tempo, e o background position vai sobrescrever a posição do background, mantendo o color e image do background.
.classe { background-position: 0% 0%; background: #000 url('imagem.png');}
Já o ao contrário não acontece, quando passamos o background-position e logo em seguida passamos o background, o parametro background sobrescreve ele, porque teoricamente ele já tem uma posição definida (mesmo se voce nao definir, ele vai na posição default);
O mesmo acontece com estes paramatros:
background-image, background-position, background-size, background-repeat, background-origin, background-clip, background-attachment, e background-color.
Então por exemplo, se você passou background-image: url(../img/Menu\ Aberto.svg); e depois passou background: var(--azul-degrade); o parametro background-image será sobrescrito.
Para manter os dois, você pode passar o color separado com o background-color: var(--azul-degrade); ou os dois parâmetros juntos:
background: var(--azul-degrade) url(../img/Menu\ Aberto.svg);
Espero ter ajudado!!