#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Reporte Visita Perú — PDF branded Bruna Group (navy/gold, Montserrat)."""
import base64

fonts = {}
for w in ['400','600','700','800']:
    with open(f'/tmp/mont{w}.ttf','rb') as f:
        fonts[w] = base64.b64encode(f.read()).decode()
font_css = ""
for weight, data in fonts.items():
    font_css += f"""
@font-face {{
  font-family: 'Montserrat';
  font-weight: {weight};
  font-style: normal;
  src: url('data:font/truetype;base64,{data}') format('truetype');
}}"""

with open('/home/node/workspace/bruna-peru/outputs/bruna-logo2.png','rb') as f:
    logo_b64 = base64.b64encode(f.read()).decode()

PENDING = '<span class="pend">Por integrar</span>'

html = f"""<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<style>
{font_css}
* {{ margin:0; padding:0; box-sizing:border-box; }}
body {{ font-family:'Montserrat',sans-serif; color:#1a2a3a; font-size:9.5pt; line-height:1.5; }}

.page {{ width:794px; min-height:1123px; position:relative; padding:0 46px 40px; }}

/* Header band */
.band {{ background:#0D2240; margin:0 -46px; padding:26px 46px 20px; display:flex; justify-content:space-between; align-items:center; }}
.band img {{ height:40px; }}
.band .meta {{ text-align:right; }}
.band .eyebrow {{ color:#C8960C; font-weight:700; font-size:8pt; letter-spacing:2.5px; text-transform:uppercase; }}
.band .sub {{ color:#ffffff; font-size:8.5pt; margin-top:4px; opacity:.85; }}
.goldline {{ height:3px; background:#C8960C; margin:0 -46px; }}

h1 {{ color:#0D2240; font-weight:800; font-size:17pt; margin:26px 0 2px; }}
.rol {{ font-size:9pt; color:#7a8a9a; font-weight:600; margin-bottom:4px; }}
.datebadge {{ float:right; background:#0D2240; color:#fff; border-radius:6px; padding:6px 14px; font-weight:700; font-size:8.5pt; margin-top:24px; letter-spacing:1px; }}

section {{ clear:both; margin-top:20px; }}
.sechead {{ display:flex; align-items:center; gap:10px; border-bottom:1.5px solid #0D2240; padding-bottom:5px; margin-bottom:10px; }}
.badge {{ background:#0D2240; color:#fff; width:26px; height:26px; border-radius:6px; font-weight:800; font-size:12pt; display:flex; align-items:center; justify-content:center; flex-shrink:0; }}
.sechead h2 {{ color:#0D2240; font-weight:800; font-size:11.5pt; }}
.sechead .kicker {{ color:#C8960C; font-weight:700; font-size:7.5pt; letter-spacing:2px; text-transform:uppercase; display:block; }}

ul {{ list-style:none; }}
ul li {{ position:relative; padding-left:16px; margin-bottom:5px; }}
ul li::before {{ content:'—'; color:#C8960C; position:absolute; left:0; font-weight:700; }}
b, strong {{ font-weight:700; color:#0D2240; }}

.pend {{ background:#FDF6E3; border:1px solid #C8960C; color:#8a6508; font-size:7.5pt; font-weight:700; border-radius:4px; padding:1px 7px; letter-spacing:.5px; white-space:nowrap; }}
.pnote {{ color:#8a6508; font-style:italic; font-size:8.5pt; }}

.cards {{ display:flex; gap:10px; margin:8px 0 4px; }}
.card {{ flex:1; background:#F4F6F8; border-radius:8px; padding:10px 12px; border-top:3px solid #0D2240; }}
.card h3 {{ color:#0D2240; font-weight:800; font-size:9.5pt; margin-bottom:3px; }}
.card .who {{ color:#C8960C; font-weight:700; font-size:7.5pt; text-transform:uppercase; letter-spacing:1px; margin-bottom:5px; }}
.card p {{ font-size:8.5pt; }}

.footer {{ position:absolute; bottom:18px; left:46px; right:46px; display:flex; justify-content:space-between; font-size:7.5pt; color:#7a8a9a; border-top:1px solid #dce4ef; padding-top:8px; }}
.pagebreak {{ page-break-before:always; }}
</style>
</head>
<body>
<div class="page">

  <div class="band">
    <img src="data:image/png;base64,{logo_b64}" alt="Bruna">
    <div class="meta">
      <div class="eyebrow">Reporte de Visita · Perú</div>
      <div class="sub">VCB S.A.C. — Uso interno · Equipo Ejecutivo</div>
    </div>
  </div>
  <div class="goldline"></div>

  <div class="datebadge">SEPTIEMBRE 2026</div>
  <h1>Visita a Perú — Lima</h1>
  <div class="rol">Andrés Bruna Serrano · Nuevos Mercados &nbsp;|&nbsp; Semana del 21 al 25 de septiembre de 2026</div>

  <section>
    <div class="sechead"><div class="badge">1</div><h2><span class="kicker">Reuniones</span>Key points de las citas</h2></div>
    <div class="cards">
      <div class="card"><h3>Comida</h3><div class="who">Rafa Villa</div><p>{PENDING}</p></div>
      <div class="card"><h3>San Luis</h3><div class="who">Sebastián Morales</div><p>{PENDING}</p></div>
    </div>
    <div class="cards">
      <div class="card"><h3>Romex</h3><div class="who">Gustavo Canales</div><p>Carbonato de potasio PO 4511617494 con <b>levante autorizado</b> — entrega primeros días de octubre. RFQ bobina de aluminio para envolver chocolate ya en manos de <b>San Marcos</b>.</p></div>
      <div class="card"><h3>Capital</h3><div class="who">—</div><p>{PENDING}</p></div>
    </div>
  </section>

  <section>
    <div class="sechead"><div class="badge">2</div><h2><span class="kicker">Innovación</span>Productos que estamos sociando</h2></div>
    <ul>
      <li><b>Glucopon</b> — contratipo BASF, 100% Bruna vía <b>Vyta Pon</b>. Muestra de <b>40 kg</b> en camino.</li>
      <li><b>PODS</b> — línea completa para lavandería, bajo marca Bruna.</li>
      <li><b>Vyta Wipes</b> — línea de toallitas.</li>
      <li><b>Cubeta 5 galones impresa</b> para detergente — envío a <b>Harry Tolentino</b>.</li>
      <li><b>Láminas de detergentes</b> — sourcing en curso.</li>
      <li><b>NDA con Sebastián Morales</b> — en firma; habilita el trabajo formal de innovación.</li>
    </ul>
  </section>

  <section>
    <div class="sechead"><div class="badge">3</div><h2><span class="kicker">Robótica</span>Robótica y comida</h2></div>
    <p>{PENDING}</p>
  </section>

  <section>
    <div class="sechead"><div class="badge">4</div><h2><span class="kicker">Titanio</span>Parqueos y titanio — revisión en profundidad</h2></div>
    <p>{PENDING}</p>
  </section>

  <div class="pagebreak"></div>

  <section>
    <div class="sechead"><div class="badge">5</div><h2><span class="kicker">Pipeline</span>Conversaciones futuras y negocios</h2></div>
    <ul>
      <li><b>Unger — visita a Perú confirmada:</b> 15–18 de febrero 2027 (Minerva Damgaard). Agenda de visitas a clientes en coordinación.</li>
      <li>{PENDING}</li>
    </ul>
  </section>

  <section>
    <div class="sechead"><div class="badge">6</div><h2><span class="kicker">Sourcings</span>Nuevos contactos</h2></div>
    <ul>
      <li><b>30–40 pendientes</b> nuevos de varios sourcings, registrados y entrando al panel de seguimiento.</li>
      <li>Distribución entre el equipo con responsable y fecha por cada cuenta.</li>
    </ul>
  </section>

  <section>
    <div class="sechead"><div class="badge">7</div><h2><span class="kicker">Enfoque</span>Dedicación a la cuenta</h2></div>
    <ul>
      <li>Dedicación <b>exclusiva y directa de Andrés</b> en la cuenta de <b>Alicorp</b> y <b>Qroma</b> — el volumen y el momento lo ameritan.</li>
    </ul>
  </section>

  <div class="footer">
    <span>Bruna Group — Uso interno</span>
    <span>Andrés Bruna · Septiembre 2026</span>
  </div>
</div>
</body>
</html>"""

out = "/home/node/workspace/bruna-peru/outputs/Reporte_Visita_Peru_Sep2026.html"
open(out, "w").write(html)
print("HTML written:", out, len(html))
