{{-- Central da Sessão — só apresenta o que já existe em outras telas (Pauta, Quórum e Votação, Ata, Painel Público). Toda ação sensível (abrir/encerrar votação, confirmar presença, autorizar fala, gerar Ata) continua acontecendo nas rotas/Controllers/Services de sempre; os botões daqui só levam pra lá. wire:poll.5s (não mais rápido que isso — esta tela é uma visão geral, não a tela de votação em si, que já tem seu próprio wire:poll mais curto em QuorumVotacao). --}}

Central da Sessão

@if($this->sessao)
{{ $this->sessao->numero }}ª Sessão {{ $this->sessao->tipo }}
{{ $this->sessao->data_sessao->format('d/m/Y') }}
@endif
@if($this->sessao)
EM ANDAMENTO
@if($mostrarDiagnostico)
    @foreach($this->diagnostico as $item)
  • ✓ {{ $item['label'] }} {{ $item['detalhe'] }}
  • @endforeach
@endif
@endif
@if(! $this->sessao) {{-- ===================== Sem sessão ativa ===================== --}}
Nenhuma sessão em andamento no momento.
@if($this->proximaSessao)

Próxima sessão

{{ $this->proximaSessao->numero }}ª Sessão {{ $this->proximaSessao->tipo }}
{{ $this->proximaSessao->data_sessao->format('d/m/Y') }}
Ver / preparar sessão →
@endif @if($this->ultimaSessaoEncerrada)

Última sessão

{{ $this->ultimaSessaoEncerrada->numero }}ª Sessão {{ $this->ultimaSessaoEncerrada->tipo }}
{{ $this->ultimaSessaoEncerrada->data_sessao->format('d/m/Y') }} — Encerrada
Ver sessão → Resultados →
@endif @if($this->proximasSessoes->isNotEmpty())

Próximas sessões

@endif
@else {{-- ===================== Sessão ativa ===================== --}} @php($materiaAtual = $this->materiaEmVotacao) @php($bloco = $this->blocoAtivo) @php($fala = $this->falaEmAndamento) {{-- ===================== Motor Regimental (Etapa C.2) — banner de fase ===================== "ONDE ESTOU?" — só aparece pra sessão com Perfil Regimental associado; sessão sem perfil não mostra nada disto (comportamento legado). --}} @if($this->sessao->temPerfilRegimental())
Fase atual
{{ $this->sessao->faseRegimentalAtual->nome ?? '—' }}
@if($this->fasesDoPerfilAtual->isNotEmpty())
@foreach($this->fasesDoPerfilAtual as $fase) @php($ehAtual = $this->sessao->fase_regimental_atual_id === $fase->id) @php($jaPassou = $this->sessao->faseRegimentalAtual && $fase->ordem < $this->sessao->faseRegimentalAtual->ordem) @if($jaPassou) ✓ @elseif($ehAtual) ● @else ○ @endif {{ $fase->nome }} @endforeach
@endif
@if($mostrarAjudaFase)
FASE ATUAL: {{ mb_strtoupper($this->sessao->faseRegimentalAtual->nome ?? '') }}

A sessão está em {{ $this->sessao->faseRegimentalAtual->nome ?? '—' }}. As ações disponíveis dependem do Perfil Regimental configurado. Você pode realizar as ações habilitadas abaixo.

@endif
@if($modoAvancado)

Detalhes regimentais

Perfil:
{{ $this->sessao->perfilRegimental->nome }}
Fase:
{{ $this->sessao->faseRegimentalAtual->nome ?? '—' }}
Votação:
{{ $this->votacaoComportamentoLabel }}
@endif @endif {{-- ===================== Questão de Ordem (Etapa F) ===================== Só aparece quando há alguma ativa — item 6 do pedido: "sem bloquear a Central inteira". --}} @if($this->questoesOrdemAtivas->isNotEmpty()) @foreach($this->questoesOrdemAtivas as $qo)
QUESTÃO DE ORDEM
Vereador: {{ $qo->vereador->name }} @if($qo->sessaoMateria?->materia) — Contexto: {{ $qo->sessaoMateria->materia->tipo }}{{ $qo->sessaoMateria->materia->numero ? ' nº '.$qo->sessaoMateria->materia->numero.'/'.$qo->sessaoMateria->materia->ano : '' }} @endif
"{{ \Illuminate\Support\Str::limit($qo->questao, 120) }}"
{{ $qo->isEmAnalise() ? 'Em análise' : 'Aguardando análise' }}
@if($qo->isSuscitada()) @else @endif
Outras ações
@endforeach @endif @if($this->sessao->isSuspensa()) {{-- Sessao.status continua 'ativa' de propósito (ver Sessao::isSuspensa()) — por isso todo o resto da tela (pauta, presença, fila) continua aparecendo normalmente abaixo, sem perder nenhum estado. --}}
SESSÃO SUSPENSA
@if($this->sessao->suspensa_motivo)
Motivo: {{ $this->sessao->suspensa_motivo }}
@endif
@endif @if($this->sessao->isMensagemTelaoAtiva())
MENSAGEM ATIVA NO TELÃO
"{{ $this->sessao->mensagem_telao_texto }}"
@endif @if($this->proximaAcao)
Próxima ação sugerida: {{ $this->proximaAcao }}
@endif
@if(! $this->quorumAtingido)
Quórum insuficiente — {{ $this->presentes }}/{{ $this->quorumMinimoNecessario }} necessários
@endif @if($materiaAtual || $bloco)
Votação aberta
@endif @if($this->pedidosPendentesCount > 0)
{{ $this->pedidosPendentesCount }} {{ $this->pedidosPendentesCount === 1 ? 'pedido de fala aguardando' : 'pedidos de fala aguardando' }}
@endif
{{-- ===================== Etapa I — Requerimentos/Incidentes: área operacional sempre visível quando há algo pendente (homologação item 1 — antes só aparecia dentro de "Outras ações", o operador não percebia). Nunca recalcula nada: só exibe $this->requerimentosAtivos (já existente) e chama os mesmos métodos do Service já usados no Presidente/Vereador. ===================== --}} @if($this->requerimentosAtivos->isNotEmpty())

REQUERIMENTOS / INCIDENTES — {{ $this->requerimentosAtivos->count() }} PENDENTE{{ $this->requerimentosAtivos->count() > 1 ? 'S' : '' }}

@foreach($this->requerimentosAtivos as $r)
{{ $r->tipo->nome }}
Solicitante: {{ $r->solicitante->name }} @if($r->registradoPor) · registrado por {{ $r->registradoPor->name }} @endif @if($r->sessaoMateria?->materia)
Matéria: {{ $r->sessaoMateria->materia->tipo }}{{ $r->sessaoMateria->materia->numero ? ' nº '.$r->sessaoMateria->materia->numero.'/'.$r->sessaoMateria->materia->ano : '' }} @endif
@if($r->justificativa)
"{{ $r->justificativa }}"
@endif
@if($r->status === 'aguardando_votacao') AGUARDANDO DELIBERAÇÃO DO PLENÁRIO @elseif($r->status === 'em_votacao') VOTAÇÃO INCIDENTAL EM ANDAMENTO @else {{ ucfirst(str_replace('_', ' ', $r->status)) }} @endif — decisão: {{ $r->forma_decisao_aplicada === 'plenario' ? 'Plenário' : 'Presidência' }} @if($r->autoridadeDecisao) · Autoridade: {{ $r->autoridadeDecisao->name }} @endif
@if(in_array($r->status, ['apresentado', 'em_analise'])) {{-- Homologação item 3 — mesmos três caminhos do Presidente, disponíveis pro operador registrar em nome da autoridade. Executor sempre = operador autenticado; autoridade resolvida automaticamente ou selecionada explicitamente quando ambígua (nunca escolhida arbitrariamente). --}} @if(! $this->autoridadePresidencialAutomatica) @error('requerimentoAutoridadeId')
{{ $message }}
@enderror @endif @error('requerimentoDecisaoObservacao')
{{ $message }}
@enderror
@elseif($r->status === 'aguardando_votacao') @elseif($r->status === 'em_votacao') {{-- Microcorreção "VOTAÇÃO INCIDENTAL NO PAINEL TV", item 15 — placar aqui também, reaproveitando Requerimento::contarVotos() (mesmo método usado pelo telão), sem nenhum cálculo próprio. --}} @php($votosReq = $r->contarVotos())
Favor: {{ $votosReq['favor'] }} Contra: {{ $votosReq['contra'] }} Abstenção: {{ $votosReq['abstencao'] }}
@endif @if($r->podeSerRetiradoPeloSolicitante()) @endif
@endforeach
@endif {{-- ===================== Etapa N — Subscrições de Matéria: instituto PRÓPRIO de AUTORIA, independente de Requerimentos/Questão de Ordem acima. Mesmo padrão visual/de decisão (autoridade automática × seleção manual). ===================== --}} @if($this->subscricoesPendentes->isNotEmpty())

SUBSCRIÇÕES DE MATÉRIA — {{ $this->subscricoesPendentes->count() }} PENDENTE{{ $this->subscricoesPendentes->count() > 1 ? 'S' : '' }}

@foreach($this->subscricoesPendentes as $s)
{{ $s->vereador->name }} solicita subscrever
{{ $s->materia->tipo }}{{ $s->materia->numero ? ' nº '.$s->materia->numero.'/'.$s->materia->ano : '' }} — {{ $s->materia->titulo }} @if($s->registradoPor)
Registrada por {{ $s->registradoPor->name }} @endif
Autor principal: {{ $s->materia->autor?->name ?? '—' }}
@if(! $this->autoridadePresidencialAutomatica) @error('subscricaoAutoridadeId')
{{ $message }}
@enderror @endif
@endforeach
@endif

Presentes

{{ $this->presentes }} / {{ $this->totalVereadoresAtivos }}
{{ $this->quorumAtingido ? 'Quórum atingido' : 'Quórum insuficiente' }}
@if($this->ultimaVerificacaoQuorum)
Última verificação:
@endif
Ver presença →

Pauta

{{ $this->totalMaterias }}
{{ $this->totalMaterias === 1 ? 'matéria' : 'matérias' }} — {{ $this->materiasFinalizadas }} finalizada(s)
Ver pauta →

Votação

@if($materiaAtual)
ABERTA
{{ \Illuminate\Support\Str::limit($materiaAtual->materia->titulo, 34) }}
@elseif($bloco)
ABERTA (bloco)
{{ $bloco->itens->count() }} matérias no bloco
@else
—
Nenhuma votação aberta
@endif Gerenciar votação →

Falas

{{ $this->pedidosPendentesCount }}
aguardando{{ $fala ? ' — 1 em andamento' : '' }}
Gerenciar falas →
{{-- ===================== Microetapa "Central Operacional Completa" — AÇÕES DA SESSÃO, MOVIDO pra cá (não copiado — o card "Ações principais" que existia lá embaixo, dentro de cs-secundario, foi removido de lá; este é o único lugar onde ele existe agora). Mesmos wire:click, hrefs, permissões e conteúdo de sempre — nenhuma ação foi reimplementada. $acoesSessaoAberta é uma propriedade NOVA (item 5 do pedido: $outrasAcoesAberto continua controlando só o sub-painel "Outras ações" abaixo, um escopo diferente do card inteiro). ===================== --}}
@if($acoesSessaoAberta)
Pauta Votação Falas @if(! $this->sessao->isSuspensa()) @endif
{{-- Correção cirúrgica preservada:
nativo trocado por estado do Livewire ($outrasAcoesAberto) — este componente tem wire:poll.5s, e o
fechava sozinho a cada poll porque seu `open` é estado do DOM, não do servidor. --}} @if($outrasAcoesAberto)
Presença Atas Painel Público Histórico da Sessão Resumo Final
@endif
@endif
{{-- ===================== Microetapa "Console Operacional Completo" — CENTRAL OPERACIONAL: UMA matéria corrente (item 2/3/4 do pedido), nunca uma lista. Cada branch abaixo só reaproveita computeds já existentes (CentralSessaoService) comparando id com $materiaCorrente — a REGRA de qual estado é qual nunca é recalculada aqui, só a decisão de QUAL delas exibir agora. "Último resultado" continua card próprio, mais abaixo. ===================== --}}
@php($materiaDiscussao = $this->materiaEmDiscussao) @php($materiaDiscussaoEncerrada = $materiaDiscussao ? null : $this->materiaDiscussaoEncerradaAguardandoVotacao) {{-- Etapa K — três estados do encaminhamento, mutuamente exclusivos por construção (ver CentralSessaoService, cada um só retorna não-null no seu próprio momento do fluxo). --}} @php($materiaAguardandoEncaminhamento = $materiaDiscussao ? null : $this->materiaAguardandoEncaminhamento) @php($materiaEmEncaminhamento = $materiaDiscussao ? null : $this->materiaEmEncaminhamento) @php($materiaEncaminhamentoEncerrado = $materiaDiscussao ? null : $this->materiaEncaminhamentoEncerradoAguardandoVotacao) @php($materiaAtoNaoImplementado = $materiaDiscussao ? null : $this->materiaAguardandoAtoNaoImplementado) @php($materiaCorrente = $this->materiaCorrente) @if($bloco) {{-- Votação em bloco continua fora do conceito de "matéria corrente" (item 4 do pedido é sobre UMA matéria) — mesmo tratamento de sempre, inalterado. --}}

Votação em bloco em apreciação

{{ $bloco->itens->count() }} matérias
Votação aberta
Favor: {{ $this->contagemBloco['favor'] }} Contra: {{ $this->contagemBloco['contra'] }} Abstenção: {{ $this->contagemBloco['abstencao'] }}
@else {{-- Navegação Recuar/Avançar (item 5/6 do pedido) — SÓ seleção visual, nunca escreve nada (item 4). Item 26: opção mais segura adotada — desabilitada por completo enquanto houver qualquer ato ativo na sessão (ver CentralSessao::navegacaoBloqueada()), tornando estruturalmente impossível "ver" outra matéria enquanto uma está ativa. --}}
@if($this->posicaoMateriaCorrente['posicao']) Matéria {{ $this->posicaoMateriaCorrente['posicao'] }} de {{ $this->posicaoMateriaCorrente['total'] }} @endif @if($this->navegacaoBloqueada)
Navegação bloqueada — há um ato em andamento
@endif
{{-- Item 25 do pedido — só informativo, derivado de materiasPendentesAnteriores() (mesma pautaOrdenada(), nenhuma consulta nova). Nunca bloqueia, nunca navega sozinho. --}} @if($materiaCorrente && $this->materiasPendentesAnteriores > 0)
{{ $this->materiasPendentesAnteriores }} {{ $this->materiasPendentesAnteriores === 1 ? 'matéria anterior ainda pendente' : 'matérias anteriores ainda pendentes' }}
@endif @if(! $materiaCorrente) @if($this->materiasPendentesAnteriores > 0) {{-- Item 18 do pedido — CAUSA DO BUG ORIGINAL: o avanço automático pós-conclusão procurava a primeira pendente em TODA a pauta, então voltava sozinho pra uma matéria pulada. Corrigido em avancarSelecaoAposConclusao() (só anda pra frente) — quando não sobra nenhuma pendente À FRENTE, mostra isto em vez de fazer wrap-around automático. --}}
FIM DA SEQUÊNCIA ATUAL
{{ $this->materiasPendentesAnteriores }} {{ $this->materiasPendentesAnteriores === 1 ? 'matéria anterior ainda pendente' : 'matérias anteriores ainda pendentes' }}.
@else
PAUTA CONCLUÍDA
Nenhuma matéria pendente de apreciação.
@endif @elseif($materiaAtual && $materiaCorrente->id === $materiaAtual->id)
{{ $materiaAtual->materia->tipo }}{{ $materiaAtual->materia->numero ? ' nº '.$materiaAtual->materia->numero.'/'.$materiaAtual->materia->ano : '' }} @if($materiaAtual->materia->voto_secreto) 🔒 Secreta @endif
@if($materiaAtual->materia->autor)
Autor: {{ $materiaAtual->materia->autor->name }}
@endif
🔴 Votação em andamento
Favor: {{ $this->contagemMateriaAtual['favor'] }} Contra: {{ $this->contagemMateriaAtual['contra'] }} Abstenção: {{ $this->contagemMateriaAtual['abstencao'] }}
Votos registrados: {{ $this->contagemMateriaAtual['favor'] + $this->contagemMateriaAtual['contra'] + $this->contagemMateriaAtual['abstencao'] }}
@if($this->statusVotantes)
Presentes: {{ $this->statusVotantes['presentes'] }} Votaram: {{ $this->statusVotantes['votaram'] }} Ainda não votaram: {{ $this->statusVotantes['pendentes'] }}
@endif
Ver matéria @if($materiaAtual->materia->anexo_pdf) Documento @endif Gerenciar votação
@elseif($materiaDiscussao && $materiaCorrente->id === $materiaDiscussao->id)
{{ $materiaDiscussao->materia->tipo }}{{ $materiaDiscussao->materia->numero ? ' nº '.$materiaDiscussao->materia->numero.'/'.$materiaDiscussao->materia->ano : '' }}
@if($materiaDiscussao->materia->autor)
Autor: {{ $materiaDiscussao->materia->autor->name }}
@endif
🟣 Em discussão
Iniciada às {{ $materiaDiscussao->discussao_iniciada_em->format('H:i') }}
{{ $this->oradoresAguardandoDiscussao }} {{ $this->oradoresAguardandoDiscussao === 1 ? 'orador aguardando' : 'oradores aguardando' }}
Gerenciar falas
@elseif($materiaAguardandoEncaminhamento && $materiaCorrente->id === $materiaAguardandoEncaminhamento->id)
{{ $materiaAguardandoEncaminhamento->materia->tipo }}{{ $materiaAguardandoEncaminhamento->materia->numero ? ' nº '.$materiaAguardandoEncaminhamento->materia->numero.'/'.$materiaAguardandoEncaminhamento->materia->ano : '' }}
🟠 Aguardando encaminhamento
@elseif($materiaEmEncaminhamento && $materiaCorrente->id === $materiaEmEncaminhamento->id)
{{ $materiaEmEncaminhamento->materia->tipo }}{{ $materiaEmEncaminhamento->materia->numero ? ' nº '.$materiaEmEncaminhamento->materia->numero.'/'.$materiaEmEncaminhamento->materia->ano : '' }}
🟠 Encaminhamento em andamento
@if($this->falaEncaminhamentoAtiva)
Orador atual: {{ $this->falaEncaminhamentoAtiva->nomeExibicao() }}
@else
Ninguém com a palavra agora.
@endif @if($this->filaEncaminhamento->isNotEmpty())
Próximo: {{ $this->filaEncaminhamento->first()->nomeExibicao() }} — Fila: {{ $this->filaEncaminhamento->count() }}
@else
Fila vazia.
@endif
Gerenciar fila
@elseif(($materiaDiscussaoEncerrada && $materiaCorrente->id === $materiaDiscussaoEncerrada->id) || ($materiaEncaminhamentoEncerrado && $materiaCorrente->id === $materiaEncaminhamentoEncerrado->id))
{{ $materiaCorrente->materia->tipo }}{{ $materiaCorrente->materia->numero ? ' nº '.$materiaCorrente->materia->numero.'/'.$materiaCorrente->materia->ano : '' }}
@if($materiaCorrente->materia->autor)
Autor: {{ $materiaCorrente->materia->autor->name }}
@endif @if($this->adiamentoVotacaoVigenteCorrente) {{-- Etapa O, item 16/18 — guard já bloqueado no BACKEND (SessaoRegimentalService::erroEstruturalParaAbrirVotacao()); isto aqui é só o reflexo visual, fonte única AdiamentoMateriaService. --}}
🟠 Votação adiada
Retorno: {{ app(\App\Services\AdiamentoMateriaService::class)->textoRetorno($this->adiamentoVotacaoVigenteCorrente) }}
@else
🟢 Pronta para votação
@endif @elseif($materiaAtoNaoImplementado && $materiaCorrente->id === $materiaAtoNaoImplementado['sessaoMateria']->id) {{-- Etapa G.1: o Perfil configurou um ato entre discussão e votação que este sistema ainda não sabe operar — o Motor NÃO pula pra "Abrir votação" em silêncio. --}}
{{ $materiaAtoNaoImplementado['sessaoMateria']->materia->tipo }}{{ $materiaAtoNaoImplementado['sessaoMateria']->materia->numero ? ' nº '.$materiaAtoNaoImplementado['sessaoMateria']->materia->numero.'/'.$materiaAtoNaoImplementado['sessaoMateria']->materia->ano : '' }}
Discussão encerrada
Próximo ato regimental: {{ ucfirst($materiaAtoNaoImplementado['ato']) }}. Controle operacional ainda não implementado.
@elseif($this->materiaEmLeitura && $materiaCorrente->id === $this->materiaEmLeitura->id)
{{ $materiaCorrente->materia->tipo }}{{ $materiaCorrente->materia->numero ? ' nº '.$materiaCorrente->materia->numero.'/'.$materiaCorrente->materia->ano : '' }}
@if($materiaCorrente->materia->autor)
Autor: {{ $materiaCorrente->materia->autor->name }}
@endif
🔵 Em leitura
Ver matéria {{-- Parte A da Microetapa Fluxo Operacional — Perfil Leitura→Votação (sem Discussão/Encaminhamento configurados): "Abrir votação" coexiste com "Finalizar leitura" (fonte única SessaoRegimentalService::votacaoDisponivelDuranteLeitura(), nunca aparece quando o Perfil exige discussão/ encaminhamento antes). O clique encerra oficialmente a leitura e abre a votação na MESMA transação (VotacaoMateriaService::abrirIndividual()). --}} @if(app(\App\Services\SessaoRegimentalService::class)->votacaoDisponivelDuranteLeitura($materiaCorrente)) @endif
@elseif($materiaCorrente->estaRetirada()) {{-- Item 28 do pedido — matéria retirada: nunca oferece ação, histórico preservado integralmente. --}}
{{ $materiaCorrente->materia->tipo }}{{ $materiaCorrente->materia->numero ? ' nº '.$materiaCorrente->materia->numero.'/'.$materiaCorrente->materia->ano : '' }}
Retirada da pauta
Esta matéria foi retirada — nenhuma ação disponível.
@elseif($materiaCorrente->status === 'finalizada') {{-- Item 29 do pedido — RECUAR pode alcançar uma finalizada, mas só consulta, nunca reabre votação. --}}
{{ $materiaCorrente->materia->tipo }}{{ $materiaCorrente->materia->numero ? ' nº '.$materiaCorrente->materia->numero.'/'.$materiaCorrente->materia->ano : '' }}
{{ ucfirst($materiaCorrente->resultado ?? 'Finalizada') }}
@else {{-- Microcorreção, Problema 1 do pedido — CAUSA DO BUG ORIGINAL: esta branch usava `comportamento($sessao,'discussao') !== 'bloquear'` pra decidir se mostrava "Aguardando discussão". `comportamento()` devolve 'permitir' tanto quando o ato está configurado como 'permitir' QUANTO quando o ato simplesmente NÃO EXISTE no Perfil (ver SessaoRegimentalService::comportamento(), doc do método) — por isso um Perfil LEITURA→VOTAÇÃO (sem Discussão configurada) ainda caía aqui como "permitido", inventando uma etapa que o Perfil nunca definiu. CORREÇÃO: usa materiaProntaParaVotacao() — mesma fonte ÚNICA que a Pauta usa pra decidir se oferece "Abrir votação" (Perfil-aware de verdade: só exige leitura/discussão/ encaminhamento concluídos quando atoConfiguradoExplicitamente() confirma que cada um deles REALMENTE faz parte do Perfil) — e atoConfiguradoExplicitamente() (não comportamento()) pra decidir se mostra "Aguardando discussão". Nenhuma regra nova: as duas fontes já existiam no Motor Regimental, só não estavam sendo consultadas aqui. --}} @php($materiaCorrentePronta = app(\App\Services\SessaoRegimentalService::class)->materiaProntaParaVotacao($materiaCorrente)) {{-- Microcorreção "Central Operacional: Iniciar leitura + Abrir votação simultâneos" — fonte ÚNICA e INDEPENDENTE de materiaProntaParaVotacao() (SessaoRegimentalService::podeIniciarLeitura()): leitura e votação nunca são tratadas como estados mutuamente exclusivos aqui — cada botão aparece conforme a SUA PRÓPRIA fonte, nunca a negação da outra (causa do bug anterior: a Blade só oferecia "Iniciar leitura" no @else de "pronta pra votação", escondendo-o sempre que materiaProntaParaVotacao() já estava true — o que a Auditoria confirmou acontecer sempre que a sessão não tem Perfil Regimental associado, ou tem um Perfil que não configura o ato 'leitura' explicitamente: nesses dois casos materiaProntaParaVotacao() já retorna true de saída, igual sempre fez — comportamento preservado, ver item 7 do pedido). --}} @php($podeIniciarLeituraCorrente = app(\App\Services\SessaoRegimentalService::class)->podeIniciarLeitura($materiaCorrente)) @php($fatosLeituraCorrente = $materiaCorrente->fatosLeitura()) @php($podeAbrirDiscussaoCorrente = ! $materiaCorrentePronta && $fatosLeituraCorrente['encerrada_em'] && ! $materiaCorrente->emDiscussao() && ! $materiaCorrente->discussaoEncerrada() && app(\App\Services\SessaoRegimentalService::class)->atoConfiguradoExplicitamente($this->sessao, 'discussao'))
{{ $materiaCorrente->materia->tipo }}{{ $materiaCorrente->materia->numero ? ' nº '.$materiaCorrente->materia->numero.'/'.$materiaCorrente->materia->ano : '' }}
@if($materiaCorrente->materia->autor)
Autor: {{ $materiaCorrente->materia->autor->name }}
@endif {{-- Etapa O, item 15/16/18 — adiamento vigente sempre tem prioridade visual sobre "pronta"/"aguardando leitura"/"aguardando discussão": o backend já bloqueia (DiscussaoService::abrir()/ SessaoRegimentalService::erroEstruturalParaAbrirVotacao()), isto é só o reflexo visual, fonte única AdiamentoMateriaService. Nunca esconde a leitura em si (item 27 do pedido original — adiamento nunca reinicia leitura; "Iniciar leitura" continua coexistindo com o badge de adiamento quando aplicável, mesma independência de fontes). --}} @if($materiaCorrentePronta && $this->adiamentoVotacaoVigenteCorrente)
🟠 Votação adiada
Retorno: {{ app(\App\Services\AdiamentoMateriaService::class)->textoRetorno($this->adiamentoVotacaoVigenteCorrente) }}
@if($podeIniciarLeituraCorrente)
@endif @elseif($materiaCorrentePronta || $podeIniciarLeituraCorrente) {{-- Item 3/4 do pedido — os dois botões são avaliados e exibidos de forma INDEPENDENTE; o rótulo do badge usa "Pronta para votação" quando a votação já está disponível (mesmo que leitura ainda possa ser iniciada — item 3: "não é necessário criar um novo status apenas para exibir o botão"), senão "Aguardando leitura". --}}
{{ $materiaCorrentePronta ? '🟢 Pronta para votação' : '🟡 Aguardando leitura' }}
@if($podeIniciarLeituraCorrente) @endif @if($materiaCorrentePronta) @endif
@elseif($podeAbrirDiscussaoCorrente && $this->adiamentoDiscussaoVigenteCorrente)
🟠 Discussão adiada
Retorno: {{ app(\App\Services\AdiamentoMateriaService::class)->textoRetorno($this->adiamentoDiscussaoVigenteCorrente) }}
@elseif($podeAbrirDiscussaoCorrente)
Aguardando discussão
@else {{-- Nenhuma das fontes acima libera uma ação agora (ex.: encaminhamento configurado ainda pendente, já tratado por um branch anterior desta mesma cadeia) — nunca inventa "Iniciar leitura" aqui: SessaoRegimentalService::podeIniciarLeitura() já teria liberado o botão acima se fizesse sentido. --}}
Aguardando
@endif @endif @endif
{{-- ===================== Falas (item 16-22 do pedido) — painel compacto, complementar ao card "Com a palavra" mais abaixo (que continua existindo, inalterado, com sorteio de ordem e fila completa — item 21: "não substituição de toda a tela de gerenciamento"). Mesmos dados já computados ($fala/restanteSegundosFala/proximosNaFila), mesmas ações já existentes (autorizarFalaCentral/encerrarFalaCentral, espelho de PainelOperador::autorizarFala()/encerrarFala()). ===================== --}} @if($fala || $this->proximosNaFila->isNotEmpty())

Falas

@if($fala)
🎙 Falando agora
{{ $fala->nomeExibicao() }}
@if($fala->sessaoMateria?->materia)
{{ $fala->finalidade === 'encaminhamento' ? 'Encaminhamento' : ($fala->isAparte() ? 'Aparte' : 'Fala') }} — {{ $fala->sessaoMateria->materia->tipo }}{{ $fala->sessaoMateria->materia->numero ? ' nº '.$fala->sessaoMateria->materia->numero.'/'.$fala->sessaoMateria->materia->ano : '' }}
@endif @if($this->restanteSegundosFala !== null)
{{ sprintf('%02d:%02d', intdiv($this->restanteSegundosFala, 60), $this->restanteSegundosFala % 60) }}
@endif
@elseif($this->proximosNaFila->isNotEmpty()) @php($proximoOrador = $this->proximosNaFila->first())
Próximo na fila
{{ $proximoOrador->nomeExibicao() }}
@endif @if($this->proximosNaFila->count() > 1)
Próximos
{{ $this->proximosNaFila->skip($fala ? 0 : 1)->take(3)->map->nomeExibicao()->implode(', ') }}
@endif
Gerenciar falas →
@endif {{-- ===================== Último Resultado (item 19/21 do pedido) — só lê computed property já existente, nenhuma consulta nova. Ocupa agora sozinho o espaço que antes dividia com "Fila Operacional" (removida — ver item 20/17 do relatório: ficou redundante com a lista de pendentes/próximas que a própria Central Operacional passou a mostrar). ===================== --}}

Último resultado

@php($ultima = $this->ultimaVotacaoFinalizada) @if($ultima)
{{ $ultima->materia->tipo }}{{ $ultima->materia->numero ? ' nº '.$ultima->materia->numero.'/'.$ultima->materia->ano : '' }}
@if($ultima->materia->voto_secreto) 🔒 Votação secreta @endif
{{ ucfirst($ultima->resultado) }}
Favor: {{ $ultima->votos_favor }} Contra: {{ $ultima->votos_contra }} Abstenção: {{ $ultima->votos_abstencao }}
@else
Nenhuma votação concluída ainda nesta sessão.
@endif
{{-- ===================== Timeline recolhível (item 10/11/12 do pedido) — $timelineAberta é propriedade pública comum (não Computed, não Computed-reset), preservada pelo Livewire entre os polls de 5s do topo. Mesmo conteúdo/dados de sempre ($this->timeline, já Computed — count() não gera consulta extra). ===================== --}}
@if($timelineAberta)
@if($this->timeline->isNotEmpty())
    @foreach($this->timeline as $evento)
  • {{ $evento['horario'] }} {{ $evento['descricao'] }}
  • @endforeach
@else
Nenhum evento registrado ainda pra esta sessão.
@endif
Timeline completa exige uma futura estrutura de auditoria/eventos — esta lista mostra só o que já está registrado.
@endif
{{-- Microetapa "Central Operacional Completa" — só 2 cards restam aqui ("Ações principais" foi MOVIDO pra "AÇÕES DA SESSÃO" no topo, não duplicado); cs-secundario-2col ajusta a grade sem tocar a regra base (ainda usada, com 3 colunas, no estado "sem sessão ativa" lá em cima). --}}

Com a palavra

@if($fala)
{{ $fala->nomeExibicao() }}
{{ $fala->isAparte() ? 'Aparte' : 'Fala' }} @if($this->restanteSegundosFala !== null) — {{ sprintf('%02d:%02d', intdiv($this->restanteSegundosFala, 60), $this->restanteSegundosFala % 60) }} restantes @endif
{{ $fala->isAparte() ? 'Gerenciar aparte' : 'Gerenciar fala' }} → @else
Ninguém com a palavra no momento.
@endif @if($this->proximosNaFila->isNotEmpty() || $this->pedidosNormaisPendentesCount >= 2)
{{ $this->sorteioOrdemFala ? 'Ordem sorteada' : 'Próximos na fila' }}
@if($this->pedidosNormaisPendentesCount >= 2) @endif
@if($this->proximosNaFila->isNotEmpty())
    @foreach($this->proximosNaFila as $pedido)
  1. {{ $pedido->ordem ? $pedido->ordem.'º ' : '' }}{{ $pedido->nomeExibicao() }}
  2. @endforeach
Ver fila completa → @else
Nenhum inscrito no momento.
@endif
@endif
{{-- Fase atual (Etapa C) agora vive no banner do topo da Central, sempre visível (item 2 da Etapa C.2) — não repete a informação aqui pra não duplicar a mesma coisa em dois lugares. --}}

Ata

@if(! $this->ata)
Ainda não gerada.
@csrf
@elseif(! $this->ata->publicar_site)
Em preparação
Rascunho — ainda não publicada.
Abrir Ata → @else
Disponível
Publicada.
Visualizar Ata → @endif
{{-- ===================== Modal: Cancelar votação ===================== --}} @if($modalCancelarVotacao && $materiaAtual)

Cancelar esta votação?

Os votos registrados nesta tentativa serão desconsiderados do resultado oficial (continuam preservados no histórico, nunca são apagados). O cancelamento ficará registrado na linha do tempo da sessão.
@if($motivoCancelamento === 'Outro') @endif @error('motivoCancelamento')
{{ $message }}
@enderror
@endif {{-- ===================== Modal: confirmar avanço automático leitura → discussão (Etapa G) ===================== --}} @if($modalConfirmarAvancoDiscussaoCentral)

Atenção

A leitura foi encerrada. A abertura da discussão exige confirmação, conforme o Perfil Regimental desta Câmara para a fase atual: {{ $this->sessao->faseRegimentalAtual->nome ?? '—' }}.
@endif {{-- ===================== Microetapa "Console Operacional Completo" — modais de abrir discussão/votação diretamente na Central. Mesmo padrão visual dos modais já existentes acima; mesmas mensagens/condições de PainelOperador::abrirDiscussao()/ iniciarVotacao(int) — nunca uma regra nova, só a mesma apresentação bloquear/alertar já usada em toda a Central. ===================== --}} @if($modalDiscussaoBloqueadaCentral)

Discussão não disponível

A abertura de discussão não está disponível na fase atual, conforme o Perfil Regimental desta sessão.
@endif @if($modalConfirmarDiscussaoCentral)

Confirmar abertura de discussão

Esta ação exige confirmação nesta fase, conforme o Perfil Regimental desta sessão.
@endif @if($modalVotacaoBloqueadaCentral)

Votação não disponível

A abertura de votação não está disponível agora — verifique se a leitura/discussão/encaminhamento exigidos pelo Perfil Regimental desta sessão já foram concluídos.
@endif @if($modalConfirmarVotacaoCentral)

Confirmar abertura de votação

Esta ação exige confirmação nesta fase, conforme o Perfil Regimental desta sessão.
@endif {{-- Item 14 do pedido — confirmação obrigatória antes de encerrar votação, mesmo padrão de "Modal: Cancelar votação" acima. Sem recalcular votos aqui — mesma $this->contagemMateriaAtual já usada no card. --}} @if($modalEncerrarVotacaoCentral && $materiaAtual)

Encerrar votação?

{{ $materiaAtual->materia->tipo }}{{ $materiaAtual->materia->numero ? ' nº '.$materiaAtual->materia->numero.'/'.$materiaAtual->materia->ano : '' }}
Favor: {{ $this->contagemMateriaAtual['favor'] }} Contra: {{ $this->contagemMateriaAtual['contra'] }} Abstenção: {{ $this->contagemMateriaAtual['abstencao'] }}
@endif {{-- ===================== Modal: Alterar fase (Motor Regimental) ===================== --}} @if($modalAlterarFase)

Alterar fase da sessão

@foreach($this->fasesDoPerfilAtual as $fase) @php($ehAtual = $this->sessao?->fase_regimental_atual_id === $fase->id) @php($jaPassou = $this->sessao?->faseRegimentalAtual && $fase->ordem < $this->sessao->faseRegimentalAtual->ordem) @endforeach
@error('novaFaseSelecionadaId')
{{ $message }}
@enderror
@endif {{-- ===================== Modal: Verificar quórum (Etapa E) ===================== --}} @if($modalVerificarQuorum)

Verificar quórum

@if($this->comportamentoVerificacaoQuorum === 'alertar')
O Perfil Regimental desta Câmara prevê um aviso para verificação de quórum durante a fase atual: {{ $this->sessao->faseRegimentalAtual->nome ?? '—' }}.
@endif

A verificação registra, de forma permanente, quem está presente agora — {{ $this->presentes }} de {{ $this->totalVereadoresAtivos }}.

@error('finalidadeVerificacao')
{{ $message }}
@enderror
@endif {{-- ===================== Modal: verificação de quórum bloqueada (informativo) ===================== --}} @if($modalVerificacaoQuorumBloqueada)

Verificação não disponível nesta fase

Fase atual: {{ $this->sessao->faseRegimentalAtual->nome ?? '—' }}

Conforme a configuração do Perfil Regimental, a verificação de quórum está bloqueada nesta fase.

@endif {{-- ===================== Modal: detalhe de uma verificação (relação nominal) ===================== --}} @if($modalDetalheVerificacao && $this->verificacaoDetalhe)

Verificação de quórum

{{ $this->verificacaoDetalhe->criado_em->format('d/m/Y H:i') }} — {{ $this->verificacaoDetalhe->finalidadeLabel() }} @if($this->verificacaoDetalhe->faseRegimental) · Fase: {{ $this->verificacaoDetalhe->faseRegimental->nome }} @endif @if($this->verificacaoDetalhe->sessaoMateria?->materia) · {{ $this->verificacaoDetalhe->sessaoMateria->materia->tipo }} @if($this->verificacaoDetalhe->sessaoMateria->materia->numero) nº {{ $this->verificacaoDetalhe->sessaoMateria->materia->numero }}/{{ $this->verificacaoDetalhe->sessaoMateria->materia->ano }} @endif @endif

@if($this->verificacaoDetalhe->observacao)

Observação: {{ $this->verificacaoDetalhe->observacao }}

@endif
Presentes: {{ $this->verificacaoDetalhe->total_presentes }} Ausentes: {{ $this->verificacaoDetalhe->totalAusentes() }}
    @foreach($this->verificacaoDetalhe->presencas->sortBy('vereador.name') as $p)
  • {{ $p->vereador->name ?? '—' }} {{ $p->presente ? 'Presente' : 'Ausente' }}
  • @endforeach
@endif {{-- ===================== Modal: Registrar Questão de Ordem em nome do vereador (complemento) ===================== --}} @if($modalRegistrarQuestaoOrdem)

Registrar Questão de Ordem

Use isto quando o vereador não registrar pelo próprio painel — ele continua sendo o autor; fica registrado que você fez o lançamento.

@if($this->comportamentoQuestaoOrdem === 'alertar')
O Perfil Regimental desta Câmara prevê um aviso para Questão de Ordem durante a fase atual: {{ $this->sessao->faseRegimentalAtual->nome ?? '—' }}.
@endif @error('questaoOrdemVereadorId')
{{ $message }}
@enderror @error('questaoOrdemTextoCentral')
{{ $message }}
@enderror
@endif {{-- ===================== Modal: Questão de Ordem bloqueada nesta fase (informativo) ===================== --}} @if($modalQuestaoOrdemBloqueada)

Questão de Ordem não disponível nesta fase

Fase atual: {{ $this->sessao->faseRegimentalAtual->nome ?? '—' }}

Conforme a configuração do Perfil Regimental, Questão de Ordem está bloqueada nesta fase.

@endif {{-- ===================== Modal: Decisão da Presidência, lançada pelo operador (complemento) ===================== --}} @if($modalDecidirQuestaoOrdemCentral)

Decisão da Presidência

Você está registrando no sistema a decisão da Presidência — a autoridade da decisão continua sendo atribuída a quem preside a sessão, não a você.

@if($this->autoridadePresidencialAutomatica)

Autoridade da decisão: {{ $this->autoridadePresidencialAutomatica->name }}

@else

Não foi possível determinar automaticamente (nenhum ou mais de um registro de Presidência encontrado) — selecione pra não atribuir a decisão à pessoa errada.

@error('questaoOrdemAutoridadeId')
{{ $message }}
@enderror @endif @error('questaoOrdemDecisaoCentralTexto')
{{ $message }}
@enderror
@endif {{-- ===================== Modal: detalhe de uma Questão de Ordem (Etapa F) ===================== --}} @if($modalDetalheQuestaoOrdem && $this->questaoOrdemDetalhe)

Questão de Ordem

{{ $this->questaoOrdemDetalhe->suscitada_em->format('d/m/Y H:i') }} — {{ $this->questaoOrdemDetalhe->vereador->name }} @if($this->questaoOrdemDetalhe->registradoPor) (registrado por {{ $this->questaoOrdemDetalhe->registradoPor->name }}) @endif @if($this->questaoOrdemDetalhe->sessaoMateria?->materia) · {{ $this->questaoOrdemDetalhe->sessaoMateria->materia->tipo }} @if($this->questaoOrdemDetalhe->sessaoMateria->materia->numero) nº {{ $this->questaoOrdemDetalhe->sessaoMateria->materia->numero }}/{{ $this->questaoOrdemDetalhe->sessaoMateria->materia->ano }} @endif @endif @if($this->questaoOrdemDetalhe->faseRegimental) · Fase: {{ $this->questaoOrdemDetalhe->faseRegimental->nome }} @endif

Questão: {{ $this->questaoOrdemDetalhe->questao }}

@if($this->questaoOrdemDetalhe->fundamentacao)

Fundamentação: {{ $this->questaoOrdemDetalhe->fundamentacao }}

@endif
@if($this->questaoOrdemDetalhe->isDecidida()) Decidida @elseif($this->questaoOrdemDetalhe->isRetirada()) Retirada @elseif($this->questaoOrdemDetalhe->isEmAnalise()) Em análise @else Aguardando análise @endif
@if($this->questaoOrdemDetalhe->isDecidida())

Decisão da Presidência: {{ $this->questaoOrdemDetalhe->decisao }}
Autoridade: {{ $this->questaoOrdemDetalhe->autoridadeDecisao->name ?? $this->questaoOrdemDetalhe->decididaPor->name ?? '—' }} @if($this->questaoOrdemDetalhe->decididaPor && $this->questaoOrdemDetalhe->autoridadeDecisao && $this->questaoOrdemDetalhe->decididaPor->id !== $this->questaoOrdemDetalhe->autoridadeDecisao->id) · registrada por {{ $this->questaoOrdemDetalhe->decididaPor->name }} @endif às {{ $this->questaoOrdemDetalhe->decidida_em?->format('H:i') }}

@endif
@endif {{-- ===================== Etapa I — Modal: Requerimentos/Incidentes Regimentais ===================== --}} @if($modalRequerimentos)

Requerimentos / Incidentes

{{-- ---------- Apresentar novo ---------- --}}

O vereador (ou a Presidência) continua sendo o solicitante — fica registrado que você fez o lançamento.

@if($this->comportamentoRequerimento === 'alertar')
O Perfil Regimental desta Câmara prevê um aviso para requerimentos durante a fase atual: {{ $this->sessao->faseRegimentalAtual->nome ?? '—' }}.
@endif {{-- wire:model.live — Etapa O: os campos de prazo do adiamento (exigeModalidadeAdiamento) precisam reagir assim que o tipo muda, sem esperar o submit. --}} @error('requerimentoSolicitanteId')
{{ $message }}
@enderror {{-- Etapa O, item 10 — Adiamento da Discussão/Votação sempre informa modalidade/prazo na apresentação (RequerimentoService rejeita sem isso pra estes dois tipos). --}} @if($this->exigeModalidadeAdiamento)
@if($this->requerimentoModalidadeAdiamento === 'por_x_sessoes') @elseif($this->requerimentoModalidadeAdiamento === 'sessao_especifica') @if($this->sessoesElegiveisParaRetorno->isEmpty())

Nenhuma sessão futura elegível cadastrada ainda nesta legislatura/sessão legislativa.

@endif @elseif($this->requerimentoModalidadeAdiamento === 'ate_data') @endif @endif @error('requerimentoJustificativa')
{{ $message }}
@enderror {{-- Homologação item 1 — a lista de pendentes com ações passou a viver numa área sempre visível na Central (ver acima de "cs-alertas"), não mais escondida aqui dentro de "Outras ações". Este modal agora é só o formulário de apresentar um requerimento novo. --}}
@endif {{-- ===================== Etapa I — Modal: Requerimentos bloqueados nesta fase (informativo) ===================== --}} @if($modalRequerimentoBloqueado)

Requerimentos não disponíveis nesta fase

Fase atual: {{ $this->sessao->faseRegimentalAtual->nome ?? '—' }}

Conforme a configuração do Perfil Regimental, requerimentos estão bloqueados nesta fase.

@endif {{-- ===================== Modal: Suspender sessão ===================== --}} @if($modalSuspender)

Suspender a sessão?

A sessão continua existindo — pauta, presença, votos, fila de fala e inscrições são preservados. Enquanto suspensa, nenhum voto pode ser registrado.
@if($motivoSuspensaoPreset === 'Outro') @endif @error('motivoSuspensaoPreset')
{{ $message }}
@enderror
@endif {{-- ===================== Modal: Registrar ocorrência ===================== --}} @if($modalOcorrencia)

Registrar ocorrência

@error('ocorrenciaDescricao')
{{ $message }}
@enderror
@endif {{-- ===================== Modal: Mensagem no Telão ===================== --}} @if($modalMensagemTelao)

Mensagem no Telão

A mensagem é só uma camada de apresentação — não altera status, votação, matéria, fala nem cronômetro. Quando ocultada, o telão volta sozinho ao que estiver acontecendo de verdade.
@error('mensagemTelaoTexto')
{{ $message }}
@enderror
@endif {{-- ===================== Modal: Uso da Palavra (inscrição formal) ===================== REGRA FUNDAMENTAL: pedidos_fala com momento != NULL (inscrição formal) são tratados aqui, sempre por id explícito — nunca por "o pedido do vereador X" de forma genérica. "Chamar"/"Concluir" reaproveitam autorizarFalaCentral()/encerrarFalaCentral() (os mesmos já usados pela fila comum, sem nenhuma reimplementação), que continuam intocados e continuam funcionando exatamente igual pra pedido comum (momento = NULL) em qualquer outra tela. "Mostrar inscritos/sorteio na TV" e "Tirar da TV" só ligam/ desligam uso_da_palavra_visivel_telao + uso_da_palavra_modo_telao (camada de apresentação — as duas colunas vivem na mesma linha de `sessoes`, então mostrar um modo sempre TROCA o outro, nunca soma) — nenhuma delas abre/fecha inscrição de nenhum momento (isso continua só em abrirInscricoes()/fecharInscricoes(), inalterados), autoriza vereador, inicia cronômetro ou sorteia. Sortear continua sendo só sortearOrdemUsoDaPalavraCentral(). --}} @if($modalUsoDaPalavra)

🎙 Inscritos para Uso da Palavra

Inscrição formal (momento definido) é independente de pedido de fala comum — chamar, concluir ou cancelar aqui nunca afeta pedidos comuns do mesmo vereador, e vice-versa.
@php($usoDaPalavraNaTv = $this->sessao->uso_da_palavra_visivel_telao) @php($modoNaTv = $this->sessao->uso_da_palavra_modo_telao)
Exibição no telão: @if($usoDaPalavraNaTv && $modoNaTv === 'inscritos') ATIVA — mostrando lista de inscritos @elseif($usoDaPalavraNaTv && $modoNaTv === 'sorteio') ATIVA — mostrando resultado do sorteio @else Desligada — inscritos ficam guardados, a TV não muda sozinha @endif
@if($usoDaPalavraNaTv && $modoNaTv === 'inscritos') @else @endif {{-- Só aparece quando existe sorteio real pra Uso da Palavra (nunca sorteia ao clicar — só troca o que a TV exibe, ver CentralSessaoService::mostrarSorteioNaTv()). --}} @if($this->existeSorteioUsoDaPalavra) @if($usoDaPalavraNaTv && $modoNaTv === 'sorteio') @else @endif @endif
@forelse($this->momentosFormaisComEstado as $m) @php($inscritosDoMomento = $this->inscritosUsoDaPalavra->where('momento', $m['chave'])->values())
{{ $m['rotulo'] }} {{ $m['estado']->aberto ? 'Inscrições abertas' : 'Inscrições fechadas' }}
@if($inscritosDoMomento->isEmpty())

Nenhuma inscrição neste momento.

@else
@foreach($inscritosDoMomento as $i => $pedido)
{{ $i + 1 }}º
@if($pedido->fotoExibicao()) @else
{{ mb_substr($pedido->nomeExibicao(), 0, 1) }}
@endif
{{ $pedido->nomeExibicao() }}
{{ $pedido->partidoExibicao() ?? '—' }}
status === 'cancelada') style="background:#fee2e2; color:#991b1b" @endif> {{ match($pedido->status) { 'pendente' => 'Aguardando', 'autorizada' => 'Em fala', 'finalizada' => 'Concluído', 'cancelada' => 'Cancelado', default => $pedido->status } }}
@if($pedido->status === 'pendente') @elseif($pedido->status === 'autorizada') @endif
@endforeach
@endif
@empty

Nenhum momento formal habilitado na configuração.

@endforelse
@endif {{-- ===================== Modal: Checklist de encerramento (item 4) ===================== --}} @if($modalEncerrar)

Checklist de encerramento

    @foreach($this->checklistEncerramento as $item)
  • @if($item['tipo'] === 'ok') ✓ @elseif($item['tipo'] === 'aviso') ⚠ @else ✕ @endif {{ $item['label'] }}
  • @endforeach
@if(! $this->podeEncerrarSessao)
Não é possível encerrar com uma votação em andamento. Encerre ou cancele a votação antes de tentar novamente.
@endif
@csrf
@endif @endif