/* ============================================================
   Robotia Cotizador · Documento PDF imprimible (§8.1)
   Tema claro, 2 páginas. Excluye constantes internas, niveles
   de clientes calibrados y advertencias de extrapolación.
   ============================================================ */
function PrintDoc({ cot }) {
  const Eg = window.RBEngine;
  const r = Eg.calcular(buildInputs(cot));
  const d = r.desglose;
  const i = cot.inputs;
  const isStream = cot.modalidad === "streaming";
  const m = MODALIDADES[cot.modalidad];

  const row = (label, val, opt) => (
    <tr style={opt && opt.bold ? { fontWeight: 600 } : null}>
      <td style={{ padding: "9px 0", borderTop: "1px solid #e3e3e3", color: opt && opt.bold ? "#111" : "#444" }}>{label}</td>
      <td style={{ padding: "9px 0", borderTop: "1px solid #e3e3e3", textAlign: "right", fontVariantNumeric: "tabular-nums", color: "#111" }}>{val}</td>
    </tr>
  );

  return (
    <div id="print-doc" style={{ display: "none", fontFamily: "var(--font-display)", color: "#111", background: "#fff" }}>
      {/* PÁGINA 1 */}
      <section style={{ pageBreakAfter: "always", padding: "4mm 2mm" }}>
        <div style={{ display: "flex", justifyContent: "space-between", alignItems: "flex-start", borderBottom: "2px solid #A100FF", paddingBottom: 16 }}>
          <img src="assets/logo-robotia-black.png" alt="Robotia" style={{ height: 22 }} />
          <div style={{ textAlign: "right", fontSize: 11, color: "#666", letterSpacing: "0.04em" }}>
            <div style={{ textTransform: "uppercase", letterSpacing: "0.16em", fontSize: 10, color: "#A100FF", fontWeight: 600 }}>Cotización de monitoreo visual</div>
            <div style={{ marginTop: 4 }}>{new Date(cot.fecha).toLocaleDateString("es-CL")}</div>
          </div>
        </div>

        <div style={{ marginTop: 26 }}>
          <div style={{ fontSize: 11, textTransform: "uppercase", letterSpacing: "0.16em", color: "#888" }}>Cliente</div>
          <div style={{ fontSize: 28, fontWeight: 300, letterSpacing: "-0.02em", marginTop: 4 }}>{cot.cliente.nombre || "Cliente"}</div>
          <div style={{ fontSize: 13, color: "#555", marginTop: 4 }}>
            {[cot.cliente.contacto, cot.cliente.sector].filter(Boolean).join(" · ")}
          </div>
        </div>

        <div style={{ marginTop: 26, border: "1px solid #ddd", borderTop: "3px solid #A100FF", padding: "22px 24px", background: "#faf7ff" }}>
          <div style={{ fontSize: 11, textTransform: "uppercase", letterSpacing: "0.16em", color: "#888" }}>Costo anual estimado — {m.label}</div>
          <div style={{ fontSize: 52, fontWeight: 300, letterSpacing: "-0.03em", fontVariantNumeric: "tabular-nums", marginTop: 6, color: "#111" }}>
            {Eg.fmtMiles(d.totalFinal)} <span style={{ fontSize: 18, color: "#888" }}>M$ / año</span>
          </div>
          <div style={{ fontSize: 13, color: "#555", marginTop: 6 }}>{Eg.fmtMiles(r.metricas.costoPorPunto)} M$ por punto · {i.nPuntos} puntos de monitoreo</div>
        </div>

        <table style={{ width: "100%", borderCollapse: "collapse", marginTop: 26, fontSize: 14 }}>
          <tbody>
            {row("(1) Recurrente puro", Eg.fmtMS(d.subtotalRecurrente))}
            {row("(2) Calibraciones", Eg.fmtMS(d.subtotalCalibraciones))}
            {row("(3) Proyectos puntuales", Eg.fmtMS(d.subtotalProyectos))}
            {row("Subtotal", Eg.fmtMS(d.subtotalSinInflacion))}
            {row("Ajuste por inflación (factor " + Eg.fmtDec(d.factorInflacion, 3) + ")", Eg.fmtMS(d.totalFinal - d.subtotalSinInflacion))}
          </tbody>
          <tfoot>
            <tr>
              <td style={{ padding: "14px 0", borderTop: "2px solid #A100FF", fontWeight: 600, fontSize: 16 }}>Gran total</td>
              <td style={{ padding: "14px 0", borderTop: "2px solid #A100FF", textAlign: "right", fontWeight: 600, fontSize: 16, fontVariantNumeric: "tabular-nums" }}>{Eg.fmtMS(d.totalFinal)}</td>
            </tr>
          </tfoot>
        </table>

        <div style={{ marginTop: 26, fontSize: 13, color: "#555", lineHeight: 1.6 }}>
          <b style={{ color: "#111" }}>Modalidad {m.label}.</b> {m.desc}
        </div>
      </section>

      {/* PÁGINA 2 */}
      <section style={{ padding: "4mm 2mm" }}>
        <div style={{ fontSize: 11, textTransform: "uppercase", letterSpacing: "0.16em", color: "#A100FF", fontWeight: 600, borderBottom: "1px solid #ddd", paddingBottom: 10 }}>Detalle técnico de la cotización</div>

        <table style={{ width: "100%", borderCollapse: "collapse", marginTop: 18, fontSize: 13 }}>
          <tbody>
            {row("Modalidad", m.label)}
            {row("N° puntos de monitoreo", i.nPuntos)}
            {row("Nivel de Visibilidad", i.visibilidad + " / 5 — " + VIS_LEVELS.find((l) => l.n === i.visibilidad).t)}
            {row("Nivel de Equipos", i.equipos + " / 5 — " + EQ_LEVELS.find((l) => l.n === i.equipos).t)}
            {isStream
              ? row("Calibraciones activo principal", (i.nCalibracionesPrincipal != null ? i.nCalibracionesPrincipal : 1) + " / año")
              : row("Calibraciones esperadas / año", i.nCalibraciones)}
            {row("Proyectos Demanda Media", i.proyectosMedia + " × 5.000 M$")}
            {row("Proyectos Demanda Alta", i.proyectosAlta + " × 10.000 M$")}
            {row("Año de inicio de servicio", cot.anioCotizacion)}
            {row("Inflación anual aplicada", Eg.fmtDec(cot.inflacion * 100, 1) + "%")}
          </tbody>
        </table>

        <div style={{ fontSize: 11, textTransform: "uppercase", letterSpacing: "0.16em", color: "#888", marginTop: 30 }}>Métricas</div>
        <table style={{ width: "100%", borderCollapse: "collapse", marginTop: 8, fontSize: 13 }}>
          <tbody>
            {row("Costo por punto / año", Eg.fmtMS(r.metricas.costoPorPunto))}
            {row("Peso de Operaciones en el recurrente", Eg.fmtDec(r.metricas.pesoOperaciones * 100, 0) + "%")}
            {row("Peso de Desarrollo en el recurrente", Eg.fmtDec(r.metricas.pesoDesarrollo * 100, 0) + "%")}
          </tbody>
        </table>

        <div style={{ marginTop: 36, padding: "16px 18px", background: "#f5f5f5", border: "1px solid #e3e3e3", fontSize: 11.5, color: "#666", lineHeight: 1.6 }}>
          Cotización referencial basada en un modelo calibrado con clientes activos del sector minero. Valores expresados en M$ (millones de pesos chilenos · CLP). Año base del modelo: 2025. Este documento no constituye una oferta comercial vinculante.
        </div>

        <div style={{ marginTop: 24, display: "flex", justifyContent: "space-between", alignItems: "center", borderTop: "1px solid #ddd", paddingTop: 12, fontSize: 11, color: "#999" }}>
          <span>Robotia · El mundo de la minería potenciado por la visión artificial_</span>
          <img src="assets/logo-robotia-black.png" alt="Robotia" style={{ height: 14, opacity: 0.7 }} />
        </div>
      </section>
    </div>
  );
}
window.PrintDoc = PrintDoc;
