Faits :
A.
A.a. La société à responsabilité limitée Z._ Sàrl (ci-après: la demanderesse) est active dans le domaine des travaux du bâtiment; A._ en est l'un des associés gérants. La société anonyme X._ SA (ci-après: la défenderesse) exploite des restaurants à Genève; elle a notamment pour administrateur B._.
Le 15 octobre 2012, la demanderesse a adressé à la défenderesse un "descriptif final" de travaux relatifs à la création d'un restaurant à Genève, devisés à 102'359 fr. hors taxe (HT), respectivement à 110'547 fr. 72 après adjonction de la taxe sur la valeur ajoutée (TVA) s'élevant à 8'188 fr. 72. Ce devis mentionnait divers travaux, notamment de maçonnerie, plâtrerie et peinture, de climatisation et d'électricité, ainsi que la fourniture et la pose de carrelage ou encore l'évacuation de bennes. Chaque poste des travaux était précisément chiffré.
La défenderesse a accepté ce devis. Les parties ont convenu que le paiement des travaux se ferait par acomptes et que le solde dû serait versé à l'achèvement des travaux et à la réception de l'ouvrage.
A.b. Par courrier du 15 octobre 2012, la demanderesse a sollicité le versement d'un premier acompte de 80'000 fr. toutes taxes comprises (TTC), soit 74'074 fr. HT pour ses prestations et 5'925 fr. 92 de TVA.
La défenderesse a versé l'acompte requis le 16 janvier 2013. Une facture ("invoice") datée du même jour a été établie; elle reprend le descriptif des travaux figurant dans le devis du 15 octobre 2012 et les mêmes montants, pour un total de 102'359 fr. hors TVA, laquelle n'est pas mentionnée. Sur ce document figure la mention manuscrite « reçus ce jour quatre vingt mille solde 22'359 CHF » et une signature illisible, vraisemblablement celle de l'associé gérant A._.
A.c. Les travaux ont débuté au mois d'octobre 2012 et ont été achevés au plus tard au début de l'année 2013.
Le 20 mars 2013, la demanderesse a facturé à la défenderesse un solde de 30'547 fr. 80 TTC qu'elle justifiait de la façon suivante: 102'359 fr. HT sous déduction de l'acompte de 74'074 fr. HT = 28'285 fr. HT majoré d'une TVA de 2'262 fr. 80.
Par courriers des 2 et 25 avril 2013, la demanderesse a imparti à la défenderesse un délai au 5 avril 2013, respectivement au 29 avril 2013, pour verser la somme de 30'547 fr. 80. Le 3 mai 2013, elle a fait notifier une poursuite portant sur ce même montant à la défenderesse, qui a fait opposition.
A.d. Par lettre du 14 mai 2013, la défenderesse a informé la demanderesse de ce qu'elle avait mandaté un architecte pour faire constater les défauts affectant les travaux réalisés. Elle signalait d'ores et déjà un trou d'environ 25 centimètres sur la façade de l'immeuble, le non-fonctionnement de l'air conditionné ainsi que des dalles mal posées ou cassées.
La demanderesse a contesté toute responsabilité en relation avec les défauts énumérés, respectivement a relevé la tardiveté de leur annonce.
Le 22 juillet 2013, la défenderesse a répondu qu'elle avait déjà signalé les malfaçons, notamment le carrelage cassé, à l'associé gérant de la demanderesse à la fin de l'année 2012.
A.e. Le 17 juin 2013, un bureau d'architectes mandaté par la défenderesse a établi un rapport sur les locaux du restaurant. Il en ressort en substance que le carrelage posé au sol présentait de nombreux points d'accroche très gênants au déplacement, signe que les carreaux avaient été posés sans aucun contrôle des niveaux. Par ailleurs, le carrelage sonnait creux à certains endroits, ce qui laissait supposer que le mortier-colle n'avait pas été réparti de façon uniforme sur le support. L'épaisseur de colle ne correspondait pas à celle d'un double encollage, procédé pourtant indispensable pour la mise en place de carreaux de grand format. Sur certaines marches, des carreaux étaient cassés et recollés; sur un carreau, des trous pour la fixation de la main courante étaient visibles. Les profils d'angle des marches étaient en mauvais état et le choix d'un profil en aluminium n'était pas la solution la plus adéquate. Les joints entre les carrelages étaient irréguliers, voire absents par endroits, ce qui risquait de provoquer la fissure ou la cassure des carreaux. Il manquait une plaque de fermeture d'environ 10 cm de largeur sur le faux-plafond, ce qui était susceptible de poser un problème avec le service d'hygiène. Une plaque était déformée et dans les angles en saillie, les profils de fixation n'avaient pas été découpés en biais. La climatisation installée n'avait pas été mise en service et les télécommandes n'avaient pas été livrées. Le rapport évaluait à 61'673 fr. 40 TTC les travaux de réfection, qui nécessiteraient la fermeture du restaurant pendant une période d'environ deux mois.
B.
B.a. Le 1 er octobre 2013, la demanderesse a actionné la défenderesse devant le Tribunal de première instance du canton de Genève (ci-après: le Tribunal) en concluant au paiement de 30'547 fr. 80 plus intérêts et à la mainlevée définitive de l'opposition formée dans la poursuite en cours.
B.b. Entendu comme témoin, C._, responsable du personnel au sein de la défenderesse jusqu'au mois d'août 2014, a déclaré être intervenu ponctuellement au restaurant. Il a confirmé qu'il y avait eu passablement de problèmes durant lesdits travaux, notamment avec le carrelage qui était mal fait ou, pour être plus précis, n'était pas terminé. Il manquait du carrelage sur les murs, nonobstant les exigences du service d'hygiène, et un tube de chauffage pendait au plafond. Les problèmes avaient été annoncés à l'associé gérant A._. Le témoin, présent à l'ouverture du restaurant, avait personnellement annoncé nombre de ces problèmes à ce moment-là. L'associé gérant de la demanderesse n'avait pas immédiatement réagi. Plus tard, il avait envoyé un premier ouvrier qui n'avait pas voulu exécuter les travaux en faisant valoir qu'il n'avait pas été payé. Un second ouvrier avait été dépêché mais n'avait rien fait, de sorte que les défauts n'avaient pas été corrigés. A._ avait été contacté et il lui avait été demandé de terminer les travaux. Il avait eu une discussion assez animée avec B._, administrateur de la défenderesse, ce dernier exigeant que les travaux soient achevés tandis que le premier demandait à être payé. Le représentant de la demanderesse contestait la responsabilité de son entreprise relativement à certains défauts et cherchait des excuses.
B.c. Le Tribunal a également entendu les représentants des parties.
L'associé gérant A._ a contesté avoir été informé de l'existence de défauts; à aucun moment la défenderesse ne lui avait demandé de procéder à des réparations ou ne lui avait fixé un délai pour y procéder.
L'administrateur Lee a pour sa part affirmé avoir personnellement signalé les défauts à l'associé gérant de la demanderesse aussitôt qu'il les constatait.
B.d. Par jugement du 10 juin 2015, le Tribunal a condamné la défenderesse au paiement de 30'547 fr. 80 plus intérêts et a prononcé à due concurrence la mainlevée définitive de l'opposition formée dans la poursuite en cours.
Le Tribunal a retenu en bref que les parties étaient liées par un contrat d'entreprise et que la livraison des travaux était intervenue en décembre 2012, compte tenu du fait que l'exploitation du restaurant avait débuté en janvier 2013 et qu'un acompte de 80'000 fr. avait été payé le 16 janvier 2013. Le Tribunal a ensuite retenu que la défenderesse avait donné pour la première fois un avis motivé et précis des défauts de l'ouvrage le 14 mai 2013 et que cet avis était tardif; si la défenderesse alléguait avoir immédiatement avisé oralement la partie adverse de chaque défaut constaté, elle ne prétendait pas avoir motivé ces avis en fait ni avoir indiqué exactement quels étaient les défauts incriminés. On ignorait d'ailleurs quels défauts la défenderesse avait constatés, dont elle aurait tenu la partie adverse pour responsable.
B.e. Par arrêt du 11 mars 2016, la Chambre civile de la Cour de justice du canton de Genève a rejeté l'appel formé par la défenderesse.
C.
La défenderesse a saisi le Tribunal fédéral d'un recours en matière civile visant à faire constater qu'elle a donné valablement l'avis des défauts visibles et cachés, respectivement qu'elle doit à la demanderesse un solde de 22'359 fr. TTC et non de 30'457 fr. [recte: 30'547 fr.], sous réserve de la moins-value de l'ouvrage qu'il appartiendra à la cour cantonale de fixer.
La demanderesse a conclu au rejet du recours. L'autorité précédente s'est référée aux considérants de son arrêt.
Par acte du 11 mai 2016, la défenderesse a déclaré retirer la pièce 7 produite à l'appui de son recours ainsi que les développements y afférents se trouvant dans ledit recours. Elle a déposé ultérieurement une réplique.
Par ordonnance du 9 juin 2016, la Présidente de la cour de céans a admis la requête d'effet suspensif présentée à l'appui du recours.
Considérant en droit :
1.
1.1. Déposé en temps utile (art. 46 al. 1 et art. 100 al. 1 LTF) par la défenderesse qui a succombé dans ses conclusions (art. 76 al. 1 LTF) et dirigé contre un arrêt final (art. 90 LTF) rendu sur recours par le tribunal supérieur du canton (art. 75 LTF) dans une contestation civile pécuniaire dont la valeur litigieuse excède 30'000 fr. (art. 72 al. 1 et 74 al. 1 let. b LTF), le recours en matière civile est recevable sur le principe.
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). Relèvent de ces faits tant les constatations relatives aux circonstances touchant l'objet du litige que celles concernant le déroulement de la procédure conduite devant l'instance précédente et en première instance, c'est-à-dire les constatations ayant trait aux faits procéduraux (ATF 140 III 16 consid. 1.3.1 et les références). Le Tribunal fédéral 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).
L'appréciation des preuves est arbitraire lorsque le juge s'est manifestement mépris sur le sens et la portée d'un moyen de preuve, lorsqu'il a omis, sans raison sérieuse, de tenir compte d'un moyen important propre à modifier la décision attaquée, ou encore lorsqu'il a tiré des déductions insoutenables à partir des éléments recueillis (ATF 137 III 226 consid. 4.2; 136 III 552 consid. 4.2).
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). Si la critique ne satisfait pas à ces exigences, les allégations relatives à un état de fait qui s'écarterait de celui de la décision attaquée ne pourront pas être prises en considération (ATF 140 III 16 consid. 1.3.1 p. 18).
1.3. Le Tribunal fédéral applique d'office le droit à l'état de fait constaté dans l'arrêt cantonal (art. 106 al. 1 LTF). Cela ne signifie toutefois pas qu'il examine, à l'instar d'un juge de première instance, toutes les questions juridiques qui pourraient se poser. Compte tenu de 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.4. Aucun fait nouveau ni preuve nouvelle ne peut être présenté, à moins de résulter de la décision de l'autorité précédente (art. 99 al. 1 LTF). Cette exception vise les faits qui sont rendus pertinents pour la première fois par la décision attaquée; peuvent notamment être introduits des faits nouveaux concernant le déroulement de la procédure devant l'instance précédente, afin d'en contester la régularité, ou encore des faits postérieurs à l'arrêt attaqué permettant d'établir la recevabilité du recours. En dehors de ces cas, les nova ne sont pas admissibles, qu'il s'agisse de faits ou moyens de preuve survenus postérieurement à la décision attaquée, ou d'éléments que les parties ont négligé de présenter aux autorités cantonales (ATF 139 III 120 consid. 3.1.2; 136 III 123 consid. 4.4.3).
2.
2.1. La défenderesse reproche aux juges cantonaux d'avoir opéré une constatation manifestement inexacte des faits et d'avoir violé le droit fédéral - par une mauvaise application des art. 18, 367 et 370 CO ainsi que des art. 150 al. 1 et 222 al. 2 CPC - en retenant qu'elle n'avait pas prouvé avoir donné l'avis des défauts apparents en temps utile et de manière suffisamment précise, respectivement qu'elle n'avait pas démontré avoir signalé les défauts cachés recensés dans le rapport d'architecte du 17 juin 2013 dès réception dudit rapport.
2.2. Le Code des obligations prévoit qu'après la livraison de l'ouvrage, le maître doit en vérifier l'état aussitôt qu'il le peut d'après la marche habituelle des affaires, et en signaler les défauts à l'entrepreneur, s'il y a lieu (art. 367 al. 1 CO). Si les défauts ne se manifestent que plus tard, le maître doit les signaler aussitôt qu'il en a connaissance (art. 370 al. 3 CO).
L'ouvrage livré est défectueux lorsqu'il diverge du contrat, ne possède pas les qualités promises ou les qualités auxquelles le maître pouvait s'attendre d'après les règles de la bonne foi (ATF 114 II 239 consid. 5a/aa; arrêt 4A 261/2015 du 30 octobre 2015 consid. 4.3). L'ouvrage doit être dépourvu de défauts au moment de la livraison; l'entrepreneur ne répond en principe pas de l'usure normale de l'ouvrage découlant de l'utilisation prévue (GAUCH, Der Werkvertrag, 5 e éd. 2011, n° 1451 ss et TERCIER/FAVRE, Les contrats spéciaux, 4 e éd. 2009, n° 4478 s., tous deux cités dans l'arrêt 4A_460/2009 du 4 décembre 2009 consid. 3.1.1).
L'omission de vérifier l'ouvrage et d'aviser l'entrepreneur (art. 370 al. 2 CO), respectivement d'aviser immédiatement l'entrepreneur en cas de défaut caché (art. 370 al. 3 CO), entraîne dans l'un et l'autre cas une présomption irréfragable d'acceptation de l'ouvrage avec ses défauts. L'acceptation de l'ouvrage implique que l'entrepreneur est déchargé de toute responsabilité (art. 370 al. 1 CO), tandis que les droits du maître découlant de la garantie des défauts sont périmés (arrêt 4C.421/2006 du 4 avril 2007 consid. 5.2).
Même si l'art. 367 al. 1 CO ne le dit pas expressément, l'avis des défauts apparents doit être donné aussitôt après leur découverte, c'est-à-dire sans délai (unverzüglich), à l'instar de la réglementation sur l'avis des défauts cachés (cf. aussi art. 201 al. 1 i.f. CO; arrêt 4A_55/2012 du 31 juillet 2012 consid. 6.1; CHAIX, in Commentaire romand, 2 e éd. 2012, n os 22 à 24 ad art. 367 CO et n° 16 ad art. 370 CO; GAUCH, op. cit., n° 2141). Cela n'exclut pas que le maître prenne un bref délai de réflexion après la découverte du défaut, mais il doit se décider rapidement. Les circonstances du cas concret sont déterminantes pour apprécier si le maître a agi en temps utile (ATF 118 II 142 consid. 3b p. 148; arrêt 4A_202/2012 du 12 juillet 2012 consid. 3.1; GAUCH, ibidem).
L'avis des défauts n'est soumis à aucune exigence de forme particulière. Il doit toutefois indiquer précisément quels défauts sont découverts et exprimer l'idée que la prestation est jugée non conforme au contrat, respectivement que le maître tient l'entrepreneur pour responsable des défauts constatés (ATF 107 II 172 consid. 1a p. 175; arrêt 4A_643/2014 du 25 novembre 2015 consid. 3.2; arrêt 4D_25/2010 du 29 juin 2010 consid. 3).
Dans la mesure où le maître de l'ouvrage entend déduire des droits en garantie, il doit établir qu'il a donné l'avis des défauts en temps utile. La charge de la preuve s'étend donc également au moment où il a eu connaissance des défauts ainsi qu'au contenu de l'avis (ATF 118 II 142 consid. 3a p. 147; 107 II 172 consid. 1a i.f. p. 176; arrêt précité 4A_202/2012 consid. 3.1).
Déterminer le contenu des déclarations du maître quant aux défauts constatés et le moment où elles ont été émises est une question de fait. En revanche, savoir s'il a agi en temps utile et exprimé clairement quels éléments de l'ouvrage il jugeait défectueux, et s'il a ainsi sauvegardé ses droits à la garantie, est une question de droit.
2.3. S'agissant tout d'abord des défauts apparents, l'arrêt attaqué constate que la défenderesse n'a pas établi les avoir signalés oralement de manière suffisamment précise en temps utile, c'est-à-dire immédiatement après la livraison de l'ouvrage, dont il n'est désormais plus contesté qu'elle est intervenue au plus tard au début de l'année 2013. La lettre du 14 mai 2013 a été jugée tardive.
2.3.1. Contestant l'appréciation des preuves opérée par la Cour de justice, la défenderesse soutient d'abord que son administrateur aurait signalé les défauts apparents - en particulier les défauts affectant le carrelage - à l'associé gérant de la demanderesse immédiatement après la fin des travaux.
Les juges cantonaux ont considéré que les déclarations de B._ étaient celles d'une partie puisqu'il exerçait la fonction d'administrateur de la défenderesse et en était ainsi le représentant (art. 718 al. 1 CO). Or, ces déclarations s'opposaient à celles de l'associé gérant de la demanderesse A._ et n'étaient dès lors pas probantes, d'autant moins qu'elles manquaient de précision quant aux défauts prétendument signalés et quant à la date de ces avis.
La défenderesse ne démontre nullement en quoi cette appréciation serait arbitraire. Elle se contente de se référer aux déclarations de son administrateur, selon lesquelles l'employé C._ lui avait « signalé certains défauts, notamment dans les escaliers », à la suite de quoi il avait lui-même demandé à l'associé gérant de la demanderesse de « réparer ces défauts de carrelage » (procès-verbal de l'audience du 20 avril 2015, p. 9).
2.3.2. La défenderesse invoque ensuite les déclarations de son employé C._, selon lesquelles il avait été « très présent à l'ouverture d[u] restaurant » et avait pu constater « passablement de problèmes durant les travaux », notamment « un problème avec le carrelage qui était mal fait, pour être plus précis qui n'était pas terminé », l'absence de « carrelage sur les murs, exigé par le service d'hygiène », « un trou à l'arrière du restaurant, qui n'était pas bouché », l'employé disant avoir annoncé lui-même « nombre de ces problèmes » au représentant de la demanderesse « dès le début, à l'ouverture » (procès-verbal de l'audience du 26 janvier 2015, p. 4).
La cour cantonale a dûment examiné ce témoignage pour arriver à la conclusion que l'employé C._ n'avait pas fait état de dalles cassées ni d'un problème de niveau concernant les carreaux posés au sol, de sorte que l'on ne pouvait pas considérer que ces défauts avaient été signalés. Quant à l'absence de carrelage sur les murs et au trou en façade, le témoin n'avait pas été en mesure d'indiquer à quel moment, dans quelles circonstances et avec quel degré de précision les avis y relatifs avaient été donnés à la demanderesse. Le témoin avait aussi fait état de discussions entre les représentants des parties sur la question des travaux. Une fois de plus, le témoignage était trop imprécis quant à la date de l'entretien et à son contenu pour que l'on puisse en déduire qu'un avis des défauts conforme aux exigences légales avait été donné après la livraison de l'ouvrage. Force est de constater, à la lecture du témoignage en question, que cette conclusion échappe au grief d'arbitraire, respectivement de violation des art. 367 al. 1 et 370 al. 2 CO.
2.3.3. Le témoin C._ a encore déclaré que l'associé gérant A._ n'avait pas immédiatement réagi, mais avait ensuite envoyé successivement deux ouvriers, le premier n'ayant pas voulu exécuter les travaux au motif qu'il n'avait pas été payé tandis que le second n'avait rien fait (procès-verbal de l'audience du 26 janvier 2015, p. 5). N'en déplaise à la défenderesse, ces propos ne permettent nullement de constater quels défauts la demanderesse aurait implicitement reconnus comme signalés en temps utile du fait qu'elle avait envoyé des ouvriers pour exécuter des travaux. De même, la Cour de justice pouvait, sans arbitraire et sans enfreindre les dispositions précitées, considérer que la déclaration du témoin C._ selon laquelle A._ « contestait la responsabilité de certains défauts » (cf. procès-verbal précité, p. 7) ne permettait pas de retenir que l'avis des défauts aurait été donné avec une précision suffisante au motif que seuls certains défauts étaient contestés. Encore une fois, on ignore quels défauts ont été annoncés à quel moment et quels défauts ont été contestés.
2.3.4. Enfin, la défenderesse invoque vainement le fait que la demanderesse a envoyé sa facture finale le 20 mars 2013 plutôt que le 16 janvier 2013, date à laquelle les parties, immédiatement après la mise en service du restaurant, avaient établi un document attestant du versement d'un acompte de 80'000 fr. par la défenderesse, laissant subsister un solde de 22'359 fr. Rien n'indique que ce solde aurait été « retenu par le maître de l'ouvrage dans l'attente de la réparation des travaux annoncés », comme le soutient la défenderesse.
2.3.5. Au vu de ce qui précède, c'est sans arbitraire que les juges cantonaux ont établi les faits pertinents quant au signalement des défauts, respectivement sans violer les art. 367 al. 1 et 370 al. 2 CO que les juges ont nié l'existence d'un avis des défauts apparents formulé en temps utile de façon à sauvegarder les droits de la défenderesse à la garantie.
2.4.
2.4.1. Concernant ensuite les défauts cachés relevés dans le rapport d'architecte du 17 juin 2013, les juges cantonaux ont considéré que la défenderesse n'avait pas établi les avoir signalés à la demanderesse oralement ou par écrit dès réception dudit rapport; en effet, aucune pièce attestant d'un tel avis n'avait été versée à la procédure et aucune déclaration des témoins n'avait porté sur ce point.
2.4.2. A titre liminaire, il faut préciser qu'il n'est pas établi que la défenderesse ait transmis le rapport d'architecte du 17 juin 2013 à la demanderesse dès sa réception. La défenderesse a produit pour la première fois devant le Tribunal fédéral une pièce destinée à prouver cet envoi, mais elle a ensuite déclaré retirer cette pièce ainsi que les développements y afférents de son recours (courrier du 11 mai 2016).
2.4.3. Invoquant les art. 150 al. 1 et 222 al. 2 CPC, la défenderesse plaide que la question de la communication du rapport d'architecte à la demanderesse - rapport concluant à l'existence de défauts cachés dont la défenderesse ne pouvait avoir connaissance auparavant -, voire de la tardiveté de cette communication, ne faisait pas partie du débat probatoire dans la mesure où la demanderesse n'avait pas contesté les allégués topiques.
Comme cela vient d'être rappelé (cf. consid. 2.2. supra), le maître de l'ouvrage qui entend déduire des droits en garantie doit établir qu'il a donné l'avis des défauts et l'a fait en temps utile, la charge de la preuve s'étendant également au moment où il a eu connaissance des défauts ainsi qu'au contenu de l'avis. Certes, les faits dûment allégués par une partie et non contestés par l'autre partie n'ont pas à être prouvés (art. 150 al. 1 CPC; arrêt 4A_146/2015 du 19 août 2015 consid. 4.3). En l'espèce toutefois, les allégués 33 et 34 de la réponse du 13 mai 2014, auxquels la défenderesse se réfère à l'appui de son grief, ne font nullement état d'un avis des défauts cachés à réception du rapport d'architecte du 17 juin 2013; la défenderesse y allègue simplement avoir demandé à un bureau d'architectes d'effectuer un rapport d'expertise du restaurant compte tenu des problèmes rencontrés avec la demanderesse, précisant que ces architectes ont également procédé à l'estimation sommaire du coût des réparations. On ne voit dès lors pas que les juges cantonaux auraient dû retenir comme élément non contesté le fait que l'avis des défauts révélés par le rapport du 17 juin 2013 avait été donné immédiatement après la réception de ce rapport.
Pour le surplus, la défenderesse se prévaut d'une pièce du dossier cantonal qu'elle ne rattache toutefois à aucun allégué (cf. arrêt 4A_456/2015 du 6 juin 2016 consid. 4, destiné à la publication); par surabondance, il ne serait pas arbitraire de tenir comme non prouvée la communication d'un rapport dont l'envoi a simplement été annoncé dans un courrier antérieur à l'établissement du rapport.
Le recours se révèle également mal fondé sur ce point.
3.
3.1. Dans un dernier grief, la défenderesse conteste le montant de 30'547 fr. 80 alloué à la demanderesse à titre de solde dû pour les travaux effectués. De son point de vue, il aurait fallu prendre en considération le montant de 22'359 fr. dont faisait état le solde de compte établi le 16 janvier 2013; une interprétation correcte des déclarations des parties selon le principe de la confiance (sur ce principe, cf. par ex. ATF 135 III 295 consid. 5.2 p. 302) ne permettrait pas d'aboutir à une autre conclusion.
3.2. Ce grief tombe à faux. En effet, il est constant que le prix des travaux confiés à la demanderesse, tel que devisé et accepté, s'élevait à 102'359 fr. plus 8'188 fr. 72 de TVA, soit au total 110'547 fr. 72, montants qui résultent explicitement du devis du 15 octobre 2012. A cette même date, la demanderesse a sollicité de la défenderesse le versement d'un premier acompte de 80'000 fr. TTC, en indiquant que ce montant comprenait 74'074 fr. HT pour ses prestations et 5'925 fr. 92 de TVA. Le 16 janvier 2013, la défenderesse a versé un acompte de 80'000 fr. à la demanderesse, laquelle a indiqué, sur le document reprenant le descriptif du 15 octobre 2012, un solde dû de 22'359 fr. Cette pièce ne mentionne toutefois que les prix hors taxe. La défenderesse ne pouvait par conséquent pas, de bonne foi, comprendre que le solde restant dû incluait la taxe sur la valeur ajoutée, dont elle ne conteste pas qu'elle soit due. La somme de 22'359 fr. correspondait dès lors au solde dû sur le montant des travaux hors TVA. Comme l'ont relevé à raison les juges cantonaux, il importe peu que la demanderesse ait, par erreur, porté l'acompte de 80'000 fr. en déduction du montant des travaux hors TVA alors que dans son courrier du 15 octobre 2012, elle avait ventilé cette somme entre les travaux et la TVA. Cet élément est en effet sans conséquence dans la mesure où la défenderesse ne pouvait ignorer que sur des travaux d'un montant total de 102'359 fr. HT, elle devait acquitter une taxe sur la valeur ajoutée de 8'188 fr. 72, qui figurait d'ailleurs sur le devis initial. Par ailleurs, le fait que le document du 16 janvier 2013 ait été établi au moment de la livraison de l'ouvrage ne permettait pas à la défenderesse de croire de bonne foi que, par la mention d'un solde dû de 22'359 fr., la demanderesse abandonnait un montant de 8'188 fr. 72 correspondant à la TVA.
4.
Il résulte de ce qui précède que le recours doit être entièrement rejeté.
Vu l'issue du recours, les frais de la présente procédure seront mis à la charge de la défenderesse (art. 66 al. 1 LTF), qui versera en outre à la demanderesse une indemnité de 2'500 fr. à titre de dépens (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 défenderesse.
3.
La défenderesse versera à la demanderesse une indemnité de 2'500 fr. à titre de dépens.
4.
Le présent arrêt est communiqué aux mandataires des parties et à la Chambre civile de la Cour de justice du canton de Genève.
Lausanne, le 12 juillet 2016
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente: Kiss
La Greffière: Monti