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

$pdo = getConexaoAtiva(); // Banco Principal (Onde ficam os Streams)
$pdo_int = getConexaoInterna(); // Banco Local (Onde ficam as configs)

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

// --- PROTEÇÃO GERAL (Admin e Revenda) ---
if (!isset($_SESSION['user_id'])) {
    die("Acesso negado. Por favor, faça login no painel.");
}

$id_usuario = $_SESSION['user_id'];
$nome_usuario = $_SESSION['username'] ?? 'Usuário';
$role = $_SESSION['user_role'] ?? 'revenda';
$is_admin = ($role === 'admin'); 

// ====================================================================
// INTELIGÊNCIA ARTIFICIAL: DETECTA SE É XUI ONE OU XTREAM UI
// ====================================================================
$modo_ativo = 'interno';
try {
    $modo_ativo = $pdo_int->query("SELECT modo_ativo FROM configuracoes LIMIT 1")->fetchColumn() ?: 'interno';
} catch (Exception $e) {}

$tabela_revendedores = ($modo_ativo === 'xui') ? '`users`' : '`reg_users`';

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

try {
    $tabela_existe = $pdo_int->query("SHOW TABLES LIKE 'painel_config'")->rowCount() > 0;
    if ($tabela_existe) {
        $config_painel = $pdo_int->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) { }

$api_conf = ['api_binstream_url' => ''];
try {
    $api_conf = $pdo_int->query("SELECT api_binstream_url FROM painel_config LIMIT 1")->fetch(PDO::FETCH_ASSOC) ?: ['api_binstream_url' => ''];
} catch (Exception $e) {}

// Busca saldo
try {
    $user_credits = $pdo->query("SELECT credits FROM $tabela_revendedores WHERE id = " . intval($id_usuario))->fetchColumn() ?: 0;
} catch (Exception $e) { $user_credits = 0; }
// --- FIM: BUSCA DE PERSONALIZAÇÃO DINÂMICA ---

// Puxar as Categorias para o Filtro Novo
$categorias = [];
try {
    $categorias = $pdo->query("SELECT id, category_name FROM stream_categories ORDER BY category_name ASC")->fetchAll(PDO::FETCH_ASSOC);
} catch(Exception $e) {}

$mensagem = "";

// ==============================================================================
// PROCESSAMENTO DE FORMULÁRIOS
// ==============================================================================
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    
    // 1. SUBSTITUIÇÃO EM MASSA (FIND & REPLACE)
    if (isset($_POST['action']) && $_POST['action'] === 'replace_mass') {
        $find_text = trim($_POST['find_text']);
        $replace_text = trim($_POST['replace_text']);
        
        if (!empty($find_text)) {
            try {
                $stmt = $pdo->prepare("UPDATE streams SET stream_icon = REPLACE(stream_icon, ?, ?) WHERE stream_icon LIKE ?");
                $stmt->execute([$find_text, $replace_text, "%$find_text%"]);
                $afetados = $stmt->rowCount();
                $mensagem = "<div class='alert success' id='msg-alert'><i class='fas fa-check-circle'></i> Sucesso! <b>$afetados</b> logos foram atualizados via busca e troca.</div>";
            } catch (PDOException $e) {
                $mensagem = "<div class='alert danger' id='msg-alert'><i class='fas fa-exclamation-triangle'></i> Erro: " . $e->getMessage() . "</div>";
            }
        }
    }
    
    // 2. ATUALIZAÇÃO EM LOTE (Apenas nos Selecionados) - NOVA FUNÇÃO!
    if (isset($_POST['action']) && $_POST['action'] === 'update_selected') {
        $mass_url = trim($_POST['mass_logo_url']);
        if (isset($_POST['selected_ids']) && is_array($_POST['selected_ids']) && !empty($mass_url)) {
            try {
                $pdo->beginTransaction();
                $stmt = $pdo->prepare("UPDATE streams SET stream_icon = ? WHERE id = ?");
                $atualizados = 0;
                foreach ($_POST['selected_ids'] as $id) {
                    $stmt->execute([$mass_url, intval($id)]);
                    $atualizados++;
                }
                $pdo->commit();
                $mensagem = "<div class='alert success' id='msg-alert'><i class='fas fa-check-circle'></i> Sucesso! A capa foi aplicada em <b>$atualizados</b> itens selecionados.</div>";
            } catch (PDOException $e) {
                $pdo->rollBack();
                $mensagem = "<div class='alert danger' id='msg-alert'><i class='fas fa-exclamation-triangle'></i> Erro ao atualizar lote: " . $e->getMessage() . "</div>";
            }
        } else {
            $mensagem = "<div class='alert warning' id='msg-alert' style='background: rgba(250, 204, 21, 0.15); border: 1px solid var(--warning); color: var(--warning);'><i class='fas fa-exclamation-circle'></i> Ops! Selecione pelo menos um item e cole o link da capa.</div>";
        }
    }
    
    // 3. ATUALIZAÇÃO MANUAL EM GRADE (Individual)
    if (isset($_POST['action']) && $_POST['action'] === 'update_grid') {
        if (isset($_POST['logos']) && is_array($_POST['logos'])) {
            try {
                $pdo->beginTransaction();
                $stmt = $pdo->prepare("UPDATE streams SET stream_icon = ? WHERE id = ?");
                $atualizados = 0;
                foreach ($_POST['logos'] as $id => $url) {
                    $url = trim($url);
                    $stmt->execute([$url, intval($id)]);
                    $atualizados++;
                }
                $pdo->commit();
                $mensagem = "<div class='alert success' id='msg-alert'><i class='fas fa-check-circle'></i> Sucesso! <b>$atualizados</b> logos salvos manualmente pela grade.</div>";
            } catch (PDOException $e) {
                $pdo->rollBack();
                $mensagem = "<div class='alert danger' id='msg-alert'><i class='fas fa-exclamation-triangle'></i> Erro ao salvar grade: " . $e->getMessage() . "</div>";
            }
        }
    }
}

// ==============================================================================
// BUSCA PARA A GRADE DE EDIÇÃO (COM NOVOS FILTROS E MODO XUI/XTREAM)
// ==============================================================================
$search = $_GET['search'] ?? '';
$tipo_filtro = $_GET['tipo'] ?? 'todos'; 
$cat_filtro = $_GET['categoria'] ?? 'todas';
$sem_capa = isset($_GET['sem_capa']) ? true : false;

$sql = "SELECT id, stream_display_name, stream_icon, type FROM streams WHERE 1=1";
$params = [];

if (!empty($search)) {
    $sql .= " AND stream_display_name LIKE ?";
    $params[] = "%$search%";
}

// Filtro de Categoria
if ($cat_filtro !== 'todas') {
    $sql .= " AND category_id = ?";
    $params[] = intval($cat_filtro);
}

// Filtro de "Sem Capa"
if ($sem_capa) {
    $sql .= " AND (stream_icon IS NULL OR stream_icon = '')";
}

// Filtro de tipo com Mágica Híbrida XUI / Xtream
if ($tipo_filtro === 'live') { 
    $sql .= ($modo_ativo === 'xui') ? " AND type IN (1, 3, 4)" : " AND type IN (1, 3)"; 
} elseif ($tipo_filtro === 'vod') { 
    $sql .= ($modo_ativo === 'xui') ? " AND type IN (2, 5)" : " AND type = 2"; 
}

$sql .= " ORDER BY id DESC LIMIT 100"; // Limite de 100 para não travar o navegador

$stmt = $pdo->prepare($sql);
$stmt->execute($params);
$streams = $stmt->fetchAll(PDO::FETCH_ASSOC);

?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <link rel="stylesheet" href="tema.css">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>Gerenciador de Logos - <?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: #121519; --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: #facc15; --info: #0ea5e9;}
        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 (VIA INCLUDE) */
        .sidebar { width: 260px; background-color: var(--bg-sidebar); display: flex; flex-direction: column; transition: 0.3s; border-right: 1px solid var(--border-color); z-index: 1001; flex-shrink: 0; }
        .sidebar-header { padding: 25px 20px; text-align: center; font-size: 22px; font-weight: bold; color: white; border-bottom: 1px solid var(--border-color); }
        .sidebar-logo { max-width: 180px; max-height: 55px; 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; }
        .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; overflow-y: auto; flex: 1; }
        .menu-item { padding: 14px 20px; color: var(--text-main); text-decoration: none; display: flex; align-items: center; transition: 0.2s; border-left: 3px solid transparent; font-size: 14px; cursor: pointer; }
        .menu-item i:first-child { margin-right: 12px; width: 20px; text-align: center; color: var(--text-muted); }
        .menu-item:hover, .menu-item.active { background-color: #2c3138; color: white; border-left-color: var(--accent); }
        .menu-item.active i:first-child { color: var(--accent); }
        
        .submenu { display: none; background: #16191d; list-style: none; padding: 0; margin: 0; }
        .submenu .menu-item { padding-left: 52px; font-size: 13px; border-left: none; }
        .arrow-icon { margin-left: auto; transition: 0.3s; font-size: 11px; }
        .rotate { transform: rotate(180deg); }
        .menu-category { padding: 20px 20px 8px; font-size: 10px; text-transform: uppercase; color: var(--text-muted); font-weight: bold; letter-spacing: 1px; }
        .logout-btn { padding: 15px; background-color: #dc3545; color: white; text-align: center; text-decoration: none; font-weight: bold; margin-top: auto;}

        .main-content { 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); }
        .menu-toggle { display: none; background: none; border: none; color: white; font-size: 22px; cursor: pointer; padding: 5px; }
        
        .mode-badge { padding: 6px 15px; background: rgba(0, 123, 255, 0.15); color: var(--accent); border-radius: 20px; font-size: 12px; font-weight: bold; border: 1px solid var(--accent); white-space: nowrap; display: inline-block; }

        .content-area { padding: 20px; flex: 1; }

        .card { background: var(--bg-card); padding: 20px; border-radius: 10px; border: 1px solid var(--border-color); margin-bottom: 20px; }
        .card h3 { margin-top: 0; color: white; border-bottom: 1px solid var(--border-color); padding-bottom: 10px; font-size: 18px; }
        
        .form-row { display: flex; gap: 15px; align-items: flex-end; flex-wrap: wrap; }
        .form-group { flex: 1; min-width: 150px; margin-bottom: 10px; }
        .form-group label { display: block; margin-bottom: 5px; font-size: 13px; font-weight: bold; color: var(--text-muted); }
        .form-control { width: 100%; padding: 10px; background: #121519; border: 1px solid var(--border-color); color: white; border-radius: 5px; box-sizing: border-box; }
        
        .btn { 
            height: 42px; 
            padding: 0 20px; 
            border: none; 
            border-radius: 5px; 
            font-weight: bold; 
            cursor: pointer; 
            color: white; 
            transition: 0.2s; 
            display: inline-flex; 
            align-items: center; 
            justify-content: center; 
            gap: 8px; 
            box-sizing: border-box; 
            text-decoration: none; 
        }
        .btn-primary { background: var(--accent); }
        .btn-success { background: var(--success); }
        .btn-warning { background: var(--warning); color: #000; }
        .btn-info { background: var(--info); }
        .btn:hover { filter: brightness(1.2); color: white; }
        .btn-warning:hover { color: #000; }

        .alert { padding: 15px; border-radius: 5px; margin-bottom: 20px; font-weight: bold; transition: opacity 0.5s ease; }
        .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); }

        /* TABELA DE LOGOS */
        table { width: 100%; border-collapse: collapse; }
        th { background: rgba(0,0,0,0.2); padding: 12px; text-align: left; font-size: 12px; color: var(--text-muted); text-transform: uppercase; white-space: nowrap; }
        td { padding: 10px 12px; border-bottom: 1px solid var(--border-color); vertical-align: middle; }
        .img-preview { width: 60px; height: auto; border-radius: 4px; background: #000; display: block; }
        
        .input-wrapper { position: relative; display: flex; align-items: center; }
        .input-logo { 
            width: 100%; 
            min-width: 250px; 
            background: #121519; 
            border: 1px solid #3a4149; 
            color: #fff; 
            border-radius: 4px;
            font-family: monospace; 
            font-size: 12px; 
            padding: 8px 30px 8px 10px; 
            transition: 0.3s; 
        }
        .input-logo:focus { border-color: var(--accent); outline: none; box-shadow: 0 0 5px rgba(0, 123, 255, 0.5); }
        .input-wrapper i { position: absolute; right: 10px; color: var(--text-muted); font-size: 12px; pointer-events: none; }

        /* CAIXA DE AÇÃO EM LOTE */
        .mass-action-box {
            background: rgba(0,0,0,0.2); 
            padding: 15px; 
            border-radius: 8px; 
            margin-bottom: 15px; 
            display: flex; 
            flex-wrap: wrap; 
            gap: 15px; 
            align-items: center;
            border: 1px dashed var(--border-color);
        }

        .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: 768px) {
            .menu-toggle { display: block; margin-right: 15px; }
            .sidebar { position: fixed; left: -260px; height: 100%; box-shadow: 10px 0 20px rgba(0,0,0,0.5); }
            .sidebar.active { left: 0; }
            .sidebar-overlay.active { display: block; }
            .topbar { padding: 15px 20px; justify-content: flex-start;}
            .topbar-right { margin-left: auto; }
            .content-area { padding: 15px; padding-bottom: 100px;}
            .form-row { flex-direction: column; align-items: stretch;}
            .form-group { width: 100%;}
            .btn-action-group { display: flex; flex-direction: column; gap: 10px; }
            .mass-action-box { flex-direction: column; align-items: stretch; }
            .mass-action-box .btn { width: 100%; }
            table { display: block; overflow-x: auto; white-space: nowrap; }
        }
    </style>
</head>
<body>
    <div class="sidebar-overlay" id="overlay" onclick="toggleMenu()"></div>
    
    <?php include 'sidebar.php'; ?>

    <div class="main-content">
        <header class="topbar">
            <div style="display: flex; align-items: center; gap: 10px;">
                <button class="menu-toggle" onclick="toggleMenu()"><i class="fas fa-bars"></i></button>
                <h2 style="margin:0; font-size: 18px; color:white;"><i class="fas fa-image" style="color:var(--info);"></i> Gerenciador de Logos em Massa</h2>
            </div>
            <div class="topbar-right">
                <span class="mode-badge"><i class="fas fa-database"></i> MODO: <?php echo defined('MODO_SISTEMA') ? strtoupper(MODO_SISTEMA) : strtoupper($modo_ativo); ?></span>
            </div>
        </header>

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

            <div class="card" style="border-top: 4px solid var(--warning);">
                <h3><i class="fas fa-exchange-alt" style="color: var(--warning);"></i> 1. Substituição Inteligente (Mudar domínio de todos)</h3>
                <p style="font-size: 13px; color: var(--text-muted); margin-top: -5px;">Seu site de imagens caiu? Use esta ferramenta para trocar um trecho da URL em todos os canais de uma vez só.</p>
                
                <form method="POST">
                    <input type="hidden" name="action" value="replace_mass">
                    <div class="form-row">
                        <div class="form-group">
                            <label>Procurar por (Domínio Velho):</label>
                            <input type="text" name="find_text" class="form-control" placeholder="Ex: http://sitevelho.com/" required>
                        </div>
                        <div class="form-group">
                            <label>Substituir por (Domínio Novo):</label>
                            <input type="text" name="replace_text" class="form-control" placeholder="Ex: http://sitenovo.com/">
                        </div>
                        <div class="form-group" style="flex: 0 0 auto;">
                            <button type="submit" class="btn btn-warning" onclick="return confirm('ATENÇÃO: Isso vai alterar o banco de dados. Tem certeza?');" style="width: 100%;">
                                <i class="fas fa-bolt"></i> EXECUTAR TROCA
                            </button>
                        </div>
                    </div>
                </form>
            </div>

            <div class="card" style="border-top: 4px solid var(--accent);">
                <h3><i class="fas fa-list"></i> 2. Filtrar e Editar Mídias</h3>
                
                <form method="GET" style="margin-bottom: 20px; background: rgba(0,0,0,0.2); padding: 15px; border-radius: 8px;">
                    <div class="form-row">
                        <div class="form-group" style="flex: 2;">
                            <label>Buscar pelo Nome:</label>
                            <input type="text" name="search" class="form-control" value="<?php echo htmlspecialchars($search); ?>" placeholder="Ex: Globo, SBT, Batman...">
                        </div>
                        
                        <div class="form-group" style="flex: 1;">
                            <label>Categoria:</label>
                            <select name="categoria" class="form-control">
                                <option value="todas">Todas as Categorias</option>
                                <?php foreach($categorias as $cat): ?>
                                    <option value="<?php echo $cat['id']; ?>" <?php echo $cat_filtro == $cat['id'] ? 'selected' : ''; ?>>
                                        <?php echo htmlspecialchars($cat['category_name']); ?>
                                    </option>
                                <?php endforeach; ?>
                            </select>
                        </div>

                        <div class="form-group" style="flex: 1;">
                            <label>Filtrar Tipo:</label>
                            <select name="tipo" class="form-control">
                                <option value="todos" <?php echo $tipo_filtro == 'todos' ? 'selected' : ''; ?>>Misturado (Todos)</option>
                                <option value="live" <?php echo $tipo_filtro == 'live' ? 'selected' : ''; ?>>Apenas Ao Vivo</option>
                                <option value="vod" <?php echo $tipo_filtro == 'vod' ? 'selected' : ''; ?>>Apenas Filmes/Séries</option>
                            </select>
                        </div>
                        
                        <div class="form-group" style="flex: 0 0 auto; display: flex; align-items: center; justify-content: center; background: #121519; border: 1px solid var(--border-color); border-radius: 5px; padding: 0 15px;">
                            <label style="margin:0; cursor: pointer; display: flex; align-items: center; gap: 8px; color: white; height: 42px;">
                                <input type="checkbox" name="sem_capa" value="1" <?php echo $sem_capa ? 'checked' : ''; ?> style="width: 18px; height: 18px; cursor: pointer; accent-color: var(--accent);">
                                Exibir apenas sem capa
                            </label>
                        </div>
                        
                        <div class="form-group btn-action-group" style="flex: 0 0 auto;">
                            <button type="submit" class="btn btn-primary" style="width: 100%;"><i class="fas fa-search"></i> Filtrar</button>
                            <a href="admin_logos.php" class="btn" style="background:#444; width: 100%;">Limpar</a>
                        </div>
                    </div>
                </form>

                <form method="POST">
                    
                    <div class="mass-action-box">
                        <label style="color: white; font-weight: bold; margin:0;"><i class="fas fa-check-square" style="color: var(--info);"></i> Ação em Lote (Marcados):</label>
                        <input type="text" name="mass_logo_url" class="form-control" style="flex: 1; min-width: 200px; margin: 0; height: 42px;" placeholder="Cole o link da capa para os selecionados...">
                        
                        <button type="submit" name="action" value="update_selected" class="btn btn-info" onclick="return confirm('Aplicar esta capa em todos os itens marcados na caixinha?');">
                            <i class="fas fa-magic"></i> Aplicar nos Selecionados
                        </button>
                        
                        <button type="submit" name="action" value="update_grid" class="btn btn-success" style="margin-left: auto;">
                            <i class="fas fa-save"></i> Salvar a Grade Abaixo
                        </button>
                    </div>

                    <div style="overflow-x: auto; padding-bottom: 10px;">
                        <table>
                            <thead>
                                <tr>
                                    <th width="40" style="text-align: center;">
                                        <input type="checkbox" onclick="toggleAll(this)" style="width: 18px; height: 18px; cursor: pointer; accent-color: var(--accent);" title="Selecionar Todos">
                                    </th>
                                    <th width="80">Preview</th>
                                    <th width="50">ID</th>
                                    <th width="250">Nome do Conteúdo</th>
                                    <th>Link da Imagem (Edição Manual)</th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php if(empty($streams)): ?>
                                    <tr><td colspan="5" style="text-align:center;">Nenhum conteúdo encontrado.</td></tr>
                                <?php else: ?>
                                    <?php foreach($streams as $stream): ?>
                                        <tr>
                                            <td style="text-align: center;">
                                                <input type="checkbox" name="selected_ids[]" value="<?php echo $stream['id']; ?>" class="row-checkbox" style="width: 18px; height: 18px; cursor: pointer; accent-color: var(--accent);">
                                            </td>
                                            <td>
                                                <?php if(!empty($stream['stream_icon'])): ?>
                                                    <img src="<?php echo htmlspecialchars($stream['stream_icon']); ?>" class="img-preview" onerror="this.src='https://via.placeholder.com/60x40?text=Sem+Logo';">
                                                <?php else: ?>
                                                    <div class="img-preview" style="display:flex;align-items:center;justify-content:center;font-size:10px;color:#555;">N/A</div>
                                                <?php endif; ?>
                                            </td>
                                            <td style="color:var(--accent); font-weight:bold;">#<?php echo $stream['id']; ?></td>
                                            <td><strong><?php echo htmlspecialchars($stream['stream_display_name']); ?></strong></td>
                                            <td>
                                                <div class="input-wrapper">
                                                    <input type="text" name="logos[<?php echo $stream['id']; ?>]" value="<?php echo htmlspecialchars($stream['stream_icon']); ?>" class="input-logo" placeholder="Cole o link da imagem aqui...">
                                                    <i class="fas fa-pencil-alt"></i>
                                                </div>
                                            </td>
                                        </tr>
                                    <?php endforeach; ?>
                                <?php endif; ?>
                            </tbody>
                        </table>
                    </div>
                    
                    <?php if(count($streams) >= 100): ?>
                        <p style="text-align:center; color:var(--warning); font-size:12px; margin-top:15px;"><i class="fas fa-info-circle"></i> Mostrando os 100 primeiros resultados. Use a busca para refinar.</p>
                    <?php endif; ?>
                </form>

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

    <script>
        // Funcionalidade do Menu Mobile
        const sidebar = document.getElementById('sidebar');
        const overlay = document.getElementById('overlay');
        function toggleMenu() { sidebar.classList.toggle('active'); overlay.classList.toggle('active'); }
        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 para a Checkbox "Selecionar Todos" funcionar
        function toggleAll(source) {
            const checkboxes = document.getElementsByClassName('row-checkbox');
            for(let i=0, n=checkboxes.length; i<n; i++) {
                checkboxes[i].checked = source.checked;
            }
        }

        // Script para fazer a mensagem de alerta sumir sozinha
        document.addEventListener('DOMContentLoaded', function() {
            const alertMsg = document.getElementById('msg-alert');
            if (alertMsg) {
                setTimeout(function() {
                    alertMsg.style.opacity = '0'; 
                    setTimeout(function() { alertMsg.remove(); }, 500); 
                }, 4000); 
            }
        });
    </script>
    <script src="tema.js"></script>
</body>
</html>