Russia-Ukraine war: Frontline update as of July 21

As of 10:00 PM Kyiv time on July 21, Ukrainian forces recorded 139 combat engagements along the front line over the past 24 hours. The highest number of Russian attacks occurred in the Pokrovsk direction, according to the General Staff of the Armed Forces of Ukraine.
Russian strikes
The General Staff noted that Russian forces carried out one massive missile strike involving 24 missiles, 45 airstrikes with 61 guided aerial bombs, and launched 1,251 Shahed-type attack drones. They also conducted 3,145 ground strikes targeting civilian areas and Ukrainian positions.
Frontline updates
In the Northern Slobozhanskyi and Kursk directions, Ukrainian troops repelled 11 Russian assaults, while one engagement was still ongoing. Russian aviation launched four strikes, dropping six guided bombs, and carried out 177 artillery attacks, including four with multiple-launch rocket systems.
In the Southern Slobozhanskyi direction, Ukrainian forces held off four attacks near Vovchansk, Kamianka, Stroivka, and Kutkivka, with one engagement ongoing.
In the Kupiansk direction, Ukrainian defenders repelled six attacks near Holubivka, Kupiansk, Pishchane, Zahryzove, and Zelenyi Hai.
In the Lyman direction, Ukrainian troops repelled 18 assaults near Novyi Myr, Karpivka, Kolodiazi, Yampolivka, Torske, and toward Serebrianka, Serednie, Shandryholove, and Hryhorivka. Three battles were ongoing at the time of the update.
In the Siversk direction, Russian forces launched three assaults near Serebrianka, Verkhniokamianske, and Pereiizne.
In the Kramatorsk direction, Ukrainian troops repelled six Russian attempts to advance near Bila Hora and toward Predtechyne.
In the Toretsk direction, Russian forces attempted nine assaults on Ukrainian positions near Diliivka, Romanivka, Oleksandro-Kalynove, Novospaske, and toward Katerynivka and Pleshchiivka. All attacks were repelled.
In the Pokrovsk direction, Russian forces conducted 43 offensive actions near Udachne, Novoeconomichne, Lysivka, Zvirove, and toward Novoukrainka, Pokrovsk, Dachne, Myrnohrad, and Mayak. Two engagements were ongoing.
"Preliminary data indicates that 81 Russian personnel were neutralized in this direction today, including 46 killed. Ukrainian troops also destroyed five drones and struck one Russian artillery piece," the report added.
In the Novopavlivka direction, Ukrainian units repelled nine assaults near Zirka, Piddubne, Myrne, Dachne, and toward Oleksandrohrad and Voskresenka. Four battles were still ongoing.
In the Huliaipole direction, no Russian assaults were recorded.
In the Orikhiv direction, Russian forces launched three attacks near Kamianske, all of which were repelled. Additionally, Russian aircraft carried out strikes on the town of Stepnohirsk.
In the Prydniprovskyi direction, one engagement took place near Prydniprovke, with no Russian advance reported.
Russian losses
Between July 20 and 21, Russian forces lost an estimated 1,170 personnel in combat. Ukrainian defense forces also destroyed 54 artillery systems, 199 drones, and 132 vehicles.
Total Russian personnel losses since the start of the full-scale invasion have now surpassed one million, according to Ukrainian estimates.