Faits :
A.
A.B._ est depuis 1974 locataire d'un appartement de quatre pièces et demie sis à X._ (NE), qu'il occupe avec son épouse B.B._; le dernier loyer mensuel, charges et place de parc non comprises, est de 710 fr. Le 11 décembre 2009, la bailleresse Caisse A._, soit une fondation de prévoyance, lui a adressé le décompte des frais de chauffage pour la période du 1 er juillet 2008 au 30 juin 2009, présentant un solde à payer de 329 fr. 25. Il s'en est suivi un différend, notamment sur le lieu de consultation des justificatifs, que le locataire a porté devant la Commission de conciliation. Les parties ont convenu d'une suspension de la procédure jusqu'au 31 mars 2010. Le procès-verbal de la séance précisait qu'à défaut d'entente entre les parties dans le délai précité, la conciliation serait réputée avoir échoué; la partie qui persisterait dans sa demande devrait alors saisir l'autorité judiciaire compétente dans un délai de trente jours. Bien qu'aucune entente ne soit intervenue par la suite, le juge n'a pas été saisi.
Le 5 août 2010, la bailleresse a fait notifier au locataire et à l'épouse de celui-ci des commandements de payer portant sur la somme de 329 fr. 25 plus intérêts, qui ont été frappés d'opposition. Par envois recommandés du 3 septembre 2010 adressés à chacun des époux, la bailleresse les a sommés de payer le montant de 329 fr. 25 dans les trente jours, faute de quoi le bail serait résilié. Ces derniers lui ont répondu qu'ils verseraient la moitié du montant réclamé à titre de mesure provisoire et ont demandé une nouvelle fois la rectification du décompte. Le 11 octobre 2010, la bailleresse a fait parvenir à chacun des époux un avis de résiliation du bail pour le 30 novembre 2010, motivé par le fait que seul un montant de 164 fr. 60 avait été versé sur le solde réclamé de 329 fr. 25.
B.
B.a. Le 12 novembre 2010 les époux ont saisi la Commission de conciliation d'une requête en constatation de l'inefficacité du congé, subsidiairement en annulation de celui-ci. Par décision du 24 janvier 2011, la Commission a annulé le congé. Concédant que le congé était a priori valable, elle a néanmoins retenu que la bailleresse avait adopté une attitude indigne en saisissant la première occasion pour notifier un congé alors que les parties se livraient depuis trois décennies à une véritable bataille de tranchées, chaque question donnant lieu à de nouvelles procédures dans lesquelles le locataire, pointilleux voire procédurier, avait cependant obtenu le plus souvent totalement ou partiellement gain de cause.
La bailleresse a porté la cause devant le Tribunal civil du Littoral et du Val-de-Travers qui, par jugement du 25 février 2013, a rejeté la requête en validation du congé. Le Tribunal a retenu en substance ce qui suit: la créance de la bailleresse n'était désormais plus discutée, mais le montant en jeu faisait ressortir une flagrante disproportion des intérêts en présence, d'un côté celui du locataire et de son épouse à conserver l'usage de l'appartement qu'ils occupaient depuis quarante ans et dont ils payaient le loyer ponctuellement, de l'autre côté celui de la bailleresse à obtenir le paiement d'une somme dont ne dépendait pas le respect de ses propres engagements. Le locataire et son épouse n'avaient vraisemblablement pas mesuré le danger encouru en ne s'acquittant pas de l'intégralité du montant. En outre, la bailleresse paraissait avoir perdu de vue son "devoir de faire une approche différenciée des cas d'impayés" pouvant se présenter à elle; sa représentante avait en effet déclaré que le congé aurait été donné de la même manière à tout autre locataire, déclaration démontrant que la bailleresse avait "le souci de ne pas faire d'entorse à son choix - rigide, pour ne pas dire féroce - d'aller à chaque cas d'impayé, y compris le plus modeste, jusqu'à la résiliation de bail puis à l'expulsion du locataire concerné".
B.b. Statuant sur appel de la bailleresse, la Cour d'appel civile du Tribunal cantonal neuchâtelois a confirmé le jugement rejetant la requête en validation du congé, avec une motivation qu'il n'est toutefois pas aisé de saisir. La Cour d'appel constate d'abord que la créance de la bailleresse était fondée et exigible, de sorte que les conditions objectives d'une résiliation étaient données. Elle examine ensuite les trois motifs d'abus de droit invoqués par le locataire et son épouse; elle relève que la créance n'était pas insignifiante, que la bailleresse n'éprouvait aucun doute au sujet du montant de la créance et que le congé pour défaut de paiement, en soi, ne devenait pas abusif du fait que le bailleur voulait de toute façon se défaire du locataire.
La Cour d'appel s'écarte ensuite de l'avis du Tribunal civil en retenant qu'il "est proprement invraisemblable" que la bailleresse "ait signifié le congé litigieux par simple respect d'une pratique ordinaire et pour ainsi dire routinière, alors que l'ancienneté du bail, l'absence de tout retard antérieur dans le paiement du loyer (...) et la faiblesse du montant impayé commandaient très naturellement une réaction plus nuancée, à tout le moins sous forme de dernier et bref rappel". Elle semble ainsi sous-entendre que la bailleresse a été plus dure avec les intimés qu'elle ne l'est d'habitude avec les locataires en demeure. Néanmoins, poursuit la Cour, une telle analyse n'implique pas que la bailleresse ait voulu saisir l'occasion du retard pour exercer des représailles face aux litiges subis durant plusieurs décennies; en effet, l'on peut aussi concevoir qu'en se limitant au conflit relatif au décompte de charges 2008-2009, elle ait éprouvé une certaine lassitude face à des locataires donneurs de leçons et générant des pertes de temps considérables pour un enjeu très modeste, et finalement à mauvais escient; la Cour d'appel relève aussi que le locataire ayant été jusqu'à prendre le risque d'une résiliation, on ne saurait interdire à la partie adverse de faire preuve de rigueur particulière, la multiplicité des litiges antérieurs ne devant pas constituer une protection face à l'exercice de la liberté contractuelle.
Arrivée à ce stade du raisonnement, la Cour d'appel conclut en précisant qu'il ne lui appartient toutefois pas d'émettre des suppositions quant aux intentions d'une partie dont l'appréciation serait plus favorable en définitive que celle à laquelle aboutissent ses propres déclarations. Or, ces déclarations imposent la conclusion, retenue par le Tribunal civil, d'une réaction inutilement rigoureuse et contraire à l'interdiction de l'abus de droit.
C.
La bailleresse (recourante) saisit le Tribunal fédéral d'un recours en matière civile, concluant à la validation du congé donné le 11 octobre 2010 pour le 30 novembre 2010. Le locataire et son épouse (intimés) concluent au rejet du recours. L'autorité précédente se réfère à son arrêt.
Considérant en droit :
1.
A teneur de l'art. 257d al. 1 CO, lorsque le locataire, après réception de la chose, a du retard pour s'acquitter d'un terme ou de frais accessoires échus, le bailleur peut lui fixer par écrit un délai de paiement et lui signifier qu'à défaut de paiement dans ce délai, il résiliera le bail. Le délai doit être d'au moins trente jours pour les baux d'habitations ou de locaux commerciaux. L'art. 257d al. 2 CO dispose qu'à défaut de paiement dans le délai fixé, le bailleur peut résilier le contrat avec effet immédiat; les baux d'habitations ou de locaux commerciaux peuvent être résiliés moyennant un délai de congé minimum de trente jours pour la fin d'un mois.
La jurisprudence admet que le congé prononcé conformément à l'art. 257d CO peut, à titre très exceptionnel, contrevenir aux règles de la bonne foi; la notion doit être interprétée très restrictivement, afin de ne pas mettre en question le droit du bailleur à recevoir le loyer à l'échéance. L'annulation entre en considération notamment dans les cas suivants: le bailleur a réclamé au locataire, avec menace de résiliation du bail, une somme largement supérieure à celle en souffrance, alors qu'il n'était pas certain du montant effectivement dû; ou encore, l'arriéré est insignifiant, ou a été réglé très peu de temps après l'expiration du délai comminatoire, alors que le locataire s'était jusque-là toujours acquitté du loyer à temps; ou enfin, le bailleur ne résilie le contrat que longtemps après l'expiration de ce même délai (ATF 120 II 31 consid. 4; arrêt 4A_549/2013 du 7 novembre 2013 consid. 4, in SJ 2014 I 105; arrêt 4A_641/2011 du 27 janvier 2012 consid. 7; arrêt 4C.430/2004 du 8 février 2005 consid. 3.1, rés. in SJ 2005 I 310). Le fardeau de la preuve d'un congé contraire à la bonne foi incombe au demandeur à l'action en annulation (ATF 120 II 105 consid. 3c).
En l'espèce, il est incontesté que les conditions objectives pour une résiliation en vertu de l'art. 257d CO étaient remplies (cf. aussi infra consid. 3.2). Le litige porte uniquement sur la question de l'abus de droit dont la recourante se serait rendue coupable. Il sera examiné sur la base des seuls faits ressortant de l'arrêt attaqué, qui lient le Tribunal fédéral, faute pour les parties d'alléguer et de démontrer que la Cour d'appel a établi les faits de façon arbitraire, ou contraire au droit (art. 105 al. 1 LTF; ATF 137 II 353 consid. 5.1; 133 II 249 consid. 1.4.3); il ne sera donc pas tenu compte des nombreux faits invoqués par les intimés qui ne ressortent pas de l'arrêt de la Cour d'appel.
2.
Les intimés continuent à soutenir que le montant non payé à temps, à savoir 164 francs 65 centimes, est un montant insignifiant au sens de la jurisprudence précitée.
Il a été jugé qu'un montant de 286 fr. ne peut pas être qualifié d'insignifiant, comme le seraient, par exemple, des intérêts dus sur un terme arriéré (ATF 120 II 31 consid. 4b p. 33). Il y a lieu d'en rester à une notion très restrictive. Car dès le moment où un montant est considéré comme insignifiant, le locataire peut décider de ne pas le payer sans risquer un congé et donc spéculer sur le fait que le bailleur renoncera peut-être à entreprendre des démarches qui lui coûteraient plus en temps et en frais que ne lui rapporterait l'encaissement du montant impayé (cf. TERCIER/FAVRE, Les contrats spéciaux, 4 e éd. 2009, n° 2391). Offrir une telle opportunité n'est pas compatible avec le but de la procédure de l'art. 257d CO, qui doit permettre au bailleur d'obtenir rapidement et sans complications particulières le paiement de la totalité du loyer et des charges, ou alors de mettre immédiatement fin au contrat.
Le caractère insignifiant se détermine en tant que tel, et non pas par rapport au loyer mensuel ou par rapport au montant déjà versé à titre de loyer depuis le début du bail. Il se détermine en outre objectivement, et non par rapport à la situation subjective des parties. Les moyens financiers du bailleur importent peu, la procédure de l'art. 257d CO étant ouverte à tous les bailleurs, impécunieux ou aisés. Le fait que la recourante n'avait pas besoin du montant impayé pour assumer les charges liées à l'objet loué est dénué de pertinence, tout comme l'allégation selon laquelle elle encaisserait, en tant qu'institution de prévoyance, des loyers pour un montant avoisinant 300 millions de francs.
En l'espèce, c'est à bon droit que la Cour d'appel n'a pas qualifié d'insignifiant le montant de 164 fr. 65.
3.
3.1. Les intimés continuent à soutenir qu'au moment de la mise en demeure, la recourante n'était pas certaine que le montant réclamé lui était bien dû. Ce faisant, ils s'écartent de la constatation faite par la Cour d'appel qui lie le Tribunal fédéral. La critique n'est pas recevable.
3.2. Les intimés persistent aussi à plaider que le bien-fondé de la créance n'était de loin pas établi au moment de la mise en demeure.
Pour certains auteurs, le bail ne saurait être résilié en vertu de l'art. 257d CO lorsque le solde annuel du décompte de chauffage est contesté. Plus précisément, le locataire recevant l'avis comminatoire de payer un solde qu'il estime erroné devrait payer l'éventuelle part non contestée, et saisir pour le surplus l'autorité de conciliation; le bailleur ne pourrait alors pas résilier le contrat pendant la durée de la procédure ( DAVID LACHAT, Le bail à loyer, 2008, p. 348 et 664, auquel renvoie PIERRE WESSNER, in Commentaire pratique, Droit du bail à loyer, 2010, n° 11 ad art. 257d CO). L'exigibilité du solde "résulte[rait] de la présentation annuelle du décompte au locataire, respectivement de la reconnaissance du solde par ce dernier" ( ISABELLE BIERI, in Commentaire pratique, op. cit., n° 15 ad art. 257c CO). Cette opinion ne saurait être suivie.
L'art. 257d al. 1 CO n'exige pas que la créance de loyer ou frais accessoires soit incontestée ou judiciairement constatée, mais uniquement qu'elle soit exigible. Le locataire doit disposer du temps nécessaire pour consulter les pièces justificatives originales (cf. art. 8 OBLF; RS 221.213.11) et contrôler l'exactitude du décompte, respectivement effectuer le paiement requis (cf. arrêt du 30 septembre 1969 consid. 4, in ZR 68 n° 89 p. 247 ss; arrêt 4C.479/1997 du 24 juin 1998 consid. 3a, in mp 1999 p. 83, précisant que la doctrine recommande un délai de 30 jours). En l'occurrence, il est patent que les intimés ont eu suffisamment de temps entre l'envoi du décompte en décembre 2009 et l'avis comminatoire en septembre 2010.
Lorsqu'il est mis en demeure, le locataire qui estime la créance infondée doit décider s'il veut s'exécuter ou s'il refuse de le faire, auquel cas il prend le risque que la créance du bailleur se révèle finalement bien fondée et s'expose ainsi à une éventuelle résiliation du bail. Quant au bailleur qui résilie le bail en sachant que le locataire conteste le décompte, il devra tolérer que la procédure en contestation du congé soit éventuellement prolongée en raison du conflit relatif aux frais accessoires; cette situation est inhérente au fait que la créance litigieuse n'a pas été convenue à l'avance, contrairement au loyer ou à l'acompte concernant les frais accessoires.
3.3. Les intimés soutiennent qu'ils n'ont pas compris correctement le procès-verbal de la Commission de conciliation selon lequel, à défaut d'entente, la partie persistant dans sa demande devrait porter l'affaire devant le juge. Une telle erreur de compréhension n'a pas été constatée par la Cour d'appel. Quant au Tribunal civil, il a uniquement émis l'avis que les intimés avaient "de bonnes raisons de supposer" qu'il appartenait à la recourante de faire constater judiciairement le bien-fondé de sa créance avant de pouvoir prétendre résilier le bail, qu'il était "possible" que les intimés aient été amenés à conclure que l'initiative d'une action ne leur appartenait pas. Il ne s'agit pas d'une constatation, mais uniquement d'une hypothèse, émise en dépit du fait que le locataire avait manifesté dans une lettre l'intention de saisir le juge; au demeurant, on ne comprend pas pourquoi les intimés ont finalement versé la moitié du montant s'ils pensaient que l'avis comminatoire n'était pas valable. Quoi qu'il en soit, les intimés ne sauraient se prévaloir d'une opinion juridique erronée, non provoquée par la recourante, pour fonder une mauvaise foi de cette dernière.
4.
Les intimés soutiennent que la recourante voulait absolument résilier le contrat de bail à cause des nombreuses procédures qui les ont divisés. Or, la Cour d'appel n'a pas retenu que la recourante voulait saisir l'occasion pour exercer des représailles, et l'autorité de céans est liée par l'arrêt attaqué sur cette question de fait. Cela étant, pour reprendre les termes de la Commission de conciliation, les intimés se sont livrés durant trois décennies à une guerre de tranchées contre la recourante, déclenchant à chaque question de nouvelles procédures; on ne discerne pas en quoi la recourante aurait dû montrer des égards particuliers envers les intimés, ce d'autant moins que dans le cas d'une demeure du locataire, la loi exclut l'annulation du congé au motif qu'il est consécutif à une procédure de conciliation ou judiciaire (cf. art. 271a al. 3 let. b CO). Il faut du reste se garder de contourner les exigences strictes quant à l'admission d'un montant "insignifiant" en considérant qu'il y a eu rigueur excessive de la part du bailleur.
5.
A lire l'arrêt attaqué, il semble que la Cour d'appel ait jugé le congé abusif au motif que la recourante n'avait pas suffisamment tenu compte de la durée du bail de quarante ans, du paiement régulier du loyer et de la faiblesse du montant impayé; ces éléments pris dans leur ensemble commandaient à son avis une réaction plus nuancée, à tout le moins sous forme d'un dernier et bref rappel.
L'art. 257d CO permet de résilier immédiatement le contrat de bail à l'échéance du délai comminatoire si le montant exigé n'est pas payé. Il n'exige ni une seconde mise en demeure, ni même un simple rappel, quelles que soient les circonstances du cas particulier. Or, ne pas procéder à une démarche que la loi n'exige pas ne saurait être constitutif d'un abus de droit. Quoi qu'il en soit, la nécessité d'un rappel ne saurait en tout état de cause se concevoir dans un cas où le locataire a sciemment décidé de renoncer à verser tout ou partie du montant faisant l'objet de l'avis comminatoire.
6.
Il ressort des considérants précédents que les conditions pour une résiliation immédiate du contrat de bail étaient remplies et que l'abus de droit n'est pas démontré. Il y a donc lieu de constater que la résiliation donnée le 11 octobre 2010 pour le 30 novembre 2010 est valable. Il sied de rappeler que la loi exclut toute prolongation du bail lorsque le congé est donné pour cause de demeure du locataire (art. 272a al. 1 let. a CO).
7.
Les intimés succombent; ils supportent solidairement les frais et dépens de la procédure (art. 66 et 68 LTF). La cause est renvoyée à l'autorité cantonale afin qu'elle fixe les dépens pour la procédure cantonale.
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis et l'arrêt attaqué est annulé.
2.
Il est constaté que le congé donné le 11 octobre 2010 pour le 30 novembre 2010 est valable.
3.
Les frais judiciaires, arrêtés à 2'000 fr., sont mis à la charge des intimés, solidairement entre eux.
4.
Les intimés sont condamnés solidairement à verser à la recourante une indemnité de 2'500 fr. à titre de dépens.
5.
La cause est renvoyée à l'autorité précédente pour fixer les dépens de la procédure cantonale.
6.
Le présent arrêt est communiqué aux mandataires des parties et à la Cour d'appel civile du Tribunal cantonal du canton de Neuchâtel.
Lausanne, le 19 novembre 2014
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente : Klett
La Greffière : Monti