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

// =========================================================================
// 1. FORÇA O SERVIDOR A ACEITAR ARQUIVOS GRANDES (Cria arquivo .user.ini)
// =========================================================================
try {
    $ini_file = __DIR__ . '/.user.ini';
    if (!file_exists($ini_file)) {
        $ini_content = "upload_max_filesize = 256M\npost_max_size = 256M\nmax_execution_time = 300\nmax_input_time = 300\nmemory_limit = 512M\n";
        @file_put_contents($ini_file, $ini_content);
    }
} catch (Exception $e) {}

$pdo = getConexaoAtiva();

// --- 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) {}
// --- FIM: BUSCA DE PERSONALIZAÇÃO DINÂMICA ---

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'];

// BLOQUEIA ACESSO DE REVENDEDOR
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; }

// Auto-criação da tabela e pastas
try {
    $pdo->exec("CREATE TABLE IF NOT EXISTS loja_apps (
        id INT AUTO_INCREMENT PRIMARY KEY,
        app_nome VARCHAR(255) DEFAULT '',
        app_icone VARCHAR(255) DEFAULT '',
        app_link_download VARCHAR(255) DEFAULT '',
        app_codigo_downloader VARCHAR(50) DEFAULT ''
    )");
} catch (Exception $e) {}

$upload_dir_icones = 'uploads/icones/';
$upload_dir_apks = 'uploads/apks/';
if (!is_dir($upload_dir_icones)) { @mkdir($upload_dir_icones, 0777, true); }
if (!is_dir($upload_dir_apks)) { @mkdir($upload_dir_apks, 0777, true); }

// =========================================================================
// 2. LÓGICA DE SALVAMENTO (ENVIO CLÁSSICO)
// =========================================================================
$swal_js = "";

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Se não tiver o 'salvar_app', o servidor derrubou o envio por limite
    if (!isset($_POST['salvar_app'])) {
        $swal_js = "Swal.fire({icon: 'error', title: 'Arquivo muito grande', text: 'O arquivo APK ultrapassa o limite da hospedagem. Criamos um arquivo de liberação (.user.ini) na sua pasta agora. Tente enviar o APK novamente!', background: '#272c33', color: '#fff'});";
    } else {
        try {
            $id = intval($_POST['app_id'] ?? 0);
            $nome = trim($_POST['app_nome'] ?? '');
            $codigo = trim($_POST['app_codigo_downloader'] ?? '');
            $icone_atual = $_POST['icone_atual'] ?? '';
            $link_atual = $_POST['link_atual'] ?? '';
            $caminho_icone = $icone_atual;
            $link_final_do_app = '';
            
            if (empty($nome)) { throw new Exception("O nome do aplicativo é obrigatório."); }
            
            // Upload Ícone
            if (isset($_FILES['app_icone']) && $_FILES['app_icone']['error'] === UPLOAD_ERR_OK) {
                $nome_arquivo_icone = time() . '_' . preg_replace('/[^a-zA-Z0-9.\-_]/', '', basename($_FILES['app_icone']['name']));
                if (move_uploaded_file($_FILES['app_icone']['tmp_name'], $upload_dir_icones . $nome_arquivo_icone)) {
                    if ($icone_atual && file_exists($icone_atual)) { @unlink($icone_atual); }
                    $caminho_icone = $upload_dir_icones . $nome_arquivo_icone;
                }
            }

            // Upload APK ou Link
            $upload_option = $_POST['upload_option'] ?? 'link';
            if ($upload_option === 'upload' && isset($_FILES['app_arquivo_apk']) && $_FILES['app_arquivo_apk']['error'] === UPLOAD_ERR_OK) {
                $nome_arquivo_apk = time() . '_' . preg_replace('/[^a-zA-Z0-9.\-_]/', '', basename($_FILES['app_arquivo_apk']['name']));
                if (move_uploaded_file($_FILES['app_arquivo_apk']['tmp_name'], $upload_dir_apks . $nome_arquivo_apk)) {
                    if ($link_atual && strpos($link_atual, $upload_dir_apks) !== false && file_exists($link_atual)) { @unlink($link_atual); }
                    $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? "https://" : "http://";
                    $pasta_base = str_replace('/admin_loja.php', '', $_SERVER['SCRIPT_NAME']);
                    $link_final_do_app = $protocol . $_SERVER['HTTP_HOST'] . $pasta_base . '/' . $upload_dir_apks . $nome_arquivo_apk;
                } else {
                    throw new Exception("Falha ao mover o APK para a pasta de destino.");
                }
            } else {
                $link_final_do_app = trim($_POST['app_link_download'] ?? '');
                if (empty($link_final_do_app)) $link_final_do_app = $link_atual;
            }

            // Grava no Banco de Dados
            if ($id > 0) { 
                $stmt = $pdo->prepare("UPDATE loja_apps SET app_nome=?, app_icone=?, app_link_download=?, app_codigo_downloader=? WHERE id=?");
                $stmt->execute([$nome, $caminho_icone, $link_final_do_app, $codigo, $id]);
                $swal_js = "Swal.fire({icon: 'success', title: 'Sucesso!', text: 'Aplicativo atualizado com sucesso.', background: '#272c33', color: '#fff'});";
            } else { 
                $stmt = $pdo->prepare("INSERT INTO loja_apps (app_nome, app_icone, app_link_download, app_codigo_downloader) VALUES (?, ?, ?, ?)");
                $stmt->execute([$nome, $caminho_icone, $link_final_do_app, $codigo]);
                $swal_js = "Swal.fire({icon: 'success', title: 'Salvo!', text: 'Aplicativo adicionado à loja com sucesso.', background: '#272c33', color: '#fff'});";
            }

        } catch(Exception $e) {
            $erro_limpo = addslashes($e->getMessage());
            $swal_js = "Swal.fire({icon: 'error', title: 'Erro', text: '{$erro_limpo}', background: '#272c33', color: '#fff'});";
        }
    }
}

// =========================================================================
// 3. LÓGICA: EXCLUIR APP
// =========================================================================
if (isset($_GET['delete_id'])) {
    $id = intval($_GET['delete_id']);
    $stmt = $pdo->prepare("SELECT app_icone, app_link_download FROM loja_apps WHERE id = ?");
    $stmt->execute([$id]);
    $app = $stmt->fetch();
    
    if ($app) {
        if (!empty($app['app_icone']) && file_exists($app['app_icone'])) { @unlink($app['app_icone']); }
        if (!empty($app['app_link_download']) && strpos($app['app_link_download'], $_SERVER['HTTP_HOST']) !== false) {
            $local_path = str_replace(((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? "https://" : "http://") . $_SERVER['HTTP_HOST'] . str_replace('/admin_loja.php', '', $_SERVER['SCRIPT_NAME']) . '/', '', $app['app_link_download']);
            if (file_exists($local_path)) { @unlink($local_path); }
        }
        $pdo->prepare("DELETE FROM loja_apps WHERE id = ?")->execute([$id]);
        header("Location: admin_loja.php?deleted=1");
        exit;
    }
}
if(isset($_GET['deleted'])) { 
    $swal_js = "Swal.fire({icon: 'info', title: 'Excluído', text: 'O aplicativo foi removido da loja.', background: '#272c33', color: '#fff'});"; 
}

$apps = $pdo->query("SELECT * FROM loja_apps ORDER BY app_nome ASC")->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">
    <title>Gerenciar Loja - <?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">
    <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
    <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: #f39c12; }
        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 { 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; }

        .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(40, 167, 69, 0.15); color: var(--success); border-radius: 20px; font-size: 12px; font-weight: bold; border: 1px solid var(--success); }
        .content-area { padding: 30px; flex: 1; }
        
        .page-header { margin-bottom: 25px; }
        .page-header h3 { font-size: 24px; color: white; margin: 0 0 5px 0; display: flex; align-items: center; gap: 10px; }
        .page-header p { color: var(--text-muted); margin: 0; }

        .custom-card { background-color: var(--bg-card); border: 1px solid var(--border-color); border-radius: 10px; overflow: hidden; margin-bottom: 30px; }
        .custom-card-header { background-color: #1e2227; color: white; padding: 15px 20px; font-size: 16px; font-weight: bold; border-bottom: 1px solid var(--border-color); }
        .custom-card-body { padding: 20px; }

        .form-group { margin-bottom: 15px; }
        .form-group label { display: block; margin-bottom: 8px; font-weight: 600; color: white; font-size: 14px; }
        .form-control { width: 100%; padding: 12px; background: #121519; border: 1px solid var(--border-color); color: white; border-radius: 6px; box-sizing: border-box; font-family: inherit; }
        .form-control:focus { border-color: var(--accent); outline: none; }
        
        .radio-group { display: flex; gap: 20px; margin-bottom: 15px; }
        .radio-label { display: flex; align-items: center; gap: 5px; color: var(--text-main); cursor: pointer; }

        .btn { padding: 10px 20px; border-radius: 6px; font-weight: bold; cursor: pointer; border: none; color: white; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; text-decoration: none; transition: 0.2s; }
        .btn-primary { background: var(--accent); }
        .btn-secondary { background: transparent; border: 1px solid var(--border-color); color: var(--text-main); }
        .btn-warning { background: var(--warning); color: #121519; padding: 6px 12px; font-size: 12px;}
        .btn-danger { background: var(--danger); padding: 6px 12px; font-size: 12px;}
        .btn:disabled { opacity: 0.7; cursor: not-allowed; }

        table { width: 100%; border-collapse: collapse; min-width: 600px; }
        th { background: rgba(0,0,0,0.2); padding: 15px; text-align: left; font-size: 12px; color: var(--text-muted); text-transform: uppercase; border-bottom: 1px solid var(--border-color); }
        td { padding: 15px; border-bottom: 1px solid var(--border-color); font-size: 14px; vertical-align: middle; }

        .sidebar-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.7); z-index: 1000; }
        .footer { background-color: var(--bg-sidebar); border-top: 1px solid var(--border-color); padding: 20px 30px; text-align: center; color: var(--text-muted); font-size: 12px; }

        @media (max-width: 768px) {
            .menu-toggle { display: block; }
            .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; }
            .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="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>
            
            <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>

            <div class="menu-category">Integração</div>
            <a href="pagamentos.php" class="menu-item active"><i class="fas fa-dollar-sign"></i> Pagamento Automático</a>
            
            <a href="admin_planos.php" class="menu-item active"><i class="fas fa-tags"></i> Meus Planos de Venda</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>

            <?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>
                
                <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="dns_manager.php" class="menu-item active"><i class="fas fa-link"></i> Alterar DNS</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>

                <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>
            <?php endif; ?>
        </div>
        <a href="logout.php" class="logout-btn"><i class="fas fa-power-off"></i> Sair</a>
    </nav>

    <div class="main-content">
        <header class="topbar">
            <button class="menu-toggle" onclick="toggleMenu()"><i class="fas fa-bars"></i></button>
            <h2 style="margin:0; font-size: 18px; color:white;">Configurações da Loja</h2>
            <div class="topbar-right">
                <span class="mode-badge"><i class="fas fa-database"></i> <?php echo strtoupper(MODO_SISTEMA); ?></span>
            </div>
        </header>

        <div class="content-area">
            <div class="page-header">
                <h3><i class="fas fa-cogs"></i> Gerenciar Loja de Aplicativos</h3>
                <p>Adicione, edite ou exclua os aplicativos que aparecerão para os seus revendedores.</p>
            </div>

            <div class="custom-card">
                <div class="custom-card-header">Adicionar / Editar Aplicativo</div>
                <div class="custom-card-body">
                    <form method="POST" action="admin_loja.php" enctype="multipart/form-data" id="formApp" onsubmit="return showLoading()">
                        <input type="hidden" name="salvar_app" value="1">
                        <input type="hidden" id="app_id" name="app_id">
                        <input type="hidden" id="icone_atual" name="icone_atual">
                        <input type="hidden" id="link_atual" name="link_atual">

                        <div class="form-group">
                            <label>Nome do Aplicativo:</label>
                            <input type="text" id="app_nome" name="app_nome" class="form-control" required placeholder="Ex: XCIPTV Player">
                        </div>

                        <div class="form-group">
                            <label>Ícone do App (PNG, JPG): <span id="icone-preview"></span></label>
                            <input type="file" id="app_icone" name="app_icone" class="form-control" accept="image/png, image/jpeg">
                        </div>

                        <div class="form-group">
                            <label>Origem do Aplicativo APK:</label>
                            <div class="radio-group">
                                <label class="radio-label">
                                    <input type="radio" name="upload_option" value="link" checked onchange="toggleUpload(this.value)"> 
                                    Usar Link Externo (URL)
                                </label>
                                <label class="radio-label">
                                    <input type="radio" name="upload_option" value="upload" onchange="toggleUpload(this.value)"> 
                                    Fazer Upload (.apk)
                                </label>
                            </div>
                        </div>

                        <div id="link_div" class="form-group">
                            <label>Link de Download (URL Direta):</label>
                            <input type="url" id="app_link_download" name="app_link_download" class="form-control" placeholder="https://...">
                        </div>
                        
                        <div id="upload_div" class="form-group" style="display:none;">
                            <label>Arquivo do Aplicativo (.apk):</label>
                            <input type="file" id="app_arquivo_apk" name="app_arquivo_apk" class="form-control" accept=".apk">
                        </div>
                        
                        <div class="form-group">
                            <label>Código Downloader (Opcional):</label>
                            <input type="text" id="app_codigo_downloader" name="app_codigo_downloader" class="form-control" placeholder="Ex: 123456">
                        </div>

                        <div style="margin-top: 20px;">
                            <button type="submit" id="form_submit_btn" class="btn btn-primary"><i class="fas fa-save"></i> Adicionar App</button>
                            <button type="button" id="form_cancel_btn" class="btn btn-secondary" style="display: none;" onclick="cancelarEdicao()">Cancelar</button>
                        </div>
                    </form>
                </div>
            </div>

            <div class="custom-card">
                <div class="custom-card-header">Aplicativos Cadastrados</div>
                <div style="overflow-x: auto;">
                    <table>
                        <thead>
                            <tr><th>Ícone</th><th>Nome</th><th>Código Downloader</th><th style="text-align:right;">Ações</th></tr>
                        </thead>
                        <tbody>
                            <?php foreach ($apps as $app): ?>
                            <tr>
                                <td>
                                    <?php if(!empty($app['app_icone'])): ?>
                                        <img src="<?php echo htmlspecialchars($app['app_icone']); ?>" alt="ícone" style="width: 45px; height: 45px; border-radius: 8px; object-fit: cover;">
                                    <?php else: ?>
                                        <div style="width: 45px; height: 45px; border-radius: 8px; background: #121519; display:flex; align-items:center; justify-content:center;"><i class="fas fa-image"></i></div>
                                    <?php endif; ?>
                                </td>
                                <td><strong><?php echo htmlspecialchars($app['app_nome']); ?></strong></td>
                                <td>
                                    <?php if(!empty($app['app_codigo_downloader'])): ?>
                                        <span style="background: var(--warning); color: #121519; padding: 2px 8px; border-radius: 4px; font-weight: bold; font-size: 12px;"><?php echo htmlspecialchars($app['app_codigo_downloader']); ?></span>
                                    <?php else: ?>
                                        <span style="color:var(--text-muted);">-</span>
                                    <?php endif; ?>
                                </td>
                                <td style="text-align:right;">
                                    <button class="btn btn-warning" onclick="editarApp(<?php echo htmlspecialchars(json_encode($app)); ?>)"><i class="fas fa-edit"></i></button>
                                    <a href="admin_loja.php?delete_id=<?php echo $app['id']; ?>" class="btn btn-danger" onclick="return confirm('Tem certeza que deseja apagar este aplicativo?');"><i class="fas fa-trash"></i></a>
                                </td>
                            </tr>
                            <?php endforeach; if(empty($apps)) echo "<tr><td colspan='4' style='text-align:center; padding:20px;'>Nenhum aplicativo cadastrado.</td></tr>"; ?>
                        </tbody>
                    </table>
                </div>
            </div>

        </div>
        <footer class="footer">&copy; <?php echo date('Y'); ?> <span><?php echo htmlspecialchars($nome_painel); ?></span></footer>
    </div>

    <?php if (!empty($swal_js)): ?>
        <script>
            document.addEventListener('DOMContentLoaded', function() {
                <?php echo $swal_js; ?>
            });
        </script>
    <?php endif; ?>

    <script>
        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'); }
        }

        function toggleUpload(val) {
            if (val === 'link') {
                document.getElementById('link_div').style.display = 'block';
                document.getElementById('app_link_download').required = true;
                document.getElementById('upload_div').style.display = 'none';
                document.getElementById('app_arquivo_apk').required = false;
            } else {
                document.getElementById('link_div').style.display = 'none';
                document.getElementById('app_link_download').required = false;
                document.getElementById('upload_div').style.display = 'block';
                document.getElementById('app_arquivo_apk').required = true;
            }
        }

        function editarApp(app) {
            document.getElementById('form_submit_btn').innerHTML = '<i class="fas fa-save"></i> Salvar Alterações';
            document.getElementById('form_cancel_btn').style.display = 'inline-flex';
            
            document.getElementById('app_id').value = app.id;
            document.getElementById('icone_atual').value = app.app_icone;
            document.getElementById('link_atual').value = app.app_link_download;
            document.getElementById('app_nome').value = app.app_nome;
            document.getElementById('app_link_download').value = app.app_link_download;
            document.getElementById('app_codigo_downloader').value = app.app_codigo_downloader;

            document.querySelector('input[name="upload_option"][value="link"]').checked = true;
            toggleUpload('link');
            document.getElementById('app_link_download').required = false;

            if (app.app_icone) {
                document.getElementById('icone-preview').innerHTML = '<img src="' + app.app_icone + '" style="width: 25px; height: 25px; margin-left: 10px; border-radius:4px; vertical-align:middle;">';
            }
            window.scrollTo({ top: 0, behavior: 'smooth' });
        }

        function cancelarEdicao() {
            document.getElementById('form_submit_btn').innerHTML = '<i class="fas fa-save"></i> Adicionar App';
            document.getElementById('form_cancel_btn').style.display = 'none';
            document.getElementById('formApp').reset();
            document.getElementById('app_id').value = '';
            document.getElementById('icone_atual').value = '';
            document.getElementById('link_atual').value = '';
            document.getElementById('icone-preview').innerHTML = '';
            
            document.querySelector('input[name="upload_option"][value="link"]').checked = true;
            toggleUpload('link');
        }

        // Função que muda o botão enquanto o APK sobe (para você não achar que travou)
        function showLoading() {
            const btn = document.getElementById('form_submit_btn');
            btn.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Fazendo Upload... Aguarde!';
            btn.style.pointerEvents = 'none';
            btn.style.opacity = '0.7';
            return true; 
        }
    </script>
</body>
</html>
