`);w.document.close();w.focus();setTimeout(()=>w.print(),300) } function workersPage(m){ ensureWorkers(); m.innerHTML=head('Работники','Цвет каждого работника отображается в календаре',``) +`
${db.workers.map(w=>`
${w.name}
Цвет записей: ${w.color}
`).join('')}
`; } function newWorker(){openModal('Новый работник',`
${['#eadcf8','#dceefa','#dff3e6','#fff0cf','#f8dfe5','#e8e1d5','#e1e9f7','#f0dff2','#dff1ef','#f2e2d2'].map((c,i)=>``).join('')}
`)} function saveWorker(e){e.preventDefault();let f=new FormData(e.target);ensureWorkers();db.workers.push({id:Date.now(),name:f.get('name'),color:f.get('color')});save();closeModal();workersPage(document.getElementById('main'))} function editWorker(id){let w=getWorker(id);openModal('Изменить работника',`
${['#eadcf8','#dceefa','#dff3e6','#fff0cf','#f8dfe5','#e8e1d5','#e1e9f7','#f0dff2','#dff1ef','#f2e2d2'].map(c=>``).join('')}
`)} function updateWorker(e,id){e.preventDefault();let f=new FormData(e.target),w=getWorker(id);w.name=f.get('name');w.color=f.get('color');save();closeModal();workersPage(document.getElementById('main'))} function deleteWorker(id){if(db.workers.length<=1){alert('Должен остаться хотя бы один работник.');return}if(confirm('Удалить работника? Его старые записи сохранятся.')){db.workers=db.workers.filter(w=>w.id!=id);save();workersPage(document.getElementById('main'))}} function setPin(){let current=prompt('Придумай PIN из 4 цифр (или оставь пустым, чтобы снять защиту):','');if(current===null)return;if(current===''){localStorage.removeItem('groom_pin');alert('Защита снята');return}if(!/^\d{4}$/.test(current)){alert('Нужно ровно 4 цифры');return}localStorage.setItem('groom_pin',current);alert('PIN установлен')} function lockIfNeeded(){let pin=localStorage.getItem('groom_pin');if(!pin)return;let tries=0;while(tries<3){let x=prompt('🔒 Личная база грумера\nВведите PIN:');if(x===pin)return;tries++}document.body.innerHTML='
🔒

Приложение заблокировано

Перезагрузи страницу и введи PIN ещё раз.

';throw new Error('locked')} lockIfNeeded(); try{nav();render()}catch(err){ console.error(err); document.getElementById('main').innerHTML='

UnaGrooms

Не удалось открыть данные приложения.

Сделай резервную копию, затем обнови страницу.

'; }