<?php
session_start();

// Verificar se o usuário está logado
if (!isset($_SESSION['logado'])) {
    header('Location: login.php');
    exit;
}

require_once 'conexao.php';

$respostaId = (int)$_GET['id'];

// Obter o tenant_id do usuário logado
$tenant_id = $_SESSION['tenant_id'] ?? null;

// Buscar o nome da empresa (tenant) e logo no banco de dados
$nome_empresa = '';
$logo_path = '';
if ($tenant_id) {
    $sql_tenant = "SELECT nome, logo_path FROM tenants WHERE id = ?";
    $stmt_tenant = $conn->prepare($sql_tenant);
    $stmt_tenant->bind_param("i", $tenant_id);
    $stmt_tenant->execute();
    $result_tenant = $stmt_tenant->get_result();

    if ($result_tenant->num_rows > 0) {
        $tenant = $result_tenant->fetch_assoc();
        $nome_empresa = $tenant['nome'];
        $logo_path = $tenant['logo_path'] ?? '';
    }
    $stmt_tenant->close();
}

// Buscar resposta do formulário com tipo
$sqlResposta = "SELECT rf.*, f.nome as formulario_nome, f.tipo as formulario_tipo
               FROM respostas_formulario rf
               JOIN formularios f ON rf.formulario_id = f.id
               WHERE rf.id = ?";
$stmtResposta = $conn->prepare($sqlResposta);
$stmtResposta->bind_param("i", $respostaId);
$stmtResposta->execute();
$resposta = $stmtResposta->get_result()->fetch_assoc();
$stmtResposta->close();

// Buscar nome do cliente
$nome_cliente = 'Formulário não vinculado a um cliente';
if (isset($resposta['cliente_id']) && !empty($resposta['cliente_id'])) {
    $clienteId = (int)$resposta['cliente_id'];
    $sql_cliente = "SELECT Nome_Cliente FROM clientes WHERE id = ? AND tenant_id = ?";
    $stmt_cliente = $conn->prepare($sql_cliente);
    $stmt_cliente->bind_param("ii", $clienteId, $tenant_id);
    $stmt_cliente->execute();
    $result_cliente = $stmt_cliente->get_result();
    
    if ($result_cliente->num_rows > 0) {
        $cliente = $result_cliente->fetch_assoc();
        $nome_cliente = $cliente['Nome_Cliente'] ?? 'Nome não encontrado';
    }
    $stmt_cliente->close();
}

// DETERMINAR QUAL ESTRUTURA DE RESPOSTAS USAR
// Verificar se existem respostas na tabela 'respostas'
$sqlVerificaRespostas = "SELECT COUNT(*) as total FROM respostas WHERE resposta_formulario_id = ?";
$stmtVerifica = $conn->prepare($sqlVerificaRespostas);
$stmtVerifica->bind_param("i", $respostaId);
$stmtVerifica->execute();
$resultVerifica = $stmtVerifica->get_result()->fetch_assoc();
$stmtVerifica->close();

$usarEstruturaNova = ($resultVerifica['total'] > 0);

error_log("Estrutura de respostas: " . ($usarEstruturaNova ? 'NOVA (respostas)' : 'ANTIGA (respostas_perguntas)'));

if ($usarEstruturaNova) {
    // ESTRUTURA NOVA: Usando tabela 'respostas'
    $sqlPerguntasRespostas = "
        SELECT 
            p.id as pergunta_id,
            p.texto as pergunta_texto,
            p.tipo as pergunta_tipo,
            p.parent_resposta_id,
            p.parent_pergunta_id,
            p.ordem,
            r.opcao_id,
            r.resposta_texto,
            orp.texto as opcao_texto,
            parent_opcao.id as parent_opcao_id,
            parent_opcao.texto as parent_opcao_texto,
            parent_pergunta.id as parent_pergunta_real_id,
            parent_pergunta.texto as parent_pergunta_texto
        FROM perguntas p
        LEFT JOIN respostas r ON p.id = r.pergunta_id AND r.resposta_formulario_id = ?
        LEFT JOIN opcoes_resposta orp ON orp.id = r.opcao_id
        LEFT JOIN opcoes_resposta parent_opcao ON parent_opcao.id = p.parent_resposta_id
        LEFT JOIN perguntas parent_pergunta ON parent_pergunta.id = p.parent_pergunta_id
        WHERE p.formulario_id = ?
        ORDER BY p.ordem, p.id";
} else {
    // ESTRUTURA ANTIGA: Usando tabela 'respostas_perguntas'
    $sqlPerguntasRespostas = "
        SELECT 
            p.id as pergunta_id,
            p.texto as pergunta_texto,
            p.tipo as pergunta_tipo,
            p.parent_resposta_id,
            p.parent_pergunta_id,
            p.ordem,
            rp.resposta_texto,
            orp.texto as opcao_texto,
            orp.id as opcao_id,
            parent_opcao.id as parent_opcao_id,
            parent_opcao.texto as parent_opcao_texto,
            parent_pergunta.id as parent_pergunta_real_id,
            parent_pergunta.texto as parent_pergunta_texto
        FROM perguntas p
        LEFT JOIN respostas_perguntas rp ON p.id = rp.pergunta_id AND rp.resposta_formulario_id = ?
        LEFT JOIN opcoes_resposta orp ON orp.id = rp.resposta_texto AND rp.resposta_texto REGEXP '^[0-9]+$'
        LEFT JOIN opcoes_resposta parent_opcao ON parent_opcao.id = p.parent_resposta_id
        LEFT JOIN perguntas parent_pergunta ON parent_pergunta.id = p.parent_pergunta_id
        WHERE p.formulario_id = ?
        ORDER BY p.ordem, p.id";
}

$stmtPerguntas = $conn->prepare($sqlPerguntasRespostas);
$stmtPerguntas->bind_param("ii", $respostaId, $resposta['formulario_id']);
$stmtPerguntas->execute();
$perguntasRespostas = $stmtPerguntas->get_result()->fetch_all(MYSQLI_ASSOC);
$stmtPerguntas->close();

// DEBUG: Ver dados brutos
error_log("=== DEBUG PERGUNTAS RESPOSTAS ===");
error_log("Tipo do formulário: " . ($resposta['formulario_tipo'] ?? 'Não definido'));
error_log("Estrutura: " . ($usarEstruturaNova ? 'NOVA' : 'ANTIGA'));
error_log("Total de registros: " . count($perguntasRespostas));
foreach ($perguntasRespostas as $pr) {
    error_log("Pergunta ID: " . $pr['pergunta_id'] . " - " . $pr['pergunta_texto']);
    error_log("  Parent Pergunta ID: " . $pr['parent_pergunta_id'] . " - Parent Resposta ID: " . $pr['parent_resposta_id']);
    error_log("  Parent Pergunta Real ID: " . $pr['parent_pergunta_real_id'] . " - Parent Pergunta Texto: " . $pr['parent_pergunta_texto']);
    if ($usarEstruturaNova) {
        error_log("  Opção ID: " . $pr['opcao_id'] . " - Resposta Texto: " . $pr['resposta_texto'] . " - Opção Texto: " . $pr['opcao_texto']);
    } else {
        error_log("  Resposta: " . $pr['resposta_texto'] . " - Opção: " . $pr['opcao_texto']);
    }
}

// Buscar TODAS as opções selecionadas nesta resposta do formulário
if ($usarEstruturaNova) {
    $sqlOpcoesSelecionadas = "
        SELECT r.opcao_id
        FROM respostas r
        WHERE r.resposta_formulario_id = ? 
        AND r.opcao_id IS NOT NULL";
} else {
    $sqlOpcoesSelecionadas = "
        SELECT rp.resposta_texto as opcao_id
        FROM respostas_perguntas rp
        WHERE rp.resposta_formulario_id = ? 
        AND rp.resposta_texto REGEXP '^[0-9]+$'";
}

$stmtOpcoes = $conn->prepare($sqlOpcoesSelecionadas);
$stmtOpcoes->bind_param("i", $respostaId);
$stmtOpcoes->execute();
$opcoesSelecionadas = $stmtOpcoes->get_result()->fetch_all(MYSQLI_ASSOC);
$stmtOpcoes->close();

// Criar array simples de opções selecionadas (normalizado para inteiros)
$opcoesSelecionadasIds = [];
foreach ($opcoesSelecionadas as $opcao) {
    if (isset($opcao['opcao_id']) && is_numeric($opcao['opcao_id'])) {
        $opcoesSelecionadasIds[] = (int) $opcao['opcao_id'];
    }
}
// Remove duplicatas e reindexa
$opcoesSelecionadasIds = array_values(array_unique($opcoesSelecionadasIds));

error_log("Opções selecionadas IDs NORMALIZADAS: " . implode(', ', $opcoesSelecionadasIds));

// FUNÇÃO AUXILIAR RECURSIVA
function processarPerguntasRecursivamente(&$perguntasOrganizadas, $perguntasAgrupadas, $opcoesSelecionadasIds, 
                                        $parentRespostaIds = null, $nivel = 0) {
    
    if ($nivel > 10) { // Limite de segurança para evitar loops infinitos
        error_log("Limite de recursão atingido (nível $nivel)");
        return;
    }
    
    $perguntasParaProcessar = [];
    
    // Encontrar perguntas para este nível
    foreach ($perguntasAgrupadas as $pergunta) {
        $parentRespostaId = (int)$pergunta['parent_resposta_id'];
        
        if ($parentRespostaIds === null) {
            // Primeiro nível: perguntas sem parent_resposta_id
            if ($parentRespostaId === 0 && empty($pergunta['parent_pergunta_id'])) {
                $pergunta['nivel'] = $nivel;
                $perguntasParaProcessar[] = $pergunta;
                error_log("Nível $nivel - Pergunta RAIZ: ID " . $pergunta['pergunta_id'] . " - " . $pergunta['pergunta_texto']);
            }
        } else {
            // Perguntas condicionais: dependem de uma opção selecionada
            if (in_array($parentRespostaId, $parentRespostaIds)) {
                $pergunta['nivel'] = $nivel;
                $perguntasParaProcessar[] = $pergunta;
                error_log("Nível $nivel - Pergunta CONDICIONAL: ID " . $pergunta['pergunta_id'] . 
                         " - Ativada pela opção: " . $parentRespostaId);
            }
        }
    }
    
    // Ordenar perguntas por ordem
    usort($perguntasParaProcessar, function($a, $b) {
        return ($a['ordem'] ?? 0) - ($b['ordem'] ?? 0);
    });
    
    // Adicionar perguntas processadas ao resultado
    foreach ($perguntasParaProcessar as $pergunta) {
        $perguntasOrganizadas[] = $pergunta;
        
        // Coletar opções selecionadas para esta pergunta
        $opcoesSelecionadasEstaPergunta = [];
        foreach ($pergunta['opcoes_selecionadas'] as $opcao) {
            if (isset($opcao['id'])) {
                $opcoesSelecionadasEstaPergunta[] = (int)$opcao['id'];
            }
        }
        
        // Se esta pergunta tem opções selecionadas, processar seus filhos
        if (!empty($opcoesSelecionadasEstaPergunta)) {
            error_log("  Pergunta ID " . $pergunta['pergunta_id'] . 
                     " tem opções selecionadas: " . implode(', ', $opcoesSelecionadasEstaPergunta));
            
            // Processar perguntas do próximo nível recursivamente
            processarPerguntasRecursivamente(
                $perguntasOrganizadas, 
                $perguntasAgrupadas, 
                $opcoesSelecionadasIds,
                $opcoesSelecionadasEstaPergunta,
                $nivel + 1
            );
        }
    }
}

// FUNÇÃO RECURSIVA CORRIGIDA - Suporta níveis ilimitados
function organizarPerguntasHierarquicamente($perguntas, $opcoesSelecionadasIds, $usarEstruturaNova = false) {
    // Primeiro, agrupar por pergunta_id para consolidar dados
    $perguntasAgrupadas = [];
    foreach ($perguntas as $item) {
        $perguntaId = $item['pergunta_id'];
        
        if (!isset($perguntasAgrupadas[$perguntaId])) {
            $perguntasAgrupadas[$perguntaId] = [
                'pergunta_id' => $item['pergunta_id'],
                'pergunta_texto' => $item['pergunta_texto'],
                'pergunta_tipo' => $item['pergunta_tipo'],
                'parent_resposta_id' => $item['parent_resposta_id'],
                'parent_pergunta_id' => $item['parent_pergunta_id'],
                'parent_pergunta_real_id' => $item['parent_pergunta_real_id'],
                'parent_pergunta_texto' => $item['parent_pergunta_texto'],
                'ordem' => $item['ordem'],
                'respostas' => [],
                'opcoes_selecionadas' => [],
                'parent_opcao_texto' => $item['parent_opcao_texto']
            ];
        }
        
        // Adicionar resposta se existir
        if ($usarEstruturaNova) {
            if (!empty($item['opcao_id'])) {
                $perguntasAgrupadas[$perguntaId]['opcoes_selecionadas'][] = [
                    'id' => $item['opcao_id'],
                    'texto' => $item['opcao_texto'] ?? 'Opção ' . $item['opcao_id']
                ];
            }
            if (!empty($item['resposta_texto'])) {
                $perguntasAgrupadas[$perguntaId]['respostas'][] = $item['resposta_texto'];
            }
        } else {
            if (!empty($item['resposta_texto'])) {
                if (is_numeric($item['resposta_texto']) && !empty($item['opcao_texto'])) {
                    $perguntasAgrupadas[$perguntaId]['opcoes_selecionadas'][] = [
                        'id' => $item['resposta_texto'],
                        'texto' => $item['opcao_texto']
                    ];
                } elseif (!is_numeric($item['resposta_texto'])) {
                    $perguntasAgrupadas[$perguntaId]['respostas'][] = $item['resposta_texto'];
                }
            }
        }
    }
    
    // DEBUG: Ver todas as perguntas agrupadas
    error_log("=== PERGUNTAS AGRUPADAS ===");
    foreach ($perguntasAgrupadas as $p) {
        error_log("Pergunta ID: " . $p['pergunta_id'] . 
                 " - Texto: " . substr($p['pergunta_texto'], 0, 50) . 
                 " - Parent Pergunta: " . $p['parent_pergunta_id'] . 
                 " - Parent Resposta: " . $p['parent_resposta_id'] .
                 " - Parent Pergunta Real: " . $p['parent_pergunta_real_id']);
    }
    
    // NOVA ABORDAGEM RECURSIVA
    $perguntasOrganizadas = [];
    
    // Iniciar processamento recursivo
    processarPerguntasRecursivamente($perguntasOrganizadas, $perguntasAgrupadas, $opcoesSelecionadasIds);
    
    // DEBUG: Ver resultado final
    error_log("=== RESULTADO FINAL ORGANIZADO ===");
    error_log("Total de perguntas organizadas: " . count($perguntasOrganizadas));
    foreach ($perguntasOrganizadas as $index => $p) {
        error_log(($index + 1) . ". Nível " . ($p['nivel'] ?? 0) . " - Pergunta ID: " . $p['pergunta_id'] . 
                 " - " . $p['pergunta_texto']);
    }
    
    return $perguntasOrganizadas;
}

// Organizar perguntas
$perguntas = organizarPerguntasHierarquicamente($perguntasRespostas, $opcoesSelecionadasIds, $usarEstruturaNova);

// DEBUG FINAL - VERIFICAR SE OS NÍVEIS ESTÃO CORRETOS
error_log("=== VERIFICAÇÃO FINAL DOS NÍVEIS ===");
if (empty($perguntas)) {
    error_log("NENHUMA PERGUNTA ENCONTRADA!");
} else {
    foreach ($perguntas as $index => $p) {
        error_log(($index + 1) . ". Nível " . ($p['nivel'] ?? 0) . ": " . $p['pergunta_texto']);
        if ($p['parent_resposta_id']) {
            error_log("   Ativada pela opção ID: " . $p['parent_resposta_id']);
        }
    }
}

// Exibir mensagens apenas em requisições não-AJAX
if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !isset($_POST['ajax'])) {
    if (isset($_SESSION['mensagem'])) {
        echo '<div class="mensagem-flutuante" id="mensagemFlutuante">'
           . htmlspecialchars($_SESSION['mensagem'])
           . '</div>';
        
        unset($_SESSION['mensagem']);
        
        echo '<script>
                setTimeout(function() {
                    const msg = document.getElementById("mensagemFlutuante");
                    if (msg) msg.style.display = "none";
                }, 3000);
              </script>';
    }
}
?>

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>SON - Visualizar Formulário Respondido</title>
    <meta name="csrf-token" content="<?= htmlspecialchars($_SESSION['csrf_token']) ?>">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
    <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
    
    <!-- Bibliotecas para PDF -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf-autotable/3.5.25/jspdf.plugin.autotable.min.js"></script>
    
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            background-color: #f5f5f5;
        }

        .header-fixed {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            background-color: #f5f5f5;
            padding: 15px 20px;
            z-index: 1000;
            box-shadow: 0 2px 5px rgba(0,0,0,0.1);
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        
        .header-fixed img {
            height: 50px;
            margin-right: 15px;
        }
        
        .header-fixed h2 {
            margin: 0;
            flex-grow: 1;
            text-align: center;
        }
        
        .sidebar {
            position: fixed;
            top: 80px;
            left: 0;
            bottom: 0;
            width: 250px;
            background-color: #2c3e50;
            color: white;
            padding-top: 20px;
            overflow-y: auto;
            z-index: 900;
        }
        
        .sidebar a {
            display: block;
            color: white;
            padding: 15px 20px;
            text-decoration: none;
            transition: background-color 0.3s;
        }
        
        .sidebar a:hover {
            background-color: #34495e;
        }
        
        .content-wrapper {
            margin-left: 0px;
            margin-top: 80px;
            padding: 20px;
        }
        
        .container {
            max-width: 1200px;
            margin: 0 auto;
            background: white;
            padding: 25px;
            border-radius: 8px;
            box-shadow: 0 0 15px rgba(0, 0, 0, 0.05);
        }
        
        h1 {
            color: #2c3e50;
            border-bottom: 2px solid #f1f1f1;
            padding-bottom: 12px;
            margin-bottom: 20px;
            font-size: 1.8rem;
        }
        
        .tipo-formulario-badge {
            display: inline-block;
            padding: 4px 12px;
            border-radius: 20px;
            font-size: 0.8em;
            font-weight: bold;
            margin-left: 15px;
            vertical-align: middle;
        }
        
        .tipo-email {
            background-color: #3498db;
            color: white;
        }
        
        .tipo-questionario {
            background-color: #2ecc71;
            color: white;
        }
        
        .pergunta {
            margin-bottom: 15px;
            padding: 15px;
            background: #f8f9fa;
            border-radius: 5px;
            border-left: 4px solid #3498db;
            transition: all 0.3s ease;
            position: relative;
        }
        
        /* ESTILOS DE IDENTAÇÃO - AGORA FUNCIONAIS */
        .pergunta-nivel-0 {
            border-left-color: #3498db;
            background: #f8f9fa;
            margin-left: 0;
            padding-left: 15px;
        }
        
        .pergunta-nivel-1 {
            border-left-color: #6e48aa;
            background: #f0f7ff;
            margin-left: 25px;
            padding-left: 15px;
        }
        
        .pergunta-nivel-2 {
            border-left-color: #9b59b6;
            background: #f8f0ff;
            margin-left: 50px;
            padding-left: 15px;
        }
        
        .pergunta-nivel-3 {
            border-left-color: #8e44ad;
            background: #f3e8ff;
            margin-left: 75px;
            padding-left: 15px;
        }
        
        .pergunta-nivel-4 {
            border-left-color: #e74c3c;
            background: #ffe8e6;
            margin-left: 100px;
            padding-left: 15px;
        }
        
        .pergunta-nivel-5 {
            border-left-color: #e67e22;
            background: #fff0e6;
            margin-left: 125px;
            padding-left: 15px;
        }
        
        .pergunta-nivel-6 {
            border-left-color: #2ecc71;
            background: #e8f8f1;
            margin-left: 150px;
            padding-left: 15px;
        }
        
        .pergunta-nivel-7 {
            border-left-color: #1abc9c;
            background: #e8f6f3;
            margin-left: 175px;
            padding-left: 15px;
        }
        
        .pergunta-nivel-8 {
            border-left-color: #f39c12;
            background: #fef9e7;
            margin-left: 200px;
            padding-left: 15px;
        }
        
        .resposta {
            margin-top: 10px;
            padding: 10px;
            background: #e9f7fe;
            border-radius: 3px;
            border-left: 3px solid #2980b9;
        }
        
        .resposta-opcao {
            padding: 8px 12px;
            margin: 5px 0;
            background: #d4edda;
            border-radius: 4px;
            border-left: 3px solid #28a745;
        }
        
        .resposta-texto {
            padding: 8px 12px;
            margin: 5px 0;
            background: #fff3cd;
            border-radius: 4px;
            border-left: 3px solid #ffc107;
        }
        
        .sem-resposta {
            padding: 8px 12px;
            margin: 5px 0;
            background: #f8d7da;
            border-radius: 4px;
            border-left: 3px solid #dc3545;
            color: #721c24;
            font-style: italic;
        }
        
        .data-resposta {
            color: #7f8c8d;
            font-size: 0.9em;
            margin-bottom: 20px;
        }
        
        .btn-voltar {
            display: inline-block;
            padding: 10px 15px;
            background-color: #3498db;
            color: white;
            text-decoration: none;
            border-radius: 4px;
            margin-top: 20px;
            transition: background-color 0.3s;
        }
        
        .btn-voltar:hover {
            background-color: #2980b9;
        }
        
        .btn-export {
            display: inline-block;
            padding: 12px 20px;
            background-color: #6c757d;
            color: white;
            text-decoration: none;
            border-radius: 6px;
            margin-top: 20px;
            margin-right: 10px;
            transition: all 0.3s;
            cursor: pointer;
            border: none;
            font-size: 15px;
            font-weight: bold;
        }
        
        .btn-export:hover {
            background-color: #5a6268;
            transform: translateY(-2px);
            box-shadow: 0 4px 8px rgba(0,0,0,0.2);
        }
        
        .btn-export.pdf {
            background-color: #e74c3c;
        }
        
        .btn-export.pdf:hover {
            background-color: #c0392b;
        }
        
        .btn-export.print {
            background-color: #17a2b8;
        }
        
        .btn-export.print:hover {
            background-color: #138496;
        }
        
        .mensagem-flutuante {
            position: fixed;
            top: 90px;
            right: 25px;
            padding: 14px 24px;
            background: #2ecc71;
            color: white;
            border-radius: 4px;
            z-index: 2000;
            box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
            font-weight: 500;
            animation: slideIn 0.3s ease-out;
        }
        
        @keyframes slideIn {
            from {
                transform: translateY(-20px);
                opacity: 0;
            }
            to {
                transform: translateY(0);
                opacity: 1;
            }
        }
        
        .user-info {
            margin-right: 15px;
            font-weight: bold;
            color: #333;
            font-size: 1.1em;
        }
        
        .condicional-indicator {
            color: #6e48aa;
            font-size: 0.8em;
            margin-left: 10px;
            font-style: italic;
        }
        
        .export-buttons {
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
            margin-top: 30px;
            padding-top: 20px;
            border-top: 2px solid #f1f1f1;
        }
        
        .tenant-logo {
            max-height: 60px;
            max-width: 200px;
            object-fit: contain;
        }
        
        .document-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 30px;
            padding: 20px;
            background: #f8f9fa;
            border-radius: 8px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.08);
            border-left: none !important;
        }
        
        .info-adicional {
            background: #e8f4fd;
            padding: 15px;
            border-radius: 6px;
            margin-bottom: 20px;
            border-left: 4px solid #3498db;
        }
        
        .nivel-indicator {
            display: inline-block;
            width: 22px;
            height: 22px;
            background: #6e48aa;
            color: white;
            border-radius: 50%;
            text-align: center;
            line-height: 22px;
            font-size: 11px;
            margin-right: 8px;
            vertical-align: middle;
        }
        
        @media print {
            .header-fixed, .btn-export, .btn-voltar, .sidebar, .export-buttons {
                display: none !important;
            }
            
            .content-wrapper {
                margin-top: 0 !important;
                margin-left: 0 !important;
                padding: 0 !important;
            }
            
            body {
                background: white !important;
                color: black !important;
                font-size: 12pt !important;
            }
            
            .container {
                box-shadow: none !important;
                border: none !important;
                padding: 10px !important;
                margin: 0 !important;
                max-width: none !important;
            }
            
            .pergunta {
                page-break-inside: avoid;
                border-left: 2px solid #000 !important;
                padding: 8px !important;
                margin-bottom: 8px !important;
                background: white !important;
            }
            
            .resposta {
                border-left: 1px solid #000 !important;
                padding: 6px !important;
                background: #f9f9f9 !important;
            }
            
            .pergunta-nivel-0 { margin-left: 0px !important; }
            .pergunta-nivel-1 { margin-left: 15px !important; }
            .pergunta-nivel-2 { margin-left: 30px !important; }
            .pergunta-nivel-3 { margin-left: 45px !important; }
            .pergunta-nivel-4 { margin-left: 60px !important; }
            .pergunta-nivel-5 { margin-left: 75px !important; }
            .pergunta-nivel-6 { margin-left: 90px !important; }
            .pergunta-nivel-7 { margin-left: 105px !important; }
            .pergunta-nivel-8 { margin-left: 120px !important; }
            
            .document-header {
                border-left: none !important;
                box-shadow: none !important;
            }
            
            .info-adicional {
                display: none !important;
            }
            
            .nivel-indicator {
                background: #000 !important;
                color: white !important;
            }
        }
        
        @media (max-width: 768px) {
            .sidebar {
                width: 100%;
                position: relative;
                top: 0;
            }
            
            .content-wrapper {
                margin-left: 0;
                margin-top: 80px;
            }
            
            .container {
                padding: 18px;
            }
            
            .pergunta {
                padding: 12px;
            }
            
            .resposta {
                padding: 8px;
            }
            
            .pergunta-nivel-0 { margin-left: 0px; }
            .pergunta-nivel-1 { margin-left: 15px; }
            .pergunta-nivel-2 { margin-left: 30px; }
            .pergunta-nivel-3 { margin-left: 45px; }
            .pergunta-nivel-4 { margin-left: 60px; }
            .pergunta-nivel-5 { margin-left: 75px; }
            .pergunta-nivel-6 { margin-left: 90px; }
            .pergunta-nivel-7 { margin-left: 105px; }
            .pergunta-nivel-8 { margin-left: 120px; }
            
            .export-buttons {
                flex-direction: column;
            }
            
            .btn-export {
                width: 100%;
                text-align: center;
            }
            
            .tenant-logo {
                max-height: 40px;
                max-width: 150px;
            }
        }
    </style>
</head>
<body>
    <!-- Cabeçalho Fixo -->
    <div class="header-fixed">
        <img src="tvitec.png" alt="Logo TVITEC" style="height:40px; margin-right: 15px;">

        <div style="flex-grow: 1; display: flex; align-items: center; justify-content: center; gap: 12px;">
            <h2 style="margin: 0;"></h2>
        </div>

        <div class="user-info" style="display:flex; align-items:center; gap:10px;">
            <?php if (!empty($_SESSION['foto_perfil'])): ?>
                <img src="<?php echo htmlspecialchars($_SESSION['foto_perfil']); ?>" class="user-photo" alt="Foto do usuário" style="width:40px; height:40px; border-radius:50%;">
            <?php else: ?>
                <div class="user-initial" style="width:40px; height:40px; border-radius:50%; background:#ccc; display:flex; align-items:center; justify-content:center; font-weight:bold; font-size:1.2em;">
                    <?php echo strtoupper(substr($_SESSION['nome_usuario'] ?? 'U', 0, 1)); ?>
                </div>
            <?php endif; ?>
            <div style="text-align:left;">
                <div style="font-weight: bold; color: #333; font-size: 1.1em;">
                    <?php echo htmlspecialchars($_SESSION['nome_usuario'] ?? 'Usuário'); ?>
                </div>
                <div style="font-size: 0.9em; color: #555;">
                    <?php echo htmlspecialchars($_SESSION['email_usuario'] ?? ''); ?>
                </div>
            </div>
        </div>
    </div>

    <!-- Conteúdo Principal -->
    <div class="content-wrapper">
        <div class="container">
            <!-- Cabeçalho do documento SEM barra azul -->
            <div class="document-header">
                <div style="display: flex; align-items: center; gap: 20px;">
                    <?php if (!empty($logo_path)): ?>
                        <img src="<?= htmlspecialchars($logo_path) ?>" alt="Logo <?= htmlspecialchars($nome_empresa) ?>" class="tenant-logo">
                    <?php else: ?>
                        <i class="fas fa-building" style="font-size: 2.5em; color: #6e48aa;"></i>
                    <?php endif; ?>
                    <div>
                        <h1 style="margin: 0; color: #6e48aa; font-size: 1.8em; font-weight: 600;">
                            <?= htmlspecialchars($nome_empresa) ?>
                        </h1>
                        <p style="margin: 5px 0 0 0; color: #2c3e50; font-size: 1.1em;">
                            <?= htmlspecialchars($nome_cliente) ?>
                        </p>
                    </div>
                </div>
            </div>
           
            <h1>
                <?= htmlspecialchars($resposta['formulario_nome']) ?>
                <span class="tipo-formulario-badge <?= $resposta['formulario_tipo'] === 'questionario' ? 'tipo-questionario' : 'tipo-email' ?>">
                    <i class="fas <?= $resposta['formulario_tipo'] === 'questionario' ? 'fa-graduation-cap' : 'fa-envelope' ?>"></i>
                    <?= $resposta['formulario_tipo'] === 'questionario' ? 'Questionário' : 'Formulário por E-mail' ?>
                </span>
            </h1>
            
            <p class="data-resposta">Respondido em: <?= date('d/m/Y H:i', strtotime($resposta['data_resposta'])) ?></p>
            
            <?php if ($resposta['formulario_tipo'] === 'questionario'): ?>
                <div class="info-adicional">
                    <i class="fas fa-info-circle"></i>
                    <strong>Formulário do tipo Questionário:</strong> Este formulário foi respondido diretamente no sistema.
                   
                </div>
            <?php else: ?>
                <div class="info-adicional">
                    <i class="fas fa-info-circle"></i>
                    <strong>Formulário do tipo E-mail:</strong> Este formulário foi enviado por e-mail e respondido externamente.
                   
                </div>
            <?php endif; ?>
            
            <?php if (empty($perguntas)): ?>
                <div class="pergunta">
                    <strong>Nenhuma pergunta encontrada para este formulário.</strong>
                    <div class="resposta">
                        <p>As perguntas condicionais podem não estar sendo exibidas devido a um problema na hierarquia.</p>
                        <p><strong>Debug Info:</strong></p>
                        <p>Formulário ID: <?= $resposta['formulario_id'] ?? 'N/A' ?></p>
                        <p>Resposta ID: <?= $respostaId ?></p>
                        <p>Opções selecionadas: <?= implode(', ', $opcoesSelecionadasIds) ?></p>
                        <p>Estrutura: <?= $usarEstruturaNova ? 'NOVA' : 'ANTIGA' ?></p>
                    </div>
                </div>
            <?php else: ?>
                <?php foreach ($perguntas as $index => $pergunta): ?>
                    <?php 
                    $nivel = $pergunta['nivel'] ?? 0;
                    // Garantir que o nível máximo seja 8 para estilização
                    $nivelEstilo = min($nivel, 8);
                    ?>
                    <div class="pergunta pergunta-nivel-<?= $nivelEstilo ?>" 
                         style="margin-left: <?= $nivel * 25 ?>px;">

                        <span class="nivel-indicator" title="Nível <?= $nivel ?>">
                            <?= $nivel + 1 ?>
                        </span>
                        
                        <strong><?= ($index + 1) ?>. <?= htmlspecialchars($pergunta['pergunta_texto']) ?></strong>
                        <?php if ($nivel > 0): ?>
                            <span class="condicional-indicator">
                                (Pergunta condicional nível <?= $nivel ?>)
                            </span>
                        <?php endif; ?>
                        <div class="resposta">
                            <?php 
                            // Exibir opções selecionadas (para perguntas de múltipla escolha)
                            if (!empty($pergunta['opcoes_selecionadas'])) {
                                foreach ($pergunta['opcoes_selecionadas'] as $opcao) {
                                    if (!empty(trim($opcao['texto']))) {
                                        echo '<div class="resposta-opcao">';
                                        echo '<i class="fas fa-check-circle" style="color: #28a745; margin-right: 8px;"></i>';
                                        echo htmlspecialchars(trim($opcao['texto']));
                                        echo '</div>';
                                    }
                                }
                            }
                            
                            // Exibir respostas de texto
                            if (!empty($pergunta['respostas'])) {
                                foreach ($pergunta['respostas'] as $respostaTexto) {
                                    if (!empty(trim($respostaTexto))) {
                                        echo '<div class="resposta-texto">';
                                        echo '<i class="fas fa-comment" style="color: #ffc107; margin-right: 8px;"></i>';
                                        echo htmlspecialchars(trim($respostaTexto));
                                        echo '</div>';
                                    }
                                }
                            }
                            
                            // Se não há respostas
                            if (empty($pergunta['opcoes_selecionadas']) && empty($pergunta['respostas'])) {
                                echo '<div class="sem-resposta">';
                                echo '<i class="fas fa-times-circle" style="color: #dc3545; margin-right: 8px;"></i>';
                                echo '(Sem resposta)';
                                echo '</div>';
                            }
                            ?>
                        </div>
                    </div>
                <?php endforeach; ?>
            <?php endif; ?>
            
            <div class="export-buttons">
                <button class="btn-export pdf" onclick="gerarPDF()">
                    <i class="fas fa-file-pdf"></i> Exportar como PDF
                </button>
                
                <button class="btn-export print" onclick="window.print()">
                    <i class="fas fa-print"></i> Imprimir
                </button>
                
                <?php if (isset($resposta['cliente_id']) && !empty($resposta['cliente_id'])): ?>
                    <a href="editar_cliente.php?id=<?= $resposta['cliente_id'] ?>#formularios" class="btn-voltar">
                        <i class="fas fa-arrow-left"></i> Voltar
                    </a>
                <?php else: ?>
                    <a href="javascript:history.back()" class="btn-voltar">
                        <i class="fas fa-arrow-left"></i> Voltar
                    </a>
                <?php endif; ?>
            </div>
        </div>
    </div>

    <script>
        // Função simples e direta para gerar PDF
        function gerarPDF() {
            console.log('Iniciando geração de PDF...');
            
            // Verificar se jsPDF está disponível
            if (typeof jspdf === 'undefined') {
                alert('Erro: Biblioteca jsPDF não carregada. Recarregue a página.');
                return;
            }

            try {
                const { jsPDF } = window.jspdf;
                const doc = new jsPDF();
                
                // Configurações iniciais
                let y = 20;
                const lineHeight = 7;
                const pageHeight = 280;
                const margin = 20;
                
                // Adicionar título da empresa
                doc.setFontSize(16);
                doc.setFont('helvetica', 'bold');
                doc.setTextColor(110, 72, 170);
                doc.text('<?= addslashes($nome_empresa) ?>', margin, y);
                y += lineHeight + 5;
                
                // Adicionar nome do cliente
                doc.setFontSize(12);
                doc.setFont('helvetica', 'normal');
                doc.setTextColor(0, 0, 0);
                doc.text('Cliente: <?= addslashes($nome_cliente) ?>', margin, y);
                y += lineHeight + 2;
                
                // Tipo do formulário
                doc.text('Tipo: <?= addslashes($resposta['formulario_tipo'] === 'questionario' ? 'Questionário' : 'Formulário por E-mail') ?>', margin, y);
                y += lineHeight + 2;
                
                // Linha divisória
                doc.setDrawColor(110, 72, 170);
                doc.setLineWidth(0.5);
                doc.line(margin, y, 190, y);
                y += 10;
                
                // Título do formulário
                doc.setFontSize(18);
                doc.setFont('helvetica', 'bold');
                doc.text('Formulário: <?= addslashes($resposta['formulario_nome']) ?>', margin, y);
                y += lineHeight + 5;
                
                // Data de resposta
                doc.setFontSize(12);
                doc.setFont('helvetica', 'normal');
                doc.text('Respondido em: <?= date('d/m/Y H:i', strtotime($resposta['data_resposta'])) ?>', margin, y);
                y += lineHeight + 10;
                
                // Perguntas e respostas
                doc.setFontSize(14);
                
                <?php foreach ($perguntas as $index => $pergunta): ?>
                    <?php $nivel = $pergunta['nivel'] ?? 0; ?>
                    
                    // Verificar se precisa de nova página
                    if (y > pageHeight) {
                        doc.addPage();
                        y = 20;
                    }
                    
                    // Adicionar nível como indicador
                    doc.setFontSize(10);
                    doc.setTextColor(110, 72, 170);
                    doc.text('[Nível <?= $nivel ?>]', margin + (<?= $nivel ?> * 10), y);
                    
                    // Adicionar pergunta
                    let perguntaText = '<?= ($index + 1) ?>. <?= addslashes($pergunta['pergunta_texto']) ?>';
                    let perguntaLines = doc.splitTextToSize(perguntaText, 170 - (<?= $nivel ?> * 10));
                    
                    doc.setFontSize(14);
                    doc.setFont('helvetica', 'bold');
                    doc.setTextColor(0, 0, 0);
                    doc.text(perguntaLines, margin + (<?= $nivel ?> * 10) + 15, y);
                    y += perguntaLines.length * lineHeight + 2;
                    
                    <?php if ($nivel > 0): ?>
                        // Indicador de pergunta condicional
                        doc.setFontSize(10);
                        doc.setTextColor(110, 72, 170);
                        doc.text('(Pergunta condicional nível <?= $nivel ?>)', margin + (<?= $nivel ?> * 10) + 25, y);
                        y += lineHeight;
                        doc.setTextColor(0, 0, 0);
                        doc.setFontSize(12);
                    <?php endif; ?>
                    
                    // Adicionar respostas
                    doc.setFont('helvetica', 'normal');
                    
                    <?php if (!empty($pergunta['opcoes_selecionadas']) || !empty($pergunta['respostas'])): ?>
                        <?php if (!empty($pergunta['opcoes_selecionadas'])): ?>
                            <?php foreach ($pergunta['opcoes_selecionadas'] as $opcao): ?>
                                if (y > pageHeight) {
                                    doc.addPage();
                                    y = 20;
                                }
                                
                                let respostaText = '• <?= addslashes(trim($opcao['texto'])) ?>';
                                let respostaLines = doc.splitTextToSize(respostaText, 160 - (<?= $nivel ?> * 10));
                                doc.text(respostaLines, margin + (<?= $nivel ?> * 10) + 25, y);
                                y += respostaLines.length * lineHeight;
                            <?php endforeach; ?>
                        <?php else: ?>
                            <?php foreach ($pergunta['respostas'] as $respostaTexto): ?>
                                if (y > pageHeight) {
                                    doc.addPage();
                                    y = 20;
                                }
                                
                                let respostaText = '• <?= addslashes(trim($respostaTexto)) ?>';
                                let respostaLines = doc.splitTextToSize(respostaText, 160 - (<?= $nivel ?> * 10));
                                doc.text(respostaLines, margin + (<?= $nivel ?> * 10) + 25, y);
                                y += respostaLines.length * lineHeight;
                            <?php endforeach; ?>
                        <?php endif; ?>
                    <?php else: ?>
                        if (y > pageHeight) {
                            doc.addPage();
                            y = 20;
                        }
                        doc.text('(Sem resposta)', margin + (<?= $nivel ?> * 10) + 25, y);
                        y += lineHeight;
                    <?php endif; ?>
                    
                    y += 8; // Espaço entre perguntas
                    
                <?php endforeach; ?>
                
                // Salvar o PDF
                const fileName = 'Formulario_<?= addslashes($resposta['formulario_nome']) ?>_<?= date('Y-m-d') ?>.pdf';
                doc.save(fileName);
                
                console.log('PDF gerado com sucesso!');
                
            } catch (error) {
                console.error('Erro ao gerar PDF:', error);
                alert('Erro ao gerar PDF: ' + error.message);
            }
        }
    </script>
</body>
</html>