En fait
La recourante détient depuis le 14 décembre 2012 le Old English Bulldog [B.] , pesant 50 kg, qui est régulièrement pris en charge par son partenaire de vie. Le couple vit avec le chien dans un immeuble d'habitation plurifamilial appartenant au partenaire de vie, dans lequel des appartements sont loués.
Le 28 novembre 2016, l'Office vétérinaire du canton de Zurich a ordonné, sous menace de sanction pénale au sens de l'art. 28 al. 3 LPA, que le chien soit maintenu en sécurité. Plusieurs incidents étaient à l'origine de cette décision: une attaque contre une chienne Labrador (30 octobre 2012), une attaque contre un carlin tenu en laisse (2 septembre 2016), une blessure légère infligée à une détentrice qui était intervenue pour protéger un animal (5 septembre 2016) et une morsure au visage de la recourante (24 novembre 2014). La Direction de la santé a rejeté le recours le 23 mai 2017 et a fondé la menace de sanction sur l'art. 292 CP; cette décision est entrée en force.
Le 6 août 2017, le chien a mordu une visiteuse dans l'appartement voisin à la tête et au cou, lui causant une plaie ouverte de 18 cm à la tempe ainsi que d'autres blessures. Début juillet 2017, il avait mordu à la tête une autre chienne; le 27 juillet 2017, il a tenté d'attaquer un garde-frontière. Le 14 août 2017, l'Office vétérinaire a menacé d'euthanasier le chien à défaut de production d'un rapport d'analyse établi par une personne spécialisée, et a ordonné l'obligation de porter une muselière et de tenir le chien en laisse, une interdiction de remise ainsi que l'enfermement du chien lors de visites. Le rapport a été reçu le 17 octobre 2017. Le 17 août 2017, le chien a été saisi à titre préventif, après que la police cantonale eut constaté qu'il était laissé sans surveillance dans le jardin insuffisamment sécurisé, dans la cage d'escalier et dans une voiture ouverte. Le 24 novembre 2017, l'Office vétérinaire a ordonné la saisie définitive et l'euthanasie.
La Direction de la santé a rejeté le recours le 31 mai 2018, dans la mesure où il était recevable. Le Tribunal administratif du canton de Zurich, 3e Section, a rejeté le recours le 29 novembre 2018.
Par recours en matière de droit public du 6 février 2019, la recourante a conclu à la levée de la saisie et à la restitution du chien moyennant des charges, subsidiairement à la restitution moyennant des charges afin de pouvoir quitter la Suisse avec le chien dans un délai de 60 jours. Elle a fait valoir une constatation arbitraire des faits et une appréciation arbitraire des preuves, une violation du droit d'être entendu (art. 29 al. 2 Cst.) et du droit à la preuve (art. 8 CC), ainsi que l'absence de proportionnalité (art. 5 al. 2 Cst.). L'autorité précédente, la Direction de la santé et l'OFSA ont conclu au rejet du recours ou ont renoncé à se déterminer.
Le litige porte sur la question de savoir si la saisie et l'euthanasie du chien sont conformes au droit fédéral, en particulier non arbitraires et proportionnées.
En droit
Le recours en matière de droit public est recevable contre la décision finale cantonale de dernière instance (art. 82 let. a, art. 86 al. 1 let. d, art. 89 al. 1, art. 90 LTF). Peut être invoquée la violation du droit fédéral et du droit international (art. 95 let. a et b LTF). Le Tribunal fédéral n'examine l'application du droit cantonal que sous l'angle de l'arbitraire; les griefs de violation de droits fondamentaux sont soumis à l'exigence de motivation qualifiée (art. 106 al. 2 LTF). Les faits nouveaux et les nouveaux moyens de preuve sont en principe irrecevables (art. 99 al. 1 LTF); les certificats médicaux du 28 janvier 2019 ainsi que les documents relatifs à l'état de santé du chien établis après la décision attaquée ne sont donc pas pris en considération.
Le grief relatif à l'établissement des faits échoue. Une constatation des faits ne peut être rectifiée que si elle est manifestement inexacte (art. 97 al. 1 LTF), et la motivation doit être circonstanciée. La recourante oppose simplement sa propre présentation des incidents, sans démontrer l'arbitraire. L'expertise de [E.] du 17 octobre 2017 indique précisément un danger accru en cas de restitution, car la détentrice et son partenaire de vie sous-estiment le chien. L'affirmation selon laquelle les locataires auraient détaché le chien est également sans pertinence, dès lors que la recourante n'aurait pas dû le laisser sans surveillance.
Le grief de violation du droit d'être entendu et du droit à la preuve n'est pas non plus fondé. Le droit d'être entendu (art. 29 al. 2 Cst.) et le droit à la preuve (art. 8 CC) ne confèrent pas un droit absolu à l'administration de preuves. L'autorité précédente pouvait, dans le cadre d'une appréciation anticipée des preuves, renoncer à d'autres mesures probatoires (expertise, présentation du chien, auditions de témoins, enregistrements vidéo), le danger étant suffisamment établi par le dossier. Le Tribunal fédéral peut lui aussi refuser des preuves dans le cadre d'une appréciation anticipée lorsqu'on ne peut en attendre aucune constatation pertinente pour la décision.
Sur la proportionnalité: la LPA vise la protection des animaux et non la protection de l'être humain contre les animaux dangereux (art. 80 Cst.). La détention de chiens pour des motifs de sécurité publique relève de la compétence des cantons, raison pour laquelle la base légale se trouve dans la LCD/ZH. Selon le § 9 al. 1 let. a, le § 18 al. 1 et le § 19 al. 1 et 2 LCD/ZH, la saisie et l'euthanasie reposent sur une base légale formelle, que la recourante ne conteste pas.
Le principe de la proportionnalité (art. 5 al. 2 Cst.) n'est pas un droit fondamental. En dehors de droits fondamentaux spéciaux, il ne peut être invoqué dans l'application du…