Compare commits
No commits in common. "46caa4805f7b682c97b5de167e5d005a44a72a05" and "4f82da47bba76e4a581dbd82d065384a74364e09" have entirely different histories.
46caa4805f
...
4f82da47bb
28
app.js
28
app.js
@ -396,35 +396,7 @@ function loadProfile() {
|
|||||||
<div class="history-item-status">Статус: ${getStatusName(r.status)}</div>
|
<div class="history-item-status">Статус: ${getStatusName(r.status)}</div>
|
||||||
</div>
|
</div>
|
||||||
`).join('') || '<p>Пока нет обращений</p>';
|
`).join('') || '<p>Пока нет обращений</p>';
|
||||||
|
|
||||||
// Панель администратора (видна только если isAdmin = true)
|
|
||||||
const adminPanel = document.getElementById('adminPanel');
|
|
||||||
if (adminPanel && profile.isAdmin) {
|
|
||||||
adminPanel.style.display = 'block';
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Экспорт всех данных для админа
|
|
||||||
function exportAllData() {
|
|
||||||
const data = {
|
|
||||||
reviews: appData.reviews,
|
|
||||||
ideas: appData.ideas,
|
|
||||||
motivation: appData.motivation,
|
|
||||||
kpi: appData.kpi,
|
|
||||||
reserve: appData.reserve
|
|
||||||
};
|
|
||||||
|
|
||||||
const json = JSON.stringify(data, null, 2);
|
|
||||||
const blob = new Blob([json], { type: 'application/json' });
|
|
||||||
const url = URL.createObjectURL(blob);
|
|
||||||
const a = document.createElement('a');
|
|
||||||
a.href = url;
|
|
||||||
a.download = 'pulse_admin_export_' + new Date().toISOString().split('T')[0] + '.json';
|
|
||||||
a.click();
|
|
||||||
URL.revokeObjectURL(url);
|
|
||||||
}
|
|
||||||
|
|
||||||
window.exportAllData = exportAllData;
|
|
||||||
|
|
||||||
// Аналитика
|
// Аналитика
|
||||||
function loadAnalytics() {
|
function loadAnalytics() {
|
||||||
|
|||||||
67
data.js
67
data.js
@ -1,34 +1,22 @@
|
|||||||
// Начальные данные для демонстрации
|
// Начальные данные для демонстрации
|
||||||
const INITIAL_DATA = {
|
const INITIAL_DATA = {
|
||||||
reviews: [
|
reviews: [
|
||||||
{ id: 1, date: '2026-08-15', direction: 'automation', rating: 4, type: 'propose', comment: 'Процесс согласования документов занимает слишком много времени. Нужно упростить маршрут.', author: 'Алиев Нурлан', anonymous: false, department: 'it', status: 'review' },
|
{ id: 1, date: '2026-08-15', direction: 'automation', rating: 4, type: 'propose', comment: 'Процесс согласования документов занимает слишком много времени', anonymous: false, department: 'it', status: 'new' },
|
||||||
{ id: 2, date: '2026-08-16', direction: 'training', rating: 5, type: 'thank', comment: 'Отличный курс по лидерству! Очень полезно для развития. Хотелось бы продолжения.', author: 'Омарова Айгуль', anonymous: false, department: 'hr', status: 'accepted' },
|
{ id: 2, date: '2026-08-16', direction: 'training', rating: 5, type: 'thank', comment: 'Отличный курс по лидерству! Очень полезно для развития', anonymous: false, department: 'hr', status: 'review' },
|
||||||
{ id: 3, date: '2026-08-17', direction: 'discipline', rating: 3, type: 'attention', comment: 'Частые переработки в конце месяца из-за поздних отчетов от смежников. Срываем сроки.', author: 'Анонимно', anonymous: true, department: 'finance', status: 'new' },
|
{ id: 3, date: '2026-08-17', direction: 'discipline', rating: 3, type: 'attention', comment: 'Частые переработки в конце месяца из-за поздних отчетов', anonymous: true, department: 'finance', status: 'new' },
|
||||||
{ id: 4, date: '2026-08-18', direction: 'adaptation', rating: 4, type: 'propose', comment: 'Хорошо бы добавить больше материалов по продуктам компании для новичков.', author: 'Ибраев Ержан', anonymous: false, department: 'sales', status: 'accepted' },
|
{ id: 4, date: '2026-08-18', direction: 'adaptation', rating: 4, type: 'propose', comment: 'Хорошо бы добавить больше материалов по продуктам компании', anonymous: false, department: 'sales', status: 'accepted' },
|
||||||
{ id: 5, date: '2026-08-19', direction: 'automation', rating: 5, type: 'propose', comment: 'Автоматизация отчетности через Excel макросы сэкономила 4 часа в неделю. Готов поделиться опытом.', author: 'Кенжебаев Самат', anonymous: false, department: 'it', status: 'implement' },
|
{ id: 5, date: '2026-08-19', direction: 'automation', rating: 5, type: 'propose', comment: 'Автоматизация отчетности через Excel макросы сэкономила 4 часа в неделю', anonymous: false, department: 'it', status: 'implement' },
|
||||||
{ id: 6, date: '2026-08-20', direction: 'innovation', rating: 4, type: 'propose', comment: 'Предлагаю внедрить систему электронных подписей для внутренних документов.', author: 'Тулебаева Мадина', anonymous: false, department: 'procurement', status: 'new' },
|
{ id: 6, date: '2026-08-20', direction: 'innovation', rating: 4, type: 'propose', comment: 'Предлагаю внедрить систему электронных подписей для внутренних документов', anonymous: false, department: 'procurement', status: 'new' },
|
||||||
{ id: 7, date: '2026-08-20', direction: 'training', rating: 2, type: 'attention', comment: 'Мало курсов по цифровым инструментам для начинающих. Существующие слишком сложные.', author: 'Анонимно', anonymous: true, department: 'support', status: 'review' },
|
{ id: 7, date: '2026-08-20', direction: 'training', rating: 2, type: 'attention', comment: 'Мало курсов по цифровым инструментам для начинающих', anonymous: true, department: 'support', status: 'review' },
|
||||||
{ id: 8, date: '2026-08-21', direction: 'other', rating: 5, type: 'thank', comment: 'Благодарю за гибкий график в период ремонта офиса. Очень помогло!', author: 'Сейтказина Гульнара', anonymous: false, department: 'hr', status: 'done' },
|
{ id: 8, date: '2026-08-21', direction: 'other', rating: 5, type: 'thank', comment: 'Благодарю за гибкий график в период ремонта офиса', anonymous: false, department: 'hr', status: 'done' }
|
||||||
{ id: 9, date: '2026-08-12', direction: 'automation', rating: 3, type: 'attention', comment: 'Система CRM работает медленно, особенно в часы пик. Теряем клиентов.', author: 'Жуманов Бауыржан', anonymous: false, department: 'sales', status: 'review' },
|
|
||||||
{ id: 10, date: '2026-08-11', direction: 'training', rating: 4, type: 'propose', comment: 'Предлагаю организовать мастер-классы по обмену опытом между отделами.', author: 'Абдрахманов Марат', anonymous: false, department: 'it', status: 'accepted' },
|
|
||||||
{ id: 11, date: '2026-08-10', direction: 'adaptation', rating: 5, type: 'thank', comment: 'Спасибо куратору за помощь в первые недели! Адаптация прошла легко.', author: 'Каримова Динара', anonymous: false, department: 'finance', status: 'done' },
|
|
||||||
{ id: 12, date: '2026-08-09', direction: 'discipline', rating: 4, type: 'propose', comment: 'Предлагаю ввести гибкое начало рабочего дня с 8 до 10 утра.', author: 'Анонимно', anonymous: true, department: 'it', status: 'new' },
|
|
||||||
{ id: 13, date: '2026-08-08', direction: 'innovation', rating: 5, type: 'propose', comment: 'Идея: мобильное приложение для записи в отпуск и просмотра остатков дней.', author: 'Нурпеисова Алия', anonymous: false, department: 'hr', status: 'implement' },
|
|
||||||
{ id: 14, date: '2026-08-07', direction: 'automation', rating: 2, type: 'attention', comment: '1С работает крайне медленно. Простой по 20-30 минут несколько раз в день.', author: 'Анонимно', anonymous: true, department: 'finance', status: 'review' },
|
|
||||||
{ id: 15, date: '2026-08-06', direction: 'training', rating: 5, type: 'thank', comment: 'Курс по тайм-менеджменту изменил мой подход к работе. Спасибо HR!', author: 'Уалиев Тимур', anonymous: false, department: 'sales', status: 'done' },
|
|
||||||
{ id: 16, date: '2026-08-05', direction: 'other', rating: 3, type: 'attention', comment: 'В офисе жарко, кондиционеры не справляются. Невозможно работать.', author: 'Искакова Сауле', anonymous: false, department: 'support', status: 'accepted' },
|
|
||||||
{ id: 17, date: '2026-08-04', direction: 'adaptation', rating: 4, type: 'propose', comment: 'Добавьте в программу адаптации встречу с руководством компании.', author: 'Касымов Данияр', anonymous: false, department: 'it', status: 'new' },
|
|
||||||
{ id: 18, date: '2026-08-03', direction: 'discipline', rating: 5, type: 'thank', comment: 'Руководитель всегда идёт навстречу. Комфортная атмосфера в отделе.', author: 'Мусабекова Айгерим', anonymous: false, department: 'procurement', status: 'done' },
|
|
||||||
{ id: 19, date: '2026-08-02', direction: 'innovation', rating: 4, type: 'propose', comment: 'Предлагаю систему мотивации за идеи: баллы, которые можно обменять на обучение.', author: 'Анонимно', anonymous: true, department: 'hr', status: 'review' },
|
|
||||||
{ id: 20, date: '2026-08-01', direction: 'automation', rating: 4, type: 'propose', comment: 'Автоматизируйте выдачу справок 2-НДФЛ через личный кабинет сотрудника.', author: 'Бекжанов Асет', anonymous: false, department: 'finance', status: 'accepted' }
|
|
||||||
],
|
],
|
||||||
ideas: [
|
ideas: [
|
||||||
{ id: 1, title: 'Внедрение электронного документооборота', problem: 'Согласование бумажных документов занимает 5-7 дней', solution: 'Перейти на систему электронного документооборота с цифровой подписью', effect: 'Сокращение времени согласования до 1-2 дней', category: 'automation', department: 'it', votes: 24, comments: 8, status: 'implement', anonymous: false, author: 'Алиев Нурлан', date: '2026-08-10' },
|
{ id: 1, title: 'Внедрение электронного документооборота', problem: 'Согласование бумажных документов занимает 5-7 дней', solution: 'Перейти на систему электронного документооборота с цифровой подписью', effect: 'Сокращение времени согласования до 1-2 дней', category: 'automation', department: 'it', votes: 24, comments: 8, status: 'implement', anonymous: false, author: 'Алексей К.', date: '2026-08-10' },
|
||||||
{ id: 2, title: 'Мобильное приложение для записи на обучение', problem: 'Сложно найти и записаться на курсы через портал', solution: 'Сделать простое мобильное приложение с каталогом и записью в один клик', effect: 'Увеличение количества записей на 30%', category: 'automation', department: 'hr', votes: 18, comments: 5, status: 'review', anonymous: false, author: 'Омарова Айгуль', date: '2026-08-12' },
|
{ id: 2, title: 'Мобильное приложение для записи на обучение', problem: 'Сложно найти и записаться на курсы через портал', solution: 'Сделать простое мобильное приложение с каталогом и записью в один клик', effect: 'Увеличение количества записей на 30%', category: 'automation', department: 'hr', votes: 18, comments: 5, status: 'review', anonymous: false, author: 'Мария С.', date: '2026-08-12' },
|
||||||
{ id: 3, title: 'Система наставничества для новых сотрудников', problem: 'Новички долго адаптируются, нет единого подхода', solution: 'Закрепить опытных сотрудников как наставников с мотивацией', effect: 'Сокращение адаптации с 3 до 1.5 месяцев', category: 'process', department: 'hr', votes: 31, comments: 12, status: 'accepted', anonymous: false, author: 'Ибраев Ержан', date: '2026-08-08' },
|
{ id: 3, title: 'Система наставничества для новых сотрудников', problem: 'Новички долго адаптируются, нет единого подхода', solution: 'Закрепить опытных сотрудников как наставников с мотивацией', effect: 'Сокращение адаптации с 3 до 1.5 месяцев', category: 'process', department: 'hr', votes: 31, comments: 12, status: 'accepted', anonymous: false, author: 'Дмитрий В.', date: '2026-08-08' },
|
||||||
{ id: 4, title: 'Автоматическое формирование отчетов', problem: 'Ежемесячные отчеты собираются вручную из разных систем', solution: 'Настроить автоматическую выгрузку и консолидацию данных', effect: 'Экономия 8 часов в месяц на сотрудника', category: 'automation', department: 'finance', votes: 42, comments: 15, status: 'new', anonymous: false, author: 'Кенжебаева Мадина', date: '2026-08-18' },
|
{ id: 4, title: 'Автоматическое формирование отчетов', problem: 'Ежемесячные отчеты собираются вручную из разных систем', solution: 'Настроить автоматическую выгрузку и консолидацию данных', effect: 'Экономия 8 часов в месяц на сотрудника', category: 'automation', department: 'finance', votes: 42, comments: 15, status: 'new', anonymous: false, author: 'Анна П.', date: '2026-08-18' },
|
||||||
{ id: 5, title: 'Чат-бот для ответов на частые вопросы HR', problem: 'HR-отдел перегружен однотипными вопросами', solution: 'Внедрить бота с базой знаний по политикам и процедурам', effect: 'Разгрузка HR на 40%, ответы 24/7', category: 'automation', department: 'hr', votes: 27, comments: 9, status: 'done', anonymous: false, author: 'Сейтказина Гульнара', date: '2026-07-25' },
|
{ id: 5, title: 'Чат-бот для ответов на частые вопросы HR', problem: 'HR-отдел перегружен однотипными вопросами', solution: 'Внедрить бота с базой знаний по политикам и процедурам', effect: 'Разгрузка HR на 40%, ответы 24/7', category: 'automation', department: 'hr', votes: 27, comments: 9, status: 'done', anonymous: false, author: 'Сергей Л.', date: '2026-07-25' },
|
||||||
{ id: 6, title: 'Оптимизация закупок канцелярии', problem: 'Заказ канцелярии через множество согласований', solution: 'Ввести квартальные лимиты и автоматический заказ', effect: 'Снижение затрат на 15%', category: 'cost', department: 'procurement', votes: 15, comments: 4, status: 'rejected', anonymous: false, author: 'Тулебаев Асет', date: '2026-08-05' }
|
{ id: 6, title: 'Оптимизация закупок канцелярии', problem: 'Заказ канцелярии через множество согласований', solution: 'Ввести квартальные лимиты и автоматический заказ', effect: 'Снижение затрат на 15%', category: 'cost', department: 'procurement', votes: 15, comments: 4, status: 'rejected', anonymous: false, author: 'Ольга Н.', date: '2026-08-05' }
|
||||||
],
|
],
|
||||||
surveys: [
|
surveys: [
|
||||||
{ id: 1, type: 'week1', date: '2026-08-15', tasks: 4, support: 5, comment: 'Всё отлично, коллеги помогают' },
|
{ id: 1, type: 'week1', date: '2026-08-15', tasks: 4, support: 5, comment: 'Всё отлично, коллеги помогают' },
|
||||||
@ -40,19 +28,10 @@ const INITIAL_DATA = {
|
|||||||
{ id: 2, process: 'Отчёт по продажам', department: 'sales', problem: 'Ручной сбор данных из CRM', solution: 'Автоматическая выгрузка раз в неделю', effect: 'errors', date: '2026-08-16', status: 'review' }
|
{ id: 2, process: 'Отчёт по продажам', department: 'sales', problem: 'Ручной сбор данных из CRM', solution: 'Автоматическая выгрузка раз в неделю', effect: 'errors', date: '2026-08-16', status: 'review' }
|
||||||
],
|
],
|
||||||
profile: {
|
profile: {
|
||||||
name: 'Катипа',
|
name: 'Александр Иванов',
|
||||||
department: 'IT Департамент',
|
department: 'IT Департамент',
|
||||||
position: 'Ведущий специалист',
|
position: 'Ведущий специалист',
|
||||||
tenure: '2 года 3 месяца',
|
tenure: '2 года 3 месяца'
|
||||||
isAdmin: true,
|
|
||||||
adminPermissions: [
|
|
||||||
'Просмотр всех отзывов',
|
|
||||||
'Редактирование статусов идей',
|
|
||||||
'Выгрузка отчётов в Excel',
|
|
||||||
'Управление пользователями',
|
|
||||||
'Доступ к аналитике по подразделениям',
|
|
||||||
'Изменение параметров системы'
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
engagementIndex: 78,
|
engagementIndex: 78,
|
||||||
@ -61,12 +40,12 @@ const INITIAL_DATA = {
|
|||||||
departments: ['hr', 'it', 'finance', 'procurement', 'sales', 'support']
|
departments: ['hr', 'it', 'finance', 'procurement', 'sales', 'support']
|
||||||
},
|
},
|
||||||
motivation: {
|
motivation: {
|
||||||
employeeOfMonth: { name: 'Алиев Нурлан', dept: 'IT Департамент', avatar: '👤' },
|
employeeOfMonth: { name: 'Алексей К.', dept: 'IT Департамент', avatar: '👤' },
|
||||||
ideaOfMonth: { title: 'Чат-бот для HR', author: 'Сейтказина Гульнара' },
|
ideaOfMonth: { title: 'Чат-бот для HR', author: 'Сергей Л.' },
|
||||||
thanks: [
|
thanks: [
|
||||||
{ id: 1, to: 'Омарова Айгуль', from: 'Катипа', reason: 'За помощь в обучении новой системы', type: 'help', date: '2026-08-18', anonymous: false },
|
{ id: 1, to: 'Мария С.', from: 'Александр И.', reason: 'За помощь в обучении новой системы', type: 'help', date: '2026-08-18', anonymous: false },
|
||||||
{ id: 2, to: 'Ибраев Ержан', from: 'Анонимно', reason: 'За наставничество и поддержку', type: 'mentor', date: '2026-08-17', anonymous: true },
|
{ id: 2, to: 'Дмитрий В.', from: 'Анонимно', reason: 'За наставничество и поддержку', type: 'mentor', date: '2026-08-17', anonymous: true },
|
||||||
{ id: 3, to: 'Кенжебаева Мадина', from: 'Тулебаев Асет', reason: 'За инициативу в оптимизации закупок', type: 'initiative', date: '2026-08-15', anonymous: false }
|
{ id: 3, to: 'Ольга Н.', from: 'Анна П.', reason: 'За инициативу в оптимизации закупок', type: 'initiative', date: '2026-08-15', anonymous: false }
|
||||||
],
|
],
|
||||||
achievements: [
|
achievements: [
|
||||||
{ id: 1, name: 'Новичок года', icon: '🌟', count: 1 },
|
{ id: 1, name: 'Новичок года', icon: '🌟', count: 1 },
|
||||||
@ -88,8 +67,8 @@ const INITIAL_DATA = {
|
|||||||
},
|
},
|
||||||
reserve: {
|
reserve: {
|
||||||
participants: [
|
participants: [
|
||||||
{ id: 1, name: 'Омарова Айгуль', dept: 'HR Департамент', stage: 'Обучение', progress: 50 },
|
{ id: 1, name: 'Мария С.', dept: 'HR Департамент', stage: 'Обучение', progress: 50 },
|
||||||
{ id: 2, name: 'Ибраев Ержан', dept: 'IT Департамент', stage: 'Стажировка', progress: 75 }
|
{ id: 2, name: 'Дмитрий В.', dept: 'IT Департамент', stage: 'Стажировка', progress: 75 }
|
||||||
],
|
],
|
||||||
applications: []
|
applications: []
|
||||||
}
|
}
|
||||||
|
|||||||
16
index.html
16
index.html
@ -410,22 +410,6 @@
|
|||||||
<h3>Мои обращения</h3>
|
<h3>Мои обращения</h3>
|
||||||
<div id="profileHistory" class="history-list"></div>
|
<div id="profileHistory" class="history-list"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="adminPanel" class="admin-panel" style="display: none;">
|
|
||||||
<h3>🔐 Панель администратора</h3>
|
|
||||||
<div class="admin-permissions">
|
|
||||||
<div class="permission-item">
|
|
||||||
<span class="permission-icon">✅</span>
|
|
||||||
<span class="permission-text">Доступны все права администратора</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="admin-actions">
|
|
||||||
<button class="admin-btn" onclick="alert('Управление пользователями')">👥 Пользователи</button>
|
|
||||||
<button class="admin-btn" onclick="alert('Настройки системы')">⚙️ Настройки</button>
|
|
||||||
<button class="admin-btn" onclick="alert('Журнал действий')">📋 Журнал</button>
|
|
||||||
<button class="admin-btn" onclick="exportAllData()">📥 Полная выгрузка</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
344
style.css
344
style.css
@ -718,66 +718,6 @@ textarea {
|
|||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Admin Panel */
|
|
||||||
.admin-panel {
|
|
||||||
background: linear-gradient(135deg, #1A3A52, #2C5282);
|
|
||||||
color: var(--white);
|
|
||||||
padding: 24px;
|
|
||||||
border-radius: 12px;
|
|
||||||
box-shadow: var(--shadow-lg);
|
|
||||||
margin-top: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.admin-panel h3 {
|
|
||||||
margin-bottom: 16px;
|
|
||||||
font-size: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.admin-permissions {
|
|
||||||
background: rgba(255,255,255,0.1);
|
|
||||||
padding: 16px;
|
|
||||||
border-radius: 8px;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.permission-item {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.permission-icon {
|
|
||||||
font-size: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.permission-text {
|
|
||||||
font-size: 14px;
|
|
||||||
opacity: 0.95;
|
|
||||||
}
|
|
||||||
|
|
||||||
.admin-actions {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
|
||||||
gap: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.admin-btn {
|
|
||||||
background: rgba(255,255,255,0.15);
|
|
||||||
color: var(--white);
|
|
||||||
border: 1px solid rgba(255,255,255,0.3);
|
|
||||||
padding: 12px 16px;
|
|
||||||
border-radius: 8px;
|
|
||||||
cursor: pointer;
|
|
||||||
font-size: 14px;
|
|
||||||
font-weight: 600;
|
|
||||||
transition: all 0.2s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.admin-btn:hover {
|
|
||||||
background: rgba(255,255,255,0.25);
|
|
||||||
transform: translateY(-2px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.history-item-header {
|
.history-item-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
@ -1411,317 +1351,41 @@ textarea {
|
|||||||
.header-content {
|
.header-content {
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
height: auto;
|
height: auto;
|
||||||
padding: 12px 16px;
|
padding: 16px;
|
||||||
gap: 12px;
|
gap: 16px;
|
||||||
}
|
|
||||||
|
|
||||||
.logo {
|
|
||||||
font-size: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logo-icon {
|
|
||||||
font-size: 24px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav {
|
.nav {
|
||||||
order: 3;
|
order: 3;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
padding-bottom: 8px;
|
|
||||||
-webkit-overflow-scrolling: touch;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-link {
|
|
||||||
padding: 6px 12px;
|
|
||||||
font-size: 13px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.user-btn {
|
|
||||||
padding: 6px 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.user-name {
|
|
||||||
display: none;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.main {
|
.main {
|
||||||
padding: 16px;
|
padding: 20px 16px;
|
||||||
}
|
|
||||||
|
|
||||||
.section-header h1 {
|
|
||||||
font-size: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section-subtitle {
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.kpi-grid {
|
.kpi-grid {
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.kpi-card {
|
|
||||||
padding: 16px 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.kpi-icon {
|
|
||||||
font-size: 24px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.kpi-value {
|
.kpi-value {
|
||||||
font-size: 24px;
|
font-size: 28px;
|
||||||
}
|
|
||||||
|
|
||||||
.kpi-label {
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.kpi-trend {
|
|
||||||
font-size: 11px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.charts-grid {
|
.charts-grid {
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chart-card {
|
|
||||||
padding: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.chart-card h3 {
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.chart-placeholder {
|
|
||||||
height: 200px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.profile-stats {
|
.profile-stats {
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
}
|
}
|
||||||
|
|
||||||
.stat-item {
|
|
||||||
padding: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stat-value {
|
|
||||||
font-size: 28px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-row {
|
.form-row {
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ideas-filters {
|
.ideas-filters {
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
-webkit-overflow-scrolling: touch;
|
|
||||||
}
|
|
||||||
|
|
||||||
.filter-btn {
|
|
||||||
padding: 6px 12px;
|
|
||||||
font-size: 13px;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.idea-card {
|
|
||||||
padding: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.idea-title {
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.idea-meta {
|
|
||||||
flex-direction: column;
|
|
||||||
gap: 4px;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.idea-actions {
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: flex-start;
|
|
||||||
gap: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.vote-btn {
|
|
||||||
padding: 6px 12px;
|
|
||||||
font-size: 13px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.feedback-container,
|
|
||||||
.automation-form,
|
|
||||||
.survey-container {
|
|
||||||
padding: 20px 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rating-star {
|
|
||||||
font-size: 28px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.modal-content {
|
|
||||||
max-width: calc(100% - 32px);
|
|
||||||
max-height: calc(100vh - 64px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.modal-header,
|
|
||||||
#ideaForm,
|
|
||||||
.modal-footer {
|
|
||||||
padding: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.adaptation-blocks,
|
|
||||||
.training-grid,
|
|
||||||
.motivation-grid {
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
}
|
|
||||||
|
|
||||||
.kpi-employee-header {
|
|
||||||
flex-direction: column;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.kpi-avatar {
|
|
||||||
font-size: 48px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.kpi-circle {
|
|
||||||
width: 120px;
|
|
||||||
height: 120px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.kpi-value {
|
|
||||||
font-size: 28px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.kpi-component {
|
|
||||||
grid-template-columns: 1fr 60px 40px;
|
|
||||||
gap: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.kpi-comp-label {
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stage {
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stage-dot {
|
|
||||||
width: 32px;
|
|
||||||
height: 32px;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.participant-card {
|
|
||||||
flex-direction: column;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.participant-progress {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.requirements-grid {
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
}
|
|
||||||
|
|
||||||
.admin-actions {
|
|
||||||
grid-template-columns: 1fr 1fr;
|
|
||||||
}
|
|
||||||
|
|
||||||
.analytics-filters {
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.analytics-filters select {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.analytics-kpi {
|
|
||||||
grid-template-columns: repeat(2, 1fr);
|
|
||||||
}
|
|
||||||
|
|
||||||
.akpi-item {
|
|
||||||
padding: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.akpi-value {
|
|
||||||
font-size: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.chart-large {
|
|
||||||
height: 200px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.thanks-wall {
|
|
||||||
padding: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.thank-card {
|
|
||||||
padding: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.thank-header {
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: flex-start;
|
|
||||||
gap: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.reserve-banner {
|
|
||||||
padding: 24px 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.reserve-banner h2 {
|
|
||||||
font-size: 22px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.reserve-banner p {
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 480px) {
|
|
||||||
.kpi-grid {
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
}
|
|
||||||
|
|
||||||
.kpi-card {
|
|
||||||
padding: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-link {
|
|
||||||
padding: 6px 10px;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section-header h1 {
|
|
||||||
font-size: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-primary,
|
|
||||||
.btn-secondary {
|
|
||||||
padding: 10px 16px;
|
|
||||||
font-size: 14px;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.idea-header {
|
|
||||||
flex-direction: column;
|
|
||||||
gap: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.idea-status {
|
|
||||||
align-self: flex-start;
|
|
||||||
}
|
|
||||||
|
|
||||||
.admin-actions {
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
}
|
|
||||||
|
|
||||||
.admin-btn {
|
|
||||||
width: 100%;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user