<?php
// modules/facturacion/pagos_titulacion.php
require_once __DIR__ . '/../../config/app.php';
require_once __DIR__ . '/../../includes/auth.php';
require_once __DIR__ . '/../../includes/functions.php';
require_once __DIR__ . '/../../includes/flash.php';
requireRol(ROL_FACTURACION);
$idInst = instId();

$user = currentUser();
$db   = getDB();
$pageTitle = 'Pagos de Titulación';

// ── Parámetros ──
$filtroEstado = $_GET['estado'] ?? 'enviada';
$busqueda     = trim($_GET['q'] ?? '');
$idDetalle    = (int)($_GET['id'] ?? 0);
// ── Filtros por carrera y fecha según período ───────────────────────────────
$filtPeriodo = (int)($_GET['periodo'] ?? 0);
$filtCarrera = (int)($_GET['carrera'] ?? 0);
// Titulaciones no tienen id_periodo, usamos fechas del período para filtrar
$periodoFechas = null;
if ($filtPeriodo === 0 && !isset($_GET['periodo'])) {
    $stAct = $db->prepare("SELECT id_periodo, fecha_inicio, fecha_fin FROM periodos_academicos WHERE activo=1 AND id_instituto=:inst ORDER BY fecha_inicio DESC LIMIT 1");
    $stAct->execute([':inst' => $idInst]);
    $pa = $stAct->fetch();
    if ($pa) { $filtPeriodo = (int)$pa['id_periodo']; $periodoFechas = $pa; }
}
if ($filtPeriodo && !$periodoFechas) {
    $stPF = $db->prepare("SELECT fecha_inicio, fecha_fin FROM periodos_academicos WHERE id_periodo=:p");
    $stPF->execute([':p' => $filtPeriodo]); $periodoFechas = $stPF->fetch() ?: null;
}
$stPer = $db->prepare("SELECT id_periodo, nombre, activo FROM periodos_academicos WHERE id_instituto=:inst ORDER BY activo DESC, fecha_inicio DESC");
$stPer->execute([':inst' => $idInst]); $listaPeriodos = $stPer->fetchAll();
$stCar = $db->prepare("SELECT id_carrera, nombre FROM carreras WHERE id_instituto=:inst AND activa=1 ORDER BY nombre");
$stCar->execute([':inst' => $idInst]); $listaCarreras = $stCar->fetchAll();


// ── POST: Aprobar o rechazar ──
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $accion      = $_POST['accion'] ?? '';
    $idTit       = (int)($_POST['id_titulacion'] ?? 0);
    $observacion = trim($_POST['observaciones'] ?? '');

    $esExonerado = isset($_POST['exonerado']) ? 1 : 0;
    if ($idTit && in_array($accion, ['aprobar','rechazar'])) {
        if ($accion === 'rechazar' && empty($observacion)) {
            flashSet('err', 'Debes indicar el motivo del rechazo.');
            header('Location: pagos_titulacion.php?id='.$idTit); exit;
        }
        $nuevoEstado = $accion === 'aprobar' ? 'aprobado' : 'rechazado';
        $instCheck   = $idInst ? "AND (SELECT c.id_instituto FROM estudiantes e JOIN carreras c ON c.id_carrera=e.id_carrera WHERE e.id_estudiante=t.id_estudiante) = $idInst" : '';
        $db->prepare("
            UPDATE titulaciones t
            SET estado=:e, observaciones=:o, exonerado=:ex, obs_pago=:o2, updated_at=NOW()
            WHERE id_titulacion=:id AND estado='enviada' $instCheck
        ")->execute([':e'=>$nuevoEstado,':o'=>$observacion,':o2'=>$observacion,':ex'=>$esExonerado,':id'=>$idTit]);

        // Al aprobar Examen Complexivo: activar PDF de preguntas de la carrera
        if ($accion === 'aprobar') {
            $stInfo = $db->prepare("
                SELECT t.modalidad, e.id_carrera
                FROM titulaciones t
                JOIN estudiantes e ON e.id_estudiante = t.id_estudiante
                WHERE t.id_titulacion = :id
            ");
            $stInfo->execute([':id' => $idTit]);
            $infoTit = $stInfo->fetch();
            if ($infoTit && $infoTit['modalidad'] === 'examen_complexivo' && $infoTit['id_carrera']) {
                // Activar el PDF de preguntas si existe para esa carrera
                $db->prepare("
                    UPDATE preguntas_complexivo
                    SET activo = 1, updated_at = NOW()
                    WHERE id_carrera = :c
                ")->execute([':c' => $infoTit['id_carrera']]);
            }
        }

        $msg = $accion === 'aprobar'
            ? '✅ Pago validado. El estudiante ya puede continuar su proceso de titulación.'
            : '❌ Solicitud rechazada. El estudiante verá el motivo y podrá corregir.';
        flashSet('ok', $msg);
        header('Location: pagos_titulacion.php'); exit;
    }
}

// ── Conteos para tabs (siempre) ──
$conteos = [];
$stC = $db->query("SELECT estado, COUNT(*) AS n FROM titulaciones t JOIN estudiantes e ON e.id_estudiante=t.id_estudiante " . instWhere("e") . " GROUP BY t.estado");
foreach ($stC->fetchAll() as $row) {
    $conteos[$row['estado']] = (int)$row['n'];
}

$estadoLabel = [
    'pendiente' => ['txt'=>'Pendiente de envío',    'bg'=>'#fffbeb','color'=>'#92400e','border'=>'#fcd34d'],
    'enviada'   => ['txt'=>'Esperando validación',  'bg'=>'#eff6ff','color'=>'#1e40af','border'=>'#93c5fd'],
    'aprobado'  => ['txt'=>'Pago validado',          'bg'=>'#f0fdf4','color'=>'#065f46','border'=>'#86efac'],
    'rechazado' => ['txt'=>'Rechazado',              'bg'=>'#fef2f2','color'=>'#991b1b','border'=>'#fca5a5'],
];

// ── Detalle de una solicitud ──
$detalle = null;
if ($idDetalle) {
    $instCondDet = $idInst ? "AND c.id_instituto = $idInst" : '';
    $st = $db->prepare("
        SELECT t.*,
               CONCAT(u.nombres,' ',u.apellidos) AS estudiante_nombre,
               u.email, u.cedula,
               c.nombre AS carrera,
               e.codigo_estudiante
        FROM   titulaciones t
        JOIN   estudiantes e ON e.id_estudiante = t.id_estudiante
        JOIN   usuarios u    ON u.id_usuario    = e.id_usuario
        JOIN   carreras c    ON c.id_carrera    = e.id_carrera
        WHERE  t.id_titulacion = :id $instCondDet
    ");
    $st->execute([':id' => $idDetalle]);
    $detalle = $st->fetch() ?: null;
}

// ── Lista (solo cuando NO hay detalle) ──
$solicitudes = [];
if (!$idDetalle) {
    $conds  = ['1=1'];
    $params = [];

    if ($idInst) {
        $conds[] = "c.id_instituto = $idInst";
    }
    if ($filtroEstado !== 'todos') {
        $conds[] = 't.estado = :est';
        $params[':est'] = $filtroEstado;
    }
    // Filtrar por rango de fechas del período seleccionado
    if ($filtPeriodo && $periodoFechas) {
        $conds[] = 'DATE(t.created_at) BETWEEN :fi AND :ff';
        $params[':fi'] = $periodoFechas['fecha_inicio'];
        $params[':ff'] = $periodoFechas['fecha_fin'];
    }
    if ($filtCarrera) {
        $conds[] = 'e.id_carrera = :car';
        $params[':car'] = $filtCarrera;
    }
    if ($busqueda !== '') {
        $conds[] = "CONCAT(u.nombres,' ',u.apellidos,' ',u.cedula,' ',c.nombre) LIKE :q";
        $params[':q'] = '%'.$busqueda.'%';
    }

    $where = 'WHERE ' . implode(' AND ', $conds);
    $st = $db->prepare("
        SELECT t.*,
               CONCAT(u.nombres,' ',u.apellidos) AS estudiante_nombre,
               u.email, u.cedula,
               c.nombre AS carrera,
               e.codigo_estudiante
        FROM   titulaciones t
        JOIN   estudiantes e ON e.id_estudiante = t.id_estudiante
        JOIN   usuarios u    ON u.id_usuario    = e.id_usuario
        JOIN   carreras c    ON c.id_carrera    = e.id_carrera
        $where
        ORDER BY FIELD(t.estado,'enviada','rechazado','pendiente','aprobado'),
                 t.fecha_envio ASC
    ");
    $st->execute($params);
    $solicitudes = $st->fetchAll();
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
<?php include __DIR__ . '/../../includes/head.php'; ?>
<link rel="stylesheet" href="<?= BASE_URL ?>/assets/css/sidebar-facturacion.css">
<style>
.sec{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:1.4rem 1.5rem;box-shadow:0 1px 4px rgba(0,0,0,.04);}
.est-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 11px;border-radius:999px;font-size:11px;font-weight:600;}
.tab-btn{background:none;border:none;padding:8px 16px;font-size:13px;font-weight:500;color:#64748b;border-bottom:2px solid transparent;cursor:pointer;transition:all .15s;text-decoration:none;display:inline-block;}
.tab-btn.active{color:#059669;border-bottom-color:#059669;font-weight:700;}
.tab-btn:hover:not(.active){color:#0f172a;}
.comp-thumb{width:100%;max-height:320px;object-fit:contain;border-radius:10px;border:1px solid #e2e8f0;}
.comp-pdf-big{background:#fef2f2;border:1px solid #fecaca;border-radius:12px;padding:2rem;text-align:center;}
.action-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:1rem 1.25rem;}
.th-label{font-size:10px;letter-spacing:.8px;text-transform:uppercase;color:#94a3b8;padding:10px 16px;font-weight:700;}
.exon-badge{display:inline-flex;align-items:center;gap:4px;background:#fef3c7;color:#92400e;border:1px solid #fde68a;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:700;}
.chk-exon{display:flex;align-items:center;gap:10px;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:12px 14px;margin-bottom:14px;cursor:pointer;}
.chk-exon input[type=checkbox]{width:18px;height:18px;accent-color:#d97706;cursor:pointer;}
.chk-exon-lbl{font-size:13px;font-weight:600;color:#92400e;cursor:pointer;user-select:none;}
</style>
</head>
<body>
<?php include __DIR__ . '/../../includes/navbar.php'; ?>
<div class="app-shell">
  <!-- SIDEBAR -->
  <?php $sbActivo = 'pagos_titulacion'; include __DIR__ . '/../../includes/sidebar_facturacion.php'; ?>

  <main class="main-area">
    <?= flashHtml() ?>

    <?php if ($detalle): ?>
    <!-- ══════════════ VISTA DETALLE ══════════════ -->
    <div class="page-header d-flex justify-content-between align-items-center flex-wrap gap-2">
      <div>
        <h4 style="color:#0f172a;">
          <i class="fa fa-file-invoice-dollar me-2" style="color:#059669;"></i>
          Validar Comprobante
        </h4>
        <p style="color:#64748b;">Revisa el comprobante y aprueba o rechaza la solicitud</p>
      </div>
      <a href="pagos_titulacion.php" class="btn btn-outline-secondary btn-sm">
        <i class="fa fa-arrow-left me-1"></i>Volver a lista
      </a>
    </div>

    <div class="row g-3">
      <!-- Columna izquierda: info + comprobante -->
      <div class="col-lg-7">

        <!-- Datos estudiante -->
        <div class="sec mb-3">
          <p style="font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#94a3b8;margin-bottom:10px;">Datos del estudiante</p>
          <div style="font-size:1.05rem;font-weight:700;color:#0f172a;"><?= htmlspecialchars($detalle['estudiante_nombre']) ?></div>
          <div style="font-size:12px;color:#64748b;margin-bottom:14px;">
            <?= htmlspecialchars($detalle['carrera']) ?>
            <?php if ($detalle['codigo_estudiante']): ?>
              &nbsp;·&nbsp;<span style="font-family:monospace;"><?= htmlspecialchars($detalle['codigo_estudiante']) ?></span>
            <?php endif; ?>
          </div>
          <div class="row g-2" style="font-size:12px;">
            <div class="col-sm-6">
              <div style="color:#94a3b8;margin-bottom:2px;">Cédula</div>
              <div style="font-weight:600;color:#0f172a;"><?= htmlspecialchars($detalle['cedula'] ?? '—') ?></div>
            </div>
            <div class="col-sm-6">
              <div style="color:#94a3b8;margin-bottom:2px;">Correo</div>
              <div style="font-weight:600;color:#0f172a;"><?= htmlspecialchars($detalle['email'] ?? '—') ?></div>
            </div>
            <div class="col-sm-6 mt-2">
              <div style="color:#94a3b8;margin-bottom:2px;">Modalidad</div>
              <div style="font-weight:600;color:#0f172a;">
                <?= $detalle['modalidad'] === 'examen_complexivo'
                    ? '<i class="fa fa-file-pen me-1" style="color:#2563eb;"></i>Examen Complexivo'
                    : '<i class="fa fa-microscope me-1" style="color:#059669;"></i>Trabajo de Investigación' ?>
              </div>
            </div>
            <div class="col-sm-6 mt-2">
              <div style="color:#94a3b8;margin-bottom:2px;">Fecha de envío</div>
              <div style="font-weight:600;color:#0f172a;">
                <?= $detalle['fecha_envio'] ? date('d/m/Y H:i', strtotime($detalle['fecha_envio'])) : '—' ?>
              </div>
            </div>
            <?php if (!empty($detalle['tema'])): ?>
            <div class="col-12 mt-2">
              <div style="color:#94a3b8;margin-bottom:2px;">Tema propuesto</div>
              <div style="color:#0f172a;"><?= htmlspecialchars($detalle['tema']) ?></div>
            </div>
            <?php endif; ?>
          </div>
        </div>

        <!-- Comprobante -->
        <div class="sec">
          <p style="font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#94a3b8;margin-bottom:12px;">
            Comprobante de pago — $2,00
          </p>
          <?php if (!empty($detalle['comprobante_pago'])): ?>
            <?php
            $rutaComp = $detalle['comprobante_pago'];
            $ext      = strtolower(pathinfo($rutaComp, PATHINFO_EXTENSION));
            if (strpos($rutaComp, 'onedrive:') === 0) {
                $url = BASE_URL . '/api/ver_comprobante_tit_fact.php?id=' . $detalle['id_titulacion'];
                $esImg = false;
            } else {
                $url   = BASE_URL . '/assets/uploads/titulacion/' . rawurlencode($rutaComp);
                $esImg = in_array($ext, ['jpg','jpeg','png']);
            }
            ?>
            <?php if ($esImg): ?>
              <img src="<?= $url ?>" alt="Comprobante" class="comp-thumb mb-2">
            <?php else: ?>
              <div class="comp-pdf-big mb-2">
                <i class="fa fa-file-pdf" style="font-size:3rem;color:#dc2626;display:block;margin-bottom:.5rem;"></i>
                <div style="font-weight:600;color:#991b1b;margin-bottom:4px;"><?= htmlspecialchars(basename($rutaComp)) ?></div>
                <div style="font-size:12px;color:#dc2626;">Archivo PDF adjunto</div>
              </div>
            <?php endif; ?>
            <a href="<?= $url ?>" target="_blank" class="btn btn-outline-secondary btn-sm w-100 mt-1">
              <i class="fa fa-eye me-1"></i>Ver / descargar comprobante completo
            </a>
          <?php else: ?>
            <div style="background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:1rem;color:#991b1b;font-size:13px;text-align:center;">
              <i class="fa fa-triangle-exclamation me-2"></i>El estudiante no adjuntó comprobante.
            </div>
          <?php endif; ?>
        </div>
      </div>

      <!-- Columna derecha: acción -->
      <div class="col-lg-5">
        <?php if ($detalle['estado'] === 'enviada'): ?>
        <div class="sec">
          <p style="font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#94a3b8;margin-bottom:16px;">
            Acción de validación
          </p>

          <!-- APROBAR -->
          <div class="action-card mb-3" style="border-color:#bbf7d0;background:#f0fdf4;">
            <div style="font-weight:700;color:#065f46;margin-bottom:6px;">
              <i class="fa fa-circle-check me-2" style="color:#059669;"></i>Validar pago
            </div>
            <p style="font-size:12px;color:#059669;margin-bottom:12px;">
              El depósito de <strong>$2,00</strong> fue recibido correctamente.
              La solicitud quedará <strong>aprobada</strong> y el estudiante podrá continuar su proceso automáticamente.
            </p>
            <form method="POST" onsubmit="return confirm('¿Confirmas que el pago de $2,00 fue recibido correctamente?')">
              <input type="hidden" name="accion" value="aprobar">
              <input type="hidden" name="id_titulacion" value="<?= $detalle['id_titulacion'] ?>">
              <!-- CHECKBOX EXONERADO -->
              <label class="chk-exon" for="chk_exon_tit">
                <input type="checkbox" id="chk_exon_tit" name="exonerado" value="1"
                       <?= !empty($detalle['exonerado']) ? 'checked' : '' ?>>
                <span class="chk-exon-lbl"><i class="fa fa-star me-1"></i>Exonerado · $0.00</span>
              </label>
              <input type="text" name="observaciones" class="form-control form-control-sm mb-2"
                     placeholder="N° recibo o nota opcional..."
                     style="font-size:12px;border-color:#a7f3d0;">
              <button type="submit" class="btn btn-success w-100 fw-600">
                <i class="fa fa-check me-2"></i>Aprobar pago
              </button>
            </form>
          </div>

          <!-- RECHAZAR -->
          <div class="action-card" style="border-color:#fecaca;background:#fef2f2;">
            <div style="font-weight:700;color:#991b1b;margin-bottom:6px;">
              <i class="fa fa-circle-xmark me-2" style="color:#dc2626;"></i>Rechazar comprobante
            </div>
            <p style="font-size:12px;color:#dc2626;margin-bottom:12px;">
              El comprobante no es válido, el monto no corresponde o hay un error.
              El estudiante recibirá el motivo y podrá reenviar.
            </p>
            <form method="POST" onsubmit="return confirm('¿Seguro que deseas rechazar esta solicitud?')">
              <input type="hidden" name="accion" value="rechazar">
              <input type="hidden" name="id_titulacion" value="<?= $detalle['id_titulacion'] ?>">
              <textarea name="observaciones" class="form-control form-control-sm mb-2" rows="2" required
                        placeholder="Motivo del rechazo (obligatorio)..."
                        style="font-size:12px;border-color:#fca5a5;"></textarea>
              <button type="submit" class="btn btn-danger w-100">
                <i class="fa fa-xmark me-2"></i>Rechazar solicitud
              </button>
            </form>
          </div>
        </div>

        <?php else: ?>
        <!-- Ya procesada -->
        <div class="sec">
          <?php $e = $estadoLabel[$detalle['estado']] ?? $estadoLabel['pendiente']; ?>
          <p style="font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#94a3b8;margin-bottom:12px;">Estado de la solicitud</p>
          <div style="background:<?= $e['bg'] ?>;border:1px solid <?= $e['border'] ?>;border-radius:10px;padding:1rem 1.25rem;margin-bottom:12px;">
            <div style="font-weight:700;color:<?= $e['color'] ?>;font-size:.95rem;"><?= $e['txt'] ?></div>
            <?php if (!empty($detalle['observaciones'])): ?>
              <div style="font-size:12px;color:<?= $e['color'] ?>;margin-top:6px;opacity:.85;">
                <?= htmlspecialchars($detalle['observaciones']) ?>
              </div>
            <?php endif; ?>
          </div>
          <div style="font-size:12px;color:#64748b;text-align:center;">
            <i class="fa fa-clock me-1"></i>
            Procesado el <?= date('d/m/Y H:i', strtotime($detalle['updated_at'])) ?>
          </div>
          <?php if ($detalle['estado'] === 'aprobado'): ?>
            <div style="background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:.85rem 1rem;margin-top:12px;font-size:12px;color:#065f46;">
              <i class="fa fa-circle-check me-2"></i>
              El estudiante ya puede continuar su proceso de titulación.
            </div>
          <?php endif; ?>
        </div>
        <?php endif; ?>
      </div>
    </div>

    <?php else: ?>
    <!-- ══════════════ VISTA LISTA ══════════════ -->
    <div class="page-header d-flex justify-content-between align-items-center flex-wrap gap-2">
      <div>
        <h4 style="color:#0f172a;"><i class="fa fa-money-check-dollar me-2" style="color:#059669;"></i>Pagos de Titulación</h4>
        <p style="color:#64748b;">Validación de comprobantes · UIC Ciclo I 2026</p>
      </div>
    </div>

    <!-- Buscador + Filtros -->
    <form method="GET" class="mb-3" id="form-filtros">
      <input type="hidden" name="estado" value="<?= htmlspecialchars($filtroEstado) ?>">
      <div class="d-flex gap-2 flex-wrap align-items-end">
        <div>
          <label style="font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#94a3b8;display:block;margin-bottom:3px;"><i class="fa fa-search me-1"></i>Buscar</label>
          <input type="text" name="q" class="form-control form-control-sm" style="min-width:230px;" placeholder="Nombre, cédula o carrera..." value="<?= htmlspecialchars($busqueda) ?>">
        </div>
        <div>
          <label style="font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#94a3b8;display:block;margin-bottom:3px;"><i class="fa fa-calendar me-1"></i>Período</label>
          <select name="periodo" class="form-select form-select-sm" style="min-width:160px;" onchange="this.form.submit()">
            <option value="0">— Todos —</option>
            <?php foreach($listaPeriodos as $lp): ?>
              <option value="<?= $lp['id_periodo'] ?>" <?= $filtPeriodo===$lp['id_periodo']?'selected':'' ?>>
                <?= !empty($lp['activo'])?'🟢 ':'' ?><?= htmlspecialchars($lp['nombre']) ?><?= !empty($lp['activo'])?' (activo)':'' ?>
              </option>
            <?php endforeach; ?>
          </select>
        </div>
        <div>
          <label style="font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#94a3b8;display:block;margin-bottom:3px;"><i class="fa fa-graduation-cap me-1"></i>Carrera</label>
          <select name="carrera" class="form-select form-select-sm" style="min-width:155px;" onchange="this.form.submit()">
            <option value="0">— Todas —</option>
            <?php foreach($listaCarreras as $lc): ?>
              <option value="<?= $lc['id_carrera'] ?>" <?= $filtCarrera===$lc['id_carrera']?'selected':'' ?>><?= htmlspecialchars($lc['nombre']) ?></option>
            <?php endforeach; ?>
          </select>
        </div>
        <div class="d-flex gap-1 align-items-end">
          <button type="submit" class="btn btn-outline-secondary btn-sm"><i class="fa fa-search me-1"></i>Buscar</button>
          <?php if($busqueda||$filtPeriodo||$filtCarrera): ?>
            <a href="pagos_titulacion.php?estado=<?= $filtroEstado ?>" class="btn btn-outline-secondary btn-sm" title="Limpiar"><i class="fa fa-xmark"></i></a>
          <?php endif; ?>
        </div>
      </div>
      <?php if($busqueda||$filtPeriodo||$filtCarrera): ?>
      <div class="d-flex align-items-center gap-2 mt-2 flex-wrap" style="font-size:11px;">
        <span style="color:#94a3b8;">Filtros:</span>
        <?php if($busqueda): ?><span class="badge bg-info-subtle text-info-emphasis border border-info-subtle">"<?= htmlspecialchars($busqueda) ?>"</span><?php endif; ?>
        <?php if($filtPeriodo): $pN='';$pA=false;foreach($listaPeriodos as $lp) if($lp['id_periodo']==$filtPeriodo){$pN=$lp['nombre'];$pA=!empty($lp['activo']);} ?>
          <span class="badge bg-success-subtle text-success-emphasis border border-success-subtle"><?= $pA?'🟢':'📅' ?> <?= htmlspecialchars($pN) ?></span>
        <?php endif; ?>
        <?php if($filtCarrera): $cN='';foreach($listaCarreras as $lc) if($lc['id_carrera']==$filtCarrera) $cN=$lc['nombre']; ?>
          <span class="badge bg-primary-subtle text-primary-emphasis border border-primary-subtle">🎓 <?= htmlspecialchars($cN) ?></span>
        <?php endif; ?>
      </div>
      <?php endif; ?>
    </form>

    <!-- Tabs -->
    <div style="border-bottom:2px solid #e2e8f0;margin-bottom:1rem;">
      <?php foreach (['enviada'=>'⏳ Pendientes','aprobado'=>'✅ Aprobados','rechazado'=>'❌ Rechazados','todos'=>'📋 Todos'] as $k=>$v): ?>
        <a href="pagos_titulacion.php?estado=<?= $k ?>&periodo=<?= $filtPeriodo ?>&carrera=<?= $filtCarrera ?>" class="tab-btn <?= $filtroEstado===$k?'active':'' ?>">
          <?= $v ?>
          <?php $cnt = $conteos[$k] ?? 0; if ($cnt > 0 && $k !== 'todos'): ?>
            <span style="background:<?= $k==='enviada'?'#dc2626':($k==='aprobado'?'#059669':'#64748b') ?>;color:#fff;border-radius:999px;padding:1px 7px;font-size:10px;margin-left:4px;"><?= $cnt ?></span>
          <?php endif; ?>
        </a>
      <?php endforeach; ?>
    </div>

    <!-- Tabla -->
    <?php if (empty($solicitudes)): ?>
      <div style="text-align:center;padding:3rem 1rem;color:#94a3b8;">
        <i class="fa fa-inbox" style="font-size:2.5rem;display:block;margin-bottom:.75rem;"></i>
        <div style="font-weight:600;">No hay solicitudes <?= $filtroEstado!=='todos' ? 'con estado "'.$filtroEstado.'"' : '' ?></div>
      </div>
    <?php else: ?>
      <div style="background:#fff;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.04);">
        <table class="table table-borderless mb-0" style="color:#0f172a;">
          <thead style="background:#f8fafc;">
            <tr>
              <th class="th-label">Estudiante</th>
              <th class="th-label">Modalidad</th>
              <th class="th-label">Comprobante</th>
              <th class="th-label">Enviado</th>
              <th class="th-label">Estado</th>
              <th class="th-label">Acción</th>
            </tr>
          </thead>
          <tbody>
            <?php foreach ($solicitudes as $s):
              $e = $estadoLabel[$s['estado']] ?? $estadoLabel['pendiente'];
            ?>
            <tr style="border-bottom:1px solid #f1f5f9;">
              <td style="padding:12px 16px;">
                <div style="font-weight:600;"><?= htmlspecialchars($s['estudiante_nombre']) ?></div>
                <div style="font-size:11px;color:#64748b;"><?= htmlspecialchars($s['carrera']) ?></div>
              </td>
              <td style="padding:12px 16px;font-size:12px;">
                <?= $s['modalidad'] === 'examen_complexivo'
                    ? '<i class="fa fa-file-pen me-1" style="color:#2563eb;"></i>Examen Complexivo'
                    : '<i class="fa fa-microscope me-1" style="color:#059669;"></i>Investigación' ?>
              </td>
              <td style="padding:12px 16px;font-size:12px;">
                <?php if (!empty($s['comprobante_pago'])): ?>
                  <span style="color:#059669;"><i class="fa fa-paperclip me-1"></i>Adjunto</span>
                <?php else: ?>
                  <span style="color:#dc2626;"><i class="fa fa-xmark me-1"></i>Sin archivo</span>
                <?php endif; ?>
              </td>
              <td style="padding:12px 16px;font-size:12px;color:#64748b;">
                <?= $s['fecha_envio'] ? date('d/m/Y H:i', strtotime($s['fecha_envio'])) : '—' ?>
              </td>
              <td style="padding:12px 16px;">
                <span class="est-badge" style="background:<?= $e['bg'] ?>;color:<?= $e['color'] ?>;border:1px solid <?= $e['border'] ?>;">
                  <?= $e['txt'] ?>
                </span>
              </td>
              <td style="padding:12px 16px;">
                <a href="?id=<?= $s['id_titulacion'] ?>" class="btn btn-sm <?= $s['estado']==='enviada'?'btn-primary':'btn-outline-secondary' ?>">
                  <i class="fa fa-<?= $s['estado']==='enviada'?'eye':'magnifying-glass' ?> me-1"></i>
                  <?= $s['estado']==='enviada'?'Revisar':'Ver' ?>
                </a>
              </td>
            </tr>
            <?php endforeach; ?>
          </tbody>
        </table>
      </div>
    <?php endif; ?>
    <?php endif; ?>
  </main>
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/js/bootstrap.bundle.min.js"></script>
<script>var BASE_URL = '<?= BASE_URL ?>';</script>
<script src="<?= BASE_URL ?>/assets/js/sigvp.js"></script>
</body>
</html>