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

$pdo = getConexaoAtiva();
$pdo->exec("SET NAMES utf8mb4");

// ==============================================================================
// 1. AUTO-CRIAÇÃO DAS TABELAS DE SEGURANÇA (Baseado no padrão Xtream UI)
// ==============================================================================
try {
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    // Tabela IPs
    $pdo->exec("CREATE TABLE IF NOT EXISTS `blocked_ips` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `ip` varchar(39) NOT NULL,
        `notes` mediumtext DEFAULT NULL,
        `date` int(11) NOT NULL,
        `attempts_blocked` int(11) NOT NULL DEFAULT 0,
        PRIMARY KEY (`id`),
        UNIQUE KEY `ip_unique` (`ip`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

    // Tabela User Agents
    $pdo->exec("CREATE TABLE IF NOT EXISTS `blocked_user_agents` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `user_agent` varchar(255) NOT NULL,
        `exact_match` int(11) NOT NULL DEFAULT 0,
        `attempts_blocked` int(11) NOT NULL DEFAULT 0,
        PRIMARY KEY (`id`),
        UNIQUE KEY `ua_unique` (`user_agent`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

    // Tabela ISPs
    $pdo->exec("CREATE TABLE IF NOT EXISTS `blocked_isps` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `isp` mediumtext NOT NULL,
        `blocked` tinyint(4) NOT NULL DEFAULT 1,
        PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

    // Tabela ASNs
    $pdo->exec("CREATE TABLE IF NOT EXISTS `blocked_asns` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `asn` int(11) NOT NULL,
        `isp` varchar(256) DEFAULT NULL,
        `domain` varchar(256) DEFAULT NULL,
        `country` varchar(16) DEFAULT NULL,
        `num_ips` int(11) DEFAULT 0,
        `type` varchar(64) DEFAULT NULL,
        `allocated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
        `blocked` tinyint(4) NOT NULL DEFAULT 1,
        PRIMARY KEY (`id`),
        UNIQUE KEY `asn_unique` (`asn`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

} catch (PDOException $e) {
    die("Erro ao criar tabelas de segurança: " . $e->getMessage());
}

// --- INÍCIO: BUSCA DE PERSONALIZAÇÃO DINÂMICA ---
$nome_painel = 'TOP IPTV';
$logo_url = '';
$cor_primaria = '#007bff';

try {
    $tabela_existe = $pdo->query("SHOW TABLES LIKE 'painel_config'")->rowCount() > 0;
    if ($tabela_existe) {
        $config_painel = $pdo->query("SELECT * FROM painel_config LIMIT 1")->fetch(PDO::FETCH_ASSOC);
        if ($config_painel) {
            $nome_painel = !empty($config_painel['nome_painel']) ? $config_painel['nome_painel'] : $nome_painel;
            $logo_url = !empty($config_painel['logo_url']) ? $config_painel['logo_url'] : $logo_url;
            $cor_primaria = !empty($config_painel['cor_primaria']) ? $config_painel['cor_primaria'] : $cor_primaria;
        }
    }
} catch (Exception $e) {}

if (!isset($_SESSION['user_id'])) { header("Location: login.php"); exit; }

$role = $_SESSION['user_role'] ?? 'reseller'; 
$nome_usuario = $_SESSION['username'] ?? 'Usuário';
$user_id_logado = $_SESSION['user_id'];

// APENAS ADMIN PODE ACESSAR A SEGURANÇA
if ($role !== 'admin') { header("Location: dashboard.php"); exit; }

try { $user_credits = $pdo->query("SELECT credits FROM reg_users WHERE id = " . intval($user_id_logado))->fetchColumn() ?: 0; } catch (Exception $e) { $user_credits = 0; }

$mensagem = "";

// ==============================================================================
// 2. PROCESSAMENTO DE FORMULÁRIOS (ADICIONAR BLOQUEIOS)
// ==============================================================================
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $tipo_form = $_POST['tipo_form'] ?? '';

    try {
        if ($tipo_form === 'add_ip') {
            $ip = trim($_POST['ip_address']);
            $notes = trim($_POST['notes']);
            $pdo->prepare("INSERT IGNORE INTO blocked_ips (ip, notes, date) VALUES (?, ?, ?)")->execute([$ip, $notes, time()]);
            $mensagem = "<div class='alert success'><i class='fas fa-check-circle'></i> IP Bloqueado com sucesso! (O Firewall de Rede será atualizado em 1 minuto)</div>";
        } 
        elseif ($tipo_form === 'add_ua') {
            $ua = trim($_POST['user_agent']);
            $exact = isset($_POST['exact_match']) ? 1 : 0;
            $pdo->prepare("INSERT IGNORE INTO blocked_user_agents (user_agent, exact_match) VALUES (?, ?)")->execute([$ua, $exact]);
            $mensagem = "<div class='alert success'><i class='fas fa-check-circle'></i> User Agent Bloqueado com sucesso!</div>";
        }
        elseif ($tipo_form === 'add_isp') {
            $isp = trim($_POST['isp_name']);
            $pdo->prepare("INSERT INTO blocked_isps (isp, blocked) VALUES (?, 1)")->execute([$isp]);
            $mensagem = "<div class='alert success'><i class='fas fa-check-circle'></i> ISP Bloqueado com sucesso!</div>";
        }
        elseif ($tipo_form === 'add_asn') {
            $asn = intval($_POST['asn_number']);
            $isp_asn = trim($_POST['asn_isp']);
            $pdo->prepare("INSERT IGNORE INTO blocked_asns (asn, isp, blocked) VALUES (?, ?, 1)")->execute([$asn, $isp_asn]);
            $mensagem = "<div class='alert success'><i class='fas fa-check-circle'></i> ASN Bloqueado com sucesso!</div>";
        }
    } catch (PDOException $e) {
        $mensagem = "<div class='alert danger'><i class='fas fa-exclamation-triangle'></i> Erro ao salvar: " . $e->getMessage() . "</div>";
    }
}

// ==============================================================================
// 3. EXCLUSÃO DE BLOQUEIOS
// ==============================================================================
if (isset($_GET['del_ip'])) { $pdo->prepare("DELETE FROM blocked_ips WHERE id = ?")->execute([$_GET['del_ip']]); header("Location: seguranca.php"); exit; }
if (isset($_GET['del_ua'])) { $pdo->prepare("DELETE FROM blocked_user_agents WHERE id = ?")->execute([$_GET['del_ua']]); header("Location: seguranca.php"); exit; }
if (isset($_GET['del_isp'])) { $pdo->prepare("DELETE FROM blocked_isps WHERE id = ?")->execute([$_GET['del_isp']]); header("Location: seguranca.php"); exit; }
if (isset($_GET['del_asn'])) { $pdo->prepare("DELETE FROM blocked_asns WHERE id = ?")->execute([$_GET['del_asn']]); header("Location: seguranca.php"); exit; }

// Buscas para exibir nas tabelas
$lista_ips = $pdo->query("SELECT * FROM blocked_ips ORDER BY id DESC")->fetchAll(PDO::FETCH_ASSOC);
$lista_uas = $pdo->query("SELECT * FROM blocked_user_agents ORDER BY id DESC")->fetchAll(PDO::FETCH_ASSOC);
$lista_isps = $pdo->query("SELECT * FROM blocked_isps ORDER BY id DESC")->fetchAll(PDO::FETCH_ASSOC);
$lista_asns = $pdo->query("SELECT * FROM blocked_asns ORDER BY id DESC")->fetchAll(PDO::FETCH_ASSOC);

?>
<!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>Segurança do Servidor - <?php echo htmlspecialchars($nome_painel); ?></title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <style>
        :root { 
            --bg-dark: #0f1114; 
            --bg-sidebar: #1e2227; 
            --bg-card: #272c33; 
            --text-main: #d1d5da; 
            --text-muted: #8a94a1; 
            --accent: <?php echo $cor_primaria; ?>; 
            --border-color: #3a4149; 
            --success: #28a745; 
            --danger: #dc3545; 
            --warning: #f39c12;
            --info: #17a2b8;
        }
        body { margin: 0; font-family: 'Segoe UI', sans-serif; background-color: var(--bg-dark); color: var(--text-main); display: flex; height: 100vh; overflow: hidden; }

        /* SIDEBAR (Padronizada) */
        .sidebar { width: 260px; background-color: var(--bg-sidebar); border-right: 1px solid var(--border-color); display: flex; flex-direction: column; transition: all 0.3s ease; z-index: 1001; }
        .sidebar-header { padding: 25px 20px; text-align: center; font-size: 22px; font-weight: bold; border-bottom: 1px solid var(--border-color); color: white; }
        .sidebar-logo { max-width: 180px; max-height: 60px; object-fit: contain; }
        .user-info { padding: 20px; text-align: center; border-bottom: 1px solid var(--border-color); }
        .user-info .badge { background: rgba(255, 255, 255, 0.05); color: var(--accent); padding: 4px 10px; border-radius: 4px; font-size: 11px; text-transform: uppercase; font-weight: bold; margin-top: 5px; display: inline-block; }
        .user-info .credits-badge { display: block; margin-top: 10px; color: var(--success); font-weight: bold; font-size: 13px; }
        .menu-list { list-style: none; padding: 0; margin: 0; flex: 1; overflow-y: auto; }
        .menu-item { padding: 14px 25px; color: var(--text-main); text-decoration: none; display: flex; align-items: center; transition: 0.2s; font-size: 15px; border-left: 4px solid transparent; cursor: pointer; }
        .menu-item i:first-child { margin-right: 15px; width: 20px; text-align: center; font-size: 16px; color: var(--text-muted); }
        .menu-item:hover, .menu-item.active { background: #2c3138; color: white; border-left-color: var(--accent); }
        .menu-item.active i { color: var(--accent); }
        .submenu { display: none; background: #121519; list-style: none; padding: 0; margin: 0; }
        .submenu .menu-item { padding-left: 52px; font-size: 14px; border-left: none; }
        .arrow-icon { margin-left: auto; transition: 0.3s; font-size: 12px; }
        .rotate { transform: rotate(180deg); }
        .menu-category { padding: 20px 25px 8px; font-size: 11px; text-transform: uppercase; color: var(--text-muted); font-weight: bold; letter-spacing: 1px; }
        .logout-btn { padding: 15px; background-color: var(--danger); color: white; text-align: center; text-decoration: none; font-weight: bold; margin-top: auto; }

        /* MAIN CONTENT */
        .main { flex: 1; display: flex; flex-direction: column; overflow-y: auto; width: 100%; position: relative; }
        .topbar { display: flex; justify-content: space-between; align-items: center; padding: 15px 30px; background-color: var(--bg-sidebar); border-bottom: 1px solid var(--border-color); }
        .content-area { padding: 25px; flex: 1; }
        .mode-badge { padding: 6px 15px; background: rgba(220, 53, 69, 0.15); color: var(--danger); border-radius: 20px; font-size: 12px; font-weight: bold; border: 1px solid var(--danger); white-space: nowrap; display: inline-block; cursor: pointer; }

        /* ABAS (TABS) */
        .tabs { display: flex; gap: 10px; margin-bottom: 20px; border-bottom: 1px solid var(--border-color); padding-bottom: 10px; overflow-x: auto; }
        .tab-btn { background: var(--bg-card); color: var(--text-main); border: 1px solid var(--border-color); padding: 10px 20px; border-radius: 6px; cursor: pointer; font-weight: bold; transition: 0.2s; white-space: nowrap; }
        .tab-btn.active { background: var(--accent); color: white; border-color: var(--accent); }
        .tab-btn:hover:not(.active) { background: #3a4149; }
        .tab-content { display: none; }
        .tab-content.active { display: block; }

        /* LAYOUT DUPLO (Form + Table) */
        .layout-grid { display: grid; grid-template-columns: 350px 1fr; gap: 20px; align-items: start; }
        
        .form-card { background: var(--bg-card); padding: 20px; border-radius: 10px; border: 1px solid var(--border-color); }
        .form-card h3 { margin-top: 0; margin-bottom: 15px; font-size: 16px; color: white; border-bottom: 1px solid var(--border-color); padding-bottom: 10px; }
        .form-group { margin-bottom: 15px; }
        .form-group label { display: block; margin-bottom: 5px; font-size: 12px; font-weight: bold; color: var(--text-muted); text-transform: uppercase; }
        .form-group input[type="text"], .form-group input[type="number"] { width: 100%; padding: 10px; background: #121519; border: 1px solid var(--border-color); color: white; border-radius: 5px; box-sizing: border-box; }
        .checkbox-label { display: flex; align-items: center; gap: 10px; font-size: 13px; cursor: pointer; color: white; }
        .btn-submit { width: 100%; background: var(--danger); color: white; border: none; padding: 12px; border-radius: 5px; font-weight: bold; cursor: pointer; transition: 0.2s; }
        .btn-submit:hover { filter: brightness(1.2); }

        .table-container { background: var(--bg-card); border-radius: 10px; border: 1px solid var(--border-color); overflow-x: auto; }
        table { width: 100%; border-collapse: collapse; min-width: 600px; }
        th { background: rgba(0,0,0,0.2); padding: 15px; text-align: left; font-size: 11px; color: var(--text-muted); text-transform: uppercase; }
        td { padding: 12px 15px; border-bottom: 1px solid var(--border-color); font-size: 13px; }
        .btn-del { background: rgba(220, 53, 69, 0.1); color: var(--danger); border: 1px solid var(--danger); padding: 5px 10px; border-radius: 4px; text-decoration: none; font-size: 11px; font-weight: bold; }
        .btn-del:hover { background: var(--danger); color: white; }
        .badge-count { background: #121519; border: 1px solid var(--border-color); padding: 3px 8px; border-radius: 10px; font-weight: bold; color: var(--warning); }

        .alert { padding: 15px; border-radius: 5px; margin-bottom: 20px; font-weight: bold; }
        .alert.success { background: rgba(40, 167, 69, 0.15); border: 1px solid var(--success); color: var(--success); }
        .alert.danger { background: rgba(220, 53, 69, 0.15); border: 1px solid var(--danger); color: var(--danger); }

        /* MODAL TUTORIAL */
        .modal { display: none; position: fixed; z-index: 2000; left: 0; top: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.85); overflow-y: auto; }
        .modal-content { background: var(--bg-card); width: 90%; max-width: 800px; margin: 5% auto; padding: 25px; border-radius: 12px; border: 1px solid var(--border-color); }
        .code-box { background: #121519; border: 1px solid var(--border-color); padding: 15px; border-radius: 8px; font-family: monospace; font-size: 12px; color: #a5d6ff; overflow-x: auto; white-space: pre-wrap; margin-bottom: 15px; word-break: break-all; }

        .menu-toggle { display: none; background: none; border: none; color: white; font-size: 24px; cursor: pointer; }
        .sidebar-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.7); z-index: 1000; }

        @media (max-width: 900px) {
            .layout-grid { grid-template-columns: 1fr; }
        }
        @media (max-width: 768px) {
            .sidebar { position: fixed; left: -260px; height: 100%; }
            .sidebar.active { left: 0; }
            .sidebar-overlay.active { display: block; }
            .menu-toggle { display: block; margin-right: 15px; }
            .topbar { padding: 15px 20px; justify-content: flex-start; }
            .topbar-right { margin-left: auto; }
            .content-area { padding: 15px; }
        }
    </style>
</head>
<body>

    <div class="sidebar-overlay" id="overlay"></div>

    <nav class="sidebar" id="sidebar">
        <div class="sidebar-header">
            <?php if(!empty($logo_url) && file_exists($logo_url)): ?>
                <img src="<?php echo htmlspecialchars($logo_url); ?>" alt="Logo" class="sidebar-logo">
            <?php else: ?>
                <?php echo htmlspecialchars($nome_painel); ?>
            <?php endif; ?>
        </div>
        <div class="user-info">
            <div style="color:white; font-size: 14px;">Olá, <strong><?php echo htmlspecialchars($nome_usuario); ?></strong></div>
            <span class="badge"><?php echo $role === 'admin' ? 'Administrador' : 'Revendedor'; ?></span>
            <div class="credits-badge"><i class="fas fa-coins"></i> Saldo: <?php echo number_format($user_credits, 1); ?></div>
        </div>
        
        <div class="menu-list">
            <a href="dashboard.php" class="menu-item active"><i class="fas fa-chart-line"></i> Dashboard</a>
            <a href="perfil.php" class="menu-item active"><i class="fas fa-user-circle"></i> Meu Perfil</a>
            
            <a href="lancamentos.php" class="menu-item active"><i class="fas fa-fire"></i> Últimos Adicionados</a>
            
            <a href="ajuda.php" class="menu-item active"><i class="fas fa-question-circle"></i> Material de Ajuda</a>
            
            <div class="menu-category">Gestão</div>
            <a href="clientes.php" class="menu-item active"><i class="fas fa-users"></i> Clientes IPTV</a>
            <a href="testes.php" class="menu-item active"><i class="fas fa-vial"></i> Gerenciar Testes</a>
            <a href="online.php" class="menu-item active"><i class="fas fa-plug"></i> Clientes Online</a>
            <a href="revendedores.php" class="menu-item active"><i class="fas fa-user-tie"></i> Revendedores</a>
            <a href="migrar_clientes.php" class="menu-item active"><i class="fas fa-exchange-alt"></i> Migrar Clientes</a>
            <a href="logs_creditos.php" class="menu-item active"><i class="fas fa-list-alt"></i> Extrato de Créditos</a>
            <a href="marketing.php" class="menu-item active"><i class="fas fa-bullhorn"></i> Central de Marketing</a>
            
            
            <div class="menu-category">Clientes P2P</div>
            <a href="p2p_clientes.php" class="menu-item active"><i class="fas fa-tv"></i> Clientes P2P</a>
            
            <?php if (!empty($api_conf['api_binstream_url'])): ?>
                <a href="binstream_p2p.php" class="menu-item active"><i class="fas fa-tv"></i> Binstream P2P</a>
            <?php endif; ?>

            <div class="menu-category">Integração & Cobrança</div>
            <a href="pagamentos.php" class="menu-item active"><i class="fas fa-dollar-sign"></i> Pagamento Automático</a>
            <a href="cobranca.php" class="menu-item active"><i class="fas fa-comment-dollar"></i> Central de Cobrança</a>
            <a href="admin_planos.php" class="menu-item active"><i class="fas fa-tags"></i> Meus Planos de Venda</a>
            <a href="comprar_creditos.php" class="menu-item active"><i class="fas fa-shopping-cart"></i> Comprar Créditos</a>
            
            <div class="menu-item active" onclick="toggleSubmenu('appsSub')">
                <i class="fas fa-rocket"></i><span>Aplicações</span><i class="fas fa-chevron-down arrow-icon" id="arrow-appsSub"></i>
            </div>
            <div class="submenu" id="appsSub">
                <a href="loja_apps.php" class="menu-item active"><i class="fas fa-store"></i> Loja de Aplicativos</a>
                <?php if($role === 'admin'): ?>
                    <a href="admin_loja.php" class="menu-item active"><i class="fas fa-cogs"></i> Gerenciar Loja</a>
                <?php endif; ?>
                <a href="chatbot.php" class="menu-item active"><i class="fab fa-whatsapp"></i> Chatbot Automático</a>
            </div>
           <a href="admin_player_revenda.php" class="menu-item active"><i class="fas fa-play-circle"></i> WebPlayer</a>
            
   <div class="menu-category">Segurança</div>
            <a href="historico_logins.php" class="menu-item active"><i class="fas fa-shield-alt"></i> Sessões Ativas</a>

            <?php if($role === 'admin'): ?>
                <div class="menu-category">Administração</div>
                <a href="admin_monitor.php" class="menu-item active"><i class="fas fa-heartbeat"></i> Monitor do Servidor</a>
                <a href="admin_template.php" class="menu-item active"><i class="fas fa-edit"></i> Editor de Template</a>
                <a href="admin_lb.php" class="menu-item active"><i class="fas fa-server"></i> Load Balancers</a>
                <a href="guia_cloudflare.php" class="menu-item active"><i class="fas fa-cloud"></i> Guia Cloudflare</a>
                 <a href="admin_loja_creditos.php" class="menu-item active"><i class="fas fa-store"></i> Configurar Loja (PIX)</a>
                 <a href="integracoes_api.php" class="menu-item active"><i class="fas fa-plug"></i> Integrações API</a>
                 <a href="integracoes_api_whatsapp.php" class="menu-item active"><i class="fas fa-plug"></i> Integrações API WhatsApp</a>
                 <a href="admin_robo.php" class="menu-item active"><i class="fas fa-robot"></i> Robô de Cobrança</a>
                 <a href="admin_anti_bloqueio.php" class="menu-item active"><i class="fas fa-bolt"></i> Botão de Pânico</a>
                 <a href="admin_anti_fraude.php" class="menu-item active"><i class="fas fa-user-secret"></i> Radar Anti-Fraude</a>  
                 <a href="admin_watchdog.php" class="menu-item active"><i class="fas fa-dog"></i> Watchdog LB</a>  
                 
                 <a href="admin_epg_sync.php" class="menu-item active">
        <i class="fas fa-clock"></i> Sincronizar EPG
    </a>

 <div class="menu-item active" onclick="toggleSubmenu('painelSub')">
                    <i class="fas fa-desktop"></i><span>Painel</span><i class="fas fa-chevron-down arrow-icon" id="arrow-painelSub"></i>
                </div>
                <div class="submenu" id="painelSub">
                    <a href="personalizacao.php" class="menu-item active"><i class="fas fa-paint-brush"></i> Personalização</a>
                </div>
             
                <div class="menu-item active" onclick="toggleSubmenu('adminSub')">
                    <i class="fas fa-toolbox"></i><span>Ferramentas</span><i class="fas fa-chevron-down arrow-icon" id="arrow-adminSub"></i>
                </div>
                <div class="submenu" id="adminSub">
                    <a href="importar.php" class="menu-item active"><i class="fas fa-file-import"></i> Importador</a>
                    <a href="importar3.php" class="menu-item active"><i class="fas fa-file-import"></i> Importador Turbo</a>
                    <a href="dns_manager.php" class="menu-item active"><i class="fas fa-link"></i> Alterar DNS</a>
                    <a href="admin_logos.php" class="menu-item active"><i class="fas fa-image"></i> Alterar Logos</a>
                    <a href="mover_conteudos.php" class="menu-item active"><i class="fas fa-exchange-alt"></i> Mover Conteúdos</a>
                    <a href="limpeza.php" class="menu-item active"><i class="fas fa-trash-alt"></i> Limpeza de Dados</a>
                    <a href="limpar_duplicados.php" class="menu-item active"><i class="fas fa-copy"></i> Limpeza de Duplicados</a>
                    <a href="backup.php" class="menu-item active"><i class="fas fa-database"></i> Backup do Sistema</a>
                    <a href="seguranca.php" class="menu-item active"><i class="fas fa-shield-alt"></i> Sistema de Segurança</a>
                    <a href="configuracoes.php" class="menu-item active"><i class="fas fa-tools"></i> Configurações</a>
                </div>

                 <?php if($role === 'admin'): ?>
    <div class="menu-category">Financeiro</div>
     <!-- NOVO MENU FINANCEIRO COM SUBMENU -->
            <div class="menu-item active" onclick="toggleSubmenu('finSub')">
                <i class="fas fa-hand-holding-usd"></i><span>Financeiro</span><i class="fas fa-chevron-down arrow-icon rotate" id="arrow-finSub"></i>
            </div>
            <div class="submenu" id="finSub" style="display: block;">
                <a href="financeiro.php" class="menu-item active">Faturamento</a>
            </div>
    
    <?php endif; ?>

                <div class="menu-category">Conteúdos</div>
                <a href="categorias.php" class="menu-item active"><i class="fas fa-folder-open"></i><span>Categorias</span></a>
                <div class="menu-item active" onclick="toggleSubmenu('contentSub')">
                    <i class="fas fa-layer-group"></i><span>Mídias</span><i class="fas fa-chevron-down arrow-icon" id="arrow-contentSub"></i>
                </div>
                <div class="submenu" id="contentSub">
                    <a href="bouquets.php" class="menu-item active">Editar Bouquets</a>
                    <a href="canais.php" class="menu-item active">Canais Ao Vivo</a>
                    <a href="filmes.php" class="menu-item active">Filmes (VOD)</a>
                    <a href="series.php" class="menu-item active">Séries</a>
                </div>
                 <a href="admin_autofix_vod.php" class="menu-item active"><i class="fas fa-magic"></i> Auto-Fix TMDB</a>
            <?php endif; ?>
        </div>
        <a href="logout.php" class="logout-btn"><i class="fas fa-power-off"></i> Sair</a>
    </nav>

    <div class="main">
        <header class="topbar">
            <div style="display: flex; align-items: center;">
                <button class="menu-toggle" id="btn-menu"><i class="fas fa-bars"></i></button>
                <h2 style="margin:0; color: white;">Firewall e Bloqueios</h2>
            </div>
            <div class="topbar-right">
                <span class="mode-badge" onclick="document.getElementById('modalTutorial').style.display='block'">
                    <i class="fas fa-terminal"></i> INSTALAR FIREWALL NA VPS
                </span>
            </div>
        </header>

        <div class="content-area">
            <?php echo $mensagem; ?>

            <div class="tabs">
                <button class="tab-btn active" onclick="switchTab(event, 'tab-ip')"><i class="fas fa-network-wired"></i> IPs</button>
                <button class="tab-btn" onclick="switchTab(event, 'tab-ua')"><i class="fas fa-mobile-alt"></i> User Agents (Apps)</button>
                <button class="tab-btn" onclick="switchTab(event, 'tab-isp')"><i class="fas fa-server"></i> ISPs (Provedores)</button>
                <button class="tab-btn" onclick="switchTab(event, 'tab-asn')"><i class="fas fa-globe"></i> ASNs</button>
            </div>

            <div id="tab-ip" class="tab-content active">
                <div class="layout-grid">
                    <div class="form-card">
                        <h3><i class="fas fa-ban"></i> Bloquear Novo IP</h3>
                        <form method="POST">
                            <input type="hidden" name="tipo_form" value="add_ip">
                            <div class="form-group">
                                <label>Endereço IP</label>
                                <input type="text" name="ip_address" placeholder="Ex: 192.168.0.1" required>
                            </div>
                            <div class="form-group">
                                <label>Anotações (Opcional)</label>
                                <input type="text" name="notes" placeholder="Motivo do bloqueio">
                            </div>
                            <button type="submit" class="btn-submit">SALVAR BLOQUEIO</button>
                        </form>
                    </div>
                    <div class="table-container">
                        <table>
                            <thead>
                                <tr><th>IP</th><th>Motivo</th><th>Data</th><th>Bloqueios Efetuados</th><th>Ação</th></tr>
                            </thead>
                            <tbody>
                                <?php if(empty($lista_ips)): ?>
                                    <tr><td colspan="5" style="text-align:center; color:var(--text-muted);">Nenhum IP bloqueado.</td></tr>
                                <?php else: foreach($lista_ips as $ip): ?>
                                    <tr>
                                        <td><strong><?php echo htmlspecialchars($ip['ip']); ?></strong></td>
                                        <td style="color:var(--text-muted);"><?php echo htmlspecialchars($ip['notes'] ?: '-'); ?></td>
                                        <td><?php echo date('d/m/Y', $ip['date']); ?></td>
                                        <td><span class="badge-count"><?php echo $ip['attempts_blocked']; ?></span></td>
                                        <td><a href="?del_ip=<?php echo $ip['id']; ?>" class="btn-del" onclick="return confirm('Remover bloqueio?')"><i class="fas fa-trash"></i> Excluir</a></td>
                                    </tr>
                                <?php endforeach; endif; ?>
                            </tbody>
                        </table>
                    </div>
                </div>
            </div>

            <div id="tab-ua" class="tab-content">
                <div class="layout-grid">
                    <div class="form-card">
                        <h3><i class="fas fa-mobile-alt"></i> Bloquear User Agent</h3>
                        <p style="font-size:12px; color:var(--text-muted); margin-top:-10px;">Bloqueie aplicativos específicos que tentam baixar sua lista.</p>
                        <form method="POST">
                            <input type="hidden" name="tipo_form" value="add_ua">
                            <div class="form-group">
                                <label>Nome do User Agent</label>
                                <input type="text" name="user_agent" placeholder="Ex: VLC/3.0.16" required>
                            </div>
                            <div class="form-group">
                                <label class="checkbox-label">
                                    <input type="checkbox" name="exact_match" value="1">
                                    Correspondência Exata (Se desmarcado, bloqueia qualquer palavra que contenha o texto acima)
                                </label>
                            </div>
                            <button type="submit" class="btn-submit">SALVAR BLOQUEIO</button>
                        </form>
                    </div>
                    <div class="table-container">
                        <table>
                            <thead>
                                <tr><th>User Agent (Aplicativo)</th><th>Tipo de Regra</th><th>Bloqueios Efetuados</th><th>Ação</th></tr>
                            </thead>
                            <tbody>
                                <?php if(empty($lista_uas)): ?>
                                    <tr><td colspan="4" style="text-align:center; color:var(--text-muted);">Nenhum App bloqueado.</td></tr>
                                <?php else: foreach($lista_uas as $ua): ?>
                                    <tr>
                                        <td><strong style="color:var(--info);"><?php echo htmlspecialchars($ua['user_agent']); ?></strong></td>
                                        <td><?php echo $ua['exact_match'] ? 'Exato' : 'Contém a palavra'; ?></td>
                                        <td><span class="badge-count"><?php echo $ua['attempts_blocked']; ?></span></td>
                                        <td><a href="?del_ua=<?php echo $ua['id']; ?>" class="btn-del" onclick="return confirm('Remover bloqueio?')"><i class="fas fa-trash"></i> Excluir</a></td>
                                    </tr>
                                <?php endforeach; endif; ?>
                            </tbody>
                        </table>
                    </div>
                </div>
            </div>

            <div id="tab-isp" class="tab-content">
                <div class="layout-grid">
                    <div class="form-card">
                        <h3><i class="fas fa-server"></i> Bloquear Provedor (ISP)</h3>
                        <form method="POST">
                            <input type="hidden" name="tipo_form" value="add_isp">
                            <div class="form-group">
                                <label>Nome do Provedor</label>
                                <input type="text" name="isp_name" placeholder="Ex: DigitalOcean, Amazon" required>
                            </div>
                            <button type="submit" class="btn-submit">SALVAR BLOQUEIO</button>
                        </form>
                    </div>
                    <div class="table-container">
                        <table>
                            <thead>
                                <tr><th>Provedor (ISP)</th><th>Status</th><th>Ação</th></tr>
                            </thead>
                            <tbody>
                                <?php if(empty($lista_isps)): ?>
                                    <tr><td colspan="3" style="text-align:center; color:var(--text-muted);">Nenhum ISP bloqueado.</td></tr>
                                <?php else: foreach($lista_isps as $isp): ?>
                                    <tr>
                                        <td><strong><?php echo htmlspecialchars($isp['isp']); ?></strong></td>
                                        <td><span style="color:var(--danger); font-weight:bold;"><i class="fas fa-lock"></i> Bloqueado</span></td>
                                        <td><a href="?del_isp=<?php echo $isp['id']; ?>" class="btn-del" onclick="return confirm('Remover bloqueio?')"><i class="fas fa-trash"></i> Excluir</a></td>
                                    </tr>
                                <?php endforeach; endif; ?>
                            </tbody>
                        </table>
                    </div>
                </div>
            </div>

            <div id="tab-asn" class="tab-content">
                <div class="layout-grid">
                    <div class="form-card">
                        <h3><i class="fas fa-globe"></i> Bloquear ASN</h3>
                        <form method="POST">
                            <input type="hidden" name="tipo_form" value="add_asn">
                            <div class="form-group">
                                <label>Número ASN</label>
                                <input type="number" name="asn_number" placeholder="Ex: 13335" required>
                            </div>
                            <div class="form-group">
                                <label>Nome da Empresa / Provedor</label>
                                <input type="text" name="asn_isp" placeholder="Ex: Cloudflare Inc">
                            </div>
                            <button type="submit" class="btn-submit">SALVAR BLOQUEIO</button>
                        </form>
                    </div>
                    <div class="table-container">
                        <table>
                            <thead>
                                <tr><th>ASN</th><th>Provedor</th><th>Data de Registro</th><th>Ação</th></tr>
                            </thead>
                            <tbody>
                                <?php if(empty($lista_asns)): ?>
                                    <tr><td colspan="4" style="text-align:center; color:var(--text-muted);">Nenhum ASN bloqueado.</td></tr>
                                <?php else: foreach($lista_asns as $asn): ?>
                                    <tr>
                                        <td><strong style="color:#8b5cf6;">AS<?php echo $asn['asn']; ?></strong></td>
                                        <td><?php echo htmlspecialchars($asn['isp'] ?: '-'); ?></td>
                                        <td style="color:var(--text-muted); font-size:12px;"><?php echo $asn['allocated']; ?></td>
                                        <td><a href="?del_asn=<?php echo $asn['id']; ?>" class="btn-del" onclick="return confirm('Remover bloqueio?')"><i class="fas fa-trash"></i> Excluir</a></td>
                                    </tr>
                                <?php endforeach; endif; ?>
                            </tbody>
                        </table>
                    </div>
                </div>
            </div>

        </div>
        <?php include 'rodape.php'; ?>
    </div>

    <div id="modalTutorial" class="modal">
        <div class="modal-content">
            <h2 style="margin-top:0; color:white;"><i class="fas fa-shield-alt" style="color:var(--info);"></i> Instalação do Anti-DDoS e Firewall Nativo</h2>
            <p style="color:var(--text-muted); font-size:14px;">Para que as tabelas de IP acima comecem a bloquear ataques e invasores diretamente na <b>placa de rede do servidor</b> (barrando-os antes mesmo de abrirem o painel), faça a instalação rápida abaixo.</p>
            
            <h3 style="color:var(--accent); font-size:15px; margin-bottom:5px;">Comando de Instalação Único (SSH):</h3>
            <p style="font-size:13px; margin-top:0;">Abra o terminal SSH da sua VPS (como usuário root), clique no botão abaixo para copiar e cole no terminal.</p>
            
            <div class="code-box" id="codigo-ssh">apt-get update && apt-get install ipset iptables cron -y && iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 50 --connlimit-mask 32 -j REJECT --reject-with tcp-reset && iptables -A INPUT -p tcp --syn --dport 443 -m connlimit --connlimit-above 50 --connlimit-mask 32 -j REJECT --reject-with tcp-reset && echo "&lt;?php if(php_sapi_name()!=='cli')die(); require_once __DIR__.'/config.php'; \$pdo=getConexaoAtiva(); exec('ipset create painel_blocks hash:ip 2&gt;/dev/null'); exec('iptables -C INPUT -m set --match-set painel_blocks src -j DROP 2&gt;/dev/null || iptables -I INPUT -m set --match-set painel_blocks src -j DROP'); exec('ipset flush painel_blocks'); \$ips=\$pdo-&gt;query('SELECT ip FROM blocked_ips')-&gt;fetchAll(PDO::FETCH_COLUMN); foreach(\$ips as \$ip) { \$ip=trim(\$ip); if(filter_var(\$ip,FILTER_VALIDATE_IP)) exec('ipset add painel_blocks '.escapeshellarg(\$ip).' 2&gt;/dev/null'); } ?&gt;" > <?php echo __DIR__; ?>/sync_firewall.php && (crontab -l 2>/dev/null; echo "* * * * * /usr/bin/php <?php echo __DIR__; ?>/sync_firewall.php > /dev/null 2>&1") | crontab - && echo "INSTALADO COM SUCESSO!"</div>

            <button type="button" onclick="copiarComando()" style="width:100%; padding:12px; background:var(--success); border:none; color:white; border-radius:6px; cursor:pointer; font-weight:bold; margin-bottom:15px; transition: 0.2s;">
                <i class="fas fa-copy"></i> COPIAR COMANDO PARA O TERMINAL
            </button>

            <p style="font-size:12px; color:var(--warning);"><i class="fas fa-check-circle"></i> Após colar e apertar Enter no terminal, se aparecer "INSTALADO COM SUCESSO!", o painel já estará cruzando os bloqueios com a placa de rede da máquina!</p>

            <button onclick="document.getElementById('modalTutorial').style.display='none'" style="width:100%; padding:12px; background:var(--bg-sidebar); border:1px solid var(--border-color); color:white; border-radius:6px; cursor:pointer; font-weight:bold; margin-top:10px;">FECHAR JANELA</button>
        </div>
    </div>

    <script>
        // Função para Copiar o Comando SSH
        function copiarComando() {
            const comandoElement = document.getElementById('codigo-ssh');
            // Pegar o texto mantendo as tags decodificadas corretamente
            const textoComando = comandoElement.innerText || comandoElement.textContent;
            
            const el = document.createElement('textarea');
            el.value = textoComando;
            document.body.appendChild(el);
            el.select();
            document.execCommand('copy');
            document.body.removeChild(el);
            
            alert('Comando copiado com sucesso! Agora é só colar no seu terminal SSH.');
        }

        // Lógica de Abas
        function switchTab(evt, tabName) {
            var i, tabcontent, tablinks;
            tabcontent = document.getElementsByClassName("tab-content");
            for (i = 0; i < tabcontent.length; i++) {
                tabcontent[i].style.display = "none";
            }
            tablinks = document.getElementsByClassName("tab-btn");
            for (i = 0; i < tablinks.length; i++) {
                tablinks[i].className = tablinks[i].className.replace(" active", "");
            }
            document.getElementById(tabName).style.display = "block";
            evt.currentTarget.className += " active";
        }

        // Lógica Padrão do Menu Lateral
        const btnMenu = document.getElementById('btn-menu');
        const sidebar = document.getElementById('sidebar');
        const overlay = document.getElementById('overlay');
        function toggleMenu() { sidebar.classList.toggle('active'); overlay.classList.toggle('active'); }
        btnMenu.onclick = toggleMenu;
        overlay.onclick = toggleMenu;

        function toggleSubmenu(id) {
            const sub = document.getElementById(id);
            const arrow = document.getElementById('arrow-' + id);
            if (sub.style.display === "block") { sub.style.display = "none"; if(arrow) arrow.classList.remove('rotate'); } 
            else { sub.style.display = "block"; if(arrow) arrow.classList.add('rotate'); }
        }
    </script>
</body>
</html>
