<?php
/* ============================================================
   AUTORIZACIÓN DE REGENCIA - COLEGIO DE MÉDICOS VETERINARIOS
   ============================================================ */

declare(strict_types=1);

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

/* ============================================================
   CONFIGURACIÓN MYSQL
   ============================================================ */

$dbHost = '143.202.162.147';
$dbUser = 'colvet';
$dbPass = 'Colvet2018%';
$dbName = 'colegio';
$dbPort = 3306;

try {
    $cn = new mysqli($dbHost, $dbUser, $dbPass, $dbName, $dbPort);
    $cn->set_charset('utf8mb4');
} catch (Throwable $e) {
    http_response_code(500);
    exit('No fue posible conectar con la base de datos.');
}


/* ============================================================
   FUNCIONES
   ============================================================ */

function e($valor): string
{
    return htmlspecialchars((string)($valor ?? ''), ENT_QUOTES, 'UTF-8');
}


function periodoHora(?string $hora): int
{
    if (!$hora) {
        return 0;
    }

    $h = substr($hora, 0, 5);

    if ($h >= '00:00' && $h <= '12:00') {
        return 1; // Mañana
    }

    if ($h >= '12:01' && $h <= '18:00') {
        return 2; // Tarde
    }

    if ($h >= '18:01' && $h <= '23:59') {
        return 3; // Noche
    }

    return 0;
}


function agregarHora(
    array &$horario,
    int $dia,
    ?string $hora,
    string $prefijo
): void {

    if (!$hora || $dia < 1 || $dia > 7) {
        return;
    }

    $periodo = periodoHora($hora);

    if ($periodo === 0) {
        return;
    }

    $hora = substr($hora, 0, 5);

    if ($horario[$periodo][$dia] !== '') {
        $horario[$periodo][$dia] .= ' ';
    }

    $horario[$periodo][$dia] .= $prefijo . ':' . $hora;
}


function horarioVacio(): array
{
    $horario = [];

    for ($periodo = 1; $periodo <= 3; $periodo++) {
        for ($dia = 1; $dia <= 7; $dia++) {
            $horario[$periodo][$dia] = '';
        }
    }

    return $horario;
}


function fechaCR(?string $fecha): string
{
    if (!$fecha || $fecha === '0000-00-00') {
        return '';
    }

    $timestamp = strtotime($fecha);

    if ($timestamp === false) {
        return $fecha;
    }

    return date('d/m/Y', $timestamp);
}


function fechaLargaCR(?string $fecha): string
{
    if (!$fecha || $fecha === '0000-00-00') {
        return '';
    }

    $timestamp = strtotime($fecha);

    if ($timestamp === false) {
        return $fecha;
    }

    $meses = [
        1 => 'enero',
        2 => 'febrero',
        3 => 'marzo',
        4 => 'abril',
        5 => 'mayo',
        6 => 'junio',
        7 => 'julio',
        8 => 'agosto',
        9 => 'septiembre',
        10 => 'octubre',
        11 => 'noviembre',
        12 => 'diciembre'
    ];

    return date('d', $timestamp) . ' ' .
           $meses[(int)date('n', $timestamp)] . ' ' .
           date('Y', $timestamp);
}


/* ============================================================
   PARÁMETROS
   ============================================================ */

$idRegencia = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
$idSucursal = filter_input(INPUT_GET, 'sucursal', FILTER_VALIDATE_INT);

if (!$idRegencia) {
    http_response_code(400);
    exit('Autorización no especificada.');
}


/* ============================================================
   CONSULTA PRINCIPAL
   ============================================================ */

$sql = "
SELECT
    cr.id AS regencia_id,
    cr.fecha,
    cr.vence,
    cr.rotativo,
    cr.temporal,
    cr.folio,
    cr.consecutivo,
    cr.tipo,
    cr.nom2,
    cr.cole2,
    cr.regente,
    cr.sirea,
    cr.nom3,
    cr.cole3,
    cr.sucursal AS id_sucursal,

    r.nombre AS grupo,

    rd.nombre AS tipo_regencia,
    rd.obs AS observaciones,

    colegiado.nombre AS nombre_regente,
    colegiado.num_colegiado AS num_colegiado,

    rp.regencia AS pie_regencia,
    rp.asesoria AS pie_asesoria,

    qr.codeqr,

    cli.c_cod AS codigo_cliente,
    cli.nombre AS nombre_cliente,
    cli.rfc AS cedula,
    cli.repre_nombre AS representante,

    cs.id AS sucursal_id,
    cs.sucursal,
    cs.direccion,
    cs.telefono1,
    cs.correo,

    regiones.nombre AS region,
    distritos.nombre AS distrito,
    provincias.nombre AS provincia,
    cantones.nombre AS canton

FROM cliente_proyecto cp

INNER JOIN regencia r
    ON cp.regencia_id = r.id

INNER JOIN regencia_det rd
    ON cp.regencia_det_id = rd.id

INNER JOIN cliente_regencia cr
    ON cp.regencia = cr.id

INNER JOIN regencia_pies rp
    ON cr.id <> rp.id

INNER JOIN cliente_regencia_qr qr
    ON cr.id = qr.id

INNER JOIN cliente cli
    ON cr.cliente = cli.c_cod

INNER JOIN cliente colegiado
    ON cr.colegiado = colegiado.c_cod

INNER JOIN cliente_sucursal cs
    ON cli.c_cod = cs.cliente

INNER JOIN cat_distritos distritos
    ON cs.disitrito = distritos.id

INNER JOIN cat_provincias provincias
    ON cs.provincia = provincias.id

INNER JOIN cat_cantones cantones
    ON cs.canton = cantones.id

INNER JOIN regiones regiones
    ON cs.region = regiones.id

WHERE cr.id = ?
";

if ($idSucursal) {
    $sql .= " AND cs.id = ?";
}

$sql .= " LIMIT 1";

$stmt = $cn->prepare($sql);

if ($idSucursal) {
    $stmt->bind_param('ii', $idRegencia, $idSucursal);
} else {
    $stmt->bind_param('i', $idRegencia);
}

$stmt->execute();

$resultado = $stmt->get_result();
$datos = $resultado->fetch_assoc();

$stmt->close();


if (!$datos) {
    http_response_code(404);

    exit(
        '<!doctype html>
        <html lang="es">
        <head>
            <meta charset="utf-8">
            <meta name="viewport" content="width=device-width,initial-scale=1">
            <title>Autorización no encontrada</title>
        </head>
        <body style="font-family:Arial;padding:40px;text-align:center">
            <h2>Autorización no encontrada</h2>
            <p>No existe una autorización asociada a los datos suministrados.</p>
        </body>
        </html>'
    );
}


/* ============================================================
   SUCURSAL REAL
   ============================================================ */

$idSucursal = (int)$datos['sucursal_id'];
$codigoCliente = (string)$datos['codigo_cliente'];


/* ============================================================
   HORARIO DE OPERACIÓN DEL ESTABLECIMIENTO
   cliente_horario
   ============================================================ */

$horarioOperacion = horarioVacio();

$sqlHorario = "
SELECT
    dia,
    TIME_FORMAT(hora1,'%H:%i') AS hora1,
    TIME_FORMAT(hora2,'%H:%i') AS hora2
FROM cliente_horario
WHERE sucursal = ?
  AND cliente = ?
ORDER BY dia, hora1
";

$stmt = $cn->prepare($sqlHorario);
$stmt->bind_param('is', $idSucursal, $codigoCliente);
$stmt->execute();

$resHorario = $stmt->get_result();

while ($fila = $resHorario->fetch_assoc()) {

    $dia = (int)$fila['dia'];

    $hora1 = $fila['hora1'];
    $hora2 = $fila['hora2'];

    agregarHora(
        $horarioOperacion,
        $dia,
        $hora1,
        'E'
    );


    /*
     * Conserva la lógica especial del VB6:
     * si la salida del domingo es menor que la entrada,
     * la salida pertenece al lunes.
     */

    if (
        $dia === 7 &&
        $hora1 &&
        $hora2 &&
        $hora2 < $hora1
    ) {
        agregarHora(
            $horarioOperacion,
            1,
            $hora2,
            'S'
        );
    } else {
        agregarHora(
            $horarioOperacion,
            $dia,
            $hora2,
            'S'
        );
    }
}

$stmt->close();


/* ============================================================
   HORARIO DE PERMANENCIA DEL REGENTE
   cliente_proyecto
   ============================================================ */

$horarioPermanencia = horarioVacio();

$sqlPermanencia = "
SELECT
    dia,
    TIME_FORMAT(hora1,'%H:%i') AS hora1,
    TIME_FORMAT(hora2,'%H:%i') AS hora2
FROM cliente_proyecto
WHERE regencia = ?
ORDER BY dia, hora1
";

$stmt = $cn->prepare($sqlPermanencia);
$stmt->bind_param('i', $idRegencia);
$stmt->execute();

$resPermanencia = $stmt->get_result();

while ($fila = $resPermanencia->fetch_assoc()) {

    $dia = (int)$fila['dia'];

    agregarHora(
        $horarioPermanencia,
        $dia,
        $fila['hora1'],
        'E'
    );

    /*
     * En carga_proyectos() el VB6 original no realiza
     * traslado al día siguiente para este horario.
     */

    agregarHora(
        $horarioPermanencia,
        $dia,
        $fila['hora2'],
        'S'
    );
}

$stmt->close();


/* ============================================================
   VALORES DEL DOCUMENTO
   ============================================================ */

$dias = [
    1 => 'LUNES',
    2 => 'MARTES',
    3 => 'MIÉRCOLES',
    4 => 'JUEVES',
    5 => 'VIERNES',
    6 => 'SÁBADO',
    7 => 'DOMINGO'
];

$periodos = [
    1 => 'MAÑANA',
    2 => 'TARDE',
    3 => 'NOCHE'
];


/*
 * Crystal utiliza @TITULO.
 * Inicialmente lo determinamos por el documento suministrado.
 */

$titulo = 'Autorización de Regencia';


/*
 * Valores Sí/No.
 */

$rotativo = ((int)$datos['rotativo'] === 1) ? 'Sí' : 'No';
$temporal = ((int)$datos['temporal'] === 1) ? 'Sí' : 'No';


/*
 * Observación.
 * Si regencia_det.obs tiene contenido usamos ese valor.
 * De lo contrario utilizamos el texto del permiso actual.
 */

$observacion = trim((string)$datos['observaciones']);

if ($observacion === '') {
    $observacion =
        'Acuerdo N° 10/894-96. Este establecimiento no está facultado ' .
        'para vender medicamentos del Grupo 1, 2 y 3 ni despachar Recetas ' .
        'en ausencia del Regente Veterinario. Se advierte que la presente ' .
        'Autorización de Regencia es única y exclusivamente para la Razón ' .
        'Social que aquí se indica.';
}


/*
 * Texto legal inferior.
 */

$pieLegal =
    'Con fundamento en los artículos 110 y 111 del Reglamento a la Ley ' .
    'Orgánica del Colegio de Médicos Veterinarios, Decreto Ejecutivo ' .
    '19184-MAG, publicado en la Gaceta N° 179 del 21 de septiembre de 1989, ' .
    'la Junta Directiva está autorizada para suspender la Autorización de ' .
    'Regencia que no procure la defensa del público, la salud Pública o la Salud Animal.';


/*
 * SIREA
 */

$sirea = trim((string)$datos['sirea']);


/*
 * Número principal mostrado en rojo.
 * En el PDF corresponde al consecutivo.
 */

$consecutivo = $datos['consecutivo'];


/*
 * Fecha de impresión:
 * la web muestra la fecha actual.
 */

$fechaImpresion = date('d/m/Y');


/*
 * Logos.
 *
 * Colocar los archivos en:
 *
 * /img/logo-colegio.png
 * /img/sello-fiscalia.png
 */

?>
<!DOCTYPE html>
<html lang="es">

<head>

<meta charset="UTF-8">

<meta name="viewport"
      content="width=device-width, initial-scale=1.0">

<title>
    <?= e($titulo) ?> <?= e($consecutivo) ?>
</title>

<style>

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: #f3f5f7;
    color: #111;
    font-family: Arial, Helvetica, sans-serif;
}

.documento {
    max-width: 1100px;
    margin: 25px auto;
    background: #fff;
    padding: 28px;
    box-shadow: 0 2px 15px rgba(0,0,0,.12);
}


/* ============================================================
   ENCABEZADO
   ============================================================ */

.encabezado {
    display: grid;
    grid-template-columns: 170px 1fr 170px;
    align-items: center;
    margin-bottom: 14px;
}

.logo {
    max-width: 150px;
    max-height: 90px;
}

.titulo {
    text-align: center;
    font-family: Georgia, "Times New Roman", serif;
}

.titulo h1 {
    margin: 0;
    font-size: 24px;
}

.titulo h2 {
    margin: 2px 0;
    font-size: 18px;
}

.numero {
    color: red;
    font-weight: bold;
    font-size: 23px;
}

.sirea {
    font-weight: bold;
    font-size: 16px;
}


/* ============================================================
   GRUPO / UBICACIÓN
   ============================================================ */

.resumen {
    border: 1px solid #111;
    display: grid;
    grid-template-columns: 46% 54%;
    margin-top: 12px;
}

.resumen-izq {
    padding: 12px;
    border-right: 1px solid #111;
}

.fila-dato {
    display: grid;
    grid-template-columns: 80px 1fr;
    margin-bottom: 10px;
}

.etiqueta {
    font-weight: bold;
}

.ubicacion {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    text-align: center;
}

.ubicacion > div {
    padding: 12px 5px;
}

.ubicacion strong {
    display: block;
    margin-bottom: 12px;
}


/* ============================================================
   INFORMACIÓN GENERAL
   ============================================================ */

.informacion {
    display: grid;
    grid-template-columns: 62% 38%;
    gap: 25px;
    margin: 18px 12px;
}

.info-linea {
    display: grid;
    grid-template-columns: 155px 1fr;
    margin: 5px 0;
}

.info-linea .label {
    font-weight: bold;
}


/* ============================================================
   HORARIOS
   ============================================================ */

.seccion-titulo {
    font-family: Georgia, "Times New Roman", serif;
    font-weight: bold;
    font-size: 17px;
    margin: 17px 0 5px;
}

.tabla-responsive {
    width: 100%;
    overflow-x: auto;
}

.horario {
    width: 100%;
    min-width: 800px;
    border-collapse: collapse;
    table-layout: fixed;
}

.horario th,
.horario td {
    border: 1px solid #111;
    padding: 9px 7px;
}

.horario th {
    font-family: Georgia, "Times New Roman", serif;
    font-weight: normal;
    text-align: center;
}

.horario .periodo {
    width: 105px;
    font-family: Georgia, "Times New Roman", serif;
    font-weight: normal;
}

.hora {
    font-size: 13px;
    white-space: normal;
}


/* ============================================================
   OBSERVACIONES
   ============================================================ */

.observaciones-titulo {
    font-family: Georgia, "Times New Roman", serif;
    font-weight: bold;
    margin-top: 18px;
    margin-bottom: 4px;
}

.observaciones {
    border: 1px solid #111;
    min-height: 105px;
    padding: 14px;
    line-height: 1.45;
}


/* ============================================================
   VIGENCIA
   ============================================================ */

.datos-documento {
    display: flex;
    flex-wrap: wrap;
    gap: 35px;
    margin-top: 12px;
}

.datos-documento span {
    font-weight: bold;
}

.pie-legal {
    margin-top: 14px;
    line-height: 1.45;
}

.vencimiento {
    margin-top: 12px;
    font-size: 17px;
}

.vencimiento strong {
    margin-left: 35px;
}


/* ============================================================
   FIRMA
   ============================================================ */

.firma-area {
    display: grid;
    grid-template-columns: 180px 1fr 180px;
    align-items: end;
    min-height: 160px;
    margin-top: 15px;
}

.qr-placeholder {
    width: 125px;
    height: 125px;
    border: 2px solid #111;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    text-align: center;
}

.firma {
    text-align: center;
}

.linea-firma {
    width: 300px;
    max-width: 90%;
    margin: auto;
    border-top: 1px solid #111;
    padding-top: 5px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 12px;
    font-weight: bold;
}

.sello {
    max-width: 150px;
    max-height: 140px;
    display: block;
    margin: auto;
}

.visible {
    color: red;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 22px;
    font-weight: bold;
    text-align: center;
    margin-top: 8px;
}


/* ============================================================
   ESTADO DE VIGENCIA
   ============================================================ */

.estado {
    margin: 15px 0;
    padding: 12px;
    text-align: center;
    font-weight: bold;
    border-radius: 5px;
}

.estado-vigente {
    background: #e7f6ec;
    color: #176b34;
    border: 1px solid #9bd1ac;
}

.estado-vencido {
    background: #fdeaea;
    color: #a51919;
    border: 1px solid #e4aaaa;
}


/* ============================================================
   CELULAR
   ============================================================ */

@media (max-width: 700px) {

    body {
        background: #fff;
    }

    .documento {
        margin: 0;
        padding: 15px;
        box-shadow: none;
    }

    .encabezado {
        display: block;
        text-align: center;
    }

    .logo {
        margin-bottom: 10px;
    }

    .titulo h1 {
        font-size: 20px;
    }

    .titulo h2 {
        font-size: 17px;
    }

    .resumen {
        display: block;
    }

    .resumen-izq {
        border-right: 0;
        border-bottom: 1px solid #111;
    }

    .ubicacion {
        grid-template-columns: repeat(2,1fr);
    }

    .informacion {
        display: block;
        margin: 15px 5px;
    }

    .informacion > div:last-child {
        margin-top: 15px;
    }

    .info-linea {
        grid-template-columns: 125px 1fr;
    }

    .datos-documento {
        display: block;
    }

    .datos-documento > div {
        margin: 5px 0;
    }

    .vencimiento strong {
        display: block;
        margin: 5px 0;
    }

    .firma-area {
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }

    .firma {
        grid-column: 1 / 3;
        grid-row: 2;
    }

    .visible {
        font-size: 18px;
    }
}


/* ============================================================
   IMPRESIÓN
   ============================================================ */

@media print {

    body {
        background: #fff;
    }

    .documento {
        margin: 0;
        max-width: none;
        box-shadow: none;
    }

}

</style>

</head>

<body>

<div class="documento">

    <!-- =====================================================
         ENCABEZADO
         ===================================================== -->

    <div class="encabezado">

        <div>
            <img
                src="img/logo-colegio.png"
                class="logo"
                alt="Colegio de Profesionales en Medicina Veterinaria">
        </div>

        <div class="titulo">

            <h1>
                Colegio de Profesionales en Medicina Veterinaria Costa Rica
            </h1>

            <h2>
                <?= e($titulo) ?>
            </h2>

            <div class="numero">
                <?= e($consecutivo) ?>
            </div>

            <?php if ($sirea !== ''): ?>

                <div class="sirea">
                    SIREA N°: <?= e($sirea) ?>
                </div>

            <?php endif; ?>

        </div>

        <div></div>

    </div>


    <!-- =====================================================
         ESTADO
         ===================================================== -->

    <?php

    $estaVigente = true;

    if (!empty($datos['vence'])) {
        $estaVigente =
            strtotime($datos['vence']) >= strtotime(date('Y-m-d'));
    }

    ?>

    <?php if ($estaVigente): ?>

        <div class="estado estado-vigente">
            AUTORIZACIÓN VIGENTE
        </div>

    <?php else: ?>

        <div class="estado estado-vencido">
            AUTORIZACIÓN VENCIDA
        </div>

    <?php endif; ?>


    <!-- =====================================================
         GRUPO / TIPO / UBICACIÓN
         ===================================================== -->

    <div class="resumen">

        <div class="resumen-izq">

            <div class="fila-dato">
                <div class="etiqueta">GRUPO</div>
                <div><?= e($datos['grupo']) ?></div>
            </div>

            <div class="fila-dato">
                <div class="etiqueta">TIPO</div>
                <div><?= e($datos['tipo_regencia']) ?></div>
            </div>

        </div>


        <div class="ubicacion">

            <div>
                <strong>PROVINCIA</strong>
                <?= e($datos['provincia']) ?>
            </div>

            <div>
                <strong>CANTÓN</strong>
                <?= e($datos['canton']) ?>
            </div>

            <div>
                <strong>DISTRITO</strong>
                <?= e($datos['distrito']) ?>
            </div>

            <div>
                <strong>REGIÓN</strong>
                <?= e($datos['region']) ?>
            </div>

        </div>

    </div>


    <!-- =====================================================
         DATOS DEL ESTABLECIMIENTO
         ===================================================== -->

    <div class="informacion">

        <div>

            <div class="info-linea">
                <div class="label">SUCURSAL:</div>
                <div><?= e($datos['sucursal']) ?></div>
            </div>

            <div class="info-linea">
                <div class="label">NOMBRE</div>
                <div><?= e($datos['nombre_regente']) ?></div>
            </div>

            <div class="info-linea">
                <div class="label">CÉDULA</div>
                <div><?= e($datos['cedula']) ?></div>
            </div>

            <div class="info-linea">
                <div class="label">REPRESENTANTE:</div>
                <div><?= e($datos['representante']) ?></div>
            </div>

            <div class="info-linea">
                <div class="label">DOMICILIO FISCAL:</div>
                <div><?= e($datos['direccion']) ?></div>
            </div>

            <div class="info-linea">
                <div class="label">REGENTE</div>
                <div><?= e($datos['nombre_regente']) ?></div>
            </div>

            <div class="info-linea">
                <div class="label">N° REGENTE:</div>
                <div><?= e($datos['regente']) ?></div>
            </div>

            <div class="info-linea">
                <div class="label">SUPLENTE</div>
                <div>
                    <?= e($datos['cole2']) ?>
                    <?= e($datos['nom2']) ?>
                </div>
            </div>

            <div class="info-linea">
                <div class="label">SUPLENTE 3</div>
                <div>
                    <?= e($datos['cole3']) ?>
                    <?= e($datos['nom3']) ?>
                </div>
            </div>

        </div>


        <div>

            <div class="info-linea">
                <div class="label">TELÉFONO:</div>
                <div><?= e($datos['telefono1']) ?></div>
            </div>

            <div class="info-linea">
                <div class="label">EMAIL:</div>
                <div><?= e($datos['correo']) ?></div>
            </div>

            <br>

            <div class="info-linea">
                <div class="label">ROTATIVO:</div>
                <div><?= e($rotativo) ?></div>
            </div>

            <div class="info-linea">
                <div class="label">TEMPORAL:</div>
                <div><?= e($temporal) ?></div>
            </div>

        </div>

    </div>


    <!-- =====================================================
         HORARIO DE OPERACIÓN
         ===================================================== -->

    <div class="seccion-titulo">
        HORARIO DE OPERACIÓN DEL ESTABLECIMIENTO
    </div>

    <div class="tabla-responsive">

        <table class="horario">

            <thead>

            <tr>

                <th></th>

                <?php foreach ($dias as $dia): ?>
                    <th><?= e($dia) ?></th>
                <?php endforeach; ?>

            </tr>

            </thead>

            <tbody>

            <?php foreach ($periodos as $periodo => $nombrePeriodo): ?>

                <tr>

                    <td class="periodo">
                        <?= e($nombrePeriodo) ?>
                    </td>

                    <?php for ($dia = 1; $dia <= 7; $dia++): ?>

                        <td class="hora">
                            <?= e($horarioOperacion[$periodo][$dia]) ?>
                        </td>

                    <?php endfor; ?>

                </tr>

            <?php endforeach; ?>

            </tbody>

        </table>

    </div>


    <!-- =====================================================
         HORARIO DE PERMANENCIA
         ===================================================== -->

    <div class="seccion-titulo">
        HORARIO DE PERMANENCIA EN EL ESTABLECIMIENTO
    </div>

    <div class="tabla-responsive">

        <table class="horario">

            <thead>

            <tr>

                <th></th>

                <?php foreach ($dias as $dia): ?>
                    <th><?= e($dia) ?></th>
                <?php endforeach; ?>

            </tr>

            </thead>

            <tbody>

            <?php foreach ($periodos as $periodo => $nombrePeriodo): ?>

                <tr>

                    <td class="periodo">
                        <?= e($nombrePeriodo) ?>
                    </td>

                    <?php for ($dia = 1; $dia <= 7; $dia++): ?>

                        <td class="hora">
                            <?= e($horarioPermanencia[$periodo][$dia]) ?>
                        </td>

                    <?php endfor; ?>

                </tr>

            <?php endforeach; ?>

            </tbody>

        </table>

    </div>


    <!-- =====================================================
         OBSERVACIONES
         ===================================================== -->

    <div class="observaciones-titulo">
        OBSERVACIONES
    </div>

    <div class="observaciones">
        <?= nl2br(e($observacion)) ?>
    </div>


    <!-- =====================================================
         DATOS DEL DOCUMENTO
         ===================================================== -->

    <div class="datos-documento">

        <div>
            Folio:
            <span><?= e($datos['folio']) ?></span>
        </div>

        <div>
            Fecha de Impresión:
            <span><?= e($fechaImpresion) ?></span>
        </div>

        <div>
            Válido Desde:
            <span><?= e(fechaCR($datos['fecha'])) ?></span>
        </div>

    </div>


    <div class="pie-legal">
        <?= e($pieLegal) ?>
    </div>


    <div class="vencimiento">

        Esta Autorización de Regencia vence el próximo:

        <strong>
            <?= e(fechaLargaCR($datos['vence'])) ?>
        </strong>

    </div>


    <!-- =====================================================
         QR / FIRMA / SELLO
         ===================================================== -->

    <div class="firma-area">

        <div>

            <!--
                Aquí conectaremos el QR real.
                Por ahora mostramos el código almacenado.
            -->

            <div class="qr-placeholder">
                QR<br>
                <?= e($datos['codeqr']) ?>
            </div>

        </div>


        <div class="firma">

            <div class="linea-firma">
                FIRMA AUTORIZADA
            </div>

        </div>


        <div>

            <img
                src="img/sello-fiscalia.png"
                class="sello"
                alt="Fiscalía">

        </div>

    </div>


    <div class="visible">
        COLOCAR EN UN LUGAR VISIBLE
    </div>

</div>

</body>
</html>