<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
session_start();
require __DIR__ . '/conexao.php';
require_once __DIR__ . '/../includes/icones.php';

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

$id_usuario = $_SESSION['id_usuario'];
$periodo    = isset($_GET['periodo']) ? intval($_GET['periodo']) : 30;

try {
    $id_loja_sessao = $_SESSION['id_loja_atual'] ?? null;
    if ($id_loja_sessao) {
        $stmt = $pdo->prepare("
            SELECT u.*, l.id as loja_id, l.nome_loja, l.logo, l.status as loja_status
            FROM usuarios u
            INNER JOIN lojas l ON l.id = :id_loja AND l.usuario_id = u.id
            WHERE u.id = :id_usuario LIMIT 1
        ");
        $stmt->execute([':id_loja' => $id_loja_sessao, ':id_usuario' => $id_usuario]);
    } else {
        $stmt = $pdo->prepare("
            SELECT u.*, l.id as loja_id, l.nome_loja, l.logo, l.status as loja_status
            FROM usuarios u
            LEFT JOIN lojas l ON l.usuario_id = u.id AND l.status = 'ativa'
            WHERE u.id = :id_usuario
            ORDER BY l.data_criacao DESC LIMIT 1
        ");
        $stmt->execute([':id_usuario' => $id_usuario]);
    }
    $usuario = $stmt->fetch(PDO::FETCH_ASSOC);
    if (!$usuario)              { session_destroy(); header('Location: login.php'); exit; }
    if (!$usuario['loja_id'])   { header('Location: criar-loja.php'); exit; }

    $loja_id       = $usuario['loja_id'];
    $id_loja       = $usuario['loja_id'];
    $nome_loja     = $usuario['nome_loja'];
    $logo_loja     = $usuario['logo'] ?? '';
    $iniciais_loja = strtoupper(substr($nome_loja, 0, 2));
    $_SESSION['id_loja_atual'] = $loja_id;

    // ── STATS GERAIS ─────────────────────────────────────────
    // Receita BRUTA (todos pedidos válidos)
    $stmt = $pdo->prepare("SELECT COALESCE(SUM(valor_total),0) as receita_bruta FROM pedidos WHERE id_lojas=? AND status IN ('processing','shipped','delivered') AND data_pedido >= DATE_SUB(NOW(), INTERVAL ? DAY)");
    $stmt->execute([$id_loja, $periodo]);
    $receita_bruta = (float)$stmt->fetch()['receita_bruta'];

    // Comissões pagas a afiliados (apenas itens válidos: não esgotados + pedidos válidos)
    $stmt = $pdo->prepare("
        SELECT COALESCE(SUM(pi.valor_afiliado),0) AS comissoes_pagas
        FROM pedidos_itens pi
        INNER JOIN pedidos p ON p.id = pi.id_pedido
        WHERE p.id_lojas = ?
          AND p.data_pedido >= DATE_SUB(NOW(), INTERVAL ? DAY)
          AND p.status IN ('processing','shipped','delivered')
          AND pi.esgotado = 0
          AND pi.afiliado_id IS NOT NULL
          AND pi.valor_afiliado > 0
    ");
    $stmt->execute([$id_loja, $periodo]);
    $comissoes_pagas = (float)$stmt->fetch()['comissoes_pagas'];

    // Receita LÍQUIDA = bruta - comissões (o que entra de facto no bolso da loja)
    $receita_total = max(0, $receita_bruta - $comissoes_pagas);

    // Total pedidos (todos)
    $stmt = $pdo->prepare("SELECT COUNT(*) as total_pedidos FROM pedidos WHERE id_lojas=? AND data_pedido >= DATE_SUB(NOW(), INTERVAL ? DAY)");
    $stmt->execute([$id_loja, $periodo]);
    $total_pedidos = (int)$stmt->fetch()['total_pedidos'];

    // Pedidos VÁLIDOS (mesma base que receita_bruta) — para ticket médio correcto
    $stmt = $pdo->prepare("SELECT COUNT(*) AS total FROM pedidos WHERE id_lojas=? AND status IN ('processing','shipped','delivered') AND data_pedido >= DATE_SUB(NOW(), INTERVAL ? DAY)");
    $stmt->execute([$id_loja, $periodo]);
    $pedidos_validos = (int)$stmt->fetch()['total'];

    $stmt = $pdo->prepare("SELECT COUNT(*) as total_carrinho FROM carrinho c INNER JOIN produtos_servicos ps ON c.id_produto=ps.id WHERE ps.id_lojas=?");
    $stmt->execute([$id_loja]);
    $total_carrinho = $stmt->fetch()['total_carrinho'];

    $stmt = $pdo->prepare("SELECT COUNT(*) as total_favoritos FROM favoritos f INNER JOIN produtos_servicos ps ON f.id_produto=ps.id WHERE ps.id_lojas=?");
    $stmt->execute([$id_loja]);
    $total_favoritos = $stmt->fetch()['total_favoritos'];

    $stmt = $pdo->prepare("SELECT COUNT(DISTINCT id_usuario) as novos_clientes FROM pedidos WHERE id_lojas=? AND data_pedido >= DATE_SUB(NOW(), INTERVAL ? DAY) GROUP BY id_lojas");
    $stmt->execute([$id_loja, $periodo]);
    $row_nc = $stmt->fetch();
    $novos_clientes = $row_nc ? (int)$row_nc['novos_clientes'] : 0;

    // Ticket médio LÍQUIDO sobre pedidos VÁLIDOS
    $ticket_medio = $pedidos_validos > 0 ? ($receita_total / $pedidos_validos) : 0;

    $stmt = $pdo->prepare("SELECT DATE(data_pedido) as dia, COUNT(*) as total FROM pedidos WHERE id_lojas=? AND data_pedido >= DATE_SUB(NOW(), INTERVAL 7 DAY) GROUP BY DATE(data_pedido) ORDER BY dia ASC");
    $stmt->execute([$id_loja]);
    $vendas_por_dia = $stmt->fetchAll(PDO::FETCH_ASSOC);

    $stmt = $pdo->prepare("SELECT ps.nome, ps.categoria, SUM(pi.quantidade) as total_vendido, SUM(pi.subtotal) as receita_produto FROM pedidos_itens pi INNER JOIN pedidos p ON pi.id_pedido=p.id INNER JOIN produtos_servicos ps ON pi.id_produtos_servicos=ps.id WHERE p.id_lojas=? AND p.data_pedido >= DATE_SUB(NOW(), INTERVAL ? DAY) AND p.status IN ('processing','shipped','delivered') GROUP BY ps.id ORDER BY total_vendido DESC LIMIT 10");
    $stmt->execute([$id_loja, $periodo]);
    $produtos_mais_vendidos = $stmt->fetchAll(PDO::FETCH_ASSOC);

    $stmt = $pdo->prepare("SELECT DATE_FORMAT(p.data_pedido,'%Y-%m') as mes, COALESCE(SUM(p.valor_total),0) - COALESCE((SELECT SUM(pi.valor_afiliado) FROM pedidos_itens pi WHERE pi.id_pedido=p.id AND pi.esgotado=0 AND pi.afiliado_id IS NOT NULL),0) as receita FROM pedidos p WHERE p.id_lojas=? AND p.status IN ('processing','shipped','delivered') AND p.data_pedido >= DATE_SUB(NOW(), INTERVAL 12 MONTH) GROUP BY DATE_FORMAT(p.data_pedido,'%Y-%m') ORDER BY mes ASC");
    $stmt->execute([$id_loja]);
    $receita_mensal = $stmt->fetchAll(PDO::FETCH_ASSOC);

    $stmt = $pdo->prepare("SELECT status, COUNT(*) as total FROM pedidos WHERE id_lojas=? AND data_pedido >= DATE_SUB(NOW(), INTERVAL ? DAY) GROUP BY status");
    $stmt->execute([$id_loja, $periodo]);
    $status_pedidos = $stmt->fetchAll(PDO::FETCH_ASSOC);

    $stmt = $pdo->prepare("SELECT u.nome_completo, u.email_pessoal, COUNT(p.id) as total_pedidos, SUM(p.valor_total) as total_gasto, MAX(p.data_pedido) as ultima_compra FROM pedidos p INNER JOIN usuarios u ON p.id_usuario=u.id WHERE p.id_lojas=? AND p.data_pedido >= DATE_SUB(NOW(), INTERVAL ? DAY) GROUP BY u.id ORDER BY total_gasto DESC LIMIT 10");
    $stmt->execute([$id_loja, $periodo]);
    $clientes_ativos = $stmt->fetchAll(PDO::FETCH_ASSOC);

    // ── AFILIADO: registo da loja ─────────────────────────────
    $stmt = $pdo->prepare("SELECT id FROM afiliados WHERE loja_id=?");
    $stmt->execute([$id_loja]);
    $afiliado_row = $stmt->fetch(PDO::FETCH_ASSOC);
    $afiliado_id  = $afiliado_row ? $afiliado_row['id'] : null;

    // ── STATS AFILIADOS/DROP (como promotor) ─────────────────
    // Ganhos totais por tipo
    $stmt = $pdo->prepare("
        SELECT al.tipo,
               COUNT(DISTINCT al.id)          AS links_ativos,
               COALESCE(SUM(al.cliques),0)    AS total_cliques,
               COALESCE(SUM(al.conversoes),0) AS total_conversoes
        FROM afiliado_links al
        WHERE al.afiliado_id=? AND al.ativo=1
        GROUP BY al.tipo
    ");
    $stmt->execute([$afiliado_id ?: 0]);
    $links_stats_raw = $stmt->fetchAll(PDO::FETCH_ASSOC);
    $links_stats = ['afiliado' => ['links_ativos'=>0,'total_cliques'=>0,'total_conversoes'=>0],
                    'drop'     => ['links_ativos'=>0,'total_cliques'=>0,'total_conversoes'=>0]];
    foreach ($links_stats_raw as $r) { $links_stats[$r['tipo']] = $r; }

    // Ganhos por tipo (vendas)
    $stmt = $pdo->prepare("
        SELECT al.tipo,
               COUNT(av.id)                      AS total_vendas,
               COALESCE(SUM(av.comissao_valor),0) AS comissao_total,
               COALESCE(SUM(
                   CASE WHEN al.tipo='drop'
                        THEN al.preco_adicional - (al.preco_adicional * al.desconto_afiliado / 100)
                        ELSE 0 END
               ),0) AS margem_total
        FROM afiliado_vendas av
        INNER JOIN afiliado_links al ON al.id = av.link_id
        WHERE av.afiliado_id=? AND av.status != 'cancelada'
          AND av.data_venda >= DATE_SUB(NOW(), INTERVAL ? DAY)
        GROUP BY al.tipo
    ");
    $stmt->execute([$afiliado_id ?: 0, $periodo]);
    $ganhos_raw = $stmt->fetchAll(PDO::FETCH_ASSOC);
    $ganhos = ['afiliado' => ['total_vendas'=>0,'comissao_total'=>0,'margem_total'=>0,'lucro_total'=>0],
               'drop'     => ['total_vendas'=>0,'comissao_total'=>0,'margem_total'=>0,'lucro_total'=>0]];
    foreach ($ganhos_raw as $r) {
        $r['lucro_total'] = $r['comissao_total'] + $r['margem_total'];
        $ganhos[$r['tipo']] = $r;
    }

    // Evolução ganhos afiliado vs drop (últimos 6 meses)
    $stmt = $pdo->prepare("
        SELECT DATE_FORMAT(av.data_venda,'%Y-%m') AS mes,
               al.tipo,
               COALESCE(SUM(av.comissao_valor),0) AS comissao,
               COALESCE(SUM(
                   CASE WHEN al.tipo='drop'
                        THEN al.preco_adicional - (al.preco_adicional * al.desconto_afiliado / 100)
                        ELSE 0 END
               ),0) AS margem
        FROM afiliado_vendas av
        INNER JOIN afiliado_links al ON al.id = av.link_id
        WHERE av.afiliado_id=? AND av.status != 'cancelada'
          AND av.data_venda >= DATE_SUB(NOW(), INTERVAL 6 MONTH)
        GROUP BY DATE_FORMAT(av.data_venda,'%Y-%m'), al.tipo
        ORDER BY mes ASC
    ");
    $stmt->execute([$afiliado_id ?: 0]);
    $evolucao_raw = $stmt->fetchAll(PDO::FETCH_ASSOC);

    // Organizar meses únicos e dados por tipo
    $meses_set = [];
    foreach ($evolucao_raw as $r) { $meses_set[$r['mes']] = true; }
    ksort($meses_set);
    $evolucao_meses  = array_map(fn($m) => date('M/Y', strtotime($m.'-01')), array_keys($meses_set));
    $evolucao_afil   = array_fill(0, count($meses_set), 0);
    $evolucao_drop   = array_fill(0, count($meses_set), 0);
    $meses_idx       = array_flip(array_keys($meses_set));
    foreach ($evolucao_raw as $r) {
        $idx = $meses_idx[$r['mes']];
        $lucro = $r['comissao'] + $r['margem'];
        if ($r['tipo'] === 'afiliado') $evolucao_afil[$idx] = round($lucro);
        else                           $evolucao_drop[$idx] = round($lucro);
    }

    // Top produtos por lucro (como promotor)
    $stmt = $pdo->prepare("
        SELECT ps.nome, ps.imagem, l.nome_loja,
               al.tipo,
               COUNT(av.id)                        AS vendas,
               COALESCE(SUM(av.comissao_valor),0)  AS comissao_total,
               COALESCE(SUM(
                   CASE WHEN al.tipo='drop'
                        THEN al.preco_adicional - (al.preco_adicional * al.desconto_afiliado / 100)
                        ELSE 0 END
               ),0) AS margem_total
        FROM afiliado_vendas av
        INNER JOIN afiliado_links al ON al.id = av.link_id
        INNER JOIN produtos_servicos ps ON ps.id = av.produto_id
        INNER JOIN lojas l ON l.id = ps.id_lojas
        WHERE av.afiliado_id=? AND av.status != 'cancelada'
          AND av.data_venda >= DATE_SUB(NOW(), INTERVAL ? DAY)
        GROUP BY ps.id, al.tipo
        ORDER BY (COALESCE(SUM(av.comissao_valor),0) + COALESCE(SUM(CASE WHEN al.tipo='drop' THEN al.preco_adicional - (al.preco_adicional * al.desconto_afiliado / 100) ELSE 0 END),0)) DESC
        LIMIT 10
    ");
    $stmt->execute([$afiliado_id ?: 0, $periodo]);
    $top_produtos_afil = $stmt->fetchAll(PDO::FETCH_ASSOC);

    // Top afiliados que promovem os MEUS produtos (como dono)
    $stmt = $pdo->prepare("
        SELECT u.nome_completo, l2.nome_loja AS loja_afiliado,
               al.tipo,
               COALESCE(SUM(al.cliques),0)    AS cliques,
               COALESCE(SUM(al.conversoes),0) AS conversoes,
               COUNT(DISTINCT al.id)           AS links,
               COALESCE(SUM(av.comissao_valor),0) AS comissoes_geradas
        FROM afiliado_links al
        INNER JOIN afiliados af ON af.id = al.afiliado_id
        INNER JOIN lojas l2 ON l2.id = af.loja_id
        INNER JOIN usuarios u ON u.id = l2.usuario_id
        INNER JOIN produtos_servicos ps ON ps.id = al.produto_id
        LEFT JOIN afiliado_vendas av ON av.link_id = al.id AND av.status != 'cancelada'
        WHERE ps.id_lojas=? AND al.ativo=1
          AND al.afiliado_id != ?
        GROUP BY af.id, al.tipo
        ORDER BY comissoes_geradas DESC
        LIMIT 10
    ");
    $stmt->execute([$id_loja, $afiliado_id ?: 0]);
    $top_afiliados = $stmt->fetchAll(PDO::FETCH_ASSOC);

    // Saldo do afiliado
    $stmt = $pdo->prepare("SELECT saldo_disponivel, saldo_pendente, total_ganho FROM afiliados WHERE id=?");
    $stmt->execute([$afiliado_id ?: 0]);
    $saldo_afil = $stmt->fetch(PDO::FETCH_ASSOC) ?: ['saldo_disponivel'=>0,'saldo_pendente'=>0,'total_ganho'=>0];

} catch (Exception $e) {
    error_log("Erro ao buscar estatísticas: " . $e->getMessage());
    $receita_total=$total_pedidos=$total_carrinho=$total_favoritos=$novos_clientes=$ticket_medio=0;
    $vendas_por_dia=$produtos_mais_vendidos=$receita_mensal=$status_pedidos=$clientes_ativos=[];
    $links_stats=['afiliado'=>['links_ativos'=>0,'total_cliques'=>0,'total_conversoes'=>0],'drop'=>['links_ativos'=>0,'total_cliques'=>0,'total_conversoes'=>0]];
    $ganhos=['afiliado'=>['lucro_total'=>0,'total_vendas'=>0,'comissao_total'=>0],'drop'=>['lucro_total'=>0,'total_vendas'=>0,'comissao_total'=>0,'margem_total'=>0]];
    $evolucao_meses=$evolucao_afil=$evolucao_drop=[];
    $top_produtos_afil=$top_afiliados=[];
    $saldo_afil=['saldo_disponivel'=>0,'saldo_pendente'=>0,'total_ganho'=>0];
}

// Formatar para JS
$vendas_labels=[]; $vendas_data=[];
foreach ($vendas_por_dia as $v) { $vendas_labels[]=date('d/m',strtotime($v['dia'])); $vendas_data[]=$v['total']; }
$receita_labels=[]; $receita_data=[];
foreach ($receita_mensal as $r) { $receita_labels[]=date('M/Y',strtotime($r['mes'].'-01')); $receita_data[]=$r['receita']; }

// Mensagens não lidas
try {
    $stmt = $pdo->prepare("SELECT COUNT(*) FROM mensagens WHERE loja_id=? AND lida=0");
    $stmt->execute([$id_loja]);
    $total_nao_lidas = (int)$stmt->fetchColumn();
} catch (PDOException $e) { $total_nao_lidas = 0; }
?>
<!DOCTYPE html>
<html lang="pt-AO">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, viewport-fit=cover">
<title>Estatísticas | Staaqui — <?= htmlspecialchars($nome_loja) ?></title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.9.1/chart.min.js"></script>
<style>
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;display:flex;min-height:100vh;background:#f5f7fa;color:#333;}

/* ── SIDEBAR ──────────────────────────────────────────────── */
.sidebar{width:260px;background:linear-gradient(180deg,#1e3a8a 0%,#1e40af 100%);color:white;padding:20px;display:flex;flex-direction:column;position:fixed;height:100vh;box-shadow:4px 0 10px rgba(0,0,0,.1);z-index:1000;transition:transform .3s;}
.logo{font-size:28px;font-weight:bold;margin-bottom:40px;text-align:center;letter-spacing:3px;padding:10px;background:rgba(255,255,255,.1);border-radius:8px;}
.menu{list-style:none;flex:1;}.menu li{margin-bottom:8px;}
.menu a{color:rgba(255,255,255,.8);text-decoration:none;display:block;padding:12px 16px;border-radius:8px;transition:all .3s;font-size:15px;}
.menu a:hover,.menu a.active{background:rgba(255,255,255,.2);color:white;transform:translateX(5px);}.menu a.active{font-weight:600;}
.logout{color:rgba(255,255,255,.8);text-decoration:none;padding:12px 16px;border-radius:8px;border:2px solid rgba(255,255,255,.3);text-align:center;transition:all .3s;margin-top:20px;display:block;}
.logout:hover{background:rgba(255,255,255,.15);}
.menu-toggle{display:none;position:fixed;top:20px;left:20px;z-index:1001;background:#1e3a8a;color:white;border:none;padding:12px 16px;border-radius:8px;cursor:pointer;font-size:20px;}
.overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:999;}.overlay.active{display:block;}
.content{margin-left:260px;flex:1;width:calc(100% - 260px);}

/* ── TOPBAR ───────────────────────────────────────────────── */
.topbar{background:white;padding:16px 40px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 10px rgba(0,0,0,.05);position:sticky;top:0;z-index:100;}
.topbar h1{font-size:22px;color:#1e3a8a;font-weight:600;}
.user-info{display:flex;align-items:center;gap:10px;}
.avatar{width:40px;height:40px;border-radius:50%;border:3px solid #1e3a8a;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:bold;color:white;overflow:hidden;}
.avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;}

/* ── PAGE ─────────────────────────────────────────────────── */
.page-content{padding:28px 40px;}
.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:12px;}
.page-header h2{color:#1e3a8a;font-size:24px;font-weight:700;}
.date-filter select{padding:9px 14px;border:2px solid #e5e7eb;border-radius:8px;font-size:14px;cursor:pointer;background:white;}
.date-filter select:focus{outline:none;border-color:#1e3a8a;}

/* ── ABAS PRINCIPAIS ──────────────────────────────────────── */
.main-tabs{display:flex;gap:4px;background:white;padding:6px;border-radius:12px;box-shadow:0 2px 10px rgba(0,0,0,.06);margin-bottom:24px;width:fit-content;}
.main-tab{padding:10px 24px;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:700;color:#666;background:transparent;transition:all .3s;white-space:nowrap;}
.main-tab.active{background:#1e3a8a;color:white;box-shadow:0 2px 8px rgba(30,58,138,.3);}
.main-tab:hover:not(.active){background:#f3f4f6;}
.tab-section{display:none;}.tab-section.active{display:block;}

/* ── STATS GRID ───────────────────────────────────────────── */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-bottom:26px;}
.stat-card{background:white;padding:22px;border-radius:14px;box-shadow:0 2px 10px rgba(0,0,0,.07);position:relative;overflow:hidden;transition:all .3s;}
.stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.12);}
.stat-card::before{content:'';position:absolute;top:0;left:0;width:5px;height:100%;}
.stat-card.azul::before{background:linear-gradient(#1e3a8a,#3b82f6);}
.stat-card.verde::before{background:linear-gradient(#059669,#10b981);}
.stat-card.roxo::before{background:linear-gradient(#7c3aed,#a78bfa);}
.stat-card.laranja::before{background:linear-gradient(#f59e0b,#fbbf24);}
.stat-card.teal::before{background:linear-gradient(#0d9488,#14b8a6);}
.stat-card.rosa::before{background:linear-gradient(#db2777,#f472b6);}
.stat-icon{font-size:26px;margin-bottom:8px;}
.stat-label{font-size:11px;color:#666;text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px;font-weight:600;}
.stat-value{font-size:26px;font-weight:800;color:#1e3a8a;}
.stat-sub{font-size:11px;color:#999;margin-top:3px;}

/* ── CHARTS ───────────────────────────────────────────────── */
.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:20px;margin-bottom:24px;}
.chart-card{background:white;padding:22px;border-radius:14px;box-shadow:0 2px 10px rgba(0,0,0,.07);}
.chart-card h3{color:#1e3a8a;font-size:16px;font-weight:700;margin-bottom:18px;display:flex;align-items:center;gap:8px;}
.chart-container{position:relative;height:280px;}

/* ── TABELAS ──────────────────────────────────────────────── */
.table-card{background:white;padding:22px;border-radius:14px;box-shadow:0 2px 10px rgba(0,0,0,.07);margin-bottom:22px;overflow-x:auto;}
.table-card h3{color:#1e3a8a;font-size:16px;font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:8px;}
.data-table{width:100%;border-collapse:collapse;min-width:580px;}
.data-table thead{background:#f9fafb;}
.data-table th{text-align:left;padding:11px 12px;font-weight:700;color:#555;font-size:13px;border-bottom:2px solid #e5e7eb;white-space:nowrap;}
.data-table td{padding:11px 12px;border-bottom:1px solid #f1f5f9;font-size:13px;}
.data-table tr:hover td{background:#fafafa;}
.td-nome{font-weight:700;color:#1e3a8a;}
.badge-tipo{display:inline-flex;align-items:center;gap:3px;padding:3px 9px;border-radius:8px;font-size:11px;font-weight:800;}
.badge-tipo.afiliado{background:#ede9fe;color:#6d28d9;}
.badge-tipo.drop{background:#d1fae5;color:#065f46;}

/* ── AFIL HIGHLIGHT ───────────────────────────────────────── */
.afil-intro{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px;}
.afil-side{border-radius:14px;padding:22px;}
.afil-side.afiliado{background:linear-gradient(135deg,#ede9fe,#ddd6fe);border:2px solid #a78bfa;}
.afil-side.drop{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border:2px solid #6ee7b7;}
.afil-side-titulo{font-size:16px;font-weight:800;margin-bottom:14px;}
.afil-side.afiliado .afil-side-titulo{color:#5b21b6;}
.afil-side.drop .afil-side-titulo{color:#065f46;}
.afil-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid rgba(0,0,0,.06);font-size:13px;}
.afil-row:last-child{border-bottom:none;}
.afil-row-label{color:#444;font-weight:500;}
.afil-row-val{font-weight:800;color:#1e3a8a;font-size:15px;}
.afil-row-val.destaque{font-size:18px;color:#059669;}

/* ── SALDO BANNER ─────────────────────────────────────────── */
.saldo-banner{background:linear-gradient(135deg,#1e3a8a,#7c3aed);color:white;border-radius:14px;padding:20px 28px;margin-bottom:24px;display:flex;gap:24px;flex-wrap:wrap;align-items:center;}
.saldo-item{text-align:center;}
.saldo-item .sl{font-size:11px;opacity:.8;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;}
.saldo-item .sv{font-size:22px;font-weight:900;}
.saldo-item .sv.disp{color:#6ee7b7;}
.saldo-item .sv.pend{color:#fde68a;}
.saldo-sep{width:1px;background:rgba(255,255,255,.25);align-self:stretch;}
.saldo-cta{margin-left:auto;}
.btn-ir-afil{padding:10px 22px;background:white;color:#1e3a8a;border:none;border-radius:9px;font-size:14px;font-weight:800;cursor:pointer;text-decoration:none;display:inline-block;}
.btn-ir-afil:hover{background:#dbeafe;}

/* ── UTILITÁRIOS ──────────────────────────────────────────── */
.empty-state{text-align:center;padding:40px;color:#94a3b8;}
.empty-icon{font-size:44px;margin-bottom:10px;}
.empty-state p{font-size:13px;}
.conv-bar{background:#e5e7eb;border-radius:4px;height:6px;margin-top:4px;}
.conv-bar-fill{height:6px;border-radius:4px;background:linear-gradient(90deg,#1e3a8a,#7c3aed);}

@media(max-width:1100px){.charts-grid{grid-template-columns:1fr;}.afil-intro{grid-template-columns:1fr;}}
@media(max-width:768px){
    .menu-toggle{display:block;}.sidebar{transform:translateX(-100%);}.sidebar.active{transform:translateX(0);}
    .content{margin-left:0;width:100%;}.topbar{padding:12px 16px 12px 70px;}
    .page-content{padding:14px;}.stats-grid{grid-template-columns:1fr 1fr;gap:12px;}
    .stat-value{font-size:20px;}.main-tabs{width:100%;}.main-tab{flex:1;font-size:12px;padding:9px 8px;}
    .saldo-banner{flex-direction:column;gap:12px;}.saldo-cta{margin-left:0;}
}
.ic{display:inline-block;vertical-align:-3px;stroke:currentColor;flex-shrink:0}
</style>
<?php $sidebar_active = "estatisticas"; $topbar_titulo = "Estatísticas"; $topbar_subtitulo = "Veja o desempenho da sua loja"; include __DIR__ . "/../includes/ui/layout-css.php"; ?>
</head>
<body>
<?php include __DIR__ . "/../includes/ui/sidebar.php"; ?>

<!-- ═══ CONTEÚDO ══════════════════════════════════════════════ -->
<main class="content">
    <?php include __DIR__ . "/../includes/ui/topbar.php"; ?>

    <div class="page-content">

        <div class="page-header">
            <h2>Dashboard de Desempenho</h2>
            <div class="date-filter" style="display:flex;align-items:center;gap:8px;">
                <label style="font-size:13px;color:#666;font-weight:600;"><?= icone('calendar',14) ?> Período:</label>
                <select id="periodFilter" onchange="window.location.href='?periodo='+this.value">
                    <option value="7"   <?= $periodo==7   ?'selected':'' ?>>Últimos 7 dias</option>
                    <option value="30"  <?= $periodo==30  ?'selected':'' ?>>Últimos 30 dias</option>
                    <option value="90"  <?= $periodo==90  ?'selected':'' ?>>Últimos 90 dias</option>
                    <option value="365" <?= $periodo==365 ?'selected':'' ?>>Último ano</option>
                </select>
            </div>
        </div>

        <!-- ═══ ABAS ══════════════════════════════════════════ -->
        <div class="main-tabs">
            <button class="main-tab active" onclick="mudarAba('geral',this)"><?= icone('chart-bar',15) ?> Geral</button>
            <button class="main-tab"        onclick="mudarAba('afiliados',this)"><?= icone('handshake',15) ?> Afiliados &amp; Drop</button>
        </div>

        <!-- ══════════════════════════════════════════════════
             ABA GERAL
        ══════════════════════════════════════════════════ -->
        <div class="tab-section active" id="tab-geral">

            <div class="stats-grid">
                <div class="stat-card azul"><div class="stat-icon"><?= icone('circle-dollar-sign',26) ?></div><div class="stat-label">Receita Total</div><div class="stat-value"><?= number_format($receita_total,0,',','.') ?> Kz</div></div>
                <div class="stat-card verde"><div class="stat-icon"><?= icone('package',26) ?></div><div class="stat-label">Pedidos Realizados</div><div class="stat-value"><?= $total_pedidos ?></div></div>
                <div class="stat-card teal"><div class="stat-icon"><?= icone('shopping-cart',26) ?></div><div class="stat-label">Produtos no Carrinho</div><div class="stat-value"><?= $total_carrinho ?></div></div>
                <div class="stat-card rosa"><div class="stat-icon"><?= icone('heart',26) ?></div><div class="stat-label">Nos Favoritos</div><div class="stat-value"><?= $total_favoritos ?></div></div>
                <div class="stat-card roxo"><div class="stat-icon"><?= icone('users',26) ?></div><div class="stat-label">Novos Clientes</div><div class="stat-value"><?= $novos_clientes ?></div></div>
                <div class="stat-card laranja"><div class="stat-icon"><?= icone('chart-bar',26) ?></div><div class="stat-label">Ticket Médio</div><div class="stat-value"><?= number_format($ticket_medio,0,',','.') ?> Kz</div></div>
            </div>

            <div class="charts-grid">
                <div class="chart-card"><h3><?= icone('trending-up',18) ?> Vendas por Dia (7 dias)</h3><div class="chart-container"><canvas id="salesChart"></canvas></div></div>
                <div class="chart-card"><h3><?= icone('chart-pie',18) ?> Top 5 Produtos Mais Vendidos</h3><div class="chart-container"><canvas id="productsChart"></canvas></div></div>
            </div>
            <div class="charts-grid">
                <div class="chart-card"><h3><?= icone('banknote',18) ?> Receita Mensal (12 meses)</h3><div class="chart-container"><canvas id="revenueChart"></canvas></div></div>
                <div class="chart-card"><h3><?= icone('package',18) ?> Status dos Pedidos</h3><div class="chart-container"><canvas id="ordersStatusChart"></canvas></div></div>
            </div>

            <?php if (count($produtos_mais_vendidos) > 0): ?>
            <div class="table-card">
                <h3><?= icone('trophy',18) ?> Top 10 Produtos Mais Vendidos</h3>
                <table class="data-table">
                    <thead><tr><th>#</th><th>Produto</th><th>Categoria</th><th>Vendas</th><th>Receita</th></tr></thead>
                    <tbody>
                        <?php foreach ($produtos_mais_vendidos as $i => $p): ?>
                        <tr>
                            <td><strong><?= $i+1 ?></strong></td>
                            <td class="td-nome"><?= htmlspecialchars($p['nome']) ?></td>
                            <td><?= htmlspecialchars($p['categoria'] ?? '—') ?></td>
                            <td><strong><?= $p['total_vendido'] ?></strong> un.</td>
                            <td><strong><?= number_format($p['receita_produto'],0,',','.') ?> Kz</strong></td>
                        </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
            <?php endif; ?>

            <?php if (count($clientes_ativos) > 0): ?>
            <div class="table-card">
                <h3><?= icone('users',18) ?> Clientes Mais Activos</h3>
                <table class="data-table">
                    <thead><tr><th>#</th><th>Cliente</th><th>Email</th><th>Pedidos</th><th>Total Gasto</th><th>Última Compra</th></tr></thead>
                    <tbody>
                        <?php foreach ($clientes_ativos as $i => $c): ?>
                        <tr>
                            <td><strong><?= $i+1 ?></strong></td>
                            <td class="td-nome"><?= htmlspecialchars($c['nome_completo']) ?></td>
                            <td><?= htmlspecialchars($c['email_pessoal']) ?></td>
                            <td><strong><?= $c['total_pedidos'] ?></strong></td>
                            <td><strong><?= number_format($c['total_gasto'],0,',','.') ?> Kz</strong></td>
                            <td><?= date('d/m/Y',strtotime($c['ultima_compra'])) ?></td>
                        </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
            <?php endif; ?>

        </div><!-- /tab-geral -->

        <!-- ══════════════════════════════════════════════════
             ABA AFILIADOS & DROP
        ══════════════════════════════════════════════════ -->
        <div class="tab-section" id="tab-afiliados">

            <!-- Saldo banner -->
            <div class="saldo-banner">
                <div class="saldo-item">
                    <div class="sl">Saldo Disponível</div>
                    <div class="sv disp"><?= number_format($saldo_afil['saldo_disponivel'],0,',','.') ?> Kz</div>
                </div>
                <div class="saldo-sep"></div>
                <div class="saldo-item">
                    <div class="sl">Saldo Pendente</div>
                    <div class="sv pend"><?= number_format($saldo_afil['saldo_pendente'],0,',','.') ?> Kz</div>
                </div>
                <div class="saldo-sep"></div>
                <div class="saldo-item">
                    <div class="sl">Total Ganho (histórico)</div>
                    <div class="sv"><?= number_format($saldo_afil['total_ganho'],0,',','.') ?> Kz</div>
                </div>
                <div class="saldo-cta">
                    <a href="../pages/afiliado.php" class="btn-ir-afil"><?= icone('handshake',15) ?> Gerir Afiliados <?= icone('arrow-right',15) ?></a>
                </div>
            </div>

            <!-- Cards resumo por tipo -->
            <div class="stats-grid" style="grid-template-columns:repeat(auto-fit,minmax(200px,1fr));">
                <!-- Afiliado -->
                <div class="stat-card roxo">
                    <div class="stat-icon"><?= icone('handshake',26) ?></div>
                    <div class="stat-label">Links Afiliado</div>
                    <div class="stat-value"><?= $links_stats['afiliado']['links_ativos'] ?></div>
                    <div class="stat-sub"><?= $links_stats['afiliado']['total_cliques'] ?> cliques · <?= $links_stats['afiliado']['total_conversoes'] ?> conv.</div>
                </div>
                <div class="stat-card roxo">
                    <div class="stat-icon"><?= icone('heart',26) ?></div>
                    <div class="stat-label">Lucro Afiliado (período)</div>
                    <div class="stat-value"><?= number_format($ganhos['afiliado']['lucro_total'],0,',','.') ?> Kz</div>
                    <div class="stat-sub"><?= $ganhos['afiliado']['total_vendas'] ?> vendas geradas</div>
                </div>
                <!-- Drop -->
                <div class="stat-card teal">
                    <div class="stat-icon"><?= icone('package',26) ?></div>
                    <div class="stat-label">Links Dropshipping</div>
                    <div class="stat-value"><?= $links_stats['drop']['links_ativos'] ?></div>
                    <div class="stat-sub"><?= $links_stats['drop']['total_cliques'] ?> cliques · <?= $links_stats['drop']['total_conversoes'] ?> conv.</div>
                </div>
                <div class="stat-card teal">
                    <div class="stat-icon"><?= icone('heart',26) ?></div>
                    <div class="stat-label">Lucro Drop (período)</div>
                    <div class="stat-value"><?= number_format($ganhos['drop']['lucro_total'],0,',','.') ?> Kz</div>
                    <div class="stat-sub">comissão + margem · <?= $ganhos['drop']['total_vendas'] ?> vendas</div>
                </div>
            </div>

            <!-- Detalhe lado a lado -->
            <div class="afil-intro">
                <div class="afil-side afiliado">
                    <div class="afil-side-titulo"><?= icone('handshake',15) ?> Modo Afiliado</div>
                    <div class="afil-row"><span class="afil-row-label">Links activos</span><span class="afil-row-val"><?= $links_stats['afiliado']['links_ativos'] ?></span></div>
                    <div class="afil-row"><span class="afil-row-label">Total cliques</span><span class="afil-row-val"><?= $links_stats['afiliado']['total_cliques'] ?></span></div>
                    <div class="afil-row"><span class="afil-row-label">Conversões</span><span class="afil-row-val"><?= $links_stats['afiliado']['total_conversoes'] ?></span></div>
                    <div class="afil-row">
                        <span class="afil-row-label">Taxa de conv.</span>
                        <span class="afil-row-val">
                            <?php $tc_a = $links_stats['afiliado']['total_cliques'] > 0
                                ? round($links_stats['afiliado']['total_conversoes'] / $links_stats['afiliado']['total_cliques'] * 100, 1) : 0; ?>
                            <?= $tc_a ?>%
                        </span>
                    </div>
                    <div class="afil-row"><span class="afil-row-label">Vendas geradas</span><span class="afil-row-val"><?= $ganhos['afiliado']['total_vendas'] ?></span></div>
                    <div class="afil-row"><span class="afil-row-label">Comissões ganhas</span><span class="afil-row-val destaque"><?= number_format($ganhos['afiliado']['comissao_total'],0,',','.') ?> Kz</span></div>
                </div>
                <div class="afil-side drop">
                    <div class="afil-side-titulo"><?= icone('package',15) ?> Modo Dropshipping</div>
                    <div class="afil-row"><span class="afil-row-label">Links activos</span><span class="afil-row-val"><?= $links_stats['drop']['links_ativos'] ?></span></div>
                    <div class="afil-row"><span class="afil-row-label">Total cliques</span><span class="afil-row-val"><?= $links_stats['drop']['total_cliques'] ?></span></div>
                    <div class="afil-row"><span class="afil-row-label">Conversões</span><span class="afil-row-val"><?= $links_stats['drop']['total_conversoes'] ?></span></div>
                    <div class="afil-row">
                        <span class="afil-row-label">Taxa de conv.</span>
                        <span class="afil-row-val">
                            <?php $tc_d = $links_stats['drop']['total_cliques'] > 0
                                ? round($links_stats['drop']['total_conversoes'] / $links_stats['drop']['total_cliques'] * 100, 1) : 0; ?>
                            <?= $tc_d ?>%
                        </span>
                    </div>
                    <div class="afil-row"><span class="afil-row-label">Vendas geradas</span><span class="afil-row-val"><?= $ganhos['drop']['total_vendas'] ?></span></div>
                    <div class="afil-row"><span class="afil-row-label">Comissão base</span><span class="afil-row-val"><?= number_format($ganhos['drop']['comissao_total'],0,',','.') ?> Kz</span></div>
                    <div class="afil-row"><span class="afil-row-label">Margem líquida</span><span class="afil-row-val"><?= number_format($ganhos['drop']['margem_total'],0,',','.') ?> Kz</span></div>
                    <div class="afil-row"><span class="afil-row-label">Lucro total drop</span><span class="afil-row-val destaque"><?= number_format($ganhos['drop']['lucro_total'],0,',','.') ?> Kz</span></div>
                </div>
            </div>

            <!-- Gráfico evolução afiliado vs drop -->
            <div class="charts-grid">
                <div class="chart-card" style="grid-column:1/-1;">
                    <h3><?= icone('trending-up',18) ?> Evolução de Lucros — Afiliado vs Drop (6 meses)</h3>
                    <div class="chart-container" style="height:300px;"><canvas id="evolucaoChart"></canvas></div>
                </div>
            </div>

            <!-- Top produtos afiliados/drop -->
            <?php if (count($top_produtos_afil) > 0): ?>
            <div class="table-card">
                <h3><?= icone('trophy',18) ?> Top Produtos por Lucro Gerado (teus links)</h3>
                <table class="data-table">
                    <thead>
                        <tr><th>#</th><th>Produto</th><th>Loja</th><th>Modo</th><th>Vendas</th><th>Comissão</th><th>Margem</th><th>Lucro Total</th></tr>
                    </thead>
                    <tbody>
                        <?php foreach ($top_produtos_afil as $i => $p):
                            $lucro = $p['comissao_total'] + $p['margem_total'];
                        ?>
                        <tr>
                            <td><strong><?= $i+1 ?></strong></td>
                            <td class="td-nome"><?= htmlspecialchars($p['nome']) ?></td>
                            <td><?= htmlspecialchars($p['nome_loja']) ?></td>
                            <td><span class="badge-tipo <?= $p['tipo'] ?>"><?= $p['tipo']==='drop' ? icone('package',13).' Drop' : icone('handshake',13).' Afil' ?></span></td>
                            <td><strong><?= $p['vendas'] ?></strong></td>
                            <td><?= number_format($p['comissao_total'],0,',','.') ?> Kz</td>
                            <td><?= $p['tipo']==='drop' ? number_format($p['margem_total'],0,',','.').' Kz' : '—' ?></td>
                            <td><strong style="color:#059669;"><?= number_format($lucro,0,',','.') ?> Kz</strong></td>
                        </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
            <?php else: ?>
            <div class="table-card">
                <h3><?= icone('trophy',18) ?> Top Produtos por Lucro Gerado</h3>
                <div class="empty-state"><div class="empty-icon"><?= icone('chart-bar',32) ?></div><p>Ainda sem vendas geradas pelos teus links neste período.</p></div>
            </div>
            <?php endif; ?>

            <!-- Top afiliados dos meus produtos -->
            <?php if (count($top_afiliados) > 0): ?>
            <div class="table-card">
                <h3><?= icone('star',18) ?> Top Afiliados/Dropshippers dos Meus Produtos</h3>
                <table class="data-table">
                    <thead>
                        <tr><th>#</th><th>Loja Afiliada</th><th>Modo</th><th>Links</th><th>Cliques</th><th>Conversões</th><th>Conv. %</th><th>Comissões Geradas</th></tr>
                    </thead>
                    <tbody>
                        <?php foreach ($top_afiliados as $i => $a):
                            $conv_pct = $a['cliques'] > 0 ? round($a['conversoes'] / $a['cliques'] * 100, 1) : 0;
                        ?>
                        <tr>
                            <td><strong><?= $i+1 ?></strong></td>
                            <td class="td-nome"><?= htmlspecialchars(($a['loja_afiliado'] ?? '') ?: ($a['nome_completo'] ?? 'Afiliado')) ?></td>
                            <td><span class="badge-tipo <?= $a['tipo'] ?>"><?= $a['tipo']==='drop' ? icone('package',13).' Drop' : icone('handshake',13).' Afil' ?></span></td>
                            <td><?= $a['links'] ?></td>
                            <td><?= $a['cliques'] ?></td>
                            <td><?= $a['conversoes'] ?></td>
                            <td>
                                <div><?= $conv_pct ?>%</div>
                                <div class="conv-bar"><div class="conv-bar-fill" style="width:<?= min($conv_pct,100) ?>%"></div></div>
                            </td>
                            <td><strong style="color:#059669;"><?= number_format($a['comissoes_geradas'],0,',','.') ?> Kz</strong></td>
                        </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
            <?php else: ?>
            <div class="table-card">
                <h3><?= icone('star',18) ?> Top Afiliados/Dropshippers dos Meus Produtos</h3>
                <div class="empty-state"><div class="empty-icon"><?= icone('handshake',32) ?></div><p>Ainda nenhum afiliado promoveu os teus produtos neste período.</p></div>
            </div>
            <?php endif; ?>

        </div><!-- /tab-afiliados -->

    </div><!-- /page-content -->
</main>

<script>
// ── Abas ─────────────────────────────────────────────────────
function mudarAba(aba, btn) {
    document.querySelectorAll('.tab-section').forEach(t => t.classList.remove('active'));
    document.querySelectorAll('.main-tab').forEach(t => t.classList.remove('active'));
    document.getElementById('tab-'+aba).classList.add('active');
    btn.classList.add('active');
    if (aba === 'afiliados' && !window._evolucaoIniciado) {
        window._evolucaoIniciado = true;
        iniciarGraficoEvolucao();
    }
}

// ── Sidebar mobile (gerido por includes/ui/layout-js.php) ─────

// ── Gráficos Gerais ───────────────────────────────────────────
new Chart(document.getElementById('salesChart').getContext('2d'), {
    type:'line',
    data:{ labels:<?= json_encode($vendas_labels) ?>, datasets:[{
        label:'Vendas', data:<?= json_encode($vendas_data) ?>,
        borderColor:'#1e3a8a', backgroundColor:'rgba(30,58,138,.1)', tension:.4, fill:true, pointRadius:4
    }]},
    options:{ responsive:true, maintainAspectRatio:false, plugins:{legend:{display:false}}, scales:{y:{beginAtZero:true}} }
});

new Chart(document.getElementById('productsChart').getContext('2d'), {
    type:'doughnut',
    data:{
        labels:<?= json_encode(array_slice(array_column($produtos_mais_vendidos,'nome'),0,5)) ?>,
        datasets:[{ data:<?= json_encode(array_slice(array_column($produtos_mais_vendidos,'total_vendido'),0,5)) ?>,
            backgroundColor:['#1e3a8a','#3b82f6','#60a5fa','#93c5fd','#dbeafe'] }]
    },
    options:{ responsive:true, maintainAspectRatio:false, plugins:{legend:{position:'bottom'}} }
});

new Chart(document.getElementById('revenueChart').getContext('2d'), {
    type:'bar',
    data:{ labels:<?= json_encode($receita_labels) ?>, datasets:[{
        label:'Receita (Kz)', data:<?= json_encode($receita_data) ?>, backgroundColor:'#1e3a8a', borderRadius:5
    }]},
    options:{ responsive:true, maintainAspectRatio:false, plugins:{legend:{display:false}},
        scales:{y:{beginAtZero:true, ticks:{callback:v=>(v/1000).toFixed(0)+'K'}}} }
});

const statusData   = <?= json_encode($status_pedidos) ?>;
const statusLabels = {pending:'Pendente',processing:'Em Processamento',shipped:'Enviado',delivered:'Entregue',cancelled:'Cancelado'};
const statusColors = {pending:'#f59e0b',processing:'#3b82f6',shipped:'#8b5cf6',delivered:'#10b981',cancelled:'#ef4444'};
new Chart(document.getElementById('ordersStatusChart').getContext('2d'), {
    type:'pie',
    data:{
        labels: statusData.map(s => statusLabels[s.status]||s.status),
        datasets:[{ data:statusData.map(s=>s.total), backgroundColor:statusData.map(s=>statusColors[s.status]||'#94a3b8') }]
    },
    options:{ responsive:true, maintainAspectRatio:false, plugins:{legend:{position:'bottom'}} }
});

// ── Gráfico Evolução Afiliado vs Drop ─────────────────────────
function iniciarGraficoEvolucao() {
    const meses  = <?= json_encode($evolucao_meses) ?>;
    const afil   = <?= json_encode($evolucao_afil)  ?>;
    const drop   = <?= json_encode($evolucao_drop)  ?>;
    const ctx    = document.getElementById('evolucaoChart');
    if (!ctx) return;
    new Chart(ctx.getContext('2d'), {
        type:'line',
        data:{
            labels: meses.length ? meses : ['Sem dados'],
            datasets:[
                {
                    label:'Afiliado',
                    data: afil,
                    borderColor:'#7c3aed',
                    backgroundColor:'rgba(124,58,237,.12)',
                    tension:.4, fill:true, pointRadius:5,
                    borderWidth:2.5
                },
                {
                    label:'Drop',
                    data: drop,
                    borderColor:'#059669',
                    backgroundColor:'rgba(5,150,105,.12)',
                    tension:.4, fill:true, pointRadius:5,
                    borderWidth:2.5
                }
            ]
        },
        options:{
            responsive:true,
            maintainAspectRatio:false,
            interaction:{ mode:'index', intersect:false },
            plugins:{
                legend:{ position:'top', labels:{ font:{size:13}, padding:16 } },
                tooltip:{
                    callbacks:{
                        label: ctx => ' ' + ctx.dataset.label + ': ' +
                            new Intl.NumberFormat('pt-AO').format(ctx.raw) + ' Kz'
                    }
                }
            },
            scales:{
                y:{
                    beginAtZero:true,
                    ticks:{ callback: v => (v/1000).toFixed(0)+'K Kz' }
                }
            }
        }
    });
}

// Verifica se URL tem hash para abrir aba afiliados directo
if (window.location.hash === '#afiliados') {
    document.querySelector('[onclick*="afiliados"]').click();
}
</script>
<?php include __DIR__ . "/../includes/ui/layout-js.php"; ?>
</body>
</html>
