Croatia secures first place in Group D after a hard-fought 2-1 win over Iceland in Rostov, setting up a last-16 tie with Denmark.