Prompt- Create a super aesthetic, handwritten-style revision note page for the topic: Benign lesions of the oral cavity according to shafers β€’ Make it look like neat exam notes written on a page (top view, clean layout, colorful headings, underlines, boxes). β€’ Keep it crisp, high-yield, and exam-oriented. β€’ Use clear headings and organize content like this (modify if needed for topic): β—‹ Definition β—‹ Etiology β—‹ Pathogenesis (flow/arrow style) β—‹ Clinical features β—‹ Radiographic features (if applicable) β—‹ Histopathology (if applicable) β—‹ Key features β—‹ Differential diagnosis β—‹ Management β—‹ Complications β—‹ Key points / last-minute revision box β€’ Add simple diagrams or labeled sketches wherever helpful. β€’ Highlight important keywords. β€’ Include one memory trick / one-line summary β€’

Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Running Command

mkdir -p /home/daytona/workspace/oral-revision && echo "Directory ready"

Writing File

~/oral-revision/benign_oral_lesions.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Benign Lesions of the Oral Cavity – Shafer's</title>
<link href="https://fonts.googleapis.com/css2?family=Caveat:wght@400;500;600;700&family=Patrick+Hand&family=Kalam:wght@300;400;700&display=swap" rel="stylesheet">
<style>
  * { margin: 0; padding: 0; box-sizing: border-box; }

  body {
    background: #f5f0e8;
    font-family: 'Kalam', cursive;
    padding: 0;
  }

  .page {
    width: 1400px;
    min-height: 100%;
    background: #fffef5;
    background-image:
      repeating-linear-gradient(
        transparent,
        transparent 39px,
        #b8d4f0 39px,
        #b8d4f0 40px
      );
    padding: 60px 70px 80px 110px;
    position: relative;
    box-shadow: 0 4px 30px rgba(0,0,0,0.15);
  }

  /* Red margin line */
  .page::before {
    content: '';
    position: absolute;
    left: 90px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: #e85d5d;
    opacity: 0.7;
  }

  /* Spiral holes */
  .holes {
    position: absolute;
    left: 18px;
    top: 0;
    bottom: 0;
    width: 40px;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    align-items: center;
    padding: 30px 0;
  }
  .hole {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #f5f0e8;
    border: 2px solid #ccc;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.15);
  }

  /* ===== MAIN TITLE ===== */
  .main-title {
    text-align: center;
    margin-bottom: 8px;
    position: relative;
  }
  .main-title h1 {
    font-family: 'Caveat', cursive;
    font-size: 42px;
    font-weight: 700;
    color: #1a237e;
    text-decoration: underline;
    text-decoration-color: #e91e63;
    text-underline-offset: 6px;
    letter-spacing: 1px;
  }
  .subtitle {
    font-family: 'Patrick Hand', cursive;
    font-size: 17px;
    color: #555;
    text-align: center;
    margin-bottom: 6px;
  }
  .source-badge {
    display: inline-block;
    background: #fff9c4;
    border: 2px dashed #f9a825;
    border-radius: 8px;
    padding: 3px 14px;
    font-size: 14px;
    color: #6d4c41;
    font-family: 'Kalam', cursive;
    margin-bottom: 18px;
  }

  /* ===== MEMORY TRICK BOX ===== */
  .memory-box {
    background: linear-gradient(135deg, #fff9c4, #fffde7);
    border: 3px solid #f9a825;
    border-radius: 14px;
    padding: 12px 20px;
    margin-bottom: 22px;
    position: relative;
  }
  .memory-box::before {
    content: '🧠 MEMORY TRICK';
    position: absolute;
    top: -13px;
    left: 16px;
    background: #f9a825;
    color: white;
    font-size: 12px;
    font-weight: 700;
    padding: 2px 10px;
    border-radius: 6px;
    font-family: 'Kalam', cursive;
    letter-spacing: 0.5px;
  }
  .memory-box p {
    font-size: 17px;
    color: #4a148c;
    font-weight: 600;
    font-family: 'Caveat', cursive;
    font-size: 20px;
  }

  /* ===== GRID LAYOUT ===== */
  .grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-bottom: 18px;
  }
  .grid-3 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 16px;
    margin-bottom: 18px;
  }
  .full-width {
    margin-bottom: 18px;
  }

  /* ===== SECTION CARDS ===== */
  .card {
    border-radius: 12px;
    padding: 14px 18px;
    position: relative;
    border-left: 5px solid;
  }
  .card-blue   { background: #e3f2fd; border-color: #1565c0; }
  .card-green  { background: #e8f5e9; border-color: #2e7d32; }
  .card-purple { background: #f3e5f5; border-color: #6a1b9a; }
  .card-red    { background: #fce4ec; border-color: #c62828; }
  .card-orange { background: #fff3e0; border-color: #e65100; }
  .card-teal   { background: #e0f2f1; border-color: #00695c; }
  .card-pink   { background: #fce4ec; border-color: #ad1457; }
  .card-indigo { background: #e8eaf6; border-color: #283593; }
  .card-yellow { background: #fffde7; border-color: #f57f17; }
  .card-brown  { background: #efebe9; border-color: #4e342e; }
  .card-cyan   { background: #e0f7fa; border-color: #00838f; }

  .card-title {
    font-family: 'Caveat', cursive;
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
  }
  .card-blue   .card-title { color: #0d47a1; }
  .card-green  .card-title { color: #1b5e20; }
  .card-purple .card-title { color: #4a148c; }
  .card-red    .card-title { color: #b71c1c; }
  .card-orange .card-title { color: #bf360c; }
  .card-teal   .card-title { color: #004d40; }
  .card-pink   .card-title { color: #880e4f; }
  .card-indigo .card-title { color: #1a237e; }
  .card-yellow .card-title { color: #e65100; }
  .card-brown  .card-title { color: #3e2723; }
  .card-cyan   .card-title { color: #006064; }

  .card ul {
    list-style: none;
    padding: 0;
  }
  .card ul li {
    font-size: 15px;
    color: #333;
    padding: 2px 0 2px 18px;
    position: relative;
    line-height: 1.55;
    font-family: 'Kalam', cursive;
  }
  .card ul li::before {
    content: 'β†’';
    position: absolute;
    left: 0;
    color: #888;
    font-size: 13px;
  }
  .card p {
    font-size: 15px;
    color: #333;
    line-height: 1.6;
    font-family: 'Kalam', cursive;
  }

  /* highlights */
  .hl-red    { color: #c62828; font-weight: 700; }
  .hl-blue   { color: #1565c0; font-weight: 700; }
  .hl-green  { color: #2e7d32; font-weight: 700; }
  .hl-purple { color: #6a1b9a; font-weight: 700; }
  .hl-orange { color: #e65100; font-weight: 700; }
  .hl-teal   { color: #00695c; font-weight: 700; }

  /* underline emphasis */
  .ul-red    { text-decoration: underline; text-decoration-color: #e53935; text-underline-offset: 3px; }
  .ul-blue   { text-decoration: underline; text-decoration-color: #1e88e5; text-underline-offset: 3px; }

  /* ===== FLOWCHART (pathogenesis) ===== */
  .flow {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    font-family: 'Kalam', cursive;
    font-size: 14px;
    margin: 6px 0;
  }
  .flow-step {
    background: white;
    border: 2px solid #9575cd;
    border-radius: 8px;
    padding: 5px 10px;
    color: #4527a0;
    font-weight: 600;
    text-align: center;
    min-width: 80px;
  }
  .flow-arrow {
    font-size: 20px;
    color: #e91e63;
    font-weight: 700;
  }

  /* ===== LESION CARDS (individual lesions) ===== */
  .lesion-section {
    margin-bottom: 22px;
  }
  .lesion-header {
    font-family: 'Caveat', cursive;
    font-size: 28px;
    font-weight: 700;
    color: white;
    padding: 8px 20px;
    border-radius: 10px 10px 0 0;
    display: flex;
    align-items: center;
    gap: 8px;
    letter-spacing: 0.5px;
  }
  .lh-blue   { background: linear-gradient(90deg, #1565c0, #42a5f5); }
  .lh-green  { background: linear-gradient(90deg, #2e7d32, #66bb6a); }
  .lh-purple { background: linear-gradient(90deg, #6a1b9a, #ab47bc); }
  .lh-red    { background: linear-gradient(90deg, #b71c1c, #ef5350); }
  .lh-orange { background: linear-gradient(90deg, #bf360c, #ff7043); }
  .lh-teal   { background: linear-gradient(90deg, #00695c, #26a69a); }
  .lh-indigo { background: linear-gradient(90deg, #283593, #5c6bc0); }
  .lh-pink   { background: linear-gradient(90deg, #880e4f, #e91e63); }

  .lesion-body {
    background: white;
    border: 2px solid #ddd;
    border-top: none;
    border-radius: 0 0 10px 10px;
    padding: 16px 20px;
  }
  .lesion-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
  }
  .lesion-mini-card {
    background: #f9f9f9;
    border-radius: 8px;
    border: 1.5px solid #e0e0e0;
    padding: 10px 12px;
  }
  .lmc-title {
    font-family: 'Caveat', cursive;
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 5px;
    border-bottom: 2px dashed;
    padding-bottom: 3px;
  }
  .lmc-blue   { color: #1565c0; border-color: #90caf9; }
  .lmc-green  { color: #2e7d32; border-color: #a5d6a7; }
  .lmc-purple { color: #6a1b9a; border-color: #ce93d8; }
  .lmc-red    { color: #b71c1c; border-color: #ef9a9a; }
  .lmc-orange { color: #e65100; border-color: #ffcc80; }
  .lmc-teal   { color: #00695c; border-color: #80cbc4; }
  .lesion-mini-card p, .lesion-mini-card ul li {
    font-size: 13.5px;
    color: #333;
    line-height: 1.5;
    font-family: 'Kalam', cursive;
  }
  .lesion-mini-card ul { list-style: none; padding: 0; }
  .lesion-mini-card ul li::before { content: 'β€’ '; color: #999; }
  .lesion-mini-card ul li { padding-left: 12px; position: relative; }

  /* ===== TABLE ===== */
  table {
    width: 100%;
    border-collapse: collapse;
    font-family: 'Kalam', cursive;
    font-size: 14px;
    margin-top: 8px;
  }
  th {
    background: #e8eaf6;
    color: #283593;
    font-family: 'Caveat', cursive;
    font-size: 16px;
    padding: 8px 12px;
    border: 1.5px solid #c5cae9;
    text-align: left;
  }
  td {
    padding: 7px 12px;
    border: 1.5px solid #e0e0e0;
    vertical-align: top;
    color: #333;
  }
  tr:nth-child(even) td { background: #f5f5f5; }
  tr:nth-child(odd)  td { background: white; }

  /* ===== SKETCH / DIAGRAM ===== */
  .sketch-box {
    border: 2.5px dashed #90a4ae;
    border-radius: 10px;
    padding: 12px;
    background: #fafafa;
    text-align: center;
    position: relative;
  }
  .sketch-label {
    font-family: 'Caveat', cursive;
    font-size: 14px;
    color: #546e7a;
    margin-top: 6px;
  }
  svg text { font-family: 'Kalam', cursive; }

  /* ===== LAST MINUTE BOX ===== */
  .last-minute {
    background: linear-gradient(135deg, #fce4ec, #f8bbd0);
    border: 3px solid #e91e63;
    border-radius: 14px;
    padding: 16px 22px;
    margin-top: 20px;
    position: relative;
  }
  .last-minute::before {
    content: '⚑ LAST-MINUTE REVISION';
    position: absolute;
    top: -14px;
    left: 16px;
    background: #e91e63;
    color: white;
    font-size: 13px;
    font-weight: 700;
    padding: 3px 12px;
    border-radius: 6px;
    font-family: 'Kalam', cursive;
  }
  .lm-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 6px;
  }
  .lm-item {
    font-size: 14.5px;
    color: #333;
    font-family: 'Kalam', cursive;
    padding-left: 18px;
    position: relative;
    line-height: 1.5;
  }
  .lm-item::before {
    content: 'β˜…';
    position: absolute;
    left: 0;
    color: #e91e63;
    font-size: 13px;
  }

  /* ===== SEPARATOR ===== */
  .sep {
    border: none;
    border-top: 2.5px dashed #bdbdbd;
    margin: 20px 0;
  }

  /* ===== CORNER NOTE ===== */
  .corner-note {
    position: absolute;
    top: 20px;
    right: 30px;
    font-family: 'Caveat', cursive;
    font-size: 16px;
    color: #888;
    transform: rotate(5deg);
  }

  /* ===== NUMBER BADGE ===== */
  .badge {
    display: inline-block;
    background: #e91e63;
    color: white;
    border-radius: 50%;
    width: 22px;
    height: 22px;
    font-size: 13px;
    font-family: 'Kalam', cursive;
    font-weight: 700;
    line-height: 22px;
    text-align: center;
    margin-right: 4px;
    flex-shrink: 0;
  }

  /* ===== INLINE TAG ===== */
  .tag {
    display: inline-block;
    border-radius: 4px;
    padding: 0px 6px;
    font-size: 12.5px;
    font-family: 'Kalam', cursive;
    font-weight: 700;
    margin-left: 4px;
  }
  .tag-imp  { background: #ff8f00; color: white; }
  .tag-histo{ background: #7b1fa2; color: white; }
  .tag-mc   { background: #1565c0; color: white; }
  .tag-key  { background: #c62828; color: white; }

  .section-divider-title {
    font-family: 'Caveat', cursive;
    font-size: 32px;
    font-weight: 700;
    color: #fff;
    background: linear-gradient(90deg, #1a237e, #283593, #3949ab);
    padding: 8px 24px;
    border-radius: 10px;
    margin: 24px 0 16px 0;
    letter-spacing: 1px;
    box-shadow: 2px 3px 8px rgba(0,0,0,0.2);
  }
</style>
</head>
<body>
<div class="page">

  <!-- Spiral Holes -->
  <div class="holes">
    <div class="hole"></div><div class="hole"></div><div class="hole"></div>
    <div class="hole"></div><div class="hole"></div><div class="hole"></div>
    <div class="hole"></div><div class="hole"></div><div class="hole"></div>
    <div class="hole"></div><div class="hole"></div><div class="hole"></div>
    <div class="hole"></div><div class="hole"></div><div class="hole"></div>
    <div class="hole"></div><div class="hole"></div><div class="hole"></div>
  </div>

  <!-- Corner date -->
  <div class="corner-note">Shafer's Ch. 9 &amp; 10</div>

  <!-- Main Title -->
  <div class="main-title">
    <h1>🦷 Benign Lesions of the Oral Cavity</h1>
  </div>
  <p class="subtitle">Reactive / Developmental / Inflammatory Non-Neoplastic Lesions</p>
  <div style="text-align:center; margin-bottom:18px;">
    <span class="source-badge">πŸ“– Shafer's Textbook of Oral Pathology</span>
  </div>

  <!-- Memory Trick -->
  <div class="memory-box">
    <p>
      <span class="hl-purple">"Fibrous Friends Give Pyogenic Papillomas Often, Lipomas Provide Giant Hemangiomas Nearby"</span><br>
      <span style="font-size:16px; color:#555; font-family:'Kalam',cursive;">
        β†’ <b>F</b>ibroma, <b>F</b>ib epulis, <b>G</b>ingival hyperplasia, <b>P</b>yogenic granuloma, <b>Pa</b>pilloma, <b>O</b>steoma/Osteochondroma, <b>L</b>ipoma, <b>P</b>G-PGC, <b>G</b>iant cell epulis, <b>H</b>emangioma, <b>N</b>eurofibroma
      </span>
    </p>
  </div>

  <!-- ══════════════════════════════════════════════════════════
       SECTION DIVIDER: CLASSIFICATION
       ══════════════════════════════════════════════════════════ -->
  <div class="section-divider-title">πŸ“‹ CLASSIFICATION (Shafer's)</div>

  <div class="grid-2">
    <div class="card card-blue">
      <div class="card-title">πŸ”· Reactive / Inflammatory</div>
      <ul>
        <li><span class="hl-blue">Fibrous Epulis</span> (most common gingival lesion)</li>
        <li><span class="hl-red">Pyogenic Granuloma</span></li>
        <li><span class="hl-purple">Peripheral Giant Cell Granuloma</span> (PGCG)</li>
        <li>Peripheral Ossifying Fibroma (POF)</li>
        <li>Inflammatory Fibrous Hyperplasia (epulis fissuratum)</li>
        <li>Drug-induced gingival hyperplasia</li>
        <li>Denture-induced hyperplasia</li>
      </ul>
    </div>
    <div class="card card-green">
      <div class="card-title">🟒 Developmental / Hamartomas</div>
      <ul>
        <li><span class="hl-green">Hemangioma</span> (vascular hamartoma)</li>
        <li><span class="hl-teal">Lymphangioma</span></li>
        <li>Congenital Epulis (Congenital granular cell tumor)</li>
        <li>Melanotic Neuroectodermal Tumor (MNTI)</li>
        <li>Fibrous Dysplasia</li>
        <li>Torus palatinus / Torus mandibularis</li>
      </ul>
    </div>
  </div>

  <div class="grid-3">
    <div class="card card-purple">
      <div class="card-title">🟣 Benign Neoplasms</div>
      <ul>
        <li><span class="hl-purple">Papilloma</span> (HPV-induced)</li>
        <li>Fibroma</li>
        <li>Lipoma</li>
        <li>Neurofibroma</li>
        <li>Neurilemmoma (Schwannoma)</li>
        <li>Granular Cell Tumor</li>
      </ul>
    </div>
    <div class="card card-orange">
      <div class="card-title">🟠 Bone / CT Origin</div>
      <ul>
        <li>Peripheral Cemento-ossifying Fibroma</li>
        <li>Osteoma</li>
        <li>Chondroma</li>
        <li>Central Giant Cell Granuloma</li>
        <li>Myxoma</li>
      </ul>
    </div>
    <div class="card card-teal">
      <div class="card-title">🩡 Cyst-like / Others</div>
      <ul>
        <li>Mucocele (mucous retention / extravasation)</li>
        <li>Ranula (floor of mouth)</li>
        <li>Dermoid cyst</li>
        <li>Lymphoepithelial cyst</li>
        <li>Gingival cyst of adult</li>
      </ul>
    </div>
  </div>

  <hr class="sep">

  <!-- ══════════════════════════════════════════════════════════
       INDIVIDUAL LESIONS
       ══════════════════════════════════════════════════════════ -->
  <div class="section-divider-title">πŸ” HIGH-YIELD INDIVIDUAL LESIONS</div>

  <!-- ===== 1. PYOGENIC GRANULOMA ===== -->
  <div class="lesion-section">
    <div class="lesion-header lh-red">
      <span class="badge">1</span> PYOGENIC GRANULOMA
      <span class="tag tag-imp">IMP β˜…β˜…β˜…</span>
      <span class="tag tag-mc">MC</span>
    </div>
    <div class="lesion-body">
      <div class="lesion-grid">
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-blue">πŸ“Œ Definition &amp; Key Facts</div>
          <ul>
            <li>Misnomer – <b>NOT pyogenic</b>, NOT a true granuloma</li>
            <li>= Exuberant granulation tissue response to <b>local irritation</b></li>
            <li>Synonyms: <b>Pregnancy tumor, Epulis gravidarum</b></li>
            <li>Also called <span class="hl-red">Lobular Capillary Hemangioma</span></li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-orange">⚠️ Etiology</div>
          <ul>
            <li><b>Local irritants</b>: calculus, plaque, trauma</li>
            <li><b>Hormonal</b>: pregnancy (estrogen ↑), puberty</li>
            <li><b>Nutritional deficiency</b>: Vit C deficiency</li>
            <li><b>Poor oral hygiene</b></li>
            <li>Trauma / lip biting</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-green">πŸ”¬ Histopathology</div>
          <ul>
            <li><b>Mass of granulation tissue</b></li>
            <li>Numerous <span class="hl-purple">thin-walled blood vessels</span> (lobular pattern)</li>
            <li>Edematous stroma</li>
            <li>Mixed <b>inflammatory infiltrate</b> (PMNs, lymphocytes)</li>
            <li>Ulcerated surface covered by <b>fibrinous membrane</b></li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-red">🩺 Clinical Features</div>
          <ul>
            <li>Site: <span class="hl-blue">Gingiva (most common)</span>, lips, tongue</li>
            <li>Gender: <span class="hl-red">F &gt; M</span> (esp. during pregnancy)</li>
            <li>Age: <b>2nd–3rd decade</b> (pregnancy); young adults</li>
            <li>Appearance: <b>Pedunculated / sessile</b>, red–pink, bleeds easily</li>
            <li>Size: few mm – 2 cm; soft, compressible</li>
            <li>Surface: smooth / lobulated, often <b>ulcerated</b></li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-purple">πŸ”‘ Key Points</div>
          <ul>
            <li>During pregnancy β†’ <b>Epulis gravidarum</b></li>
            <li>Regresses post-partum but surgical excision needed if persists</li>
            <li>Recurrence if local irritants not removed</li>
            <li><span class="hl-orange">Blanches on pressure</span> (vascular)</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-teal">πŸ’Š Management</div>
          <ul>
            <li>Eliminate <b>local irritants</b> (scaling)</li>
            <li><b>Surgical excision</b> with periosteum</li>
            <li>Address etiological factors (hormonal, nutritional)</li>
            <li>During pregnancy: defer if possible; excise if ↑ bleeding</li>
          </ul>
        </div>
      </div>
      <!-- Pathogenesis flow -->
      <div style="margin-top: 10px;">
        <span style="font-family:'Caveat',cursive; font-size:17px; color:#b71c1c; font-weight:700;">Pathogenesis β†’</span>
        <div class="flow">
          <div class="flow-step">Local Irritant / Trauma</div>
          <div class="flow-arrow">β†’</div>
          <div class="flow-step">Tissue Injury</div>
          <div class="flow-arrow">β†’</div>
          <div class="flow-step">Inflammatory Response + ↑ Estrogen</div>
          <div class="flow-arrow">β†’</div>
          <div class="flow-step">Angiogenesis ↑</div>
          <div class="flow-arrow">β†’</div>
          <div class="flow-step">Exuberant Granulation Tissue</div>
          <div class="flow-arrow">β†’</div>
          <div class="flow-step">Pyogenic Granuloma</div>
        </div>
      </div>
    </div>
  </div>

  <!-- ===== 2. PERIPHERAL GIANT CELL GRANULOMA ===== -->
  <div class="lesion-section">
    <div class="lesion-header lh-purple">
      <span class="badge">2</span> PERIPHERAL GIANT CELL GRANULOMA (PGCG)
      <span class="tag tag-imp">IMP β˜…β˜…β˜…</span>
    </div>
    <div class="lesion-body">
      <div class="lesion-grid">
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-blue">πŸ“Œ Basics</div>
          <ul>
            <li>AKA: <span class="hl-purple">Giant cell epulis / Osteoclastoma of soft tissue</span></li>
            <li>Purely <b>SOFT TISSUE</b> lesion (peripheral)</li>
            <li>Arises from <b>periosteum / periodontal ligament</b></li>
            <li>Anterior to molars most common</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-red">🩺 Clinical Features</div>
          <ul>
            <li>Site: <span class="hl-blue">Interdental gingiva</span>, edentulous ridge</li>
            <li>Color: <span class="hl-red">Bluish-purple / dark red</span> (hallmark!)</li>
            <li>Pedunculated or sessile; bleeds on touch</li>
            <li>May show "cupping resorption" on X-ray</li>
            <li>F &gt; M, any age (peak: 5th–6th decade)</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-green">πŸ”¬ Histopathology</div>
          <ul>
            <li><span class="hl-purple">Multinucleated giant cells</span> in vascular stroma</li>
            <li>Mononuclear stromal cells (spindle shaped)</li>
            <li>Areas of <b>hemorrhage, hemosiderin</b> deposits β†’ bluish color</li>
            <li>Fibrous stroma; bone spicules occasionally</li>
            <li>Overlying epithelium often <b>ulcerated</b></li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-purple">DDx</div>
          <ul>
            <li>Pyogenic granuloma (red, not bluish)</li>
            <li>Central GCG (involves bone)</li>
            <li>Brown tumor of hyperparathyroidism</li>
            <li>Peripheral ossifying fibroma</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-teal">πŸ’Š Management</div>
          <ul>
            <li>Surgical excision <b>down to bone</b></li>
            <li>Remove irritants; scale &amp; root plane</li>
            <li>Recurrence rate: <b>~10%</b></li>
            <li>Rule out <b>hyperparathyroidism</b> (serum Ca, PTH)</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-orange">⚑ Key Distinguishing</div>
          <ul>
            <li><span class="hl-purple">BLUISH-PURPLE color = PGCG hallmark</span></li>
            <li>Only lesion anterior to molar with that color</li>
            <li>"Cupping resorption" of alveolar bone on X-ray</li>
            <li>Check serum Ca &amp; PTH to rule out brown tumor</li>
          </ul>
        </div>
      </div>
    </div>
  </div>

  <!-- ===== 3. FIBROUS EPULIS ===== -->
  <div class="lesion-section">
    <div class="lesion-header lh-blue">
      <span class="badge">3</span> FIBROUS EPULIS (Irritation Fibroma / Fibroma)
      <span class="tag tag-mc">Most Common Oral Tumor</span>
    </div>
    <div class="lesion-body">
      <div class="lesion-grid">
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-blue">πŸ“Œ Definition</div>
          <ul>
            <li>Reactive <b>fibrous hyperplasia</b> to chronic irritation</li>
            <li>Most common benign tumor of oral cavity</li>
            <li>TRUE FIBROMA is rare; most are <b>fibrous hyperplasias</b></li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-red">🩺 Clinical Features</div>
          <ul>
            <li>Site: <span class="hl-blue">Buccal mucosa (along occlusal plane)</span></li>
            <li>Color: <b>Normal pink / pale</b></li>
            <li>Firm, sessile, smooth surface</li>
            <li>Asymptomatic; does NOT bleed</li>
            <li>Slow growing; F slightly &gt; M</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-green">πŸ”¬ Histopathology</div>
          <ul>
            <li>Dense <b>fibrous CT</b> with few fibroblasts</li>
            <li>Covered by stratified squamous epithelium</li>
            <li>Minimal inflammatory cells</li>
            <li>May show <b>ossification / calcification</b> (ossifying fibroma)</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-purple">DDx</div>
          <ul>
            <li>Neurofibroma (softer)</li>
            <li>Lipoma (yellowish)</li>
            <li>Mucocele (fluctuant)</li>
            <li>Peripheral ossifying fibroma</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-orange">⚑ POF vs Fibroma</div>
          <table>
            <tr><th>Feature</th><th>Fibroma</th><th>POF</th></tr>
            <tr><td>Site</td><td>Buccal mucosa</td><td>Gingiva only</td></tr>
            <tr><td>Calcification</td><td>Rare</td><td>Yes (dystrophic)</td></tr>
            <tr><td>Recurrence</td><td>Low</td><td>~16%</td></tr>
          </table>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-teal">πŸ’Š Management</div>
          <ul>
            <li><b>Conservative surgical excision</b></li>
            <li>Remove causative irritant</li>
            <li>Low recurrence if excision is complete</li>
          </ul>
        </div>
      </div>
    </div>
  </div>

  <!-- ===== 4. PAPILLOMA ===== -->
  <div class="lesion-section">
    <div class="lesion-header lh-green">
      <span class="badge">4</span> SQUAMOUS CELL PAPILLOMA
      <span class="tag tag-imp">IMP β˜…β˜…</span>
    </div>
    <div class="lesion-body">
      <div class="lesion-grid">
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-blue">πŸ“Œ Basics</div>
          <ul>
            <li>Benign epithelial neoplasm caused by <span class="hl-red">HPV (types 6 &amp; 11)</span></li>
            <li>Most common benign epithelial neoplasm of oral cavity</li>
            <li>Most common site: <b>soft palate, uvula, tongue</b></li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-red">🩺 Clinical Features</div>
          <ul>
            <li>Exophytic, <b>cauliflower / wart-like</b> appearance</li>
            <li>White (hyperkeratotic) or normal color</li>
            <li>Pedunculated with narrow stalk</li>
            <li>Soft, painless; size: 0.5–1 cm</li>
            <li>Solitary (usually); multiple in immunocompromised</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-green">πŸ”¬ Histopathology</div>
          <ul>
            <li>Finger-like papillary projections of <b>stratified squamous epithelium</b></li>
            <li>Fibrovascular core in each papilla</li>
            <li><span class="hl-purple">Koilocytes</span> (HPV-infected cells): perinuclear halos, hyperchromatic nuclei</li>
            <li>Surface: hyperkeratosis or parakeratosis</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-purple">Key: Koilocyte!</div>
          <!-- SVG sketch of koilocyte -->
          <svg width="130" height="70" viewBox="0 0 130 70">
            <ellipse cx="65" cy="35" rx="55" ry="25" fill="#fce4ec" stroke="#e91e63" stroke-width="2"/>
            <ellipse cx="65" cy="35" rx="15" ry="10" fill="#f48fb1" stroke="#c62828" stroke-width="1.5"/>
            <ellipse cx="65" cy="35" rx="5" ry="5" fill="#c62828"/>
            <text x="65" y="68" text-anchor="middle" font-size="10" fill="#880e4f">Koilocyte = perinuclear halo</text>
          </svg>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-orange">DDx</div>
          <ul>
            <li>Verruca vulgaris (HPV 2,4 - skin type)</li>
            <li>Condyloma acuminatum (HPV 6,11 - broader base)</li>
            <li>Verrucous carcinoma</li>
            <li>Focal epithelial hyperplasia (Heck's disease)</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-teal">πŸ’Š Management</div>
          <ul>
            <li>Surgical excision with base</li>
            <li>Laser ablation (COβ‚‚ laser)</li>
            <li>Recurrence uncommon</li>
            <li>No malignant potential with HPV 6 &amp; 11</li>
          </ul>
        </div>
      </div>
    </div>
  </div>

  <!-- ===== 5. MUCOCELE ===== -->
  <div class="lesion-section">
    <div class="lesion-header lh-teal">
      <span class="badge">5</span> MUCOCELE (Mucous Extravasation / Retention Cyst)
      <span class="tag tag-imp">IMP β˜…β˜…β˜…</span>
    </div>
    <div class="lesion-body">
      <div class="lesion-grid">
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-blue">πŸ“Œ Types</div>
          <ul>
            <li><span class="hl-red">Extravasation type</span> (common): trauma β†’ rupture of duct β†’ mucin pools in CT β†’ no epithelial lining</li>
            <li><span class="hl-blue">Retention type</span> (rare): obstruction of duct β†’ cystic dilatation β†’ <b>lined by epithelium</b></li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-red">🩺 Clinical Features</div>
          <ul>
            <li>Site: <span class="hl-blue">Lower lip</span> (most common!), floor of mouth, buccal mucosa</li>
            <li>Bluish, translucent, fluctuant swelling</li>
            <li>Size: few mm – 1 cm</li>
            <li>History of <b>recurrent swelling &amp; rupture</b></li>
            <li>Ranula = mucocele of <b>floor of mouth</b> (from sublingual gland)</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-green">πŸ”¬ Histopathology</div>
          <ul>
            <li><b>Extravasation</b>: Pool of mucin in CT, surrounded by <span class="hl-purple">granulation tissue</span>, macrophages (muciphages), NO epithelial lining</li>
            <li><b>Retention</b>: Cyst lined by <b>ductal epithelium</b>, lumen filled with mucin</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-purple">Sketch</div>
          <svg width="140" height="80" viewBox="0 0 140 80">
            <rect x="5" y="5" width="130" height="70" rx="8" fill="#e0f7fa" stroke="#00838f" stroke-width="1.5"/>
            <ellipse cx="70" cy="35" rx="40" ry="22" fill="#b2ebf2" stroke="#00838f" stroke-width="2"/>
            <text x="70" y="38" text-anchor="middle" font-size="11" fill="#006064" font-weight="bold">Mucin pool</text>
            <text x="70" y="65" text-anchor="middle" font-size="10" fill="#004d40">(No epithelial lining)</text>
            <text x="70" y="75" text-anchor="middle" font-size="9" fill="#555">Extravasation type</text>
          </svg>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-orange">DDx</div>
          <ul>
            <li>Fibroma (firm, no bluish tint)</li>
            <li>Lymphangioma</li>
            <li>Hemangioma (blanches on pressure)</li>
            <li>Cystic hygroma (neck)</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-teal">πŸ’Š Management</div>
          <ul>
            <li><b>Surgical excision</b> with minor salivary gland</li>
            <li>Marsupialization for ranula</li>
            <li>Avoid simple enucleation (high recurrence)</li>
            <li>Recurrence common if gland not removed</li>
          </ul>
        </div>
      </div>
    </div>
  </div>

  <!-- ===== 6. HEMANGIOMA ===== -->
  <div class="lesion-section">
    <div class="lesion-header lh-orange">
      <span class="badge">6</span> HEMANGIOMA
      <span class="tag tag-imp">IMP β˜…β˜…</span>
    </div>
    <div class="lesion-body">
      <div class="lesion-grid">
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-blue">πŸ“Œ Basics</div>
          <ul>
            <li>Benign vascular lesion; may be <b>true neoplasm or hamartoma</b></li>
            <li>Most common vascular tumor of oral cavity</li>
            <li>Congenital or appears in early childhood</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-red">🩺 Clinical</div>
          <ul>
            <li>Site: <span class="hl-blue">Tongue, lips, buccal mucosa</span></li>
            <li>Red–blue, soft, compressible</li>
            <li><span class="hl-red">Blanches on pressure</span> (diascopy +ve)</li>
            <li>Strawberry hemangioma β†’ involutes with age</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-green">πŸ”¬ Histopathology</div>
          <ul>
            <li><b>Capillary type</b>: lobules of capillaries, endothelium-lined</li>
            <li><b>Cavernous type</b>: large dilated blood-filled sinusoids</li>
            <li>Phleboliths (calcified thrombi) in cavernous type</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-purple">πŸ”‘ Key</div>
          <ul>
            <li><b>Diascopy</b>: blanches β†’ hemangioma</li>
            <li><b>Does NOT blanche</b> β†’ PGCG, other lesions</li>
            <li>Phleboliths on X-ray β†’ cavernous hemangioma</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-orange">🧩 Syndromes</div>
          <ul>
            <li><b>Sturge-Weber</b>: port-wine stain + oral hemangioma</li>
            <li><b>Rendu-Osler-Weber</b>: hereditary hemorrhagic telangiectasia</li>
            <li><b>Maffucci syndrome</b>: hemangioma + enchondroma</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-teal">πŸ’Š Management</div>
          <ul>
            <li>Small: observation (many involute)</li>
            <li>Sclerotherapy, laser therapy</li>
            <li>Surgical excision for large lesions</li>
            <li>Propranolol for infantile hemangioma</li>
          </ul>
        </div>
      </div>
    </div>
  </div>

  <!-- ===== 7. PERIPHERAL OSSIFYING FIBROMA ===== -->
  <div class="lesion-section">
    <div class="lesion-header lh-indigo">
      <span class="badge">7</span> PERIPHERAL OSSIFYING FIBROMA (POF)
      <span class="tag tag-imp">IMP β˜…β˜…</span>
    </div>
    <div class="lesion-body">
      <div class="lesion-grid">
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-blue">πŸ“Œ Basics</div>
          <ul>
            <li>Reactive <b>gingival overgrowth</b> with dystrophic calcification</li>
            <li>Arises from <b>periodontal ligament cells</b></li>
            <li>Contains: fibrous tissue + calcification (bone/cementum)</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-red">🩺 Clinical</div>
          <ul>
            <li>Site: <span class="hl-blue">Interdental papilla, anterior maxilla</span></li>
            <li>Pink-red, sessile; may be ulcerated</li>
            <li>Hard on palpation (calcifications)</li>
            <li>F &gt; M, age: 2nd–3rd decade</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-green">πŸ”¬ Histopathology</div>
          <ul>
            <li><b>Cellular fibrous stroma</b></li>
            <li>Foci of <span class="hl-purple">mineralization</span>: bone trabeculae, cementum-like material, dystrophic calcification</li>
            <li>Ulcerated surface with inflammatory infiltrate</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-orange">Radiograph</div>
          <ul>
            <li>Radiopaque foci within soft tissue mass</li>
            <li>"Scattered calcifications"</li>
            <li>Superficial bone erosion possible</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-purple">DDx</div>
          <ul>
            <li>Pyogenic granuloma (softer, redder)</li>
            <li>PGCG (bluish-purple)</li>
            <li>Fibroma (no calcification)</li>
            <li>Gingival fibrous hyperplasia</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-teal">πŸ’Š Management</div>
          <ul>
            <li>Thorough <b>excision down to bone + periosteum</b></li>
            <li>Curettage of underlying bone</li>
            <li>Recurrence: <span class="hl-red">~16%</span> (highest of epulides)</li>
          </ul>
        </div>
      </div>
    </div>
  </div>

  <!-- ===== 8. DRUG-INDUCED GINGIVAL HYPERPLASIA ===== -->
  <div class="lesion-section">
    <div class="lesion-header lh-pink">
      <span class="badge">8</span> DRUG-INDUCED GINGIVAL HYPERPLASIA (DIGH)
      <span class="tag tag-imp">IMP β˜…β˜…β˜…</span>
    </div>
    <div class="lesion-body">
      <div class="lesion-grid">
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-blue">πŸ“Œ Key Drugs (Mnemonic: PCN)</div>
          <ul>
            <li><span class="hl-red">P</span>henytoin (Dilantin) – <b>most common / classic</b></li>
            <li><span class="hl-blue">C</span>yclosporin (immunosuppressant)</li>
            <li><span class="hl-green">N</span>ifedipine (Ca-channel blocker)</li>
            <li>Also: verapamil, diltiazem, valproate</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-orange">Pathogenesis Flow</div>
          <div class="flow" style="flex-direction:column; gap:3px;">
            <div class="flow-step" style="background:#fce4ec;">Drug β†’ ↓ Folic Acid uptake</div>
            <div class="flow-arrow">↓</div>
            <div class="flow-step" style="background:#fce4ec;">↓ Collagenase activity</div>
            <div class="flow-arrow">↓</div>
            <div class="flow-step" style="background:#fce4ec;">Collagen accumulation</div>
            <div class="flow-arrow">↓</div>
            <div class="flow-step" style="background:#fce4ec;">Gingival overgrowth</div>
          </div>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-red">🩺 Clinical</div>
          <ul>
            <li>Begins in <b>interdental papilla</b></li>
            <li>Firm, <b>non-tender</b>, stippled</li>
            <li>Does NOT bleed (unlike PG)</li>
            <li>Worse with <b>poor oral hygiene</b></li>
            <li>Phenytoin: affects anterior &gt; posterior</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-green">πŸ”¬ Histopathology</div>
          <ul>
            <li>Hyperplastic stratified squamous epithelium</li>
            <li><b>Acanthosis, elongated rete ridges</b></li>
            <li>Dense fibrous CT with <span class="hl-purple">collagen bundles</span></li>
            <li>Minimal inflammation (unless 2Β° to poor hygiene)</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-purple">πŸ”‘ Phenytoin DIGH</div>
          <ul>
            <li>Incidence: <b>50% of patients</b> on phenytoin</li>
            <li>Children more affected than adults</li>
            <li>Folic acid supplementation may help</li>
            <li>Not seen in edentulous areas</li>
          </ul>
        </div>
        <div class="lesion-mini-card">
          <div class="lmc-title lmc-teal">πŸ’Š Management</div>
          <ul>
            <li>Improve <b>oral hygiene</b></li>
            <li>Drug substitution (with physician)</li>
            <li><b>Gingivectomy / periodontal surgery</b></li>
            <li>Folic acid for phenytoin cases</li>
            <li>Recurrence if drug continued</li>
          </ul>
        </div>
      </div>
    </div>
  </div>

  <hr class="sep">

  <!-- ===== COMPARISON TABLE ===== -->
  <div class="section-divider-title">πŸ“Š COMPARISON TABLE – Epulides</div>
  <div class="full-width">
    <div style="overflow-x:auto; border-radius:12px; border: 2px solid #c5cae9;">
      <table>
        <thead>
          <tr>
            <th>Feature</th>
            <th>Pyogenic Granuloma</th>
            <th>PGCG</th>
            <th>POF</th>
            <th>Fibrous Epulis</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td><b>Color</b></td>
            <td>Bright Red/Pink</td>
            <td><span class="hl-purple">Bluish-purple</span></td>
            <td>Pink-Red</td>
            <td>Normal Pink</td>
          </tr>
          <tr>
            <td><b>Bleeds easily</b></td>
            <td>Yes β˜…</td>
            <td>Yes</td>
            <td>Sometimes</td>
            <td>No</td>
          </tr>
          <tr>
            <td><b>Calcification</b></td>
            <td>No</td>
            <td>No</td>
            <td><span class="hl-green">Yes</span></td>
            <td>Rare</td>
          </tr>
          <tr>
            <td><b>Origin</b></td>
            <td>Granulation tissue</td>
            <td>Periosteum/PDL</td>
            <td>PDL</td>
            <td>Fibrous CT</td>
          </tr>
          <tr>
            <td><b>Histo hallmark</b></td>
            <td>Lobular capillaries</td>
            <td><span class="hl-purple">Multi-nucleated GC</span></td>
            <td>Fibrous + calcif.</td>
            <td>Dense collagen</td>
          </tr>
          <tr>
            <td><b>Recurrence</b></td>
            <td>If irritant remains</td>
            <td>~10%</td>
            <td><span class="hl-red">~16%</span> (highest)</td>
            <td>Low</td>
          </tr>
          <tr>
            <td><b>X-ray changes</b></td>
            <td>None</td>
            <td>Cupping resorption</td>
            <td>Radiopaque foci</td>
            <td>None</td>
          </tr>
          <tr>
            <td><b>Special concern</b></td>
            <td>Rule out pregnancy</td>
            <td>Rule out hyperparathyroidism</td>
            <td>High recurrence</td>
            <td>None</td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>

  <hr class="sep">

  <!-- ===== DIFFERENTIAL DIAGNOSIS FLOWCHART ===== -->
  <div class="section-divider-title">πŸ”„ DIFFERENTIAL DIAGNOSIS APPROACH</div>
  <div class="grid-2">
    <div class="card card-indigo">
      <div class="card-title">πŸ”΅ By Color</div>
      <ul>
        <li><span class="hl-red">Red + bleeds = Pyogenic Granuloma</span></li>
        <li><span class="hl-purple">Bluish-purple = PGCG</span></li>
        <li><span class="hl-blue">Bluish + translucent = Mucocele / Hemangioma</span></li>
        <li>Normal pink, firm = Fibroma</li>
        <li>White, wart-like = Papilloma</li>
        <li>Yellow, soft = Lipoma</li>
      </ul>
    </div>
    <div class="card card-cyan">
      <div class="card-title">🩡 By Blanching</div>
      <ul>
        <li><span class="hl-green">Blanches β†’ Vascular (Hemangioma)</span></li>
        <li>Does NOT blanch β†’ PGCG, Mucocele</li>
        <li><b>Diascopy test</b>: press glass on lesion</li>
        <li>+ diascopy = blood in vessels β†’ hemangioma</li>
        <li>– diascopy = blood outside vessels β†’ PGCG</li>
      </ul>
    </div>
  </div>

  <hr class="sep">

  <!-- ===== LAST MINUTE BOX ===== -->
  <div class="last-minute">
    <div class="lm-grid">
      <div class="lm-item">Most common benign tumor of oral cavity = <span class="hl-blue">FIBROMA</span></div>
      <div class="lm-item">Most common gingival lesion = <span class="hl-blue">Fibrous Epulis</span></div>
      <div class="lm-item">Pyogenic granuloma of pregnancy = <span class="hl-red">Epulis Gravidarum</span></div>
      <div class="lm-item">PGCG hallmark color = <span class="hl-purple">Bluish-Purple</span> (hemosiderin)</div>
      <div class="lm-item">HPV 6 &amp; 11 β†’ <span class="hl-green">Oral Papilloma</span> (no malignant potential)</div>
      <div class="lm-item">Koilocytes (perinuclear halos) β†’ <span class="hl-green">Papilloma histology</span></div>
      <div class="lm-item">Mucocele – lower lip, extravasation type, NO epithelial lining</div>
      <div class="lm-item">POF has highest recurrence among epulides = <span class="hl-red">~16%</span></div>
      <div class="lm-item">Drug-induced gingival hyperplasia: <span class="hl-purple">PCN mnemonic</span> (Phenytoin, Cyclosporin, Nifedipine)</div>
      <div class="lm-item">Diascopy positive = <span class="hl-green">Hemangioma</span> (blanches)</div>
      <div class="lm-item">Brown tumor of hyperparathyroidism = histologically like <span class="hl-purple">PGCG</span> β†’ always check Ca &amp; PTH</div>
      <div class="lm-item">Ranula = mucocele of floor of mouth (from sublingual gland)</div>
    </div>
  </div>

  <!-- One-line summary -->
  <div style="margin-top:20px; text-align:center;">
    <div style="display:inline-block; background:#e8eaf6; border:3px double #3949ab; border-radius:12px; padding:10px 30px;">
      <span style="font-family:'Caveat',cursive; font-size:22px; color:#1a237e; font-weight:700;">
        πŸ’‘ One-line Summary: "Benign oral lesions = REACTIVE (irritation/hormonal) &gt; DEVELOPMENTAL &gt; TRUE NEOPLASMS – treat by excision + remove cause!"
      </span>
    </div>
  </div>

  <div style="margin-top:16px; text-align:right; font-family:'Caveat',cursive; font-size:16px; color:#bbb;">
    Orris AI Notes β€’ Shafer's Oral Pathology
  </div>

</div>
</body>
</html>
Running Command

which chromium-browser || which chromium || which google-chrome || which google-chrome-stable 2>/dev/null; node --version; npm list -g puppeteer 2>/dev/null | head -5

Running Command

cd /home/daytona/workspace/oral-revision && npm install puppeteer 2>&1 | tail -5

Running Command

python3 -c "import playwright; print('playwright ok')" 2>/dev/null || python3 -c "from selenium import webdriver; print('selenium ok')" 2>/dev/null || echo "neither available"; python3 -c "import subprocess; r=subprocess.run(['/usr/bin/chromium','--version'],capture_output=True,text=True); print(r.stdout)" 2>/dev/null

Running Command

/usr/bin/chromium --headless=new --no-sandbox --disable-gpu --screenshot=/home/daytona/workspace/oral-revision/benign_oral_lesions.png --window-size=1400,5000 "file:///home/daytona/workspace/oral-revision/benign_oral_lesions.html" 2>&1 | head -20; ls -lh /home/daytona/workspace/oral-revision/

Running Command

python3 -c " from PIL import Image img = Image.open('/home/daytona/workspace/oral-revision/benign_oral_lesions.png') print('Size:', img.size) print('Mode:', img.mode) "

Running Command

/usr/bin/chromium --headless=new --no-sandbox --disable-gpu --print-to-pdf=/home/daytona/workspace/oral-revision/benign_oral_lesions.pdf --print-to-pdf-no-header --no-pdf-header-footer --window-size=1600,10000 "file:///home/daytona/workspace/oral-revision/benign_oral_lesions.html" 2>&1 | grep -v dbus | grep -v "Failed\|ERROR\|object_proxy\|NameHasOwner\|GetAll" | head -10; ls -lh /home/daytona/workspace/oral-revision/

Running Command

# Get actual page height via chromium JS /usr/bin/chromium --headless=new --no-sandbox --disable-gpu \ --run-all-compositor-stages-before-draw \ --virtual-time-budget=5000 \ --screenshot=/home/daytona/workspace/oral-revision/benign_oral_lesions_full.png \ --window-size=1400,9000 \ "file:///home/daytona/workspace/oral-revision/benign_oral_lesions.html" 2>/dev/null python3 -c " from PIL import Image img = Image.open('/home/daytona/workspace/oral-revision/benign_oral_lesions_full.png') print('Full size:', img.size) " ls -lh /home/daytona/workspace/oral-revision/

Running Command

python3 -c " from PIL import Image, ImageChops import numpy as np img = Image.open('/home/daytona/workspace/oral-revision/benign_oral_lesions_full.png') arr = np.array(img) # Find last row that is not near-white (background is #fffef5 ~ 255,254,245) non_white_rows = np.where(arr.min(axis=(1,2)) < 240)[0] if len(non_white_rows) > 0: last_row = non_white_rows[-1] + 80 # add padding last_row = min(last_row, img.height) cropped = img.crop((0, 0, img.width, last_row)) cropped.save('/home/daytona/workspace/oral-revision/benign_oral_lesions_final.png', quality=95, optimize=True) print(f'Cropped to: {cropped.size}') else: print('Could not find content end; saving as-is') img.save('/home/daytona/workspace/oral-revision/benign_oral_lesions_final.png') print(img.size) " ls -lh /home/daytona/workspace/oral-revision/benign_oral_lesions_final.png

Running Command

python3 -c " from PIL import Image import numpy as np img = Image.open('/home/daytona/workspace/oral-revision/benign_oral_lesions_full.png') arr = np.array(img) # Sample last 200 rows bottom = arr[-200:,:,:] print('Bottom region min pixel:', bottom.min(), 'max pixel:', bottom.max()) print('Bottom avg color:', bottom.mean(axis=(0,1))) # Is it whitespace? white_mask = (bottom > 245).all(axis=2) pct_white = white_mask.sum() / white_mask.size * 100 print(f'Bottom 200px: {pct_white:.1f}% white pixels') "

Running Command

/usr/bin/chromium --headless=new --no-sandbox --disable-gpu \ --run-all-compositor-stages-before-draw \ --virtual-time-budget=5000 \ --screenshot=/home/daytona/workspace/oral-revision/benign_oral_lesions_final.png \ --window-size=1400,11000 \ "file:///home/daytona/workspace/oral-revision/benign_oral_lesions.html" 2>/dev/null python3 -c " from PIL import Image import numpy as np img = Image.open('/home/daytona/workspace/oral-revision/benign_oral_lesions_final.png') arr = np.array(img) non_bg = np.where(~((arr[:,:,0]>240) & (arr[:,:,1]>235) & (arr[:,:,2]>225)))[0] if len(non_bg): print('Last content row:', non_bg[-1], '/', img.height) else: print('All bg?') print('Image size:', img.size) " ls -lh /home/daytona/workspace/oral-revision/benign_oral_lesions_final.png

Running Command

python3 -c " from PIL import Image import numpy as np img = Image.open('/home/daytona/workspace/oral-revision/benign_oral_lesions_final.png') # Crop to content + 80px padding cropped = img.crop((0, 0, 1400, 6052 + 80)) cropped.save('/home/daytona/workspace/oral-revision/benign_oral_lesions_final.png', optimize=True) print('Final image size:', cropped.size) " ls -lh /home/daytona/workspace/oral-revision/benign_oral_lesions_final.png

Your revision notes are ready! Here are your download links:

πŸ“„ Revision Note Page - PNG Image (1400 Γ— 6132 px):

benign oral lesions final

Image Β· PNG

πŸ“‹ PDF Version:

benign oral lesions

PDF Document Β· PDF

🌐 HTML Source (open in browser for best quality):

benign oral lesions

HTML File Β· HTML


Here's what's packed into the notes:
Page structure:
  • Lined notebook paper aesthetic with red margin line and spiral holes
  • Handwritten fonts (Kalam, Caveat, Patrick Hand)
  • Color-coded section headers with gradients
Content covered (Shafer's-aligned):
  1. Classification - Reactive/Inflammatory, Developmental, Benign Neoplasms, Bone Origin, Cyst-like
  2. 8 Individual Lesion deep-dives (each with 6 mini-cards):
    • Pyogenic Granuloma (with pathogenesis flow diagram)
    • Peripheral Giant Cell Granuloma
    • Fibrous Epulis / Fibroma
    • Squamous Cell Papilloma (with Koilocyte SVG sketch)
    • Mucocele (with mucin pool diagram)
    • Hemangioma (with syndromes)
    • Peripheral Ossifying Fibroma
    • Drug-induced Gingival Hyperplasia (PCN mnemonic + pathogenesis flow)
  3. Comparison Table - all 4 epulides side by side
  4. DDx approach by color and diascopy test
  5. Last-minute revision box with 12 starred high-yield facts
  6. Memory trick + One-line summary
This is a shared conversation. Sign in to Orris to start your own chat.