{{-- Conteúdo principal (listagem por abas) — reutilizado na index do módulo e no Dashboard Estratégico --}}
@php
    $tk = $ppTabQueryKey ?? 'tab';
    $queryBase = request()->query();
    unset($queryBase['page'], $queryBase['page_programas'], $queryBase['page_objetivos']);
@endphp
<div class="container-fluid">
    <div class="row">
        <div class="col-12">
            @if(session('success'))
                <div class="alert alert-success alert-dismissible fade show" role="alert">
                    {{ session('success') }}
                    <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="{{ __('Fechar') }}"></button>
                </div>
            @endif
            @if(session('error'))
                <div class="alert alert-danger alert-dismissible fade show" role="alert">
                    {{ session('error') }}
                    <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="{{ __('Fechar') }}"></button>
                </div>
            @endif
            @if($errors->any())
                <div class="alert alert-danger alert-dismissible fade show" role="alert">
                    <ul class="mb-0 ps-3">
                        @foreach($errors->all() as $err)
                            <li>{{ $err }}</li>
                        @endforeach
                    </ul>
                    <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="{{ __('Fechar') }}"></button>
                </div>
            @endif

            @if(!empty($painelDashboard) && empty($ppPainelEmbutidoDashboard))
                <div class="mb-2">
                    <a href="{{ route('admin.dashboardEstrategico.index') }}" class="btn btn-outline-secondary btn-sm">
                        <i class="fa-solid fa-arrow-left me-1"></i> {{ __('Voltar ao Dashboard Estratégico') }}
                    </a>
                </div>
            @endif

            @if(empty($ppPainelEmbutidoDashboard))
                <header class="text-center mb-3">
                    <h4 class="mb-0">{{ !empty($painelDashboard) ? __('Projetos e Programas — visão estratégica') : __('Gestão de Projetos e Programas') }}
                    </h4>
                    @if(!empty($painelDashboard))
                        <p class="text-muted small mb-0 mt-2">{{ __('Lista alinhada ao MAPÃO. Prioridades sincronizadas com o módulo da SUPOP.') }}
                        </p>
                    @endif
                </header>
            @else
                {{-- intencionalmente sem título: visão embutida no Dashboard deve ser clean --}}
            @endif

            <ul class="nav nav-pills mb-3 pp-projetos-programas-tabs flex-wrap gap-1 justify-content-center" role="tablist"
                aria-label="{{ __('Abas do módulo Projetos e Programas') }}">
                <li class="nav-item" role="presentation">
                    <a class="nav-link {{ $tabAtual === 'projetos' ? 'active' : '' }}"
                        id="tab-projetos-link"
                        href="{{ route($ppModuleRoute, array_merge($queryBase, [$tk => 'projetos'])) }}"
                        role="tab" aria-selected="{{ $tabAtual === 'projetos' ? 'true' : 'false' }}">
                        {{ __('Projetos') }}
                    </a>
                </li>
                @if(empty($painelDashboard))
                    <li class="nav-item" role="presentation">
                        <a class="nav-link {{ $tabAtual === 'programas' ? 'active' : '' }}"
                            id="tab-programas-link"
                            href="{{ route($ppModuleRoute, array_merge($queryBase, [$tk => 'programas'])) }}"
                            role="tab" aria-selected="{{ $tabAtual === 'programas' ? 'true' : 'false' }}">
                            {{ __('Programas') }}
                        </a>
                    </li>
                    <li class="nav-item" role="presentation">
                        <a class="nav-link {{ $tabAtual === 'objetivos' ? 'active' : '' }}"
                            id="tab-objetivos-link"
                            href="{{ route($ppModuleRoute, array_merge($queryBase, [$tk => 'objetivos'])) }}"
                            role="tab" aria-selected="{{ $tabAtual === 'objetivos' ? 'true' : 'false' }}">
                            {{ __('Objetivos') }}
                        </a>
                    </li>
                @endif
                <li class="nav-item" role="presentation">
                    <a class="nav-link {{ $tabAtual === 'dashboard' ? 'active' : '' }}"
                        id="tab-dashboard-link"
                        href="{{ route($ppModuleRoute, array_merge($queryBase, [$tk => 'dashboard'])) }}"
                        role="tab" aria-selected="{{ $tabAtual === 'dashboard' ? 'true' : 'false' }}">
                        {{ __('Dados') }}
                    </a>
                </li>
                <li class="nav-item" role="presentation">
                    <a class="nav-link {{ $tabAtual === 'prioridades' ? 'active' : '' }}"
                        id="tab-prioridades-link"
                        href="{{ route($ppModuleRoute, array_merge($queryBase, [$tk => 'prioridades'])) }}"
                        role="tab" aria-selected="{{ $tabAtual === 'prioridades' ? 'true' : 'false' }}">
                        {{ __('Prioridades') }}
                    </a>
                </li>
                @php
                    $ppMapaTabQuery = [$tk => 'mapa'];
                    foreach (['mapa_filtros_visiveis', 'mapa_search', 'mapa_gestor', 'mapa_prioritario', 'mapa_orcamento_status_cor', 'mapa_status_registro', 'mapa_bairro'] as $ppMapaQueryKey) {
                        if (request()->filled($ppMapaQueryKey)) {
                            $ppMapaTabQuery[$ppMapaQueryKey] = request($ppMapaQueryKey);
                        }
                    }
                @endphp
                <li class="nav-item" role="presentation">
                    <a class="nav-link {{ $tabAtual === 'mapa' ? 'active' : '' }}"
                        id="tab-mapa-link"
                        href="{{ route($ppModuleRoute, $ppMapaTabQuery) }}"
                        role="tab" aria-selected="{{ $tabAtual === 'mapa' ? 'true' : 'false' }}">
                        {{ __('Mapa') }}
                    </a>
                </li>
            </ul>

            @if(!empty($mapaoApenasCadastroCompleto))
                @if(empty($ppPainelEmbutidoDashboard))
                    <p class="text-muted small mb-3">{{ __('Somente projetos com cadastro concluído são exibidos nesta visão do Dashboard Estratégico.') }}</p>
                @endif
            @endif

            <div class="tab-content" id="projetosProgramasTabsContent">
                <div class="tab-pane fade {{ $tabAtual === 'projetos' ? 'show active' : '' }}" id="tab-projetos"
                    role="tabpanel" aria-labelledby="tab-projetos-link">
                    @php
                        $routeToggleLista = $prioridadeToggleRoute ?? 'admin.projetosProgramas.prioridade.toggle';
                    @endphp

                    @php
                        // per_page não entra aqui: é preferência de listagem, não filtro — senão o painel
                        // abre sozinho após mudar "Por página" ao lado de "Exibindo".
                        // gestor (Secretaria) fica fora do collapse; não entra em ppHasFiltros.
                        $ppFiltrosChaves = [
                            'prioritario',
                            'andamento_cor',
                            'orcamento_status_cor',
                            'status_registro',
                            'bairro',
                            'bairo',
                        ];
                        $ppHasFiltros = collect($ppFiltrosChaves)->contains(function ($k) {
                            return request()->filled($k);
                        });
                        // Parâmetro explícito: mantém painel aberto/fechado após Filtrar / busca / paginação.
                        $ppFiltrosExpanded = request()->has('filtros_visiveis')
                            ? request()->boolean('filtros_visiveis')
                            : $ppHasFiltros;
                    @endphp

                    @php
                        $routeRelatorio = !empty($painelDashboard)
                            ? 'admin.dashboardEstrategico.projetosProgramas.relatorio'
                            : 'admin.projetosProgramas.relatorio';
                    @endphp
                    <div class="d-flex flex-wrap justify-content-between align-items-center gap-2 mb-2">
                        <div class="d-flex flex-wrap align-items-center gap-3">
                            <div class="small text-muted mb-0">
                                <strong>{{ __("Total") }}:</strong> {{ $projects->total() }} {{ __("registro(s)") }}
                                @if($projects->total())
                                    <span class="ms-2">| {{ __("Exibindo") }} {{ $projects->firstItem() }}-{{ $projects->lastItem() }}</span>
                                @endif
                            </div>
                            <form method="get" action="{{ route($ppModuleRoute) }}" class="d-flex align-items-center gap-1 flex-wrap mb-0" id="pp-per-page-form">
                                <input type="hidden" name="{{ $tk }}" value="projetos">
                                <input type="hidden" name="filtros_visiveis" class="pp-filtros-visiveis-field" value="{{ $ppFiltrosExpanded ? '1' : '0' }}">
                                @foreach(request()->except([$tk, 'per_page', 'page', 'filtros_visiveis']) as $key => $value)
                                    @if(is_array($value))
                                        @foreach($value as $v)
                                            <input type="hidden" name="{{ $key }}[]" value="{{ $v }}">
                                        @endforeach
                                    @else
                                        <input type="hidden" name="{{ $key }}" value="{{ $value }}">
                                    @endif
                                @endforeach
                                <label class="form-label small mb-0 text-muted" for="pp_per_page_inline">{{ __("Por página") }}:</label>
                                <select name="per_page" id="pp_per_page_inline" class="form-select form-select-sm w-auto" onchange="this.form.submit()" aria-label="{{ __('Registros por página') }}">
                                    @foreach($perPageOptions as $option)
                                        <option value="{{ $option }}" {{ $currentPerPage == $option ? 'selected' : '' }}>{{ $option }}</option>
                                    @endforeach
                                </select>
                            </form>
                        </div>
                        <div class="d-flex flex-wrap justify-content-end align-items-center gap-2" role="toolbar"
                            aria-label="{{ __('Ações da listagem de projetos') }}">
                            @if(empty($painelDashboard) && !empty(auth()->user()->getPermissaoDetalhes('GERENCIADOR_DE_PROJETOS_E_PROGRAMAS')['adicionar'] ?? null))
                                <a href="{{ route('admin.projetosProgramas.create') }}" class="btn btn-primary btn-sm">
                                    <i class="fa fa-plus me-1" aria-hidden="true"></i> {{ __('Novo projeto') }}
                                </a>
                            @endif
                            <button
                                class="btn btn-outline-secondary btn-sm"
                                type="button"
                                aria-controls="pp-filtros-collapse"
                                aria-expanded="{{ $ppFiltrosExpanded ? 'true' : 'false' }}"
                                data-pp-filtros-toggle
                                data-label-show="{{ __('Exibir filtros') }}"
                                data-label-hide="{{ __('Ocultar filtros') }}"
                            >
                                <i class="fa-solid fa-sliders me-1" aria-hidden="true"></i>
                                <span data-pp-filtros-toggle-label>{{ $ppFiltrosExpanded ? __('Ocultar filtros') : __('Exibir filtros') }}</span>
                            </button>
                            <a href="{{ route($routeRelatorio, request()->except(['columns', 'group1', 'group2', 'group3'])) }}"
                                class="btn btn-outline-primary btn-sm">
                                <i class="fa-solid fa-table me-1"></i> {{ __("Relatórios personalizados") }}
                            </a>
                            @if(empty($painelDashboard))
                                <a href="{{ route('admin.projetosProgramas.imprimirLista', request()->except(['columns', 'group1', 'group2', 'group3'])) }}" target="_blank"
                                    class="btn btn-outline-secondary btn-sm">
                                    <i class="fa fa-print me-1"></i> {{ __("Imprimir (MAPÃO)") }}
                                </a>
                                @if($canDelete ?? false)
                                    <button type="button"
                                        class="btn btn-outline-danger btn-sm"
                                        data-bs-toggle="modal"
                                        data-bs-target="#modalExclusaoEmMassaProjetos">
                                        <i class="fa-solid fa-trash-can me-1" aria-hidden="true"></i> {{ __('Exclusão em massa') }}
                                    </button>
                                @endif
                            @endif
                        </div>
                    </div>

                    <form method="get" id="filterForm" action="{{ route($ppModuleRoute) }}" class="mb-2">
                        <input type="hidden" name="{{ $tk }}" value="projetos">
                        <input type="hidden" name="per_page" value="{{ $currentPerPage }}">
                        <input type="hidden" name="filtros_visiveis" class="pp-filtros-visiveis-field" value="{{ $ppFiltrosExpanded ? '1' : '0' }}">

                        <div class="row g-2 mb-2 align-items-end">
                            <div class="col-12 col-md-4 col-lg-3">
                                <label class="form-label small" for="filtro_pp_gestor">{{ __('Secretaria') }}</label>
                                <select name="gestor" id="filtro_pp_gestor" class="form-select form-select-sm">
                                    <option value="">{{ __('Todos') }}</option>
                                    @foreach($gestores as $g)
                                        <option value="{{ $g->id }}" {{ request('gestor') == $g->id ? 'selected' : '' }}>
                                            {{ $g->abbreviation ? $g->abbreviation . ' - ' . $g->name : $g->name }}
                                        </option>
                                    @endforeach
                                </select>
                            </div>
                            <div class="col-12 col-md-8 col-lg-9">
                                <label class="form-label small" for="searchInput">{{ __('Buscar') }}</label>
                                <div class="input-group input-group-sm">
                                    <input type="text" name="search" id="searchInput" class="form-control"
                                        placeholder="{{ __('Buscar por denominação, descrição, bairro, endereço...') }}"
                                        value="{{ request('search') }}"
                                        autocomplete="off">
                                    <button class="btn btn-outline-secondary" type="button" id="clearSearch" title="{{ __('Limpar busca') }}">
                                        <i class="fa fa-times" aria-hidden="true"></i>
                                    </button>
                                </div>
                            </div>
                        </div>

                        <div id="pp-filtros-collapse" class="collapse {{ $ppFiltrosExpanded ? 'show' : '' }}">
                            <div class="row g-2 mb-3">
                                <div class="col-6 col-md-4 col-lg-2 col-xl-2">
                                <label class="form-label small" for="filtro_pp_prioritario">{{ __("Prioritário") }}</label>
                                <select name="prioritario" id="filtro_pp_prioritario" class="form-select form-select-sm">
                                    <option value="">{{ __("Todos") }}</option>
                                    <option value="1" {{ request('prioritario') === '1' ? 'selected' : '' }}>{{ __('Sim') }}</option>
                                    <option value="0" {{ request('prioritario') === '0' ? 'selected' : '' }}>{{ __('Não') }}</option>
                                </select>
                            </div>
                            <div class="col-6 col-md-4 col-lg-2 col-xl-2">
                                <label class="form-label small" for="filtro_pp_orcamento_status_cor">{{ __('Situação do orçamento (MAPÃO)') }}</label>
                                <select name="orcamento_status_cor" id="filtro_pp_orcamento_status_cor" class="form-select form-select-sm">
                                    <option value="">{{ __('Todas') }}</option>
                                    @foreach($mapaoCoresLegenda ?? [] as $valor => $legenda)
                                        <option value="{{ $valor }}" {{ request('orcamento_status_cor') === $valor ? 'selected' : '' }}>{{ $legenda }}</option>
                                    @endforeach
                                    <option value="_vazio" {{ request('orcamento_status_cor') === '_vazio' ? 'selected' : '' }}>{{ __('Sem situação cadastrada') }}</option>
                                </select>
                            </div>
                            @unless(!empty($mapaoApenasCadastroCompleto))
                                <div class="col-6 col-md-4 col-lg-2 col-xl-2">
                                    <label class="form-label small" for="filtro_pp_status_registro">{{ __('Situação do cadastro') }}</label>
                                    <select name="status_registro" id="filtro_pp_status_registro" class="form-select form-select-sm">
                                        <option value="">{{ __('Todas') }}</option>
                                        @foreach($statusRegistroFiltroOpcoes ?? [] as $valor => $rotulo)
                                            <option value="{{ $valor }}" {{ request('status_registro') === $valor ? 'selected' : '' }}>{{ $rotulo }}</option>
                                        @endforeach
                                    </select>
                                </div>
                            @endunless
                            <div class="col-12 col-md-6 col-lg-4 col-xl-3">
                                <label class="form-label small" for="filtro_pp_bairro">{{ __('Bairro') }}</label>
                                <select name="bairro" id="filtro_pp_bairro" class="form-select form-select-sm">
                                    <option value="">{{ __('Todos') }}</option>
                                    @foreach($bairrosFiltroOpcoes ?? [] as $bNome)
                                        <option value="{{ $bNome }}" {{ request('bairro') === $bNome || request('bairo') === $bNome ? 'selected' : '' }}>
                                            {{ $bNome }}
                                        </option>
                                    @endforeach
                                </select>
                            </div>
                            <div class="col-12 col-md-8 col-lg-4 col-xl-3 d-flex align-items-end gap-2 flex-wrap">
                                <button class="btn btn-success btn-sm" type="submit">
                                    <i class="fa fa-filter me-1"></i> {{ __("Filtrar") }}
                                </button>
                                <a href="{{ route($ppModuleRoute, [$tk => 'projetos']) }}"
                                    class="btn btn-secondary btn-sm">{{ __("Limpar") }}</a>
                            </div>
                            </div>
                        </div>
                    </form>

                    @include('admin.projetosProgramas.sections.tab-projetos-tabela-dashboard', [
                        'routeToggleLista' => $routeToggleLista,
                        'mostrarColunaAcoes' => empty($painelDashboard),
                        'ppModuleRoute' => $ppModuleRoute,
                        'ppTabQueryKey' => $tk,
                        'projetosListagemReturnQuery' => $projetosListagemReturnQuery ?? [],
                    ])
                    <div class="d-flex justify-content-center">
                        {{ $projects->links('pagination::bootstrap-4') }}
                    </div>
                </div>
                @if(empty($painelDashboard))
                    <div class="tab-pane fade {{ $tabAtual === 'programas' ? 'show active' : '' }}" id="tab-programas"
                        role="tabpanel" aria-labelledby="tab-programas-link">
                        @include('admin.projetosProgramas.sections.tab-programas')
                    </div>
                    <div class="tab-pane fade {{ $tabAtual === 'objetivos' ? 'show active' : '' }}" id="tab-objetivos"
                        role="tabpanel" aria-labelledby="tab-objetivos-link">
                        @include('admin.projetosProgramas.sections.tab-objetivos')
                    </div>
                @endif
                <div class="tab-pane fade {{ $tabAtual === 'dashboard' ? 'show active' : '' }}" id="tab-dashboard"
                    role="tabpanel" aria-labelledby="tab-dashboard-link">
                    @include('admin.projetosProgramas.sections.tab-dashboard')
                </div>
                <div class="tab-pane fade {{ $tabAtual === 'prioridades' ? 'show active' : '' }}" id="tab-prioridades"
                    role="tabpanel" aria-labelledby="tab-prioridades-link">
                    @include('admin.projetosProgramas.sections.tab-prioridades', [
                        'prioridadeOrigem' => $prioridadeOrigem ?? 'SUPOP',
                        'prioridadesOrdenarRoute' => $prioridadesOrdenarRoute ?? null,
                        'prioridadeToggleRoute' => $prioridadeToggleRoute ?? null,
                        'prioridadesCandidatosRoute' => $prioridadesCandidatosRoute ?? null,
                        'prioridadesAdicionarRoute' => $prioridadesAdicionarRoute ?? null,
                    ])
                </div>
                <div class="tab-pane fade {{ $tabAtual === 'mapa' ? 'show active' : '' }}" id="tab-mapa"
                    role="tabpanel" aria-labelledby="tab-mapa-link">
                    @include('admin.projetosProgramas.sections.tab-mapa')
                </div>
            </div>
        </div>
    </div>
</div>

@include('admin.projetosProgramas.partials._modal_visualizar_projeto')
@if($canEditProjeto ?? false)
    @include('components.projetosProgramas._modal_lancar_andamento', [
        'mapaoCoresLegenda' => $mapaoCoresLegenda ?? [],
    ])
@endif
@if(empty($painelDashboard) && !empty($canDelete ?? false))
    @include('components.projetosProgramas._modal_exclusao_em_massa', [
        'projects' => $projects,
        'mapaoIdentificadores' => $mapaoIdentificadores ?? [],
        'mapaoApenasCadastroCompleto' => $mapaoApenasCadastroCompleto ?? false,
        'ppTabQueryKey' => $ppTabQueryKey ?? 'tab',
        'tabAtual' => $tabAtual ?? 'projetos',
    ])
@endif
