Faits : A. La société X._ GmbH a divers buts statutaires dont l'administration de biens immobiliers et l'exercice commercial de location de chambres. Par contrat du 5 mars 2014, elle a pris à bail une surface commerciale au troisième étage d'un immeuble propriété de Z._ AG, situé à la rue... à Genève. Le loyer annuel net a été fixé à 19'560 fr. (soit 1'630 fr. par mois). Le contrat, qui devait prendre fin le 31 mars 2019, précisait que les locaux étaient loués à l'usage de bureaux; toute modification de l'utilisation nécessitait une autorisation écrite de la bailleresse. Sur le formulaire de candidature pour les locaux, le représentant de la locataire avait indiqué chercher des bureaux pour y exercer la profession de représentant commercial. La locataire, sans en informer la bailleresse, a immédiatement entamé des travaux de réaménagement des locaux afin d'y exploiter un salon de massage érotique; elle a notamment fait installer des parois supplémentaires afin de créer plusieurs chambres. La bailleresse a été indirectement informée de la réalisation de travaux le 25 mars 2014 par un courrier électronique du Bureau de contrôle paritaire des chantiers. Dès avril, la locataire a sous-loué les locaux transformés pour 100 fr. par jour et par chambre. Le 3 juin 2014, la bailleresse a fixé à la locataire un délai au 10 juillet pour remettre les locaux dans leur état initial et les utiliser comme bureaux. Le 11 juillet, elle a fixé un second délai au 21 juillet. Par avis du 21 juillet, elle a résilié le bail avec effet au 31 août 2014. B. La locataire a contesté la résiliation anticipée. Par jugement du 20 juillet 2015, le Tribunal des baux et loyers du canton de Genève a déclaré la résiliation valable et condamné la locataire à évacuer immédiatement les locaux. Statuant sur appel de la locataire, la Chambre des baux et loyers de la Cour de justice genevoise a confirmé ce jugement par arrêt du 25 avril 2016. En substance, elle a jugé que la locataire avait gravement violé le contrat de bail par un usage des locaux non conforme; la bailleresse avait réagi à temps et la résiliation ne contrevenait pas aux règles de la bonne foi. C. La locataire (ci-après: la recourante) a saisi le Tribunal fédéral d'un recours en matière civile, concluant à ce qu'il soit dit que la résiliation n'est pas valable et que la recourante est habilitée à occuper les locaux. Sa critique porte uniquement sur l'application de l'art. 257f al. 3 CO. Bien qu'invitée à se déterminer, la bailleresse (ci-après: l'intimée) n'a pas déposé de réponse. L'autorité précédente s'est référée à son arrêt.