<?php
/**
 * GERADOR VODS - VERSÃO COMPLETA COM PIX SIMPLIFICADO
 */

session_start();

// ========== CONFIGURAÇÕES ==========
define('API_KEY', 'a688ebacd173967acc7359daa726e3d3');
define('API_URL', 'https://api.themoviedb.org/3');
define('ADMIN_USER', 'admin');
define('ADMIN_PASS', 'admin123');
define('RESELLERS_FILE', 'resellers.json');
define('STATS_FILE', 'stats.json');
define('PIX_FILE', 'pix_config.json');
define('GAMES_FILE', 'games_config.json');
define('PLANS_FILE', 'plans.json');

// ========== FUNÇÃO PARA PEGAR SENHA DO ADMIN ==========
function getAdminPass() {
    if (file_exists('admin_pass.txt')) {
        $savedPass = trim(file_get_contents('admin_pass.txt'));
        if (!empty($savedPass)) {
            return $savedPass;
        }
    }
    return ADMIN_PASS;
}

// ========== FUNÇÃO PARA SALVAR SENHA DO ADMIN ==========
function saveAdminPass($newPass) {
    file_put_contents('admin_pass.txt', $newPass);
}

// Garantir pastas
$folders = ['assets/img/resellers', 'resellers_banners', 'banners', 'assets/fonts'];
foreach($folders as $f) { if(!is_dir($f)) mkdir($f, 0777, true); }

// ========== FUNÇÕES ==========
function apiRequest($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $response = curl_exec($ch);
    curl_close($ch);
    return json_decode($response, true);
}

function getDetails($type, $id) {
    return apiRequest(API_URL . '/' . $type . '/' . $id . '?api_key=' . API_KEY . '&language=pt-BR');
}

function imagefilledroundedrectangle($img, $x1, $y1, $x2, $y2, $radius, $color) {
    imagefilledrectangle($img, $x1 + $radius, $y1, $x2 - $radius, $y2, $color);
    imagefilledrectangle($img, $x1, $y1 + $radius, $x2, $y2 - $radius, $color);
    $t = $radius * 2;
    imagefilledarc($img, $x1 + $radius, $y1 + $radius, $t, $t, 180, 270, $color, IMG_ARC_PIE);
    imagefilledarc($img, $x2 - $radius, $y1 + $radius, $t, $t, 270, 360, $color, IMG_ARC_PIE);
    imagefilledarc($img, $x1 + $radius, $y2 - $radius, $t, $t, 90, 180, $color, IMG_ARC_PIE);
    imagefilledarc($img, $x2 - $radius, $y2 - $radius, $t, $t, 0, 90, $color, IMG_ARC_PIE);
}

function getResellers() {
    if (!file_exists(RESELLERS_FILE)) file_put_contents(RESELLERS_FILE, json_encode(['resellers' => []]));
    $d = json_decode(file_get_contents(RESELLERS_FILE), true);
    return $d['resellers'] ?? [];
}

function saveResellers($r) {
    file_put_contents(RESELLERS_FILE, json_encode(['resellers' => array_values($r)], JSON_PRETTY_PRINT));
}

function getLogo($user) {
    if ($user == 'admin') {
        foreach (['png','jpg','jpeg','webp'] as $e) {
            if(file_exists("assets/img/logo.{$e}")) {
                return "assets/img/logo.{$e}";
            }
        }
        return null;
    }
    foreach (['png','jpg','jpeg','webp'] as $e) {
        if(file_exists("assets/img/resellers/{$user}.{$e}")) {
            return "assets/img/resellers/{$user}.{$e}";
        }
    }
    return null;
}

function checkExpiration($user) {
    $resellers = getResellers();
    foreach ($resellers as $r) {
        if ($r['user'] == $user && isset($r['expires'])) {
            $expires = strtotime($r['expires']);
            $now = time();
            $daysLeft = floor(($expires - $now) / 86400);
            return ['expires' => $r['expires'], 'days' => $daysLeft, 'expired' => $daysLeft < 0];
        }
    }
    return null;
}

// ========== FUNÇÕES DE ESTATÍSTICAS ==========
function getStats() {
    if (!file_exists(STATS_FILE)) {
        $default = ['downloads' => [], 'generated' => [], 'banners' => []];
        file_put_contents(STATS_FILE, json_encode($default, JSON_PRETTY_PRINT));
    }
    return json_decode(file_get_contents(STATS_FILE), true);
}

function saveStats($stats) {
    file_put_contents(STATS_FILE, json_encode($stats, JSON_PRETTY_PRINT));
}

function clearStats() {
    $default = ['downloads' => [], 'generated' => [], 'banners' => []];
    file_put_contents(STATS_FILE, json_encode($default, JSON_PRETTY_PRINT));
}

function registerDownload($user, $bannerFile) {
    $stats = getStats();
    $today = date('Y-m-d');
    
    if (!isset($stats['downloads'][$user])) $stats['downloads'][$user] = [];
    if (!isset($stats['downloads'][$user][$today])) $stats['downloads'][$user][$today] = 0;
    $stats['downloads'][$user][$today]++;
    
    if (!isset($stats['banners'][$bannerFile])) $stats['banners'][$bannerFile] = 0;
    $stats['banners'][$bannerFile]++;
    
    saveStats($stats);
}

function registerGeneration($user) {
    $stats = getStats();
    $today = date('Y-m-d');
    
    if (!isset($stats['generated'][$user])) $stats['generated'][$user] = [];
    if (!isset($stats['generated'][$user][$today])) $stats['generated'][$user][$today] = 0;
    $stats['generated'][$user][$today]++;
    
    saveStats($stats);
}

function getUserStats($user) {
    $stats = getStats();
    $result = [
        'total_downloads' => 0,
        'total_generated' => 0,
        'weekly_downloads' => [],
        'weekly_generated' => []
    ];
    
    if (isset($stats['downloads'][$user])) {
        $result['total_downloads'] = array_sum($stats['downloads'][$user]);
        for ($i = 6; $i >= 0; $i--) {
            $date = date('Y-m-d', strtotime("-$i days"));
            $result['weekly_downloads'][$date] = $stats['downloads'][$user][$date] ?? 0;
        }
    }
    
    if (isset($stats['generated'][$user])) {
        $result['total_generated'] = array_sum($stats['generated'][$user]);
        for ($i = 6; $i >= 0; $i--) {
            $date = date('Y-m-d', strtotime("-$i days"));
            $result['weekly_generated'][$date] = $stats['generated'][$user][$date] ?? 0;
        }
    }
    
    return $result;
}

function getRanking() {
    $stats = getStats();
    $ranking = [];
    foreach ($stats['downloads'] as $user => $days) {
        $ranking[$user] = [
            'total_downloads' => array_sum($days),
            'total_generated' => isset($stats['generated'][$user]) ? array_sum($stats['generated'][$user]) : 0
        ];
    }
    uasort($ranking, function($a, $b) {
        return $b['total_downloads'] - $a['total_downloads'];
    });
    return $ranking;
}

// ========== FUNÇÕES PIX ==========
function getPixConfig() {
    if (!file_exists(PIX_FILE)) {
        $default = ['config' => [], 'plan_pix' => []];
        file_put_contents(PIX_FILE, json_encode($default, JSON_PRETTY_PRINT));
    }
    return json_decode(file_get_contents(PIX_FILE), true);
}

function savePixConfig($config) {
    file_put_contents(PIX_FILE, json_encode($config, JSON_PRETTY_PRINT));
}

function getPixForUser($user) {
    $config = getPixConfig();
    return $config['config'][$user] ?? null;
}

function getPixForPlan($planId) {
    $config = getPixConfig();
    return $config['plan_pix'][$planId] ?? null;
}

function savePixForPlan($planId, $pixData) {
    $config = getPixConfig();
    if (!isset($config['plan_pix'])) $config['plan_pix'] = [];
    $config['plan_pix'][$planId] = $pixData;
    savePixConfig($config);
}

function removePixFromPlan($planId) {
    $config = getPixConfig();
    unset($config['plan_pix'][$planId]);
    savePixConfig($config);
}

// ========== GERAR QRCODE PIX PADRÃO EMV ==========
function generatePixQRCode($pixKey, $pixName, $pixCity = "SAO PAULO") {
    // Função auxiliar para formatar campos EMV
    $formatField = function($id, $value) {
        return $id . str_pad(strlen($value), 2, '0', STR_PAD_LEFT) . $value;
    };

    // Limpeza e normalização dos dados
    $pixKey = trim($pixKey);
    $pixName = substr(trim(preg_replace('/[^A-Z0-9\s]/', '', strtoupper(iconv('UTF-8', 'ASCII//TRANSLIT', $pixName)))), 0, 25);
    $pixCity = substr(trim(preg_replace('/[^A-Z0-9\s]/', '', strtoupper(iconv('UTF-8', 'ASCII//TRANSLIT', $pixCity)))), 0, 15);
    
    // Montagem do Merchant Account Information (Tag 26)
    $gui = $formatField("00", "br.gov.bcb.pix");
    $key = $formatField("01", $pixKey);
    $merchantAccount = $formatField("26", $gui . $key);

    // Montagem do Payload
    $payload = $formatField("00", "01"); // Payload Format Indicator
    $payload .= $merchantAccount;
    $payload .= $formatField("52", "0000"); // Merchant Category Code
    $payload .= $formatField("53", "986");  // Transaction Currency (BRL)
    $payload .= $formatField("58", "BR");   // Country Code
    $payload .= $formatField("59", $pixName);
    $payload .= $formatField("60", $pixCity);
    $payload .= $formatField("62", $formatField("05", "***")); // Additional Data (Reference Label)
    
    // Adiciona o ID do CRC (63) e o tamanho (04), mas sem o valor ainda
    $payload .= "6304";
    
    // Calcula o CRC16
    $crc = crc16Pix($payload);
    $payload .= strtoupper(str_pad(dechex($crc), 4, '0', STR_PAD_LEFT));
    
    // GERA QRCODE
    return "https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=" . urlencode($payload);
}

function crc16Pix($data) {
    $crc = 0xFFFF;
    $strlen = strlen($data);
    for ($i = 0; $i < $strlen; $i++) {
        $crc ^= ord($data[$i]) << 8;
        for ($j = 0; $j < 8; $j++) {
            if ($crc & 0x8000) {
                $crc = ($crc << 1) ^ 0x1021;
            } else {
                $crc <<= 1;
            }
            $crc &= 0xFFFF;
        }
    }
    return $crc;
}

// ========== FUNÇÕES JOGOS ==========
function getGamesConfig() {
    if (!file_exists(GAMES_FILE)) {
        $default = ['games' => []];
        file_put_contents(GAMES_FILE, json_encode($default, JSON_PRETTY_PRINT));
    }
    return json_decode(file_get_contents(GAMES_FILE), true);
}

function saveGamesConfig($config) {
    file_put_contents(GAMES_FILE, json_encode($config, JSON_PRETTY_PRINT));
}

function getGameForUser($user) {
    $config = getGamesConfig();
    return $config['games'][$user] ?? null;
}

// ========== FUNÇÕES PLANOS ==========
function getPlans() {
    if (!file_exists(PLANS_FILE)) {
        $default = [
            'plans' => [
                ['id' => 'monthly', 'name' => 'Mensal', 'price' => 49.90, 'days' => 30],
                ['id' => 'quarterly', 'name' => 'Trimestral', 'price' => 129.90, 'days' => 90],
                ['id' => 'annual', 'name' => 'Anual', 'price' => 449.90, 'days' => 365]
            ]
        ];
        file_put_contents(PLANS_FILE, json_encode($default, JSON_PRETTY_PRINT));
    }
    return json_decode(file_get_contents(PLANS_FILE), true);
}

function savePlans($plans) {
    file_put_contents(PLANS_FILE, json_encode($plans, JSON_PRETTY_PRINT));
}

function activateReseller($user, $planId) {
    $plans = getPlans();
    $plan = null;
    foreach ($plans['plans'] as $p) {
        if ($p['id'] == $planId) {
            $plan = $p;
            break;
        }
    }
    if (!$plan) return false;
    
    $resellers = getResellers();
    foreach ($resellers as &$r) {
        if ($r['user'] == $user) {
            $r['expires'] = date('Y-m-d', strtotime("+{$plan['days']} days"));
            $r['plan'] = $planId;
            unset($r['selected_plan']);
            saveResellers($resellers);
            return true;
        }
    }
    return false;
}

// ========== GERADOR DE BANNER ==========
function generateBanner($style, $type, $id, $mode, $overview, $size, $user) {
    $details = getDetails($type, $id);
    if (!$details) return false;

    $title = $details['title'] ?? $details['name'] ?? 'Sem Título';
    $ov = $overview ?: ($details['overview'] ?? 'Sinopse não disponível');
    $poster = $details['poster_path'];
    $backdrop = $details['backdrop_path'];
    $rating = number_format($details['vote_average'] ?? 0, 1);
    $year = date('Y', strtotime($details['release_date'] ?? $details['first_air_date'] ?? 'now'));

    $s = ['vertical'=>['w'=>1080,'h'=>1350], 'horizontal'=>['w'=>1280,'h'=>720], 'square'=>['w'=>1080,'h'=>1080]];
    $sz = $s[$size] ?? $s['vertical'];
    $w = $sz['w']; $h = $sz['h'];
    
    $url = ($mode == 'horizontal') ? ($backdrop ? "https://image.tmdb.org/t/p/original$backdrop" : "https://image.tmdb.org/t/p/original$poster") : ($poster ? "https://image.tmdb.org/t/p/original$poster" : "https://image.tmdb.org/t/p/original$backdrop");

    $img = imagecreatetruecolor($w, $h);
    $bg = imagecolorallocate($img, 15, 18, 28);
    imagefilledrectangle($img, 0, 0, $w, $h, $bg);

    $data = @file_get_contents($url, false, stream_context_create(['ssl'=>['verify_peer'=>false]]));
    if ($data) {
        $base = @imagecreatefromstring($data);
        if ($base) {
            $sw = imagesx($base); $sh = imagesy($base);
            $r = max($w/$sw, $h/$sh);
            $nw = (int)($sw*$r); $nh = (int)($sh*$r);
            imagecopyresampled($img, $base, (int)(($w-$nw)/2), ($mode=='vertical'?0:(int)(($h-$nh)/2)), 0, 0, $nw, $nh, $sw, $sh);
            imagedestroy($base);
        }
    }

    $lp = getLogo($user);
    if ($lp) {
        $ld = @file_get_contents($lp);
        if ($ld) {
            $l = @imagecreatefromstring($ld);
            if ($l) {
                imagealphablending($l, true); imagesavealpha($l, true);
                $lw = imagesx($l); $lh = imagesy($l);
                $lr = min(($w*0.3)/$lw, ($h*0.3)/$lh);
                imagecopyresampled($img, $l, 40, 40, 0, 0, (int)($lw*$lr), (int)($lh*$lr), $lw, $lh);
                imagedestroy($l);
            }
        }
    }

    $branco = imagecolorallocate($img, 255, 255, 255);
    $dourado = imagecolorallocate($img, 241, 196, 15);
    $ft = imagecolorallocatealpha($img, 0, 0, 0, 90);
    
    $f_bold = __DIR__ . '/assets/fonts/Roboto-Bold.ttf';
    $f_reg = __DIR__ . '/assets/fonts/Roboto-Regular.ttf';
    
    if (!file_exists($f_bold) || !file_exists($f_reg)) {
        $fontUrl = 'https://github.com/google/fonts/raw/main/apache/roboto/Roboto-Regular.ttf';
        $fontBoldUrl = 'https://github.com/google/fonts/raw/main/apache/roboto/Roboto-Bold.ttf';
        @file_put_contents($f_reg, file_get_contents($fontUrl));
        @file_put_contents($f_bold, file_get_contents($fontBoldUrl));
    }

    if (file_exists($f_bold) && file_exists($f_reg)) {
        imagefilledroundedrectangle($img, 50, $h-450, $w-50, $h-50, 25, $ft);
        
        $titleText = mb_strtoupper($title, 'UTF-8');
        $fontSize = 45;
        $bbox = imagettfbbox($fontSize, 0, $f_bold, $titleText);
        $textWidth = $bbox[2] - $bbox[0];
        if ($textWidth > ($w - 180)) {
            $fontSize = floor($fontSize * (($w - 180) / $textWidth));
        }
        imagettftext($img, $fontSize, 0, 90, $h-350, $branco, $f_bold, $titleText);
        
        imagettftext($img, 22, 0, 90, $h-300, $dourado, $f_reg, "★ $rating | $year");
        
        $sinopse = strip_tags($ov);
        $sinopse = trim(preg_replace('/\s+/', ' ', $sinopse));
        $words = explode(' ', $sinopse);
        $lines = [];
        $currentLine = '';
        $maxWidth = $w - 180;
        
        foreach ($words as $word) {
            $testLine = $currentLine ? $currentLine . ' ' . $word : $word;
            $bbox = imagettfbbox(24, 0, $f_reg, $testLine);
            $lineWidth = $bbox[2] - $bbox[0];
            if ($lineWidth <= $maxWidth) {
                $currentLine = $testLine;
            } else {
                if ($currentLine) $lines[] = $currentLine;
                $currentLine = $word;
            }
        }
        if ($currentLine) $lines[] = $currentLine;
        
        $lines = array_slice($lines, 0, 5);
        if (count($lines) == 5 && str_word_count($sinopse) > 30) {
            $lines[4] = rtrim($lines[4]) . '...';
        }
        
        $yPos = $h-230;
        foreach ($lines as $line) {
            imagettftext($img, 24, 0, 90, $yPos, $branco, $f_reg, $line);
            $yPos += 32;
        }
    }

    $d = ($user == 'admin') ? "banners" : "resellers_banners/$user";
    if (!is_dir($d)) mkdir($d, 0777, true);
    $n = "$d/".time().".jpg";
    imagejpeg($img, $n, 90);
    imagedestroy($img);
    
    registerGeneration($user);
    return $n;
}

// ========== LÓGICA ==========
$p = $_GET['page'] ?? 'home';
$a = $_GET['action'] ?? '';
$is_admin = isset($_SESSION['admin_logged']);
$is_reseller = isset($_SESSION['reseller_logged']);
$u = $_SESSION['reseller_user'] ?? null;

// BLOQUEIO POR VENCIMENTO
if ($is_reseller && $u) {
    $expiration = checkExpiration($u);
    if ($expiration && $expiration['expired']) {
        session_destroy();
        header('Location: ?page=login&expired=1');
        exit;
    }
}

if ($is_reseller && $u && $a != 'logout') {
    $expiration = checkExpiration($u);
    if ($expiration && $expiration['expired']) {
        session_destroy();
        header('Location: ?page=login&expired=1');
        exit;
    }
}

// ZERAR ESTATÍSTICAS - ADMIN
if ($a == 'clearStats' && $is_admin) {
    clearStats();
    header('Location: ?page=admin_stats&cleared=1');
    exit;
}

// ========== PERFIL - TROCAR SENHA E USUÁRIO ==========

// TROCAR SENHA
if ($a == 'changePassword' && ($is_admin || $is_reseller)) {
    $current = $_POST['current_pass'];
    $new = $_POST['new_pass'];
    $confirm = $_POST['confirm_pass'];
    
    if (empty($current) || empty($new) || empty($confirm)) {
        header('Location: ?page=perfil&error=campos_vazios');
        exit;
    }
    
    if ($new !== $confirm) {
        header('Location: ?page=perfil&error=senha_nao_confere');
        exit;
    }
    
    if (strlen($new) < 4) {
        header('Location: ?page=perfil&error=senha_curta');
        exit;
    }
    
    // ADMIN
    if ($u == 'admin') {
        $currentAdminPass = getAdminPass();
        
        if ($current == $currentAdminPass) {
            saveAdminPass($new);
            header('Location: ?page=perfil&success=senha');
            exit;
        } else {
            header('Location: ?page=perfil&error=senha_incorreta');
            exit;
        }
    }
    
    // REVENDA
    $resellers = getResellers();
    $found = false;
    foreach ($resellers as &$r) {
        if ($r['user'] == $u) {
            if ($r['pass'] == $current) {
                $r['pass'] = $new;
                $found = true;
                break;
            } else {
                header('Location: ?page=perfil&error=senha_incorreta');
                exit;
            }
        }
    }
    
    if ($found) {
        saveResellers($resellers);
        header('Location: ?page=perfil&success=senha');
        exit;
    } else {
        header('Location: ?page=perfil&error=usuario_nao_encontrado');
        exit;
    }
}

// TROCAR USUÁRIO (SÓ REVENDAS)
if ($a == 'changeUsername' && $is_reseller) {
    $newUser = trim($_POST['new_user']);
    $password = $_POST['password'];
    
    if (empty($newUser) || empty($password)) {
        header('Location: ?page=perfil&error=campos_vazios');
        exit;
    }
    
    if (strlen($newUser) < 3) {
        header('Location: ?page=perfil&error=usuario_curto');
        exit;
    }
    
    // Verifica se o novo usuário já existe
    $resellers = getResellers();
    foreach ($resellers as $r) {
        if ($r['user'] == $newUser && $r['user'] != $u) {
            header('Location: ?page=perfil&error=usuario_existe');
            exit;
        }
    }
    
    $found = false;
    foreach ($resellers as &$r) {
        if ($r['user'] == $u) {
            if ($r['pass'] == $password) {
                $r['user'] = $newUser;
                $found = true;
                break;
            } else {
                header('Location: ?page=perfil&error=senha_incorreta');
                exit;
            }
        }
    }
    
    if ($found) {
        saveResellers($resellers);
        $_SESSION['reseller_user'] = $newUser;
        header('Location: ?page=perfil&success=usuario');
        exit;
    } else {
        header('Location: ?page=perfil&error=usuario_nao_encontrado');
        exit;
    }
}

// ========== LOGIN ==========
if ($a == 'login') {
    $user = $_POST['user'] ?? ''; $pass = $_POST['pass'] ?? '';
    
    // PEGA A SENHA DO ADMIN (DO ARQUIVO OU CONSTANTE)
    $adminPass = getAdminPass();
    
    // VERIFICA ADMIN
    if ($user == ADMIN_USER && $pass == $adminPass) {
        $_SESSION['admin_logged'] = true; 
        $_SESSION['reseller_user'] = 'admin';
        header('Location: ?page=home'); 
        exit;
    } 
    
    // VERIFICA REVENDAS
    foreach (getResellers() as $r) {
        if ($r['user'] == $user && $r['pass'] == $pass) {
            $exp = checkExpiration($user);
            if ($exp && $exp['expired']) {
                header('Location: ?page=login&expired=1');
                exit;
            }
            $_SESSION['reseller_logged'] = true; 
            $_SESSION['reseller_user'] = $user;
            header('Location: ?page=home'); 
            exit;
        }
    }
    
    // SE CHEGOU AQUI, DEU ERRO
    header('Location: ?page=login&error=1');
    exit;
}

if ($a == 'logout') { 
    session_destroy(); 
    header('Location: ?page=home'); 
    exit; 
}

// ========== CADASTRO GRÁTIS (1 DIA) ==========
if ($a == 'register') {
    $name = $_POST['name'] ?? '';
    $user = $_POST['user'] ?? '';
    $pass = $_POST['pass'] ?? '';
    
    $resellers = getResellers();
    $exists = false;
    foreach ($resellers as $r) {
        if ($r['user'] == $user) {
            $exists = true;
            break;
        }
    }
    
    if (!$exists && !empty($user) && !empty($pass) && !empty($name)) {
        $resellers[] = [
            'name' => $name,
            'user' => $user,
            'pass' => $pass,
            'expires' => date('Y-m-d', strtotime('+1 day')),
            'trial' => true
        ];
        saveResellers($resellers);
        header('Location: ?page=login&registered=1');
        exit;
    } else {
        header('Location: ?page=register&error=1');
        exit;
    }
}

if ($a == 'uploadLogo' && ($is_admin || $is_reseller)) {
    if (isset($_FILES['logo']) && $_FILES['logo']['error'] == 0) {
        $ext = strtolower(pathinfo($_FILES['logo']['name'], PATHINFO_EXTENSION));
        if ($u == 'admin') {
            foreach(['png','jpg','jpeg','webp'] as $e) @unlink("assets/img/logo.{$e}");
            $path = "assets/img/logo.{$ext}";
        } else {
            foreach(['png','jpg','jpeg','webp'] as $e) @unlink("assets/img/resellers/{$u}.{$e}");
            $path = "assets/img/resellers/{$u}.{$ext}";
        }
        move_uploaded_file($_FILES['logo']['tmp_name'], $path);
    }
    header('Location: ' . $_SERVER['HTTP_REFERER']); exit;
}

if ($a == 'addReseller' && $is_admin) {
    $r = getResellers();
    $r[] = ['user'=>$_POST['user'], 'pass'=>$_POST['pass'], 'name'=>$_POST['name'], 'expires'=>$_POST['expires']];
    saveResellers($r);
    header('Location: ?page=admin'); exit;
}

if ($a == 'updateReseller' && $is_admin) {
    $r = getResellers();
    $id = $_GET['id'];
    if (isset($r[$id])) {
        $r[$id]['name'] = $_POST['name'];
        $r[$id]['user'] = $_POST['user'];
        $r[$id]['pass'] = $_POST['pass'];
        $r[$id]['expires'] = $_POST['expires'];
        saveResellers($r);
    }
    header('Location: ?page=admin'); exit;
}

if ($a == 'delReseller' && $is_admin) {
    $r = getResellers();
    if (isset($r[$_GET['id']])) {
        $user = $r[$_GET['id']]['user'];
        $dir = "resellers_banners/$user";
        if (is_dir($dir)) {
            array_map('unlink', glob("$dir/*.jpg"));
            rmdir($dir);
        }
        foreach(['png','jpg','jpeg','webp'] as $e) @unlink("assets/img/resellers/{$user}.{$e}");
    }
    unset($r[$_GET['id']]);
    saveResellers($r);
    header('Location: ?page=admin'); exit;
}

if ($a == 'generate' && ($is_admin || $is_reseller)) {
    $file = generateBanner($_GET['style'], $_GET['type'], $_GET['id'], $_GET['mode'], $_POST['overview'], $_GET['size'], $u);
    echo json_encode(['success'=>!!$file, 'file'=>$file]); exit;
}

if ($a == 'delBanner' && ($is_admin || $is_reseller)) {
    $f = $_GET['file'];
    $allowed = false;
    if ($u == 'admin' && strpos($f, 'banners/') === 0) {
        $allowed = true;
    } else if ($u != 'admin' && strpos($f, "resellers_banners/$u/") === 0) {
        $allowed = true;
    }
    if ($allowed) @unlink($f);
    header('Location: ' . $_SERVER['HTTP_REFERER']); exit;
}

if ($a == 'deleteAllBanners' && ($is_admin || $is_reseller)) {
    $d = ($u == 'admin') ? "banners" : "resellers_banners/$u";
    if (is_dir($d)) {
        $files = glob("$d/*.jpg");
        foreach ($files as $f) @unlink($f);
    }
    header('Location: ?page=galeria'); exit;
}

// AÇÕES PIX
if ($a == 'savePix' && $is_admin) {
    $config = getPixConfig();
    $config['config'][$_POST['reseller_user']] = [
        'pix_key' => $_POST['pix_key'],
        'pix_name' => $_POST['pix_name'],
        'pix_city' => $_POST['pix_city'] ?? 'SAO PAULO'
    ];
    savePixConfig($config);
    header('Location: ?page=admin_pix'); exit;
}

if ($a == 'removePix' && $is_admin) {
    $config = getPixConfig();
    unset($config['config'][$_GET['user']]);
    savePixConfig($config);
    header('Location: ?page=admin_pix'); exit;
}

// AÇÕES PIX POR PLANO
if ($a == 'savePlanPix' && $is_admin) {
    $planId = $_POST['plan_id'];
    $pixData = [
        'pix_key' => $_POST['pix_key'],
        'pix_name' => $_POST['pix_name'],
        'pix_city' => $_POST['pix_city'] ?? 'SAO PAULO'
    ];
    savePixForPlan($planId, $pixData);
    header('Location: ?page=admin_plans&pix_saved=1'); exit;
}

if ($a == 'removePlanPix' && $is_admin) {
    removePixFromPlan($_GET['plan_id']);
    header('Location: ?page=admin_plans&pix_removed=1'); exit;
}

// AÇÕES JOGOS
if ($a == 'saveGame' && $is_admin) {
    $config = getGamesConfig();
    $config['games'][$_POST['reseller_user']] = [
        'link' => $_POST['game_link'],
        'name' => $_POST['game_name']
    ];
    saveGamesConfig($config);
    header('Location: ?page=admin_games'); exit;
}

if ($a == 'removeGame' && $is_admin) {
    $config = getGamesConfig();
    unset($config['games'][$_GET['user']]);
    saveGamesConfig($config);
    header('Location: ?page=admin_games'); exit;
}

// AÇÕES PLANOS
if ($a == 'savePlan' && $is_admin) {
    $plans = getPlans();
    $plans['plans'][] = [
        'id' => $_POST['id'],
        'name' => $_POST['name'],
        'price' => floatval($_POST['price']),
        'days' => intval($_POST['days'])
    ];
    savePlans($plans);
    header('Location: ?page=admin_plans&created=1'); exit;
}

if ($a == 'updatePlan' && $is_admin) {
    $plans = getPlans();
    foreach ($plans['plans'] as &$p) {
        if ($p['id'] == $_POST['plan_id']) {
            $p['name'] = $_POST['name'];
            $p['price'] = floatval($_POST['price']);
            $p['days'] = intval($_POST['days']);
            break;
        }
    }
    savePlans($plans);
    header('Location: ?page=admin_plans&edited=1');
    exit;
}

if ($a == 'deletePlan' && $is_admin) {
    $plans = getPlans();
    $newPlans = [];
    foreach ($plans['plans'] as $p) {
        if ($p['id'] != $_GET['id']) {
            $newPlans[] = $p;
        }
    }
    $plans['plans'] = $newPlans;
    savePlans($plans);
    header('Location: ?page=admin_plans&deleted=1');
    exit;
}

if ($a == 'selectPlan' && $is_reseller) {
    $planId = $_POST['plan_id'];
    $resellers = getResellers();
    foreach ($resellers as &$r) {
        if ($r['user'] == $u) {
            $r['selected_plan'] = $planId;
            saveResellers($resellers);
            break;
        }
    }
    header('Location: ?page=my_plans&success=1'); exit;
}

if ($a == 'activateReseller' && $is_admin) {
    $user = $_GET['user'];
    $planId = $_POST['plan'];
    if (activateReseller($user, $planId)) {
        header('Location: ?page=admin_plans&success=1'); exit;
    }
}

// DOWNLOAD COM ESTATÍSTICA
if ($a == 'downloadBanner' && ($is_admin || $is_reseller)) {
    $file = $_GET['file'];
    if (file_exists($file)) {
        registerDownload($u, basename($file));
        header('Content-Type: image/jpeg');
        header('Content-Disposition: attachment; filename="' . basename($file) . '"');
        readfile($file);
        exit;
    }
}

$logo = null;
if ($is_admin || $is_reseller) {
    $logo = getLogo($u);
}
$expiration = null;
if ($is_reseller && $u) {
    $expiration = checkExpiration($u);
}

$userStats = null;
$ranking = null;
if ($is_admin || $is_reseller) {
    $userStats = getUserStats($u);
    if ($is_admin) {
        $ranking = getRanking();
    }
}

$hasGame = false;
if ($is_reseller && $u) {
    $game = getGameForUser($u);
    if ($game) $hasGame = true;
}
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>GERADOR DE BANNERS VODS</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <style>
        :root { 
            --bg: #0d1117; 
            --card: #161b22; 
            --border: #30363d; 
            --text: #e6edf3; 
            --primary: #58a6ff; 
            --danger: #ff4d4d; 
            --warning: #f1c40f;
            --success: #2ea043;
            --menu-font-size: 16px;
            --btn-font-size: 14px;
        }
        * { box-sizing: border-box; margin: 0; padding: 0; }
        body { background: var(--bg); color: var(--text); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; margin: 0; }
        
        .nav { 
            background: linear-gradient(135deg, var(--card) 0%, rgba(22, 27, 34, 0.95) 100%);
            padding: 16px 25px; 
            display: flex; 
            justify-content: space-between; 
            align-items: center; 
            border-bottom: 3px solid var(--primary); 
            flex-wrap: wrap; 
            gap: 12px; 
            position: sticky;
            top: 0;
            z-index: 999;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
        }
        .nav-brand {
            display: flex;
            align-items: center;
            gap: 12px;
        }
        .nav-brand img {
            height: 40px;
            max-height: 40px;
            width: auto;
        }
        .nav-brand span {
            font-weight: 700;
            font-size: 22px;
            color: var(--primary);
            white-space: nowrap;
            letter-spacing: 0.5px;
            text-shadow: 0 2px 4px rgba(88, 166, 255, 0.2);
        }
        .nav-links {
            display: flex;
            gap: 6px;
            flex-wrap: wrap;
            align-items: center;
        }
        .nav-links .btn-nav {
            padding: 10px 18px;
            border-radius: 8px;
            border: none;
            cursor: pointer;
            font-weight: 600;
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            gap: 8px;
            font-size: var(--menu-font-size);
            color: var(--text);
            background: transparent;
            transition: all 0.3s ease;
            white-space: nowrap;
            position: relative;
            overflow: hidden;
        }
        .nav-links .btn-nav::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: rgba(88, 166, 255, 0.1);
            transition: left 0.3s ease;
            z-index: -1;
        }
        .nav-links .btn-nav:hover::before {
            left: 0;
        }
        .nav-links .btn-nav:hover {
            color: var(--primary);
            transform: translateY(-2px);
            box-shadow: 0 4px 8px rgba(88, 166, 255, 0.2);
        }
        .nav-links .btn-nav i {
            font-size: calc(var(--menu-font-size) + 4px);
        }
        .nav-links .btn-nav.primary {
            background: var(--primary);
            color: #fff;
            box-shadow: 0 4px 12px rgba(88, 166, 255, 0.3);
        }
        .nav-links .btn-nav.primary:hover {
            background: #4a8ed4;
            transform: translateY(-3px);
            box-shadow: 0 6px 16px rgba(88, 166, 255, 0.4);
        }
        .nav-links .btn-nav.danger {
            color: var(--danger);
        }
        .nav-links .btn-nav.danger:hover {
            background: rgba(255, 77, 77, 0.15);
        }
        .nav-links .btn-nav .badge {
            background: var(--warning);
            color: #000;
            padding: 2px 10px;
            border-radius: 12px;
            font-size: 11px;
            font-weight: bold;
            animation: blink 1s infinite;
        }
        .nav-toggle {
            display: none;
            background: none;
            border: none;
            color: var(--text);
            font-size: 24px;
            cursor: pointer;
            padding: 4px 8px;
        }
        
        .container { max-width: 1200px; margin: 20px auto; padding: 0 15px; }
        
        .btn { 
            padding: 12px 20px; 
            border-radius: 8px; 
            border: none; 
            cursor: pointer; 
            font-weight: bold; 
            text-decoration: none; 
            display: inline-flex; 
            align-items: center; 
            gap: 8px; 
            font-size: var(--btn-font-size); 
            transition: all 0.3s ease; 
        }
        .btn-p { background: var(--primary); color: #fff; }
        .btn-p:hover { opacity: 0.85; transform: translateY(-2px); box-shadow: 0 4px 15px rgba(88, 166, 255, 0.3); }
        .btn-d { background: var(--success); color: #fff; }
        .btn-d:hover { background: #3fb950; transform: translateY(-2px); }
        .btn-danger { background: var(--danger); color: #fff; }
        .btn-danger:hover { background: #e63946; transform: translateY(-2px); }
        .btn-warning { background: var(--warning); color: #000; }
        .btn-warning:hover { background: #f39c12; transform: translateY(-2px); }
        .btn-edit { background: #6c757d; color: #fff; }
        .btn-edit:hover { background: #5a6268; transform: translateY(-2px); }
        .btn-success { background: var(--success); color: #fff; }
        .btn-success:hover { background: #3fb950; transform: translateY(-2px); }
        .btn-outline { background: transparent; color: var(--text); border: 1px solid var(--border); }
        .btn-outline:hover { border-color: var(--primary); color: var(--primary); }
        
        .grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 20px; }
        .card { background: var(--card); border-radius: 10px; overflow: hidden; border: 1px solid var(--border); transition: 0.3s; }
        .card:hover { border-color: var(--primary); transform: translateY(-5px); box-shadow: 0 8px 25px rgba(88, 166, 255, 0.1); }
        .card img { width: 100%; height: 320px; object-fit: cover; }
        .card-body { padding: 15px; }
        
        .modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.85); align-items: center; justify-content: center; z-index: 1000; padding: 20px; }
        .modal-content { background: var(--card); padding: 30px; border-radius: 15px; width: 100%; max-width: 500px; border: 1px solid var(--border); max-height: 90vh; overflow-y: auto; }
        
        input, select, textarea { 
            width: 100%; 
            padding: 12px 14px; 
            margin: 8px 0; 
            background: #000; 
            border: 1px solid var(--border); 
            color: #fff; 
            border-radius: 8px; 
            box-sizing: border-box; 
            font-size: 14px;
        }
        input:focus, select:focus, textarea:focus { outline: 2px solid var(--primary); border-color: var(--primary); }
        label { font-weight: bold; font-size: 13px; color: #8b949e; display: block; margin-top: 5px; }
        
        .stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; margin-bottom: 30px; }
        .stat-card { background: var(--card); border-radius: 12px; padding: 20px; text-align: center; border: 1px solid var(--border); transition: 0.3s; }
        .stat-card:hover { border-color: var(--primary); transform: translateY(-3px); }
        .stat-card .number { font-size: 32px; font-weight: bold; color: var(--primary); }
        .stat-card .label { color: #8b949e; font-size: 14px; margin-top: 5px; }
        .stat-card .icon { font-size: 24px; color: var(--primary); margin-bottom: 10px; }
        
        .reseller-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 25px; margin-top: 30px; }
        .reseller-card { background: var(--card); border-radius: 15px; border: 1px solid var(--border); padding: 25px; transition: 0.3s; position: relative; overflow: hidden; }
        .reseller-card:hover { transform: translateY(-5px); border-color: var(--primary); box-shadow: 0 8px 30px rgba(88, 166, 255, 0.15); }
        .reseller-card .header { display: flex; align-items: center; gap: 15px; margin-bottom: 15px; }
        .reseller-card .avatar { width: 60px; height: 60px; border-radius: 50%; background: var(--border); display: flex; align-items: center; justify-content: center; overflow: hidden; border: 2px solid var(--primary); }
        .reseller-card .avatar img { width: 100%; height: 100%; object-fit: cover; }
        .reseller-card .avatar i { font-size: 30px; color: var(--primary); }
        .reseller-card .name { font-size: 18px; font-weight: bold; color: var(--text); }
        .reseller-card .username { color: #8b949e; font-size: 14px; }
        .reseller-card .info { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 15px 0; padding: 15px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
        .reseller-card .info-item { text-align: center; }
        .reseller-card .info-item .label { color: #8b949e; font-size: 12px; }
        .reseller-card .info-item .value { font-size: 18px; font-weight: bold; color: var(--text); }
        .reseller-card .status-badge { display: inline-block; padding: 5px 15px; border-radius: 20px; font-size: 13px; font-weight: bold; }
        .reseller-card .status-badge.active { background: rgba(46, 160, 67, 0.2); color: var(--success); }
        .reseller-card .status-badge.warning { background: rgba(241, 196, 15, 0.2); color: var(--warning); animation: blink 1s infinite; }
        .reseller-card .status-badge.expired { background: rgba(255, 77, 77, 0.2); color: var(--danger); }
        .reseller-card .status-badge.trial { background: rgba(88, 166, 255, 0.2); color: var(--primary); }
        .reseller-card .actions { display: flex; gap: 8px; margin-top: 15px; justify-content: flex-end; flex-wrap: wrap; }
        .reseller-card .actions .btn { padding: 8px 15px; font-size: 13px; }
        
        .alert-box { background: rgba(241, 196, 15, 0.2); border: 1px solid var(--warning); border-radius: 10px; padding: 15px 20px; margin-bottom: 20px; display: flex; align-items: center; gap: 15px; }
        .alert-box i { color: var(--warning); font-size: 24px; }
        .alert-box.success { background: rgba(46, 160, 67, 0.2); border-color: var(--success); }
        .alert-box.success i { color: var(--success); }
        .alert-box.error { background: rgba(255, 77, 77, 0.2); border-color: var(--danger); }
        .alert-box.error i { color: var(--danger); }
        .alert-box.info { background: rgba(88, 166, 255, 0.2); border-color: var(--primary); }
        .alert-box.info i { color: var(--primary); }
        
        .warning-badge { background: var(--warning); color: #000; padding: 4px 12px; border-radius: 12px; font-size: 12px; font-weight: bold; animation: blink 1s infinite; }
        
        @keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }
        @keyframes spin { to { transform: rotate(360deg); } }
        
        .pix-box { background: var(--card); border-radius: 12px; padding: 20px; border: 1px solid var(--border); text-align: center; max-width: 450px; margin: 20px auto; }
        .pix-box .pix-key { font-size: 20px; font-weight: bold; color: var(--primary); margin: 10px 0; word-break: break-all; }
        .pix-box .pix-qr { margin: 15px auto; max-width: 200px; }
        .pix-box .pix-qr img { width: 100%; height: auto; border-radius: 8px; background: #fff; padding: 10px; }
        
        .ranking-item { display: flex; align-items: center; gap: 15px; padding: 10px 15px; background: var(--card); border-radius: 8px; margin-bottom: 8px; border: 1px solid var(--border); transition: 0.3s; }
        .ranking-item:hover { border-color: var(--primary); }
        .ranking-item .position { font-size: 20px; font-weight: bold; color: var(--primary); min-width: 40px; }
        .ranking-item .position.gold { color: #ffd700; }
        .ranking-item .position.silver { color: #c0c0c0; }
        .ranking-item .position.bronze { color: #cd7f32; }
        .ranking-item .info { flex: 1; }
        .ranking-item .info .name { font-weight: bold; }
        .ranking-item .info .details { color: #8b949e; font-size: 12px; }
        .ranking-item .stats { display: flex; gap: 20px; }
        .ranking-item .stats span { font-size: 14px; }
        .ranking-item .stats .num { font-weight: bold; color: var(--primary); }
        
        .section-title { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 15px; }
        .empty-state { text-align: center; padding: 40px 20px; background: #000; border-radius: 10px; border: 1px dashed var(--border); }
        .empty-state i { font-size: 40px; color: #8b949e; }
        .empty-state p { color: #8b949e; margin-top: 10px; }
        .login-link { text-align: center; margin-top: 15px; }
        .login-link a { color: var(--primary); text-decoration: none; font-weight: bold; }
        .login-link a:hover { text-decoration: underline; }
        
        .perfil-grid { display: grid; gap: 20px; max-width: 600px; margin: 0 auto; }
        .perfil-card { background: var(--card); border-radius: 15px; padding: 30px; border: 1px solid var(--border); }
        .perfil-card h3 { margin-top: 0; }
        
        #loader { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.9); z-index:2000; align-items:center; justify-content:center; flex-direction:column; }
        #loader .spinner { width:50px; height:50px; border:5px solid #30363d; border-top-color:var(--primary); border-radius:50%; animation:spin 1s linear infinite; }
        #loader p { margin-top:20px; font-weight:bold; color:#fff; }
        
        @media (max-width: 992px) {
            :root {
                --menu-font-size: 15px;
                --btn-font-size: 13px;
            }
            .nav-brand span { font-size: 18px; }
            .nav-links .btn-nav { padding: 9px 16px; }
        }
        
        @media (max-width: 768px) {
            :root {
                --menu-font-size: 15px;
                --btn-font-size: 12px;
            }
            .nav { 
                padding: 14px 18px; 
                flex-direction: column; 
                align-items: stretch;
                gap: 10px;
            }
            .nav-brand { 
                justify-content: space-between; 
                width: 100%;
            }
            .nav-brand span { font-size: 18px; }
            .nav-brand img { height: 36px; }
            .nav-toggle { 
                display: block; 
                background: none;
                border: none;
                color: var(--text);
                font-size: 24px;
                cursor: pointer;
                padding: 6px 10px;
                transition: all 0.3s ease;
            }
            .nav-toggle:hover {
                color: var(--primary);
                transform: scale(1.1);
            }
            .nav-links {
                display: none;
                flex-direction: column;
                width: 100%;
                gap: 6px;
                padding-top: 12px;
                border-top: 2px solid var(--border);
            }
            .nav-links.open {
                display: flex;
            }
            .nav-links .btn-nav {
                width: 100%;
                justify-content: center;
                padding: 12px 14px;
                font-size: var(--menu-font-size);
                border-radius: 8px;
                background: rgba(88, 166, 255, 0.08);
                border: 1px solid rgba(88, 166, 255, 0.2);
            }
            .nav-links .btn-nav:hover {
                background: rgba(88, 166, 255, 0.15);
                border-color: var(--primary);
            }
            .nav-links .btn-nav.primary {
                background: var(--primary);
                color: #fff;
                border: none;
                box-shadow: 0 4px 12px rgba(88, 166, 255, 0.3);
            }
            .nav-links .btn-nav.primary:hover {
                background: #4a8ed4;
                box-shadow: 0 6px 16px rgba(88, 166, 255, 0.4);
            }
            
            .container { padding: 0 10px; margin: 15px auto; }
            .reseller-grid { grid-template-columns: 1fr; }
            .stats-grid { grid-template-columns: 1fr 1fr; }
            .modal-content { padding: 20px; margin: 10px; }
            .btn { font-size: var(--btn-font-size); padding: 10px 16px; }
            .ranking-item { flex-direction: column; align-items: stretch; text-align: center; }
            .ranking-item .stats { justify-content: center; }
            .section-title { flex-direction: column; align-items: stretch; }
            .perfil-grid { padding: 0 10px; }
        }
        
        @media (max-width: 480px) {
            .stats-grid { grid-template-columns: 1fr; }
            .reseller-card .info { grid-template-columns: 1fr; }
            .reseller-card .actions { flex-direction: column; }
            .reseller-card .actions .btn { width: 100%; justify-content: center; }
            .grid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
            .card img { height: 240px; }
        }
    </style>
</head>
<body>
<nav class="nav">
    <div class="nav-brand">
        <?php if ($logo): ?>
            <img src="<?= $logo ?>" alt="Logo">
        <?php endif; ?>
        <span>GERADOR VODS</span>
        <button class="nav-toggle" onclick="toggleMenu()" aria-label="Menu">
            <i class="fas fa-bars"></i>
        </button>
    </div>
    <div class="nav-links" id="navLinks">
        <a href="?page=home" class="btn-nav"><i class="fas fa-home"></i> Início</a>
        
        <?php if ($is_admin): ?>
            <a href="?page=admin" class="btn-nav"><i class="fas fa-users"></i> Revendas</a>
            <a href="?page=admin_stats" class="btn-nav"><i class="fas fa-chart-bar"></i> Estatísticas</a>
            <a href="?page=admin_pix" class="btn-nav"><i class="fas fa-qrcode"></i> PIX</a>
            <a href="?page=admin_games" class="btn-nav"><i class="fas fa-gamepad"></i> Jogos</a>
            <a href="?page=admin_plans" class="btn-nav"><i class="fas fa-crown"></i> Planos</a>
            <a href="?page=galeria" class="btn-nav"><i class="fas fa-images"></i> Banners</a>
            <a href="?page=stats" class="btn-nav"><i class="fas fa-chart-line"></i> Minhas Stats</a>
            <a href="?page=perfil" class="btn-nav"><i class="fas fa-user-cog"></i> Perfil</a>
            <a href="?page=logo" class="btn-nav"><i class="fas fa-image"></i> Logo</a>
            <a href="?action=logout" class="btn-nav danger"><i class="fas fa-sign-out-alt"></i> Sair</a>
            
        <?php elseif ($is_reseller): ?>
            <a href="?page=galeria" class="btn-nav"><i class="fas fa-images"></i> Banners</a>
            <a href="?page=stats" class="btn-nav"><i class="fas fa-chart-line"></i> Minhas Stats</a>
            <a href="?page=my_plans" class="btn-nav"><i class="fas fa-crown"></i> Planos</a>
            <?php if ($hasGame): ?>
                <a href="?page=jogos" class="btn-nav"><i class="fas fa-gamepad"></i> Jogos</a>
            <?php endif; ?>
            <a href="?page=perfil" class="btn-nav"><i class="fas fa-user-cog"></i> Perfil</a>
            <a href="?page=logo" class="btn-nav"><i class="fas fa-image"></i> Logo</a>
            <?php if ($expiration && $expiration['days'] >= 0 && $expiration['days'] <= 5): ?>
                <span class="btn-nav"><span class="badge">Expira em <?= $expiration['days'] ?> dias</span></span>
            <?php endif; ?>
            <a href="?action=logout" class="btn-nav danger"><i class="fas fa-sign-out-alt"></i> Sair</a>
            
        <?php else: ?>
            <a href="?page=login" class="btn-nav primary"><i class="fas fa-lock"></i> Login</a>
            <a href="?page=register" class="btn-nav"><i class="fas fa-user-plus"></i> Cadastrar</a>
        <?php endif; ?>
    </div>
</nav>

<div class="container">
    <!-- ALERTAS -->
    <?php if (isset($_GET['expired'])): ?>
        <div class="alert-box error">
            <i class="fas fa-exclamation-triangle"></i>
            <div>
                <strong style="color:var(--danger);">Sua conta expirou!</strong>
                <p style="margin:5px 0 0 0; color:#8b949e;">Entre em contato com o administrador para renovar.</p>
            </div>
        </div>
    <?php endif; ?>

    <?php if (isset($_GET['registered'])): ?>
        <div class="alert-box success">
            <i class="fas fa-check-circle"></i>
            <div>
                <strong style="color:var(--success);">Cadastro realizado com sucesso!</strong>
                <p style="margin:5px 0 0 0; color:#8b949e;">Seu teste grátis de 1 dia já está ativo! Faça login para começar.</p>
            </div>
        </div>
    <?php endif; ?>

    <?php if (isset($_GET['pix_saved'])): ?>
        <div class="alert-box success">
            <i class="fas fa-check-circle"></i>
            <div>
                <strong style="color:var(--success);">PIX configurado para o plano!</strong>
                <p style="margin:5px 0 0 0; color:#8b949e;">O PIX aparecerá quando o revendedor escolher este plano.</p>
            </div>
        </div>
    <?php endif; ?>

    <?php if (isset($_GET['pix_removed'])): ?>
        <div class="alert-box info">
            <i class="fas fa-info-circle"></i>
            <div>
                <strong style="color:var(--primary);">PIX removido do plano!</strong>
            </div>
        </div>
    <?php endif; ?>

    <?php if (isset($_GET['cleared'])): ?>
        <div class="alert-box success">
            <i class="fas fa-check-circle"></i>
            <div>
                <strong style="color:var(--success);">Estatísticas zeradas com sucesso!</strong>
            </div>
        </div>
    <?php endif; ?>

    <?php if (isset($_GET['deleted'])): ?>
        <div class="alert-box success">
            <i class="fas fa-check-circle"></i>
            <div>
                <strong style="color:var(--success);">Plano excluído com sucesso!</strong>
            </div>
        </div>
    <?php endif; ?>

    <?php if (isset($_GET['edited'])): ?>
        <div class="alert-box success">
            <i class="fas fa-check-circle"></i>
            <div>
                <strong style="color:var(--success);">Plano editado com sucesso!</strong>
            </div>
        </div>
    <?php endif; ?>

    <?php if (isset($_GET['created'])): ?>
        <div class="alert-box success">
            <i class="fas fa-check-circle"></i>
            <div>
                <strong style="color:var(--success);">Plano criado com sucesso!</strong>
            </div>
        </div>
    <?php endif; ?>

    <?php if (isset($_GET['success']) && $_GET['success'] == 'senha'): ?>
        <div class="alert-box success">
            <i class="fas fa-check-circle"></i>
            <div>
                <strong style="color:var(--success);">Senha alterada com sucesso!</strong>
            </div>
        </div>
    <?php endif; ?>

    <?php if (isset($_GET['success']) && $_GET['success'] == 'usuario'): ?>
        <div class="alert-box success">
            <i class="fas fa-check-circle"></i>
            <div>
                <strong style="color:var(--success);">Usuário alterado com sucesso!</strong>
                <p style="margin:5px 0 0 0; color:#8b949e;">Faça login novamente com o novo usuário.</p>
            </div>
        </div>
    <?php endif; ?>

    <?php if (isset($_GET['error']) && $_GET['error'] == 'senha_incorreta'): ?>
        <div class="alert-box error">
            <i class="fas fa-exclamation-triangle"></i>
            <div>
                <strong style="color:var(--danger);">Senha atual incorreta!</strong>
            </div>
        </div>
    <?php endif; ?>

    <?php if (isset($_GET['error']) && $_GET['error'] == 'senha_nao_confere'): ?>
        <div class="alert-box error">
            <i class="fas fa-exclamation-triangle"></i>
            <div>
                <strong style="color:var(--danger);">A nova senha e a confirmação não coincidem!</strong>
            </div>
        </div>
    <?php endif; ?>

    <?php if (isset($_GET['error']) && $_GET['error'] == 'senha_curta'): ?>
        <div class="alert-box error">
            <i class="fas fa-exclamation-triangle"></i>
            <div>
                <strong style="color:var(--danger);">A senha deve ter pelo menos 4 caracteres!</strong>
            </div>
        </div>
    <?php endif; ?>

    <?php if (isset($_GET['error']) && $_GET['error'] == 'usuario_curto'): ?>
        <div class="alert-box error">
            <i class="fas fa-exclamation-triangle"></i>
            <div>
                <strong style="color:var(--danger);">O usuário deve ter pelo menos 3 caracteres!</strong>
            </div>
        </div>
    <?php endif; ?>

    <?php if (isset($_GET['error']) && $_GET['error'] == 'usuario_existe'): ?>
        <div class="alert-box error">
            <i class="fas fa-exclamation-triangle"></i>
            <div>
                <strong style="color:var(--danger);">Este usuário já existe!</strong>
            </div>
        </div>
    <?php endif; ?>

    <?php if (isset($_GET['error']) && $_GET['error'] == 'campos_vazios'): ?>
        <div class="alert-box error">
            <i class="fas fa-exclamation-triangle"></i>
            <div>
                <strong style="color:var(--danger);">Preencha todos os campos!</strong>
            </div>
        </div>
    <?php endif; ?>

    <?php if (isset($_GET['error']) && $_GET['error'] == 'usuario_nao_encontrado'): ?>
        <div class="alert-box error">
            <i class="fas fa-exclamation-triangle"></i>
            <div>
                <strong style="color:var(--danger);">Usuário não encontrado!</strong>
            </div>
        </div>
    <?php endif; ?>

    <?php if (isset($_GET['error']) && $_GET['error'] == 1): ?>
        <div class="alert-box error">
            <i class="fas fa-exclamation-triangle"></i>
            <div>
                <strong style="color:var(--danger);">Erro no cadastro!</strong>
                <p style="margin:5px 0 0 0; color:#8b949e;">Usuário já existe ou campos inválidos. Tente novamente.</p>
            </div>
        </div>
    <?php endif; ?>

    <?php if (isset($_GET['error']) && $_GET['error'] == 2): ?>
        <div class="alert-box error">
            <i class="fas fa-exclamation-triangle"></i>
            <div>
                <strong style="color:var(--danger);">Usuário ou senha incorretos!</strong>
            </div>
        </div>
    <?php endif; ?>

    <?php if (isset($_GET['success']) && $_GET['success'] == 1): ?>
        <div class="alert-box success">
            <i class="fas fa-check-circle"></i>
            <div>
                <strong style="color:var(--success);">Revenda ativada com sucesso!</strong>
            </div>
        </div>
    <?php endif; ?>

    <!-- ===== PÁGINAS ===== -->
    <?php if ($p == 'home'): ?>
        <form action="" method="GET" style="margin-bottom:30px; display:flex; gap:10px; flex-wrap:wrap;">
            <input type="hidden" name="page" value="home">
            <input type="text" name="search" placeholder="Pesquisar filmes ou séries..." value="<?= $_GET['search']??'' ?>" style="margin:0; flex:1; min-width:200px;">
            <button type="submit" class="btn btn-p"><i class="fas fa-search"></i> Buscar</button>
        </form>
        <div class="grid">
            <?php
            $q = urlencode($_GET['search'] ?? '');
            $url = $q ? API_URL."/search/multi?api_key=".API_KEY."&language=pt-BR&query=$q" : API_URL."/trending/all/week?api_key=".API_KEY."&language=pt-BR";
            $data = apiRequest($url);
            if (empty($data['results'])):
            ?>
                <div class="empty-state" style="grid-column: 1 / -1; padding:60px;">
                    <i class="fas fa-film" style="font-size:50px; color:#8b949e;"></i>
                    <p style="font-size:18px; color:#8b949e;">Nenhum filme ou série encontrado.</p>
                    <p style="color:#8b949e;">Tente buscar por outro título.</p>
                </div>
            <?php else: ?>
                <?php foreach ($data['results'] as $item):
                    if (!($item['poster_path']??'')) continue;
                ?>
                    <div class="card">
                        <img src="https://image.tmdb.org/t/p/w500<?= $item['poster_path'] ?>">
                        <div class="card-body">
                            <div style="font-weight:bold; margin-bottom:15px; height:40px; overflow:hidden;"><?= $item['title']??$item['name'] ?></div>
                            <?php if ($is_admin || $is_reseller): ?>
                                <button onclick="openModal('<?= isset($item['title'])?'movie':'tv' ?>', '<?= $item['id'] ?>', `<?= addslashes($item['overview']??'') ?>`)" class="btn btn-p" style="width:100%; justify-content:center;"><i class="fas fa-magic"></i> Gerar Banner</button>
                            <?php else: ?>
                                <p style="text-align:center; font-size:12px; color:#8b949e;"><i class="fas fa-lock"></i> Login para gerar</p>
                            <?php endif; ?>
                        </div>
                    </div>
                <?php endforeach; ?>
            <?php endif; ?>
        </div>

    <?php elseif ($p == 'admin' && $is_admin): ?>
        <h2>Gerenciar Revendas</h2>
        <button onclick="document.getElementById('modalReseller').style.display='flex'" class="btn btn-p" style="margin-bottom:20px;"><i class="fas fa-plus"></i> Nova Revenda</button>
        <div class="reseller-grid">
            <?php foreach(getResellers() as $id => $r): 
                $bannerCount = count(glob("resellers_banners/{$r['user']}/*.jpg"));
                $exp = checkExpiration($r['user']);
                $statusClass = 'active';
                $statusText = 'Ativo';
                if (isset($r['trial']) && $r['trial']) {
                    $statusClass = 'trial';
                    $statusText = 'Teste Grátis';
                }
                if ($exp) {
                    if ($exp['expired']) { $statusClass = 'expired'; $statusText = 'Expirado'; }
                    elseif ($exp['days'] <= 5) { $statusClass = 'warning'; $statusText = $exp['days'] . ' dias'; }
                    else { $statusClass = 'active'; $statusText = $exp['days'] . ' dias'; }
                } else { $statusText = 'Sem data'; }
                $logoReseller = getLogo($r['user']);
                $stats = getUserStats($r['user']);
            ?>
                <div class="reseller-card">
                    <div class="header">
                        <div class="avatar">
                            <?php if ($logoReseller): ?>
                                <img src="<?= $logoReseller ?>" alt="<?= htmlspecialchars($r['name']) ?>">
                            <?php else: ?>
                                <i class="fas fa-store"></i>
                            <?php endif; ?>
                        </div>
                        <div>
                            <div class="name"><?= htmlspecialchars($r['name']) ?> <?php if(isset($r['trial']) && $r['trial']): ?><span style="font-size:12px; color:var(--primary);">🎯 TESTE</span><?php endif; ?></div>
                            <div class="username"><i class="fas fa-user"></i> <?= htmlspecialchars($r['user']) ?></div>
                        </div>
                    </div>
                    <div class="info">
                        <div class="info-item">
                            <div class="label"><i class="fas fa-images"></i> Banners</div>
                            <div class="value"><?= $bannerCount ?></div>
                        </div>
                        <div class="info-item">
                            <div class="label"><i class="fas fa-download"></i> Downloads</div>
                            <div class="value"><?= $stats['total_downloads'] ?? 0 ?></div>
                        </div>
                        <div class="info-item">
                            <div class="label"><i class="fas fa-calendar-alt"></i> Vencimento</div>
                            <div class="value" style="font-size:14px;"><?= date('d/m/Y', strtotime($r['expires'] ?? 'now')) ?></div>
                        </div>
                        <div class="info-item">
                            <div class="label"><i class="fas fa-crown"></i> Plano</div>
                            <div class="value" style="font-size:14px;"><?= $r['plan'] ?? ($r['selected_plan'] ?? 'Nenhum') ?></div>
                        </div>
                    </div>
                    <div style="display:flex; justify-content:space-between; align-items:center;">
                        <span class="status-badge <?= $statusClass ?>"><?= $statusText ?></span>
                        <span style="color:#8b949e; font-size:12px;">ID: #<?= $id+1 ?></span>
                    </div>
                    <div class="actions">
                        <button onclick="editReseller(<?= $id ?>, '<?= addslashes($r['name']) ?>', '<?= addslashes($r['user']) ?>', '<?= addslashes($r['pass']) ?>', '<?= $r['expires'] ?? '' ?>')" class="btn btn-edit">
                            <i class="fas fa-edit"></i> Editar
                        </button>
                        <a href="?action=delReseller&id=<?= $id ?>" class="btn btn-danger" onclick="return confirm('Excluir esta revenda e todos os seus banners?')">
                            <i class="fas fa-trash"></i> Excluir
                        </a>
                    </div>
                </div>
            <?php endforeach; ?>
        </div>

    <?php elseif ($p == 'admin_stats' && $is_admin): ?>
        <h2><i class="fas fa-chart-bar" style="color:var(--primary);"></i> Estatísticas Gerais</h2>
        
        <div style="margin-bottom:20px; display:flex; gap:10px; flex-wrap:wrap; align-items:center;">
            <button onclick="if(confirm('Tem certeza que deseja ZERAR TODAS as estatísticas? Essa ação não pode ser desfeita!')) location.href='?action=clearStats'" class="btn btn-danger">
                <i class="fas fa-trash-alt"></i> Zerar Estatísticas
            </button>
            <span style="color:#8b949e; font-size:12px;">
                <i class="fas fa-info-circle"></i> Remove todos os dados de downloads e gerações
            </span>
        </div>

        <div class="stats-grid">
            <?php
            $totalResellers = count(getResellers());
            $totalBanners = count(glob("banners/*.jpg")) + count(glob("resellers_banners/*/*.jpg"));
            $totalDownloads = array_sum(array_map('array_sum', getStats()['downloads'] ?? []));
            $totalGenerated = array_sum(array_map('array_sum', getStats()['generated'] ?? []));
            ?>
            <div class="stat-card">
                <div class="icon"><i class="fas fa-users"></i></div>
                <div class="number"><?= $totalResellers ?></div>
                <div class="label">Total de Revendas</div>
            </div>
            <div class="stat-card">
                <div class="icon"><i class="fas fa-images"></i></div>
                <div class="number"><?= $totalBanners ?></div>
                <div class="label">Total de Banners</div>
            </div>
            <div class="stat-card">
                <div class="icon"><i class="fas fa-download"></i></div>
                <div class="number"><?= $totalDownloads ?></div>
                <div class="label">Total de Downloads</div>
            </div>
            <div class="stat-card">
                <div class="icon"><i class="fas fa-magic"></i></div>
                <div class="number"><?= $totalGenerated ?></div>
                <div class="label">Total Gerado</div>
            </div>
        </div>

        <div style="background:var(--card); border-radius:12px; padding:20px; border:1px solid var(--border);">
            <h3><i class="fas fa-trophy" style="color:var(--warning);"></i> Ranking de Revendas</h3>
            <?php 
            $ranking = getRanking();
            $position = 1;
            if (empty($ranking)) {
                echo '<div class="empty-state"><i class="fas fa-trophy"></i><p>Nenhuma revenda no ranking ainda.</p></div>';
            } else {
                foreach ($ranking as $user => $data): 
                    $resellers = getResellers();
                    $name = $user;
                    foreach ($resellers as $r) { if ($r['user'] == $user) { $name = $r['name']; break; } }
                    $posClass = '';
                    if ($position == 1) $posClass = 'gold';
                    elseif ($position == 2) $posClass = 'silver';
                    elseif ($position == 3) $posClass = 'bronze';
            ?>
                <div class="ranking-item">
                    <div class="position <?= $posClass ?>">#<?= $position++ ?></div>
                    <div class="info">
                        <div class="name"><?= htmlspecialchars($name) ?></div>
                        <div class="details">@<?= htmlspecialchars($user) ?></div>
                    </div>
                    <div class="stats">
                        <span><i class="fas fa-download"></i> <span class="num"><?= $data['total_downloads'] ?></span></span>
                        <span><i class="fas fa-magic"></i> <span class="num"><?= $data['total_generated'] ?></span></span>
                    </div>
                </div>
            <?php endforeach; } ?>
        </div>

    <?php elseif ($p == 'admin_pix' && $is_admin): ?>
        <h2><i class="fas fa-qrcode" style="color:var(--primary);"></i> Configuração de PIX por Revenda</h2>
        <p style="color:#8b949e;">Configure qual PIX cada revenda verá. O QRCODE será gerado automaticamente!</p>
        <div style="display:grid; gap:20px;">
            <?php foreach(getResellers() as $r): 
                $pixConfig = getPixForUser($r['user']);
            ?>
                <div style="background:var(--card); border-radius:12px; padding:20px; border:1px solid var(--border);">
                    <div style="display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;">
                        <div>
                            <strong style="font-size:18px;"><?= htmlspecialchars($r['name']) ?></strong>
                            <span style="color:#8b949e; margin-left:10px;">@<?= htmlspecialchars($r['user']) ?></span>
                        </div>
                        <?php if ($pixConfig): ?>
                            <span style="background:var(--success); color:#fff; padding:4px 12px; border-radius:12px; font-size:12px;">
                                <i class="fas fa-check"></i> Configurado
                            </span>
                        <?php else: ?>
                            <span style="background:#8b949e; color:#fff; padding:4px 12px; border-radius:12px; font-size:12px;">
                                <i class="fas fa-times"></i> Sem PIX
                            </span>
                        <?php endif; ?>
                    </div>
                    <?php if ($pixConfig): ?>
                        <div style="margin-top:10px; padding:10px; background:#000; border-radius:8px;">
                            <p><strong>Chave PIX:</strong> <?= htmlspecialchars($pixConfig['pix_key']) ?></p>
                            <p><strong>Nome:</strong> <?= htmlspecialchars($pixConfig['pix_name']) ?></p>
                            <?php 
                            $qrCode = generatePixQRCode($pixConfig['pix_key'], $pixConfig['pix_name'], $pixConfig['pix_city'] ?? 'SAO PAULO');
                            ?>
                            <div style="text-align:center; margin:10px 0;">
                                <img src="<?= $qrCode ?>" alt="QRCODE PIX" style="max-width:150px; background:#fff; padding:10px; border-radius:8px;">
                            </div>
                            <a href="?action=removePix&user=<?= $r['user'] ?>" class="btn btn-danger" style="padding:5px 12px; font-size:12px;" onclick="return confirm('Remover PIX desta revenda?')">
                                <i class="fas fa-trash"></i> Remover
                            </a>
                        </div>
                    <?php else: ?>
                        <form action="?action=savePix" method="POST" style="margin-top:10px; display:grid; gap:10px;">
                            <input type="hidden" name="reseller_user" value="<?= $r['user'] ?>">
                            <input type="text" name="pix_key" placeholder="Chave PIX (email, CPF, telefone)" required>
                            <input type="text" name="pix_name" placeholder="Nome do titular" required>
                            <input type="text" name="pix_city" placeholder="Cidade (ex: SAO PAULO)" value="SAO PAULO" required>
                            <button type="submit" class="btn btn-p"><i class="fas fa-save"></i> Salvar PIX</button>
                        </form>
                    <?php endif; ?>
                </div>
            <?php endforeach; ?>
        </div>

    <?php elseif ($p == 'admin_games' && $is_admin): ?>
        <h2><i class="fas fa-gamepad" style="color:var(--primary);"></i> Jogos do Dia por Revenda</h2>
        <p style="color:#8b949e;">Configure qual link de jogo cada revenda verá.</p>
        <div style="display:grid; gap:20px;">
            <?php foreach(getResellers() as $r): 
                $game = getGameForUser($r['user']);
            ?>
                <div style="background:var(--card); border-radius:12px; padding:20px; border:1px solid var(--border);">
                    <div style="display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;">
                        <div>
                            <strong style="font-size:18px;"><?= htmlspecialchars($r['name']) ?></strong>
                            <span style="color:#8b949e; margin-left:10px;">@<?= htmlspecialchars($r['user']) ?></span>
                        </div>
                        <?php if ($game): ?>
                            <span style="background:var(--success); color:#fff; padding:4px 12px; border-radius:12px; font-size:12px;">
                                <i class="fas fa-check"></i> Configurado
                            </span>
                        <?php else: ?>
                            <span style="background:#8b949e; color:#fff; padding:4px 12px; border-radius:12px; font-size:12px;">
                                <i class="fas fa-times"></i> Sem Jogo
                            </span>
                        <?php endif; ?>
                    </div>
                    <?php if ($game): ?>
                        <div style="margin-top:10px; padding:10px; background:#000; border-radius:8px;">
                            <p><strong>🎮 Jogo:</strong> <?= htmlspecialchars($game['name']) ?></p>
                            <p><strong>🔗 Link:</strong> <a href="<?= htmlspecialchars($game['link']) ?>" target="_blank" style="color:var(--primary);"><?= htmlspecialchars($game['link']) ?></a></p>
                            <a href="?action=removeGame&user=<?= $r['user'] ?>" class="btn btn-danger" style="padding:5px 12px; font-size:12px;" onclick="return confirm('Remover jogo desta revenda?')">
                                <i class="fas fa-trash"></i> Remover
                            </a>
                        </div>
                    <?php else: ?>
                        <form action="?action=saveGame" method="POST" style="margin-top:10px; display:grid; gap:10px;">
                            <input type="hidden" name="reseller_user" value="<?= $r['user'] ?>">
                            <input type="text" name="game_name" placeholder="Nome do jogo (ex: Red Orange)" required>
                            <input type="url" name="game_link" placeholder="Link do jogo (ex: https://linksdosjogosdodia.eu/jogosmeus.php)" required>
                            <button type="submit" class="btn btn-p"><i class="fas fa-save"></i> Salvar Jogo</button>
                        </form>
                    <?php endif; ?>
                </div>
            <?php endforeach; ?>
        </div>

    <?php elseif ($p == 'admin_plans' && $is_admin): ?>
        <h2><i class="fas fa-crown" style="color:var(--warning);"></i> Gerenciar Planos e Ativações</h2>

        <div style="background:var(--card); border-radius:12px; padding:20px; border:1px solid var(--border); margin-bottom:30px;">
            <div class="section-title">
                <h3 style="margin:0;">📋 Planos Disponíveis</h3>
                <div style="display:flex; gap:10px; flex-wrap:wrap;">
                    <button onclick="document.getElementById('modalPlan').style.display='flex'" class="btn btn-p">
                        <i class="fas fa-plus"></i> Novo Plano
                    </button>
                </div>
            </div>
            <div class="reseller-grid">
                <?php 
                $plans = getPlans();
                if (empty($plans['plans'])): 
                ?>
                    <div class="empty-state" style="grid-column: 1 / -1;">
                        <i class="fas fa-crown"></i>
                        <p>Nenhum plano cadastrado. Crie um plano agora!</p>
                    </div>
                <?php else: ?>
                    <?php foreach($plans['plans'] as $plan): 
                        $planPix = getPixForPlan($plan['id']);
                    ?>
                        <div class="reseller-card" style="border-color: <?= $planPix ? 'var(--success)' : 'var(--border)' ?>;">
                            <div style="text-align:center;">
                                <div style="font-size:24px; color:var(--warning);">
                                    <?php if ($plan['id'] == 'monthly'): ?>📅
                                    <?php elseif ($plan['id'] == 'quarterly'): ?>📊
                                    <?php else: ?>🏆<?php endif; ?>
                                </div>
                                <h3><?= htmlspecialchars($plan['name']) ?></h3>
                                <div style="font-size:36px; font-weight:bold; color:var(--primary);">
                                    R$ <?= number_format($plan['price'], 2, ',', '.') ?>
                                </div>
                                <div style="color:#8b949e; margin:10px 0;">
                                    <i class="fas fa-calendar-alt"></i> <?= $plan['days'] ?> dias
                                </div>
                                
                                <?php if ($planPix): ?>
                                    <div style="margin:10px 0; padding:10px; background:#000; border-radius:8px; text-align:left;">
                                        <p style="font-size:12px; color:#8b949e; margin-bottom:5px;">
                                            <i class="fas fa-qrcode" style="color:var(--success);"></i> PIX deste plano:
                                        </p>
                                        <p style="font-size:13px; word-break:break-all;"><strong>Chave:</strong> <?= htmlspecialchars($planPix['pix_key']) ?></p>
                                        <p style="font-size:13px;"><strong>Nome:</strong> <?= htmlspecialchars($planPix['pix_name']) ?></p>
                                        <?php 
                                        $qrCode = generatePixQRCode($planPix['pix_key'], $planPix['pix_name'], $planPix['pix_city'] ?? 'SAO PAULO');
                                        ?>
                                        <div style="text-align:center; margin:5px 0;">
                                            <img src="<?= $qrCode ?>" alt="QRCODE PIX" style="max-width:120px; background:#fff; padding:5px; border-radius:6px;">
                                        </div>
                                        <a href="?action=removePlanPix&plan_id=<?= $plan['id'] ?>" class="btn btn-danger" style="padding:4px 10px; font-size:11px; margin-top:5px;" onclick="return confirm('Remover PIX deste plano?')">
                                            <i class="fas fa-trash"></i> Remover PIX
                                        </a>
                                    </div>
                                <?php endif; ?>
                                
                                <div style="display:flex; gap:10px; justify-content:center; margin-top:10px; flex-wrap:wrap;">
                                    <button onclick="editPlan('<?= $plan['id'] ?>', '<?= addslashes($plan['name']) ?>', '<?= $plan['price'] ?>', '<?= $plan['days'] ?>')" class="btn btn-edit">
                                        <i class="fas fa-edit"></i> Editar
                                    </button>
                                    <button onclick="document.getElementById('modalPlanPix').style.display='flex'; document.getElementById('plan_pix_id').value='<?= $plan['id'] ?>'" class="btn btn-d">
                                        <i class="fas fa-qrcode"></i> <?= $planPix ? 'Editar PIX' : 'Adicionar PIX' ?>
                                    </button>
                                    <a href="?action=deletePlan&id=<?= $plan['id'] ?>" class="btn btn-danger" onclick="return confirm('Excluir este plano?')">
                                        <i class="fas fa-trash"></i> Excluir
                                    </a>
                                </div>
                            </div>
                        </div>
                    <?php endforeach; ?>
                <?php endif; ?>
            </div>
        </div>

        <div style="background:var(--card); border-radius:12px; padding:20px; border:2px solid var(--warning); margin-bottom:30px;">
            <h3 style="color:var(--warning);"><i class="fas fa-clock"></i> Revendas Aguardando Ativação</h3>
            <p style="color:#8b949e; margin-bottom:15px;">Revendas que escolheram um plano e aguardam ativação:</p>
            
            <?php 
            $resellers = getResellers();
            $pendingResellers = [];
            foreach ($resellers as $r) {
                if (isset($r['selected_plan']) && !empty($r['selected_plan'])) {
                    $pendingResellers[] = $r;
                }
            }
            ?>
            
            <?php if (empty($pendingResellers)): ?>
                <div class="empty-state">
                    <i class="fas fa-check-circle" style="color:var(--success);"></i>
                    <p style="color:var(--success);">Nenhuma revenda aguardando ativação no momento.</p>
                </div>
            <?php else: ?>
                <div class="reseller-grid">
                    <?php foreach($pendingResellers as $r): 
                        $selectedPlanName = '';
                        foreach ($plans['plans'] as $p) {
                            if ($p['id'] == $r['selected_plan']) {
                                $selectedPlanName = $p['name'] . ' (R$ ' . number_format($p['price'], 2, ',', '.') . ')';
                                break;
                            }
                        }
                    ?>
                        <div class="reseller-card" style="border-color:var(--warning);">
                            <div class="header">
                                <div class="avatar">
                                    <?php $logoReseller = getLogo($r['user']); ?>
                                    <?php if ($logoReseller): ?>
                                        <img src="<?= $logoReseller ?>" alt="<?= htmlspecialchars($r['name']) ?>">
                                    <?php else: ?>
                                        <i class="fas fa-user"></i>
                                    <?php endif; ?>
                                </div>
                                <div>
                                    <div class="name"><?= htmlspecialchars($r['name']) ?></div>
                                    <div class="username">@<?= htmlspecialchars($r['user']) ?></div>
                                </div>
                            </div>
                            <div style="margin:10px 0; padding:10px; background:#000; border-radius:8px;">
                                <p style="margin:5px 0;">
                                    <strong>📋 Plano escolhido:</strong> 
                                    <span style="color:var(--warning);"><?= $selectedPlanName ?></span>
                                </p>
                                <p style="margin:5px 0; color:var(--warning); font-size:14px;">
                                    <i class="fas fa-clock"></i> Aguardando ativação
                                </p>
                            </div>
                            <form action="?action=activateReseller&user=<?= $r['user'] ?>" method="POST">
                                <input type="hidden" name="plan" value="<?= $r['selected_plan'] ?>">
                                <button type="submit" class="btn btn-p" style="width:100%;">
                                    <i class="fas fa-check"></i> Ativar Revenda
                                </button>
                            </form>
                        </div>
                    <?php endforeach; ?>
                </div>
            <?php endif; ?>
        </div>

        <div style="background:var(--card); border-radius:12px; padding:20px; border:1px solid var(--success);">
            <h3 style="color:var(--success);"><i class="fas fa-check-circle"></i> Revendas Ativas</h3>
            <p style="color:#8b949e; margin-bottom:15px;">Revendas que já foram ativadas com seus respectivos planos:</p>
            
            <?php 
            $activeResellers = [];
            foreach ($resellers as $r) {
                if (isset($r['plan']) && !empty($r['plan'])) {
                    $activeResellers[] = $r;
                }
            }
            ?>
            
            <?php if (empty($activeResellers)): ?>
                <div class="empty-state">
                    <i class="fas fa-users" style="color:#8b949e;"></i>
                    <p>Nenhuma revenda ativa no momento.</p>
                </div>
            <?php else: ?>
                <div class="reseller-grid">
                    <?php foreach($activeResellers as $r): 
                        $planName = '';
                        foreach ($plans['plans'] as $p) {
                            if ($p['id'] == $r['plan']) {
                                $planName = $p['name'];
                                break;
                            }
                        }
                    ?>
                        <div class="reseller-card" style="border-color:var(--success);">
                            <div class="header">
                                <div class="avatar">
                                    <?php $logoReseller = getLogo($r['user']); ?>
                                    <?php if ($logoReseller): ?>
                                        <img src="<?= $logoReseller ?>" alt="<?= htmlspecialchars($r['name']) ?>">
                                    <?php else: ?>
                                        <i class="fas fa-user"></i>
                                    <?php endif; ?>
                                </div>
                                <div>
                                    <div class="name"><?= htmlspecialchars($r['name']) ?></div>
                                    <div class="username">@<?= htmlspecialchars($r['user']) ?></div>
                                </div>
                            </div>
                            <div style="margin:10px 0; padding:10px; background:#000; border-radius:8px;">
                                <p style="margin:5px 0;">
                                    <strong>📋 Plano:</strong> 
                                    <span style="color:var(--success);"><?= $planName ?></span>
                                </p>
                                <p style="margin:5px 0;">
                                    <strong>📅 Vence:</strong> 
                                    <?= date('d/m/Y', strtotime($r['expires'])) ?>
                                </p>
                            </div>
                            <span class="status-badge active"><i class="fas fa-check"></i> Ativo</span>
                        </div>
                    <?php endforeach; ?>
                </div>
            <?php endif; ?>
        </div>

    <?php elseif ($p == 'galeria' && ($is_admin || $is_reseller)): ?>
        <div style="display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:20px;">
            <h2>Meus Banners Gerados</h2>
            <div class="header-actions" style="display:flex; gap:10px; flex-wrap:wrap;">
                <a href="?page=home" class="btn btn-p"><i class="fas fa-plus"></i> Novo Banner</a>
                <button onclick="if(confirm('Tem certeza que deseja excluir TODOS os seus banners?')) location.href='?action=deleteAllBanners'" class="btn btn-danger"><i class="fas fa-trash-alt"></i> Excluir Todos</button>
            </div>
        </div>
        <?php
        $d = ($u == 'admin') ? "banners" : "resellers_banners/$u";
        $files = glob("$d/*.jpg");
        array_multisort(array_map('filemtime', $files), SORT_DESC, $files);
        ?>
        <?php if (empty($files)): ?>
            <div class="empty-state" style="padding:60px;">
                <i class="fas fa-images"></i>
                <p style="font-size:18px;">Você ainda não gerou nenhum banner.</p>
                <a href="?page=home" class="btn btn-p" style="margin-top:15px;"><i class="fas fa-plus"></i> Gerar Banner</a>
            </div>
        <?php else: ?>
            <div class="grid">
                <?php foreach ($files as $f): ?>
                    <div class="card">
                        <img src="<?= $f ?>">
                        <div class="card-body" style="display:flex; gap:10px; flex-wrap:wrap;">
                            <a href="?action=downloadBanner&file=<?= $f ?>" class="btn btn-d" style="flex:1; justify-content:center; min-width:80px;"><i class="fas fa-download"></i> Baixar</a>
                            <a href="?action=delBanner&file=<?= $f ?>" class="btn btn-danger" style="flex:1; justify-content:center; min-width:80px;" onclick="return confirm('Excluir este banner?')"><i class="fas fa-trash"></i> Excluir</a>
                        </div>
                    </div>
                <?php endforeach; ?>
            </div>
        <?php endif; ?>

    <?php elseif ($p == 'jogos' && $is_reseller): ?>
        <h2><i class="fas fa-gamepad" style="color:var(--primary);"></i> Jogos do Dia</h2>
        
        <?php 
        $game = getGameForUser($u);
        if ($game): 
        ?>
            <div style="background:var(--card); border-radius:15px; padding:40px; text-align:center; border:1px solid var(--primary); max-width:600px; margin:0 auto;">
                <div style="font-size:60px; margin-bottom:20px;">🔗</div>
                <h3 style="color:var(--primary);">Link do Jogo do Dia</h3>
                <p style="color:#8b949e; font-size:16px; margin-bottom:30px;">
                    📅 Atualizado diariamente!<br>
                    Compartilhe com seus clientes e aumente seu faturamento!
                </p>
                
                <div style="background:#000; border-radius:10px; padding:15px; margin-bottom:20px; word-break:break-all;">
                    <a href="<?= htmlspecialchars($game['link']) ?>" target="_blank" style="color:var(--primary); font-size:18px; text-decoration:none;">
                        <?= htmlspecialchars($game['link']) ?>
                    </a>
                </div>
                
                <div style="display:flex; gap:10px; justify-content:center; flex-wrap:wrap;">
                    <a href="<?= htmlspecialchars($game['link']) ?>" target="_blank" class="btn btn-p" style="padding:15px 30px;">
                        <i class="fas fa-play"></i> Jogar Agora
                    </a>
                    <button onclick="copiarLink()" class="btn btn-edit" style="padding:15px 30px;">
                        <i class="fas fa-copy"></i> Copiar Link
                    </button>
                </div>
                
                <p style="color:#8b949e; font-size:12px; margin-top:20px;">
                    <i class="fas fa-info-circle"></i> Link atualizado todos os dias, fique de olho!
                </p>
            </div>
        <?php else: ?>
            <div class="empty-state" style="padding:60px;">
                <i class="fas fa-gamepad"></i>
                <p style="font-size:18px;">Nenhum jogo disponível no momento.</p>
                <p style="color:#8b949e;">Entre em contato com o administrador.</p>
            </div>
        <?php endif; ?>

    <?php elseif ($p == 'stats' && ($is_admin || $is_reseller)): ?>
        <h2><i class="fas fa-chart-line" style="color:var(--primary);"></i> Minhas Estatísticas</h2>
        <div class="stats-grid">
            <div class="stat-card">
                <div class="icon"><i class="fas fa-magic"></i></div>
                <div class="number"><?= $userStats['total_generated'] ?? 0 ?></div>
                <div class="label">Total de Banners Gerados</div>
            </div>
            <div class="stat-card">
                <div class="icon"><i class="fas fa-download"></i></div>
                <div class="number"><?= $userStats['total_downloads'] ?? 0 ?></div>
                <div class="label">Total de Downloads</div>
            </div>
        </div>

        <?php 
        $pix = getPixForUser($u);
        if ($pix): 
            $qrCode = generatePixQRCode($pix['pix_key'], $pix['pix_name'], $pix['pix_city'] ?? 'SAO PAULO');
        ?>
            <div style="background:var(--card); border-radius:12px; padding:20px; border:1px solid var(--success); margin-top:20px;">
                <h3><i class="fas fa-qrcode" style="color:var(--success);"></i> PIX para Pagamento</h3>
                <div class="pix-box">
                    <p style="color:#8b949e;">Escaneie o QRCODE ou copie a chave abaixo</p>
                    <div class="pix-qr">
                        <img src="<?= $qrCode ?>" alt="QRCODE PIX">
                    </div>
                    <div class="pix-key"><?= htmlspecialchars($pix['pix_key']) ?></div>
                    <p style="color:#8b949e; font-size:14px;">
                        <?= htmlspecialchars($pix['pix_name']) ?>
                    </p>
                    <div style="display:flex; gap:10px; justify-content:center; flex-wrap:wrap;">
                        <button onclick="copiarPix('<?= htmlspecialchars($pix['pix_key']) ?>')" class="btn btn-p">
                            <i class="fas fa-copy"></i> Copiar Chave
                        </button>
                        <button onclick="window.open('<?= $qrCode ?>', '_blank')" class="btn btn-edit">
                            <i class="fas fa-expand"></i> Ampliar QRCODE
                        </button>
                    </div>
                </div>
            </div>
        <?php endif; ?>

    <?php elseif ($p == 'my_plans' && $is_reseller): ?>
        <h2><i class="fas fa-crown" style="color:var(--warning);"></i> Escolha seu Plano</h2>
        <?php if (isset($_GET['success'])): ?>
            <div class="alert-box success">
                <i class="fas fa-check-circle"></i>
                <div>
                    <strong style="color:var(--success);">Plano selecionado com sucesso!</strong>
                    <p style="margin:5px 0 0 0; color:#8b949e;">Aguarde a ativação pelo administrador.</p>
                </div>
            </div>
        <?php endif; ?>
        <?php
        $plans = getPlans();
        $currentPlan = null;
        $selectedPlan = null;
        foreach (getResellers() as $r) { 
            if ($r['user'] == $u) { 
                $currentPlan = $r['plan'] ?? null;
                $selectedPlan = $r['selected_plan'] ?? null;
                break; 
            } 
        }
        ?>
        <?php if (empty($plans['plans'])): ?>
            <div class="empty-state" style="padding:60px;">
                <i class="fas fa-crown"></i>
                <p style="font-size:18px;">Nenhum plano disponível no momento.</p>
                <p style="color:#8b949e;">Entre em contato com o administrador.</p>
            </div>
        <?php else: ?>
            <div class="reseller-grid">
                <?php foreach ($plans['plans'] as $plan): 
                    $planPix = getPixForPlan($plan['id']);
                ?>
                    <div class="reseller-card" style="border-color: <?= $currentPlan == $plan['id'] ? 'var(--success)' : ($selectedPlan == $plan['id'] ? 'var(--warning)' : 'var(--border)') ?>;">
                        <div style="text-align:center;">
                            <div style="font-size:24px; color:var(--warning);">
                                <?php if ($plan['id'] == 'monthly'): ?>📅
                                <?php elseif ($plan['id'] == 'quarterly'): ?>📊
                                <?php else: ?>🏆<?php endif; ?>
                            </div>
                            <h3><?= htmlspecialchars($plan['name']) ?></h3>
                            <div style="font-size:36px; font-weight:bold; color:var(--primary);">
                                R$ <?= number_format($plan['price'], 2, ',', '.') ?>
                            </div>
                            <div style="color:#8b949e; margin:10px 0;">
                                <i class="fas fa-calendar-alt"></i> <?= $plan['days'] ?> dias
                            </div>
                            
                            <?php if ($planPix): ?>
                                <div style="margin:15px 0; padding:15px; background:#000; border-radius:10px; text-align:left;">
                                    <p style="font-size:13px; color:var(--success); margin-bottom:8px;">
                                        <i class="fas fa-qrcode"></i> <strong>PIX para pagamento:</strong>
                                    </p>
                                    <p style="font-size:13px; word-break:break-all;"><strong>Chave:</strong> <?= htmlspecialchars($planPix['pix_key']) ?></p>
                                    <p style="font-size:13px;"><strong>Nome:</strong> <?= htmlspecialchars($planPix['pix_name']) ?></p>
                                    <?php 
                                    $qrCode = generatePixQRCode($planPix['pix_key'], $planPix['pix_name'], $planPix['pix_city'] ?? 'SAO PAULO');
                                    ?>
                                    <div style="text-align:center; margin:8px 0;">
                                        <img src="<?= $qrCode ?>" alt="QRCODE PIX" style="max-width:120px; background:#fff; padding:8px; border-radius:6px;">
                                    </div>
                                    <div style="display:flex; gap:8px; justify-content:center; flex-wrap:wrap;">
                                        <button onclick="copiarPix('<?= htmlspecialchars($planPix['pix_key']) ?>')" class="btn btn-p" style="padding:6px 12px; font-size:12px;">
                                            <i class="fas fa-copy"></i> Copiar
                                        </button>
                                        <button onclick="window.open('<?= $qrCode ?>', '_blank')" class="btn btn-edit" style="padding:6px 12px; font-size:12px;">
                                            <i class="fas fa-expand"></i> QRCODE
                                        </button>
                                    </div>
                                </div>
                            <?php endif; ?>
                            
                            <?php if ($currentPlan == $plan['id']): ?>
                                <span class="status-badge active"><i class="fas fa-check"></i> Plano Ativo</span>
                                <p style="color:#8b949e; font-size:12px; margin-top:10px;">
                                    <i class="fas fa-calendar-alt"></i> Vence em <?= $expiration['days'] ?? 0 ?> dias
                                </p>
                            <?php elseif ($selectedPlan == $plan['id']): ?>
                                <span class="status-badge warning"><i class="fas fa-clock"></i> Aguardando Ativação</span>
                                <p style="color:#8b949e; font-size:12px; margin-top:10px;">
                                    <i class="fas fa-info-circle"></i> O administrador vai ativar seu plano em breve
                                </p>
                            <?php else: ?>
                                <form action="?action=selectPlan" method="POST">
                                    <input type="hidden" name="plan_id" value="<?= $plan['id'] ?>">
                                    <button type="submit" class="btn btn-p" style="width:100%; justify-content:center; margin-top:10px;">
                                        <i class="fas fa-rocket"></i> Escolher Plano
                                    </button>
                                </form>
                            <?php endif; ?>
                        </div>
                    </div>
                <?php endforeach; ?>
            </div>
        <?php endif; ?>
        
        <?php 
        $pix = getPixForUser($u);
        if ($pix): 
            $qrCode = generatePixQRCode($pix['pix_key'], $pix['pix_name'], $pix['pix_city'] ?? 'SAO PAULO');
        ?>
            <div style="background:var(--card); border-radius:12px; padding:20px; border:1px solid var(--success); margin-top:20px;">
                <h3><i class="fas fa-qrcode" style="color:var(--success);"></i> PIX para Pagamento</h3>
                <div class="pix-box">
                    <p style="color:#8b949e;">Escaneie o QRCODE ou copie a chave abaixo</p>
                    <div class="pix-qr">
                        <img src="<?= $qrCode ?>" alt="QRCODE PIX">
                    </div>
                    <div class="pix-key"><?= htmlspecialchars($pix['pix_key']) ?></div>
                    <p style="color:#8b949e; font-size:14px;">
                        <?= htmlspecialchars($pix['pix_name']) ?>
                    </p>
                    <div style="display:flex; gap:10px; justify-content:center; flex-wrap:wrap;">
                        <button onclick="copiarPix('<?= htmlspecialchars($pix['pix_key']) ?>')" class="btn btn-p">
                            <i class="fas fa-copy"></i> Copiar Chave
                        </button>
                        <button onclick="window.open('<?= $qrCode ?>', '_blank')" class="btn btn-edit">
                            <i class="fas fa-expand"></i> Ampliar QRCODE
                        </button>
                    </div>
                </div>
            </div>
        <?php endif; ?>

    <?php elseif ($p == 'perfil' && ($is_admin || $is_reseller)): ?>
        <h2><i class="fas fa-user-cog" style="color:var(--primary);"></i> Meu Perfil</h2>
        
        <div class="perfil-grid">
            <div class="perfil-card">
                <h3><i class="fas fa-info-circle" style="color:var(--primary);"></i> Minhas Informações</h3>
                <p><strong>Usuário:</strong> <?= htmlspecialchars($u) ?></p>
                <p><strong>Tipo:</strong> <?= $is_admin ? 'Administrador' : 'Revenda' ?></p>
                <?php if ($expiration): ?>
                    <p><strong>Vencimento:</strong> <?= date('d/m/Y', strtotime($expiration['expires'])) ?></p>
                    <p><strong>Dias restantes:</strong> <?= $expiration['days'] ?> dias</p>
                <?php endif; ?>
            </div>

            <?php if (!$is_admin): ?>
            <div class="perfil-card">
                <h3><i class="fas fa-user" style="color:var(--warning);"></i> Alterar Usuário</h3>
                <p style="color:#8b949e; font-size:14px;">Digite sua senha para confirmar a alteração</p>
                <form action="?action=changeUsername" method="POST">
                    <input type="text" name="new_user" placeholder="Novo usuário" required>
                    <input type="password" name="password" placeholder="Sua senha atual" required>
                    <button type="submit" class="btn btn-warning" style="width:100%; justify-content:center; padding:15px;">
                        <i class="fas fa-save"></i> Alterar Usuário
                    </button>
                </form>
            </div>
            <?php endif; ?>

            <div class="perfil-card">
                <h3><i class="fas fa-key" style="color:var(--warning);"></i> Alterar Senha</h3>
                <form action="?action=changePassword" method="POST">
                    <input type="password" name="current_pass" placeholder="Senha atual" required>
                    <input type="password" name="new_pass" placeholder="Nova senha" required>
                    <input type="password" name="confirm_pass" placeholder="Confirmar nova senha" required>
                    <button type="submit" class="btn btn-p" style="width:100%; justify-content:center; padding:15px;">
                        <i class="fas fa-save"></i> Alterar Senha
                    </button>
                </form>
            </div>
        </div>

    <?php elseif ($p == 'logo' && ($is_admin || $is_reseller)): ?>
        <h2>Minha Logo Personalizada</h2>
        <div style="background:var(--card); padding:40px; border-radius:15px; text-align:center; border:1px solid var(--border); max-width:600px; margin:0 auto;">
            <?php if ($logo): ?>
                <div style="background:#000; padding:20px; display:inline-block; border-radius:10px; margin-bottom:20px;">
                    <img src="<?= $logo ?>" style="max-width:300px; max-height:150px; width:auto;">
                </div>
                <p style="color:#8b949e; margin-bottom:20px;">Esta logo aparecerá em todos os seus banners.</p>
            <?php else: ?>
                <p style="color:#8b949e; margin-bottom:20px;">Você ainda não tem uma logo configurada.</p>
                <p style="color:#8b949e; font-size:14px; margin-bottom:20px;">Sua logo aparecerá em todos os banners que você gerar.</p>
            <?php endif; ?>
            <form action="?action=uploadLogo" method="POST" enctype="multipart/form-data" style="max-width:400px; margin:0 auto;">
                <input type="file" name="logo" accept="image/png,image/jpeg,image/webp" required>
                <button type="submit" class="btn btn-p" style="width:100%; justify-content:center; padding:15px;"><i class="fas fa-upload"></i> Atualizar Minha Logo</button>
            </form>
            <?php if ($logo): ?>
                <p style="color:#8b949e; font-size:12px; margin-top:15px;">Formatos suportados: PNG, JPG, JPEG, WEBP</p>
            <?php endif; ?>
        </div>

    <?php elseif ($p == 'register'): ?>
        <div style="max-width:400px; margin:50px auto; background:var(--card); padding:40px; border-radius:20px; text-align:center; border:1px solid var(--border);">
            <i class="fas fa-user-plus" style="font-size:50px; color:var(--success); margin-bottom:20px;"></i>
            <h2>Cadastro Grátis</h2>
            <p style="color:#8b949e; font-size:14px; margin-bottom:20px;">
                🎯 GANHE <strong style="color:var(--primary);">1 DIA DE TESTE GRÁTIS</strong>!<br>
                Experimente nosso Gerador de Banners e crie artes profissionais para filmes e séries com sua logo.
            </p>
            <form action="?action=register" method="POST">
                <input type="text" name="name" placeholder="Seu nome" required>
                <input type="text" name="user" placeholder="Escolha um usuário" required>
                <input type="password" name="pass" placeholder="Crie uma senha" required>
                <button type="submit" class="btn btn-success" style="width:100%; justify-content:center; padding:15px; font-size:16px;">
                    <i class="fas fa-rocket"></i> Começar Teste Grátis
                </button>
            </form>
            <div class="login-link">
                <a href="?page=login">← Já tem conta? Faça login</a>
            </div>
        </div>

    <?php elseif ($p == 'login'): ?>
        <div style="max-width:400px; margin:50px auto; background:var(--card); padding:40px; border-radius:20px; text-align:center; border:1px solid var(--border);">
            <i class="fas fa-lock" style="font-size:50px; color:var(--primary); margin-bottom:20px;"></i>
            <h2>Acesso ao Sistema</h2>
            
            <?php if (isset($_GET['expired'])): ?>
                <div style="background:rgba(255,77,77,0.2); border:1px solid var(--danger); border-radius:8px; padding:10px; margin-bottom:15px;">
                    <p style="color:var(--danger); margin:0;"><i class="fas fa-exclamation-triangle"></i> Sua conta expirou! Entre em contato com o administrador.</p>
                </div>
            <?php endif; ?>
            
            <?php if (isset($_GET['error']) && $_GET['error'] == 2): ?>
                <div style="background:rgba(255,77,77,0.2); border:1px solid var(--danger); border-radius:8px; padding:10px; margin-bottom:15px;">
                    <p style="color:var(--danger); margin:0;"><i class="fas fa-exclamation-triangle"></i> Usuário ou senha incorretos!</p>
                </div>
            <?php endif; ?>

            <form action="?action=login" method="POST">
                <input type="text" name="user" placeholder="Usuário" required>
                <input type="password" name="pass" placeholder="Senha" required>
                <button type="submit" class="btn btn-p" style="width:100%; justify-content:center; padding:15px; font-size:16px;">Entrar</button>
            </form>
            <div class="login-link">
                <a href="?page=register"><i class="fas fa-user-plus"></i> Não tem conta? Cadastre-se aqui e faça seu teste grátis!</a>
            </div>
        </div>
    <?php endif; ?>
</div>

<!-- MODAL GERAR BANNER -->
<div id="modalGerar" class="modal">
    <div class="modal-content">
        <h3 style="margin-top:0;"><i class="fas fa-magic" style="color:var(--primary);"></i> Configurar Banner</h3>
        <form id="formGerar">
            <label>Estilo</label>
            <select name="style"><option value="banner1">Padrão</option></select>
            <label>Formato</label>
            <select name="size">
                <option value="vertical">Vertical (Story - 1080x1350)</option>
                <option value="horizontal">Horizontal (Feed - 1280x720)</option>
                <option value="square">Quadrado (1080x1080)</option>
            </select>
            <label>Sinopse (opcional)</label>
            <textarea name="overview" id="overview" rows="5" placeholder="Deixe em branco para usar a sinopse original do TMDB"></textarea>
            <button type="submit" class="btn btn-p" style="width:100%; justify-content:center; padding:15px;"><i class="fas fa-magic"></i> GERAR AGORA</button>
            <button type="button" onclick="document.getElementById('modalGerar').style.display='none'" class="btn btn-outline" style="width:100%; justify-content:center; margin-top:10px;">Cancelar</button>
        </form>
    </div>
</div>

<!-- MODAL NOVA REVENDA -->
<div id="modalReseller" class="modal">
    <div class="modal-content">
        <h3 style="margin-top:0;"><i class="fas fa-store" style="color:var(--primary);"></i> Nova Revenda</h3>
        <form action="?action=addReseller" method="POST">
            <input type="text" name="name" placeholder="Nome da Revenda" required>
            <input type="text" name="user" placeholder="Usuário" required>
            <input type="password" name="pass" placeholder="Senha" required>
            <label>Data de Vencimento</label>
            <input type="date" name="expires" required>
            <button type="submit" class="btn btn-p" style="width:100%; justify-content:center;"><i class="fas fa-plus"></i> Criar Revenda</button>
            <button type="button" onclick="document.getElementById('modalReseller').style.display='none'" class="btn btn-outline" style="width:100%; justify-content:center; margin-top:10px;">Cancelar</button>
        </form>
    </div>
</div>

<!-- MODAL EDITAR REVENDA -->
<div id="modalEditReseller" class="modal">
    <div class="modal-content">
        <h3 style="margin-top:0;"><i class="fas fa-edit" style="color:var(--primary);"></i> Editar Revenda</h3>
        <form action="" method="POST" id="formEditReseller">
            <input type="text" name="name" id="edit_name" placeholder="Nome da Revenda" required>
            <input type="text" name="user" id="edit_user" placeholder="Usuário" required>
            <input type="password" name="pass" id="edit_pass" placeholder="Senha" required>
            <label>Data de Vencimento</label>
            <input type="date" name="expires" id="edit_expires" required>
            <button type="submit" class="btn btn-p" style="width:100%; justify-content:center;"><i class="fas fa-save"></i> Salvar Alterações</button>
            <button type="button" onclick="document.getElementById('modalEditReseller').style.display='none'" class="btn btn-outline" style="width:100%; justify-content:center; margin-top:10px;">Cancelar</button>
        </form>
    </div>
</div>

<!-- MODAL PLANO -->
<div id="modalPlan" class="modal">
    <div class="modal-content">
        <h3><i class="fas fa-crown" style="color:var(--warning);"></i> Novo Plano</h3>
        <form action="?action=savePlan" method="POST">
            <input type="text" name="id" placeholder="ID do plano (ex: monthly)" required>
            <input type="text" name="name" placeholder="Nome (ex: Mensal)" required>
            <input type="number" step="0.01" name="price" placeholder="Preço (ex: 49.90)" required>
            <input type="number" name="days" placeholder="Duração em dias (ex: 30)" required>
            <button type="submit" class="btn btn-p" style="width:100%;"><i class="fas fa-plus"></i> Criar Plano</button>
            <button type="button" onclick="document.getElementById('modalPlan').style.display='none'" class="btn btn-outline" style="width:100%; margin-top:10px;">Cancelar</button>
        </form>
    </div>
</div>

<!-- MODAL EDITAR PLANO -->
<div id="modalEditPlan" class="modal">
    <div class="modal-content">
        <h3><i class="fas fa-edit" style="color:var(--warning);"></i> Editar Plano</h3>
        <form action="?action=updatePlan" method="POST">
            <input type="hidden" name="plan_id" id="edit_plan_id">
            <input type="text" name="name" id="edit_plan_name" placeholder="Nome do plano" required>
            <input type="number" step="0.01" name="price" id="edit_plan_price" placeholder="Preço" required>
            <input type="number" name="days" id="edit_plan_days" placeholder="Dias" required>
            <button type="submit" class="btn btn-p" style="width:100%;"><i class="fas fa-save"></i> Salvar Alterações</button>
            <button type="button" onclick="document.getElementById('modalEditPlan').style.display='none'" class="btn btn-outline" style="width:100%; margin-top:10px;">Cancelar</button>
        </form>
    </div>
</div>

<!-- MODAL PIX POR PLANO -->
<div id="modalPlanPix" class="modal">
    <div class="modal-content">
        <h3><i class="fas fa-qrcode" style="color:var(--success);"></i> Configurar PIX para o Plano</h3>
        <p style="color:#8b949e; font-size:14px; margin-bottom:15px;">
            Este PIX será mostrado ao revendedor quando ele escolher este plano.
        </p>
        <form action="?action=savePlanPix" method="POST">
            <input type="hidden" name="plan_id" id="plan_pix_id">
            <input type="text" name="pix_key" placeholder="Chave PIX (email, CPF, telefone)" required>
            <input type="text" name="pix_name" placeholder="Nome do titular" required>
            <input type="text" name="pix_city" placeholder="Cidade (ex: SAO PAULO)" value="SAO PAULO" required>
            <button type="submit" class="btn btn-p" style="width:100%;"><i class="fas fa-save"></i> Salvar PIX</button>
            <button type="button" onclick="document.getElementById('modalPlanPix').style.display='none'" class="btn btn-outline" style="width:100%; margin-top:10px;">Cancelar</button>
        </form>
    </div>
</div>

<!-- LOADER -->
<div id="loader">
    <div class="spinner"></div>
    <p>Gerando seu banner...</p>
    <p style="color:#8b949e; font-size:14px;">Isso pode levar alguns segundos</p>
</div>

<script>
function toggleMenu() {
    document.getElementById('navLinks').classList.toggle('open');
}

function copiarLink() {
    const link = '<?= isset($game) ? htmlspecialchars($game['link']) : '' ?>';
    navigator.clipboard.writeText(link).then(() => {
        alert('✅ Link copiado com sucesso! Compartilhe com seus clientes!');
    }).catch(() => {
        const input = document.createElement('input');
        input.value = link;
        document.body.appendChild(input);
        input.select();
        document.execCommand('copy');
        document.body.removeChild(input);
        alert('✅ Link copiado com sucesso!');
    });
}

function copiarPix(chave) {
    navigator.clipboard.writeText(chave).then(() => {
        alert('✅ Chave PIX copiada com sucesso!');
    }).catch(() => {
        const input = document.createElement('input');
        input.value = chave;
        document.body.appendChild(input);
        input.select();
        document.execCommand('copy');
        document.body.removeChild(input);
        alert('✅ Chave PIX copiada com sucesso!');
    });
}

function editPlan(id, name, price, days) {
    document.getElementById('edit_plan_id').value = id;
    document.getElementById('edit_plan_name').value = name;
    document.getElementById('edit_plan_price').value = price;
    document.getElementById('edit_plan_days').value = days;
    document.getElementById('modalEditPlan').style.display = 'flex';
}

let cur = {};

function openModal(t, id, s) {
    cur = { t, id };
    document.getElementById('overview').value = s;
    document.getElementById('modalGerar').style.display = 'flex';
}

function editReseller(id, name, user, pass, expires) {
    document.getElementById('edit_name').value = name;
    document.getElementById('edit_user').value = user;
    document.getElementById('edit_pass').value = pass;
    document.getElementById('edit_expires').value = expires;
    document.getElementById('formEditReseller').action = `?action=updateReseller&id=${id}`;
    document.getElementById('modalEditReseller').style.display = 'flex';
}

document.getElementById('formGerar').onsubmit = async (e) => {
    e.preventDefault();
    document.getElementById('loader').style.display = 'flex';
    const fd = new FormData(e.target);
    const sz = fd.get('size');
    try {
        const res = await fetch(`?action=generate&type=${cur.t}&id=${cur.id}&style=${fd.get('style')}&size=${sz}&mode=${sz}`, {
            method: 'POST',
            body: fd
        });
        const j = await res.json();
        document.getElementById('loader').style.display = 'none';
        if (j.success) {
            window.location.href = '?page=galeria';
        } else {
            alert('Erro ao gerar o banner. Tente novamente.');
        }
    } catch (err) {
        document.getElementById('loader').style.display = 'none';
        alert('Erro na comunicação com o servidor.');
    }
};

window.onclick = (e) => { 
    if(e.target.className == 'modal') {
        e.target.style.display = 'none';
    }
};

document.querySelectorAll('.nav-links .btn-nav').forEach(link => {
    link.addEventListener('click', () => {
        if (window.innerWidth <= 768) {
            document.getElementById('navLinks').classList.remove('open');
        }
    });
});
</script>
</body>
</html>