/* КНОПКИ СВЯЗИ */ !selected.isEvent && (selected.phone || selected.whatsapp || selected.instagram) && React.createElement("div", { className: "flex flex-col gap-3 mb-6" }, selected.phone && React.createElement("a", { href: `tel:${selected.phone}`, className: "flex items-center gap-3 bg-black text-white px-5 py-4 rounded-2xl font-black text-[12px] uppercase shadow-md active:scale-95 transition-transform" }, React.createElement("span", { className: "text-lg" }, "📞"), selected.phone ), selected.whatsapp && React.createElement("a", { href: `https://wa.me/${selected.whatsapp.replace(/\D/g,'')}`, target:"_blank", className: "flex items-center gap-3 bg-green-500 text-white px-5 py-4 rounded-2xl font-black text-[12px] uppercase shadow-md active:scale-95 transition-transform" }, React.createElement("span", { className: "text-lg" }, "💬"), "WhatsApp" ), selected.instagram && React.createElement("a", { href: `https://instagram.com/${selected.instagram.replace('@','')}`, target:"_blank", className: "flex items-center gap-3 bg-gradient-to-tr from-yellow-400 via-red-500 to-purple-500 text-white px-5 py-4 rounded-2xl font-black text-[12px] uppercase shadow-md active:scale-95 transition-transform" }, React.createElement("svg", { width: "20", height: "20", fill: "currentColor", viewBox: "0 0 24 24" }, React.createElement("path", { d: "M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.162 6.162 6.162 6.162-2.759 6.162-6.162-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z" }) ), selected.instagram ) ), React.createElement("div", { className: "bg-slate-50 border border-slate-100 p-5 rounded-[30px] mb-8" }, React.createElement("p", { className: "text-[10px] font-black uppercase text-slate-400 mb-2 tracking-widest" }, selected.isEvent ? "Дата и время" : "Точный адрес"), React.createElement("p", { className: "text-xl font-bold text-slate-800 leading-tight mb-4" }, selected.address), !selected.isEvent && React.createElement("button", { onClick: () => copyToClipboard(selected.address), className: "w-full bg-white border-2 border-blue-600 text-blue-600 py-3 rounded-2xl font-black text-[11px] uppercase tracking-wider active:scale-95 transition-transform" }, "Скопировать адрес") ), React.createElement("div", {className:"bg-slate-100 p-6 rounded-3xl mb-8"}, React.createElement("h3", {className:"font-black uppercase text-[10px] mb-4 text-slate-500 tracking-widest"}, "Построить маршрут"), React.createElement("div", {className:"flex gap-2"}, React.createElement("button", { onClick:()=>buildRoute('driving'), className:"flex-1 bg-black text-white py-4 rounded-2xl font-black text-[10px] uppercase" }, "🚕 Такси"), React.createElement("button", { onClick:()=>buildRoute('walking'), className:"flex-1 bg-white text-black py-4 rounded-2xl font-black text-[10px] uppercase border-2 border-slate-200" }, "🚶 Пешком") ) ), React.createElement("p", {className:"text-slate-600 mb-10 text-sm leading-relaxed"}, selected.description), !selected.isEvent && React.createElement("div", {className:"border-t pt-8"}, React.createElement("h3", {className:"font-black uppercase mb-6 text-sm"}, "Рейтинг и отзывы"), user.reg && React.createElement("div", {className:"mb-10 bg-blue-50 p-6 rounded-3xl"}, React.createElement("div", {className:"star-rating mb-4"}, [1,2,3,4,5].map(s => React.createElement("span", { key:s, className:`star ${userRate >= s ? 'active' : ''}`, onClick:()=>setUserRate(s) }, "★"))), React.createElement("textarea", { className:"w-full border-2 border-white p-4 rounded-2xl mb-4 text-sm outline-none bg-white shadow-sm", placeholder:"Напишите о впечатлениях...", value:commentText, onChange:e=>setCommentText(e.target.value) }), React.createElement("button", { onClick:addComment, className:"w-full bg-blue-600 text-white py-4 rounded-2xl font-black uppercase text-[10px] shadow-lg" }, "Отправить отзыв") ), React.createElement("div", {className:"space-y-4"}, (comments[selected.id] || []).map((c, i) => React.createElement("div", {key:i, className:"bg-slate-50 p-5 rounded-3xl"}, React.createElement("div", {className:"flex justify-between items-center mb-2"}, React.createElement("b", {className:"text-blue-600 text-[10px] uppercase font-black"}, c.user), React.createElement("div", {className:"text-yellow-500 text-xs font-black"}, "★ ".repeat(c.stars || 0)) ), React.createElement("p", {className:"text-sm font-medium leading-snug"}, c.text) ))) ) ) ) ), React.createElement("div", { className: "nav-dock" }, [ // Кнопка установки: видна ТОЛЬКО если приложение можно установить и юзер НЕ в PWA-режиме deferredPrompt && React.createElement("button", { key: "pwa", onClick: handleInstallApp, className: "nav-item text-blue-600 animate-pulse bg-blue-50 rounded-xl" }, [ React.createElement("span", {className:"text-xl"}, "📲"), React.createElement("span", {className:"nav-label font-black text-[10px]"}, "Установить приложение") ]), React.createElement("button", { key: "map", onClick:()=>setView("map"), className:`nav-item ${view==='map'?'active':''}` }, [ React.createElement("span", {className:"text-xl"}, "📍"), React.createElement("span", {className:"nav-label"}, "Карта") ]), React.createElement("button", { key: "events", onClick:()=>setView("events"), className:`nav-item ${view==='events'?'active':''}` }, [ React.createElement("span", {className:"text-xl"}, "🔥"), React.createElement("span", {className:"nav-label"}, "Ивенты") ]), React.createElement("div", { key: "scan", className:"qr-main-trigger", onClick: typeof startScanning !== 'undefined' ? startScanning : () => {} }, [ React.createElement("div", { style:{width:'28px', height:'28px', border:'2.5px solid #3b82f6', borderRadius:'6px'} }), React.createElement("span", {className:"text-[10px] font-black uppercase tracking-tighter mt-1"}, "SCAN") ]), React.createElement("button", { key: "top", onClick:()=>setView("top"), className:`nav-item ${view==='top'?'active':''}` }, [ React.createElement("span", {className:"text-xl"}, "🏆"), React.createElement("span", {className:"nav-label"}, "Топ") ]), React.createElement("button", { key: "profile", onClick:()=>setView("profile"), className:`nav-item ${view==='profile'?'active':''}` }, [ React.createElement("span", {className:"text-xl"}, "👤"), React.createElement("span", {className:"nav-label"}, "Профиль") ]) ]), view !== "map" && React.createElement("div", { className:"fixed inset-0 bg-white z-[5500] p-8 overflow-y-auto pb-40" }, React.createElement("div", {className:"flex justify-between items-center mb-10 text-black"}, React.createElement("h2", {className:"text-4xl font-black uppercase tracking-tighter"}, view), React.createElement("button", {onClick:()=>setView("map"), className:"text-4xl font-light"}, "✕") ), view === "top" && React.createElement("div", {className:"space-y-6 text-black"}, places.sort((a,b)=>b.rate-a.rate).map((p, idx)=> ( React.createElement("div", { key:p.id, onClick:()=>{setSelected(p); setView("map"); setTimeout(()=>mapRef.current.flyTo([p.lat, p.lng], 16), 100);}, className:"flex items-center gap-5 bg-slate-50 p-4 rounded-[30px] active:scale-95 transition-transform border border-slate-100" }, React.createElement("div", {className:"relative"}, React.createElement("img", {src:p.photos[0], className:"w-20 h-20 rounded-[22px] object-cover shadow-md"}), React.createElement("div", {className:"absolute -top-2 -left-2 w-8 h-8 bg-black text-white rounded-full flex items-center justify-center font-black text-xs border-2 border-white"}, idx+1) ), React.createElement("div", {className:"flex-1 text-left"}, React.createElement("div", {className:"flex justify-between items-start"}, React.createElement("h3", {className:"font-black text-sm uppercase leading-tight"}, p.name), React.createElement("span", {className:"text-yellow-500 font-black text-xs"}, "★ ", p.rate.toFixed(1)) ), React.createElement("p", {className:"text-[10px] text-blue-600 font-black uppercase mt-1"}, p.cat) ) ) )) ), view === "events" && React.createElement("div", {className:"space-y-6 text-black text-left"}, MOCK_EVENTS.map(ev => ( React.createElement("div", { key: ev.id, className: "event-card" }, React.createElement("div", { className: "event-tag" }, ev.tag), React.createElement("img", { src: ev.img, className: "w-full h-48 object-cover" }), React.createElement("div", { className: "p-6" }, React.createElement("div", { className: "flex justify-between items-center mb-2" }, React.createElement("span", { className: "text-blue-600 font-black text-xs uppercase" }, ev.date) ), React.createElement("h3", { className: "text-2xl font-black uppercase mb-3" }, ev.title), React.createElement("p", { className: "text-slate-500 text-sm mb-6 leading-relaxed" }, ev.desc), React.createElement("button", { onClick: () => activateEventOnMap(ev), className: "w-full bg-green-500 text-white py-4 rounded-2xl font-black uppercase text-[10px] tracking-widest shadow-lg active:scale-95 transition-transform" }, "Активировать на карте ⚡️") ) ) )) ), view === "profile" && (!user.reg ? React.createElement("div", null, React.createElement("input", {id:"uI", placeholder:"Ваше имя", className:"w-full p-6 bg-slate-100 rounded-3xl mb-4 font-bold outline-none text-black"}), React.createElement("button", {onClick:()=>{const v=document.getElementById('uI').value; if(v){const u={reg:true, name:v, coins:100}; setUser(u); localStorage.setItem('sanya_u', JSON.stringify(u)); setView("map");}}, className:"w-full bg-blue-600 text-white py-6 rounded-3xl font-black"}, "ВОЙТИ") ) : React.createElement("div", null, React.createElement("div", {className:"bg-black text-white p-10 rounded-[45px] mb-8 text-center font-black text-5xl"}, user.coins, " 💎"), React.createElement("h3", {className:"font-black text-2xl mb-4 text-black"}, user.name), React.createElement("button", {onClick:()=>{localStorage.clear(); location.reload();}, className:"text-red-500 font-bold uppercase text-xs"}, "Выйти") )) ) ReactDOM.createRoot(document.getElementById('root')).render(React.createElement(App));