# HTML Report Template Resources

This file contains the complete templates and styles used for generating interactive HTML SEO and GEO reports.

## 📋 Template Index

1. [Base HTML Structure](#1-base-html-structure)
2. [CSS Style Library](#2-css-style-library)
3. [Interactive Components](#3-interactive-components)
4. [Full Report Template](#4-full-report-template)
5. [Export Functionality Scripts](#5-export-functionality-scripts)

---

## 1. Base HTML Structure

### HTML5 Template

```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="{report_description}">
    <title>{report_title} - {domain}</title>

    <!-- Stylesheet -->
    <link rel="stylesheet" href="styles.css">

    <!-- Chart.js -->
    <script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
</head>
<body>
    <!-- Navbar -->
    <nav class="navbar">
        <div class="nav-brand">
            <h1>🤖 GEO Reporting System</h1>
        </div>
        <div class="nav-links">
            <a href="#summary">Executive Summary</a>
            <a href="#engines">Engine Performance</a>
            <a href="#competitors">Competitors</a>
            <a href="#recommendations">Recommendations</a>
        </div>
    </nav>

    <!-- Main Container -->
    <div class="container">
        <!-- Header -->
        <header class="header">
            <h1>{report_title}</h1>
            <p class="meta">
                Domain: <span class="domain">{domain}</span> |
                Period: <span class="period">{start_date} to {end_date}</span> |
                Generated: <span class="timestamp">{timestamp}</span>
            </p>
        </header>

        <!-- Main Content -->
        <main>
            {content_sections}
        </main>

        <!-- Footer -->
        <footer class="footer">
            <p>Generated by Gemini CLI SEO Assistant | <a href="#">View Online Version</a></p>
        </footer>
    </div>

    <!-- Scripts -->
    <script src="scripts.js"></script>
</body>
</html>
```

---

## 2. CSS Style Library

### Full Stylesheet (styles.css)

```css
/* ========================================
   Base Resets and Variables
   ======================================== */
:root {
    --primary-color: #667eea;
    --secondary-color: #764ba2;
    --success-color: #4CAF50;
    --warning-color: #FF9800;
    --danger-color: #F44336;
    --info-color: #2196F3;
    --text-color: #333;
    --text-light: #666;
    --bg-light: #f5f5f5;
    --bg-white: #ffffff;
    --border-color: #ddd;
    --shadow-sm: 0 2px 4px rgba(0,0,0,0.1);
    --shadow-md: 0 4px 6px rgba(0,0,0,0.1);
    --shadow-lg: 0 10px 20px rgba(0,0,0,0.1);
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    line-height: 1.6;
    color: var(--text-color);
    background: var(--bg-light);
}

/* ========================================
   Navbar
   ======================================== */
.navbar {
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
    color: white;
    padding: 1rem 2rem;
    box-shadow: var(--shadow-md);
    position: sticky;
    top: 0;
    z-index: 1000;
}

.nav-links {
    display: flex;
    gap: 2rem;
}

.nav-links a {
    color: white;
    text-decoration: none;
    transition: background 0.3s;
}

/* ========================================
   Metric Cards
   ======================================== */
.metrics-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1.5rem;
}

.metric-card {
    background: var(--bg-white);
    padding: 1.5rem;
    text-align: center;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.metric-value {
    font-size: 2.5rem;
    font-weight: bold;
    color: var(--primary-color);
}

/* ========================================
   Collapsible Sections
   ======================================== */
.collapsible {
    cursor: pointer;
    width: 100%;
    text-align: left;
    padding: 1rem;
    background: var(--bg-light);
    border: none;
    font-weight: bold;
}

.collapsible-content {
    display: none;
    padding: 1.5rem;
    background: var(--bg-white);
}

.show {
    display: block;
}
```

---

## 3. Interactive Components

### Data Filter

```html
<div class="filter-section">
    <h3>Filter Data</h3>
    <div class="filter-group">
        <label for="engine-filter">AI Engine:</label>
        <select id="engine-filter" onchange="filterData()">
            <option value="all">All Engines</option>
            <option value="chatgpt">ChatGPT</option>
            <option value="Gemini">Gemini</option>
            <option value="perplexity">Perplexity</option>
            <option value="google-sge">Google SGE</option>
        </select>
    </div>
</div>
```

---

## 4. Full Report Template

### GEO Comprehensive Report Template

```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>GEO Comprehensive Report - {domain}</title>
    <link rel="stylesheet" href="styles.css">
    <script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
</head>
<body>
    <div class="container">
        <header class="header">
            <h1>🤖 GEO Comprehensive Report</h1>
            <p>Domain: {domain} | Period: {start_date} to {end_date}</p>
        </header>

        <section id="summary" class="section">
            <h2>📊 Executive Summary</h2>
            <div class="metrics-grid">
                <!-- Cards for Score, Citations, Ranking -->
            </div>
        </section>

        <section class="charts-section">
            <h2>📈 Citation Trend Analysis</h2>
            <canvas id="trendChart"></canvas>
        </section>

        <div class="export-buttons">
            <button class="button button-primary" onclick="exportPDF()">📄 Export PDF</button>
            <button class="button button-secondary" onclick="exportExcel()">📊 Export Excel</button>
        </div>
    </div>
</body>
</html>
```

---

## 5. Export Functionality Scripts

### Export Helper (export.js)

```javascript
// Export to PDF using browser print
function exportPDF() {
    window.print();
}

// Export to JSON
function exportJSON(data) {
    const dataStr = JSON.stringify(data, null, 2);
    const blob = new Blob([dataStr], {type: 'application/json'});
    const url = URL.createObjectURL(blob);
    const link = document.createElement('a');
    link.href = url;
    link.download = 'geo-report.json';
    link.click();
}

// Copy to Clipboard
function copyToClipboard(text) {
    navigator.clipboard.writeText(text).then(() => {
        alert('Copied to clipboard!');
    });
}
```
