Faits :
A.
A.a. Par contrat de bail à loyer signé le 27 juillet 2009, la société Z._ SA (ci-après: la bailleresse) a remis en location à A._ et B._ (ci-après: les locataires) un appartement de 4,5 pièces au 1 er étage de l'immeuble sis... à Gland (VD). Ladite convention prévoit un loyer mensuel net de 1'850 fr., auquel s'ajoutent un acompte «Charges (art. 6) » de 150 fr. et un poste «Divers 1» de 10 fr.
L'article 6 précité est une clause standard que la gérance en charge de l'immeuble utilisait à l'époque de la signature du bail pour d'autres immeubles gérés par ses soins, qu'ils fussent d'habitations ou commerciaux. Cette clause intitulée « Charges et taxes» a la teneur suivante :
«Le (s) locataire (s) participe (-nt), avec les autres locataires, au paiement des charges et taxes publiques suivantes:
6.1 les frais de chauffage et de préparation d'eau chaude, à savoir: les dépenses effectives directement en rapport avec l'utilisation de l'installation de chauffage ou de l'installation générale de préparation d'eau chaude; le combustible et l'énergie consommés; l'énergie électrique utilisée pour les brûleurs et les pompes; les frais d'exploitation d'énergies de substitution; le nettoyage de l'installation de chauffage et de la cheminée, le grattage, le brûlage et l'huilage de la chaudière, ainsi que l'enlèvement des déchets et des scories; la révision périodique de l'installation de chauffage, réservoirs à mazout y compris; la maintenance; les primes d'assurance qui se rapportent exclusivement à l'installation de chauffage; le détartrage de l'installation d'eau chaude, des chauffe-eau et des conduits; le relevé, le décompte et l'entretien des appareils lorsque les frais de chauffage sont calculés de manière individuelle; en cas de chauffage à distance, le coût total des prestations du fournisseur; les frais de surveillance du chauffage (ou le salaire chauffeur), le travail administratif qu'occasionne l'exploitation de l'installation de chauffage.
6.2 les frais accessoires suivants: les taxes d'épuration des eaux usées et égouts; les taxes et frais pour l'enlèvement des ordures ménagères, les taxes de fourniture d'eau potable, la fourniture d'eau froide et d'eau chaude, la consommation de courant pour les installations communes, le gaz de cuisson, les frais de conciergerie (salaires, charges sociales, fournitures ou prestations de tiers), les frais de déneigement, les frais de maintenance et d'entretien des installations communes (ascenseurs, portes automatiques, ventilation, climatisation, surveillance, téléalarme, détection, alarme incendie, sprinkler), les frais d'entretien des jardins, pelouses, arbres, haies et arbustes, les frais d'éclairage des chemins d'accès de la propriété, les frais de téléréseau (abonnement, droits d'auteur, taxes et redevances y relatives) s'ils ne sont pas facturés distinctement aux locataires, le travail administratif qu'occasionne l'établissement du décompte de charges.
6.3 Acompte de charges: un décompte de charges est établi une fois par an, avec les frais effectivement engagés durant la période écoulée.»
A.b. Les locataires se sont acquittés régulièrement des acomptes de charges et ont payé les soldes découlant des décomptes établis pour les exercices 2009/2010 (523 fr. 70), 2010/2011 (682 fr. 09) et 2011/2012 (840 fr. 18).
Par courrier du 13 mai 2014, ils ont contesté le décompte de charges 2012/2013. Le 19 juin 2014, ils ont informé la gérance qu'ils venaient de découvrir la nullité des clauses relatives aux «Charges et taxes» et au poste «Divers 1»; ils ont demandé la restitution des montants versés à ce titre.
B.
B.a. Le 9 juillet 2014, les locataires ont saisi la Commission de conciliation en matière de baux à loyer du district de Nyon (VD) d'une contestation relative aux postes «Charges et taxes» et «Divers 1», en demandant la restitution des montants payés en trop. La conciliation a abouti sur le second poste uniquement, en ce sens que le montant de 10 fr. a été abandonné, la bailleresse acceptant de rembourser aux locataires 600 fr. pour le trop-perçu.
B.b. Les locataires ont porté la cause devant le Tribunal des baux du canton de Vaud par demande du 6 octobre 2014. Dans leur dernière teneur, leurs conclusions étaient les suivantes:
I. La clause définissant le poste «Charges (art. 6) » du contrat de bail à loyer est nulle et de nul effet, aucun frais accessoire n'étant facturé aux locataires en sus du loyer mensuel net;
II. Les décomptes de charges des immeubles sis... sont corrigés selon précisions à fournir en cours d'instance;
III. Les montants versés en trop par les locataires depuis le début du bail à titre de charges leur sont restitués par la bailleresse dans les 10 jours dès jugement définitif et exécutoire;
IV. La bailleresse est condamnée à leur payer 13'296 fr. dans les 10 jours dès jugement définitif et exécutoire.
La bailleresse a conclu reconventionnellement à ce que les locataires soient condamnés à lui verser la somme de 1'067 fr. 45, représentant le solde impayé résultant du décompte de charges 2012/2013.
En se référant à l'art. 125 let. a CPC, le Président du Tribunal des baux a limité les débats, dans un premier temps, à l'examen des conclusions I, III et IV de la demande.
B.c. Par jugement du 2 février 2016, le Tribunal des baux a constaté la nullité de la clause 6 du contrat de bail, les locataires n'étant débiteurs - en sus du loyer convenu - d'aucun montant à titre de frais accessoires. Il a condamné la bailleresse à restituer aux locataires la somme de 13'296 fr. à titre de charges et frais accessoires versés en trop pour la période du 1 er octobre 2009 au 31 décembre 2015, toutes autres ou plus amples conclusions étant rejetées.
B.d. Statuant par arrêt du 13 septembre 2016, le Tribunal cantonal vaudois a partiellement admis l'appel déposé par la bailleresse et réformé le jugement précité, en ce sens qu'il a déclaré valable la clause 6.1 relative aux frais de chauffage et de préparation d'eau chaude, la nullité de la clause 6.2 étant en revanche confirmée. Il a annulé le jugement pour le surplus et renvoyé la cause au Tribunal des baux pour nouvelle instruction et jugement, après avoir précisé dans ses considérants que le montant des frais de chauffage et de préparation d'eau chaude était contesté et ne pouvait être établi sur la base des seuls décomptes dressés par la bailleresse.
C.
Les locataires ont interjeté un recours en matière civile au Tribunal fédéral, concluant à ce que la clause 6.1 du contrat de bail soit déclarée nulle à l'instar de la clause 6.2, les locataires n'étant ainsi débiteurs d'aucun montant à titre de frais accessoires. Ils ont en outre requis la restitution de 13'296 fr. à titre de charges et frais accessoires versés en trop pour la période du 1 er octobre 2009 au 31 décembre 2015.
La bailleresse intimée a conclu au rejet du recours. L'autorité précédente s'est référée à son arrêt.

Considérant en droit :
1. 1.1 Le Tribunal fédéral examine d'office et avec une pleine cognition si un recours est recevable (<ref-ruling> consid. 2 p. 59; <ref-ruling> consid. 1 p. 475).
1.1. Déposé dans le délai (art. 100 al. 1 LTF) et la forme (art. 42 LTF) prévus par la loi, contre un arrêt rendu en matière civile (art. 72 al. 1 LTF) par un tribunal supérieur statuant sur recours (art. 75 LTF) dans une cause dont la valeur litigieuse atteint le seuil de 15'000 fr. (art. 74 al. 1 let. a LTF), le recours est recevable au regard de ces dispositions.
1.2. Subsiste la question de savoir si la décision attaquée peut faire l'objet d'un recours au Tribunal fédéral.
1.2.1. Le recours est recevable sans réserve à l'encontre des décisions finales (art. 90 LTF), partielles (art. 91 LTF) ou incidentes en tant qu'elles ont trait à la compétence ou à la récusation (art. 92 LTF). S'agissant des autres décisions incidentes, il ne peut être formé qu'à des conditions très restrictives (art. 93 LTF).
La décision finale met définitivement fin à la procédure, pour un motif de fond ou de procédure (<ref-ruling> consid. 2.2 p. 397). La décision partielle en est une variante: elle statue de manière finale sur un ou plusieurs chefs d'une demande, mais renvoie l'examen d'un ou plusieurs autres chefs à une décision ultérieure (cf. <ref-ruling> consid. 2 p. 789; <ref-ruling> consid. 1.2.1). Il doit s'agir de prétentions distinctes (correspondant généralement à des chefs de conclusions distincts), et non pas seulement de diverses questions de droit matériel se rapportant à la même prétention (respectivement au même chef de conclusion; <ref-ruling> consid. 4.1.2; arrêt 5A_277/2016 du 19 juillet 2016 consid. 1.3).
En l'occurrence, la décision attaquée comporte deux aspects: elle tranche une partie des conclusions en statuant sur la validité de la clause 6 du contrat de bail, et renvoie la cause au Tribunal des baux pour instruction et jugement dans le sens des considérants. Le renvoi est une décision incidente, susceptible de recours immédiat aux conditions strictes de l'art. 93 al. 1 LTF (ATF <ref-ruling> consid. 1.2 p. 216). Le recours vise toutefois uniquement le premier point, plus précisément la validité de la clause 6.1. Se pose la question de savoir s'il s'agit d'une décision partielle telle que la définit l'art. 91 let. a LTF.
1.2.2. L'art. 91 let. a LTF énonce que le recours est recevable contre toute décision qui statue sur un objet dont le sort est indépendant de celui qui reste en cause. Selon la jurisprudence, l'exigence d'indépendance posée par cette disposition - dont la formulation française s'écarte des versions allemande et italienne - implique d'une part de vérifier que la ou les conclusion (s) traitée (s) par la décision partielle aurai (en) t pu donner lieu à un procès séparé. Elle requiert d'autre part que la décision attaquée tranche définitivement une partie du litige, de manière à éviter tout risque que l'arrêt à rendre sur le reste du litige se trouve en contradiction avec la décision partielle déjà entrée en force (ATF <ref-ruling> consid. 1.2.2 et 1.2.3; <ref-ruling> consid. 2.4 p. 398). Il est parfois précisé que la décision partielle ne doit pas représenter une phase préalable nécessaire pour ce qui reste à juger (arrêts 4A_640/2012 du 8 novembre 2012 consid. 2.2.1 et 4A_439/2008 du 12 novembre 2008 consid. 1; BERNARD CORBOZ, in Commentaire de la LTF, 2e éd. 2014, n° 14 ad art. 91 LTF).
Comme exemple de décision partielle sujette à recours, le message du Conseil fédéral cite le cas d'un jugement statuant sur des conclusions en cessation et en interdiction de trouble, tandis que l'examen des conclusions en dommages-intérêts est renvoyé à une décision ultérieure (Message du 28 février 2001 concernant la révision totale de l'organisation judiciaire fédérale, FF 2001 4130). L'autorité de céans a qualifié de décisions partielles au sens de l'art. 91 let. a LTF un jugement rejetant la conclusion principale en élimination d'une situation contraire aux obligations contractuelles, sans trancher la conclusion subsidiaire en dommages-intérêts (ATF <ref-ruling> consid. 1.2), ou encore un arrêt statuant sur une prétention en paiement de loyer à l'exclusion d'une prétention en dommages-intérêts, nonobstant le fait que la partie défenderesse avait invoqué une même créance en compensation de ces deux prétentions (arrêt 4A_611/2014 du 26 février 2015 consid. 1.3.3). En revanche, a été qualifié de décision incidente le jugement rejetant la conclusion principale en annulation d'un congé signifié au locataire, tout en laissant indécis le sort de la conclusion subsidiaire en prolongation de bail; a été mis en exergue le fait que la validité du congé est une question préjudicielle à celle portant sur la prolongation de bail (arrêts 4A_439/2008 précité consid. 1 et 4A_170/2014 du 23 juillet 2014 consid. 1.2 et 1.3).
1.2.3. Au-delà des conclusions formelles prises par les locataires (cf. let. Bb supra), il apparaît que leur demande tend d'une part à obtenir une constatation sur la validité de la clause 6.1/6.2 du contrat relative aux frais accessoires, d'autre part à faire condamner la bailleresse au paiement de 13'296 fr., correspondant aux montants perçus depuis le début du contrat au titre de frais accessoires. Comme fondements de cette prétention pécuniaire entrent en compte non seulement la nullité de la clause mettant de tels frais à leur charge, mais aussi des erreurs dans les décomptes de charges qui contiendraient des anomalies (conclusion II let. Bb supraet all. 19-21 de la demande), ainsi que de soi-disant dysfonctionnements dans la fourniture d'eau chaude et de chauffage (all. 50 ss de la réplique).
A ce stade, la bailleresse ne conteste plus l'intérêt des locataires à intenter une action en constatation de la validité de la clause 6, en sus de l'action en paiement; la première doit en effet permettre de clarifier de façon générale la situation contractuelle relative aux frais accessoires qui surgissent de façon périodique (cf., mutatis mutandis, arrêt 4C.341/2004 du 4 novembre 2004 consid. 2.3 relatif à une augmentation de salaire, et arrêt 5C.7/2004 du 22 avril 2004 consid. 1 concernant des frais de chauffage dans une PPE; cf. aussi <ref-ruling> consid. 2 p. 692 et arrêt 4C.264/1998 du 5 janvier 1999 consid. 3a). Dans ce contexte précis, il semble à première vue que la question tranchée par la décision attaquée aurait pu faire l'objet d'un procès séparé.
Concernant le second aspect de l'indépendance telle que définie par la jurisprudence, il apparaît que la constatation sur la validité de clauses contractuelles a autorité de chose jugée dans des procès ultérieurs visant à obtenir des prestations fondées sur ces clauses (cf. FLAVIA VANESSA WEBER, Die Feststellungsklage nach der Schweizerischen Zivilprozessordnung, 2013, p. 66 s. n. 126). Il n'en demeure pas moins que dans le cas présent, la décision sur la validité des clauses revêt une influence sur la prétention en remboursement des montants versés au titre de frais accessoires. En effet, une constatation de la nullité des clauses 6.1 et 6.2 implique que la conclusion pécuniaire soit allouée dans son entier. En revanche, le sort de cette conclusion est aléatoire si l'on admet la validité d'une ou des deux clauses 6.1 et 6.2; il faut alors examiner si et dans quelle mesure des erreurs de décompte ou dysfonctionnements peuvent entraîner l'obligation de rembourser tout ou partie des frais accessoires perçus sur la base de la ou des deux clause (s) valide (s). Prima facie, l'exigence d'indépendance ne devrait pas aller aussi loin, au regard de l'arrêt précité 4A_611/2014.
Quoi qu'il en soit, la question de savoir si la décision peut être qualifiée de partielle souffre de rester indécise, eu égard au sort du recours (cf. consid. 2 infra).
1.3. Le recours en matière civile peut être exercé pour violation du droit fédéral (art. 95 let. a LTF). Le Tribunal fédéral applique le droit d'office (art. 106 al. 1 LTF) à l'état de fait constaté dans l'arrêt cantonal. Cela n'implique pas qu'il 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 (<ref-ruling> consid. 2 p. 116; <ref-ruling> consid. 2).
1.4. 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» (<ref-ruling> consid. 2 p. 117; <ref-ruling> 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 (<ref-ruling> 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 (<ref-ruling> consid. 1.3.1 p. 18 et les références).
2.
La cour cantonale a jugé que la clause 6.2 du contrat de bail n'était pas suffisamment claire et précise pour justifier l'imputation de frais accessoires aux locataires. Ceux-ci ne pouvaient comprendre quelles prestations seraient effectivement fournies par la bailleresse, puis mises à leur charge à titre de frais d'exploitation; cette clause était intégralement nulle. En revanche, l'intitulé de la clause 6.1, portant le libellé «frais de chauffage et de préparation d'eau chaude», était suffisamment explicite en lui-même. Il importait dès lors peu que l'énumération des frais en question ne soit pas totalement adaptée à l'immeuble concerné. Cette clause était donc valide.
Les recourants contestent le second pan de cette analyse, qui enfreindrait les art. 257a al. 2 et 257b CO. Selon eux, la clause 6.1 serait nulle, faute d'avoir la clarté et la précision voulues. Le litige porte ainsi uniquement sur le point de savoir s'il existe une convention spéciale valable concernant les frais de chauffage et de préparation d'eau chaude.
2.1. Selon l'art. 257a al. 2 CO, les frais accessoires ne sont à la charge du locataire que si cela a été convenu spécialement. L'accord des parties doit être suffisamment précis et détailler les postes effectifs. En concluant le contrat, le locataire doit comprendre facilement quels postes lui seront facturés en plus du loyer (<ref-ruling> consid. 4.3.1). A défaut de convention spéciale, les frais accessoires sont inclus dans le loyer (<ref-ruling> consid. 2a/aa et les références). L'art. 257b al. 1 CO précise que pour les habitations et les locaux commerciaux, on entend par frais accessoires les dépenses effectives du bailleur pour des prestations en rapport avec l'usage de la chose, telles que frais de chauffage, d'eau chaude et autres frais d'exploitation, ainsi que les contributions publiques qui résultent de l'utilisation de la chose.
2.2.
2.2.1. En l'espèce, les parties ont précisé dans le contrat de bail que les locataires assumeraient les frais de chauffage et d'eau chaude selon le système des coûts effectifs (art. 6.1 du contrat), avec versement d'un acompte à valoir sur le décompte final (art. 6.3 du contrat). Vu l'intitulé de la clause en question, à savoir «frais de chauffage et de préparation d'eau chaude», les locataires pouvaient aisément comprendre ce dont il s'agissait, sans qu'il fût nécessaire de détailler spécifiquement ces frais (cf. arrêt 4P.118/2003 du 15 août 2003 consid. 4.3; ISABELLE BIERI, in Droit du bail à loyer et à ferme, Commentaire pratique, 2 e éd. 2017, n° 61 ad art. 257a/257b CO). Il ne s'agit en effet pas d'une notion générique telle qu'un non-juriste ne puisse en saisir les composants, ce qui serait le cas de rubriques toutes générales telles que «frais d'exploitation» ou «acompte frais accessoires» (cf. arrêt 4A_622/2015 du 4 février 2016 consid. 3.3.3).
L'art. 6.1 du contrat comprend une longue énumération des dépenses entrant dans la notion de « frais de chauffage et de préparation d'eau chaude». Celle-ci correspond quasi intégralement aux frais énumérés aux art. 5 al. 2 et 6a de l'ordonnance du 9 mai 1990 sur le bail à loyer et le bail à ferme d'habitations et de locaux commerciaux (OBLF; RS 221.213.11). Il est vrai que certaines de ces dépenses ne concernent pas l'immeuble ici en cause. Il en est ainsi des coûts du chauffage à distance auquel cet immeuble n'est pas relié, des frais d'exploitation d'énergies de substitution, de la révision périodique des réservoirs à mazout, ainsi que des primes d'assurance se rapportant exclusivement à l'installation de chauffage. Les recourants en infèrent que cette clause s'apparenterait à un catalogue standardisé de frais susceptibles d'être mis à leur charge, sans aucune adaptation par rapport au bail litigieux, de sorte qu'elle devrait être déclarée nulle. Certains postes seraient d'ailleurs mentionnés au conditionnel. L'on ne saurait toutefois abonder dans leur sens. En effet, si la référence aux frais de chauffage et de préparation d'eau chaude peut aisément se comprendre sans cette énumération, l'inadéquation de quelques postes de cette rubrique par rapport à l'immeuble dont il est question ne change pas fondamentalement cette perception des choses. En d'autres termes, ce n'est pas parce que le détail des frais de l'art. 6.1 du contrat englobe aussi bien des coûts correspondant à des dépenses effectives du bailleur que des éléments non pertinents, que les locataires auraient été empêchés de comprendre en toute bonne foi que les frais de chauffage et de préparation d'eau chaude étaient mis à leur charge (cf. par analogie arrêt 4A_185/2009 du 28 juillet 2009 consid. 2.4.3).
Le fait qu'une telle énumération ne permette pas de discerner si l'immeuble en cause était pourvu ou non d'une pompe à chaleur, de panneaux solaires ou relié à un chauffage à distance, et que le montant des frais puisse varier considérablement en fonction de ces hypothèses, n'y change rien. Il était loisible aux locataires d'éclaircir d'emblée ce point avec la bailleresse, s'ils l'estimaient nécessaire.
Partant, les parties ont convenu de manière suffisamment claire et précise au sens de l'art. 257a al. 2 CO que les frais de chauffage et de préparation d'eau chaude incombaient aux locataires.
2.2.2. Les recourants invoquent vainement la jurisprudence fédérale pour étayer leur démonstration du contraire. Ainsi, c'est à tort qu'ils se réfèrent à l'arrêt 4C.24/2002 du 29 avril 2002, dont ils voudraient inférer une obligation de préciser dans le contrat de bail le détail des éléments composants les frais de chauffage et de préparation d'eau chaude. Dans l'affaire en question (consid. 2.4), il s'agissait bien plutôt de savoir si les frais de préparation d'eau chaude avaient valablement été mis à la charge du locataire alors qu'ils n'étaient pas mentionnés dans le contrat de bail, lequel faisait exclusivement référence aux frais de chauffage. L'arrêt précité n'a donc pas la portée que lui prêtent les recourants. Il en va de même lorsqu'ils avancent que la clause 6 formerait un tout indivisible et que le Tribunal fédéral se serait prononcé contre l'invalidation partielle d'une clause semblable, dans un arrêt 4P.323/2006 du 21 mars 2007. Quoi qu'ils en disent, la clause litigieuse dans l'affaire en question n'avait rien de similaire, puisque le contrat de bail mentionnait uniquement, sous le titre «Mietzins, Nebenkosten und Zahlungstermine», le versement d'un acompte pour frais d'exploitation sans autre spécification et renvoyait pour le surplus à des conditions générales standardisées dont la jurisprudence fédérale a toujours nié qu'elles constituent telles quelles une convention spéciale au sens de l'art. 257a al. 2 CO (cf. <ref-ruling> consid. 4.3.1 et les références citées); au demeurant, la cour de céans s'est prononcée sur une question factuelle concernant la volonté réelle et concordante des parties de faire assumer les frais accessoires litigieux par les locataires. L'arrêt 4A_622/2015, également cité par les recourants, n'est pas d'avantage pertinent. Certes, la clause contractuelle relative aux frais accessoires était dans cette affaire divisée en deux sous-rubriques, dont l'une était intitulée «chauffage et eau chaude» et l'autre «frais d'exploitation», les deux renvoyant pour le détail à des conditions générales préimprimées. Cela étant, les locataires intimés ne contestaient pas la prise en charge des frais de chauffage et de préparation d'eau chaude, mais tout au plus celle des frais d'exploitation. Les conclusions de cet arrêt valent dès lors uniquement pour cette dernière sous-rubrique, dont le caractère trop générique ne satisfaisait pas à l'exigence d'une convention spéciale au sens de l'art. 257a al. 2 CO.
Quoi qu'en pensent les recourants, il n'y a nulle raison de lier la validité de la clause en question avec le fait qu'un montant d'acompte spécifique soit prévu pour le chauffage et l'eau chaude.
Finalement, l'argument tenant à la contradiction entre la clause 6 et les clauses 7.34 et 7.35 du contrat de bail ne peut d'avantage être accueilli, puisqu'il se fonde sur des faits qui n'ont pas été constatés dans l'arrêt attaqué, sans que les recourants ne se plaignent d'arbitraire à cet égard (cf. art. 105 al. 2 LTF et consid. 1.5 supra).
2.2.3. L'autorité précédente n'a ainsi pas enfreint le droit fédéral en considérant que la clause 6.1 du contrat de bail était valide.
2.3. Les recourants ne formulent pas d'autres griefs contre l'arrêt attaqué, ce qui clôt toute discussion (cf. consid. 1.4 supra).
3.
Il résulte de ce qui précède que le recours doit être rejeté dans la mesure où il est recevable.
Vu l'issue du recours, les frais de la présente procédure seront mis à la charge des recourants, débiteurs solidaires (art. 66 al. 1 et 5 LTF). Ceux-ci verseront en outre à l'intimée une indemnité de 2'500 fr. à titre de dépens (art. 68 al. 1, 2 et 4 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
Les frais judiciaires, arrêtés à 2'000 fr., sont mis à la charge des recourants, solidairement entre eux.
3.
Les recourants, débiteurs solidaires, verseront à 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 d'appel civile du Tribunal cantonal du canton de Vaud.
Lausanne, le 31 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