/* ===== Kamery WIA – styly stránky =====================================
   Barvy se berou z proměnných sdíleného styles.css z wia.cz.
   Fallback níže je jen pro případ, že by se styles.css nenačetl.
   ==================================================================== */
:root{
  --green:#457C1F; --green-light:#74AF28; --green-deep:#35601A;
  --dark:#373A3B; --text:#4D5460; --text-light:#7a8291;
  --bg-soft:#F4F5F4; --border:#E4E6E4; --radius:14px;
  --plan:#9AA3AE;              /* barva pro připravované kamery */
}

/* ==================== HLAVIČKA A HERO ====================
   Vlastní, soběstačné – nezávisí na hlavičce šablony.
   Když je zapnutá, hlavička šablony se skryje (viz body.cam-hide-header).
   ======================================================== */
body.cam-hide-header header.site-header,
body.cam-hide-header nav.site-nav,
body.cam-hide-header .nav-toggle{display:none !important;}

.cam-header{
  background:#fff; border-bottom:1px solid var(--border);
  position:sticky; top:0; z-index:500;
  box-shadow:0 2px 12px rgba(55,58,59,.07);
}
.cam-header .container{
  max-width:1180px; margin:0 auto; padding:0 24px;
  height:76px; display:flex; align-items:center;
}
.cam-header .cam-logo{display:block; line-height:0;}
.cam-header .cam-logo img{height:42px; width:auto; display:block;}

.cam-hero{background:var(--green-deep); padding:56px 0 48px; text-align:center;}
.cam-hero .container{max-width:1180px; margin:0 auto; padding:0 24px;}
.cam-hero h1{
  color:#fff; font-size:clamp(28px,3.5vw,40px);
  line-height:1.25; margin:0 0 14px; font-weight:700;
}
.cam-hero p{
  color:rgba(255,255,255,.88); font-size:18px;
  line-height:1.6; max-width:70ch; margin:0 auto;
}
@media (max-width:560px){
  .cam-header .container{height:64px; padding:0 18px;}
  .cam-header .cam-logo img{height:34px;}
  .cam-hero{padding:36px 0 32px;}
  .cam-hero .container{padding:0 18px;}
  .cam-hero p{font-size:16.5px;}
}

/* ==================== FILTRAČNÍ LIŠTA ==================== */
.cam-toolbar{
  position:relative; z-index:400;   /* nelepí se – po filtrování pohled ukotví JS */
  background:#fff; border-bottom:1px solid var(--border);
  padding:16px 0; box-shadow:0 4px 18px rgba(55,58,59,.05);
}
.cam-toolbar .container{display:flex; flex-direction:column; gap:14px;}
.cam-row{display:flex; flex-wrap:wrap; gap:12px; align-items:center;}
.cam-row.top{justify-content:space-between;}

.cam-search{position:relative; flex:1 1 280px; max-width:400px;}
.cam-search input{
  width:100%; font:inherit; font-size:15px; padding:11px 38px 11px 42px;
  border:1px solid var(--border); border-radius:8px;
  background:var(--bg-soft); color:var(--dark);
  transition:border-color .15s, background .15s;
}
.cam-search input:focus{outline:none; border-color:var(--green); background:#fff;}
.cam-search .ico-search{
  position:absolute; left:14px; top:50%; transform:translateY(-50%);
  width:18px; height:18px; fill:none; stroke:var(--text-light); stroke-width:2;
  stroke-linecap:round; pointer-events:none;
}
.cam-search .clear{
  position:absolute; right:8px; top:50%; transform:translateY(-50%);
  border:0; background:none; cursor:pointer; color:var(--text-light);
  font-size:20px; line-height:1; padding:4px 8px; display:none;
}
.cam-search.has-value .clear{display:block;}

/* --- Našeptávač --- */
.cam-suggest{
  position:absolute; left:0; right:0; top:calc(100% + 6px); z-index:600;
  background:#fff; border:1px solid var(--border); border-radius:10px;
  box-shadow:0 10px 30px rgba(55,58,59,.16);
  max-height:340px; overflow-y:auto; padding:6px; display:none;
}
.cam-search.open .cam-suggest{display:block;}
.cam-suggest .grp{
  font-size:11px; font-weight:700; letter-spacing:.7px; text-transform:uppercase;
  color:var(--text-light); padding:8px 10px 4px;
}
.cam-sg{
  display:flex; align-items:center; gap:10px; width:100%;
  font:inherit; text-align:left; background:none; border:0; cursor:pointer;
  padding:9px 10px; border-radius:7px; color:var(--dark);
}
.cam-sg:hover, .cam-sg.sel{background:var(--bg-soft);}
.cam-sg .dot{width:9px; height:9px; border-radius:50%; flex:0 0 9px; background:var(--green);}
.cam-sg.plan .dot{background:#fff; border:2px solid var(--plan);}
.cam-sg svg{width:16px; height:16px; flex:0 0 16px; fill:none; stroke:var(--text-light); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.cam-sg .tx{flex:1; min-width:0;}
.cam-sg .t1{font-size:14.5px; font-weight:600; line-height:1.3;}
.cam-sg .t2{font-size:12.5px; color:var(--text-light); line-height:1.35; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.cam-sg mark{background:none; color:var(--green); font-weight:700;}
.cam-sg .cnt{font-size:12px; color:var(--text-light); flex:0 0 auto;}
.cam-suggest .none{padding:14px 10px; font-size:14px; color:var(--text-light); text-align:center;}


/* --- Chipy (kraje, stav) --- */
.cam-chips{display:flex; flex-wrap:wrap; gap:8px; align-items:center;}
.cam-chips .lbl{
  font-size:12px; font-weight:700; letter-spacing:.6px; text-transform:uppercase;
  color:var(--text-light); margin-right:2px;
}
.chip{
  font:inherit; font-size:14px; font-weight:600;
  padding:8px 15px; border-radius:999px; cursor:pointer;
  border:2px solid var(--border); background:#fff; color:var(--text);
  display:inline-flex; align-items:center; gap:7px; transition:all .15s;
}
.chip:hover{border-color:var(--green-light); color:var(--green-deep);}
.chip[aria-pressed="true"]{background:var(--green); border-color:var(--green); color:#fff;}
.chip .n{opacity:.6; font-weight:400;}
.chip .dot{width:8px; height:8px; border-radius:50%; background:var(--green-light);}
.chip.is-plan .dot{background:var(--plan);}
.chip[aria-pressed="true"] .dot{background:#fff;}

/* --- Selecty --- */
.cam-select{display:flex; align-items:center; gap:8px; font-size:14px; color:var(--text-light);}
.cam-select select{
  font:inherit; font-size:14px; font-weight:500; color:var(--dark);
  padding:8px 32px 8px 12px; border:1px solid var(--border); border-radius:8px;
  background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234D5460' stroke-width='2'><path d='m6 9 6 6 6-6'/></svg>") no-repeat right 10px center/14px;
  -webkit-appearance:none; appearance:none; cursor:pointer;
}
.cam-select select:focus{outline:none; border-color:var(--green);}

/* --- Přepínač zobrazení --- */
.cam-view{display:flex; border:1px solid var(--border); border-radius:8px; overflow:hidden;}
.cam-view button{
  font:inherit; font-size:13.5px; font-weight:600; color:var(--text);
  background:#fff; border:0; padding:9px 14px; cursor:pointer;
  display:inline-flex; align-items:center; gap:6px; transition:all .15s;
}
.cam-view button + button{border-left:1px solid var(--border);}
.cam-view button:hover{background:var(--bg-soft); color:var(--green-deep);}
.cam-view button[aria-pressed="true"]{background:var(--green); color:#fff;}
.cam-view svg{width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round;}

.cam-count{font-size:14px; color:var(--text-light); white-space:nowrap; margin-left:auto;}
.cam-count b{color:var(--green); font-weight:600;}
.cam-reset{
  font:inherit; font-size:14px; font-weight:600; color:var(--green);
  background:none; border:0; cursor:pointer; text-decoration:underline; padding:4px;
}
.cam-reset:hover{color:var(--green-deep);}

/* ==================== MAPA ==================== */
.cam-map-section{padding:32px 0 8px;}
.cam-map-wrap{
  position:relative; height:clamp(360px, 56vh, 560px);
  border:1px solid var(--border); border-radius:var(--radius);
  overflow:hidden; box-shadow:0 6px 24px rgba(55,58,59,.10);
  background:var(--bg-soft);
  /* Vlastní vykreslovací vrstva – bez toho iOS Safari při scrollu
     „vypouští" absolutně umístěná tlačítka mimo ořez mapy (plavou). */
  -webkit-transform:translateZ(0);
  transform:translateZ(0);
  isolation:isolate;
}
#cam-map{position:absolute; inset:0;}

/* Legenda nad mapou */
.cam-legend{
  position:absolute; left:12px; bottom:12px; z-index:500;
  background:rgba(255,255,255,.97);   /* bez backdrop-filter – na iOS Safari „utíkal" z ořezu mapy při scrollu */
  border:1px solid var(--border); border-radius:10px;
  padding:10px 14px; font-size:13px; color:var(--text);
  box-shadow:0 4px 16px rgba(55,58,59,.12);
  display:flex; flex-direction:column; gap:7px;
}
.cam-legend div{display:flex; align-items:center; gap:9px;}
.cam-legend .sw{width:12px; height:12px; border-radius:50%; flex:0 0 12px;}
.cam-legend .sw.live{background:var(--green);}
.cam-legend .sw.plan{background:#fff; border:2px solid var(--plan);}

/* Tlačítko „celá ČR“ */
.cam-map-reset{
  position:absolute; right:12px; top:12px; z-index:500;
  font:inherit; font-size:13.5px; font-weight:600; color:var(--green);
  background:rgba(255,255,255,.97);   /* bez backdrop-filter – na iOS Safari „utíkal" z ořezu mapy při scrollu */
  border:1px solid var(--border); border-radius:8px;
  padding:9px 14px; cursor:pointer; box-shadow:0 4px 16px rgba(55,58,59,.12);
  transition:all .15s;
}
/* Když je otevřená bublina (má vlastní křížek), tlačítko schováme,
   ať se s křížkem nepřekrývají. */
.cam-map-wrap.iw-open .cam-map-reset{display:none;}

/* Tlačítko „celá obrazovka mapy" – levý horní roh (vpravo dole má
   Google ovládání zoomu, tam by se překrývaly). */
.cam-map-fs{
  position:absolute; left:12px; top:12px; z-index:500;
  width:42px; height:42px; border-radius:10px; padding:0;
  background:rgba(255,255,255,.97);   /* bez backdrop-filter – na iOS Safari „utíkal" z ořezu mapy při scrollu */
  border:1px solid var(--border); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 16px rgba(55,58,59,.12); transition:all .15s;
}
.cam-map-fs:hover{background:var(--green); border-color:var(--green);}
.cam-map-fs svg{width:20px; height:20px; fill:none; stroke:var(--green); stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.cam-map-fs:hover svg{stroke:#fff;}
.cam-map-fs .ico-close{display:none;}
.cam-map-wrap.map-fs .cam-map-fs .ico-open{display:none;}
.cam-map-wrap.map-fs .cam-map-fs .ico-close{display:block;}

/* Celá obrazovka mapy: nativní i CSS náhrada (iPhone). */
.cam-map-wrap.map-fs{
  position:fixed; inset:0; z-index:9998; margin:0;
  width:100vw; max-width:100vw;
  height:100vh !important; height:100dvh !important;
  border-radius:0;
  transform:none;   /* v celé obrazovce transformaci nechceme (fixní pozice) */
}
.cam-map-wrap:fullscreen{height:100vh; border-radius:0; transform:none;}
.cam-map-wrap:-webkit-full-screen{height:100vh; border-radius:0; transform:none;}
.cam-map-reset:hover{background:var(--green); color:#fff; border-color:var(--green);}

/* --- Infookno Google Maps v podobě WIA --- */
.cam-map-wrap .gm-style-iw.gm-style-iw-c{
  padding:0 !important; border-radius:12px !important;
  box-shadow:0 10px 32px rgba(55,58,59,.22) !important;
  max-width:262px !important;
  max-height:none !important;   /* ať Google neořízne bublinu na nízké mapě (skryté „Přehrát živě") */
}
.cam-map-wrap .gm-style-iw-d{overflow:visible !important; max-height:none !important;}
.cam-map-wrap .gm-style-iw-chr{position:absolute; top:0; right:0; z-index:2; height:0;}
.cam-map-wrap .gm-style-iw button.gm-ui-hover-effect{
  top:4px !important; right:4px !important; opacity:1 !important;
  background:rgba(255,255,255,.9) !important; border-radius:50% !important;
}
.cam-map-wrap .gm-style-iw-tc::after{background:#fff !important;}

.cam-pop{font-family:inherit; width:250px;}
.cam-pop .thumb{position:relative; aspect-ratio:16/9; background:var(--bg-soft); display:block;}
.cam-pop .thumb img{width:100%; height:100%; object-fit:cover; display:block;}
.cam-pop .thumb.plan{
  display:flex; align-items:center; justify-content:center;
  background:repeating-linear-gradient(45deg, #F4F5F4, #F4F5F4 10px, #ECEEEC 10px, #ECEEEC 20px);
}
.cam-pop .thumb.plan svg{width:34px; height:34px; stroke:var(--plan); fill:none; stroke-width:1.6;}
.cam-pop .txt{padding:12px 14px 14px;}
.cam-pop h4{margin:0 0 3px; font-size:16px; color:var(--green); line-height:1.3;}
.cam-pop p{margin:0 0 10px; font-size:13px; color:var(--text-light); line-height:1.45;}
.cam-pop .go{
  display:block; width:100%; text-align:center; font:inherit;
  font-size:13.5px; font-weight:600; color:#fff; background:var(--green);
  border:0; border-radius:8px; padding:9px; cursor:pointer; transition:background .15s;
}
.cam-pop .go:hover{background:var(--green-deep);}
.cam-pop .soon{
  text-align:center; font-size:13px; font-weight:600; color:var(--plan);
  background:var(--bg-soft); border-radius:8px; padding:9px;
}

/* Hláška, když chybí API klíč Google Maps */
.cam-map-missing{
  position:absolute; inset:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:8px; text-align:center;
  padding:24px; color:var(--text-light); background:var(--bg-soft);
}
.cam-map-missing strong{color:var(--dark); font-size:17px;}
.cam-map-missing code{
  background:#fff; border:1px solid var(--border); border-radius:6px;
  padding:2px 7px; font-size:13px; color:var(--green-deep);
}

/* ==================== MŘÍŽKA KARET ==================== */
.cam-grid-section{padding:32px 0 56px;}
.cam-grid{display:grid; gap:24px; grid-template-columns:repeat(auto-fill, minmax(300px,1fr));}

.cam-card{
  position:relative; border:1px solid var(--border); border-radius:var(--radius);
  background:#fff; overflow:hidden; text-align:left; padding:0; font:inherit; width:100%;
  display:flex; flex-direction:column; cursor:pointer;
  transition:transform .18s, box-shadow .18s, border-color .18s;
}
.cam-card:hover, .cam-card:focus-visible{
  transform:translateY(-3px); box-shadow:0 6px 24px rgba(55,58,59,.14);
  border-color:var(--green-light); outline:none;
}
.cam-card.is-active{border-color:var(--green); box-shadow:0 6px 24px rgba(69,124,31,.25);}

.cam-thumb{position:relative; aspect-ratio:16/9; background:var(--bg-soft); overflow:hidden;}
.cam-thumb img{width:100%; height:100%; object-fit:cover; display:block;}
.cam-thumb::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.28) 0%, rgba(0,0,0,0) 45%);
}
.cam-play{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:56px; height:56px; border-radius:50%; background:rgba(69,124,31,.92);
  z-index:2; display:grid; place-items:center; transition:transform .18s, background .18s;
}
.cam-play svg{width:22px; height:22px; fill:#fff; margin-left:3px;}
.cam-card:hover .cam-play{transform:translate(-50%,-50%) scale(1.12); background:var(--green);}

/* Karta připravované kamery */
.cam-card.plan{cursor:default;}
.cam-card.plan:hover{transform:none; border-color:var(--border); box-shadow:none;}
.cam-card.plan .cam-thumb{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  background:repeating-linear-gradient(45deg, #F4F5F4, #F4F5F4 12px, #ECEEEC 12px, #ECEEEC 24px);
}
.cam-card.plan .cam-thumb::after{display:none;}
.cam-card.plan .cam-thumb svg{width:36px; height:36px; stroke:var(--plan); fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round;}
.cam-card.plan .cam-thumb span{font-size:13px; font-weight:600; color:var(--plan); letter-spacing:.3px;}
.cam-card.plan .cam-body h3{color:var(--dark);}

.cam-badge{
  position:absolute; top:10px; left:10px; z-index:3;
  display:inline-flex; align-items:center; gap:6px;
  font-size:11.5px; font-weight:700; letter-spacing:.8px;
  padding:5px 10px; border-radius:999px;
  background:rgba(0,0,0,.6); color:#fff; backdrop-filter:blur(4px);
}
.cam-badge i{width:7px; height:7px; border-radius:50%; background:#ff4444; animation:camPulse 1.8s infinite;}
.cam-badge.plan{background:#fff; color:var(--plan); border:1px solid var(--border); backdrop-filter:none;}
.cam-badge.plan i{background:var(--plan); animation:none;}
@keyframes camPulse{0%,100%{opacity:1} 50%{opacity:.25}}

.cam-body{padding:16px 18px 18px; display:flex; flex-direction:column; flex:1;}
.cam-body h3{margin:0 0 4px; font-size:18px; font-weight:600; color:var(--green); line-height:1.3;}
.cam-body .addr{margin:0; font-size:14px; color:var(--text-light); line-height:1.5;}
/* margin-top:auto drží patičku karty dole i u kamer bez adresy,
   takže se karty v mřížce nerozjedou. */
.cam-foot{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; padding-top:12px;}
.cam-body .kraj{
  font-size:12px; font-weight:600; color:var(--green-deep);
  background:var(--bg-soft); border-radius:999px; padding:4px 10px;
}
.cam-card.plan .cam-body .kraj{color:var(--text-light);}
.cam-locate{
  font:inherit; font-size:13px; font-weight:600; color:var(--green);
  background:none; border:0; cursor:pointer; padding:4px 2px;
  display:inline-flex; align-items:center; gap:5px;
}
.cam-locate svg{width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round;}
.cam-locate:hover{color:var(--green-deep); text-decoration:underline;}

.cam-empty{grid-column:1/-1; text-align:center; padding:56px 24px; color:var(--text-light);}
.cam-empty h3{color:var(--dark); margin:0 0 8px; font-size:20px;}

/* ==================== PŘEPÍNAČ ZOBRAZENÍ ==================== */
.cam-app.view-map .cam-grid-section{display:none;}
.cam-app.view-list .cam-map-section{display:none;}
.cam-app.view-map .cam-map-wrap{height:clamp(440px, 72vh, 760px);}

/* ==================== ROZCESTNÍK ====================
   Dvě karty Pro domácnosti / Pro firmy, převzato z rozcestníku wia.cz.
   =================================================== */
.cam-rz{background:#fff; padding:0; border-top:1px solid var(--border);}
.cam-rz .container{max-width:1180px; margin:0 auto; padding:0 24px;}
/* Zelený pruh s bílým nadpisem – přesně jako rozcestník na wia.cz.
   Pod ním na bílém pozadí dvě karty. */
.cam-rz-band{background:var(--green-deep); padding:54px 0 46px;}
.cam-rz-head{text-align:center; max-width:760px; margin:0 auto;}
.cam-rz-head h2{
  color:#fff; font-size:clamp(26px,3.4vw,38px);
  line-height:1.25; margin:0 0 10px; font-weight:700;
}
.cam-rz-head p{color:rgba(255,255,255,.9); font-size:17px; line-height:1.6; margin:0;}
.cam-rz-cards{padding:48px 0 64px;}

.rz-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:30px;}
.rz-card{
  background:#fff; border:1.5px solid var(--border); border-radius:16px;
  padding:38px 34px 34px; color:var(--green); text-decoration:none;
  display:flex; flex-direction:column;
  transition:border-color .2s, box-shadow .2s, transform .2s;
}
.rz-card:hover{
  border-color:var(--green); transform:translateY(-3px);
  box-shadow:0 6px 24px rgba(55,58,59,.10);
}
.rz-ico{display:block; margin-bottom:16px;}
.rz-ico svg{
  width:46px; height:46px; stroke:var(--green); fill:none;
  stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;
}
.rz-card h3{
  color:var(--dark); font-size:26px; font-weight:700;
  line-height:1.25; margin:0 0 10px;
}
.rz-card .desc{color:var(--text); font-size:16px; line-height:1.6; margin:0 0 20px;}
.rz-list{list-style:none; margin:0 0 26px; padding:0;}
.rz-list li{
  position:relative; padding-left:27px; margin-bottom:10px;
  font-size:15px; color:var(--text); line-height:1.5;
}
/* Zelená fajfka – přesně jako na wia.cz (15×9 px, 2px linka, rotace -45°) */
.rz-list li::before{
  content:""; position:absolute; left:0; top:6px;
  width:15px; height:9px; box-sizing:content-box;
  border-left:2px solid var(--green-light);
  border-bottom:2px solid var(--green-light);
  transform:rotate(-45deg);
}
.rz-go{
  margin-top:auto; align-self:flex-start;
  background:var(--green); color:#fff; font-weight:600; font-size:16px;
  padding:14px 28px; border-radius:8px; transition:background .2s;
}
.rz-card:hover .rz-go{background:var(--green-deep);}

@media (max-width:960px){
  .cam-rz-band{padding:44px 0 38px;}
  .cam-rz-cards{padding:36px 0 48px;}
  .rz-grid{gap:20px;}
}
@media (max-width:560px){
  .cam-rz-band{padding:30px 0 26px;}
  .cam-rz-cards{padding:24px 0 36px;}
  .cam-rz .container{padding:0 16px;}
  /* Dvě kompaktní karty vedle sebe – jako rozcestník na mobilu wia.cz:
     ikona, název a tlačítko. Popis a odrážky se na telefonu skryjí. */
  .rz-grid{grid-template-columns:1fr 1fr; gap:12px;}
  .rz-card{padding:20px 14px 18px; border-radius:14px;}
  .rz-card .desc, .rz-list{display:none;}
  .rz-ico{margin-bottom:12px;}
  .rz-ico svg{width:38px; height:38px;}
  .rz-card h3{font-size:18px; line-height:1.2; margin:0 0 14px;}
  .rz-go{
    width:100%; text-align:center; margin-top:auto;
    padding:11px 8px; font-size:13px;
  }
}

/* ==================== PATIČKA ====================
   Přesná kopie patičky z wia.cz, ale soběstačná – nepotřebuje
   styles.css šablony. Patička šablony se skrývá přes body.cam-hide-footer.
   ================================================ */
body.cam-hide-footer footer.site-footer:not(.cam-footer){display:none !important;}

.cam-footer{
  background:var(--bg-soft); color:var(--text);
  padding:56px 0 24px; font-size:14.5px;
  border-top:1px solid var(--border);
  line-height:1.6;
}
.cam-footer .container{max-width:1180px; margin:0 auto; padding:0 24px;}
.cam-footer .footer-grid{
  display:grid; grid-template-columns:1fr 1.2fr 1fr 1.6fr auto;
  gap:36px; margin-bottom:40px;
}
.cam-footer h4{
  color:var(--green); font-size:15px; font-weight:700; margin:0 0 18px;
  text-transform:uppercase; letter-spacing:1px;
}
.cam-footer ul{list-style:none; margin:0; padding:0;}
.cam-footer li{margin-bottom:11px;}
.cam-footer a{color:var(--text); text-decoration:underline; text-underline-offset:3px;}
.cam-footer a:hover{color:var(--green);}

.cam-footer .footer-phone{display:flex; gap:12px; margin-bottom:24px; align-items:flex-start;}
.cam-footer .footer-phone img{width:22px; height:22px; margin-top:2px; flex:0 0 22px;}
.cam-footer .footer-phone span{color:var(--dark); font-weight:600; display:block; line-height:1.45;}
.cam-footer .footer-phone a{color:var(--green); font-weight:700; text-decoration:none;}
.cam-footer .footer-phone a:hover{text-decoration:underline;}

.cam-footer .footer-mywia{display:flex; flex-direction:column; align-items:flex-start; gap:26px;}
.cam-footer .mywia-btn{
  background:var(--green); border-radius:10px; padding:16px 34px;
  display:inline-block; text-decoration:none; transition:background .2s;
}
.cam-footer .mywia-btn:hover{background:var(--green-deep);}
.cam-footer .mywia-btn img{height:26px; display:block;}
.cam-footer .socials{display:flex; gap:14px;}
.cam-footer .socials a{
  width:44px; height:44px; border:1.5px solid var(--green); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  text-decoration:none; transition:all .2s;
}
.cam-footer .socials a:hover{background:var(--green);}
.cam-footer .socials svg{
  width:18px; height:18px; stroke:var(--green); fill:none;
  stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;
}
.cam-footer .socials a:hover svg{stroke:#fff;}

.cam-footer .footer-bottom{
  border-top:1px solid var(--border); padding-top:20px;
  text-align:center; font-size:13.5px; color:var(--text-light);
}
.cam-footer .footer-bottom a{color:var(--text-light);}
.cam-footer .footer-bottom .sep{margin:0 10px; opacity:.5;}
.cam-footer .footer-bottom .copy{margin-top:10px;}

@media (max-width:960px){
  .cam-footer .footer-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:560px){
  .cam-footer{padding:40px 0 20px;}
  .cam-footer .container{padding:0 16px;}
  /* Dva sloupce i na mobilu – stejně jako patička wia.cz. */
  .cam-footer .footer-grid{grid-template-columns:1fr 1fr; gap:26px 20px;}
  .cam-footer h4{font-size:13.5px; margin-bottom:14px;}
  .cam-footer{font-size:13.5px;}
  .cam-footer .footer-mywia{grid-column:1 / -1;}
}

/* ==================== 404 STRÁNKA ====================
   Vlastní 404 ve vzhledu kamerového webu (viz templates/404.php). */
.wia-404{background:#fff;}
.cam-404{
  min-height:52vh; display:flex; align-items:center; justify-content:center;
  text-align:center; padding:72px 24px; background:var(--bg-soft);
}
.cam-404 .container{max-width:560px; margin:0 auto;}
.cam-404-code{
  font-size:clamp(72px,15vw,132px); font-weight:800; line-height:.9;
  color:var(--green); letter-spacing:-3px;
}
.cam-404 h1{font-size:clamp(24px,4vw,34px); color:var(--dark); margin:14px 0 10px; font-weight:700; line-height:1.2;}
.cam-404 p{font-size:17px; color:var(--text-light); line-height:1.6; margin:0 0 28px;}
.cam-404-btn{
  display:inline-block; background:var(--green); color:#fff;
  font-weight:600; font-size:16px; padding:14px 30px; border-radius:8px;
  text-decoration:none; transition:background .2s;
}
.cam-404-btn:hover{background:var(--green-deep);}
.cam-404-footer{padding:22px 0;}
.cam-404-footer .footer-bottom{border-top:none; padding-top:0; text-align:center; font-size:13.5px; color:var(--text-light);}
.cam-404-footer .footer-bottom a{color:var(--green); text-decoration:none;}
.cam-404-footer .footer-bottom a:hover{text-decoration:underline;}

/* ==================== PŘEHRÁVAČ (LIGHTBOX) ====================
   Stream běží výhradně na stránce: ovládání YouTube je vypnuté
   (controls=0) a přes iframe leží průhledný štít, takže se nikam
   neproklikne. Vlastní ovládání je pod obrazem.
   ============================================================ */
.cam-lb{
  position:fixed; inset:0; z-index:9999;
  background:rgba(20,22,20,.94); backdrop-filter:blur(6px);
  display:none; align-items:center; justify-content:center; padding:20px;
}
.cam-lb.open{display:flex;}
.cam-lb-inner{width:min(1500px, 96vw); display:flex; flex-direction:column; gap:14px; position:relative;}

.cam-lb-stage{
  position:relative; width:100%; background:#000;
  border-radius:12px; overflow:hidden;
  max-height:calc(100vh - 190px); aspect-ratio:16/9; margin:0 auto;
}
.cam-lb-stage iframe{
  position:absolute; inset:0; width:100%; height:100%; border:0; display:block;
}
/* Průhledný štít – zachytí kliknutí, aby se nedalo odejít na YouTube */
.cam-lb-shield{position:absolute; inset:0; z-index:2; cursor:default;}

/* Ve fullscreenu vyplní obraz celou plochu */
.cam-lb-stage:fullscreen{
  max-height:none; height:100vh; width:100vw;
  border-radius:0; aspect-ratio:auto;
}
.cam-lb-stage:-webkit-full-screen{max-height:none; height:100vh; width:100vw; border-radius:0;}

/* CSS „celá obrazovka“ – náhrada tam, kde Fullscreen API není (iPhone).
   Video vyplní celý displej; ovládání se překryje přes spodní okraj,
   aby obraz nezmenšovalo. */
.cam-lb.cam-fs{padding:0;}
.cam-lb.cam-fs .cam-lb-inner{
  width:100vw; max-width:100vw; height:100vh; height:100dvh;
  gap:0; position:relative;
}
.cam-lb.cam-fs .cam-lb-stage{
  position:absolute; inset:0; width:100%; height:100%;
  max-height:none; aspect-ratio:auto; border-radius:0; margin:0;
}
/* Cizí plovoucí prvky (cookie „preference center“, chat) bývají širší
   než mobil a jako position:fixed unikají ořezu stránky – když jeden
   trčí za pravý okraj, celá stránka se na mobilu viklá do stran a
   fixní křížek přehrávače ujíždí. Omezíme je na šířku viewportu. */
#ckyPreferenceCenter,
.cky-modal,
#RQEmbeddedChatWidget,
.chat-widget{
  max-width:100vw !important;
  box-sizing:border-box;
}

/* Když je přehrávač otevřený, schováme plovoucí chat a cookie prvky
   (ServiceDesk, CookieYes), aby netrčely přes video – hlavně ve full.
   Po zavření přehrávače se třída sundá a vše se zase objeví. */
html.wia-lb-open #RQEmbeddedChatWidget,
html.wia-lb-open .chat-widget,
html.wia-lb-open [id*="ChatWidget"],
html.wia-lb-open [class*="chat-widget"],
html.wia-lb-open .cky-btn-revisit-wrapper,
html.wia-lb-open .cky-consent-container,
html.wia-lb-open .cky-modal,
html.wia-lb-open .cky-overlay{
  display:none !important;
}

/* V celé obrazovce nezůstane žádné ovládání – jen křížek v rohu. */
.cam-lb.cam-fs .cam-lb-bar{display:none;}
.cam-lb.cam-fs .cam-lb-close{
  z-index:7; position:absolute; top:10px; bottom:auto; right:10px; left:auto;
  transform:none; margin:0;
  background:rgba(18,20,18,.55); color:#fff;
  border:1px solid rgba(255,255,255,.35);
}
.cam-lb.cam-fs .cam-lb-close:hover{background:var(--green); border-color:var(--green);}

.cam-lb-bar{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; color:#fff; flex-wrap:wrap;
}
.cam-lb-meta h2{margin:0; color:#fff; font-size:22px; line-height:1.3; font-weight:600;}
.cam-lb-meta p{margin:3px 0 0; color:rgba(255,255,255,.7); font-size:14px;}

.cam-lb-tools, .cam-lb-nav{display:flex; gap:8px; flex-wrap:wrap;}
.cam-lb button{
  font:inherit; font-size:14px; font-weight:600; color:#fff;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25);
  border-radius:8px; padding:9px 15px; cursor:pointer;
  display:inline-flex; align-items:center; gap:7px;
  transition:background .15s, border-color .15s;
}
.cam-lb button:hover{background:var(--green); border-color:var(--green);}
.cam-lb button svg{
  width:16px; height:16px; fill:none; stroke:currentColor;
  stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round;
}
.cam-lb button.done{background:var(--green); border-color:var(--green);}

.cam-lb-close{
  position:absolute; top:18px; right:22px; z-index:3;
  width:44px; height:44px; padding:0 !important; border-radius:50%;
  font-size:22px; line-height:1; justify-content:center;
}

@media (max-width:960px){
  .cam-lb-stage{max-height:calc(100vh - 250px);}
  .cam-lb-bar{justify-content:center; text-align:center;}
  .cam-lb-meta{width:100%;}
}
@media (max-width:560px){
  .cam-lb{padding:10px;}
  /* Křížek v pravém horním rohu videa – malé tlačítko. */
  .cam-lb-close{
    top:8px; right:8px; left:auto; bottom:auto;
    transform:none; margin:0;
    width:34px; height:34px; font-size:22px;
  }
  .cam-lb-meta h2{font-size:18px;}

  /* Úhledně zarovnané ovládání – vše na střed, tlačítka stejně široká.
     Řada 1: Zvuk | Kopírovat · Řada 2: Celá obrazovka (přes obě)
     Řada 3: Předchozí | Další */
  .cam-lb-bar{flex-direction:column; align-items:stretch; gap:10px; width:100%;}
  .cam-lb-tools{
    display:grid; grid-template-columns:1fr 1fr; gap:8px;
    width:100%; max-width:360px; margin:0 auto;
  }
  .cam-lb-tools #cam-lb-full{grid-column:auto;}
  .cam-lb-nav{
    display:grid; grid-template-columns:1fr 1fr; gap:8px;
    width:100%; max-width:360px; margin:0 auto;
  }
  /* width:100% jen pro tlačítka v liště – NE pro křížek, jinak se roztáhne. */
  .cam-lb-bar button{font-size:13px; padding:10px 12px; width:100%; justify-content:center;}
}

/* ==================== RESPONZIVITA ==================== */
@media (max-width:960px){
  .cam-toolbar{position:static;}
  .cam-grid{grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); gap:18px;}
  .cam-count{margin-left:0;}
}
@media (max-width:560px){
  /* --- stažené rozestupy, ať se pod hledáním neotevírá velká mezera --- */
  .cam-toolbar{padding:12px 0;}
  .cam-toolbar .container{gap:10px;}
  .cam-row{gap:10px;}
  .cam-row.top{flex-direction:column; align-items:stretch;}
  /* Ve sloupci se z flex-basis stává výška – bez tohoto by se pole
     roztáhlo na 280 px a pod hledáním vznikla velká prázdná mezera. */
  .cam-search{max-width:none; flex:0 0 auto;}
  .cam-chips{overflow-x:auto; flex-wrap:nowrap; padding-bottom:4px; -webkit-overflow-scrolling:touch; min-width:0;}
  .chip{white-space:nowrap; flex:0 0 auto;}
  /* Pojistka proti vodorovnému posunu stránky na mobilu.
     Na mobilu je toolbar statický, takže overflow-x:hidden na body
     nerozbije žádné „sticky“ chování. */
  html, body{overflow-x:hidden; max-width:100%;}
  .cam-app, .cam-grid-section, .cam-map-section, .cam-toolbar{overflow-x:clip; max-width:100%;}
  .cam-view button span{display:none;}
  .cam-view button{padding:9px 12px;}

  /* Mapa na mobilu nižší – v režimu „obojí“ nedělá pod filtry prázdný blok. */
  .cam-map-section{padding:14px 0 4px;}
  .cam-map-wrap{height:400px;}   /* vyšší mapa: bublina markeru se vejde i s tlačítkem „Přehrát živě“ */
  .cam-app.view-map .cam-map-wrap{height:clamp(360px, 64vh, 560px);}
  .cam-legend{font-size:12px; padding:8px 11px; left:8px; bottom:8px;}
  .cam-map-reset{right:8px; top:8px; font-size:12.5px; padding:8px 11px;}
  .cam-map-fs{left:8px; top:8px; width:38px; height:38px;}
  .cam-lb{padding:12px;}
  .cam-lb-close{top:8px; right:10px;}

  /* --- KOMPAKTNÍ ŘÁDKY MÍSTO VELKÝCH KARET ---
     Malý náhled vlevo, obec + kraj vpravo. Na obrazovku se vejde
     6–7 kamer místo dvou, takže se přehled tolik neroluje. */
  .cam-grid-section{padding:14px 0 36px;}
  .cam-grid{grid-template-columns:1fr; gap:10px;}

  .cam-card{flex-direction:row; align-items:stretch; border-radius:12px; max-width:100%;}
  .cam-card:hover, .cam-card:focus-visible{transform:none;}

  .cam-thumb{flex:0 0 118px; width:118px; aspect-ratio:auto; min-height:82px;}
  .cam-play{width:38px; height:38px;}
  .cam-play svg{width:15px; height:15px;}
  .cam-badge{font-size:10px; padding:3px 7px; top:6px; left:6px; gap:4px;}
  .cam-card.plan .cam-thumb{min-height:82px; gap:0;}
  .cam-card.plan .cam-thumb span{display:none;}
  .cam-card.plan .cam-thumb svg{width:26px; height:26px;}

  /* min-width:0 nechá text zkrátit se s výpustkou; bez toho by
     nezalomitelná adresa roztáhla kartu přes šířku obrazovky
     a stránka by se viklala do stran. */
  .cam-body{padding:10px 13px; justify-content:center; min-width:0;}
  .cam-body h3{font-size:15.5px; margin:0 0 2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .cam-body .addr{
    font-size:12.5px; margin:0;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }
  .cam-foot{margin-top:7px; padding-top:0; gap:8px; min-width:0;}
  .cam-foot .kraj{overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .cam-body .kraj{font-size:11px; padding:3px 8px;}
  .cam-locate{font-size:12px; padding:2px;}
}
@media (prefers-reduced-motion: reduce){
  .cam-badge i{animation:none;}
  .cam-card{transition:none;}
}

/* ==== Vychytávky: oblíbené · počasí · blízko mě ==== */
.cam-thumb{position:relative;}
.cam-fav{
  position:absolute; top:8px; right:8px; z-index:3;
  width:26px; height:26px; padding:0; border:0; border-radius:50%;
  background:rgba(0,0,0,.3); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .15s, transform .12s;
}
.cam-fav:hover{background:rgba(0,0,0,.5); transform:scale(1.1);}
.cam-fav svg{width:15px; height:15px; fill:none; stroke:#fff; stroke-width:2; stroke-linejoin:round; stroke-linecap:round;}
.cam-fav.on{background:#fff;}
.cam-fav.on svg{fill:#e2452f; stroke:#e2452f;}

.cam-extra{display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center; margin-top:8px;}
.cam-wx{display:inline-flex; align-items:center; gap:5px; font-size:13px; font-weight:600; color:#35601a; background:#eef4e7; border-radius:999px; padding:3px 9px;}
.cam-dist{display:inline-flex; align-items:center; gap:3px; font-size:13px; font-weight:600; color:#35601a; background:#eef4e7; border-radius:999px; padding:3px 9px;}
.cam-dist svg{width:13px; height:13px; fill:none; stroke:#35601a; stroke-width:2;}
.cam-sun{display:inline-flex; align-items:center; gap:4px; font-size:13px; font-weight:600; color:#35601a; background:#eef4e7; border-radius:999px; padding:3px 9px;}

.cam-tool-btn{
  display:inline-flex; align-items:center; gap:7px;
  font:inherit; font-size:14px; font-weight:600; color:#35601a;
  background:#fff; border:1px solid #cdd8c6; border-radius:9px;
  padding:8px 14px; cursor:pointer;
  transition:background .15s, border-color .15s, color .15s;
}
.cam-tool-btn:hover{background:#f2f7ee; border-color:#35601a;}
.cam-tool-btn svg{width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2;}
.cam-tool-btn.on{background:#35601a; border-color:#35601a; color:#fff;}
#cam-fav-toggle.on svg{fill:#fff; stroke:#fff;}
.cam-tool-btn.busy{opacity:.75; cursor:progress;}
.cam-tool-btn.busy svg{animation:wiaSpin .8s linear infinite;}
@keyframes wiaSpin{to{transform:rotate(360deg);}}
@media (max-width:560px){
  .cam-tool-btn{font-size:13px; padding:8px 12px;}
}

/* ==== Režim aplikace (PWA): spodní navigace, splash, panel oblíbených ==== */
html.wia-app body{padding-bottom:66px;}
.wia-bnav{position:fixed; left:0; right:0; bottom:0; z-index:9000; display:flex; background:rgba(255,255,255,.88); -webkit-backdrop-filter:saturate(180%) blur(14px); backdrop-filter:saturate(180%) blur(14px); border-top:1px solid rgba(228,230,228,.9); box-shadow:0 -3px 16px rgba(55,58,59,.10); padding-bottom:env(safe-area-inset-bottom);}
.wia-bnav button{position:relative; flex:1; border:0; background:none; cursor:pointer; display:flex; flex-direction:column; align-items:center; gap:3px; padding:9px 4px 8px; color:#7a8291; font:inherit; font-size:11px; font-weight:600; -webkit-tap-highlight-color:transparent; transition:color .15s;}
.wia-bnav svg{width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; transition:transform .15s;}
.wia-bnav button:active svg{transform:scale(.88);}
.wia-bnav button.on{color:#35601a;}
.wia-bnav button.on svg{fill:rgba(53,96,26,.12); stroke:#35601a;}
.wia-bnav button[data-act="fav"].on svg{fill:#35601a; stroke:#35601a;}
.wia-bnav button.on::before{content:""; position:absolute; top:0; left:50%; transform:translateX(-50%); width:26px; height:3px; border-radius:0 0 4px 4px; background:#35601a;}
.wia-bnav .bn-ico{position:relative; display:inline-flex; line-height:0;}
.wia-bnav .bn-badge{position:absolute; top:-5px; right:-9px; min-width:16px; height:16px; padding:0 4px; border-radius:9px; background:#e2452f; color:#fff; font-size:10px; font-weight:700; line-height:16px; text-align:center; box-shadow:0 0 0 2px #fff;}
body:has(#cam-lb.open) .wia-bnav, body:has(.cam-map-wrap.map-fs) .wia-bnav{display:none !important;}

/* Tažením dolů obnovit */
.wia-ptr{position:fixed; top:calc(env(safe-area-inset-top) + 6px); left:50%; transform:translateX(-50%); z-index:8500; width:40px; height:40px; border-radius:50%; background:#fff; box-shadow:0 4px 14px rgba(55,58,59,.18); display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .2s, transform .25s ease;}
.wia-ptr svg{width:22px; height:22px; fill:none; stroke:#35601a; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:transform .2s;}
.wia-ptr.ready svg{transform:rotate(180deg);}
.wia-ptr.busy svg{animation:wiaSpin .8s linear infinite;}
.wia-ptr.busy.ready svg{transform:none;}

/* Akce v hlavičce (motiv + doporučit), jen v appce */
.cam-share-app, .cam-theme-toggle{display:none;}
html.wia-app .cam-header .container{justify-content:space-between;}
html.wia-app .cam-app-actions{display:flex; align-items:center; gap:8px; margin-left:auto;}
html.wia-app .cam-share-app{display:inline-flex; align-items:center; gap:7px; font:inherit; font-size:14px; font-weight:600; color:#35601a; background:#eef4e7; border:1px solid #d3e3c4; border-radius:999px; padding:8px 14px; cursor:pointer; -webkit-tap-highlight-color:transparent; transition:background .15s, transform .12s;}
html.wia-app .cam-share-app:active{transform:scale(.95);}
html.wia-app .cam-share-app svg{width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
html.wia-app .cam-theme-toggle{display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; border:1px solid #d3e3c4; background:transparent; color:#35601a; cursor:pointer; -webkit-tap-highlight-color:transparent; transition:transform .12s, background .15s;}
html.wia-app .cam-theme-toggle:active{transform:scale(.9);}
html.wia-app .cam-theme-toggle svg{width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
html.wia-app.wia-dark .cam-theme-toggle{color:var(--green-light); border-color:#333a44;}
@media (max-width:560px){ html.wia-app .cam-share-app span{display:none;} html.wia-app .cam-share-app{padding:9px; border-radius:50%;} html.wia-app .cam-theme-toggle{width:38px; height:38px;} }

/* ============ TMAVÝ REŽIM (appka; řízeno přepínačem, výchozí = podle telefonu) ============ */
  html.wia-app.wia-dark{ --dark:#e9edf1; --text:#c6cdd6; --text-light:#98a2b0; --bg-soft:#232830; --border:#333a44; --plan:#8b95a3; }
  html.wia-app.wia-dark body, html.wia-app.wia-dark .cam-app{ background:#14171b; color:var(--text); }
  html.wia-app.wia-dark .cam-header{ background:#181c22; border-bottom-color:#2a3038; box-shadow:0 2px 12px rgba(0,0,0,.45); }
  html.wia-app.wia-dark .cam-toolbar{ background:#181c22; border-bottom-color:#2a3038; box-shadow:0 4px 18px rgba(0,0,0,.4); }
  html.wia-app.wia-dark .cam-search input{ background:#232830; color:var(--dark); border-color:#333a44; }
  html.wia-app.wia-dark .cam-search input:focus{ background:#1b2027; }
  html.wia-app.wia-dark .chip:not([aria-pressed="true"]){ background:#1d2229; color:var(--text); border-color:#333a44; }
  html.wia-app.wia-dark .chip[aria-pressed="true"]{ background:var(--green); border-color:var(--green); color:#fff; }
  html.wia-app.wia-dark .cam-select select{ background-color:#1d2229; color:var(--dark); border-color:#333a44; }
  html.wia-app.wia-dark .cam-card{ background:#1c2128; border-color:#2a3038; }
  html.wia-app.wia-dark .cam-card .cam-body h3{ color:var(--green-light); }
  html.wia-app.wia-dark .cam-card.plan .cam-body h3{ color:var(--dark); }
  html.wia-app.wia-dark .cam-thumb{ background:#232830; }
  html.wia-app.wia-dark .cam-suggest{ background:#1d2229; border-color:#333a44; color:var(--text); }
  html.wia-app.wia-dark .cam-empty{ color:var(--text-light); }
  html.wia-app.wia-dark .wia-favpanel h3{ color:var(--green-light); }
  html.wia-app.wia-dark .wia-favcard b{ color:var(--text); }
  html.wia-app.wia-dark .wia-fav-empty{ color:var(--text-light); }
  html.wia-app.wia-dark .cam-wx{ background:rgba(116,175,40,.16); color:#a6d977; }
  html.wia-app.wia-dark .cam-dist{ background:rgba(116,175,40,.16); color:#a6d977; }
  html.wia-app.wia-dark .cam-dist svg{ stroke:#a6d977; }
  html.wia-app.wia-dark .cam-sun{ background:rgba(116,175,40,.16); color:#a6d977; }
  html.wia-app.wia-dark .cam-body .kraj{ background:#232830; color:#c6cdd6; }
  html.wia-app.wia-dark .cam-foot .kraj{ background:#232830; color:#c6cdd6; }
  html.wia-app.wia-dark .cam-pop .kraj{ color:#c6cdd6; }
  html.wia-app.wia-dark .cam-map-reset, html.wia-app.wia-dark .cam-map-fs{ background:#1d2229; color:var(--green-light); border-color:#333a44; }
  html.wia-app.wia-dark .wia-bnav{ background:rgba(22,26,31,.9); border-top-color:#2a3038; }
  html.wia-app.wia-dark .wia-bnav button.on{ color:var(--green-light); }
  html.wia-app.wia-dark .wia-bnav button.on svg{ fill:rgba(116,175,40,.18); stroke:var(--green-light); }
  html.wia-app.wia-dark .wia-bnav button[data-act="fav"].on svg{ fill:var(--green-light); stroke:var(--green-light); }
  html.wia-app.wia-dark .wia-bnav button.on::before{ background:var(--green-light); }
  html.wia-app.wia-dark .wia-splash{ background:#fff; }        /* logo je v bílém čtverci → úvodní obrazovka zůstává bílá i v tmavém */
  html.wia-app.wia-dark .wia-splash span{ color:#35601a; }
  html.wia-app.wia-dark .wia-ptr{ background:#232830; box-shadow:0 4px 14px rgba(0,0,0,.55); }
  html.wia-app.wia-dark .wia-ptr svg{ stroke:var(--green-light); }
  html.wia-app.wia-dark .cam-share-app{ background:#22301c; border-color:#3a5226; color:#a6d977; }


.wia-splash{position:fixed; inset:0; z-index:99999; background:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; transition:opacity .45s ease;}
.wia-splash img{width:340px; height:340px; max-width:82vw; max-height:82vw;}
.wia-splash span{font-size:26px; font-weight:700; color:#35601a; letter-spacing:.5px;}
.wia-splash.hide{opacity:0;}

.wia-favpanel{max-width:1180px; margin:0 auto; padding:26px 24px 6px;}
.wia-favpanel h3{display:flex; align-items:center; gap:9px; margin:0 0 14px; font-size:18px; font-weight:700; color:#35601a;}
.wia-favpanel h3 .fav-dot{width:9px; height:9px; border-radius:50%; background:#ff4444; box-shadow:0 0 0 4px rgba(255,68,68,.15);}
.wia-favrow{display:grid; grid-template-columns:repeat(auto-fill, minmax(280px,1fr)); gap:18px;}
.wia-favcard{position:relative; border:0; padding:0; margin:0; width:100%; aspect-ratio:16/9; border-radius:14px; overflow:hidden; background:var(--bg-soft); cursor:pointer; text-align:left; font:inherit; display:block; transition:transform .18s, box-shadow .18s;}
.wia-favcard:hover{transform:translateY(-3px); box-shadow:0 6px 24px rgba(55,58,59,.16);}
.wia-favcard img{width:100%; height:100%; object-fit:cover; display:block;}
.wia-favcard .fav-badge{position:absolute; top:12px; left:12px; z-index:2; display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700; letter-spacing:.8px; padding:5px 10px; border-radius:999px; background:rgba(0,0,0,.6); color:#fff; -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);}
.wia-favcard .fav-badge i{width:7px; height:7px; border-radius:50%; background:#ff4444; animation:camPulse 1.8s infinite;}
.wia-favcard .fav-play{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:2; width:54px; height:54px; border-radius:50%; background:rgba(69,124,31,.92); display:grid; place-items:center; transition:transform .18s, background .18s;}
.wia-favcard .fav-play::after{content:""; border-left:15px solid #fff; border-top:10px solid transparent; border-bottom:10px solid transparent; margin-left:4px;}
.wia-favcard:hover .fav-play{transform:translate(-50%,-50%) scale(1.1); background:var(--green);}
.wia-favcard .fav-name{position:absolute; left:0; right:0; bottom:0; z-index:2; padding:28px 14px 12px; color:#fff; font-size:16px; font-weight:700; line-height:1.2; background:linear-gradient(transparent, rgba(0,0,0,.68)); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.wia-favcard.plan{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; background:repeating-linear-gradient(45deg,#F4F5F4,#F4F5F4 12px,#ECEEEC 12px,#ECEEEC 24px);}
.wia-favcard.plan .fav-ph svg{width:34px; height:34px; fill:none; stroke:#9aa3ae; stroke-width:1.6;}
.wia-favcard.plan .fav-name{position:static; padding:0; color:#5a636e; background:none; text-align:center;}
.wia-fav-empty{margin:0; font-size:14px; color:#7a8291; line-height:1.5;}
@media (max-width:560px){
  .wia-favpanel{padding:18px 18px 4px;}
  .wia-favrow{grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:82%; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:6px;}
}
