Faits : A. Par contrat du 12 août 1997 transférant un bail conclu en 1977, A._ est devenue locataire d'un appartement de trois pièces à Genève. Le loyer mensuel dû par la locataire a été fixé en dernier lieu à 586 fr., plus 200 fr. de frais accessoires mensuels. Par contrat du 25 août 2008, la locataire, sans en référer à la bailleresse X._, a sous-loué l'appartement à une tierce personne moyennant un loyer mensuel de 1'060 fr., plus 140 fr. de frais mensuels. Depuis le 1 er janvier 2011, la locataire est officiellement domiciliée à Nyon (VD). Par courrier du 28 février 2012, la bailleresse a sommé la locataire de supprimer la domiciliation de la sous-locataire. La locataire a d'abord contesté la sous-location, prétendant faussement cohabiter avec un membre de sa famille. La bailleresse a finalement résilié le bail pour le 30 juin 2012. Les locaux ont été restitués le 1 er juillet 2013, après que les parties se furent entendues sur un départ au 30 juin 2013. Le 24 juillet 2013, la bailleresse a invité la locataire à lui verser la somme de 27'492 fr. correspondant au bénéfice perçu de la sous-location (474 fr. par mois durant 58 mois). Le 30 octobre 2013, elle a initié une procédure judiciaire tendant au paiement de 28'448 fr. plus intérêts. Par jugement du 16 décembre 2014, le Tribunal des baux et loyers du canton de Genève a condamné la locataire à payer à la bailleresse 27'493 fr. [sic!] pour les gains illicitement perçus, ainsi que 434 fr. 85 à titre de solde de loyer. Sur appel de la locataire, la Chambre des baux et loyers de la Cour de justice a confirmé le jugement de première instance par arrêt du 22 février 2016. B. La locataire (ci-après: la recourante) a saisi le Tribunal fédéral d'un recours en matière civile, concluant au rejet de la demande de la bailleresse (ci-après: l'intimée). Il n'a pas été ordonné d'échange d'écritures.