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

// Verifica se o usuário está logado
if (!isset($_SESSION['logado'])) {
    header('Location: login.php');
    exit;
}

// Verifica o tenant_id
$tenant_id = $_SESSION['tenant_id'] ?? null;
if (!$tenant_id || !is_numeric($tenant_id)) {
    die("Erro: tenant_id inválido.");
}

// Informações da sessão
$usuario_id = $_SESSION['usuario_id'] ?? null;
$permissao = $_SESSION['permissao'] ?? 'usuario';
$is_admin = ($permissao === 'admin');
$is_super_admin = ($permissao === 'super_admin');

// FUNÇÃO DE ENVIO DE E-MAIL
function enviarEmailNotificacao($destinatario, $assunto, $mensagem, $tenant_id) {
    // Configurações de e-mail por tenant (você pode personalizar por empresa)
    $configs = [
        1 => [ // Tenant 1
            'from_email' => 'sistema@empresa1.com',
            'from_name' => 'Sistema Empresa 1'
        ],
        2 => [ // Tenant 2  
            'from_email' => 'sistema@empresa2.com',
            'from_name' => 'Sistema Empresa 2'
        ]
        // Adicione mais tenants conforme necessário
    ];
    
    $config = $configs[$tenant_id] ?? [
        'from_email' => 'sistema@son.com',
        'from_name' => 'SON Sistema'
    ];
    
    $headers = "From: {$config['from_name']} <{$config['from_email']}>\r\n";
    $headers .= "Reply-To: {$config['from_email']}\r\n";
    $headers .= "Content-Type: text/html; charset=UTF-8\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    
    // Log para debug (remova em produção)
    error_log("Tentando enviar e-mail para: $destinatario - Assunto: $assunto");
    
    return mail($destinatario, $assunto, $mensagem, $headers);
}

// FUNÇÃO PARA CRIAR TEMPLATE DE E-MAIL
function criarTemplateNotificacao($atividade, $tipo = 'lembrete') {
    $dataHora = date('d/m/Y H:i', strtotime($atividade['data_agendada']));
    
    // Calcular data de término se houver duração
    $dataTermino = '';
    if (!empty($atividade['duracao_minutos']) && $atividade['duracao_minutos'] > 0) {
        $dataTerminoObj = new DateTime($atividade['data_agendada']);
        $dataTerminoObj->add(new DateInterval('PT' . $atividade['duracao_minutos'] . 'M'));
        $dataTermino = $dataTerminoObj->format('d/m/Y H:i');
    }
    
    $templates = [
        'lembrete' => "
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; margin: 20px; }
                    .container { max-width: 600px; margin: 0 auto; border: 1px solid #ddd; border-radius: 8px; padding: 20px; }
                    .header { background: #f8f9fa; padding: 15px; border-radius: 5px; margin-bottom: 20px; }
                    .info { margin: 10px 0; }
                    .btn { display: inline-block; padding: 10px 20px; background: #007bff; color: white; text-decoration: none; border-radius: 4px; }
                </style>
            </head>
            <body>
                <div class='container'>
                    <div class='header'>
                        <h2>🔔 Lembrete de Atividade</h2>
                    </div>
                    <div class='info'><strong>📋 Atividade:</strong> {$atividade['nome']}</div>
                    <div class='info'><strong>📅 Início:</strong> $dataHora</div>
                    " . ($dataTermino ? "<div class='info'><strong>⏰ Término:</strong> $dataTermino</div>" : "") .
                    ($atividade['duracao_minutos'] ? "<div class='info'><strong>⏱️ Duração:</strong> " . formatarDuracao($atividade['duracao_minutos']) . "</div>" : "") . "
                    " . ($atividade['descricao'] ? "<div class='info'><strong>📝 Descrição:</strong> {$atividade['descricao']}</div>" : "") . "
                    " . ($atividade['Nome_Cliente'] ? "<div class='info'><strong>👤 Cliente:</strong> {$atividade['Nome_Cliente']}</div>" : "") . "
                    <div class='info'><strong>👨‍💼 Responsável:</strong> {$atividade['usuario_nome']}</div>
                    <br>
                    <a href='https://seusite.com/calendario.php' class='btn'>📅 Acessar Calendário</a>
                </div>
            </body>
            </html>
        ",
        'conclusao' => "
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; margin: 20px; }
                    .container { max-width: 600px; margin: 0 auto; border: 1px solid #ddd; border-radius: 8px; padding: 20px; }
                    .header { background: #d4edda; padding: 15px; border-radius: 5px; margin-bottom: 20px; }
                    .info { margin: 10px 0; }
                </style>
            </head>
            <body>
                <div class='container'>
                    <div class='header'>
                        <h2>✅ Atividade Concluída</h2>
                    </div>
                    <div class='info'><strong>📋 Atividade:</strong> {$atividade['nome']}</div>
                    <div class='info'><strong>📅 Data/Hora Original:</strong> $dataHora</div>
                    " . ($atividade['duracao_minutos'] ? "<div class='info'><strong>⏱️ Duração:</strong> " . formatarDuracao($atividade['duracao_minutos']) . "</div>" : "") . "
                    <div class='info'><strong>🕒 Concluída em:</strong> " . date('d/m/Y H:i') . "</div>
                    " . ($atividade['Nome_Cliente'] ? "<div class='info'><strong>👤 Cliente:</strong> {$atividade['Nome_Cliente']}</div>" : "") . "
                    <div class='info'><strong>👨‍💼 Responsável:</strong> {$atividade['usuario_nome']}</div>
                </div>
            </body>
            </html>
        ",
        'nova' => "
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; margin: 20px; }
                    .container { max-width: 600px; margin: 0 auto; border: 1px solid #ddd; border-radius: 8px; padding: 20px; }
                    .header { background: #e3f2fd; padding: 15px; border-radius: 5px; margin-bottom: 20px; }
                    .info { margin: 10px 0; }
                    .btn { display: inline-block; padding: 10px 20px; background: #007bff; color: white; text-decoration: none; border-radius: 4px; }
                </style>
            </head>
            <body>
                <div class='container'>
                    <div class='header'>
                        <h2>📅 Nova Atividade Criada</h2>
                    </div>
                    <div class='info'><strong>📋 Atividade:</strong> {$atividade['nome']}</div>
                    <div class='info'><strong>📅 Início:</strong> $dataHora</div>
                    " . ($dataTermino ? "<div class='info'><strong>⏰ Término:</strong> $dataTermino</div>" : "") .
                    ($atividade['duracao_minutos'] ? "<div class='info'><strong>⏱️ Duração:</strong> " . formatarDuracao($atividade['duracao_minutos']) . "</div>" : "") . "
                    " . ($atividade['descricao'] ? "<div class='info'><strong>📝 Descrição:</strong> {$atividade['descricao']}</div>" : "") . "
                    " . ($atividade['Nome_Cliente'] ? "<div class='info'><strong>👤 Cliente:</strong> {$atividade['Nome_Cliente']}</div>" : "") . "
                    " . ($atividade['tipo_atividade'] ? "<div class='info'><strong>📊 Tipo de Atividade:</strong> {$atividade['tipo_atividade']}</div>" : "") . "
                    <div class='info'><strong>👨‍💼 Responsável:</strong> {$atividade['usuario_nome']}</div>
                    <br>
                    <a href='https://seusite.com/calendario.php' class='btn'>📅 Acessar Calendário</a>
                </div>
            </body>
            </html>
        "
    ];
    
    return $templates[$tipo] ?? $templates['lembrete'];
}

// FUNÇÃO AUXILIAR PARA FORMATAR DURAÇÃO
function formatarDuracao($minutos) {
    if ($minutos < 60) {
        return $minutos . ' minutos';
    } else {
        $horas = floor($minutos / 60);
        $minutos_restantes = $minutos % 60;
        if ($minutos_restantes == 0) {
            return $horas . ' hora' . ($horas > 1 ? 's' : '');
        } else {
            return $horas . 'h' . $minutos_restantes . 'min';
        }
    }
}

// VERIFICAÇÃO DE NOTIFICAÇÕES AO CARREGAR A PÁGINA (alternativa ao cron)
function verificarNotificacoesPendentes($conn, $tenant_id) {
    $agora = date('Y-m-d H:i:00');
    $notificacoes_enviadas = 0;
    
$opcoes_notificacao = [
    1 => 5,     // 5 minutos antes
    2 => 15,    // 15 minutos antes  
    3 => 30,    // 30 minutos antes
    4 => 60,    // 1 hora antes
    5 => 1440   // 1 dia antes
];

    foreach ($opcoes_notificacao as $opcao_id => $minutos_antes) {
        $horario_verificacao = date('Y-m-d H:i:00', strtotime("+$minutos_antes minutes"));
        
        $sql = "SELECT a.*, u.email, u.nome as usuario_nome, c.Nome_Cliente 
                FROM atividades a 
                LEFT JOIN usuarios u ON a.usuario_id = u.id 
                LEFT JOIN clientes c ON a.cliente_id = c.id 
                WHERE a.ativo = 1 
                AND a.concluida = 0 
                AND a.notificacao_minutos_antes = ?
                AND a.data_agendada = ?
                AND (a.ultima_notificacao IS NULL OR a.ultima_notificacao != ?)
                AND a.tenant_id = ?";

        $stmt = $conn->prepare($sql);
        $stmt->bind_param("issi", $opcao_id, $horario_verificacao, $horario_verificacao, $tenant_id);
        $stmt->execute();
        $result = $stmt->get_result();

        while ($atividade = $result->fetch_assoc()) {
            if (!empty($atividade['email'])) {
                $assunto = "⏰ Lembrete: {$atividade['nome']} em $minutos_antes minutos";
                $mensagem = criarTemplateNotificacao($atividade, 'lembrete');
                $enviado = enviarEmailNotificacao($atividade['email'], $assunto, $mensagem, $tenant_id);
                
                if ($enviado) {
                    $sql_update = "UPDATE atividades SET ultima_notificacao = ? WHERE id = ?";
                    $stmt_update = $conn->prepare($sql_update);
                    $stmt_update->bind_param("si", $horario_verificacao, $atividade['id']);
                    $stmt_update->execute();
                    $stmt_update->close();
                    
                    $notificacoes_enviadas++;
                    error_log("Notificação enviada via página: {$atividade['id']} - {$minutos_antes}min antes");
                }
            }
        }
        $stmt->close();
    }
    
    return $notificacoes_enviadas;
}

// Executar verificação (apenas 10% das vezes para não sobrecarregar)
if (rand(1, 10) === 1) {
    // CORREÇÃO: Usar a conexão existente em vez de criar uma nova
    $notificacoes = verificarNotificacoesPendentes($conn, $tenant_id);
    if ($notificacoes > 0) {
        error_log("Notificações enviadas via página: $notificacoes");
    }
}

// Buscar se o usuário pode ver todos os clientes
$ver_todos_clientes = 0;
if ($usuario_id) {
    $stmtPerm = $conn->prepare("SELECT ver_todos_clientes FROM usuarios WHERE id = ?");
    $stmtPerm->bind_param("i", $usuario_id);
    $stmtPerm->execute();
    $resultPerm = $stmtPerm->get_result();
    
    if ($resultPerm->num_rows > 0) {
        $linhaPerm = $resultPerm->fetch_assoc();
        $ver_todos_clientes = isset($linhaPerm['ver_todos_clientes']) ? (int)$linhaPerm['ver_todos_clientes'] : 0;
    }
    $stmtPerm->close();
}

// Configura fuso horário
date_default_timezone_set('America/Sao_Paulo');

// Obter atividades do usuário (incluindo agendas compartilhadas)
$atividades = [];

if ($usuario_id) {
    $sql = "
        SELECT 
            a.id,
            a.nome AS titulo,
            a.descricao,
            a.data_agendada,
            a.concluida,
            a.lista_atividade_id,
            a.notificacao_minutos_antes,
            a.duracao_minutos,
            la.nome AS nome_atividade,
            la.descricao AS descricao_atividade,
            a.nome AS nome_atividade_original,
            CASE 
                WHEN c.Nome_Cliente IS NULL THEN a.nome
                ELSE c.Nome_Cliente
            END AS nome_cliente,
            a.cliente_id,
            u.nome AS usuario_nome,
            u.id AS usuario_id,
            ca.usuario_compartilhado_id IS NOT NULL AS agenda_compartilhada,
            a.usuario_id AS proprietario_id
        FROM atividades a
        LEFT JOIN lista_atividades la ON a.lista_atividade_id = la.id
        LEFT JOIN clientes c ON a.cliente_id = c.id AND c.tenant_id = ?
        LEFT JOIN usuarios u ON a.usuario_id = u.id
        LEFT JOIN compartilhamento_agenda ca ON (a.usuario_id = ca.usuario_proprietario_id AND ca.usuario_compartilhado_id = ? AND ca.ativo = 1)
        WHERE (a.usuario_id = ? OR ca.usuario_compartilhado_id = ?) 
          AND a.ativo = 1 
          AND (c.tenant_id IS NULL OR c.tenant_id = ?)
        ORDER BY a.data_agendada
    ";

    if ($stmt = $conn->prepare($sql)) {
        $stmt->bind_param("iiiii", $tenant_id, $usuario_id, $usuario_id, $usuario_id, $tenant_id);
        $stmt->execute();
        $result = $stmt->get_result();

        while ($row = $result->fetch_assoc()) {
    // Corrige campos nulos vindos de fluxos automatizados
    if (empty($row['usuario_nome'])) {
        $row['usuario_nome'] = 'Fluxo Automatizado';
    }
    if (empty($row['usuario_id'])) {
        $row['usuario_id'] = 0;
    }
    if (empty($row['nome_cliente'])) {
        $row['nome_cliente'] = '(sem cliente)';
    }

    $atividades[] = $row;
}


        $stmt->close();
    } else {
        error_log("Erro ao preparar a consulta: " . $conn->error);
    }
}

// Obter lista de clientes para o select (conforme permissões)
$clientes = [];
if ($is_admin || $is_super_admin || $ver_todos_clientes === 1) {
    // Administradores ou usuários com permissão para ver todos os clientes
    $sql_clientes = "SELECT id, Nome_Cliente FROM clientes WHERE tenant_id = ? ORDER BY Nome_Cliente";
    if ($stmt = $conn->prepare($sql_clientes)) {
        $stmt->bind_param("i", $tenant_id);
        $stmt->execute();
        $result = $stmt->get_result();
        while ($row = $result->fetch_assoc()) {
            $clientes[] = $row;
        }
        $stmt->close();
    }
} else {
    // Usuários comuns - apenas os clientes onde são responsáveis
    $sql_clientes = "SELECT id, Nome_Cliente FROM clientes WHERE tenant_id = ? AND responsavel = ? ORDER BY Nome_Cliente";
    if ($stmt = $conn->prepare($sql_clientes)) {
        $stmt->bind_param("ii", $tenant_id, $usuario_id);
        $stmt->execute();
        $result = $stmt->get_result();
        while ($row = $result->fetch_assoc()) {
            $clientes[] = $row;
        }
        $stmt->close();
    }
}

// Obter lista de tipos de atividades (apenas do tenant atual)
$tipos_atividades = [];
$sql_tipos = "SELECT id, nome FROM lista_atividades WHERE tenant_id = ? AND ativo = 1 ORDER BY nome";
if ($stmt = $conn->prepare($sql_tipos)) {
    $stmt->bind_param("i", $tenant_id);
    $stmt->execute();
    $result = $stmt->get_result();
    while ($row = $result->fetch_assoc()) {
        $tipos_atividades[] = $row;
    }
    $stmt->close();
}

// Obter lista de usuários para compartilhamento (apenas do tenant atual)
$usuarios_compartilhamento = [];
$sql_usuarios = "SELECT id, nome, email FROM usuarios WHERE tenant_id = ? AND id != ? AND ativo = 'sim' ORDER BY nome";
if ($stmt = $conn->prepare($sql_usuarios)) {
    $stmt->bind_param("ii", $tenant_id, $usuario_id);
    $stmt->execute();
    $result = $stmt->get_result();
    while ($row = $result->fetch_assoc()) {
        $usuarios_compartilhamento[] = $row;
    }
    $stmt->close();
}

// Obter usuários que já têm acesso à agenda
$usuarios_compartilhados = [];
$sql_compartilhados = "SELECT u.id, u.nome, u.email 
                      FROM compartilhamento_agenda ca 
                      JOIN usuarios u ON ca.usuario_compartilhado_id = u.id 
                      WHERE ca.usuario_proprietario_id = ? AND ca.ativo = 1 
                      ORDER BY u.nome";
if ($stmt = $conn->prepare($sql_compartilhados)) {
    $stmt->bind_param("i", $usuario_id);
    $stmt->execute();
    $result = $stmt->get_result();
    while ($row = $result->fetch_assoc()) {
        $usuarios_compartilhados[] = $row;
    }
    $stmt->close();
}

$conn->close();
?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon_io/favicon-16x16.png">
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon_io/favicon-32x32.png">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>SON - Sistema de Organização de Negócios</title>
    <meta name="csrf-token" content="<?php echo $_SESSION['csrf_token']; ?>">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdn.jsdelivr.net/npm/fullcalendar@5.11.3/main.min.css" rel="stylesheet">
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            background-color: #f5f5f5;
            overflow-x: hidden;
        }
        
        .header-fixed {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            background-color: #f5f5f5;
            padding: 15px 20px;
            z-index: 1000;
            box-shadow: 0 2px 5px rgba(0,0,0,0.1);
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        
        .header-fixed img {
            height: 50px;
            margin-right: 15px;
        }
        
        .header-fixed h2 {
            margin: 0;
            flex-grow: 1;
            text-align: center;
        }
        
        /* Menu Lateral Recolhível - AGORA NA ESQUERDA */
        .sidebar {
            position: fixed;
            left: 0;
            top: 80px;
            height: calc(100vh - 80px);
            width: 60px;
            background: white;
            box-shadow: 2px 0 5px rgba(0,0,0,0.1);
            z-index: 999;
            transition: width 0.3s ease;
            overflow-x: hidden;
        }
        
        .sidebar-menu {
            list-style: none;
            padding: 0;
            margin: 0;
        }
        
        .sidebar-menu li {
            border-bottom: 1px solid #eee;
        }
        
        .sidebar-menu a {
            display: flex;
            align-items: center;
            padding: 15px 20px;
            text-decoration: none;
            color: #333;
            white-space: nowrap;
            transition: background-color 0.3s;
        }
        
        .sidebar-menu i {
            width: 24px;
            height: 24px;
            margin-right: 15px;
            text-align: center;
            flex-shrink: 0;
        }
        
        .sidebar-menu .menu-text {
            opacity: 0;
            transition: opacity 0.3s ease;
        }
        
        .submenu-sidebar {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.3s ease;
            background-color: #f9f9f9;
        }
        
        .submenu-sidebar a {
            padding-left: 50px;
            font-size: 0.9em;
        }
        
        .menu-item-sidebar {
            position: relative;
        }
        
        .menu-item-sidebar > a:after {
            content: "▶";
            margin-left: auto;
            font-size: 0.8em;
            transition: transform 0.3s;
        }
        
        .content-wrapper {
            margin-top: 80px;
            padding: 20px;
            margin-left: 60px;
            transition: margin-left 0.3s ease;
        }
        
        .container {
            max-width: 1800px;
            margin: 0 auto;
        }
        
        #calendar {
            background: white;
            border-radius: 8px;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
            padding: 20px;
        }
        
        .fc-event {
            cursor: pointer;
            font-size: 0.85em;
            padding: 2px 4px;
        }
        
        .fc-event-time {
            font-weight: bold;
        }
        
        .fc-event-particular {
            background-color: #8B4513;
            border-color: #8B4513;
        }
        
        .legend {
            display: flex;
            flex-wrap: wrap;
            gap: 15px;
            margin-bottom: 20px;
        }
        
        .legend-item {
            display: flex;
            align-items: center;
            gap: 5px;
        }
        
        .legend-color {
            width: 15px;
            height: 15px;
            border-radius: 3px;
        }
        
        .modal-activity {
            display: none;
            position: fixed;
            z-index: 2000;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            overflow: auto;
            background-color: rgba(0,0,0,0.5);
            backdrop-filter: blur(5px);
        }
        
        .modal-activity-content {
            background-color: #fefefe;
            margin: 5% auto;
            padding: 20px;
            border-radius: 8px;
            width: 60%;
            max-width: 700px;
            box-shadow: 0 4px 8px rgba(0,0,0,0.2);
            max-height: 80vh;
            overflow-y: auto;
            position: relative;
        }
        
        .close-modal {
            position: absolute;
            right: 20px;
            top: 10px;
            color: #aaa;
            font-size: 28px;
            font-weight: bold;
            cursor: pointer;
            z-index: 1;
        }
        
        .close-modal:hover {
            color: #333;
        }
        
        .whatsapp-btn {
            margin-left: 15px;
            background: #25D366;
            color: white;
            border: none;
            padding: 6px 12px;
            border-radius: 4px;
            cursor: pointer;
            display: flex;
            align-items: center;
            gap: 5px;
        }
        
        .user-info {
            display: flex;
            align-items: center;
            gap: 10px;
        }
        
        .user-photo {
            width: 40px;
            height: 40px;
            border-radius: 50%;
        }
        
        .user-initial {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background: #ccc;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: bold;
            font-size: 1.2em;
        }
        
        .version-info {
            margin: 10px 5px 0;
            padding-top: 10px;
            border-top: 1px solid #dee2e6;
            color: #6c757d;
            font-size: 0.8em;
        }

        .menu-container {
            position: relative;
            display: inline-block;
        }
        
        .dropdown-menu {
            display: none;
            position: absolute;
            right: 0;
            background-color: white;
            min-width: 200px;
            box-shadow: 0 8px 16px rgba(0,0,0,0.2);
            z-index: 1;
            border-radius: 4px;
            overflow: hidden;
        }
        
        .dropdown-menu a {
            color: #333;
            padding: 12px 16px;
            text-decoration: none;
            display: block;
            text-align: left;
            transition: background-color 0.3s;
        }
        
        .dropdown-menu a:hover {
            background-color: #f1f1f1;
        }
        
        .dropdown-menu.show {
            display: block;
        }
        
        .submenu {
            display: none;
            padding-left: 20px;
            margin-top: 10px;
            background-color: #f9f9f9;
        }
        
        .submenu a {
            display: block;
            padding: 8px 16px;
            text-decoration: none;
            color: #333;
            font-size: 0.9em;
        }
        
        .submenu a:hover {
            background-color: #f1f1f1;
        }
        
        .menu-item {
            position: relative;
        }
        
        .menu-item > a {
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        
        .menu-item > a:after {
            content: "▶";
            font-size: 0.8em;
            transition: transform 0.3s;
        }
        
        .menu-item.open > a:after {
            transform: rotate(90deg);
        }
        
        .menu-btn-success {
            color: #6B8E23;
        }
        
        .menu-btn-primary {
            color: #0000FF;
        }
        
        .menu-btn-danger {
            color: #e74c3c;
        }
        
        .action-buttons {
            margin-top: 20px;
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
        }
        
        .action-buttons button {
            padding: 8px 12px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            display: flex;
            align-items: center;
            gap: 5px;
        }
        
        .btn-concluir {
            background-color: #28a745;
            color: white;
        }
        
        .btn-editar {
            background-color: #17a2b8;
            color: white;
        }
        
        .btn-excluir {
            background-color: #dc3545;
            color: white;
        }
        
        .btn-enviar-email {
            background-color: #ffc107;
            color: black;
        }
        
        .edit-form {
            display: flex;
            gap: 10px;
            align-items: center;
            margin-top: 10px;
        }
        
        .edit-form input[type="text"] {
            flex-grow: 1;
            padding: 8px;
            border: 1px solid #ddd;
            border-radius: 4px;
        }
        
        /* Modal de edição */
        .edit-modal-form {
            display: flex;
            flex-direction: column;
            gap: 15px;
        }
        
        .edit-modal-form .form-group {
            margin-bottom: 15px;
        }
        
        .edit-modal-form label {
            display: block;
            margin-bottom: 5px;
            font-weight: bold;
        }
        
        .edit-modal-form input,
        .edit-modal-form textarea,
        .edit-modal-form select {
            width: 100%;
            padding: 8px;
            border: 1px solid #ddd;
            border-radius: 4px;
        }
        
        .edit-modal-form textarea {
            min-height: 100px;
        }
        
        /* Estilos para compartilhamento */
        .compartilhamento-container {
            margin-bottom: 20px;
            padding: 15px;
            background: white;
            border-radius: 8px;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
        }

        .compartilhamento-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 15px;
        }

        .compartilhamento-form {
            display: flex;
            gap: 10px;
            align-items: center;
            margin-bottom: 15px;
        }

        .compartilhamento-form select {
            flex-grow: 1;
            padding: 8px;
            border: 1px solid #ddd;
            border-radius: 4px;
        }

        .lista-compartilhados {
            margin-top: 15px;
        }

        .usuario-compartilhado {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 8px 0;
            border-bottom: 1px solid #eee;
        }

        .usuario-compartilhado:last-child {
            border-bottom: none;
        }

        .btn-remover-compartilhamento {
            background: #dc3545;
            color: white;
            border: none;
            padding: 2px 8px;
            border-radius: 4px;
            cursor: pointer;
            font-size: 12px;
            display: flex;
            align-items: center;
            gap: 4px;
        }

        .badge-compartilhada {
            background: #6c757d;
            color: white;
            padding: 2px 6px;
            border-radius: 4px;
            font-size: 0.8em;
            margin-left: 8px;
        }

        /* Estilos para botão de administração */
        .admin-fixed-btn {
            position: fixed;
            bottom: 30px;
            right: 30px;
            background: #8e44ad;
            color: white;
            width: 60px;
            height: 60px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 24px;
            box-shadow: 0 4px 8px rgba(0,0,0,0.2);
            z-index: 999;
            cursor: pointer;
            transition: all 0.3s;
        }

        .admin-fixed-btn:hover {
            transform: scale(1.1);
            box-shadow: 0 6px 12px rgba(0,0,0,0.3);
        }

        .admin-fixed-btn .tooltip {
            position: absolute;
            right: 70px;
            background: #333;
            color: white;
            padding: 5px 10px;
            border-radius: 4px;
            font-size: 14px;
            white-space: nowrap;
            opacity: 0;
            transition: opacity 0.3s;
            pointer-events: none;
        }

        .admin-fixed-btn:hover .tooltip {
            opacity: 1;
        }
        
        /* Estilo para indicar atividade somente leitura */
        .read-only-actions {
            margin-top: 20px;
            padding: 10px;
            background-color: #f8f9fa;
            border-radius: 4px;
            border-left: 4px solid #6c757d;
        }

        /* Estilos para notificações */
        .notification-badge {
            position: absolute;
            top: -5px;
            right: -5px;
            background: #dc3545;
            color: white;
            border-radius: 50%;
            width: 20px;
            height: 20px;
            font-size: 12px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .btn-notification {
            position: relative;
        }

        /* Animações para notificações */
        @keyframes pulse {
            0% { transform: scale(1); }
            50% { transform: scale(1.05); }
            100% { transform: scale(1); }
        }

        .pulse-notification {
            animation: pulse 2s infinite;
        }

        /* Melhorias para visualização de tempo no calendário */
        .fc-time-grid-event .fc-content {
            padding: 2px 4px;
        }

        .fc-event-title {
            font-weight: bold;
        }

        .fc-event-time {
            font-size: 0.9em;
            opacity: 0.9;
        }

        /* Estilos para o campo de duração */
        .duracao-container {
            display: flex;
            gap: 10px;
            align-items: center;
        }

        .duracao-input {
            flex: 1;
        }

        .duracao-preview {
            background: #f8f9fa;
            padding: 8px 12px;
            border-radius: 4px;
            font-size: 0.9em;
            color: #6c757d;
            min-width: 120px;
            text-align: center;
        }
        /* Estilo para os botões de notificação na página */
.notification-buttons {
    position: fixed;
    top: 100px;
    right: 20px;
    z-index: 9999;
    min-width: 300px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
    border-radius: 8px;
}

.notification-buttons .btn {
    margin: 2px;
    font-size: 0.8em;
    padding: 4px 8px;
}
    </style>
</head>
<body>

    <?php include 'menu_lateral.php'; ?>

    <!-- Conteúdo Principal -->
    <div class="content-wrapper">
        <div class="container">
            <?php if (isset($_SESSION['erro'])): ?>
                <div class="alert alert-danger">
                    <?= htmlspecialchars($_SESSION['erro']) ?>
                </div>
                <?php unset($_SESSION['erro']); ?>
            <?php endif; ?>
            
            <?php if (isset($_SESSION['sucesso'])): ?>
                <div class="alert alert-success">
                    <?= htmlspecialchars($_SESSION['sucesso']) ?>
                </div>
                <?php unset($_SESSION['sucesso']); ?>
            <?php endif; ?>

            <!-- Seção de Compartilhamento de Agenda -->
            <div class="compartilhamento-container">
                <div class="compartilhamento-header">
                    <h3><i class="fas fa-share-alt"></i> Compartilhar Minha Agenda</h3>
                </div>
                
                <form class="compartilhamento-form" method="POST" action="compartilhar_agenda.php">
                    <input type="hidden" name="csrf_token" value="<?php echo $_SESSION['csrf_token']; ?>">
                    <select name="usuario_compartilhado_id" required style="width:80px !important; max-width:25%;" id="usuario_compartilhado_id">
                        <option value="">Selecione um usuário para compartilhar</option>
                        <?php foreach ($usuarios_compartilhamento as $usuario): ?>
                            <option value="<?php echo $usuario['id']; ?>">
                                <?php echo htmlspecialchars($usuario['nome'] . ' (' . $usuario['email'] . ')'); ?>
                            </option>
                        <?php endforeach; ?>
                    </select>
                    <button type="submit" class="btn btn-primary">
                        <i class="fas fa-share"></i> Compartilhar
                    </button>
                </form>
                
                <?php if (!empty($usuarios_compartilhados)): ?>
                <div class="lista-compartilhados">
                    <h4>Agenda compartilhada com:</h4>
                    <?php foreach ($usuarios_compartilhados as $usuario): ?>
                    <div class="usuario-compartilhado">
                        <span><?php echo htmlspecialchars($usuario['nome'] . ' (' . $usuario['email'] . ')'); ?></span>
                        <form method="POST" action="remover_compartilhamento_agenda.php" style="display:inline;">
                            <input type="hidden" name="csrf_token" value="<?php echo $_SESSION['csrf_token']; ?>">
                            <input type="hidden" name="usuario_compartilhado_id" value="<?php echo $usuario['id']; ?>">
                            <button type="submit" class="btn-remover-compartilhamento" 
                                    onclick="return confirm('Tem certeza que deseja remover o compartilhamento?')">
                                <i class="fas fa-times"></i> Remover
                            </button>
                        </form>
                    </div>
                    <?php endforeach; ?>
                </div>
                <?php endif; ?>
            </div>

            <!-- Seção de Notificações -->
            <div class="compartilhamento-container">
                <div class="compartilhamento-header">
                    <h3><i class="fas fa-bell"></i> Notificações</h3>
                    <button type="button" class="btn btn-sm btn-outline-primary" onclick="verificarNotificacoesBrowser()">
                        <i class="fas fa-sync-alt"></i> Verificar Agora
                    </button>
                </div>
                
                <div class="mb-3">
                    <div class="form-check form-switch">
                        <input class="form-check-input" type="checkbox" id="notificacoesAtivas" checked>
                        <label class="form-check-label" for="notificacoesAtivas">
                            Notificações do navegador ativas
                        </label>
                    </div>
                    <small class="text-muted">Você receberá alertas para atividades próximas e atrasadas</small>
                </div>
                
                <div id="statusNotificacoes" class="alert alert-info">
                    <i class="fas fa-info-circle"></i> 
                    <span id="textoStatusNotificacoes">As notificações serão verificadas automaticamente a cada 1 minuto</span>
                </div>

                <button type="button" class="btn btn-sm btn-warning mt-2" onclick="testarNotificacao()">
                    <i class="fas fa-vial"></i> Testar Notificação
                </button>
            </div>

            <div class="legend">
                <div class="legend-item">
                    <div class="legend-color" style="background-color: #dc3545;"></div>
                    <span>Atrasadas</span>
                </div>
                <div class="legend-item">
                    <div class="legend-color" style="background-color: #ffc107;"></div>
                    <span>Hoje</span>
                </div>
                <div class="legend-item">
                    <div class="legend-color" style="background-color: #17a2b8;"></div>
                    <span>Futuras</span>
                </div>
                <div class="legend-item">
                    <div class="legend-color" style="background-color: #28a745;"></div>
                    <span>Concluídas</span>
                </div>
                <div class="legend-item">
                    <div class="legend-color" style="background-color: #8B4513;"></div>
                    <span>Sem Cliente</span>
                </div>
                <div class="legend-item">
                    <div class="legend-color" style="background-color: #6c757d;"></div>
                    <span>Agenda Compartilhada</span>
                </div>
            </div>
            
            <div class="card">
                <div class="card-body">
                    <div id="calendar"></div>
                </div>
            </div>
        </div>
    </div>

    <!-- Modal Detalhes da Atividade -->
    <div id="activityModal" class="modal-activity">
        <div class="modal-activity-content">
            <span class="close-modal" onclick="fecharModalAtividade()">&times;</span>
            <h2 id="activityModalTitle">Detalhes da Atividade</h2>
            <div class="modal-body" id="activityModalBody">
                <!-- Conteúdo será preenchido via JavaScript -->
            </div>
            <div class="action-buttons" id="activityModalActions">
                <!-- Botões de ação serão preenchidos via JavaScript -->
            </div>
            <div class="read-only-actions" id="readOnlyActions" style="display: none;">
                <p><i class="fas fa-info-circle"></i> Esta é uma atividade compartilhada. Você pode apenas visualizar.</p>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" onclick="fecharModalAtividade()">Fechar</button>
            </div>
        </div>
    </div>

    <!-- Modal Editar Atividade -->
    <div id="editarAtividadeModal" class="modal-activity">
        <div class="modal-activity-content">
            <span class="close-modal" onclick="fecharModalEditarAtividade()">&times;</span>
            <h2>Editar Atividade</h2>
            <form id="formEditarAtividade" class="edit-modal-form">
                <input type="hidden" id="editarAtividadeId" name="id">
                <input type="hidden" name="csrf_token" value="<?php echo $_SESSION['csrf_token']; ?>" />
                <input type="hidden" name="tenant_id" value="<?php echo $tenant_id; ?>" />
                
                <div class="form-group">
                    <label for="editarNome">Nome da Atividade*</label>
                    <input type="text" id="editarNome" name="nome" required>
                </div>
                
                <div class="form-group">
                    <label for="editarDescricao">Descrição</label>
                    <textarea id="editarDescricao" name="descricao" rows="3"></textarea>
                </div>
                
                <div class="row">
                    <div class="col-md-6 form-group">
                        <label for="editarData">Data*</label>
                        <input type="date" id="editarData" name="data_agendada" required>
                    </div>
                    
                    <div class="col-md-6 form-group">
                        <label for="editarHora">Hora*</label>
                        <input type="time" id="editarHora" name="hora" required>
                    </div>
                </div>
                
                <!-- NOVO CAMPO: DURAÇÃO -->
                <div class="form-group">
                    <label for="editarDuracaoMinutos">Duração (minutos)*</label>
                    <div class="duracao-container">
                        <div class="duracao-input">
                            <input type="number" 
                                   id="editarDuracaoMinutos" 
                                   name="duracao_minutos" 
                                   class="form-control" 
                                   min="5" 
                                   max="1440" 
                                   required 
                                   value="30"
                                   placeholder="Ex: 30 para 30 minutos">
                            <small class="text-muted">Mínimo: 5 minutos, Máximo: 24 horas (1440 minutos)</small>
                        </div>
                        <div class="duracao-preview" id="editarDuracaoPreview">
                            30 minutos
                        </div>
                    </div>
                </div>
                
                <div class="row">
                    <div class="col-md-6 form-group">
                        <label for="editarNotificar">Notificar</label>
                        <select id="editarNotificar" name="notificar" class="form-control">
                            <option value="0">Não notificar</option>
                            <option value="1">5 minutos antes</option>
                            <option value="2">15 minutos antes</option>
                            <option value="3">30 minutos antes</option>
                            <option value="4">1 hora antes</option>
                            <option value="5">1 dia antes</option>
                        </select>
                    </div>
                </div>
                
                <div class="row">
                    <div class="col-md-6 form-group">
                        <label for="editarClienteId">Cliente</label>
                        <select id="editarClienteId" name="cliente_id">
                            <option value="">Sem cliente</option>
                            <?php foreach ($clientes as $cliente): ?>
                                <option value="<?php echo $cliente['id']; ?>"><?php echo htmlspecialchars($cliente['Nome_Cliente']); ?></option>
                            <?php endforeach; ?>
                        </select>
                    </div>
                    
                    <div class="col-md-6 form-group">
                        <label for="editarListaAtividadeId">Tipo de Atividade</label>
                        <select id="editarListaAtividadeId" name="lista_atividade_id">
                            <option value="">Selecione um tipo</option>
                            <?php foreach ($tipos_atividades as $tipo): ?>
                                <option value="<?php echo $tipo['id']; ?>"><?php echo htmlspecialchars($tipo['nome']); ?></option>
                            <?php endforeach; ?>
                        </select>
                    </div>
                </div>
                
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" onclick="fecharModalEditarAtividade()">Cancelar</button>
                    <button type="button" class="btn btn-primary" onclick="salvarEdicaoAtividade()">Salvar Alterações</button>
                </div>
            </form>
        </div>
    </div>

    <!-- Modal Nova Atividade -->
    <div id="novaAtividadeModal" class="modal-activity">
        <div class="modal-activity-content">
            <span class="close-modal" onclick="fecharModalNovaAtividade()">&times;</span>
            <h2>Nova Atividade</h2>
            <form id="formNovaAtividade" method="POST" action="salvar_atividade.php">
                <input type="hidden" name="csrf_token" value="<?php echo $_SESSION['csrf_token']; ?>" />
                <input type="hidden" name="tenant_id" value="<?php echo $tenant_id; ?>" />
                <input type="hidden" id="dataSelecionada" name="data_agendada">
                
                <div class="mb-3">
                    <label for="nome" class="form-label">Nome da Atividade*</label>
                    <input type="text" class="form-control" id="nome" name="nome" required>
                </div>
                
                <div class="mb-3">
                    <label for="descricao" class="form-label">Descrição</label>
                    <textarea class="form-control" id="descricao" name="descricao" rows="3"></textarea>
                </div>
                
                <div class="row">
                    <div class="col-md-6 mb-3">
                        <label for="data_agendada" class="form-label">Data*</label>
                        <input type="date" class="form-control" id="data_agendada" name="data_agendada" required>
                    </div>
                    
                    <div class="col-md-6 mb-3">
                        <label for="hora" class="form-label">Hora*</label>
                        <input type="time" class="form-control" id="hora" name="hora" required>
                    </div>
                </div>
                
                <!-- NOVO CAMPO: DURAÇÃO -->
                <div class="mb-3">
                    <label for="duracao_minutos" class="form-label">Duração (minutos)*</label>
                    <div class="duracao-container">
                        <div class="duracao-input">
                            <input type="number" 
                                   class="form-control" 
                                   id="duracao_minutos" 
                                   name="duracao_minutos" 
                                   min="5" 
                                   max="1440" 
                                   required 
                                   value="30"
                                   placeholder="Ex: 30 para 30 minutos">
                            <small class="text-muted">Mínimo: 5 minutos, Máximo: 24 horas (1440 minutos)</small>
                        </div>
                        <div class="duracao-preview" id="duracaoPreview">
                            30 minutos
                        </div>
                    </div>
                </div>
                
                <div class="row">
                    <div class="col-md-6 mb-3">
                        <label for="notificar" class="form-label">Notificar</label>
                        <select class="form-control" id="notificar" name="notificar">
                            <option value="0">Não notificar</option>
                            <option value="1">5 minutos antes</option>
                            <option value="2">15 minutos antes</option>
                            <option value="3">30 minutos antes</option>
                            <option value="4">1 hora antes</option>
                            <option value="5">1 dia antes</option>
                        </select>
                    </div>
                    
                    <!-- Opção para enviar e-mail -->
                    <div class="col-md-6 mb-3">
                        <label for="enviar_email" class="form-label">Enviar E-mail</label>
                        <div class="form-check">
                            <input class="form-check-input" type="checkbox" id="enviar_email" name="enviar_email" value="1" checked>
                            <label class="form-check-label" for="enviar_email">
                                Enviar e-mail de notificação
                            </label>
                        </div>
                    </div>
                </div>
                
                <div class="row">
                    <div class="col-md-6 mb-3">
                        <label for="cliente_id" class="form-label">Cliente</label>
                        <select class="form-control" id="cliente_id" name="cliente_id">
                            <option value="">Sem cliente</option>
                            <?php foreach ($clientes as $cliente): ?>
                                <option value="<?php echo $cliente['id']; ?>"><?php echo htmlspecialchars($cliente['Nome_Cliente']); ?></option>
                            <?php endforeach; ?>
                        </select>
                    </div>
                    
                    <div class="col-md-6 mb-3">
                        <label for="lista_atividade_id" class="form-label">Tipo de Atividade</label>
                        <select class="form-control" id="lista_atividade_id" name="lista_atividade_id">
                            <option value="">Selecione um tipo</option>
                            <?php foreach ($tipos_atividades as $tipo): ?>
                                <option value="<?php echo $tipo['id']; ?>"><?php echo htmlspecialchars($tipo['nome']); ?></option>
                            <?php endforeach; ?>
                        </select>
                    </div>
                </div>
                
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" onclick="fecharModalNovaAtividade()">Cancelar</button>
                    <button type="submit" class="btn btn-primary">Salvar Atividade</button>
                </div>
            </form>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/fullcalendar@5.11.3/main.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/fullcalendar@5.11.3/locales-all.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>

    <script>
        // Função para formatar duração
        function formatarDuracao(minutos) {
            if (minutos < 60) {
                return minutos + ' minutos';
            } else {
                const horas = Math.floor(minutos / 60);
                const minutosRestantes = minutos % 60;
                if (minutosRestantes === 0) {
                    return horas + ' hora' + (horas > 1 ? 's' : '');
                } else {
                    return horas + 'h' + (minutosRestantes < 10 ? '0' : '') + minutosRestantes + 'min';
                }
            }
        }

        // ========== SISTEMA DE NOTIFICAÇÕES CORRIGIDO ==========

        // Verificar e pedir permissão para notificações
        function inicializarNotificacoes() {
            if (!("Notification" in window)) {
                console.log("Este navegador não suporta notificações desktop");
                atualizarStatusNotificacoes("❌ Este navegador não suporta notificações");
                return false;
            }

            if (Notification.permission === "default") {
                Notification.requestPermission().then(permission => {
                    if (permission === "granted") {
                        console.log("Permissão para notificações concedida");
                        atualizarStatusNotificacoes("🔔 Notificações ativadas");
                        verificarNotificacoesBrowser();
                    } else {
                        atualizarStatusNotificacoes("❌ Permissão para notificações negada");
                    }
                });
            } else if (Notification.permission === "granted") {
                console.log("Permissão já concedida");
                verificarNotificacoesBrowser();
            } else {
                atualizarStatusNotificacoes("❌ Permissão para notificações negada");
            }
            
            return Notification.permission === "granted";
        }

        // Verificar notificações no navegador - VERSÃO CORRIGIDA
        function verificarNotificacoesBrowser() {
            console.log("=== VERIFICANDO NOTIFICAÇÕES ===");
            
            // Verificar se notificações estão ativas
            const notificacoesAtivas = document.getElementById('notificacoesAtivas');
            if (!notificacoesAtivas || !notificacoesAtivas.checked) {
                atualizarStatusNotificacoes("🔕 Notificações desativadas");
                return;
            }

            if (Notification.permission !== "granted") {
                atualizarStatusNotificacoes("⚠️ Aguardando permissão para notificações");
                return;
            }

            atualizarStatusNotificacoes("🔍 Verificando notificações...");

            const timestamp = new Date().getTime();
            
            // 🔥 CORREÇÃO: URL simplificada (sem parâmetros, usa sessão)
            const url = `buscar_notificacoes.php?t=${timestamp}`;
            
            console.log("Buscando:", url);
            
            fetch(url)
                .then(response => {
                    if (!response.ok) throw new Error('Erro: ' + response.status);
                    return response.json();
                })
                .then(data => {
                    console.log("Resposta:", data);
                    
                    // 🔥 CORREÇÃO: Verificar data.success em vez de data.status
                    if (data && data.success === true) {
                        const notificacoes = data.notificacoes || [];
                        atualizarBadgeNotificacao(notificacoes.length);
                        
                        if (notificacoes.length > 0) {
                            atualizarStatusNotificacoes(`📢 ${notificacoes.length} notificação(ões)`);
                            notificacoes.forEach(notificacao => {
    mostrarNotificacaoPersistente(notificacao);
});
                        } else {
                            atualizarStatusNotificacoes(`✅ Nada por agora (${new Date().toLocaleTimeString()})`);
                        }
                    } else {
                        const errorMsg = data?.message || 'Resposta inválida';
                        atualizarStatusNotificacoes('❌ Erro: ' + errorMsg);
                    }
                })
                .catch(error => {
                    console.error('Erro:', error);
                    atualizarStatusNotificacoes('❌ Erro de conexão');
                });
        }

        function mostrarNotificacaoBrowser(notificacao) {
            if (!notificacao) return;
            
            try {
                const dataHora = new Date(notificacao.data_agendada);
                const agora = new Date();
                const diffMinutos = Math.round((dataHora - agora) / (1000 * 60));
                const isAtrasada = diffMinutos < 0;

                const dataFormatada = dataHora.toLocaleString('pt-BR', {
                    day: '2-digit',
                    month: '2-digit',
                    year: 'numeric',
                    hour: '2-digit',
                    minute: '2-digit'
                });

                // Construir corpo mais informativo
                let bodyText = `📋 ${notificacao.nome || 'Atividade'}\n`;
                bodyText += `📅 ${dataFormatada}\n`;
                
                if (notificacao.duracao_minutos) {
                    bodyText += `⏱️ ${formatarDuracao(notificacao.duracao_minutos)}\n`;
                }
                
                if (notificacao.Nome_Cliente) {
                    bodyText += `👤 ${notificacao.Nome_Cliente}\n`;
                }
                
                bodyText += isAtrasada ? 
                    `🔴 ATRASADA ${Math.abs(diffMinutos)}min` : 
                    `🟡 Em ${diffMinutos}min`;

                // Notificação com ícone e interação
                const notification = new Notification(
                    isAtrasada ? '🔴 Atividade Atrasada' : '⏰ Lembrete de Atividade',
                    {
                        body: bodyText,
                        icon: '/favicon_io/favicon-32x32.png',
                        badge: '/favicon_io/favicon-32x32.png',
                        requireInteraction: true,
                        tag: 'son-notification-' + (notificacao.id || Date.now())
                    }
                );

                notification.onclick = function() {
                    window.focus();
                    this.close();
                };

                // Fechar automaticamente após 15 segundos
                setTimeout(() => {
                    if (notification) {
                        notification.close();
                    }
                }, 15000);

            } catch (error) {
                console.error('Erro ao criar notificação:', error);
            }
        }

        // Controle de notificações
        document.addEventListener('DOMContentLoaded', function() {
            const notificacoesAtivas = document.getElementById('notificacoesAtivas');
            if (notificacoesAtivas) {
                notificacoesAtivas.addEventListener('change', function(e) {
                    if (e.target.checked) {
                        localStorage.setItem('notificacoesAtivas', 'true');
                        if (inicializarNotificacoes()) {
                            atualizarStatusNotificacoes('🔔 Notificações ativadas');
                        }
                    } else {
                        localStorage.setItem('notificacoesAtivas', 'false');
                        atualizarStatusNotificacoes('🔕 Notificações desativadas');
                        atualizarBadgeNotificacao(0);
                    }
                });
            }
        });

        function atualizarStatusNotificacoes(mensagem) {
            const elementoStatus = document.getElementById('textoStatusNotificacoes');
            if (elementoStatus) {
                elementoStatus.textContent = mensagem;
                
                const containerStatus = document.getElementById('statusNotificacoes');
                if (containerStatus) {
                    containerStatus.classList.remove('alert-info', 'alert-success', 'alert-warning', 'alert-danger');
                    
                    if (mensagem.includes('encontrada') || mensagem.includes('✅')) {
                        containerStatus.classList.add('alert-success');
                    } else if (mensagem.includes('erro') || mensagem.includes('❌')) {
                        containerStatus.classList.add('alert-danger');
                    } else if (mensagem.includes('⚠️') || mensagem.includes('Aguardando')) {
                        containerStatus.classList.add('alert-warning');
                    } else {
                        containerStatus.classList.add('alert-info');
                    }
                }
            }
        }

        // Adicionar badge de notificação no título da página
        function atualizarBadgeNotificacao(quantidade) {
            const title = document.title.replace(/^\(\d+\)\s*/, '');
            
            if (quantidade > 0) {
                document.title = `(${quantidade}) ${title}`;
            } else {
                document.title = title;
            }
        }

        // Função de teste de notificação
        function testarNotificacao() {
            if (Notification.permission !== "granted") {
                alert("Primeiro conceda permissão para notificações");
                inicializarNotificacoes();
                return;
            }

            const notificacaoTeste = {
                id: 'teste',
                nome: 'Notificação de Teste',
                descricao: 'Esta é uma notificação de teste do sistema.',
                data_agendada: new Date().toISOString(),
                usuario_nome: '<?php echo htmlspecialchars($_SESSION['nome_usuario'] ?? 'Sistema'); ?>',
                duracao_minutos: 60,
                Nome_Cliente: 'Cliente Teste'
            };
            
            mostrarNotificacaoBrowser(notificacaoTeste);
            atualizarStatusNotificacoes('✅ Notificação de teste enviada');
        }

        // ========== SERVICE WORKER PARA NOTIFICAÇÕES EM BACKGROUND ==========
        
        // Registrar Service Worker para notificações em background
        if ('serviceWorker' in navigator) {
            navigator.serviceWorker.register('/sw.js')
                .then(function(registration) {
                    console.log('Service Worker registrado com sucesso:', registration);
                })
                .catch(function(error) {
                    console.log('Falha ao registrar Service Worker:', error);
                });
        }

        // ========== FIM DO SISTEMA DE NOTIFICAÇÕES ==========

        document.addEventListener('DOMContentLoaded', function() {
            const calendarEl = document.getElementById('calendar');
            const calendar = new FullCalendar.Calendar(calendarEl, {
                initialView: 'dayGridMonth',
                locale: 'pt-br',
                headerToolbar: {
                    left: 'prev,next today',
                    center: 'title',
                    right: 'dayGridMonth,timeGridWeek,timeGridDay'
                },
                buttonText: {
                    today: 'Hoje',
                    month: 'Mês',
                    week: 'Semana',
                    day: 'Dia'
                },
                events: [
                    <?php foreach ($atividades as $atividade): ?>
                    {
                        id: '<?php echo $atividade['id']; ?>',
                        title: '<?php echo addslashes($atividade['nome_cliente'] ?: $atividade['nome_atividade_original']); ?>',
                        start: '<?php echo $atividade['data_agendada']; ?>',
                        <?php if (!empty($atividade['duracao_minutos']) && $atividade['duracao_minutos'] > 0): ?>
                        end: '<?php 
                            $dataTermino = new DateTime($atividade['data_agendada']);
                            $dataTermino->add(new DateInterval('PT' . $atividade['duracao_minutos'] . 'M'));
                            echo $dataTermino->format('Y-m-d H:i:s');
                        ?>',
                        <?php endif; ?>
                        allDay: false,
                        extendedProps: {
                            descricao: '<?php echo addslashes($atividade['descricao'] ?? ''); ?>',
                            concluida: <?php echo $atividade['concluida'] ? 'true' : 'false'; ?>,
                            nome_atividade: '<?php echo addslashes($atividade['nome_atividade'] ?? ''); ?>',
                            descricao_atividade: '<?php echo addslashes($atividade['descricao_atividade'] ?? ''); ?>',
                            cliente_id: '<?php echo $atividade['cliente_id']; ?>',
                            usuario_nome: '<?php echo addslashes($atividade['usuario_nome'] ?? ''); ?>',
                            agenda_compartilhada: <?php echo $atividade['agenda_compartilhada'] ? 'true' : 'false'; ?>,
                            proprietario_id: <?php echo $atividade['proprietario_id']; ?>,
                            data_hora_original: '<?php echo $atividade['data_agendada']; ?>',
                            duracao_minutos: <?php echo $atividade['duracao_minutos'] ?? 0; ?>
                        },
                        color: getEventColor('<?php echo $atividade['data_agendada']; ?>', <?php echo $atividade['concluida'] ? 'true' : 'false'; ?>, <?php echo $atividade['agenda_compartilhada'] ? 'true' : 'false'; ?>, '<?php echo $atividade['cliente_id']; ?>')
                    },
                    <?php endforeach; ?>
                ],
                dateClick: function(info) {
                    abrirModalNovaAtividade(info.dateStr);
                },
                eventClick: function(info) {
                    mostrarDetalhesAtividade(info.event);
                },
                slotMinTime: "06:00:00",
                slotMaxTime: "22:00:00",
                slotDuration: "01:00:00",
                slotLabelInterval: "01:00:00",
                slotLabelFormat: {
                    hour: '2-digit',
                    minute: '2-digit',
                    hour12: false
                },
                eventTimeFormat: {
                    hour: '2-digit',
                    minute: '2-digit',
                    hour12: false
                }
            });
            calendar.render();

            function getEventColor(dataAgendada, concluida, agendaCompartilhada, clienteId) {
                if (agendaCompartilhada) {
                    return '#6c757d';
                }
                if (concluida) {
                    return '#28a745';
                }
                
                const hoje = new Date().toISOString().split('T')[0];
                const dataAtividade = dataAgendada.split(' ')[0];
                
                if (dataAtividade < hoje) {
                    return '#dc3545';
                } else if (dataAtividade === hoje) {
                    return '#ffc107';
                } else {
                    if (!clienteId || clienteId === 'null' || clienteId === '') {
                        return '#8B4513';
                    }
                    return '#17a2b8';
                }
            }

            // Atualizar preview da duração
            document.getElementById('duracao_minutos').addEventListener('input', function() {
                const minutos = this.value;
                document.getElementById('duracaoPreview').textContent = formatarDuracao(minutos);
            });

            document.getElementById('editarDuracaoMinutos').addEventListener('input', function() {
                const minutos = this.value;
                document.getElementById('editarDuracaoPreview').textContent = formatarDuracao(minutos);
            });

            // Verificar preferência salva ao carregar
            setTimeout(() => {
                if (localStorage.getItem('notificacoesAtivas') !== 'false') {
                    document.getElementById('notificacoesAtivas').checked = true;
                    inicializarNotificacoes();
                } else {
                    document.getElementById('notificacoesAtivas').checked = false;
                    atualizarStatusNotificacoes('🔕 Notificações desativadas');
                }
            }, 1000);

            // Verificar notificações a cada 1 minuto
            setInterval(() => {
                if (document.getElementById('notificacoesAtivas')?.checked && 
                    Notification.permission === "granted") {
                    console.log("Verificação automática de notificações...");
                    verificarNotificacoesBrowser();
                }
            }, 60000); // 1 minuto

            // Verificar imediatamente quando a página ganha foco
            document.addEventListener('visibilitychange', function() {
                if (!document.hidden && 
                    document.getElementById('notificacoesAtivas')?.checked && 
                    Notification.permission === "granted") {
                    console.log("Página em foco, verificando notificações...");
                    verificarNotificacoesBrowser();
                }
            });
        });

        function abrirModalNovaAtividade(dataSelecionada) {
            document.getElementById('dataSelecionada').value = dataSelecionada;
            document.getElementById('data_agendada').value = dataSelecionada;
            
            const agora = new Date();
            agora.setHours(agora.getHours() + 1);
            const horaPadrao = agora.toTimeString().substring(0, 5);
            document.getElementById('hora').value = horaPadrao;
            
            document.getElementById('enviar_email').checked = true;
            
            document.getElementById('novaAtividadeModal').style.display = 'block';
        }

        function fecharModalNovaAtividade() {
            document.getElementById('novaAtividadeModal').style.display = 'none';
        }

        function fecharModalAtividade() {
            document.getElementById('activityModal').style.display = 'none';
        }

        function fecharModalEditarAtividade() {
            document.getElementById('editarAtividadeModal').style.display = 'none';
        }

        function mostrarDetalhesAtividade(evento) {
            const props = evento.extendedProps;
            const modalTitle = document.getElementById('activityModalTitle');
            const modalBody = document.getElementById('activityModalBody');
            const modalActions = document.getElementById('activityModalActions');
            const readOnlyActions = document.getElementById('readOnlyActions');
            
            const isAgendaCompartilhada = props.agenda_compartilhada && props.proprietario_id != <?php echo $usuario_id; ?>;
            
            modalTitle.textContent = evento.title;
            
            const dataHoraOriginal = props.data_hora_original ? new Date(props.data_hora_original) : evento.start;
            
            let dataTerminoHTML = '';
            if (props.duracao_minutos && props.duracao_minutos > 0) {
                const dataTermino = new Date(dataHoraOriginal);
                dataTermino.setMinutes(dataTermino.getMinutes() + parseInt(props.duracao_minutos));
                dataTerminoHTML = `<p><strong>⏰ Término:</strong> ${dataTermino.toLocaleString('pt-BR', {
                    day: '2-digit',
                    month: '2-digit',
                    year: 'numeric',
                    hour: '2-digit',
                    minute: '2-digit'
                })}</p>`;
            }

            let html = `
                <div class="activity-details">
                    <p><strong>📅 Início:</strong> ${formatarData(dataHoraOriginal)}</p>
                    ${dataTerminoHTML}
                    ${props.duracao_minutos ? `<p><strong>⏱️ Duração:</strong> ${formatarDuracao(props.duracao_minutos)}</p>` : ''}
                    ${props.descricao ? `<p><strong>📝 Descrição:</strong> ${props.descricao}</p>` : ''}
                    ${props.nome_atividade ? `<p><strong>📊 Tipo de Atividade:</strong> ${props.nome_atividade}</p>` : ''}
                    ${props.usuario_nome ? `<p><strong>👨‍💼 Responsável:</strong> ${props.usuario_nome}</p>` : ''}
                    ${isAgendaCompartilhada ? `<p><strong>Status:</strong> <span class="badge-compartilhada">Agenda Compartilhada</span></p>` : ''}
                    <p><strong>Status:</strong> ${props.concluida ? '<span style="color: green;">✅ Concluída</span>' : '<span style="color: orange;">⏳ Pendente</span>'}</p>
                </div>
            `;
            
            modalBody.innerHTML = html;
            
            modalActions.innerHTML = '';
            
            if (isAgendaCompartilhada) {
                readOnlyActions.style.display = 'block';
                modalActions.style.display = 'none';
            } else {
                readOnlyActions.style.display = 'none';
                modalActions.style.display = 'flex';
                
                if (!props.concluida) {
                    const btnConcluir = document.createElement('button');
                    btnConcluir.className = 'btn-concluir';
                    btnConcluir.innerHTML = '<i class="fas fa-check"></i> Marcar como Concluída';
                    btnConcluir.onclick = () => concluirAtividade(evento.id);
                    modalActions.appendChild(btnConcluir);

                    const btnLembrete = document.createElement('button');
                    btnLembrete.className = 'btn-enviar-email';
                    btnLembrete.innerHTML = '<i class="fas fa-envelope"></i> Enviar Lembrete';
                    btnLembrete.onclick = () => enviarLembreteAtividade(evento.id);
                    modalActions.appendChild(btnLembrete);
                }
                
                const btnEditar = document.createElement('button');
                btnEditar.className = 'btn-editar';
                btnEditar.innerHTML = '<i class="fas fa-edit"></i> Editar';
                btnEditar.onclick = () => abrirModalEditarAtividade(evento);
                modalActions.appendChild(btnEditar);
                
                const btnExcluir = document.createElement('button');
                btnExcluir.className = 'btn-excluir';
                btnExcluir.innerHTML = '<i class="fas fa-trash"></i> Excluir';
                btnExcluir.onclick = () => excluirAtividade(evento.id);
                modalActions.appendChild(btnExcluir);
            }
            
            document.getElementById('activityModal').style.display = 'block';
        }

        function formatarData(dataISO) {
            const data = new Date(dataISO);
            return data.toLocaleString('pt-BR', {
                day: '2-digit',
                month: '2-digit',
                year: 'numeric',
                hour: '2-digit',
                minute: '2-digit'
            });
        }

        function concluirAtividade(atividadeId) {
            if (!confirm('Tem certeza que deseja marcar esta atividade como concluída?')) {
                return;
            }
            
            const enviarEmail = confirm('Deseja enviar e-mail de confirmação de conclusão?');
            
            fetch('concluir_atividade.php', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded',
                },
                body: `id=${atividadeId}&enviar_email=${enviarEmail ? 1 : 0}&csrf_token=<?php echo $_SESSION['csrf_token']; ?>`
            })
            .then(response => response.json())
            .then(data => {
                if (data.success) {
                    alert('Atividade marcada como concluída!' + (enviarEmail ? ' E-mail enviado.' : ''));
                    location.reload();
                } else {
                    alert('Erro ao concluir atividade: ' + data.message);
                }
            })
            .catch(error => {
                console.error('Erro:', error);
                alert('Erro ao concluir atividade.');
            });
        }

        function enviarLembreteAtividade(atividadeId) {
            if (!confirm('Enviar e-mail de lembrete para esta atividade?')) {
                return;
            }
            
            fetch('enviar_lembrete.php', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded',
                },
                body: `id=${atividadeId}&csrf_token=<?php echo $_SESSION['csrf_token']; ?>`
            })
            .then(response => response.json())
            .then(data => {
                if (data.success) {
                    alert('Lembrete enviado com sucesso!');
                } else {
                    alert('Erro ao enviar lembrete: ' + data.message);
                }
            })
            .catch(error => {
                console.error('Erro:', error);
                alert('Erro ao enviar lembrete.');
            });
        }

        function abrirModalEditarAtividade(evento) {
            const props = evento.extendedProps;
            
            fetch('buscar_atividade.php', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded',
                },
                body: `id=${evento.id}&csrf_token=<?php echo $_SESSION['csrf_token']; ?>`
            })
            .then(response => response.json())
            .then(data => {
                if (data.success) {
                    const atividade = data.atividade;
                    
                    document.getElementById('editarAtividadeId').value = atividade.id;
                    document.getElementById('editarNome').value = atividade.nome || evento.title;
                    document.getElementById('editarDescricao').value = atividade.descricao || '';
                    
                    if (atividade.data_agendada) {
                        const dataHora = new Date(atividade.data_agendada);
                        document.getElementById('editarData').value = dataHora.toISOString().split('T')[0];
                        document.getElementById('editarHora').value = dataHora.toTimeString().substring(0, 5);
                    }
                    
                    document.getElementById('editarDuracaoMinutos').value = atividade.duracao_minutos || 30;
                    document.getElementById('editarDuracaoPreview').textContent = formatarDuracao(atividade.duracao_minutos || 30);
                    
                    document.getElementById('editarNotificar').value = atividade.notificacao_minutos_antes || '0';
                    document.getElementById('editarClienteId').value = atividade.cliente_id || '';
                    document.getElementById('editarListaAtividadeId').value = atividade.lista_atividade_id || '';
                    
                    document.getElementById('editarAtividadeModal').style.display = 'block';
                } else {
                    alert('Erro ao carregar dados da atividade: ' + data.message);
                }
            })
            .catch(error => {
                console.error('Erro:', error);
                alert('Erro ao carregar dados da atividade.');
            });
        }

        function salvarEdicaoAtividade() {
            const form = document.getElementById('formEditarAtividade');
            const formData = new FormData(form);
            
            const enviarEmail = confirm('Deseja enviar e-mail de notificação sobre a alteração?');
            formData.append('enviar_email', enviarEmail ? 1 : 0);
            
            fetch('editar_atividade.php', {
                method: 'POST',
                body: formData
            })
            .then(response => response.json())
            .then(data => {
                if (data.success) {
                    alert('Atividade atualizada com sucesso!' + (enviarEmail ? ' E-mail enviado.' : ''));
                    location.reload();
                } else {
                    alert('Erro ao atualizar atividade: ' + data.message);
                }
            })
            .catch(error => {
                console.error('Erro:', error);
                alert('Erro ao atualizar atividade.');
            });
        }

        function excluirAtividade(atividadeId) {
            if (!confirm('Tem certeza que deseja excluir esta atividade? Esta ação não pode ser desfeita.')) {
                return;
            }
            
            fetch('excluir_atividade.php', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded',
                },
                body: `id=${atividadeId}&csrf_token=<?php echo $_SESSION['csrf_token']; ?>`
            })
            .then(response => response.json())
            .then(data => {
                if (data.success) {
                    alert('Atividade excluída com sucesso!');
                    location.reload();
                } else {
                    alert('Erro ao excluir atividade: ' + data.message);
                }
            })
            .catch(error => {
                console.error('Erro:', error);
                alert('Erro ao excluir atividade.');
            });
        }

        // Fechar modais ao clicar fora
        window.onclick = function(event) {
            const modals = document.getElementsByClassName('modal-activity');
            for (let modal of modals) {
                if (event.target === modal) {
                    modal.style.display = 'none';
                }
            }
        }


        // ========== SISTEMA DE ADIAR NOTIFICAÇÃO ==========

let notificacaoAtiva = null;
let timeoutNotificacao = null;














// ========== SISTEMA DE NOTIFICAÇÕES PERSISTENTES ==========

// ========== SISTEMA DE NOTIFICAÇÕES PERSISTENTES ==========

let notificacoesAtivas = new Map();

function mostrarNotificacaoPersistente(notificacao) {
    if (!notificacao) return;
    
    try {
        const dataHora = new Date(notificacao.data_agendada);
        const agora = new Date();
        const diffMinutos = Math.round((dataHora - agora) / (1000 * 60));
        const isAtrasada = diffMinutos < 0;

        const dataFormatada = dataHora.toLocaleString('pt-BR', {
            day: '2-digit',
            month: '2-digit',
            year: 'numeric',
            hour: '2-digit',
            minute: '2-digit'
        });

        let bodyText = `📋 ${notificacao.nome || 'Atividade'}\n`;
        bodyText += `📅 ${dataFormatada}\n`;
        
        if (notificacao.duracao_minutos) {
            bodyText += `⏱️ ${formatarDuracao(notificacao.duracao_minutos)}\n`;
        }
        
        if (notificacao.Nome_Cliente) {
            bodyText += `👤 ${notificacao.Nome_Cliente}\n`;
        }
        
        bodyText += isAtrasada ? 
            `🔴 ATRASADA ${Math.abs(diffMinutos)}min` : 
            `🟡 Em ${diffMinutos}min`;

        // Criar notificação persistente
        const notification = new Notification(
            isAtrasada ? '🔴 Atividade Atrasada' : '⏰ Lembrete de Atividade',
            {
                body: bodyText,
                icon: '/favicon_io/favicon-32x32.png',
                badge: '/favicon_io/favicon-32x32.png',
                requireInteraction: true, // Não fecha sozinha
                tag: 'son-persistent-' + notificacao.id
            }
        );

        // Armazenar referência
        notificacoesAtivas.set(notificacao.id, notification);

        // Quando a notificação é fechada
        notification.onclose = () => {
            notificacoesAtivas.delete(notificacao.id);
            fecharNotificacaoPagina(notificacao.id);
        };

        // Quando clica na notificação
        notification.onclick = () => {
            notification.close();
            abrirDetalhesAtividadeNotificacao(notificacao.id);
        };

        // Criar botões de ação na página
        criarBotoesAcaoNaPagina(notificacao.id);

    } catch (error) {
        console.error('Erro ao criar notificação persistente:', error);
    }
}

// Criar botões de ação na página
function criarBotoesAcaoNaPagina(atividadeId) {
    const existingContainer = document.getElementById(`botoes-notificacao-${atividadeId}`);
    if (existingContainer) {
        existingContainer.remove();
    }

    const container = document.createElement('div');
    container.id = `botoes-notificacao-${atividadeId}`;
    container.className = 'alert alert-warning alert-dismissible fade show';
    container.style.cssText = `
        position: fixed;
        top: 120px;
        right: 20px;
        z-index: 9999;
        min-width: 300px;
        box-shadow: 0 4px 12px rgba(0,0,0,0.3);
        margin-bottom: 10px;
    `;
    
    container.innerHTML = `
        <strong>⏰ Notificação Ativa</strong>
        <div class="mt-2">
            <button type="button" class="btn btn-sm btn-outline-primary me-1" onclick="adiarNotificacao(${atividadeId}, 5)">
                ⏰ 5min
            </button>
            <button type="button" class="btn btn-sm btn-outline-warning me-1" onclick="adiarNotificacao(${atividadeId}, 15)">
                ⏰ 15min
            </button>
            <button type="button" class="btn btn-sm btn-outline-success me-1" onclick="abrirDetalhesAtividadeNotificacao(${atividadeId})">
                📅 Ver
            </button>
            <button type="button" class="btn-close" onclick="fecharNotificacaoPagina(${atividadeId})"></button>
        </div>
    `;
    
    document.body.appendChild(container);
}

function fecharNotificacaoPagina(atividadeId) {
    const container = document.getElementById(`botoes-notificacao-${atividadeId}`);
    if (container) {
        container.remove();
    }
    
    // Fechar também a notificação do navegador
    const notification = notificacoesAtivas.get(atividadeId);
    if (notification) {
        notification.close();
    }
}

// Função para adiar notificação
function adiarNotificacao(atividadeId, minutos) {
    // Fechar notificação atual
    fecharNotificacaoPagina(atividadeId);
    
    fetch('adiar_notificacao.php', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
        },
        body: `id=${atividadeId}&minutos=${minutos}&csrf_token=<?php echo $_SESSION['csrf_token']; ?>`
    })
    .then(response => response.json())
    .then(data => {
        if (data.success) {
            console.log(`Notificação adiada por ${minutos} minutos`);
            
            // Mostrar confirmação
            if (Notification.permission === "granted") {
                const confirmation = new Notification('⏰ Notificação Adiada', {
                    body: `Lembrete reagendado para daqui a ${minutos} minutos`,
                    icon: '/favicon_io/favicon-32x32.png',
                    requireInteraction: false
                });
                
                // Fechar confirmação após 3 segundos
                setTimeout(() => {
                    if (confirmation) confirmation.close();
                }, 3000);
            }
        } else {
            console.error('Erro ao adiar notificação:', data.message);
            alert('Erro ao adiar notificação: ' + data.message);
        }
    })
    .catch(error => {
        console.error('Erro ao adiar notificação:', error);
        alert('Erro de conexão ao adiar notificação.');
    });
}

// Função para abrir detalhes da atividade a partir da notificação
function abrirDetalhesAtividadeNotificacao(atividadeId) {
    // Fechar notificação
    fecharNotificacaoPagina(atividadeId);
    
    // Buscar dados da atividade e abrir modal
    fetch('buscar_atividade.php', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
        },
        body: `id=${atividadeId}&csrf_token=<?php echo $_SESSION['csrf_token']; ?>`
    })
    .then(response => response.json())
    .then(data => {
        if (data.success) {
            // Simular evento para abrir modal
            const eventoSimulado = {
                id: atividadeId,
                title: data.atividade.nome,
                extendedProps: data.atividade
            };
            mostrarDetalhesAtividade(eventoSimulado);
        } else {
            alert('Erro ao carregar atividade: ' + data.message);
        }
    })
    .catch(error => {
        console.error('Erro ao buscar atividade:', error);
        alert('Erro ao carregar detalhes da atividade.');
    });
}

// ========== MODIFICAÇÃO NA FUNÇÃO PRINCIPAL ==========

// Na função verificarNotificacoesBrowser(), substitua a chamada:
// De: mostrarNotificacaoBrowser(notificacao);
// Para: mostrarNotificacaoPersistente(notificacao);

// LOCALIZE esta linha no código (por volta da linha 650):
// notificacoes.forEach(notificacao => {
//     mostrarNotificacaoBrowser(notificacao);
// });

// E SUBSTITUA por:
// notificacoes.forEach(notificacao => {
//     mostrarNotificacaoPersistente(notificacao);
// });

// ========== MODIFICAÇÃO NA FUNÇÃO PRINCIPAL ==========

// Na função verificarNotificacoesBrowser(), substitua:
// mostrarNotificacaoBrowser(notificacao);
// por:

    </script>
</body>
</html>