<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Avatiah Security Index: Израиль</title>
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.9.1/chart.min.js"></script>
    <style>
        :root {
            --bg: #0a0e1a;
            --card: #1a2332;
            --border: #2d3748;
            --text: #e2e8f0;
            --accent: #f59e0b;
            --danger: #ef4444;
            --warning: #f97316;
            --success: #10b981;
            --light: #94a3b8;
        }
        * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Inter', sans-serif; }
        body { background: var(--bg); color: var(--text); line-height: 1.6; padding: 1rem; }
        .container { max-width: 1600px; margin: 0 auto; }

        /* ЗАГОЛОВОК */
        .header { text-align: center; padding: 2rem; background: linear-gradient(135deg, #1e3c72, #2a5298); border-radius: 16px; margin-bottom: 2rem; }
        .header h1 { font-size: 2.8rem; color: white; margin-bottom: 0.5rem; text-shadow: 0 2px 4px rgba(0,0,0,0.3); }
        .header .subtitle { color: #cbd5e1; font-size: 1.2rem; }
        .focus-region { background: rgba(231,76,60,0.2); border: 2px solid #e74c3c; padding: 0.75rem 1.5rem; border-radius: 12px; display: inline-block; margin-top: 1rem; font-weight: 600; }

        /* МЕТРИКИ */
        .metrics-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; margin-bottom: 2rem; }
        .metric-card { background: var(--card); border-radius: 12px; padding: 1.5rem; border: 1px solid var(--border); text-align: center; }
        .metric-label { font-size: 0.9rem; color: var(--light); margin-bottom: 0.5rem; }
        .metric-value { font-size: 2.2rem; font-weight: 700; color: var(--accent); }
        .metric-sub { font-size: 0.85rem; color: #94a3b8; }

        /* ИНДЕКС-БАР */
        .index-bar { height: 80px; background: linear-gradient(90deg, #10b981 0%, #f59e0b 40%, #f97316 60%, #ef4444 80%, #dc2626 100%); border-radius: 40px; position: relative; overflow: hidden; margin: 2rem 0; }
        .index-fill { height: 100%; background: rgba(255,255,255,0.15); width: 0%; transition: width 1s ease; }
        .index-marker { position: absolute; top: 0; height: 100%; width: 6px; background: white; box-shadow: 0 0 15px white; left: 0%; transition: pencileft 1s ease; }
        .index-value { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 2.2rem; font-weight: 700; color: white; text-shadow: 0 0 12px rgba(0,0,0,0.5); }
        .index-labels { display: flex; justify-content: space-between; margin-top: 0.75rem; font-size: 0.85rem; color: var(--light); }

        /* АЛЕРТЫ */
        .alert { padding: 1.25rem; border-radius: 12px; margin: 1.5rem 0; font-weight: 500; border-left: 5px solid; }
        .alert.danger { background: rgba(239,68,68,0.15); border-color: var(--danger); color: #fca5a5; }
        .alert.warning { background: rgba(249,115,22,0.15); border-color: var(--warning); color: #fdba74; }

        /* ТЕКУЩАЯ СИТУАЦИЯ — ВСЕ ФАКТОРЫ */
        .current-situation { background: var(--card); border-radius: 16px; padding: 1.5rem; border: 1px solid var(--border); margin-bottom: 2rem; }
        .current-situation h3 { color: white; margin-bottom: 1rem; font-size: 1.4rem; }
        .factors-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
        .factor-mini { background: rgba(255,255,255,0.05); border-radius: 12px; padding: 1rem; cursor: pointer; transition: all 0.3s; border: 1px solid var(--border); }
        .factor-mini:hover { background: rgba(255,255,255,0.1); transform: translateY(-2px); }
        .factor-mini .label { font-size: 0.85rem; color: var(--light); margin-bottom: 0.5rem; }
        .factor-mini canvas { height: 60px !important; }
        .factor-value { text-align: center; font-weight: 600; margin-top: 0.5rem; color: var(--accent); }

        /* ИСТОРИЧЕСКАЯ КОРРЕЛЯЦИЯ */
        .historical-correlation { background: var(--card); border-radius: 16px; padding: 1.5rem; border: 1px solid var(--border); margin-bottom: 2rem; }
        .historical-correlation h3 { color: white; margin-bottom: 1rem; font-size: 1.3rem; }
        .stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin-bottom: 1.5rem; }
        .stat-box { background: rgba(255,255,255,0.05); border-radius: 12px; padding: 1rem; text-align: center; }
        .stat-value { font-size: 1.5rem; font-weight: 700; color: var(--accent); }
        .stat-label { font-size: 0.85rem; color: var(--light); }
        .chart-container { height: 300px; }

        /* ВАЖНАЯ ИНФОРМАЦИЯ */
        .important-info { background: #1a2332; border: 1px solid #334155; border-radius: 16px; padding: 1.5rem; margin-bottom: 2rem; }
        .important-info h3 { color: #f59e0b; margin-bottom: 1rem; display: flex; align-items: center; }
        .important-info h3::before { content: "Warning:"; margin-right: 0.5rem; }
        .info-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.5rem; }
        .info-card { background: rgba(255,255,255,0.03); border-radius: 12px; padding: 1rem; }
        .info-card h4 { color: var(--accent); margin-bottom: 0.5rem; }
        .info-card ul { list-style: disc; margin-left: 1.2rem; font-size: 0.9rem; color: #cbd5e1; }

        /* ЛОАДЕР И ОШИБКИ */
        .loader { text-align: center; padding: 3rem; color: var(--light); font-size: 1.1rem; }
        .loader::after { content: ''; display: inline-block; width: 24px; height: 24px; border: 3px solid var(--border); border-top-color: var(--accent); border-radius: 50%; animation: spin 1s linear infinite; margin-left: 12px; }
        @keyframes spin { to { transform: rotate(360deg); } }
        .error-msg { background: #7f1d1d; color: #fca5a5; padding: 1.25rem; border-radius: 12px; text-align: center; margin: 1rem 0; }

        .last-update { text-align: center; font-size: 0.9rem; color: #64748b; margin: 2rem 0 1rem; }

        /* ФУТЕР */
        .footer { text-align: center; font-size: 0.85rem; color: #64748b; margin-top: 3rem; padding: 2rem 0; border-top: 1px solid var(--border); }
        .footer .copyright { margin-bottom: 0.5rem; }

        @media (max-width: 768px) {
            .header h1 { font-size: 2rem; }
            .metrics-grid, .factors-grid, .stats-grid, .info-grid { grid-template-columns: 1fr; }
        }
    </style>
</head>
<body>
    <div class="container">
        <!-- ЗАГОЛОВОК -->
        <div class="header">
            <h1>Avatiah Security Index: Израиль</h1>
            <p class="subtitle">Комплексный анализ геополитической ситуации в режиме реального времени</p>
            <div class="focus-region">Фокус-регион: Израиль, Ближний Восток</div>
        </div>

        <!-- ЛОАДЕР -->
        <div id="loader" class="loader">Загрузка данных...</div>
        <div id="error" class="error-msg" style="display:none;"></div>

        <!-- ДАШБОРД -->
        <div id="dashboard" style="display:none;">
            <!-- МЕТРИКИ -->
            <div class="metrics-grid">
                <div class="metric-card">
                    <div class="metric-label">Текущий индекс безопасности</div>
                    <div class="metric-value" id="index-value">-- / 10</div>
                    <div class="metric-sub">Повышенная угроза (AAL 4)</div>
                </div>
                <div class="metric-card">
                    <div class="metric-label">Среднее время до AAL 3</div>
                    <div class="metric-value" id="time-to-aa3">-- дня</div>
                    <div class="metric-sub">При текущем тренде индекса</div>
                </div>
                <div class="metric-card">
                    <div class="metric-label">Время обнаружения сигналов</div>
                    <div class="metric-value" id="detection-time">-- часов</div>
                    <div class="metric-sub">Среднее время между сигналом и реакцией</div>
                </div>
            </div>

            <!-- ИНДЕКС-БАР -->
            <div class="index-bar">
                <div class="index-fill" id="index-fill"></div>
                <div class="index-marker" id="index-marker"></div>
                <div class="index-value" id="index-center">--</div>
            </div>
            <div class="index-labels">
                <span>0-2 НОРМА</span>
                <span>2.1-4 ПОВЫШЕННАЯ</span>
                <span>4.1-6 ВЫСОКАЯ</span>
                <span>6.1-8 КРИТИЧЕСКАЯ</span>
                <span>8.1-10 МАКСИМАЛЬНАЯ</span>
            </div>

            <!-- КРИТИЧНО -->
            <div id="critical-alert" class="alert danger" style="display:none;"></div>

            <!-- ТЕКУЩАЯ СИТУАЦИЯ — ВСЕ ФАКТОРЫ -->
            <div class="current-situation">
                <h3>Текущая ситуация в реальном времени</h3>
                <div class="factors-grid" id="mini-charts">
                    <!-- Все факторы генерируются JS -->
                </div>
            </div>

            <!-- ЭСКАЛАЦИЯ -->
            <div style="margin: 1.5rem 0; text-align: center;">
                <strong style="font-size: 1.2rem;">Вероятность эскалации до AAL 3 в ближайшие 72 часа:</strong>
                <span id="escalation-risk" style="font-size: 2rem; color: var(--accent); font-weight: 700; margin-left: 0.75rem;">--%</span>
            </div>

            <!-- ИСТОРИЧЕСКАЯ КОРРЕЛЯЦИЯ -->
            <div class="historical-correlation">
                <h3>Историческая корреляция индекса AAL с конфликтами Израиля (2020-2025)</h3>
                <div class="stats-grid">
                    <div class="stat-box">
                        <div class="stat-value" style="color: #3b82f6;">89%</div>
                        <div class="stat-label">Корреляция AAL 3+ с конфликтами</div>
                    </div>
                    <div class="stat-box">
                        <div class="stat-value" style="color: #f59e0b;">3.8 дня</div>
                        <div class="stat-label">Среднее время до AAL 3 до эскалации</div>
                    </div>
                    <div class="stat-box">
                        <div class="stat-value" style="color: #10b981;">82%</div>
                        <div class="stat-label">Прогноз активности</div>
                    </div>
                    <div class="stat-box">
                        <div class="stat-value" style="color: #ef4444;">75%</div>
                        <div class="stat-label">Риск эскалации</div>
                    </div>
                </div>
                <div class="chart-container">
                    <canvas id="historical-chart"></canvas>
                </div>
            </div>

            <!-- ВАЖНАЯ ИНФОРМАЦИЯ -->
            <div class="important-info">
                <h3>Важная информация</h3>
                <div class="info-grid">
                    <div class="info-card">
                        <h4>Назначение инструмента</h4>
                        <ul>
                            <li>Avatiah Security Index предназначен исключительно для информационных и аналитических целей</li>
                            <li>Не является финансовым или военным советом</li>
                        </ul>
                    </div>
                    <div class="info-card">
                        <h4>Ограничения точности</h4>
                        <ul>
                            <li>Точность прогнозирования: ~81%</li>
                            <li>Источники: СМИ, открытые данные</li>
                            <li>Возможны ложные срабатывания и пропуски</li>
                        </ul>
                    </div>
                    <div class="info-card">
                        <h4>Не предназначено для</h4>
                        <ul>
                            <li>Принятия стратегических решений в сфере безопасности</li>
                            <li>Использования в военных операциях</li>
                            <li>Официального информирования или предупреждения</li>
                    </div>
                    <div class="info-card">
                        <h4>Рекомендуемое использование</h4>
                        <ul>
                            <li>Официальные и официальные источники</li>
                            <li>Аналитические центры</li>
                            <li>Правительственные структуры</li>
                            <li>Академические исследования в области безопасности</li>
                        </ul>
                    </div>
                </div>
            </div>

            <div class="last-update" id="last-update">Обновлено: --</div>
        </div>

        <!-- ФУТЕР -->
        <div class="footer">
            <div class="copyright">
                <strong>Ответственность:</strong> Разработчики не несут ответственности за решения, принятые на основе данных этого индекса. Для критически важных решений всегда обращайтесь к официальным источникам и экспертам.
            </div>
            <div>
                <strong>© Avatiah Security Index: Израиль</strong><br>
                2020-2025 Все права защищены. Полное или частичное копирование материалов без письменного разрешения запрещено.<br>
                Система защищена международными законами об авторском праве и интеллектуальной собственности.
            </div>
        </div>
    </div>

    <script>
        document.addEventListener('DOMContentLoaded', () => {
            const API_URL = '/api/latest.php';
            const UPDATE_INTERVAL = 300000;
            let historicalChart = null;

            const els = {
                loader: document.getElementById('loader'),
                error: document.getElementById('error'),
                dashboard: document.getElementById('dashboard'),
                indexValue: document.getElementById('index-value'),
                timeToAA3: document.getElementById('time-to-aa3'),
                detectionTime: document.getElementById('detection-time'),
                indexFill: document.getElementById('index-fill'),
                indexMarker: document.getElementById('index-marker'),
                indexCenter: document.getElementById('index-center'),
                criticalAlert: document.getElementById('critical-alert'),
                escalationRisk: document.getElementById('escalation-risk'),
                lastUpdate: document.getElementById('last-update'),
                miniCharts: document.getElementById('mini-charts')
            };

            // Все факторы с файлами
            const allFactors = [
                { id: 'oil', name: 'Волатильность нефти', file: 'oil.php', color: '#ef4444' },
                { id: 'media', name: 'Медиа-упоминания', file: 'media.php', color: '#3b82f6' },
                { id: 'navy', name: 'ВМС США', file: 'navy.php', color: '#10b981' },
                { id: 'vip', name: 'Дипл. рейсы', file: 'vip.php', color: '#f59e0b' },
                { id: 'gov', name: 'Прав-во США', file: 'gov.php', color: '#8b5cf6' },
                { id: 'gold', name: 'Волатильность золота', file: 'gold.php', color: '#f97316' },
                { id: 'cyber', name: 'Кибератаки', file: 'cyber.php', color: '#ec4899' },
                { id: 'energy', name: 'Энергетические рынки', file: 'energy.php', color: '#06b6d4' },
                { id: 'social', name: 'Социальные медиа', file: 'social.php', color: '#a855f7' },
                { id: 'mfa', name: 'МИД Израиля', file: 'mfa.php', color: '#6366f1' },
                { id: 'pm', name: 'Премьер-министр', file: 'pm.php', color: '#f43f5e' },
                { id: 'contractors', name: 'Военные подрядчики', file: 'contractors.php', color: '#14b8a6' },
                { id: 'darknet', name: 'Даркнет активность', file: 'darknet.php', color: '#7c3aed' },
                { id: 'medical', name: 'Медицинские запасы', file: 'medical.php', color: '#ef4444' },
                { id: 'satellite', name: 'Спутниковая разведка', file: 'satellite.php', color: '#10b981' },
                { id: 'evacuation', name: 'Эвакуация дипломатов', file: 'evacuation.php', color: '#f59e0b' },
                { id: 'reserves', name: 'Мобилизация резервистов', file: 'reserves.php', color: '#dc2626' }
            ];

            async function loadData() {
                els.loader.style.display = 'block';
                els.error.style.display = 'none';
                els.dashboard.style.display = 'none';

                try {
                    const res = await fetch(API_URL + '?t=' + Date.now());
                    if (!res.ok) throw new Error(`HTTP ${res.status}`);
                    const data = await res.json();
                    if (data.error) throw new Error(data.message);

                    renderDashboard(data);
                    renderMiniCharts(data);
                    renderHistoricalChart();
                    els.dashboard.style.display = 'block';
                } catch (err) {
                    els.error.textContent = 'Ошибка: ' + err.message + '. Повтор через 30 сек...';
                    els.error.style.display = 'block';
                    setTimeout(loadData, 30000);
                } finally {
                    els.loader.style.display = 'none';
                }
            }

            function renderDashboard(d) {
                const index = parseFloat(d.security_index).toFixed(1);
                const escalationRisk = Math.min(99, Math.round(index * 10));

                els.indexValue.textContent = `${index} / 10`;
                els.timeToAA3.textContent = `${d.time_to_aa3 || (7.0 - index).toFixed(1)} дня`;
                els.detectionTime.textContent = `${d.signal_detection_time || Math.max(6, 72 - index * 8)} часов`;

                const percent = index * 10;
                els.indexFill.style.width = percent + '%';
                els.indexMarker.style.left = percent + '%';
                els.indexCenter.textContent = index;
                els.indexCenter.style.left = percent + '%';

                els.criticalAlert.style.display = index >= 3.5 ? 'block' : 'none';
                if (index >= 3.5) {
                    els.criticalAlert.innerHTML = `<strong>Критично:</strong> Индекс ${index} — вероятность эскалации <strong>${escalationRisk}%</strong>!`;
                }

                els.escalationRisk.textContent = `${escalationRisk}%`;
                els.lastUpdate.textContent = `Обновлено: ${new Date(d.timestamp).toLocaleString('ru-RU')}`;
            }

            function renderMiniCharts(d) {
                els.miniCharts.innerHTML = '';
                allFactors.forEach(f => {
                    const comp = d.components[f.id];
                    if (!comp) return;

                    const div = document.createElement('div');
                    div.className = 'factor-mini';
                    div.onclick = () => window.location.href = `/factors/${f.file}`;

                    const label = document.createElement('div');
                    label.className = 'label';
                    label.textContent = f.name;
                    div.appendChild(label);

                    const canvas = document.createElement('canvas');
                    div.appendChild(canvas);

                    const value = document.createElement('div');
                    value.className = 'factor-value';
                    value.textContent = `${comp.raw}${getUnit(f.id)}`;
                    div.appendChild(value);

                    els.miniCharts.appendChild(div);

                    new Chart(canvas.getContext('2d'), {
                        type: 'line',
                        data: {
                            labels: ['', '', '', '', '', ''],
                            datasets: [{
                                data: generateSparkline(comp.raw, comp.score),
                                borderColor: f.color,
                                backgroundColor: f.color + '20',
                                borderWidth: 2,
                                fill: true,
                                tension: 0.4,
                                pointRadius: 0
                            }]
                        },
                        options: {
                            responsive: true,
                            plugins: { legend: { display: false }, tooltip: { enabled: false } },
                            scales: { x: { display: false }, y: { display: false } }
                        }
                    });
                });
            }

            function renderHistoricalChart() {
                const ctx = document.getElementById('historical-chart').getContext('2d');
                if (historicalChart) historicalChart.destroy();

                historicalChart = new Chart(ctx, {
                    type: 'line',
                    data: {
                        labels: ['Янв 2020', 'Янв 2021', 'Янв 2022', 'Янв 2023', 'Янв 2024', 'Янв 2025'],
                        datasets: [
                            {
                                label: 'Индекс AAL',
                                data: [1.2, 2.8, 3.9, 5.1, 4.2, 3.5],
                                borderColor: '#f59e0b',
                                backgroundColor: 'rgba(245,158,11,0.1)',
                                tension: 0.4,
                                fill: true
                            },
                            {
                                label: 'Конфликты Израиля',
                                data: [0, 1, 2, 3, 2, 1],
                                borderColor: '#ef4444',
                                backgroundColor: 'rgba(239,68,68,0.1)',
                                tension: 0.4,
                                fill: true
                            }
                        ]
                    },
                    options: {
                        responsive: true,
                        plugins: { legend: { position: 'top' } },
                        scales: {
                            y: { beginAtZero: true, max: 6 },
                            x: { grid: { display: false } }
                        }
                    }
                });
            }

            function generateSparkline(raw, score) {
                const base = raw / 10;
                return [base*0.8, base*0.9, base*1.1, base*1.0, base*1.2, base];
            }

            function getUnit(id) {
                return id === 'oil' || id === 'gold' ? '%' :
                       id === 'media' ? '/час' :
                       id === 'navy' ? ' групп' :
                       id === 'vip' ? ' рейсов' : '';
            }

            loadData();
            setInterval(loadData, UPDATE_INTERVAL);
        });
    </script>

    <!-- Yandex Metrika -->
    <script type="text/javascript">
        (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
        m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
        (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
        ym(29947014, "init", {webvisor:true, clickmap:true, accurateTrackBounce:true, trackLinks:true});
    </script>
    <noscript><div><img src="https://mc.yandex.ru/watch/29947014" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
</body>
</html>