Faits :
A.
A.a. X._ et Y._ se sont attachés à développer le quartier précédemment occupé par.... Le service S._, dirigé par C._, a établi une étude préliminaire et développé la phase provisoire du projet intitulé Z._, avant que soit constituée en février 2014 une société anonyme Z._ SA dont le capital-actions est partagé entre X._ et Y._ à raison de 50 % chacun.
A._ a travaillé sur ce projet dès le 15 avril 2012, initialement comme employée de X._. Dès le 1 er novembre 2014, elle a été engagée par la société anonyme précitée en qualité de responsable... pour un salaire annuel brut de 153'000 fr. C._, qui était son supérieur hiérarchique, a assumé la direction de la société par interim jusqu'à l'arrivée d'un nouveau directeur dénommé D._, le 1 er décembre 2014.
A._ a connu des difficulté relationnelles avec celui-ci.
Du 11 février au 1 er mars 2015, elle a été en incapacité de travail.
Le conseil d'administration de la société employeuse a été informé du conflit interpersonnel à la fin du mois de février 2015.
Le 28 février 2015, E._, subalterne directe de A._, a adressé à l'administrateur F._ un résumé des propos qu'elle avait tenus lors de leur entretien du 25 février 2015. Elle y évoquait la gestion rigide et exagérément structurée du nouveau directeur, qui mécontentait les locataires du site et l'équipe de Z._, ainsi que son comportement disproportionné, méprisant et blessant, ses critiques permanentes et ses allusions injustifiées sur la qualité du travail, qui instauraient un climat de méfiance. Cette employée occupée à moins de 50% a quitté la société au début du mois de mars 2015 en raison de la mauvaise ambiance qui y régnait.
Le président du conseil d'administration G._ a organisé une première séance de gestion de conflit réunissant A._ et D._ le 5 mars 2015; ceux-ci ont dit vouloir aller de l'avant et trouver des solutions pour garantir une collaboration efficace. Il a été décidé de refaire le point un mois plus tard, G._ ayant demandé à être informé d'un éventuel problème dans l'intervalle.
La seconde séance s'est tenue le 22 avril 2015. Des reproches ont été formulés de part et d'autre, A._ dépeignant D._ comme un être despotique et très dur, jamais satisfait de son travail, tandis que celui-ci lui faisait grief de ne pas respecter son autorité de directeur, de lui refuser par exemple la relecture de procès-verbaux et de ne pas lui fournir des informations suffisantes.
Le lendemain, l'employée s'est adressée à G._ en indiquant qu'elle était "encore sous le choc" de cette séance et ne comprenait pas pour quelle raison il était à ce point fâché contre elle. Elle demandait l'intervention d'un médiateur neutre et externe. Elle a réitéré cette proposition le 4 mai 2015 sous la plume de son avocate, dans une notice consacrée au différend qui l'opposait au directeur, dans laquelle elle se plaignait de ses méthodes managériales.
L'employeuse a mandaté M._ en qualité d'expert externe. Evoquant l'apparition de tensions et conflits entre différentes personnes actives en son sein, elle a invité le médiateur à se faire une idée de la situation, à identifier les origines de ces tensions et à soumettre une analyse ainsi qu'une recommandation au président du conseil d'administration. Le prénommé a débuté sa mission le 4 mai 2015.
Un contrat de travail a été transmis à A._. Selon le courrier d'accompagnement du 13 mai 2015 revêtu des signatures de G._ et D._, cette démarche visait à "formaliser" les rapports de travail ayant débuté le 1 er novembre 2014 et intervenait "suite à la modification d[u] cahier des charges" de la prénommée.
A.b. Le médiateur a rendu son rapport le 23 mai 2015. A l'issue de son tour d'horizon, il avait pu constater des différences de perspectives ainsi qu'une ambivalence entre la volonté politique des actionnaires et la gouvernance d'une société privée à but lucratif. La situation s'était aggravée après l'entrée en fonction du nouveau directeur, dont le comportement provoquait des réactions négatives aussi bien à l'extérieur qu'à l'intérieur; il s'agissait du problème le plus important. Le malaise existant était dû à un cumul de conflits que le "système" ne parvenait pas à résoudre depuis janvier/février 2015, en raison des perceptions différentes émanant des personnes clés du "système". Le médiateur préconisait une action rapide pour rattraper les décisions en retard et éviter une détérioration supplémentaire. Il convenait de renforcer le rôle du conseil d'administration dans la gestion stratégique de la société.
D._ était décrit comme une personne arrogante, maîtrisant mal les situations complexes et ayant des problèmes relationnels. Ses capacités managériales étaient mises en cause. Le médiateur préconisait son licenciement assorti d'une libération immédiate de son obligation de travailler.
A._ était qualifiée de très émotionnelle; elle maîtrisait son métier et s'identifiait à Z._. Toutefois, son poste constituait une solution coûteuse pour les fonctions en cause, alors qu'il convenait de limiter les frais fixes et de gagner en flexibilité (taux d'occupation, honoraires). Le médiateur recommandait de résilier son contrat de travail et de lui offrir un mandat d'environ 50 % dès la fin dudit contrat.
Finalement, le médiateur conseillait l'exécution immédiate de ses conseils pour ne pas encourir une détérioration supplémentaire de la situation.
A.c. D._ a été licencié le 26 mai 2015 tout en étant libéré immédiatement de l'obligation de travailler.
Quant à A._, son sort a été scellé lors d'une séance du 17 juin 2015, au cours de laquelle quatre membres du conseil d'administration - dont G._ et Y._ représentant 50% des actionnaires - ont unanimement décidé de résilier son contrat sans lui proposer un mandat sporadique en qualité d'indépendante. Le procès-verbal fait état de raisons structurelles et économiques.
Sans explications préalables, le licenciement a été signifié le 19 juin 2015 pour le 30 septembre 2015, compte tenu d'un délai de congé conventionnel de trois mois. Le motif invoqué était la suppression du poste de l'intéressée, laquelle a été immédiatement dispensée de travailler. A ce moment-là, elle veillait son mari qui se trouvait à l'hôpital dans un état critique, au su de l'employeuse.
Par courrier des 19 et 29 juin 2015, l'employée a contesté son licenciement et le motif invoqué. Elle a dénoncé un congé-représailles consécutif au signalement de graves dysfonctionnements dans le management de la société et s'est plainte du mobbing subi, que l'employeuse n'avait pas empêché.
A.d. Après l'incapacité de travail précitée (let. A.a supra), l'employée a connu une nouvelle période d'incapacité du 21 juillet au 30 septembre 2015. Ses médecins traitants ont attesté d'un état anxio-dépressif lié aux conflits sur son lieu de travail (cf. infra consid. 4.3.6 et 6.4).
B.
B.a. L'employée a initié une procédure de conciliation le 15 juillet 2015 devant le Tribunal des prud'hommes de l'arrondissement de la Sarine. Au bénéfice d'une autorisation de procéder, elle a déposé sa demande le 23 septembre 2015. Selon ses dernières conclusions, elle prétendait à une indemnisation totale de 153'000 fr. fondée sur les art. 49, 328 et 336a CO, ainsi qu'au montant de 25'500 fr. correspondant aux salaires des mois de novembre et décembre 2015. Elle a en outre requis la délivrance d'un certificat de travail contenant des indications précises.
Le Tribunal prud'homal a auditionné la demanderesse, les administrateurs G._ (en qualité de partie) et H._ (en tant que témoin, celui-ci ayant démissionné en octobre 2015), le directeur de S._ C._, tout comme les ex-collaboratrices E._ et I._ (laquelle avait également démissionné en raison de la mauvaise ambiance de travail). Il a rejeté la réquisition de la demanderesse tendant à l'audition du médiateur M._, dont le rapport a finalement été versé au dossier.
Par jugement du 11 janvier 2018, le Tribunal des prud'hommes a intégralement rejeté la demande. Il a mis les frais judiciaires à la charge de l'employée et a renvoyé chaque partie à supporter ses dépens. En bref, il a estimé qu'il se trouvait en présence d'un conflit relationnel entre deux collègues de travail; cette situation avait duré moins de six mois. Dans ces circonstances, il n'était pas possible de retenir un mobbing. Finalement, l'employeuse avait réagi avec célérité dès le moment où l'employée l'avait avertie du litige existant avec son supérieur. Quant au licenciement de l'employée, il n'était pas dû aux revendications qu'elle avait émises de bonne foi; il n'était pas abusif.
B.b. Saisi d'un appel de l'employée et d'un appel joint de l'employeuse, le Tribunal cantonal fribourgeois a débouté la première et fait droit à la seconde, en ce sens que l'employée devait supporter les dépens de première instance de son adverse partie (fixés à 36'775 fr. 65, TVA comprise). Ses motifs seront évoqués ci-dessous dans la mesure utile à la résolution du litige.
C.
L'employée a interjeté un recours en matière civile au Tribunal fédéral. Elle y reprend les conclusions formulées dans sa demande en requérant que l'employeuse intimée soit condamnée à supporter les frais des procédures précédentes (conciliation, première instance et appel).
L'autorité précédente s'est référée à son arrêt. L'intimée a déposé une réponse concluant au rejet du recours.
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. 100 al. 1 LTF).
Demeure réservée, à ce stade, la recevabilité de chaque grief en particulier, à l'aune des exigences qui vont être rappelées ci-dessous.
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). Eu égard, toutefois, au requisit de motivation découlant de l'art. 42 al. 2 LTF, sous peine d'irrecevabilité (art. 108 al. 1 let. b LTF), l'autorité de céans n'examine d'ordinaire que les griefs invoqués, sauf en cas d'erreurs juridiques manifestes (ATF 140 III 115 consid. 2 p. 116). Une exigence de motivation accrue prévaut pour la violation des droits constitutionnels telle la prohibition de l'arbitraire (art. 9 Cst.). Selon le principe d'allégation, le recourant doit indiquer quel droit ou principe constitutionnel a été violé, en expliquant de façon circonstanciée en quoi consiste la violation (art. 106 al. 2 LTF; ATF 134 II 244 consid. 2.2; 133 II 396 consid. 3.2).
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 s'en écarter que si ces faits ont été établis de façon manifestement inexacte - ce qui correspond à la notion d'arbitraire au sens de l'art. 9 Cst. (ATF 137 I 58 consid. 4.1.2; 137 II 353 consid. 5.1) - ou en violation du droit au sens de l'art. 95 LTF (art. 105 al. 2 LTF). Conformément au principe d'allégation évoqué ci-dessus, le recourant qui entend contester les faits retenus 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). Les critiques de nature appellatoire sont irrecevables. S'il veut obtenir un complètement de l'état de fait, le recourant doit désigner précisément les allégués et offres de preuves censés autoriser cette opération, en se référant aux pièces du dossier. Il ne saurait s'affranchir de ces obligations sous prétexte que l'art. 105 al. 2 LTF permet au Tribunal fédéral de compléter d'office les constatations de fait (ATF 140 III 86 consid. 2 p. 90).
Concernant l'appréciation des preuves, le Tribunal fédéral n'intervient du chef de l'art. 9 Cst. que si le juge du fait n'a manifestement pas compris le sens et la portée d'un moyen de preuve, a omis sans raisons objectives de tenir compte des preuves pertinentes ou a effectué, sur la base des éléments recueillis, des déductions insoutenables. L'arbitraire ne résulte pas du seul fait qu'une autre solution serait concevable, voire préférable (ATF 137 III 226 consid. 4.2; 136 III 552 consid. 4.2).
3.
La recourante a été liée à l'intimée par un contrat de travail de durée indéterminée ayant pris effet le 1 er novembre 2014. L'intimée en a signifié la résiliation le 19 juin 2015 pour le 30 septembre 2015.
Devant la cour de céans, le litige porte sur les cinq points suivants:
- le prétendu mobbing pratiqué par le directeur de la société, censé fonder une indemnité pour tort moral (art. 49 al. 1 CO en lien avec l'art. 328 al. 1 CO);
- le soi-disant caractère abusif du licenciement qui justifierait l'octroi d'une indemnité au sens de l'art. 336a CO;
- le moment inopportun de la résiliation (art. 336c CO), qui aurait repoussé l'échéance du contrat au 31 décembre 2015 et justifierait le versement des salaires de novembre et décembre 2015;
- la délivrance d'un certificat de travail conforme aux attentes de l'employée (art. 330a al. 1 CO); et, finalement,
- la répartition des frais et dépens de la procédure cantonale (art. 106 s. CPC).
Ces questions seront traitées dans l'ordre exposé ci-dessus.
4.
4.1.
4.1.1. L'art. 328 al. 1 CO impose à l'employeur de protéger et respecter, dans les rapports de travail, la personnalité du travailleur.
Le harcèlement psychologique, ou mobbing, constitue une violation de l'art. 328 CO. La jurisprudence le définit comme un enchaînement de propos et/ou d'agissements hostiles, répétés fréquemment pendant une période assez longue, par lesquels un ou plusieurs individus cherchent à isoler, à marginaliser, voire à exclure une personne sur son lieu de travail. La victime est souvent placée dans une situation où chaque acte pris individuellement peut être considéré comme supportable, alors que l'ensemble des agissements constitue une déstabilisation de la personnalité poussée jusqu'à l'élimination professionnelle de la personne visée (arrêts 4A_652/2018 du 21 mai 2019 consid. 5.1; 8C_107/2018 du 7 août 2018 consid. 5; 4A_32/2010 du 17 mai 2010 consid. 3.2; 4C.343/2003 du 13 octobre 2004 consid. 3.1). Il n'y a pas harcèlement psychologique du seul fait d'un conflit dans les relations professionnelles (cf. par ex. arrêts 4A_439/2016 du 5 décembre 2016 consid. 5.2 et 5.3; 8C_787/2015 du 4 novembre 2016 consid. 3.2.4; 4A_381/2014 du 3 février 2015 consid. 5.2), d'une incompatibilité de caractères (arrêt 2P.39/2004 du 13 juillet 2004 consid. 4.2), d'une mauvaise ambiance de travail, ou du simple fait qu'un supérieur hiérarchique n'aurait pas toujours satisfait à ses devoirs envers ses collaborateurs.
L'autorité de céans concède une marge d'appréciation au juge appelé à déterminer, sur la base des circonstances d'espèce, si les indices réunis permettent ou non de retenir un tel mobbing (arrêts précités 8C_107/2018 consid. 5 et 4A_32/2010 consid. 3.3.4; arrêt 4A_245/2009 du 6 avril 2010 consid. 4.3.3).
L'employé victime d'une atteinte à la personnalité contraire à l'art. 328 CO peut prétendre à une indemnité pour tort moral aux conditions fixées par l'art. 49 al. 1 CO. L'atteinte doit revêtir une certaine gravité objective et doit avoir été ressentie par la victime, subjectivement, comme une souffrance morale suffisamment forte pour qu'il apparaisse légitime, dans les circonstances d'espèce, de s'adresser au juge pour obtenir une réparation (ATF 125 III 70 consid. 3a; 120 II 97 consid. 2b; arrêt 4A_610/2018 du 29 août 2019 consid. 5.1). Savoir si l'atteinte est assez importante pour justifier une somme d'argent dépend des circonstances du cas concret; le juge dispose à cet égard d'un vaste pouvoir d'appréciation que le Tribunal fédéral revoit avec retenue (ATF 129 III 715 consid. 4.4 p. 725; cf. aussi ATF 115 II 156 consid. 1; arrêt 4A_482/2017 du 17 juillet 2018 consid. 4.1).
4.1.2. Etablir les comportements adoptés par l'auteur du mobbing allégué, ses intentions et mobiles, le contexte de travail, la personnalité de l'employé victime ou encore son état de santé, ressortit au fait. Relèvent aussi de l'appréciation des preuves les déductions auxquelles le juge procède parce qu'il ne dispose pas de preuves directes (BERNARD CORBOZ, in Commentaire de la LTF, 2 e éd. 2014, n° 33 ad art. 105 LTF). En ce domaine, le Tribunal fédéral n'intervient qu'aux conditions strictes rappelées ci-dessus (consid. 2.2), pour sanctionner un véritable arbitraire et non pour substituer à l'appréciation des juges cantonaux une solution qui pourrait sembler préférable. En revanche, déterminer si les faits retenus permettent de retenir une atteinte à la personnalité justifiant l'octroi d'une réparation morale procède de l'application du droit, que la cour de céans contrôle certes librement, mais avec les retenues entourant l'exercice du pouvoir d'appréciation, dans un terrain qui se révèle souvent très délicat. L'examen de la présente cause se trouve donc circonscrit à divers égards.
4.2. L'analyse de la Cour d'appel comprend deux facettes: elle s'est tout d'abord demandé si le directeur avait eu un comportement contraire à l'art. 328 CO, dont l'employeuse devrait répondre au titre de l'art. 101 CO; elle a répondu par la négative. Puis elle a recherché si l'employeuse avait pris les mesures commandées par cette même disposition, ce dont elle lui a donné acte. La recourante critique les deux pans de ce raisonnement.
4.3.
4.3.1. Quelques réflexions préalables s'imposent à propos de l'imputation du comportement du directeur à l'employeuse.
La jurisprudence a reconnu que l'employeur peut devoir répondre d'atteintes à la personnalité commises par des auxiliaires au sens de l'art. 101 CO, soit en particulier par des supérieurs hiérarchiques ou des personnes responsables du personnel (ATF 125 III 70 consid. 3a p. 74; cf. aussi arrêt 4A_128/2007 du 9 juillet 2007 consid. 2.4). Concrètement, la cour de céans a retenu une telle responsabilité dans des cas où l'atteinte émanait du secrétaire général d'une association (ATF 130 III 699 consid. 5.2), d'un entraîneur au sein d'un club de football organisé en société anonyme (ATF 137 III 303 consid. 2.2.2), ou encore d'un supérieur hiérarchique (arrêt 4A_665/2010 du 1er mars 2011 consid. 6.1; cf. aussi l'arrêt 4C.343/2003 consid. 4.1, qui revêt des particularités).
De façon générale, la question du lien de causalité fonctionnelle entre l'activité confiée à un auxiliaire et l'acte dommageable suscite des discussions. Dans le cas de l'art. 328 CO, la doctrine majoritaire va dans le sens de la jurisprudence précitée et tend à distinguer selon la place hiérarchique de l'auteur de l'atteinte au sein de l'entité employeuse. Généralement, elle reconnaît la qualité d'auxiliaire au seul supérieur direct de la victime de l'atteinte, en expliquant que le rapport de subordination est l'essence même du contrat de travail et que le supérieur hiérarchique est le délégataire même implicite de l'obligation de respecter la personnalité du travailleur qui lui est subordonné (WYLER/HEINZER, Droit du travail, 4e éd. 2019, p. 453-455; dans le même sens PORTMANN/RUDOLPH, in Basler Kommentar, 7e éd. 2020, n° 20 ad art. 328 CO; JÜRG BRÜHWILER, Einzelarbeitsvertrag, 3e éd. 2014, p. 228 let. e; ADRIAN STAEHELIN, Zürcher Kommentar, 2006, n° 15 ad art. 328 CO; cf. en outre THOMAS KOLLER, in RJB 2013 p. 742 let. h, approuvant sur ce point l'ATF précité 137 III 303 consid. 2.2.2; PHILIPPE CARRUZZO, Le contrat individuel de travail, 2009, n° 11 ad art. 328 CO). L'opinion contraire, qui s'oppose à l'application de l'art. 101 CO au motif que l'atteinte à la personnalité est un acte illicite, semble minoritaire (STREIFF/VON KAENEL/RUDOLPH, Arbeitsvertrag, 7e éd. 2012, p. 557 s.; SUBILIA/DUC, Droit du travail, 2010, n° 44 s. ad art. 328 CO; partagé, JEAN-PHILIPPE DUNAND, in Commentaire du contrat de travail, [DUNAND/MAHON ÉD.] 2013, nos 88-92 ad art. 328 CO, lequel se demande s'il ne faut pas envisager l'art. 328 CO comme une norme d'imputation sui generis).
En l'occurrence, le comportement incriminé émane du directeur d'une société anonyme (dépourvu de la qualité d'administrateur), supérieur hiérarchique direct de l'employée demanderesse. Sur le vu de ce qui précède, on ne discerne pas d'obstacle de principe à l'application de l'art. 101 CO. Cela étant, cette question n'est pas déterminante dans le cas d'espèce, comme cela va être exposé ci-dessous.
4.3.2. La Cour d'appel a établi les faits suivants, en précisant qu'elle reprenait à son compte l'état de fait retenu par les premiers juges:
- D._ avait une attitude générale inadéquate et répréhensible, aussi bien vis-à-vis de ses subalternes au sein de la société qu'à l'égard de collaborateurs externes. Il se montrait cassant et virulent, marquait sa supériorité et rabaissait ses subordonnés. Il manquait de résistance au stress et se montrait incapable de gérer les imprévus. Son management était déficient et dysfonctionnel.
- Tout ceci créait d'importantes tensions parmi l'ensemble des collaborateurs de la société, au sein de laquelle régnait une mauvaise ambiance générale et un contexte délétère, largement imputables au directeur. Le mauvais climat de travail avait provoqué les départs de E._ et I._.
- A._ était la cible privilégiée des comportements inadéquats et des remarques désobligeantes du directeur. Cette situation s'expliquait par le fait qu'elle était sa subalterne directe et son interlocutrice privilégiée, structurellement parlant, au sein de la société. E._ et I._, pour leur part, travaillaient à temps partiel et n'avaient que peu de contacts directs avec D._; elles étaient subordonnées à A._.
- Celle-ci, selon le constat des premiers juges, était ambitieuse, organisée, disponible et flexible, avec de très bonnes qualifications; elle entretenait d'excellentes relations avec la plupart des membres du conseil d'administration. Dès la mi-avril 2012, elle avait travaillé exclusivement sur le projet Z._et avait établi les bases de ce qui avait conduit à la société anonyme. A l'arrivée de D._, elle avait dû revoir sa manière de travailler, alors même qu'elle était à la base du projet; elle avait été confrontée à de nouvelles méthodes et au fait que le directeur avait imposé une hiérarchie. Elle était en désaccord avec lui sur son cahier des charges. Cette déconvenue avait provoqué une situation professionnelle conflictuelle. Les deux personnalités n'étaient pas compatibles professionnellement.
A l'instar des premiers juges, la Cour d'appel a conclu qu'il y avait un conflit relationnel entre deux collègues de travail, les éléments constitutifs du mobbing n'étant pas réalisés. Il n'apparaissait pas que l'employée eût fait l'objet de dénigrements systématiques ou même répétés et dévalorisants sur une période assez longue; les comportements incriminés ne revêtaient pas une gravité objective suffisante. L'employée avait certes souffert subjectivement de la situation, dans la mesure où elle avait été incapable de travailler du 11 février au 1 er mars 2015, puis du 21 juillet au 30 septembre 2015 en raison d'un état anxio-dépressif liés aux conflits interpersonnels sur son lieu de travail. Toutefois, les différents certificats médicaux établis par ses médecins traitants - en particulier celui du 5 février 2016 émanant de son psychiatre - ne permettaient pas davantage de retenir un mobbing, au vu de l'ensemble des circonstances ayant trait à l'ambiance de travail, au contexte de pression et au comportement inadéquat du directeur à l'égard de ses subalternes en particulier dans ce contexte. Qui plus est, l'employée assumait elle-même une fonction dirigeante avec des responsabilités pour laquelle elle touchait un salaire élevé; on attendait de sa part une résistance au stress et à la critique plus importante que la moyenne.
4.3.3. La recourante dénonce une description "manifestement inexacte ou incomplète" de faits déterminants pour l'issue de la cause, tels que le comportement du directeur (D._) ou encore la protection dont il aurait bénéficié de la part du président du conseil d'administration (G._). Comme en appel, elle soutient que les témoignages de E._ et I._ devraient prévaloir sur celui de C._ au motif que celui-ci n'était pas sur les lieux et voudrait en inférer que le directeur cherchait bel et bien à l'humilier et à l'isoler, dénigrant son travail et piquant des accès de colère faisant craindre pour son intégrité physique.
Force est d'admettre que l'autorité précédente s'est expliquée de façon circonstanciée sur les motifs l'ayant conduite à retenir un comportement général inadéquat et répréhensible de la part du directeur, dont la recourante était toutefois la cible privilégiée. Cette dernière tente de substituer son point de vue à celui de la Cour d'appel en omettant de réfuter divers arguments articulés pour justifier la solution adoptée. Elle taxe tout au plus d' "erronée" l'appréciation des preuves, sans jamais émettre le grief d'arbitraire.
Une telle méthode, d'essence appellatoire, n'est pas recevable au regard des exigences rappelées ci-dessus. Aussi se contentera-t-on de remarques et/ou de réponses aux griefs qui semblent pouvoir franchir l'écueil d'irrecevabilité.
4.3.4. La recourante reproche à l'autorité précédente d'avoir méconnu la nature exacte des liens que deux témoins entretenaient avec l'un ou l'autre protagoniste.
L'autorité précédente a accueilli avec "circonspection" le témoignage de I._ au motif qu'elle entretenait des liens d'amitié avec la recourante, pouvait éprouver du ressentiment envers le directeur qui voulait l'évincer en raison de son âge et, enfin, avait admis avoir rédigé une déclaration à la demande expresse de la recourante pour les besoins de la procédure. A lire le procès-verbal d'audition, on ne discerne pas ce qui a conduit l'autorité précédente à retenir des liens d'amitié, le simple fait d'être restée en contact avec la recourante n'étant pas une circonstance suffisante. Cela étant, la recourante se prévaut de ce témoignage essentiellement pour appuyer sa thèse d'un processus d'isolement et de dénigrement dont elle aurait été l'unique cible; dans ce contexte, l'autorité précédente pouvait sans arbitraire pointer le fait que, de son propre aveu, I._ avait rédigé une première déclaration écrite à la demande de la recourante qui avait initié une procédure et qu'en conséquence, elle avait décrit spécifiquement la situation de la recourante à l'exclusion de celle des autres collaborateurs. Au demeurant, la cour cantonale n'a pas ignoré ses propos - ni ceux de E._ - selon lesquels les remarques désobligeantes du directeur ne les visaient pas, ou seulement de manière marginale; elle a toutefois expliqué cette différence de traitement par la rareté des contacts directs avec le directeur, leur emploi à temps partiel et le fait que ces deux employées dépendaient directement de la recourante. La recourante objecte que I._ n'était plus sa subordonnée et devait en référer directement à D._; quand bien même ce serait le cas, cela ne nuirait pas au constat qu'elle travaillait à temps partiel et entretenait peu de contacts directs avec le directeur. En outre, la recourante se garde bien de contester l'argument selon lequel elle a commencé par reprocher au directeur une attitude affectant tous les collaborateurs, avant d'adapter ses allégations.
Elle fait aussi grief à l'autorité précédente d'avoir occulté la complaisance dont le président du conseil d'administration (G._) avait fait preuve envers le directeur, qu'il avait protégé. Le vice-président du conseil (H._) avait pourtant fait état d'une relation "très intime" entre les deux hommes et le médiateur avait constaté que le directeur était "dévoué" au président.
Ces deux éléments sont exacts; G._ a toutefois précisé qu'il ne connaissait pas le directeur avant son engagement. Il faut bien admettre que certaines déclarations de cet administrateur interpellent, en particulier lorsqu'il a maintenu contre toute évidence que le directeur était un bon gestionnaire de personnel - tout en qualifiant sa gestion de "désastreuse". Cela étant, l'autorité précédente a su faire la part des choses, expliquant avoir pondéré les divers témoignages et déclarations recueillies. Dans un contexte délétère, des camps peuvent se former; il est concevable que le président du conseil d'administration ait pris parti pour le directeur. Cela étant, ce supposé parti pris n'a pas empêché G._ d'organiser deux séances de conciliation. Un médiateur externe a ensuite été nommé, puis le contrat de travail du directeur a été résilié - nonobstant l'influence que d'aucuns prêtaient à l'administrateur-président.
4.3.5. L'argumentation selon laquelle le directeur aurait eu un comportement dénigrant, humiliant, dont l'autorité précédente aurait minimisé la gravité est de type appellatoire, et partant irrecevable. Contrairement à ce que plaide la recourante, il n'est pas contradictoire - et encore moins arbitraire, vocable qu'elle n'emploie pas - de constater un comportement inadéquat et répréhensible généralisé, vis-à-vis des autres employés et même de collaborateurs extérieurs, tout en retenant que la recourante en était la cible privilégiée, de par sa position structurelle et les connaissances dont elle disposait.
La recourante déplore en particulier que les juges fribourgeois aient occulté le fait que E._ nourrissait des craintes pour sa sécurité physique. Elle cite - sans le relier à un allégué - un extrait du témoignage de la prénommée, indiquant qu'elle avait peur que le directeur "pète complètement les plombs" et que A._ soit en danger physique. Le témoin évoque une scène où elle avait entendu des cris très forts, suivis d'un bruit ("boum") qui l'avait inquiétée. La recourante elle-même ne prétend pas avoir été menacée physiquement à cette occasion, ni à une autre; elle évoque des crises de colère. On peut inférer que dans le contexte tendu décrit par le jugement, un directeur dépourvu de résistance au stress et inapte à gérer les imprévus soit enclin à hausser le ton et à perdre sa contenance, ce qui n'implique pas encore une menace physique.
4.3.6. L'autorité précédente a concédé que l'employée avait subjectivement souffert de la situation, évoquant deux périodes d'incapacité de travail (du 11 février au 1er mars, puis du 21 juillet au 30 septembre 2015) et un état anxio-dépressif lié aux conflits interpersonnels sur son lieu de travail. Elle a toutefois précisé que les certificats médicaux établis par les médecins traitants ne permettaient pas de retenir un mobbing au vu de l'ensemble des circonstances.
Ce faisant, l'autorité précédente a procédé à une appréciation des preuves qui n'est l'objet d'aucune critique d'arbitraire motivée, la recourante soulignant simplement que les juges n'ont pas remis en cause la gravité de ses souffrances documentées par les preuves versées au dossier. De fait, pour déterminer les causes de l'atteinte à la santé psychique de l'intéressée, qui peut en soi être l'indice d'un harcèlement psychologique, il n'était pas critiquable de privilégier une appréciation globale des circonstances d'espèce, plutôt que de se confiner aux certificats établis par des médecins traitants sur la base de l'anamnèse livrée par leur patiente. Au demeurant, ceux-ci mêmes n'excluent pas un concours de causes. La médecin généraliste de la recourante a certifié le 21 juillet 2015 que l'incapacité de travail "pour cause de maladie" établie par son remplaçant pour la période du 11 février au 1er mars 2015 était imputable à une anxiété importante générée par des conflits sur le lieu de travail, "notamment lié[e]" à la présence d'un nouveau supérieur hiérarchique. Quant au certificat du 5 février 2016 auquel renvoie spécifiquement l'arrêt attaqué, il indique que la recourante a consulté un psychiatre dès le 19 septembre 2015 pour une décompensation anxio-dépressive "réactionnelle à la perte de son activité professionnelle ". La recourante elle-même souligne qu'au moment de son audition par le médiateur en mai 2015, elle était aussi affectée par le très grave accident de son époux. Enfin, le jugement de première instance mentionne un courrier du 27 août 2015 adressé au tribunal, par lequel la recourante annonçait avoir été victime d'un accident en date du 31 juillet 2015 et se trouver en incapacité de travail durant six semaines, ce qui suspendait le délai de congé (jgt I p. 2 let. C; cf. aussi consid. 6.4 infra).
La recourante se plaint également de ce que le médiateur l'a qualifiée de "très émotionnelle" en rappelant qu'au moment où il l'auditionnait, elle était déjà affectée par le comportement abusif du directeur - en plus du très grave accident subi par son époux. Elle omet toutefois de préciser que ce constat est le "résultat des interviews" que le médiateur a effectués avec différentes personnes (rapport du médiateur, ch. 4.2.2), dont son ancien supérieur C._ avec qui elle travaillait déjà lorsqu'elle oeuvrait au service de S._. Cela étant, l'autorité précédente a pris acte du fait que la recourante, selon ses médecins, n'avait jusque-là pas souffert de telles affections.
4.3.7. En définitive, l'état de fait arrêté par les juges cantonaux lie la cour de céans.
Sur cette base factuelle, on ne saurait leur reprocher d'avoir enfreint les art. 49 al. 1 et 328 al. 1 CO en considérant que les comportements incriminés ne revêtaient pas une gravité objective suffisante pour justifier une indemnité pour tort moral.
Le comportement du directeur était critiquable, et même détestable. Cela étant, il s'est inscrit sur une durée limitée, dans le contexte d'une période de transition qui était objectivement difficile. A la première séance de conciliation du 5 mars 2015, la recourante était encore désireuse d'aller de l'avant et de collaborer avec le directeur. Il existait aussi un conflit de personnalités incompatibles entre le directeur et la recourante, laquelle avait subi une déconvenue en devant affronter de nouvelles méthodes de travail et une hiérarchie qu'elle n'avait pas connues jusque-là. L'autorité précédente a en outre souligné que la recourante - de nature très émotionnelle, et encline à s'identifier au projet - occupait un poste à responsabilité, bien rémunéré, de sorte que l'on pouvait atteindre d'elle une résistance au stress et à la critique plus élevée que la moyenne.
La recourante, sous la plume de son conseil, s'offusque de cette dernière remarque dont elle déduit que le respect de la personnalité d'un travailleur dépendrait de son (bas) salaire. Un tel raccourci est outrancier. Confronté à une demande de réparation morale, le juge doit porter une appréciation d'ensemble intégrant des critères objectifs et subjectifs. Il doit notamment prendre en compte le ressenti subjectif de la victime et le pondérer en se demandant quelle réaction qu'aurait eue une personne lambda placée dans les circonstances d'espèce (cf. ATF 120 II 97 consid. 2b). Font notamment partie de celles-ci les exigences inhérentes au poste occupé par l'employé (cf. WYLER/HEINZER, op. cit., p. 449). Aussi l'autorité précédente n'a-t-elle pas enfreint le droit fédéral en considérant qu'un (e) cadre dans un poste à responsabilité tel que celui occupé par la recourante devait être apte à résister au stress et à la critique davantage qu'un employé subalterne. L'allusion à la haute rémunération de la recourante était clairement liée aux responsabilités que son poste entraînait et aux attentes que l'on pouvait avoir de son titulaire. Que le directeur n'ait lui-même pas eu les qualités requises pour son niveau de fonction n'y change rien; il a du reste été sanctionné.
En définitive, sur la base de l'état de fait qui lie la cour de céans, il faut admettre que l'analyse juridique ayant conduit à exclure un mobbing, respectivement une atteinte à la personnalité telle qu'elle justifierait une réparation morale, s'inscrit dans le cadre de l'exercice du pouvoir d'appréciation. Comme le souligne la recourante, le seul fait qu'un comportement ne réponde pas en tous points à la définition du mobbing n'exclut pas nécessairement une atteinte illicite à la personnalité; tel peut notamment être le cas d'un comportement critiquable "non discriminatoire", qui accable plusieurs employés. Toutefois, l'autorité précédente n'a pas méconnu cet aspect, mais a conclu sans enfreindre le droit fédéral que le présent cas ne justifiait pas une indemnité.
4.3.8. En bref, les griefs relatifs au premier volet examiné par la cour cantonale doivent être rejetés dans la mesure de leur recevabilité.
4.4. Dans le second volet de son analyse, la Cour d'appel a exclu que l'employeuse elle-même ait enfreint l'art. 328 CO en négligeant son devoir général de protection envers l'employée. Le conseil d'administration avait eu connaissance des griefs de l'employée à la fin du mois de février 2015. Le président du conseil d'administration avait spontanément mis en oeuvre une première séance de gestion du conflit le 5 mars 2015, puis une seconde le 22 avril 2015. La situation n'ayant pas évolué positivement, il avait été donné suite à la demande de l'employée et un médiateur externe avait été nommé, lequel avait débuté sa mission le 4 mai 2015 pour rendre son rapport le 23 mai 2015. Ledit conseil avait licencié D._ le 26 mai 2015, en le libérant immédiatement de son obligation de travailler. Moins de trois mois s'étaient écoulés entre la prise de connaissance du conflit et le licenciement. Ce faisant, l'employeuse avait agi avec célérité.
Le constat selon lequel le conseil d'administration a été prévenu à la fin février 2005 lie la cour de céans, tout comme les autres faits retenus, à défaut de critiques satisfaisant aux exigences topiques (consid. 2.2 supra). Force est d'admettre que les mesures prises dès cet instant suffisaient à exclure tout grief de violation de l'art. 328 al. 1 CO. Il peut être renvoyé sur ce point à l'argumentation convaincante de l'autorité précédente.
5.
5.1. La recourante prétend ensuite avoir été victime d'un congé abusif qui justifierait l'octroi d'une indemnité fondée sur l'art. 336a CO.
5.2. Chaque partie peut décider unilatéralement de mettre fin à un contrat de travail de durée indéterminée (art. 335 al. 1 CO). Ce droit est toutefois limité par les dispositions sur le congé abusif (art. 336 ss CO). L'art. 336 CO énonce une liste non exhaustive de cas de résiliation abusive, concrétisant l'interdiction générale de l'abus de droit (ATF 136 III 513 consid. 2.3; 131 III 535 consid. 4.2 p. 538).
Est notamment abusif le congé donné par une partie parce que l'autre partie fait valoir de bonne foi des prétentions résultant du contrat de travail (art. 336 al. 1 let. d CO). L'émission de ces prétentions doit avoir joué un rôle causal dans la décision de licenciement; à tout le moins doit-il s'agir du motif déterminant (ATF 136 III 513 consid. 2.6 p. 517 s.; arrêt 4A_401/2016 du 13 janvier 2017 consid. 5.1.3).
L'abus peut en outre découler du fait que l'employeur exploite sa propre violation du devoir de protéger l'employé, découlant de l'art. 328 CO; il peut en être ainsi, par exemple, lorsqu'il est confronté à un employé au caractère difficile et qu'il laisse une situation conflictuelle s'envenimer sans prendre les mesures adéquates pour l'atténuer, puis se prévaut de ce que l'ambiance est devenue préjudiciable au travail pour licencier le salarié apparaissant, en raison de son mauvais caractère, comme un fauteur de troubles (ATF 132 III 115 consid. 2.2; arrêt 4A_158/2010 du 22 juin 2010 consid. 3.2).
La manière dont le congé est donné peut également constituer un abus de droit. Quand bien même la résiliation est légitime, celui qui la signifie doit agir avec des égards et respecter la personnalité du travailleur. Une atteinte grave à celle-ci peut entacher le congé d'un caractère abusif. Un comportement simplement inconvenant ne suffit pas (ATF 132 III 115 consid. 2.2 et 2.3). Par exemple, le fait pour l'employeur d'avoir affirmé à son collaborateur qu'il ne serait pas licencié et de lui notifier son congé une semaine plus tard est un comportement certes incorrect, mais qui ne rend pas à lui seul le congé abusif (ATF 131 III 535 consid. 4.2 p. 538 s.; arrêt 4C.234/2001 du 10 décembre 2001 consid. 3b, traduit in SJ 2002 I p. 389).
Déterminer le motif d'une résiliation est une question de fait (ATF 136 III 513 consid. 2.3 in fine p. 515). En revanche, savoir si le congé est abusif relève du droit (arrêt 4A_714/2014 du 22 mai 2015 consid. 3.3).
5.3. L'autorité précédente a constaté que le motif invoqué à l'appui du congé (soit la suppression du poste de l'employée) était bien réel. Le congé était lié au rapport du médiateur M._, et non aux prétentions que l'employée avait émises de bonne foi. Celles-ci avaient été mises en oeuvre par le mandat confié au prénommé, qui avait été chargé d'analyser la situation et de soumettre une analyse avec une recommandation. Or, le médiateur avait préconisé la suppression du poste de l'employée et l'externalisation de certaines tâches qu'elle assumait. L'employeuse était à l'époque gravement déficitaire. Dans le climat de conflits et tensions clairement identifié par le médiateur, l'employeuse ne pouvait pas ignorer ses recommandations, qui préconisaient leur exécution immédiate pour assurer le bon fonctionnement de la société. L'organigramme approuvé par le conseil d'administration en octobre 2015 faisait état d'un directeur supervisant une assistante de direction et un ingénieur de projet; les tâches liées à la communication, autrefois attribuées à l'employée, faisaient l'objet de mandats externes. Son poste n'avait pas été repourvu.
5.4. La recourante entend imposer une autre appréciation des preuves sans satisfaire aux exigences de motivation, et en s'abstenant même de dénoncer un arbitraire. Elle renvoie en outre à des mémoires déposés dans la procédure cantonale, procédé qui n'est pas admissible (ATF 133 II 396 consid. 3.2 in fine; 131 III 384 consid. 2.3).
Cela étant, elle évoque la thèse d'une vengeance du président du conseil d'administration, que le vice-président H._ a envisagée sous la forme d'une possibilité; l'arrêt attaqué s'en fait toutefois l'écho et n'a pas ignoré cet élément. Le jugement de première instance fait aussi une allusion à d'autres propos verbalisés du vice-président, dont la recourante se prévaut; il en ressort qu'en date du 26 mai 2015, le conseil d'administration in corpore avait décidé de surseoir à la mise en oeuvre des recommandations du médiateur à son sujet, c'est-à-dire d'attendre quelque deux ou trois mois avant de résilier son contrat et de lui en proposer un nouveau avec une "participation de travail à 50 %". On ajoutera que ce témoin mentionne, sans la critiquer, l'analyse du médiateur selon laquelle l'intéressée "était trop payée pour un emploi à plein temps".
Le conseil d'administration aurait ainsi, dans un premier temps, envisagé de faire suite à la proposition du médiateur, avant d'y renoncer lors d'un comité restreint à quatre membres (en conformité avec le quorum requis), sans H._ qui eût été favorable à la recourante. Cet élément ne suffit pas à entacher d'arbitraire l'appréciation portée par les juges cantonaux - grief que la recourante n'articule pas formellement.
Dans le contexte brossé par les décisions cantonales, il était défendable que le conseil d'administration renonce finalement à suivre jusqu'au bout la recommandation du médiateur, qui préconisait un mandat d'environ 50 %. La recourante s'était fortement impliquée dans le projet depuis avril 2012 et s'identifiait à Z._. Réduire de moitié au moins son temps de travail et renoncer à ses services de collaboratrice régulière dûment intégrée à la société au profit d'un statut "externalisé" et moins stable, dans le cadre d'une transition difficile, n'apparaissait pas nécessairement comme la solution la plus adéquate.
On relèvera encore que la recourante ne soulève pas de critiques à l'encontre de la crédibilité du médiateur désigné, dont elle a renoncé à solliciter l'audition après que le Tribunal prud'homal eut rejeté ses réquisitions.
En bref, on retiendra que le congé est dû à la suppression du poste de l'intéressée, intervenue sur les recommandations du médiateur (qui n'ont pas été suivies dans leur intégralité s'agissant de la proposition de mandat).
Ce constat factuel prive d'assise l'application de l'art. 336 al. 1 let. d CO.
5.5. L'autorité précédente a encore examiné si la manière dont le licenciement avait été signifié dénotait un abus de droit. Elle l'a exclu, tout en qualifiant d' "inconvenant et grossier" le comportement de l'employeuse. Celle-ci avait tout d'abord adressé à l'employée un contrat de travail écrit daté du 13 mai 2015, pour ensuite la licencier le 19 juin suivant, sans explication préalable et en sachant que l'intéressée veillait son mari qui se trouvait à l'hôpital dans un état critique. Humiliation supplémentaire, elle l'avait libérée immédiatement de son obligation de travailler. Pour autant, ce comportement n'était pas illicite. L'employeuse ne s'était pas livrée à un double jeu contraire au principe de la bonne foi. Elle avait omis d'établir un contrat écrit au début des rapports de travail; en outre, lorsqu'elle l'avait adressé à l'employée, elle n'avait pas encore connaissance du rapport du médiateur qui recommandait un licenciement; enfin, même si un entretien eût été approprié, le fait de ne pas en avoir discuté auparavant avec l'employée ne rendait pas le licenciement abusif.
5.6. Force est d'admettre que l'employeuse ne s'est pas distinguée positivement par sa manière d'agir. Il était pour le moins curieux d'adresser à l'employée un contrat de travail écrit dans un tel contexte alors que l'employeuse - selon une constatation qui lie la cour de céans - n'avait pas encore pris connaissance des résultats de l'enquête du médiateur. On ne dispose toutefois que d'un minimum d'informations sur les motifs sous-tendant cette action; la lettre d'accompagnement évoquait une modification du cahier des charges.
Quant au moment de la notification, il était certes malvenu vu l'état du mari de la recourante, dont l'employeuse avait connaissance. De surcroît, l'intéressée était immédiatement déliée du devoir de fournir ses services, ce qui ne pouvait qu'être durement ressenti. Tout ceci s'inscrivait cependant dans un contexte délicat et tendu appelant des réactions rapides, selon les recommandations du médiateur. Comme le souligne l'autorité précédente, des explications préalables eussent été a fortiori nécessaires.
Cela étant, l'abus de droit doit être manifeste, et le juge dispose d'un pouvoir d'appréciation quant aux circonstances constitutives d'un tel abus. Il faut en l'occurrence reconnaître que l'autorité précédente n'est pas sortie du cadre du droit fédéral.
Il reste ainsi à examiner les trois derniers griefs.
6.
6.1. La recourante plaide que son incapacité de travail survenue entre le 31 [sic!] juillet 2015 et le 30 septembre 2015 aurait reporté l'échéance du contrat au 31 décembre 2015; elle aurait donc droit au paiement de son salaire pour les mois de novembre et décembre 2015.
6.2. L'art. 336c CO empêche l'employeur de résilier le contrat en temps inopportun, soit notamment lorsque le travailleur est incapable de travailler en raison d'une maladie non imputable à faute. La période maximale de protection est de 30 jours au cours de la première année de service, de 90 jours de la deuxième à la cinquième année de service et de 180 jours à partir de la sixième année de service (al. 1 let. b). Lorsque le congé a été donné avant cette période de protection et que le délai de congé n'a pas encore expiré, celui-ci est suspendu puis continue à courir à l'issue de cette période (al. 2). Si les rapports de travail doivent cesser à un certain terme - telle la fin d'un mois - et que ce terme ne coïncide pas avec la fin du délai de congé qui a recommencé à courir, ce délai est prolongé jusqu'au prochain terme (al. 3).
Selon la jurisprudence, le dies a quo du délai de congé au sens de l'art. 336c al. 2 CO doit se calculer "rétroactivement" en partant de l'échéance du contrat; ce n'est donc pas la date de réception du congé qui est déterminante (ATF 134 III 354 consid. 2.2 et 3.3; 119 II 449 consid. 2a; 115 V 437 consid. 3b).
6.3. L'autorité précédente a considéré que le délai de congé de trois mois avait commencé à courir le 1er juillet 2015 et que la recourante, dans sa première année de service, bénéficiait d'une protection limitée à trente jours. Elle a conclu que l'échéance du contrat avait finalement été repoussée au 31 octobre 2015. L'employeuse ayant versé le salaire jusqu'à cette date, la travailleuse ne pouvait émettre aucune prétention de ce chef.
6.4. La recourante dénonce une violation de l'art. 336c CO.
Au préalable, on relèvera le doute planant sur la date du début de son incapacité de travail. La recourante a articulé à cet égard la date du 31 juillet 2015 sans susciter de rectificatif des juges fribourgeois, après que l'arrêt attaqué eut évoqué à plusieurs reprises la date du 21 juillet 2015 (p. 4, 17 et 18). Celle-ci est celle du certificat médical établi par la médecin généraliste de la recourante, attestant d'un état anxieux et de l'administration d'un traitement anti-dépresseur assorti d'un somnifère et d'un anxiolytique, sans faire mention d'une incapacité de travail (arrêt attaqué, p. 9 et pièce 7a). On rappellera aussi le courrier du 27 août 2015 par lequel la recourante avait annoncé un accident et une incapacité de travail de 6 semaines dès le 31 juillet 2015 (jgt de Ire instance, p. 2). Quoi qu'il en soit, le début de l'incapacité de travail (21 ou 31 juillet 2015) - qui n'est pas discutée comme telle, ni sa cause, soit un état anxio-dépressif - n'a aucune incidence pour l'issue de la discussion.
Il appert en effet que l'autorité précédente s'est conformée à la jurisprudence en déterminant le point de départ du délai à partir de l'échéance du 30 septembre 2015, soit le 1er juillet 2015. L'employée disposait ainsi d'un délai de congé de 92 jours (VALENTINE GÉTAZ KUNZ, La suspension du délai de congé selon l'art. 336c al. 2 CO, in Panorama en droit du travail, [WYLER ÉD.] 2009, p. 317).
Ayant été engagée le 1er novembre 2014, elle se trouvait effectivement dans sa première année de service jusqu'au 31 octobre 2014 et bénéficiait à ce titre d'une protection de 30 jours au maximum, nonobstant une incapacité plus longue (art. 336c al. 1 let. b CO). Devant les autorités cantonales, elle avait certes prétendu à une protection de 90 jours en additionnant les années de travail accomplies sur le projet Z._ depuis le 15 avril 2012. Elle avait toutefois été éconduite, et son recours ne contient aucune critique recevable sur l'analyse des juges cantonaux, ce qui clôt toute discussion.
Si l'incapacité de travail suspendant le délai de congé en cours depuis le 1er juillet 2015 a débuté le 21 juillet 2015, l'employée avait encore droit à 72 jours de congé (92-20) lorsque le cours du délai a repris le 20 août 2015, à l'issue de la protection maximale de 30 jours. Si l'incapacité a commencé le 31 juillet 2015, elle disposait encore de 62 jours (92-30) de congé lorsque le délai a recommencé à courir le 30 août 2015. Dans un cas comme dans l'autre, l'application de l'art. 336c al. 1 let. b, al. 2 et al. 3 CO entraînait bel et bien un report de l'échéance du contrat au 31 octobre 2015, comme l'ont retenu les juges cantonaux (pour un exemple de calcul, cf. mutatis mutandis arrêt 4C.383/1991 du 23 octobre 1992 consid. 2, in SJ 1993 p. 365).
Le grief, fondé sur la prémisse que la recourante se trouvait dans sa deuxième année de service, est dépourvu de fondement.
7.
La recourante prétend à la délivrance d'un certificat de travail conforme à ses attentes.
L'autorité précédente a constaté que l'appel ne contenait aucun chef de conclusion relatif au certificat de travail; il proposait certes une argumentation, mais celle-ci était indigente. En tout état de cause, le grief devait être rejeté.
Confrontée à une argumentation alternative qui nécessite une attaque sur les deux fronts (ATF 142 III 364 consid. 2.4 p. 368), la recourante n'explique pas quel vice entacherait le constat d'irrecevabilité effectué par la cour d'appel. La simple citation de l'art. 57 CPC parmi les dispositions qui auraient prétendument été violées ne satisfait clairement pas aux exigences rappelées ci-dessus. La recourante laisse ainsi intacte une motivation (irrecevabilité du grief) qui exclut toute entrée en matière à ce stade.
8.
Subsiste l'ultime grief relatif à la répartition des frais et dépens de la procédure cantonale.
Tenant compte du sort des conclusions de l'employée, la Cour d'appel a mis à sa charge l'entier des frais judiciaires (première instance et appel), en motivant sa décision, et l'a condamnée à payer des dépens à la partie adverse. Sur ce dernier point, la Cour a jugé que la disparité économique entre les parties ne justifiait pas en soi de s'écarter du principe général de répartition selon le sort des conclusions consacré par l'art. 106 CPC. Quant au comportement certes peu courtois de l'employeuse, il n'était pas illicite et l'ordre juridique n'avait pas à le sanctionner. La demanderesse avait pris des conclusions disproportionnées sur lesquelles la défenderesse avait été obligée de se défendre point par point.
Confrontée à l'argumentation des juges cantonaux, qui n'est ici que résumée, la recourante oppose une très brève critique ne satisfaisant pas aux exigences de motivation. On rappellera par surabondance que le juge dispose d'une large appréciation dans l'application des art. 106 s. CPC.
9.
En définitive, le recours doit être rejeté dans la mesure où il est recevable.
En conséquence, la recourante supportera les frais de la procédure fédérale et versera à la partie adverse une indemnité pour ses frais d'avocat (art. 66 al. 1 et art. 68 al. 1 et 2 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 à 5'500 fr., sont mis à la charge de la recourante.
3.
La recourante versera à l'intimée une indemnité de 6'500 fr. à titre de dépens.
4.
Le présent arrêt est communiqué aux parties et au Tribunal cantonal du canton de Fribourg.
Lausanne, le 10 juin 2020
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La présidente : Kiss
La greffière : Monti