<?php
session_start();
require_once 'conexao.php';

// --- 1. TRAVA DE SEGURANÇA TOTAL (KILL SWITCH) ---
if (!isset($_SESSION['logado'])) { header("Location: login.php"); exit; }

$isAdmin = (strtolower($_SESSION['nivel']) === 'admin');
$usuarioLogado = $_SESSION['usuario'];

if (!$isAdmin) {
    $stmtCheck = $connUser->prepare("SELECT bloqueado, data_premio FROM rev WHERE usuario = ? LIMIT 1");
    $stmtCheck->execute([$usuarioLogado]);
    $me = $stmtCheck->fetch(PDO::FETCH_ASSOC);

    if ($me) {
        $isBloq = ($me['bloqueado'] == 'sim');
        $isVenc = ((int)$me['data_premio'] > 0 && (int)$me['data_premio'] < time());

        if ($isBloq || $isVenc) {
            $motivo = $isBloq ? "BLOQUEADO PELO ADMINISTRADOR" : "PLANO VENCIDO";
            die("<!DOCTYPE html><html lang='pt-br'><head><meta charset='UTF-8'><meta name='viewport' content='width=device-width, initial-scale=1.0'><title>Acesso Negado</title><link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'><style>body{background:#151521;color:#fff;display:flex;align-items:center;justify-content:center;height:100vh;text-align:center;font-family:sans-serif;}</style></head><body><div><h1 class='text-danger fw-bold' style='font-size: 4rem;'>🚫</h1><h2 class='fw-bold text-uppercase'>ACESSO SUSPENSO</h2><p class='lead text-muted'>$motivo</p><p>Entre em contato com o suporte para regularizar sua conta.</p><a href='sair.php' class='btn btn-outline-light mt-4 px-5'>Sair do Painel</a></div></body></html>");
        }
    }
}
// --- FIM DA TRAVA ---

$msg = ""; $msg_tipo = ""; $texto_zap = "";
$redirecionar = false;

// --- 2. CONFIGURAÇÕES ---
$nomePainel = "IPTV PANEL"; $corPrimaria = "#7367f0"; 
try {
    $conf = $connGeral->query("SELECT NomePainel, TemaPainel FROM site_config LIMIT 1")->fetch(PDO::FETCH_ASSOC);
    if ($conf) {
        if (!empty($conf['NomePainel'])) $nomePainel = $conf['NomePainel'];
        if (!empty($conf['TemaPainel'])) $corPrimaria = $conf['TemaPainel'];
    }
} catch (Exception $e) { }

// --- 3. BUSCAR DADOS ---
$mapa_perfis = [];
$lista_perfis_select = [];
$lista_revendedores = [];

try {
    if ($isAdmin) {
        $res_p = $connGeral->query("SELECT id, nome, url, porta FROM perfil WHERE (bloqueado IS NULL OR bloqueado != 'sim')")->fetchAll(PDO::FETCH_ASSOC);
        $lista_revendedores = $connUser->query("SELECT usuario FROM rev ORDER BY usuario ASC")->fetchAll(PDO::FETCH_ASSOC);
    } else {
        $st_rev = $connUser->prepare("SELECT perfil FROM rev WHERE usuario = ? LIMIT 1");
        $st_rev->execute([$usuarioLogado]);
        $perfil_liberado = $st_rev->fetchColumn();
        if (!empty($perfil_liberado)) {
            $nomes = explode(',', $perfil_liberado);
            $in_query = str_repeat('?,', count($nomes) - 1) . '?';
            $st_p = $connGeral->prepare("SELECT id, nome, url, porta FROM perfil WHERE (bloqueado IS NULL OR bloqueado != 'sim') AND nome IN ($in_query)");
            $st_p->execute($nomes); $res_p = $st_p->fetchAll(PDO::FETCH_ASSOC);
        } else { $res_p = []; }
    }
    foreach ($res_p as $p) { $mapa_perfis[$p['id']] = $p; $lista_perfis_select[] = $p; }
} catch (Exception $e) { }

// --- 4. PROCESSAR AÇÕES ---
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    try {
        $acao = $_POST['acao'] ?? '';
        $id_teste = (int)($_POST['id_teste'] ?? 0);
        $filtroSeguranca = $isAdmin ? "" : " AND CadUser = '$usuarioLogado'";

        if ($acao === 'criar') {
            $nome = trim($_POST['nome']); // Novo campo Nome
            $user = trim($_POST['usuario']); 
            $pass = $_POST['senha']; 
            $pid = $_POST['perfil'];
            $tempo = (int)$_POST['tempo'];
            $venc_time = strtotime("+$tempo hours"); 
            
            // VERIFICA DUPLICIDADE
            $check = $connUser->prepare("SELECT id FROM teste WHERE usuario = ? LIMIT 1");
            $check->execute([$user]);
            $checkCli = $connUser->prepare("SELECT id FROM usuario WHERE usuario = ? LIMIT 1");
            $checkCli->execute([$user]);

            if ($check->rowCount() > 0 || $checkCli->rowCount() > 0) {
                $msg = "ERRO: O usuário '<b>$user</b>' já existe no sistema!"; 
                $msg_tipo = "warning";
            } else {
                // Inserindo NOME no banco
                $sql = "INSERT INTO teste (CadUser, nome, usuario, senha, data_premio, perfil, bloqueado, data_cadastro, conexao) VALUES (?,?,?,?,?,?,'nao',NOW(),1)";
                $connUser->prepare($sql)->execute([$usuarioLogado, $nome, $user, $pass, $venc_time, $pid]);
                
                $p_info = $mapa_perfis[$pid] ?? [];
                $texto_zap = "*✅ TESTE GERADO*\n\n👤 *Nome:* $nome\n👤 *User:* $user\n🔑 *Senha:* $pass\n⏳ *Expira:* ".date('d/m/Y H:i', $venc_time)."\n\n🌐 *DNS:* ".($p_info['url']??'---');
                $msg = "Teste criado com sucesso!"; $msg_tipo = "success";
            }
        }

        if ($acao === 'editar') {
            // Editando NOME também
            $sql = "UPDATE teste SET nome=?, usuario=?, senha=?, perfil=? WHERE id=? $filtroSeguranca";
            $connUser->prepare($sql)->execute([$_POST['nome'], $_POST['usuario'], $_POST['senha'], $_POST['perfil'], $id_teste]);
            $msg = "Dados atualizados!"; $msg_tipo = "primary";
        }

        if ($acao === 'renovar') {
            $stmt = $connUser->prepare("SELECT * FROM teste WHERE id = ? $filtroSeguranca");
            $stmt->execute([$id_teste]);
            $t = $stmt->fetch(PDO::FETCH_ASSOC);
            if ($t) {
                // Verifica duplicidade antes de virar cliente
                $chk = $connUser->prepare("SELECT id FROM usuario WHERE usuario = ? LIMIT 1");
                $chk->execute([$t['usuario']]);
                if($chk->rowCount() > 0){
                    $msg = "Erro: Usuário já existe como cliente!"; $msg_tipo = "warning";
                } else {
                    $venc_cli = date('Y-m-d', strtotime('+30 days'));
                    // Copia o NOME para a tabela de clientes
                    $sql_ins = "INSERT INTO usuario (CadUser, nome, usuario, senha, conexao, data_premio, perfil, bloqueado, data_cadastro) VALUES (?, ?, ?, ?, 1, ?, ?, 'nao', NOW())";
                    $connUser->prepare($sql_ins)->execute([$t['CadUser'], $t['nome'], $t['usuario'], $t['senha'], $venc_cli, $t['perfil']]);
                    $connUser->prepare("DELETE FROM teste WHERE id = ?")->execute([$id_teste]);
                    
                    $texto_zap = "*✅ TESTE VIROU CLIENTE*\n\n👤 *Nome:* {$t['nome']}\n👤 *User:* {$t['usuario']}\n📆 *Novo Venc:* ".date('d/m/Y', strtotime($venc_cli));
                    $redirecionar = true; $msg = "Convertido com sucesso!"; $msg_tipo = "success";
                }
            }
        }

        if ($acao === 'excluir') {
            $connUser->prepare("DELETE FROM teste WHERE id=? $filtroSeguranca")->execute([$id_teste]);
            $msg = "Removido!"; $msg_tipo = "danger";
        }
    } catch (Exception $e) { $msg = "Erro: ".$e->getMessage(); $msg_tipo = "danger"; }
}

// --- 5. FILTROS E PAGINAÇÃO ---
$limit  = isset($_GET['limit']) ? (int)$_GET['limit'] : 10;
$pagina = isset($_GET['pagina']) ? (int)$_GET['pagina'] : 1;
$offset = ($pagina - 1) * $limit;
$busca = trim($_GET['busca'] ?? ''); $status = $_GET['status'] ?? ''; $revendedor = $_GET['revendedor'] ?? '';

$where = " WHERE 1=1 ";
if (!$isAdmin) { $where .= " AND CadUser = '$usuarioLogado'"; } elseif (!empty($revendedor)) { $where .= " AND CadUser = " . $connUser->quote($revendedor); }
if ($busca) { $where .= " AND (nome LIKE '%$busca%' OR usuario LIKE '%$busca%')"; }
if ($status === 'ativo') { $where .= " AND data_premio > UNIX_TIMESTAMP()"; } elseif ($status === 'vencido') { $where .= " AND data_premio < UNIX_TIMESTAMP()"; }

$total_registos = $connUser->query("SELECT COUNT(*) FROM teste $where")->fetchColumn();
$total_paginas = ceil($total_registos / $limit);
$lista_testes = $connUser->query("SELECT * FROM teste $where ORDER BY id DESC LIMIT $limit OFFSET $offset")->fetchAll();
?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>Testes | <?= htmlspecialchars($nomePainel) ?></title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
    <style>
        :root { --primary: <?= $corPrimaria ?>; --bg-body: #151521; --bg-card: #1e1e2d; --text-color: #d0d2d6; }
        body { background: var(--bg-body); color: var(--text-color); font-family: 'Segoe UI', sans-serif; overflow-x: hidden; margin: 0; padding: 0; }
        
        .sidebar { width: 260px; height: 100vh; position: fixed; background: var(--bg-card); padding: 20px; border-right: 1px solid #333; z-index: 1050; overflow-y: auto; }
        .main-content { margin-left: 260px; padding: 20px; transition: 0.3s; }
        @media (max-width: 992px) { 
            .sidebar { transform: translateX(-100%); } .sidebar.show { transform: translateX(0); } 
            .main-content { margin-left: 0; padding: 10px 0; } 
            .mobile-toggle { display: block !important; margin-left: 15px; } 
            .card-custom.table-card { border-radius: 0; border-left: none; border-right: none; }
        }
        .nav-link { color: #a6a6b7; padding: 10px 12px; border-radius: 8px; margin-bottom: 2px; display: flex; align-items: center; gap: 10px; text-decoration: none; }
        .nav-link.active, .nav-link:hover { background: var(--primary); color: #fff; }
        .nav-group-title { font-size: 0.75rem; text-transform: uppercase; color: #5e5873; font-weight: 700; margin: 20px 0 10px 12px; }
        .card-custom { background: var(--bg-card) !important; border: 1px solid #333; border-radius: 12px; margin-left: 10px; margin-right: 10px; }
        .table-card { margin-left: 0; margin-right: 0; border-radius: 12px; }
        .form-control, .form-select { background: #2b2b40 !important; border: 1px solid #444 !important; color: #fff !important; }
        .table-responsive { background: var(--bg-card) !important; width: 100%; margin: 0; }
        .table-video { width: 100%; border-collapse: collapse; margin-bottom: 0; }
        
        /* AJUSTE DE COLUNAS: LARGURA MÍNIMA */
        .table-video th, .table-video td { 
            padding: 12px 6px; 
            border-bottom: 1px solid #2b2b3c !important; 
            vertical-align: middle; 
        }
        .table-video th { 
            background-color: #2b2b40 !important; 
            color: #b9b9c3 !important; 
            font-size: 0.75rem; 
            font-weight: 600; 
            text-transform: uppercase; 
        }
        .table-video td { background-color: var(--bg-card) !important; color: #fff !important; }

        .img-perfil { height: 22px; vertical-align: middle; filter: drop-shadow(0 0 2px rgba(0,0,0,0.5)); }
        .btn-action-group { display: flex; gap: 5px; justify-content: flex-end; }
        .btn-icon-sq { width: 32px; height: 32px; border-radius: 5px; display: inline-flex; align-items: center; justify-content: center; border: none; color: #fff; }
        .bg-sq-green { background-color: #28c76f; } .bg-sq-blue { background-color: #00cfe8; } .bg-sq-purple { background-color: #7367f0; } .bg-sq-red { background-color: #ea5455; }    
        .status-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; margin-right: 6px; }
        .dot-online { background-color: #28c76f; box-shadow: 0 0 5px #28c76f; }
        .dot-offline { background-color: #ea5455; }
        .mobile-toggle { display: none; background: none; border: none; color: #fff; font-size: 1.5rem; }
        .overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 1040; }
        .overlay.show { display: block; }
    </style>
</head>
<body>

<div class="overlay" id="overlay" onclick="toggleMenu()"></div>

<nav class="sidebar" id="sidebar">
    <h4 class="mb-4 fw-bold text-white text-center"><i class="fas fa-tv text-primary"></i> <?= htmlspecialchars($nomePainel) ?></h4>
    <div class="nav flex-column">
        <a href="index.php" class="nav-link"><i class="fas fa-home"></i> Dashboard</a>
        <?php if ($isAdmin): ?><div class="nav-group-title">ADMIN</div><a href="gerenciar_perfis.php" class="nav-link"><i class="fas fa-layer-group"></i> Perfis</a><a href="gerenciar_dns.php" class="nav-link"><i class="fas fa-network-wired"></i> Servidores</a><a href="gerenciar_email.php" class="nav-link"><i class="fas fa-envelope"></i> E-mails</a><?php endif; ?>
        <div class="nav-group-title">MENU</div><a href="revendedores.php" class="nav-link"><i class="fas fa-store"></i> Revendedores</a><a href="clientes.php" class="nav-link"><i class="fas fa-users"></i> Clientes</a><a href="testes.php" class="nav-link active"><i class="fas fa-stopwatch"></i> Testes</a>
        <a href="sair.php" class="nav-link text-danger mt-4"><i class="fas fa-sign-out-alt"></i> Sair</a>
    </div>
</nav>

<main class="main-content">
    <button class="mobile-toggle" onclick="toggleMenu()"><i class="fas fa-bars"></i></button>

    <div class="container-fluid">
        <div class="d-flex justify-content-between align-items-center mb-4 flex-wrap gap-2 px-2">
            <h3 class="fw-bold m-0">Gestão de Testes</h3>
            <button onclick="new bootstrap.Modal(document.getElementById('modalCriar')).show()" class="btn btn-warning fw-bold px-4 text-dark"><i class="fas fa-plus me-2"></i>Novo Teste</button>
        </div>

        <?php if($msg): ?><div class="alert alert-<?= $msg_tipo ?> alert-dismissible fade show mx-2"><?= $msg ?><button class="btn-close" data-bs-dismiss="alert"></button></div><?php endif; ?>

        <div class="card card-custom mb-4 p-3 shadow-lg">
            <form method="GET" class="row g-2 align-items-end">
                <div class="col-md-3"><label>Pesquisar</label><input type="text" name="busca" class="form-control" placeholder="Usuário..." value="<?= htmlspecialchars($busca) ?>"></div>
                <?php if ($isAdmin): ?><div class="col-md-2"><label>Revendedor</label><select name="revendedor" class="form-select"><option value="">Todos</option><?php foreach($lista_revendedores as $rev): ?><option value="<?= $rev['usuario'] ?>" <?= $revendedor == $rev['usuario'] ? 'selected' : '' ?>><?= $rev['usuario'] ?></option><?php endforeach; ?></select></div><?php endif; ?>
                <div class="col-md-2"><label>Status</label><select name="status" class="form-select"><option value="">Todos</option><option value="ativo" <?= $status == 'ativo' ? 'selected' : '' ?>>Ativos</option><option value="vencido" <?= $status == 'vencido' ? 'selected' : '' ?>>Vencidos</option></select></div>
                <div class="col-md-2"><label>Exibir</label>
                    <select name="limit" class="form-select">
                        <?php foreach([10,20,50,100,250,500,1000,2000,4000] as $l): ?>
                            <option value="<?= $l ?>" <?= $limit == $l ? 'selected' : '' ?>><?= $l ?> linhas</option>
                        <?php endforeach; ?>
                    </select>
                </div>
                <div class="col-md-3"><button type="submit" class="btn btn-primary w-100 fw-bold"><i class="fas fa-filter"></i> Filtrar</button></div>
            </form>
        </div>

        <div class="card card-custom table-card shadow-lg overflow-hidden">
            <div class="table-responsive">
                <table class="table table-video">
                    <thead>
                        <tr>
                            <th class="ps-3" style="width: 1%; white-space: nowrap;">Nome</th>
                            <th class="text-center" style="width: 1%; white-space: nowrap;">Usuário</th>
                            <th style="width: 1%; white-space: nowrap;">Senha</th>
                            <th style="width: 1%; white-space: nowrap;" class="text-center">Operadora</th>
                            <th style="width: 1%; white-space: nowrap;">Expira em</th>
                            <th class="text-end pe-3">Opções</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach($lista_testes as $t): 
                            $venc_ts = (int)$t['data_premio'];
                            $p_info = $mapa_perfis[$t['perfil']] ?? ['nome' => 'S/ Perfil'];
                            $isVencido = ($venc_ts < time());
                            $perfil_nome_lower = mb_strtolower($p_info['nome']);
                        ?>
                        <tr>
                            <td class="ps-3">
                                <div class="d-flex align-items-center text-nowrap">
                                    <span class="status-dot <?= $isVencido ? 'dot-offline' : 'dot-online' ?>"></span>
                                    <span class="fw-bold text-white"><?= htmlspecialchars($t['nome']) ?></span>
                                </div>
                            </td>
                            
                            <td class="text-center text-white-50 small">
                                <?= htmlspecialchars($t['usuario']) ?>
                            </td>

                            <td class="text-white-50"><?= htmlspecialchars($t['senha']) ?></td>
                            
                            <td class="text-center">
                                <?php 
                                    if (strpos($perfil_nome_lower, 'claro') !== false) {
                                        echo '<img src="img/claro.png" class="img-perfil" alt="Claro">';
                                    } elseif (strpos($perfil_nome_lower, 'net') !== false) {
                                        echo '<img src="img/net.png" class="img-perfil" alt="Net">';
                                    } else {
                                        echo '<span class="text-white-50 small">'.htmlspecialchars($p_info['nome']).'</span>';
                                    }
                                ?>
                            </td>

                            <td><span class="badge <?= $isVencido ? 'bg-danger' : 'bg-success' ?> p-2"><?= date('H:i d/m', $venc_ts) ?></span></td>
                            
                            <td class="pe-3">
                                <div class="btn-action-group">
                                    <form method="POST" class="d-inline">
                                        <input type="hidden" name="acao" value="renovar"><input type="hidden" name="id_teste" value="<?= $t['id'] ?>">
                                        <button type="submit" class="btn-icon-sq bg-sq-green" title="Virar Cliente"><i class="fas fa-check"></i></button>
                                    </form>
                                    <button onclick='abrirEditar(<?= json_encode($t) ?>)' class="btn-icon-sq bg-sq-blue"><i class="fas fa-pen"></i></button>
                                    <button onclick='abrirVisualizar(<?= json_encode($t) ?>, <?= json_encode($p_info) ?>, "<?= date('d/m H:i', $venc_ts) ?>")' class="btn-icon-sq bg-sq-purple"><i class="fas fa-eye"></i></button>
                                    <form method="POST" class="d-inline" onsubmit="return confirm('Excluir este teste?')">
                                        <input type="hidden" name="acao" value="excluir"><input type="hidden" name="id_teste" value="<?= $t['id'] ?>">
                                        <button class="btn-icon-sq bg-sq-red"><i class="fas fa-trash"></i></button>
                                    </form>
                                </div>
                            </td>
                        </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
        </div>
    </div>
</main>

<div class="modal fade" id="modalVerDados" tabindex="-1"><div class="modal-dialog modal-dialog-centered"><div class="modal-content bg-dark border-info text-white"><div class="modal-header border-secondary"><h5>Dados do Teste</h5><button class="btn-close btn-close-white" data-bs-dismiss="modal"></button></div><div class="modal-body p-4"><div class="mb-2"><label>Nome:</label><input type="text" readonly class="form-control" value="TESTE"></div><div class="mb-2"><label>Usuário:</label><input type="text" readonly class="form-control" id="view_user"></div><div class="mb-2"><label>Senha:</label><input type="text" readonly class="form-control" id="view_pass"></div><div class="mb-2"><label>Expira em:</label><input type="text" readonly class="form-control text-warning fw-bold" id="view_venc"></div><hr class="border-secondary"><div class="mb-2"><label>URL / DNS:</label><input type="text" readonly class="form-control text-info" id="view_url"></div><div class="mb-4"><label>PORTA:</label><input type="text" readonly class="form-control text-warning" id="view_porta"></div><div class="d-flex gap-2"><button onclick="copiarVisualizar()" class="btn btn-outline-light w-50">COPIAR</button><button onclick="zapVisualizar()" class="btn btn-success w-50">WHATSAPP</button></div></div></div></div></div>

<div class="modal fade" id="modalCriar" tabindex="-1"><div class="modal-dialog modal-dialog-centered"><div class="modal-content bg-dark border-secondary text-white"><form method="POST"><input type="hidden" name="acao" value="criar"><div class="modal-header"><h5>Novo Teste</h5><button class="btn-close btn-close-white" data-bs-dismiss="modal"></button></div><div class="modal-body p-4">
    <div class="mb-3"><label>Nome</label><input type="text" name="nome" class="form-control" placeholder="Nome do cliente" required></div>
    <div class="mb-3"><label>Usuário</label><input type="text" name="usuario" class="form-control" required></div><div class="mb-3"><label>Senha</label><input type="text" name="senha" class="form-control" value="<?= rand(1000,9999) ?>" required></div><div class="row"><div class="col-6 mb-3"><label>Duração</label><select name="tempo" class="form-select"><option value="3">3 Horas</option><option value="24">24 Horas</option><option value="48">48 Horas</option></select></div><div class="col-6 mb-3"><label>Perfil</label><select name="perfil" class="form-select" required><?php foreach($lista_perfis_select as $ps): ?><option value="<?= $ps['id'] ?>"><?= $ps['nome'] ?></option><?php endforeach; ?></select></div></div></div><div class="modal-footer"><button type="submit" class="btn btn-success w-100 fw-bold">GERAR ACESSO</button></div></form></div></div></div>

<div class="modal fade" id="modalEditar" tabindex="-1"><div class="modal-dialog modal-dialog-centered"><div class="modal-content bg-dark border-secondary text-white"><form method="POST"><input type="hidden" name="acao" value="editar"><input type="hidden" name="id_teste" id="edit_id"><div class="modal-header"><h5>Editar Teste</h5><button class="btn-close btn-close-white" data-bs-dismiss="modal"></button></div><div class="modal-body p-4">
    <div class="mb-3"><label>Nome</label><input type="text" name="nome" id="edit_nome" class="form-control" required></div>
    <div class="mb-3"><label>Usuário</label><input type="text" name="usuario" id="edit_user" class="form-control"></div><div class="mb-3"><label>Senha</label><input type="text" name="senha" id="edit_pass" class="form-control"></div><div class="mb-3"><label>Perfil</label><select name="perfil" id="edit_perfil" class="form-select"><?php foreach($lista_perfis_select as $ps): ?><option value="<?= $ps['id'] ?>"><?= $ps['nome'] ?></option><?php endforeach; ?></select></div></div><div class="modal-footer"><button type="submit" class="btn btn-primary w-100 fw-bold">SALVAR</button></div></form></div></div></div>

<div class="modal fade" id="modalZap" tabindex="-1"><div class="modal-dialog modal-dialog-centered text-center"><div class="modal-content bg-dark border-success text-white"><div class="modal-header border-0 pb-0"><button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" id="btnCloseZap"></button></div><div class="modal-body p-4 pt-0"><h5 class="text-success mb-3">Concluído!</h5><textarea id="textoZapArea" class="form-control mb-3" rows="6" style="background:#111; color:#0f0; border:none; font-family:monospace;"><?= $texto_zap ?></textarea><button onclick="copiarTexto()" class="btn btn-outline-light me-2">Copiar</button><button onclick="enviarZap()" class="btn btn-success">WhatsApp</button></div></div></div></div>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script>
    function toggleMenu() { document.getElementById('sidebar').classList.toggle('show'); document.getElementById('overlay').classList.toggle('show'); }
    // Visualizar agora recebe o nome também se quiser, mas mantive o básico
    function abrirVisualizar(t, p, data_br) { document.getElementById('view_user').value = t.usuario; document.getElementById('view_pass').value = t.senha; document.getElementById('view_venc').value = data_br; document.getElementById('view_url').value = p.url || ''; document.getElementById('view_porta').value = p.porta || ''; new bootstrap.Modal(document.getElementById('modalVerDados')).show(); }
    function copiarVisualizar() { const m = `👤 Teste: ${document.getElementById('view_user').value}\n🔑 Senha: ${document.getElementById('view_pass').value}\n⏳ Expira: ${document.getElementById('view_venc').value}\n🌐 URL: ${document.getElementById('view_url').value}`; navigator.clipboard.writeText(m).then(() => alert("Copiado!")); }
    function zapVisualizar() { const m = `*✅ SEU TESTE GRÁTIS*\n\n👤 *User:* ${document.getElementById('view_user').value}\n🔑 *Senha:* ${document.getElementById('view_pass').value}\n⏳ *Validade:* ${document.getElementById('view_venc').value}\n\n🌐 *URL:* ${document.getElementById('view_url').value}`; window.open("https://api.whatsapp.com/send?text=" + encodeURIComponent(m), '_blank'); }
    
    // JS Editar agora preenche o campo nome
    function abrirEditar(t) { 
        document.getElementById('edit_id').value = t.id; 
        document.getElementById('edit_nome').value = t.nome; // NOVO
        document.getElementById('edit_user').value = t.usuario; 
        document.getElementById('edit_pass').value = t.senha; 
        document.getElementById('edit_perfil').value = t.perfil; 
        new bootstrap.Modal(document.getElementById('modalEditar')).show(); 
    }
    
    function copiarTexto() { document.getElementById("textoZapArea").select(); document.execCommand("copy"); alert("Copiado!"); }
    function enviarZap() { window.open("https://api.whatsapp.com/send?text=" + encodeURIComponent(document.getElementById("textoZapArea").value), '_blank'); }
    window.onload = function() {
        if(`<?= trim($texto_zap) ?>` !== "") {
            new bootstrap.Modal(document.getElementById('modalZap')).show();
            <?php if($redirecionar): ?>
                const redir = () => { window.location.href = 'clientes.php'; };
                document.getElementById('modalZap').addEventListener('hidden.bs.modal', redir);
                document.getElementById('btnCloseZap').onclick = redir;
            <?php endif; ?>
        }
    }
</script>
</body>
</html>
