Faits : A. Le 14 août 2004, le père de C.Y._, alors âgée de 38 ans, a tiré des coups de feu sur sa fille, qui est depuis lors paralysée des membres inférieurs. En date du 20 juin 2008, la Cour d'assises du canton de Genève l'a condamné pour tentative de meurtre. En août 2008, C.Y._ a mandaté A._ et B._, avocats associés dans la même Étude, afin de défendre, sur le plan civil et administratif, ses intérêts pécuniaires face à son père et aux assureurs sociaux. Précédemment, elle avait confié la défense de ses intérêts successivement à sept avocats, résiliant à chaque fois le mandat attribué. A._ et B._ ont introduit les procédures suivantes pour leur mandante: - deux recours contre des décisions de l'Office cantonal AI et de l'assureur LAA, admis par le Tribunal cantonal des assurances sociales; - une action civile jointe au pénal contre le père de C.Y._, tendant au paiement de dommages-intérêts pour près de 11 millions de francs et en réparation du tort moral pour 300'000 fr.; - un pourvoi en cassation contre l'arrêt sur partie de la Cour d'assises condamnant le père de C.Y._ à payer à celle-ci une indemnité pour tort moral de 200'000 fr., pourvoi qui aboutira finalement au prononcé par la Cour de cassation d'une indemnité de 250'000 fr. Par ailleurs, les deux avocats ont engagé des pourparlers en vue d'un règlement global du litige opposant père et fille, qui ont permis notamment l'obtention pour la cliente d'une indemnité mensuelle de 3'000 fr. versée par une société détenue par le père. Dans le cadre de ces pourparlers, A._ et B._ ont rédigé, début 2010, un projet de transaction, lequel prévoyait en particulier le paiement par le père d'une indemnité de 800'000 fr. pour solde de tout compte, ainsi que la conclusion entre les membres de la famille d'un pacte successoral garantissant les droits de C.Y._ dans la succession de ses parents. En février 2010, C.Y._ a déclaré aux deux mandataires qu'elle n'approuvait pas le projet de transaction précité. Elle a alors tenté, sans succès, de négocier directement avec sa famille un accord similaire, avant de demander à ses avocats, le 23 mars 2010, d'apporter des aménagements au projet qu'ils avaient établi, puis, le lendemain, de résilier le mandat avec effet immédiat. Avant de transmettre le dossier à Me C._, nouveau conseil de C.Y._, A._ et B._ ont sollicité l'autorisation du Bâtonnier de l'Ordre des avocats; ils considéraient en effet que leur confrère se trouvait dans un conflit d'intérêts dans la mesure où il était également l'avocat de l'époux de C.Y._, alors inculpé d'instigation à tentative de meurtre sur la personne de son beau-père. Le 2 avril 2010, l'Ordre des avocats a interdit à A._ et B._ de transmettre le dossier de C.Y._ au nouvel avocat de celle-ci. Il lèvera l'interdiction quatre mois plus tard, lorsque le conflit d'intérêts n'existera plus. Entretemps, C.Y._ avait saisi la Commission du Barreau d'une plainte contre A._ et B._ auxquels elle reprochait une mauvaise exécution de leur mandat. La plainte a été classée sans suite par le Président de la Commission, puis, après opposition de la mandante, par la Commission plénière. Le père de C.Y._ est décédé en avril 2011. Ses héritiers ont été condamnés, par arrêt du 31 mai 2012 de la Cour d'assises, à payer à sa fille des dommages-intérêts par 1'825'710 fr.25. C.Y._ s'est pourvue en cassation, réclamant désormais 4'377'692 fr.25; la procédure est en cours. A._ et B._ ont adressé deux notes d'honoraires et de frais à C.Y._. La première facture, datée du 31 mars 2009, portait sur la procédure de recours AI et s'élevait à 2'335 fr.60 nets après déduction d'une provision de 1'000 fr. La seconde facture, établie le 26 avril 2010 après la résiliation du mandat, se montait à 49'074 fr. nets après déduction d'une provision de 40'000 fr. C.Y._ ne s'est pas acquittée de ces deux notes d'honoraires. Saisie le 6 août 2010 par A._ et B._, la Commission de taxation des honoraires d'avocat a, par décision du 2 février 2011, entièrement confirmé la quotité de la note d'honoraires et de frais du 26 avril 2010, en relevant que le temps d'activité et le tarif horaire appliqué étaient adéquats, proportionnés et justifiés compte tenu de l'importante activité déployée, de la complexité du mandat, des intérêts économiques en jeu et de la responsabilité assumée par les avocats. B. Le 17 juin 2011, A._ et B._ ont ouvert action contre C.Y._ en paiement de la somme de 51'409 fr.60 avec intérêts, représentant les honoraires et frais des notes des 31 mars 2009 et 26 avril 2010. Dans sa réponse du 5 avril 2012, C.Y._, qui n'était alors plus représentée par Me C._, a conclu au déboutement des demandeurs. Elle leur reprochait en particulier d'avoir engagé des négociations avec son père contre son gré et d'une manière contraire à ses intérêts, ainsi que d'avoir proposé une convention prévoyant une indemnisation en disproportion évidente avec ses prétentions réelles. Elle faisait également grief aux avocats de n'avoir pas transmis immédiatement le dossier à Me C._. En outre, C.Y._ a conclu reconventionnellement au paiement par les demandeurs d'un montant de 50'000 fr. "au titre d'une réparation", sans plus ample précision. Lors de l'audience d'instruction du 30 octobre 2012, C.Y._, représentée depuis peu par Me D._, n'a pas complété ses allégués bien qu'elle fût invitée à le faire. La défenderesse n'était ni présente, ni représentée à l'audience de débats principaux du 6 mai 2013. Par courrier du même jour adressé au juge, elle expliquait que sa santé ne lui permettait pas d'assister à l'audience et demandait que son époux, qui la représentait, soit convoqué à une prochaine audience. Lors de l'audience de plaidoiries finales du 3 juin 2013, C.Y._, représentée par Me F._, a reconnu devoir le montant faisant l'objet de la note d'honoraires du 31 mars 2009, ainsi que deux postes facturés pour un total de 27'107 fr.50 dans la note du 26 avril 2010. Elle a conclu au rejet de la demande pour le surplus et persisté dans sa demande reconventionnelle. Par jugement du 16 octobre 2013, le Tribunal de première instance du canton de Genève a entièrement fait droit à la demande principale et débouté la défenderesse de ses conclusions reconventionnelles. Statuant le 30 mai 2014 sur appel de C.Y._, comparant en personne, la Chambre civile de la Cour de justice du canton de Genève a confirmé le jugement de première instance. C. C.Y._, représentée par Me Jacques Emery, a interjeté un recours en matière civile. Elle conclut, principalement, au déboutement des demandeurs de leurs conclusions en paiement et, à titre subsidiaire, au renvoi de la cause à la cour cantonale ou au Tribunal de première instance. A._ et B._ proposent de déclarer le recours en matière civile irrecevable, faute de valeur litigieuse suffisante, ou de le rejeter. La cour cantonale se réfère aux considérants de son arrêt. Par ordonnance du 20 octobre 2014, la Présidente de la cour de céans a rejeté la demande d'effet suspensif déposée par la recourante. Par lettre du 7 janvier 2015, la recourante a fait savoir au Tribunal fédéral qu'elle avait résilié le mandat de Me Jacques Emery; elle demande que les actes judiciaires lui soient dorénavant communiqués en personne.