Faits :
A.
A._ a été engagée le 1 er avril 2011 en qualité d'aide comptable par la fiduciaire W._, succursale de Z._ Sàrl; un nouveau contrat de travail a été conclu le 22 décembre 2014, dans le seul but de remplacer la raison sociale de l'employeuse par X._ Sàrl (ci-après: X._).
Au printemps 2015, l'employée a eu un entretien avec sa hiérarchie, au cours duquel il lui a été proposé de reprendre une partie du travail d'une autre collaboratrice, ce qu'elle a refusé.
Le 22 juin 2015, l'employeuse lui a signifié oralement son licenciement pour le 31 août suivant, pour des motifs économiques et de fonctionnement de la société; le même jour, elle lui a adressé une correspondance confirmant cet entretien.
Dès le lendemain, l'employée s'est trouvée en incapacité totale de travailler.
Accompagnée d'une amie, elle s'est rendue à la fiduciaire le 30 juin 2015 dans le but de remettre son certificat médical. Dans un premier temps, elle n'a pas pénétré dans les locaux; seule son amie y est allée. Dans un second temps, M._, l'une de ses collègues, l'a invitée à venir boire un café à l'intérieur des locaux, en lui précisant que les associés gérants étaient absents et qu'elle se trouvait seule avec l'apprenti, N._. L'employée a accepté cette proposition; en partant, elle a récupéré, sans s'en cacher, le reste de ses effets personnels se trouvant dans son bureau, à savoir la photo de son père, et a emporté un carnet contenant des cartes de visite.
Informés de ce passage plus d'une dizaine de jours plus tard, les associés gérants de X._ ont, par pli du 13 juillet 2015, signifié à l'employée son licenciement avec effet immédiat; ils lui reprochaient entre autres d'avoir emporté un classeur contenant des cartes de visite des clients de la société, d'avoir laissé entendre au personnel que les associés gérants ne devaient pas être informés de sa venue et d'avoir ainsi brisé la confiance qui devait exister entre eux.
Demeurée sans emploi, l'employée a perçu un montant de 17'635 fr.20 versé par B._ Caisse de chômage (ci-après: B._) pour la période de juillet à novembre 2015.
B.
Par demande du 14 mars 2016, A._ a notamment conclu à ce que X._ lui verse la somme de 30'000 fr., prétention réduite par la suite à 25'400 fr.
B._ a déposé une requête d'intervention et conclu à ce que X._ soit condamnée à lui payer le montant de 17'173 fr.45.
Le Tribunal de Prud'hommes de l'arrondissement de Lausanne s'est prononcé le 7 février 2017. Il a retenu que A._ avait droit au paiement de 7'191 fr.60, dont à déduire les charges sociales, à titre de salaire et de vacances et de 14'900 fr. à titre d'indemnité pour licenciement immédiat injustifié. Pour le surplus, l'action était rejetée. L'employeuse était par ailleurs reconnue débitrice de 17'173 fr.45 envers B._.
Statuant le 14 juin 2017 sur appel de X._, la Cour d'appel civile du Tribunal cantonal du canton de Vaud a rejeté l'appel et confirmé le jugement attaqué.
C.
Interjetant un recours en matière civile, X._ demande au Tribunal fédéral de prononcer qu'elle n'est débitrice ni de A._, ni de B._.
Dans sa réponse, l'employée (intimée 1) conclut au rejet du recours.
B._ (intimée 2) s'en remet à justice.
La cour cantonale se réfère aux considérants de son arrêt.

Considérant en droit :
1.
1.1. Les conditions de recevabilité du recours en matière civile sont en principe satisfaites, notamment à raison de la valeur litigieuse minimale de 15'000 fr. fixée pour les contestations relevant du droit du travail (<ref-law>). Demeure réservé l'examen des griefs particuliers.
1.2. Le recours en matière civile peut être exercé pour violation du droit fédéral (<ref-law>), y compris le droit constitutionnel (<ref-ruling> consid. 2.1 p. 247; <ref-ruling> consid. 2.4 p. 313). Le Tribunal fédéral applique le droit d'office (<ref-law>). Compte tenu de l'exigence de motivation contenue à l'art. 42 al. 1 et 2 LTF, sous peine d'irrecevabilité (<ref-law>), le Tribunal fédéral 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 (<ref-ruling> consid. 2; <ref-ruling> consid. 2; <ref-ruling> 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 (<ref-law>; <ref-ruling> consid. 1.4 in fine).
Le Tribunal fédéral conduit son raisonnement juridique sur la base des faits constatés dans la décision attaquée (<ref-law>); il peut toutefois compléter ou rectifier même d'office les constatations de fait qui se révèlent manifestement inexactes, c'est-à-dire arbitraires aux termes de l'art. 9 Cst. (<ref-law>; <ref-ruling> consid. 1.3.1 p. 253; <ref-ruling> consid. 2.3 p. 266; <ref-ruling> consid. 4.1.2 p. 62). La partie recourante est autorisée à attaquer des constatations de fait ainsi irrégulières si la correction du vice est susceptible d'influer sur le sort de la cause (<ref-law>). Il lui incombe alors d'indiquer de façon précise en quoi les constatations critiquées sont contraires au droit ou entachées d'une erreur indiscutable; les critiques dites appellatoires, tendant simplement à une nouvelle appréciation des preuves, sont irrecevables (<ref-ruling> consid. 1.4.3 p. 254; voir aussi <ref-ruling> consid. 1.3.1 p. 253; <ref-ruling> consid. 2.3 p. 266; <ref-ruling> consid. 4.1.2 p. 62).
2.
Il est constant que la recourante était liée à l'intimée par un contrat de travail. Selon l'employeuse, elle a résilié à bon droit le contrat avec effet immédiat, car l'employée, alors en arrêt maladie, était passée dans les locaux de l'entreprise le 30 juin 2015 et avait emporté à cette occasion un carnet contenant des cartes de visite de clients de la société. A l'instar du Tribunal de Prud'hommes, la Cour d'appel civile a jugé que les motifs invoqués ne justifiaient pas un licenciement immédiat.
2.1. La recourante reproche tout d'abord à la cour cantonale de ne pas avoir traité l'argumentation développée dans son mémoire d'appel, selon laquelle les premiers juges avaient apprécié arbitrairement les preuves à disposition. Elle reproduit de larges passages de l'écriture en cause, dans lesquels elle fait grief au Tribunal de Prud'hommes de ne pas avoir tenu compte des déclarations de deux témoins; il est apparemment question des déclarations du témoin M._ (" selon moi, elle n'était pas autorisée à reprendre ce portefeuille qui appartenait au bureau ainsi qu'une partie de son contenu ") et du témoin N._ (" pour moi ce comportement n'était pas normal car c'était les cartes de visite de l'entreprise et on ne les prend pas sans l'accord du patron ").
Sur ce point, la recourante n'invoque aucune norme protégeant son droit d'être entendue, ce qui rend ipso facto ce pan du moyen irrecevable (<ref-law>).
Fût-il recevable qu'il serait privé de tout fondement. La cour cantonale a discuté l'allégation de la recourante selon laquelle le carnet contenant des cartes de visite, emporté par l'employée le 30 juin 2015, contiendrait " de nombreuses cartes de visite professionnelles, en tout cas largement plus que les deux retenues par le tribunal ". Elle a relevé que la recourante ne remettait pas en cause le fait que ce carnet contenait également des cartes personnelles, ni le fait que l'employée n'avait pas utilisé - ni eu l'intention d'utiliser - d'information confidentielle au préjudice de la recourante. Les juges vaudois en ont déduit que le seul fait que ce carnet, emporté au vu et au su des employés présents, ait contenu, outre des cartes de visite privées, des cartes de visite de clients de la fiduciaire - peu importe leur proportion - ne suffisait pas pour retenir une violation du devoir de fidélité (<ref-law>), celui-ci impliquant de ne pas utiliser ou divulguer auprès de tiers des informations confidentielles ou secrètes de l'employeur. Cette argumentation se suffit à elle-même. C'est le lieu de préciser que le juge n'est pas tenu d'exposer et de discuter tous les faits, moyens de preuve et griefs invoqués par les parties; en effet, il n'y a violation du droit d'être entendu que si l'autorité ne satisfait pas à son devoir minimum d'examiner et de traiter les problèmes pertinents (<ref-ruling> consid. 3.2.1 p. 565; <ref-ruling> consid. 2.2 p. 183; <ref-ruling> consid. 5.2 p. 236). Il s'ensuit que la cour cantonale n'avait pas à discuter les opinions personnelles des deux témoins précités, celles-ci n'étant pas décisives.
Une violation du droit d'être entendu est ainsi exclue.
2.2. La recourante fait également grief aux juges cantonaux de s'être livrés à une appréciation arbitraire des preuves.
Selon elle, le carnet emporté par l'employée comportait de nombreuses cartes de visite de clients de la fiduciaire et, en outre, son contenu ne correspond pas à celui du carnet produit en procédure. La recourante ne remet toutefois pas en cause le fait que des cartes de visite personnelles figuraient également dans le carnet litigieux. A cet égard, la recourante perd de vue que l'autorité précédente a considéré que le nombre de cartes professionnelles concernées et leur proportion par rapport aux cartes privées étaient des éléments qui n'avaient pas d'incidence sur le sort du litige (cf. <ref-law>).
S'agissant de l'intention réelle de l'employée lorsque celle-ci a emporté le carnet litigieux, la recourante prétend que les constatations des juges cantonaux sont insoutenables. La motivation du grief d'arbitraire se limite sur ce point à la reprise d'un passage du mémoire d'appel. De ces lignes, difficilement compréhensibles, on ne saurait manifestement conclure à un quelconque arbitraire de la part de la cour cantonale.
Pour autant que recevable, le moyen fondé sur l'art. 9 Cst. doit être rejeté.
2.3. La recourante reproche enfin aux juges cantonaux une violation des art. 321a et 337 CO et reprend, par citation, la motivation qu'elle avait développée à l'encontre du premier jugement.
Il doit exister un lien entre la motivation du recours et la décision attaquée. Il incombe à la partie recourante de se déterminer au moins brièvement par rapport aux considérants de l'arrêt entrepris. Elle ne satisfait pas aux exigences de l'<ref-law> si elle reprend mot pour mot l'argumentation formée dans le cadre du recours cantonal sans expliquer, ne serait-ce que succinctement, en quoi l'autorité cantonale supérieure violerait elle aussi le droit fédéral (<ref-ruling> consid. 2.1 et 2.3 p. 245 ss).
En l'espèce, la motivation du recours ne remplit pas ces conditions, puisque la recourante se contente de reproduire un extrait de son mémoire d'appel. Le moyen est dès lors irrecevable.
3.
Sur le vu de ce qui précède, le recours doit être rejeté dans la mesure où il est recevable.
La recourante, qui succombe, prendra à sa charge les frais judiciaires (<ref-law>). Par ailleurs, elle versera des dépens à l'intimée 1, qui a déposé une réponse par l'entremise de son avocat (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 à 2'000 fr., sont mis à la charge de la recourante.
3.
La recourante versera à l'intimée A._ une indemnité de 2'500 fr. à titre de dépens.
4.
Le présent arrêt est communiqué aux parties et à la Cour d'appel civile du Tribunal cantonal du canton de Vaud.
Lausanne, le 24 janvier 2018
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente : Kiss
La Greffière : Godat Zimmermann