<?php
include 'verifica_login.php';
require_once 'conexao.php';
require_once 'config/base_utils.php';
require_once 'config/departamento_modelo_utils.php';
require_once 'config/classificacao_lead_modelo_utils.php';
require_once 'config/faixa_funcionario_modelo_utils.php';
require_once 'config/contato_status_modelo_utils.php';
$conn = conectar_banco();
garantir_estrutura_bases($conn);
garantir_modelo_departamento_padrao($conn);
garantir_modelo_classificacao_lead_padrao($conn);
garantir_modelo_faixa_funcionario_padrao($conn);
garantir_modelo_contato_status_padrao($conn);

function formatar_hora_minuto($valor) {
    $valor = trim((string)$valor);
    if ($valor === '') return '';

    if (preg_match('/^(\d{2}):(\d{2})(:\d{2})?$/', $valor, $m)) {
        return $m[1] . ':' . $m[2];
    }

    $ts = strtotime($valor);
    if ($ts !== false && $ts > 0) {
        return date('H:i', $ts);
    }

    return substr($valor, 0, 5);
}

function quebrar_numero_pergunta($numero) {
    $numero = trim((string)$numero);
    if ($numero === '') {
        return [0];
    }

    $partes = explode('.', $numero);
    $resultado = [];
    foreach ($partes as $parte) {
        $parte = trim($parte);
        $resultado[] = is_numeric($parte) ? (int)$parte : 0;
    }

    return !empty($resultado) ? $resultado : [0];
}

function comparar_perguntas_por_numero($a, $b) {
    $aPartes = quebrar_numero_pergunta($a['numero'] ?? '0');
    $bPartes = quebrar_numero_pergunta($b['numero'] ?? '0');

    $max = max(count($aPartes), count($bPartes));
    for ($i = 0; $i < $max; $i++) {
        $av = $aPartes[$i] ?? null;
        $bv = $bPartes[$i] ?? null;

        // Ex.: 4 vem antes de 4.1
        if ($av === null) return -1;
        if ($bv === null) return 1;

        if ($av < $bv) return -1;
        if ($av > $bv) return 1;
    }

    // Desempate consistente
    $ordemA = (int)($a['ordem'] ?? 0);
    $ordemB = (int)($b['ordem'] ?? 0);
    if ($ordemA !== $ordemB) {
        return $ordemA <=> $ordemB;
    }

    return ((int)($a['id'] ?? 0)) <=> ((int)($b['id'] ?? 0));
}

function resumir_resposta_para_tooltip($resposta, $tipoResposta = '') {
    $resposta = trim((string)$resposta);
    if ($resposta === '') {
        return 'Sem resposta';
    }

    if ($tipoResposta === 'campos_personalizados') {
        $json = json_decode($resposta, true);
        if (is_array($json)) {
            $partes = [];
            foreach ($json as $campo => $valor) {
                if (is_array($valor)) {
                    $valorTexto = implode(', ', array_map(function($v) {
                        return trim((string)$v);
                    }, $valor));
                } else {
                    $valorTexto = trim((string)$valor);
                }

                if ($valorTexto !== '') {
                    $partes[] = $campo . ': ' . $valorTexto;
                }
            }
            return !empty($partes) ? implode(' | ', $partes) : 'Sem resposta';
        }
    }

    if ($tipoResposta === 'radio' || $tipoResposta === 'select') {
        $partes = explode('|', $resposta);
        if (count($partes) >= 2 && is_numeric(end($partes))) {
            array_pop($partes);
        }
        $texto = trim(implode('|', $partes));
        return $texto !== '' ? $texto : 'Sem resposta';
    }

    if ($tipoResposta === 'checkbox') {
        $partes = array_map('trim', explode('|', $resposta));
        $selecionadas = [];
        for ($i = 0; $i < count($partes); $i += 2) {
            if (!empty($partes[$i])) {
                $selecionadas[] = $partes[$i];
            }
        }
        return !empty($selecionadas) ? implode(', ', $selecionadas) : 'Sem resposta';
    }

    return $resposta;
}

if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['action'] ?? '') === 'salvar') {
    // Regra de negócio: ao clicar em salvar, atualizar automaticamente entrevistador e data/hora atuais
    $usuario_logado_nome = trim((string)($_SESSION['usuario_nome'] ?? ''));
    $usuario_logado_login = trim((string)($_SESSION['usuario_login'] ?? ''));
    $_POST['quem_entrevistou'] = $usuario_logado_nome !== '' ? $usuario_logado_nome : $usuario_logado_login;

    $agora = new DateTime('now', new DateTimeZone('America/Sao_Paulo'));
    $_POST['data_entrevista'] = $agora->format('Y-m-d');
    $_POST['hora_entrevista'] = $agora->format('H:i');

    $id_empresa_post = (int)($_POST['id_empresa'] ?? 0);

    if ($id_empresa_post > 0) {
        $empresa_razao_social = trim($_POST['empresa_razao_social'] ?? '');
        $empresa_nome_fantasia = trim($_POST['empresa_nome_fantasia'] ?? '');
        $empresa_cnpj = trim($_POST['empresa_cnpj'] ?? '');
        $empresa_cnae = trim($_POST['empresa_cnae'] ?? '');
        $empresa_site = trim($_POST['empresa_site'] ?? '');
        $empresa_rua = trim($_POST['empresa_rua'] ?? '');
        $empresa_numero = trim($_POST['empresa_numero'] ?? '');
        $empresa_complemento = trim($_POST['empresa_complemento'] ?? '');
        $empresa_bairro = trim($_POST['empresa_bairro'] ?? '');
        $empresa_cidade = trim($_POST['empresa_cidade'] ?? '');
        $empresa_uf = trim($_POST['empresa_uf'] ?? '');
        $empresa_cep = trim($_POST['empresa_cep'] ?? '');
        $empresa_ddd = trim($_POST['empresa_ddd'] ?? '');
        $empresa_tel = trim($_POST['empresa_tel'] ?? '');
        $empresa_funcionarios = trim($_POST['empresa_funcionarios'] ?? '');
        $empresa_idbase = (int)($_POST['empresa_idbase'] ?? 0);
        $empresa_base = obter_nome_base_por_id($conn, $empresa_idbase);
        $empresa_porte = trim($_POST['empresa_porte'] ?? '');

        if ($empresa_idbase <= 0 || $empresa_base === '') {
            $stmt_base_atual = $conn->prepare("SELECT idbase, BASE FROM empresas WHERE ID_EMPRESA = ? LIMIT 1");
            if ($stmt_base_atual) {
                $stmt_base_atual->bind_param('i', $id_empresa_post);
                $stmt_base_atual->execute();
                $base_atual = $stmt_base_atual->get_result()->fetch_assoc();
                $stmt_base_atual->close();
                $empresa_idbase = (int)($base_atual['idbase'] ?? 0);
                $empresa_base = (string)($base_atual['BASE'] ?? '');
            }
        }

        $stmt_empresa = $conn->prepare("
            UPDATE empresas SET
                EMPRESA = ?,
                NOME_FANTASIA = ?,
                CNPJ = ?,
                CNAE = ?,
                SITE = ?,
                RUA = ?,
                NUMERO = ?,
                COMPL_NUM = ?,
                BAIRRO = ?,
                CIDADE = ?,
                UF = ?,
                CEP = ?,
                DDD = ?,
                TEL = ?,
                FUNCIONARIOS = ?,
                BASE = ?,
                idbase = ?,
                PORTE = ?
            WHERE ID_EMPRESA = ?
        ");
        $stmt_empresa->bind_param(
            'ssssssssssssssssisi',
            $empresa_razao_social,
            $empresa_nome_fantasia,
            $empresa_cnpj,
            $empresa_cnae,
            $empresa_site,
            $empresa_rua,
            $empresa_numero,
            $empresa_complemento,
            $empresa_bairro,
            $empresa_cidade,
            $empresa_uf,
            $empresa_cep,
            $empresa_ddd,
            $empresa_tel,
            $empresa_funcionarios,
            $empresa_base,
            $empresa_idbase,
            $empresa_porte,
            $id_empresa_post
        );
        $stmt_empresa->execute();
    }

    // Encaminhar POST para o processador sem re-incluir arquivos
    function _render_post_fields($name, $value) {
        if (is_array($value)) {
            foreach ($value as $k => $v) {
                _render_post_fields($name . '[' . $k . ']', $v);
            }
            return;
        }
        $n = htmlspecialchars($name, ENT_QUOTES, 'UTF-8');
        $v = htmlspecialchars((string)$value, ENT_QUOTES, 'UTF-8');
        echo '<input type="hidden" name="' . $n . '" value="' . $v . '">';
    }

    echo '<form id="autoSubmit" method="POST" action="processar_resposta_pesquisa.php">';
    foreach ($_POST as $k => $v) {
        _render_post_fields($k, $v);
    }
    echo '</form><script>document.getElementById("autoSubmit").submit();</script>';
    exit;
}

$id_pesquisa_empresa = (int)($_GET['id'] ?? $_POST['id_pesquisa_empresa'] ?? 0);

if ($id_pesquisa_empresa <= 0) {
    header('Location: pesquisas.php?msg=error&detalhe=' . urlencode('Pesquisa não encontrada'));
    exit;
}

// Buscar dados da pesquisa_empresa
$stmt = $conn->prepare("
    SELECT 
        pe.id,
        pe.id_pesquisa_fk,
        pe.id_empresa_fk,
        pe.status,
        pe.data_resposta,
        pe.responsavel_pesquisa,
        pe.id_status_questionario_fk,
        e.NOME_FANTASIA,
        e.EMPRESA,
        e.CNPJ,
        e.RUA,
        e.NUMERO,
        e.COMPL_NUM,
        e.BAIRRO,
        e.CIDADE,
        e.UF,
        e.CEP,
        e.DDD,
        e.TEL,
        e.CNAE,
        e.FUNCIONARIOS,
        e.SITE,
        e.BASE,
        e.idbase,
        e.PORTE,
        p.nome as nome_pesquisa,
        p.id_modelo_departamento_fk,
        p.id_modelo_faixa_funcionario_fk,
        p.id_modelo_classificacao_lead_fk,
        p.id_modelo_contato_status_fk,
        qt.id as id_questionario,
        qt.nome as nome_questionario,
        qt.introducao as introducao_questionario,
        qt.mensagem_fechamento as mensagem_fechamento_template
    FROM pesquisa_empresa pe
    LEFT JOIN empresas e ON pe.id_empresa_fk = e.ID_EMPRESA
    LEFT JOIN pesquisas p ON pe.id_pesquisa_fk = p.id
    LEFT JOIN questionario_template qt ON p.id_questionario_template_fk = qt.id
    WHERE pe.id = ?
");
$stmt->bind_param('i', $id_pesquisa_empresa);
$stmt->execute();
$pesquisa_empresa = $stmt->get_result()->fetch_assoc();

$idModeloClassificacaoPesquisa = (int)($pesquisa_empresa['id_modelo_classificacao_lead_fk'] ?? 0);
if ($idModeloClassificacaoPesquisa <= 0) {
    $idModeloClassificacaoPesquisa = garantir_modelo_classificacao_lead_padrao($conn);
}

// Buscar nota_total e classificacao se as colunas existirem
if ($pesquisa_empresa) {
    $stmt_nota = $conn->prepare("SELECT nota_total, classificacao FROM pesquisa_empresa WHERE id = ?");
    if ($stmt_nota) {
        $stmt_nota->bind_param('i', $id_pesquisa_empresa);
        $stmt_nota->execute();
        $result_nota = $stmt_nota->get_result()->fetch_assoc();
        if ($result_nota) {
            $pesquisa_empresa['nota_total'] = $result_nota['nota_total'] ?? 0;
            $nota_valor = (float)$pesquisa_empresa['nota_total'];
            
            // Buscar classificação baseada na nota usando o modelo da pesquisa
            $stmt_classificacao = $conn->prepare("
                SELECT classificacao, cor
                FROM classificacao_leads_modelos_itens 
                WHERE id_modelo_fk = ?
                  AND ativo = 'S'
                  AND ? >= faixa_minima AND ? <= faixa_maxima 
                ORDER BY ordem
                LIMIT 1
            ");
            $stmt_classificacao->bind_param('idd', $idModeloClassificacaoPesquisa, $nota_valor, $nota_valor);
            $stmt_classificacao->execute();
            $result_classificacao = $stmt_classificacao->get_result()->fetch_assoc();
            $pesquisa_empresa['classificacao'] = $result_classificacao['classificacao'] ?? '-';
            $pesquisa_empresa['cor_classificacao'] = $result_classificacao['cor'] ?? '#cccccc';
        } else {
            $pesquisa_empresa['nota_total'] = 0;
            $pesquisa_empresa['classificacao'] = '-';
            $pesquisa_empresa['cor_classificacao'] = '#cccccc';
        }
    } else {
        // Colunas não existem ainda
        $pesquisa_empresa['nota_total'] = 0;
        $pesquisa_empresa['classificacao'] = '-';
        $pesquisa_empresa['cor_classificacao'] = '#cccccc';
    }
}

if (!$pesquisa_empresa) {
    header('Location: pesquisas.php?msg=error&detalhe=' . urlencode('Pesquisa de empresa não encontrada'));
    exit;
}

registrar_log_interacao(
    $conn,
    'QUESTIONARIO_ABERTO',
    'Abertura do questionario da pesquisa empresa #' . (int)$id_pesquisa_empresa
        . ' | Pesquisa: ' . (string)($pesquisa_empresa['nome_pesquisa'] ?? '-')
        . ' | Questionario: ' . (string)($pesquisa_empresa['nome_questionario'] ?? '-')
        . ' | Empresa: ' . (string)($pesquisa_empresa['NOME_FANTASIA'] ?? $pesquisa_empresa['EMPRESA'] ?? '-'),
    ['modulo' => 'responder_pesquisa.php']
);

$idModeloDepartamentoPesquisa = (int)($pesquisa_empresa['id_modelo_departamento_fk'] ?? 0);
if ($idModeloDepartamentoPesquisa <= 0) {
    $idModeloDepartamentoPesquisa = garantir_modelo_departamento_padrao($conn);
}
$departamentos_modelo_pesquisa = listar_departamentos_por_modelo($conn, $idModeloDepartamentoPesquisa, true);

$idModeloFaixaPesquisa = (int)($pesquisa_empresa['id_modelo_faixa_funcionario_fk'] ?? 0);
if ($idModeloFaixaPesquisa <= 0) {
    $idModeloFaixaPesquisa = garantir_modelo_faixa_funcionario_padrao($conn);
}

$idModeloContatoStatusPesquisa = (int)($pesquisa_empresa['id_modelo_contato_status_fk'] ?? 0);
if ($idModeloContatoStatusPesquisa <= 0) {
    $idModeloContatoStatusPesquisa = garantir_modelo_contato_status_padrao($conn);
}

$entrevista_fields = [
    'quem_entrevistou',
    'data_entrevista',
    'hora_entrevista',
    'agendamento_data_retorno',
    'agendamento_hora_retorno',
    'observacoes_gerais',
    'observacoes_internas',
    'agendar_reuniao',
    'data_reuniao',
    'horario_reuniao',
    'mensagem_fechamento'
];
$entrevista_existentes = [];
$cols = $conn->query("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pesquisa_empresa' AND COLUMN_NAME IN ('quem_entrevistou','data_entrevista','hora_entrevista','agendamento_data_retorno','agendamento_hora_retorno','observacoes_gerais','observacoes_internas','agendar_reuniao','data_reuniao','horario_reuniao','mensagem_fechamento')");
if ($cols) {
    while ($c = $cols->fetch_assoc()) {
        $entrevista_existentes[] = $c['COLUMN_NAME'];
    }
}
foreach ($entrevista_fields as $field) {
    $pesquisa_empresa[$field] = $pesquisa_empresa[$field] ?? '';
}
if (!empty($entrevista_existentes)) {
    $select_cols = implode(', ', $entrevista_existentes);
    $stmt_extra = $conn->prepare("SELECT $select_cols FROM pesquisa_empresa WHERE id = ?");
    $stmt_extra->bind_param('i', $id_pesquisa_empresa);
    $stmt_extra->execute();
    $extra = $stmt_extra->get_result()->fetch_assoc();
    if ($extra) {
        foreach ($extra as $k => $v) {
            $pesquisa_empresa[$k] = $v;
        }
    }
}

// Buscar as perguntas do questionário template
$stmt_perguntas = $conn->prepare("
    SELECT * FROM questionario_template_perguntas 
    WHERE id_questionario_template_fk = ? 
    ORDER BY numero ASC
");
$stmt_perguntas->bind_param('i', $pesquisa_empresa['id_questionario']);
$stmt_perguntas->execute();
$perguntas = $stmt_perguntas->get_result();

// Separar perguntas principais e sub-perguntas
$perguntas_principais = [];
$sub_perguntas_resp = []; // [id_pai][id_opcao_gatilho] => [sub-perguntas]
$todas_perguntas_resp = [];
while ($p = $perguntas->fetch_assoc()) {
    $todas_perguntas_resp[$p['id']] = $p;
    if (empty($p['id_pergunta_pai'])) {
        $perguntas_principais[] = $p;
    } else {
        $pai = $p['id_pergunta_pai'];
        $gatilho = $p['id_opcao_gatilho'] ?? 0;
        if (!isset($sub_perguntas_resp[$pai])) $sub_perguntas_resp[$pai] = [];
        if (!isset($sub_perguntas_resp[$pai][$gatilho])) $sub_perguntas_resp[$pai][$gatilho] = [];
        $sub_perguntas_resp[$pai][$gatilho][] = $p;
    }
}

usort($perguntas_principais, 'comparar_perguntas_por_numero');
foreach ($sub_perguntas_resp as $idPai => $subPorGatilho) {
    foreach ($subPorGatilho as $gatilho => $listaSubs) {
        usort($listaSubs, 'comparar_perguntas_por_numero');
        $sub_perguntas_resp[$idPai][$gatilho] = $listaSubs;
    }
}

$total_perguntas_principais = count($perguntas_principais);

// Buscar respostas já registradas
$respostas_existentes = [];
$stmt_respostas = $conn->prepare("
    SELECT id_pergunta_fk, resposta FROM pesquisa_respostas 
    WHERE id_pesquisa_empresa_fk = ?
");
$stmt_respostas->bind_param('i', $id_pesquisa_empresa);
$stmt_respostas->execute();
$res = $stmt_respostas->get_result();
while ($row = $res->fetch_assoc()) {
    $respostas_existentes[$row['id_pergunta_fk']] = $row['resposta'];
}

// Buscar status disponíveis
$stmt_status = $conn->prepare("SELECT id_status, nome_status FROM statusdoquestionario ORDER BY nome_status");
$stmt_status->execute();
$status_list = $stmt_status->get_result();

// Buscar lista de status de contato pelo modelo da pesquisa
$contato_status_list = listar_status_contato_por_modelo($conn, $idModeloContatoStatusPesquisa, true);

// Buscar faixas de funcionários
$faixas = listar_faixas_por_modelo($conn, $idModeloFaixaPesquisa, true);

$bases_disponiveis = listar_bases($conn, true);

// Faixas de classificação para recálculo no frontend
$stmt_classif_list = $conn->prepare("
    SELECT classificacao, cor, faixa_minima, faixa_maxima, ordem
    FROM classificacao_leads_modelos_itens
    WHERE id_modelo_fk = ? AND ativo = 'S'
    ORDER BY ordem
");
$stmt_classif_list->bind_param('i', $idModeloClassificacaoPesquisa);
$stmt_classif_list->execute();
$classificacoes = [];
$res_classif = $stmt_classif_list->get_result();
while ($row = $res_classif->fetch_assoc()) {
    $classificacoes[] = $row;
}

$endereco_linha1 = implode(', ', array_filter([
    $pesquisa_empresa['RUA'] ?? '',
    $pesquisa_empresa['NUMERO'] ?? '',
    $pesquisa_empresa['COMPL_NUM'] ?? ''
]));
$endereco_linha2 = implode(' - ', array_filter([
    $pesquisa_empresa['BAIRRO'] ?? '',
    $pesquisa_empresa['CIDADE'] ?? '',
    $pesquisa_empresa['UF'] ?? ''
]));
$telefone = trim(($pesquisa_empresa['DDD'] ?? '') . ' ' . ($pesquisa_empresa['TEL'] ?? ''));
$hora_entrevista_fmt = formatar_hora_minuto($pesquisa_empresa['hora_entrevista'] ?? '');
$agendamento_hora_retorno_fmt = formatar_hora_minuto($pesquisa_empresa['agendamento_hora_retorno'] ?? '');
$horario_reuniao_fmt = formatar_hora_minuto($pesquisa_empresa['horario_reuniao'] ?? '');
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Responder Pesquisa - <?= htmlspecialchars($pesquisa_empresa['NOME_FANTASIA']) ?></title>
    <style>
        body { font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 20px; }
        .container { max-width: 1000px; margin: 0 auto; background: white; padding: 30px; border-radius: 8px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); }
        h1 { color: #004d99; border-bottom: 2px solid #ccc; padding-bottom: 10px; }
        h2 { color: #333; margin-top: 15px; margin-bottom: 12px; }
        
        .section-card { background: #f8f9fa; padding: 18px; border-radius: 10px; border: 1px solid #e0e0e0; margin-bottom: 12px; }
        .info-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
        .info-card { background: white; padding: 12px; border-radius: 8px; border: 1px solid #e6e6e6; }
        .info-card strong { color: #004d99; display: block; margin-bottom: 5px; }
        .info-card span { color: #666; font-size: 0.95em; }
        
        .form-group { margin-bottom: 12px; padding: 0; background: none; border: none; }
        .form-group label { display: block; font-weight: bold; color: #333; margin-bottom: 8px; font-size: 1em; }
        .form-group label.small-label { font-size: 0.75em; }
        .form-group input[type="text"],
        .form-group input[type="email"],
        .form-group input[type="date"],
        .form-group input[type="number"],
        .form-group textarea,
        .form-group select { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 0.95em; font-family: Arial, sans-serif; }
        .form-group input.small-input,
        .form-group select.small-input { font-size: 0.95em; }
        .form-group textarea { resize: vertical; min-height: 120px; }
        
        .button-group { display: flex; gap: 10px; margin-top: 30px; }
        .btn { padding: 12px 25px; border: none; border-radius: 4px; cursor: pointer; font-size: 0.95em; text-decoration: none; display: inline-block; }
        .btn-primary { background-color: #004d99; color: white; }
        .btn-primary:hover { background-color: #003366; }
        .btn-secondary { background-color: #6c757d; color: white; }
        .btn-secondary:hover { background-color: #5a6268; }
        
        .status-badge { display: inline-block; padding: 5px 10px; border-radius: 20px; font-size: 0.85em; font-weight: bold; }
        .status-pendente { background: #fff3cd; color: #856404; }
        .status-respondida { background: #c8e6c9; color: #1b5e20; }
        
        .question-number { color: #004d99; font-weight: bold; margin-right: 10px; font-size: 1em; }
        
        .read-only-note { background: #e3f2fd; padding: 10px; border-left: 4px solid #004d99; margin-bottom: 15px; border-radius: 4px; color: #333; }

        .form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
        .form-grid .form-group { margin-bottom: 0; padding: 0; background: none; border: none; }
        .summary-card { background: #e3f2fd; padding: 14px; border-radius: 8px; border: 1px solid #90caf9; display: flex; gap: 20px; align-items: center; flex-wrap: wrap; }
        .summary-card .value { font-size: 20px; font-weight: bold; color: #1976d2; }
        .summary-badge { padding: 6px 16px; border-radius: 4px; font-weight: bold; color: white; }
        
        .contato-card { background: white; padding: 15px; border-radius: 8px; border: 1px solid #ddd; margin-bottom: 15px; }
        .btn-excluir-contato { background: #dc3545; color: white; border: none; padding: 6px 12px; border-radius: 4px; cursor: pointer; font-size: 12px; }
        .btn-excluir-contato:hover { background: #c82333; }
        
        .btn-novo-contato { background: #28a745; color: white; border: none; padding: 10px 20px; border-radius: 4px; cursor: pointer; margin-bottom: 15px; font-size: 14px; }
        .btn-novo-contato:hover { background: #218838; }
        
        .table-contatos { width: 100%; border-collapse: collapse; margin-top: 10px; background: white; }
        .table-contatos thead { background: #004d99; color: white; }
        .table-contatos th { padding: 10px 8px; text-align: left; font-size: 13px; border: 1px solid #ddd; }
        .table-contatos td { padding: 8px; border: 1px solid #ddd; font-size: 12px; }
        .table-contatos tbody tr:hover { background: #f5f5f5; }
        
        .btn-acao-tabela { background: none; border: none; cursor: pointer; padding: 4px 8px; font-size: 16px; }
        .btn-acao-tabela:hover { opacity: 0.7; }
        
        .modal { position: fixed; z-index: 10000; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.5); }
        .modal-content { background-color: white; margin: 5% auto; padding: 30px; border-radius: 8px; width: 80%; max-width: 700px; position: relative; }
        .modal-close { position: absolute; right: 20px; top: 15px; font-size: 28px; font-weight: bold; color: #aaa; cursor: pointer; }
        .modal-close:hover { color: #000; }
        .modal-content label { display: block; margin-bottom: 5px; font-weight: bold; font-size: 13px; }
        .modal-content input, .modal-content select { width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px; font-size: 13px; }
        
        /* Barra de progresso */
        .progress-bar-container { background: #e0e0e0; border-radius: 10px; height: 22px; margin: 15px 0; overflow: hidden; position: relative; }
        .progress-bar-fill { background: linear-gradient(90deg, #4caf50, #81c784); height: 100%; border-radius: 10px; transition: width 0.4s ease; min-width: 0; }
        .progress-bar-text { position: absolute; top: 0; left: 0; right: 0; text-align: center; line-height: 22px; font-size: 0.78em; font-weight: bold; color: #333; }
        
        /* Abas de perguntas */
        .tabs-container { display: flex; flex-wrap: wrap; gap: 4px; margin: 15px 0 10px 0; padding: 10px; background: #f0f0f0; border-radius: 8px; }
        .tab-btn { padding: 6px 14px; border: 2px solid #ccc; border-radius: 6px; background: white; cursor: pointer; font-size: 0.82em; font-weight: bold; color: #666; transition: all 0.2s; min-width: 36px; text-align: center; }
        .tab-btn:hover { border-color: #004d99; color: #004d99; }
        .tab-btn.active { background: #004d99; color: white; border-color: #004d99; }
        .tab-btn.answered { background: #e8f5e9; color: #2e7d32; border-color: #4caf50; }
        .tab-btn.answered.active { background: #2e7d32; color: white; border-color: #2e7d32; }
        
        /* Painel de pergunta (tab content) */
        .tab-panel { display: none; }
        .tab-panel.active { display: block; }
        
        /* Navegação entre perguntas */
        .tab-nav { display: flex; justify-content: space-between; align-items: center; margin-top: 20px; padding-top: 15px; border-top: 1px solid #ddd; }
        .tab-nav .btn { min-width: 120px; }
        .tab-nav-info { color: #666; font-size: 0.9em; }
        .auto-next-countdown { color: #1976d2; font-size: 0.85em; font-weight: bold; margin-left: 8px; display: none; }
        .auto-next-toggle { margin-left: 8px; border: 1px solid #90caf9; background: #e3f2fd; color: #0d47a1; border-radius: 4px; padding: 2px 8px; font-size: 0.75em; cursor: pointer; }
        .auto-next-toggle:hover { background: #bbdefb; }
        
        /* Sub-pergunta condicional */
        .sub-pergunta-condicional { margin-top: 12px; margin-left: 25px; padding: 15px; background: #fffde7; border-left: 3px solid #ffc107; border-radius: 0 8px 8px 0; display: none; }
        .sub-pergunta-condicional.visible { display: block; }
    </style>
</head>
<body>
<script>
// Definir funções do modal no escopo global (antes de qualquer outro script)
window.abrirModalNovoContato = function() {
    var modal = document.getElementById('modalContato');
    if (!modal) return;
    modal.style.display = 'block';
    var titulo = document.getElementById('modalContatoTitulo');
    if (titulo) titulo.textContent = 'Novo Contato';
    var cid = document.getElementById('contato_id');
    if (cid) cid.value = '';
    var form = document.getElementById('formContato');
    if (form) form.reset();
    if (cid) cid.value = '';
};
window.fecharModalContato = function() {
    var m = document.getElementById('modalContato');
    if (m) m.style.display = 'none';
};
</script>

<div class="container">
    <div style="margin-bottom: 20px;">
        <a href="visualizar_pesquisa.php?id=<?= $pesquisa_empresa['id_pesquisa_fk'] ?>" class="btn btn-secondary">
            ← Voltar para Pesquisas
        </a>
        <button type="submit" form="formPesquisa" name="action" value="salvar" class="btn btn-primary" style="float: right;">
            💾 Salvar
        </button>
        <a href="gerar_pdf_pesquisa.php?id=<?= $id_pesquisa_empresa ?>" class="btn" style="background-color: #dc3545; color: white; float: right; margin-right: 10px;">
            📄 Gerar PDF
        </a>
        <div style="clear: both;"></div>
    </div>
    
    <h1 style="font-size: 1.25em;">Responder Pesquisa - <?= htmlspecialchars($pesquisa_empresa['NOME_FANTASIA']) ?> <span style="font-size: 0.8em; color: #666;">(ID: <?= $id_pesquisa_empresa ?>)</span></h1>
    <div style="margin-bottom: 14px; font-size: 0.9em; color: #555;">
        <strong style="color: #004d99;">Questionário utilizado:</strong> <?= htmlspecialchars($pesquisa_empresa['nome_questionario'] ?? 'N/A') ?>
    </div>

    <form method="POST" action="responder_pesquisa.php?id=<?= $id_pesquisa_empresa ?>" id="formPesquisa">
        <input type="hidden" name="id_pesquisa_empresa" value="<?= $id_pesquisa_empresa ?>">
        <input type="hidden" name="id_pesquisa" value="<?= $pesquisa_empresa['id_pesquisa_fk'] ?>">
        <input type="hidden" name="id_empresa" value="<?= $pesquisa_empresa['id_empresa_fk'] ?>">

    <h2 style="font-size: 1em;">Dados Cadastrais da Empresa</h2>
    <div class="section-card">
        <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-bottom: 4px;">
            <div class="form-group">
                <label class="small-label"><strong>Razão Social</strong></label>
                <input type="text" name="empresa_razao_social" value="<?= htmlspecialchars($pesquisa_empresa['EMPRESA'] ?? '') ?>" class="small-input" style="width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px;">
            </div>
            <div class="form-group">
                <label class="small-label"><strong>Nome Fantasia</strong></label>
                <input type="text" name="empresa_nome_fantasia" value="<?= htmlspecialchars($pesquisa_empresa['NOME_FANTASIA'] ?? '') ?>" class="small-input" style="width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px;">
            </div>
        </div>
        
        <div style="display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 15px; margin-bottom: 4px;">
            <div class="form-group">
                <label class="small-label"><strong>CNPJ</strong></label>
                <input type="text" name="empresa_cnpj" value="<?= htmlspecialchars($pesquisa_empresa['CNPJ'] ?? '') ?>" class="small-input" style="width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px;">
            </div>
            <div class="form-group">
                <label class="small-label"><strong>CNAE</strong></label>
                <input type="text" name="empresa_cnae" value="<?= htmlspecialchars($pesquisa_empresa['CNAE'] ?? '') ?>" class="small-input" style="width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px;">
            </div>
            <div class="form-group">
                <label class="small-label"><strong>Site</strong></label>
                <input type="text" name="empresa_site" value="<?= htmlspecialchars($pesquisa_empresa['SITE'] ?? '') ?>" class="small-input" style="width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px;">
            </div>
        </div>
        
        <div style="display: grid; grid-template-columns: 3fr 0.5fr 1fr 1.5fr; gap: 10px; margin-bottom: 4px;">
            <div class="form-group">
                <label class="small-label"><strong>Rua</strong></label>
                <input type="text" name="empresa_rua" value="<?= htmlspecialchars($pesquisa_empresa['RUA'] ?? '') ?>" class="small-input" style="width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px;">
            </div>
            <div class="form-group">
                <label class="small-label"><strong>Número</strong></label>
                <input type="text" name="empresa_numero" value="<?= htmlspecialchars($pesquisa_empresa['NUMERO'] ?? '') ?>" class="small-input" style="width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px;">
            </div>
            <div class="form-group">
                <label class="small-label"><strong>Compl.</strong></label>
                <input type="text" name="empresa_complemento" value="<?= htmlspecialchars($pesquisa_empresa['COMPL_NUM'] ?? '') ?>" class="small-input" style="width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px;">
            </div>
            <div class="form-group">
                <label class="small-label"><strong>Bairro</strong></label>
                <input type="text" name="empresa_bairro" value="<?= htmlspecialchars($pesquisa_empresa['BAIRRO'] ?? '') ?>" class="small-input" style="width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px;">
            </div>
        </div>
        
        <div style="display: grid; grid-template-columns: 2fr 0.4fr 0.8fr; gap: 15px; margin-bottom: 4px;">
            <div class="form-group">
                <label class="small-label"><strong>Cidade</strong></label>
                <input type="text" name="empresa_cidade" value="<?= htmlspecialchars($pesquisa_empresa['CIDADE'] ?? '') ?>" class="small-input" style="width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px;">
            </div>
            <div class="form-group">
                <label class="small-label"><strong>UF</strong></label>
                <select name="empresa_uf" class="small-input" style="width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px;">
                    <option value="">--</option>
                    <option value="AC" <?= ($pesquisa_empresa['UF'] ?? '') === 'AC' ? 'selected' : '' ?>>AC</option>
                    <option value="AL" <?= ($pesquisa_empresa['UF'] ?? '') === 'AL' ? 'selected' : '' ?>>AL</option>
                    <option value="AP" <?= ($pesquisa_empresa['UF'] ?? '') === 'AP' ? 'selected' : '' ?>>AP</option>
                    <option value="AM" <?= ($pesquisa_empresa['UF'] ?? '') === 'AM' ? 'selected' : '' ?>>AM</option>
                    <option value="BA" <?= ($pesquisa_empresa['UF'] ?? '') === 'BA' ? 'selected' : '' ?>>BA</option>
                    <option value="CE" <?= ($pesquisa_empresa['UF'] ?? '') === 'CE' ? 'selected' : '' ?>>CE</option>
                    <option value="DF" <?= ($pesquisa_empresa['UF'] ?? '') === 'DF' ? 'selected' : '' ?>>DF</option>
                    <option value="ES" <?= ($pesquisa_empresa['UF'] ?? '') === 'ES' ? 'selected' : '' ?>>ES</option>
                    <option value="GO" <?= ($pesquisa_empresa['UF'] ?? '') === 'GO' ? 'selected' : '' ?>>GO</option>
                    <option value="MA" <?= ($pesquisa_empresa['UF'] ?? '') === 'MA' ? 'selected' : '' ?>>MA</option>
                    <option value="MT" <?= ($pesquisa_empresa['UF'] ?? '') === 'MT' ? 'selected' : '' ?>>MT</option>
                    <option value="MS" <?= ($pesquisa_empresa['UF'] ?? '') === 'MS' ? 'selected' : '' ?>>MS</option>
                    <option value="MG" <?= ($pesquisa_empresa['UF'] ?? '') === 'MG' ? 'selected' : '' ?>>MG</option>
                    <option value="PA" <?= ($pesquisa_empresa['UF'] ?? '') === 'PA' ? 'selected' : '' ?>>PA</option>
                    <option value="PB" <?= ($pesquisa_empresa['UF'] ?? '') === 'PB' ? 'selected' : '' ?>>PB</option>
                    <option value="PR" <?= ($pesquisa_empresa['UF'] ?? '') === 'PR' ? 'selected' : '' ?>>PR</option>
                    <option value="PE" <?= ($pesquisa_empresa['UF'] ?? '') === 'PE' ? 'selected' : '' ?>>PE</option>
                    <option value="PI" <?= ($pesquisa_empresa['UF'] ?? '') === 'PI' ? 'selected' : '' ?>>PI</option>
                    <option value="RJ" <?= ($pesquisa_empresa['UF'] ?? '') === 'RJ' ? 'selected' : '' ?>>RJ</option>
                    <option value="RN" <?= ($pesquisa_empresa['UF'] ?? '') === 'RN' ? 'selected' : '' ?>>RN</option>
                    <option value="RS" <?= ($pesquisa_empresa['UF'] ?? '') === 'RS' ? 'selected' : '' ?>>RS</option>
                    <option value="RO" <?= ($pesquisa_empresa['UF'] ?? '') === 'RO' ? 'selected' : '' ?>>RO</option>
                    <option value="RR" <?= ($pesquisa_empresa['UF'] ?? '') === 'RR' ? 'selected' : '' ?>>RR</option>
                    <option value="SC" <?= ($pesquisa_empresa['UF'] ?? '') === 'SC' ? 'selected' : '' ?>>SC</option>
                    <option value="SP" <?= ($pesquisa_empresa['UF'] ?? '') === 'SP' ? 'selected' : '' ?>>SP</option>
                    <option value="SE" <?= ($pesquisa_empresa['UF'] ?? '') === 'SE' ? 'selected' : '' ?>>SE</option>
                    <option value="TO" <?= ($pesquisa_empresa['UF'] ?? '') === 'TO' ? 'selected' : '' ?>>TO</option>
                </select>
            </div>
            <div class="form-group">
                <label class="small-label"><strong>CEP</strong></label>
                <input type="text" name="empresa_cep" value="<?= htmlspecialchars($pesquisa_empresa['CEP'] ?? '') ?>" maxlength="10" class="small-input" style="width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px;">
            </div>
        </div>
        
        <div style="display: grid; grid-template-columns: 0.4fr 1fr 1fr 1fr 1fr; gap: 15px;">
            <div class="form-group">
                <label class="small-label"><strong>DDD</strong></label>
                <input type="text" name="empresa_ddd" value="<?= htmlspecialchars($pesquisa_empresa['DDD'] ?? '') ?>" maxlength="3" class="small-input" style="width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px;">
            </div>
            <div class="form-group">
                <label class="small-label"><strong>Telefone</strong></label>
                <input type="text" name="empresa_tel" value="<?= htmlspecialchars($pesquisa_empresa['TEL'] ?? '') ?>" class="small-input" style="width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px;">
            </div>
            <div class="form-group">
                <label class="small-label"><strong>Funcionários</strong></label>
                <input type="text" name="empresa_funcionarios" value="<?= htmlspecialchars($pesquisa_empresa['FUNCIONARIOS'] ?? '') ?>" class="small-input" style="width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px;">
            </div>
            <div class="form-group">
                <label class="small-label"><strong>Base</strong></label>
                <select name="empresa_idbase" class="small-input" style="width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px; background-color: white;">
                    <option value="">Selecione...</option>
                    <?php foreach ($bases_disponiveis as $base): ?>
                        <option value="<?= (int)$base['idbase'] ?>" <?= ((int)($pesquisa_empresa['idbase'] ?? 0) === (int)$base['idbase']) ? 'selected' : '' ?>>
                            <?= htmlspecialchars($base['nome_base']) ?>
                        </option>
                    <?php endforeach; ?>
                </select>
            </div>
            <div class="form-group">
                <label class="small-label"><strong>Porte</strong></label>
                <input type="text" name="empresa_porte" value="<?= htmlspecialchars($pesquisa_empresa['PORTE'] ?? '') ?>" class="small-input" style="width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px;">
            </div>
        </div>
    </div>
    
    <!-- Controle da Entrevista e Respostas -->
        <h2 style="font-size: 1em;">Controle da Entrevista</h2>
        <div class="section-card">
            <div class="info-grid">
                <div class="info-card">
                    <strong>Quem entrevistou?</strong>
                    <input type="text" id="quem_entrevistou" name="quem_entrevistou"
                           value="<?= htmlspecialchars($pesquisa_empresa['quem_entrevistou'] ?? $_SESSION['usuario_nome'] ?? '') ?>"
                           style="border: 1px solid #ddd; padding: 8px; border-radius: 4px; width: 100%; margin-top: 8px;">
                </div>
                <div class="info-card">
                    <strong>Data da entrevista</strong>
                    <input type="date" id="data_entrevista" name="data_entrevista"
                           value="<?= htmlspecialchars($pesquisa_empresa['data_entrevista'] ?? '') ?>"
                           style="border: 1px solid #ddd; padding: 8px; border-radius: 4px; width: 100%; margin-top: 8px;">
                </div>
                <div class="info-card">
                    <strong>Hora da entrevista</strong>
                    <input type="time" id="hora_entrevista" name="hora_entrevista"
                           value="<?= htmlspecialchars($hora_entrevista_fmt) ?>"
                           style="border: 1px solid #ddd; padding: 8px; border-radius: 4px; width: 100%; margin-top: 8px;">
                </div>
                <div class="info-card">
                    <strong>Status do Questionário</strong>
                    <select id="id_status_questionario_fk" name="id_status_questionario_fk" required
                        style="border: 1px solid #ddd; padding: 8px; border-radius: 4px; width: 100%; margin-top: 8px; background-color: white;">
                        <option value="">-- Selecione um Status --</option>
                        <?php while($status = $status_list->fetch_assoc()): ?>
                            <option value="<?= $status['id_status'] ?>" 
                                    <?= $pesquisa_empresa['id_status_questionario_fk'] == $status['id_status'] ? 'selected' : '' ?>>
                                <?= htmlspecialchars($status['nome_status']) ?>
                            </option>
                        <?php endwhile; ?>
                    </select>
                </div>
                <div class="info-card" style="grid-column: span 2;">
                    <strong>Retorno Agendado</strong>
                    <div style="display: flex; gap: 12px; margin-top: 8px;">
                        <div style="flex: 1;">
                            <label style="font-size: 0.85em; color: #666; display: block; margin-bottom: 4px;">Data</label>
                            <input type="date" id="agendamento_data_retorno" name="agendamento_data_retorno"
                                   value="<?= htmlspecialchars($pesquisa_empresa['agendamento_data_retorno'] ?? '') ?>"
                                   style="border: 1px solid #ddd; padding: 8px; border-radius: 4px; width: 100%;">
                        </div>
                        <div style="flex: 1;">
                            <label style="font-size: 0.85em; color: #666; display: block; margin-bottom: 4px;">Hora</label>
                            <input type="time" id="agendamento_hora_retorno" name="agendamento_hora_retorno"
                                   value="<?= htmlspecialchars($agendamento_hora_retorno_fmt) ?>"
                                   style="border: 1px solid #ddd; padding: 8px; border-radius: 4px; width: 100%;">
                        </div>
                    </div>
                </div>
            </div>

            <div class="summary-card" style="margin-top: 16px;">
                <div>
                    <strong>Nota Total:</strong>
                    <span class="value" id="nota_total_valor"><?= htmlspecialchars($pesquisa_empresa['nota_total'] ?? 0) ?></span>
                </div>
                <div>
                    <strong>Classificação:</strong>
                    <span class="summary-badge" id="classificacao_badge" style="background-color: <?= htmlspecialchars($pesquisa_empresa['cor_classificacao'] ?? '#cccccc') ?>;">
                        <?= htmlspecialchars($pesquisa_empresa['classificacao'] ?? '-') ?>
                    </span>
                </div>
            </div>
        </div>
        
        <!-- Contatos da Empresa - REMOVIDO DE AQUI - APARECE APENAS NO PDF -->
        
        <!-- Contatos da Empresa - EDIÇÃO -->
        <h2 style="font-size: 1em;">Contatos da Empresa</h2>
        <div class="section-card" id="contatos-section">
            <button type="button" onclick="event.preventDefault(); event.stopPropagation(); abrirModalNovoContato(); return false;" class="btn-novo-contato">
                + Novo Contato
            </button>
            
            <?php
            // Buscar contatos diretamente da tabela contatos_empresa
            $stmt_contatos = $conn->prepare("
                SELECT 
                    ce.idcontatos_empresa,
                    ce.depto,
                    ce.nome,
                    ce.sobrenome,
                    ce.cargo,
                    ce.sexo,
                    ce.email,
                    ce.ddd,
                    ce.tel as telefone,
                    ce.celular,
                    ce.ramal,
                    ce.linkedin,
                    ce.endereco,
                    ce.numero,
                    ce.complemento,
                    ce.bairro,
                    ce.cidade,
                    ce.uf,
                    ce.cep,
                    ce.observacoes, 
                    COALESCE(csm.contato_status, ce.status_contato) as status_contato_nome
                FROM contatos_empresa ce
                LEFT JOIN contato_status_modelos_itens csm
                    ON csm.id_item = ce.idcontato_status
                   AND csm.id_modelo_fk = ?
                WHERE ce.id_empresa = ?
                ORDER BY ce.nome
            ");
            $stmt_contatos->bind_param('ii', $idModeloContatoStatusPesquisa, $pesquisa_empresa['id_empresa_fk']);
            $stmt_contatos->execute();
            $contatos_result = $stmt_contatos->get_result();
            ?>
            
            <table class="table-contatos">
                <thead>
                    <tr>
                        <th>Status</th>
                        <th>Área</th>
                        <th>Entrevistado</th>
                        <th>Nome</th>
                        <th>Sobrenome</th>
                        <th>Cargo</th>
                        <th>Endereço</th>
                        <th>DDD</th>
                        <th>Telefone 1</th>
                        <th>Telefone 2</th>
                        <th>Ações</th>
                    </tr>
                </thead>
                <tbody id="contatos-tbody">
                    <?php if ($contatos_result->num_rows > 0): ?>
                        <?php while($contato = $contatos_result->fetch_assoc()): ?>
                        <tr data-contato-id="<?= $contato['idcontatos_empresa'] ?>">
                            <td><?= htmlspecialchars($contato['status_contato_nome'] ?? '-') ?></td>
                            <td><?= htmlspecialchars($contato['depto'] ?? '-') ?></td>
                            <td><?= htmlspecialchars($contato['sexo'] ?? '-') ?></td>
                            <td><?= htmlspecialchars($contato['nome']) ?></td>
                            <td><?= htmlspecialchars($contato['sobrenome'] ?? '-') ?></td>
                            <td><?= htmlspecialchars($contato['cargo'] ?? '-') ?></td>
                            <td><?= htmlspecialchars($contato['endereco'] ?? '-') ?></td>
                            <td><?= htmlspecialchars($contato['ddd'] ?? '-') ?></td>
                            <td><?= htmlspecialchars($contato['telefone'] ?? '-') ?></td>
                            <td><?= htmlspecialchars($contato['celular'] ?? '-') ?></td>
                            <td>
                                <button type="button" class="btn-acao-tabela" onclick="editarContato(<?= $contato['idcontatos_empresa'] ?>)" title="Editar">✏️</button>
                                <button type="button" class="btn-acao-tabela" onclick="excluirContato(<?= $contato['idcontatos_empresa'] ?>)" title="Excluir">🗑️</button>
                            </td>
                        </tr>
                        <?php endwhile; ?>
                    <?php else: ?>
                        <tr>
                            <td colspan="11" style="text-align: center; padding: 20px; color: #999;">
                                Nenhum contato cadastrado.
                            </td>
                        </tr>
                    <?php endif; ?>
                </tbody>
            </table>
        </div>
        
        <!-- Perguntas -->
        <h2 style="font-size: 1em;">Perguntas do Questionário</h2>
        
        <?php if (!empty($pesquisa_empresa['introducao_questionario'])): ?>
        <div style="background: #e3f2fd; padding: 15px; border-radius: 8px; border-left: 4px solid #004d99; margin-bottom: 15px; color: #333; line-height: 1.6;">
            <?= nl2br(htmlspecialchars($pesquisa_empresa['introducao_questionario'])) ?>
        </div>
        <?php endif; ?>
        
        <!-- Barra de progresso -->
        <div class="progress-bar-container">
            <div class="progress-bar-fill" id="progressBarFill" style="width: 0%;"></div>
            <div class="progress-bar-text" id="progressBarText">0%</div>
        </div>
        
        <!-- Abas de perguntas -->
        <div class="tabs-container" id="tabsContainer">
            <?php foreach($perguntas_principais as $idx => $pp): ?>
            <?php
                $resposta_tab = $respostas_existentes[$pp['id']] ?? '';
                $resumo_tab = resumir_resposta_para_tooltip($resposta_tab, $pp['tipo_resposta'] ?? '');
                $tooltip_tab = "Pergunta: " . trim((string)($pp['pergunta'] ?? '')) . "\nResposta: " . $resumo_tab;
            ?>
            <button type="button" class="tab-btn <?= $idx === 0 ? 'active' : '' ?>" data-tab="<?= $idx ?>" data-question="<?= htmlspecialchars((string)($pp['pergunta'] ?? ''), ENT_QUOTES, 'UTF-8') ?>" title="<?= htmlspecialchars($tooltip_tab, ENT_QUOTES, 'UTF-8') ?>" onclick="switchTab(<?= $idx ?>)">
                <?= htmlspecialchars($pp['numero']) ?>
            </button>
            <?php endforeach; ?>
        </div>
        
        <!-- Painéis de perguntas -->
        <?php 
        $nota_total = 0;
        foreach($perguntas_principais as $idx => $pergunta): 
            $resposta_existente = $respostas_existentes[$pergunta['id']] ?? '';
            
            $opcoes_array = [];
            if (!empty($pergunta['opcoes'])) {
                $opcoes_json = json_decode($pergunta['opcoes'], true);
                if (is_array($opcoes_json)) {
                    $opcoes_array = $opcoes_json;
                } else {
                    $opcoes_split = explode('|', $pergunta['opcoes']);
                    foreach ($opcoes_split as $opcao) {
                        $opcoes_array[] = ['texto' => trim($opcao), 'nota' => 0];
                    }
                }
            }
        ?>
        
        <div class="tab-panel <?= $idx === 0 ? 'active' : '' ?>" id="tabPanel_<?= $idx ?>">
            <div class="form-group">
                <label>
                    <span class="question-number"><?= htmlspecialchars($pergunta['numero']) ?>.</span> 
                    <?= htmlspecialchars($pergunta['pergunta']) ?>
                    <?php if ($pergunta['obrigatorio'] === 'S'): ?><span style="color: #dc3545;">*</span><?php endif; ?>
                </label>
                
                <?php if ($pergunta['tipo_resposta'] === 'text' || $pergunta['tipo_resposta'] === 'textarea'): ?>
                    <textarea name="resposta_<?= $pergunta['id'] ?>" onchange="atualizarNotaClassificacao(); atualizarProgresso();"><?= htmlspecialchars($resposta_existente) ?></textarea>
                <?php elseif ($pergunta['tipo_resposta'] === 'radio' || $pergunta['tipo_resposta'] === 'select'): ?>
                    <?php 
                    foreach($opcoes_array as $idx_opcao => $opcao):
                        $texto = $opcao['texto'] ?? '';
                        $nota = $opcao['nota'] ?? 0;
                        $valor = htmlspecialchars($texto . '|' . $nota);
                    ?>
                    <div style="margin: 8px 0;">
                        <label style="display: flex; align-items: center; font-weight: normal; margin-bottom: 0; font-size: 0.95em;">
                            <input type="radio" name="resposta_<?= $pergunta['id'] ?>" value="<?= $valor ?>"
                                   data-pergunta-id="<?= $pergunta['id'] ?>" data-opcao-idx="<?= $idx_opcao ?>"
                                   onchange="atualizarNotaClassificacao(); atualizarProgresso(); mostrarSubPerguntas(<?= $pergunta['id'] ?>, <?= $idx_opcao ?>);"
                                   <?= strpos($resposta_existente, $texto) !== false ? 'checked' : '' ?> style="width: 20px; height: 20px;">
                            <span style="margin-left: 8px;">
                                <?= htmlspecialchars($texto) ?>
                                <small style="color: #999; font-weight: normal;">(Pontos: <?= $nota ?>)</small>
                            </span>
                        </label>
                    </div>
                    <?php endforeach; ?>
                <?php elseif ($pergunta['tipo_resposta'] === 'checkbox'): ?>
                    <?php 
                    foreach($opcoes_array as $idx_opcao => $opcao):
                        $texto = $opcao['texto'] ?? '';
                        $nota = $opcao['nota'] ?? 0;
                        $valor = htmlspecialchars($texto . '|' . $nota);
                    ?>
                    <div style="margin: 8px 0;">
                        <label style="display: flex; align-items: center; font-weight: normal; margin-bottom: 0; font-size: 0.95em;">
                            <input type="checkbox" name="resposta_<?= $pergunta['id'] ?>[]" value="<?= $valor ?>"
                                   onchange="atualizarNotaClassificacao(); atualizarProgresso();"
                                   <?= strpos($resposta_existente, $texto) !== false ? 'checked' : '' ?> style="width: 20px; height: 20px;">
                            <span style="margin-left: 8px;">
                                <?= htmlspecialchars($texto) ?>
                                <small style="color: #999; font-weight: normal;">(Pontos: <?= $nota ?>)</small>
                            </span>
                        </label>
                    </div>
                    <?php endforeach; ?>
                <?php elseif ($pergunta['tipo_resposta'] === 'campos_personalizados'): ?>
                    <?php 
                    $campos_def = json_decode($pergunta['opcoes'], true);
                    $campos_vals = [];
                    if (!empty($resposta_existente)) {
                        $campos_vals = json_decode($resposta_existente, true);
                        if (!is_array($campos_vals)) $campos_vals = [];
                    }
                    if ($campos_def && is_array($campos_def)):
                    ?>
                    <div style="background: #f8f9fa; padding: 15px; border-radius: 8px; border: 1px solid #e0e0e0; margin-top: 8px;">
                        <?php foreach($campos_def as $ci => $campo): 
                            $campo_nome = $campo['nome'] ?? '';
                            $campo_tipo = $campo['tipo'] ?? 'texto';
                            $campo_nota = (float)($campo['nota'] ?? 0);
                            $campo_val = $campos_vals[$campo_nome] ?? '';
                            $input_type = 'text';
                            if ($campo_tipo === 'telefone') $input_type = 'tel';
                            elseif ($campo_tipo === 'hora') $input_type = 'time';
                            elseif ($campo_tipo === 'data') $input_type = 'date';
                        ?>
                        <div style="margin-bottom: 10px;">
                            <label style="font-weight: normal; font-size: 0.9em; color: #555; margin-bottom: 4px; display: block;">
                                <?= htmlspecialchars($campo_nome) ?>
                                <small style="color: #999;">(<?= htmlspecialchars(ucfirst($campo_tipo)) ?>)</small>
                                <small style="color: #999;">(Pontos ao preencher: <?= number_format($campo_nota, 2, ',', '.') ?>)</small>
                            </label>
                            <input type="<?= $input_type ?>" 
                                   name="resposta_<?= $pergunta['id'] ?>[<?= htmlspecialchars($campo_nome) ?>]" 
                                   value="<?= htmlspecialchars($campo_val) ?>"
                                   data-campo-nota="<?= htmlspecialchars((string)$campo_nota) ?>"
                                   onchange="atualizarNotaClassificacao(); atualizarProgresso();"
                                   style="width: 100%; padding: 8px; border: 1px solid #ccc; border-radius: 4px;">
                        </div>
                        <?php endforeach; ?>
                    </div>
                    <?php endif; ?>
                <?php else: ?>
                    <input type="text" name="resposta_<?= $pergunta['id'] ?>" 
                           value="<?= htmlspecialchars($resposta_existente) ?>"
                           onchange="atualizarNotaClassificacao(); atualizarProgresso();">
                <?php endif; ?>
            </div>
            
            <?php 
            // Renderizar sub-perguntas condicionais
            if (isset($sub_perguntas_resp[$pergunta['id']])):
                foreach ($sub_perguntas_resp[$pergunta['id']] as $gatilho_idx => $subs):
                    foreach ($subs as $sub):
                        $sub_resposta = $respostas_existentes[$sub['id']] ?? '';
                        $sub_opcoes = [];
                        if (!empty($sub['opcoes'])) {
                            $sub_opcoes_json = json_decode($sub['opcoes'], true);
                            if (is_array($sub_opcoes_json)) $sub_opcoes = $sub_opcoes_json;
                        }
                        
                        // Verificar se deve estar visível (opção gatilho selecionada)
                        $sub_visivel = false;
                        if (!empty($resposta_existente) && isset($opcoes_array[$gatilho_idx])) {
                            $sub_visivel = strpos($resposta_existente, $opcoes_array[$gatilho_idx]['texto']) !== false;
                        }
            ?>
            <div class="sub-pergunta-condicional <?= $sub_visivel ? 'visible' : '' ?>" 
                 data-pai="<?= $pergunta['id'] ?>" data-gatilho="<?= $gatilho_idx ?>">
                <div class="form-group" style="margin-bottom: 0;">
                    <label>
                        <span class="question-number" style="color: #ff9800;"><?= htmlspecialchars($sub['numero']) ?>.</span> 
                        <?= htmlspecialchars($sub['pergunta']) ?>
                        <?php if ($sub['obrigatorio'] === 'S'): ?><span style="color: #dc3545;">*</span><?php endif; ?>
                    </label>
                    
                    <?php if ($sub['tipo_resposta'] === 'text' || $sub['tipo_resposta'] === 'textarea'): ?>
                        <textarea name="resposta_<?= $sub['id'] ?>" onchange="atualizarNotaClassificacao(); atualizarProgresso();"><?= htmlspecialchars($sub_resposta) ?></textarea>
                    <?php elseif ($sub['tipo_resposta'] === 'radio' || $sub['tipo_resposta'] === 'select'): ?>
                        <?php foreach($sub_opcoes as $sub_opcao):
                            $st = $sub_opcao['texto'] ?? '';
                            $sn = $sub_opcao['nota'] ?? 0;
                            $sv = htmlspecialchars($st . '|' . $sn);
                        ?>
                        <div style="margin: 8px 0;">
                            <label style="display: flex; align-items: center; font-weight: normal; margin-bottom: 0; font-size: 0.95em;">
                                <input type="radio" name="resposta_<?= $sub['id'] ?>" value="<?= $sv ?>"
                                       onchange="atualizarNotaClassificacao(); atualizarProgresso();"
                                       <?= strpos($sub_resposta, $st) !== false ? 'checked' : '' ?> style="width: 20px; height: 20px;">
                                <span style="margin-left: 8px;"><?= htmlspecialchars($st) ?> <small style="color: #999;">(Pontos: <?= $sn ?>)</small></span>
                            </label>
                        </div>
                        <?php endforeach; ?>
                    <?php elseif ($sub['tipo_resposta'] === 'checkbox'): ?>
                        <?php foreach($sub_opcoes as $sub_opcao):
                            $st = $sub_opcao['texto'] ?? '';
                            $sn = $sub_opcao['nota'] ?? 0;
                            $sv = htmlspecialchars($st . '|' . $sn);
                        ?>
                        <div style="margin: 8px 0;">
                            <label style="display: flex; align-items: center; font-weight: normal; margin-bottom: 0; font-size: 0.95em;">
                                <input type="checkbox" name="resposta_<?= $sub['id'] ?>[]" value="<?= $sv ?>"
                                       onchange="atualizarNotaClassificacao(); atualizarProgresso();"
                                       <?= strpos($sub_resposta, $st) !== false ? 'checked' : '' ?> style="width: 20px; height: 20px;">
                                <span style="margin-left: 8px;"><?= htmlspecialchars($st) ?> <small style="color: #999;">(Pontos: <?= $sn ?>)</small></span>
                            </label>
                        </div>
                        <?php endforeach; ?>
                    <?php elseif ($sub['tipo_resposta'] === 'campos_personalizados'): ?>
                        <?php 
                        $sub_campos_def = json_decode($sub['opcoes'], true);
                        $sub_campos_vals = [];
                        if (!empty($sub_resposta)) {
                            $sub_campos_vals = json_decode($sub_resposta, true);
                            if (!is_array($sub_campos_vals)) $sub_campos_vals = [];
                        }
                        if ($sub_campos_def && is_array($sub_campos_def)):
                        ?>
                        <div style="background: #fff; padding: 12px; border-radius: 8px; border: 1px solid #e0e0e0; margin-top: 8px;">
                            <?php foreach($sub_campos_def as $sci => $scampo): 
                                $sc_nome = $scampo['nome'] ?? '';
                                $sc_tipo = $scampo['tipo'] ?? 'texto';
                                $sc_nota = (float)($scampo['nota'] ?? 0);
                                $sc_val = $sub_campos_vals[$sc_nome] ?? '';
                                $sc_input_type = 'text';
                                if ($sc_tipo === 'telefone') $sc_input_type = 'tel';
                                elseif ($sc_tipo === 'hora') $sc_input_type = 'time';
                                elseif ($sc_tipo === 'data') $sc_input_type = 'date';
                            ?>
                            <div style="margin-bottom: 10px;">
                                <label style="font-weight: normal; font-size: 0.9em; color: #555; margin-bottom: 4px; display: block;">
                                    <?= htmlspecialchars($sc_nome) ?>
                                    <small style="color: #999;">(<?= htmlspecialchars(ucfirst($sc_tipo)) ?>)</small>
                                    <small style="color: #999;">(Pontos ao preencher: <?= number_format($sc_nota, 2, ',', '.') ?>)</small>
                                </label>
                                <input type="<?= $sc_input_type ?>" 
                                       name="resposta_<?= $sub['id'] ?>[<?= htmlspecialchars($sc_nome) ?>]" 
                                       value="<?= htmlspecialchars($sc_val) ?>"
                                       data-campo-nota="<?= htmlspecialchars((string)$sc_nota) ?>"
                                       onchange="atualizarNotaClassificacao(); atualizarProgresso();"
                                       style="width: 100%; padding: 8px; border: 1px solid #ccc; border-radius: 4px;">
                            </div>
                            <?php endforeach; ?>
                        </div>
                        <?php endif; ?>
                    <?php else: ?>
                        <input type="text" name="resposta_<?= $sub['id'] ?>" value="<?= htmlspecialchars($sub_resposta) ?>"
                               onchange="atualizarNotaClassificacao(); atualizarProgresso();">
                    <?php endif; ?>
                </div>
            </div>
            <?php 
                    endforeach;
                endforeach;
            endif;
            ?>
            
            <!-- Navegação entre abas -->
            <div class="tab-nav">
                <?php if ($idx > 0): ?>
                <button type="button" class="btn btn-secondary" onclick="switchTab(<?= $idx - 1 ?>)">← Anterior</button>
                <?php else: ?>
                <span></span>
                <?php endif; ?>
                
                <span class="tab-nav-info">Pergunta <?= $idx + 1 ?> de <?= $total_perguntas_principais ?></span>
                
                <?php if ($idx < $total_perguntas_principais - 1): ?>
                <button type="button" class="btn btn-primary" onclick="switchTab(<?= $idx + 1 ?>)">Próxima →</button>
                <?php else: ?>
                <span></span>
                <?php endif; ?>
            </div>
        </div>
        
        <?php endforeach; ?>
        
        <!-- Mensagem de Fechamento (somente leitura) -->
        <?php if (!empty($pesquisa_empresa['mensagem_fechamento_template'])): ?>
        <div style="background: #fff8e1; padding: 16px; border-radius: 8px; margin-top: 30px; border-left: 4px solid #ffa000;">
            <strong style="color: #e65100; display: block; margin-bottom: 8px;">📋 Mensagem de Fechamento</strong>
            <span style="color: #333; line-height: 1.6;"><?= nl2br(htmlspecialchars($pesquisa_empresa['mensagem_fechamento_template'])) ?></span>
        </div>
        <?php endif; ?>

        <!-- Agendamento de Reunião -->
        <div style="background: #f0f8ff; padding: 20px; border-radius: 8px; margin-top: 30px; border-left: 4px solid #004d99;">
            <h3 style="margin-top: 0; color: #004d99; font-size: 1.1em;">📅 Agendamento de Reunião</h3>
            
            <div class="form-group">
                <label style="font-size: 1em; margin-bottom: 15px;">
                    <strong>Podemos agendar uma reunião?</strong>
                </label>
                <div style="display: flex; gap: 30px; margin-top: 10px;">
                    <label style="display: flex; align-items: center; font-weight: normal; cursor: pointer;">
                        <input type="radio" name="agendar_reuniao" value="S" 
                               <?= ($pesquisa_empresa['agendar_reuniao'] ?? '') === 'S' ? 'checked' : '' ?>
                               style="width: 20px; height: 20px; margin-right: 8px;">
                        <span style="font-size: 0.95em;">✅ Sim</span>
                    </label>
                    <label style="display: flex; align-items: center; font-weight: normal; cursor: pointer;">
                        <input type="radio" name="agendar_reuniao" value="N" 
                               <?= ($pesquisa_empresa['agendar_reuniao'] ?? '') === 'N' ? 'checked' : '' ?>
                               style="width: 20px; height: 20px; margin-right: 8px;">
                        <span style="font-size: 0.95em;">❌ Não</span>
                    </label>
                </div>
            </div>
            
            <div class="form-group" style="margin-top: 20px;">
                <label style="font-size: 1em;">
                    <strong>Qual a melhor data e horário?</strong>
                </label>
                <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-top: 10px;">
                    <div>
                        <label style="font-size: 0.85em; color: #666; display: block; margin-bottom: 5px;">Data</label>
                        <input type="date" name="data_reuniao" 
                               value="<?= htmlspecialchars($pesquisa_empresa['data_reuniao'] ?? '') ?>"
                               style="width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 4px;">
                    </div>
                    <div>
                        <label style="font-size: 0.85em; color: #666; display: block; margin-bottom: 5px;">Horário</label>
                        <input type="time" name="horario_reuniao" 
                               value="<?= htmlspecialchars($horario_reuniao_fmt) ?>"
                               style="width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 4px;">
                    </div>
                </div>
            </div>
        </div>
        <!-- Observações Gerais -->
        <div class="form-group" style="margin-top: 20px;">
            <label for="observacoes_gerais">
                <strong>Observações Gerais</strong>
            </label>
            <textarea 
                id="observacoes_gerais" 
                name="observacoes_gerais" 
                placeholder="Digite observações gerais sobre a pesquisa"
                style="min-height: 120px;"
            ><?= htmlspecialchars($pesquisa_empresa['observacoes_gerais'] ?? '') ?></textarea>
        </div>
        <!-- Observações Internas -->
        <div class="form-group" style="margin-top: 20px;">
            <label for="observacoes_internas">
                <strong>Observações Internas</strong>
            </label>
            <textarea 
                id="observacoes_internas" 
                name="observacoes_internas" 
                placeholder="Digite observações internas (uso interno, não aparece para o cliente)"
                style="min-height: 120px;"
            ><?= htmlspecialchars($pesquisa_empresa['observacoes_internas'] ?? '') ?></textarea>
        </div>
        <!-- Botões de Ação -->
        <div class="button-group">
            <button type="submit" name="action" value="salvar" class="btn btn-primary">
                💾 Salvar
            </button>
            <a href="visualizar_pesquisa.php?id=<?= $pesquisa_empresa['id_pesquisa_fk'] ?>" class="btn btn-secondary">
                ← Voltar
            </a>
        </div>
    </form>
</div>

<!-- Modal para Novo/Editar Contato -->
<div id="modalContato" class="modal" style="display: none;">
    <div class="modal-content" style="max-width: 900px;">
        <span class="modal-close" onclick="fecharModalContato()">&times;</span>
        <h3 id="modalContatoTitulo">Novo Contato</h3>
        <form id="formContato" onsubmit="salvarContato(event)">
            <input type="hidden" id="contato_id" value="">
            <input type="hidden" id="data_id_pesquisa_empresa" value="<?= (int)$id_pesquisa_empresa ?>">
            
            <!-- Linha 1: Status, Área, Entrevistado, Sexo -->
            <div style="display: grid; grid-template-columns: 1.2fr 1.2fr 0.8fr 0.6fr; gap: 8.4px; margin-bottom: 8.4px;">
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">Status</label>
                    <select id="contato_status">
                        <option value="">-- Nenhum --</option>
                        <?php foreach($contato_status_list as $cs): ?>
                            <option value="<?= (int)$cs['id_item'] ?>"><?= htmlspecialchars($cs['contato_status']) ?></option>
                        <?php endforeach; ?>
                    </select>
                </div>
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">Área</label>
                    <select id="contato_area">
                        <option value="">-- Selecione --</option>
                        <?php foreach ($departamentos_modelo_pesquisa as $depModelo): ?>
                            <option value="<?= htmlspecialchars($depModelo['nome_departamento']) ?>"><?= htmlspecialchars($depModelo['nome_departamento']) ?></option>
                        <?php endforeach; ?>
                    </select>
                </div>
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">Entrevistado</label>
                    <select id="contato_entrevistado">
                        <option value="">--</option>
                        <option value="S">Sim</option>
                        <option value="N">Não</option>
                    </select>
                </div>
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">Sexo</label>
                    <select id="contato_sexo">
                        <option value="">--</option>
                        <option value="M">M</option>
                        <option value="F">F</option>
                    </select>
                </div>
            </div>
            
            <!-- Linha 2: Nome, Sobrenome, Cargo -->
            <div style="display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8.4px; margin-bottom: 8.4px;">
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">Nome</label>
                    <input type="text" id="contato_nome" required>
                </div>
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">Sobrenome</label>
                    <input type="text" id="contato_sobrenome">
                </div>
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">Cargo</label>
                    <input type="text" id="contato_cargo">
                </div>
            </div>
            
            <!-- Linha 3: DDD, Telefone 1, Telefone 2, Ramal, Celular, Email -->
            <div style="display: grid; grid-template-columns: 70px 1fr 1fr 90px 1fr 1fr 2fr; gap: 8.4px; margin-bottom: 8.4px;">
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">DDD</label>
                    <input type="text" id="contato_ddd" maxlength="3" placeholder="011">
                </div>
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">Tel 1</label>
                    <input type="text" id="contato_telefone" placeholder="99999-9999">
                </div>
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">Tel 2</label>
                    <input type="text" id="contato_telefone2" placeholder="99999-9999">
                </div>
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">Ramal</label>
                    <input type="text" id="contato_ramal" placeholder="123">
                </div>
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">Tel 3</label>
                    <input type="text" id="contato_telefone3" placeholder="99999-9999">
                </div>
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">Celular</label>
                    <input type="text" id="contato_celular" placeholder="99999-9999">
                </div>
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">Email</label>
                    <input type="email" id="contato_email" placeholder="email@exemplo.com">
                </div>
            </div>
            
            <!-- Linha 4: Checkbox e LinkedIn -->
            <div style="display: grid; grid-template-columns: auto 1fr; gap: 8.4px; margin-bottom: 8.4px; align-items: end;">
                <div style="padding-bottom: 5px;">
                    <label style="display: flex; align-items: center; font-weight: normal; margin: 0; white-space: nowrap; font-size: 12px;">
                        <input type="checkbox" id="contato_endereco_mesmo" onchange="copiarEnderecoEmpresa()" style="width: auto; margin-right: 6px;">
                        <span>Mesmo endereço da empresa</span>
                    </label>
                </div>
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">LinkedIn</label>
                    <input type="text" id="contato_linkedin" placeholder="linkedin.com/in/perfil" style="font-size: 0.85em;">
                </div>
            </div>

            <!-- Linha 5: Endereço, Número, Complemento -->
            <div style="display: grid; grid-template-columns: 2fr 0.5fr 0.7fr; gap: 8.4px; margin-bottom: 8.4px;">
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">Endereço</label>
                    <input type="text" id="contato_endereco">
                </div>
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">Nº</label>
                    <input type="text" id="contato_numero">
                </div>
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">Compl</label>
                    <input type="text" id="contato_complemento">
                </div>
            </div>
            
            <!-- Linha 6: Bairro, Cidade, UF, CEP -->
            <div style="display: grid; grid-template-columns: 1fr 1fr 70px 130px; gap: 8.4px; margin-bottom: 10.5px;">
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">Bairro</label>
                    <input type="text" id="contato_bairro">
                </div>
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">Cidade</label>
                    <input type="text" id="contato_cidade">
                </div>
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">UF</label>
                    <select id="contato_uf">
                        <option value="">--</option>
                        <option value="AC">AC</option>
                        <option value="AL">AL</option>
                        <option value="AP">AP</option>
                        <option value="AM">AM</option>
                        <option value="BA">BA</option>
                        <option value="CE">CE</option>
                        <option value="DF">DF</option>
                        <option value="ES">ES</option>
                        <option value="GO">GO</option>
                        <option value="MA">MA</option>
                        <option value="MT">MT</option>
                        <option value="MS">MS</option>
                        <option value="MG">MG</option>
                        <option value="PA">PA</option>
                        <option value="PB">PB</option>
                        <option value="PR">PR</option>
                        <option value="PE">PE</option>
                        <option value="PI">PI</option>
                        <option value="RJ">RJ</option>
                        <option value="RN">RN</option>
                        <option value="RS">RS</option>
                        <option value="RO">RO</option>
                        <option value="RR">RR</option>
                        <option value="SC">SC</option>
                        <option value="SP">SP</option>
                        <option value="SE">SE</option>
                        <option value="TO">TO</option>
                    </select>
                </div>
                <div>
                    <label style="font-size: 12px; font-weight: bold; margin-bottom: 3.5px; display: block;">CEP</label>
                    <input type="text" id="contato_cep" placeholder="99999-999">
                </div>
            </div>
            
            <div style="display: flex; gap: 10px; justify-content: flex-end;">
                <button type="button" onclick="fecharModalContato()" class="btn btn-secondary">Cancelar</button>
                <button type="submit" class="btn btn-primary">Salvar Contato</button>
            </div>
        </form>
    </div>
</div>

<script>
const idPesquisaEmpresa = <?= $id_pesquisa_empresa ?>;
const idEmpresa = <?= $pesquisa_empresa['id_empresa_fk'] ?>;
const departamentosModeloPesquisa = <?= json_encode(array_values(array_map(function ($d) {
    return $d['nome_departamento'];
}, $departamentos_modelo_pesquisa)), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) ?>;
const classificacoes = <?= json_encode($classificacoes, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) ?>;
const usuarioAtual = <?= json_encode($_SESSION['usuario_nome'] ?? '', JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) ?>;
const totalAbas = <?= $total_perguntas_principais ?>;
const AUTO_NEXT_SECONDS = 3;
let autoNextTimeoutId = null;
let autoNextIntervalId = null;
let autoNextTabIndex = null;
let autoNextEnabled = false;

function atualizarLabelsAutoNextToggle() {
    var labels = document.querySelectorAll('.auto-next-toggle');
    for (var i = 0; i < labels.length; i++) {
        labels[i].textContent = autoNextEnabled ? '⏸ Pausar auto' : '▶ Retomar auto';
    }
}

function mostrarAutoNextPausado(tabIdx) {
    var contadorEl = document.getElementById('autoNextCountdown_' + tabIdx);
    if (!contadorEl) return;
    contadorEl.style.display = 'inline';
    contadorEl.textContent = '• Autoavançar pausado';
}

function toggleAutoNextTemporario(event) {
    if (event) {
        event.preventDefault();
        event.stopPropagation();
    }

    autoNextEnabled = !autoNextEnabled;
    atualizarLabelsAutoNextToggle();

    if (!autoNextEnabled) {
        limparCountdownAutoNext();
        var idxPausado = obterIndiceAbaAtiva();
        if (idxPausado >= 0) {
            mostrarAutoNextPausado(idxPausado);
        }
        return;
    }

    var idxAtivo = obterIndiceAbaAtiva();
    if (idxAtivo >= 0) {
        var panelAtivo = document.getElementById('tabPanel_' + idxAtivo);
        if (panelAtivo && perguntaRespondida(panelAtivo)) {
            iniciarAutoNextCountdown(idxAtivo);
        } else {
            limparCountdownAutoNext();
        }
    }
}

function limparCountdownAutoNext() {
    if (autoNextTimeoutId) {
        clearTimeout(autoNextTimeoutId);
        autoNextTimeoutId = null;
    }
    if (autoNextIntervalId) {
        clearInterval(autoNextIntervalId);
        autoNextIntervalId = null;
    }
    autoNextTabIndex = null;

    var allCountdowns = document.querySelectorAll('.auto-next-countdown');
    for (var i = 0; i < allCountdowns.length; i++) {
        allCountdowns[i].style.display = 'none';
        allCountdowns[i].textContent = '';
    }
}

function obterIndiceAbaAtiva() {
    var btnAtivo = document.querySelector('.tab-btn.active');
    if (!btnAtivo) return -1;
    return parseInt(btnAtivo.getAttribute('data-tab') || '-1', 10);
}

function iniciarAutoNextCountdown(tabIdx) {
    if (!autoNextEnabled) {
        limparCountdownAutoNext();
        mostrarAutoNextPausado(tabIdx);
        return;
    }

    if (tabIdx < 0 || tabIdx >= totalAbas - 1) {
        limparCountdownAutoNext();
        return;
    }

    var panel = document.getElementById('tabPanel_' + tabIdx);
    if (!panel || !perguntaRespondida(panel)) {
        limparCountdownAutoNext();
        return;
    }

    limparCountdownAutoNext();
    autoNextTabIndex = tabIdx;

    var contadorEl = document.getElementById('autoNextCountdown_' + tabIdx);
    if (!contadorEl) return;

    var restante = AUTO_NEXT_SECONDS;
    contadorEl.style.display = 'inline';
    contadorEl.textContent = '• Próxima em ' + restante + 's';

    autoNextIntervalId = setInterval(function() {
        restante--;
        if (restante > 0 && autoNextTabIndex === tabIdx) {
            contadorEl.textContent = '• Próxima em ' + restante + 's';
        }
    }, 1000);

    autoNextTimeoutId = setTimeout(function() {
        if (autoNextTabIndex === tabIdx) {
            limparCountdownAutoNext();
            switchTab(tabIdx + 1);
        }
    }, AUTO_NEXT_SECONDS * 1000);
}

function tratarAutoNextPorEvento(target) {
    // Cronômetro/autoavanço desativado na tela do questionário
    return;

    if (!target || !target.name || target.name.indexOf('resposta_') !== 0) {
        return;
    }

    var tabAtual = obterIndiceAbaAtiva();
    if (tabAtual < 0) return;

    var panel = document.getElementById('tabPanel_' + tabAtual);
    if (!panel) return;

    if (!perguntaRespondida(panel)) {
        limparCountdownAutoNext();
        if (!autoNextEnabled) {
            mostrarAutoNextPausado(tabAtual);
        }
        return;
    }

    if (!autoNextEnabled) {
        limparCountdownAutoNext();
        mostrarAutoNextPausado(tabAtual);
        return;
    }

    iniciarAutoNextCountdown(tabAtual);
}

function switchTab(idx) {
    limparCountdownAutoNext();
    var panels = document.querySelectorAll('.tab-panel');
    var btns = document.querySelectorAll('.tab-btn');
    for (var i = 0; i < panels.length; i++) {
        panels[i].classList.remove('active');
        btns[i].classList.remove('active');
    }
    var panel = document.getElementById('tabPanel_' + idx);
    if (panel) panel.classList.add('active');
    if (btns[idx]) btns[idx].classList.add('active');
    window.scrollTo({ top: document.querySelector('.tabs-container').offsetTop - 10, behavior: 'smooth' });
}

function atualizarProgresso() {
    var respondidas = 0;
    var btns = document.querySelectorAll('.tab-btn');
    for (var i = 0; i < btns.length; i++) {
        var panel = document.getElementById('tabPanel_' + i);
        if (panel && perguntaRespondida(panel)) {
            respondidas++;
            btns[i].classList.add('answered');
        } else {
            btns[i].classList.remove('answered');
        }
    }
    var pct = totalAbas > 0 ? Math.round((respondidas / totalAbas) * 100) : 0;
    var fill = document.getElementById('progressBarFill');
    var text = document.getElementById('progressBarText');
    if (fill) fill.style.width = pct + '%';
    if (text) text.textContent = respondidas + '/' + totalAbas + ' (' + pct + '%)';
}

function resumirRespostaPanel(panel) {
    if (!panel) return 'Sem resposta';

    const mainGroup = panel.querySelector('.form-group');
    if (!mainGroup) return 'Sem resposta';

    const checkedRadios = mainGroup.querySelectorAll('input[type="radio"]:checked');
    if (checkedRadios.length > 0) {
        const textos = Array.from(checkedRadios).map((r) => {
            const val = String(r.value || '');
            if (val.includes('|')) {
                const partes = val.split('|');
                if (partes.length >= 2) partes.pop();
                return partes.join('|').trim();
            }
            return val.trim();
        }).filter(Boolean);
        if (textos.length > 0) return textos.join(', ');
    }

    const checkedChecks = mainGroup.querySelectorAll('input[type="checkbox"]:checked');
    if (checkedChecks.length > 0) {
        const textos = Array.from(checkedChecks).map((c) => {
            const val = String(c.value || '');
            if (val.includes('|')) {
                const partes = val.split('|');
                return (partes[0] || '').trim();
            }
            return val.trim();
        }).filter(Boolean);
        if (textos.length > 0) return textos.join(', ');
    }

    const textInputs = mainGroup.querySelectorAll('textarea, input[type="text"], input[type="tel"], input[type="date"], input[type="time"], input[type="number"]');
    const respostas = [];
    textInputs.forEach((inp) => {
        const v = String(inp.value || '').trim();
        if (!v) return;

        if (inp.name && inp.name.includes('[') && inp.name.includes(']')) {
            const ini = inp.name.indexOf('[');
            const fim = inp.name.indexOf(']', ini + 1);
            const chave = ini >= 0 && fim > ini ? inp.name.substring(ini + 1, fim) : 'Campo';
            respostas.push(chave + ': ' + v);
        } else {
            respostas.push(v);
        }
    });

    if (respostas.length > 0) {
        return respostas.join(' | ');
    }

    return 'Sem resposta';
}

function atualizarTooltipsAbas() {
    const btns = document.querySelectorAll('.tab-btn');
    btns.forEach((btn, idx) => {
        const panel = document.getElementById('tabPanel_' + idx);
        const pergunta = String(btn.getAttribute('data-question') || '').trim();
        const resposta = resumirRespostaPanel(panel);
        btn.title = 'Pergunta: ' + (pergunta || '-') + '\nResposta: ' + resposta;
    });
}

function perguntaRespondida(panel) {
    var radios = panel.querySelectorAll('input[type="radio"]');
    var checkboxes = panel.querySelectorAll('input[type="checkbox"]');
    var textas = panel.querySelectorAll('textarea, input[type="text"]');
    
    for (var i = 0; i < radios.length; i++) {
        if (radios[i].checked && radios[i].closest('.form-group') === panel.querySelector('.form-group')) return true;
    }
    for (var i = 0; i < checkboxes.length; i++) {
        if (checkboxes[i].checked && checkboxes[i].closest('.form-group') === panel.querySelector('.form-group')) return true;
    }
    for (var i = 0; i < textas.length; i++) {
        if (textas[i].value.trim() && textas[i].closest('.form-group') === panel.querySelector('.form-group')) return true;
    }
    return false;
}

function mostrarSubPerguntas(perguntaId, opcaoIdx) {
    var subs = document.querySelectorAll('.sub-pergunta-condicional[data-pai="' + perguntaId + '"]');
    for (var i = 0; i < subs.length; i++) {
        var gatilho = parseInt(subs[i].getAttribute('data-gatilho'));
        if (gatilho === opcaoIdx) {
            subs[i].classList.add('visible');
        } else {
            subs[i].classList.remove('visible');
        }
    }
}

function inicializarSubPerguntas() {
    var radiosChecked = document.querySelectorAll('input[type="radio"][data-pergunta-id]:checked');
    for (var i = 0; i < radiosChecked.length; i++) {
        var pid = radiosChecked[i].getAttribute('data-pergunta-id');
        var oidx = parseInt(radiosChecked[i].getAttribute('data-opcao-idx'));
        mostrarSubPerguntas(parseInt(pid), oidx);
    }
}

document.addEventListener('DOMContentLoaded', function() {
    inicializarSubPerguntas();
    atualizarProgresso();
    atualizarTooltipsAbas();
    limparCountdownAutoNext();
    atualizarLabelsAutoNextToggle();
});

function calcularNotaTotal() {
    let total = 0;
    const form = document.getElementById('formPesquisa');
    if (!form) return 0;
    const formData = new FormData(form);
    for (let [name, value] of formData.entries()) {
        if (name.startsWith('resposta_')) {
            const valStr = String(value);
            if (valStr.includes('|')) {
                const parts = valStr.split('|');
                const nota = parseFloat(parts[parts.length - 1]);
                if (!isNaN(nota)) total += nota;
            }
        }
    }

    const camposPontuados = form.querySelectorAll('input[data-campo-nota]');
    camposPontuados.forEach((input) => {
        const valor = String(input.value || '').trim();
        if (valor !== '') {
            const notaCampo = parseFloat(input.dataset.campoNota || '0');
            if (!isNaN(notaCampo)) total += notaCampo;
        }
    });

    return total;
}

function atualizarNotaClassificacao() {
    const total = calcularNotaTotal();
    const notaEl = document.getElementById('nota_total_valor');
    const badgeEl = document.getElementById('classificacao_badge');
    if (notaEl) notaEl.textContent = total;
    if (badgeEl && typeof classificacoes !== 'undefined') {
        let classif = { classificacao: '-', cor: '#cccccc' };
        for (const c of classificacoes) {
            const min = parseFloat(c.faixa_minima);
            const max = parseFloat(c.faixa_maxima);
            if (total >= min && total <= max) {
                classif = c;
                break;
            }
        }
        badgeEl.textContent = classif.classificacao;
        badgeEl.style.backgroundColor = classif.cor;
    }
}

function preencherEntrevistaSeVazio() {
    const q = document.getElementById('quem_entrevistou'), d = document.getElementById('data_entrevista'), h = document.getElementById('hora_entrevista');
    if (q && !q.value.trim() && typeof usuarioAtual !== 'undefined') q.value = usuarioAtual;
    if (d && !d.value) d.value = new Date().toISOString().split('T')[0];
    if (h && !h.value) {
        const n = new Date();
        h.value = n.getHours().toString().padStart(2, '0') + ':' + n.getMinutes().toString().padStart(2, '0');
    }
}

function preencherEntrevistaComAtual() {
    const q = document.getElementById('quem_entrevistou');
    const d = document.getElementById('data_entrevista');
    const h = document.getElementById('hora_entrevista');
    const agora = new Date();

    if (q) q.value = (typeof usuarioAtual !== 'undefined' ? String(usuarioAtual || '') : '').trim();
    if (d) d.value = agora.toISOString().split('T')[0];
    if (h) h.value = agora.getHours().toString().padStart(2, '0') + ':' + agora.getMinutes().toString().padStart(2, '0');
}

// Função para copiar endereço da empresa (dados cadastrais da pesquisa) para o contato
function copiarEnderecoEmpresa() {
    const checkbox = document.getElementById('contato_endereco_mesmo');
    if (!checkbox) return;

    const endereco = document.getElementById('contato_endereco');
    const numero = document.getElementById('contato_numero');
    const complemento = document.getElementById('contato_complemento');
    const bairro = document.getElementById('contato_bairro');
    const cidade = document.getElementById('contato_cidade');
    const uf = document.getElementById('contato_uf');
    const cep = document.getElementById('contato_cep');
    if (!endereco || !numero || !bairro || !cidade || !uf || !cep) return;

    if (checkbox.checked) {
        // Buscar os dados cadastrais da empresa no formulário da pesquisa
        const form = document.getElementById('formPesquisa');
        if (form) {
            const ruaEl = form.querySelector('input[name="empresa_rua"]');
            const numEl = form.querySelector('input[name="empresa_numero"]');
            const complEl = form.querySelector('input[name="empresa_complemento"]');
            const bairroEl = form.querySelector('input[name="empresa_bairro"]');
            const cidadeEl = form.querySelector('input[name="empresa_cidade"]');
            const ufEl = form.querySelector('select[name="empresa_uf"]');
            const cepEl = form.querySelector('input[name="empresa_cep"]');
            
            endereco.value = ruaEl ? ruaEl.value : '';
            numero.value = numEl ? numEl.value : '';
            complemento.value = complEl ? complEl.value : '';
            bairro.value = bairroEl ? bairroEl.value : '';
            cidade.value = cidadeEl ? cidadeEl.value : '';
            uf.value = ufEl ? ufEl.value : '';
            cep.value = cepEl ? cepEl.value : '';
        }
    } else {
        endereco.value = '';
        numero.value = '';
        complemento.value = '';
        bairro.value = '';
        cidade.value = '';
        uf.value = '';
        cep.value = '';
    }
}

// Track radio button selections to allow deselection
const radioStates = {};

function setupRadioDeselection() {
    const radios = document.querySelectorAll('input[type="radio"]');
    radios.forEach(radio => {
        const name = radio.name;
        if (!radioStates[name]) {
            radioStates[name] = null;
        }
        
        radio.addEventListener('click', function(e) {
            if (radioStates[name] === this.value) {
                this.checked = false;
                radioStates[name] = null;
                e.stopPropagation();
            } else {
                radioStates[name] = this.value;
            }
        });
        
        radio.addEventListener('change', function() {
            radioStates[name] = this.value;
        });
    });
}

// Allow checkbox deselection by clicking the label
function setupCheckboxToggle() {
    const checkboxes = document.querySelectorAll('input[type="checkbox"][name^="resposta_"]');
    checkboxes.forEach(checkbox => {
        const label = checkbox.closest('label');
        if (label) {
            label.style.cursor = 'pointer';
            label.addEventListener('click', function(e) {
                if (e.target !== checkbox) {
                    checkbox.checked = !checkbox.checked;
                }
            });
        }
    });
}

// Funções do Modal de Contato
function abrirModalNovoContato() {
    var modal = document.getElementById('modalContato');
    if (!modal) return;
    modal.style.display = 'block';
    var titulo = document.getElementById('modalContatoTitulo');
    if (titulo) titulo.textContent = 'Novo Contato';
    var cid = document.getElementById('contato_id');
    if (cid) cid.value = '';
    var form = document.getElementById('formContato');
    if (form) form.reset();
    document.getElementById('contato_endereco_mesmo').checked = false;
}

function garantirOpcaoArea(valorArea) {
    const selectArea = document.getElementById('contato_area');
    if (!selectArea) return;

    const valor = String(valorArea || '').trim();
    if (!valor) return;

    let existe = false;
    for (let i = 0; i < selectArea.options.length; i++) {
        if (String(selectArea.options[i].value).trim().toLowerCase() === valor.toLowerCase()) {
            existe = true;
            break;
        }
    }

    if (!existe) {
        const opt = document.createElement('option');
        opt.value = valor;
        opt.textContent = valor;
        selectArea.appendChild(opt);
    }
}

function fecharModalContato() {
    document.getElementById('modalContato').style.display = 'none';
}

function editarContato(id) {
    // Buscar dados do contato
    fetch('buscar_contato.php?id=' + id)
    .then(response => response.json())
    .then(data => {
        if (data.success) {
            const contato = data.contato;
            
            // Atualizar título do modal
            document.getElementById('modalContatoTitulo').textContent = 'Editar Contato - ID: ' + contato.idcontatos_empresa;
            
            // Preencher o formulário com os dados do contato
            document.getElementById('contato_id').value = contato.idcontatos_empresa;
            document.getElementById('contato_nome').value = contato.nome || '';
            document.getElementById('contato_sobrenome').value = contato.sobrenome || '';
            document.getElementById('contato_cargo').value = contato.cargo || '';
            document.getElementById('contato_ddd').value = contato.ddd || '';
            document.getElementById('contato_telefone').value = contato.tel || '';
            document.getElementById('contato_celular').value = contato.celular || '';
            document.getElementById('contato_ramal').value = contato.ramal || '';
            document.getElementById('contato_email').value = contato.email || '';
            document.getElementById('contato_linkedin').value = contato.linkedin || '';
            document.getElementById('contato_status').value = contato.idcontato_status || '';
            garantirOpcaoArea(contato.depto || '');
            document.getElementById('contato_area').value = contato.depto || '';
            document.getElementById('contato_sexo').value = contato.sexo || '';
            document.getElementById('contato_entrevistado').value = contato.entrevistado || '';
            document.getElementById('contato_endereco').value = contato.endereco || '';
            document.getElementById('contato_numero').value = contato.numero || '';
            document.getElementById('contato_complemento').value = contato.complemento || '';
            document.getElementById('contato_bairro').value = contato.bairro || '';
            document.getElementById('contato_cidade').value = contato.cidade || '';
            document.getElementById('contato_uf').value = contato.UF || contato.uf || '';
            document.getElementById('contato_cep').value = contato.cep || '';
            
            // Abrir modal
            document.getElementById('modalContato').style.display = 'block';
        } else {
            alert('❌ Erro ao carregar contato: ' + data.message);
        }
    })
    .catch(error => {
        alert('❌ Erro ao buscar contato: ' + error.message);
    });
}

function recarregarContatos() {
    fetch('listar_contatos.php?id_empresa=' + idEmpresa + '&id_pesquisa_empresa=' + idPesquisaEmpresa)
    .then(response => response.json())
    .then(data => {
        if (data.success) {
            const tbody = document.getElementById('contatos-tbody');
            if (!tbody) return;
            
            if (data.contatos.length === 0) {
                tbody.innerHTML = '<tr><td colspan="11" style="text-align: center; padding: 20px; color: #999;">Nenhum contato cadastrado.</td></tr>';
                return;
            }
            
            let html = '';
            data.contatos.forEach(function(c) {
                html += '<tr data-contato-id="' + c.idcontatos_empresa + '">';
                html += '<td>' + escapeHtml(c.status_contato_nome || '-') + '</td>';
                html += '<td>' + escapeHtml(c.depto || '-') + '</td>';
                html += '<td>' + escapeHtml(c.sexo || '-') + '</td>';
                html += '<td>' + escapeHtml(c.nome || '') + '</td>';
                html += '<td>' + escapeHtml(c.sobrenome || '-') + '</td>';
                html += '<td>' + escapeHtml(c.cargo || '-') + '</td>';
                html += '<td>' + escapeHtml(c.endereco || '-') + '</td>';
                html += '<td>' + escapeHtml(c.ddd || '-') + '</td>';
                html += '<td>' + escapeHtml(c.telefone || '-') + '</td>';
                html += '<td>' + escapeHtml(c.celular || '-') + '</td>';
                html += '<td>';
                html += '<button type="button" class="btn-acao-tabela" onclick="editarContato(' + c.idcontatos_empresa + ')" title="Editar">✏️</button>';
                html += '<button type="button" class="btn-acao-tabela" onclick="excluirContato(' + c.idcontatos_empresa + ')" title="Excluir">🗑️</button>';
                html += '</td>';
                html += '</tr>';
            });
            tbody.innerHTML = html;
        }
    })
    .catch(function() {});
}

function escapeHtml(text) {
    var div = document.createElement('div');
    div.appendChild(document.createTextNode(text));
    return div.innerHTML;
}

function excluirContato(id) {
    if (confirm('Deseja realmente excluir este contato?')) {
        fetch('excluir_contato.php', {
            method: 'POST',
            headers: {'Content-Type': 'application/x-www-form-urlencoded'},
            body: 'id=' + id
        })
        .then(response => response.json())
        .then(data => {
            if (data.success) {
                // Remover a linha da tabela sem recarregar
                const row = document.querySelector('tr[data-contato-id="' + id + '"]');
                if (row) row.remove();
                
                // Verificar se ficou vazio
                const tbody = document.getElementById('contatos-tbody');
                if (tbody && tbody.querySelectorAll('tr[data-contato-id]').length === 0) {
                    tbody.innerHTML = '<tr><td colspan="11" style="text-align: center; padding: 20px; color: #999;">Nenhum contato cadastrado.</td></tr>';
                }
            } else {
                alert('❌ Erro ao excluir: ' + data.message);
            }
        })
        .catch(error => {
            alert('❌ Erro: ' + error.message);
        });
    }
}

function salvarContato(event) {
    event.preventDefault();
    
    const contatoId = document.getElementById('contato_id').value;
    const nome = document.getElementById('contato_nome').value;
    
    if (!nome.trim()) {
        alert('⚠️ Nome é obrigatório!');
        return;
    }
    
    const formData = new FormData();
    formData.append('id_empresa', idEmpresa);
    formData.append('id_pesquisa_empresa', idPesquisaEmpresa);
    formData.append('contato_id', contatoId);
    formData.append('nome', document.getElementById('contato_nome').value);
    formData.append('sobrenome', document.getElementById('contato_sobrenome').value);
    formData.append('cargo', document.getElementById('contato_cargo').value);
    formData.append('ddd', document.getElementById('contato_ddd').value);
    formData.append('telefone', document.getElementById('contato_telefone').value);
    formData.append('celular', document.getElementById('contato_celular').value);
    formData.append('email', document.getElementById('contato_email').value);
    formData.append('ramal', document.getElementById('contato_ramal').value);
    formData.append('linkedin', document.getElementById('contato_linkedin').value);
    formData.append('status', document.getElementById('contato_status').value);
    formData.append('area', document.getElementById('contato_area').value);
    formData.append('sexo', document.getElementById('contato_sexo').value);
    formData.append('entrevistado', document.getElementById('contato_entrevistado').value);
    formData.append('endereco', document.getElementById('contato_endereco').value);
    formData.append('numero', document.getElementById('contato_numero').value);
    formData.append('complemento', document.getElementById('contato_complemento').value);
    formData.append('bairro', document.getElementById('contato_bairro').value);
    formData.append('cidade', document.getElementById('contato_cidade').value);
    formData.append('uf', document.getElementById('contato_uf').value);
    formData.append('cep', document.getElementById('contato_cep').value);
    
    fetch('salvar_contato.php', {
        method: 'POST',
        body: formData
    })
    .then(response => response.json())
    .then(data => {
        if (data.success) {
            fecharModalContato();
            recarregarContatos();
        } else {
            alert('❌ Erro: ' + data.message);
        }
    })
    .catch(error => {
        alert('❌ Erro ao salvar contato: ' + error.message);
    });
}

// Fechar modal clicando fora
window.onclick = function(event) {
    const modal = document.getElementById('modalContato');
    if (event.target === modal) {
        modal.style.display = 'none';
    }
}

// Initialize on page load
document.addEventListener('DOMContentLoaded', function() {
    setupRadioDeselection();
    setupCheckboxToggle();
    
    // Preencher campos de entrevista e calcular nota ao carregar a tela
    preencherEntrevistaSeVazio();
    atualizarNotaClassificacao();
    
    const observacoesTextarea = document.getElementById('observacoes_gerais');
    const contadorSpan = document.getElementById('contador_caracteres');
    
    if (observacoesTextarea && contadorSpan) {
        // Inicializar contador com valor atual
        contadorSpan.textContent = observacoesTextarea.value.length;
        
        // Atualizar contador em tempo real
        observacoesTextarea.addEventListener('input', function() {
            contadorSpan.textContent = this.value.length;
        });
    }
    
    // Limpar parâmetros extras da URL se existirem
    const urlParams = new URLSearchParams(window.location.search);
    if (urlParams.has('msg')) {
        window.history.replaceState({}, document.title, window.location.pathname + '?id=' + idPesquisaEmpresa);
    }
    
    const form = document.getElementById('formPesquisa');
    let isDirty = false;

    if (form) {
        form.addEventListener('click', function() {
            preencherEntrevistaSeVazio();
        });

        form.addEventListener('input', function() { isDirty = true; });
        form.addEventListener('change', function(e) { 
            isDirty = true; 
            // Recalcular nota imediatamente ao trocar resposta
            if (e.target.name && (e.target.name.startsWith('resposta_') || e.target.name.endsWith('[]'))) {
                atualizarNotaClassificacao();
            }
            atualizarTooltipsAbas();
            tratarAutoNextPorEvento(e.target);
        });

        form.addEventListener('input', function(e) {
            isDirty = true;
            atualizarTooltipsAbas();
            tratarAutoNextPorEvento(e.target);
        });

        form.addEventListener('submit', function() {
            limparCountdownAutoNext();
            preencherEntrevistaComAtual();
            isDirty = false;
        });
    }

    // Garantir que o select de área tenha opções do modelo atual, mesmo após manipulações dinâmicas.
    if (Array.isArray(departamentosModeloPesquisa)) {
        departamentosModeloPesquisa.forEach((dep) => garantirOpcaoArea(dep));
    }

    window.addEventListener('beforeunload', function(e) {
        if (!isDirty) return;
        // Padrão para navegadores modernos exibirem aviso de alterações não salvas
        e.preventDefault();
        e.returnValue = '';
    });
});
</script>

</body>
</html>
