Faits :
A.
A.a. La locataire A._ SA est titulaire d'un bail ayant pour objets des locaux commerciaux de 6'000 m 2, des dépôts en sous-sol et une centaine de places de parc dans un immeuble situé à... (GE). A la conclusion du contrat en octobre 2005, le bâtiment en question n'était pas encore construit. Un descriptif technique annexé au contrat réglementait notamment l'isolation phonique et le système de chauffage, ventilation et climatisation. Le loyer annuel total s'élevait initialement à 2'731'400 fr.; il a été indexé à plusieurs reprises selon l'indice suisse des prix à la consommation. La première échéance du bail est fixée au 31 mars 2022.
A.b. La locataire a emménagé à la fin du mois de mai 2007. Lors de la réception provisoire des locaux les 4 et 7 mai 2007, elle a établi avec la bailleresse de l'époque une liste de 27 pages recensant les travaux non encore exécutés.
A.c. Le 20 décembre 2007, les parties ont signé une convention dont l'article 1 énonçait sous quatre postes distincts une liste de travaux à achever dans un certain délai.
- Le poste A concernait notamment l'installation d'enseignes lumineuses.
- Le poste B se rapportait aux travaux d'isolation phonique.
- Le poste C visait le système de chauffage et de climatisation.
- Le poste D englobait tous les autres travaux listés dans les annexes 1 à 6 de la convention et qui n'étaient pas compris dans les postes précédents. L'annexe 1 contenait le procès-verbal de 27 pages établi à la réception provisoire des locaux.
Les art. 2 et 3 de la convention avaient la teneur suivante:
« ARTICLE 2
Si les travaux et prestations ne sont pas achevés à satisfaction de A._ SA dans les délais fixés à l'article 1, le loyer sera réduit, avec effet rétroactif au 1er septembre 2007 à raison de:
5% pour chacun des postes visés aux lettres A) à D) de l'article 1, limité au maximum à 20% et à Sfrs. 500'000.00 et ceci jusqu'à ce que les défauts y relatifs soient mis en ordre.
ARTICLE 3
Si, malgré la réduction du loyer, [la bailleresse] ne devait pas tout mettre en oeuvre pour que les travaux soient achevés, même hors délais, A._ SA se réserve le droit de fixer à [la bailleresse] un ultime délai raisonnable d'exécution et de réclamer une réduction de loyer plus conséquente qui sera calculée ultérieurement. (...) »
A.d. Le 14 mars 2008, la locataire a informé la bailleresse qu'en raison de l'inachèvement de nombreux travaux et de l'art. 2 de la convention de décembre 2007, elle réclamait une réduction de loyer de 15% en lien avec les postes A, B et D de ladite convention, précisant que cette réduction serait déduite du loyer de mars 2008. Elle a imparti à la bailleresse un délai d'exécution au 30 avril 2008 en se réservant le droit d'exiger une réduction de loyer plus importante au-delà de cette date, eu égard à l'art. 3 de la convention.
B.
B.a. Le 1er septembre 2009, la locataire a saisi l'autorité de conciliation d'une requête en réduction de loyer dirigée contre la bailleresse d'alors.
Le 8 février 2010, la locataire a porté l'action devant le Tribunal des baux et loyers du canton de Genève. En substance, elle sollicitait les réductions de loyer suivantes:
- 28% pour la période de mai à décembre 2008, soit 509'936 fr.;
- 17,5% de janvier à juin 2009, soit 249'691 fr. 20;
- 17,5% dès le 1er juillet 2009 jusqu'à l'achèvement des travaux encore en suspens, dont la réalisation d'enseignes lumineuses sur le toit, l'isolation phonique, le réglage de température au niveau du système de chauffage et de climatisation ainsi que divers travaux mentionnés dans les annexes 1, 4, 5 et 6 de la convention de décembre 2007.
B.b. Plusieurs témoins ont été entendus et trois expertises ont été mises en oeuvre. L'une d'elles, confiée à l'ingénieur HES E._, portait notamment sur les installations de sécurité technique et l'état d'avancement des travaux prévus par la convention de décembre 2007.
B.c. La locataire a consigné les loyers dès mars 2010 et introduit une procédure en validation de cette mesure. Les causes ont été jointes.
B.d. Le Tribunal des baux et loyers a rendu son jugement le 17 juin 2016. En substance, il a constaté l'existence de divers défauts et ordonné l'élimination de certains; il a en revanche considéré que les défauts relatifs à l'isolation phonique et au système de chauffage et de ventilation étaient permanents. Il a octroyé des réductions de loyer et condamné la bailleresse à restituer les montants perçus en trop. Le dispositif du jugement statuait de la façon suivante sur les points qui sont encore litigieux à ce stade:
- Sous chiffre 1 du dispositif, le Tribunal a ordonné à la bailleresse:
a) de remédier à une liste de défauts retenus sur la base de l'expertise E._, qui avait constaté leur persistance depuis la réception provisoire des locaux (annexe 1 de la convention);
b) de remédier au défaut affectant l'accès au bâtiment pour les handicapés, constaté dans l'expertise E._;
c) de remédier au défaut affectant la porte de secours, constaté dans cette même expertise;
d) de faire installer sur le toit les enseignes lumineuses conformément aux plans faisant partie de l'annexe 2 de la convention de décembre 2007.
Pour ces défauts, le Tribunal a ordonné sous chiffre 3 du dispositif une réduction de loyer de:
- 3%, du 1er mai 2008 jusqu'à complète réparation des défauts énoncés sous chiffre 1a du dispositif (poste D de la convention de décembre 2007).
- 3%, du 1er mai 2008 au 31 décembre 2008 pour le défaut d'installation des enseignes publicitaires lumineuses sur le toit, évoqué au chiffre 1d du dispositif (poste A de la convention).
Le Tribunal a en outre octroyé une réduction de loyer de 3% pour le défaut affectant l'isolation phonique et de 5% pour les défauts concernant le système de chauffage (système à quatre tubes) et la ventilation défectueuse dans le local fumeur.
B.e. Tant la locataire que la bailleresse B.1_ AG (laquelle a ensuite modifié sa raison sociale en B._ AG) ont fait appel de cette décision auprès de la Cour de justice genevoise. Cette autorité a statué par arrêt du 25 septembre 2017, dont le dispositif est résumé ci-dessous, dans un ordre et une numérotation librement adoptés.
I. Concernant l' existence de défautset l' obligation d'y remédier, la Cour de justice a:
1. confirmé le chiffre 1 (a-d) du dispositif de première instance ordonnant de remédier à divers défauts constatés dans l'expertise E._;
2. ordonné de remédier en sus à d'autres défauts également retenus sur la base de l'expertise E._, et que la Cour a énoncés sous lettres c. à r. de son dispositif;
3. ordonné de supprimer le défaut affectant l'isolation phonique en procédant à divers travaux;
4. ordonné d'installer un système de ventilation en double flux du local fumeur, tout en prenant acte de l'engagement pris à cet égard par la bailleresse;
5. renvoyé la cause au Tribunal des baux et loyers pour qu'il procède à une instruction complémentaire permettant de déterminer si le système de chauffage, ventilation et climatisation est conforme ou non à ce qui a été convenu.
II. La Cour de justice a octroyé les réductions de loyer suivantes:
1. pour le défaut d'enseigne en toiture ( ch. 1d du jugement de première instance, poste A de la convention de décembre 2007) :
réduction de 2%, du 1er mai 2008 au 31 décembre 2008.
En conséquence, la bailleresse a été condamnée à verser à la locataire la somme de 36'419 fr. plus intérêts à 5% l'an dès la date moyenne du 1er septembre 2010.
2. pour les défauts que la Cour de justice a retenus sous let. c. à r. :
réduction de 2%, du 1er mai 2008 jusqu'à élimination complète de ces défauts.
En conséquence, la bailleresse a d'ores et déjà été condamnée à verser à la locataire la somme de 515'857 fr. plus intérêts à 5% l'an dès la date moyenne du 1er juin 2013, pour la période du 1er mai 2008 au 30 juin 2017.
3. pour le défaut d'isolation phonique (poste B de la convention de décembre 2007) :
réduction de 5%, du 1er mai 2008 jusqu'à complète et parfaite suppression du défaut.
En conséquence, la bailleresse a d'ores et déjà été condamnée à verser à la locataire la somme de 1'289'643 fr. plus intérêts à 5% l'an dès la date moyenne du 1er juin 2013, pour la période du 1er mai 2008 au 30 juin 2017.
4. et 5. Pour le surplus, la Cour de justice a précisé qu'il appartiendrait aux premiers juges de statuer sur une éventuelle réduction de loyer après avoir résolu la question de savoir si le système de chauffage et de climatisation était affecté d'un défaut. Le cas échéant, ils devraient prendre en compte l'existence d'un défaut de ventilation dans le local fumeur.
III. La Cour de justice a en outre condamné la bailleresse à produire divers documents et ordonné que les loyers consignés soient libérés en faveur de la locataire à concurrence des réductions de loyers mentionnées ci-dessus, et en faveur de la bailleresse pour le surplus.
C.
La locataire a interjeté un recours en matière civile. A titre principal, elle requiert le Tribunal fédéral d'annuler les points II.1 et II.2 de l'arrêt attaqué (cf. let. B.e supra = arrêt p. 53 § 2 à 5) et de statuer comme il suit «sur [c]es seuls points»:
«- Dire que le loyer (...) est réduit de 28% de mai à décembre 2008 inclus, soit par CHF 509'936.60 HT.
- Dire que le loyer (...) est réduit de 17,5% de janvier 2009 au 14 janvier 2016, soit par CHF 3'465'743.80 HT, puis jusqu'à exécution des prestations dues selon convention du 20 décembre 2007.
- Condamner [la bailleresse] à payer à [la locataire] la somme de CHF 699'540.57 à titre d'intérêts moratoires à 5% l'an calculés au 14 janvier 2016.
- Dire que le loyer (...) est réduit de 17,5% dès le 17 juillet 2009 jusqu'à l'achèvement des travaux et prestations pour lesquels [la bailleresse] a été condamnée par le Tribunal des baux et loyers et la Cour de justice de Genève (...).»
Subsidiairement, la recourante requiert le renvoi de la cause à l'autorité précédente pour qu'elle rende une nouvelle décision dans le sens des considérants.
La bailleresse intimée a conclu à l'irrecevabilité du recours, subsidiairement à son rejet.
L'autorité précédente s'est référée à son arrêt.
Considérant en droit :
1.
1.1. Le recours a été déposé en temps utile (art. 100 al. 1 LTF en lien avec l'art. 45 al. 1 LTF) dans une affaire civile pécuniaire ressortissant au droit du bail à loyer, dont la valeur litigieuse excède manifestement le seuil de 15'000 fr. fixé par l'art. 74 al. 1 let. a LTF.
La décision attaquée ordonne le renvoi de la cause au Tribunal des baux et loyers pour instruction complémentaire et nouvelle décision concernant un éventuel défaut affectant le système de chauffage et de climatisation. Elle statue en revanche définitivement sur les autres postes de défauts invoqués par la locataire. Il s'agit d'une décision partielle, puisque le sort de l'objet qui reste en cause est indépendant de celui des objets déjà tranchés (art. 91 let. a LTF; cf. BERNARD CORBOZ, in Commentaire de la LTF, 2 e éd. 2014, n° 15 ad art. 91 LTF; sur la notion de décision partielle en général, cf. par ex. ATF 135 III 212 consid. 1.2.1-1.2.3).
1.2. La recourante demande l'annulation des seuls points II.1 et II.2 de l'arrêt attaqué (let. B.e supra = arrêt p. 53 § 2 à 5) en précisant qu'elle ne recourt pas contre les autres points dont elle demande qu'ils soient confirmés. Cependant, la recourante reprend ensuite l'essentiel de ses conclusions formulées en appel, laissant ainsi penser qu'elle remet en cause d'autres pans de l'arrêt attaqué. Quoi qu'il en soit, les conclusions doivent être interprétées à la lumière de leur motivation, qui circonscrit les points litigieux que le Tribunal fédéral peut examiner (ATF 127 IV 101 consid. 1). Il convient donc de passer à l'examen des griefs.
2.
2.1. La recourante reproche à la Cour de justice d'avoir commis un déni de justice (art. 29 al. 1 Cst.), voire un acte arbitraire (art. 9 Cst.) en confirmant les défauts retenus sous chiffre 1 du dispositif de première instance, mais en omettant de statuer sur la réduction de loyer qui devrait selon elle en découler. La recourante rappelle que le Tribunal des baux et loyers, pour les seuls défauts retenus sous chiffre 1a de son dispositif, avait octroyé une réduction de loyer de 3%; or, la Cour de justice a complété la liste des défauts à éliminer. Du point de vue de la recourante, tous ces défauts rattachés au poste D de la convention de décembre 2007 justifieraient une réduction de 5% au minimum.
2.2. Sous chiffre 3e de son dispositif, le Tribunal des baux et loyers avait effectivement ordonné une réduction de loyer de 3% jusqu'à complète réparation des défauts énoncés sous chiffre 1a du dispositif. Ces défauts découlent de l'expertise E._, qui a confirmé leur persistance depuis la réception provisoire des locaux. Le Tribunal a précisé qu'il s'agissait de menus défauts découlant de la fin d'un chantier, tels que des petites retouches et du nettoyage (jgt de Ire instance, p. 33 et 42).
En appel, la bailleresse a requis la suppression des chiffres 1a, 3b, 3d et 3e du dispositif de première instance (et non pas 3a, 3b et 3d comme indiqué par inadvertance en p. 43 de l'arrêt attaqué). Elle a fait valoir qu'elle n'avait pas à répondre des menus défauts et/ou qu'il s'agissait d'usure. Subsidiairement, elle s'est opposée aux taux de réduction retenus en invoquant la faible importance des défauts par rapport à la surface touchée. Enfin, elle a requis de fixer une limitation dans la durée des réductions octroyées, considérant que la formule employée (« jusqu'à complète réparation des défauts») était un concept conditionnel et indéterminé susceptible de conduire la locataire à laisser subsister les derniers défauts pour profiter des réductions de loyer accordées.
Quant à la locataire, elle a invoqué d'autres défauts que les premiers juges avaient prétendument exclus à tort et a sollicité des taux de réduction plus élevés.
Aux considérants 4.7 à 4.11 de son arrêt, la Cour de justice a passé en revue les défauts supplémentaires invoqués par la locataire et en a retenu certains en se fondant sur l'expertise E._. Ces défauts supplémentaires sont énoncés sous lettres c. à r. du dispositif de l'arrêt sur appel.
Répondant ensuite à la bailleresse au considérant 4.12 de son arrêt, la Cour de justice a fait observer que les défauts retenus dans l'expertise E._ avaient été reconnus par les parties peu après la livraison des locaux; ils n'étaient donc pas dus à l'usure. Pour le surplus, la bailleresse devait répondre même des menus défauts au début du bail. Aussi la Cour a-t-elle confirmé le jugement de première instance sur ce point.
Examinant ensuite la question des réductions de loyer, la Cour de justice a relevé que certains travaux objets du poste D de la convention de 2007 avaient été retenus et d'autres pas; elle s'est référée aux considérants 4.7 à 4.11 de son arrêt, à l'exclusion du consid. 4.12 dans lequel elle rejetait le grief de la bailleresse et confirmait dans cette mesure le jugement entrepris. Elle a ajouté que le poste le plus important évoqué par la locataire, soit celui concernant le système «no break», n'était en réalité pas défectueux. Pour le reste, il s'agissait principalement d'une accumulation de petits défauts qui, à eux seuls, ne justifieraient pas une réduction de loyer sous l'angle de l'art. 259d CO. Eu égard, toutefois, à la convention des parties et au fait que la bailleresse connaissait l'existence des défauts depuis longtemps sans y avoir remédié, la Cour a décidé d'allouer une réduction de loyer de 2% ex aequo et bono jusqu'à «complète suppression des défauts correspondants». Dans le dispositif de son arrêt, la Cour a ordonné une réduction de 2% valant «jusqu'à complète et parfaite suppression des autres défauts listés plus haut (let. c. à r. ci-dessus) » (arrêt, p. 53 § 2).
2.3. Force est de constater qu'au moment de statuer sur la réduction de loyer pour les défauts rattachés au poste D de la convention, la Cour n'a pas mentionné les défauts retenus par le Tribunal des baux sous chiffre 1a de son dispositif de jugement, qu'elle a pourtant confirmé. A cet égard, se posaient d'une part la question du taux de réduction au regard de l'ensemble des défauts retenus, d'autre part la question de la durée de cette réduction, ce qui impliquait de préciser quels défauts devaient être éliminés pour faire cesser la réduction de loyer.
L'autorité précédente devra dès lors apporter des précisions à ce sujet, en indiquant de façon dûment motivée si elle maintient sa décision ou si elle la rectifie, dans l'hypothèse d'une inadvertance concernant l'une et/ou l'autre des deux questions susmentionnées.
2.4. La recourante déplore également l'omission de statuer sur une réduction de loyer pour les défauts énoncés sous chiffres 1b et 1c du dispositif de première instance, également confirmés par les juges d'appel, soit l'accès du bâtiment aux handicapés et la porte de secours.
Le Tribunal des baux avait accordé une réduction de loyer de 3% « jusqu'à complète réparation des défauts sous chiffre 1a du (...) dispositif», sans faire mention des chiffres 1b et 1c. Or, il n'apparaît pas que la recourante se soit plainte de ce point précis en appel. Elle invoque la conclusion 5.2 de son mémoire d'appel. Celle-ci tendait à l'octroi d'une réduction de 17,5% jusqu'à élimination des travaux encore en suspens, soit les travaux retenus au chiffre 1a du dispositif de première instance et divers travaux en sus, dont ceux évoqués aux lettres A,B,C,F,H et I de l'expertise E._. Une telle conclusion ne vise pas les deux défauts concernant l'accès aux handicapés et la sortie de secours, puisqu'ils sont traités sous lettres D et J de cette expertise. L'autorité précédente n'avait pas à entrer en matière d'office sur cette question.
3.
3.1. La recourante fait grief à la Cour de justice d'avoir refusé d'appliquer la peine conventionnelle prévue aux art. 2 et 3 de la convention de décembre 2007 et d'avoir fait une mauvaise application de l'art. 259d CO en fixant un taux de réduction de loyer de 2% seulement pour les défauts liés au poste D de la convention et de 2% pour l'absence de pose d'une enseigne lumineuse en toiture (poste A).
3.2. La Cour de justice n'a pas méconnu la convention de décembre 2007 prévoyant des réductions de loyer. Elle a considéré qu'au moment de sa conclusion, l'ensemble des défauts étaient connus et listés, de sorte que le caractère semi-impératif de l'art. 259d CO n'entravait pas la validité d'une telle convention. La Cour a ensuite procédé à l'interprétation de cette convention, arrivant à la conclusion que les 5% prévus pour chaque poste ne constituaient ni un minimum, ni un maximum dès lors que les conditions de l'art. 3 étaient réalisées. Elle a ajouté que cette convention serait néanmoins prise en compte dans la fixation des réductions de loyer comme déterminant la valeur que les parties avaient donnée aux diminutions d'usage correspondantes.
La recourante ne formule pas de critique recevable contre cette interprétation. Elle se borne à présenter sa thèse de façon appellatoire, sans prendre position sur l'analyse de l'autorité précédente, ce qui exclut déjà toute entrée en matière.
3.3. Il appartiendra à la Cour de justice d'indiquer quel taux de réduction elle retient pour l'ensemble des défauts liés au poste D de la convention, soit ceux qu'elle a énoncés sous lettres c. à r. de son dispositif et ceux retenus sous chiffre 1a du dispositif rendu par le Tribunal des baux et loyers (consid. 2.3 supra).
3.4. Sur la base de l'état de fait qui lie la cour de céans, on ne discerne aucun motif de remettre en cause la réduction de loyer de 2% accordée pour le défaut d'installation de l'enseigne lumineuse sur le toit. La recourante se borne à plaider qu'un taux minimal de 5% devrait être appliqué sans contrer l'interprétation adoptée par la Cour de justice, ni expliquer pour quelle raison le défaut en question justifierait une réduction plus importante.
3.5. La recourante a précisé ne pas contester les autres points de l'arrêt attaqué, en particulier la réduction de 5% pour la problématique de l'isolation phonique et la décision de renvoi concernant le système de chauffage et de climatisation. Ces points sont dès lors acquis, nonobstant l'articulation obscure des conclusions prises par la recourante. Celles-ci sont irrecevables en tant qu'elles ne peuvent être reliées à des griefs motivés compréhensibles.
4.
4.1. En définitive, le recours doit être partiellement admis dans la mesure indiquée ci-dessus (consid. 2.3). L'admission du grief implique d'annuler les chefs du dispositif énoncés en page 53 § 2 et 3 de l'arrêt attaqué. L'autorité précédente indiquera, motifs à l'appui, si elle maintient sa décision telle quelle ou, dans l'hypothèse d'une inadvertance, si elle accorde un taux de réduction supérieur à 2% et/ou complète la liste des défauts dont la suppression est requise pour mettre un terme à la réduction de loyer.
Pour le reste, l'arrêt attaqué est confirmé, les autres griefs étant rejetés dans la mesure de leur recevabilité.
4.2. La recourante n'obtient que partiellement gain de cause sur un des griefs (consid. 2.3 et 4.1 supra), et dans une mesure moindre que ce qu'elle prétendait (consid. 2.4 supra). Il faut admettre que sur le point victorieux, le recours a été provoqué par l'arrêt attaqué, de sorte que le canton de Genève versera à la recourante une indemnité réduite pour ses frais d'avocat. Par ailleurs, la cour de céans tiendra compte de ces circonstances en renonçant à percevoir une partie de l'émolument normalement dû. Celui-ci est arrêté en définitive à 6'500 fr., et mis à la charge de la recourante.
Le canton de Genève versera à la recourante une indemnité de 4'000 fr. à titre de dépens réduits. Au même titre, la recourante versera à l'intimée une indemnité de 8'000 fr.
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis en partie et rejeté pour le surplus dans la mesure où il est recevable.
2.
Les deux chefs du dispositif énoncés en page 53 § 2 et 3 de l'arrêt attaqué sont annulés.
La cause est renvoyée à l'autorité précédente pour qu'elle rende une nouvelle décision dans le sens des considérants.
L'arrêt attaqué est confirmé pour le surplus.
3.
Les frais judiciaires, arrêtés à 6'500 fr., sont mis à la charge de la recourante.
4.
La recourante versera à l'intimée une indemnité de 8'000 fr. à titre de dépens réduits.
5.
Le canton de Genève versera à la recourante une indemnité de 4'000 fr. à titre de dépens réduits.
6.
Le présent arrêt est communiqué aux mandataires des parties et à la Cour de justice du canton de Genève.
Lausanne, le 4 mai 2018
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La présidente: Kiss
La greffière: Monti