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.