Tory leader Theresa May has overseen a local election massacre, with one-in-four of her councillors being booted out of their seats.
The Conservatives had dropped nearly 1,300 seats and lost control of 45 councils after the final results came in – the worst performance, in raw numbers, by a governing party in local elections since 1995.
Anger at the mounting scale of losses saw the Tory leader heckled as she gave a speech in Wales, with a man shouting: “Why don’t you resign? We don’t want you.”
The Prime Minister appeared to put the future of her party in the hands of Labour leader Jeremy Corbyn, by welcoming his offer to help her resolve the Brexit deadlock.
As counts terminated, Mrs May could only claim the election was “always going to be difficult” at a speech in Grimsby, one of the few areas in which the Conservatives enjoyed success.
She said: “Because we haven’t delivered the Brexit deal through Parliament yet, this was going to be a particularly challenging set of elections for both of the main parties.
“As the party who has been in government for nine years, it was of course always going to be particularly difficult for us.
“But as we look at what happened, nobody was expecting that Labour was going to do as badly as they did.”
Labour lost 63 seats when the party had expected to make gains, losing out to a surge in support for Lib Dems and Greens campaigning on an explicitly anti-Brexit ticket, as well as independent candidates.
Mr Corbyn left no doubt he saw the results as a demand for resolution of the Brexit impasse three years after the 2016 vote for EU withdrawal.
He told ITV: “I think it means there’s a huge impetus on every MP, and they’ve all got that message, whether they themselves are leave or remain – or the people across the country – that an arrangement has to be made, a deal has to be done, parliament has to resolve this issue. I think that is very, very clear.”
And shadow chancellor John McDonnell tweeted: “So far, message from local elections – ‘Brexit – sort it’. Message received.”
Mrs May welcomed the Labour leader’s offer to get a Brexit deal done as the only escape route.
She said: “I welcome the fact that Jeremy Corbyn has said today that he sees the time is now to get a deal and to deliver on Brexit – it’s what I’ve been saying for some time.
“It’s what we want to do, it’s what we’ve been working for, so now we must get on and do that.”
But backbench MPs called for her removal and warned that the party would be “toast” if it did not change direction.
Heckler Stuart Davies, a Tory Party member and former county councillor, said he called for Mrs May to resign because of her handling of Brexit.
The 71-year-old, from Llangollen, told the Press Association: “I am furious at what she has done to our party. To put it bluntly, she is telling lies – ‘We will be out by March 29’.
“I think I share the views of a lot of people who are party members. I did what I did because I know it was the right thing to do.”
There were calls from Tory MPs for Mrs May’s removal as leader, with senior Brexiteer Sir Bernard Jenkin warning that the party would be “toast” unless it “mends its ways pretty quickly”.
He said voters overwhelmingly believed that the Prime Minister had “lost the plot” and that the time had come for a change of leader.
“Certainly among Conservative activists and council candidates there is an almost universal feeling that it is time for her to move on,” he said.
His comments were echoed by former Cabinet minister Priti Patel, who said voters saw Mrs May as “part of the problem”.
“I just don’t think we can continue like this. We need change, we need a change of leadership. Perhaps the time has now come for that,” she told the BBC.
Labour was also licking its wounds after forfeiting control in heartland councils like Burnley, Hartlepool and Bolsover.
Despite some predictions that Jeremy Corbyn’s party could pick up three-figure gains, Labour was down more than 100 seats, though it did have the consolation of restoring control in Trafford for the first time sine 2003.
Remain-backing Labour MPs warned the leadership against striking a Brexit deal without the promise of a referendum, after shadow cabinet minister Barry Gardiner suggested the party was “bailing out” Tories in cross-party talks.
Ilford North MP Wes Streeting said: “Labour should not be bailing the Tories out. Any deal – any – must go to a public vote. Without a commitment to a public vote, I’ll vote for a Labour-Tory deal when hell freezes over and I’m not alone in that.”
With all results in the Conservatives had lost 1,269 seats, Labour 63 and Ukip 36.
The Lib Dems gained 676, the Greens were up 185 and independents increased by 242.
The Conservatives lost councils including Peterborough, Warwick and Worcester to no overall control, while Bath and North East Somerset, Somerset West and Taunton fell to the Liberal Democrats, with North Kesteven going to independents.
However the party held on in the bellwether council of Swindon, seen as a possible Labour gain, and took Walsall and North East Lincolnshire from no overall control.
Labour, meanwhile, lost control in Darlington, Middlesbrough, Stockton and Wirral and the mayoralty in Middlesbrough, where its vote was down 11% as independent Andy Preston was elected, although it did gain control of Amber Valley from Tories.
Even where the party held on in its traditional stronghold of Sunderland, which voted heavily for Brexit in the 2016 referendum, it still lost 10 council seats.