<?php
session_start();

function obter_pagina_principal_por_nivel($nivel) {
    $nivel_normalizado = strtolower(trim((string)$nivel));
    return ($nivel_normalizado === 'administrador') ? 'principal_administrador.php' : 'principal_operador.php';
}

function gerar_captcha_login() {
    $a = random_int(1, 9);
    $b = random_int(1, 9);
    $operador = random_int(0, 1) ? '+' : '-';

    if ($operador === '-' && $b > $a) {
        [$a, $b] = [$b, $a];
    }

    $_SESSION['captcha_pergunta'] = $a . ' ' . $operador . ' ' . $b . ' = ?';
    $_SESSION['captcha_resposta'] = (string)(($operador === '+') ? ($a + $b) : ($a - $b));
}

// Se já está logado, redireciona para tela principal
if (isset($_SESSION['usuario_id'])) {
    header('Location: ' . obter_pagina_principal_por_nivel($_SESSION['usuario_nivel'] ?? ''));
    exit;
}

if (isset($_GET['novo_captcha'])) {
    gerar_captcha_login();
    header('Location: login.php');
    exit;
}

include 'conexao.php';
include 'config/log_utils.php';
$conn = conectar_banco();
garantir_estrutura_logs($conn);

// Buscar informações da empresa e aplicação da tabela config
$config = ['empresa' => 'BELGO', 'nome_aplicacao' => 'Aplicação BMS - Questionário', 'nomedaaplicacao' => 'BMS MKT'];
try {
    $result = $conn->query("SELECT empresa, nomedaaplicacao FROM config LIMIT 1");
    if ($result && $row = $result->fetch_assoc()) {
        $config['empresa'] = $row['empresa'] ?? $config['empresa'];
        $config['nomedaaplicacao'] = $row['nomedaaplicacao'] ?? $config['nomedaaplicacao'];
    }
} catch (Exception $e) {
    // Se a tabela não existir, usa valores padrão
}

$erro = '';
$usuario_salvo = trim((string)($_COOKIE['login_usuario'] ?? ''));
$usuario_preenchido = $usuario_salvo;
$lembrar_marcado = ($usuario_salvo !== '');

$branding = [
    'logo' => 'https://bmsmkt.com.br/wp-content/uploads/2024/09/bmsmkt.png',
    'whatsapp' => 'https://api.whatsapp.com/send?phone=5511911179479',
    'fone_1' => '(11) 3181-1444',
    'fone_2' => '(11) 91117-9479',
    'endereco' => 'Av. Valentim Gentil, 26 – Butantã – São Paulo/SP',
    'cnpj' => '13.940.733/0001-58'
];

if (!isset($_SESSION['captcha_pergunta'], $_SESSION['captcha_resposta'])) {
    gerar_captcha_login();
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $usuario = trim($_POST['usuario'] ?? '');
    $senha = $_POST['senha'] ?? '';
    $captcha = trim($_POST['captcha'] ?? '');
    $lembrar_me = isset($_POST['lembrar_me']) && $_POST['lembrar_me'] === '1';

    $usuario_preenchido = $usuario;
    $lembrar_marcado = $lembrar_me;

    if ($captcha === '' || !isset($_SESSION['captcha_resposta']) || !hash_equals((string)$_SESSION['captcha_resposta'], $captcha)) {
        $erro = 'Captcha inválido. Resolva a conta corretamente.';
        registrar_log_interacao(
            $conn,
            'LOGIN_FALHA_CAPTCHA',
            'Captcha informado invalido',
            [
                'usuario_nome' => $usuario,
                'usuario_login' => $usuario,
                'usuario_nivel' => 'anonimo',
                'usuario_id' => 0,
                'modulo' => 'login.php'
            ]
        );
        gerar_captcha_login();
    } elseif ($usuario && $senha) {
        $stmt = $conn->prepare("SELECT id, usuario, senha, nivel, nome FROM usuarios WHERE usuario = ? AND ativo = 'S'");
        $stmt->bind_param('s', $usuario);
        $stmt->execute();
        $result = $stmt->get_result();
    
        if ($row = $result->fetch_assoc()) {
            if (password_verify($senha, $row['senha'])) {
                session_regenerate_id(true);
                $_SESSION['usuario_id'] = $row['id'];
                $_SESSION['usuario_nome'] = $row['nome'];
                $_SESSION['usuario_login'] = $row['usuario'];
                $_SESSION['usuario_nivel'] = $row['nivel'];

                registrar_log_interacao(
                    $conn,
                    'LOGIN_SUCESSO',
                    'Autenticacao realizada com sucesso',
                    ['modulo' => 'login.php']
                );

                $cookie_secure = !empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off';
                $cookie_options = [
                    'expires' => $lembrar_me ? (time() + (60 * 60 * 24 * 30)) : (time() - 3600),
                    'path' => '/',
                    'secure' => $cookie_secure,
                    'httponly' => true,
                    'samesite' => 'Lax'
                ];

                if ($lembrar_me) {
                    setcookie('login_usuario', $usuario, $cookie_options);
                } else {
                    setcookie('login_usuario', '', $cookie_options);
                }
                
                header('Location: ' . obter_pagina_principal_por_nivel($row['nivel'] ?? ''));
                exit;
            } else {
                $erro = 'Usuário ou senha inválidos.';
                registrar_log_interacao(
                    $conn,
                    'LOGIN_FALHA',
                    'Senha invalida para o usuario informado',
                    [
                        'usuario_nome' => $usuario,
                        'usuario_login' => $usuario,
                        'usuario_nivel' => 'anonimo',
                        'usuario_id' => 0,
                        'modulo' => 'login.php'
                    ]
                );
                gerar_captcha_login();
            }
        } else {
            $erro = 'Usuário ou senha inválidos.';
            registrar_log_interacao(
                $conn,
                'LOGIN_FALHA',
                'Usuario nao encontrado ou inativo',
                [
                    'usuario_nome' => $usuario,
                    'usuario_login' => $usuario,
                    'usuario_nivel' => 'anonimo',
                    'usuario_id' => 0,
                    'modulo' => 'login.php'
                ]
            );
            gerar_captcha_login();
        }
        $stmt->close();
    } else {
        $erro = 'Preencha todos os campos.';
        registrar_log_interacao(
            $conn,
            'LOGIN_FALHA_VALIDACAO',
            'Tentativa de login sem preencher todos os campos',
            [
                'usuario_nome' => $usuario,
                'usuario_login' => $usuario,
                'usuario_nivel' => 'anonimo',
                'usuario_id' => 0,
                'modulo' => 'login.php'
            ]
        );
        gerar_captcha_login();
    }
}
$captcha_pergunta = (string)($_SESSION['captcha_pergunta'] ?? '');
$conn->close();
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Login - <?= htmlspecialchars($config['nome_aplicacao']) ?></title>
    <style>
        * { margin: 0; padding: 0; box-sizing: border-box; }

        :root {
            --ink: #0a1d44;
            --text: #eaf0fb;
            --muted: #bfd0ef;
            --accent: #ff8a00;
            --accent-2: #f97316;
            --brand-blue: #0f3b87;
            --brand-blue-2: #1f5eb8;
            --danger-bg: rgba(127, 29, 29, 0.75);
            --danger-border: rgba(248, 113, 113, 0.45);
        }

        body {
            font-family: "Segoe UI", Arial, sans-serif;
            min-height: 100vh;
            color: var(--text);
            background-color: #071229;
            background-image:
                radial-gradient(circle at 16% 20%, rgba(255, 138, 0, 0.25), transparent 34%),
                radial-gradient(circle at 85% 15%, rgba(31, 94, 184, 0.45), transparent 35%),
                linear-gradient(130deg, rgba(6, 18, 47, 0.95), rgba(7, 24, 64, 0.9));
            background-size: cover, cover, cover;
            background-position: center, center, center;
            background-attachment: fixed;
            padding: 20px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .page {
            width: 100%;
            max-width: 1150px;
            min-height: 620px;
            border-radius: 20px;
            overflow: hidden;
            display: grid;
            grid-template-columns: 1.25fr minmax(360px, 420px);
            background: rgba(10, 29, 68, 0.3);
            backdrop-filter: blur(5px);
            box-shadow: 0 30px 80px rgba(0, 0, 0, 0.45);
            border: 1px solid rgba(255, 255, 255, 0.12);
        }

        .hero {
            position: relative;
            padding: 42px;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            background:
                linear-gradient(180deg, rgba(10, 26, 63, 0.84), rgba(5, 18, 49, 0.95));
        }

        .hero::after {
            content: '';
            position: absolute;
            inset: 0;
            background:
                radial-gradient(circle at 15% 15%, rgba(255, 138, 0, 0.22), transparent 35%),
                radial-gradient(circle at 85% 80%, rgba(46, 113, 220, 0.22), transparent 40%);
            opacity: 0.6;
            pointer-events: none;
        }

        .hero-top {
            display: flex;
            align-items: center;
            gap: 12px;
            margin-bottom: 12px;
        }

        .hero-brand-logo {
            width: 160px;
            max-width: 100%;
            height: auto;
            filter: drop-shadow(0 8px 18px rgba(0, 0, 0, 0.35));
        }

        .hero > * {
            position: relative;
            z-index: 1;
        }

        .hero-badge {
            width: fit-content;
            padding: 7px 12px;
            border-radius: 999px;
            font-size: 12px;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            font-weight: 700;
            background: rgba(255, 138, 0, 0.14);
            border: 1px solid rgba(255, 138, 0, 0.4);
            color: #ffd6a3;
        }

        .hero h2 {
            margin-top: 20px;
            max-width: 520px;
            font-size: clamp(28px, 4vw, 46px);
            line-height: 1.12;
            text-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
        }

        .hero p {
            margin-top: 16px;
            max-width: 520px;
            color: #dbe6ff;
            line-height: 1.55;
            font-size: 16px;
        }

        .hero-cards {
            margin-top: 30px;
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 12px;
        }

        .hero-card {
            padding: 12px;
            border-radius: 12px;
            border: 1px solid rgba(255, 255, 255, 0.2);
            background: rgba(15, 23, 42, 0.45);
            backdrop-filter: blur(2px);
            min-height: 105px;
        }

        .hero-card-title {
            font-size: 13px;
            font-weight: 700;
            color: #ffd6a3;
            margin-bottom: 8px;
            text-transform: uppercase;
            letter-spacing: 0.04em;
        }

        .hero-card p {
            margin: 0;
            font-size: 13px;
            color: #d8e7ff;
            line-height: 1.45;
        }

        .hero-client-logos {
            margin-top: 14px;
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 10px;
        }

        .hero-client-logos img {
            width: 100%;
            max-height: 32px;
            object-fit: contain;
            padding: 4px 8px;
            border-radius: 8px;
            border: 1px solid rgba(255, 255, 255, 0.16);
            background: rgba(255, 255, 255, 0.07);
        }

        .login-container {
            padding: 38px 30px;
            background: rgba(8, 25, 61, 0.86);
            border-left: 1px solid rgba(255, 255, 255, 0.1);
            display: flex;
            flex-direction: column;
            justify-content: center;
        }

        .logo {
            margin-bottom: 28px;
        }

        .logo img {
            width: 160px;
            max-width: 100%;
            height: auto;
            margin-bottom: 14px;
            filter: drop-shadow(0 6px 16px rgba(0, 0, 0, 0.28));
        }

        .logo h1 {
            color: #f8fafc;
            font-size: 30px;
            line-height: 1.2;
            margin-bottom: 6px;
        }

        .logo p {
            color: var(--muted);
            font-size: 14px;
        }

        .form-group {
            margin-bottom: 18px;
        }

        .inline-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
            margin-bottom: 16px;
        }

        .remember-wrap {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            color: #dbe6fb;
            font-size: 13px;
        }

        .captcha-help {
            font-size: 12px;
            color: #a8bfdc;
            margin-top: 6px;
        }

        .captcha-refresh {
            background: transparent;
            color: #cdd8ef;
            border: 1px solid rgba(255,255,255,0.28);
            border-radius: 8px;
            padding: 6px 10px;
            cursor: pointer;
            font-size: 12px;
        }

        .captcha-refresh:hover {
            border-color: rgba(255, 138, 0, 0.55);
            color: #ffe4bf;
        }

        label {
            display: block;
            color: #cbd5e1;
            font-weight: 600;
            margin-bottom: 8px;
        }

        input[type="text"],
        input[type="password"] {
            width: 100%;
            padding: 12px 13px;
            border: 1px solid rgba(148, 163, 184, 0.35);
            border-radius: 10px;
            font-size: 14px;
            background: rgba(15, 23, 42, 0.6);
            color: #f8fafc;
            transition: border-color 0.2s, box-shadow 0.2s;
        }

        input[type="text"]::placeholder,
        input[type="password"]::placeholder {
            color: #94a3b8;
        }

        input[type="text"]:focus,
        input[type="password"]:focus {
            outline: none;
            border-color: rgba(255, 138, 0, 0.8);
            box-shadow: 0 0 0 3px rgba(255, 138, 0, 0.2);
        }

        .btn-login {
            width: 100%;
            padding: 12px;
            margin-top: 6px;
            background: linear-gradient(120deg, var(--brand-blue), var(--accent));
            color: #f8fafc;
            border: none;
            border-radius: 10px;
            font-size: 16px;
            font-weight: 700;
            cursor: pointer;
            transition: transform 0.16s, box-shadow 0.16s;
            box-shadow: 0 12px 24px rgba(8, 25, 61, 0.42);
        }

        .btn-login:hover {
            transform: translateY(-1px);
            box-shadow: 0 16px 24px rgba(8, 25, 61, 0.52);
        }

        .brand-contact {
            margin-top: 14px;
            padding: 10px 12px;
            border: 1px solid rgba(255, 255, 255, 0.18);
            border-radius: 10px;
            background: rgba(255, 255, 255, 0.04);
            color: #dbe6fb;
            font-size: 12px;
            line-height: 1.55;
        }

        .brand-contact strong {
            color: #ffcf94;
        }


        .erro {
            background: var(--danger-bg);
            border: 1px solid var(--danger-border);
            color: #fecaca;
            padding: 12px;
            border-radius: 10px;
            margin-bottom: 20px;
            text-align: center;
            font-size: 13px;
        }

        .footer {
            text-align: center;
            margin-top: 22px;
            color: #94a3b8;
            font-size: 12px;
            letter-spacing: 0.04em;
        }

        .password-wrapper {
            position: relative;
            display: flex;
            align-items: center;
        }

        .password-wrapper input {
            width: 100%;
            padding-right: 44px;
        }

        .toggle-password {
            position: absolute;
            right: 12px;
            cursor: pointer;
            user-select: none;
            font-size: 19px;
            opacity: 0.85;
            transition: transform 0.2s, opacity 0.2s;
        }

        .toggle-password:hover {
            opacity: 1;
            transform: scale(1.06);
        }

        @media (max-width: 980px) {
            .page {
                grid-template-columns: 1fr;
                max-width: 520px;
                min-height: auto;
            }

            .hero {
                display: none;
            }

            .login-container {
                border-left: none;
            }
        }
    </style>
    <script>
        function togglePassword() {
            const senhaInput = document.getElementById('senha');
            const toggleIcon = document.querySelector('.toggle-password');
            
            if (senhaInput.type === 'password') {
                senhaInput.type = 'text';
                toggleIcon.textContent = '🔒';
                toggleIcon.title = 'Ocultar senha';
            } else {
                senhaInput.type = 'password';
                toggleIcon.textContent = '👁️';
                toggleIcon.title = 'Mostrar senha';
            }
        }
    </script>
</head>
<body>
    <div class="page">
        <aside class="hero">
            <div>
                <div class="hero-top">
                    <img class="hero-brand-logo" src="<?= htmlspecialchars($branding['logo']) ?>" alt="Logo BMSmkt">
                </div>
                <span class="hero-badge">Pesquisa + SDR</span>
                <h2>Você quer mais reuniões agendadas? Enchemos seu funil de vendas para você vender mais e melhor.</h2>
                <p>A BMSmkt é especialista em geração de leads qualificados e Prospecção Ativa B2B, com mais de 30 anos de atuação em diversos segmentos de mercado.</p>
            </div>

            <div class="hero-cards">
                <div class="hero-card">
                    <div class="hero-card-title">Pesquisa de mercado</div>
                    <p>Prospecção de clientes com segmentação inteligente e foco em empresas com real potencial comercial.</p>
                </div>
                <div class="hero-card">
                    <div class="hero-card-title">Rotina SDR</div>
                    <p>Qualificação, abordagem ativa e agendamento de reuniões com tomadores de decisão no B2B.</p>
                </div>
            </div>

            <div class="hero-client-logos">
                <img src="https://bmsmkt.com.br/wp-content/uploads/2022/04/Dell.png" alt="Cliente Dell">
                <img src="https://bmsmkt.com.br/wp-content/uploads/2022/04/Oracle.png" alt="Cliente Oracle">
                <img src="https://bmsmkt.com.br/wp-content/uploads/2022/04/kyocera.png" alt="Cliente Kyocera">
            </div>
        </aside>

        <div class="login-container">
            <div class="logo">
                <img src="<?= htmlspecialchars($branding['logo']) ?>" alt="BMSmkt">
                <h1><?= htmlspecialchars($config['nome_aplicacao']) ?></h1>
                <p>Geração de Leads Qualificados e Prospecção B2B</p>
            </div>

            <?php if ($erro): ?>
            <div class="erro"><?= htmlspecialchars($erro) ?></div>
            <?php endif; ?>

            <form method="POST">
                <div class="form-group">
                    <label for="usuario">Usuário</label>
                    <input type="text" id="usuario" name="usuario" required autofocus placeholder="Digite seu usuário" value="<?= htmlspecialchars($usuario_preenchido) ?>">
                </div>

                <div class="form-group">
                    <label for="senha">Senha</label>
                    <div class="password-wrapper">
                        <input type="password" id="senha" name="senha" required placeholder="Digite sua senha">
                        <span class="toggle-password" onclick="togglePassword()" title="Mostrar senha">👁️</span>
                    </div>
                </div>

                <div class="form-group">
                    <div class="inline-row">
                        <label for="captcha" style="margin-bottom: 0;">Captcha: <?= htmlspecialchars($captcha_pergunta) ?></label>
                        <button type="button" class="captcha-refresh" onclick="window.location.href='login.php?novo_captcha=1'">🔄 Novo captcha</button>
                    </div>
                    <input type="text" id="captcha" name="captcha" required placeholder="Digite o resultado da conta">
                    <div class="captcha-help">Ajuda a bloquear tentativas automáticas de acesso.</div>
                </div>

                <div class="inline-row" style="justify-content: flex-start; margin-bottom: 18px;">
                    <label class="remember-wrap" for="lembrar_me">
                        <input type="checkbox" id="lembrar_me" name="lembrar_me" value="1" <?= $lembrar_marcado ? 'checked' : '' ?>>
                        Lembrar-me neste dispositivo
                    </label>
                </div>

                <button type="submit" class="btn-login">Entrar</button>
            </form>

            <div class="brand-contact">
                <div><strong>Contato:</strong> <?= htmlspecialchars($branding['fone_1']) ?> • <?= htmlspecialchars($branding['fone_2']) ?></div>
                <div><strong>Endereço:</strong> <?= htmlspecialchars($branding['endereco']) ?></div>
                <div><strong>CNPJ:</strong> <?= htmlspecialchars($branding['cnpj']) ?></div>
            </div>

            <div class="footer">
                <?= htmlspecialchars($config['nomedaaplicacao']) ?> - <?= htmlspecialchars($config['empresa']) ?> • Todos os Direitos Reservados – BMSmkt
            </div>
        </div>
    </div>
</body>
</html>
