<?php
/* ==========================================================================
   PUERTA DE LA CARTA · Sea Riders NAV PRO
   --------------------------------------------------------------------------
   Sustituye a nav/index.html como punto de entrada. Comprueba la licencia,
   inyecta un permiso firmado de vida corta y sirve la carta.
   La carta nunca se entrega al servidor del cliente: se incrusta desde aquí.
   ========================================================================== */
require_once __DIR__ . '/../_licencia/licencias.php';

$id      = isset($_GET['c']) ? preg_replace('/[^a-z0-9_-]/i', '', $_GET['c']) : '';
$dominio = sr_dominio_origen();

if ($id === '') { $id = 'seariders'; }          /* cliente por defecto */

list($ok, $motivo) = sr_valida($id, $dominio);
sr_log($id, $dominio, $ok ? 'ok' : $motivo);

if (!$ok) {
  http_response_code(403);
  header('Content-Type: text/html; charset=utf-8');
  header('Cache-Control: no-store');
  $txt = [
    'licencia_desconocida'  => 'Esta carta no tiene una licencia activa.',
    'caducada'              => 'La licencia de esta carta ha caducado.',
    'dominio_no_autorizado' => 'Esta carta no está autorizada en este sitio web.',
  ];
  $msg = isset($txt[$motivo]) ? $txt[$motivo] : 'Licencia no válida.';
  echo '<!doctype html><html lang="es"><head><meta charset="utf-8">'
     . '<meta name="viewport" content="width=device-width,initial-scale=1">'
     . '<title>Sea Riders NAV PRO</title><style>'
     . 'body{margin:0;min-height:100dvh;display:grid;place-items:center;background:#041923;'
     . 'color:#eaf4f8;font-family:Arial,Helvetica,sans-serif;padding:24px;text-align:center}'
     . '.b{max-width:420px;border:1px solid rgba(120,190,215,.25);border-radius:18px;padding:28px 22px;'
     . 'background:linear-gradient(180deg,#0d2f42,#06202c)}'
     . 'h1{font-size:18px;margin:0 0 10px}p{font-size:14px;line-height:1.6;color:#b9d3dd;margin:0 0 8px}'
     . 'small{color:#7ea0af;font-size:12px}</style></head><body><div class="b">'
     . '<h1>Sea Riders NAV PRO</h1><p>' . htmlspecialchars($msg, ENT_QUOTES, 'UTF-8') . '</p>'
     . '<small>Para contratar o renovar: info@searidersweb.com</small>'
     . '</div></body></html>';
  exit;
}

$cli    = sr_cliente($id);
$permiso = sr_firma($id);

/* Solo estas webs pueden incrustar la carta. Lo hace cumplir el navegador
   del visitante, no este servidor: es la barrera más difícil de saltar. */
$frames = "'self'";
foreach ($cli['dominios'] as $d) { $frames .= ' https://' . $d; }
header("Content-Security-Policy: frame-ancestors $frames");
header('X-Robots-Tag: noindex');                 /* la carta no debe indexarse */
header('Cache-Control: no-store, must-revalidate');
header('Content-Type: text/html; charset=utf-8');

$html = file_get_contents(__DIR__ . '/carta.html');

/* Se inyectan los datos de licencia antes de que arranque la carta. */
$inyeccion = '<script>window.SR_LIC=' . json_encode([
  'cliente' => $id,
  'nombre'  => $cli['nombre'],
  'capas'   => $cli['capas'],
  'zona'    => $cli['zona'],
  'hasta'   => $cli['hasta'],
  'permiso' => $permiso,
  'proxy'   => 'proxy.php',
], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . ';</script>';

echo str_replace('</head>', $inyeccion . '</head>', $html);
