<?php
/**
 * ASISMA CRM - Documento ÚNICO de cotización (pública, sin login).
 *
 * Una sola plantilla formal para productos, servicios o mixta. La identidad
 * visual (colores, logo, transferencia, eslogan, rótulo) llega resuelta en
 * $identidad (cascada servicio→franquiciado→default, ver IdentidadHelper).
 * El contenido de venta del servicio (párrafos, garantía, condiciones) llega
 * en $servicio (config del servicio) y el snapshot del plan/características/
 * bonos va dentro de productos_json. La plantilla ORNAMENTADA de Control Farma
 * es aparte (publica_servicio.php) y solo se usa para su servicio.
 *
 * Recibe: $cotiz (Cotizacion::getByHash), $identidad (array), $servicio (array|null),
 *         $flowActivo (bool).
 */
$items = json_decode($cotiz['productos_json'], true);
if (!is_array($items)) $items = array();
$itemPlan = null;
$productos = array();
foreach ($items as $it) {
    if (isset($it['clase']) && $it['clase'] === 'servicio_plan') $itemPlan = $it;
    else $productos[] = $it;
}
$tieneServicio = ($itemPlan !== null);
$svc = (isset($servicio) && is_array($servicio)) ? $servicio : array();

// ── Identidad resuelta (fallback defensivo a defaults) ──────────────────────
$idv = (isset($identidad) && is_array($identidad)) ? $identidad : IdentidadHelper::defaults();
$colorPrimario   = !empty($idv['color_primario']) ? $idv['color_primario'] : '#1c2430';
$colorSecundario = !empty($idv['color_secundario']) ? $idv['color_secundario'] : '#334155';
$logoUrl  = !empty($idv['logo_ruta']) ? APP_URL . '/public/' . ltrim($idv['logo_ruta'], '/') : '';
$eslogan  = isset($idv['eslogan']) ? $idv['eslogan'] : '';
$rotulo   = !empty($idv['rotulo_cliente']) ? $idv['rotulo_cliente'] : 'su empresa';
$tieneTransferencia = !empty($idv['transferencia_titular']);

$moneda = isset($cotiz['moneda']) ? $cotiz['moneda'] : 'CLP';
$statusMessage = isset($_GET['status']) ? $_GET['status'] : '';
$flowActivo = isset($flowActivo) ? $flowActivo : false;

// ── Totales: reconciliados con el total almacenado (funciona igual para
//    productos, servicios y mixta, sin recomputar el descuento) ─────────────
$subtotal = (float)$cotiz['subtotal'];
$impuestoPct = (float)$cotiz['impuesto_pct'];
$baseConDescuento = $impuestoPct > 0 ? ($cotiz['total'] / (1 + $impuestoPct / 100)) : (float)$cotiz['total'];
$ivaMonto  = (float)$cotiz['total'] - $baseConDescuento;
$descMonto = max(0, $subtotal - $baseConDescuento);

$folio = folio_cotizacion($cotiz);
// El flujo aceptar/rechazar/pagar-Flow es SOLO para cotizaciones sin servicio;
// con servicio, la transferencia es la aceptación (misma semántica de antes).
$puedeDecidir = !$tieneServicio && empty($statusMessage) && in_array($cotiz['estado'], array('borrador', 'enviada', 'vista'));
$estaAceptada = ($cotiz['estado'] === 'aceptada');
$estaPagada   = ($cotiz['estado'] === 'pagada');

// ── Contenido del servicio (si la cotización lo incluye) ────────────────────
$cuotas = isset($cotiz['cuotas']) ? (int)$cotiz['cuotas'] : 1;
$planNombre = $tieneServicio && isset($itemPlan['plan_nombre']) ? $itemPlan['plan_nombre'] : '';
$monedaPlan = $tieneServicio && isset($itemPlan['moneda']) ? $itemPlan['moneda'] : 'CLP';
$setupNetoClp   = $tieneServicio && isset($itemPlan['precio_inicial_clp']) ? (float)$itemPlan['precio_inicial_clp'] : 0;
$mensualNetoClp = $tieneServicio && isset($itemPlan['precio_mensual_clp']) ? (float)$itemPlan['precio_mensual_clp'] : 0;
$setupUf   = $tieneServicio && isset($itemPlan['precio_inicial']) ? $itemPlan['precio_inicial'] : null;
$mensualUf = $tieneServicio && isset($itemPlan['precio_mensual']) ? $itemPlan['precio_mensual'] : null;
$caracts = $tieneServicio && !empty($itemPlan['caracteristicas']) ? $itemPlan['caracteristicas'] : array();
$bonos   = $tieneServicio && !empty($itemPlan['bonos']) ? $itemPlan['bonos'] : array();

$parrafos = !empty($svc['parrafos_presentacion']) ? json_decode($svc['parrafos_presentacion'], true) : array();
if (!is_array($parrafos)) $parrafos = array();
$garantia = !empty($svc['garantia_texto']) ? json_decode($svc['garantia_texto'], true) : array();
if (!is_array($garantia)) $garantia = array();
$garantiaDias = isset($svc['garantia_dias']) ? (int)$svc['garantia_dias'] : 0;
// Condiciones comerciales: las de la MARCA (decisión 22-07); si la marca no
// tiene configuradas, se respetan las antiguas del servicio (compatibilidad)
$condiciones = isset($condicionesMarca) && is_array($condicionesMarca) && !empty($condicionesMarca)
    ? $condicionesMarca
    : (!empty($svc['condiciones_json']) ? json_decode($svc['condiciones_json'], true) : array());
if (!is_array($condiciones)) $condiciones = array();
$tituloBonos = !empty($svc['titulo_bonos']) ? $svc['titulo_bonos'] : 'Beneficios incluidos';
$fraseDestacada = !empty($svc['frase_destacada']) ? $svc['frase_destacada'] : '';
$validez = date('d-m-Y H:i', strtotime($cotiz['vencimiento_at']));

// Diseño pre-configurado del documento (marcas.diseno_documento):
// ejecutivo (default) | minimal | oscuro | comercial | moderno
$disenoDoc = isset($diseno) && is_string($diseno) && $diseno !== '' ? $diseno : 'ejecutivo';

// Vista previa (editores y cotizador): documento de muestra SIN acciones de
// descarga (no hay cotización real que convertir a PDF)
$esPreview = isset($cotiz['hash']) && $cotiz['hash'] === 'preview';
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Cotización <?php echo $folio; ?> · <?php echo htmlspecialchars($cotiz['franquiciado_nombre']); ?></title>
    <script src="https://cdn.tailwindcss.com"></script>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Lora:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
    <script src="https://unpkg.com/lucide@latest"></script>
    <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
    <style>
        :root { --brand: <?php echo htmlspecialchars($colorPrimario); ?>; --brand-2: <?php echo htmlspecialchars($colorSecundario); ?>; }
        body { font-family: 'Inter', sans-serif; background: #eef1f5; color: #1c2430; }
        .serif { font-family: 'Lora', Georgia, serif; }
        .tnum { font-variant-numeric: tabular-nums; }
        .brand-text { color: var(--brand); }
        .brand-bg { background: var(--brand); }
        .brand-accent { background: linear-gradient(90deg, var(--brand), var(--brand-2)); }
        @media print {
            body { background: #fff; }
            .no-imprimir { display: none !important; }
            .documento { box-shadow: none !important; border: none !important; }
            * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
        }

        /* ── Diseños pre-configurados (marcas.diseno_documento) ─────────────
           ejecutivo = el documento base, sin overrides. */

        /* MINIMAL: blanco y aire, sin adornos ni sombras */
        .diseno-minimal { background: #fff; }
        .diseno-minimal .documento { box-shadow: none !important; border-color: #e2e8f0; }
        .diseno-minimal .brand-accent { display: none; }
        .diseno-minimal header { border-bottom-width: 1px !important; border-bottom-color: #e2e8f0 !important; }
        .diseno-minimal .serif { font-family: 'Inter', sans-serif; font-weight: 600; letter-spacing: -0.01em; }
        .diseno-minimal .brand-text { color: #111827; }

        /* ELEGANTE OSCURO: carbón con acentos del color de la marca */
        .diseno-oscuro { background: #0b1220; }
        .diseno-oscuro .documento { background: #101826 !important; border-color: #243147 !important; color: #e2e8f0; }
        .diseno-oscuro .text-\[\#1c2430\], .diseno-oscuro .text-slate-800, .diseno-oscuro .text-slate-700 { color: #f1f5f9 !important; }
        .diseno-oscuro .text-slate-500, .diseno-oscuro .text-slate-600, .diseno-oscuro .text-slate-400 { color: #94a3b8 !important; }
        .diseno-oscuro .border-slate-200, .diseno-oscuro .border-slate-100 { border-color: #26334a !important; }
        .diseno-oscuro .bg-slate-50, .diseno-oscuro .bg-slate-100 { background-color: #16203300 !important; background: #162033 !important; }
        .diseno-oscuro .brand-text { color: var(--brand-2); }
        .diseno-oscuro header { border-bottom-color: var(--brand-2) !important; }

        /* COMERCIAL: folleto vivo, cajas redondeadas y acentos protagonistas */
        .diseno-comercial .documento { border-radius: 1.25rem; overflow: hidden; border-width: 2px; border-color: var(--brand); }
        .diseno-comercial .brand-accent { height: 0.625rem; }
        .diseno-comercial header { background: linear-gradient(180deg, color-mix(in srgb, var(--brand) 7%, #fff), #fff); }
        .diseno-comercial .serif { letter-spacing: -0.02em; }
        .diseno-comercial .bg-slate-50 { background: color-mix(in srgb, var(--brand) 6%, #fff) !important; }

        /* MODERNO (sin servicio): encabezado con degradado de marca */
        .diseno-moderno .documento { border-radius: 1rem; overflow: hidden; }
        .diseno-moderno .brand-accent { height: 0.5rem; }
        .diseno-moderno header { background: linear-gradient(135deg, var(--brand), var(--brand-2)); border-bottom: none !important; }
        .diseno-moderno header .text-slate-500, .diseno-moderno header .text-slate-400 { color: rgba(255,255,255,.75) !important; }
        .diseno-moderno header .brand-text, .diseno-moderno header .text-\[\#1c2430\], .diseno-moderno header .tnum { color: #fff !important; }
    </style>
</head>
<body class="min-h-screen py-8 px-4 sm:py-14 diseno-<?php echo htmlspecialchars($disenoDoc); ?>">

<div class="documento max-w-3xl mx-auto bg-white border border-slate-200 shadow-[0_1px_3px_rgba(16,24,40,.08),0_12px_32px_-12px_rgba(16,24,40,.12)]">

    <!-- Barra de acento de marca -->
    <div class="brand-accent h-1.5 w-full"></div>

    <!-- Encabezado del documento -->
    <header class="px-8 sm:px-12 pt-10 pb-8 border-b-2" style="border-bottom-color: var(--brand);">
        <div class="flex flex-col sm:flex-row sm:items-end sm:justify-between gap-6">
            <div>
                <p class="text-[11px] font-semibold uppercase tracking-[0.18em] text-slate-500 mb-2">Cotización</p>
                <?php if ($logoUrl): ?>
                <img src="<?php echo htmlspecialchars($logoUrl); ?>" alt="<?php echo htmlspecialchars($cotiz['franquiciado_nombre']); ?>" class="h-12 sm:h-14 mb-2 object-contain">
                <?php else: ?>
                <h1 class="serif text-3xl sm:text-4xl font-bold brand-text leading-tight"><?php echo htmlspecialchars($cotiz['franquiciado_nombre']); ?></h1>
                <?php endif; ?>
                <p class="text-sm text-slate-500 mt-1.5"><?php echo $eslogan !== '' ? htmlspecialchars($eslogan) : 'Red de servicios ASISMA'; ?></p>
            </div>
            <div class="text-left sm:text-right text-sm space-y-1 shrink-0">
                <div><span class="text-slate-500">Folio</span> <span class="font-semibold tnum text-[#1c2430]"><?php echo $folio; ?></span></div>
                <div><span class="text-slate-500">Emitida</span> <span class="tnum"><?php echo date('d-m-Y', strtotime($cotiz['created_at'])); ?></span></div>
                <div><span class="text-slate-500">Válida hasta</span> <span class="tnum font-semibold"><?php echo $validez; ?></span></div>
            </div>
        </div>
    </header>

    <!-- Avisos de estado -->
    <?php if ($statusMessage === 'accepted' || ($estaAceptada && empty($statusMessage))): ?>
        <div class="no-imprimir mx-8 sm:mx-12 mt-8 px-5 py-4 bg-emerald-50 border border-emerald-200 rounded-md flex items-start gap-3">
            <i data-lucide="check-circle-2" class="w-5 h-5 text-emerald-600 mt-0.5 shrink-0"></i>
            <div class="text-sm text-emerald-900">
                <strong class="block">Cotización aceptada.</strong>
                <?php if ($flowActivo): ?>
                    Puede completar el pago en línea con el botón de más abajo, o esperar el contacto de su ejecutivo.
                <?php else: ?>
                    Su ejecutivo comercial se pondrá en contacto a la brevedad para coordinar los siguientes pasos.
                <?php endif; ?>
            </div>
        </div>
    <?php elseif ($estaPagada || $statusMessage === 'paid'): ?>
        <div class="mx-8 sm:mx-12 mt-8 px-5 py-4 bg-emerald-50 border border-emerald-300 rounded-md flex items-start gap-3">
            <i data-lucide="badge-check" class="w-5 h-5 text-emerald-700 mt-0.5 shrink-0"></i>
            <div class="text-sm text-emerald-900">
                <strong class="block">Pago recibido — cotización pagada.</strong>
                Gracias por su confianza. Nuestro equipo iniciará la implementación y le contactará con los detalles.
            </div>
        </div>
    <?php elseif ($statusMessage === 'rejected'): ?>
        <div class="no-imprimir mx-8 sm:mx-12 mt-8 px-5 py-4 bg-red-50 border border-red-200 rounded-md flex items-start gap-3">
            <i data-lucide="x-circle" class="w-5 h-5 text-red-600 mt-0.5 shrink-0"></i>
            <div class="text-sm text-red-900">
                <strong class="block">Cotización rechazada.</strong>
                Si desea revisar los términos o solicitar ajustes, contacte a su ejecutivo comercial.
            </div>
        </div>
    <?php elseif ($statusMessage === 'error_pago'): ?>
        <div class="no-imprimir mx-8 sm:mx-12 mt-8 px-5 py-4 bg-amber-50 border border-amber-200 rounded-md flex items-start gap-3">
            <i data-lucide="alert-triangle" class="w-5 h-5 text-amber-600 mt-0.5 shrink-0"></i>
            <div class="text-sm text-amber-900"><strong>No pudimos iniciar el pago en línea.</strong> Intente nuevamente en unos minutos o contacte a su ejecutivo.</div>
        </div>
    <?php elseif ($statusMessage === 'debe_aceptar'): ?>
        <div class="no-imprimir mx-8 sm:mx-12 mt-8 px-5 py-4 bg-amber-50 border border-amber-200 rounded-md flex items-start gap-3">
            <i data-lucide="info" class="w-5 h-5 text-amber-600 mt-0.5 shrink-0"></i>
            <div class="text-sm text-amber-900">Primero debe <strong>aceptar la cotización</strong> para habilitar el pago en línea.</div>
        </div>
    <?php endif; ?>

    <!-- Cliente y ejecutivo -->
    <section class="px-8 sm:px-12 py-8 grid grid-cols-1 sm:grid-cols-2 gap-8 text-sm">
        <div>
            <h2 class="text-[11px] font-semibold uppercase tracking-[0.15em] text-slate-500 border-b border-slate-200 pb-2 mb-3">Preparada para <?php echo htmlspecialchars($rotulo); ?></h2>
            <p class="font-semibold text-[#1c2430]"><?php echo htmlspecialchars($cotiz['cliente_razon_social']); ?></p>
            <?php if (!empty($cotiz['cliente_rut'])): ?><p class="text-slate-600 tnum">RUT <?php echo htmlspecialchars($cotiz['cliente_rut']); ?></p><?php endif; ?>
            <p class="text-slate-600 mt-1"><?php echo htmlspecialchars($cotiz['cliente_contacto_nombre']); ?></p>
            <p class="text-slate-500"><?php echo htmlspecialchars($cotiz['cliente_contacto_correo']); ?></p>
        </div>
        <div>
            <h2 class="text-[11px] font-semibold uppercase tracking-[0.15em] text-slate-500 border-b border-slate-200 pb-2 mb-3">Su ejecutivo comercial</h2>
            <p class="font-semibold text-[#1c2430]"><?php echo htmlspecialchars($cotiz['ejecutivo_nombre']); ?></p>
            <p class="text-slate-600 tnum"><?php echo htmlspecialchars($cotiz['ejecutivo_telefono'] ? $cotiz['ejecutivo_telefono'] : 'Teléfono por confirmar'); ?></p>
            <p class="text-slate-500"><?php echo htmlspecialchars($cotiz['ejecutivo_email']); ?></p>
        </div>
    </section>

    <?php if ($tieneServicio): ?>
    <!-- Presentación del servicio (párrafos configurables) -->
    <?php if (!empty($parrafos)): ?>
    <section class="px-8 sm:px-12 pb-2">
        <div class="space-y-3 text-[13px] text-slate-600 leading-relaxed">
            <?php foreach ($parrafos as $parrafo): ?>
            <p><?php echo $parrafo; // texto configurado por la matriz (permite <b>) ?></p>
            <?php endforeach; ?>
        </div>
        <?php if ($fraseDestacada): ?>
        <p class="mt-4 pl-4 border-l-2 italic text-[13px] text-slate-700" style="border-color: var(--brand);">"<?php echo htmlspecialchars($fraseDestacada); ?>"</p>
        <?php endif; ?>
    </section>
    <?php endif; ?>

    <!-- Plan y características -->
    <section class="px-8 sm:px-12 py-6">
        <div class="grid grid-cols-1 md:grid-cols-2 gap-8">
            <div>
                <h2 class="text-[11px] font-semibold uppercase tracking-[0.15em] text-slate-500 mb-3">Plan <?php echo htmlspecialchars($planNombre); ?></h2>
                <ul class="space-y-2.5">
                    <?php foreach ($caracts as $feat): ?>
                    <li class="flex items-start gap-2.5 text-sm">
                        <i data-lucide="check" class="w-4 h-4 mt-0.5 shrink-0 brand-text"></i>
                        <span>
                            <span class="font-medium text-[#1c2430]"><?php echo htmlspecialchars($feat['titulo']); ?></span>
                            <?php if (!empty($feat['desc'])): ?><span class="block text-[12px] text-slate-500 leading-snug"><?php echo htmlspecialchars($feat['desc']); ?></span><?php endif; ?>
                        </span>
                    </li>
                    <?php endforeach; ?>
                </ul>
            </div>
            <div class="space-y-6">
                <?php if (!empty($bonos)): ?>
                <div>
                    <h2 class="text-[11px] font-semibold uppercase tracking-[0.15em] text-slate-500 mb-3"><?php echo htmlspecialchars($tituloBonos); ?></h2>
                    <ul class="space-y-2 border border-slate-200 rounded-md p-4 bg-slate-50/60">
                        <?php foreach ($bonos as $b): ?>
                        <li class="flex items-start gap-2 text-sm">
                            <i data-lucide="gift" class="w-4 h-4 mt-0.5 shrink-0 brand-text"></i>
                            <span>
                                <span class="font-medium text-[#1c2430]"><?php echo htmlspecialchars($b['titulo']); ?></span>
                                <?php if (!empty($b['desc'])): ?><span class="block text-[12px] text-slate-500 leading-snug"><?php echo htmlspecialchars($b['desc']); ?></span><?php endif; ?>
                            </span>
                        </li>
                        <?php endforeach; ?>
                    </ul>
                </div>
                <?php endif; ?>

                <?php if (!empty($garantia['cita'])): ?>
                <div class="border rounded-md p-4" style="border-color: var(--brand);">
                    <div class="flex items-center gap-2 mb-2">
                        <i data-lucide="shield-check" class="w-4 h-4 brand-text"></i>
                        <span class="text-[11px] font-semibold uppercase tracking-[0.15em] brand-text">Garantía de satisfacción<?php echo $garantiaDias ? ' · ' . $garantiaDias . ' días' : ''; ?></span>
                    </div>
                    <p class="text-[13px] italic text-slate-600 leading-relaxed">"<?php echo htmlspecialchars($garantia['cita']); ?>"</p>
                    <?php if (!empty($garantia['condiciones']) && is_array($garantia['condiciones'])): ?>
                    <ul class="mt-2 space-y-0.5 text-[11px] text-slate-400">
                        <?php foreach ($garantia['condiciones'] as $lineaG): ?>
                        <li><?php echo htmlspecialchars($lineaG); ?></li>
                        <?php endforeach; ?>
                    </ul>
                    <?php endif; ?>
                </div>
                <?php endif; ?>
            </div>
        </div>
    </section>
    <?php endif; ?>

    <!-- Detalle e inversión -->
    <section class="px-8 sm:px-12 pb-2">
        <h2 class="text-[11px] font-semibold uppercase tracking-[0.15em] text-slate-500 mb-3">Detalle de la inversión</h2>
        <div class="overflow-x-auto">
            <table class="w-full text-sm border-collapse">
                <thead>
                    <tr class="border-y border-slate-300 text-[11px] uppercase tracking-wider text-slate-500">
                        <th class="py-2.5 pr-4 text-left font-semibold">Concepto</th>
                        <th class="py-2.5 px-4 text-center font-semibold">Cant.</th>
                        <th class="py-2.5 px-4 text-right font-semibold">Precio unitario</th>
                        <th class="py-2.5 pl-4 text-right font-semibold">Total neto</th>
                    </tr>
                </thead>
                <tbody>
                    <?php if ($tieneServicio && $setupNetoClp > 0): ?>
                    <tr class="border-b border-slate-100">
                        <td class="py-3.5 pr-4 font-medium text-[#1c2430]">
                            Licencia de uso e implementación
                            <span class="block text-[11px] text-slate-500 font-normal"><?php echo htmlspecialchars($planNombre); ?><?php echo ($monedaPlan === 'UF' && $setupUf !== null) ? ' · ' . number_format($setupUf, (floor($setupUf) == $setupUf ? 0 : 1), ',', '.') . ' UF' : ''; ?></span>
                        </td>
                        <td class="py-3.5 px-4 text-center tnum text-slate-600">1</td>
                        <td class="py-3.5 px-4 text-right tnum text-slate-600">$<?php echo number_format($setupNetoClp, 0, ',', '.'); ?></td>
                        <td class="py-3.5 pl-4 text-right tnum font-semibold text-[#1c2430]">$<?php echo number_format($setupNetoClp, 0, ',', '.'); ?></td>
                    </tr>
                    <?php endif; ?>
                    <?php foreach ($productos as $p):
                        $itemEsUf = isset($p['moneda']) && $p['moneda'] === 'UF';
                    ?>
                    <tr class="border-b border-slate-100">
                        <td class="py-3.5 pr-4 font-medium text-[#1c2430]">
                            <?php echo htmlspecialchars($p['nombre']); ?>
                            <?php if (!empty($p['es_suscripcion'])): ?>
                            <span class="block text-[11px] text-slate-500 font-normal">Suscripción <?php echo htmlspecialchars($p['periodo_suscripcion']); ?></span>
                            <?php endif; ?>
                        </td>
                        <td class="py-3.5 px-4 text-center tnum text-slate-600"><?php echo (int)$p['cantidad']; ?></td>
                        <td class="py-3.5 px-4 text-right tnum text-slate-600">
                            <?php if ($itemEsUf): ?>
                            UF <?php echo number_format($p['precio'], 2, ',', '.'); ?>
                            <span class="block text-[11px] text-slate-400">≈ $<?php echo number_format(isset($p['precio_clp']) ? $p['precio_clp'] : $p['precio'], 0, ',', '.'); ?></span>
                            <?php else: ?>
                            $<?php echo number_format($p['precio'], 0, ',', '.'); ?>
                            <?php endif; ?>
                        </td>
                        <td class="py-3.5 pl-4 text-right tnum font-semibold text-[#1c2430]">$<?php echo number_format($p['total'], 0, ',', '.'); ?></td>
                    </tr>
                    <?php endforeach; ?>
                </tbody>
            </table>
        </div>

        <!-- Totales -->
        <div class="flex justify-end mt-5 mb-4">
            <div class="w-full sm:w-80 text-sm space-y-2">
                <div class="flex justify-between text-slate-600">
                    <span>Subtotal neto</span>
                    <span class="tnum">$<?php echo number_format($subtotal, 0, ',', '.'); ?></span>
                </div>
                <?php if ($descMonto > 0): ?>
                <div class="flex justify-between text-slate-600">
                    <span>Descuento</span>
                    <span class="tnum">−$<?php echo number_format($descMonto, 0, ',', '.'); ?></span>
                </div>
                <?php endif; ?>
                <div class="flex justify-between text-slate-600">
                    <span>IVA (<?php echo rtrim(rtrim(number_format($impuestoPct, 2, ',', '.'), '0'), ','); ?>%)</span>
                    <span class="tnum">$<?php echo number_format($ivaMonto, 0, ',', '.'); ?></span>
                </div>
                <div class="flex justify-between items-baseline border-t-2 pt-3 mt-3" style="border-color: var(--brand);">
                    <span class="font-semibold text-[#1c2430]"><?php echo ($tieneServicio && $cuotas > 1) ? 'Total inicial' : 'Total'; ?> <?php echo $moneda; ?></span>
                    <span class="serif tnum text-2xl font-bold brand-text">$<?php echo number_format($cotiz['total'], 0, ',', '.'); ?></span>
                </div>
                <?php if ($tieneServicio && $cuotas > 1): ?>
                <div class="flex justify-between items-baseline text-slate-600">
                    <span>Primera cuota <span class="text-[11px] text-slate-400">(1 de <?php echo $cuotas; ?>, IVA incl.)</span></span>
                    <span class="tnum font-semibold brand-text">$<?php echo number_format(round($cotiz['total'] / $cuotas), 0, ',', '.'); ?></span>
                </div>
                <?php endif; ?>
                <?php if ($tieneServicio && $mensualNetoClp > 0): ?>
                <p class="text-[11px] text-slate-500 text-right pt-1">
                    Mensualidad <?php echo htmlspecialchars($planNombre); ?>:
                    <?php echo ($monedaPlan === 'UF' && $mensualUf !== null) ? number_format($mensualUf, (floor($mensualUf) == $mensualUf ? 0 : 1), ',', '.') . ' UF' : '$' . number_format($mensualNetoClp, 0, ',', '.'); ?>
                    + IVA (≈ $<?php echo number_format(round($mensualNetoClp * 1.19), 0, ',', '.'); ?>/mes IVA incl.) — recurrente, no entra al total inicial.
                </p>
                <?php endif; ?>
                <?php if (!empty($cotiz['valor_uf'])): ?>
                <p class="text-[11px] text-slate-400 text-right">Valores en UF convertidos con la UF del día de emisión: $<?php echo number_format($cotiz['valor_uf'], 2, ',', '.'); ?></p>
                <?php endif; ?>
            </div>
        </div>
    </section>

    <!-- Condiciones comerciales -->
    <?php if (!empty($condiciones) || !empty($cotiz['notas'])): ?>
    <section class="px-8 sm:px-12 pb-8">
        <h2 class="text-[11px] font-semibold uppercase tracking-[0.15em] text-slate-500 mb-3">Condiciones comerciales</h2>
        <?php if (!empty($condiciones)): ?>
        <ul class="space-y-3 text-[13px] text-slate-600 mb-3">
            <?php foreach ($condiciones as $cond): ?>
            <li class="flex items-start gap-2">
                <span class="brand-text font-bold mt-0.5">•</span>
                <div>
                    <strong class="block text-[11px] uppercase tracking-wider text-[#1c2430] mb-0.5"><?php echo htmlspecialchars($cond['titulo']); ?></strong>
                    <span><?php echo htmlspecialchars(str_replace('{vencimiento}', date('d-m-Y', strtotime($cotiz['vencimiento_at'])), $cond['texto'])); ?></span>
                </div>
            </li>
            <?php endforeach; ?>
        </ul>
        <?php endif; ?>
        <?php if (!empty($cotiz['notas'])): ?>
        <p class="text-[13px] text-slate-600 leading-relaxed whitespace-pre-wrap border-l-2 border-slate-200 pl-4"><?php echo htmlspecialchars($cotiz['notas']); ?></p>
        <?php endif; ?>
    </section>
    <?php endif; ?>

    <!-- Datos de transferencia (identidad del franquiciado/servicio) -->
    <?php if ($tieneTransferencia): ?>
    <section class="px-8 sm:px-12 pb-8">
        <div class="border border-slate-200 rounded-md overflow-hidden">
            <div class="brand-bg px-5 py-3 flex items-center gap-2">
                <i data-lucide="banknote" class="w-4 h-4 text-white"></i>
                <h2 class="text-[12px] font-semibold uppercase tracking-[0.15em] text-white">Datos de transferencia</h2>
            </div>
            <div class="p-5 grid grid-cols-1 sm:grid-cols-2 gap-x-8 gap-y-3 text-sm">
                <div><span class="text-[11px] uppercase tracking-wider text-slate-500 block">Titular</span><span class="font-semibold text-[#1c2430]"><?php echo htmlspecialchars($idv['transferencia_titular']); ?></span></div>
                <?php if (!empty($idv['transferencia_rut'])): ?><div><span class="text-[11px] uppercase tracking-wider text-slate-500 block">RUT</span><span class="font-semibold text-[#1c2430] tnum"><?php echo htmlspecialchars($idv['transferencia_rut']); ?></span></div><?php endif; ?>
                <?php if (!empty($idv['transferencia_banco'])): ?><div><span class="text-[11px] uppercase tracking-wider text-slate-500 block">Banco / Tipo de cuenta</span><span class="font-semibold text-[#1c2430]"><?php echo htmlspecialchars(trim($idv['transferencia_banco'] . ' / ' . $idv['transferencia_tipo_cuenta'], ' /')); ?></span></div><?php endif; ?>
                <?php if (!empty($idv['transferencia_numero_cuenta'])): ?><div><span class="text-[11px] uppercase tracking-wider text-slate-500 block">N° de cuenta</span><span class="font-semibold text-[#1c2430] tnum"><?php echo htmlspecialchars($idv['transferencia_numero_cuenta']); ?></span></div><?php endif; ?>
                <?php if (!empty($idv['transferencia_correo'])): ?><div class="sm:col-span-2"><span class="text-[11px] uppercase tracking-wider text-slate-500 block">Correo para comprobantes</span><span class="font-semibold text-[#1c2430]"><?php echo htmlspecialchars($idv['transferencia_correo']); ?></span></div><?php endif; ?>
            </div>
            <?php if ($tieneServicio): ?>
            <p class="px-5 pb-4 text-[12px] text-slate-500">Para iniciar la implementación, realice la transferencia y envíe el comprobante a su ejecutivo. La transferencia confirma la aceptación de esta cotización.</p>
            <?php endif; ?>
        </div>
    </section>
    <?php endif; ?>

    <!-- Acciones -->
    <footer class="no-imprimir px-8 sm:px-12 py-7 bg-slate-50 border-t border-slate-200">
        <?php if ($puedeDecidir): ?>
        <div class="flex flex-col sm:flex-row items-center justify-between gap-4">
            <?php if (!$esPreview): ?>
            <a href="<?php echo APP_URL; ?>/cotizaciones/publica?h=<?php echo $cotiz['hash']; ?>&pdf=1" target="_blank"
               class="text-sm text-slate-500 hover:text-slate-700 underline underline-offset-4 decoration-slate-300 flex items-center gap-1.5">
                <i data-lucide="file-down" class="w-4 h-4"></i> Descargar copia en PDF
            </a>
            <?php else: ?><span></span><?php endif; ?>
            <div class="flex gap-3 w-full sm:w-auto">
                <button type="button" id="rejectBtn"
                        class="flex-1 sm:flex-none px-5 py-3 text-sm font-semibold text-slate-500 hover:text-red-700 border border-slate-300 hover:border-red-300 rounded-md transition-colors">
                    Rechazar
                </button>
                <button type="button" id="acceptBtn"
                        class="flex-1 sm:flex-none px-8 py-3 bg-emerald-700 hover:bg-emerald-800 text-white text-sm font-semibold rounded-md shadow-sm transition-colors flex items-center justify-center gap-2">
                    <i data-lucide="check" class="w-4 h-4"></i> Aceptar cotización
                </button>
            </div>
        </div>
        <?php elseif ($estaAceptada && !$tieneServicio): ?>
        <div class="flex flex-col sm:flex-row items-center justify-between gap-4">
            <?php if (!$esPreview): ?>
            <a href="<?php echo APP_URL; ?>/cotizaciones/publica?h=<?php echo $cotiz['hash']; ?>&pdf=1" target="_blank"
               class="text-sm text-slate-500 hover:text-slate-700 underline underline-offset-4 decoration-slate-300 flex items-center gap-1.5">
                <i data-lucide="file-down" class="w-4 h-4"></i> Descargar copia en PDF
            </a>
            <?php else: ?><span></span><?php endif; ?>
            <?php if ($flowActivo): ?>
            <a href="<?php echo APP_URL; ?>/cotizaciones/pagar?h=<?php echo $cotiz['hash']; ?>"
               class="w-full sm:w-auto px-8 py-3 brand-bg hover:opacity-90 text-white text-sm font-semibold rounded-md shadow-sm transition-opacity flex items-center justify-center gap-2">
                <i data-lucide="credit-card" class="w-4 h-4"></i>
                Pagar ahora — $<?php echo number_format($cotiz['total'], 0, ',', '.'); ?> <?php echo $moneda; ?>
            </a>
            <?php else: ?>
            <span class="text-sm text-slate-500">Su ejecutivo coordinará el pago y la puesta en marcha.</span>
            <?php endif; ?>
        </div>
        <?php else: ?>
        <div class="flex items-center justify-between gap-4">
            <?php if (!$esPreview): ?>
            <a href="<?php echo APP_URL; ?>/cotizaciones/publica?h=<?php echo $cotiz['hash']; ?>&pdf=1" target="_blank"
               class="text-sm text-slate-500 hover:text-slate-700 underline underline-offset-4 decoration-slate-300 flex items-center gap-1.5">
                <i data-lucide="file-down" class="w-4 h-4"></i> Descargar copia en PDF
            </a>
            <?php else: ?><span></span><?php endif; ?>
            <?php if ($estaPagada): ?>
            <span class="inline-flex items-center gap-1.5 text-sm font-semibold text-emerald-700"><i data-lucide="badge-check" class="w-4 h-4"></i> Pagada</span>
            <?php elseif ($tieneServicio): ?>
            <span class="text-sm text-slate-500">Realice la transferencia para aceptar y comenzar.</span>
            <?php endif; ?>
        </div>
        <?php endif; ?>
    </footer>
</div>

<p class="text-center mt-6 text-xs text-slate-400 max-w-3xl mx-auto">
    Documento comercial privado emitido por <?php echo htmlspecialchars($cotiz['franquiciado_nombre']); ?> a través de la plataforma ASISMA.
    Si recibió este enlace por error, por favor ignórelo.
</p>

<script>
    lucide.createIcons();

    var acceptBtn = document.getElementById('acceptBtn');
    if (acceptBtn) {
        acceptBtn.addEventListener('click', function() {
            Swal.fire({
                title: '¿Aceptar esta cotización?',
                text: 'Al aceptar, confirma su interés comercial en los términos descritos en el documento.',
                icon: 'question',
                showCancelButton: true,
                confirmButtonColor: '#047857',
                cancelButtonColor: '#94a3b8',
                confirmButtonText: 'Sí, aceptar cotización',
                cancelButtonText: 'Volver'
            }).then(function(result) {
                if (result.isConfirmed) {
                    window.location.href = '<?php echo APP_URL; ?>/cotizaciones/publica?h=<?php echo $cotiz["hash"]; ?>&action=accept';
                }
            });
        });
    }

    var rejectBtn = document.getElementById('rejectBtn');
    if (rejectBtn) {
        rejectBtn.addEventListener('click', function() {
            Swal.fire({
                title: '¿Rechazar la cotización?',
                text: 'Podrá solicitar ajustes a su ejecutivo comercial si los términos no se adaptan a su necesidad.',
                icon: 'warning',
                showCancelButton: true,
                confirmButtonColor: '#b91c1c',
                cancelButtonColor: '#94a3b8',
                confirmButtonText: 'Sí, rechazar',
                cancelButtonText: 'Volver'
            }).then(function(result) {
                if (result.isConfirmed) {
                    window.location.href = '<?php echo APP_URL; ?>/cotizaciones/publica?h=<?php echo $cotiz["hash"]; ?>&action=reject';
                }
            });
        });
    }
</script>
</body>
</html>
