Faits:
A. A.a La société anonyme vaudoise X._ SA, a engagé Y._ en qualité de contrôleur de gestion dès le 12 février 2007. De durée indéterminée, le contrat de travail comportait notamment les clauses suivantes: l'employé avait droit à un salaire annuel brut de 150'020 fr., plus un treizième salaire au prorata temporis du temps travaillé. L'horaire de travail était fixé en accord avec la direction générale, en fonction des besoins établis par cette dernière. L'horaire cadre était en principe de 9 h.00 à 12 h.00 et de 13 h.00 à 18 h.00. Le salaire alloué couvrait l'ensemble des prestations de l'employé, ainsi que ses déplacements professionnels en Suisse et à l'étranger; la compensation par un congé et la rétribution spéciale d'heures supplémentaires étaient en principe exclues, sous réserve d'accords particuliers. L'employé voyait son attention attirée sur les nombreux voyages professionnels qu'il serait amené à effectuer dans le cadre de son travail.
L'employeuse détenait des sociétés domiciliées au Maroc. L'employé passait beaucoup de temps dans ce pays, où il travaillait sous les ordres de A._, directeur de deux sociétés du groupe. Dès le 1er mai 2007, l'employé a bénéficié de l'assistance d'un contrôleur de gestion junior.
A.b Le 30 janvier 2008, l'employeuse a résilié le contrat de travail pour le 31 mars 2008. Dès le 25 février 2008, l'employé a fait intervenir son assurance de protection juridique, qui a formulé diverses réquisitions; par courrier du 20 mars 2008, elle a réclamé le paiement de 550 heures supplémentaires. L'employé a produit un décompte établi par ses soins; il n'en avait jusque-là jamais soumis à son employeuse. Ce décompte recense 787,5 heures supplémentaires pour la période s'étendant d'avril 2007 à janvier 2008. Il comprend en tout cas deux erreurs, en ce sens que l'employé prétend avoir travaillé les 20 juillet et 24 août 2007, alors qu'il était en congé ces jours-là.
B. B.a Le 4 juillet 2008, l'employé a ouvert action contre l'employeuse devant le Tribunal civil de l'arrondissement de La Côte. Selon ses dernières conclusions, il demandait le montant total de 63'358 fr. 90, dont 52'299 fr. 75 à titre d'heures supplémentaires et 11'059 fr. 15 pour un solde de vacances non prises.
L'employeuse a conclu au rejet, et à titre reconventionnel, au paiement de 6'016 fr. 40. L'employé a reconnu devoir l'équivalent en francs suisses de 2'289 euros et a invoqué la compensation.
Une expertise judiciaire a été mise en ?uvre. Il s'agissait essentiellement de calculer les montants dus au regard des heures supplémentaires alléguées. S'exprimant sur les 22 heures de travail que l'employé alléguait avoir effectuées le dimanche, l'expert a précisé qu'il avait procédé à des contrôles permettant de constater les dimanches travaillés, mais qu'il ne se prononçait pas sur la réalité des chiffres indiqués dans le décompte fourni par l'employé.
Le tribunal a par ailleurs recueilli cinq témoignages. Par jugement du 30 mars 2011, il a condamné l'employeuse à payer 7'327 fr. 60 à titre de solde de vacances, après déduction de la somme de 3'731 fr. 55 dont l'employé s'était reconnu débiteur. Aucun montant n'a été alloué pour les heures supplémentaires alléguées. Le tribunal a concédé que l'instruction avait établi l'accomplissement d'un certain nombre d'heures supplémentaires; toutefois, l'employé n'avait pas apporté de preuves suffisantes pour justifier le montant revendiqué à ce titre. En outre, il avait annoncé tardivement ces heures à l'employeuse.
B.b L'employé a déféré cette décision à la Cour d'appel civile du Tribunal cantonal. Il réitérait ses conclusions en paiement de 63'358 fr. 90, tandis que l'employeuse concluait au rejet de l'appel.
Par arrêt du 19 juin 2012, le Tribunal cantonal a partiellement admis l'appel et réformé la décision attaquée; il a condamné l'employeuse à payer la somme de 50'942 fr. 30, dont 43'614 fr. 70 à titre d'heures supplémentaires, plus 7'327 fr. 60 en compensation de vacances non prises.
C. L'employeuse saisit le Tribunal fédéral d'un recours en matière civile, dans lequel elle conclut principalement à l'annulation de l'arrêt, subsidiairement à sa réforme, en ce sens que l'appel est rejeté et l'employeuse condamnée à payer la somme de 7'327 fr. 60.
L'employé conclut au rejet du recours. L'autorité précédente se réfère à son arrêt.

Considérant en droit:
1. 1.1 Le recours est recevable sur le principe. En particulier, la valeur litigieuse minimale de 15'000 fr. requise pour les causes de droit du travail est atteinte (<ref-law>).
1.2 La loi prévoit, entre autres motifs de recours, la violation du droit fédéral (<ref-law>); cette notion inclut le droit constitutionnel.
Le Tribunal fédéral statue d'après l'état de fait de l'arrêt attaqué (cf. <ref-law>). Il ne peut s'en écarter que si les faits ont été établis en violation du droit ou de façon manifestement inexacte - c'est-à-dire arbitraire (<ref-ruling> consid. 4.1.2), ce qu'il incombe en principe au recourant de dénoncer (cf. <ref-law>). Dans la mesure où il invoque l'arbitraire au sens de l'art. 9 Cst., le recourant doit satisfaire aux exigences de motivation plus strictes imposées par l'<ref-law>; il doit alors exposer de manière claire et circonstanciée, si possible documentée, en quoi consiste la violation du droit constitutionnel invoqué (<ref-ruling> consid. 2.2; <ref-ruling> consid. 1.4.2).
L'appréciation des preuves est arbitraire lorsque le juge s'est manifestement mépris sur le sens et la portée d'un moyen de preuve, lorsqu'il a omis, sans raison sérieuse, de tenir compte d'un moyen important propre à modifier la décision attaquée, ou encore lorsqu'il a tiré des déductions insoutenables à partir des éléments recueillis (<ref-ruling> consid. 4.2). Des critiques de type purement appellatoire ne sont pas admissibles (<ref-ruling> consid. 3.1). Le recourant ne peut pas se borner à opposer son appréciation des preuves à celle de l'autorité précédente.
2. 2.1 L'employeuse invoque une violation de l'<ref-law> et de l'art. 9 Cst. Elle reproche à l'autorité précédente d'avoir versé dans l'arbitraire en retenant que l'employé avait effectué 700 heures supplémentaires.
2.2 Il incombe au travailleur de prouver qu'il a effectué les heures supplémentaires dont il demande la rétribution (<ref-law>; <ref-ruling> consid. 2.4 p. 176). S'il n'est pas possible d'établir le nombre exact d'heures effectuées, le juge peut, par application analogique de l'<ref-law>, en estimer la quotité. L'évaluation se fonde sur le pouvoir d'appréciation des preuves et relève donc de la constatation des faits, que le Tribunal fédéral revoit uniquement sous l'angle de l'arbitraire (arrêt 4A_338/2011 du 14 décembre 2011 consid. 2.2, in PJA 2012 282; cf. aussi <ref-ruling> consid. 5.1 p. 364). Si l'<ref-law> allège le fardeau de la preuve, il ne dispense pas le travailleur de fournir au juge, dans la mesure raisonnablement exigible, tous les éléments constituant des indices du nombre d'heures accomplies (cf. <ref-ruling> consid. 4.4.2 p. 471; <ref-ruling> consid. 3a p. 221). La conclusion selon laquelle les heures supplémentaires ont été réellement effectuées dans la mesure alléguée doit s'imposer au juge avec une certaine force (cf. <ref-ruling> consid. 3.1; <ref-ruling> consid. 3a p. 222).
Lorsque l'employeur n'a mis sur pied aucun système de contrôle des horaires et n'exige pas des travailleurs qu'ils établissent des décomptes, il est plus difficile d'apporter la preuve requise (cf. arrêt 4P.35/2004 du 20 avril 2004 consid. 3.2, in JAR 2005 p. 180); l'employé qui, dans une telle situation, recourt aux témoignages pour établir son horaire effectif utilise un moyen de preuve adéquat (arrêt 4A_543/2011 du 17 octobre 2011 consid. 3.1.3).
2.3 Il est constant que l'employé a attendu 7 semaines à compter de la déclaration de licenciement pour demander le paiement de ses heures supplémentaires; il s'est tout d'abord abstenu d'évoquer cette question dans les discussions qui ont suivi l'annonce du congé. A l'appui de sa prétention, il a produit un décompte personnel recensant 787,5 heures supplémentaires, qu'il n'avait jusque-là jamais présenté à l'employeuse. Le décompte comprend en tout cas deux erreurs.
La cour cantonale a précisé que l'expertise judiciaire n'apportait aucun élément probant supplémentaire par rapport au décompte unilatéral du travailleur. Elle s'est ensuite référée à une pièce et aux témoignages recueillis, dont elle a retiré les éléments suivants:
Dans un rapport de gestion établi à la fin du mois de novembre 2007, A._, supérieur hiérarchique de l'employé pour les activités déployées au Maroc, avait précisé avoir régulièrement travaillé 14 à 16 heures par jour avec l'employé. Lors de son audition en qualité de témoin, le supérieur hiérarchique avait confirmé que pour mener à bien ses différentes activités, l'employé avait travaillé plus de 12 heures par jour, ainsi que le samedi matin et parfois le dimanche; sa conscience professionnelle lui avait toujours dicté de répondre aux attentes de ses supérieurs sans comptabiliser le temps nécessaire à leur bonne exécution.
L'assistant de l'employé avait déclaré que celui-ci consacrait tout son temps à travailler, souvent avec A._, y compris une bonne partie des soirées et des week-ends. Quant à l'ancien directeur général de l'employeuse, il avait affirmé que l'employé n'avait jamais reçu l'ordre d'effectuer des heures supplémentaires, tout en admettant que les journées étaient longues à l'étranger, le témoin lui-même ayant régulièrement travaillé entre 12 et 14 heures par jour. Un autre supérieur hiérarchique, tout en disant ignorer si le décompte correspondait à la réalité, avait concédé que les subordonnés pouvaient être interpellés le dimanche, le samedi ou tard le soir. Enfin, un cinquième témoin avait déclaré que l'employé traitait beaucoup de dossiers, et que le fait de devoir y travailler avec un seul assistant pouvait engendrer des heures supplémentaires.
La Cour d'appel a conclu que les témoignages permettaient de conclure, avec une "certaine force" au sens exigé par la jurisprudence, que 700 heures supplémentaires avaient réellement été effectuées, ce qui équivalait à 58 heures par mois tout au long des rapports de travail ayant duré de mi-février 2007 à mi-février 2008.
2.4 Dans un chapitre consacré à "l'arbitraire dans l'appréciation de la quotité des heures supplémentaires", l'employeuse insiste sur les circonstances tardives dans lesquelles le décompte unilatéral a été produit, et sur le fait qu'il contient deux inexactitudes. Elle relève qu'il recense souvent 12 heures de travail le vendredi, jour où l'employé rentrait du Maroc pour passer le week-end en Suisse. Cette durée invraisemblable ne serait étayée par aucun horaire de vol ou autre plan de voyage. Par ailleurs, la cour aurait tiré une déduction erronée du rapport de gestion établi par le supérieur de l'employé; l'affirmation selon laquelle les deux hommes avaient régulièrement "passé" ensemble 14 à 16 heures par jour ne signifiait pas qu'ils avaient "travaillé" tout ce temps, sachant qu'ils partageaient un appartement de fonction au Maroc. Compte tenu de l'ampleur des heures supplémentaires alléguées - plus de 50 % de l'horaire de base sur une période de 10 mois -, l'autorité aurait dû faire preuve de la plus grande circonspection; elle ne pouvait se contenter d'une simple vraisemblance quant à la quotité des heures supplémentaires.
2.5 Ce faisant, l'employeuse se place exclusivement sur le terrain de l'appréciation des preuves, bien qu'elle ait aussi invoqué à titre liminaire une violation de l'<ref-law> (sur la distinction entre fait et droit, cf. <ref-ruling> consid. 5.1 p. 364). Le seul moyen de droit discernable réside dans la remarque selon laquelle l'on ne saurait se contenter d'une simple vraisemblance; il n'est pas fondé. En effet, il ne ressort pas de l'arrêt attaqué que la cour cantonale aurait appliqué un degré de conviction insuffisant. Elle a au contraire souligné, conformément à la formule consacrée par la jurisprudence, que les indices recueillis imposaient le chiffre de 700 heures "avec une certaine force". Rien n'indique qu'il s'agissait là d'une pure clause de style.
Au niveau des faits, l'employeuse conteste le nombre d'heures supplémentaires retenues par une argumentation de type essentiellement appellatoire, en se fondant partiellement sur des faits qui ne ressortent pas de l'arrêt attaqué; il en est ainsi des explications concernant la journée du vendredi. Quant au grief visant l'interprétation du rapport de gestion, il est infondé. Compte tenu des témoignages recueillis, dont celui de l'auteur du rapport, l'on ne voit pas en quoi il serait arbitraire de considérer que les 14 à 16 heures "passées ensemble" étaient des heures de travail, même si l'employé et son supérieur partageaient l'appartement de fonction de l'employeuse.
Pour le surplus, l'employeuse ne discute pas la crédibilité des témoins. Elle ne reproche pas à la cour vaudoise d'avoir arbitrairement méconnu d'autres aspects des témoignages recueillis, ou d'autres éléments de preuve. Elle n'explique pas davantage pour quels motifs les éléments mis en exergue par la cour excluaient de retenir 700 heures supplémentaires. En bref, elle ne s'attache pas à démontrer en quoi l'estimation des heures supplémentaires serait entachée d'arbitraire. Le contexte dans lequel le décompte a été produit et les deux erreurs relevées ne suffisent pas en soi à démontrer que l'appréciation portée par la cour vaudoise serait insoutenable. Il s'ensuit le rejet du grief, dans la mesure où il est recevable.
3. 3.1 L'employeuse dénonce en outre une violation de l'<ref-law>. En se référant à une jurisprudence sur l'horaire flexible, elle reproche à la cour cantonale d'avoir ignoré le fait que l'employé disposait d'une grande liberté dans l'organisation de son travail et avait tout loisir de compenser les heures supplémentaires effectuées lors de missions particulières ou dans des situations d'urgence caractérisée. S'il n'était pas en mesure de compenser les heures effectuées, l'employé aurait dû le signaler à l'employeuse et la rendre attentive à son surcroît de travail.
3.2 L'<ref-law> prévoit que les heures supplémentaires sont compensées en nature ou en espèces; plus précisément, l'employeur peut, avec l'accord du travailleur, compenser les heures de travail supplémentaires par un congé d'une durée au moins égale, qui doit être accordé au cours d'une période appropriée (al. 2). L'employeur est tenu de rétribuer les heures de travail supplémentaires qui ne sont pas compensées par un congé (al. 3).
L'employeur ne peut pas imposer unilatéralement la compensation en nature (<ref-ruling> consid. 5a p. 84). Un accord du travailleur est nécessaire. Il incombe à l'employeur de prouver l'existence d'une telle convention, qui peut être tacite (STREIFF/VON KAENEL/RUDOLPH, Arbeitsvertrag, 7e éd. 2012, n° 11 ad <ref-law>).
Par ailleurs, il faut opérer une distinction entre les heures supplémentaires et le solde positif accumulé dans le contexte d'un horaire de travail flexible (gleitende Arbeitszeit). Les parties peuvent convenir que le travailleur, dans un cadre prédéfini, détermine librement la durée de son temps de travail journalier, pourvu qu'à l'issue d'une période de référence, il ait accompli le nombre d'heures contractuellement dues. Généralement, des heures de présence obligatoire (plages "bloquées") doivent être respectées, le travailleur pouvant s'organiser librement le reste du temps (SUBILIA/DUC, Droit du travail, 2010, n° 12 ad <ref-law>; REHBINDER/STÖCKLI, Berner Kommentar, 2010, n° 9 ad <ref-law>). En contrepartie de cette autonomie, le travailleur a la responsabilité de récupérer à temps le solde de travail excédentaire qu'il a librement accumulé. S'il laisse croître ce solde positif dans une mesure importante, il assume le risque de ne pas pouvoir le compenser en cas de résiliation du contrat, laquelle peut survenir en tout temps. Une indemnisation du travail effectué en plus n'entre en considération que si les besoins de l'entreprise ou des directives de l'employeur empêchent le travailleur de récupérer ses heures en dehors des plages bloquées. Il ne s'agit alors plus de solde positif dans l'horaire flexible, mais de véritables heures supplémentaires (<ref-ruling>; cf. aussi <ref-ruling> consid. 5.1.3). En pratique, il est souvent délicat de tracer la frontière entre les heures supplémentaires et le solde bénéficiaire dans le cadre d'un horaire flexible (REHBINDER/STÖCKLI, op. cit., n° 7 ad <ref-law>); il faut garder à l'esprit que les premières sont imposées par les besoins de l'entreprise ou les directives de l'employeur, tandis que le solde excédentaire est librement accumulé par la volonté du travailleur (STREIFF/VON KAENEL/RUDOLPH, op . cit., p. 215 n° 4 ad <ref-law>).
3.3 La décision attaquée ne constate pas, expressément ou implicitement, que les parties auraient pratiqué l'horaire de travail flexible, en dérogation à l'horaire cadre prévu dans le contrat; elle n'indique pas non plus que les dépassements d'horaire auraient concerné des missions particulières ou des cas d'urgence générant une surcharge passagère susceptible d'être compensée ultérieurement. L'employeuse ne soulève pas le grief d'arbitraire quant à l'établissement des faits; elle se contente de mettre en exergue des éléments de témoignage qui étayeraient sa propre version des faits. Un tel procédé ne justifie pas de s'écarter de l'état de fait retenu dans l'arrêt cantonal. Au demeurant, la cour d'appel a établi sans arbitraire que l'employé avait accumulé un nombre important d'heures de travail supplémentaires (supra, consid. 2). Il n'a pas été établi que l'employeuse aurait donné des directives à ce sujet; en d'autres termes, ces heures étaient dictées par les besoins de l'entreprise. Il appert en outre que l'employeuse ne pouvait ignorer les heures accomplies, et que la preuve d'une compensation de celles-ci n'a pas été rapportée (cf. arrêt attaqué, p. 25 consid. 3.4.1). Dans ces circonstances, l'employeuse ne saurait se prévaloir de la jurisprudence sur l'horaire flexible. Le grief est mal fondé.
3.4 Pour le surplus, l'employeuse ne conteste pas le tarif horaire de base et les majorations appliquées par la cour cantonale pour indemniser les heures supplémentaires. Elle ne critique pas davantage les calculs effectués. Il n'y a dès lors pas à examiner ces questions.
4. En définitive, le recours est rejeté dans la mesure où il est recevable. En conséquence, l'employeuse supportera les frais judiciaires et versera une indemnité de dépens à l'employé (art. 66 et 68 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'500 fr., sont mis à la charge de la recourante.
3. La recourante versera à l'intimé une indemnité de 3'000 fr. à titre de dépens.
4. Le présent arrêt est communiqué aux mandataires des parties et à la Cour d'appel civile du Tribunal cantonal du canton de Vaud.
Lausanne, le 19 février 2013
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente: Klett
La Greffière: Monti