diff --git a/index.html b/index.html
index 04cdba6..58dd75a 100644
--- a/index.html
+++ b/index.html
@@ -1005,9 +1005,287 @@ function askAI() {
if (!q) return;
addMsg(q, 'user');
input.value = '';
-
+
+ // Full HR data for analytics
+ const d = {
+ total: 247, onVacation: 42, sick: 18, remote: 68, overtime: 320,
+ managers: 30, specialists: 217, women: 99, men: 140,
+ hired: 25, fired: 23, vacancies: 12,
+ turnover: 14.2, engagement: 76, enps: 24,
+ fot: 389, bonuses: 62, social: 22, training: 25, hiring: 16, totalBudget: 514,
+ monthlyFOT: 32.4, monthlyBudget: 42.8,
+ avgSalary: 173, avgAge: 33, avgTenure: 3.2,
+ training186: 186, reserveCount: 34, youth: 72, interns: 18,
+ highPerf: 32, lowPerf: 8,
+ hhRating: 4.2, edo: 68, adaptationRate: 89,
+ contractsExpiringJune: 3, contractsExpiringJuly: 5,
+ vacancyDays: 34, costPerHire: 245,
+ deptIT: 48, deptSales: 52, deptMkt: 32, deptFin: 28, deptHR: 12, deptProd: 45
+ };
+
+ const departments = {
+ 'it': { name: 'IT', count: 48, turnover: 18, kpi: 94, budget: 89 },
+ 'продаж': { name: 'Продажи', count: 52, turnover: 22, kpi: 112, budget: 115 },
+ 'маркетинг': { name: 'Маркетинг', count: 32, turnover: 12, kpi: 78, budget: 62 },
+ 'финанс': { name: 'Финансы', count: 28, turnover: 6, kpi: 103, budget: 98 },
+ 'hr': { name: 'HR', count: 12, turnover: 8, kpi: 91, budget: 85 },
+ 'производств': { name: 'Производство', count: 45, turnover: 16, kpi: 96, budget: 100 }
+ };
+
let answer = '';
- const data = {
+
+ // Detect keywords and build analytical answers
+ function has(...words) { return words.some(w => q.includes(w)); }
+
+ if (has('отпуск')) {
+ answer = '📊 Аналитика по отпускам:
+
+• В отпуске сейчас: ' + d.onVacation + ' чел (' + (d.onVacation/d.total*100).toFixed(1) + '%)
+• Средний остаток дней: 8.4 дня
+• По графику отпусков: 85 чел без назначенной даты
+• Запланировано на июль-сентябрь: 64 чел
+• Риск: 85 сотрудников не распределены по графику — нужно утвердить до июля.';
+ if (has('июн', 'июл', 'август')) {
+ answer += '
+
+📅 На летние месяцы:
+• Июнь: запланировано 42 чел, из них 31 уже отгуляли
+• Июль: 64 чел по плану
+• Август: продолжается сезон отпусков';
+ }
+ }
+
+ else if (has('бюджет') && (has('отдел') || has('департамент'))) {
+ answer = '📊 Бюджет по отделам (месяц):
+
+';
+ Object.entries(departments).forEach(([k, v]) => {
+ const bar = '█'.repeat(Math.round(v.budget / 10));
+ answer += v.name + ': ' + v.budget + '% ' + bar + '
+';
+ });
+ answer += '
+Перерасход: Продажи (+15%), Подбор (+15%)
+Экономия: Обучение (85%), Маркетинг (62%)';
+ }
+
+ else if (has('бюджет')) {
+ answer = '💰 HR-бюджет 2026: ' + d.totalBudget + 'M ₸
+
+📊 Структура:
+• ФОТ (оклады): ' + d.fot + 'M — 75.7%
+• Бонусы и премии: ' + d.bonuses + 'M — 12.1%
+• Обучение: ' + d.training + 'M — 4.9%
+• Соцпакет: ' + d.social + 'M — 4.3%
+• Подбор: ' + d.hiring + 'M — 3.1%
+
+📈 В месяц: ' + d.monthlyBudget + 'M ₸
+📉 ФОТ на 1 сотрудника: ' + (d.monthlyFOT / d.total * 1000).toFixed(0) + 'K ₸
+💡 Экономия за счёт вакансий: 14.4M ₸
+💡 Потенциальная экономия при снижении текучести на 2%: 6.5M ₸';
+ }
+
+ else if (has('сколько') && (has('человек') || has('сотрудник') || has('люд'))) {
+ if (has('отдел') || has('департамент')) {
+ answer = '👥 Численность по отделам:
+
+';
+ Object.entries(departments).forEach(([k, v]) => {
+ const bar = '█'.repeat(Math.round(v.count / 4));
+ answer += v.name + ': ' + v.count + ' чел ' + bar + '
+';
+ });
+ answer += '
+Всего: ' + d.total + ' чел';
+ } else if (has('больничн')) {
+ answer = '🏥 На больничном: ' + d.sick + ' чел (' + (d.sick/d.total*100).toFixed(1) + '%)
+Средняя длительность: 3.2 дня
+Всего дней больничных в июне: ' + (d.sick * 3.2).toFixed(0) + ' дней';
+ } else if (has('удалён')) {
+ answer = '🏠 На удалёнке: ' + d.remote + ' чел (' + (d.remote/d.total*100).toFixed(1) + '%)
+Из них: IT — 32 чел, Маркетинг — 14 чел, Продажи — 8 чел, HR — 4 чел, Финансы — 6 чел, Производство — 4 чел';
+ } else {
+ answer = '👥 Всего сотрудников: ' + d.total + '
+• Руководителей: ' + d.managers + ' (12%)
+• Специалистов: ' + d.specialists + ' (88%)
+• Мужчин: ' + d.men + ' (57%)
+• Женщин: ' + d.women + ' (43%)
+• До 30 лет: ' + d.youth + ' (29%)
+• Вакантных ставок: ' + d.vacancies;
+ }
+ }
+
+ else if (has('kpi') || has('эффективн') || has('результативн')) {
+ answer = '📊 KPI по отделам (июнь 2026):
+
+';
+ Object.entries(departments).forEach(([k, v]) => {
+ const icon = v.kpi >= 100 ? '✅' : v.kpi >= 90 ? '⚠️' : '❌';
+ const bar = v.kpi >= 100 ? '█'.repeat(Math.round(v.kpi/20)) : '▓'.repeat(Math.round(v.kpi/20));
+ answer += icon + ' ' + v.name + ': ' + v.kpi + '% ' + bar + '
+';
+ });
+ answer += '
+🏆 Лидеры: Ахметов А. (94%), Серикова М. (91%), Ким В. (88%)
+⚠️ Аутсайдеры: Маркетинг (78%) — нужен план улучшения';
+ }
+
+ else if (has('текуч') || has('увол')) {
+ answer = '📉 Текучесть персонала:
+
+По отделам:
+';
+ Object.entries(departments).forEach(([k, v]) => {
+ answer += '• ' + v.name + ': ' + v.turnover + '%
+';
+ });
+ answer += '
+Средняя по компании: ' + d.turnover + '%
+📈 Тренд: 2024 — 16.1% → 2025 — 15.8% → 2026 — 14.2%
+📊 Уволено за год: ' + d.fired + ' | Нанято: ' + d.hired + ' | Баланс: +' + (d.hired - d.fired);
+ }
+
+ else if (has('стоимост') || has('затрат') || has('себестоим')) {
+ answer = '💵 Стоимость персонала:
+
+• Средняя зарплата: ' + d.avgSalary + 'K ₸
+• Полные затраты на 1 сотр.: от 160K (стажёр) до 1.8M (директор) в мес
+• Коэффициент: оклад ×1.37-1.51 (налоги + ДМС + рабочее место)
+• Стоимость найма 1 сотр.: ' + d.costPerHire + 'K ₸
+• Окупаемость: Продажи 210%, IT 145%, Маркетинг 85%
+• ROI обучения: +12% рост KPI';
+ }
+
+ else if (has('прогноз') || has('тренд') || has('динамик')) {
+ answer = '📈 Тренды и прогнозы:
+
+• Численность: 2023=215 → 2026=247 → 2027=280 (прогноз)
+• Текучесть: 16.1% → 14.2% → 12.0% (снижается)
+• eNPS: +12 → +24 (растёт)
+• ФОТ: 358M → 514M → 538M (растёт)
+• Вовлечённость: 68% → 76% (растёт)
+• Срок найма: 42 → 34 дня (улучшается)
+
+⚠️ Риски 2027:
+• Уход ключевых сотрудников (средний риск)
+• Рост зарплат выше рынка (средний)
+• Дефицит IT-специалистов (средний)';
+ }
+
+ else if (has('гендер') || has('мужчин') || has('женщин')) {
+ answer = '👫 Гендерный состав:
+
+По категориям:
+• Топ-менеджмент: 6M / 2Ж (25% женщин)
+• Руководители отделов: 14M / 8Ж (36%)
+• Ведущие специалисты: 28M / 19Ж (40%)
+• Специалисты: 48M / 36Ж (43%)
+• Младший персонал: 32M / 26Ж (45%)
+
+Всего: 140 мужчин (57%) / 99 женщин (43%)
+📊 Женщин среди руководителей: 33%
+📊 Разрыв в зарплате: 8% (в пределах нормы)';
+ }
+
+ else if (has('обучен') || has('тренинг') || has('курс')) {
+ answer = '📚 Обучение и развитие:
+
+• Прошли обучение: ' + d.training186 + ' чел (75%)
+• Бюджет: ' + d.training + 'M ₸ (4.9% HR-бюджета)
+• Средняя оценка: 4.3/5
+• Применяют знания: 78%
+• Рост KPI после обучения: +12%
+• Сертифицировано: 34 чел
+
+📊 По программам:
+• Охрана труда: 100%
+• Проф. курсы: 94%
+• Soft skills: 75%
+• Управленческие: 60%
+• Английский: 40%';
+ }
+
+ else if (has('стресс') || has('выгоран') || has('здоров') || has('well')) {
+ answer = '🧘 Well-being:
+
+Уровень стресса:
+• Низкий (0-3): 124 чел (50%)
+• Средний (4-6): 78 чел (32%)
+• Высокий (7-8): 32 чел (13%) ⚠️
+• Критический (9-10): 13 чел (5%) 🚨
+
+Причины стресса:
+1. Дедлайны — 35%
+2. Объём задач — 28%
+3. Переработки — 10%
+
+Программы помощи:
+• EAP (психолог): 18 чел, NPS 85
+• Спортзал: 168 чел (68%)
+• Йога/медитация: 42 чел';
+ }
+
+ else if (has('сравн') || has('сопостав') || has('vs')) {
+ answer = '📊 Сравнительная аналитика:
+
+Руководители vs Специалисты:
+• Численность: 30 vs 217
+• Ср. возраст: 41 vs 31 год
+• Ср. стаж: 6.4 vs 2.8 года
+• Текучка: 4% vs 15%
+• Муж/Жен: 67/33% vs 55/45%
+
+Год к году:
+• 2024 vs 2026: текучесть −1.9%, eNPS +12, ФОТ +156M';
+ }
+
+ else if (has('договор') || has('истек') || has('продлен')) {
+ answer = '📋 Трудовые договоры:
+
+• Действующие: 247 (100%)
+• Бессрочные: 229 (92.7%)
+• Срочные: 18 (7.3%)
+
+⏰ Истекают:
+• Июнь: 3 чел 🚨 СРОЧНО!
+• Июль: 5 чел ⚠️
+• Август: 2 чел
+• Сентябрь: 4 чел
+• Октябрь-Декабрь: 4 чел
+
+📊 График нагрузки на HR:
+Июнь ███ (3) | Июль █████ (5) | Сентябрь ████ (4)';
+ }
+
+ else if (has('помощ') || has('что ты умеешь') || has('список')) {
+ answer = '🤖 Я могу построить аналитику по запросу:
+
+📊 Спросите:
+• «Сколько людей в отпуске?»
+• «Бюджет по отделам»
+• «KPI продаж и маркетинга»
+• «Сравни руководителей и специалистов»
+• «Текучка по отделам»
+• «Стоимость сотрудника»
+• «Прогноз на 2027»
+• «Гендерный состав»
+• «Причины стресса»
+• «Какие договоры истекают?»
+• «Сколько на больничном?»
+• «Обучение — статистика»';
+ }
+
+ else {
+ answer = 'Я могу проанализировать: отпуска, бюджет, KPI, текучесть, стоимость персонала, прогнозы, гендерный состав, well-being, договоры, обучение.
+
+Попробуйте спросить конкретнее. Например: «Сколько людей в отпуске?» или «KPI по отделам».';
+ }
+
+ // Format answer with line breaks for display
+ answer.split('\n').forEach((line, i) => {
+ setTimeout(() => addMsg(line, 'ai'), 200 + i * 150);
+ });
+}
total: 247, turnover: '14.2%', fot: '514M ₸', budget: '42.8M ₸/мес',
hired: 25, fired: 23, vacancies: 12, engagement: '76%', enps: '+24',
avgSalary: '173K ₸', training: '25M ₸', reserve: 34, youth: 72,