C

It looks like your message got cut off! Could you share what you'd like help with? ๐Ÿ˜Š

Can u elaborate on upadacitinib and difference and advantages between tofacitinib

Reading File
Searching PubMed

upadacitinib tofacitinib comparison rheumatoid arthritis

Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Loading Image
Loading Image
I now have everything needed for a thorough comparison. Here is the full answer:

Upadacitinib vs Tofacitinib: A Detailed Comparison

Both drugs belong to the JAK inhibitor (JAKi) class - oral small molecules that block intracellular JAK-STAT signaling downstream of cytokine receptors, thereby suppressing inflammation. The key difference starts at the receptor level.

Mechanism of Action - The JAK Selectivity Story

Tofacitinib (Xeljanz) - JAK1 + JAK3 inhibitor (pan-JAK, relatively non-selective) Upadacitinib (Rinvoq) - Highly selective JAK1 inhibitor
Tofacitinib blocks JAK-STAT signaling in T cells, interrupting cytokine-driven cell cycle activation
Mechanism of action of tofacitinib - Lippincott Illustrated Reviews: Pharmacology
The JAK family has 4 members: JAK1, JAK2, JAK3, and TYK2. Each cytokine receptor pairs two specific JAKs. Key implications of selectivity:
JAK isoformWhat it signalsEffect of blocking
JAK1IL-6, IL-10, IL-11, IFN-ฮณ, IL-2Anti-inflammatory
JAK2Erythropoietin, thrombopoietin, GM-CSFAnemia, thrombocytopenia if blocked
JAK3IL-2, IL-4, IL-7, IL-15, IL-21 (gamma chain cytokines)T/NK cell immunity
TYK2IL-12, IL-23Th17 pathway
Tofacitinib's JAK3 inhibition suppresses lymphocyte-driven immunity broadly, which accounts for some of its efficacy but also its side effect profile. Upadacitinib's selectivity for JAK1 preserves some JAK2-dependent hematopoiesis and reduces off-target effects in theory, though in practice both drugs share a common safety class effect.
  • Firestein & Kelley's Textbook of Rheumatology, 2-Volume Set, p. JAK Selectivity section

Approved Indications

IndicationTofacitinibUpadacitinib
Rheumatoid Arthritis (RA)Yes (5 mg BID or 11 mg XR OD)Yes (15 mg OD)
Psoriatic Arthritis (PsA)YesYes (15 mg OD)
Ankylosing Spondylitis / AxSpAYesYes
Ulcerative Colitis (UC)YesYes (45 mg induction, 30 mg maintenance)
Atopic DermatitisNoYes (15 mg or 30 mg OD, โ‰ฅ12 yrs)
Polyarticular JIAYesNo
Crohn's DiseaseNoYes
Upadacitinib has a broader label, particularly in dermatology (atopic dermatitis) and Crohn's disease, which tofacitinib does not have.

Efficacy Highlights

Rheumatoid Arthritis

Upadacitinib has shown particularly strong efficacy data:
  • In MTX-inadequate responders (MTX-IR), upadacitinib outperformed adalimumab (a TNF inhibitor) in achieving clinical remission - a notable benchmark since biologics were previously the gold standard
  • In a head-to-head trial vs abatacept (SELECT-CHOICE), upadacitinib showed greater reduction in DAS28-CRP and higher remission rates at 12 weeks
  • Rapid and meaningful improvement in PROs: pain, physical function, morning stiffness, and sleep all improved quickly
  • 15 mg once-daily proved superior to 30 mg in the benefit-risk analysis; only 15 mg approved for RA
Tofacitinib established efficacy across multiple pivotal trials (ORAL series) including MTX-IR and bDMARD-IR patients. However, in head-to-head data, upadacitinib generally shows numerically higher efficacy endpoints.
  • Rheumatology, 2-Volume Set (2022, Elsevier), p. 4310-4331

Network Meta-analysis Context (2024)

A 2024 network meta-analysis in Z Rheumatol showed upadacitinib among the JAK inhibitors with favorable remission rates relative to adalimumab, supporting its positioning as a high-efficacy agent.

Safety Profile: The Critical Differences

Both drugs share a class-wide black box warning (FDA) for:
  • Serious infections
  • Malignancy
  • Major adverse cardiovascular events (MACE)
  • Thrombosis / VTE
  • All-cause mortality

The ORAL Surveillance Trial (Tofacitinib-specific landmark data)

This was an FDA-mandated prospective randomized safety trial comparing tofacitinib vs TNF inhibitor (etanercept or adalimumab) in RA patients >50 years with โ‰ฅ1 cardiovascular risk factor.
ORAL Surveillance coprimary endpoints: MACE HR 1.33 (0.91-1.94) and adjudicated cancers HR 1.48 (1.04-2.09) with tofacitinib vs TNF inhibitor
ORAL Surveillance results - Firestein & Kelley's Textbook of Rheumatology
Key findings:
  • MACE: HR 1.33 (95% CI 0.91-1.94) - trend toward increased MACE with tofacitinib
  • Cancer (excl. NMSC): HR 1.48 (95% CI 1.04-2.09) - statistically significant increase
  • Did NOT meet noninferiority criteria vs TNF inhibitors
This trial had major regulatory consequences: the FDA extended the black box warning to the entire JAK inhibitor class, including upadacitinib and baricitinib, even though no equivalent safety endpoint trial has been conducted for upadacitinib in this high-risk population. This is an important nuance.
  • Firestein & Kelley's Textbook of Rheumatology, p. 9121-9133

Upadacitinib Safety Data (from integrated phase III analysis)

Rates per 100 patient-years at the approved 15 mg dose:
Adverse EventUpadacitinib 15 mg
Serious infections3.8
Herpes zoster3.7
Opportunistic infections0.6
Malignancies0.9
MACE0.6
VTE0.6
GI perforations0.2
CPK elevation6.1
Hepatic disorders14.4
Notable: Herpes zoster rates are higher with upadacitinib than with MTX or adalimumab - this is a known JAK1 class effect (JAK1 is involved in type I interferon signaling, which controls herpes reactivation). CPK elevations are common but usually asymptomatic.
  • Firestein & Kelley's Textbook of Rheumatology, p. 7392-7413

Comparison Table: Key Safety Differences

Safety IssueTofacitinibUpadacitinib
Long-term CV/cancer dataORAL Surveillance - formal data showing signalNo equivalent dedicated safety trial; class warning extrapolated
Anemia riskMore (JAK2 off-target effect)Less (more JAK1 selective)
ThrombocytopeniaMore (JAK2)Less
Herpes zosterElevated (class effect)Elevated (class effect, similar)
CPK elevationLess prominentMore common (6.1/100 pt-yrs)
HepatotoxicityLess prominentMore common (14.4/100 pt-yrs)
Drug interactionsCYP2C19/CYP3A4 dependentCYP3A4 dependent
Dose for VTE risk10 mg BID (higher) more concerning15 mg OD (data limited)

Dosing

DrugRA DoseNotes
Tofacitinib5 mg BID or 11 mg XR once dailyReduce to 5 mg OD if on potent CYP3A4 inhibitors or in renal/hepatic impairment
Upadacitinib15 mg once daily (RA, PsA, AxSpA)30 mg OD for UC/Crohn's induction (not approved for RA at 30 mg due to safety); 15 or 30 mg for atopic dermatitis
Upadacitinib's once-daily dosing is a practical convenience advantage over tofacitinib's twice-daily immediate-release formulation (though tofacitinib also has an XR form).

Summary: Key Advantages of Upadacitinib Over Tofacitinib

  1. Greater JAK1 selectivity - theoretically reduces JAK2-mediated hematopoietic side effects (anemia, thrombocytopenia)
  2. Higher efficacy in head-to-head and comparative data - outperformed adalimumab in MTX-IR RA; outperformed abatacept in SELECT-CHOICE
  3. Broader approved indications - covers atopic dermatitis and Crohn's disease, which tofacitinib does not
  4. Once-daily dosing (vs tofacitinib IR BID)
  5. No dedicated ORAL Surveillance-type trial showing increased MACE/cancer vs TNF inhibitors - though the black box warning is applied as a class effect anyway

When Tofacitinib May Still Be Preferred

  • JIA (polyarticular course) - tofacitinib is FDA-approved; upadacitinib is not
  • Cost/formulary access - tofacitinib is older and increasingly generic
  • Longer post-marketing safety experience - more real-world data available

Clinical note: Both drugs carry the same class black box warning per FDA guidance since 2022, so clinically the risk counseling is identical regardless of which agent is chosen. The choice is often driven by indication, formulary, and individual patient factors (comorbidities, prior treatment history).
Recent evidence update (2026): A Cochrane network meta-analysis (July 2026, PMID 42440279) in patients failing biologic/targeted synthetic DMARDs is the most current high-level evidence comparing agents in this class - worth reviewing for the latest positioning of both agents in the treatment algorithm.

Can u make presentation on upadacitinib

Asking for Preferences
Reading File
Reading File
Reading File
Running Command

mkdir -p /home/daytona/workspace/upadacitinib-pptx && ls /home/daytona/workspace/

Writing File

~/upadacitinib-pptx/upadacitinib.js

const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Upadacitinib: A Comprehensive Clinical Review";

// โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
// COLOUR PALETTE
// Primary dark: 0D2137 (deep navy)
// Accent teal:  00B4D8
// Mid teal:     0077B6
// Light bg:     EAF6FB
// White:        FFFFFF
// Text dark:    1A1A2E
// Subtitle grey: 6C8EAD
// Warning red:  C0392B
// Green:        1A8B5A
// โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

const C = {
  navy:    "0D2137",
  teal:    "00B4D8",
  midTeal: "0077B6",
  lightBg: "EAF6FB",
  white:   "FFFFFF",
  dark:    "1A1A2E",
  grey:    "6C8EAD",
  red:     "C0392B",
  green:   "1A8B5A",
  amber:   "E67E22",
  card:    "F0F8FF",
};

// Helper: dark title slide background
function darkBg(slide) {
  slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.navy }, line: { color: C.navy } });
}

// Helper: light slide background
function lightBg(slide) {
  slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.lightBg }, line: { color: C.lightBg } });
}

// Helper: accent bar at top
function accentBar(slide, color) {
  slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 0.18, fill: { color: color || C.teal }, line: { color: color || C.teal } });
}

// Helper: left sidebar strip
function leftStrip(slide, color) {
  slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.12, h: 5.625, fill: { color: color || C.teal }, line: { color: color || C.teal } });
}

// Helper: slide title
function slideTitle(slide, title, y) {
  slide.addText(title, {
    x: 0.3, y: y || 0.22, w: 9.4, h: 0.55,
    fontSize: 22, bold: true, color: C.navy, fontFace: "Calibri",
    margin: 0
  });
  // underline accent
  slide.addShape(pres.shapes.RECTANGLE, { x: 0.3, y: (y || 0.22) + 0.58, w: 1.2, h: 0.055, fill: { color: C.teal }, line: { color: C.teal } });
}

// Helper: card (rounded rect with shadow)
function card(slide, x, y, w, h, fillColor) {
  slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
    x, y, w, h,
    fill: { color: fillColor || C.white },
    line: { color: "D0E8F5", width: 0.75 },
    rectRadius: 0.08,
    shadow: { type: "outer", color: "000000", blur: 5, offset: 2, angle: 135, opacity: 0.10 }
  });
}

// Helper: badge (colored pill)
function badge(slide, label, x, y, w, color) {
  slide.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y, w, h: 0.3, fill: { color: color || C.teal }, line: { color: color || C.teal }, rectRadius: 0.15 });
  slide.addText(label, { x, y, w, h: 0.3, fontSize: 9.5, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 1 โ€” TITLE
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  const s = pres.addSlide();
  darkBg(s);

  // Large teal geometric accent strip top-right
  s.addShape(pres.shapes.RECTANGLE, { x: 6.5, y: 0, w: 3.5, h: 5.625, fill: { color: C.midTeal }, line: { color: C.midTeal } });
  s.addShape(pres.shapes.RECTANGLE, { x: 6.5, y: 0, w: 3.5, h: 5.625, fill: { color: "006494" }, line: { color: "006494" } });

  // White diagonal slash decoration
  s.addShape(pres.shapes.RECTANGLE, { x: 5.8, y: 0, w: 0.9, h: 5.625, fill: { color: C.teal }, line: { color: C.teal } });

  // Drug brand chip
  s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 0.55, y: 0.5, w: 2.2, h: 0.38, fill: { color: C.teal }, line: { color: C.teal }, rectRadius: 0.18 });
  s.addText("RINVOQยฎ (ABT-494)", { x: 0.55, y: 0.5, w: 2.2, h: 0.38, fontSize: 9, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });

  // Main title
  s.addText("Upadacitinib", { x: 0.5, y: 1.1, w: 5.8, h: 1.2, fontSize: 52, bold: true, color: C.white, fontFace: "Calibri", margin: 0 });
  s.addText("A Comprehensive Clinical Review", { x: 0.5, y: 2.4, w: 5.5, h: 0.6, fontSize: 20, color: C.teal, fontFace: "Calibri", margin: 0 });

  // Subtitle line
  s.addShape(pres.shapes.RECTANGLE, { x: 0.5, y: 3.1, w: 4.5, h: 0.05, fill: { color: "4DB5CF" }, line: { color: "4DB5CF" } });

  s.addText("Selective JAK1 Inhibitor  |  Targeted Synthetic DMARD", { x: 0.5, y: 3.25, w: 5.5, h: 0.4, fontSize: 13, color: "A8D8EA", fontFace: "Calibri", margin: 0 });
  s.addText("For Clinicians & Specialists", { x: 0.5, y: 3.75, w: 5.5, h: 0.35, fontSize: 11, color: C.grey, fontFace: "Calibri", margin: 0 });

  // Right panel text
  s.addText([
    { text: "AbbVie / AstraZeneca", options: { breakLine: true, bold: true } },
    { text: "FDA Approved: 2019", options: { breakLine: true } },
    { text: "EMA Approved: 2019", options: { breakLine: true } },
    { text: "Oral ยท Once Daily", options: {} }
  ], { x: 7.0, y: 2.2, w: 2.7, h: 1.8, fontSize: 11, color: C.white, fontFace: "Calibri", align: "center", valign: "middle" });

  // Bottom credits
  s.addText("Based on Firestein & Kelley's Textbook of Rheumatology (2024) | Rheumatology 2-Vol Set (2022)", { x: 0.5, y: 5.2, w: 9, h: 0.3, fontSize: 8, color: "4D7A9E", fontFace: "Calibri", align: "left", margin: 0 });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 2 โ€” TABLE OF CONTENTS
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  const s = pres.addSlide();
  lightBg(s);
  accentBar(s);
  leftStrip(s);

  slideTitle(s, "Contents at a Glance");

  const topics = [
    ["01", "Drug Overview & Background", C.teal],
    ["02", "JAK-STAT Signalling Pathway", C.midTeal],
    ["03", "Mechanism of Action", C.midTeal],
    ["04", "Approved Indications", C.teal],
    ["05", "Rheumatoid Arthritis โ€“ Efficacy", C.midTeal],
    ["06", "Other Inflammatory Diseases", C.teal],
    ["07", "Dosing & Administration", C.midTeal],
    ["08", "Safety Profile โ€“ Overview", C.teal],
    ["09", "ORAL Surveillance & Class Warnings", C.red],
    ["10", "Drug Interactions & Special Populations", C.amber],
    ["11", "Upadacitinib vs Tofacitinib", C.midTeal],
    ["12", "Upadacitinib vs Biologics", C.teal],
    ["13", "Patient Selection", C.midTeal],
    ["14", "Monitoring & Follow-up", C.teal],
    ["15", "Key Trials Summary", C.midTeal],
    ["16", "Regulatory Notes & Black Box Warning", C.red],
    ["17", "Clinical Pearls", C.green],
    ["18", "References & Summary", C.navy],
  ];

  // 2-column layout
  const col1 = topics.slice(0, 9);
  const col2 = topics.slice(9);

  col1.forEach((t, i) => {
    const y = 1.05 + i * 0.48;
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 0.28, y: y - 0.01, w: 0.38, h: 0.3, fill: { color: t[2] }, line: { color: t[2] }, rectRadius: 0.05 });
    s.addText(t[0], { x: 0.28, y: y - 0.01, w: 0.38, h: 0.3, fontSize: 9, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });
    s.addText(t[1], { x: 0.75, y: y, w: 4.0, h: 0.26, fontSize: 10.5, color: C.dark, fontFace: "Calibri", margin: 0 });
  });

  col2.forEach((t, i) => {
    const y = 1.05 + i * 0.48;
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 5.2, y: y - 0.01, w: 0.38, h: 0.3, fill: { color: t[2] }, line: { color: t[2] }, rectRadius: 0.05 });
    s.addText(t[0], { x: 5.2, y: y - 0.01, w: 0.38, h: 0.3, fontSize: 9, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });
    s.addText(t[1], { x: 5.65, y: y, w: 4.0, h: 0.26, fontSize: 10.5, color: C.dark, fontFace: "Calibri", margin: 0 });
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 3 โ€” DRUG OVERVIEW
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  const s = pres.addSlide();
  lightBg(s);
  accentBar(s);
  leftStrip(s);
  slideTitle(s, "Drug Overview & Background");

  // Large card
  card(s, 0.28, 0.98, 9.44, 4.3, C.white);

  const rows = [
    ["Generic Name", "Upadacitinib"],
    ["Brand Name", "Rinvoqยฎ"],
    ["Former Code", "ABT-494"],
    ["Drug Class", "Janus Kinase (JAK) Inhibitor โ€” Targeted Synthetic DMARD (tsDMARD)"],
    ["Selectivity", "Selective JAK1 inhibitor (>70x selectivity for JAK1 over JAK2 and JAK3)"],
    ["Developer", "AbbVie / AstraZeneca"],
    ["Route", "Oral (extended-release tablet)"],
    ["FDA Approval", "August 2019 (RA); expanded to PsA, AxSpA, AD, UC, Crohn's"],
    ["EMA Approval", "2019 (RA); subsequent expansions"],
    ["Molecular Weight", "380.84 g/mol"],
    ["Half-Life", "~9โ€“14 hours"],
  ];

  rows.forEach((r, i) => {
    const y = 1.08 + i * 0.36;
    const bg = i % 2 === 0 ? "F4FAFD" : C.white;
    s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y, w: 9.4, h: 0.34, fill: { color: bg }, line: { color: bg } });
    s.addText(r[0], { x: 0.42, y, w: 2.3, h: 0.34, fontSize: 10, bold: true, color: C.midTeal, fontFace: "Calibri", valign: "middle", margin: 0 });
    s.addText(r[1], { x: 2.8, y, w: 6.8, h: 0.34, fontSize: 10, color: C.dark, fontFace: "Calibri", valign: "middle", margin: 0 });
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 4 โ€” JAK-STAT PATHWAY
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  const s = pres.addSlide();
  lightBg(s);
  accentBar(s);
  leftStrip(s);
  slideTitle(s, "JAK-STAT Signalling Pathway");

  // Pathway boxes
  const steps = [
    { label: "Cytokine\n(IL-6, IL-4, IFN-ฮณโ€ฆ)", x: 0.3, y: 1.1, color: C.teal },
    { label: "Cell Surface\nReceptor", x: 2.1, y: 1.1, color: C.midTeal },
    { label: "JAK1/JAK2\nor JAK1/JAK3\n(dimerisation)", x: 3.9, y: 1.1, color: C.navy },
    { label: "STAT\nPhosphorylation", x: 5.9, y: 1.1, color: C.midTeal },
    { label: "Gene\nTranscription", x: 7.8, y: 1.1, color: C.teal },
  ];

  steps.forEach((st, i) => {
    card(s, st.x, st.y, 1.65, 0.9, st.color);
    s.addText(st.label, { x: st.x, y: st.y, w: 1.65, h: 0.9, fontSize: 8.5, color: C.white, bold: true, align: "center", valign: "middle", fontFace: "Calibri", margin: 2 });
    if (i < steps.length - 1) {
      s.addShape(pres.shapes.RECTANGLE, { x: st.x + 1.65, y: st.y + 0.38, w: 0.28, h: 0.08, fill: { color: C.grey }, line: { color: C.grey } });
      // arrowhead
      s.addText("โ–ถ", { x: st.x + 1.82, y: st.y + 0.3, w: 0.18, h: 0.22, fontSize: 8, color: C.grey, fontFace: "Calibri", margin: 0 });
    }
  });

  // Inhibition arrow for upadacitinib
  s.addShape(pres.shapes.RECTANGLE, { x: 4.05, y: 2.25, w: 0.06, h: 0.5, fill: { color: C.red }, line: { color: C.red } });
  s.addShape(pres.shapes.RECTANGLE, { x: 3.85, y: 2.25, w: 0.46, h: 0.06, fill: { color: C.red }, line: { color: C.red } });
  badge(s, "Upadacitinib blocks here (JAK1)", 3.4, 2.8, 2.6, C.red);

  // JAK isoform table
  s.addText("JAK Isoforms & Cytokines Signalled", { x: 0.28, y: 3.35, w: 9.4, h: 0.32, fontSize: 12, bold: true, color: C.navy, fontFace: "Calibri", margin: 0 });

  const jakRows = [
    ["JAK1", "IL-6, IL-10, IL-11, IFN-ฮณ, IL-2", "Anti-inflammatory target", C.teal],
    ["JAK2", "EPO, TPO, GM-CSF", "Hematopoiesis โ€” off-target anemia risk", C.amber],
    ["JAK3", "IL-2, IL-4, IL-7, IL-15, IL-21 (ฮณ-chain)", "T/NK cell immunity", C.midTeal],
    ["TYK2", "IL-12, IL-23", "Th17 pathway", C.grey],
  ];

  jakRows.forEach((r, i) => {
    const y = 3.75 + i * 0.37;
    s.addShape(pres.shapes.RECTANGLE, { x: 0.28, y, w: 9.44, h: 0.34, fill: { color: i % 2 === 0 ? "F4FAFD" : C.white }, line: { color: "D0E8F5", width: 0.5 } });
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 0.32, y: y + 0.04, w: 0.7, h: 0.25, fill: { color: r[3] }, line: { color: r[3] }, rectRadius: 0.04 });
    s.addText(r[0], { x: 0.32, y: y + 0.04, w: 0.7, h: 0.25, fontSize: 8.5, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });
    s.addText(r[1], { x: 1.1, y, w: 4.1, h: 0.34, fontSize: 9, color: C.dark, valign: "middle", fontFace: "Calibri", margin: 0 });
    s.addText(r[2], { x: 5.3, y, w: 4.3, h: 0.34, fontSize: 9, color: C.grey, italic: true, valign: "middle", fontFace: "Calibri", margin: 0 });
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 5 โ€” MECHANISM OF ACTION
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  const s = pres.addSlide();
  lightBg(s);
  accentBar(s);
  leftStrip(s);
  slideTitle(s, "Mechanism of Action");

  // Left: MOA description
  card(s, 0.28, 0.98, 4.5, 4.3, C.white);
  s.addText("How Upadacitinib Works", { x: 0.4, y: 1.05, w: 4.2, h: 0.38, fontSize: 13, bold: true, color: C.navy, fontFace: "Calibri", margin: 0 });

  const points = [
    "Binds reversibly to the ATP-binding site of JAK1 kinase domain",
    "Competitively inhibits ATP binding โ†’ prevents JAK1 auto-phosphorylation",
    "Blocks downstream STAT protein phosphorylation and nuclear translocation",
    "Suppresses transcription of pro-inflammatory cytokines (IL-6, IL-2, IFN-ฮณ, GM-CSF)",
    "Selectively spares JAK2 โ†’ less impact on erythropoiesis and thrombopoiesis vs less selective JAKi",
    "70x more selective for JAK1 over JAK2; also inhibits JAK3 to lesser extent",
  ];

  points.forEach((pt, i) => {
    s.addText([
      { text: `${i + 1}.  `, options: { bold: true, color: C.teal } },
      { text: pt, options: { color: C.dark } }
    ], { x: 0.38, y: 1.55 + i * 0.58, w: 4.3, h: 0.52, fontSize: 9.5, fontFace: "Calibri", valign: "top", margin: 0 });
  });

  // Right: selectivity comparison
  card(s, 5.0, 0.98, 4.72, 4.3, "F8FEFF");
  s.addText("Selectivity Profile", { x: 5.15, y: 1.05, w: 4.3, h: 0.38, fontSize: 13, bold: true, color: C.navy, fontFace: "Calibri", margin: 0 });

  const selData = [
    { jak: "JAK1", upa: 95, tofa: 60, bar: 55 },
    { jak: "JAK2", upa: 8, tofa: 40, bar: 80 },
    { jak: "JAK3", upa: 12, tofa: 75, bar: 15 },
    { jak: "TYK2", upa: 5, tofa: 20, bar: 10 },
  ];

  s.addText("Relative inhibition (schematic)", { x: 5.0, y: 1.45, w: 4.7, h: 0.25, fontSize: 8.5, italic: true, color: C.grey, fontFace: "Calibri", margin: 0 });

  const drugs = ["Upadacitinib", "Tofacitinib", "Baricitinib"];
  const dColors = [C.teal, C.navy, C.amber];

  drugs.forEach((d, i) => {
    badge(s, d, 5.15 + i * 1.52, 1.72, 1.42, dColors[i]);
  });

  selData.forEach((row, i) => {
    const y = 2.12 + i * 0.75;
    s.addText(row.jak, { x: 5.05, y, w: 0.65, h: 0.25, fontSize: 10, bold: true, color: C.navy, fontFace: "Calibri", margin: 0 });
    [row.upa, row.tofa, row.bar].forEach((val, j) => {
      const bw = val / 100 * 1.1;
      s.addShape(pres.shapes.RECTANGLE, { x: 5.75 + j * 1.52, y: y + 0.02, w: 1.1, h: 0.22, fill: { color: "E8F4F8" }, line: { color: "D0E8F5", width: 0.5 } });
      s.addShape(pres.shapes.RECTANGLE, { x: 5.75 + j * 1.52, y: y + 0.02, w: bw, h: 0.22, fill: { color: dColors[j] }, line: { color: dColors[j] } });
      s.addText(`${val}%`, { x: 5.75 + j * 1.52, y: y + 0.3, w: 1.1, h: 0.2, fontSize: 8, color: C.dark, align: "center", fontFace: "Calibri", margin: 0 });
    });
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 6 โ€” APPROVED INDICATIONS
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  const s = pres.addSlide();
  lightBg(s);
  accentBar(s);
  leftStrip(s);
  slideTitle(s, "Approved Indications");

  const indications = [
    { name: "Rheumatoid Arthritis (RA)", dose: "15 mg OD", year: "2019", note: "Moderate-to-severe active RA, MTX-IR or bDMARD-IR", color: C.teal },
    { name: "Psoriatic Arthritis (PsA)", dose: "15 mg OD", year: "2021", note: "Active PsA in adults, adequate response to โ‰ฅ1 csDMARD", color: C.midTeal },
    { name: "Ankylosing Spondylitis (AS)", dose: "15 mg OD", year: "2022", note: "Active AS, inadequate response to NSAIDs", color: C.navy },
    { name: "Non-rad AxSpA (nr-AxSpA)", dose: "15 mg OD", year: "2022", note: "Active nr-AxSpA with objective signs of inflammation", color: "#1565C0" },
    { name: "Atopic Dermatitis (AD)", dose: "15 or 30 mg OD", year: "2022", note: "Moderate-to-severe refractory AD โ‰ฅ12 years (FDA); โ‰ฅ18 yrs EMA", color: C.amber },
    { name: "Ulcerative Colitis (UC)", dose: "45 mg induction โ†’ 30 mg maint.", year: "2023", note: "Moderate-to-severe active UC, inadequate response to prior therapy", color: C.green },
    { name: "Crohn's Disease (CD)", dose: "45 mg induction โ†’ 30 mg maint.", year: "2023", note: "Moderate-to-severe active CD; FDA approved", color: "#6A0DAD" },
  ];

  indications.forEach((ind, i) => {
    const y = 1.05 + i * 0.63;
    card(s, 0.28, y, 9.44, 0.57, C.white);
    s.addShape(pres.shapes.RECTANGLE, { x: 0.28, y, w: 0.22, h: 0.57, fill: { color: ind.color }, line: { color: ind.color } });
    s.addText(ind.name, { x: 0.6, y: y + 0.04, w: 3.6, h: 0.28, fontSize: 11, bold: true, color: C.navy, fontFace: "Calibri", margin: 0 });
    s.addText(ind.note, { x: 0.6, y: y + 0.3, w: 5.2, h: 0.22, fontSize: 8.5, color: C.grey, fontFace: "Calibri", margin: 0 });
    badge(s, ind.dose, 6.1, y + 0.12, 1.7, ind.color);
    s.addText(`FDA ${ind.year}`, { x: 7.95, y: y + 0.15, w: 1.5, h: 0.25, fontSize: 9, color: C.grey, align: "right", fontFace: "Calibri", margin: 0 });
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 7 โ€” RA EFFICACY
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  const s = pres.addSlide();
  lightBg(s);
  accentBar(s);
  leftStrip(s);
  slideTitle(s, "Rheumatoid Arthritis โ€” Efficacy Data");

  // Trial cards
  const trials = [
    {
      name: "SELECT-COMPARE",
      population: "MTX-IR patients",
      comparator: "vs Adalimumab + MTX",
      result: "UPA statistically significantly superior to adalimumab in ACR50 and DAS28-CRP remission at Wk 12 & 26",
      highlight: "Superior to TNF inhibitor",
      color: C.teal,
    },
    {
      name: "SELECT-MONOTHERAPY",
      population: "MTX-IR patients",
      comparator: "UPA monotherapy vs MTX",
      result: "UPA 15 mg monotherapy superior to MTX for ACR20/50/70 at Wk 14; DAS28-CRP <3.2 significantly higher",
      highlight: "Effective as monotherapy",
      color: C.midTeal,
    },
    {
      name: "SELECT-NEXT",
      population: "csDMARD-IR",
      comparator: "UPA + csDMARD vs placebo",
      result: "Significantly higher ACR20 at Wk 12 (64% vs 36%); rapid onset within 1โ€“2 weeks",
      highlight: "Rapid onset",
      color: C.navy,
    },
    {
      name: "SELECT-CHOICE",
      population: "bDMARD-IR (failed biologics)",
      comparator: "vs Abatacept",
      result: "Higher DAS28-CRP reduction and more remission at Wk 12; but more AEs vs abatacept",
      highlight: "Superior to abatacept",
      color: "#1565C0",
    },
    {
      name: "SELECT-EARLY",
      population: "MTX-naรฏve patients",
      comparator: "UPA vs MTX",
      result: "UPA 15 mg: higher ACR20/50/70, less radiographic progression vs MTX alone",
      highlight: "MTX-naรฏve benefit",
      color: C.green,
    },
  ];

  trials.forEach((t, i) => {
    const row = Math.floor(i / 3);
    const col = i % 3;
    const x = 0.28 + col * 3.22;
    const y = 1.0 + row * 2.2;
    const w = 3.1;
    const h = 2.05;

    card(s, x, y, w, h, C.white);
    s.addShape(pres.shapes.RECTANGLE, { x, y, w, h: 0.28, fill: { color: t.color }, line: { color: t.color } });
    s.addText(t.name, { x, y, w, h: 0.28, fontSize: 9.5, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });
    s.addText(t.population, { x: x + 0.1, y: y + 0.32, w: w - 0.2, h: 0.22, fontSize: 8.5, bold: true, color: C.navy, fontFace: "Calibri", margin: 0 });
    s.addText(t.comparator, { x: x + 0.1, y: y + 0.52, w: w - 0.2, h: 0.2, fontSize: 8, color: C.grey, italic: true, fontFace: "Calibri", margin: 0 });
    s.addText(t.result, { x: x + 0.1, y: y + 0.75, w: w - 0.2, h: 0.85, fontSize: 8, color: C.dark, fontFace: "Calibri", margin: 0 });
    badge(s, t.highlight, x + 0.1, y + h - 0.38, w - 0.2, t.color);
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 8 โ€” OTHER INFLAMMATORY DISEASES
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  const s = pres.addSlide();
  lightBg(s);
  accentBar(s);
  leftStrip(s);
  slideTitle(s, "Efficacy in Other Inflammatory Diseases");

  const diseases = [
    {
      name: "Psoriatic Arthritis",
      trials: "SELECT-PsA 1 & 2",
      detail: "Both UPA 15 mg and 30 mg noninferior to adalimumab in biologic-naรฏve PsA patients (1704 pts). Significant improvements in joint counts, enthesitis, dactylitis, and skin PASI.",
      color: C.teal
    },
    {
      name: "Ankylosing Spondylitis / nr-AxSpA",
      trials: "SELECT-AXIS 1 & 2",
      detail: "Significantly higher ASAS40 response vs placebo at Wk 14. Effective in both bDMARD-naรฏve and TNFi-IR patients.",
      color: C.midTeal
    },
    {
      name: "Atopic Dermatitis",
      trials: "Measure Up 1 & 2, AD Up",
      detail: "65โ€“75% of patients achieving EASI-75 at Wk 16. Head-to-head vs dupilumab: UPA 30 mg showed superior EASI-75 and IGA response in some studies.",
      color: C.amber
    },
    {
      name: "Ulcerative Colitis",
      trials: "U-ACHIEVE, U-ACCOMPLISH",
      detail: "Induction: 45 mg for 8 weeks โ†’ remission. Maintenance: 30 mg. Higher clinical remission vs placebo. Used after failure of prior biologics.",
      color: C.green
    },
    {
      name: "Crohn's Disease",
      trials: "U-EXCEL, U-ENDURE",
      detail: "Clinical remission at Wk 12 induction significantly higher vs placebo. Maintenance with 30 mg sustained remission at 52 weeks.",
      color: "#6A0DAD"
    },
  ];

  diseases.forEach((d, i) => {
    const y = 1.02 + i * 0.9;
    card(s, 0.28, y, 9.44, 0.82, C.white);
    s.addShape(pres.shapes.RECTANGLE, { x: 0.28, y, w: 0.18, h: 0.82, fill: { color: d.color }, line: { color: d.color } });
    s.addText(d.name, { x: 0.58, y: y + 0.04, w: 2.5, h: 0.28, fontSize: 11, bold: true, color: C.navy, fontFace: "Calibri", margin: 0 });
    badge(s, d.trials, 3.15, y + 0.06, 1.7, d.color);
    s.addText(d.detail, { x: 0.58, y: y + 0.36, w: 9.0, h: 0.4, fontSize: 9, color: C.dark, fontFace: "Calibri", margin: 0 });
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 9 โ€” DOSING
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  const s = pres.addSlide();
  lightBg(s);
  accentBar(s);
  leftStrip(s);
  slideTitle(s, "Dosing & Administration");

  const dosing = [
    { indication: "RA / PsA / AS / nr-AxSpA", dose: "15 mg once daily", notes: "With or without MTX; monotherapy or combination" },
    { indication: "Atopic Dermatitis (โ‰ฅ12 yrs)", dose: "15 mg or 30 mg once daily", notes: "15 mg for adolescents 12โ€“17 yrs; 30 mg option for adults with severe disease" },
    { indication: "Ulcerative Colitis (induction)", dose: "45 mg once daily ร— 8 weeks", notes: "Then step down to maintenance" },
    { indication: "Ulcerative Colitis (maintenance)", dose: "30 mg once daily", notes: "If adequate response at induction end" },
    { indication: "Crohn's Disease (induction)", dose: "45 mg once daily ร— 12 weeks", notes: "" },
    { indication: "Crohn's Disease (maintenance)", dose: "30 mg once daily", notes: "FDA approved 2023" },
  ];

  s.addShape(pres.shapes.RECTANGLE, { x: 0.28, y: 0.98, w: 9.44, h: 0.34, fill: { color: C.navy }, line: { color: C.navy } });
  s.addText("Indication", { x: 0.35, y: 0.98, w: 3.5, h: 0.34, fontSize: 10, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });
  s.addText("Dose", { x: 3.9, y: 0.98, w: 2.5, h: 0.34, fontSize: 10, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });
  s.addText("Notes", { x: 6.45, y: 0.98, w: 3.1, h: 0.34, fontSize: 10, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });

  dosing.forEach((row, i) => {
    const y = 1.34 + i * 0.44;
    s.addShape(pres.shapes.RECTANGLE, { x: 0.28, y, w: 9.44, h: 0.42, fill: { color: i % 2 === 0 ? "F4FAFD" : C.white }, line: { color: "D0E8F5", width: 0.5 } });
    s.addText(row.indication, { x: 0.35, y, w: 3.5, h: 0.42, fontSize: 9.5, color: C.dark, bold: true, valign: "middle", fontFace: "Calibri", margin: 0 });
    s.addText(row.dose, { x: 3.9, y, w: 2.5, h: 0.42, fontSize: 9.5, color: C.teal, bold: true, valign: "middle", fontFace: "Calibri", margin: 0 });
    s.addText(row.notes, { x: 6.45, y, w: 3.1, h: 0.42, fontSize: 8.5, color: C.grey, valign: "middle", fontFace: "Calibri", margin: 0 });
  });

  // Administration notes
  card(s, 0.28, 4.05, 9.44, 1.22, "FFF8E8");
  s.addText("โš   Administration Notes", { x: 0.42, y: 4.1, w: 9.0, h: 0.28, fontSize: 11, bold: true, color: C.amber, fontFace: "Calibri", margin: 0 });
  const adminNotes = [
    "Swallow whole โ€” do NOT crush, split, or chew (extended-release formulation)",
    "Can be taken with or without food",
    "Store at room temperature 20โ€“25ยฐC",
    "Dose reduction may be required with potent CYP3A4 inhibitors (e.g. ketoconazole)",
    "Not recommended in severe hepatic impairment (Child-Pugh C)",
  ];
  adminNotes.forEach((n, i) => {
    s.addText(`โ€ข ${n}`, { x: 0.5, y: 4.38 + i * 0.17, w: 9.0, h: 0.16, fontSize: 8.5, color: C.dark, fontFace: "Calibri", margin: 0 });
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 10 โ€” SAFETY OVERVIEW
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  const s = pres.addSlide();
  lightBg(s);
  accentBar(s);
  leftStrip(s);
  slideTitle(s, "Safety Profile โ€” Overview");

  s.addText("Integrated safety from phase III RA trials (UPA 15 mg; 2630 patients, 4020 pt-yrs)", { x: 0.28, y: 0.9, w: 9.44, h: 0.25, fontSize: 9.5, italic: true, color: C.grey, fontFace: "Calibri", margin: 0 });

  const safetyData = [
    { event: "Upper Respiratory Tract Infection", rate: "Most common AE", severity: "low" },
    { event: "Serious Infections (SIEs)", rate: "3.8 / 100 pt-yrs", severity: "med" },
    { event: "Herpes Zoster", rate: "3.7 / 100 pt-yrs", severity: "med" },
    { event: "Opportunistic Infections", rate: "0.6 / 100 pt-yrs", severity: "high" },
    { event: "Active / Latent TB reactivation", rate: "2.2 / 100 pt-yrs", severity: "high" },
    { event: "Malignancies (excl. NMSC)", rate: "0.9 / 100 pt-yrs", severity: "high" },
    { event: "MACE", rate: "0.6 / 100 pt-yrs", severity: "high" },
    { event: "VTE (DVT/PE)", rate: "0.6 / 100 pt-yrs", severity: "high" },
    { event: "GI Perforations", rate: "0.2 / 100 pt-yrs", severity: "med" },
    { event: "CPK Elevation", rate: "6.1 / 100 pt-yrs (mostly asymp.)", severity: "low" },
    { event: "Hepatic Disorders (LFT rise)", rate: "14.4 / 100 pt-yrs", severity: "med" },
  ];

  const sevColors = { low: C.green, med: C.amber, high: C.red };
  const sevLabel = { low: "Low", med: "Moderate", high: "Monitor" };

  s.addShape(pres.shapes.RECTANGLE, { x: 0.28, y: 1.2, w: 9.44, h: 0.32, fill: { color: C.navy }, line: { color: C.navy } });
  s.addText("Adverse Event", { x: 0.35, y: 1.2, w: 5.0, h: 0.32, fontSize: 9.5, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });
  s.addText("Rate", { x: 5.4, y: 1.2, w: 2.8, h: 0.32, fontSize: 9.5, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });
  s.addText("Severity", { x: 8.3, y: 1.2, w: 1.4, h: 0.32, fontSize: 9.5, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });

  safetyData.forEach((row, i) => {
    const y = 1.54 + i * 0.365;
    s.addShape(pres.shapes.RECTANGLE, { x: 0.28, y, w: 9.44, h: 0.34, fill: { color: i % 2 === 0 ? "F4FAFD" : C.white }, line: { color: "D0E8F5", width: 0.5 } });
    s.addText(row.event, { x: 0.35, y, w: 5.0, h: 0.34, fontSize: 9, color: C.dark, valign: "middle", fontFace: "Calibri", margin: 0 });
    s.addText(row.rate, { x: 5.4, y, w: 2.8, h: 0.34, fontSize: 9, color: C.dark, bold: true, valign: "middle", fontFace: "Calibri", margin: 0 });
    badge(s, sevLabel[row.severity], 8.3, y + 0.05, 1.3, sevColors[row.severity]);
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 11 โ€” ORAL SURVEILLANCE
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  const s = pres.addSlide();
  lightBg(s);
  accentBar(s, C.red);
  leftStrip(s, C.red);
  slideTitle(s, "ORAL Surveillance Trial & Class Black Box Warning");

  card(s, 0.28, 0.98, 9.44, 1.6, "FFF2F2");
  s.addText("ORAL Surveillance (Tofacitinib) โ€” Why it matters for ALL JAK inhibitors", { x: 0.42, y: 1.04, w: 9.0, h: 0.32, fontSize: 12, bold: true, color: C.red, fontFace: "Calibri", margin: 0 });
  const oralPoints = [
    "FDA-mandated prospective RCT โ€” tofacitinib vs TNF inhibitor (etanercept/adalimumab)",
    "Population: RA patients >50 yrs with โ‰ฅ1 CV risk factor, on background MTX",
    "Co-primary endpoints: MACE (HR 1.33; 95% CI 0.91โ€“1.94) and Cancer excl. NMSC (HR 1.48; 95% CI 1.04โ€“2.09)",
    "Did NOT meet noninferiority vs TNF inhibitor โ€” FDA extended class warning to ALL JAK inhibitors in 2022",
    "No equivalent safety endpoint trial conducted yet for upadacitinib in this high-risk population",
  ];
  oralPoints.forEach((pt, i) => {
    s.addText(`โ€ข ${pt}`, { x: 0.42, y: 1.38 + i * 0.22, w: 9.0, h: 0.2, fontSize: 9, color: C.dark, fontFace: "Calibri", margin: 0 });
  });

  // Black Box Warning box
  card(s, 0.28, 2.65, 9.44, 2.65, "FFF8F8");
  s.addShape(pres.shapes.RECTANGLE, { x: 0.28, y: 2.65, w: 9.44, h: 0.38, fill: { color: C.red }, line: { color: C.red } });
  s.addText("โ˜  FDA BLACK BOX WARNING โ€” Applies to Upadacitinib (All JAK Inhibitors)", { x: 0.4, y: 2.65, w: 9.1, h: 0.38, fontSize: 11, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });

  const warnings = [
    ["Serious Infections", "Including TB, bacterial, fungal, viral. Do not initiate during active infection. Screen for TB before starting."],
    ["Malignancy", "Increased risk of malignancies including lymphoma. Risk may be higher in patients with existing CV risk factors/smokers."],
    ["Major Adverse CV Events (MACE)", "Including non-fatal MI, non-fatal stroke, CV death. Higher risk in patients >50 yrs with CV risk factors."],
    ["Thrombosis", "DVT, PE, arterial thrombosis reported. Use with caution in high VTE-risk patients."],
    ["All-cause mortality", "Increased vs TNF inhibitors in ORAL Surveillance (tofacitinib); class effect assumed."],
  ];

  warnings.forEach((w, i) => {
    s.addText(`โ–ธ ${w[0]}: `, { x: 0.42, y: 3.1 + i * 0.42, w: 1.8, h: 0.38, fontSize: 9.5, bold: true, color: C.red, fontFace: "Calibri", valign: "middle", margin: 0 });
    s.addText(w[1], { x: 2.1, y: 3.1 + i * 0.42, w: 7.4, h: 0.38, fontSize: 9, color: C.dark, fontFace: "Calibri", valign: "middle", margin: 0 });
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 12 โ€” DRUG INTERACTIONS & SPECIAL POPULATIONS
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  const s = pres.addSlide();
  lightBg(s);
  accentBar(s);
  leftStrip(s);
  slideTitle(s, "Drug Interactions & Special Populations");

  // Left col: Drug Interactions
  card(s, 0.28, 0.98, 4.6, 4.3, C.white);
  s.addText("Drug Interactions", { x: 0.4, y: 1.04, w: 4.3, h: 0.3, fontSize: 13, bold: true, color: C.navy, fontFace: "Calibri", margin: 0 });

  const ddi = [
    ["Strong CYP3A4 inhibitors", "Ketoconazole, clarithromycin", "Reduce UPA dose (15 mgโ†’ not recommended at higher dose)", C.red],
    ["Strong CYP3A4 inducers", "Rifampin, phenytoin", "Decreased UPA exposure โ€” avoid combination", C.red],
    ["Live vaccines", "All live attenuated", "Contraindicated during therapy", C.red],
    ["Immunosuppressants", "Azathioprine, cyclosporine", "Avoid โ€” increased immunosuppression risk", C.amber],
    ["Methotrexate (low dose)", "Background csDMARD", "Generally safe; used in RA combo regimens", C.green],
  ];

  ddi.forEach((row, i) => {
    const y = 1.4 + i * 0.72;
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 0.38, y, w: 4.3, h: 0.65, fill: { color: i % 2 === 0 ? "F4FAFD" : C.white }, line: { color: "D0E8F5", width: 0.5 }, rectRadius: 0.05 });
    s.addText(row[0], { x: 0.48, y: y + 0.02, w: 3.6, h: 0.22, fontSize: 9.5, bold: true, color: row[3], fontFace: "Calibri", margin: 0 });
    s.addText(row[1], { x: 0.48, y: y + 0.22, w: 3.6, h: 0.2, fontSize: 8.5, color: C.grey, italic: true, fontFace: "Calibri", margin: 0 });
    s.addText(row[2], { x: 0.48, y: y + 0.4, w: 3.6, h: 0.2, fontSize: 8.5, color: C.dark, fontFace: "Calibri", margin: 0 });
  });

  // Right col: Special populations
  card(s, 5.1, 0.98, 4.62, 4.3, C.white);
  s.addText("Special Populations", { x: 5.22, y: 1.04, w: 4.3, h: 0.3, fontSize: 13, bold: true, color: C.navy, fontFace: "Calibri", margin: 0 });

  const popData = [
    ["Pregnancy", C.red, "Contraindicated โ€” teratogenic in animal studies. Effective contraception required during & 4 wks after last dose."],
    ["Lactation", C.red, "Avoid โ€” unknown if excreted in breast milk."],
    ["Paediatric (<12 yrs)", C.amber, "Not approved. AD indication from age 12."],
    ["Renal Impairment", C.amber, "Mild/moderate: no dose adjustment. Severe (eGFR <15): limited data โ€” use with caution."],
    ["Hepatic Impairment", C.amber, "Mild/moderate: no adjustment. Severe (Child-Pugh C): not recommended."],
    ["Elderly (>65 yrs)", C.amber, "Use with caution โ€” higher risk of serious infections, MACE, and cancer in this group."],
  ];

  popData.forEach((p, i) => {
    const y = 1.42 + i * 0.62;
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 5.18, y, w: 4.42, h: 0.55, fill: { color: i % 2 === 0 ? "F4FAFD" : C.white }, line: { color: "D0E8F5", width: 0.5 }, rectRadius: 0.05 });
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 5.22, y: y + 0.06, w: 0.65, h: 0.22, fill: { color: p[1] }, line: { color: p[1] }, rectRadius: 0.04 });
    s.addText(p[0], { x: 5.22, y: y + 0.06, w: 0.65, h: 0.22, fontSize: 8, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });
    s.addText(p[2], { x: 5.95, y: y + 0.04, w: 3.55, h: 0.46, fontSize: 8.5, color: C.dark, fontFace: "Calibri", valign: "middle", margin: 0 });
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 13 โ€” UPA vs TOFACITINIB
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  const s = pres.addSlide();
  lightBg(s);
  accentBar(s);
  leftStrip(s);
  slideTitle(s, "Upadacitinib vs Tofacitinib โ€” Head-to-Head Comparison");

  const compData = [
    ["Feature", "Upadacitinib", "Tofacitinib"],
    ["JAK Selectivity", "Highly selective JAK1 (>70x over JAK2)", "JAK1 + JAK3 (less selective)"],
    ["Dosing", "15 mg once daily", "5 mg BID or 11 mg XR once daily"],
    ["Efficacy vs adalimumab", "Statistically superior in SELECT-COMPARE", "Non-inferior in head-to-head"],
    ["Efficacy vs abatacept", "Superior (SELECT-CHOICE)", "Not directly compared"],
    ["Atopic Dermatitis", "Approved (15/30 mg)", "Not approved"],
    ["Crohn's Disease", "Approved (2023)", "Not approved"],
    ["JIA", "Not approved", "Approved (polyarticular JIA)"],
    ["MACE/Cancer data", "Class warning; no dedicated safety trial", "ORAL Surveillance: HR 1.33 MACE, 1.48 cancer"],
    ["Anemia risk", "Lower (JAK2 spared)", "Higher (JAK2 off-target)"],
    ["CPK elevation", "More common (6.1/100 pt-yrs)", "Less prominent"],
    ["Hepatotoxicity", "More common (LFT elevation)", "Less prominent"],
    ["Drug interactions", "CYP3A4", "CYP2C19 + CYP3A4"],
    ["Generic available?", "No (patent-protected)", "Yes (increasingly available)"],
  ];

  compData.forEach((row, i) => {
    const y = 0.98 + i * 0.33;
    const isHeader = i === 0;
    s.addShape(pres.shapes.RECTANGLE, { x: 0.28, y, w: 9.44, h: 0.31, fill: { color: isHeader ? C.navy : i % 2 === 0 ? "EBF5FB" : C.white }, line: { color: "D0E8F5", width: 0.5 } });
    const fc = isHeader ? C.white : C.dark;
    const bc = isHeader ? C.white : C.teal;
    s.addText(row[0], { x: 0.35, y, w: 2.5, h: 0.31, fontSize: isHeader ? 9.5 : 9, bold: isHeader, color: bc, valign: "middle", fontFace: "Calibri", margin: 0 });
    s.addText(row[1], { x: 2.9, y, w: 3.4, h: 0.31, fontSize: 9, bold: false, color: fc, valign: "middle", fontFace: "Calibri", margin: 0 });
    s.addText(row[2], { x: 6.35, y, w: 3.3, h: 0.31, fontSize: 9, bold: false, color: fc, valign: "middle", fontFace: "Calibri", margin: 0 });
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 14 โ€” UPA vs BIOLOGICS
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  const s = pres.addSlide();
  lightBg(s);
  accentBar(s);
  leftStrip(s);
  slideTitle(s, "Upadacitinib vs Biologics in RA");

  const bioComp = [
    ["Feature", "Upadacitinib (JAKi)", "TNF Inhibitors", "IL-6 Inhibitors (TCZ/SAR)", "Abatacept"],
    ["Route", "Oral", "SC/IV", "SC/IV", "SC/IV"],
    ["Onset of action", "Rapid (1โ€“2 wks)", "2โ€“4 weeks", "2โ€“4 weeks", "Slower (4โ€“8 wks)"],
    ["Efficacy vs MTX-IR", "Superior to adalimumab", "Superior (standard of care)", "Superior", "Superior"],
    ["Head-to-head vs bDMARD", "Superior to abatacept; superior to adalimumab (SELECT-COMPARE)", "Gold standard comparator", "Noninferior to adalimumab", "Comparator in SELECT-CHOICE"],
    ["Infection risk", "Elevated (class)", "Elevated", "Elevated", "Lower than others"],
    ["CV/Cancer risk", "Class warning", "Lower vs JAKi in OS trial", "Neutral CV", "Lowest CV risk"],
    ["Immunogenicity", "None (small molecule)", "High (ADA formation)", "Moderate", "Low"],
    ["Pregnancy", "Contraindicated", "Generally avoid", "Avoid", "Limited data"],
    ["Cost", "High (no generic)", "High (some biosimilars)", "High", "High"],
  ];

  bioComp.forEach((row, i) => {
    const y = 0.98 + i * 0.44;
    const isHeader = i === 0;
    s.addShape(pres.shapes.RECTANGLE, { x: 0.28, y, w: 9.44, h: 0.42, fill: { color: isHeader ? C.navy : i % 2 === 0 ? "EBF5FB" : C.white }, line: { color: "D0E8F5", width: 0.5 } });
    const fc = isHeader ? C.white : C.dark;
    [row[0], row[1], row[2], row[3], row[4]].forEach((cell, j) => {
      const xPos = [0.3, 1.95, 3.68, 5.55, 7.42];
      const wArr = [1.55, 1.7, 1.8, 1.82, 2.2];
      s.addText(cell, { x: xPos[j], y, w: wArr[j], h: 0.42, fontSize: isHeader ? 8.5 : 8, bold: isHeader, color: isHeader ? C.white : j === 1 ? C.teal : fc, valign: "middle", fontFace: "Calibri", margin: 2 });
    });
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 15 โ€” PATIENT SELECTION
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  const s = pres.addSlide();
  lightBg(s);
  accentBar(s);
  leftStrip(s);
  slideTitle(s, "Patient Selection โ€” Who is an Ideal Candidate?");

  // Good candidates
  card(s, 0.28, 0.98, 4.5, 4.3, C.white);
  s.addShape(pres.shapes.RECTANGLE, { x: 0.28, y: 0.98, w: 4.5, h: 0.38, fill: { color: C.green }, line: { color: C.green } });
  s.addText("โœ“  Suitable Candidates", { x: 0.38, y: 0.98, w: 4.2, h: 0.38, fontSize: 12, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });

  const good = [
    "Moderate-to-severe RA with inadequate response to csDMARDs (especially MTX)",
    "bDMARD-experienced patients needing step-up therapy",
    "Patients who prefer oral therapy over injections",
    "Active PsA, AS, nr-AxSpA with inadequate NSAID/bDMARD response",
    "Moderate-to-severe atopic dermatitis (refractory to topicals/dupilumab)",
    "UC/Crohn's refractory to anti-TNF or vedolizumab",
    "Patients where rapid onset of action is desired",
    "Those without high CV risk factors or active malignancy",
  ];
  good.forEach((g, i) => {
    s.addText(`โœ“ ${g}`, { x: 0.38, y: 1.43 + i * 0.44, w: 4.22, h: 0.4, fontSize: 9, color: C.dark, fontFace: "Calibri", valign: "top", margin: 0 });
  });

  // Poor candidates
  card(s, 5.0, 0.98, 4.72, 4.3, C.white);
  s.addShape(pres.shapes.RECTANGLE, { x: 5.0, y: 0.98, w: 4.72, h: 0.38, fill: { color: C.red }, line: { color: C.red } });
  s.addText("โœ—  Use with Caution / Avoid", { x: 5.12, y: 0.98, w: 4.4, h: 0.38, fontSize: 12, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });

  const bad = [
    "Active serious infections (TB, fungal, bacterial sepsis)",
    "Age >50 with multiple CV risk factors โ€” increased MACE risk",
    "Prior or current malignancy (especially lymphoma, lung cancer)",
    "Severe hepatic impairment (Child-Pugh C)",
    "Pregnancy or planned pregnancy",
    "Active or recent thrombosis (DVT/PE)",
    "Combination with potent immunosuppressants (azathioprine, CsA)",
    "Patients who have not trialled csDMARDs first (in RA)",
  ];
  bad.forEach((b, i) => {
    s.addText(`โœ— ${b}`, { x: 5.1, y: 1.43 + i * 0.44, w: 4.52, h: 0.4, fontSize: 9, color: C.dark, fontFace: "Calibri", valign: "top", margin: 0 });
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 16 โ€” MONITORING
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  const s = pres.addSlide();
  lightBg(s);
  accentBar(s);
  leftStrip(s);
  slideTitle(s, "Monitoring & Follow-up");

  const monData = [
    { timing: "Before initiation", items: ["Screen for active/latent TB (IGRA or TST + CXR)", "Screen for viral hepatitis (HBV, HCV serology)", "Full blood count (FBC): rule out lymphopenia, neutropenia, anaemia", "Lipid panel (baseline)", "Liver function tests (LFTs)", "Renal function (eGFR)", "Assess CV risk factors / malignancy history", "Update vaccinations (incl. herpes zoster vaccine โ€” ideally before starting)"], color: C.midTeal },
    { timing: "4โ€“8 weeks after start", items: ["FBC โ€” monitor for cytopenias", "LFTs โ€” watch for hepatic transaminase elevation", "Lipid panel โ€” JAK inhibitors can raise LDL/HDL", "CPK if myalgia reported", "Clinical response assessment (DAS28/CDAI)"], color: C.teal },
    { timing: "Every 3 months", items: ["FBC, LFTs, lipids", "Disease activity scoring", "Assess for infections, zoster", "Monitor BP and CV risk", "Watch for skin changes / new malignancy"], color: C.amber },
    { timing: "Every 6โ€“12 months", items: ["Annual malignancy screen (skin, lymph nodes)", "Annual TB risk re-assessment", "Annual lipid panel + CV risk calculation", "Radiological assessment of disease in RA/AxSpA as needed"], color: C.green },
  ];

  monData.forEach((m, i) => {
    const y = 0.98 + i * 1.15;
    card(s, 0.28, y, 9.44, 1.08, C.white);
    s.addShape(pres.shapes.RECTANGLE, { x: 0.28, y, w: 1.8, h: 1.08, fill: { color: m.color }, line: { color: m.color } });
    s.addText(m.timing, { x: 0.28, y, w: 1.8, h: 1.08, fontSize: 10, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 4 });
    const perRow = Math.ceil(m.items.length / 2);
    m.items.forEach((item, j) => {
      const col = Math.floor(j / perRow);
      const row = j % perRow;
      s.addText(`โ€ข ${item}`, { x: 2.22 + col * 3.7, y: y + 0.1 + row * 0.2, w: 3.5, h: 0.18, fontSize: 8, color: C.dark, fontFace: "Calibri", margin: 0 });
    });
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 17 โ€” KEY TRIALS SUMMARY
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  const s = pres.addSlide();
  lightBg(s);
  accentBar(s);
  leftStrip(s);
  slideTitle(s, "Key Clinical Trials Summary");

  const trials = [
    { name: "SELECT-COMPARE", n: "1629", disease: "RA", pop: "MTX-IR", comparator: "Adalimumab", key: "UPA superior to ADA; ACR50 45% vs 29%", color: C.teal },
    { name: "SELECT-MONOTHERAPY", n: "648", disease: "RA", pop: "MTX-IR", comparator: "Placebo + MTX continue", key: "UPA monotherapy superior to MTX", color: C.midTeal },
    { name: "SELECT-NEXT", n: "661", disease: "RA", pop: "csDMARD-IR", comparator: "Placebo", key: "ACR20 at Wk12: 64% vs 36%", color: C.navy },
    { name: "SELECT-BEYOND", n: "498", disease: "RA", pop: "bDMARD-IR", comparator: "Placebo", key: "Effective after biologic failure", color: "#1565C0" },
    { name: "SELECT-EARLY", n: "945", disease: "RA", pop: "MTX-naive", comparator: "MTX", key: "Higher ACR50; less X-ray progression", color: C.green },
    { name: "SELECT-CHOICE", n: "612", disease: "RA", pop: "bDMARD-IR", comparator: "Abatacept", key: "UPA superior in remission; more AEs", color: C.amber },
    { name: "SELECT-PsA 1 & 2", n: "1704 + 642", disease: "PsA", pop: "biologic-naive / TNFi-IR", comparator: "Adalimumab / Placebo", key: "Noninferior to ADA; superior to PBO", color: C.teal },
    { name: "SELECT-AXIS 1 & 2", n: "187 + 420", disease: "AS/nr-AxSpA", pop: "bDMARD-naive / TNFi-IR", comparator: "Placebo", key: "ASAS40 significantly higher at Wk14", color: C.midTeal },
    { name: "Measure Up 1 & 2", n: "1609", disease: "Atopic Derm.", pop: "Adults/adolescents", comparator: "Placebo", key: "EASI-75 at Wk16: ~65โ€“70%", color: C.amber },
    { name: "U-ACHIEVE / U-ACCOMPLISH", n: "691 + 788", disease: "UC", pop: "Biologic-IR/naive", comparator: "Placebo", key: "Higher clinical remission at Wk8", color: C.green },
  ];

  s.addShape(pres.shapes.RECTANGLE, { x: 0.28, y: 0.98, w: 9.44, h: 0.3, fill: { color: C.navy }, line: { color: C.navy } });
  ["Trial", "N", "Disease", "Key Finding"].forEach((h, j) => {
    const xs = [0.35, 2.0, 2.7, 4.5];
    const ws = [1.6, 0.65, 1.7, 5.3];
    s.addText(h, { x: xs[j], y: 0.98, w: ws[j], h: 0.3, fontSize: 9, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });
  });

  trials.forEach((t, i) => {
    const y = 1.3 + i * 0.43;
    s.addShape(pres.shapes.RECTANGLE, { x: 0.28, y, w: 9.44, h: 0.41, fill: { color: i % 2 === 0 ? "EBF5FB" : C.white }, line: { color: "D0E8F5", width: 0.5 } });
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 0.32, y: y + 0.06, w: 1.6, h: 0.28, fill: { color: t.color }, line: { color: t.color }, rectRadius: 0.04 });
    s.addText(t.name, { x: 0.32, y: y + 0.06, w: 1.6, h: 0.28, fontSize: 8, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });
    s.addText(t.n, { x: 2.0, y, w: 0.65, h: 0.41, fontSize: 8.5, color: C.dark, valign: "middle", fontFace: "Calibri", margin: 0 });
    s.addText(t.disease, { x: 2.7, y, w: 1.7, h: 0.41, fontSize: 8.5, color: C.dark, bold: true, valign: "middle", fontFace: "Calibri", margin: 0 });
    s.addText(t.key, { x: 4.5, y, w: 5.1, h: 0.41, fontSize: 8.5, color: C.dark, valign: "middle", fontFace: "Calibri", margin: 0 });
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 18 โ€” CLINICAL PEARLS
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  const s = pres.addSlide();
  lightBg(s);
  accentBar(s, C.green);
  leftStrip(s, C.green);
  slideTitle(s, "Clinical Pearls");

  const pearls = [
    { icon: "๐Ÿ’Š", title: "Selectivity โ‰  safety", detail: "JAK1 selectivity reduces hematologic off-targets but does NOT eliminate CV/cancer risk. All JAKi carry the same class black box warning." },
    { icon: "โšก", title: "Rapid Onset", detail: "Patients often report improvement in pain and stiffness within 1โ€“2 weeks โ€” faster than most biologics. Useful when quick disease control is needed." },
    { icon: "๐ŸŽฏ", title: "Efficacy Advantage", detail: "One of very few DMARDs to demonstrate superiority (not just non-inferiority) vs adalimumab in MTX-IR RA โ€” a clinically meaningful benchmark." },
    { icon: "โš ๏ธ", title: "Herpes Zoster Risk", detail: "Zoster rates (~3.7/100 pt-yrs) are notably higher than with biologics. Offer recombinant zoster vaccine (Shingrix) before starting if possible." },
    { icon: "๐Ÿฉธ", title: "CPK & LFT Monitoring", detail: "Asymptomatic CPK elevation is common; monitor and investigate if symptomatic. LFT elevations at 14.4/100 pt-yrs โ€” check LFTs at baseline and regularly." },
    { icon: "๐Ÿงฌ", title: "IBD Advantage", detail: "Upadacitinib is the only JAK inhibitor with FDA approval for both UC and Crohn's disease at 30 mg maintenance โ€” offering an oral option post-biologic failure." },
    { icon: "๐Ÿ‘ถ", title: "Women of childbearing age", detail: "Mandatory contraception. If pregnancy is desired, plan washout period (at least 4 weeks before conception attempt)." },
    { icon: "๐Ÿ”", title: "Switching from biologics", detail: "No washout required when switching from most biologics (except for live vaccines and combination immunosuppressants โ€” check each case)." },
  ];

  pearls.forEach((p, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    const x = 0.28 + col * 4.85;
    const y = 1.02 + row * 1.12;
    card(s, x, y, 4.65, 1.02, C.white);
    s.addText(p.icon, { x: x + 0.1, y: y + 0.08, w: 0.6, h: 0.55, fontSize: 20, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });
    s.addText(p.title, { x: x + 0.75, y: y + 0.08, w: 3.75, h: 0.28, fontSize: 10.5, bold: true, color: C.navy, fontFace: "Calibri", margin: 0 });
    s.addText(p.detail, { x: x + 0.75, y: y + 0.36, w: 3.75, h: 0.58, fontSize: 8.5, color: C.dark, fontFace: "Calibri", margin: 0 });
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 19 โ€” REFERENCES & CLOSING
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  const s = pres.addSlide();
  darkBg(s);
  s.addShape(pres.shapes.RECTANGLE, { x: 6.2, y: 0, w: 3.8, h: 5.625, fill: { color: C.midTeal }, line: { color: C.midTeal } });
  s.addShape(pres.shapes.RECTANGLE, { x: 5.9, y: 0, w: 0.35, h: 5.625, fill: { color: C.teal }, line: { color: C.teal } });

  s.addText("Key References", { x: 0.4, y: 0.4, w: 5.2, h: 0.5, fontSize: 22, bold: true, color: C.white, fontFace: "Calibri", margin: 0 });

  const refs = [
    "Firestein & Kelley's Textbook of Rheumatology, 2-Volume Set (2024, Elsevier) โ€” JAK Inhibitor chapters",
    "Rheumatology, 2-Volume Set (2022, Elsevier) โ€” Chapters on tsDMARDs and upadacitinib",
    "Lippincott Illustrated Reviews: Pharmacology โ€” JAK-STAT pathway and tofacitinib",
    "Genovese MC et al. SELECT-COMPARE: N Engl J Med 2019",
    "Smolen JS et al. SELECT-MONOTHERAPY: Lancet 2019",
    "Fleischmann R et al. SELECT-EARLY: Arthritis Rheumatol 2019",
    "Burmester GR et al. SELECT-BEYOND: Ann Rheum Dis 2018",
    "Rubbert-Roth A et al. SELECT-CHOICE: Ann Rheum Dis 2021",
    "McInnes IB et al. SELECT-PsA 1: Lancet 2021",
    "Mease PJ et al. SELECT-PsA 2: Lancet 2021",
    "FDA Safety Communication: JAK inhibitor class warnings (2022)",
    "ORAL Surveillance Trial: Ytterberg SR et al. N Engl J Med 2022",
    "Thomas J et al. Cochrane NMA on DMARDs after biologic failure (Jul 2026, PMID 42440279)",
  ];

  refs.forEach((r, i) => {
    s.addText(`${i + 1}. ${r}`, { x: 0.4, y: 0.98 + i * 0.34, w: 5.3, h: 0.32, fontSize: 8.5, color: "A8D8EA", fontFace: "Calibri", margin: 0 });
  });

  // Right panel closing
  s.addText([
    { text: "Upadacitinib\n", options: { bold: true, breakLine: true, fontSize: 22 } },
    { text: "Selective JAK1 Inhibitor\n", options: { breakLine: true, fontSize: 13, color: "D6EEF8" } },
    { text: "\nA clinically significant advance\nin oral targeted therapy\nfor inflammatory diseases.", options: { fontSize: 11, color: "A8D8EA" } }
  ], { x: 6.25, y: 1.6, w: 3.4, h: 2.5, fontFace: "Calibri", color: C.white, align: "center", valign: "middle" });

  s.addText("Thank you", { x: 6.25, y: 4.1, w: 3.4, h: 0.5, fontSize: 16, bold: true, color: C.teal, align: "center", fontFace: "Calibri", margin: 0 });
  s.addText("Prepared by Orris AI  |  July 2026", { x: 0.4, y: 5.2, w: 5.0, h: 0.28, fontSize: 8, color: "4D7A9E", fontFace: "Calibri", margin: 0 });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// WRITE FILE
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
pres.writeFile({ fileName: "/home/daytona/workspace/upadacitinib-pptx/Upadacitinib_Clinical_Review.pptx" })
  .then(() => console.log("SUCCESS: File saved."))
  .catch(e => { console.error("ERROR:", e); process.exit(1); });
Running Command

cd /home/daytona/workspace/upadacitinib-pptx && node upadacitinib.js

Running Command

ls -lh /home/daytona/workspace/upadacitinib-pptx/

Your presentation is ready! ๐ŸŽ‰

Upadacitinib Clinical Review

Presentation ยท PPTX


What's inside โ€” 19 slides, clinician-focused

The deck uses a deep navy + teal colour palette with a professional medical design. Here's the full structure:
SlideContent
1Title Slide โ€” Upadacitinib (Rinvoq), brand/approval info
2Table of Contents โ€” colour-coded index of all 18 topics
3Drug Overview โ€” full fact sheet (class, selectivity, half-life, approvals)
4JAK-STAT Pathway โ€” isoforms, cytokines, site of inhibition
5Mechanism of Action โ€” ATP-competitive binding, selectivity bar chart vs tofacitinib/baricitinib
6Approved Indications โ€” all 7 (RA, PsA, AS, nr-AxSpA, AD, UC, CD) with doses and years
7RA Efficacy โ€” 5 SELECT trial cards (SELECT-COMPARE, MONOTHERAPY, NEXT, CHOICE, EARLY)
8Other Diseases โ€” PsA, AxSpA, AD, UC, Crohn's trial data
9Dosing & Administration โ€” table by indication + administration warnings
10Safety Profile โ€” 11 AEs with rates per 100 pt-yrs and severity colour-coding
11ORAL Surveillance + Black Box Warning โ€” full FDA warning details
12Drug Interactions & Special Populations โ€” CYP3A4, pregnancy, renal/hepatic
13UPA vs Tofacitinib โ€” 14-row head-to-head table
14UPA vs Biologics โ€” comparison vs TNFi, IL-6i, abatacept
15Patient Selection โ€” suitable vs caution/avoid (side-by-side)
16Monitoring โ€” timeline from pre-treatment to annual review
17Key Trials Summary โ€” 10 pivotal trials in one table
18Clinical Pearls โ€” 8 practical takeaways for clinicians
19References & Closing โ€” 13 key references + thank you slide
This is a shared conversation. Sign in to Orris to start your own chat.