function updateKT9Content() {
    const content = document.getElementById('hypstart-content');
    if (!content || content.dataset.lastHtml === 'kt9') return;

    // --- Same Scraper Logic as Home (Matching Design System) ---
    const scrapeProgramsKT9 = () => {
        const programs = [];
        const diseaseBoxes = document.querySelectorAll('.hyp-disease-programs .disease');

        diseaseBoxes.forEach((box, index) => {
            const title = (box.querySelector('.disease-title span')?.innerText || '').trim();
            const upperTitle = title.toUpperCase();

            let lastDate = '-';
            let nextDate = '-';
            let statusText = '';

            const contentDivs = Array.from(box.querySelectorAll('.disease-content div'));
            contentDivs.forEach(div => {
                const text = div.innerText.trim();
                if (text.toLowerCase().includes('son takip')) lastDate = text.split(':')[1]?.trim() || '-';
                else if (text.toLowerCase().includes('sonraki')) nextDate = text.split(':')[1]?.trim() || '-';
                else if (text.length > 3) statusText = text;
            });

            // Urgency & Status Logic (Same as HYPSTART)
            const parseDateKT9 = (str) => {
                if (!str || str === '-') return null;
                const pureDate = str.split(' ')[0];
                const dStr = pureDate.split('.');
                if (dStr.length !== 3) return null;
                return new Date(dStr[2], dStr[1] - 1, dStr[0]);
            };

            const nextD = parseDateKT9(nextDate);
            const diffDays = nextD ? Math.ceil((nextD - new Date()) / (1000 * 60 * 60 * 24)) : 999;

            const isUrgent = nextDate.includes('İlk fırsatta') ||
                box.classList.contains('late') ||
                (nextD && diffDays <= 0); // Overdue
            const isSafe = !isUrgent && lastDate !== '-';
            const isIzlemStatus = statusText.toLowerCase().includes('izlem');
            const isTarama = !isIzlemStatus && (statusText.toLowerCase().includes('tarama') || (upperTitle.includes('TARAMA')) || (upperTitle.includes('RİSK') && !upperTitle.includes('KARDİ')));
            const typeLabel = isTarama ? 'TARAMA' : 'İZLEM';

            // Icons mapping
            let iconFile = 'tarama_min';
            if (upperTitle.includes('HİPERTANSİYON')) iconFile = 'new_ht';
            else if (upperTitle.includes('KARDİYOVASKÜLER') || upperTitle.includes('KV')) iconFile = 'new_kv';
            else if (upperTitle.includes('OBEZİTE')) iconFile = 'new_ob';
            else if (upperTitle.includes('DİYABET') || upperTitle.includes('ŞEKER')) iconFile = 'diabetes_min';

            const faIcon = getFaIconForCategory(iconFile);
            programs.push({
                title, typeLabel, lastDate, nextDate, isUrgent, isSafe, faIcon
            });
        });
        return programs;
    };

    const patientPrograms = scrapeProgramsKT9();

    // Build tags grid (Same 2-column layout as HYPSTART)
    let programsGrid = '';
    if (patientPrograms.length > 0) {
        programsGrid = `
        <div style="width: 100%; margin-top: 10px; padding-top: 10px;">
            <div style="display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; width: 100%; box-sizing: border-box; padding: 0 5px;">
                ${patientPrograms.map((p, idx) => getRevDiseaseCardHTML(p, 'kt9-tag-' + idx)).join('')}
            </div>
        </div>
        `;
    }

    content.innerHTML = `
        <div class="dt-theme dt-container">
            <div style="text-align: center; animation: revScaleIn 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275); width: 100%; padding-top: 15px;">
                ${programsGrid}
                <div style="margin-top: 25px; padding-bottom: 5px;">
                    <button id="kt9-home-btn" style="background: linear-gradient(135deg, #1e293b 0%, #334155 100%); color: white; border: none; min-width: 200px; border-radius: 12px; pa