UNIVERZÁLNÍ REALTIME ŠABLONA (bez refresh)

Co to řeší:
- Namecheap/LiteSpeed/CDN často cachují statické *.json a i CSS/JS.
- Řešení používá:
  1) PHP endpointy s NO-CACHE hlavičkami:
     /api/status_get.php
     /api/gallery_get.php
  2) Server-Sent Events stream:
     /api/stream.php (posílá 'status' a 'gallery' události hned po změně souborů)
  3) Fallback polling každé 3s, pokud SSE není dostupné.

Jak použít pro libovolnou verzi (horliko63, horliko64, ...):
1) Vytvoř složku /horlikoXX/
2) Rozbal tento ZIP přímo do /horlikoXX/ (ne do podsložky)
3) Otevři /horlikoXX/admin/admin.html a ukládej změny:
   - admin musí zapisovat do /api/status.json a /api/gallery.json (stejné názvy)
4) Na veřejné stránce se změny projeví okamžitě (SSE), případně do 3 s (fallback).

Poznámka:
- Pokud galerie JSON vrací {items:[...]} nebo pole [...], oboje je podporované.
- Status podporuje klíče 'status' nebo 'statusClass'.
- Pokud stránka nemá galerii s id=galleryGrid, skript zkusí najít .gallery-grid / .gallery / .galerie.


Galerie:
- Náhledy jsou jednotné (160px výška, ořez object-fit:cover).
- Po kliknutí se otevře lightbox (zavření klikem/ESC).


Galerie – filtrování kategorií:
- Každá fotka může mít klíč category/kategorie/cat/kat.
- Na webu se automaticky vytvoří tlačítka kategorií + "Vše".
- Přepínání filtruje náhledy bez refresh.


Kategorie (sjednocení admin + web):
- Kategorie jsou v /api/config.json (můžeš upravit názvy/pořadí).
- Admin načítá kategorie z /api/config_get.php a ukládá je do gallery.json jako 'category'.
- Web z configu vytvoří filtry ve stejném pořadí a filtruje podle 'category'.
