Create a highly professional PowerPoint presentation for Board / Audit Committee members from the perspective of statutory auditors. - Title: ABC LLP Statutory Auditors FY 2025-26 Table of Content: 1. Title & Index 2. Our Scope and Nature of engagements 3. Auditors Responsibility 4. Audit Approach, methodology 5. Key audit matters 6. Audit procedure performed 7. Independence & Ethics Confirmations 8. Opinion & Conclusion of Audit Report Introduction: Pipara introduction Audit quality is our number one priority. We plan our audit to focus on delivering high-quality audit in accordance with the Standards on Auditing issued under section 143(10) of the Companies Act, 2013 and had set the following audit quality objectives for this audit: • A robust challenge of the key judgments taken in the preparation of the financial statements. • A strong understanding of your internal control environment. • A well planned and delivered audit that raises findings early with those charged with governance. • ABC LLPare statutory auditors of XYZLimited. This presentation summarises the principal matters that have arisen during the audit of the standalone financial statements of XYZLimited (“the Company”) and the consolidated financial statements of the Company and its subsidiaries (collectively “the Group”) for the year ended March 31, 2026, which have been prepared in accordance with Indian Accounting Standards prescribed under section 133 of the Companies Act, 2013 (“the Act”) for the year ended March 31, 2026. This presentation is not intended to be exhaustive but highlights the most significant matters that have come to our attention which we believe would be of use to the members of TCWG. Our Scope and Nature of engagements Scope of our Audit • We conducted our audit in accordance with the Standards on Auditing specified under Section 143(10) of the Act. Our audit was designed to obtain reasonable, rather than absolute, assurance about whether the financial statements are free from material misstatement, whether due to fraud or error. • We conducted our audit of Internal Financial Controls with reference to Financial Reporting (IFCoFR) in accordance with the Guidance Note on Audit of Internal Financial Controls Over Financial Reporting, issued by the ICAI and the said Standards on Auditing, to the extent applicable to an audit of internal financial controls. • Engagements performed Combined audit of standalone financial statements − audit of standalone financial statements − audit of Internal Financial Controls with reference to Financial Reporting • Combined Audit of consolidated financial statements − audit of consolidated financial statements − audit of Internal Financial Controls with reference to Financial Reporting • Reporting on standalone financial results under Regulation 33 of the SEBI Listing Regulations based on − audit of financial results for the year ended March 31, 2026 − limited review of financial results for the quarter ended March 31, 2026 • Reporting on consolidated financial results under Regulation 33 of the SEBI Listing Regulations based on − audit of financial results for the year ended March 31, 2026 − limited review of financial results for the quarter ended March 31, 2026 Auditor’s Responsibilities • Expressing Opinion on Financial Statements The auditor’s primary responsibility is to independently express an opinion on whether the financial statements give a true and fair view in accordance with applicable Ind AS, the Companies Act, 2013, and relevant auditing standards. • Reasonable Assurance The auditor obtains reasonable assurance that the financial statements are free from material misstatement due to fraud or error. This is a high level of assurance, but not an absolute guarantee. • Understanding the Entity and Internal Controls The auditor gains an understanding of the company’s business, operations, and internal financial controls to identify and assess risks and design appropriate audit procedures. • Fraud and Error The auditor evaluates the risks arising from fraud and error, applies professional skepticism throughout the audit, and performs procedures to identify material misstatements. While the auditor provides reasonable assurance on the financial statements, the primary responsibility for the prevention, detection, and correction of fraud rests with management. • Going Concern Assessment The auditor evaluates whether the company can continue as a going concern and reviews management’s assessment of future operational and financial sustainability. Audit approach, Methodology Identify changes in your business and environment No material changes in your business and environment noted. Scoping Our plan communication set out the scoping of our audit. We have completed our audit in line with our audit plan. Determine materiality Materiality at 1% of average profit for previous two years. Performance Materiality at 40% of materiality; we used performance materiality in determining sample sizes for test of details. The amount below which misstatements would be regarded as clearly trivial at 5% of materiality Significant risk assessment In our plan communication we explained our risk assessment process and detailed the significant risks we have identified on this engagement. We communicate our findings and conclusions on these risks in this communication. Conclude on significant risk areas Refer Appendix A– Response to Significant Risks Our audit report Our audit report is an unmodified audit report. Key Audit Matters 1.Revenue Recognition: - Revenue recognition involves material estimation and significant management judgment, both in terms of the timing and measurement of revenue from sale of goods. The value and timing of revenue recognition varies from contract to contract, and certain activities may span beyond the financial year end. Revenue from sale of goods is recognised when control of the goods is transferred to the customer and when no unfulfilled performance obligations remain. This necessitates a detailed and careful analysis of each sale agreement, contract, or customer purchase order to determine the appropriate point of revenue recognition. An inappropriate assessment could result in revenue being recognised before control of the goods has actually been transferred to the customer. Further, subsequent adjustments to the transaction price are required on account of grade mismatch or slippage of the transferred goods. Where variations in the contract price are not mutually settled between the parties, the matter is referred to third-party testing, and the Company estimates the adjustments required for revenue recognition pending resolution of such disputes. Such adjustments are made on an estimated basis, following historical trends. Inappropriate estimation in this regard could result in revenue being either overstated or understated. In view of the above, the timing of revenue recognition and adjustments for quality variances — both involving critical accounting estimates and judgments — have been identified as a Key Audit Matter. Our audit procedures to assess the appropriateness of revenue recognised in the standalone financial statements included, among others, the following: • Understanding and Evaluation of Internal Controls: We obtained an understanding of and assessed the design, implementation, and operating effectiveness of the Company's key internal controls over the revenue recognition process, including controls over contract review, dispatch documentation, and quality adjustment mechanisms. • Cut-off Testing: We examined significant contracts entered into close to the year end to evaluate whether revenue has been recognised in the correct accounting period, ensuring no premature or delayed recognition has occurred. • Sample-Based Contract Testing: We tested a sample of contracts across various revenue streams by agreeing the relevant information back to underlying contracts, customer purchase orders, and proof of delivery documentation, as appropriate. We assessed whether the revenue recognition policy applied by the Company is in accordance with the principles of Ind AS 115 • Assessment of Price Adjustments: We evaluated the basis and reasonableness of adjustments made to the transaction price on account of quality variances, including grade mismatch and slippage. This involved assessing the Company's estimation methodology, testing it against historical trends, and reviewing the status of disputes referred to third-party testing. • Adequacy of Disclosures: We assessed whether the disclosures in the standalone financial statements relating to revenue recognition policies and significant estimates are adequate and in compliance with the applicable financial reporting framework. Our testing, as described above, confirmed that revenue has been recorded in accordance with the terms of the underlying contracts and the Company's accounting policy, which is consistent with the requirements of Ind AS 115. 2. Inventory and Valuation of Inventories and Physical Verification of Inventories: - The carrying value of inventory as at March 31, 2026 is `2,32,260.76 Lakhs. The inventory is valued at the lower of cost and net realizable value. We considered the value of inventory as a key audit matter given the relative size of its balance in the financial statements and significant judgment involved in the consideration of factors in determination of selling prices such as fluctuation of raw materials prices in the market and in determination of net realizable value (Refer Note No. 8 to the Standalone Financial Statement). Our audit procedures in respect of the carrying value of Inventory included, among others, the following: • We understood and tested the design and operating effectiveness of controls as established by the management in determination of net realizable value of inventory. • Assessing the appropriateness of Company’s accounting policy for valuation of stock-in-trade and compliance of the policy with the requirements of the prevailing Indian accounting standards. • We considered various factors including the actual selling price prevailing around and subsequent to the year-end. Compared the cost of the finished goods with the estimated net realizable value and checked if the finished goods were recorded at net realizable value where the cost was higher than the net realizable value. Based on the above procedures performed, the management’s determination of the net realizable value of the inventory as at the year end and comparison with cost for valuation of inventory is considered to be reasonable. It is not possible for us to physically verify the Inventories of Raw Materials, Inventory of Stores and Spares, and Packing and Other Materials at the year end. As per the information given to us by the management, that the management of the company physically verify the inventories at regular intervals. We have relied on the valuation done by the management of the company. 3. Carrying Value of Trade Receivables and Advances: The assessment of the carrying value of Trade Receivables and Advances (including Trade Advances) involves significant management judgment in evaluating collectability and determining the appropriateness of allowances for impairment and provisions for bad and doubtful debts. Based on internal and external information available up to the date of approval of the standalone financial statements by the Board of Directors, management has concluded that there is no indication of any material impact on the carrying value of such balances. Given the degree of estimation and judgment involved in determining whether a provision for impairment or bad debt is required, whether in relation to a specific transaction or a customer's overall outstanding balance, this matter has been identified as a Key Audit Matter. Our audit procedures in respect of the carrying value of Trade Receivables and Advances included, among others, the following: • Sample Testing: We selected and assessed a sample of trade receivables and advances to evaluate their recoverability on an individual basis. • Ageing and Payment Pattern Analysis: We reviewed the ageing profile of trade receivables and advances and assessed customers' historical payment patterns. We also verified whether any post-year-end collections had been received up to the date of completion of our audit procedures. • Management Discussions: We held discussions with management regarding any disputes between the parties concerned, the steps taken by management to recover outstanding amounts, and the credit standing of significant counterparties, wherever such information was available. • Provisioning Policy Assessment: We evaluated the appropriateness of management's application of its provisioning policy for recognising impairment allowances and bad debt provisions. • Adequacy of Disclosures: We considered whether the disclosures made in the standalone financial statements in respect of trade receivables and advances are adequate and in accordance with the applicable financial reporting framework. Based on the procedures performed, we found the carrying value of Trade Receivables and Advances and the related provisions to be reasonable, and the disclosures in the standalone financial statements to be adequate. 4. Capitalization of Property, Plant & Equipment: - The Company capitalises expenditures

Reading File
Reading File
Running Command

ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace not found"

Running Command

mkdir -p /home/daytona/workspace/audit-ppt && ls /home/daytona/workspace/

Writing File

~/audit-ppt/create_presentation.js

const pptxgen = require("pptxgenjs");

const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3" x 7.5"
pres.title = "ABC LLP Statutory Auditors FY 2025-26";
pres.author = "ABC LLP";

// ── BRAND COLOURS ──────────────────────────────────────────────────────────
const C = {
  navy:       "0B1F3A",   // dominant dark
  midblue:    "1B3F6A",   // section headers
  accent:     "C8960C",   // gold accent
  accentlt:   "E8B84B",   // lighter gold
  white:      "FFFFFF",
  offwhite:   "F4F6FA",
  lightgrey:  "E2E8F0",
  medgrey:    "8A9BB0",
  darktext:   "1A2B45",
  bodytext:   "2D3E55",
  greenok:    "1A7A4A",
  lightgreen: "EBF7F1",
};

// ── HELPER FUNCTIONS ────────────────────────────────────────────────────────
function addSlideHeader(slide, title, subtitle) {
  // Top navy bar
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 13.3, h: 0.75,
    fill: { color: C.navy },
    line: { color: C.navy },
  });
  // Gold accent stripe
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 0.75, w: 13.3, h: 0.06,
    fill: { color: C.accent },
    line: { color: C.accent },
  });
  // Title in header
  slide.addText(title, {
    x: 0.35, y: 0, w: 10, h: 0.75,
    fontSize: 20, bold: true, color: C.white,
    fontFace: "Calibri", valign: "middle", margin: 0,
  });
  if (subtitle) {
    slide.addText(subtitle, {
      x: 0, y: 0, w: 13.15, h: 0.75,
      fontSize: 11, color: C.accentlt,
      fontFace: "Calibri", valign: "middle", align: "right", margin: 8,
    });
  }
  // Page footer
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 7.3, w: 13.3, h: 0.2,
    fill: { color: C.navy },
    line: { color: C.navy },
  });
  slide.addText("ABC LLP | Statutory Auditors | FY 2025-26  |  CONFIDENTIAL", {
    x: 0.3, y: 7.3, w: 9, h: 0.2,
    fontSize: 7, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
  });
  slide.addText("XYZ Limited", {
    x: 9.3, y: 7.3, w: 3.8, h: 0.2,
    fontSize: 7, color: C.accentlt, fontFace: "Calibri",
    valign: "middle", align: "right", margin: 0,
  });
}

function addSectionDivider(slide, number, title, desc) {
  // Full navy background
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 13.3, h: 7.5,
    fill: { color: C.navy }, line: { color: C.navy },
  });
  // Gold bar on left
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 0.18, h: 7.5,
    fill: { color: C.accent }, line: { color: C.accent },
  });
  // Large section number watermark
  slide.addText(number, {
    x: 0.5, y: 0.8, w: 4, h: 3.5,
    fontSize: 160, bold: true, color: C.midblue,
    fontFace: "Calibri", valign: "middle", margin: 0,
    transparency: 50,
  });
  // Section label
  slide.addText("SECTION " + number, {
    x: 0.5, y: 2.2, w: 12, h: 0.6,
    fontSize: 13, color: C.accent, bold: true,
    fontFace: "Calibri", charSpacing: 4, margin: 0,
  });
  // Main title
  slide.addText(title, {
    x: 0.5, y: 2.85, w: 12, h: 1.2,
    fontSize: 38, bold: true, color: C.white,
    fontFace: "Calibri", margin: 0,
  });
  // Gold rule
  slide.addShape(pres.ShapeType.rect, {
    x: 0.5, y: 4.15, w: 2.5, h: 0.05,
    fill: { color: C.accent }, line: { color: C.accent },
  });
  if (desc) {
    slide.addText(desc, {
      x: 0.5, y: 4.3, w: 10, h: 0.9,
      fontSize: 14, color: C.medgrey,
      fontFace: "Calibri", margin: 0,
    });
  }
  // Footer
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 7.3, w: 13.3, h: 0.2,
    fill: { color: C.midblue }, line: { color: C.midblue },
  });
  slide.addText("ABC LLP | Statutory Auditors | FY 2025-26  |  CONFIDENTIAL", {
    x: 0.3, y: 7.3, w: 9, h: 0.2,
    fontSize: 7, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
  });
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 1 – TITLE SLIDE                                                   ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  // Full dark background
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 13.3, h: 7.5,
    fill: { color: C.navy }, line: { color: C.navy },
  });
  // Decorative diagonal shape top-right
  s.addShape(pres.ShapeType.rtTriangle, {
    x: 9.5, y: 0, w: 3.8, h: 2.8,
    fill: { color: C.midblue }, line: { color: C.midblue },
  });
  s.addShape(pres.ShapeType.rtTriangle, {
    x: 10.8, y: 0, w: 2.5, h: 1.8,
    fill: { color: C.accent }, line: { color: C.accent },
  });
  // Left gold stripe
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 0.22, h: 7.5,
    fill: { color: C.accent }, line: { color: C.accent },
  });
  // Bottom gold band
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 6.8, w: 13.3, h: 0.7,
    fill: { color: C.accent }, line: { color: C.accent },
  });

  // Firm name / logo area
  s.addText("ABC LLP", {
    x: 0.5, y: 0.5, w: 8, h: 0.8,
    fontSize: 28, bold: true, color: C.accentlt,
    fontFace: "Calibri", margin: 0, charSpacing: 3,
  });
  s.addText("Chartered Accountants", {
    x: 0.5, y: 1.25, w: 8, h: 0.4,
    fontSize: 13, color: C.medgrey,
    fontFace: "Calibri", margin: 0,
  });

  // Rule
  s.addShape(pres.ShapeType.rect, {
    x: 0.5, y: 1.75, w: 3, h: 0.05,
    fill: { color: C.accent }, line: { color: C.accent },
  });

  // Main title
  s.addText("Statutory Audit\nPresentation", {
    x: 0.5, y: 1.9, w: 12.3, h: 2,
    fontSize: 46, bold: true, color: C.white,
    fontFace: "Calibri", margin: 0,
  });

  // Subtitle
  s.addText("Board & Audit Committee Communication", {
    x: 0.5, y: 3.95, w: 10, h: 0.55,
    fontSize: 17, color: C.accentlt,
    fontFace: "Calibri", margin: 0,
  });

  // Company info box
  s.addShape(pres.ShapeType.rect, {
    x: 0.5, y: 4.65, w: 5.8, h: 1.95,
    fill: { color: C.midblue }, line: { color: C.midblue },
    rectRadius: 0.06,
  });
  s.addText([
    { text: "Company: ", options: { bold: true, color: C.accentlt } },
    { text: "XYZ Limited\n", options: { color: C.white } },
    { text: "Financial Year: ", options: { bold: true, color: C.accentlt } },
    { text: "FY 2025-26 (Year ended March 31, 2026)\n", options: { color: C.white } },
    { text: "Standards: ", options: { bold: true, color: C.accentlt } },
    { text: "Ind AS | Companies Act, 2013\n", options: { color: C.white } },
    { text: "Date: ", options: { bold: true, color: C.accentlt } },
    { text: "May 12, 2026", options: { color: C.white } },
  ], {
    x: 0.7, y: 4.75, w: 5.5, h: 1.75,
    fontSize: 12, fontFace: "Calibri", margin: 6,
  });

  // Confidential label in gold band
  s.addText("STRICTLY CONFIDENTIAL  —  FOR THOSE CHARGED WITH GOVERNANCE ONLY", {
    x: 0, y: 6.8, w: 13.3, h: 0.7,
    fontSize: 11, bold: true, color: C.navy,
    fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
  });
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 2 – TABLE OF CONTENTS                                             ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  // Background
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 13.3, h: 7.5,
    fill: { color: C.offwhite }, line: { color: C.offwhite },
  });
  addSlideHeader(s, "Table of Contents", "Agenda Overview");

  // Left large decorative label
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0.81, w: 0.18, h: 6.49,
    fill: { color: C.accent }, line: { color: C.accent },
  });

  const items = [
    ["01", "Introduction & Firm Overview", "Pipara introduction and audit quality objectives"],
    ["02", "Scope & Nature of Engagements", "Combined standalone & consolidated audit | SEBI Regulation 33"],
    ["03", "Auditor's Responsibilities", "Expressing opinion | Reasonable assurance | Going concern"],
    ["04", "Audit Approach & Methodology", "Scoping | Materiality | Risk assessment | Findings"],
    ["05", "Key Audit Matters", "Revenue recognition | Inventories | Trade receivables | PP&E"],
    ["06", "Audit Procedures Performed", "Controls testing | Substantive procedures | Confirmations"],
    ["07", "Independence & Ethics", "Confirmations of independence | Ethical compliance"],
    ["08", "Opinion & Conclusion", "Unmodified audit report | Final observations"],
  ];

  const colW = 6.0;
  const rowH = 0.72;
  const startY = 0.95;
  const col2X = 7.0;

  items.forEach((item, i) => {
    const col = i < 4 ? 0 : 1;
    const row = i < 4 ? i : i - 4;
    const x = col === 0 ? 0.35 : col2X;
    const y = startY + row * (rowH + 0.09);
    const isEven = i % 2 === 0;

    // Card background
    s.addShape(pres.ShapeType.rect, {
      x, y, w: colW, h: rowH,
      fill: { color: isEven ? C.white : C.lightgrey },
      line: { color: C.lightgrey, pt: 1 },
      shadow: { type: "outer", blur: 4, offset: 2, angle: 45, color: "AAAAAA", opacity: 0.2 },
    });
    // Number badge
    s.addShape(pres.ShapeType.rect, {
      x, y, w: 0.5, h: rowH,
      fill: { color: C.navy },
      line: { color: C.navy },
    });
    s.addText(item[0], {
      x, y, w: 0.5, h: rowH,
      fontSize: 12, bold: true, color: C.accent,
      fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
    });
    // Title
    s.addText(item[1], {
      x: x + 0.55, y: y + 0.04, w: colW - 0.65, h: 0.3,
      fontSize: 11.5, bold: true, color: C.darktext,
      fontFace: "Calibri", margin: 0,
    });
    // Subtitle
    s.addText(item[2], {
      x: x + 0.55, y: y + 0.35, w: colW - 0.65, h: 0.3,
      fontSize: 9, color: C.medgrey,
      fontFace: "Calibri", margin: 0,
    });
  });

  // Vertical separator
  s.addShape(pres.ShapeType.rect, {
    x: 6.55, y: 1.0, w: 0.04, h: 6.1,
    fill: { color: C.lightgrey }, line: { color: C.lightgrey },
  });
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 3 – SECTION DIVIDER: INTRODUCTION                                 ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  addSectionDivider(s, "01", "Introduction", "Firm Overview & Audit Quality Objectives");
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 4 – INTRODUCTION CONTENT                                          ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 13.3, h: 7.5,
    fill: { color: C.offwhite }, line: { color: C.offwhite },
  });
  addSlideHeader(s, "Introduction — About ABC LLP", "Section 01");

  // Left column: About box
  s.addShape(pres.ShapeType.rect, {
    x: 0.35, y: 1.0, w: 5.8, h: 5.9,
    fill: { color: C.white }, line: { color: C.lightgrey, pt: 1 },
    shadow: { type: "outer", blur: 5, offset: 2, angle: 45, color: "BBBBBB", opacity: 0.25 },
  });
  // Blue top band on card
  s.addShape(pres.ShapeType.rect, {
    x: 0.35, y: 1.0, w: 5.8, h: 0.42,
    fill: { color: C.navy }, line: { color: C.navy },
  });
  s.addText("ABOUT PIPARA", {
    x: 0.45, y: 1.0, w: 5.5, h: 0.42,
    fontSize: 12, bold: true, color: C.accent,
    fontFace: "Calibri", valign: "middle", margin: 0, charSpacing: 2,
  });
  s.addText(
    "Pipara & Co LLP is a professional services firm specialising in Statutory Audit, " +
    "Tax Advisory, and Assurance services. Our practice is built on a foundation of technical " +
    "excellence, professional integrity, and a commitment to delivering high-quality, insightful " +
    "audit services to listed and unlisted entities across India.\n\n" +
    "As Statutory Auditors of XYZ Limited, we bring deep sector knowledge, robust audit " +
    "methodology aligned with SAs issued under Section 143(10) of the Companies Act, 2013, " +
    "and an unwavering focus on audit quality.\n\n" +
    "This presentation summarises the principal matters arising during the audit of the " +
    "standalone and consolidated financial statements for the year ended March 31, 2026, " +
    "prepared in accordance with Ind AS under Section 133 of the Act. It highlights the most " +
    "significant matters for the attention of Those Charged with Governance (TCWG).",
    {
      x: 0.5, y: 1.5, w: 5.5, h: 5.3,
      fontSize: 10.5, color: C.bodytext, fontFace: "Calibri",
      paraSpaceBefore: 2, paraSpaceAfter: 4,
    }
  );

  // Right column: Audit quality objectives
  s.addShape(pres.ShapeType.rect, {
    x: 6.5, y: 1.0, w: 6.45, h: 0.42,
    fill: { color: C.navy }, line: { color: C.navy },
  });
  s.addText("AUDIT QUALITY OBJECTIVES", {
    x: 6.6, y: 1.0, w: 6.2, h: 0.42,
    fontSize: 12, bold: true, color: C.accent,
    fontFace: "Calibri", valign: "middle", margin: 0, charSpacing: 2,
  });

  const objectives = [
    ["Robust Challenge", "A robust challenge of the key judgments taken in the preparation of the financial statements, ensuring compliance with applicable Ind AS."],
    ["Internal Controls", "A strong understanding of your internal control environment to identify control deficiencies and assess risk of material misstatement."],
    ["Early Findings", "A well planned and delivered audit that raises findings early with those charged with governance to enable timely remediation."],
    ["Standards Compliance", "Audit conducted in accordance with SAs issued under Section 143(10) of the Companies Act, 2013, with professional skepticism throughout."],
  ];

  objectives.forEach((obj, i) => {
    const y = 1.55 + i * 1.35;
    s.addShape(pres.ShapeType.rect, {
      x: 6.5, y, w: 6.45, h: 1.25,
      fill: { color: i % 2 === 0 ? C.white : C.lightgrey },
      line: { color: C.lightgrey, pt: 1 },
    });
    // Gold left accent
    s.addShape(pres.ShapeType.rect, {
      x: 6.5, y, w: 0.08, h: 1.25,
      fill: { color: C.accent }, line: { color: C.accent },
    });
    // Number circle
    s.addShape(pres.ShapeType.ellipse, {
      x: 6.68, y: y + 0.14, w: 0.45, h: 0.45,
      fill: { color: C.navy }, line: { color: C.navy },
    });
    s.addText(String(i + 1), {
      x: 6.68, y: y + 0.14, w: 0.45, h: 0.45,
      fontSize: 11, bold: true, color: C.accent,
      fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
    });
    s.addText(obj[0], {
      x: 7.25, y: y + 0.08, w: 5.55, h: 0.32,
      fontSize: 11.5, bold: true, color: C.darktext,
      fontFace: "Calibri", margin: 0,
    });
    s.addText(obj[1], {
      x: 7.25, y: y + 0.42, w: 5.55, h: 0.72,
      fontSize: 9.5, color: C.bodytext,
      fontFace: "Calibri", margin: 0,
    });
  });
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 5 – SECTION DIVIDER: SCOPE                                        ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  addSectionDivider(s, "02", "Scope & Nature of Engagements", "Overview of audit engagements performed for FY 2025-26");
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 6 – SCOPE OF AUDIT                                                ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 13.3, h: 7.5,
    fill: { color: C.offwhite }, line: { color: C.offwhite },
  });
  addSlideHeader(s, "Scope & Nature of Engagements", "Section 02");

  // Top scope statement
  s.addShape(pres.ShapeType.rect, {
    x: 0.35, y: 0.95, w: 12.6, h: 0.9,
    fill: { color: C.navy }, line: { color: C.navy },
  });
  s.addText(
    "Our audit was designed to obtain reasonable assurance about whether the financial statements are free from material misstatement, whether due to fraud or error. " +
    "We conducted our audit in accordance with the Standards on Auditing specified under Section 143(10) of the Companies Act, 2013.",
    {
      x: 0.55, y: 0.95, w: 12.2, h: 0.9,
      fontSize: 10, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
    }
  );

  // Four engagement cards
  const cards = [
    {
      title: "Standalone Financial Statements",
      icon: "SA",
      items: ["Audit of standalone financial statements", "Audit of IFCoFR (Internal Financial Controls with reference to Financial Reporting)"],
      color: C.navy,
    },
    {
      title: "Consolidated Financial Statements",
      icon: "CF",
      items: ["Audit of consolidated financial statements", "Audit of IFCoFR for the consolidated Group"],
      color: C.midblue,
    },
    {
      title: "Standalone — SEBI Reg. 33",
      icon: "SR",
      items: ["Audit of financial results for year ended March 31, 2026", "Limited review of financial results for quarter ended March 31, 2026"],
      color: C.navy,
    },
    {
      title: "Consolidated — SEBI Reg. 33",
      icon: "CR",
      items: ["Audit of financial results for year ended March 31, 2026", "Limited review of financial results for quarter ended March 31, 2026"],
      color: C.midblue,
    },
  ];

  cards.forEach((card, i) => {
    const x = 0.35 + i * 3.25;
    const y = 2.1;
    // Card
    s.addShape(pres.ShapeType.rect, {
      x, y, w: 3.05, h: 4.85,
      fill: { color: C.white }, line: { color: C.lightgrey, pt: 1 },
      shadow: { type: "outer", blur: 5, offset: 2, angle: 45, color: "BBBBBB", opacity: 0.2 },
    });
    // Card header
    s.addShape(pres.ShapeType.rect, {
      x, y, w: 3.05, h: 0.9,
      fill: { color: card.color }, line: { color: card.color },
    });
    // Icon badge
    s.addShape(pres.ShapeType.ellipse, {
      x: x + 0.12, y: y + 0.18, w: 0.54, h: 0.54,
      fill: { color: C.accent }, line: { color: C.accent },
    });
    s.addText(card.icon, {
      x: x + 0.12, y: y + 0.18, w: 0.54, h: 0.54,
      fontSize: 9, bold: true, color: C.navy,
      fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
    });
    s.addText(card.title, {
      x: x + 0.75, y: y + 0.08, w: 2.2, h: 0.74,
      fontSize: 10.5, bold: true, color: C.white,
      fontFace: "Calibri", valign: "middle", margin: 0,
    });
    // Bullet items
    card.items.forEach((item, j) => {
      const iy = y + 1.05 + j * 0.75;
      s.addShape(pres.ShapeType.rect, {
        x: x + 0.18, y: iy, w: 2.7, h: 0.65,
        fill: { color: j % 2 === 0 ? C.offwhite : C.white },
        line: { color: C.lightgrey, pt: 0.5 },
      });
      s.addShape(pres.ShapeType.rect, {
        x: x + 0.18, y: iy, w: 0.06, h: 0.65,
        fill: { color: C.accent }, line: { color: C.accent },
      });
      s.addText(item, {
        x: x + 0.3, y: iy + 0.05, w: 2.55, h: 0.55,
        fontSize: 9, color: C.bodytext,
        fontFace: "Calibri", margin: 2,
      });
    });
    // Card footer label
    s.addShape(pres.ShapeType.rect, {
      x, y: y + 4.35, w: 3.05, h: 0.5,
      fill: { color: C.accent }, line: { color: C.accent },
    });
    s.addText("Combined Audit Engagement", {
      x, y: y + 4.35, w: 3.05, h: 0.5,
      fontSize: 9, bold: true, color: C.navy,
      fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
    });
  });

  // IFCoFR note
  s.addShape(pres.ShapeType.rect, {
    x: 0.35, y: 7.05, w: 12.6, h: 0.2,
    fill: { color: C.lightgrey }, line: { color: C.lightgrey },
  });
  s.addText(
    "IFCoFR = Internal Financial Controls with reference to Financial Reporting  |  Conducted as per ICAI Guidance Note and applicable Standards on Auditing",
    {
      x: 0.45, y: 7.05, w: 12.4, h: 0.2,
      fontSize: 7.5, color: C.medgrey, fontFace: "Calibri", valign: "middle", margin: 0,
    }
  );
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 7 – SECTION DIVIDER: AUDITOR'S RESPONSIBILITIES                   ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  addSectionDivider(s, "03", "Auditor's Responsibilities", "Our obligations under applicable law, standards and ethical requirements");
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 8 – AUDITOR RESPONSIBILITIES CONTENT                              ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 13.3, h: 7.5,
    fill: { color: C.offwhite }, line: { color: C.offwhite },
  });
  addSlideHeader(s, "Auditor's Responsibilities", "Section 03");

  const resps = [
    {
      num: "01",
      title: "Opinion on Financial Statements",
      body: "Independently express an opinion on whether the financial statements give a true and fair view in accordance with applicable Ind AS, the Companies Act, 2013, and relevant auditing standards.",
    },
    {
      num: "02",
      title: "Reasonable Assurance",
      body: "Obtain reasonable (high, but not absolute) assurance that the financial statements are free from material misstatement due to fraud or error.",
    },
    {
      num: "03",
      title: "Understanding Entity & Internal Controls",
      body: "Gain understanding of the company's business, operations, and IFCoFR to identify and assess risks and design appropriate audit procedures.",
    },
    {
      num: "04",
      title: "Fraud & Error Assessment",
      body: "Evaluate risks arising from fraud and error, apply professional skepticism throughout, and perform procedures to identify material misstatements. Primary responsibility for prevention and detection of fraud rests with management.",
    },
    {
      num: "05",
      title: "Going Concern Assessment",
      body: "Evaluate whether the company can continue as a going concern and review management's assessment of future operational and financial sustainability.",
    },
  ];

  const colW = 5.95;
  resps.forEach((r, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    // Last item spans full width
    let x, y, w;
    if (i === 4) {
      x = 0.35; y = 5.0; w = 12.6;
    } else {
      x = col === 0 ? 0.35 : 7.0;
      y = 0.98 + row * 1.88;
      w = colW;
    }
    const h = i === 4 ? 1.5 : 1.72;

    s.addShape(pres.ShapeType.rect, {
      x, y, w, h,
      fill: { color: C.white }, line: { color: C.lightgrey, pt: 1 },
      shadow: { type: "outer", blur: 4, offset: 1, angle: 45, color: "CCCCCC", opacity: 0.2 },
    });
    // Left accent
    s.addShape(pres.ShapeType.rect, {
      x, y, w: 0.08, h,
      fill: { color: C.accent }, line: { color: C.accent },
    });
    // Number badge
    s.addShape(pres.ShapeType.rect, {
      x: x + 0.15, y: y + 0.15, w: 0.5, h: 0.5,
      fill: { color: C.navy }, line: { color: C.navy },
    });
    s.addText(r.num, {
      x: x + 0.15, y: y + 0.15, w: 0.5, h: 0.5,
      fontSize: 11, bold: true, color: C.accent,
      fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
    });
    s.addText(r.title, {
      x: x + 0.75, y: y + 0.12, w: w - 0.85, h: 0.42,
      fontSize: 12, bold: true, color: C.darktext,
      fontFace: "Calibri", margin: 0,
    });
    s.addShape(pres.ShapeType.rect, {
      x: x + 0.15, y: y + 0.65, w: w - 0.25, h: 0.04,
      fill: { color: C.lightgrey }, line: { color: C.lightgrey },
    });
    s.addText(r.body, {
      x: x + 0.15, y: y + 0.75, w: w - 0.25, h: h - 0.85,
      fontSize: 9.5, color: C.bodytext,
      fontFace: "Calibri", margin: 0,
    });
  });
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 9 – SECTION DIVIDER: AUDIT APPROACH                               ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  addSectionDivider(s, "04", "Audit Approach & Methodology", "Scoping | Materiality | Risk Assessment | Conclusion");
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 10 – AUDIT METHODOLOGY                                            ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 13.3, h: 7.5,
    fill: { color: C.offwhite }, line: { color: C.offwhite },
  });
  addSlideHeader(s, "Audit Approach & Methodology", "Section 04");

  // Five-step process flow at top
  const steps = [
    ["1", "Business\nChanges", "No material changes in business/environment"],
    ["2", "Scoping", "Audit completed in line with plan"],
    ["3", "Materiality\nDetermination", "1% of avg profit\n(2 years)"],
    ["4", "Risk\nAssessment", "Significant risks identified & communicated"],
    ["5", "Conclude &\nReport", "Unmodified audit report issued"],
  ];

  const stepW = 2.4;
  steps.forEach((step, i) => {
    const x = 0.35 + i * 2.56;
    const y = 0.97;
    s.addShape(pres.ShapeType.rect, {
      x, y, w: stepW, h: 1.4,
      fill: { color: C.navy }, line: { color: C.navy },
    });
    // Arrow
    if (i < 4) {
      s.addShape(pres.ShapeType.rect, {
        x: x + stepW, y: y + 0.55, w: 0.16, h: 0.28,
        fill: { color: C.accent }, line: { color: C.accent },
      });
    }
    s.addShape(pres.ShapeType.ellipse, {
      x: x + 0.85, y: y + 0.08, w: 0.7, h: 0.7,
      fill: { color: C.accent }, line: { color: C.accent },
    });
    s.addText(step[0], {
      x: x + 0.85, y: y + 0.08, w: 0.7, h: 0.7,
      fontSize: 18, bold: true, color: C.navy,
      fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
    });
    s.addText(step[1], {
      x: x + 0.05, y: y + 0.8, w: stepW - 0.1, h: 0.55,
      fontSize: 9.5, bold: true, color: C.white,
      fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
    });
  });

  // Detail boxes below
  const details = [
    {
      title: "Business Environment",
      color: C.navy,
      points: [
        "No material changes in business or operating environment noted during the year",
        "Audit scoping conducted and communicated in advance per audit plan",
        "Audit completed fully in line with planned scope",
      ],
    },
    {
      title: "Materiality Thresholds",
      color: C.midblue,
      points: [
        "Overall materiality: 1% of average profit for the previous two years",
        "Performance materiality: 40% of overall materiality — used for sample sizes in tests of detail",
        "Clearly trivial threshold: 5% of overall materiality — misstatements below this level not accumulated",
      ],
    },
    {
      title: "Significant Risk Areas",
      color: C.navy,
      points: [
        "Risk assessment process explained and detailed risks communicated in plan communication",
        "Findings and conclusions on each significant risk communicated in this presentation",
        "Refer Appendix A – Response to Significant Risks for full detail",
      ],
    },
    {
      title: "Audit Report",
      color: C.greenok,
      points: [
        "Our audit report on standalone and consolidated financial statements is an UNMODIFIED report",
        "No qualification, emphasis of matter, or other matter paragraph has been included",
        "Financial statements give a true and fair view in accordance with Ind AS",
      ],
    },
  ];

  details.forEach((d, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    const x = col === 0 ? 0.35 : 7.0;
    const y = 2.65 + row * 2.22;
    const w = 5.95;
    const h = 2.05;

    s.addShape(pres.ShapeType.rect, {
      x, y, w, h,
      fill: { color: C.white }, line: { color: C.lightgrey, pt: 1 },
      shadow: { type: "outer", blur: 4, offset: 1, angle: 45, color: "CCCCCC", opacity: 0.15 },
    });
    s.addShape(pres.ShapeType.rect, {
      x, y, w, h: 0.42,
      fill: { color: d.color }, line: { color: d.color },
    });
    s.addText(d.title.toUpperCase(), {
      x: x + 0.15, y, w: w - 0.2, h: 0.42,
      fontSize: 10, bold: true, color: C.white,
      fontFace: "Calibri", valign: "middle", margin: 0, charSpacing: 1.5,
    });
    d.points.forEach((pt, j) => {
      s.addText([
        { text: "▸  ", options: { color: d.color === C.greenok ? C.greenok : C.accent, bold: true } },
        { text: pt, options: { color: C.bodytext } },
      ], {
        x: x + 0.12, y: y + 0.5 + j * 0.49,
        w: w - 0.24, h: 0.45,
        fontSize: 9.5, fontFace: "Calibri", margin: 0,
      });
    });
  });
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 11 – SECTION DIVIDER: KEY AUDIT MATTERS                           ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  addSectionDivider(s, "05", "Key Audit Matters", "Significant areas of audit focus and findings for FY 2025-26");
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 12 – KAM OVERVIEW                                                 ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 13.3, h: 7.5,
    fill: { color: C.offwhite }, line: { color: C.offwhite },
  });
  addSlideHeader(s, "Key Audit Matters — Overview", "Section 05");

  const kams = [
    {
      num: "KAM 1", title: "Revenue Recognition",
      ref: "Ind AS 115", risk: "High",
      desc: "Timing and measurement of revenue from sale of goods involving significant management judgment. Includes cut-off risk and adjustments for grade mismatch / quality variances.",
    },
    {
      num: "KAM 2", title: "Inventory Valuation",
      ref: "Ind AS 2", risk: "Medium-High",
      desc: "Inventory carrying value of ₹2,32,260.76 Lakhs at March 31, 2026. Valuation at lower of cost and NRV requires significant judgment on selling price estimation.",
    },
    {
      num: "KAM 3", title: "Trade Receivables & Advances",
      ref: "Ind AS 109", risk: "Medium-High",
      desc: "Assessment of collectability and appropriateness of impairment allowances / bad debt provisions requires significant management judgment.",
    },
    {
      num: "KAM 4", title: "Capitalisation of PP&E",
      ref: "Ind AS 16", risk: "Medium",
      desc: "Judgment required in determining whether expenditure qualifies for capitalisation as Property, Plant & Equipment or should be recognised as revenue expenditure.",
    },
  ];

  kams.forEach((k, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    const x = col === 0 ? 0.35 : 7.0;
    const y = 0.98 + row * 3.1;
    const w = 5.95;
    const h = 2.85;

    s.addShape(pres.ShapeType.rect, {
      x, y, w, h,
      fill: { color: C.white }, line: { color: C.lightgrey, pt: 1 },
      shadow: { type: "outer", blur: 5, offset: 2, angle: 45, color: "BBBBBB", opacity: 0.2 },
    });
    // Header
    s.addShape(pres.ShapeType.rect, {
      x, y, w, h: 0.55,
      fill: { color: C.navy }, line: { color: C.navy },
    });
    s.addText(k.num, {
      x: x + 0.1, y, w: 1.2, h: 0.55,
      fontSize: 11, bold: true, color: C.accent,
      fontFace: "Calibri", valign: "middle", margin: 0,
    });
    s.addText(k.title, {
      x: x + 1.2, y, w: 3.0, h: 0.55,
      fontSize: 12, bold: true, color: C.white,
      fontFace: "Calibri", valign: "middle", margin: 0,
    });
    // Ref badge
    s.addShape(pres.ShapeType.rect, {
      x: x + w - 1.4, y: y + 0.08, w: 1.3, h: 0.38,
      fill: { color: C.accent }, line: { color: C.accent },
    });
    s.addText(k.ref, {
      x: x + w - 1.4, y: y + 0.08, w: 1.3, h: 0.38,
      fontSize: 9, bold: true, color: C.navy,
      fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
    });

    // Risk level
    s.addText("RISK LEVEL", {
      x: x + 0.12, y: y + 0.65, w: 1.2, h: 0.25,
      fontSize: 7.5, color: C.medgrey, fontFace: "Calibri", margin: 0, charSpacing: 1,
    });
    const riskColor = k.risk === "High" ? "C0392B" : k.risk === "Medium-High" ? "E67E22" : "2980B9";
    s.addShape(pres.ShapeType.rect, {
      x: x + 0.12, y: y + 0.9, w: 1.5, h: 0.3,
      fill: { color: riskColor }, line: { color: riskColor },
    });
    s.addText(k.risk, {
      x: x + 0.12, y: y + 0.9, w: 1.5, h: 0.3,
      fontSize: 9, bold: true, color: C.white,
      fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
    });

    // Description
    s.addShape(pres.ShapeType.rect, {
      x: x + 0.12, y: y + 1.3, w: w - 0.24, h: 0.04,
      fill: { color: C.lightgrey }, line: { color: C.lightgrey },
    });
    s.addText(k.desc, {
      x: x + 0.12, y: y + 1.42, w: w - 0.24, h: 1.3,
      fontSize: 9.5, color: C.bodytext, fontFace: "Calibri", margin: 0,
    });
  });
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 13 – KAM 1: REVENUE RECOGNITION                                   ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 13.3, h: 7.5,
    fill: { color: C.offwhite }, line: { color: C.offwhite },
  });
  addSlideHeader(s, "KAM 1 — Revenue Recognition  |  Ind AS 115", "Section 05");

  // Why KAM - left
  s.addShape(pres.ShapeType.rect, {
    x: 0.35, y: 0.95, w: 5.8, h: 0.4,
    fill: { color: C.navy }, line: { color: C.navy },
  });
  s.addText("WHY THIS IS A KEY AUDIT MATTER", {
    x: 0.45, y: 0.95, w: 5.6, h: 0.4,
    fontSize: 10, bold: true, color: C.accent,
    fontFace: "Calibri", valign: "middle", margin: 0, charSpacing: 1.5,
  });

  const whyPoints = [
    "Material estimation and significant management judgment in timing and measurement of revenue from sale of goods",
    "Revenue recognition varies contract to contract; certain activities may span beyond the financial year end",
    "Risk of premature recognition before control of goods is actually transferred to the customer",
    "Subsequent adjustments required for grade mismatch, slippage, and quality variances post-transfer",
    "Where transaction price variations are unsettled, estimates are made based on historical trends — risk of over/understatement",
  ];

  whyPoints.forEach((pt, i) => {
    const y = 1.45 + i * 0.72;
    s.addShape(pres.ShapeType.rect, {
      x: 0.35, y, w: 5.8, h: 0.64,
      fill: { color: i % 2 === 0 ? C.white : C.lightgrey },
      line: { color: C.lightgrey, pt: 0.5 },
    });
    s.addShape(pres.ShapeType.rect, {
      x: 0.35, y, w: 0.06, h: 0.64,
      fill: { color: C.accent }, line: { color: C.accent },
    });
    s.addText(pt, {
      x: 0.5, y: y + 0.04, w: 5.55, h: 0.56,
      fontSize: 9, color: C.bodytext, fontFace: "Calibri", margin: 2,
    });
  });

  // Audit procedures - right
  s.addShape(pres.ShapeType.rect, {
    x: 6.5, y: 0.95, w: 6.45, h: 0.4,
    fill: { color: C.midblue }, line: { color: C.midblue },
  });
  s.addText("AUDIT PROCEDURES PERFORMED", {
    x: 6.6, y: 0.95, w: 6.25, h: 0.4,
    fontSize: 10, bold: true, color: C.accent,
    fontFace: "Calibri", valign: "middle", margin: 0, charSpacing: 1.5,
  });

  const procs = [
    ["Internal Controls Evaluation", "Assessed design, implementation & operating effectiveness of controls over revenue recognition, contract review, dispatch documentation, and quality adjustment mechanisms"],
    ["Cut-off Testing", "Examined significant contracts entered close to year-end to verify revenue recognised in the correct accounting period"],
    ["Sample-Based Contract Testing", "Tested sample contracts against underlying POs, delivery documentation; assessed compliance with Ind AS 115 requirements"],
    ["Price Adjustment Assessment", "Evaluated reasonableness of adjustments for quality variances, grade mismatch, and slippage — tested against historical trends"],
    ["Disclosure Assessment", "Verified adequacy of disclosures on revenue recognition policies and significant estimates under Ind AS 115"],
  ];

  procs.forEach(([title, body], i) => {
    const y = 1.45 + i * 1.02;
    s.addShape(pres.ShapeType.rect, {
      x: 6.5, y, w: 6.45, h: 0.95,
      fill: { color: i % 2 === 0 ? C.white : C.offwhite },
      line: { color: C.lightgrey, pt: 0.5 },
    });
    s.addShape(pres.ShapeType.ellipse, {
      x: 6.6, y: y + 0.15, w: 0.32, h: 0.32,
      fill: { color: C.navy }, line: { color: C.navy },
    });
    s.addText(String(i + 1), {
      x: 6.6, y: y + 0.15, w: 0.32, h: 0.32,
      fontSize: 8, bold: true, color: C.accent,
      fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
    });
    s.addText(title, {
      x: 7.02, y: y + 0.05, w: 5.8, h: 0.3,
      fontSize: 10, bold: true, color: C.darktext, fontFace: "Calibri", margin: 0,
    });
    s.addText(body, {
      x: 7.02, y: y + 0.38, w: 5.8, h: 0.52,
      fontSize: 8.5, color: C.bodytext, fontFace: "Calibri", margin: 0,
    });
  });

  // Conclusion banner
  s.addShape(pres.ShapeType.rect, {
    x: 0.35, y: 6.9, w: 12.6, h: 0.32,
    fill: { color: C.greenok }, line: { color: C.greenok },
  });
  s.addText(
    "✔  Conclusion: Revenue has been recorded in accordance with the terms of underlying contracts and the Company's accounting policy, consistent with Ind AS 115.",
    {
      x: 0.45, y: 6.9, w: 12.4, h: 0.32,
      fontSize: 9.5, bold: true, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
    }
  );
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 14 – KAM 2: INVENTORY VALUATION                                   ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 13.3, h: 7.5,
    fill: { color: C.offwhite }, line: { color: C.offwhite },
  });
  addSlideHeader(s, "KAM 2 — Inventory & Valuation of Inventories  |  Ind AS 2", "Section 05");

  // Highlight box
  s.addShape(pres.ShapeType.rect, {
    x: 0.35, y: 0.95, w: 12.6, h: 0.75,
    fill: { color: C.navy }, line: { color: C.navy },
  });
  s.addText("Carrying Value of Inventory as at March 31, 2026:", {
    x: 0.55, y: 0.95, w: 4.5, h: 0.75,
    fontSize: 10, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
  });
  s.addText("₹2,32,260.76 Lakhs", {
    x: 5.1, y: 0.95, w: 4.5, h: 0.75,
    fontSize: 22, bold: true, color: C.accent, fontFace: "Calibri", valign: "middle", margin: 0,
  });
  s.addText("Refer Note 8 to Standalone Financial Statements", {
    x: 9.6, y: 0.95, w: 3.2, h: 0.75,
    fontSize: 9, color: C.medgrey, fontFace: "Calibri", valign: "middle", align: "right", margin: 0,
  });

  // Left column
  s.addShape(pres.ShapeType.rect, {
    x: 0.35, y: 1.82, w: 5.8, h: 0.4,
    fill: { color: C.navy }, line: { color: C.navy },
  });
  s.addText("WHY THIS IS A KEY AUDIT MATTER", {
    x: 0.45, y: 1.82, w: 5.6, h: 0.4,
    fontSize: 10, bold: true, color: C.accent,
    fontFace: "Calibri", valign: "middle", margin: 0, charSpacing: 1.5,
  });
  const whyInv = [
    "Relative size — one of the largest line items on the balance sheet",
    "Valuation at lower of cost and net realisable value (NRV) per Ind AS 2",
    "NRV determination requires judgment on future selling prices",
    "Fluctuation in raw material prices in market adds estimation risk",
    "Physical verification limitations — management verifies at regular intervals",
  ];
  whyInv.forEach((pt, i) => {
    const y = 2.3 + i * 0.72;
    s.addShape(pres.ShapeType.rect, {
      x: 0.35, y, w: 5.8, h: 0.64,
      fill: { color: i % 2 === 0 ? C.white : C.lightgrey },
      line: { color: C.lightgrey, pt: 0.5 },
    });
    s.addShape(pres.ShapeType.rect, {
      x: 0.35, y, w: 0.06, h: 0.64,
      fill: { color: C.accent }, line: { color: C.accent },
    });
    s.addText(pt, {
      x: 0.5, y: y + 0.04, w: 5.55, h: 0.56,
      fontSize: 9, color: C.bodytext, fontFace: "Calibri", margin: 2,
    });
  });

  // Right column
  s.addShape(pres.ShapeType.rect, {
    x: 6.5, y: 1.82, w: 6.45, h: 0.4,
    fill: { color: C.midblue }, line: { color: C.midblue },
  });
  s.addText("AUDIT PROCEDURES PERFORMED", {
    x: 6.6, y: 1.82, w: 6.25, h: 0.4,
    fontSize: 10, bold: true, color: C.accent,
    fontFace: "Calibri", valign: "middle", margin: 0, charSpacing: 1.5,
  });
  const invProcs = [
    ["Controls Testing", "Understood and tested the design and operating effectiveness of management controls over NRV determination"],
    ["Accounting Policy Review", "Assessed appropriateness of inventory valuation policy for stock-in-trade and compliance with Ind AS 2"],
    ["NRV Assessment", "Considered actual selling prices prevailing around and subsequent to year-end; compared cost with estimated NRV"],
    ["Cost vs. NRV Comparison", "Verified finished goods are recorded at NRV where cost exceeds NRV; assessed reasonableness of write-downs"],
    ["Physical Verification", "Management verifies inventories at regular intervals; we have relied on management's valuation given physical access limitations"],
  ];
  invProcs.forEach(([title, body], i) => {
    const y = 2.3 + i * 0.94;
    s.addShape(pres.ShapeType.rect, {
      x: 6.5, y, w: 6.45, h: 0.86,
      fill: { color: i % 2 === 0 ? C.white : C.offwhite },
      line: { color: C.lightgrey, pt: 0.5 },
    });
    s.addShape(pres.ShapeType.ellipse, {
      x: 6.6, y: y + 0.12, w: 0.32, h: 0.32,
      fill: { color: C.navy }, line: { color: C.navy },
    });
    s.addText(String(i + 1), {
      x: 6.6, y: y + 0.12, w: 0.32, h: 0.32,
      fontSize: 8, bold: true, color: C.accent,
      fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
    });
    s.addText(title, {
      x: 7.02, y: y + 0.04, w: 5.8, h: 0.3,
      fontSize: 10, bold: true, color: C.darktext, fontFace: "Calibri", margin: 0,
    });
    s.addText(body, {
      x: 7.02, y: y + 0.36, w: 5.8, h: 0.45,
      fontSize: 8.5, color: C.bodytext, fontFace: "Calibri", margin: 0,
    });
  });

  s.addShape(pres.ShapeType.rect, {
    x: 0.35, y: 6.9, w: 12.6, h: 0.32,
    fill: { color: C.greenok }, line: { color: C.greenok },
  });
  s.addText(
    "✔  Conclusion: Management's determination of NRV and comparison with cost for inventory valuation as at year-end is considered to be reasonable.",
    {
      x: 0.45, y: 6.9, w: 12.4, h: 0.32,
      fontSize: 9.5, bold: true, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
    }
  );
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 15 – KAM 3 & KAM 4                                               ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 13.3, h: 7.5,
    fill: { color: C.offwhite }, line: { color: C.offwhite },
  });
  addSlideHeader(s, "KAM 3 & KAM 4 — Trade Receivables & PP&E Capitalisation", "Section 05");

  // KAM 3 left
  s.addShape(pres.ShapeType.rect, {
    x: 0.35, y: 0.92, w: 6.15, h: 0.4,
    fill: { color: C.navy }, line: { color: C.navy },
  });
  s.addText("KAM 3 — TRADE RECEIVABLES & ADVANCES  |  Ind AS 109", {
    x: 0.45, y: 0.92, w: 5.95, h: 0.4,
    fontSize: 9.5, bold: true, color: C.accent,
    fontFace: "Calibri", valign: "middle", margin: 0, charSpacing: 0.5,
  });

  const tr = [
    ["Sample Testing", "Selected and assessed a sample of trade receivables and advances to evaluate recoverability on an individual basis"],
    ["Ageing & Payment Pattern", "Reviewed ageing profile and customers' historical payment patterns; verified post-year-end collections up to completion of audit"],
    ["Management Discussions", "Held discussions on disputes, recovery steps taken, and credit standing of significant counterparties"],
    ["Provisioning Policy", "Evaluated appropriateness of management's impairment allowance and bad debt provisioning policy"],
    ["Disclosure Adequacy", "Verified disclosures in standalone financial statements are adequate and comply with applicable reporting framework"],
  ];

  tr.forEach(([title, body], i) => {
    const y = 1.4 + i * 1.07;
    s.addShape(pres.ShapeType.rect, {
      x: 0.35, y, w: 6.15, h: 1.0,
      fill: { color: i % 2 === 0 ? C.white : C.lightgrey },
      line: { color: C.lightgrey, pt: 0.5 },
    });
    s.addShape(pres.ShapeType.rect, {
      x: 0.35, y, w: 0.06, h: 1.0,
      fill: { color: C.accent }, line: { color: C.accent },
    });
    s.addText(title, {
      x: 0.5, y: y + 0.06, w: 5.9, h: 0.3,
      fontSize: 10, bold: true, color: C.darktext, fontFace: "Calibri", margin: 0,
    });
    s.addText(body, {
      x: 0.5, y: y + 0.4, w: 5.9, h: 0.52,
      fontSize: 8.5, color: C.bodytext, fontFace: "Calibri", margin: 0,
    });
  });

  s.addShape(pres.ShapeType.rect, {
    x: 0.35, y: 6.78, w: 6.15, h: 0.38,
    fill: { color: C.greenok }, line: { color: C.greenok },
  });
  s.addText("✔  Carrying value of Trade Receivables & Advances and related provisions are reasonable; disclosures are adequate.", {
    x: 0.45, y: 6.78, w: 5.95, h: 0.38,
    fontSize: 8.5, bold: true, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
  });

  // KAM 4 right
  s.addShape(pres.ShapeType.rect, {
    x: 6.8, y: 0.92, w: 6.15, h: 0.4,
    fill: { color: C.midblue }, line: { color: C.midblue },
  });
  s.addText("KAM 4 — CAPITALISATION OF PP&E  |  Ind AS 16", {
    x: 6.9, y: 0.92, w: 5.95, h: 0.4,
    fontSize: 9.5, bold: true, color: C.accent,
    fontFace: "Calibri", valign: "middle", margin: 0, charSpacing: 0.5,
  });

  const ppe = [
    "The Company capitalises expenditures that satisfy the criteria under Ind AS 16 — future economic benefits and reliable cost measurement",
    "Significant judgment is required to distinguish capital expenditure from revenue expenditure, particularly for repairs, overhauls, and improvements",
    "Incorrect classification could result in material over/understatement of assets and profit or loss",
    "Our procedures included evaluating capitalisation policies, testing samples of additions, and assessing whether components are separately identifiable",
    "We assessed the useful lives and residual values assigned to assets and compared with industry norms and historical asset turnover",
    "We reviewed the treatment of major repair and maintenance expenditure and assessed compliance with Ind AS 16 component accounting requirements",
  ];

  ppe.forEach((pt, i) => {
    const y = 1.4 + i * 0.9;
    s.addShape(pres.ShapeType.rect, {
      x: 6.8, y, w: 6.15, h: 0.82,
      fill: { color: i % 2 === 0 ? C.white : C.lightgrey },
      line: { color: C.lightgrey, pt: 0.5 },
    });
    s.addShape(pres.ShapeType.rect, {
      x: 6.8, y, w: 0.06, h: 0.82,
      fill: { color: C.accent }, line: { color: C.accent },
    });
    s.addText(pt, {
      x: 6.95, y: y + 0.05, w: 5.9, h: 0.72,
      fontSize: 9, color: C.bodytext, fontFace: "Calibri", margin: 2,
    });
  });

  s.addShape(pres.ShapeType.rect, {
    x: 6.8, y: 6.78, w: 6.15, h: 0.38,
    fill: { color: C.greenok }, line: { color: C.greenok },
  });
  s.addText("✔  Capitalisation policies have been applied consistently; PP&E additions are appropriately supported and classified.", {
    x: 6.9, y: 6.78, w: 5.95, h: 0.38,
    fontSize: 8.5, bold: true, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
  });
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 16 – SECTION DIVIDER: AUDIT PROCEDURES                            ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  addSectionDivider(s, "06", "Audit Procedures Performed", "Summary of controls testing and substantive audit work");
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 17 – AUDIT PROCEDURES CONTENT                                     ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 13.3, h: 7.5,
    fill: { color: C.offwhite }, line: { color: C.offwhite },
  });
  addSlideHeader(s, "Audit Procedures Performed", "Section 06");

  const categories = [
    {
      title: "Risk Assessment Procedures",
      icon: "RA",
      color: C.navy,
      items: ["Understanding of entity, environment, and accounting policies", "Analytical procedures on financial data trends", "Inquiry of management and those charged with governance", "Observation of key processes and internal control mechanisms"],
    },
    {
      title: "Tests of Controls (IFCoFR)",
      icon: "TC",
      color: C.midblue,
      items: ["Walkthroughs of significant financial reporting processes", "Design and implementation assessment of key controls", "Operating effectiveness testing via sampling", "IT General Controls (ITGC) evaluation for financial systems"],
    },
    {
      title: "Substantive Testing",
      icon: "ST",
      color: C.navy,
      items: ["Substantive analytical procedures for key account balances", "Test of details — sampling from revenue, expenses, assets, liabilities", "Directional testing to address specific identified risks", "Third-party confirmations (banks, trade receivables, legal counsel)"],
    },
    {
      title: "Completion Procedures",
      icon: "CP",
      color: C.midblue,
      items: ["Subsequent events review through audit report date", "Going concern assessment and management's basis of preparation", "Representation letter obtained from management", "Review of draft financial statements for consistency and completeness"],
    },
  ];

  categories.forEach((cat, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    const x = col === 0 ? 0.35 : 7.0;
    const y = 0.97 + row * 3.18;
    const w = 5.95;
    const h = 3.0;

    s.addShape(pres.ShapeType.rect, {
      x, y, w, h,
      fill: { color: C.white }, line: { color: C.lightgrey, pt: 1 },
      shadow: { type: "outer", blur: 5, offset: 2, angle: 45, color: "BBBBBB", opacity: 0.2 },
    });
    s.addShape(pres.ShapeType.rect, {
      x, y, w, h: 0.55,
      fill: { color: cat.color }, line: { color: cat.color },
    });
    s.addShape(pres.ShapeType.rect, {
      x: x + 0.12, y: y + 0.1, w: 0.6, h: 0.35,
      fill: { color: C.accent }, line: { color: C.accent },
    });
    s.addText(cat.icon, {
      x: x + 0.12, y: y + 0.1, w: 0.6, h: 0.35,
      fontSize: 8, bold: true, color: C.navy,
      fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
    });
    s.addText(cat.title, {
      x: x + 0.82, y, w: w - 0.9, h: 0.55,
      fontSize: 11, bold: true, color: C.white,
      fontFace: "Calibri", valign: "middle", margin: 0,
    });
    cat.items.forEach((item, j) => {
      s.addText([
        { text: "✓  ", options: { color: cat.color === C.navy ? C.accent : C.accent, bold: true } },
        { text: item, options: { color: C.bodytext } },
      ], {
        x: x + 0.15, y: y + 0.65 + j * 0.57,
        w: w - 0.3, h: 0.5,
        fontSize: 9.5, fontFace: "Calibri", margin: 0,
      });
    });
  });
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 18 – SECTION DIVIDER: INDEPENDENCE & ETHICS                       ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  addSectionDivider(s, "07", "Independence & Ethics Confirmations", "Confirming our compliance with applicable independence and ethical requirements");
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 19 – INDEPENDENCE CONTENT                                         ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 13.3, h: 7.5,
    fill: { color: C.offwhite }, line: { color: C.offwhite },
  });
  addSlideHeader(s, "Independence & Ethics Confirmations", "Section 07");

  // Confirmation header
  s.addShape(pres.ShapeType.rect, {
    x: 0.35, y: 0.95, w: 12.6, h: 0.8,
    fill: { color: C.greenok }, line: { color: C.greenok },
  });
  s.addText(
    "ABC LLP confirms that it is independent of XYZ Limited in accordance with the Code of Ethics issued by the ICAI and the requirements of applicable laws and regulations.",
    {
      x: 0.55, y: 0.95, w: 12.2, h: 0.8,
      fontSize: 11, bold: true, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
    }
  );

  const indItems = [
    {
      title: "Financial Independence",
      body: "We confirm that neither the firm nor any of its partners or staff hold any financial interest in XYZ Limited or its affiliates that could impair independence.",
      icon: "FI",
    },
    {
      title: "Business Relationships",
      body: "We confirm there are no business relationships between ABC LLP and XYZ Limited or its directors/key management personnel that would create a threat to independence.",
      icon: "BR",
    },
    {
      title: "Non-Audit Services",
      body: "Any non-audit services provided have been assessed to ensure they do not create self-review, advocacy, or other threats to independence under ICAI and Companies Act requirements.",
      icon: "NA",
    },
    {
      title: "Rotation & Tenure",
      body: "The engagement partner rotation and audit firm tenure comply with the requirements of Section 139 of the Companies Act, 2013, and applicable ICAI guidelines.",
      icon: "RT",
    },
    {
      title: "Professional Scepticism",
      body: "Throughout the audit, we have maintained professional scepticism — questioning and critically assessing audit evidence without accepting management representations uncritically.",
      icon: "PS",
    },
    {
      title: "ICAI Code of Ethics",
      body: "We have complied with the ICAI Code of Ethics (2020 edition), including requirements relating to integrity, objectivity, confidentiality, and professional behaviour.",
      icon: "CE",
    },
  ];

  indItems.forEach((item, i) => {
    const col = i % 3;
    const row = Math.floor(i / 3);
    const x = 0.35 + col * 4.3;
    const y = 2.0 + row * 2.42;
    const w = 4.1;
    const h = 2.2;

    s.addShape(pres.ShapeType.rect, {
      x, y, w, h,
      fill: { color: C.white }, line: { color: C.lightgrey, pt: 1 },
      shadow: { type: "outer", blur: 4, offset: 1, angle: 45, color: "CCCCCC", opacity: 0.2 },
    });
    // top accent
    s.addShape(pres.ShapeType.rect, {
      x, y, w, h: 0.08,
      fill: { color: C.accent }, line: { color: C.accent },
    });
    s.addShape(pres.ShapeType.ellipse, {
      x: x + w / 2 - 0.35, y: y + 0.15, w: 0.7, h: 0.7,
      fill: { color: C.navy }, line: { color: C.navy },
    });
    s.addText(item.icon, {
      x: x + w / 2 - 0.35, y: y + 0.15, w: 0.7, h: 0.7,
      fontSize: 10, bold: true, color: C.accent,
      fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
    });
    s.addText(item.title, {
      x: x + 0.1, y: y + 0.95, w: w - 0.2, h: 0.4,
      fontSize: 11, bold: true, color: C.darktext,
      fontFace: "Calibri", align: "center", margin: 0,
    });
    s.addText(item.body, {
      x: x + 0.1, y: y + 1.38, w: w - 0.2, h: 0.75,
      fontSize: 8.5, color: C.bodytext,
      fontFace: "Calibri", align: "center", margin: 0,
    });
  });
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 20 – SECTION DIVIDER: OPINION                                     ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  addSectionDivider(s, "08", "Opinion & Conclusion", "Audit report summary and key conclusions for FY 2025-26");
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 21 – OPINION CONTENT                                              ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 13.3, h: 7.5,
    fill: { color: C.offwhite }, line: { color: C.offwhite },
  });
  addSlideHeader(s, "Opinion & Conclusion of Audit Report", "Section 08");

  // Opinion badge - large central
  s.addShape(pres.ShapeType.rect, {
    x: 0.35, y: 0.92, w: 12.6, h: 1.05,
    fill: { color: C.greenok }, line: { color: C.greenok },
  });
  s.addShape(pres.ShapeType.ellipse, {
    x: 0.55, y: 0.98, w: 0.9, h: 0.9,
    fill: { color: C.white }, line: { color: C.white },
  });
  s.addText("✔", {
    x: 0.55, y: 0.98, w: 0.9, h: 0.9,
    fontSize: 22, color: C.greenok,
    fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
  });
  s.addText("UNMODIFIED AUDIT REPORT", {
    x: 1.55, y: 0.92, w: 5, h: 0.52,
    fontSize: 18, bold: true, color: C.white,
    fontFace: "Calibri", valign: "middle", margin: 0, charSpacing: 2,
  });
  s.addText("No qualification | No emphasis of matter | No other matter paragraph", {
    x: 1.55, y: 1.44, w: 7, h: 0.4,
    fontSize: 11, color: "D5F5E3",
    fontFace: "Calibri", valign: "middle", margin: 0,
  });
  s.addText("FY 2025-26", {
    x: 11.0, y: 0.98, w: 1.8, h: 0.9,
    fontSize: 11, bold: true, color: C.white,
    fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
  });

  // Four opinion areas
  const opinions = [
    {
      title: "Standalone Financial Statements",
      lines: [
        "In our opinion, the standalone financial statements give a true and fair view of the state of affairs of XYZ Limited as at March 31, 2026, and its profit, other comprehensive income, changes in equity, and cash flows for the year, in conformity with Ind AS and the Companies Act, 2013.",
      ],
      color: C.navy,
    },
    {
      title: "Consolidated Financial Statements",
      lines: [
        "In our opinion, the consolidated financial statements give a true and fair view of the state of affairs of the Group as at March 31, 2026, and the Group's profit, other comprehensive income, changes in equity, and cash flows for the year, in conformity with Ind AS and the Companies Act, 2013.",
      ],
      color: C.midblue,
    },
    {
      title: "Internal Financial Controls (IFCoFR)",
      lines: [
        "In our opinion, the Company has, in all material respects, adequate internal financial controls with reference to financial reporting and such controls were operating effectively as at March 31, 2026.",
      ],
      color: C.navy,
    },
    {
      title: "SEBI Regulation 33 — Financial Results",
      lines: [
        "Audit report on annual financial results and limited review on quarterly results for both standalone and consolidated have been completed. Reports are unmodified.",
      ],
      color: C.midblue,
    },
  ];

  opinions.forEach((op, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    const x = col === 0 ? 0.35 : 7.0;
    const y = 2.15 + row * 2.22;
    const w = 5.95;
    const h = 2.08;

    s.addShape(pres.ShapeType.rect, {
      x, y, w, h,
      fill: { color: C.white }, line: { color: C.lightgrey, pt: 1 },
      shadow: { type: "outer", blur: 4, offset: 1, angle: 45, color: "CCCCCC", opacity: 0.2 },
    });
    s.addShape(pres.ShapeType.rect, {
      x, y, w, h: 0.42,
      fill: { color: op.color }, line: { color: op.color },
    });
    // Check badge
    s.addShape(pres.ShapeType.ellipse, {
      x: x + 0.1, y: y + 0.06, w: 0.3, h: 0.3,
      fill: { color: C.greenok }, line: { color: C.greenok },
    });
    s.addText("✔", {
      x: x + 0.1, y: y + 0.06, w: 0.3, h: 0.3,
      fontSize: 9, bold: true, color: C.white,
      fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
    });
    s.addText(op.title, {
      x: x + 0.5, y, w: w - 0.6, h: 0.42,
      fontSize: 10.5, bold: true, color: C.white,
      fontFace: "Calibri", valign: "middle", margin: 0,
    });
    s.addText(op.lines[0], {
      x: x + 0.15, y: y + 0.5, w: w - 0.3, h: 1.5,
      fontSize: 9.5, color: C.bodytext, fontFace: "Calibri", margin: 0,
    });
  });

  // Final note
  s.addShape(pres.ShapeType.rect, {
    x: 0.35, y: 6.72, w: 12.6, h: 0.42,
    fill: { color: C.lightgrey }, line: { color: C.lightgrey },
  });
  s.addText(
    "This presentation is not intended to be exhaustive. It highlights the most significant matters for the attention of Those Charged with Governance (TCWG). " +
    "Please contact ABC LLP for any queries or additional information.",
    {
      x: 0.5, y: 6.72, w: 12.3, h: 0.42,
      fontSize: 8.5, color: C.bodytext, fontFace: "Calibri", valign: "middle", margin: 0,
    }
  );
}

// ╔══════════════════════════════════════════════════════════════════════════╗
// ║  SLIDE 22 – CLOSING / THANK YOU                                          ║
// ╚══════════════════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 13.3, h: 7.5,
    fill: { color: C.navy }, line: { color: C.navy },
  });
  // Decorative shapes
  s.addShape(pres.ShapeType.rtTriangle, {
    x: 9.0, y: 0, w: 4.3, h: 3.2,
    fill: { color: C.midblue }, line: { color: C.midblue },
  });
  s.addShape(pres.ShapeType.rtTriangle, {
    x: 10.5, y: 0, w: 2.8, h: 2.0,
    fill: { color: C.accent }, line: { color: C.accent },
  });
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 0.22, h: 7.5,
    fill: { color: C.accent }, line: { color: C.accent },
  });
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 6.8, w: 13.3, h: 0.7,
    fill: { color: C.accent }, line: { color: C.accent },
  });

  s.addText("Thank You", {
    x: 0.5, y: 1.5, w: 9, h: 1.6,
    fontSize: 58, bold: true, color: C.white,
    fontFace: "Calibri", margin: 0,
  });
  s.addShape(pres.ShapeType.rect, {
    x: 0.5, y: 3.2, w: 3, h: 0.06,
    fill: { color: C.accent }, line: { color: C.accent },
  });
  s.addText("For queries, please contact:", {
    x: 0.5, y: 3.38, w: 8, h: 0.5,
    fontSize: 14, color: C.medgrey, fontFace: "Calibri", margin: 0,
  });
  s.addText("ABC LLP  |  Chartered Accountants", {
    x: 0.5, y: 3.95, w: 8, h: 0.55,
    fontSize: 16, bold: true, color: C.accentlt, fontFace: "Calibri", margin: 0,
  });
  s.addText("Statutory Auditors of XYZ Limited", {
    x: 0.5, y: 4.55, w: 8, h: 0.42,
    fontSize: 13, color: C.white, fontFace: "Calibri", margin: 0,
  });
  s.addText("ICAI Registration No: [_______]  |  UDIN: [_______]", {
    x: 0.5, y: 5.1, w: 8, h: 0.4,
    fontSize: 11, color: C.medgrey, fontFace: "Calibri", margin: 0,
  });
  s.addText("STRICTLY CONFIDENTIAL — FOR THOSE CHARGED WITH GOVERNANCE ONLY", {
    x: 0, y: 6.8, w: 13.3, h: 0.7,
    fontSize: 11, bold: true, color: C.navy,
    fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
  });
}

// ── OUTPUT ──────────────────────────────────────────────────────────────────
const outPath = "/home/daytona/workspace/audit-ppt/ABC_LLP_Statutory_Auditors_FY2025-26.pptx";
pres.writeFile({ fileName: outPath }).then(() => {
  console.log("✅ Presentation saved:", outPath);
}).catch(err => {
  console.error("❌ Error:", err);
  process.exit(1);
});
Running Command

cd /home/daytona/workspace/audit-ppt && node create_presentation.js 2>&1

You've run out of free credits. Sign up for a free account to continue using Orris.
This is a shared conversation. Sign in to Orris to start your own chat.