def format_jawaban(bahan_regulasi, pertanyaan, kbli):
    """
    Formatter FINAL versi kementerian.
    KBLI presisi, naratif, audit-safe.
    """

    if not bahan_regulasi:
        return {
            "jawaban": (
                "Berdasarkan penelusuran terhadap Permenpar "
                "Nomor 6 Tahun 2025, tidak ditemukan ketentuan "
                "yang relevan dengan pertanyaan yang diajukan."
            ),
            "referensi": []
        }

    # 🔒 FILTER TERAKHIR: KBLI HARUS SAMA
    bahan_valid = [
        r for r in bahan_regulasi
        if r.get("data") and str(r["data"].kbli) == str(kbli)
    ]

    if not bahan_valid:
        return {
            "jawaban": (
                f"Tidak ditemukan ketentuan Permenpar No. 6 Tahun 2025 "
                f"yang secara spesifik mengatur KBLI {kbli}."
            ),
            "referensi": []
        }

    definisi, ruang_lingkup, kewajiban, perizinan, risiko, sanksi = [], [], [], [], [], []

    nama_kbli = None
    tingkat_risiko = None
    regulasi = None

    for r in bahan_valid:
        d = r["data"]
        teks = (d.teks or "").strip()
        if not teks:
            continue

        kategori = (d.kategori or "").lower()

        nama_kbli = nama_kbli or d.nama_kbli
        tingkat_risiko = tingkat_risiko or getattr(d, "tingkat_risiko", None)
        regulasi = regulasi or d.regulasi

        if "definisi" in kategori:
            definisi.append(teks)
        elif "ruang" in kategori:
            ruang_lingkup.append(teks)
        elif "izin" in kategori or "perizinan" in kategori:
            perizinan.append(teks)
        elif "wajib" in teks.lower() or "harus" in teks.lower():
            kewajiban.append(teks)
        elif "risiko" in kategori:
            risiko.append(teks)
        elif "sanksi" in kategori:
            sanksi.append(teks)

    jawaban = []
    jawaban.append(
        f"KBLI {kbli}"
        + (f" ({nama_kbli})" if nama_kbli else "")
        + f" merupakan jenis usaha pariwisata yang diatur dalam {regulasi}."
    )

    if definisi:
        jawaban.append("\nDefinisi usaha tersebut adalah:\n" + definisi[0])

    if ruang_lingkup:
        jawaban.append("\nRuang lingkup pengaturan meliputi:")
        for t in ruang_lingkup:
            jawaban.append(f"- {t}")

    if tingkat_risiko:
        jawaban.append(
            f"\nUsaha ini diklasifikasikan memiliki tingkat risiko {tingkat_risiko}."
        )

    if kewajiban or perizinan:
        jawaban.append("\nPelaku usaha wajib memenuhi ketentuan berikut:")
        for t in kewajiban + perizinan:
            jawaban.append(f"- {t}")

    if sanksi:
        jawaban.append("\nApabila ketentuan tidak dipenuhi, dapat dikenakan sanksi:")
        for t in sanksi:
            jawaban.append(f"- {t}")

    jawaban.append(
        "\nDengan demikian, pelaku usaha perlu memastikan "
        "kepatuhan terhadap seluruh ketentuan sebelum dan selama "
        "kegiatan usaha dijalankan."
    )

    referensi = [{
        "regulasi": r["data"].regulasi,
        "kbli": r["data"].kbli,
        "pasal": r["data"].pasal,
        "sub_pasal": r["data"].sub_pasal,
        "kategori": r["data"].kategori
    } for r in bahan_valid]

    return {
        "jawaban": "\n".join(jawaban),
        "referensi": referensi
    }
