Daniil Medvedev hands top-seeded Carlos Alcaraz his first loss of the year to advance to the Indian Wells final where he will face Jannik Sinner.