<?php
require_once '../5_config/config.php';
$usuario = verificarAuth();
$db = getDB();
$perfil = $usuario['perfil'];
$msg = '';
Auditoria::inicializar($db, $usuario['id'], $usuario['nome'], $usuario['perfil']);

// POST: Criar / Editar / Excluir
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $acao_form = $_POST['acao_form'] ?? '';

    if ($acao_form === 'salvar' && temPermissao('criar', $perfil)) {
        $id          = intval($_POST['id'] ?? 0);
        $unidade_id  = intval($_POST['unidade_id'] ?? 0);
        $tipo        = limpar($_POST['tipo'] ?? '');
        $titulo      = limpar($_POST['titulo'] ?? '');
        $descricao   = limpar($_POST['descricao'] ?? '');
        $responsavel = limpar($_POST['responsavel'] ?? '');
        $status      = limpar($_POST['status'] ?? 'pendente');
        $data_inicio = $_POST['data_inicio'] ?: null;
        $data_venc   = $_POST['data_vencimento'] ?: null;
        $recorrente  = isset($_POST['recorrente']) ? 1 : 0;
        $periodicidade = intval($_POST['periodicidade_meses'] ?? 0) ?: null;

        if ($unidade_id && $tipo && $titulo) {
            if ($id > 0 && temPermissao('editar', $perfil)) {
                $stmt_antes = $db->prepare("SELECT * FROM acoes WHERE id=? AND norma='NR10'");
                $stmt_antes->execute([$id]); $dados_antes = $stmt_antes->fetch() ?: [];
                $db->prepare("UPDATE acoes SET unidade_id=?,tipo=?,titulo=?,descricao=?,responsavel=?,status=?,data_inicio=?,data_vencimento=?,recorrente=?,periodicidade_meses=? WHERE id=? AND norma='NR10'")
                   ->execute([$unidade_id,$tipo,$titulo,$descricao,$responsavel,$status,$data_inicio,$data_venc,$recorrente,$periodicidade,$id]);
                Auditoria::atualizar('acoes', $id, $dados_antes, ['titulo'=>$titulo,'tipo'=>$tipo,'status'=>$status,'responsavel'=>$responsavel], "NR10 atualizado: $titulo");
                header('Location: nr10.php?msg=success:A%C3%A7%C3%A3o+NR+10+atualizada!'); exit;
            } else {
                $db->prepare("INSERT INTO acoes (unidade_id,norma,tipo,titulo,descricao,responsavel,status,data_inicio,data_vencimento,recorrente,periodicidade_meses,criado_por) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)")
                   ->execute([$unidade_id,'NR10',$tipo,$titulo,$descricao,$responsavel,$status,$data_inicio,$data_venc,$recorrente,$periodicidade,$usuario['id']]);
                $novo_id = $db->lastInsertId();

                // Se tipo = checklist_paineis, gerar inspeções para todos os painéis da unidade
                if ($tipo === 'checklist_paineis') {
                    $paineis_u = $db->prepare("SELECT id, nome FROM paineis_eletricos WHERE unidade_id=? AND ativo=1");
                    $paineis_u->execute([$unidade_id]);
                    $paineis_lista = $paineis_u->fetchAll();
                    $checklist_itens = [
                        ['identificacao', 'Diagrama unifilar atualizado e acessível', 1],
                        ['identificacao', 'Circuitos e condutores identificados', 2],
                        ['identificacao', 'Sinalização de advertência e tensão nominal', 3],
                        ['identificacao', 'PIE (Prontuário de Instalações Elétricas) atualizado', 4],
                        ['identificacao', 'Laudo de aterramento vigente', 5],
                        ['identificacao', 'RTI (Relatório Técnico de Inspeção) emitido', 6],
                        ['seguranca', 'Dispositivo de seccionamento visível e acessível', 7],
                        ['seguranca', 'Aterramento (PE) e neutro (N) corretos', 8],
                        ['seguranca', 'Painel fechado, grau IP mantido, sem partes vivas expostas', 9],
                        ['seguranca', 'Procedimento LOTO (Lockout/Tagout) implementado', 10],
                        ['seguranca', 'Proteções contra sobrecorrente e curto-circuito adequadas', 11],
                        ['seguranca', 'Análise de energia de arco elétrico realizada', 12],
                        ['condicoes', 'Organização interna: sem cabos soltos ou emaranhados', 13],
                        ['condicoes', 'Limpeza interna adequada (sem poeira excessiva)', 14],
                        ['condicoes', 'Espaço de trabalho frontal adequado (NBR 5410)', 15],
                        ['condicoes', 'Terminais apertados, sem corrosão ou sobreaquecimento', 16],
                        ['condicoes', 'Iluminação adequada e acesso desobstruído', 17],
                        ['condicoes', 'EPIs adequados disponíveis para intervenção', 18],
                    ];
                    foreach ($paineis_lista as $painel) {
                        $cod_insp = 'CKL' . str_pad($painel['id'], 5, '0', STR_PAD_LEFT) . '_' . date('YmdHis');
                        $data_venc = date('Y-m-d', strtotime('+6 months'));
                        $db->prepare("INSERT INTO painel_inspecoes (painel_id, acao_id, codigo_inspecao, data_vencimento, status) VALUES (?,?,?,?,'pendente')")
                           ->execute([$painel['id'], $novo_id, $cod_insp, $data_venc]);
                        $insp_id = $db->lastInsertId();
                        foreach ($checklist_itens as $item) {
                            $db->prepare("INSERT INTO painel_inspecoes_itens (inspecao_id, grupo, item_nome, ordem) VALUES (?,?,?,?)")
                               ->execute([$insp_id, $item[0], $item[1], $item[2]]);
                        }
                    }
                    // Gerar link único para o técnico acessar todos os painéis da unidade
                    $token_unidade = 'UNI' . str_pad($unidade_id, 4, '0', STR_PAD_LEFT) . '_' . date('YmdHis');
                    $url_checklist = APP_URL . '/painel_checklist_unidade.php?token=' . $token_unidade . '&unidade=' . $unidade_id . '&acao=' . $novo_id;
                    // Salvar token na ação (campo checklist_token)
                    $db->prepare("UPDATE acoes SET checklist_token=? WHERE id=?")
                       ->execute([$token_unidade, $novo_id]);
                    Auditoria::criar('acoes', (int)$novo_id, ['titulo'=>$titulo,'norma'=>'NR10','tipo'=>'checklist_paineis','unidade_id'=>$unidade_id], "NR10 checklist gerado para " . count($paineis_lista) . " painel(is)");
                header('Location: nr10.php?msg=success:Checklist+gerado+para+' . count($paineis_lista) . '+painel(is)!+Link+disponível+na+tabela.'); exit;
                }

                Auditoria::criar('acoes', (int)$novo_id, ['titulo'=>$titulo,'norma'=>'NR10','tipo'=>$tipo,'status'=>$status,'responsavel'=>$responsavel], "NR10 criado: $titulo");
                header('Location: nr10.php?msg=success:A%C3%A7%C3%A3o+NR+10+cadastrada!'); exit;
            }
        } else {
            header('Location: nr10.php?msg=error:Preencha+os+campos+obrigat%C3%B3rios.'); exit;
        }
    } elseif ($acao_form === 'excluir' && temPermissao('excluir', $perfil)) {
        $id = intval($_POST['id'] ?? 0);
        if ($id > 0) {
            $stmt_del = $db->prepare("SELECT titulo FROM acoes WHERE id=? AND norma='NR10'");
            $stmt_del->execute([$id]); $reg_del = $stmt_del->fetch() ?: [];
            $db->prepare("DELETE FROM acoes WHERE id=? AND norma='NR10'")->execute([$id]);
            Auditoria::deletar('acoes', $id, $reg_del, "NR10 excluído: " . ($reg_del['titulo'] ?? 'ID '.$id));
        }
        header('Location: nr10.php?msg=success:A%C3%A7%C3%A3o+removida!'); exit;
    }
}

// GET: Gerar QR Code para ação NR10 existente
if (isset($_GET['gerar_qr'])) {
    $acao_id = intval($_GET['gerar_qr']);
    $codigo_qr = 'NR10' . str_pad($acao_id, 5, '0', STR_PAD_LEFT);
    $url_qr = APP_URL . '/equipamento_qr.php?codigo=' . $codigo_qr . '&tipo=nr10';
    $db->prepare("INSERT IGNORE INTO equipamento_qrcodes (equipamento_id, codigo_unico, url_publica) VALUES (?,?,?)")
       ->execute([0, $codigo_qr, $url_qr]);
    header('Location: nr10.php?msg=success:QR+Code+gerado+com+sucesso!'); exit;
}

// Ler mensagem da URL (padrão PRG)
$msg = $_GET['msg'] ?? '';

// Filtros
$filtro_unidade = intval($_GET['unidade_id'] ?? 0);
$filtro_status  = sanitizar($_GET['status'] ?? '');
$filtro_tipo    = sanitizar($_GET['tipo'] ?? '');

$unidades = $db->query("SELECT id, codigo, nome FROM unidades WHERE ativo=1 ORDER BY nome")->fetchAll();

// Montar query com filtros
$where = ["a.norma = 'NR10'"];
$params = [];
if ($filtro_unidade) { $where[] = 'a.unidade_id = ?'; $params[] = $filtro_unidade; }
if ($filtro_status)  { $where[] = 'a.status = ?';     $params[] = $filtro_status; }
if ($filtro_tipo)    { $where[] = 'a.tipo = ?';       $params[] = $filtro_tipo; }
$sql = "SELECT a.*, u.nome AS unidade_nome, u.codigo AS unidade_codigo
        FROM acoes a LEFT JOIN unidades u ON u.id=a.unidade_id
        WHERE " . implode(' AND ', $where) . " ORDER BY a.data_vencimento ASC, a.criado_em DESC";
$stmt = $db->prepare($sql);
$stmt->execute($params);
$acoes = $stmt->fetchAll();

// Editar
$editando = null;
if (isset($_GET['editar'])) {
    $s = $db->prepare("SELECT * FROM acoes WHERE id=? AND norma='NR10'");
    $s->execute([intval($_GET['editar'])]);
    $editando = $s->fetch();
}

$tipos = ['inspecao'=>'Inspeção','manutencao'=>'Manutenção','treinamento'=>'Treinamento','adequacao'=>'Adequação','laudo'=>'Laudo','documento'=>'Documento','checklist_paineis'=>'✔ Checklist Painéis'];
$status_list = ['pendente'=>'Pendente','em_andamento'=>'Em Andamento','concluida'=>'Concluída','atrasada'=>'Atrasada'];
$pagina_titulo = 'NR 10 — Elétrica';
require_once '../1_frontend/layout.php';
?>

<div class="space-y-5">
  <div class="flex items-center justify-between flex-wrap gap-3">
    <div>
      <h1 class="text-2xl font-bold text-actsafe-text flex items-center gap-2">
        <i data-lucide="zap" class="w-6 h-6 text-yellow-500"></i> NR 10 — Segurança Elétrica
      </h1>
      <p class="text-sm text-gray-500 mt-0.5">Gestão de ações de conformidade com a NR 10</p>
    </div>
    <?php if (temPermissao('criar', $perfil)): ?>
    <a href="nr10.php?novo=1" class="btn-primary">
      <i data-lucide="plus" class="w-4 h-4"></i> Nova Ação
    </a>
    <?php endif; ?>
  </div>

  <?php if ($msg): [$tipo_msg,$texto_msg] = explode(':', $msg, 2); ?>
  <div class="flex items-center gap-2 px-4 py-3 rounded-lg text-sm font-medium
    <?= $tipo_msg==='success' ? 'bg-green-50 border border-green-200 text-green-700' : 'bg-red-50 border border-red-200 text-red-700' ?>">
    <i data-lucide="<?= $tipo_msg==='success' ? 'check-circle' : 'alert-circle' ?>" class="w-4 h-4"></i>
    <?= sanitizar($texto_msg) ?>
  </div>
  <?php endif; ?>

  <!-- Formulário -->
  <?php if (isset($_GET['novo']) || $editando): ?>
  <div class="card border-l-4 border-yellow-400">
    <h2 class="font-semibold text-actsafe-text mb-4 flex items-center gap-2">
      <i data-lucide="<?= $editando ? 'pencil' : 'plus-circle' ?>" class="w-4 h-4 text-yellow-500"></i>
      <?= $editando ? 'Editar Ação NR 10' : 'Nova Ação NR 10' ?>
    </h2>
    <form method="POST" action="nr10.php">
      <input type="hidden" name="acao_form" value="salvar">
      <input type="hidden" name="id" value="<?= $editando['id'] ?? 0 ?>">
      <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4">
        <div>
          <label class="form-label">Unidade Fabril *</label>
          <select name="unidade_id" class="form-input" required>
            <option value="">Selecione...</option>
            <?php foreach ($unidades as $u): ?>
            <option value="<?= $u['id'] ?>" <?= ($editando['unidade_id'] ?? 0) == $u['id'] ? 'selected' : '' ?>>
              <?= sanitizar($u['codigo']) ?> — <?= sanitizar($u['nome']) ?>
            </option>
            <?php endforeach; ?>
          </select>
        </div>
        <div>
          <label class="form-label">Tipo de Ação *</label>
          <select name="tipo" class="form-input" required>
            <option value="">Selecione...</option>
            <?php foreach ($tipos as $v => $l): ?>
            <option value="<?= $v ?>" <?= ($editando['tipo'] ?? '') === $v ? 'selected' : '' ?>><?= $l ?></option>
            <?php endforeach; ?>
          </select>
        </div>
        <div>
          <label class="form-label">Status</label>
          <select name="status" class="form-input">
            <?php foreach ($status_list as $v => $l): ?>
            <option value="<?= $v ?>" <?= ($editando['status'] ?? 'pendente') === $v ? 'selected' : '' ?>><?= $l ?></option>
            <?php endforeach; ?>
          </select>
        </div>
        <div class="sm:col-span-2">
          <label class="form-label">Título da Ação *</label>
          <input type="text" name="titulo" class="form-input" placeholder="ex: Laudo de Aterramento — Planta SP"
                 value="<?= sanitizar($editando['titulo'] ?? '') ?>" required>
        </div>
        <div>
          <label class="form-label">Responsável</label>
          <input type="text" name="responsavel" class="form-input" placeholder="Nome do responsável"
                 value="<?= sanitizar($editando['responsavel'] ?? '') ?>">
        </div>
        <div>
          <label class="form-label">Data de Início</label>
          <input type="date" name="data_inicio" class="form-input" value="<?= $editando['data_inicio'] ?? '' ?>">
        </div>
        <div>
          <label class="form-label">Data de Vencimento</label>
          <input type="date" name="data_vencimento" class="form-input" value="<?= $editando['data_vencimento'] ?? '' ?>">
        </div>
        <div class="sm:col-span-3">
          <label class="form-label">Descrição</label>
          <textarea name="descricao" class="form-input" rows="2" placeholder="Detalhes da ação..."><?= sanitizar($editando['descricao'] ?? '') ?></textarea>
        </div>
        <div class="flex items-center gap-2">
          <input type="checkbox" name="recorrente" id="recorrente" value="1" <?= ($editando['recorrente'] ?? 0) ? 'checked' : '' ?>>
          <label for="recorrente" class="form-label mb-0 cursor-pointer">Ação recorrente</label>
        </div>
        <div>
          <label class="form-label">Periodicidade (meses)</label>
          <input type="number" name="periodicidade_meses" class="form-input" min="1" max="120"
                 value="<?= $editando['periodicidade_meses'] ?? '' ?>" placeholder="ex: 12">
        </div>
      </div>
      <div id="aviso-checklist" class="hidden bg-blue-50 border border-blue-200 rounded-lg px-4 py-3 text-sm text-blue-700 flex items-start gap-2 mt-2">
        <i data-lucide="info" class="w-4 h-4 mt-0.5 flex-shrink-0"></i>
        <span>Ao salvar, o sistema gerará automaticamente um checklist NR 10 para <strong>todos os painéis da unidade selecionada</strong>. Um link único será gerado para o técnico preencher no celular.</span>
      </div>
      <div class="flex gap-2 mt-4">
        <button type="submit" class="btn-primary"><i data-lucide="save" class="w-4 h-4"></i> Salvar</button>
        <a href="nr10.php" class="btn-outline">Cancelar</a>
      </div>
    </form>
  </div>
  <?php endif; ?>

  <!-- Filtros -->
  <form method="GET" action="nr10.php" class="flex flex-wrap gap-2">
    <select name="unidade_id" class="form-input w-auto">
      <option value="">Todas as unidades</option>
      <?php foreach ($unidades as $u): ?>
      <option value="<?= $u['id'] ?>" <?= $filtro_unidade == $u['id'] ? 'selected' : '' ?>><?= sanitizar($u['codigo']) ?> — <?= sanitizar($u['nome']) ?></option>
      <?php endforeach; ?>
    </select>
    <select name="status" class="form-input w-auto">
      <option value="">Todos os status</option>
      <?php foreach ($status_list as $v => $l): ?>
      <option value="<?= $v ?>" <?= $filtro_status === $v ? 'selected' : '' ?>><?= $l ?></option>
      <?php endforeach; ?>
    </select>
    <select name="tipo" class="form-input w-auto">
      <option value="">Todos os tipos</option>
      <?php foreach ($tipos as $v => $l): ?>
      <option value="<?= $v ?>" <?= $filtro_tipo === $v ? 'selected' : '' ?>><?= $l ?></option>
      <?php endforeach; ?>
    </select>
    <button type="submit" class="btn-primary"><i data-lucide="filter" class="w-4 h-4"></i> Filtrar</button>
    <a href="nr10.php" class="btn-outline">Limpar</a>
  </form>

  <!-- Tabela -->
  <?php if (empty($acoes)): ?>
  <div class="card border border-dashed border-gray-300 text-center py-14">
    <i data-lucide="zap" class="w-10 h-10 text-gray-300 mx-auto mb-3"></i>
    <p class="text-gray-500 text-sm">Nenhuma ação NR 10 registrada.</p>
    <?php if (temPermissao('criar', $perfil)): ?>
    <a href="nr10.php?novo=1" class="btn-primary mt-3 inline-flex"><i data-lucide="plus" class="w-4 h-4"></i> Cadastrar primeira</a>
    <?php endif; ?>
  </div>
  <?php else: ?>
  <div class="card p-0 overflow-hidden">
    <div class="overflow-x-auto">
      <table class="w-full text-sm">
        <thead class="bg-gray-50 border-b border-gray-200">
          <tr>
            <th class="text-left px-4 py-3 font-semibold text-gray-600">Título</th>
            <th class="text-left px-4 py-3 font-semibold text-gray-600 hidden sm:table-cell">Unidade</th>
            <th class="text-left px-4 py-3 font-semibold text-gray-600 hidden md:table-cell">Tipo</th>
            <th class="text-left px-4 py-3 font-semibold text-gray-600 hidden lg:table-cell">Vencimento</th>
            <th class="text-left px-4 py-3 font-semibold text-gray-600">Status</th>
            <th class="text-center px-4 py-3 font-semibold text-gray-600">QR Code</th>
            <th class="text-center px-4 py-3 font-semibold text-gray-600 hidden md:table-cell">Checklist</th>
            <th class="text-center px-4 py-3 font-semibold text-gray-600 hidden lg:table-cell">Relatório</th>
            <?php if (temPermissao('editar', $perfil)): ?>
            <th class="text-center px-4 py-3 font-semibold text-gray-600">Ações</th>
            <?php endif; ?>
          </tr>
        </thead>
        <tbody class="divide-y divide-gray-100">
          <?php foreach ($acoes as $a): ?>
          <tr class="table-row">
            <td class="px-4 py-3">
              <p class="font-medium text-actsafe-text"><?= sanitizar($a['titulo']) ?></p>
              <?php if ($a['responsavel']): ?>
              <p class="text-xs text-gray-400"><?= sanitizar($a['responsavel']) ?></p>
              <?php endif; ?>
            </td>
            <td class="px-4 py-3 hidden sm:table-cell">
              <span class="bg-actsafe-blue/10 text-actsafe-blue text-xs font-bold px-2 py-0.5 rounded-md"><?= sanitizar($a['unidade_codigo']) ?></span>
            </td>
            <td class="px-4 py-3 text-gray-500 hidden md:table-cell"><?= $tipos[$a['tipo']] ?? $a['tipo'] ?></td>
            <td class="px-4 py-3 hidden lg:table-cell">
              <?php $sv = statusVencimento($a['data_vencimento']); ?>
              <span class="<?= $sv==='vencido' ? 'text-red-600 font-semibold' : ($sv==='vencendo' ? 'text-yellow-600 font-semibold' : 'text-gray-500') ?>">
                <?= formatarData($a['data_vencimento']) ?>
              </span>
            </td>
            <td class="px-4 py-3">
              <span class="badge-status badge-<?= $a['status'] ?>"><?= $status_list[$a['status']] ?? $a['status'] ?></span>
            </td>
            <?php
              $codigo_nr10 = 'NR10' . str_pad($a['id'], 5, '0', STR_PAD_LEFT);
              $url_nr10 = APP_URL . '/equipamento_qr.php?codigo=' . $codigo_nr10 . '&tipo=nr10';
              $stmt_qr10 = $db->prepare("SELECT codigo_unico FROM equipamento_qrcodes WHERE codigo_unico=?");
              $stmt_qr10->execute([$codigo_nr10]);
              $qr10 = $stmt_qr10->fetch();
            ?>
            <?php
              $is_checklist = ($a['tipo'] === 'checklist_paineis');
              $token_match = $a['checklist_token'] ?? null;
              if ($is_checklist && $token_match) {
                $unidade_ck = $a['unidade_id'];
                $url_checklist_link = APP_URL . '/painel_checklist_unidade.php?token=' . $token_match . '&unidade=' . $unidade_ck . '&acao=' . $a['id'];
              }
            ?>
            <td class="px-4 py-3 text-center hidden md:table-cell">
              <?php if ($is_checklist && $token_match): ?>
                <button onclick="copiarLink('<?= htmlspecialchars($url_checklist_link) ?>')" class="inline-flex items-center gap-1 text-xs bg-green-50 hover:bg-green-100 text-green-700 border border-green-200 px-2 py-1 rounded" title="Copiar link do checklist">
                  <i data-lucide="link" class="w-3.5 h-3.5"></i> Link
                </button>
              <?php elseif ($is_checklist): ?>
                <span class="text-xs text-gray-400">Sem painéis</span>
              <?php else: ?>
                <span class="text-gray-300">—</span>
              <?php endif; ?>
            </td>
            <td class="px-4 py-3 text-center hidden lg:table-cell">
              <?php if ($is_checklist && $a['status'] === 'concluida'): ?>
                <div class="flex flex-col items-center gap-1">
                  <a href="painel_gerar_relatorio.php?acao_id=<?= $a['id'] ?>" target="_blank"
                     class="inline-flex items-center gap-1 text-xs bg-blue-50 hover:bg-blue-100 text-blue-700 border border-blue-200 px-2 py-1 rounded" title="Ver relatório PDF">
                    <i data-lucide="file-text" class="w-3.5 h-3.5"></i> PDF
                  </a>
                  <?php if ($a['data_execucao']): ?>
                  <span class="text-xs text-gray-400"><?= date('d/m/Y', strtotime($a['data_execucao'])) ?></span>
                  <?php if ($a['executado_por']): ?>
                  <span class="text-xs text-green-600 font-medium"><?= sanitizar($a['executado_por']) ?></span>
                  <?php endif; ?>
                  <?php endif; ?>
                </div>
              <?php elseif ($is_checklist && $a['status'] !== 'concluida'): ?>
                <span class="text-xs text-yellow-500">Aguardando</span>
              <?php else: ?>
                <span class="text-gray-300">—</span>
              <?php endif; ?>
            </td>
            <td class="px-4 py-3 text-center">
              <?php if ($qr10): ?>
                <button onclick="mostrarQR('<?= sanitizar($url_nr10) ?>', '<?= sanitizar($a['titulo']) ?>', '<?= $codigo_nr10 ?>')" 
                        class="inline-flex items-center gap-1 text-xs bg-gray-100 hover:bg-gray-200 text-gray-700 px-2 py-1 rounded" title="Ver QR Code">
                  <i data-lucide="qr-code" class="w-3.5 h-3.5"></i> QR
                </button>
              <?php else: ?>
                <a href="nr10.php?gerar_qr=<?= $a['id'] ?>" class="text-xs text-blue-500 hover:underline">Gerar</a>
              <?php endif; ?>
            </td>
            <?php if (temPermissao('editar', $perfil)): ?>
            <td class="px-4 py-3 text-center">
              <div class="flex items-center justify-center gap-2">
                <a href="nr10.php?editar=<?= $a['id'] ?>" class="text-actsafe-blue hover:text-actsafe-dark" title="Editar">
                  <i data-lucide="pencil" class="w-4 h-4"></i>
                </a>
                <a href="rti_gerar.php?acao_id=<?= $a['id'] ?>" class="text-green-600 hover:text-green-800" title="Gerar RTI">
                  <i data-lucide="file-image" class="w-4 h-4"></i>
                </a>
                <?php if (temPermissao('excluir', $perfil)): ?>
                <form method="POST" action="nr10.php" onsubmit="return confirmarExclusao(this)" class="inline">
                  <input type="hidden" name="acao_form" value="excluir">
                  <input type="hidden" name="id" value="<?= $a['id'] ?>">
                  <button type="submit" class="text-red-400 hover:text-red-600" title="Excluir">
                    <i data-lucide="trash-2" class="w-4 h-4"></i>
                  </button>
                </form>
                <?php endif; ?>
              </div>
            </td>
            <?php endif; ?>
          </tr>
          <?php endforeach; ?>
        </tbody>
      </table>
    </div>
    <div class="px-4 py-2 bg-gray-50 border-t border-gray-100 text-xs text-gray-500">
      <?= count($acoes) ?> ação(ões) encontrada(s)
    </div>
  </div>
  <?php endif; ?>
</div>

<!-- Biblioteca QR Code -->
<script src="https://cdn.jsdelivr.net/npm/qrcodejs@1.0.0/qrcode.min.js"></script>

<!-- MODAL: QR CODE -->
<div id="modal-qrcode" class="hidden fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4">
  <div class="bg-white rounded-xl max-w-sm w-full p-6 text-center">
    <div class="flex items-center justify-between mb-4">
      <h2 class="text-lg font-bold text-actsafe-text" id="qr-titulo">QR Code</h2>
      <button onclick="fecharQR()" class="text-gray-400 hover:text-gray-600">
        <i data-lucide="x" class="w-5 h-5"></i>
      </button>
    </div>
    <div id="qrcode-container" class="flex justify-center mb-4"></div>
    <p class="text-xs text-gray-500 mb-1">Código: <span id="qr-codigo" class="font-mono font-bold"></span></p>
    <p class="text-xs text-gray-400 break-all" id="qr-url"></p>
    <div class="flex gap-2 mt-4 justify-center">
      <button onclick="imprimirQR()" class="btn-primary text-sm">
        <i data-lucide="printer" class="w-4 h-4"></i> Imprimir
      </button>
      <button onclick="fecharQR()" class="btn-outline text-sm">Fechar</button>
    </div>
  </div>
</div>

<script>
function mostrarQR(url, nome, codigo) {
  document.getElementById('qr-titulo').textContent = nome;
  document.getElementById('qr-codigo').textContent = codigo;
  document.getElementById('qr-url').textContent = url;
  const container = document.getElementById('qrcode-container');
  container.innerHTML = '';
  new QRCode(container, {
    text: url, width: 200, height: 200,
    colorDark: '#0F4C81', colorLight: '#ffffff',
    correctLevel: QRCode.CorrectLevel.H
  });
  document.getElementById('modal-qrcode').classList.remove('hidden');
  lucide.createIcons();
}
function fecharQR() {
  document.getElementById('modal-qrcode').classList.add('hidden');
}
function copiarLink(url) {
  navigator.clipboard.writeText(url).then(() => {
    alert('Link copiado!\n\n' + url);
  }).catch(() => {
    prompt('Copie o link abaixo:', url);
  });
}
// Mostrar aviso quando tipo checklist_paineis é selecionado
document.addEventListener('DOMContentLoaded', function() {
  const sel = document.querySelector('select[name="tipo"]');
  const aviso = document.getElementById('aviso-checklist');
  if (sel && aviso) {
    sel.addEventListener('change', function() {
      aviso.classList.toggle('hidden', this.value !== 'checklist_paineis');
    });
  }
});
function imprimirQR() {
  const nome = document.getElementById('qr-titulo').textContent;
  const codigo = document.getElementById('qr-codigo').textContent;
  const url = document.getElementById('qr-url').textContent;
  const canvas = document.querySelector('#qrcode-container canvas');
  const imgData = canvas ? canvas.toDataURL() : '';
  const win = window.open('', '_blank');
  win.document.write(`<html><head><title>QR Code - ${nome}</title>
    <style>body{font-family:Arial;text-align:center;padding:40px;} h2{color:#0F4C81;} p{color:#666;font-size:12px;}</style>
    </head><body><h2>ERP - ActSafe</h2>
    <img src="${imgData}" style="width:200px;height:200px;">
    <p><strong>${nome}</strong></p><p>Código: ${codigo}</p>
    <p style="font-size:10px;color:#999">${url}</p>
    <script>window.print();window.close();<\/script></body></html>`);
  win.document.close();
}
</script>

<?php require_once '../1_frontend/layout_footer.php'; ?>
