Brazilian authorities were working Saturday to clear away the remains of barricades, burned-out buses and trash strewn about the streets during a general strike the previous day that saw violent clashes between protesters and police.
The demonstrations shut down transportation, schools and shops, with small groups smashing bank windows, hurling rocks and setting fires. Police responded with rubber bullets and tear gas.
In Rio de Janeiro, city workers on Saturday towed away the charred skeletons of eight buses that had been torched, and swept up garbage and broken glass littering the streets.
Around Cinelandia, a central plaza where the local assembly and a municipal theater are situated, the scene resembled a war zone.
"It was terrible. The tear gas came into my apartment. The destruction is absurd. The strike is supposed to improve people's lives, but we will all pay for it," Laura Resende, a neighbor who works in a medical laboratory, told AFP.
A fire broke out in the municipal theater in the early morning and was extinguished.
The demonstrators oppose austerity-linked reforms to raise the minimum retirement age and make work contracts more flexible.
In Sao Paulo, the country's economic capital, thousands of people marched to the residence of President Michel Temer. Police used tear gas and stun grenades when protesters tried to push through a protective cordon.
Temer monitored the protests from his home in Brasilia. His center-right government insists reforms are needed to save Latin America's biggest economy after more than two years of deep recession.
As of Friday afternoon, 21 people had been detained in Sao Paulo.
In the midst of the Sao Paulo clashes, Miguel Leme, a 47-year-old teacher, said protesters wanted to make clear that the proposed reforms amounted to an "attack ... that in practice prevents a worker from having the right to retire."
Brazil's G1 news website tallied various police reports showing that a total of 97,000 people had taken part in the protests. But strike organizers put the number at 1.3 million.