Faits :
A.
A.a. Par contrat de travail à durée indéterminée, B._ SA (ci-après: l'employeuse) a engagé A._ (ci-après: l'employée) en qualité d'opératrice polyvalente à partir du 1er octobre 2007. La prénommée travaillait déjà comme intérimaire pour cette société depuis octobre 2006.
A.b. Il ressort des évaluations faites par l'employeuse entre 2007 et 2017 que son travail donnait satisfaction dans l'ensemble. Il a cependant été relevé à plusieurs reprises que son attitude au niveau de la communication (écoute, respect de l'autre, attitude constructive, transmission claire et fidèle de l'information) devait être améliorée.
Selon les précisions apportées par deux responsables de l'employée, son comportement était difficile. Elle était revendicatrice et avait des réactions impulsives, à la limite de l'agressivité.
A.c. En juin 2013, l'employée a demandé l'autorisation de porter un voile au travail, sous forme de bandana. Une réponse négative lui a été donnée en septembre 2013.
L'employée a alors adressé un courriel à sa hiérarchie pour lui faire part de sa déception.
A.d. Le 30 mars 2017, une altercation a éclaté au sein de l'atelier entre trois collaboratrices, soit l'employée, C._ et D._.
Cette dispute avait pour origine une remarque faite par l'employée à C._ concernant l'usage d'une soufflette. L'employée et D._ ont violemment agressé la prénommée; elles lui criaient dessus alors que C._ pleurait.
Leur supérieure E._ a déplacé le poste de C._ afin d'éviter les contacts avec l'employée; elle a signifié à cette dernière que son comportement n'était pas tolérable.
A.e. Une deuxième dispute s'est produite sur le lieu de travail le 4 avril 2017, impliquant A._, D._, F._ et C._. L'origine de cette dispute n'est pas claire. L'employée est revenue parler du différend avec C._. Le ton est à nouveau monté. L'employée a « explosé ». C._ a quitté l'atelier en pleurant.
Une séance a eu lieu immédiatement après, entre les protagonistes, leur hiérarchie et les ressources humaines. Il a été signifié aux collaboratrices que leur comportement contraire aux valeurs de l'entreprise n'était pas tolérable et qu'un nouvel incident aurait des conséquences. Pendant la séance, l'employée s'est montrée très agressive, criant et invectivant C._.
Il a été proposé aux quatre collaboratrices de se retrouver dans une salle pour discuter de la séance. Une nouvelle dispute a éclaté, des cris étant perçus.
A.f. C._ s'est trouvée en arrêt maladie dès le lendemain.
Par la suite, la situation s'est apaisée dans l'atelier parce que le différend principal concernait celle-ci et l'employée, et que la première n'était plus là.
A.g. A._ a été licenciée le 19 mai 2017 avec effet au 31 août 2017, au motif qu'elle n'avait pas respecté les valeurs et règles de l'entreprise. Elle a été libérée de son obligation de travailler.
A.h. D._ a été licenciée le même jour. C._ et F._, qui étaient en missions temporaires, ont vu leurs contrats interrompus.
A.i. L'employée a été incapable de travailler pour cause de maladie dès le 19 mai 2017.
A.j. Selon le rapport d'examen établi le 9 novembre 2017 par la Dresse G._ à l'attention de l'assureur de l'employeuse, l'employée traversait un épisode dépressif sévère avec symptômes psychotiques, stupeur dissociative et anorexie mentale atypique. Ce médecin relevait notamment ce qui suit : « l'arrêt d u travail et les entretiens mensuels avec sa psychiatre ainsi que le traitement médicamenteux ont peut-être évité le pire, mais n'ont pas amélioré la sympto matologie, tant la composante obstinée de la personnalité de [ l'employée]empêche toute remise en cause d'elle-même afin de trouver une solution acceptable pour elle et pour [ l'employeuse]. » En raison du risque très grave d'issue fatale documenté par l'anamnèse, par ses deux médecins et par son examen, le pronostic à court terme était engagé. L'employée avait « d écidé de se laisser mourir, tant que sa plainte n' [ était] pas prise en compte par [l'employeuse], plutôt que de se suicider, interdit dans sa religion ». L'employée s'était « t otalement identifiée à B._, elle [ faisait] partie de B._, on [ pouvait] même dire qu'elle ' [était] B._ ', c' [était] sa famille, c' [était] sa vie ». Le rapport suggérait l'hospitalisation de l'employée « au vu du danger vital imminent en raison de sa perte de poids importante, inquiétante et continue », un « suivi psychiatrique et psycho th érapeutique intensif » à sa sortie d'hôpital, une annonce immédiate à l'assurance-invalidité et la « poursuite de l'action judiciaire car seule la Justice pourra [it] lui apporter la réparation narcissique qu'elle attend [ait] ».
B.
B.a. Le 13 décembre 2017, l'employée a assigné l'employeuse en conciliation devant le Tribunal des prud'hommes du canton de Genève. Elle a ensuite déposé une demande concluant notamment au paiement de 37'190 fr. à titre d'indemnité pour licenciement abusif et 25'000 fr. à titre d'indemnité pour tort moral.
Par jugement du 18 juin 2019, le Tribunal prud'homal a rejeté lesdites conclusions. Il a retenu en bref que le motif de licenciement, à savoir les propos agressifs et l'attitude virulente de l'employée les 30 mars et 4 avril 2017, était bien réel. Rien n'indiquait qu'elle avait été licenciée en raison de sa demande de porter le voile, qui datait déjà de 2013. L'employeuse avait pris des mesures adéquates pour apaiser les disputes, tout d'abord en changeant la place de travail de C._, le 30 mars 2017, puis en organisant une réunion avec les intéressées le 4 avril 2017. Quand bien même la proposition faite aux quatre antagonistes de discuter entre elles n'était pas la démarche la plus appropriée, quand bien même aussi un avertissement supplémentaire aurait pu être notifié, cela ne suffisait pas à rendre le licenciement abusif. L'employeuse n'avait pas porté atteinte de manière illicite à la personnalité de l'employée, de sorte qu'elle n'avait pas à lui verser une indemnité pour tort moral.
B.b. Statuant le 9 janvier 2020 sur appel de l'employée, la Cour de justice a confirmé le jugement de première instance. Ses motifs seront évoqués ci-dessous dans la mesure utile à la discussion suscitée par les griefs soulevés dans le présent recours.
C.
L'employée recourt en matière civile au Tribunal fédéral, reprenant principalement les conclusions de sa demande.
Aucun échange d'écritures n'a été ordonné.
Considérant en droit :
1.
Les conditions de recevabilité du recours en matière civile sont réalisées sur le principe, notamment celles afférentes à la valeur litigieuse minimale de 15'000 fr. (art. 74 al. 1 let. a LTF) et au délai de recours (art. 45 al. 1 et art. 100 al. 1 LTF).
2.
2.1. Le recours en matière civile peut être exercé pour violation du droit fédéral (art. 95 let. a LTF), notion qui inclut le droit constitutionnel. Le Tribunal fédéral applique le droit d'office (art. 106 al. 1 LTF). Compte tenu de l'exigence de motivation contenue à l'art. 42 al. 1 et 2 LTF, sous peine d'irrecevabilité (art. 108 al. 1 let. b LTF), il n'examine en principe que les griefs invoqués, sauf en cas d'erreurs juridiques manifestes. Il n'est pas tenu de traiter, comme le ferait une autorité de première instance, toutes les questions juridiques qui se posent, lorsque celles-ci ne sont plus discutées devant lui (ATF 141 III 86 consid. 2; 140 III 115 consid. 2; 137 III 580 consid. 1.3). Par exception à la règle selon laquelle il applique le droit d'office, il n'examine la violation d'un droit constitutionnel que si le grief a été invoqué et motivé de façon détaillée, selon le principe d'allégation (art. 106 al. 2 LTF; ATF 135 III 397 consid. 1.4 in fine).
2.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 d'allégation (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 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).
2.3. La recourante méconnaît ces principes lorsqu'elle avance dans son recours des éléments qui ne ressortent pas de l'arrêt cantonal, sans se prévaloir d'arbitraire. Il en va par exemple ainsi du fait qu'elle se serait « toujours efforcée d'intégrer les nouveaux collaborateurs », de son assertion selon laquelle « les tensions ont commencé avec l'arrivée de Madame C._ au sein de l'équipe de (l'employée), en mars 2017», de ce qu'il serait « clairement démontré par les enquêtes que Madame C._ était la source des problèmes et des deux disputes », ou encore de l'affirmation selon laquelle « la situation au sein de l'équipe s'est apaisée directement après le départ de Madame C._ en arrêt maladie, soit le lendemain de la seconde dispute ». Il ne ressort pas non plus de l'arrêt cantonal que le caractère de C._ fût difficile, ni que la recourante eût « parfois été franche avec sa hiérarchie - ce qui (serait) connu de cette dernière depuis toujours et qui (aurait) toujours été accepté ». Enfin, il n'est pas exact « qu'aucun avertissement formel n'a été donné à la recourante », puisqu'elle a été dûment informée - lors de la séance du 4 avril 2017 - qu'un nouvel épisode ne demeurerait pas sans suite. Il ne sera donc pas tenu compte de ces allégations.
3.
3.1. La Cour de justice a constaté que l'employée avait contribué de manière décisive au déclenchement des violentes disputes des 30 mars et 4 avril 2017, et que son licenciement avait bel et bien été motivé par le comportement adopté à ces occasions. Aucun élément du dossier ne permettait de retenir que le congé aurait été lié à la demande de porter le voile, formulée en 2013.
3.2. La recourante ne remet pas en cause cet état de fait, ce qu'il lui eût été loisible de faire exclusivement sous l'angle de l'arbitraire (art. 9 Cst.). L'adjonction qu'elle prétend apporter à l'issue de son argumentation - qui sera discutée ci-après - voulant qu'elle ait été discriminée dans la mesure où l'employeuse ne lui aurait jamais donné de réponse claire au sujet du port du voile, n'évoque pas cette garantie constitutionnelle et ne répond quoi qu'il en soit pas aux conditions strictes qui prévalent en la matière (consid. 2 supra).
Elle reproche par ailleurs à l'employeuse de n'avoir pas pris toutes les mesures adéquates pour désamorcer le conflit qui l'opposait à C._, ce qui rendrait le congé abusif. Selon elle, aucune solution ne leur aurait été proposée à l'issue de la réunion du 4 avril 2017, hormis celle de discuter entre elles. Il eût appartenu à l'employeuse de mettre en place des mesures de gestion de conflits telles qu'une séparation temporaire des employées ne s'entendant pas, ou une séance de médiation. Elle prétend en outre n'avoir pas eu la moindre occasion de « fournir les efforts nécessaires » puisque la décision d'entamer le processus de licenciement aurait été prise à l'issue de la réunion entre les ressources humaines, la hiérarchie et les employées concernées en date du 4 avril 2017.
3.3. Quoi qu'en pense la recourante, l'employeuse n'a pas failli à ses devoirs. Selon les constatations souveraines de la cour cantonale, elle a pris soin de déplacer C._ de manière à éviter les contacts entre l'employée et celle-ci et, partant, les disputes. Dès la première altercation, l'employée a été prévenue que son comportement n'était pas tolérable. En dépit du fait que C._ ne se trouvait plus à côté d'elle, l'employée a néanmoins pris l'initiative de revenir lui parler de leur différend, provoquant ainsi une nouvelle dispute le 4 avril 2017. L'employeuse a alors organisé une réunion entre les quatre collaboratrices, leur hiérarchie et les ressources humaines, en leur signifiant que leur attitude n'était pas tolérable et qu'un nouvel incident aurait des conséquences. Au cours de celle-ci, il a été constaté que les quatre protagonistes avaient des difficultés à se remettre en question et n'étaient pas preneuses de conseils. A l'issue immédiate de la réunion, une nouvelle dispute a du reste éclaté, fait démontrant que l'employée et ses collègues ne voulaient - ou ne pouvaient - pas modifier leur comportement.
Dans de telles circonstances, et au vu notamment des traits de caractère des quatre intéressées, dont en particulier ceux de l'employée, on ne saurait soutenir que l'employeuse aurait pu ou dû faire davantage. Par ailleurs, l'employée avait eu tout loisir de modifier son comportement. La séance du 4 avril 2017 avec sa hiérarchie aurait dû servir de prise de conscience et l'inciter à adopter une autre attitude. Le fait qu'un nouvel éclat s'en suive entre les employées concernées, juste après cette séance, faisait clairement inférer que les choses n'allaient pas s'améliorer, l'apaisement observé par la suite dans l'atelier n'étant manifestement que provisoire vu l'absence temporaire de C._. C'est là pure logique à laquelle les dénégations de la recourante ne sauraient rien changer.
La recourante reproche encore à l'employeuse d'avoir fait fi de son ancienneté et de la qualité de ses prestations; elle lui fait également grief de lui avoir réservé le même traitement qu'à celui d'une simple intérimaire, faisant certainement référence à C._. Vainement. En effet, il n'appartient pas au juge de se substituer à l'employeur dans le processus de décision qui a conduit à résilier le contrat de travail, lors duquel il a nécessairement soupesé ces aspects; il lui incombe en revanche de déterminer si le congé est abusif. Or, la recourante a échoué à démontrer que les motifs ou la manière dont il a été signifié lui donneraient ce caractère.
Sur la base des faits qui lient la cour de céans, on ne discerne dès lors aucune violation de l'art. 336 CO ni, au demeurant, de l'art. 328 CO dans le raisonnement convainquant mené par l'autorité d'appel.
4.
Partant, le recours doit être rejeté. La recourante supportera dès lors les frais de procédure, fixés selon le tarif ordinaire compte tenu du montant litigieux. Il n'est pas dû de dépens en faveur de son adverse partie qui n'a pas été invitée à se déterminer.
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais de procédure, fixés à 3'000 fr., sont mis à la charge de la recourante.
3.
Le présent arrêt est communiqué aux parties et à la Cour de justice du canton de Genève.
Lausanne, le 17 août 2020
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La présidente : Kiss
La greffière : Monti