Faits :
A.
A.a. B._ (ci-après : l'assurée), née en 1963, est affiliée auprès de A._ SA (ci-après: la compagnie d'assurance) au titre de l'assurance-maladie complémentaire. Elle a pu bénéficier d'un rabais dans le cadre d'un contrat collectif conclu par son employeur.
S'agissant de la couverture d'assurance en cas d'hospitalisation, l'assurée a opté pour le produit P1._ privé, sans franchise, couvrant notamment les frais supplémentaires de traitement et de pension en cas de séjour hospitalier en division privée, avec une participation aux frais de convalescence, d'aide à domicile et de transport.
Le 1 er janvier 2008, la compagnie d'assurance a été intégrée dans le groupe C._, organisé sous forme de holding, qui comprend notamment C._ SA.
A.b. En 2011, la prime d'assurance P1._ de l'assurée s'élevait à 125 fr. 80 par mois. En 2012, cette prime a été fixée à 394 fr. 50, après déduction d'un rabais de 20 fr. 80 en vertu du contrat-cadre souscrit par l'employeur.
Par courrier du 24 janvier 2012, l'assurée a contesté cette augmentation de 213,6%, la qualifiant de « surprenante et injustifiée ». La compagnie d'assurance lui a répondu le 17 février 2012 qu'elle faisait partie du contrat collectif conclu avec son employeur, de sorte qu'elle bénéficiait depuis des années d'un rabais sur ses assurances complémentaires; au vu de la rentabilité du contrat et étant donné que les primes encaissées ne couvraient plus les prestations versées, l'assurance P1._ avait dû faire l'objet d'une adaptation plus importante que les autres années.
Par pli du 21 février 2012, l'assurée a rétorqué qu'à l'évidence, P1._ était désormais une police fermée qui n'acceptait plus aucun assuré; partant, elle demandait à être transférée dans une police d'assurance complémentaire aux prestations équivalentes, avec effet rétroactif au 1 er janvier 2012.
Diverses correspondances ont été échangées sans que la compagnie d'assurance n'accède à la requête de l'assurée.
B.
B.a. Le 28 août 2013, l'assurée a saisi la Chambre des assurances sociales de la Cour de justice du canton de Genève d'une demande dirigée contre la compagnie d'assurance, concluant d'une part à son transfert dans l'assurance hospitalisation P2._ avec effet rétroactif au 1 er janvier 2012, d'autre part au remboursement des montants perçus en trop en raison des primes plus élevées de l'assurance complémentaire P1._.
En substance, la demanderesse a fait valoir que l'assurance P1._ était un portefeuille fermé. Elle a cité l'exemple de deux amies ayant demandé à conclure une assurance P1._, auxquelles la défenderesse avait répondu que le produit n'existait plus; ces personnes s'étaient vu proposer respectivement une assurance P2._ avec des prestations équivalentes moyennant une prime mensuelle de 271 fr. 10 et une assurance P3._ pour une prime de 112 fr. 60 par mois. Une copie des deux propositions d'assurance établies par C._ SA a été produite.
Par réponse du 27 septembre 2013, la défenderesse a conclu au rejet de la demande. Elle a concédé que l'assurance litigieuse n'était plus spontanément proposée aux nouveaux assurés, tout en précisant que ceux-ci pouvaient en conclure une s'ils le souhaitaient; de son point de vue, il s'agissait d'une assurance passive se distinguant d'un portefeuille fermé.
En annexe à sa réplique, la demanderesse a produit un courrier du 4 octobre 2013 par lequel la défenderesse lui annonçait la résiliation du contrat collectif avec son employeur pour fin 2013 et la continuation de sa couverture d'assurance P1._ sur une base individuelle à partir du 1 er janvier 2014.
B.b. Le 3 mars 2014, la Cour de justice a adressé un questionnaire à la défenderesse en l'invitant à joindre « toutes pièces justificatives utiles (extraits statistiques informatisés...) » à l'appui de ses réponses. Elle demandait en particulier à quelle date remontait la dernière conclusion d'une police d'assurance P1._, quel était le nombre de polices P1._ conclues en 2011, 2012, 2013 et 2014, respectivement quelle était l'évolution du nombre total des assurés P1._ et leur âge moyen pendant cette même période.
Par courrier du même jour, la Cour a posé à C._ SA des questions semblables à propos de la police d'assurance P2._. Elle a par ailleurs demandé à quelle assurance du groupe C._ SA le produit P1._ correspondait le mieux, si le produit P2._ n'était pas le contrat le plus équivalent possible à P1._.
La défenderesse a répondu au questionnaire par courrier du 20 mars 2014, sans fournir de pièces justificatives. Elle a indiqué que la dernière conclusion d'une assurance P1._ remontait au 12 mars 2014. Les chiffres fournis montraient que la conclusion de contrats P1._ avait diminué de 63% entre 2011 et 2012, puis de 22% entre 2012 et 2013. Le nombre d'assurés entre le 1 er janvier 2011 et le 1 er janvier 2014 avait diminué de - 40,6 %, tandis que l'âge moyen du portefeuille, supérieur à 49 ans en 2011, avait augmenté les années suivantes (cf. au surplus consid. 3.2 infra).
C._ SA a pour sa part indiqué que le nombre d'assurés à l'assurance hospitalisation P2._ avait augmenté de plus de 64% entre le 1 er janvier 2011 et le 1 er janvier 2014; l'âge moyen du portefeuille, inférieur à 40 ans en 2011, avait diminué en 2014. Selon ses indications, le montant des primes mensuelles pour une femme née en 1963, domiciliée à Genève, était de 231 fr. 30 en 2012, 240 fr. 60 en 2013 et 257 fr. 30 en 2014. Quant à savoir à quel produit du groupe l'assurance P1._ correspondait le mieux, si ce n'était pas l'assurance P2._, C._ SA a répondu que ce produit-ci était un produit de l'assurance complémentaire de C._ SA pour l'hospitalisation à titre privé, tout comme P1._ était un produit de l'assurance complémentaire de la défenderesse pour l'hospitalisation à titre privé.
B.c. La Cour de justice a interrogé par écrit les deux personnes qui, selon les allégations de la demanderesse, avaient vainement demandé à conclure une assurance P1._. La défenderesse s'est déterminée par courrier du 10 novembre 2014 sur les réponses données.
La demanderesse s'est encore exprimée par écritures des 22 janvier et 25 juin 2015, tandis que la défenderesse s'est déterminée par écriture du 23 juillet 2015. Le 12 août 2015, la demanderesse a persisté dans ses conclusions. Après avoir adressé une copie de cette écriture à la défenderesse, la Chambre des assurances sociales a gardé la cause à juger.
B.d. Par arrêt du 8 octobre 2015, la Chambre des assurances sociales a partiellement admis la demande, en ce sens qu'elle a d'une part ordonné à la compagnie d'assurance de mettre en oeuvre le transfert de l'assurée dans l'assurance hospitalisation P2._ avec effet rétroactif au 1 er janvier 2012, et l'a d'autre part condamnée à rembourser à l'assurée la différence des primes payées en trop à partir du 1 er janvier 2012.
Les juges cantonaux ont considéré en bref que la défenderesse n'avait pas établi par pièces justificatives les chiffres qu'elle avait communiqués, mais que quand bien même des polices d'assurance P1._ auraient encore été conclues à compter de 2012, ce portefeuille devait néanmoins être considéré comme un portefeuille fermé au sens de l'art. 156 de l'ordonnance du 9 novembre 2005 sur la surveillance des entreprises d'assurances privées (OS; RS 961.011); sur cette base, la demanderesse était en droit d'exiger son transfert dans un portefeuille ouvert d'une entreprise d'assurance appartenant au même groupe d'assurance, à savoir une assurance d'hospitalisation P2._ auprès de C._ SA.
C.
La compagnie d'assurance a interjeté un recours en matière civile et un recours constitutionnel subsidiaire auprès du Tribunal fédéral. Elle a conclu principalement au rejet de la demande.
Une ordonnance présidentielle du 8 décembre 2015 a fait droit à la requête d'effet suspensif formée à l'appui du recours.
L'assurée a conclu au rejet des recours en tant qu'ils sont recevables.
Chaque partie a spontanément déposé une écriture supplémentaire.

Considérant en droit :
1.
1.1. L'arrêt attaqué a été rendu en matière civile (<ref-law>) par une instance cantonale unique au sens de l'<ref-law>, statuant sur les litiges relatifs aux assurances complémentaires à l'assurance-maladie sociale. En conséquence, il peut faire l'objet d'un recours en matière civile sans égard à la valeur litigieuse, en vertu de l'<ref-law> (<ref-ruling> consid. 1.1 et les références citées).
Interjeté en temps utile (<ref-law>) par la partie défenderesse qui a succombé dans ses conclusions libératoires et a de ce fait qualité pour recourir (<ref-law>), le recours en matière civile est recevable sur le principe. Il s'ensuit que le recours constitutionnel subsidiaire est irrecevable (<ref-law>).
1.2. Le recours en matière civile peut être interjeté pour violation du droit fédéral (<ref-law>), notion qui inclut le droit constitutionnel (<ref-ruling> consid. 2.1 p. 247). Le Tribunal fédéral applique le droit d'office (<ref-law>). Il n'est pas lié par l'argumentation des parties et apprécie librement la portée juridique des faits (<ref-ruling> consid. 2.1); il s'en tient cependant aux questions juridiques que la partie recourante soulève dans la motivation du recours et ne traite donc pas celles qui ne sont plus discutées par les parties, sous réserve d'erreurs manifestes (<ref-law>; <ref-ruling> consid. 2 p. 116; <ref-ruling> consid. 1.3). Le Tribunal fédéral n'examine la violation d'un droit constitutionnel que si le grief a été invoqué et motivé (<ref-law>); l'acte de recours doit alors contenir un exposé succinct des droits ou principes constitutionnels violés et exposer de manière claire et circonstanciée en quoi consiste leur violation (<ref-ruling> consid. 1.2).
2.
2.1. La défenderesse reproche aux juges cantonaux d'avoir violé son droit d'être entendue et certaines règles de la procédure simplifiée. Elle relève qu'au moins une audience devrait avoir lieu au cours d'une telle procédure (audience d'instruction selon l'<ref-law> et/ou audience de plaidoiries selon les art. 228 ou 232 CPC), ce qui n'a pas été le cas en l'occurrence. Par ailleurs, l'<ref-law> énonce qu'au terme de l'administration des preuves, les parties peuvent se prononcer sur les résultats de l'administration des preuves et sur la cause. Or, la clôture de l'instruction n'a pas été prononcée: la Cour de justice a omis d'informer les parties que la cause était en état d'être jugée, de sorte que celles-ci n'ont pas pu se prononcer ou tacitement accepter de renoncer aux débats finaux (<ref-law>).
2.2. En matière d'assurance complémentaire à l'assurance-maladie sociale, le juge statue selon les règles de la procédure civile simplifiée (art. 243 al. 2 let. f CPC); la maxime inquisitoire sociale est applicable (<ref-law>). Si la demande n'est pas motivée, le tribunal la notifie au demandeur et cite les parties aux débats; si la demande est motivée, le tribunal fixe un délai au défendeur pour se prononcer par écrit (<ref-law>). Lorsque les circonstances l'exigent, le tribunal peut tenir des audiences d'instruction (<ref-law>).
Que la demande soit motivée ou non, le tribunal ne peut en principe pas rendre une décision sur le fond sans avoir tenu une audience de débats principaux (Hauptverhandlung), qui est en principe publique (<ref-law>). Le droit fondamental à la tenue d'une audience publique est ainsi assuré. Cela étant, les parties peuvent d'un commun accord renoncer aux débats principaux (<ref-law> par renvoi de l'<ref-law>). La loi ne prescrivant aucune forme, une renonciation par actes concluants n'est pas exclue. Dans la mesure toutefois où des droits fondamentaux sont en cause (droit d'être entendu; droit à la tenue d'une audience publique), une telle renonciation ne saurait être admise à la légère. En particulier lorsque les parties sont dépourvues de connaissances juridiques, le tribunal doit les informer qu'il statuera sur le vu des écritures à moins qu'elles ne sollicitent expressément une audience de débats dans un certain délai. Ces considérations valent spécialement pour les causes relatives à l'assurance complémentaire à l'assurance-maladie sociale, où le juge doit établir les faits d'office, et a fortiori lorsque la cause est jugée par une instance cantonale unique au sens de l'<ref-law> (<ref-ruling> consid. 3.2).
2.3. Le droit d'être entendu comporte plusieurs aspects, dont notamment le droit à des débats publics, le droit d'exprimer son point de vue - qui peut être exercé par écrit - et le droit de faire administrer des preuves. La motivation de la défenderesse est peu explicite. Elle semble en particulier se plaindre du fait qu'elle n'a pas pu s'exprimer.
Ce grief est contredit par l'état de fait de l'arrêt attaqué et par le dossier. L'autorité cantonale a transmis la demande motivée déposée par l'assurée le 28 août 2013 à la défenderesse, qui a déposé sa réponse le 27 septembre 2013. Après la réplique de la demanderesse, l'autorité cantonale a procédé à des mesures d'instruction, notamment en adressant un questionnaire écrit à la défenderesse et à C._ SA. La demanderesse s'est exprimée par écriture du 5 mai 2014, puis la défenderesse par écriture du 20 juin 2014. Après avoir recueilli les questions que les parties souhaitaient poser aux deux témoins proposés par la demanderesse, la cour cantonale a interrogé par écrit ces deux personnes et a invité les parties à se déterminer sur les réponses données. La défenderesse a déposé une écriture le 10 novembre 2015. L'un des deux témoins a dû préciser ses déclarations sur requête de la demanderesse, à la suite de quoi la cour a fixé un délai aux parties pour lui faire part de leurs dernières observations. La demanderesse s'est encore exprimée par écriture du 22 janvier 2015 puis, comme la cour cantonale avait oublié de lui transmettre un acte de la défenderesse du 20 juin 2014, par écriture du 25 juin 2015. Par acte du 23 juillet 2015, la défenderesse a déclaré maintenir le contenu de ses écritures précédentes ainsi que ses conclusions tendant au rejet de la demande. La demanderesse s'est encore brièvement déterminée par acte du 12 août 2015. Après avoir adressé le lendemain une copie de cette écriture à la défenderesse, « pour information », la cour cantonale a statué par arrêt du 8 octobre 2015.
Il appert ainsi que les parties, et singulièrement la défenderesse, ont eu amplement l'occasion de se prononcer sur le résultat de l'administration des preuves et sur la cause.
La défenderesse semble aussi se plaindre de ne pas avoir eu connaissance de la clôture de l'instruction. Néanmoins, elle ne plaide pas qu'elle aurait voulu requérir des mesures d'instruction complémentaires, ni ne précise le contenu de ces mesures; cela suffit à clore toute discussion.
Enfin, la défenderesse laisse entendre qu'elle ne pouvait renoncer en connaissance de cause aux débats principaux, puisque la Cour ne l'avait pas prévenue qu'elle gardait la cause à juger. En réalité, au vu du déroulement de la procédure, tant la demanderesse, représentée par un avocat, que la défenderesse, agissant par deux collaborateurs de son service juridique dont un (e) titulaire du brevet d'avocat, devaient comprendre que la cour cantonale, après avoir recueilli les dernières observations des parties, allait passer au jugement sans tenir d'audience de débats. Il y a lieu d'admettre que les deux parties ont renoncé par actes concluants à une telle audience. Si la défenderesse (respectivement son service juridique) avait voulu obtenir la tenue d'une audience alors qu'elle devait savoir que la cour cantonale s'apprêtait à statuer sur pièces, elle aurait dû la requérir au moment où la cour a recueilli les dernières observations des parties. Il serait au demeurant contraire aux règles de la bonne foi de garder en réserve un tel moyen pour ne l'invoquer qu'en cas d'issue défavorable de la procédure (cf. <ref-ruling> consid. 3.2.1 p. 124; <ref-ruling> consid. 2.2 p. 4; <ref-ruling> consid. 3.2.2).
3.
3.1. La défenderesse reproche aux juges cantonaux d'avoir violé la maxime inquisitoire sociale et son droit d'être entendue, respectivement d'avoir versé dans l'arbitraire en considérant qu'elle n'avait produit aucune pièce justificative à l'appui des chiffres communiqués le 20 mars 2014, notamment le nombre de polices P1._ conclues. Elle estime avoir démontré que des contrats portant sur ce produit ont été conclus jusqu'en mars 2014, les données fournies étant extraites de ses statistiques informatiques. L'on ne saurait exiger d'elle qu'elle produise 2'067 propositions d'assurance caviardées. Au demeurant, si les juges estimaient que les réponses fournies n'étaient pas probantes, ils auraient dû le lui faire savoir.
3.2. Les juges cantonaux ont certes reproché à la défenderesse de n'avoir produit aucune pièce justificative établissant les chiffres communiqués le 20 mars 2014. Néanmoins, dans une argumentation subsidiaire, ils ont jugé que même en tenant compte de ces chiffres, l'existence d'un portefeuille fermé au sens de l'art. 156 OS devait être retenue.
Le grief est donc privé d'objet en tant que l'argumentation subsidiaire fondée sur les chiffres communiqués par la défenderesse peut être confirmée, ce qui sera démontré ci-après (consid. 4). D'après les chiffres communiqués par la défenderesse et partiellement repris dans son recours, le nombre de polices P1._ conclues a passé de 1'223 en 2011 à 452 en 2012, puis à 350 en 2013 et à 42 en 2014 (état au 12 mars 2014). L'âge moyen des assurés bénéficiant de cette couverture s'est élevé de 49,22 ans en 2011 à 51,57 ans en 2012, puis à 52,69 en 2013 et à 54,11 en 2014. Par ailleurs, selon l'arrêt attaqué, le nombre total d'assurés P1._ a chuté de - 40,6 % entre le 1 er janvier 2011 et le 1 er janvier 2014.
3.3.
3.3.1. Dans la foulée, la défenderesse reproche à la Cour de justice d'avoir enfreint la maxime inquisitoire sociale en s'abstenant d'instruire le fait que l'assurée avait bénéficié de conditions préférentielles grâce au contrat-cadre, alors même que les preuves y relatives avaient été produites.
3.3.2. Le grief, peu clair, semble lié à un argument soulevé plus loin dans le recours, selon lequel la hausse des primes serait due à la suppression des rabais accordés dans le cadre du contrat collectif, qui a dû être résilié.
Le juge doit faire preuve de retenue comme dans un procès soumis à la procédure ordinaire lorsque la partie est représentée par un avocat (cf. <ref-ruling> consid. 2.3.2); tel est le cas de la défenderesse, qui procédait par son service juridique, notamment par un (e) collaborateur (/trice) disposant du brevet d'avocat. Au demeurant, le moyen paraît en réalité ressortir à une critique de l'appréciation des preuves quant aux causes de la hausse des primes, critique qui serait de toute façon insuffisamment étayée, et partant irrecevable. L'on se bornera à relever que la hausse drastique de la prime de l'assurée en 2012 est intervenue alors que le contrat collectif était encore en vigueur. Par ailleurs, la défenderesse elle-même se prévaut des chiffres conduisant à la conclusion que les conditions d'application de l'art. 156 OS sont réalisées (cf. consid. 4.5 infra).
4.
4.1. En droit, la défenderesse reproche aux juges cantonaux d'avoir violé l'art. 156 OS en qualifiant l'assurance P1._ de portefeuille fermé. Cette règle s'appliquerait uniquement lorsque l'entreprise d'assurance n'inclut plus aucun contrat d'assurance dans un portefeuille; or, la défenderesse a conclu des contrats d'assurance P1._ au nombre de 1'223 en 2011, 452 en 2012, 350 en 2013 et 42 entre le 1 er janvier et le 12 mars 2014.
4.2. L'art. 156 de l'ordonnance précitée sur la surveillance des entreprises d'assurances privées (OS) a la teneur suivante:
« 1 Si une entreprise d'assurance n'inclut plus de contrats d'assurance dans un portefeuille (portefeuille fermé), les preneurs d'assurance de ce portefeuille ont le droit de conclure, en remplacement du contrat d'assurance en cours, un contrat aussi équivalent que possible intégré dans un portefeuille ouvert de l'entreprise d'assurance ou d'une entreprise d'assurance appartenant au même groupe d'assurance, pour autant que l'entreprise d'assurance ou l'entreprise du groupe exploite un tel portefeuille ouvert.
(« Führt das Versicherungsunternehmen einem Versicherungsbestand keine Versicherungsverträge mehr zu [geschlossener Bestand]...»; « Se l'impresa di assicurazione non aggiunge più contratti d'assicurazione al portafoglio assicurativo [portafoglio chiuso]...»)
2L'entreprise d'assurance doit informer sans délai les preneurs d'assurance concernés de l'existence de ce droit, ainsi que des couvertures d'assurance qu'elle offre dans des portefeuilles ouverts.
3L'âge et l'état de santé du preneur d'assurance à la conclusion du contrat en cours sont déterminants pour le passage au nouveau contrat. »
Dans un arrêt publié, le Tribunal fédéral a précisé que cette disposition tend à protéger les preneurs d'assurances complémentaires âgés: il s'agit d'éviter que ces assurés soient poussés à résilier leur assurance complémentaire à cause d'une augmentation massive des primes due au mécanisme du portefeuille fermé. Plus généralement, l'art. 156 OS vise à empêcher que les entreprises d'assurance puissent, par un système de portefeuilles fermés successifs (splitting), acquérir les bons risques, puis se débarrasser ultérieurement de ces assurés lorsque, de par leur âge, ils sont devenus de mauvais risques (<ref-ruling> consid. 4.3.1 et 4.4.4). L'art. 156 OS n'impose pas de nouvelle relation contractuelle à l'entreprise d'assurance; le cas échéant, il l'oblige uniquement à corriger une détérioration de la situation contractuelle des assurés actuels au niveau des primes, péjoration que l'assureur a lui-même provoquée (<ref-ruling> consid. 4.4.2).
4.3. Dans sa circulaire 2008/25 intitulée « obligation de renseigner - assureurs », l'Autorité fédérale de surveillance des marchés financiers FINMA considère que la constitution d'un portefeuille d'assurance-maladie complémentaire fermé est un fait qui doit lui être annoncé en vertu de l'art. 29 al. 2 de la loi fédérale sur l'Autorité fédérale de surveillance des marchés financiers (LFINMA - RS 956.1; Circulaire FINMA 2008/25, p. 3 ch. 4 et 7). Le nombre de nouveaux contrats conclus durant une certaine période pour le portefeuille en question, l'âge des assurés et le genre de risques font partie des critères retenus par la FINMA pour admettre un portefeuille fermé. On peut également admettre un portefeuille fermé lorsqu'un assureur propose des produits aux prestations en grande partie identiques mais présentant des différences de primes importantes (Circulaire FINMA 2008/25, p. 4 ch. 15).
4.4. Dans le cadre des travaux de révision totale de la loi fédérale sur le contrat d'assurance (LCA; RS 221.229.1), il a été question d'introduire dans cette loi une règle semblable à l'art. 156 OS.
L'avant-projet de 2006 reprenait la formulation de l'art. 156 OS, en ce sens qu'il définissait le portefeuille fermé comme le cas où une entreprise d'assurance n'inclut plus de contrats d'assurance dans un portefeuille (art. 103 al. 1 de l'avant-projet de la commission d'experts, du 31 juillet 2006). Le rapport explicatif faisait en substance le commentaire suivant: Il arrive que des entreprises d'assurance offrent à des preneurs d'assurance jeunes et en bonne santé de nouveaux produits assortis de primes nettement plus avantageuses ressemblant largement aux produits existants. Les personnes déjà assurées qui présentent un risque de maladie plus élevé ne se voient pas proposer ces produits et restent dans le portefeuille actuel, qui par conséquent n'est plus élargi (portefeuille fermé). Si l'entreprise d'assurance n'ajoute plus de bons risques dans le portefeuille, les tarifs des primes risquent d'augmenter massivement et de rendre l'assurance complémentaire hors de prix pour de nombreux preneurs d'assurance, alors même que ceux-ci se sont acquittés de leurs primes pendant de nombreuses années. L'art. 103 de l'avant-projet vise à éviter de telles conséquences en octroyant au preneur d'assurance d'un portefeuille fermé le droit de conclure un contrat aussi équivalent que possible dans un portefeuille ouvert de l'entreprise d'assurance ou d'une entreprise appartenant au même groupe. De nature relativement impérative, l'art. 103 de l'avant-projet transpose ainsi dans la LCA le contenu de l'art. 156 OS, axé sur le droit privé.
Le nouveau projet de 2009 comportait une modification, en ce sens que le portefeuille fermé y était désormais défini comme le cas où « l'entreprise d'assurance n'affecte généralement plus de contrats individuels à un portefeuille d'assurance » (« Führt das Versicherungsunternehmen einem Versicherungsbestand im Wesentlichen keine Einzelverträge mehr zu »; art. 116 al. 1 du projet du 21 janvier 2009). Le commentaire du rapport explicatif restait strictement le même qu'en 2006 (Département fédéral des finances, Rapport explicatif relatif au projet soumis à consultation, nouvelle version du 24 février 2009, ch. 2.2.27, cité dans l'<ref-ruling> consid. 4.1 p. 201).
Le projet de 2011 publié dans la Feuille fédérale reprend telle quelle cette version modifiée de 2009; le Message reproduit le commentaire de 2006 (Message du 7 septembre 2011 relatif à la révision totale de la loi sur le contrat d'assurance, FF 2011 7183; art. 112 al. 1 du projet, in FF 2011 7228; version italienne: « Se in linea di principio l'impresa di assicurazione non aggiunge più contratti individuali all'effettivo di assicurati»).
Le projet n'a pas abouti, le Parlement ayant décidé de le renvoyer au Conseil fédéral en l'invitant à limiter la révision à des points précis (BOCN 2012 p. 2213, BOCE 2013 p. 265).
4.5. Au vu de ce qui précède, il faut admettre qu'une situation de portefeuille fermé, au sens de l'art. 156 OS, peut être retenue alors même que l'assureur conclut encore des polices d'assurance. La lettre de l'ordonnance fait certes inférer que le portefeuille est fermé lorsque plus aucun contrat d'assurance n'y est intégré. Toutefois, la ratio legis appelle une interprétation plus large: il s'agit d'éviter que des assurés plus âgés soient poussés à résilier leur assurance complémentaire à cause d'une augmentation massive de leur prime, due au fait que l'assureur n'élargit plus le portefeuille et attire les personnes plus jeunes présentant de bons risques vers des produits équivalents moyennant une prime sensiblement inférieure. L'assureur ne saurait échapper aux conséquences de l'art. 156 OS en se contentant d'ajouter un nombre minimal de nouveaux contrats dans le portefeuille tout en bénéficiant de l'effet recherché, à savoir un accroissement drastique et dissuasif des primes pour les assurés présentant de mauvais risques, tandis que les personnes plus jeunes sont attirées vers des produits très proches, mais nettement plus avantageux. La nuance qu'il était question d'introduire au niveau de la LCA dans les projets de 2009 (art. 116) et 2011 (art. 112) doit se comprendre comme une simple précision rédactionnelle et non comme un affaiblissement des exigences permettant de retenir une situation de portefeuille fermé, laquelle confère à l'assuré le droit de conclure une nouvelle police dans un portefeuille ouvert.
Même si la compagnie d'assurance a continué à conclure des contrats dans la proportion indiquée, cela ne fait pas obstacle à l'application de l'art. 156 OS et à la qualification de portefeuille fermé. Le nombre de nouveaux contrats P1._ a baissé de façon très importante, passant de 1223 pour l'année 2011 à 350 pour l'année 2013, le phénomène semblant se poursuivre au cours du premier trimestre 2014. Le nombre d'assurés a diminué de - 40,6 % entre janvier 2011 et janvier 2014, alors que l'âge moyen des preneurs du portefeuille a crû en 3 ans de 49,22 à 54,11. La prime d'assurance de la demanderesse a augmenté de façon drastique entre 2011 et 2012, passant de 125 fr. 80 à 394 fr. 50 (+ 213,6 %). La défenderesse a reconnu que le produit n'est plus proposé spontanément aux nouveaux assurés et que l'ajout de nouveaux assurés ne peut se faire qu'à travers des contrats collectifs existants. Parallèlement, une autre société du groupe offre un produit très semblable (infra consid. 4.6) à des prix nettement plus avantageux (231 fr. 30 en 2012); selon ses propres indications, l'âge moyen du portefeuille, inférieur à 40 ans en 2011, a baissé tandis que le nombre de nouveaux contrats a augmenté de + 64% entre 2011 et 2014. En bref, l'assurée se trouve bel et bien poussée à résilier son contrat en raison d'une hausse dissuasive de sa prime, alors que le portefeuille n'est (tout au plus) que faiblement repourvu de nouveaux assurés qui ne font pas partie des bons risques.
Dans ces circonstances, la cour cantonale n'a pas enfreint le droit fédéral en considérant que les prévisions de l'art. 156 OS étaient réalisées.
4.6. Dans une brève argumentation subsidiaire, la défenderesse soutient que les produits d'assurance P1._ et P2._ ne seraient pas équivalents au sens de l'art. 156 OS.
Cet argument confine à la mauvaise foi. En effet, lorsqu'un portefeuille d'assurance devient un portefeuille fermé au détriment des assurés qui y sont intégrés, ceux-ci ont le droit de conclure un nouveau contrat aussi équivalent que possible au contrat actuel. L'assureur a donc l'obligation de conclure un nouveau contrat similaire intégré dans un portefeuille ouvert, sans pouvoir se retrancher derrière le fait que le contrat similaire que l'assuré lui-même souhaite conclure n'offre pas des prestations rigoureusement identiques à celles de l'ancien contrat. Pour les motifs pertinents exposés par la cour cantonale, auxquels il peut être renvoyé, il faut admettre que le produit P2._ offre une couverture aussi équivalente que possible au produit P1._. La défenderesse ne prétend d'ailleurs pas que d'autres produits offerts par elle-même ou par d'autres entités du groupe présenteraient une plus grande équivalence.
5.
5.1. La défenderesse reproche aux juges cantonaux d'avoir violé l'<ref-law> en la condamnant à « mettre en oeuvre le transfert de la demanderesse dans l'assurance hospitalisation P2._ avec effet rétroactif au 1 er janvier 2012 », alors que la demanderesse avait conclu à ce que la défenderesse soit condamnée à l'« intégrer (...) dans le cercle de ses assurés au bénéfice d'une assurance d'hospitalisation P2._, avec effet au 1 er janvier 2012 ». Elle soutient en outre que le dispositif prononcé par les juges cantonaux ne serait pas exécutable dans la mesure où A._ SA et C._ SA sont deux personnes morales distinctes, la première ne pouvant pas contraindre la seconde - qui n'est pas partie à la procédure - à conclure une assurance d'hospitalisation P2._ avec la demanderesse, et ce avec effet rétroactif, ce qui poserait en outre la question de savoir comment traiter les prestations rendues et couvertes par l'assurance P1._ qui ne sont plus couvertes par l'assurance d'hospitalisation P2._.
5.2. Aux termes de l'<ref-law>, le tribunal ne peut accorder à une partie ni plus, ni autre chose que ce qui est demandé, ni moins que ce qui est reconnu par la partie adverse. Cette disposition consacre le principe bien connu ne eat iudex ultra petita partium, qui signifie que le demandeur détermine librement l'étendue de la prestation qu'il déduit en justice, alors que le défendeur décide de la mesure dans laquelle il veut se soumettre à l'action (JACQUES HALDY, in Code de procédure civile commenté, 2011, n. 1 ad <ref-law>). Il convient ainsi de déterminer, lorsque le tribunal n'alloue pas strictement les conclusions du demandeur, s'il reste néanmoins dans le cadre des conclusions prises, sans allouer plus que ce qui est demandé ni étendre l'objet de la contestation à des points qui ne lui ont pas été soumis (cf. <ref-ruling> consid. 3.2; <ref-ruling> consid. 3a). Ne statue pas ultra petita partium le tribunal arbitral saisi d'une action négatoire de droit, qui, l'estimant infondée, constate l'existence du rapport juridique litigieux dans le dispositif de sa sentence plutôt que de rejeter cette action (<ref-ruling> consid. 3a), ou encore le tribunal condamnant le défendeur à offrir la conclusion d'un bail plutôt que de le condamner à conclure un bail (arrêt 4A_520/2013 du 17 février 2014, consid. 4).
5.3. En l'espèce, en ordonnant à la défenderesse de mettre en oeuvre le transfert de la demanderesse dans l'assurance hospitalisation P2._ plutôt que de l'intégrer dans le cercle de ses assurés au bénéfice d'une assurance hospitalisation P2._, les juges cantonaux n'ont pas accordé à la demanderesse plus que ce que celle-ci demandait, ni n'ont étendu l'objet de la contestation à des points que celle-ci ne lui avait pas soumis. Par cette formulation du dispositif, qui aboutit à un minuset non à un aliud par rapport aux conclusions de la demanderesse, ils ont pris en considération le fait que la défenderesse - comme celle-ci le relève elle-même - ne peut pas conclure directement avec la demanderesse une assurance hospitalisation P2._, dans la mesure où ce produit est proposé par une entreprise d'assurance appartenant au même groupe que la défenderesse, mais juridiquement distincte de cette dernière.
Pour le surplus, la défenderesse ne saurait sérieusement contester être en mesure, au sein du groupe d'assurance auquel elle appartient et conformément au postulat de l'art. 156 al. 1 OS, de mettre en oeuvre le transfert de la demanderesse dans l'assurance hospitalisation P2._, proposée par C._ SA. On ne voit par ailleurs pas qu'un transfert rétroactif au 1 er janvier 2012, conformément aux conclusions prises par la demanderesse et dont le principe a déjà été admis par la jurisprudence (cf. <ref-ruling>), pose des problèmes insolubles.
Enfin, il n'appartenait pas à la cour cantonale d'anticiper les problèmes qui pourraient surgir au stade de l'éventuelle exécution forcée de son jugement, s'il fallait en arriver là. En l'état, la cour cantonale était fondée à statuer comme elle l'a fait à l'égard de la défenderesse, dès lors que ni C._ SA, ni le groupe dans lequel est intégrée la défenderesse ne sont parties à la procédure.
6.
Sur le vu de ce qui précède, l'arrêt attaqué échappe à la critique. Le recours en matière civile doit être rejeté, tandis que le recours constitutionnel subsidiaire doit être déclaré irrecevable.
Vu l'issue du recours, les frais de la présente procédure seront mis à la charge de la défenderesse et recourante (<ref-law>), qui versera en outre à la demanderesse et intimée 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 en matière civile est rejeté.
2.
Le recours constitutionnel subsidiaire est irrecevable.
3.
Les frais judiciaires, arrêtés à 2'000 fr., sont mis à la charge de la défenderesse.
4.
La défenderesse versera à la demanderesse une indemnité de 2'500 fr. à titre de dépens.
5.
Le présent arrêt est communiqué aux parties et à la Chambre des assurances sociales de la Cour de justice du canton de Genève.
Lausanne, le 9 juin 2016
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente: Kiss
La Greffière: Monti