<?php 
/**
 * GESTÃO DE PRODUTOS - Dashboard Admin
 * 
 * Este arquivo gerencia produtos, order bumps e configurações relacionadas.
 * 
 * CORREÇÕES APLICADAS:
 * - Diagnóstico de erros no topo (desenvolvimento)
 * - Try-catch global para capturar todos os erros
 * - Validação de requires e caminhos
 * - Tratamento robusto de exceções SQL
 * - Garantia de renderização do HTML mesmo em caso de erro
 */

// ============================================
// 1. DIAGNÓSTICO DE ERROS (DESENVOLVIMENTO)
// ============================================
// Ativar exibição de erros apenas em desenvolvimento
// Em produção, desative estas linhas ou defina uma constante de ambiente
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// ============================================
// 2. TRY-CATCH GLOBAL
// ============================================
try {
    // ============================================
    // 3. VALIDAÇÃO E CARREGAMENTO DE ARQUIVOS
    // ============================================
    
    // Verificar e carregar config_db.php
    // Nota: Autenticação já verificada em dashboard/index.php
    $config_db_path = __DIR__ . '/../../config/config_db.php';
    if (!file_exists($config_db_path)) {
        throw new Exception("Arquivo de configuração do banco não encontrado: {$config_db_path}");
    }
    require_once $config_db_path;
    
    // Verificar se $pdo foi definido
    if (!isset($pdo) || !($pdo instanceof PDO)) {
        throw new Exception("Conexão com o banco de dados não foi estabelecida. Verifique config_db.php");
    }
    
    // Verificar e carregar auth_helper.php
    $auth_helper_path = __DIR__ . '/../../backend/auth_helper.php';
    if (!file_exists($auth_helper_path)) {
        throw new Exception("Arquivo helper de autenticação não encontrado: {$auth_helper_path}");
    }
    require_once $auth_helper_path;
    
    // Carregar paths.php primeiro para garantir que ROOT_PATH esteja definido
    $paths_path = __DIR__ . '/../../config/paths.php';
    if (!file_exists($paths_path)) {
        throw new Exception("Arquivo de configuração de caminhos não encontrado: {$paths_path}");
    }
    require_once $paths_path;
    
    // Verificar e carregar upload_helper.php
    $upload_helper_path = __DIR__ . '/../../backend/upload_helper.php';
    if (!file_exists($upload_helper_path)) {
        throw new Exception("Arquivo helper de upload não encontrado: {$upload_helper_path}");
    }
    require_once $upload_helper_path;
    
    // Verificar e carregar produtos_helper.php (FASE 2)
    $produtos_helper_path = __DIR__ . '/../../backend/produtos_helper.php';
    if (!file_exists($produtos_helper_path)) {
        throw new Exception("Arquivo helper de produtos não encontrado: {$produtos_helper_path}");
    }
    require_once $produtos_helper_path;
    
    // Verificar se a função get_usuario_id existe
    if (!function_exists('get_usuario_id')) {
        throw new Exception("Função get_usuario_id() não encontrada em auth_helper.php");
    }
    
    // Obter ID do usuário logado (admin)
    $usuario_logado_id = get_usuario_id();
    if (empty($usuario_logado_id)) {
        throw new Exception("Não foi possível obter o ID do usuário logado. Verifique a autenticação.");
    }
    
    // ============================================
    // 4. INICIALIZAÇÃO DE VARIÁVEIS
    // ============================================
    $produtoCriado = false; 
    $produtoAtualizado = false;
    $produtoExcluido = false;
    $orderBumpCriado = false;
    $orderBumpRemovido = false;
    $produtos = [];
    $orderbumps = [];
    $produtoParaEditar = null;
    $mensagem = '';
    $tipo_mensagem = '';
    
    // ============================================
    // 5. PROCESSAMENTO DE AÇÕES (GET/POST)
    // ============================================
    
    // Remover Order Bump (verifica GET primeiro)
    if (isset($_GET['remove_orderbump_id'])) {
        $orderbump_id = intval($_GET['remove_orderbump_id']);
        
        if ($orderbump_id > 0) {
            try {
                // Buscar o orderbump para obter o produto_adicional_id
                $sql_buscar = "SELECT produto_adicional_id FROM produtos_adicionais WHERE id = :id";
                $stmt_buscar = $pdo->prepare($sql_buscar);
                $stmt_buscar->execute([':id' => $orderbump_id]);
                $orderbump = $stmt_buscar->fetch(PDO::FETCH_ASSOC);
                
                if ($orderbump) {
                    $pdo->beginTransaction();
                    
                    // Remover o vínculo na tabela produtos_adicionais
                    $sql_remover = "DELETE FROM produtos_adicionais WHERE id = :id";
                    $stmt_remover = $pdo->prepare($sql_remover);
                    $stmt_remover->execute([':id' => $orderbump_id]);
                    
                    // Verificar se o produto adicional está sendo usado em outros orderbumps
                    $sql_verificar = "SELECT COUNT(*) as total FROM produtos_adicionais WHERE produto_adicional_id = :produto_adicional_id";
                    $stmt_verificar = $pdo->prepare($sql_verificar);
                    $stmt_verificar->execute([':produto_adicional_id' => $orderbump['produto_adicional_id']]);
                    $resultado = $stmt_verificar->fetch(PDO::FETCH_ASSOC);
                    
                    // Se não estiver sendo usado em nenhum outro orderbump, remover o produto também
                    if ($resultado['total'] == 0) {
                        $sql_remover_produto = "DELETE FROM produtos WHERE id = :id";
                        $stmt_remover_produto = $pdo->prepare($sql_remover_produto);
                        $stmt_remover_produto->execute([':id' => $orderbump['produto_adicional_id']]);
                    }
                    
                    $pdo->commit();
                    $orderBumpRemovido = true;
                    echo '<script>window.location.href = "index.php?page=produtos&orderbump_removido=1";</script>';
                    exit;
                }
            } catch (Exception $e) {
                if ($pdo->inTransaction()) {
                    $pdo->rollBack();
                }
                error_log("Erro ao remover orderbump: " . $e->getMessage());
                $mensagem = "Erro ao remover orderbump: " . htmlspecialchars($e->getMessage());
                $tipo_mensagem = 'error';
            }
        }
    }
    
    // Processar atualização de imagem específica (botão "Atualizar Imagem")
    if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'update_imagem') {
        try {
            $produto_id = intval($_POST['produto_id'] ?? 0);
            
            if ($produto_id <= 0) {
                throw new Exception("ID do produto inválido.");
            }
            
            // Buscar imagem atual do banco
            $sql_atual = "SELECT imagem FROM produtos WHERE id = :id LIMIT 1";
            $stmt_atual = $pdo->prepare($sql_atual);
            $stmt_atual->execute([':id' => $produto_id]);
            $produto_atual = $stmt_atual->fetch(PDO::FETCH_ASSOC);
            $imagem_atual_banco = $produto_atual['imagem'] ?? '';
            
            // Processar nova imagem
            $imagem_url_input = trim($_POST['imagem'] ?? '');
            $imagem_file = isset($_FILES['imagem_file']) && $_FILES['imagem_file']['error'] !== UPLOAD_ERR_NO_FILE ? $_FILES['imagem_file'] : null;
            
            // Verificar se há arquivo novo (prioridade máxima)
            $tem_arquivo_novo = ($imagem_file !== null && isset($imagem_file['error']) && $imagem_file['error'] === UPLOAD_ERR_OK && is_uploaded_file($imagem_file['tmp_name']));
            
            // Verificar se URL foi alterada
            $url_limpa_input = trim($imagem_url_input);
            $url_limpa_banco = trim($imagem_atual_banco);
            $tem_url_nova = (!empty($url_limpa_input) && $url_limpa_input !== $url_limpa_banco);
            
            if (!$tem_arquivo_novo && !$tem_url_nova) {
                throw new Exception("Nenhuma nova imagem foi selecionada ou informada. Para atualizar, selecione um arquivo novo ou informe uma URL diferente da atual.");
            }
            
            // Processar imagem (priorizar arquivo sobre URL)
            if ($tem_arquivo_novo) {
                $nova_imagem = processar_imagem($imagem_file, '', 'produtos'); // Forçar usar apenas arquivo
            } else {
                $nova_imagem = processar_imagem(null, $imagem_url_input, 'produtos'); // Usar URL
            }
            
            if (empty($nova_imagem) || $nova_imagem === null) {
                throw new Exception("Erro: Imagem não foi processada corretamente.");
            }
            
            // Atualizar apenas a imagem no banco (garantir UPDATE)
            $sql_update = "UPDATE produtos SET imagem = :imagem, data_atualizacao = NOW() WHERE id = :id";
            $stmt_update = $pdo->prepare($sql_update);
            $stmt_update->execute([
                ':imagem' => $nova_imagem,
                ':id' => $produto_id
            ]);
            
            error_log("IMAGEM ATUALIZADA VIA BOTÃO: Produto ID {$produto_id} - Nova URL: {$nova_imagem}");
            
            if ($stmt_update->rowCount() > 0) {
                echo '<script>window.location.href = "index.php?page=produtos&edit_id=' . $produto_id . '&imagem_atualizada=1";</script>';
                exit;
            } else {
                throw new Exception("Nenhuma linha foi atualizada. Verifique se o produto existe.");
            }
            
        } catch (Exception $e) {
            error_log("Erro ao atualizar imagem: " . $e->getMessage());
            $mensagem = "Erro ao atualizar imagem: " . htmlspecialchars($e->getMessage());
            $tipo_mensagem = 'error';
        }
    }
    
    // Processar formulários POST
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        if (isset($_POST['id'])) {
            // ============================================
            // ATUALIZAÇÃO DE PRODUTO (FASE 2: Usando Helper)
            // ============================================
            try {
                $produto_id = intval($_POST['id']);
                
                // Processar imagem (upload ou URL) - CORREÇÃO ESPECÍFICA PARA ATUALIZAÇÃO
                $imagem = null;
                $imagem_url_input = trim($_POST['imagem'] ?? '');
                // Verificar arquivo - usar name correto do formulário (imagem_file)
                $imagem_file = null;
                if (isset($_FILES['imagem_file']) && is_array($_FILES['imagem_file']) && isset($_FILES['imagem_file']['error'])) {
                    if ($_FILES['imagem_file']['error'] === UPLOAD_ERR_OK && isset($_FILES['imagem_file']['tmp_name'])) {
                        if (is_uploaded_file($_FILES['imagem_file']['tmp_name']) && file_exists($_FILES['imagem_file']['tmp_name'])) {
                            $imagem_file = $_FILES['imagem_file'];
                        }
                    }
                }
                
                // Buscar imagem atual do banco para comparar
                $sql_img_atual = "SELECT imagem FROM produtos WHERE id = :id LIMIT 1";
                $stmt_img_atual = $pdo->prepare($sql_img_atual);
                $stmt_img_atual->execute([':id' => $produto_id]);
                $produto_atual = $stmt_img_atual->fetch(PDO::FETCH_ASSOC);
                $imagem_atual_banco = $produto_atual['imagem'] ?? '';
                
                // Verificar se há arquivo novo (prioridade máxima) - verificação mais robusta
                $tem_arquivo_novo = ($imagem_file !== null && isset($imagem_file['tmp_name']) && !empty($imagem_file['tmp_name']) && file_exists($imagem_file['tmp_name']));
                
                // Verificar se URL foi alterada (comparar com banco)
                $url_limpa_input = trim($imagem_url_input);
                $url_limpa_banco = trim($imagem_atual_banco);
                $tem_url_nova = (!empty($url_limpa_input) && $url_limpa_input !== $url_limpa_banco && $url_limpa_input !== '');
                
                error_log("UPDATE IMAGEM - Produto ID: {$produto_id} | Tem arquivo novo: " . ($tem_arquivo_novo ? 'SIM' : 'NÃO') . " | Tem URL nova: " . ($tem_url_nova ? 'SIM' : 'NÃO') . " | URL atual banco: " . substr($url_limpa_banco, 0, 80) . " | URL input: " . substr($url_limpa_input, 0, 80));
                
                // Se houver arquivo novo, SEMPRE processar (ignorar URL do campo)
                if ($tem_arquivo_novo) {
                    try {
                        $imagem = processar_imagem($imagem_file, '', 'produtos'); // Forçar usar apenas arquivo, ignorar URL
                        error_log("✅ IMAGEM ATUALIZADA (ARQUIVO): Produto ID {$produto_id} - Nova URL: " . substr($imagem, 0, 100));
                    } catch (Exception $e) {
                        error_log("❌ Erro ao processar imagem do produto (arquivo): " . $e->getMessage());
                        $mensagem = "Erro ao processar imagem do produto: " . $e->getMessage();
                        $tipo_mensagem = 'error';
                        $imagem = null;
                    }
                } 
                // Se não há arquivo mas há URL nova (diferente), processar URL
                elseif ($tem_url_nova) {
                    try {
                        $imagem = processar_imagem(null, $imagem_url_input, 'produtos');
                        error_log("✅ IMAGEM ATUALIZADA (URL): Produto ID {$produto_id} - Nova URL: " . substr($imagem, 0, 100));
                    } catch (Exception $e) {
                        error_log("❌ Erro ao processar imagem do produto (URL): " . $e->getMessage());
                        $mensagem = "Erro ao processar imagem do produto: " . $e->getMessage();
                        $tipo_mensagem = 'error';
                        $imagem = null;
                    }
                } 
                // Se não há nem arquivo nem URL nova, manter a atual
                else {
                    $imagem = $imagem_atual_banco;
                    error_log("⏭️ IMAGEM MANTIDA: Nenhuma alteração para produto ID {$produto_id} - Mantendo: " . substr($imagem_atual_banco, 0, 100));
                }
                
                // Garantir que sempre tenha um valor (não null) para não quebrar o UPDATE
                if ($imagem === null) {
                    $imagem = $imagem_atual_banco;
                }
                
                // Log final para debug
                error_log("FINAL - Imagem que será salva no banco: " . substr($imagem, 0, 100));
                
                // Processar checkout_banner (upload ou URL)
                $checkout_banner = null;
                $checkout_banner_url_input = trim($_POST['checkout_banner'] ?? '');
                $checkout_banner_file = isset($_FILES['checkout_banner_file']) && $_FILES['checkout_banner_file']['error'] !== UPLOAD_ERR_NO_FILE ? $_FILES['checkout_banner_file'] : null;
                
                try {
                    $checkout_banner = processar_imagem($checkout_banner_file, $checkout_banner_url_input, 'produtos');
                } catch (Exception $e) {
                    error_log("Erro ao processar checkout_banner: " . $e->getMessage());
                    // Em caso de erro, tentar usar URL do input como fallback
                    $checkout_banner = !empty($checkout_banner_url_input) ? $checkout_banner_url_input : null;
                }
                
                // Se não houver banner novo (null = nenhum arquivo nem URL fornecidos), buscar o atual do banco
                if ($checkout_banner === null || $checkout_banner === '') {
                    $sql_banner = "SELECT checkout_banner FROM produtos WHERE id = :id LIMIT 1";
                    $stmt_banner = $pdo->prepare($sql_banner);
                    $stmt_banner->execute([':id' => $produto_id]);
                    $produto_atual = $stmt_banner->fetch(PDO::FETCH_ASSOC);
                    $checkout_banner = $produto_atual['checkout_banner'] ?? '';
                }
                
                // Preparar dados para o helper (incluir todos os campos do POST)
                $dados_produto = $_POST;
                $dados_produto['id'] = $produto_id; // Garantir que ID está presente
                
                // Sempre incluir imagem e banner processados (substituem valores do POST)
                // Se não houver nova, manterá a atual que já está em $imagem e $checkout_banner
                $dados_produto['imagem'] = $imagem; // Sempre incluir (pode ser a atual ou nova)
                $dados_produto['checkout_banner'] = $checkout_banner; // Sempre incluir (pode ser atual ou novo)
                
                // Chamar helper centralizado (Admin = true)
                $resultado = salvarProduto($dados_produto, $usuario_logado_id, true);
                
                if ($resultado['success']) {
                    $produtoAtualizado = true;
                    echo '<script>window.location.href = "index.php?page=produtos&produto_atualizado=1";</script>';
                    exit;
                } else {
                    throw new Exception($resultado['message']);
                }
            } catch (Exception $e) {
                error_log("Erro ao atualizar produto: " . $e->getMessage());
                $mensagem = "Erro ao atualizar produto: " . htmlspecialchars($e->getMessage());
                $tipo_mensagem = 'error';
            }
        } elseif (isset($_POST['produto_principal'])) {
            // ============================================
            // CRIAÇÃO DE ORDER BUMP
            // ============================================
            try {
                $produto_principal_id = intval($_POST['produto_principal']);
                $nome_adicional = trim($_POST['nome_adicional'] ?? '');
                $descricao_adicional = trim($_POST['descricao_adicional'] ?? '');
                $preco_original = floatval($_POST['preco_original'] ?? 0);
                $preco_promocional = floatval($_POST['preco_promocional'] ?? 0);
                
                // Processar imagem do orderbump (upload ou URL)
                $imagem_url_input = trim($_POST['imagem'] ?? '');
                $imagem_file = isset($_FILES['imagem_file']) ? $_FILES['imagem_file'] : null;
                try {
                    $imagem = processar_imagem($imagem_file, $imagem_url_input, 'orderbumps');
                } catch (Exception $e) {
                    $mensagem = "Erro ao processar imagem do orderbump: " . $e->getMessage();
                    $tipo_mensagem = 'error';
                    $imagem = $imagem_url_input; // Fallback para URL se upload falhar
                }
                
                $titulo_rosa = trim($_POST['titulo_rosa'] ?? '');
                $link_pagina = trim($_POST['link_pagina'] ?? '');
                
                if (empty($produto_principal_id) || empty($nome_adicional) || empty($descricao_adicional) || empty($preco_promocional) || empty($titulo_rosa)) {
                    throw new Exception("Por favor, preencha todos os campos obrigatórios.");
                }
                
                $pdo->beginTransaction();
                
                // Buscar usuario_id do produto principal
                $sql_principal = "SELECT usuario_id FROM produtos WHERE id = :id LIMIT 1";
                $stmt_principal = $pdo->prepare($sql_principal);
                $stmt_principal->execute([':id' => $produto_principal_id]);
                $produto_principal = $stmt_principal->fetch(PDO::FETCH_ASSOC);
                $usuario_id_principal = $produto_principal['usuario_id'] ?? $usuario_logado_id;
                
                // Inserir produto adicional (order bump)
                try {
                    $sql_insert_produto = "INSERT INTO produtos (usuario_id, nome, descricao, preco_atual, imagem) VALUES (:usuario_id, :nome, :descricao, :preco, :imagem)";
                    $stmt_insert_produto = $pdo->prepare($sql_insert_produto);
                    $stmt_insert_produto->execute([
                        ':usuario_id' => $usuario_id_principal,
                        ':nome' => $nome_adicional,
                        ':descricao' => $descricao_adicional,
                        ':preco' => $preco_promocional,
                        ':imagem' => $imagem
                    ]);
                } catch (PDOException $e) {
                    // Retrocompatibilidade: se usuario_id não existir, insere sem ele
                    if (strpos($e->getMessage(), 'usuario_id') !== false) {
                        $sql_insert_produto = "INSERT INTO produtos (nome, descricao, preco_atual, imagem) VALUES (:nome, :descricao, :preco, :imagem)";
                        $stmt_insert_produto = $pdo->prepare($sql_insert_produto);
                        $stmt_insert_produto->execute([
                            ':nome' => $nome_adicional,
                            ':descricao' => $descricao_adicional,
                            ':preco' => $preco_promocional,
                            ':imagem' => $imagem
                        ]);
                    } else {
                        throw $e;
                    }
                }
                
                $produto_adicional_id = $pdo->lastInsertId();
                
                // Vincular ao produto principal
                try {
                    $sql_vincular_produto = "INSERT INTO produtos_adicionais (produto_principal_id, produto_adicional_id, preco_original, preco_promocional, imagem, descricao, titulo_rosa, link_pagina) 
                                             VALUES (:produto_principal_id, :produto_adicional_id, :preco_original, :preco_promocional, :imagem, :descricao, :titulo_rosa, :link_pagina)";
                    $stmt_vincular_produto = $pdo->prepare($sql_vincular_produto);
                    $stmt_vincular_produto->execute([
                        ':produto_principal_id' => $produto_principal_id,
                        ':produto_adicional_id' => $produto_adicional_id,
                        ':preco_original' => $preco_original,
                        ':preco_promocional' => $preco_promocional,
                        ':imagem' => $imagem,
                        ':descricao' => $descricao_adicional,
                        ':titulo_rosa' => $titulo_rosa,
                        ':link_pagina' => $link_pagina
                    ]);
                } catch (PDOException $e) {
                    // Se a coluna link_pagina não existir, inserir sem ela
                    if (strpos($e->getMessage(), 'link_pagina') !== false) {
                        $sql_vincular_produto = "INSERT INTO produtos_adicionais (produto_principal_id, produto_adicional_id, preco_original, preco_promocional, imagem, descricao, titulo_rosa) 
                                                 VALUES (:produto_principal_id, :produto_adicional_id, :preco_original, :preco_promocional, :imagem, :descricao, :titulo_rosa)";
                        $stmt_vincular_produto = $pdo->prepare($sql_vincular_produto);
                        $stmt_vincular_produto->execute([
                            ':produto_principal_id' => $produto_principal_id,
                            ':produto_adicional_id' => $produto_adicional_id,
                            ':preco_original' => $preco_original,
                            ':preco_promocional' => $preco_promocional,
                            ':imagem' => $imagem,
                            ':descricao' => $descricao_adicional,
                            ':titulo_rosa' => $titulo_rosa
                        ]);
                    } else {
                        throw $e;
                    }
                }
                
                $pdo->commit();
                $orderBumpCriado = true;
                echo '<script>window.location.href = "index.php?page=produtos&orderbump_criado=1";</script>';
                exit;
            } catch (Exception $e) {
                if ($pdo->inTransaction()) {
                    $pdo->rollBack();
                }
                error_log("Erro ao adicionar o produto adicional: " . $e->getMessage());
                $mensagem = "Erro ao criar order bump: " . htmlspecialchars($e->getMessage());
                $tipo_mensagem = 'error';
            }
        } else {
            // ============================================
            // ADICIONAR NOVO PRODUTO (FASE 2: Usando Helper)
            // ============================================
            try {
                // Processar imagem (upload ou URL)
                $imagem = null;
                $imagem_url_input = trim($_POST['imagem'] ?? '');
                $imagem_file = isset($_FILES['imagem_file']) && $_FILES['imagem_file']['error'] !== UPLOAD_ERR_NO_FILE ? $_FILES['imagem_file'] : null;
                
                try {
                    $imagem = processar_imagem($imagem_file, $imagem_url_input, 'produtos');
                } catch (Exception $e) {
                    error_log("Erro ao processar imagem do produto: " . $e->getMessage());
                    $mensagem = "Erro ao processar imagem do produto: " . $e->getMessage();
                    $tipo_mensagem = 'error';
                    // Em caso de erro, tentar usar URL do input como fallback
                    $imagem = !empty($imagem_url_input) ? $imagem_url_input : null;
                }
                
                // Se não houver imagem, usar string vazia para novo produto
                if ($imagem === null || $imagem === '') {
                    $imagem = '';
                }
                
                // Processar checkout_banner (upload ou URL)
                $checkout_banner = null;
                $checkout_banner_url_input = trim($_POST['checkout_banner'] ?? '');
                $checkout_banner_file = isset($_FILES['checkout_banner_file']) && $_FILES['checkout_banner_file']['error'] !== UPLOAD_ERR_NO_FILE ? $_FILES['checkout_banner_file'] : null;
                
                try {
                    $checkout_banner = processar_imagem($checkout_banner_file, $checkout_banner_url_input, 'produtos');
                } catch (Exception $e) {
                    error_log("Erro ao processar checkout_banner: " . $e->getMessage());
                    // Em caso de erro, tentar usar URL do input como fallback
                    $checkout_banner = !empty($checkout_banner_url_input) ? $checkout_banner_url_input : null;
                }
                
                // Se não houver banner, usar string vazia para novo produto
                if ($checkout_banner === null || $checkout_banner === '') {
                    $checkout_banner = '';
                }
                
                // Gerar link_pagamento único
                $link_pagamento = "https://" . $_SERVER['HTTP_HOST'] . "/views/dados_pessoais.php?produto_id=" . uniqid();
                
                // Preparar dados para o helper (incluir todos os campos do POST)
                $dados_produto = $_POST;
                $dados_produto['imagem'] = $imagem; // Usar imagem processada (pode ser vazia para novo produto)
                $dados_produto['checkout_banner'] = $checkout_banner; // Usar banner processado (pode ser vazio para novo produto)
                $dados_produto['link_pagamento'] = $link_pagamento; // Gerar link único
                
                // Chamar helper centralizado (Admin = true)
                $resultado = salvarProduto($dados_produto, $usuario_logado_id, true);
                
                if ($resultado['success']) {
                    $produtoCriado = true;
                    echo '<script>window.location.href = "index.php?page=produtos&produto_criado=1";</script>';
                    exit;
                } else {
                    throw new Exception($resultado['message']);
                }
            } catch (Exception $e) {
                error_log("Erro ao criar produto: " . $e->getMessage());
                $mensagem = "Erro ao criar produto: " . htmlspecialchars($e->getMessage());
                $tipo_mensagem = 'error';
            }
        }
    }
    
    // ============================================
    // 6. EXCLUSÃO DE PRODUTO
    // ============================================
    if (isset($_GET['delete_id'])) {
        try {
            $produto_id = intval($_GET['delete_id']);
            $sql = "DELETE FROM produtos WHERE id = :id";
            $stmt = $pdo->prepare($sql);
            if ($stmt->execute([':id' => $produto_id])) {
                $produtoExcluido = true;
                echo '<script>window.location.href = "index.php?page=produtos&produto_excluido=1";</script>';
                exit;
            }
        } catch (Exception $e) {
            error_log("Erro ao excluir produto: " . $e->getMessage());
            $mensagem = "Erro ao excluir produto: " . htmlspecialchars($e->getMessage());
            $tipo_mensagem = 'error';
        }
    }
    
    // ============================================
    // 7. BUSCAR DADOS PARA EXIBIÇÃO
    // ============================================
    
    // Função para buscar um produto específico para edição
    function buscarProduto($id, $pdo) {
        try {
            $sql = "SELECT * FROM produtos WHERE id = :id";
            $stmt = $pdo->prepare($sql);
            $stmt->execute([':id' => $id]);
            return $stmt->fetch(PDO::FETCH_ASSOC);
        } catch (PDOException $e) {
            error_log("Erro ao buscar produto: " . $e->getMessage());
            return null;
        }
    }
    
    // Se houver um produto para editar
    if (isset($_GET['edit_id'])) {
        try {
            $produtoParaEditar = buscarProduto(intval($_GET['edit_id']), $pdo);
        } catch (Exception $e) {
            error_log("Erro ao buscar produto para edição: " . $e->getMessage());
            $produtoParaEditar = null;
        }
    }
    
    // Busca todos os produtos para exibir na listagem
    try {
        // Garantir que tipo_entrega está sendo retornado
        $sql = "SELECT *, tipo_entrega FROM produtos ORDER BY id DESC";
        $stmt = $pdo->query($sql);
        $produtos = $stmt->fetchAll(PDO::FETCH_ASSOC);
    } catch (PDOException $e) {
        error_log("Erro ao buscar produtos: " . $e->getMessage());
        $produtos = [];
        $mensagem = "Erro ao carregar produtos: " . htmlspecialchars($e->getMessage());
        $tipo_mensagem = 'error';
    }
    
    // Buscar todos os orderbumps com informações dos produtos
    try {
        $sql_orderbumps = "
            SELECT pa.id, pa.produto_principal_id, pa.produto_adicional_id, 
                   pa.titulo_rosa, pa.preco_promocional, pa.imagem,
                   p_principal.nome as produto_principal_nome,
                   p_adicional.nome as produto_adicional_nome
            FROM produtos_adicionais pa
            JOIN produtos p_principal ON p_principal.id = pa.produto_principal_id
            JOIN produtos p_adicional ON p_adicional.id = pa.produto_adicional_id
            ORDER BY pa.id DESC";
        $stmt_orderbumps = $pdo->query($sql_orderbumps);
        $orderbumps = $stmt_orderbumps->fetchAll(PDO::FETCH_ASSOC);
    } catch (PDOException $e) {
        error_log("Erro ao buscar orderbumps: " . $e->getMessage());
        $orderbumps = [];
        // Não mostrar erro de orderbumps como mensagem principal, apenas log
    }
    
    // ============================================
    // 8. MENSAGENS DE SUCESSO
    // ============================================
    if (isset($_GET['produto_criado'])) {
        $mensagem = 'Produto criado com sucesso!';
        $tipo_mensagem = 'success';
    } elseif (isset($_GET['produto_atualizado'])) {
        $mensagem = 'Produto atualizado com sucesso!';
        $tipo_mensagem = 'success';
    } elseif (isset($_GET['produto_excluido'])) {
        $mensagem = 'Produto excluído com sucesso!';
        $tipo_mensagem = 'success';
    } elseif (isset($_GET['orderbump_criado'])) {
        $mensagem = 'Order Bump criado com sucesso!';
        $tipo_mensagem = 'success';
    } elseif (isset($_GET['orderbump_removido'])) {
        $mensagem = 'Order Bump removido com sucesso!';
        $tipo_mensagem = 'success';
    }
    
    // ============================================
    // 9. RENDERIZAÇÃO DO HTML
    // ============================================
    // O HTML sempre será renderizado, mesmo se houver erros
    // (os erros serão mostrados como mensagens)
    
} catch (Throwable $e) {
    // ============================================
    // CAPTURA DE ERROS GLOBAIS
    // ============================================
    // Este catch captura TODOS os erros não tratados anteriormente
    error_log("ERRO FATAL em produtos.php: " . $e->getMessage() . " | Linha: " . $e->getLine() . " | Arquivo: " . $e->getFile());
    
    // Definir variáveis padrão para evitar erros no HTML
    $produtos = [];
    $orderbumps = [];
    $produtoParaEditar = null;
    $mensagem = "Erro crítico na página de produtos: " . htmlspecialchars($e->getMessage());
    $tipo_mensagem = 'error';
    
    // Continuar para renderizar o HTML com a mensagem de erro
}
?>

<style>
    .produtos-container {
        max-width: 1400px;
        margin: 0 auto;
        padding: 20px;
    }
    
    .mensagem {
        padding: 15px 20px;
        border-radius: 8px;
        margin-bottom: 20px;
        font-weight: 600;
    }
    
    .mensagem.success {
        background: #d1fae5;
        color: #065f46;
        border: 1px solid #10b981;
    }
    
    .mensagem.error {
        background: #fee2e2;
        color: #991b1b;
        border: 1px solid #ef4444;
    }
    
    .produtos-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 30px;
    }
    
    .produtos-header h2 {
        font-size: 28px;
        font-weight: 700;
        color: var(--text-main);
    }
    
    .tabs {
        display: flex;
        gap: 10px;
        margin-bottom: 30px;
        border-bottom: 2px solid var(--border-color);
        padding-bottom: 15px;
        flex-wrap: wrap;
    }
    
    .tab-link {
        padding: 12px 24px;
        background: var(--bg-card);
        color: var(--text-main);
        border: 1px solid var(--border-color);
        border-radius: 6px;
        cursor: pointer;
        font-weight: 500;
        transition: all 0.2s;
        text-decoration: none;
        display: inline-block;
    }
    
    .tab-link:hover {
        background: var(--bg-body);
        border-color: var(--text-main);
    }
    
    .tab-link.active {
        background: var(--primary-color, #009846);
        color: white;
        border-color: var(--primary-color, #009846);
    }
    
    .tab-content {
        display: none;
        background: var(--bg-card);
        border-radius: 8px;
        border: 1px solid var(--border-color);
        box-shadow: var(--shadow-soft);
        padding: 30px;
        margin-top: 20px;
    }
    
    .tab-content.active {
        display: block;
    }
    
    .table-container {
        background: var(--bg-card);
        border-radius: 8px;
        border: 1px solid var(--border-color);
        box-shadow: var(--shadow-soft);
        overflow: hidden;
        /* Rolagem horizontal para mobile */
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch; /* Rolagem suave no iPhone */
    }
    
    table {
        width: 100%;
        border-collapse: collapse;
        min-width: 600px; /* Largura mínima para evitar que colunas fiquem espremidas */
    }
    
    thead {
        background: var(--bg-body);
    }
    
    th {
        padding: 15px;
        text-align: left;
        font-weight: 600;
        color: var(--text-main);
        border-bottom: 2px solid var(--border-color);
    }
    
    td {
        padding: 15px;
        border-bottom: 1px solid var(--border-color);
        color: var(--text-main);
    }
    
    tr:hover {
        background: var(--bg-body);
    }
    
    .action-buttons {
        display: flex;
        gap: 8px;
        flex-wrap: wrap;
    }
    
    .btn-acao {
        padding: 6px 12px;
        border: none;
        border-radius: 6px;
        font-size: 12px;
        font-weight: 600;
        cursor: pointer;
        text-decoration: none;
        display: inline-block;
        transition: all 0.2s;
    }
    
    .btn-acao:hover {
        transform: translateY(-1px);
        box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    }
    
    .btn-edit {
        background: rgba(59, 130, 246, 0.2);
        color: #60a5fa;
        border: 1px solid rgba(59, 130, 246, 0.3);
    }
    
    .btn-edit:hover {
        background: rgba(59, 130, 246, 0.3);
        color: #93c5fd;
    }
    
    .btn-view {
        background: rgba(16, 185, 129, 0.2);
        color: #34d399;
        border: 1px solid rgba(16, 185, 129, 0.3);
    }
    
    .btn-view:hover {
        background: rgba(16, 185, 129, 0.3);
        color: #6ee7b7;
    }
    
    .btn-delete {
        background: rgba(239, 68, 68, 0.2);
        color: #f87171;
        border: 1px solid rgba(239, 68, 68, 0.3);
    }
    
    .btn-delete:hover {
        background: rgba(239, 68, 68, 0.3);
        color: #fca5a5;
    }
    
    /* Botões de ação - Dark Mode (melhor contraste) */
    [data-theme="dark"] .btn-edit {
        background: rgba(59, 130, 246, 0.3);
        color: #93c5fd;
        border-color: rgba(59, 130, 246, 0.5);
    }
    
    [data-theme="dark"] .btn-edit:hover {
        background: rgba(59, 130, 246, 0.4);
        color: #bfdbfe;
    }
    
    [data-theme="dark"] .btn-view {
        background: rgba(16, 185, 129, 0.3);
        color: #6ee7b7;
        border-color: rgba(16, 185, 129, 0.5);
    }
    
    [data-theme="dark"] .btn-view:hover {
        background: rgba(16, 185, 129, 0.4);
        color: #86efac;
    }
    
    [data-theme="dark"] .btn-delete {
        background: rgba(239, 68, 68, 0.3);
        color: #fca5a5;
        border-color: rgba(239, 68, 68, 0.5);
    }
    
    [data-theme="dark"] .btn-delete:hover {
        background: rgba(239, 68, 68, 0.4);
        color: #fecaca;
    }
    
    .empty-state {
        text-align: center;
        padding: 60px 20px;
        color: var(--text-muted);
    }
    
    .empty-state i {
        font-size: 48px;
        color: var(--text-muted);
        margin-bottom: 16px;
    }
    
    .empty-state h3 {
        font-size: 18px;
        margin-bottom: 8px;
        color: var(--text-main);
    }
    
    .empty-state p {
        font-size: 14px;
        margin-bottom: 24px;
        color: var(--text-muted);
    }
    
    .form-group {
        margin-bottom: 20px;
    }
    
    .form-group label {
        display: block;
        margin-bottom: 8px;
        font-weight: 600;
        color: var(--text-main);
    }
    
    .form-group input,
    .form-group textarea,
    .form-group select {
        width: 100%;
        padding: 12px;
        border: 1px solid var(--border-color);
        border-radius: 6px;
        background: var(--bg-body);
        color: var(--text-main);
        font-size: 14px;
    }
    
    .form-group input:focus,
    .form-group textarea:focus,
    .form-group select:focus {
        outline: none;
        border-color: var(--primary-color, #009846);
        box-shadow: 0 0 0 3px rgba(0, 152, 70, 0.1);
    }
    
    .btn {
        padding: 12px 24px;
        background: var(--primary-color, #009846);
        color: white;
        border: none;
        border-radius: 6px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.2s;
        text-decoration: none;
        display: inline-block;
    }
    
    .btn:hover {
        background: var(--primary-color-hover, #007635);
        filter: brightness(0.9);
        transform: translateY(-1px);
        box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    }
    
    .btn-danger {
        background: #dc3545;
    }
    
    .btn-danger:hover {
        background: #c82333;
    }
</style>

<div class="produtos-container">
    <div class="produtos-header">
        <h2><i class="fas fa-box"></i> GESTÃO DE PRODUTOS</h2>
    </div>
    
    <?php if ($mensagem): ?>
        <div class="mensagem <?= $tipo_mensagem ?>">
            <?= $mensagem ?>
        </div>
    <?php endif; ?>
    
    <div class="tabs">
        <a href="#" class="tab-link active" data-tab="listar-produtos">
            <i class="fas fa-list"></i> Listar Produtos
        </a>
        <a href="#" class="tab-link" data-tab="adicionar-produto">
            <i class="fas fa-plus"></i> Adicionar Produto
        </a>
        <a href="#" class="tab-link" data-tab="adicionar-orderbump">
            <i class="fas fa-tags"></i> Criar Order Bump
        </a>
        <a href="#" class="tab-link" data-tab="gerenciar-orderbumps">
            <i class="fas fa-cog"></i> Gerenciar Order Bumps
        </a>
    </div>

    <div id="listar-produtos" class="tab-content active">
        <?php if (count($produtos) > 0): ?>
            <div class="table-container">
                <table>
                    <thead>
                        <tr>
                            <th>ID</th>
                            <th>Nome</th>
                            <th>Preço Atual</th>
                            <th>Ações</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($produtos as $produto): ?>
                        <tr>
                            <td>#<?= htmlspecialchars($produto['id'] ?? 'N/A'); ?></td>
                            <td>
                                <strong><?= htmlspecialchars($produto['nome'] ?? 'Sem nome'); ?></strong>
                                <small style="color:red; display:block; font-size:11px; margin-top:3px;">
                                    (Tipo: <?= htmlspecialchars($produto['tipo_entrega'] ?? 'NÃO DEFINIDO'); ?>)
                                </small>
                            </td>
                            <td>R$ <?= number_format(floatval($produto['preco_atual'] ?? 0), 2, ',', '.'); ?></td>
                            <td>
                                <div class="action-buttons">
                                    <a href="index.php?page=produtos&edit_id=<?= $produto['id']; ?>" class="btn-acao btn-edit">
                                        <i class="fas fa-edit"></i> Editar
                                    </a>
                                    <a href="/views/dados_pessoais.php?produto_id=<?= $produto['id']; ?>" target="_blank" class="btn-acao btn-view">
                                        <i class="fas fa-external-link-alt"></i> Ver Link
                                    </a>
                                    <?php if (isset($produto['tipo_entrega']) && $produto['tipo_entrega'] == 'area_membros'): ?>
                                        <a href="/dashboard/pages_usuario/editor_curso.php?produto_id=<?= $produto['id']; ?>" 
                                           class="btn-acao" 
                                           style="background: #9c27b0; color: white; font-weight: 600; margin-right: 5px;"
                                           title="Gerenciar módulos e aulas do curso">
                                            <i class="fas fa-play-circle"></i> Aulas
                                        </a>
                                    <?php endif; ?>
                                    <a href="index.php?page=produtos&delete_id=<?= $produto['id']; ?>" 
                                       onclick="return confirm('Tem certeza que deseja excluir este produto?')"
                                       class="btn-acao btn-delete">
                                        <i class="fas fa-trash"></i> Excluir
                                    </a>
                                </div>
                            </td>
                        </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
        <?php else: ?>
            <div class="empty-state">
                <i class="fas fa-box-open"></i>
                <h3>Nenhum produto encontrado</h3>
                <p>Você ainda não cadastrou nenhum produto. Comece criando seu primeiro produto!</p>
                <button class="btn" onclick="document.querySelector('[data-tab=\'adicionar-produto\']').click()">
                    <i class="fas fa-plus"></i> Criar Primeiro Produto
                </button>
            </div>
        <?php endif; ?>
    </div>

    <div id="adicionar-produto" class="tab-content">
        <h3 style="margin-bottom: 24px; color: var(--text-main);">
            <i class="fas fa-plus-circle"></i> Adicionar Novo Produto
        </h3>
        <form action="" method="POST" enctype="multipart/form-data">
            <div class="form-group">
                <label for="nome">
                    <i class="fas fa-tag"></i> Nome do Produto
                </label>
                <input type="text" id="nome" name="nome" placeholder="Digite o nome do produto" required>
            </div>

            <div class="form-group">
                <label for="descricao">
                    <i class="fas fa-align-left"></i> Descrição do Produto
                </label>
                <textarea id="descricao" name="descricao" rows="4" placeholder="Digite a descrição do produto" required></textarea>
            </div>

            <div class="form-group">
                <label for="preco_original">
                    <i class="fas fa-dollar-sign"></i> Preço Original
                </label>
                <input type="number" id="preco_original" name="preco_original" step="0.01" placeholder="R$ 0.00" required>
            </div>

            <div class="form-group">
                <label for="preco_atual">
                    <i class="fas fa-percentage"></i> Preço com Desconto
                </label>
                <input type="number" id="preco_atual" name="preco_atual" step="0.01" placeholder="R$ 0.00" required>
            </div>

            <div class="form-group">
                <label for="imagem_file">
                    <i class="fas fa-image"></i> Imagem do Produto
                </label>
                <input type="file" id="imagem_file" name="imagem_file" accept="image/jpeg,image/jpg,image/png,image/webp" style="margin-bottom: 10px;">
                <small style="color: var(--text-muted); font-size: 12px; display: block; margin-bottom: 10px;">Ou informe uma URL externa:</small>
                <input type="url" id="imagem" name="imagem" placeholder="https://exemplo.com/imagem.jpg">
            </div>

            <div class="form-group">
                <label for="categoria">
                    <i class="fas fa-folder"></i> Categoria do Produto
                </label>
                <input type="text" id="categoria" name="categoria" placeholder="Ex: Culinária, Digital, Educação" required>
            </div>

            <!-- Tipo de Produto (Digital/Físico) -->
            <div class="form-group">
                <label style="display: block; margin-bottom: 10px; font-weight: 600; color: var(--text-main);">
                    <i class="fas fa-box"></i> Tipo de Produto
                </label>
                <div style="display: flex; gap: 20px; align-items: center; padding: 15px; background: var(--bg-body); border: 2px solid var(--border-color); border-radius: 8px;">
                    <label style="display: flex; align-items: center; gap: 10px; cursor: pointer; flex: 1;">
                        <input type="radio" name="tipo_produto" value="digital" id="tipo_produto_digital" checked onchange="toggleTipoProduto()" style="width: 20px; height: 20px; cursor: pointer;">
                        <span style="color: var(--text-main); font-weight: 600;">
                            <i class="fas fa-digital-tachograph"></i> Produto Digital
                        </span>
                    </label>
                    <label style="display: flex; align-items: center; gap: 10px; cursor: pointer; flex: 1;">
                        <input type="radio" name="tipo_produto" value="fisico" id="tipo_produto_fisico" onchange="toggleTipoProduto()" style="width: 20px; height: 20px; cursor: pointer;">
                        <span style="color: var(--text-main); font-weight: 600;">
                            <i class="fas fa-shipping-fast"></i> Produto Físico
                        </span>
                    </label>
                </div>
                <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">
                    Digital: Entrega via link/email. Físico: Requer endereço de entrega e cálculo de frete.
                </small>
            </div>

            <!-- Configurações de Frete (Apenas para Produtos Físicos) -->
            <div id="config_frete_fisico" style="display: none; margin-top: 20px; padding: 20px; background: rgba(102, 126, 234, 0.05); border: 2px dashed var(--border-color); border-radius: 8px;">
                <h4 style="color: var(--text-main); margin-bottom: 15px;">
                    <i class="fas fa-truck"></i> Configurações de Frete
                </h4>
                
                <!-- Tipo de Frete -->
                <div class="form-group" style="margin-bottom: 20px;">
                    <label style="display: block; margin-bottom: 10px; font-weight: 600; color: var(--text-main);">
                        <i class="fas fa-money-bill-wave"></i> Tipo de Frete
                    </label>
                    <div style="display: flex; flex-direction: column; gap: 10px;">
                        <label style="display: flex; align-items: center; gap: 10px; cursor: pointer; padding: 10px; background: var(--bg-body); border: 1px solid var(--border-color); border-radius: 6px;">
                            <input type="radio" name="frete_tipo" value="gratis" checked onchange="toggleTipoFrete()" style="width: 18px; height: 18px; cursor: pointer;">
                            <span style="color: var(--text-main);">Frete Grátis</span>
                        </label>
                        <label style="display: flex; align-items: center; gap: 10px; cursor: pointer; padding: 10px; background: var(--bg-body); border: 1px solid var(--border-color); border-radius: 6px;">
                            <input type="radio" name="frete_tipo" value="fixo" onchange="toggleTipoFrete()" style="width: 18px; height: 18px; cursor: pointer;">
                            <span style="color: var(--text-main);">Taxa Fixa</span>
                        </label>
                        <label style="display: flex; align-items: center; gap: 10px; cursor: pointer; padding: 10px; background: var(--bg-body); border: 1px solid var(--border-color); border-radius: 6px;">
                            <input type="radio" name="frete_tipo" value="minimo" onchange="toggleTipoFrete()" style="width: 18px; height: 18px; cursor: pointer;">
                            <span style="color: var(--text-main);">Grátis acima de R$ X</span>
                        </label>
                    </div>
                </div>
                
                <!-- Valor Fixo do Frete -->
                <div id="frete_valor_fixo_container" class="form-group" style="display: none;">
                    <label for="frete_valor">
                        <i class="fas fa-dollar-sign"></i> Valor do Frete (R$)
                    </label>
                    <input type="number" id="frete_valor" name="frete_valor" step="0.01" min="0" placeholder="Ex: 15.90">
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Valor fixo que será cobrado de todos os clientes</small>
                </div>
                
                <!-- Valor Mínimo para Frete Grátis -->
                <div id="frete_minimo_gratis_container" class="form-group" style="display: none;">
                    <label for="frete_minimo_gratis">
                        <i class="fas fa-gift"></i> Valor Mínimo para Frete Grátis (R$)
                    </label>
                    <input type="number" id="frete_minimo_gratis" name="frete_minimo_gratis" step="0.01" min="0" placeholder="Ex: 99.00">
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Acima deste valor, o frete será grátis</small>
                </div>
                
                <!-- Prazo de Entrega -->
                <div class="form-group" style="display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-top: 15px;">
                    <div>
                        <label for="prazo_entrega_min">
                            <i class="fas fa-calendar-alt"></i> Prazo Mínimo (dias)
                        </label>
                        <input type="number" id="prazo_entrega_min" name="prazo_entrega_min" min="1" placeholder="Ex: 5">
                        <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Dias úteis mínimo</small>
                    </div>
                    <div>
                        <label for="prazo_entrega_max">
                            <i class="fas fa-calendar-check"></i> Prazo Máximo (dias)
                        </label>
                        <input type="number" id="prazo_entrega_max" name="prazo_entrega_max" min="1" placeholder="Ex: 10">
                        <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Dias úteis máximo</small>
                    </div>
                </div>
            </div>

            <!-- Métodos de Pagamento Permitidos -->
            <div class="form-group">
                <label style="display: block; margin-bottom: 10px; font-weight: 600; color: var(--text-main);">
                    <i class="fas fa-credit-card"></i> Métodos de Pagamento Permitidos
                </label>
                <select id="metodos_pagamento" name="metodos_pagamento" style="width: 100%; padding: 12px; border: 1px solid var(--border-color); border-radius: 4px; font-size: 14px; background: var(--bg-body); color: var(--text-main);">
                    <option value="todos">Todos (PIX + Cartão + Boleto)</option>
                    <option value="pix_cartao_boleto">PIX + Cartão + Boleto</option>
                    <option value="pix_cartao">PIX + Cartão</option>
                    <option value="pix">Somente PIX</option>
                </select>
                <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Escolha quais métodos de pagamento estarão disponíveis para este produto</small>
            </div>

            <div id="tipo_entrega_container" class="form-group">
                <label for="tipo_entrega">
                    <i class="fas fa-shipping-fast"></i> Tipo de Entrega (Apenas Digital)
                </label>
                <select id="tipo_entrega" name="tipo_entrega" onchange="toggleTipoEntrega()">
                    <option value="link">🔗 Link Simples (URL direta)</option>
                    <option value="dados_acesso">🔑 Dados de Acesso (Login/Senha fixos)</option>
                    <option value="area_membros">🎓 Área de Membros (LMS Interno)</option>
                </select>
                <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Escolha como o produto digital será entregue ao cliente</small>
            </div>

            <!-- Campos para Link Simples -->
            <div id="campos_link" class="campos-tipo-entrega">
                <div class="form-group">
                    <label for="link_entregavel">
                        <i class="fas fa-link"></i> Link do Entregável
                    </label>
                    <input type="url" id="link_entregavel" name="link_entregavel" placeholder="https://drive.google.com/...">
                </div>
            </div>

            <!-- Campos para Dados de Acesso -->
            <div id="campos_dados_acesso" class="campos-tipo-entrega" style="display: none;">
                <div class="form-group">
                    <label for="entrega_dados_titulo">
                        <i class="fas fa-heading"></i> Título
                    </label>
                    <input type="text" id="entrega_dados_titulo" name="entrega_dados_titulo" placeholder="Ex: Acesso à Plataforma">
                </div>
                <div class="form-group">
                    <label for="entrega_dados_descricao">
                        <i class="fas fa-align-left"></i> Descrição/Instruções
                    </label>
                    <textarea id="entrega_dados_descricao" name="entrega_dados_descricao" rows="3" placeholder="Instruções de acesso para o cliente..."></textarea>
                </div>
                <div class="form-group">
                    <label for="entrega_dados_acesso">
                        <i class="fas fa-key"></i> Dados de Acesso
                    </label>
                    <textarea id="entrega_dados_acesso" name="entrega_dados_acesso" rows="3" placeholder="Login: usuario@exemplo.com&#10;Senha: MinhaSenh@123"></textarea>
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Informe login, senha ou outros dados necessários</small>
                </div>
                <div class="form-group">
                    <label for="entrega_dados_botao_texto">
                        <i class="fas fa-button"></i> Texto do Botão
                    </label>
                    <input type="text" id="entrega_dados_botao_texto" name="entrega_dados_botao_texto" placeholder="Ex: Acessar Plataforma">
                </div>
                <div class="form-group">
                    <label for="entrega_dados_botao_link">
                        <i class="fas fa-external-link-alt"></i> Link do Botão
                    </label>
                    <input type="url" id="entrega_dados_botao_link" name="entrega_dados_botao_link" placeholder="https://plataforma.exemplo.com/login">
                </div>
            </div>

            <!-- Mensagem para Área de Membros -->
            <div id="campos_area_membros" class="campos-tipo-entrega" style="display: none;">
                <div style="padding: 20px; background: var(--bg-body); border: 2px dashed var(--border-color); border-radius: 8px; text-align: center;">
                    <i class="fas fa-graduation-cap" style="font-size: 48px; color: var(--primary-color, #009846); margin-bottom: 15px;"></i>
                    <h4 style="color: var(--text-main); margin-bottom: 10px;">Área de Membros Ativada</h4>
                    <p style="color: var(--text-muted); margin: 0;">O conteúdo será gerenciado pelo Construtor de Cursos após salvar o produto.</p>
                    <p style="color: var(--text-muted); margin-top: 10px; font-size: 12px;">Após salvar, você poderá criar módulos e aulas acessando "Gerenciar Aulas" na listagem de produtos.</p>
                </div>
            </div>

            <div style="margin-top: 30px; padding-top: 30px; border-top: 2px solid var(--border-color);">
                <h4 style="color: var(--text-main); margin-bottom: 20px;">
                    <i class="fas fa-palette"></i> Configurações do Checkout
                </h4>

                <div class="form-group">
                    <label for="checkout_background_color">
                        <i class="fas fa-fill-drip"></i> Cor de Fundo do Checkout
                    </label>
                    <div style="display: flex; gap: 10px; align-items: center;">
                        <input type="color" id="checkout_background_color" name="checkout_background_color" value="#0f0c29" style="width: 80px; height: 40px; border: 1px solid var(--border-color); border-radius: 4px; cursor: pointer;">
                        <input type="text" id="checkout_background_color_text" placeholder="#0f0c29" value="#0f0c29" style="flex: 1; padding: 10px; border: 1px solid var(--border-color); border-radius: 4px; background: var(--bg-body); color: var(--text-main);">
                    </div>
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Escolha a cor de fundo que aparecerá no checkout deste produto</small>
                </div>

                <div class="form-group">
                    <label for="checkout_banner_file">
                        <i class="fas fa-image"></i> Imagem de Banner do Checkout (Opcional)
                    </label>
                    <input type="file" id="checkout_banner_file" name="checkout_banner_file" accept="image/jpeg,image/jpg,image/png,image/webp" style="margin-bottom: 10px;">
                    <small style="color: var(--text-muted); font-size: 12px; display: block; margin-bottom: 10px;">Ou informe uma URL externa:</small>
                    <input type="url" id="checkout_banner" name="checkout_banner" placeholder="https://exemplo.com/banner.jpg">
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">URL da imagem de banner que aparecerá no topo do checkout (não no fundo)</small>
                </div>

                <div class="form-group">
                    <label for="checkout_main_card_background">
                        <i class="fas fa-square"></i> Cor de Fundo do Card Principal
                    </label>
                    <div style="display: flex; gap: 10px; align-items: center;">
                        <input type="color" id="checkout_main_card_background" name="checkout_main_card_background" value="#1a1a2e" style="width: 80px; height: 40px; border: 1px solid var(--border-color); border-radius: 4px; cursor: pointer;">
                        <input type="text" id="checkout_main_card_background_text" placeholder="#1a1a2e" value="#1a1a2e" style="flex: 1; padding: 10px; border: 1px solid var(--border-color); border-radius: 4px; background: var(--bg-body); color: var(--text-main);">
                    </div>
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Cor sólida do card principal onde ficam os campos de dados (use cor sólida, ex: #000000 para preto)</small>
                </div>

                <div class="form-group">
                    <label for="checkout_text_color">
                        <i class="fas fa-font"></i> Cor dos Textos
                    </label>
                    <div style="display: flex; gap: 10px; align-items: center;">
                        <input type="color" id="checkout_text_color" name="checkout_text_color" value="#ffffff" style="width: 80px; height: 40px; border: 1px solid var(--border-color); border-radius: 4px; cursor: pointer;">
                        <input type="text" id="checkout_text_color_text" placeholder="#ffffff" value="#ffffff" style="flex: 1; padding: 10px; border: 1px solid var(--border-color); border-radius: 4px; background: var(--bg-body); color: var(--text-main);">
                    </div>
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Cor principal dos textos do checkout</small>
                </div>

                <div class="form-group">
                    <label for="provas_sociais">
                        <i class="fas fa-star"></i> Provas Sociais (Opcional - JSON)
                    </label>
                    <textarea id="provas_sociais" name="provas_sociais" rows="6" placeholder='[{"nome":"João Silva","imagem":"https://exemplo.com/foto.jpg","mensagem":"Produto excelente!"},{"nome":"Maria Santos","imagem":"https://exemplo.com/foto2.jpg","mensagem":"Super recomendo!"}]'></textarea>
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">JSON com provas sociais. Formato: [{"nome":"Nome","imagem":"URL","mensagem":"Feedback"}]</small>
                </div>

                <div class="form-group">
                    <label style="display: flex; align-items: center; gap: 10px; cursor: pointer;">
                        <input type="checkbox" id="is_marketplace" name="is_marketplace" value="1" style="width: 20px; height: 20px; cursor: pointer;">
                        <span style="color: var(--text-main);"><i class="fas fa-store"></i> Mostrar este produto no Marketing Place</span>
                    </label>
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Ao marcar, o produto aparecerá na vitrine pública do marketplace</small>
                </div>
                
                <div class="form-group" style="margin-top: 20px; padding-top: 20px; border-top: 2px solid var(--border-color);">
                    <h4 style="color: var(--text-main); margin-bottom: 15px;">
                        <i class="fas fa-handshake"></i> Sistema de Afiliados
                    </h4>
                    
                    <label style="display: flex; align-items: center; gap: 10px; cursor: pointer; margin-bottom: 15px;">
                        <input type="checkbox" id="afiliacao_ativa" name="afiliacao_ativa" value="1" style="width: 20px; height: 20px; cursor: pointer;">
                        <span style="color: var(--text-main);"><i class="fas fa-users"></i> Permitir afiliação para este produto</span>
                    </label>
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block; margin-bottom: 15px;">Ao marcar, outros usuários poderão se tornar afiliados deste produto</small>
                    
                    <label for="comissao_padrao" style="display: block; margin-bottom: 5px; font-weight: 600; color: var(--text-main);">
                        <i class="fas fa-percentage"></i> Comissão Padrão (%)
                    </label>
                    <input type="number" id="comissao_padrao" name="comissao_padrao" step="0.01" min="0" max="100" placeholder="Ex: 50.00" 
                           style="width: 100%; padding: 12px; border: 1px solid var(--border-color); border-radius: 4px; font-size: 14px; background: var(--bg-body); color: var(--text-main);">
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Percentual de comissão que os afiliados receberão (ex: 50.00 = 50%)</small>
                    
                    <label for="affiliate_material_url" style="display: block; margin-bottom: 5px; font-weight: 600; color: var(--text-main); margin-top: 20px;">
                        <i class="fas fa-folder-open"></i> Link do Material de Apoio (Opcional)
                    </label>
                    <input type="url" id="affiliate_material_url" name="affiliate_material_url" placeholder="https://drive.google.com/ou-outro-link" 
                           style="width: 100%; padding: 12px; border: 1px solid var(--border-color); border-radius: 4px; font-size: 14px; background: var(--bg-body); color: var(--text-main);">
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Link para material de apoio que será disponibilizado aos afiliados no marketplace</small>
                </div>
            </div>
            
            <div class="form-group" style="margin-top: 20px; padding-top: 20px; border-top: 2px solid var(--border-color);">
                <h4 style="color: var(--text-main); margin-bottom: 15px;">
                    <i class="fas fa-external-link-alt"></i> Página de Vendas Externa
                </h4>
                
                <label style="display: flex; align-items: center; gap: 10px; cursor: pointer; margin-bottom: 15px;">
                    <input type="checkbox" id="enable_sales_page" name="enable_sales_page" value="1" style="width: 20px; height: 20px; cursor: pointer;" onchange="toggleSalesPageUrl()">
                    <span style="color: var(--text-main);"><i class="fas fa-link"></i> Ativar Link de Página de Vendas</span>
                </label>
                <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block; margin-bottom: 15px;">Ao marcar, um botão "VER PÁGINA" aparecerá no Marketplace acima do botão "Afiliar-se"</small>
                
                <div id="sales_page_url_container" style="display: none;">
                    <label for="sales_page_url" style="display: block; margin-bottom: 5px; font-weight: 600; color: var(--text-main);">
                        <i class="fas fa-globe"></i> URL da Página
                    </label>
                    <input type="url" id="sales_page_url" name="sales_page_url" placeholder="https://exemplo.com/pagina-vendas" 
                           style="width: 100%; padding: 12px; border: 1px solid var(--border-color); border-radius: 4px; font-size: 14px; background: var(--bg-body); color: var(--text-main);">
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">URL completa da página de vendas externa (ex: https://meusite.com/pagina-vendas)</small>
                </div>
            </div>

            <button type="submit" class="btn">
                <i class="fas fa-save"></i> Adicionar Produto
            </button>
        </form>
    </div>

    <div id="adicionar-orderbump" class="tab-content">
        <h3 style="margin-bottom: 24px; color: var(--text-main);">
            <i class="fas fa-tags"></i> Criar Order Bump
        </h3>
        <form action="" method="POST" enctype="multipart/form-data">
            <div class="form-group">
                <label for="produto_principal">
                    <i class="fas fa-box"></i> Produto Principal
                </label>
                <select name="produto_principal" id="produto_principal" required>
                    <option value="">Selecione um produto...</option>
                    <?php foreach ($produtos as $produto): ?>
                        <option value="<?= htmlspecialchars($produto['id']); ?>">
                            <?= htmlspecialchars($produto['nome']); ?>
                        </option>
                    <?php endforeach; ?>
                </select>
            </div>

            <div class="form-group">
                <label for="nome_adicional">
                    <i class="fas fa-plus-circle"></i> Nome do Produto Adicional
                </label>
                <input type="text" id="nome_adicional" name="nome_adicional" required>
            </div>

            <div class="form-group">
                <label for="descricao_adicional">
                    <i class="fas fa-align-left"></i> Descrição do Produto Adicional
                </label>
                <textarea id="descricao_adicional" name="descricao_adicional" rows="4" required></textarea>
            </div>

            <div class="form-group">
                <label for="preco_original">
                    <i class="fas fa-dollar-sign"></i> Preço Original (R$)
                </label>
                <input type="number" id="preco_original" name="preco_original" step="0.01">
            </div>

            <div class="form-group">
                <label for="preco_promocional">
                    <i class="fas fa-percentage"></i> Preço Promocional (R$)
                </label>
                <input type="number" id="preco_promocional" name="preco_promocional" step="0.01" required>
            </div>

            <div class="form-group">
                <label for="imagem_file">
                    <i class="fas fa-image"></i> Imagem do Order Bump
                </label>
                <input type="file" id="imagem_file" name="imagem_file" accept="image/jpeg,image/jpg,image/png,image/webp" style="margin-bottom: 10px;">
                <small style="color: var(--text-muted); font-size: 12px; display: block; margin-bottom: 10px;">Ou informe uma URL externa:</small>
                <input type="url" id="imagem" name="imagem" placeholder="https://exemplo.com/imagem.jpg">
            </div>

            <div class="form-group">
                <label for="titulo_rosa">
                    <i class="fas fa-star"></i> Título com Destaque
                </label>
                <input type="text" id="titulo_rosa" name="titulo_rosa" required>
            </div>

            <div class="form-group">
                <label for="link_pagina">
                    <i class="fas fa-external-link-alt"></i> Link da Página do Produto (Opcional)
                </label>
                <input type="url" id="link_pagina" name="link_pagina" placeholder="https://exemplo.com/produto">
                <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Se preenchido, aparecerá um botão "Ver Página" no orderbump</small>
            </div>

            <button type="submit" class="btn">
                <i class="fas fa-plus"></i> Criar Order Bump
            </button>
        </form>
    </div>

    <div id="editar-produto" class="tab-content" <?php if (!$produtoParaEditar) echo 'style="display:none;"'; ?>>
        <?php if ($produtoParaEditar): ?>
        <h3 style="margin-bottom: 24px; color: var(--text-main);">
            <i class="fas fa-edit"></i> Editar Produto
        </h3>
        <form action="" method="POST" enctype="multipart/form-data">
            <input type="hidden" name="id" value="<?= htmlspecialchars($produtoParaEditar['id']); ?>">
            
            <div class="form-group">
                <label for="nome">
                    <i class="fas fa-tag"></i> Nome do Produto
                </label>
                <input type="text" id="nome" name="nome" value="<?= htmlspecialchars($produtoParaEditar['nome'] ?? ''); ?>" required>
            </div>

            <div class="form-group">
                <label for="descricao">
                    <i class="fas fa-align-left"></i> Descrição do Produto
                </label>
                <textarea id="descricao" name="descricao" rows="4" required><?= htmlspecialchars($produtoParaEditar['descricao'] ?? ''); ?></textarea>
            </div>

            <div class="form-group">
                <label for="preco_original">
                    <i class="fas fa-dollar-sign"></i> Preço Original
                </label>
                <input type="number" id="preco_original" name="preco_original" value="<?= htmlspecialchars($produtoParaEditar['preco_original'] ?? 0); ?>" step="0.01" required>
            </div>

            <div class="form-group">
                <label for="preco_atual">
                    <i class="fas fa-percentage"></i> Preço com Desconto
                </label>
                <input type="number" id="preco_atual" name="preco_atual" value="<?= htmlspecialchars($produtoParaEditar['preco_atual'] ?? 0); ?>" step="0.01" required>
            </div>

            <div class="form-group">
                <label for="imagem_file">
                    <i class="fas fa-image"></i> Imagem do Produto
                </label>
                <?php if (!empty($produtoParaEditar['imagem'])): ?>
                    <div style="margin-bottom: 10px;">
                        <small style="color: var(--text-muted); font-size: 12px; display: block; margin-bottom: 5px;">Imagem atual:</small>
                        <input type="text" id="imagem_atual_display" value="<?= htmlspecialchars($produtoParaEditar['imagem']); ?>" readonly style="width: 100%; padding: 8px; background: var(--bg-body); border: 1px solid var(--border-color); border-radius: 4px; color: var(--text-muted); font-size: 12px;">
                        <?php if (!empty($produtoParaEditar['imagem'])): ?>
                            <img src="<?= htmlspecialchars($produtoParaEditar['imagem']); ?>" alt="Imagem atual" style="max-width: 200px; max-height: 200px; margin-top: 10px; border: 1px solid var(--border-color); border-radius: 4px; display: block;" onerror="this.style.display='none';">
                        <?php endif; ?>
                    </div>
                <?php endif; ?>
                <input type="file" id="imagem_file_update" name="imagem_file" accept="image/jpeg,image/jpg,image/png,image/webp" style="margin-bottom: 10px;">
                <small style="color: var(--text-muted); font-size: 12px; display: block; margin-bottom: 10px;">Ou informe uma URL externa para alterar:</small>
                <input type="url" id="imagem_update" name="imagem" placeholder="https://exemplo.com/imagem.jpg" value="<?= htmlspecialchars(trim($produtoParaEditar['imagem'] ?? '')); ?>" style="margin-bottom: 10px;">
                
                <!-- Botão específico para atualizar apenas a imagem -->
                <button type="button" onclick="atualizarImagemProduto(<?= $produtoParaEditar['id']; ?>)" style="background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; border: none; padding: 10px 20px; border-radius: 6px; cursor: pointer; font-weight: 600; display: inline-flex; align-items: center; gap: 8px; transition: all 0.3s;">
                    <i class="fas fa-sync-alt"></i> Atualizar Imagem
                </button>
                <small style="color: var(--text-muted); font-size: 11px; display: block; margin-top: 5px;">Clique aqui para atualizar apenas a imagem do produto</small>
            </div>

            <div class="form-group">
                <label for="categoria">
                    <i class="fas fa-folder"></i> Categoria do Produto
                </label>
                <input type="text" id="categoria" name="categoria" value="<?= htmlspecialchars($produtoParaEditar['categoria'] ?? ''); ?>" required>
            </div>

            <!-- Tipo de Produto (Digital/Físico) - EDIT -->
            <div class="form-group">
                <label style="display: block; margin-bottom: 10px; font-weight: 600; color: var(--text-main);">
                    <i class="fas fa-box"></i> Tipo de Produto
                </label>
                <div style="display: flex; gap: 20px; align-items: center; padding: 15px; background: var(--bg-body); border: 2px solid var(--border-color); border-radius: 8px;">
                    <label style="display: flex; align-items: center; gap: 10px; cursor: pointer; flex: 1;">
                        <input type="radio" name="tipo_produto" value="digital" id="tipo_produto_digital_edit" <?= ($produtoParaEditar['tipo_produto'] ?? 'digital') == 'digital' ? 'checked' : ''; ?> onchange="toggleTipoProdutoEdit()" style="width: 20px; height: 20px; cursor: pointer;">
                        <span style="color: var(--text-main); font-weight: 600;">
                            <i class="fas fa-digital-tachograph"></i> Produto Digital
                        </span>
                    </label>
                    <label style="display: flex; align-items: center; gap: 10px; cursor: pointer; flex: 1;">
                        <input type="radio" name="tipo_produto" value="fisico" id="tipo_produto_fisico_edit" <?= ($produtoParaEditar['tipo_produto'] ?? 'digital') == 'fisico' ? 'checked' : ''; ?> onchange="toggleTipoProdutoEdit()" style="width: 20px; height: 20px; cursor: pointer;">
                        <span style="color: var(--text-main); font-weight: 600;">
                            <i class="fas fa-shipping-fast"></i> Produto Físico
                        </span>
                    </label>
                </div>
            </div>

            <!-- Configurações de Frete (Apenas para Produtos Físicos) - EDIT -->
            <div id="config_frete_fisico_edit" style="display: <?= ($produtoParaEditar['tipo_produto'] ?? 'digital') == 'fisico' ? 'block' : 'none'; ?>; margin-top: 20px; padding: 20px; background: rgba(102, 126, 234, 0.05); border: 2px dashed var(--border-color); border-radius: 8px;">
                <h4 style="color: var(--text-main); margin-bottom: 15px;">
                    <i class="fas fa-truck"></i> Configurações de Frete
                </h4>
                
                <!-- Tipo de Frete -->
                <div class="form-group" style="margin-bottom: 20px;">
                    <label style="display: block; margin-bottom: 10px; font-weight: 600; color: var(--text-main);">
                        <i class="fas fa-money-bill-wave"></i> Tipo de Frete
                    </label>
                    <div style="display: flex; flex-direction: column; gap: 10px;">
                        <label style="display: flex; align-items: center; gap: 10px; cursor: pointer; padding: 10px; background: var(--bg-body); border: 1px solid var(--border-color); border-radius: 6px;">
                            <input type="radio" name="frete_tipo" value="gratis" id="frete_tipo_gratis_edit" <?= ($produtoParaEditar['frete_tipo'] ?? 'gratis') == 'gratis' ? 'checked' : ''; ?> onchange="toggleTipoFreteEdit()" style="width: 18px; height: 18px; cursor: pointer;">
                            <span style="color: var(--text-main);">Frete Grátis</span>
                        </label>
                        <label style="display: flex; align-items: center; gap: 10px; cursor: pointer; padding: 10px; background: var(--bg-body); border: 1px solid var(--border-color); border-radius: 6px;">
                            <input type="radio" name="frete_tipo" value="fixo" id="frete_tipo_fixo_edit" <?= ($produtoParaEditar['frete_tipo'] ?? 'gratis') == 'fixo' ? 'checked' : ''; ?> onchange="toggleTipoFreteEdit()" style="width: 18px; height: 18px; cursor: pointer;">
                            <span style="color: var(--text-main);">Taxa Fixa</span>
                        </label>
                        <label style="display: flex; align-items: center; gap: 10px; cursor: pointer; padding: 10px; background: var(--bg-body); border: 1px solid var(--border-color); border-radius: 6px;">
                            <input type="radio" name="frete_tipo" value="minimo" id="frete_tipo_minimo_edit" <?= ($produtoParaEditar['frete_tipo'] ?? 'gratis') == 'minimo' ? 'checked' : ''; ?> onchange="toggleTipoFreteEdit()" style="width: 18px; height: 18px; cursor: pointer;">
                            <span style="color: var(--text-main);">Grátis acima de R$ X</span>
                        </label>
                    </div>
                </div>
                
                <!-- Valor Fixo do Frete -->
                <div id="frete_valor_fixo_container_edit" class="form-group" style="display: <?= ($produtoParaEditar['frete_tipo'] ?? 'gratis') == 'fixo' ? 'block' : 'none'; ?>;">
                    <label for="frete_valor_edit">
                        <i class="fas fa-dollar-sign"></i> Valor do Frete (R$)
                    </label>
                    <input type="number" id="frete_valor_edit" name="frete_valor" step="0.01" min="0" value="<?= htmlspecialchars($produtoParaEditar['frete_valor'] ?? ''); ?>" placeholder="Ex: 15.90">
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Valor fixo que será cobrado de todos os clientes</small>
                </div>
                
                <!-- Valor Mínimo para Frete Grátis -->
                <div id="frete_minimo_gratis_container_edit" class="form-group" style="display: <?= ($produtoParaEditar['frete_tipo'] ?? 'gratis') == 'minimo' ? 'block' : 'none'; ?>;">
                    <label for="frete_minimo_gratis_edit">
                        <i class="fas fa-gift"></i> Valor Mínimo para Frete Grátis (R$)
                    </label>
                    <input type="number" id="frete_minimo_gratis_edit" name="frete_minimo_gratis" step="0.01" min="0" value="<?= htmlspecialchars($produtoParaEditar['frete_minimo_gratis'] ?? ''); ?>" placeholder="Ex: 99.00">
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Acima deste valor, o frete será grátis</small>
                </div>
                
                <!-- Prazo de Entrega -->
                <div class="form-group" style="display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-top: 15px;">
                    <div>
                        <label for="prazo_entrega_min_edit">
                            <i class="fas fa-calendar-alt"></i> Prazo Mínimo (dias)
                        </label>
                        <input type="number" id="prazo_entrega_min_edit" name="prazo_entrega_min" min="1" value="<?= htmlspecialchars($produtoParaEditar['prazo_entrega_min'] ?? ''); ?>" placeholder="Ex: 5">
                        <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Dias úteis mínimo</small>
                    </div>
                    <div>
                        <label for="prazo_entrega_max_edit">
                            <i class="fas fa-calendar-check"></i> Prazo Máximo (dias)
                        </label>
                        <input type="number" id="prazo_entrega_max_edit" name="prazo_entrega_max" min="1" value="<?= htmlspecialchars($produtoParaEditar['prazo_entrega_max'] ?? ''); ?>" placeholder="Ex: 10">
                        <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Dias úteis máximo</small>
                    </div>
                </div>
            </div>

            <!-- Métodos de Pagamento Permitidos - EDIT -->
            <div class="form-group">
                <label style="display: block; margin-bottom: 10px; font-weight: 600; color: var(--text-main);">
                    <i class="fas fa-credit-card"></i> Métodos de Pagamento Permitidos
                </label>
                <select id="metodos_pagamento_edit" name="metodos_pagamento" style="width: 100%; padding: 12px; border: 1px solid var(--border-color); border-radius: 4px; font-size: 14px; background: var(--bg-body); color: var(--text-main);">
                    <option value="todos" <?= ($produtoParaEditar['metodos_pagamento'] ?? 'todos') == 'todos' ? 'selected' : ''; ?>>Todos (PIX + Cartão + Boleto)</option>
                    <option value="pix_cartao_boleto" <?= ($produtoParaEditar['metodos_pagamento'] ?? 'todos') == 'pix_cartao_boleto' ? 'selected' : ''; ?>>PIX + Cartão + Boleto</option>
                    <option value="pix_cartao" <?= ($produtoParaEditar['metodos_pagamento'] ?? 'todos') == 'pix_cartao' ? 'selected' : ''; ?>>PIX + Cartão</option>
                    <option value="pix" <?= ($produtoParaEditar['metodos_pagamento'] ?? 'todos') == 'pix' ? 'selected' : ''; ?>>Somente PIX</option>
                </select>
                <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Escolha quais métodos de pagamento estarão disponíveis para este produto</small>
            </div>

            <div id="tipo_entrega_container_edit" class="form-group" style="display: <?= ($produtoParaEditar['tipo_produto'] ?? 'digital') == 'fisico' ? 'none' : 'block'; ?>;">
                <label for="tipo_entrega_edit">
                    <i class="fas fa-shipping-fast"></i> Tipo de Entrega (Apenas Digital)
                </label>
                <select id="tipo_entrega_edit" name="tipo_entrega" onchange="toggleTipoEntregaEdit()">
                    <option value="link" <?= ($produtoParaEditar['tipo_entrega'] ?? 'link') == 'link' ? 'selected' : ''; ?>>🔗 Link Simples (URL direta)</option>
                    <option value="dados_acesso" <?= ($produtoParaEditar['tipo_entrega'] ?? '') == 'dados_acesso' ? 'selected' : ''; ?>>🔑 Dados de Acesso (Login/Senha fixos)</option>
                    <option value="area_membros" <?= ($produtoParaEditar['tipo_entrega'] ?? '') == 'area_membros' ? 'selected' : ''; ?>>🎓 Área de Membros (LMS Interno)</option>
                </select>
                <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Escolha como o produto digital será entregue ao cliente</small>
            </div>

            <!-- Campos para Link Simples (EDIT) -->
            <div id="campos_link_edit" class="campos-tipo-entrega">
                <div class="form-group">
                    <label for="link_entregavel_edit">
                        <i class="fas fa-link"></i> Link do Entregável
                    </label>
                    <input type="url" id="link_entregavel_edit" name="link_entregavel" value="<?= htmlspecialchars($produtoParaEditar['link_entregavel'] ?? ''); ?>">
                </div>
            </div>

            <!-- Campos para Dados de Acesso (EDIT) -->
            <div id="campos_dados_acesso_edit" class="campos-tipo-entrega" style="display: none;">
                <div class="form-group">
                    <label for="entrega_dados_titulo_edit">
                        <i class="fas fa-heading"></i> Título
                    </label>
                    <input type="text" id="entrega_dados_titulo_edit" name="entrega_dados_titulo" value="<?= htmlspecialchars($produtoParaEditar['entrega_dados_titulo'] ?? ''); ?>" placeholder="Ex: Acesso à Plataforma">
                </div>
                <div class="form-group">
                    <label for="entrega_dados_descricao_edit">
                        <i class="fas fa-align-left"></i> Descrição/Instruções
                    </label>
                    <textarea id="entrega_dados_descricao_edit" name="entrega_dados_descricao" rows="3" placeholder="Instruções de acesso para o cliente..."><?= htmlspecialchars($produtoParaEditar['entrega_dados_descricao'] ?? ''); ?></textarea>
                </div>
                <div class="form-group">
                    <label for="entrega_dados_acesso_edit">
                        <i class="fas fa-key"></i> Dados de Acesso
                    </label>
                    <textarea id="entrega_dados_acesso_edit" name="entrega_dados_acesso" rows="3" placeholder="Login: usuario@exemplo.com&#10;Senha: MinhaSenh@123"><?= htmlspecialchars($produtoParaEditar['entrega_dados_acesso'] ?? ''); ?></textarea>
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Informe login, senha ou outros dados necessários</small>
                </div>
                <div class="form-group">
                    <label for="entrega_dados_botao_texto_edit">
                        <i class="fas fa-button"></i> Texto do Botão
                    </label>
                    <input type="text" id="entrega_dados_botao_texto_edit" name="entrega_dados_botao_texto" value="<?= htmlspecialchars($produtoParaEditar['entrega_dados_botao_texto'] ?? ''); ?>" placeholder="Ex: Acessar Plataforma">
                </div>
                <div class="form-group">
                    <label for="entrega_dados_botao_link_edit">
                        <i class="fas fa-external-link-alt"></i> Link do Botão
                    </label>
                    <input type="url" id="entrega_dados_botao_link_edit" name="entrega_dados_botao_link" value="<?= htmlspecialchars($produtoParaEditar['entrega_dados_botao_link'] ?? ''); ?>" placeholder="https://plataforma.exemplo.com/login">
                </div>
            </div>

            <!-- Mensagem para Área de Membros (EDIT) -->
            <div id="campos_area_membros_edit" class="campos-tipo-entrega" style="display: none;">
                <div style="padding: 20px; background: var(--bg-body); border: 2px dashed var(--border-color); border-radius: 8px; text-align: center;">
                    <i class="fas fa-graduation-cap" style="font-size: 48px; color: var(--primary-color, #009846); margin-bottom: 15px;"></i>
                    <h4 style="color: var(--text-main); margin-bottom: 10px;">Área de Membros Ativada</h4>
                    <p style="color: var(--text-muted); margin: 0;">O conteúdo será gerenciado pelo Construtor de Cursos.</p>
                    <p style="color: var(--text-muted); margin-top: 10px; font-size: 12px;">Você pode criar módulos e aulas acessando "Gerenciar Aulas" na listagem de produtos.</p>
                </div>
            </div>

            <div style="margin-top: 30px; padding-top: 30px; border-top: 2px solid var(--border-color);">
                <h4 style="color: var(--text-main); margin-bottom: 20px;">
                    <i class="fas fa-palette"></i> Configurações do Checkout
                </h4>

                <div class="form-group">
                    <label for="checkout_background_color">
                        <i class="fas fa-fill-drip"></i> Cor de Fundo do Checkout
                    </label>
                    <div style="display: flex; gap: 10px; align-items: center;">
                        <input type="color" id="checkout_background_color" name="checkout_background_color" value="<?= htmlspecialchars($produtoParaEditar['checkout_background_color'] ?? '#0f0c29'); ?>" style="width: 80px; height: 40px; border: 1px solid var(--border-color); border-radius: 4px; cursor: pointer;">
                        <input type="text" id="checkout_background_color_text" value="<?= htmlspecialchars($produtoParaEditar['checkout_background_color'] ?? '#0f0c29'); ?>" style="flex: 1; padding: 10px; border: 1px solid var(--border-color); border-radius: 4px; background: var(--bg-body); color: var(--text-main);">
                    </div>
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Escolha a cor de fundo que aparecerá no checkout deste produto</small>
                </div>

                <div class="form-group">
                    <label for="checkout_banner_file">
                        <i class="fas fa-image"></i> Imagem de Banner do Checkout (Opcional)
                    </label>
                    <?php if (!empty($produtoParaEditar['checkout_banner'])): ?>
                        <div style="margin-bottom: 10px;">
                            <small style="color: var(--text-muted); font-size: 12px; display: block; margin-bottom: 5px;">Banner atual:</small>
                            <input type="text" value="<?= htmlspecialchars($produtoParaEditar['checkout_banner']); ?>" readonly style="width: 100%; padding: 8px; background: var(--bg-body); border: 1px solid var(--border-color); border-radius: 4px; color: var(--text-muted); font-size: 12px;">
                        </div>
                    <?php endif; ?>
                    <input type="file" id="checkout_banner_file" name="checkout_banner_file" accept="image/jpeg,image/jpg,image/png,image/webp" style="margin-bottom: 10px;">
                    <small style="color: var(--text-muted); font-size: 12px; display: block; margin-bottom: 10px;">Ou informe uma URL externa para alterar:</small>
                    <input type="url" id="checkout_banner" name="checkout_banner" value="<?= htmlspecialchars($produtoParaEditar['checkout_banner'] ?? ''); ?>" placeholder="https://exemplo.com/banner.jpg">
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">URL da imagem de banner que aparecerá no topo do checkout (não no fundo)</small>
                </div>

                <div class="form-group">
                    <label for="checkout_main_card_background">
                        <i class="fas fa-square"></i> Cor de Fundo do Card Principal
                    </label>
                    <div style="display: flex; gap: 10px; align-items: center;">
                        <input type="color" id="checkout_main_card_background" name="checkout_main_card_background" value="<?= htmlspecialchars($produtoParaEditar['checkout_main_card_background'] ?? '#1a1a2e'); ?>" style="width: 80px; height: 40px; border: 1px solid var(--border-color); border-radius: 4px; cursor: pointer;">
                        <input type="text" id="checkout_main_card_background_text" value="<?= htmlspecialchars($produtoParaEditar['checkout_main_card_background'] ?? '#1a1a2e'); ?>" style="flex: 1; padding: 10px; border: 1px solid var(--border-color); border-radius: 4px; background: var(--bg-body); color: var(--text-main);">
                    </div>
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Cor sólida do card principal onde ficam os campos de dados (use cor sólida, ex: #000000 para preto)</small>
                </div>

                <div class="form-group">
                    <label for="checkout_text_color">
                        <i class="fas fa-font"></i> Cor dos Textos
                    </label>
                    <div style="display: flex; gap: 10px; align-items: center;">
                        <input type="color" id="checkout_text_color" name="checkout_text_color" value="<?= htmlspecialchars($produtoParaEditar['checkout_text_color'] ?? '#ffffff'); ?>" style="width: 80px; height: 40px; border: 1px solid var(--border-color); border-radius: 4px; cursor: pointer;">
                        <input type="text" id="checkout_text_color_text" value="<?= htmlspecialchars($produtoParaEditar['checkout_text_color'] ?? '#ffffff'); ?>" style="flex: 1; padding: 10px; border: 1px solid var(--border-color); border-radius: 4px; background: var(--bg-body); color: var(--text-main);">
                    </div>
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Cor principal dos textos do checkout</small>
                </div>

                <div class="form-group">
                    <label for="provas_sociais">
                        <i class="fas fa-star"></i> Provas Sociais (Opcional - JSON)
                    </label>
                    <textarea id="provas_sociais" name="provas_sociais" rows="6" placeholder='[{"nome":"João Silva","imagem":"https://exemplo.com/foto.jpg","mensagem":"Produto excelente!"}]'><?= htmlspecialchars($produtoParaEditar['provas_sociais'] ?? ''); ?></textarea>
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">JSON com provas sociais. Formato: [{"nome":"Nome","imagem":"URL","mensagem":"Feedback"}]</small>
                </div>

                <div class="form-group">
                    <label style="display: flex; align-items: center; gap: 10px; cursor: pointer;">
                        <input type="checkbox" id="is_marketplace" name="is_marketplace" value="1" <?= (!empty($produtoParaEditar['is_marketplace']) && $produtoParaEditar['is_marketplace'] == 1) ? 'checked' : ''; ?> style="width: 20px; height: 20px; cursor: pointer;">
                        <span style="color: var(--text-main);"><i class="fas fa-store"></i> Mostrar este produto no Marketing Place</span>
                    </label>
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Ao marcar, o produto aparecerá na vitrine pública do marketplace</small>
                </div>

                <div class="form-group" style="margin-top: 20px; padding-top: 20px; border-top: 2px solid var(--border-color);">
                    <h4 style="color: var(--text-main); margin-bottom: 15px;">
                        <i class="fas fa-handshake"></i> Sistema de Afiliados
                    </h4>
                    
                    <label style="display: flex; align-items: center; gap: 10px; cursor: pointer; margin-bottom: 15px;">
                        <input type="checkbox" id="afiliacao_ativa" name="afiliacao_ativa" value="1" <?= (!empty($produtoParaEditar['afiliacao_ativa']) && $produtoParaEditar['afiliacao_ativa'] == 1) ? 'checked' : ''; ?> style="width: 20px; height: 20px; cursor: pointer;">
                        <span style="color: var(--text-main);"><i class="fas fa-users"></i> Permitir afiliação para este produto</span>
                    </label>
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block; margin-bottom: 15px;">Ao marcar, outros usuários poderão se tornar afiliados deste produto</small>
                    
                    <label for="comissao_padrao" style="display: block; margin-bottom: 5px; font-weight: 600; color: var(--text-main);">
                        <i class="fas fa-percentage"></i> Comissão Padrão (%)
                    </label>
                    <input type="number" id="comissao_padrao" name="comissao_padrao" step="0.01" min="0" max="100" value="<?= htmlspecialchars($produtoParaEditar['comissao_padrao'] ?? ''); ?>" placeholder="Ex: 50.00" 
                           style="width: 100%; padding: 12px; border: 1px solid var(--border-color); border-radius: 4px; font-size: 14px; background: var(--bg-body); color: var(--text-main);">
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Percentual de comissão que os afiliados receberão (ex: 50.00 = 50%)</small>
                    
                    <label for="affiliate_material_url_edit" style="display: block; margin-bottom: 5px; font-weight: 600; color: var(--text-main); margin-top: 20px;">
                        <i class="fas fa-folder-open"></i> Link do Material de Apoio (Opcional)
                    </label>
                    <input type="url" id="affiliate_material_url_edit" name="affiliate_material_url" value="<?= htmlspecialchars($produtoParaEditar['affiliate_material_url'] ?? ''); ?>" placeholder="https://drive.google.com/ou-outro-link" 
                           style="width: 100%; padding: 12px; border: 1px solid var(--border-color); border-radius: 4px; font-size: 14px; background: var(--bg-body); color: var(--text-main);">
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">Link para material de apoio que será disponibilizado aos afiliados no marketplace</small>
                </div>
            </div>
            
            <div class="form-group" style="margin-top: 20px; padding-top: 20px; border-top: 2px solid var(--border-color);">
                <h4 style="color: var(--text-main); margin-bottom: 15px;">
                    <i class="fas fa-external-link-alt"></i> Página de Vendas Externa
                </h4>
                
                <label style="display: flex; align-items: center; gap: 10px; cursor: pointer; margin-bottom: 15px;">
                    <input type="checkbox" id="enable_sales_page_edit" name="enable_sales_page" value="1" <?= (!empty($produtoParaEditar['enable_sales_page']) && $produtoParaEditar['enable_sales_page'] == 1) ? 'checked' : ''; ?> style="width: 20px; height: 20px; cursor: pointer;" onchange="toggleSalesPageUrlEdit()">
                    <span style="color: var(--text-main);"><i class="fas fa-link"></i> Ativar Link de Página de Vendas</span>
                </label>
                <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block; margin-bottom: 15px;">Ao marcar, um botão "VER PÁGINA" aparecerá no Marketplace acima do botão "Afiliar-se"</small>
                
                <div id="sales_page_url_container_edit" style="display: <?= (!empty($produtoParaEditar['enable_sales_page']) && $produtoParaEditar['enable_sales_page'] == 1) ? 'block' : 'none'; ?>;">
                    <label for="sales_page_url_edit" style="display: block; margin-bottom: 5px; font-weight: 600; color: var(--text-main);">
                        <i class="fas fa-globe"></i> URL da Página
                    </label>
                    <input type="url" id="sales_page_url_edit" name="sales_page_url" value="<?= htmlspecialchars($produtoParaEditar['sales_page_url'] ?? ''); ?>" placeholder="https://exemplo.com/pagina-vendas" 
                           style="width: 100%; padding: 12px; border: 1px solid var(--border-color); border-radius: 4px; font-size: 14px; background: var(--bg-body); color: var(--text-main);">
                    <small style="color: var(--text-muted); font-size: 12px; margin-top: 5px; display: block;">URL completa da página de vendas externa (ex: https://meusite.com/pagina-vendas)</small>
                </div>
            </div>

            <button type="submit" class="btn">
                <i class="fas fa-save"></i> Atualizar Produto
            </button>
        </form>
        <?php endif; ?>
    </div>

    <div id="gerenciar-orderbumps" class="tab-content">
        <h3 style="margin-bottom: 24px; color: var(--text-main);">
            <i class="fas fa-cog"></i> Gerenciar Order Bumps
        </h3>
        
        <?php if (count($orderbumps) > 0): ?>
            <div class="table-container">
                <table>
                    <thead>
                        <tr>
                            <th>ID</th>
                            <th>Produto Principal</th>
                            <th>Produto Adicional</th>
                            <th>Título</th>
                            <th>Preço Promocional</th>
                            <th>Ações</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($orderbumps as $orderbump): ?>
                            <tr>
                                <td><?= htmlspecialchars($orderbump['id'] ?? 'N/A'); ?></td>
                                <td><?= htmlspecialchars($orderbump['produto_principal_nome'] ?? 'N/A'); ?></td>
                                <td><?= htmlspecialchars($orderbump['produto_adicional_nome'] ?? 'N/A'); ?></td>
                                <td><?= htmlspecialchars($orderbump['titulo_rosa'] ?? 'N/A'); ?></td>
                                <td>R$ <?= number_format(floatval($orderbump['preco_promocional'] ?? 0), 2, ',', '.'); ?></td>
                                <td>
                                    <a href="?page=produtos&remove_orderbump_id=<?= $orderbump['id']; ?>" 
                                       class="btn btn-danger" 
                                       onclick="return confirm('Tem certeza que deseja remover este orderbump do produto? O produto adicional será removido apenas se não estiver sendo usado em outros orderbumps.');">
                                        <i class="fas fa-trash"></i> Remover
                                    </a>
                                </td>
                            </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
        <?php else: ?>
            <div class="empty-state">
                <i class="fas fa-inbox"></i>
                <h3>Nenhum Order Bump encontrado</h3>
                <p>Você ainda não criou nenhum orderbump. Crie um na aba "Criar Order Bump".</p>
            </div>
        <?php endif; ?>
    </div>
</div>

<script>
    // Sistema de tabs simples - CORRIGIDO: Esconde todos e mostra apenas o clicado
    document.addEventListener('DOMContentLoaded', function() {
        const tabLinks = document.querySelectorAll('.tab-link');
        const tabContents = document.querySelectorAll('.tab-content');
        
        // Função para esconder TODOS os containers e remover active de todos os links
        function hideAllTabs() {
            tabContents.forEach(content => {
                content.classList.remove('active');
                content.style.display = 'none'; // Garantir que está escondido
            });
            tabLinks.forEach(link => {
                link.classList.remove('active');
            });
        }
        
        // Função para mostrar uma aba específica
        function showTab(tabId) {
            const targetContent = document.getElementById(tabId);
            if (targetContent) {
                targetContent.classList.add('active');
                targetContent.style.display = 'block'; // Garantir que está visível
            }
        }
        
        // Event listeners para os botões de navegação
        tabLinks.forEach(link => {
            link.addEventListener('click', function(e) {
                e.preventDefault();
                const targetTab = this.getAttribute('data-tab');
                
                // PASSO A: Esconder TODOS os containers (incluindo a lista)
                hideAllTabs();
                
                // PASSO B: Mostrar apenas o container correspondente ao botão clicado
                showTab(targetTab);

                // Garantir que a UI interna de cada aba fique consistente (igual ao "meus_produtos")
                // Importante no admin: como existe navegação por abas, precisamos revalidar ao abrir a aba.
                try {
                    if (targetTab === 'adicionar-produto') {
                        toggleTipoProduto();
                    }
                    if (targetTab === 'editar-produto') {
                        toggleTipoProdutoEdit();
                    }
                } catch (err) {
                    console.error('Erro ao revalidar UI após troca de aba:', err);
                }
                
                // Marcar o link como ativo
                this.classList.add('active');
            });
        });
        
        // Se houver produto para editar, mostrar aba de edição (apenas se não houver mensagem de sucesso)
        <?php if ($produtoParaEditar && !$produtoAtualizado && !$produtoCriado): ?>
            // Esconder todas as abas
            hideAllTabs();
            // Mostrar apenas a aba de edição
            const editTab = document.getElementById('editar-produto');
            if (editTab) {
                editTab.classList.add('active');
                editTab.style.display = 'block';
            }
        <?php else: ?>
            // Estado inicial: Garantir que apenas "Listar Produtos" esteja visível
            hideAllTabs();
            const listarTab = document.getElementById('listar-produtos');
            if (listarTab) {
                listarTab.classList.add('active');
                listarTab.style.display = 'block';
            }
            // Marcar o link "Listar Produtos" como ativo
            const listarLink = document.querySelector('[data-tab="listar-produtos"]');
            if (listarLink) {
                listarLink.classList.add('active');
            }
        <?php endif; ?>
        
        // Função para mostrar/esconder campo de URL da página de vendas (formulário adicionar)
        function toggleSalesPageUrl() {
            const checkbox = document.getElementById('enable_sales_page');
            const container = document.getElementById('sales_page_url_container');
            if (checkbox && container) {
                container.style.display = checkbox.checked ? 'block' : 'none';
            }
        }
        
        // Função para mostrar/esconder campo de URL da página de vendas (formulário editar)
        function toggleSalesPageUrlEdit() {
            const checkbox = document.getElementById('enable_sales_page_edit');
            const container = document.getElementById('sales_page_url_container_edit');
            if (checkbox && container) {
                container.style.display = checkbox.checked ? 'block' : 'none';
            }
        }
        
        // Sincronizar seletor de cor com campo de texto
        function syncColorInputs(colorId, textId) {
            const colorInput = document.getElementById(colorId);
            const textInput = document.getElementById(textId);
            
            if (colorInput && textInput) {
                colorInput.addEventListener('input', function() {
                    textInput.value = this.value;
                });
                
                textInput.addEventListener('input', function() {
                    if (/^#[0-9A-F]{6}$/i.test(this.value)) {
                        colorInput.value = this.value;
                    }
                });
            }
        }
        
        syncColorInputs('checkout_background_color', 'checkout_background_color_text');
        syncColorInputs('checkout_main_card_background', 'checkout_main_card_background_text');
        syncColorInputs('checkout_text_color', 'checkout_text_color_text');
        
        // Inicializar tipo de produto e frete
        // (robusto: força esconder frete quando digital, igual ao fluxo de "meus_produtos")
        if (document.querySelector('#adicionar-produto form input[name="tipo_produto"]')) {
            try {
                toggleTipoProduto();
            } catch (e) {
                console.error('Erro ao inicializar toggleTipoProduto():', e);
            }
        }
        
        // Inicializar tipo de entrega no formulário de adicionar
        if (document.getElementById('tipo_entrega')) {
            toggleTipoEntrega();
        }
        
        // Inicializar tipo de produto e frete no formulário de editar
        if (document.querySelector('#editar-produto form input[name="tipo_produto"]')) {
            try {
                toggleTipoProdutoEdit();
            } catch (e) {
                console.error('Erro ao inicializar toggleTipoProdutoEdit():', e);
            }
        }
        
        // Inicializar tipo de entrega no formulário de editar
        if (document.getElementById('tipo_entrega_edit')) {
            // Aguardar um pouco para garantir que o DOM está totalmente carregado
            setTimeout(function() {
                toggleTipoEntregaEdit();
            }, 100);
        }
    });
</script>

<script>
    // Função para alternar entre produto Digital e Físico
    function toggleTipoProduto() {
        // CRÍTICO (admin): existem DOIS forms na mesma página (Adicionar e Editar) com o mesmo name="tipo_produto".
        // Se não escopar, o querySelector pode pegar o checked do form errado (mesmo oculto) e mostrar frete indevidamente.
        const tab = document.getElementById('adicionar-produto') || document;
        const form = tab.querySelector('form') || tab;
        const tipoProdutoRaw = form.querySelector('input[name="tipo_produto"]:checked')?.value || 'digital';
        const tipoProduto = (tipoProdutoRaw === 'fisico' || tipoProdutoRaw === 'digital') ? tipoProdutoRaw : 'digital';

        const configFrete = tab.querySelector('#config_frete_fisico');
        const tipoEntregaContainer = tab.querySelector('#tipo_entrega_container');
        const camposTipoEntrega = tab.querySelectorAll('.campos-tipo-entrega');
        const inputLink = tab.querySelector('#link_entregavel');
        
        if (tipoProduto === 'fisico') {
            // Produto Físico: Mostrar frete, ocultar entrega digital
            if (configFrete) configFrete.style.display = 'block';
            if (tipoEntregaContainer) tipoEntregaContainer.style.display = 'none';
            camposTipoEntrega.forEach(el => el.style.display = 'none');
            // Remover required do link_entregavel para produtos físicos
            if (inputLink) {
                inputLink.removeAttribute('required');
            }
        } else {
            // Produto Digital: Ocultar frete completamente, mostrar entrega digital
            if (configFrete) configFrete.style.display = 'none';
            if (tipoEntregaContainer) tipoEntregaContainer.style.display = 'block';
            toggleTipoEntrega(); // Restaurar campos de entrega digital (isso já gerencia o required)
        }
        
        // Atualizar campos internos do frete (escopado ao form de adicionar)
        toggleTipoFrete();
    }
    
    // Função para alternar tipo de frete (gratis/fixo/minimo)
    function toggleTipoFrete() {
        const tab = document.getElementById('adicionar-produto') || document;
        const form = tab.querySelector('form') || tab;
        const freteTipoRaw = form.querySelector('input[name="frete_tipo"]:checked')?.value || 'gratis';
        const freteTipo = (freteTipoRaw === 'gratis' || freteTipoRaw === 'fixo' || freteTipoRaw === 'minimo') ? freteTipoRaw : 'gratis';

        const valorFixoContainer = tab.querySelector('#frete_valor_fixo_container');
        const minimoGratisContainer = tab.querySelector('#frete_minimo_gratis_container');
        
        // Se for 'gratis', ocultar ambos os campos
        if (freteTipo === 'gratis') {
            if (valorFixoContainer) valorFixoContainer.style.display = 'none';
            if (minimoGratisContainer) minimoGratisContainer.style.display = 'none';
        } else if (freteTipo === 'fixo') {
            // Mostrar apenas campo de valor fixo
            if (valorFixoContainer) valorFixoContainer.style.display = 'block';
            if (minimoGratisContainer) minimoGratisContainer.style.display = 'none';
        } else if (freteTipo === 'minimo') {
            // Mostrar apenas campo de valor mínimo
            if (valorFixoContainer) valorFixoContainer.style.display = 'none';
            if (minimoGratisContainer) minimoGratisContainer.style.display = 'block';
        }
    }
    
    // Função para mostrar/ocultar campos baseado no tipo de entrega (Formulário Adicionar)
    function toggleTipoEntrega() {
        const tipo = document.getElementById('tipo_entrega')?.value || 'link';
        const camposLink = document.getElementById('campos_link');
        const camposDados = document.getElementById('campos_dados_acesso');
        const camposMembros = document.getElementById('campos_area_membros');
        const inputLink = document.getElementById('link_entregavel');
        
        // Esconder todos
        if (camposLink) camposLink.style.display = 'none';
        if (camposDados) camposDados.style.display = 'none';
        if (camposMembros) camposMembros.style.display = 'none';
        
        // Mostrar apenas o selecionado
        if (tipo === 'link') {
            if (camposLink) camposLink.style.display = 'block';
            if (inputLink) inputLink.required = true;
        } else if (tipo === 'dados_acesso') {
            if (camposDados) camposDados.style.display = 'block';
            if (inputLink) inputLink.required = false;
        } else if (tipo === 'area_membros') {
            if (camposMembros) camposMembros.style.display = 'block';
            if (inputLink) inputLink.required = false;
        }
    }
    
    // Função para alternar entre produto Digital e Físico (EDIT)
    function toggleTipoProdutoEdit() {
        const tab = document.getElementById('editar-produto') || document;
        const form = tab.querySelector('form') || tab;
        const tipoProdutoRaw = form.querySelector('input[name="tipo_produto"]:checked')?.value || 'digital';
        const tipoProduto = (tipoProdutoRaw === 'fisico' || tipoProdutoRaw === 'digital') ? tipoProdutoRaw : 'digital';

        const configFrete = tab.querySelector('#config_frete_fisico_edit');
        const tipoEntregaContainer = tab.querySelector('#tipo_entrega_container_edit');
        const camposTipoEntrega = tab.querySelectorAll('.campos-tipo-entrega');
        const inputLink = tab.querySelector('#link_entregavel_edit');
        
        if (tipoProduto === 'fisico') {
            // Produto Físico: Mostrar frete, ocultar entrega digital
            if (configFrete) configFrete.style.display = 'block';
            if (tipoEntregaContainer) tipoEntregaContainer.style.display = 'none';
            camposTipoEntrega.forEach(el => el.style.display = 'none');
            // Remover required do link_entregavel para produtos físicos
            if (inputLink) {
                inputLink.removeAttribute('required');
            }
        } else {
            // Produto Digital: Ocultar frete completamente, mostrar entrega digital
            if (configFrete) configFrete.style.display = 'none';
            if (tipoEntregaContainer) tipoEntregaContainer.style.display = 'block';
            toggleTipoEntregaEdit(); // Restaurar campos de entrega digital (isso já gerencia o required)
        }
        
        // Atualizar campos internos do frete no edit (escopado ao form de editar)
        toggleTipoFreteEdit();
    }
    
    // Função para alternar tipo de frete (EDIT)
    function toggleTipoFreteEdit() {
        const tab = document.getElementById('editar-produto') || document;
        const form = tab.querySelector('form') || tab;
        const freteTipoRaw = form.querySelector('input[name="frete_tipo"]:checked')?.value || 'gratis';
        const freteTipo = (freteTipoRaw === 'gratis' || freteTipoRaw === 'fixo' || freteTipoRaw === 'minimo') ? freteTipoRaw : 'gratis';

        const valorFixoContainer = tab.querySelector('#frete_valor_fixo_container_edit');
        const minimoGratisContainer = tab.querySelector('#frete_minimo_gratis_container_edit');
        
        if (valorFixoContainer) valorFixoContainer.style.display = (freteTipo === 'fixo') ? 'block' : 'none';
        if (minimoGratisContainer) minimoGratisContainer.style.display = (freteTipo === 'minimo') ? 'block' : 'none';
    }
    
    // Função para mostrar/ocultar campos baseado no tipo de entrega (Formulário Editar)
    function toggleTipoEntregaEdit() {
        const tipo = document.getElementById('tipo_entrega_edit')?.value || 'link';
        const camposLink = document.getElementById('campos_link_edit');
        const camposDados = document.getElementById('campos_dados_acesso_edit');
        const camposMembros = document.getElementById('campos_area_membros_edit');
        const inputLink = document.getElementById('link_entregavel_edit');
        
        // Esconder todos
        if (camposLink) camposLink.style.display = 'none';
        if (camposDados) camposDados.style.display = 'none';
        if (camposMembros) camposMembros.style.display = 'none';
        
        // Mostrar apenas o selecionado
        if (tipo === 'link') {
            if (camposLink) camposLink.style.display = 'block';
            if (inputLink) inputLink.required = true;
        } else if (tipo === 'dados_acesso') {
            if (camposDados) camposDados.style.display = 'block';
            if (inputLink) inputLink.required = false;
        } else if (tipo === 'area_membros') {
            if (camposMembros) camposMembros.style.display = 'block';
            if (inputLink) inputLink.required = false;
        }
    }
    
    // Função para liberar acesso manual (mantida separada)
    
    window.liberarAcessoManual = function() {
        const form = document.getElementById('form-liberar-acesso');
        if (!form) return;
        const formData = new FormData(form);
        const mensagemDiv = document.getElementById('modal-mensagem');
        if (!mensagemDiv) return;
        
        mensagemDiv.style.display = 'block';
        mensagemDiv.style.background = '#fff3cd';
        mensagemDiv.style.color = '#856404';
        mensagemDiv.style.border = '2px solid #ffc107';
        mensagemDiv.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Processando...';
        
        fetch('/backend/liberar_acesso_manual.php', {
            method: 'POST',
            body: formData
        })
        .then(response => response.json())
        .then(data => {
            if (data.status === 'success') {
                mensagemDiv.style.background = '#d1fae5';
                mensagemDiv.style.color = '#065f46';
                mensagemDiv.style.border = '2px solid #10b981';
                mensagemDiv.innerHTML = '<i class="fas fa-check-circle"></i> ' + data.message;
                setTimeout(function() {
                    window.fecharModalLiberarAcesso();
                }, 2000);
            } else {
                mensagemDiv.style.background = '#fee2e2';
                mensagemDiv.style.color = '#991b1b';
                mensagemDiv.style.border = '2px solid #ef4444';
                mensagemDiv.innerHTML = '<i class="fas fa-exclamation-circle"></i> ' + (data.message || 'Erro ao liberar acesso');
            }
        })
        .catch(error => {
            mensagemDiv.style.background = '#fee2e2';
            mensagemDiv.style.color = '#991b1b';
            mensagemDiv.style.border = '2px solid #ef4444';
            mensagemDiv.innerHTML = '<i class="fas fa-exclamation-circle"></i> Erro de comunicação com o servidor';
            console.error('Erro:', error);
        });
    };
    
    // Função para atualizar apenas a imagem do produto
    function atualizarImagemProduto(produtoId) {
        const imagemFile = document.getElementById('imagem_file_update');
        const imagemUrl = document.getElementById('imagem_update');
        const imagemAtualDisplay = document.getElementById('imagem_atual_display');
        
        // Obter URL atual do banco (do campo readonly)
        const urlAtual = imagemAtualDisplay ? imagemAtualDisplay.value.trim() : '';
        const urlInformada = imagemUrl && imagemUrl.value ? imagemUrl.value.trim() : '';
        
        // Verificar se há arquivo novo selecionado
        const temArquivo = imagemFile && imagemFile.files && imagemFile.files.length > 0 && imagemFile.files[0].size > 0;
        
        // Verificar se URL foi alterada (diferente da atual)
        const temUrlNova = urlInformada !== '' && urlInformada !== urlAtual;
        
        if (!temArquivo && !temUrlNova) {
            alert('Por favor, selecione um arquivo novo ou informe uma URL diferente da atual para atualizar a imagem.');
            return;
        }
        
        // Criar FormData para envio
        const formData = new FormData();
        formData.append('action', 'update_imagem');
        formData.append('produto_id', produtoId);
        
        // Priorizar arquivo sobre URL
        if (temArquivo) {
            formData.append('imagem_file', imagemFile.files[0]);
            console.log('Enviando arquivo novo:', imagemFile.files[0].name);
        }
        
        // Se não há arquivo mas há URL nova, enviar URL
        if (!temArquivo && temUrlNova) {
            formData.append('imagem', urlInformada);
            console.log('Enviando URL nova:', urlInformada);
        }
        
        // Mostrar indicador de carregamento
        const btnAtualizar = event.target.closest('button');
        const btnOriginal = btnAtualizar.innerHTML;
        btnAtualizar.disabled = true;
        btnAtualizar.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Atualizando...';
        
        // Enviar requisição
        fetch(window.location.href, {
            method: 'POST',
            body: formData
        })
        .then(response => {
            if (response.redirected) {
                window.location.href = response.url;
            } else {
                return response.text();
            }
        })
        .then(data => {
            // Se não redirecionou, recarregar a página
            window.location.reload();
        })
        .catch(error => {
            console.error('Erro ao atualizar imagem:', error);
            alert('Erro ao atualizar imagem. Por favor, tente novamente.');
            btnAtualizar.disabled = false;
            btnAtualizar.innerHTML = btnOriginal;
        });
    }
    
</script>


