<?php
include dirname(__FILE__) . '/../sesion.php';
include dirname(__FILE__) . '/../concha.php';

if (!isset($conn) || !($conn instanceof mysqli)) {
    die('Error: no se encontró la conexión mysqli en concha.php');
}

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

$conn->set_charset('utf8mb4');
date_default_timezone_set('America/Argentina/Buenos_Aires');

function h($txt)
{
    return htmlspecialchars((string)$txt, ENT_QUOTES, 'UTF-8');
}

function tablaExiste($conn, $tabla)
{
    $tabla = $conn->real_escape_string($tabla);
    $sql = "SHOW TABLES LIKE '{$tabla}'";
    $res = $conn->query($sql);
    return ($res && $res->num_rows > 0);
}

function limpiar($txt)
{
    return trim((string)$txt);
}

function setFlash($tipo, $mensaje)
{
    $_SESSION['flash_partidos_admin'] = array(
        'tipo' => $tipo,
        'mensaje' => $mensaje
    );
}

function getFlash()
{
    if (isset($_SESSION['flash_partidos_admin'])) {
        $flash = $_SESSION['flash_partidos_admin'];
        unset($_SESSION['flash_partidos_admin']);
        return $flash;
    }

    return null;
}

function guardarSyncPendiente($conn, $tablaOrigen, $registroId, $accion, $payload)
{
    if (!tablaExiste($conn, 'fut_sync_pendientes')) {
        return;
    }

    $sql = "INSERT INTO fut_sync_pendientes
            (tabla_origen, registro_id, accion, payload, estado, intentos, ultimo_error, creado_en, actualizado_en)
            VALUES (?, ?, ?, ?, 'pendiente', 0, NULL, NOW(), NOW())";

    $stmt = $conn->prepare($sql);
    if ($stmt) {
        $stmt->bind_param('siss', $tablaOrigen, $registroId, $accion, $payload);
        $stmt->execute();
        $stmt->close();
    }
}

function obtenerEquiposActivos($conn)
{
    $items = array();

    if (!tablaExiste($conn, 'fut_equipos')) {
        return $items;
    }

    $sql = "SELECT id, nombre, nombre_corto
            FROM fut_equipos
            WHERE activo = 1
            ORDER BY nombre ASC";
    $res = $conn->query($sql);

    if ($res) {
        while ($row = $res->fetch_assoc()) {
            $items[] = $row;
        }
    }

    return $items;
}

function obtenerEstadiosActivos($conn)
{
    $items = array();

    if (!tablaExiste($conn, 'fut_estadios')) {
        return $items;
    }

    $sql = "SELECT id, nombre, localidad, provincia
            FROM fut_estadios
            WHERE activo = 1
            ORDER BY nombre ASC";
    $res = $conn->query($sql);

    if ($res) {
        while ($row = $res->fetch_assoc()) {
            $items[] = $row;
        }
    }

    return $items;
}

function obtenerArbitrosActivos($conn)
{
    $items = array();

    if (!tablaExiste($conn, 'fut_arbitros')) {
        return $items;
    }

    $sql = "SELECT id, nombre, apellido, rol_default
            FROM fut_arbitros
            WHERE activo = 1
            ORDER BY apellido ASC, nombre ASC";
    $res = $conn->query($sql);

    if ($res) {
        while ($row = $res->fetch_assoc()) {
            $items[] = $row;
        }
    }

    return $items;
}

function obtenerPartidoPorId($conn, $id)
{
    $id = (int)$id;
    $sql = "SELECT * FROM fut_partidos WHERE id = {$id} LIMIT 1";
    $res = $conn->query($sql);

    if ($res && $res->num_rows > 0) {
        return $res->fetch_assoc();
    }

    return null;
}

function obtenerArbitrosPartido($conn, $partidoId)
{
    $mapa = array(
        'Arbitro principal' => 0,
        'Asistente 1' => 0,
        'Asistente 2' => 0,
        'Cuarto arbitro' => 0
    );

    if (!tablaExiste($conn, 'fut_partidos_arbitros')) {
        return $mapa;
    }

    $partidoId = (int)$partidoId;
    $sql = "SELECT arbitro_id, rol
            FROM fut_partidos_arbitros
            WHERE partido_id = {$partidoId}";
    $res = $conn->query($sql);

    if ($res) {
        while ($row = $res->fetch_assoc()) {
            $mapa[$row['rol']] = (int)$row['arbitro_id'];
        }
    }

    return $mapa;
}

if (!tablaExiste($conn, 'fut_partidos')) {
    die('La tabla fut_partidos no existe. Ejecutá primero crea_tablas_futbol.php');
}
if (!tablaExiste($conn, 'fut_equipos')) {
    die('La tabla fut_equipos no existe. Necesitás primero los equipos.');
}
if (!tablaExiste($conn, 'fut_estadios')) {
    die('La tabla fut_estadios no existe. Necesitás primero los estadios.');
}
if (!tablaExiste($conn, 'fut_partidos_arbitros')) {
    die('La tabla fut_partidos_arbitros no existe. Ejecutá primero crea_tablas_futbol.php');
}

$accion = isset($_REQUEST['accion']) ? limpiar($_REQUEST['accion']) : '';
$idEditar = isset($_GET['id']) ? (int)$_GET['id'] : 0;

if ($accion === 'toggle_publicado' && isset($_GET['id'])) {
    $id = (int)$_GET['id'];
    if ($id > 0) {
        $sql = "UPDATE fut_partidos
                SET publicado = IF(publicado = 1, 0, 1), actualizado_en = NOW()
                WHERE id = {$id}
                LIMIT 1";
        if ($conn->query($sql)) {
            $row = obtenerPartidoPorId($conn, $id);
            guardarSyncPendiente($conn, 'fut_partidos', $id, 'update', json_encode(array(
                'id' => $id,
                'publicado' => isset($row['publicado']) ? (int)$row['publicado'] : null
            )));
            setFlash('success', 'Estado de publicación actualizado correctamente.');
        } else {
            setFlash('danger', 'No se pudo actualizar la publicación del partido.');
        }
    }
    header('Location: partidos_admin.php');
    exit;
}

if ($accion === 'toggle_destacado' && isset($_GET['id'])) {
    $id = (int)$_GET['id'];
    if ($id > 0) {
        $sql = "UPDATE fut_partidos
                SET destacado = IF(destacado = 1, 0, 1), actualizado_en = NOW()
                WHERE id = {$id}
                LIMIT 1";
        if ($conn->query($sql)) {
            $row = obtenerPartidoPorId($conn, $id);
            guardarSyncPendiente($conn, 'fut_partidos', $id, 'update', json_encode(array(
                'id' => $id,
                'destacado' => isset($row['destacado']) ? (int)$row['destacado'] : null
            )));
            setFlash('success', 'Estado de destacado actualizado correctamente.');
        } else {
            setFlash('danger', 'No se pudo actualizar el destacado del partido.');
        }
    }
    header('Location: partidos_admin.php');
    exit;
}

if ($_SERVER['REQUEST_METHOD'] === 'POST' && $accion === 'guardar') {
    $id                = isset($_POST['id']) ? (int)$_POST['id'] : 0;
    $competencia       = limpiar($_POST['competencia']);
    $temporada         = limpiar($_POST['temporada']);
    $jornada           = limpiar($_POST['jornada']);
    $instancia         = limpiar($_POST['instancia']);
    $equipoLocalId     = isset($_POST['equipo_local_id']) ? (int)$_POST['equipo_local_id'] : 0;
    $equipoVisitanteId = isset($_POST['equipo_visitante_id']) ? (int)$_POST['equipo_visitante_id'] : 0;
    $estadioId         = isset($_POST['estadio_id']) ? (int)$_POST['estadio_id'] : 0;
    $fechaPartido      = limpiar($_POST['fecha_partido']);
    $horaPartido       = limpiar($_POST['hora_partido']);
    $estado            = limpiar($_POST['estado']);
    $observaciones     = limpiar($_POST['observaciones']);
    $publicado         = isset($_POST['publicado']) ? 1 : 0;
    $destacado         = isset($_POST['destacado']) ? 1 : 0;

    $arbitroPrincipal  = isset($_POST['arbitro_principal_id']) ? (int)$_POST['arbitro_principal_id'] : 0;
    $asistente1        = isset($_POST['asistente_1_id']) ? (int)$_POST['asistente_1_id'] : 0;
    $asistente2        = isset($_POST['asistente_2_id']) ? (int)$_POST['asistente_2_id'] : 0;
    $cuartoArbitro     = isset($_POST['cuarto_arbitro_id']) ? (int)$_POST['cuarto_arbitro_id'] : 0;

    $estadosValidos = array(
        'programado',
        'primer_tiempo',
        'entretiempo',
        'segundo_tiempo',
        'finalizado',
        'suspendido',
        'postergado'
    );

    if ($equipoLocalId <= 0 || $equipoVisitanteId <= 0) {
        setFlash('danger', 'Tenés que seleccionar equipo local y visitante.');
        header('Location: partidos_admin.php' . ($id > 0 ? '?id=' . $id : ''));
        exit;
    }

    if ($equipoLocalId === $equipoVisitanteId) {
        setFlash('danger', 'El equipo local y el visitante no pueden ser el mismo.');
        header('Location: partidos_admin.php' . ($id > 0 ? '?id=' . $id : ''));
        exit;
    }

    if ($estadioId <= 0) {
        setFlash('danger', 'El estadio es obligatorio para crear el partido.');
        header('Location: partidos_admin.php' . ($id > 0 ? '?id=' . $id : ''));
        exit;
    }

    if ($fechaPartido === '' || $horaPartido === '') {
        setFlash('danger', 'La fecha y la hora del partido son obligatorias.');
        header('Location: partidos_admin.php' . ($id > 0 ? '?id=' . $id : ''));
        exit;
    }

    $dtFecha = DateTime::createFromFormat('Y-m-d', $fechaPartido);
    if (!$dtFecha || $dtFecha->format('Y-m-d') !== $fechaPartido) {
        setFlash('danger', 'La fecha del partido no es válida.');
        header('Location: partidos_admin.php' . ($id > 0 ? '?id=' . $id : ''));
        exit;
    }

    $dtHora = DateTime::createFromFormat('H:i', $horaPartido);
    if (!$dtHora) {
        $dtHora = DateTime::createFromFormat('H:i:s', $horaPartido);
    }
    if (!$dtHora) {
        setFlash('danger', 'La hora del partido no es válida.');
        header('Location: partidos_admin.php' . ($id > 0 ? '?id=' . $id : ''));
        exit;
    }

    if (!in_array($estado, $estadosValidos)) {
        $estado = 'programado';
    }

    $fechaHoraPartido = $fechaPartido . ' ' . substr($dtHora->format('H:i:s'), 0, 8);

    $arbitrosSeleccionados = array(
        'Arbitro principal' => $arbitroPrincipal,
        'Asistente 1'       => $asistente1,
        'Asistente 2'       => $asistente2,
        'Cuarto arbitro'    => $cuartoArbitro
    );

    $idsArbitros = array();
    foreach ($arbitrosSeleccionados as $rol => $arbId) {
        if ($arbId > 0) {
            if (in_array($arbId, $idsArbitros)) {
                setFlash('danger', 'No podés repetir el mismo árbitro en más de un rol.');
                header('Location: partidos_admin.php' . ($id > 0 ? '?id=' . $id : ''));
                exit;
            }
            $idsArbitros[] = $arbId;
        }
    }

    $conn->begin_transaction();

    try {
        if ($id > 0) {
            $sql = "UPDATE fut_partidos
                    SET competencia = ?, temporada = ?, jornada = ?, instancia = ?,
                        equipo_local_id = ?, equipo_visitante_id = ?, estadio_id = ?,
                        fecha_partido = ?, hora_partido = ?, fecha_hora_partido = ?,
                        estado = ?, observaciones = ?, publicado = ?, destacado = ?,
                        actualizado_en = NOW()
                    WHERE id = ?";

            $stmt = $conn->prepare($sql);
            if (!$stmt) {
                throw new Exception('Error al preparar la actualización del partido: ' . $conn->error);
            }

            $stmt->bind_param(
                'ssssiiisssssiii',
                $competencia,
                $temporada,
                $jornada,
                $instancia,
                $equipoLocalId,
                $equipoVisitanteId,
                $estadioId,
                $fechaPartido,
                $horaPartido,
                $fechaHoraPartido,
                $estado,
                $observaciones,
                $publicado,
                $destacado,
                $id
            );

            if (!$stmt->execute()) {
                throw new Exception('No se pudo actualizar el partido: ' . $stmt->error);
            }

            $stmt->close();
            $partidoId = $id;
            $accionSync = 'update';
            $mensajeOk = 'Partido actualizado correctamente.';
        } else {
            $sql = "INSERT INTO fut_partidos
                    (competencia, temporada, jornada, instancia,
                     equipo_local_id, equipo_visitante_id, estadio_id,
                     fecha_partido, hora_partido, fecha_hora_partido,
                     estado, marcador_local, marcador_visitante,
                     observaciones, publicado, destacado, creado_en, actualizado_en)
                    VALUES
                    (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 0, 0, ?, ?, ?, NOW(), NOW())";

            $stmt = $conn->prepare($sql);
            if (!$stmt) {
                throw new Exception('Error al preparar el alta del partido: ' . $conn->error);
            }

            $stmt->bind_param(
                'ssssiiisssssii',
                $competencia,
                $temporada,
                $jornada,
                $instancia,
                $equipoLocalId,
                $equipoVisitanteId,
                $estadioId,
                $fechaPartido,
                $horaPartido,
                $fechaHoraPartido,
                $estado,
                $observaciones,
                $publicado,
                $destacado
            );

            if (!$stmt->execute()) {
                throw new Exception('No se pudo crear el partido: ' . $stmt->error);
            }

            $partidoId = (int)$stmt->insert_id;
            $stmt->close();
            $accionSync = 'insert';
            $mensajeOk = 'Partido creado correctamente.';
        }

        $sqlDel = "DELETE FROM fut_partidos_arbitros WHERE partido_id = ?";
        $stmtDel = $conn->prepare($sqlDel);
        if (!$stmtDel) {
            throw new Exception('Error al preparar el borrado de árbitros del partido: ' . $conn->error);
        }
        $stmtDel->bind_param('i', $partidoId);
        if (!$stmtDel->execute()) {
            throw new Exception('No se pudieron actualizar los árbitros del partido: ' . $stmtDel->error);
        }
        $stmtDel->close();

        foreach ($arbitrosSeleccionados as $rol => $arbId) {
            if ($arbId > 0) {
                $sqlInsArb = "INSERT INTO fut_partidos_arbitros
                              (partido_id, arbitro_id, rol, creado_en)
                              VALUES (?, ?, ?, NOW())";
                $stmtArb = $conn->prepare($sqlInsArb);
                if (!$stmtArb) {
                    throw new Exception('Error al preparar la carga de árbitros: ' . $conn->error);
                }
                $stmtArb->bind_param('iis', $partidoId, $arbId, $rol);
                if (!$stmtArb->execute()) {
                    throw new Exception('No se pudo guardar un árbitro del partido: ' . $stmtArb->error);
                }
                $stmtArb->close();
            }
        }

        $payload = json_encode(array(
            'id' => $partidoId,
            'competencia' => $competencia,
            'temporada' => $temporada,
            'jornada' => $jornada,
            'instancia' => $instancia,
            'equipo_local_id' => $equipoLocalId,
            'equipo_visitante_id' => $equipoVisitanteId,
            'estadio_id' => $estadioId,
            'fecha_partido' => $fechaPartido,
            'hora_partido' => $horaPartido,
            'fecha_hora_partido' => $fechaHoraPartido,
            'estado' => $estado,
            'observaciones' => $observaciones,
            'publicado' => $publicado,
            'destacado' => $destacado,
            'arbitros' => $arbitrosSeleccionados
        ));

        guardarSyncPendiente($conn, 'fut_partidos', $partidoId, $accionSync, $payload);

        $conn->commit();
        setFlash('success', $mensajeOk);
        header('Location: partidos_admin.php?id=' . $partidoId);
        exit;

    } catch (Exception $e) {
        $conn->rollback();
        setFlash('danger', $e->getMessage());
        header('Location: partidos_admin.php' . ($id > 0 ? '?id=' . $id : ''));
        exit;
    }
}

$registroEditar = null;
$arbitrosPartido = array(
    'Arbitro principal' => 0,
    'Asistente 1' => 0,
    'Asistente 2' => 0,
    'Cuarto arbitro' => 0
);

if ($idEditar > 0) {
    $registroEditar = obtenerPartidoPorId($conn, $idEditar);
    if ($registroEditar) {
        $arbitrosPartido = obtenerArbitrosPartido($conn, $idEditar);
    }
}

$flash = getFlash();

$equipos = obtenerEquiposActivos($conn);
$estadios = obtenerEstadiosActivos($conn);
$arbitros = obtenerArbitrosActivos($conn);

$busqueda = isset($_GET['q']) ? limpiar($_GET['q']) : '';
$filtroEstado = isset($_GET['estado_filtro']) ? limpiar($_GET['estado_filtro']) : '';

$where = "1=1";

if ($busqueda !== '') {
    $b = $conn->real_escape_string($busqueda);
    $where .= " AND (
        p.competencia LIKE '%{$b}%'
        OR p.temporada LIKE '%{$b}%'
        OR p.jornada LIKE '%{$b}%'
        OR p.instancia LIKE '%{$b}%'
        OR el.nombre LIKE '%{$b}%'
        OR ev.nombre LIKE '%{$b}%'
        OR es.nombre LIKE '%{$b}%'
        OR es.localidad LIKE '%{$b}%'
        OR es.provincia LIKE '%{$b}%'
    )";
}

if ($filtroEstado !== '') {
    $f = $conn->real_escape_string($filtroEstado);
    $where .= " AND p.estado = '{$f}'";
}

$sqlListado = "SELECT
                    p.*,
                    el.nombre AS equipo_local_nombre,
                    ev.nombre AS equipo_visitante_nombre,
                    es.nombre AS estadio_nombre,
                    es.localidad AS estadio_localidad,
                    es.provincia AS estadio_provincia
               FROM fut_partidos p
               INNER JOIN fut_equipos el ON el.id = p.equipo_local_id
               INNER JOIN fut_equipos ev ON ev.id = p.equipo_visitante_id
               INNER JOIN fut_estadios es ON es.id = p.estadio_id
               WHERE {$where}
               ORDER BY p.fecha_hora_partido DESC, p.id DESC";

$listado = $conn->query($sqlListado);

$totalPartidos = 0;
$totalProgramados = 0;
$totalEnVivo = 0;
$totalFinalizados = 0;

$resTot = $conn->query("SELECT
    COUNT(*) AS total,
    SUM(CASE WHEN estado = 'programado' THEN 1 ELSE 0 END) AS programados,
    SUM(CASE WHEN estado IN ('primer_tiempo','segundo_tiempo') THEN 1 ELSE 0 END) AS en_vivo,
    SUM(CASE WHEN estado = 'finalizado' THEN 1 ELSE 0 END) AS finalizados
    FROM fut_partidos");

if ($resTot && ($rowTot = $resTot->fetch_assoc())) {
    $totalPartidos = (int)$rowTot['total'];
    $totalProgramados = (int)$rowTot['programados'];
    $totalEnVivo = (int)$rowTot['en_vivo'];
    $totalFinalizados = (int)$rowTot['finalizados'];
}

$estados = array(
    'programado' => 'Programado',
    'primer_tiempo' => 'Primer tiempo',
    'entretiempo' => 'Entretiempo',
    'segundo_tiempo' => 'Segundo tiempo',
    'finalizado' => 'Finalizado',
    'suspendido' => 'Suspendido',
    'postergado' => 'Postergado'
);
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="utf-8">
    <meta name="description" content="Panel de Partidos">
    <meta name="author" content="<?php echo isset($nombresitio) ? h($nombresitio) : 'Panel'; ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <title><?php echo isset($nombresitio) ? h($nombresitio) . ' - Partidos' : 'Panel - Partidos'; ?></title>

    <link href="https://fonts.googleapis.com/css?family=Oswald:400,500,700|Roboto:300,400,500,700" rel="stylesheet">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">

    <style type="text/css">
        *{
            border-radius:0 !important;
            box-sizing:border-box;
        }
        body{
            margin:0;
            padding:0;
            background:#f4f6f9;
            font-family:'Roboto', sans-serif;
            color:#222;
        }
        a{
            transition:all .2s ease;
        }
        .top-wrap{
            background:#ffffff;
            border-bottom:1px solid #e5e5e5;
        }
        .topbar{
            display:flex;
            flex-wrap:wrap;
            align-items:center;
            justify-content:space-between;
            padding:12px 0;
        }
        .topbar-left{
            font-family:'Oswald', sans-serif;
            font-size:24px;
            font-weight:700;
            color:#0066FF;
            text-transform:uppercase;
        }
        .topbar-right a{
            display:inline-block;
            margin-left:8px;
            text-decoration:none;
            background:#0066FF;
            color:#fff;
            padding:10px 14px;
            font-size:13px;
            font-weight:700;
            border:1px solid #0066FF;
            text-transform:uppercase;
        }
        .topbar-right a:hover{
            background:#004fc7;
            border-color:#004fc7;
            color:#fff;
            text-decoration:none;
        }
        .panel-wrapper{
            padding:30px 0;
        }
        .panel-header{
            background:#0066FF;
            color:#fff;
            padding:25px 20px;
            text-align:center;
            margin-bottom:25px;
        }
        .panel-header h1{
            margin:0;
            font-family:'Oswald', sans-serif;
            font-size:32px;
            font-weight:700;
            text-transform:uppercase;
        }
        .panel-header p{
            margin:10px 0 0 0;
            font-size:15px;
            opacity:.95;
        }
        .stat-card{
            background:#fff;
            border:1px solid #e3e6ea;
            padding:22px 18px;
            margin-bottom:20px;
            text-align:center;
            height:100%;
        }
        .stat-card .stat-number{
            display:block;
            font-family:'Oswald', sans-serif;
            font-size:42px;
            line-height:1;
            color:#0066FF;
            margin-bottom:8px;
        }
        .stat-card .stat-label{
            display:block;
            font-size:14px;
            color:#666;
            text-transform:uppercase;
            font-weight:700;
            letter-spacing:.4px;
        }
        .box{
            background:#fff;
            border:1px solid #e3e6ea;
            padding:25px;
            margin-bottom:20px;
        }
        .box-title{
            margin:0 0 18px 0;
            font-size:24px;
            font-weight:700;
            color:#0066FF;
            font-family:'Oswald', sans-serif;
            text-transform:uppercase;
        }
        .quick-link{
            display:block;
            width:100%;
            text-align:center;
            background:#0066FF;
            color:#fff;
            text-decoration:none;
            padding:14px 10px;
            font-weight:700;
            border:1px solid #0066FF;
            text-transform:uppercase;
        }
        .quick-link:hover{
            background:#004fc7;
            border-color:#004fc7;
            color:#fff;
            text-decoration:none;
        }
        .table-wrap{
            background:#fff;
            border:1px solid #e3e6ea;
            overflow:hidden;
        }
        .table-title{
            background:#fff;
            border-bottom:1px solid #e3e6ea;
            padding:18px 20px;
            font-family:'Oswald', sans-serif;
            font-size:24px;
            color:#0066FF;
            text-transform:uppercase;
            font-weight:700;
        }
        .table{
            margin-bottom:0;
        }
        .table thead th{
            background:#f7f9fc;
            border-top:none;
            border-bottom:1px solid #e3e6ea;
            color:#444;
            font-size:13px;
            text-transform:uppercase;
            vertical-align:middle;
        }
        .table td{
            vertical-align:middle;
        }
        .estado{
            display:inline-block;
            padding:6px 10px;
            font-size:11px;
            font-weight:700;
            text-transform:uppercase;
            color:#fff;
        }
        .estado-programado{ background:#6c757d; }
        .estado-primer_tiempo{ background:#28a745; }
        .estado-entretiempo{ background:#fd7e14; }
        .estado-segundo_tiempo{ background:#20c997; }
        .estado-finalizado{ background:#343a40; }
        .estado-suspendido{ background:#dc3545; }
        .estado-postergado{ background:#6f42c1; }

        .flag{
            display:inline-block;
            padding:6px 10px;
            font-size:11px;
            font-weight:700;
            text-transform:uppercase;
            color:#fff;
            margin-right:4px;
        }
        .flag-si{ background:#0066FF; }
        .flag-no{ background:#999; }

        .form-control, .btn{
            border-radius:0 !important;
        }
        .btn-primary{
            background:#0066FF;
            border-color:#0066FF;
        }
        .btn-primary:hover{
            background:#004fc7;
            border-color:#004fc7;
        }
        .btn-outline-primary{
            color:#0066FF;
            border-color:#0066FF;
        }
        .btn-outline-primary:hover{
            background:#0066FF;
            border-color:#0066FF;
        }
        .help-text{
            font-size:12px;
            color:#777;
            margin-top:6px;
        }

        @media (max-width: 767px){
            .topbar{
                display:block;
            }
            .topbar-left{
                margin-bottom:12px;
                font-size:20px;
            }
            .topbar-right a{
                display:block;
                margin:0 0 8px 0;
                text-align:center;
            }
            .panel-header h1{
                font-size:24px;
            }
            .box,
            .stat-card{
                padding:20px;
            }
            .stat-card .stat-number{
                font-size:34px;
            }
        }
    </style>
</head>
<body>

    <div class="top-wrap">
        <div class="container">
            <div class="topbar">
                <div class="topbar-left">
                    <?php echo isset($nombresitio) && $nombresitio !== '' ? h($nombresitio) : 'Panel'; ?>
                </div>
                <div class="topbar-right">
                    <a href="dashboard_futbol.php">Dashboard</a>
                    <a href="../partidos.php" target="_blank">Ver sitio</a>
                    <a href="../logout.php">Salir</a>
                </div>
            </div>
        </div>
    </div>

    <div class="container panel-wrapper">

        <div class="panel-header">
            <h1>Partidos</h1>
            <p>Creación y edición de partidos con estadio obligatorio, fecha, hora, publicación y árbitros.</p>
        </div>

        <?php if ($flash) { ?>
            <div class="alert alert-<?php echo h($flash['tipo']); ?>">
                <?php echo h($flash['mensaje']); ?>
            </div>
        <?php } ?>

        <div class="row">
            <div class="col-md-3 col-6 mb-3">
                <div class="stat-card">
                    <span class="stat-number"><?php echo (int)$totalPartidos; ?></span>
                    <span class="stat-label">Partidos</span>
                </div>
            </div>
            <div class="col-md-3 col-6 mb-3">
                <div class="stat-card">
                    <span class="stat-number"><?php echo (int)$totalProgramados; ?></span>
                    <span class="stat-label">Programados</span>
                </div>
            </div>
            <div class="col-md-3 col-6 mb-3">
                <div class="stat-card">
                    <span class="stat-number"><?php echo (int)$totalEnVivo; ?></span>
                    <span class="stat-label">En vivo</span>
                </div>
            </div>
            <div class="col-md-3 col-6 mb-3">
                <div class="stat-card">
                    <span class="stat-number"><?php echo (int)$totalFinalizados; ?></span>
                    <span class="stat-label">Finalizados</span>
                </div>
            </div>
        </div>

        <div class="row mt-2">
            <div class="col-md-4 mb-3">
                <a href="dashboard_futbol.php" class="quick-link">Volver al dashboard</a>
            </div>
            <div class="col-md-4 mb-3">
                <a href="partidos_admin.php" class="quick-link">Nuevo partido</a>
            </div>
            <div class="col-md-4 mb-3">
                <a href="en_vivo.php" class="quick-link">Ir al vivo</a>
            </div>
        </div>

        <div class="box">
            <h3 class="box-title"><?php echo $registroEditar ? 'Editar partido' : 'Crear partido'; ?></h3>

            <form method="post" action="partidos_admin.php">
                <input type="hidden" name="accion" value="guardar">
                <input type="hidden" name="id" value="<?php echo $registroEditar ? (int)$registroEditar['id'] : 0; ?>">

                <div class="row">
                    <div class="col-md-3 mb-3">
                        <label><strong>Competencia</strong></label>
                        <input type="text" name="competencia" class="form-control" value="<?php echo $registroEditar ? h($registroEditar['competencia']) : ''; ?>" placeholder="Ej: Liga del Sur">
                    </div>

                    <div class="col-md-3 mb-3">
                        <label><strong>Temporada</strong></label>
                        <input type="text" name="temporada" class="form-control" value="<?php echo $registroEditar ? h($registroEditar['temporada']) : ''; ?>" placeholder="Ej: 2026">
                    </div>

                    <div class="col-md-3 mb-3">
                        <label><strong>Jornada / Fecha</strong></label>
                        <input type="text" name="jornada" class="form-control" value="<?php echo $registroEditar ? h($registroEditar['jornada']) : ''; ?>" placeholder="Ej: Fecha 8">
                    </div>

                    <div class="col-md-3 mb-3">
                        <label><strong>Instancia</strong></label>
                        <input type="text" name="instancia" class="form-control" value="<?php echo $registroEditar ? h($registroEditar['instancia']) : ''; ?>" placeholder="Ej: Primera fase">
                    </div>

                    <div class="col-md-4 mb-3">
                        <label><strong>Equipo local *</strong></label>
                        <select name="equipo_local_id" class="form-control" required>
                            <option value="">Seleccionar</option>
                            <?php foreach ($equipos as $eq) {
                                $sel = ($registroEditar && (int)$registroEditar['equipo_local_id'] === (int)$eq['id']) ? 'selected' : '';
                            ?>
                                <option value="<?php echo (int)$eq['id']; ?>" <?php echo $sel; ?>>
                                    <?php echo h($eq['nombre']); ?><?php echo $eq['nombre_corto'] != '' ? ' (' . h($eq['nombre_corto']) . ')' : ''; ?>
                                </option>
                            <?php } ?>
                        </select>
                    </div>

                    <div class="col-md-4 mb-3">
                        <label><strong>Equipo visitante *</strong></label>
                        <select name="equipo_visitante_id" class="form-control" required>
                            <option value="">Seleccionar</option>
                            <?php foreach ($equipos as $eq) {
                                $sel = ($registroEditar && (int)$registroEditar['equipo_visitante_id'] === (int)$eq['id']) ? 'selected' : '';
                            ?>
                                <option value="<?php echo (int)$eq['id']; ?>" <?php echo $sel; ?>>
                                    <?php echo h($eq['nombre']); ?><?php echo $eq['nombre_corto'] != '' ? ' (' . h($eq['nombre_corto']) . ')' : ''; ?>
                                </option>
                            <?php } ?>
                        </select>
                    </div>

                    <div class="col-md-4 mb-3">
                        <label><strong>Estadio *</strong></label>
                        <select name="estadio_id" class="form-control" required>
                            <option value="">Seleccionar estadio</option>
                            <?php foreach ($estadios as $es) {
                                $sel = ($registroEditar && (int)$registroEditar['estadio_id'] === (int)$es['id']) ? 'selected' : '';
                            ?>
                                <option value="<?php echo (int)$es['id']; ?>" <?php echo $sel; ?>>
                                    <?php echo h($es['nombre']); ?> - <?php echo h($es['localidad']); ?> / <?php echo h($es['provincia']); ?>
                                </option>
                            <?php } ?>
                        </select>
                        <div class="help-text">No se puede crear el partido sin estadio.</div>
                    </div>

                    <div class="col-md-3 mb-3">
                        <label><strong>Fecha del partido *</strong></label>
                        <input type="date" name="fecha_partido" class="form-control" required value="<?php echo $registroEditar ? h($registroEditar['fecha_partido']) : ''; ?>">
                    </div>

                    <div class="col-md-3 mb-3">
                        <label><strong>Hora del partido *</strong></label>
                        <input type="time" name="hora_partido" class="form-control" required value="<?php echo $registroEditar ? h(substr($registroEditar['hora_partido'], 0, 5)) : ''; ?>">
                    </div>

                    <div class="col-md-3 mb-3">
                        <label><strong>Estado</strong></label>
                        <select name="estado" class="form-control">
                            <?php foreach ($estados as $k => $v) {
                                $sel = ($registroEditar && $registroEditar['estado'] === $k) ? 'selected' : '';
                                if (!$registroEditar && $k === 'programado') {
                                    $sel = 'selected';
                                }
                            ?>
                                <option value="<?php echo h($k); ?>" <?php echo $sel; ?>><?php echo h($v); ?></option>
                            <?php } ?>
                        </select>
                    </div>

                    <div class="col-md-3 mb-3">
                        <label><strong>Opciones</strong></label>
                        <div style="padding-top:8px;">
                            <div class="form-check">
                                <input class="form-check-input" type="checkbox" name="publicado" id="publicado" value="1" <?php echo ($registroEditar ? ((int)$registroEditar['publicado'] === 1 ? 'checked' : '') : 'checked'); ?>>
                                <label class="form-check-label" for="publicado">Publicado</label>
                            </div>
                            <div class="form-check">
                                <input class="form-check-input" type="checkbox" name="destacado" id="destacado" value="1" <?php echo ($registroEditar && (int)$registroEditar['destacado'] === 1 ? 'checked' : ''); ?>>
                                <label class="form-check-label" for="destacado">Destacado</label>
                            </div>
                        </div>
                    </div>

                    <div class="col-md-3 mb-3">
                        <label><strong>Árbitro principal</strong></label>
                        <select name="arbitro_principal_id" class="form-control">
                            <option value="0">Sin asignar</option>
                            <?php foreach ($arbitros as $arb) {
                                $sel = ((int)$arbitrosPartido['Arbitro principal'] === (int)$arb['id']) ? 'selected' : '';
                            ?>
                                <option value="<?php echo (int)$arb['id']; ?>" <?php echo $sel; ?>>
                                    <?php echo h($arb['apellido'] . ', ' . $arb['nombre']); ?>
                                </option>
                            <?php } ?>
                        </select>
                    </div>

                    <div class="col-md-3 mb-3">
                        <label><strong>Asistente 1</strong></label>
                        <select name="asistente_1_id" class="form-control">
                            <option value="0">Sin asignar</option>
                            <?php foreach ($arbitros as $arb) {
                                $sel = ((int)$arbitrosPartido['Asistente 1'] === (int)$arb['id']) ? 'selected' : '';
                            ?>
                                <option value="<?php echo (int)$arb['id']; ?>" <?php echo $sel; ?>>
                                    <?php echo h($arb['apellido'] . ', ' . $arb['nombre']); ?>
                                </option>
                            <?php } ?>
                        </select>
                    </div>

                    <div class="col-md-3 mb-3">
                        <label><strong>Asistente 2</strong></label>
                        <select name="asistente_2_id" class="form-control">
                            <option value="0">Sin asignar</option>
                            <?php foreach ($arbitros as $arb) {
                                $sel = ((int)$arbitrosPartido['Asistente 2'] === (int)$arb['id']) ? 'selected' : '';
                            ?>
                                <option value="<?php echo (int)$arb['id']; ?>" <?php echo $sel; ?>>
                                    <?php echo h($arb['apellido'] . ', ' . $arb['nombre']); ?>
                                </option>
                            <?php } ?>
                        </select>
                    </div>

                    <div class="col-md-3 mb-3">
                        <label><strong>Cuarto árbitro</strong></label>
                        <select name="cuarto_arbitro_id" class="form-control">
                            <option value="0">Sin asignar</option>
                            <?php foreach ($arbitros as $arb) {
                                $sel = ((int)$arbitrosPartido['Cuarto arbitro'] === (int)$arb['id']) ? 'selected' : '';
                            ?>
                                <option value="<?php echo (int)$arb['id']; ?>" <?php echo $sel; ?>>
                                    <?php echo h($arb['apellido'] . ', ' . $arb['nombre']); ?>
                                </option>
                            <?php } ?>
                        </select>
                    </div>

                    <div class="col-md-12 mb-3">
                        <label><strong>Observaciones</strong></label>
                        <textarea name="observaciones" class="form-control" rows="4"><?php echo $registroEditar ? h($registroEditar['observaciones']) : ''; ?></textarea>
                    </div>

                    <div class="col-md-12">
                        <button type="submit" class="btn btn-primary">
                            <?php echo $registroEditar ? 'Guardar cambios' : 'Crear partido'; ?>
                        </button>

                        <?php if ($registroEditar) { ?>
                            <a href="partidos_admin.php" class="btn btn-outline-secondary">Cancelar edición</a>
                            <a href="../partido.php?id=<?php echo (int)$registroEditar['id']; ?>" target="_blank" class="btn btn-outline-primary">Ver partido público</a>
                        <?php } ?>
                    </div>
                </div>
            </form>
        </div>

        <div class="box">
            <h3 class="box-title">Buscar partidos</h3>
            <form method="get" action="partidos_admin.php">
                <div class="row">
                    <div class="col-md-8 mb-2">
                        <input type="text" name="q" class="form-control" value="<?php echo h($busqueda); ?>" placeholder="Buscar por competencia, jornada, equipos o estadio">
                    </div>
                    <div class="col-md-2 mb-2">
                        <select name="estado_filtro" class="form-control">
                            <option value="">Todos los estados</option>
                            <?php foreach ($estados as $k => $v) { 
                                $sel = ($filtroEstado === $k) ? 'selected' : '';
                            ?>
                                <option value="<?php echo h($k); ?>" <?php echo $sel; ?>><?php echo h($v); ?></option>
                            <?php } ?>
                        </select>
                    </div>
                    <div class="col-md-2 mb-2">
                        <button type="submit" class="btn btn-outline-primary btn-block">Buscar</button>
                    </div>
                </div>
            </form>
        </div>

        <div class="table-wrap">
            <div class="table-title">Listado de partidos</div>

            <?php if ($listado && $listado->num_rows > 0) { ?>
                <div class="table-responsive">
                    <table class="table table-bordered table-hover">
                        <thead>
                            <tr>
                                <th>ID</th>
                                <th>Fecha / Hora</th>
                                <th>Partido</th>
                                <th>Marcador</th>
                                <th>Competencia</th>
                                <th>Estadio</th>
                                <th>Estado</th>
                                <th>Publicación</th>
                                <th style="min-width:280px;">Acciones</th>
                            </tr>
                        </thead>
                        <tbody>
                            <?php while ($row = $listado->fetch_assoc()) { ?>
                                <tr>
                                    <td><?php echo (int)$row['id']; ?></td>
                                    <td>
                                        <?php echo h(date('d/m/Y', strtotime($row['fecha_partido']))); ?><br>
                                        <small><?php echo h(substr($row['hora_partido'], 0, 5)); ?> hs</small>
                                    </td>
                                    <td>
                                        <strong><?php echo h($row['equipo_local_nombre']); ?></strong> vs <strong><?php echo h($row['equipo_visitante_nombre']); ?></strong><br>
                                        <small>
                                            <?php echo $row['jornada'] != '' ? h($row['jornada']) . ' · ' : ''; ?>
                                            <?php echo h($row['instancia']); ?>
                                        </small>
                                    </td>
                                    <td>
                                        <?php echo (int)$row['marcador_local']; ?> - <?php echo (int)$row['marcador_visitante']; ?>
                                    </td>
                                    <td>
                                        <?php echo h($row['competencia']); ?><br>
                                        <small><?php echo h($row['temporada']); ?></small>
                                    </td>
                                    <td>
                                        <?php echo h($row['estadio_nombre']); ?><br>
                                        <small><?php echo h($row['estadio_localidad']); ?> / <?php echo h($row['estadio_provincia']); ?></small>
                                    </td>
                                    <td>
                                        <span class="estado estado-<?php echo h($row['estado']); ?>">
                                            <?php echo h(isset($estados[$row['estado']]) ? $estados[$row['estado']] : $row['estado']); ?>
                                        </span>
                                    </td>
                                    <td>
                                        <span class="flag <?php echo (int)$row['publicado'] === 1 ? 'flag-si' : 'flag-no'; ?>">
                                            <?php echo (int)$row['publicado'] === 1 ? 'Publicado' : 'Oculto'; ?>
                                        </span>
                                        <span class="flag <?php echo (int)$row['destacado'] === 1 ? 'flag-si' : 'flag-no'; ?>">
                                            <?php echo (int)$row['destacado'] === 1 ? 'Destacado' : 'Normal'; ?>
                                        </span>
                                    </td>
                                    <td>
                                        <a href="partidos_admin.php?id=<?php echo (int)$row['id']; ?>" class="btn btn-sm btn-primary">Editar</a>
                                        <a href="alineaciones.php?partido_id=<?php echo (int)$row['id']; ?>" class="btn btn-sm btn-info">Alineaciones</a>
                                        <a href="en_vivo.php?partido_id=<?php echo (int)$row['id']; ?>" class="btn btn-sm btn-warning">En vivo</a>
                                        <a href="partidos_admin.php?accion=toggle_publicado&id=<?php echo (int)$row['id']; ?>" class="btn btn-sm btn-secondary">Publicado</a>
                                        <a href="partidos_admin.php?accion=toggle_destacado&id=<?php echo (int)$row['id']; ?>" class="btn btn-sm btn-dark">Destacado</a>
                                        <a href="../partido.php?id=<?php echo (int)$row['id']; ?>" target="_blank" class="btn btn-sm btn-success">Ver</a>
                                    </td>
                                </tr>
                            <?php } ?>
                        </tbody>
                    </table>
                </div>
            <?php } else { ?>
                <div style="padding:25px; background:#fff; color:#666;">
                    No se encontraron partidos cargados.
                </div>
            <?php } ?>
        </div>

    </div>

    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</body>
</html>