Fundamentos: content y flujo
Sin content, el pseudoelemento no existe.
::before y ::after se comportan como elementos inline por defecto.
Define content: "" para crear una caja vacía y poder estilizarla.
Puedes cambiar su display a block o inline-block según el caso.
.highlight::before {
content: "";
display: inline-block;
width: 8px;
height: 8px;
margin-right: 8px;
background: #0ea5e9;
border-radius: 999px;
}