Faits :
A.
La société Z._ SA était locataire d'un camion-citerne dont l'usage lui avait été cédé par l'entreprise X._ Sàrl (ci-après: la bailleresse). Le 14 décembre 2012, un chauffeur de la locataire a eu un accident avec ce véhicule.
Le 10 janvier 2013, la bailleresse, dont l'associé gérant avait vu le camion accidenté, a adressé à la locataire un devis établi par le réparateur R1._ AG, qui chiffrait les travaux à 49'000 fr. La locataire a sollicité un autre devis auprès du réparateur R2._ AG qui, en date du 17 janvier 2013, a estimé les travaux à 9'755 fr.
Ce même 17 janvier, l'associé gérant de la bailleresse a adressé à la locataire un courrier électronique ayant la teneur suivante:
«Par la présente, je vous informe que nous prenons [sic!] fin au contrat de location du camion... 2.30 m, pour la date du 17.01.2013. Je passerais [sic!] le chercher le 18.01.2013 à 8h00 au dépôt... à... (VD). De ce fait, je sollicite un responsable de chez... [groupe auquel appartient la locataire] pour procéder à l'examen du véhicule avec moi-même.»
Lors de leur rencontre à... (VD) le 18 janvier 2013, les représentants des deux parties ont convenu que le camion serait acheminé chez le réparateur R2._ AG à... (BE), ce qui fut fait le même jour. La bailleresse a elle-même commandé des travaux de modification du camion, chiffrés à 15'500 fr. dans un devis du 21 janvier 2013.
Tous ces travaux ont été effectués entre le 22 janvier et le 5 mars 2013. Un collaborateur du réparateur pense avoir averti la bailleresse de la fin des travaux. C'est toutefois un mécanicien indépendant oeuvrant pour le compte de la locataire qui a ramené le véhicule à la bailleresse le 18 mars 2013. Dans l'intervalle, cette dernière avait adressé à la locataire deux factures du 6 mars 2013 requérant le paiement de 13'608 fr. pour la location du camion en janvier et février 2013. Elle a encore établi le 5 avril 2013 une facture de 4'470 fr. 55 pour le mois de mars.
La locataire a refusé de payer ces factures.
B.
B.a. Au bénéfice d'une autorisation de procéder, la bailleresse a déposé le 30 juin 2014 une demande contre la locataire devant le Tribunal civil du Littoral et du Val-de-Travers (NE). Elle concluait au paiement de 19'078 fr. 55 plus intérêts, soit 18'078 fr. 55 pour la location du camion entre le 1er janvier et le 18 mars 2013 et 1'000 fr. pour le remboursement de la franchise afférente à son assurance responsabilité civile.
Par jugement du 15 janvier 2015, le Tribunal civil a condamné la locataire au paiement de 1'000 fr. (franchise) et rejeté la demande pour le surplus. Il a considéré que le loyer n'était plus dû à partir du 18 janvier 2013 dans la mesure où la bailleresse avait résilié le contrat pour cette date; en outre, aucun loyer n'était dû pour la période antérieure, au motif que le montant convenu de 300 fr. par jour devait être payé en cas d'utilisation du véhicule, qui était en l'occurrence inutilisable.
B.b. Statuant le 13 avril 2016 sur appel de la bailleresse, la Cour d'appel civile du Tribunal cantonal neuchâtelois a réformé le jugement attaqué en ce sens qu'elle a condamné la locataire à payer 3'600 fr. de loyer pour la période du 1er au 17 janvier 2013 (12 jours à 300 fr.), en sus des 1'000 fr. afférents à la franchise d'assurance. Contrairement au premier juge, la Cour d'appel a retenu que la rémunération convenue était de 300 fr. par jour ouvrable sans les samedis et restait due jusqu'à la résiliation du contrat, qui était intervenue avec effet au 17 janvier 2013. La Cour d'appel a en revanche jugé que les prétentions à un loyer pour la période postérieure au 17 janvier 2013, respectivement à une indemnité pour le manque à gagner consécutif à l'immobilisation du véhicule au-delà de cette date étaient «dénuées de tout fondement» et devaient être rejetées.
B.c. La bailleresse a alors déféré cette décision à l'autorité de céans, qui a déclaré irrecevable son recours constitutionnel subsidiaire mais admis son recours en matière civile, annulant ainsi l'arrêt du 13 avril 2016 et renvoyant la cause au Tribunal cantonal neuchâtelois (arrêt 4A_321/2016 du 3 octobre 2016). En substance, la cour de céans a admis le grief de violation du droit d'être entendu après avoir constaté que l'arrêt attaqué ne motivait pas le rejet des prétentions en paiement d'une indemnité pour la période postérieure à l'échéance du contrat. L'état de fait, extrêmement succinct et insuffisant au regard de l'art. 112 al. 1 let. b LTF, ne portait notamment pas sur les détails de ce qui était survenu entre le 14 décembre 2012 et le 18 mars 2013. La cour de céans a dès lors admis le recours sans se prononcer sur les autres griefs soulevés par la bailleresse.
B.d. Le Tribunal cantonal a rendu un nouvel arrêt le 1er décembre 2016. Après avoir complété l'état de fait, il a derechef condamné la locataire à payer les montants de 3'600 fr. et de 1'000 fr., intérêts en sus.
En substance, les juges cantonaux ont considéré qu'ils n'avaient pas à revenir sur le fait que la bailleresse avait résilié le contrat de location le 17 janvier 2013, dans la mesure où l'autorité de céans l'avait retenu «à tout le moins implicitement». Au-delà de cette date, la bailleresse n'avait aucune prétention pécuniaire. Il s'avérait en effet que les parties avaient décidé le 18 janvier 2013 de confier le camion au réparateur proposé par la locataire, sans que celle-ci accepte de supporter un plein loyer pour la durée des travaux, qui n'avait pas été déterminée. Il était très peu probable que les parties aient discuté de la «disposition» ou de la possession du camion, puisqu'il devait être confié au réparateur R2._ AG. En théorie, il était fort concevable que la bailleresse ait repris possession du véhicule, quand bien même il devait se trouver «en main d'un tiers» à un titre spécial (art. 924 al. 1 CC). Tout dépendait de l'accord des parties, qui était inconnu ou incomplet. Toutefois, la bailleresse avait au moins autant intérêt que l'autre partie à ce que des travaux soient entrepris - ceux qu'elle avait commandés étant plus longs et plus onéreux. Le simple fait qu'un auxiliaire de la locataire ait transporté le véhicule ne permettait pas de conclure que celle-ci aurait conservé l'usage de la chose louée sous cette forme très particulière. La preuve d'un tel fait incombait à la bailleresse, qui ne l'avait pas rapportée.
Dans le cas concret, concluaient les juges cantonaux, la locataire ne devait pas payer d'indemnité pour la perte subie du fait de l'indisponibilité du camion durant les réparations. En effet, le lien de causalité entre la nécessité des travaux et la perte subie n'était pas prouvé. D'après les témoignages recueillis, le camion pouvait encore circuler après l'accident sans que la sécurité du transport ne soit en jeu; la citerne n'avait pas été touchée. Cela signifiait qu'il était possible de procéder aux réparations à un moment où l'indisponibilité du véhicule ne serait pas (ou moins) dommageable. Quant à la jurisprudence octroyant au bailleur une indemnité égale au loyer convenu lorsque le locataire reste dans les locaux nonobstant une résiliation de bail valable, elle ne s'appliquait pas sans autre à un bail mobilier dont l'objet n'était pas au premier chef destiné à la location. La bailleresse était elle-même une entreprise de transport et de livraison de mazout, bien plutôt qu'une professionnelle de la location de véhicules. Elle avait certes prétendu avoir «besoin de [son] camion en cette période très chargée» dans un courrier du 8 avril 2013, mais elle n'avait pas donné plus de précision en procédure sur les frais supplémentaires, voire la perte d'affaires qu'avait pu occasionner l'immobilisation du camion. Il était dès lors impossible de fixer le montant du dommage à indemniser. Au demeurant, si le camion était indispensable, on se demandait pourquoi la bailleresse avait choisi une telle période pour entreprendre en sus des travaux de transformation dont l'urgence n'était pas démontrée, sans fixer le moindre délai au réparateur.
C.
La bailleresse saisit le Tribunal fédéral d'un recours en matière civile à l'issue duquel elle requiert que la locataire soit condamnée à lui payer 15'078 fr. 55 plus intérêts moratoires, en plus des 1'000 fr. afférents à la franchise d'assurance.
La locataire conclut principalement au rejet du recours, subsidiairement à son admission partielle dans la mesure où il dénonce un défaut de motivation quant à la date de résiliation (17 janvier 2013) retenue en violation de l'art. 166f [recte: 266f] CO.
L'autorité précédente se réfère à son arrêt.
Considérant en droit :
1.
1.1. Le recours en matière civile peut être formé pour violation du droit fédéral (art. 95 let. a LTF). L'autorité de céans applique d'office le droit (art. 106 al. 1 LTF) à l'état de fait constaté dans l'arrêt cantonal. Cela n'implique pas qu'elle examine toutes les questions juridiques qui pourraient se poser, à l'instar d'un juge de première instance. Eu égard à l'obligation de motiver imposée par l'art. 42 al. 2 LTF, l'autorité de céans ne traite que les questions qui sont soulevées devant elle par les parties, à moins que la violation du droit ne soit manifeste (ATF 140 III 115 consid. 2 p. 116; 140 III 86 consid. 2).
1.2. Le Tribunal fédéral statue sur la base des faits établis par l'autorité précédente (art. 105 al. 1 LTF). Il ne peut rectifier ou compléter les constatations de l'autorité précédente que si elles sont manifestement inexactes ou découlent d'une violation du droit au sens de l'art. 95 LTF (art. 105 al. 2 LTF). «Manifestement inexactes» signifie ici «arbitraires» (ATF 140 III 115 consid. 2 p. 117; 135 III 397 consid. 1.5). Encore faut-il que la correction du vice soit susceptible d'influer sur le sort de la cause (art. 97 al. 1 LTF).
La critique de l'état de fait retenu est soumise au principe strict de l'invocation énoncé par l'art. 106 al. 2 LTF (ATF 140 III 264 consid. 2.3 p. 266 et les références). La partie qui entend attaquer les faits constatés par l'autorité précédente doit expliquer clairement et de manière circonstanciée en quoi ces conditions seraient réalisées (ATF 140 III 16 consid. 1.3.1 p. 18 et les références). Si elle souhaite obtenir un complètement de l'état de fait, elle doit aussi démontrer, par des renvois précis aux pièces du dossier, qu'elle a présenté aux autorités précédentes, en conformité avec les règles de la procédure, les faits juridiquement pertinents à cet égard et les moyens de preuve adéquats (ATF 140 III 86 consid. 2 p. 90).
2.
2.1. La bailleresse plaide qu'en vertu des art. 266a al. 2 et 266f CO, la résiliation du bail ne pouvait pas prendre effet avant le 20 janvier 2013. Les juges cantonaux auraient indûment refusé d'examiner cette question en considérant de façon erronée qu'elle avait été tranchée à tout le moins implicitement par l'arrêt de renvoi.
La locataire, infirmant ainsi sa conclusion subsidiaire (cf. let C supra), objecte que si le Tribunal fédéral n'a pas remis en cause l'analyse selon laquelle le contrat avait pris fin le 17 janvier, cela tient au fait que la destinataire du congé, c'est-à-dire elle-même, a renoncé à se plaindre d'une violation de la loi.
2.2. Lorsque le délai ou le terme de congé n'est pas respecté, l'art. 266a al. 2 CO prévoit que la résiliation produit effet pour le prochain terme pertinent. Plusieurs auteurs précisent toutefois que le destinataire du congé peut l'accepter pour la date prématurée. Son silence ne vaut pas sans autre acceptation de l'échéance mentionnée (BOHNET/DIETSCHY-MARTENET, in Droit du bail à loyer et à ferme, Commentaire pratique, 2 e éd. 2017, n° 44 ad art. 266a CO; DAVID LACHAT, Le bail à loyer, 2008, p. 654 ch. 4.3; PETER HIGI, Zürcher Kommentar, 4 e éd. 1995, n° 13 ad art. 266c CO). L'accord peut résulter d'actes concluants, par exemple lorsque le locataire d'un appartement libère les lieux et que le bailleur reprend les clés (BERNARD CORBOZ, Les congés affectés d'un vice, in 9e Séminaire sur le droit du bail, Neuchâtel 1996, p. 20). Le délai légal pour résilier le bail de choses mobilières est de trois jours (art. 266f CO).
2.3. Lors de son premier recours au Tribunal fédéral, la bailleresse a renoncé à plaider sa thèse selon laquelle son courriel du 17 janvier 2013 était une simple demande d'inspection du véhicule plutôt qu'une déclaration de résiliation. En revanche, elle a contesté la date retenue pour la résiliation, en invoquant l'art. 266f CO et en faisant valoir que la résiliation ne pouvait être valable que pour le 20 janvier 2013 au plus tôt (recours du 19 mai 2016 p. 5 ch. 2.2.3). La cour de céans a retenu une violation du droit d'être entendu quant au rejet des prétentions pour la période postérieure à l'échéance du contrat et un état de fait insuffisant, notamment pour la période comprise entre le 14 décembre 2012 et le 18 mars 2013. Elle a annulé l'arrêt attaqué sans se prononcer sur les autres griefs soulevés par la recourante - qui comprenaient bien celui de violation de l'art. 266f CO. Cette question n'a donc pas été tranchée par l'arrêt de renvoi.
Cela étant, l'autorité précédente n'a pas enfreint le droit fédéral en retenant que le bail avait pris fin le 17 janvier 2013. La bailleresse a en effet résilié le contrat pour cette date par courrier électronique du même jour et donné rendez-vous à la partie adverse le lendemain à 8 h 00 pour l'inspection du véhicule (et non le jour même, comme le laisse entendre l'arrêt attaqué en citant inexactement la pièce 11 de la partie demanderesse; cf. art. 105 al. 2 LTF et arrêt du 13 avril 2016 p. 6 consid. 3). Les parties se sont effectivement rencontrées le 18 janvier 2013 et il a été convenu de confier le camion au réparateur proposé par la locataire (cf. au surplus consid. 5.2 infra). On peut objectivement en inférer que la locataire a renoncé à se prévaloir des art. 266a al. 2 et 266f CO et que les parties se sont ainsi entendues sur une résiliation immédiate.
3.
La bailleresse prétend au paiement du loyer pour la période s'étendant de la résiliation au 18 mars 2013, pendant laquelle elle a été privée du véhicule (sous déduction du temps consacré aux travaux de transformation). Elle plaide qu'il incombait à la locataire d'apporter la preuve de la restitution du véhicule en temps utile et dans un état conforme à l'usage convenu. Or, la locataire n'aurait pas allégué ni établi avoir restitué le véhicule avant le 18 mars 2013, date reconnue par la bailleresse. L'autorité précédente aurait à cet égard enfreint l'art. 8 CC et établi les faits de façon arbitraire. Elle aurait en outre refusé à tort d'appliquer la jurisprudence selon laquelle le locataire qui occupe sans droit les locaux nonobstant une résiliation de bail valable doit payer une indemnité égale au loyer convenu. La bailleresse fait observer que cette jurisprudence se fonde sur l'art. 267 al. 1 CO, qui s'applique indistinctement au bail mobilier ou immobilier.
Avant de passer à l'examen du cas concret (consid. 5 infra), il convient de rappeler quelques principes (consid. 4 infra).
4.
L'art. 267 al. 1 CO énonce qu'à la fin du bail, le locataire doit restituer la chose dans l'état qui résulte d'un usage conforme au contrat.
4.1.
4.1.1. La restitution se fait en principe par la remise de la chose elle-même ou des moyens qui la font passer dans la puissance du bailleur (arrêt 4A_388/2013 du 7 janvier 2014 consid. 2.1). Le fait de ne plus user de la chose louée ou de ne plus exercer la maîtrise ne suffit pas (CAROLE AUBERT, in Droit du bail à loyer et à ferme, op. cit., n° 3 ad art. 267 CO; HIGI, op. cit., n° 13 ad art. 267 CO). Il incombe au locataire de prouver qu'il a satisfait à son obligation de restituer la chose louée (arrêt 4A_456/2012 du 4 décembre 2012 consid. 2.1, in SJ 2013 I 525).
4.1.2. Selon la jurisprudence, le locataire qui contrevient à son obligation de restitution et reste dans les locaux loués nonobstant une résiliation de bail valable doit payer une indemnité pour «occupation illicite» qui équivaut en principe au loyer convenu (arrêts 4A_96/2015 du 1er juin 2015 consid. 3.3; 4A_456/2012 précité consid. 2.1; ATF 131 III 257 consid. 2 p. 261). L'indemnité peut être supérieure, notamment si le bailleur démontre qu'il avait la possibilité de louer les locaux à un loyer plus élevé (arrêt 4A_463/2014 du 23 janvier 2015 consid. 3, in Praxis 2015 683), voire inférieure dans certaines circonstances (arrêt précité 4A_96/2015 consid. 3.4; cf. toutefois arrêt 4A_208/2015 du 12 février 2016 consid. 4.2).
Cette jurisprudence est inspirée du droit allemand, qui contient une réglementation expresse. L'argument invoqué est le même, à savoir qu'un bailleur privé contre son gré de l'usage de la chose louée, par un locataire qui contrevient à son devoir de restitution, ne doit pas être juridiquement plus mal placé que si le bail durait encore (cf. WALTER WEIDENKAFF, in PALANDT, Bürgerliches Gesetzbuch, 76 e éd. 2017, n° 1 ad § 546a BGB). Or, la preuve du dommage peut être difficile à rapporter. Le bailleur doit donc être dispensé de prouver qu'il aurait pu relouer immédiatement les locaux pour un loyer identique (arrêt précité 4A_456/2012 consid. 2.1; arrêts 4A_730/2011 du 16 juillet 2012 consid. 4.2.4 et 4C.255/2005 du 26 octobre 2006 consid. 2.2 et 2.3; ATF 131 III 257 consid. 2.1; 119 II 437 consid. 3b/bb; 63 II 368 consid. 3).
4.1.3. Le § 546a al. 1 BGB (anciennement § 557 BGB) prévoit que lorsque le locataire ne restitue pas la chose louée à la fin du rapport de bail, le bailleur peut exiger le loyer convenu - ou le loyer conforme à l'usage local pour une chose comparable - comme indemnité pour la durée pendant laquelle il est privé de la chose louée (« für die Dauer der Vorenthaltung »). La possibilité de faire valoir un dommage supérieur est réservée (al. 2).
Cette règle s'applique aux baux à loyer de toute sorte (HANS-JÜRGEN BIEBER, in Münchener Kommentar zum Bürgerlichen Gesetzbuch, 7 e éd. 2016, n o 3 ad § 546a BGB). D'autres règles s'appliquent pour les baux à ferme (notamment § 584b BGB; cf. ATF 131 III 257 consid. 2.2). Pour les locaux d'habitation, la possibilité d'invoquer un dommage supérieur est limitée (§ 571 al. 1 BGB; WEIDENKAFF, op. cit., n° 6 ad § 546a BGB).
Il y a privation ( Vorenthaltung) au sens du § 546a BGB lorsque le locataire, à la fin du contrat, ne rend pas la chose louée contre la volonté du bailleur et contrevient ainsi à son obligation de restitution. Il n'y a pas privation lorsqu'il restitue la chose dans un état non conforme à l'usage convenu (BIEBER, op. cit., n os 4 et 6 ad § 546a BGB).
Est litigieux le point de savoir si la demeure du bailleur exclut une telle prétention. Est déterminante la volonté du bailleur de récupérer la chose louée. Une telle volonté fait défaut lorsqu'il refuse de reprendre la chose à cause de son état ou laisse la possession au locataire pour l'élimination de défauts (WEIDENKAFF, op. cit., n° 8 s. ad § 546a BGB).
4.1.4. En droit suisse, l'autorité de céans a parfois recouru à la théorie discutée du rapport contractuel de fait pour justifier l'octroi du loyer convenu après la résiliation du bail (cf. ATF 63 II 368 consid. 3 p. 373; ATF 119 II 437 consid. 3b/bb; cf. arrêts précités 4A_730/2011 consid. 4.2.4 et 4C.255/2005 consid. 2.2 et 2.3). Toutefois, elle a aussi souligné que le locataire qui contrevient à l'obligation de restitution posée par l'art. 267 al. 1 CO commet une violation contractuelle dont il répond en vertu de l'art. 97 CO (arrêts précités 4A_208/2015 consid. 4.2; 4A_463/2014 consid. 3; 4A_456/2012 consid. 2.1; ATF 121 III 408 consid. 3c p. 413).
4.2. Lorsque le locataire restitue la chose louée dans un état non conforme à celui qui résulterait de l'usage convenu, il en répond vis-à-vis du bailleur aux conditions de l'art. 97 CO. Il doit ainsi assumer les coûts du rétablissement de la chose louée dans un état conforme (cf. arrêts 4C.261/2006 du 1 er novembre 2006 consid. 3.1, rés. in SJ 2007 I 365 et 4C.131/1995 du 15 novembre 1995 consid. 2, in SJ 1996 p. 322) et dédommager le bailleur pour le fait qu'il ne peut pas utiliser la chose, respectivement ne peut pas la relouer en temps voulu (LACHAT, op. cit., p. 811 ch. 5.6; HIGI, op. cit., n os 93 et 106 ad art. 267 CO).
Sous réserve de la faute, qui est présumée (art. 97 al. 2 CO), il incombe au bailleur de prouver l'existence d'un défaut excédant l'usure normale et le dommage qui en découle pour lui (arrêt 4A_469/2011 du 22 décembre 2011 consid. 2.1; arrêt précité 4C.261/2006 consid. 3.1; AUBERT, op. cit., n° 41 ad art. 267 CO; HIGI, op. cit., n° 119 ad art. 267 CO).
5.
5.1. En l'occurrence, il ressort de l'arrêt attaqué que la locataire a eu le 14 décembre 2012 un accident ayant occasionné des dommages au camion. La bailleresse a résilié le bail par courriel du 17 janvier 2013 pour le jour même, en précisant qu'elle passerait chercher le véhicule le lendemain (pièce 11) à un endroit donné et qu'un représentant de la locataire devrait être présent pour procéder à l'examen conjoint du véhicule. Les parties ont alors convenu de confier le véhicule au réparateur proposé par la locataire, qui avait établi un devis nettement plus bas que le préparateur consulté par la bailleresse. Celle-ci a profité de faire procéder à des travaux de transformation du véhicule. Le camion a été conduit chez le réparateur par un auxiliaire de la locataire, qui l'a ramené à la bailleresse une fois les travaux achevés. La bailleresse est elle-même une entreprise de transport et de livraison de mazout, bien plutôt qu'une professionnelle de la location; le camion n'était pas au premier chef destiné à la location. Dans la mesure où ledit véhicule pouvait encore circuler sans que la sécurité du transport soit mise en jeu, la bailleresse aurait pu repousser les travaux à une période où l'immobilisation du véhicule n'était pas (ou guère) dommageable.
5.2. Dans son recours, la bailleresse dénonce une appréciation arbitraire des preuves, qui aurait conduit l'autorité précédente à retenir en violation du droit fédéral que la locataire avait restitué le véhicule le 18 janvier 2013 plutôt que le 18 mars 2013.
En réalité, l'état de fait est exempt d'arbitraire sur les points contestés par la recourante. La cour cantonale s'est référée aux témoignages des représentants de la bailleresse et de la locataire pour en déduire qu'ils avaient convenu de confier le véhicule au réparateur proposé par la locataire. De fait, l'associé gérant de la bailleresse a déclaré que la locataire avait proposé de demander un devis à un tiers pour obtenir une offre plus intéressante, qu'il «[avait] été d'accord avec cela et [avait] donc accepté, le 18 janvier 2013, de laisser le camion à leur disposition pour faire les réparations». On ne discerne pas en quoi il serait insoutenable de retenir un accord des parties, et la bailleresse ne le démontre pas. Contrairement à ce qu'elle soutient, le simple fait que le véhicule a été confié à l'entreprise proposée par la locataire, que celle-ci a directement payé les réparations à l'entreprise en question et qu'elle s'est chargée du transport du véhicule n'est nullement incompatible avec un accord quant aux travaux et quant à la mise à disposition du véhicule.
Il apparaît donc qu'à réception du courriel annonçant la résiliation immédiate du bail, la locataire a présenté le véhicule conformément aux exigences de la bailleresse, qui a décidé de confier le véhicule au réparateur proposé par la locataire et a profité de commander des travaux de transformation en plus de la réparation. Sur la base de ces faits qui lient l'autorité de céans, les juges cantonaux pouvaient retenir sans violer le droit fédéral que la locataire avait restitué la chose louée au sens de l'art. 267 al. 1 CO, mais dans un état défectueux, qui a nécessité des travaux de réparation qu'elle a pris en charge. La bailleresse entend obtenir une indemnité égale au loyer convenu pour les jours d'immobilisation du véhicule liés aux travaux de réparation (par opposition aux travaux de transformation); elle se prévaut de la jurisprudence sur l'occupation illicite des locaux après la fin du bail. Or, force est de constater qu'on ne se trouve pas dans une situation comparable à celle envisagée par la jurisprudence en question - ni, semble-t-il, à celle prévue par le § 546a BGB -, qui pourrait cas échéant justifier de dispenser la partie bailleresse de rapporter la preuve du dommage. La locataire n'a pas refusé de restituer le camion loué et de ce fait privé la bailleresse, contre sa volonté, de l'usage dudit véhicule. Celle-ci a accepté de confier le camion pour réparation à l'entreprise proposée par la locataire, qui s'est chargée d'assumer le transport du véhicule et les frais de réparation. A cela s'ajoute que la bailleresse, qui n'était pas une professionnelle de la location, aurait pu faire en sorte de procéder aux travaux à un moment non dommageable (ou guère dommageable). La bailleresse ne formule aucun grief recevable contre ces constatations de fait; elle se borne à objecter de façon appellatoire qu'elle n'a pas choisi le moment de la réparation, alors que la cour cantonale a retenu sans arbitraire un accord des parties.
Dans un tel contexte, l'autorité précédente était fondée à considérer que la bailleresse ne pouvait prétendre à une indemnité forfaitaire équivalente au loyer convenu, sans égard à la situation effective.
6.
En définitive, le recours doit être rejeté aux frais de son auteur (art. 66 al. 1 LTF), qui versera en outre à l'intimée une indemnité pour ses frais d'avocat (art. 68 al. 1 et 2 LTF).
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 2'000 fr., sont mis à la charge de la recourante.
3.
La recourante versera à l'intimée une indemnité de 2'500 fr. à titre de dépens.
4.
Le présent arrêt est communiqué aux mandataires des parties et à la Cour civile du Tribunal cantonal du canton de Neuchâtel.
Lausanne, le 30 août 2017
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente: Kiss
La Greffière: Monti