html,body{height:100%;margin:0;font-family:system-ui,-apple-system,'Segoe UI',sans-serif}
#m{position:absolute;inset:0}
/* hlavicka */
#hl{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;
  background:linear-gradient(90deg,#0d3b57f2,#155a80e8);color:#fff;padding:.26rem .6rem;box-shadow:0 1px 8px rgba(0,0,0,.35)}
#hl b{font-size:.9rem;letter-spacing:.01em;white-space:nowrap}
#hl #zpet{color:#fff;text-decoration:none;font-size:.74rem;font-weight:600;white-space:nowrap;border:1px solid rgba(255,255,255,.55);border-radius:6px;padding:.08rem .5rem;opacity:.92}
#hl #zpet:hover{background:rgba(255,255,255,.16);opacity:1}
#hl .ziv{display:flex;gap:.65rem;flex-wrap:wrap;font-size:.76rem;opacity:.95}
#hl .ziv span{white-space:nowrap}
#hl small{opacity:.7;font-size:.68rem}
/* panel */
#panel{position:absolute;top:44px;left:10px;bottom:10px;z-index:15;width:344px;max-width:calc(100vw - 20px);
  background:#fff;border-radius:12px;box-shadow:0 2px 14px rgba(0,0,0,.28);display:flex;flex-direction:column;overflow:hidden}
#taby{display:flex;border-bottom:1px solid #dde5ec}
#taby button{flex:1;border:none;background:#f2f6fa;padding:.5rem .15rem;font-size:.74rem;cursor:pointer;color:#345;line-height:1.25}
#taby button .em{display:block;font-size:1.05rem}
#taby button.akt{background:#fff;font-weight:700;color:#0d3b57;box-shadow:inset 0 -3px 0 #1d6fb8}
#obsah{flex:1;overflow-y:auto;padding:.7rem .9rem;font-size:.86rem;line-height:1.42;color:#223}
#obsah h3{margin:.1rem 0 .35rem;font-size:1rem;color:#0d3b57}
#obsah .uvod{color:#334;margin-bottom:.5rem}
#obsah .cislo{background:#eef5fb;border-left:3px solid #1d6fb8;border-radius:0 7px 7px 0;padding:.35rem .55rem;margin:.4rem 0;font-size:.82rem}
#obsah label{display:block;margin:.22rem 0;cursor:pointer}
#obsah .skup{margin:.55rem 0 .3rem;font-weight:700;font-size:.8rem;color:#456}
#obsah .kar{border:1px solid #dbe4ec;border-radius:9px;padding:.5rem .6rem;margin:.45rem 0;font-size:.8rem;background:#fbfdff}
#obsah .kar b{color:#0d3b57}
#obsah .kar .vys{color:#155a2d;font-weight:600}
#obsah .kar .ved{color:#8a5a00}
.tlac{display:inline-block;border:1px solid #b9c6d2;background:#f2f6fa;border-radius:7px;padding:.3rem .7rem;
  font-size:.8rem;cursor:pointer;color:#123a5f;text-decoration:none;margin:.15rem .25rem .15rem 0}
.tlac:hover{background:#e2ecf5}
#legenda{border-top:1px solid #dde5ec;padding:.45rem .9rem;font-size:.74rem;color:#445;max-height:31vh;overflow-y:auto;background:#fafcfe}
#legenda .lg{margin:.25rem 0}
.lgb{display:inline-block;width:.95em;height:.95em;border-radius:3px;vertical-align:-.12em;margin-right:.25em}
#zobr{border-top:1px solid #dde5ec;padding:.4rem .9rem .5rem;font-size:.76rem;color:#345;display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}
#zobr label{cursor:pointer}
/* ovladani mapy vpravo */
#prav{position:absolute;top:60px;right:10px;z-index:15;display:flex;flex-direction:column;gap:.4rem;align-items:flex-end}
#prav button{border:1px solid #b9c6d2;background:#fff;border-radius:8px;padding:.42rem .65rem;font-size:.82rem;cursor:pointer;
  box-shadow:0 1px 5px rgba(0,0,0,.25);color:#123a5f;font-weight:600}
#prav button.akt{background:#1d6fb8;color:#fff;border-color:#155a80}
/* znacky zivych dat */
.zn{background:none;border:none;font-weight:700;color:#111;text-shadow:0 0 3px #fff,0 0 4px #fff,0 0 5px #fff;
  white-space:nowrap;font-size:12.5px;cursor:pointer}
.zn.mer{color:#0b4e8a}
/* popupy */
.maplibregl-popup-content{font-family:system-ui;font-size:.84rem;line-height:1.38;border-radius:9px;box-shadow:0 2px 12px rgba(0,0,0,.3);padding:.65rem .8rem;max-height:62vh;overflow-y:auto}
.maplibregl-popup-content img{max-width:270px;border-radius:6px;display:block;margin:.35em 0}
.maplibregl-popup-content canvas{width:270px;height:120px}
.pop-odkaz{text-align:right;margin-top:.3em}
.pop-odkaz a{font-size:.75em;background:#eef3f8;border:1px solid #c6d4e2;border-radius:5px;padding:.15em .55em;text-decoration:none;color:#2a5d8a}
.stitek{display:inline-block;border-radius:5px;padding:.06em .5em;font-size:.72em;color:#fff;font-weight:600;vertical-align:.08em}
/* modal */
#modal{position:fixed;inset:0;z-index:50;background:rgba(10,25,40,.55);display:none;align-items:center;justify-content:center}
#modal.viditelny{display:flex}
#modal .tel{background:#fff;border-radius:12px;max-width:620px;width:92vw;max-height:84vh;overflow-y:auto;padding:1rem 1.3rem;font-size:.85rem;line-height:1.5}
#modal .tel h3{margin:.2rem 0 .6rem;color:#0d3b57}
#modal .tel canvas{width:100%;height:220px}
#modal .zav{float:right;border:none;background:none;font-size:1.3rem;cursor:pointer;color:#567}
/* mobil */
#pansp{display:none}
@media (max-width:767px){
  #panel{top:auto;left:0;right:0;bottom:0;width:auto;max-width:none;border-radius:14px 14px 0 0;max-height:56vh;transition:transform .25s}
  #panel.sbaleny{transform:translateY(calc(100% - 2.5rem))}
  #pansp{display:block;text-align:center;padding:.3rem;background:#f2f6fa;cursor:pointer;font-size:.8rem;color:#456;border-bottom:1px solid #dde5ec}
  #hl b{font-size:.76rem}
  #hl #zpet{font-size:.66rem;padding:.05rem .4rem}
  #hl .ziv{font-size:.68rem;gap:.45rem}
  #hl small{display:none}
  #legenda{max-height:18vh}
  /* bohate popupy (obrazek/graf/delsi text) jako spodni karta; male zustavaji bublinou */
  .maplibregl-popup.karta{position:fixed!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;transform:none!important;max-width:none!important;width:100%;z-index:30}
  .maplibregl-popup.karta .maplibregl-popup-tip{display:none}
  .maplibregl-popup.karta .maplibregl-popup-content{border-radius:14px 14px 0 0;max-height:48vh;overflow-y:auto;overscroll-behavior:contain;padding:1.05rem 1rem .9rem;box-shadow:0 -3px 18px rgba(0,0,0,.35);touch-action:pan-y}
  .maplibregl-popup.karta .maplibregl-popup-content::before{content:'';position:absolute;top:.35rem;left:50%;transform:translateX(-50%);width:2.4rem;height:.26rem;border-radius:.2rem;background:#c3ccd4}
  .maplibregl-popup .maplibregl-popup-content img{max-width:100%;height:auto}
  .maplibregl-popup.karta .maplibregl-popup-close-button{font-size:1.5rem;padding:.1rem .55rem}
}
.zn.stara{opacity:.45;filter:grayscale(1)}
