trudovoy-zamer/index.html

505 lines
24 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Трудовой замер — общенациональный опрос о работе в Казахстане</title>
<style>
:root {
--ink: #0F1218;
--cyan: #00E5FF;
--cyan-50: #E8FCFF;
--white: #FFFFFF;
--gray-500: #5B6573;
--gray-100: #F2F4F7;
--gray-200: #E4E7EC;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
font: 17px/1.6 -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif;
color: var(--ink);
background: var(--white);
}
.container { max-width: 1140px; margin: 0 auto; padding: 0 24px; }
/* Header */
.header {
border-bottom: 1px solid var(--gray-100);
padding: 16px 0;
position: sticky; top: 0; background: var(--white); z-index: 10;
}
.header .container { display: flex; align-items: center; justify-content: space-between; }
.logo { font-size: 20px; font-weight: 800; letter-spacing: -0.02em; }
.logo span { color: var(--cyan); }
.header-stats { font-size: 14px; color: var(--gray-500); }
.header-stats strong { color: var(--ink); font-weight: 700; }
/* Hero */
.hero {
padding: 80px 0 64px;
text-align: center;
}
.hero .badge {
display: inline-block;
background: var(--cyan-50);
color: #0891B2;
padding: 6px 16px;
border-radius: 20px;
font-size: 14px;
font-weight: 600;
margin-bottom: 24px;
}
.hero h1 {
font-size: 56px;
font-weight: 800;
line-height: 1.05;
margin-bottom: 20px;
letter-spacing: -0.02em;
}
.hero p.sub {
font-size: 20px;
color: var(--gray-500);
max-width: 620px;
margin: 0 auto 40px;
}
.stats-row {
display: flex;
justify-content: center;
gap: 48px;
flex-wrap: wrap;
}
.stat-item { text-align: center; }
.stat-num { font-size: 44px; font-weight: 800; color: var(--cyan); line-height: 1; }
.stat-label { font-size: 14px; color: var(--gray-500); margin-top: 6px; }
/* Sections */
.section { padding: 72px 0; }
.section h2 { font-size: 36px; font-weight: 700; margin-bottom: 12px; }
.section p.lead { font-size: 18px; color: var(--gray-500); max-width: 600px; margin-bottom: 40px; }
.section-gray { background: var(--gray-100); }
/* Cards */
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.card {
background: var(--white);
border-radius: 16px;
padding: 32px;
border: 1px solid var(--gray-100);
}
.card .emoji { font-size: 32px; margin-bottom: 12px; }
.card h3 { font-size: 18px; font-weight: 700; margin-bottom: 8px; }
.card p { font-size: 15px; color: var(--gray-500); }
/* Form */
#survey { border-top: 1px solid var(--gray-100); }
fieldset {
border: 1px solid var(--gray-200);
border-radius: 16px;
padding: 36px 40px;
margin-bottom: 24px;
background: var(--white);
}
legend {
font-size: 20px;
font-weight: 700;
padding: 0 12px;
display: flex; align-items: center; gap: 10px;
}
legend .num {
display: inline-flex;
align-items: center; justify-content: center;
width: 32px; height: 32px;
border-radius: 50%;
background: var(--cyan);
font-size: 15px;
font-weight: 800;
flex-shrink: 0;
}
.radio-group { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, max-content)); gap: 10px; margin-top: 16px; }
.radio-item {
display: flex; align-items: center; gap: 10px;
padding: 12px 18px;
border: 1.5px solid var(--gray-200);
border-radius: 10px;
cursor: pointer;
transition: border-color 0.15s, background 0.15s;
white-space: nowrap;
}
.radio-item:hover { border-color: var(--cyan); }
.radio-item:has(input:checked) {
border-color: var(--cyan);
background: var(--cyan-50);
font-weight: 600;
}
.radio-item input { accent-color: var(--cyan); width: 18px; height: 18px; flex-shrink: 0; }
.radio-item label { cursor: pointer; }
.range-wrap { margin-top: 16px; }
.range-labels { display: flex; justify-content: space-between; font-size: 13px; color: var(--gray-500); margin-bottom: 6px; }
.range-inputs { display: flex; gap: 12px; align-items: center; }
.range-inputs input[type="number"] {
width: 140px;
padding: 12px 16px;
border: 1.5px solid var(--gray-200);
border-radius: 10px;
font: inherit; font-size: 16px;
text-align: center;
}
.range-inputs input:focus { outline: none; border-color: var(--cyan); }
.range-inputs span { color: var(--gray-500); }
.text-input {
width: 100%;
padding: 14px 16px;
border: 1.5px solid var(--gray-200);
border-radius: 10px;
font: inherit; font-size: 16px;
resize: vertical;
min-height: 110px;
margin-top: 12px;
}
.text-input:focus { outline: none; border-color: var(--cyan); }
.btn {
display: inline-block;
background: var(--ink);
color: var(--white);
padding: 16px 48px;
border-radius: 10px;
font: inherit; font-size: 17px;
font-weight: 700;
border: none;
cursor: pointer;
text-decoration: none;
transition: background 0.15s;
}
.btn:hover { background: #1D2939; }
.btn:disabled { opacity: 0.5; cursor: not-allowed; }
.submit-wrap { text-align: center; margin-top: 32px; padding-bottom: 48px; }
.toast {
display: none;
position: fixed;
bottom: 32px;
left: 50%;
transform: translateX(-50%);
background: var(--ink);
color: var(--white);
padding: 14px 28px;
border-radius: 12px;
font-weight: 600;
font-size: 15px;
z-index: 100;
box-shadow: 0 8px 32px rgba(0,0,0,0.18);
}
.toast.show { display: block; animation: fadeUp 0.3s ease; }
.toast.error { background: #F04438; }
@keyframes fadeUp {
from { opacity: 0; transform: translateX(-50%) translateY(12px); }
to { opacity: 1; transform: translateX(-50%) translateY(0); }
}
.footer {
text-align: center;
padding: 40px 24px;
color: var(--gray-500);
font-size: 13px;
border-top: 1px solid var(--gray-100);
}
.footer a { color: var(--cyan); text-decoration: none; }
.required-note { font-size: 13px; color: var(--gray-500); margin-bottom: 16px; }
@media (max-width: 640px) {
.hero h1 { font-size: 32px; }
.hero p.sub { font-size: 16px; }
.section h2 { font-size: 28px; }
.stats-row { gap: 24px; }
.stat-num { font-size: 32px; }
fieldset { padding: 24px 20px; }
.radio-group { grid-template-columns: 1fr; }
.range-inputs { flex-direction: column; }
.range-inputs input[type="number"] { width: 100%; }
}
</style>
</head>
<body>
<header class="header">
<div class="container">
<div class="logo">Трудовой <span>замер</span></div>
<div class="header-stats">Цель: <strong>250 000</strong> респондентов</div>
</div>
</header>
<section class="hero">
<div class="container">
<div class="badge">Масштабное исследование</div>
<h1>Общенациональный опрос<br>о труде и занятости</h1>
<p class="sub">Собираем мнение 250 000 человек со всего Казахстана — от рабочих до топ-менеджеров. Ваш голос важен.</p>
<div class="stats-row">
<div class="stat-item">
<div class="stat-num">250K</div>
<div class="stat-label">Цель респондентов</div>
</div>
<div class="stat-item">
<div class="stat-num">13</div>
<div class="stat-label">Вопросов в анкете</div>
</div>
<div class="stat-item">
<div class="stat-num">3 мин</div>
<div class="stat-label">Время на опрос</div>
</div>
</div>
</div>
</section>
<section class="section-gray">
<div class="container section">
<h2>Что мы исследуем</h2>
<p class="lead">Четыре ключевых направления трудового анализа.</p>
<div class="cards">
<div class="card">
<div class="emoji">💰</div>
<h3>Доходы и зарплаты</h3>
<p>Медианные зарплаты по отраслям, регионам и должностям. Разрыв между ожиданием и реальностью.</p>
</div>
<div class="card">
<div class="emoji">⚖️</div>
<h3>Условия труда</h3>
<p>График, переработки, удалёнка, соцпакет. Насколько работодатели соблюдают Трудовой кодекс.</p>
</div>
<div class="card">
<div class="emoji">📈</div>
<h3>Карьерный рост</h3>
<p>Перспективы повышения, обучение за счёт компании, горизонтальные и вертикальные треки.</p>
</div>
<div class="card">
<div class="emoji">😰</div>
<h3>Удовлетворённость</h3>
<p>Эмоциональное выгорание, баланс работа/жизнь, желание сменить профессию.</p>
</div>
</div>
</div>
</section>
<section id="survey">
<div class="container" style="padding-top:64px; padding-bottom:32px;">
<h2>Пройти опрос</h2>
<p class="lead">Ответы анонимны. Данные будут опубликованы в виде обезличенной аналитики.</p>
<p class="required-note">* — обязательные вопросы</p>
<form id="surveyForm" novalidate>
<fieldset>
<legend><span class="num">1</span> Ваш пол *</legend>
<div class="radio-group">
<div class="radio-item"><input type="radio" name="gender" value="male" id="g1" required><label for="g1">Мужской</label></div>
<div class="radio-item"><input type="radio" name="gender" value="female" id="g2"><label for="g2">Женский</label></div>
</div>
</fieldset>
<fieldset>
<legend><span class="num">2</span> Ваш возраст *</legend>
<div class="radio-group">
<div class="radio-item"><input type="radio" name="age" value="18-22" id="a1" required><label for="a1">1822 года</label></div>
<div class="radio-item"><input type="radio" name="age" value="23-29" id="a2"><label for="a2">2329 лет</label></div>
<div class="radio-item"><input type="radio" name="age" value="30-39" id="a3"><label for="a3">3039 лет</label></div>
<div class="radio-item"><input type="radio" name="age" value="40-49" id="a4"><label for="a4">4049 лет</label></div>
<div class="radio-item"><input type="radio" name="age" value="50-59" id="a5"><label for="a5">5059 лет</label></div>
<div class="radio-item"><input type="radio" name="age" value="60+" id="a6"><label for="a6">60 лет и старше</label></div>
</div>
</fieldset>
<fieldset>
<legend><span class="num">3</span> Регион проживания *</legend>
<div class="radio-group">
<div class="radio-item"><input type="radio" name="region" value="astana" id="r1" required><label for="r1">Астана</label></div>
<div class="radio-item"><input type="radio" name="region" value="almaty" id="r2"><label for="r2">Алматы</label></div>
<div class="radio-item"><input type="radio" name="region" value="shymkent" id="r3"><label for="r3">Шымкент</label></div>
<div class="radio-item"><input type="radio" name="region" value="north" id="r4"><label for="r4">Север (СКО, Акмолинская, Павлодарская, Костанайская)</label></div>
<div class="radio-item"><input type="radio" name="region" value="south" id="r5"><label for="r5">Юг (Туркестанская, Жамбылская, Кызылординская, Алматинская, Жетысуская)</label></div>
<div class="radio-item"><input type="radio" name="region" value="west" id="r6"><label for="r6">Запад (Атырауская, Мангистауская, ЗКО, Актюбинская)</label></div>
<div class="radio-item"><input type="radio" name="region" value="east" id="r7"><label for="r7">Восток (ВКО, Абайская)</label></div>
<div class="radio-item"><input type="radio" name="region" value="center" id="r8"><label for="r8">Центр (Карагандинская, Улытауская)</label></div>
</div>
</fieldset>
<fieldset>
<legend><span class="num">4</span> Ваша отрасль *</legend>
<div class="radio-group">
<div class="radio-item"><input type="radio" name="industry" value="it" id="i1" required><label for="i1">IT / Телеком</label></div>
<div class="radio-item"><input type="radio" name="industry" value="finance" id="i2"><label for="i2">Финансы / Банки</label></div>
<div class="radio-item"><input type="radio" name="industry" value="industry" id="i3"><label for="i3">Промышленность</label></div>
<div class="radio-item"><input type="radio" name="industry" value="construction" id="i4"><label for="i4">Строительство</label></div>
<div class="radio-item"><input type="radio" name="industry" value="retail" id="i5"><label for="i5">Торговля / Ритейл</label></div>
<div class="radio-item"><input type="radio" name="industry" value="medicine" id="i6"><label for="i6">Медицина</label></div>
<div class="radio-item"><input type="radio" name="industry" value="education" id="i7"><label for="i7">Образование</label></div>
<div class="radio-item"><input type="radio" name="industry" value="transport" id="i8"><label for="i8">Транспорт / Логистика</label></div>
<div class="radio-item"><input type="radio" name="industry" value="gov" id="i9"><label for="i9">Госслужба</label></div>
<div class="radio-item"><input type="radio" name="industry" value="other" id="i10"><label for="i10">Другое</label></div>
</div>
</fieldset>
<fieldset>
<legend><span class="num">5</span> Ваша должность *</legend>
<div class="radio-group">
<div class="radio-item"><input type="radio" name="position" value="worker" id="p1" required><label for="p1">Рабочий / исполнитель</label></div>
<div class="radio-item"><input type="radio" name="position" value="specialist" id="p2"><label for="p2">Специалист</label></div>
<div class="radio-item"><input type="radio" name="position" value="senior" id="p3"><label for="p3">Ведущий специалист</label></div>
<div class="radio-item"><input type="radio" name="position" value="manager" id="p4"><label for="p4">Руководитель отдела</label></div>
<div class="radio-item"><input type="radio" name="position" value="director" id="p5"><label for="p5">Топ-менеджмент</label></div>
<div class="radio-item"><input type="radio" name="position" value="self" id="p6"><label for="p6">Самозанятый / ИП</label></div>
</div>
</fieldset>
<fieldset>
<legend><span class="num">6</span> Ваш месячный доход (на руки) *</legend>
<div class="range-wrap">
<div class="range-labels">
<span>до 100 000 ₸</span><span>100200 000 ₸</span><span>200350 000 ₸</span><span>350500 000 ₸</span><span>500750 000 ₸</span><span>750 000+ ₸</span>
</div>
</div>
<div class="radio-group" style="margin-top:8px;">
<div class="radio-item"><input type="radio" name="income" value="lt100" id="inc1" required><label for="inc1">до 100 000 ₸</label></div>
<div class="radio-item"><input type="radio" name="income" value="100-200" id="inc2"><label for="inc2">100 000 200 000 ₸</label></div>
<div class="radio-item"><input type="radio" name="income" value="200-350" id="inc3"><label for="inc3">200 000 350 000 ₸</label></div>
<div class="radio-item"><input type="radio" name="income" value="350-500" id="inc4"><label for="inc4">350 000 500 000 ₸</label></div>
<div class="radio-item"><input type="radio" name="income" value="500-750" id="inc5"><label for="inc5">500 000 750 000 ₸</label></div>
<div class="radio-item"><input type="radio" name="income" value="gt750" id="inc6"><label for="inc6">более 750 000 ₸</label></div>
</div>
</fieldset>
<fieldset>
<legend><span class="num">7</span> Формат работы *</legend>
<div class="radio-group">
<div class="radio-item"><input type="radio" name="format" value="office" id="f1" required><label for="f1">Офис / на месте</label></div>
<div class="radio-item"><input type="radio" name="format" value="hybrid" id="f2"><label for="f2">Гибрид (офис + удалёнка)</label></div>
<div class="radio-item"><input type="radio" name="format" value="remote" id="f3"><label for="f3">Полная удалёнка</label></div>
<div class="radio-item"><input type="radio" name="format" value="field" id="f4"><label for="f4">Разъездной / вахта</label></div>
</div>
</fieldset>
<fieldset>
<legend><span class="num">8</span> Перерабатываете ли вы? *</legend>
<div class="radio-group">
<div class="radio-item"><input type="radio" name="overtime" value="never" id="ov1" required><label for="ov1">Нет, строго по графику</label></div>
<div class="radio-item"><input type="radio" name="overtime" value="sometimes" id="ov2"><label for="ov2">Иногда (12 раза в неделю)</label></div>
<div class="radio-item"><input type="radio" name="overtime" value="often" id="ov3"><label for="ov3">Часто (3+ раз в неделю)</label></div>
<div class="radio-item"><input type="radio" name="overtime" value="always" id="ov4"><label for="ov4">Постоянно, это норма</label></div>
</div>
</fieldset>
<fieldset>
<legend><span class="num">9</span> Оплачиваются ли переработки? *</legend>
<div class="radio-group">
<div class="radio-item"><input type="radio" name="overtime_paid" value="yes" id="op1" required><label for="op1">Да, полностью</label></div>
<div class="radio-item"><input type="radio" name="overtime_paid" value="partial" id="op2"><label for="op2">Частично</label></div>
<div class="radio-item"><input type="radio" name="overtime_paid" value="no" id="op3"><label for="op3">Нет</label></div>
<div class="radio-item"><input type="radio" name="overtime_paid" value="no_overtime" id="op4"><label for="op4">У меня нет переработок</label></div>
</div>
</fieldset>
<fieldset>
<legend><span class="num">10</span> Удовлетворены ли вы своей зарплатой? *</legend>
<div class="radio-group">
<div class="radio-item"><input type="radio" name="salary_satisfaction" value="5" id="ss1" required><label for="ss1">Полностью доволен</label></div>
<div class="radio-item"><input type="radio" name="salary_satisfaction" value="4" id="ss2"><label for="ss2">Скорее доволен</label></div>
<div class="radio-item"><input type="radio" name="salary_satisfaction" value="3" id="ss3"><label for="ss3">Нейтрально</label></div>
<div class="radio-item"><input type="radio" name="salary_satisfaction" value="2" id="ss4"><label for="ss4">Скорее недоволен</label></div>
<div class="radio-item"><input type="radio" name="salary_satisfaction" value="1" id="ss5"><label for="ss5">Совсем недоволен</label></div>
</div>
</fieldset>
<fieldset>
<legend><span class="num">11</span> Хотели бы вы сменить работу в ближайший год? *</legend>
<div class="radio-group">
<div class="radio-item"><input type="radio" name="change_job" value="yes_active" id="cj1" required><label for="cj1">Да, уже ищу</label></div>
<div class="radio-item"><input type="radio" name="change_job" value="yes_passive" id="cj2"><label for="cj2">Да, но пассивно</label></div>
<div class="radio-item"><input type="radio" name="change_job" value="maybe" id="cj3"><label for="cj3">Возможно, при хорошем предложении</label></div>
<div class="radio-item"><input type="radio" name="change_job" value="no" id="cj4"><label for="cj4">Нет, меня всё устраивает</label></div>
</div>
</fieldset>
<fieldset>
<legend><span class="num">12</span> Что для вас главное в работе? (можно несколько)</legend>
<div class="radio-group">
<div class="radio-item"><input type="checkbox" name="priority" value="salary" id="pr1"><label for="pr1">Высокая зарплата</label></div>
<div class="radio-item"><input type="checkbox" name="priority" value="stability" id="pr2"><label for="pr2">Стабильность</label></div>
<div class="radio-item"><input type="checkbox" name="priority" value="schedule" id="pr3"><label for="pr3">Удобный график</label></div>
<div class="radio-item"><input type="checkbox" name="priority" value="growth" id="pr4"><label for="pr4">Карьерный рост</label></div>
<div class="radio-item"><input type="checkbox" name="priority" value="team" id="pr5"><label for="pr5">Коллектив</label></div>
<div class="radio-item"><input type="checkbox" name="priority" value="meaning" id="pr6"><label for="pr6">Смысл и польза дела</label></div>
<div class="radio-item"><input type="checkbox" name="priority" value="remote" id="pr7"><label for="pr7">Удалённый формат</label></div>
</div>
</fieldset>
<fieldset>
<legend><span class="num">13</span> Ваш комментарий (по желанию)</legend>
<textarea class="text-input" name="comment" placeholder="Что ещё важно сказать о вашей работе? Что нужно менять в трудовой сфере?" maxlength="600"></textarea>
</fieldset>
<div class="submit-wrap">
<button type="submit" class="btn" id="submitBtn">Отправить ответы</button>
</div>
</form>
<div class="toast" id="toast"></div>
</div>
</section>
<footer class="footer">
<p>Анонимный опрос · 2026 · Все ответы конфиденциальны и будут использованы только в обобщённом виде.</p>
<p style="margin-top:8px;"><a href="#">Политика обработки данных</a></p>
</footer>
<script>
var form = document.getElementById('surveyForm');
var toast = document.getElementById('toast');
var submitBtn = document.getElementById('submitBtn');
var requiredFields = ['gender', 'age', 'region', 'industry', 'position', 'income', 'format', 'overtime', 'overtime_paid', 'salary_satisfaction', 'change_job'];
function showToast(msg, isError) {
toast.textContent = msg;
toast.className = 'toast show' + (isError ? ' error' : '');
setTimeout(function() { toast.className = 'toast'; }, 4000);
}
form.addEventListener('submit', function(e) {
e.preventDefault();
var missing = null;
for (var i = 0; i < requiredFields.length; i++) {
var name = requiredFields[i];
if (!form.querySelector('input[name="' + name + '"]:checked')) {
missing = name;
break;
}
}
if (missing) {
showToast('Ответьте на все обязательные вопросы (помечены *)', true);
var el = form.querySelector('input[name="' + missing + '"]');
el.scrollIntoView({ behavior: 'smooth', block: 'center' });
return;
}
submitBtn.disabled = true;
submitBtn.textContent = 'Отправляем...';
setTimeout(function() {
submitBtn.textContent = 'Отправлено!';
showToast('Спасибо! Ваши ответы приняты.', false);
form.reset();
submitBtn.disabled = false;
submitBtn.textContent = 'Отправить ответы';
window.scrollTo({ top: 0, behavior: 'smooth' });
}, 800);
});
</script>
</body>
</html>