<?php defined('BASEPATH') OR exit('No direct script access allowed');

$nome_enc = urlencode($exp->devedor_nome ?? '');
$doc_limpo = preg_replace('/\D/', '', $exp->devedor_doc ?? '');
$doc_fmt   = $exp->devedor_doc ?? '';

// Monta o array completo de fontes por categoria
$fontes = [
    [
        'categoria' => 'Imóveis',
        'icone'     => '🏠',
        'cor'       => '#1565c0',
        'itens'     => [
            [
                'nome'       => 'ONR — Certidão Nacional de Imóveis',
                'descricao'  => 'Consulta imóveis registrados em nome do devedor em qualquer cartório do Brasil.',
                'url'        => 'https://cer.oni.org.br/',
                'url_label'  => 'Abrir ONR',
                'instrucao'  => 'Acesse → "Busca por CPF/CNPJ" → informe: ' . $doc_fmt,
                'judicial'   => false,
                'custo'      => 'Pago por certidão (~R$ 15)',
                'tese'       => 'Localiza imóveis para penhora. Fundamenta art. 835, VIII CPC.',
            ],
            [
                'nome'       => 'IPTU Recife — Imóveis por CPF/CNPJ',
                'descricao'  => 'Prefeitura do Recife permite consultar imóveis vinculados ao CPF/CNPJ do contribuinte.',
                'url'        => 'https://bonip.recife.pe.gov.br/',
                'url_label'  => 'Abrir Prefeitura Recife',
                'instrucao'  => 'Acesse → "Consulta por CPF/CNPJ" → informe: ' . $doc_fmt,
                'judicial'   => false,
                'custo'      => 'Gratuito',
                'tese'       => 'Localiza imóveis urbanos em Recife para penhora.',
            ],
            [
                'nome'       => 'INCRA — Imóveis Rurais (SNCR)',
                'descricao'  => 'Sistema Nacional de Cadastro Rural: localiza propriedades rurais por CPF/CNPJ do proprietário.',
                'url'        => 'https://sncr.serpro.gov.br/',
                'url_label'  => 'Abrir INCRA/SNCR',
                'instrucao'  => 'Acesse → "Certificação de Imóvel Rural" → buscar por CPF: ' . $doc_fmt,
                'judicial'   => false,
                'custo'      => 'Gratuito',
                'tese'       => 'Imóvel rural é bem penhorável (art. 835 CPC). ITR pode reforçar o valor.',
            ],
            [
                'nome'       => 'INFOJUD — Declaração de IR (Judicial)',
                'descricao'  => 'Acesso judicial às declarações de Imposto de Renda pela Receita Federal. Revela imóveis, veículos, saldos bancários e outros bens declarados.',
                'url'        => 'https://www.cnj.jus.br/tecnologia-da-informacao-e-comunicacao/sistemas-cnj/infojud/',
                'url_label'  => 'Ver INFOJUD',
                'instrucao'  => 'Requer ofício do juízo à Receita Federal via INFOJUD. Informar CPF: ' . $doc_fmt,
                'judicial'   => true,
                'custo'      => 'Judicial',
                'tese'       => 'Fundamenta art. 139, IV CPC (medidas atípicas). Petição disponível no Arsenal.',
            ],
        ],
    ],
    [
        'categoria' => 'Empresas & Participações',
        'icone'     => '🏢',
        'cor'       => '#2e7d32',
        'itens'     => [
            [
                'nome'       => 'JUCEPE — Junta Comercial de PE',
                'descricao'  => 'Consulta empresas registradas em PE onde o devedor figura como sócio ou administrador.',
                'url'        => 'https://www.jucepe.pe.gov.br/servicos/consultas/',
                'url_label'  => 'Abrir JUCEPE',
                'instrucao'  => 'Acesse → "Consulta de Empresas" → pesquisar por nome: ' . ($exp->devedor_nome ?? ''),
                'judicial'   => false,
                'custo'      => 'Gratuito',
                'tese'       => 'Fundamento para IDPJ (art. 50 CC) ou grupo econômico (art. 855-A CLT).',
            ],
            [
                'nome'       => 'Receita Federal — Consulta CNPJ Completo',
                'descricao'  => 'Portal da Receita Federal com dados cadastrais completos de empresas, incluindo quadro societário.',
                'url'        => 'https://solucoes.receita.fazenda.gov.br/servicos/cnpjreva/cnpjreva_solicitacao.asp',
                'url_label'  => 'Abrir Receita Federal',
                'instrucao'  => 'Informar CNPJ da empresa investigada para verificar se devedor consta como sócio.',
                'judicial'   => false,
                'custo'      => 'Gratuito',
                'tese'       => 'Confirma participação societária para IDPJ.',
            ],
            [
                'nome'       => 'CVM — Cotistas de Fundos (FIP/FIDC)',
                'descricao'  => 'Dataset mensal de cotistas de fundos de investimento. Busca manual por CPF/CNPJ no CSV.',
                'url'        => 'https://dados.cvm.gov.br/dataset?groups=fundos-de-investimento',
                'url_label'  => 'Abrir CVM Dados',
                'instrucao'  => 'Baixar dataset de cotistas → buscar CPF/CNPJ: ' . $doc_fmt,
                'judicial'   => false,
                'custo'      => 'Gratuito (trabalhoso)',
                'tese'       => 'Cotas de FIP/FIDC são ativos penhoráveis. Art. 835, I CPC.',
            ],
        ],
    ],
    [
        'categoria' => 'Financeiro & Bancário',
        'icone'     => '💰',
        'cor'       => '#e65100',
        'itens'     => [
            [
                'nome'       => 'SISBAJUD — Contas Bancárias (Judicial)',
                'descricao'  => 'Sistema de busca e bloqueio de contas bancárias diretamente pelo juízo, via Banco Central.',
                'url'        => 'https://www.cnj.jus.br/tecnologia-da-informacao-e-comunicacao/sistemas-cnj/sisbajud/',
                'url_label'  => 'Ver SISBAJUD',
                'instrucao'  => 'Requer ordem judicial. Juízo acessa o SISBAJUD e determina busca/bloqueio pelo CPF/CNPJ: ' . $doc_fmt,
                'judicial'   => true,
                'custo'      => 'Judicial',
                'tese'       => 'Principal ferramenta de penhora online. Art. 854 CPC (penhora on-line BacenJud/Sisbajud).',
            ],
            [
                'nome'       => 'BACEN CCS — Cadastro de Clientes',
                'descricao'  => 'Revela em quais instituições financeiras o devedor possui ou possuiu conta/relacionamento.',
                'url'        => 'https://www.bcb.gov.br/estabilidadefinanceira/ccs',
                'url_label'  => 'Ver BACEN CCS',
                'instrucao'  => 'Acesso apenas via ofício judicial ao Banco Central. Informar CPF: ' . $doc_fmt,
                'judicial'   => true,
                'custo'      => 'Judicial',
                'tese'       => 'Identifica onde concentrar o SISBAJUD para maximizar bloqueio.',
            ],
            [
                'nome'       => 'PGFN — Precatórios Federais a Receber',
                'descricao'  => 'Verifica se o devedor tem precatório federal a receber do governo — ativo interceptável.',
                'url'        => 'https://www.regularize.pgfn.gov.br/',
                'url_label'  => 'Abrir PGFN',
                'instrucao'  => 'Acesse → pesquisar por CPF/CNPJ: ' . $doc_fmt . ' → verificar precatórios ativos.',
                'judicial'   => false,
                'custo'      => 'Gratuito',
                'tese'       => 'Precatório é crédito penhorável. Penhora no rosto do precatório (art. 860 CPC).',
            ],
        ],
    ],
    [
        'categoria' => 'Propriedade Intelectual',
        'icone'     => '💡',
        'cor'       => '#6a1b9a',
        'itens'     => [
            [
                'nome'       => 'INPI — Marcas e Patentes',
                'descricao'  => 'Pesquisa marcas, patentes e desenhos industriais registrados em nome do devedor.',
                'url'        => 'https://busca.inpi.gov.br/pePI/servlet/MarcasServletController',
                'url_label'  => 'Abrir INPI',
                'instrucao'  => 'Acesse → "Busca por Titular" → inserir CPF/CNPJ: ' . $doc_fmt,
                'judicial'   => false,
                'custo'      => 'Gratuito',
                'tese'       => 'Marca registrada é ativo intangível penhorável (art. 129 LPI + art. 835 CPC).',
            ],
            [
                'nome'       => 'ANATEL — Outorgas de Rádio/TV',
                'descricao'  => 'Verifica concessões de radiodifusão, rádio, TV ou serviços de telecomunicação em nome do devedor.',
                'url'        => 'https://sistemas.anatel.gov.br/easp/novo/listacondicionada/tela.cfm',
                'url_label'  => 'Abrir ANATEL',
                'instrucao'  => 'Acesse → filtrar por CPF/CNPJ do titular: ' . $doc_fmt,
                'judicial'   => false,
                'custo'      => 'Gratuito',
                'tese'       => 'Outorgas de grande valor. Fundamenta medidas atípicas (art. 139 IV CPC).',
            ],
            [
                'nome'       => 'ANP — Concessões de Petróleo e Gás',
                'descricao'  => 'Verifica se o devedor possui concessões de exploração de petróleo, gás ou biocombustíveis.',
                'url'        => 'https://www.gov.br/anp/pt-br/rodadas-anp/contratos-e-autorizacoes',
                'url_label'  => 'Abrir ANP',
                'instrucao'  => 'Buscar pelo nome da empresa/devedor: ' . ($exp->devedor_nome ?? ''),
                'judicial'   => false,
                'custo'      => 'Gratuito',
                'tese'       => 'Concessões ANP são ativos de alto valor — medidas atípicas de bloqueio.',
            ],
        ],
    ],
    [
        'categoria' => 'Candidaturas & Bens Públicos',
        'icone'     => '⚖️',
        'cor'       => '#c0392b',
        'itens'     => [
            [
                'nome'       => 'TSE — Bens Declarados por Candidato',
                'descricao'  => 'Consulta bens declarados pelo devedor em candidaturas eleitorais. CPF foi removido da base; busca apenas por nome.',
                'url'        => 'https://divulgacandcontas.tse.jus.br/divulga/#/candidato/buscar?nome=' . $nome_enc,
                'url_label'  => 'Abrir TSE',
                'instrucao'  => 'URL já preenchida com o nome do devedor. Alta taxa de homônimo — confirmar dados adicionais.',
                'judicial'   => false,
                'custo'      => 'Gratuito',
                'tese'       => 'Bens declarados ao TSE servem como evidência patrimonial em processos de execução.',
            ],
            [
                'nome'       => 'Portal Transparência — Servidores Federais',
                'descricao'  => 'Verifica se o devedor é servidor público federal, beneficiário de aposentadoria ou pensão do SIAPE.',
                'url'        => 'https://portaldatransparencia.gov.br/servidores/consulta?paginacaoSimples=true&tamanhoPagina=&offset=&direcaoOrdenacao=asc&nome=' . $nome_enc,
                'url_label'  => 'Abrir Portal Transparência',
                'instrucao'  => 'URL já preenchida com o nome. Verificar cargo, órgão e remuneração para eventual penhora de salário (acima de 50 SM).',
                'judicial'   => false,
                'custo'      => 'Gratuito',
                'tese'       => 'Salário de servidor é penhorável acima de 50 salários mínimos (art. 833, §2º CPC).',
            ],
        ],
    ],
    [
        'categoria' => 'Cartórios & Registro Civil',
        'icone'     => '📜',
        'cor'       => '#37474f',
        'itens'     => [
            [
                'nome'       => 'CENSEC — Escrituras e Procurações',
                'descricao'  => 'Central Notarial de Serviços Eletrônicos Compartilhados: localiza escrituras de compra/venda, doações e procurações lavradas em nome do devedor.',
                'url'        => 'https://www.censec.org.br/',
                'url_label'  => 'Abrir CENSEC',
                'instrucao'  => 'Acesso mediante credencial de advogado OAB ou ordem judicial. Buscar por CPF: ' . $doc_fmt,
                'judicial'   => false,
                'custo'      => 'Pago por consulta',
                'tese'       => 'Revela transferências de imóveis suspeitas de fraude à execução (art. 792 CPC).',
            ],
            [
                'nome'       => 'RCPN — Registro Civil de Pessoas Naturais',
                'descricao'  => 'Verifica estado civil atual, regime de bens e possíveis alterações (separação, divórcio). Bens do cônjuge podem responder pela dívida.',
                'url'        => 'https://www.registrocivil.org.br/',
                'url_label'  => 'Abrir Registro Civil',
                'instrucao'  => 'Solicitar certidão de casamento/estado civil atualizada para: ' . ($exp->devedor_nome ?? ''),
                'judicial'   => false,
                'custo'      => 'Pago por certidão',
                'tese'       => 'Regime de comunhão universal/parcial de bens: cônjuge pode ser incluído na execução (art. 843 CPC).',
            ],
        ],
    ],
    [
        'categoria' => 'Presença Digital & Atividade Oculta',
        'icone'     => '🌐',
        'cor'       => '#00838f',
        'itens'     => [
            [
                'nome'       => 'Google — Pesquisa de Atividade Econômica',
                'descricao'  => 'Verificar se o devedor exerce atividade econômica informal ou possui bens não declarados.',
                'url'        => 'https://www.google.com/search?q=' . $nome_enc . '+CPF+' . $doc_limpo,
                'url_label'  => 'Pesquisar no Google',
                'instrucao'  => 'URL preenchida com nome + CPF. Pesquisar também: "' . ($exp->devedor_nome ?? '') . ' empresa" e "' . ($exp->devedor_nome ?? '') . ' sócio".',
                'judicial'   => false,
                'custo'      => 'Gratuito',
                'tese'       => 'Atividade econômica informal detectada pode fundamentar medidas atípicas (art. 139 IV CPC).',
            ],
            [
                'nome'       => 'LinkedIn — Atividade Profissional',
                'descricao'  => 'Verifica cargo, empresa atual e histórico profissional — pode revelar fontes de renda ocultas.',
                'url'        => 'https://www.linkedin.com/search/results/people/?keywords=' . $nome_enc,
                'url_label'  => 'Pesquisar no LinkedIn',
                'instrucao'  => 'Verificar cargo atual, empresa e possíveis participações societárias não declaradas.',
                'judicial'   => false,
                'custo'      => 'Gratuito',
                'tese'       => 'Renda não declarada ou atividade empresarial oculta fundamenta fraude à execução.',
            ],
        ],
    ],
];
?>
<style>
.dilig-hero{background:linear-gradient(135deg,#1e3a5f,#2d5986);border-radius:12px;padding:20px 24px;color:#fff;margin-bottom:18px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.dilig-hero h2{font-size:17px;font-weight:700;margin:0}
.dilig-hero p{font-size:12.5px;opacity:.8;margin:4px 0 0}
.progress-global{background:rgba(255,255,255,.15);border-radius:20px;height:8px;width:200px;overflow:hidden;margin-top:8px}
.progress-global-fill{height:100%;background:#2ecc71;border-radius:20px;transition:width .4s}

.cat-section{margin-bottom:18px}
.cat-header{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px 8px 0 0;color:#fff;font-weight:700;font-size:13.5px}
.cat-body{border:1px solid #e2e6ea;border-top:none;border-radius:0 0 8px 8px;overflow:hidden}

.dilig-item{background:#fff;padding:14px 16px;border-bottom:1px solid #f0f2f5;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start}
.dilig-item:last-child{border-bottom:none}
.dilig-item.concluido{background:#f0fff4}
.dilig-item.sem-resultado{background:#fff9f9}

.dilig-titulo{font-size:13.5px;font-weight:700;color:#1e3a5f;margin:0 0 3px}
.dilig-desc{font-size:12px;color:#666;margin:0 0 6px;line-height:1.5}
.dilig-instrucao{font-size:11.5px;color:#888;background:#f8fafc;border-left:3px solid #dde2e8;padding:5px 8px;border-radius:0 4px 4px 0;margin-bottom:8px}
.dilig-tese{font-size:11px;color:#1565c0;font-style:italic}
.dilig-badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.badge-judicial{background:#ffebee;color:#c0392b;font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px}
.badge-custo{background:#f3e5f5;color:#6a1b9a;font-size:10px;padding:2px 7px;border-radius:4px}
.badge-gratis{background:#e8f5e9;color:#2e7d32;font-size:10px;padding:2px 7px;border-radius:4px}

.dilig-acoes{display:flex;flex-direction:column;gap:6px;min-width:160px;align-items:flex-end}
.dilig-resultado{width:100%;margin-top:8px;display:none}
.dilig-resultado textarea{width:100%;font-size:12px;border:1px solid #dde2e8;border-radius:6px;padding:6px 8px;resize:vertical;min-height:55px}
.dilig-resultado .resultado-btns{display:flex;gap:6px;margin-top:6px}

.stats-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
.stat-card{background:#fff;border:1px solid #e2e6ea;border-radius:8px;padding:12px;text-align:center}
.stat-card .num{font-size:22px;font-weight:700;color:#1e3a5f}
.stat-card .lbl{font-size:10.5px;color:#888;text-transform:uppercase;letter-spacing:.4px}
</style>

<section class="content-header">
    <h1><i class="fa fa-search-plus"></i> Diligências Externas — Checklist Completo</h1>
    <ol class="breadcrumb">
        <li><a href="<?php echo site_url('admin') ?>"><i class="fa fa-dashboard"></i></a></li>
        <li><a href="<?php echo site_url('admin/patrimonio') ?>">Busca Patrimonial</a></li>
        <?php if($exp): ?>
        <li><a href="<?php echo site_url('admin/patrimonio/view/'.$exp->id) ?>"><?php echo htmlspecialchars($exp->devedor_nome) ?></a></li>
        <?php endif; ?>
        <li class="active">Diligências Externas</li>
    </ol>
</section>

<section class="content">

<!-- Hero -->
<div class="dilig-hero">
    <div>
        <h2><?php echo htmlspecialchars($exp->devedor_nome ?? 'Devedor') ?></h2>
        <p><?php echo htmlspecialchars($doc_fmt) ?> &nbsp;·&nbsp; <?php echo count(array_merge(...array_column($fontes, 'itens'))) ?> fontes de investigação manual</p>
    </div>
    <div style="text-align:right">
        <div style="font-size:11px;opacity:.7;margin-bottom:4px">Progresso das diligências</div>
        <div class="progress-global"><div class="progress-global-fill" id="prog-fill" style="width:0%"></div></div>
        <div style="font-size:11px;opacity:.8;margin-top:4px" id="prog-label">0 de <?php echo count(array_merge(...array_column($fontes, 'itens'))) ?> concluídas</div>
    </div>
</div>

<!-- Stats -->
<div class="stats-bar">
    <div class="stat-card"><div class="num" id="stat-total"><?php echo count(array_merge(...array_column($fontes, 'itens'))) ?></div><div class="lbl">Total de fontes</div></div>
    <div class="stat-card"><div class="num text-success" id="stat-ok">0</div><div class="lbl">Encontrou bem</div></div>
    <div class="stat-card"><div class="num text-muted" id="stat-neg">0</div><div class="lbl">Sem resultado</div></div>
    <div class="stat-card"><div class="num" id="stat-jud" style="color:#c0392b"><?php echo count(array_filter(array_merge(...array_column($fontes, 'itens')), fn($i) => $i['judicial'])) ?></div><div class="lbl">Requerem judicial</div></div>
</div>

<!-- Categorias -->
<?php foreach($fontes as $cat): ?>
<div class="cat-section">
    <div class="cat-header" style="background:<?php echo $cat['cor'] ?>">
        <span style="font-size:18px"><?php echo $cat['icone'] ?></span>
        <?php echo htmlspecialchars($cat['categoria']) ?>
        <span style="margin-left:auto;font-size:11px;opacity:.8;font-weight:400"><?php echo count($cat['itens']) ?> fonte(s)</span>
    </div>
    <div class="cat-body">
        <?php foreach($cat['itens'] as $i => $item): ?>
        <?php $item_id = 'item_' . md5($item['nome']); ?>
        <div class="dilig-item" id="card-<?php echo $item_id ?>">
            <div>
                <div class="dilig-titulo"><?php echo htmlspecialchars($item['nome']) ?></div>
                <div class="dilig-desc"><?php echo htmlspecialchars($item['descricao']) ?></div>
                <div class="dilig-badges">
                    <?php if($item['judicial']): ?>
                    <span class="badge-judicial">⚖️ Requer ordem judicial</span>
                    <?php endif; ?>
                    <span class="badge-<?php echo strpos($item['custo'],'Gratuito')!==false?'gratis':'custo' ?>"><?php echo htmlspecialchars($item['custo']) ?></span>
                </div>
                <div class="dilig-instrucao"><i class="fa fa-hand-o-right" style="margin-right:4px;color:#1565c0"></i><?php echo htmlspecialchars($item['instrucao']) ?></div>
                <div class="dilig-tese"><i class="fa fa-balance-scale" style="margin-right:4px"></i><?php echo htmlspecialchars($item['tese']) ?></div>

                <!-- Campo de anotação -->
                <div class="dilig-resultado" id="res-<?php echo $item_id ?>">
                    <textarea placeholder="Anote o resultado desta diligência..." id="txt-<?php echo $item_id ?>"></textarea>
                    <div class="resultado-btns">
                        <button class="btn btn-success btn-xs btn-reg-resultado" data-id="<?php echo $item_id ?>" data-status="encontrado" data-nome="<?php echo htmlspecialchars($item['nome']) ?>">
                            <i class="fa fa-check"></i> Encontrou bem
                        </button>
                        <button class="btn btn-default btn-xs btn-reg-resultado" data-id="<?php echo $item_id ?>" data-status="sem_resultado" data-nome="<?php echo htmlspecialchars($item['nome']) ?>">
                            <i class="fa fa-times"></i> Sem resultado
                        </button>
                    </div>
                </div>
            </div>
            <div class="dilig-acoes">
                <a href="<?php echo $item['url'] ?>" target="_blank" class="btn btn-primary btn-sm">
                    <i class="fa fa-external-link"></i> <?php echo htmlspecialchars($item['url_label']) ?>
                </a>
                <button class="btn btn-default btn-xs btn-anotar" data-id="<?php echo $item_id ?>">
                    <i class="fa fa-pencil"></i> Anotar resultado
                </button>
                <span class="status-badge-item" id="badge-<?php echo $item_id ?>" style="display:none;font-size:11px;font-weight:700"></span>
            </div>
        </div>
        <?php endforeach; ?>
    </div>
</div>
<?php endforeach; ?>

<!-- Botão de relatório -->
<div class="box" style="margin-top:8px">
    <div class="box-body" style="display:flex;align-items:center;justify-content:space-between;padding:12px 16px;flex-wrap:wrap;gap:10px">
        <div style="font-size:13px;color:#666">
            <i class="fa fa-info-circle" style="color:#1e3a5f"></i>
            Após concluir as diligências, use o <strong>Relatório de Esgotamento Extrajudicial</strong> para documentar as buscas para o juízo.
        </div>
        <a href="<?php echo site_url('admin/patrimonio/relatorio_checklist/'.($exp->id??'')) ?>"
           class="btn btn-primary">
            <i class="fa fa-file-text-o"></i> Gerar Relatório de Esgotamento
        </a>
    </div>
</div>

</section>

<script>
var expId = <?php echo $exp ? $exp->id : 0 ?>;
var totalItens = <?php echo count(array_merge(...array_column($fontes, 'itens'))) ?>;
var statusItens = JSON.parse(localStorage.getItem('dilig_' + expId) || '{}');

// Restaurar estado salvo
function restaurarEstado() {
    var ok = 0, neg = 0;
    Object.keys(statusItens).forEach(function(id) {
        var s = statusItens[id];
        aplicarStatus(id, s.status, s.nota, false);
        if (s.status === 'encontrado') ok++;
        else if (s.status === 'sem_resultado') neg++;
    });
    atualizarStats(ok, neg);
}

function aplicarStatus(id, status, nota, salvar) {
    var card = document.getElementById('card-' + id);
    var badge = document.getElementById('badge-' + id);
    if (!card) return;

    if (status === 'encontrado') {
        card.className = 'dilig-item concluido';
        badge.innerHTML = '<span style="color:#2e7d32">✓ Bem encontrado</span>';
    } else {
        card.className = 'dilig-item sem-resultado';
        badge.innerHTML = '<span style="color:#999">✗ Sem resultado</span>';
    }
    badge.style.display = 'block';
    if (nota) document.getElementById('txt-' + id).value = nota;

    if (salvar) {
        statusItens[id] = { status: status, nota: nota || '' };
        localStorage.setItem('dilig_' + expId, JSON.stringify(statusItens));
    }
}

function atualizarStats(ok, neg) {
    document.getElementById('stat-ok').textContent = ok;
    document.getElementById('stat-neg').textContent = neg;
    var total = ok + neg;
    var pct = Math.round((total / totalItens) * 100);
    document.getElementById('prog-fill').style.width = pct + '%';
    document.getElementById('prog-label').textContent = total + ' de ' + totalItens + ' concluídas (' + pct + '%)';
}

// Botão anotar
$('.btn-anotar').on('click', function() {
    var id = $(this).data('id');
    var res = document.getElementById('res-' + id);
    res.style.display = res.style.display === 'none' || res.style.display === '' ? 'block' : 'none';
});

// Registrar resultado
$('.btn-reg-resultado').on('click', function() {
    var id = $(this).data('id');
    var status = $(this).data('status');
    var nota = document.getElementById('txt-' + id).value;
    aplicarStatus(id, status, nota, true);
    document.getElementById('res-' + id).style.display = 'none';

    // Recalcular stats
    var ok = 0, neg = 0;
    Object.keys(statusItens).forEach(function(k) {
        if (statusItens[k].status === 'encontrado') ok++;
        else neg++;
    });
    atualizarStats(ok, neg);
});

// Restaurar ao carregar
restaurarEstado();
</script>
