<?php

declare(strict_types=1);

if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

require_once __DIR__ . '/config.php';
require_once __DIR__ . '/config_ui.php';

$consultaSession = is_array($_SESSION['consulta'] ?? null)
    && array_key_exists('uid', $_SESSION['consulta']);
$standardRole = strtolower(trim((string) ($_SESSION['rol'] ?? '')));
$standardUser = in_array($standardRole, ['usuario', 'cliente'], true);

if (!$consultaSession && !$standardUser) {
    header('Location: login_consulta.php?error=2');
    exit;
}

if (!function_exists('af_manual_user_e')) {
    function af_manual_user_e(mixed $value): string
    {
        return htmlspecialchars((string) $value, ENT_QUOTES, 'UTF-8');
    }
}

$accessType = trim((string) ($_SESSION['consulta']['tipo_acceso'] ?? 'cliente'));
$consultaRole = strtolower(trim((string) ($_SESSION['consulta']['rol'] ?? '')));
if ($consultaRole === 'revendedor') {
    header('Location: manual_revendedor.php');
    exit;
}

$userName = trim((string) (
    $_SESSION['consulta']['nombre_usuario']
    ?? $_SESSION['nombre_usuario']
    ?? $_SESSION['usuario']
    ?? 'Usuario'
)) ?: 'Usuario';
$isSingleAccount = $accessType === 'cuenta_unica';
$accountEmail = strtolower(trim((string) ($_SESSION['consulta']['correo_permitido'] ?? '')));
$accountPlatformId = (int) ($_SESSION['consulta']['plataforma_permitida'] ?? 0);
$accountPlatformName = trim((string) ($_SESSION['consulta']['plataforma_nombre'] ?? ''));
$accountCode = trim((string) ($_SESSION['consulta']['codigo_consulta'] ?? ''));

if ($isSingleAccount && $accountPlatformName === '' && $accountPlatformId > 0) {
    try {
        $platformStmt = $pdo->prepare('SELECT nombre FROM plataformas WHERE id = ? LIMIT 1');
        $platformStmt->execute([$accountPlatformId]);
        $accountPlatformName = trim((string) ($platformStmt->fetchColumn() ?: ''));
        if ($accountPlatformName !== '') {
            $_SESSION['consulta']['plataforma_nombre'] = $accountPlatformName;
        }
    } catch (Throwable $ignored) {
        $accountPlatformName = '';
    }
}

$accountPlatformName = $accountPlatformName !== '' ? $accountPlatformName : 'Cuenta individual';
$accountUrl = 'consulta.php';
if ($isSingleAccount && $accountPlatformId > 0 && filter_var($accountEmail, FILTER_VALIDATE_EMAIL)) {
    $accountUrl .= '?' . http_build_query([
        'plataforma' => $accountPlatformId,
        'correo' => $accountEmail,
        'continuar' => '1',
    ], '', '&', PHP_QUERY_RFC3986);
}

$titulo_pagina = $isSingleAccount ? 'Manual de cuenta individual' : 'Manual de uso';
require_once __DIR__ . '/header_publico.php';
?>
<style>
.user-manual{width:min(1120px,100%);margin:0 auto;color:#172033}.user-manual *{box-sizing:border-box}.um-hero{position:relative;overflow:hidden;padding:34px;border:1px solid rgba(255,255,255,.75);border-radius:25px;background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(248,250,252,.95));box-shadow:0 26px 70px rgba(2,6,23,.24)}.um-hero:after{content:'\f02d';position:absolute;right:42px;top:50%;transform:translateY(-50%) rotate(-8deg);font-family:'Font Awesome 6 Free';font-weight:900;font-size:150px;color:color-mix(in srgb,var(--brand-primary) 7%,transparent)}.um-hero-copy{position:relative;z-index:2;max-width:780px}.um-kicker{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border-radius:999px;background:color-mix(in srgb,var(--brand-primary) 10%,#fff);color:var(--brand-primary);font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.um-hero h1{margin:16px 0 10px;font-size:clamp(31px,4vw,48px);line-height:1.02;letter-spacing:-.045em}.um-hero p{margin:0;color:#64748b;font-size:13px;line-height:1.7}.um-userline{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.um-chip{display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:0 10px;border:1px solid #dbe4ef;border-radius:999px;background:#fff;color:#475569;font-size:9.5px;font-weight:800}.um-chip i{color:var(--brand-primary)}.um-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px}.um-btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 15px;border:1px solid #dbe4ef;border-radius:12px;background:#fff;color:#334155;text-decoration:none;font-size:10.5px;font-weight:900}.um-btn.primary{border-color:var(--brand-primary);background:var(--brand-primary);color:#fff}.um-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:16px 0}.um-nav a{display:flex;align-items:center;gap:9px;min-height:52px;padding:10px 12px;border:1px solid #dfe7f1;border-radius:13px;background:#fff;color:#334155;text-decoration:none;font-size:10px;font-weight:850;box-shadow:0 8px 22px rgba(15,23,42,.05)}.um-nav i{width:29px;height:29px;display:grid;place-items:center;flex:0 0 29px;border-radius:9px;background:color-mix(in srgb,var(--brand-primary) 10%,#fff);color:var(--brand-primary)}.um-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.um-card{overflow:hidden;border:1px solid #dfe7f1;border-radius:19px;background:#fff;box-shadow:0 13px 34px rgba(15,23,42,.07)}.um-card.wide{grid-column:1/-1}.um-head{display:flex;align-items:center;gap:12px;padding:17px 19px;border-bottom:1px solid #e7edf4;background:linear-gradient(180deg,#fff,#fbfcfe)}.um-icon{width:43px;height:43px;display:grid;place-items:center;flex:0 0 43px;border-radius:13px;background:color-mix(in srgb,var(--brand-primary) 11%,#fff);color:var(--brand-primary);font-size:17px}.um-head h2{margin:0;font-size:16px;font-weight:900}.um-head p{margin:3px 0 0;color:#64748b;font-size:10px}.um-body{padding:18px 20px;color:#475569;font-size:11.5px;line-height:1.65}.um-steps{display:grid;gap:10px;margin:0;padding:0;list-style:none}.um-steps li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:start}.um-steps li>.um-step{width:30px;height:30px;display:grid!important;place-items:center!important;margin:0!important;border-radius:9px;background:var(--brand-primary);color:#fff;font-size:10px;font-weight:900;line-height:1}.um-steps strong{display:block;color:#172033;font-size:11.5px}.um-steps li>div>span{display:block;margin-top:2px}.um-account{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.um-account-item{padding:13px;border:1px solid #dfe7f1;border-radius:13px;background:#f8fafc}.um-account-item i{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#fff;color:var(--brand-primary);box-shadow:0 6px 16px rgba(15,23,42,.06)}.um-account-item strong,.um-account-item span{display:block}.um-account-item strong{margin-top:8px;color:#172033;font-size:10px}.um-account-item span{margin-top:3px;overflow-wrap:anywhere}.um-note{display:flex;gap:10px;margin-top:12px;padding:12px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff;color:#1e40af}.um-note.warning{border-color:#fed7aa;background:#fff7ed;color:#9a3412}.um-note i{margin-top:3px}.um-faq{display:grid;gap:8px}.um-faq details{padding:12px 14px;border:1px solid #dfe7f1;border-radius:12px;background:#f8fafc}.um-faq summary{cursor:pointer;color:#172033;font-weight:900}.um-faq p{margin:8px 0 0}
@media(max-width:900px){.um-nav{grid-template-columns:repeat(2,1fr)}.um-grid{grid-template-columns:1fr}.um-card.wide{grid-column:auto}.um-hero:after{right:5px;opacity:.55}}
@media(max-width:600px){.um-hero{padding:25px 21px}.um-hero:after{display:none}.um-nav,.um-account{grid-template-columns:1fr}.um-actions .um-btn{width:100%}}
</style>

<div class="user-manual">
<?php if ($isSingleAccount): ?>
    <section class="um-hero">
        <div class="um-hero-copy">
            <span class="um-kicker"><i class="fas fa-envelope-open-text"></i> Manual de cuenta individual</span>
            <h1>Consulta únicamente la cuenta autorizada para tu ID.</h1>
            <p>Has ingresado como invitado mediante un ID individual. Este acceso está limitado a la plataforma y al correo vinculados por tu proveedor.</p>
            <div class="um-userline">
                <span class="um-chip"><i class="fas fa-user-clock"></i>Invitado</span>
                <span class="um-chip"><i class="fas fa-layer-group"></i><?= af_manual_user_e($accountPlatformName) ?></span>
                <?php if ($accountCode !== ''): ?><span class="um-chip"><i class="fas fa-key"></i>ID: <?= af_manual_user_e($accountCode) ?></span><?php endif; ?>
            </div>
            <div class="um-actions">
                <a class="um-btn primary" href="<?= af_manual_user_e($accountUrl) ?>"><i class="fas fa-envelope-open-text"></i>Abrir mi cuenta</a>
                <a class="um-btn" href="logout_consulta.php"><i class="fas fa-arrow-right-from-bracket"></i>Cerrar sesión</a>
            </div>
        </div>
    </section>

    <nav class="um-nav" aria-label="Contenido del manual">
        <a href="#cuenta"><i class="fas fa-id-card"></i>Mi acceso</a>
        <a href="#consulta"><i class="fas fa-magnifying-glass"></i>Consultar</a>
        <a href="#mensajes"><i class="fas fa-envelope-open-text"></i>Mensajes</a>
        <a href="#seguridad"><i class="fas fa-shield-halved"></i>Seguridad</a>
    </nav>

    <div class="um-grid">
        <section id="cuenta" class="um-card">
            <header class="um-head"><span class="um-icon"><i class="fas fa-id-card"></i></span><div><h2>1. Tu cuenta autorizada</h2><p>El ID individual funciona solamente con estos datos.</p></div></header>
            <div class="um-body">
                <div class="um-account">
                    <article class="um-account-item"><i class="fas fa-layer-group"></i><strong>Plataforma</strong><span><?= af_manual_user_e($accountPlatformName) ?></span></article>
                    <article class="um-account-item"><i class="fas fa-envelope"></i><strong>Correo vinculado</strong><span><?= af_manual_user_e($accountEmail !== '' ? $accountEmail : 'Cuenta protegida') ?></span></article>
                </div>
                <div class="um-note"><i class="fas fa-circle-info"></i><span>No puedes cambiar el correo ni consultar cuentas diferentes con este ID.</span></div>
            </div>
        </section>

        <section id="consulta" class="um-card">
            <header class="um-head"><span class="um-icon"><i class="fas fa-magnifying-glass"></i></span><div><h2>2. Cómo consultar</h2><p>La plataforma y el correo quedan vinculados a tu sesión.</p></div></header>
            <div class="um-body">
                <ol class="um-steps">
                    <li><span class="um-step">1</span><div><strong>Abre “Mi cuenta”</strong><span>La barra superior te lleva directamente a la consulta correspondiente.</span></div></li>
                    <li><span class="um-step">2</span><div><strong>Confirma la plataforma</strong><span>Selecciona la plataforma asociada cuando sea necesario.</span></div></li>
                    <li><span class="um-step">3</span><div><strong>Pulsa Consultar</strong><span>El sistema buscará únicamente mensajes relacionados con el correo autorizado.</span></div></li>
                </ol>
            </div>
        </section>

        <section id="mensajes" class="um-card wide">
            <header class="um-head"><span class="um-icon"><i class="fas fa-envelope-open-text"></i></span><div><h2>3. Resultados y mensajes privados</h2><p>Tu ID individual valida el acceso a la cuenta relacionada.</p></div></header>
            <div class="um-body">
                <ol class="um-steps">
                    <li><span class="um-step">1</span><div><strong>Revisa los asuntos encontrados</strong><span>Elige el mensaje reciente que corresponda al código o enlace solicitado.</span></div></li>
                    <li><span class="um-step">2</span><div><strong>Abre el contenido</strong><span>Los mensajes públicos se muestran directamente y los privados se validan con tu sesión activa.</span></div></li>
                    <li><span class="um-step">3</span><div><strong>Cierra el modal</strong><span>Usa el botón Cerrar, la X, un clic fuera del modal o la tecla Escape.</span></div></li>
                </ol>
                <div class="um-note warning"><i class="fas fa-lock"></i><span>Si intentas consultar otro correo, el sistema debe rechazar el acceso porque tu ID pertenece a una sola cuenta.</span></div>
            </div>
        </section>

        <section id="seguridad" class="um-card wide">
            <header class="um-head"><span class="um-icon"><i class="fas fa-shield-halved"></i></span><div><h2>4. Seguridad</h2><p>Protege el ID individual y cierra la sesión al terminar.</p></div></header>
            <div class="um-body um-faq">
                <details open><summary>¿Puedo ver otras cuentas?</summary><p>No. El acceso individual está restringido al correo y la plataforma mostrados en este manual.</p></details>
                <details><summary>¿Qué ocurre si mi proveedor regenera el ID?</summary><p>El código anterior deja de funcionar inmediatamente y deberás usar el nuevo.</p></details>
                <details><summary>¿Cómo termino la sesión?</summary><p>Presiona “Salir” en la barra superior, especialmente si utilizas un equipo compartido.</p></details>
            </div>
        </section>
    </div>
<?php else: ?>
    <section class="um-hero">
        <div class="um-hero-copy">
            <span class="um-kicker"><i class="fas fa-book-open"></i> Manual para clientes</span>
            <h1>Consulta tus servicios con seguridad y sin complicaciones.</h1>
            <p>Hola <?= af_manual_user_e($userName) ?>. Esta guía explica cómo abrir tu panel, revisar tus servicios asignados y consultar los mensajes autorizados.</p>
            <div class="um-actions">
                <a class="um-btn primary" href="dashboard_usuario.php"><i class="fas fa-table-columns"></i>Abrir mi panel</a>
                <a class="um-btn" href="consulta.php"><i class="fas fa-magnifying-glass"></i>Ir a Consultar</a>
            </div>
        </div>
    </section>

    <nav class="um-nav" aria-label="Contenido del manual">
        <a href="#acceso"><i class="fas fa-key"></i>Acceso</a>
        <a href="#panel"><i class="fas fa-table-columns"></i>Mi panel</a>
        <a href="#consulta"><i class="fas fa-envelope-open-text"></i>Consultar</a>
        <a href="#seguridad"><i class="fas fa-shield-halved"></i>Seguridad</a>
    </nav>

    <div class="um-grid">
        <section id="acceso" class="um-card">
            <header class="um-head"><span class="um-icon"><i class="fas fa-key"></i></span><div><h2>1. Acceso con ID de consulta</h2><p>El ID identifica tu usuario y sus servicios vinculados.</p></div></header>
            <div class="um-body"><div class="um-note"><i class="fas fa-circle-info"></i><span>Escribe el ID completo y sin espacios. No lo compartas con personas no autorizadas.</span></div></div>
        </section>
        <section id="panel" class="um-card">
            <header class="um-head"><span class="um-icon"><i class="fas fa-table-columns"></i></span><div><h2>2. Mi panel</h2><p>Visualiza únicamente los servicios asociados a tu usuario.</p></div></header>
            <div class="um-body"><ol class="um-steps"><li><span class="um-step">1</span><div><strong>Busca o filtra</strong><span>Localiza una cuenta por plataforma, correo o ID.</span></div></li><li><span class="um-step">2</span><div><strong>Revisa las fechas</strong><span>Consulta vencimiento, registro y estado.</span></div></li><li><span class="um-step">3</span><div><strong>Abre Consultar</strong><span>La plataforma y el correo se preparan automáticamente.</span></div></li></ol></div>
        </section>
        <section id="consulta" class="um-card wide">
            <header class="um-head"><span class="um-icon"><i class="fas fa-envelope-open-text"></i></span><div><h2>3. Consultar códigos y mensajes</h2><p>Selecciona la plataforma e ingresa el correo completo.</p></div></header>
            <div class="um-body"><ol class="um-steps"><li><span class="um-step">1</span><div><strong>Selecciona la plataforma</strong><span>Elige el servicio correcto.</span></div></li><li><span class="um-step">2</span><div><strong>Ingresa el correo</strong><span>Usa exactamente la cuenta vinculada.</span></div></li><li><span class="um-step">3</span><div><strong>Abre el mensaje</strong><span>Tu sesión permite acceder solo al contenido autorizado.</span></div></li></ol></div>
        </section>
        <section id="seguridad" class="um-card wide">
            <header class="um-head"><span class="um-icon"><i class="fas fa-shield-halved"></i></span><div><h2>4. Seguridad</h2><p>Conserva tu ID y cierra la sesión cuando termines.</p></div></header>
            <div class="um-body um-faq"><details open><summary>¿Puedo consultar cualquier correo?</summary><p>No. Los mensajes privados requieren que la cuenta esté vinculada a tu usuario.</p></details><details><summary>¿Dónde cierro la sesión?</summary><p>Utiliza el botón Salir de la barra superior.</p></details></div>
        </section>
    </div>
<?php endif; ?>
</div>

<?php require_once __DIR__ . '/footer_publico.php'; ?>
