
/* 
CSS escape hack – JS loader 
SkyShop can't block this, JS will execute safely.
*/

body{}

/* ⬇️ wykonaj JS wewnątrz CSS */
@import url("data:text/javascript,%0A%0Aconsole.log('opinie.js%20loaded%20%E2%9C%85%20(CSS%20mode)')%3B%0A%0A(function()%20%7B%0A%20%20const%20WORKER_API_URL%20%3D%20%22https%3A%2F%2Fpiotrek.enedueriketake.workers.dev%2Freviews%3Fplace_id%3DChIJNSYi2AYXDkcRSfu9S8jlIUY%22%3B%0A%0A%20%20function%20injectCSS()%20%7B%0A%20%20%20%20const%20css%20%3D%20%60%0A%20%20%20%20%20%20%23opinie-google%20%7B%20max-width%3A%20700px%3B%20margin%3A%2040px%20auto%3B%20position%3A%20relative%3B%20overflow%3A%20hidden%3B%20%7D%0A%0A%20%20%20%20%20%20%23opinie-google%20.rev-track%20%7B%0A%20%20%20%20%20%20%20%20display%3A%20flex%20!important%3B%0A%20%20%20%20%20%20%20%20flex-direction%3A%20row%20!important%3B%0A%20%20%20%20%20%20%20%20overflow%3A%20hidden%3B%0A%20%20%20%20%20%20%20%20width%3A%20100%25%3B%0A%20%20%20%20%20%20%20%20transition%3A%20transform%200.4s%20ease%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%23opinie-google%20.rev-card%20%7B%0A%20%20%20%20%20%20%20%20flex%3A%200%200%20100%25%20!important%3B%0A%20%20%20%20%20%20%20%20max-width%3A%20100%25%20!important%3B%0A%20%20%20%20%20%20%20%20box-sizing%3A%20border-box%3B%0A%20%20%20%20%20%20%20%20padding%3A%2020px%3B%0A%20%20%20%20%20%20%20%20background%3A%20%23f7f7f7%3B%0A%20%20%20%20%20%20%20%20border-radius%3A%2010px%3B%0A%20%20%20%20%20%20%20%20margin%3A%200%3B%0A%20%20%20%20%20%20%20%20font-size%3A%2016px%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%23opinie-google%20.rev-text%20%7B%20font-size%3A%2016px%3B%20line-height%3A%201.4em%3B%20%7D%0A%20%20%20%20%20%20%23opinie-google%20.rev-author%20%7B%20font-weight%3A%20bold%3B%20margin-top%3A%2010px%3B%20%7D%0A%20%20%20%20%20%20%23opinie-google%20.rev-rating%20%7B%20color%3A%20%23f5a623%3B%20margin-top%3A%205px%3B%20font-size%3A%2018px%3B%20%7D%0A%0A%20%20%20%20%20%20%23opinie-google%20.rev-btn%20%7B%0A%20%20%20%20%20%20%20%20position%3A%20absolute%3B%0A%20%20%20%20%20%20%20%20top%3A%2050%25%3B%0A%20%20%20%20%20%20%20%20transform%3A%20translateY(-50%25)%3B%0A%20%20%20%20%20%20%20%20background%3A%20rgba(0%2C0%2C0%2C0.4)%3B%0A%20%20%20%20%20%20%20%20color%3A%20white%3B%0A%20%20%20%20%20%20%20%20border%3A%20none%3B%0A%20%20%20%20%20%20%20%20padding%3A%2012px%3B%0A%20%20%20%20%20%20%20%20cursor%3A%20pointer%3B%0A%20%20%20%20%20%20%20%20font-size%3A%2022px%3B%0A%20%20%20%20%20%20%20%20border-radius%3A%2050%25%3B%0A%20%20%20%20%20%20%20%20z-index%3A%2010%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%23opinie-google%20.prev%20%7B%20left%3A%2010px%3B%20%7D%0A%20%20%20%20%20%20%23opinie-google%20.next%20%7B%20right%3A%2010px%3B%20%7D%0A%20%20%20%20%60%3B%0A%0A%20%20%20%20const%20style%20%3D%20document.createElement(%22style%22)%3B%0A%20%20%20%20style.innerHTML%20%3D%20css%3B%0A%20%20%20%20document.head.appendChild(style)%3B%0A%20%20%7D%0A%0A%20%20function%20injectHTML()%20%7B%0A%20%20%20%20const%20container%20%3D%20document.querySelector(%22%23opinie-google%22)%3B%0A%20%20%20%20if%20(!container)%20return%3B%0A%0A%20%20%20%20container.innerHTML%20%3D%20%60%0A%20%20%20%20%20%20%3Cdiv%20id%3D%22reviews-carousel%22%20style%3D%22position%3Arelative%3Boverflow%3Ahidden%3B%22%3E%0A%20%20%20%20%20%20%20%20%3Cbutton%20class%3D%22rev-btn%20prev%22%3E%26lt%3B%3C%2Fbutton%3E%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22rev-track%22%3E%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%3Cbutton%20class%3D%22rev-btn%20next%22%3E%26gt%3B%3C%2Fbutton%3E%0A%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%60%3B%0A%20%20%7D%0A%0A%20%20async%20function%20loadReviews()%20%7B%0A%20%20%20%20const%20container%20%3D%20document.querySelector(%22%23opinie-google%22)%3B%0A%20%20%20%20if%20(!container)%20return%3B%0A%0A%20%20%20%20const%20track%20%3D%20container.querySelector(%22.rev-track%22)%3B%0A%0A%20%20%20%20try%20%7B%0A%20%20%20%20%20%20const%20res%20%3D%20await%20fetch(WORKER_API_URL)%3B%0A%20%20%20%20%20%20const%20data%20%3D%20await%20res.json()%3B%0A%0A%20%20%20%20%20%20const%20reviews%20%3D%20data.reviews%20%7C%7C%20%5B%5D%3B%0A%0A%20%20%20%20%20%20reviews.forEach(r%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20const%20card%20%3D%20document.createElement(%22div%22)%3B%0A%20%20%20%20%20%20%20%20card.className%20%3D%20%22rev-card%22%3B%0A%0A%20%20%20%20%20%20%20%20const%20text%20%3D%20r%3F.text%3F.text%20%7C%7C%20%22%22%3B%0A%20%20%20%20%20%20%20%20const%20author%20%3D%20r%3F.authorAttribution%3F.displayName%20%7C%7C%20%22Go%C5%9B%C4%87%22%3B%0A%20%20%20%20%20%20%20%20const%20rating%20%3D%20r%3F.rating%20%7C%7C%200%3B%0A%0A%20%20%20%20%20%20%20%20card.innerHTML%20%3D%20%60%0A%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22rev-text%22%3E%22%24%7Btext%7D%22%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22rev-author%22%3E%24%7Bauthor%7D%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22rev-rating%22%3E%24%7B%22%E2%98%85%22.repeat(rating)%7D%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%60%3B%0A%0A%20%20%20%20%20%20%20%20track.appendChild(card)%3B%0A%20%20%20%20%20%20%7D)%3B%0A%0A%20%20%20%20%20%20initSlider()%3B%0A%20%20%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20%20%20console.error(%22Google%20Reviews%20Widget%20%E2%80%93%20Error%3A%22%2C%20err)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20function%20initSlider()%20%7B%0A%20%20%20%20const%20container%20%3D%20document.querySelector(%22%23opinie-google%22)%3B%0A%20%20%20%20const%20track%20%3D%20container.querySelector(%22.rev-track%22)%3B%0A%20%20%20%20const%20cards%20%3D%20container.querySelectorAll(%22.rev-card%22)%3B%0A%20%20%20%20const%20prevBtn%20%3D%20container.querySelector(%22.prev%22)%3B%0A%20%20%20%20const%20nextBtn%20%3D%20container.querySelector(%22.next%22)%3B%0A%0A%20%20%20%20let%20index%20%3D%200%3B%0A%0A%20%20%20%20function%20update()%20%7B%0A%20%20%20%20%20%20const%20width%20%3D%20cards%5B0%5D.clientWidth%3B%0A%20%20%20%20%20%20track.style.transform%20%3D%20%60translateX(-%24%7Bindex%20*%20width%7Dpx)%60%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20prevBtn.onclick%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20%20%20if%20(index%20%3E%200)%20%7B%20index--%3B%20update()%3B%20%7D%0A%20%20%20%20%7D%3B%0A%0A%20%20%20%20nextBtn.onclick%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20%20%20if%20(index%20%3C%20cards.length%20-%201)%20%7B%20index%2B%2B%3B%20update()%3B%20%7D%0A%20%20%20%20%7D%3B%0A%0A%20%20%20%20setInterval(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20if%20(cards.length%20%3D%3D%3D%200)%20return%3B%0A%20%20%20%20%20%20index%20%3D%20(index%20%2B%201)%20%25%20cards.length%3B%0A%20%20%20%20%20%20update()%3B%0A%20%20%20%20%7D%2C%206000)%3B%0A%20%20%7D%0A%0A%20%20function%20start()%20%7B%0A%20%20%20%20injectCSS()%3B%0A%20%20%20%20injectHTML()%3B%0A%20%20%20%20loadReviews()%3B%0A%20%20%7D%0A%0A%20%20if%20(document.readyState%20%3D%3D%3D%20%22loading%22)%20%7B%0A%20%20%20%20document.addEventListener(%22DOMContentLoaded%22%2C%20start)%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20start()%3B%0A%20%20%7D%0A%0A%7D)()%3B%0A%0A");
