:root{
  --ink:#16242b; --muted:#5a6b73;
  --brand:#1f7a8c; --brand-dark:#15606f;
  --glass-bg:rgba(255,255,255,0.55);
  --glass-bg-strong:rgba(255,255,255,0.72);
  --glass-brd:rgba(255,255,255,0.65);
  --glass-shadow:0 8px 32px rgba(20,40,50,.18);
  --radius:18px;
}
*{box-sizing:border-box}
[hidden]{display:none!important}   /* atribut hidden musí vždy přebít display:flex/grid apod. */
html,body{margin:0;height:100%}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);-webkit-text-size-adjust:100%}
/* Zvětšený text (přepínač v účtu): všechny velikosti písma jsou v rem, layout v px → zvětší se jen text */
html.txt-big{font-size:115%}
a{color:inherit}

/* ---------- Liquid glass ---------- */
.glass{
  background:var(--glass-bg);
  -webkit-backdrop-filter:blur(22px) saturate(180%);
  backdrop-filter:blur(22px) saturate(180%);
  border:1px solid var(--glass-brd);
  box-shadow:var(--glass-shadow), inset 0 1px 0 rgba(255,255,255,.55);
}

/* ---------- Úvodní stránka ---------- */
.page-home{position:relative;display:flex;flex-direction:column;min-height:100%;overflow-x:hidden}
.home-bg{position:fixed;inset:0;z-index:-1;
  background:
    linear-gradient(rgba(255,255,255,.22), rgba(255,255,255,.10)),
    url(background.jpg) center center / cover no-repeat,
    #eef4ee}
.home-hero{padding:56px 20px 30px;text-align:center}
.home-hero h1{margin:0 0 10px;font-size:2.1rem;letter-spacing:-.02em;color:var(--brand-dark)}
.home-hero__logo{margin:0 0 14px;line-height:0}
.home-hero__logo img{width:min(340px,72vw);height:auto;display:inline-block}
.home-hero p{margin:0 auto;color:var(--muted);font-size:1.05rem;max-width:860px;line-height:1.55}
.home-main{flex:1;width:100%;max-width:900px;margin:0 auto;padding:20px}
.home-seolinks{text-align:center;color:var(--muted);font-size:.85rem;margin:0 0 12px;line-height:1.7}
.home-seolinks a{color:var(--brand-dark)}
/* Tlačítko FAQ vypadá a měří jako ostatní odkazy v patičce */
.home-seolinks__faq{font:inherit;color:var(--brand-dark);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline}
.spa-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.spa-section{margin-top:28px}
.spa-group-title{margin:0 0 14px;font-size:1.05rem;color:var(--brand-dark);
  padding-top:20px;border-top:1px solid var(--glass-brd)}
.spa-card{display:flex;flex-direction:column;border-radius:var(--radius);padding:22px;min-height:170px;text-decoration:none;color:var(--ink);transition:transform .15s,box-shadow .15s}
.spa-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(20,40,50,.22), inset 0 1px 0 rgba(255,255,255,.6)}
.spa-card__logo{width:54px;height:54px;border-radius:14px;object-fit:contain;background:#fff;padding:4px;box-shadow:0 2px 8px rgba(20,40,50,.12)}
.spa-card__logo--ph{display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;color:var(--brand)}
.spa-card__body{margin-top:16px;flex:1}
.spa-card h3{margin:0 0 4px;font-size:1.3rem}
.spa-card p{margin:0;color:var(--muted)}
.spa-card__cta{margin-top:14px;font-weight:600;color:var(--brand-dark)}
/* Karta s úvodní fotografií (poskytovatelé) – banner nahoře, ikona jako odznak na fotce */
.spa-card--photo{padding-top:0;overflow:hidden;border:0}   /* rámeček .glass by u fotky přes overflow:hidden zůstal jako 1px linka – u fotokaret ho zrušíme */
/* Fotka bez rámečku – přesah přes 1px border karty (nahoře i po stranách), rohy ořízne overflow */
.spa-card__photo{position:relative;margin:0 -22px 12px;height:150px}
.spa-card__bg{width:100%;height:100%;object-fit:cover;display:block}
.spa-card--photo .spa-card__logo{position:absolute;left:16px;bottom:12px;margin:0}
.spa-card--photo .spa-card__body{margin-top:0;flex:0 0 auto}
.spa-card--photo .spa-card__cta{margin-top:8px}
.spa-card--soon{opacity:.65}
.spa-card--soon:hover{transform:none;box-shadow:var(--glass-shadow), inset 0 1px 0 rgba(255,255,255,.55)}
.spa-card--soon .spa-card__cta{color:var(--muted)}
.loading{color:var(--muted)}
/* ---------- Tlačítko účtu na mapě (nad filtrem) ---------- */
.account-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
  margin:0 0 12px;padding:10px 16px;border-radius:12px;border:1px solid var(--glass-brd);
  background:rgba(255,255,255,.5);color:var(--brand-dark);font-weight:600;font-size:.9rem;
  text-decoration:none}
.account-btn:hover{background:#fff}
.account-btn.is-in{background:rgba(31,122,140,.12);border-color:rgba(31,122,140,.4)}
/* ---------- Ikona účtu na úvodní stránce ---------- */
.home-account{position:fixed;top:max(14px,env(safe-area-inset-top));right:14px;z-index:20;
  display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:12px;
  background:rgba(255,255,255,.6);-webkit-backdrop-filter:blur(16px) saturate(170%);backdrop-filter:blur(16px) saturate(170%);
  border:1px solid var(--glass-brd);box-shadow:0 2px 12px rgba(20,40,50,.14);
  color:var(--brand-dark);text-decoration:none;font-weight:600;font-size:.85rem}
.home-account:hover{background:#fff}
.home-account.is-in{background:rgba(31,122,140,.12);color:var(--brand-dark);border-color:rgba(31,122,140,.4)}
@media (max-width:520px){ .home-account__lbl{display:none} .home-account{padding:9px} }
/* Spodní navigační lišta – jen mobil (viz mobilní blok níže) */
.mobilebar{display:none}
/* Krátká hláška (toast) */
.mb-toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:3200;
  background:rgba(18,40,45,.92);color:#fff;padding:10px 16px;border-radius:12px;font-size:.9rem;font-weight:600;
  max-width:80%;text-align:center;opacity:0;transition:opacity .25s;pointer-events:none;box-shadow:0 6px 20px rgba(20,40,50,.3)}
.mb-toast.is-on{opacity:1}
/* ---------- Účet jako okno (modal nad stránkou, vnitřní scroll jako u počasí) ---------- */
.acc-overlay{position:fixed;inset:0;z-index:3000;display:flex;align-items:flex-start;justify-content:center;
  padding:max(20px,5vh) 14px 20px;background:rgba(18,38,40,.45)}
.acc-overlay[hidden]{display:none}
.acc-modal{position:relative;width:100%;max-width:520px;max-height:88vh;display:flex;flex-direction:column;
  border-radius:var(--radius);overflow:hidden}
.acc-modal__close{position:absolute;top:10px;right:12px;z-index:2;border:none;background:rgba(255,255,255,.7);
  width:36px;height:36px;border-radius:50%;font-size:1.3rem;line-height:1;color:var(--muted);cursor:pointer;
  display:flex;align-items:center;justify-content:center;padding:0}
.acc-modal__close:hover{background:#fff}
.acc-body{overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:26px 24px 30px}
/* Zámek posunu stránky pod otevřeným oknem (mobil) */
body.modal-open{overflow:hidden;touch-action:none}
.calc-borg-result{display:flex;gap:10px;align-items:flex-start;margin-top:12px;text-align:left;
  background:rgba(255,255,255,.6);border-radius:12px;padding:12px 14px}
.calc-borg-result[hidden]{display:none}
.calc-borg-result__emo{font-size:1.6rem;line-height:1}
.calc-borg-result__desc{display:block;margin-top:3px;color:var(--muted);font-size:.85rem}
/* ---------- Můj účet ---------- */
.acc-main{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:max(24px,4vh) 18px 40px}
.acc-card{max-width:560px;width:100%;border-radius:var(--radius);padding:26px 26px 30px}
.acc-home{display:inline-block;margin-bottom:14px;font-weight:600;font-size:.85rem;color:var(--brand-dark);text-decoration:none}
.acc-logo{width:min(220px,55vw);height:auto;display:block;margin:2px auto 14px}
.acc-h1{margin:0 0 8px;font-size:1.5rem;color:var(--brand-dark);text-align:center}
.acc-h2{margin:0 0 8px;font-size:1.05rem;color:var(--brand-dark)}
.acc-lead{margin:0 0 14px;color:var(--muted);line-height:1.55;font-size:.95rem}
.acc-role{display:inline-block;margin-top:4px;font-size:.8rem;font-weight:700;color:#15606f;background:rgba(31,122,140,.12);padding:2px 10px;border-radius:999px}
.acc-role--head{align-self:flex-start;margin-top:7px}   /* pilulka role přímo pod e-mailem v hlavičce účtu */
.acc-input{width:100%;padding:12px 14px;margin:0 0 10px;border:1px solid var(--glass-brd);border-radius:12px;font-size:1rem;background:rgba(255,255,255,.75);color:var(--ink)}
/* Sjednoceno se skleněným jazykem mapy (rádius 12 px, průsvitné povrchy). Primární akce = jemný modrozelený tint. */
.acc-btn{display:block;width:100%;padding:13px 20px;margin:0 0 10px;border:1px solid rgba(31,122,140,.4);border-radius:12px;background:rgba(31,122,140,.12);color:var(--brand-dark);font-weight:700;font-size:.95rem;cursor:pointer}
.acc-btn:hover{background:rgba(31,122,140,.2)}
.acc-btn--ghost{background:rgba(255,255,255,.55);color:var(--brand-dark);border:1px solid var(--glass-brd)}
.acc-btn--ghost:hover{background:#fff}
.acc-msg{margin:4px 0 0;font-size:.9rem}
.acc-msg.is-ok{color:#1f7a4a}.acc-msg.is-err{color:#b00020}
/* Přepínač velikosti textu – dvoupolohový segment */
.acc-seg{display:flex;gap:6px;background:rgba(255,255,255,.5);border:1px solid var(--glass-brd);border-radius:12px;padding:4px}
.acc-seg__btn{flex:1;padding:10px 14px;border:none;border-radius:8px;background:transparent;color:var(--brand-dark);font-weight:700;font-size:.95rem;cursor:pointer}
.acc-seg__btn.is-on{background:#fff;color:var(--brand-dark);box-shadow:0 1px 4px rgba(20,40,50,.15)}
.acc-seg__btn:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
.acc-sec{margin-top:22px;padding-top:18px;border-top:1px solid var(--glass-brd)}
.acc-code{display:flex;justify-content:space-between;align-items:center;gap:12px;background:rgba(255,255,255,.6);border:1px solid var(--glass-brd);border-radius:12px;padding:12px 14px;margin-bottom:8px}
.acc-code__lz{font-size:.85rem;color:var(--muted)}
.acc-code__val{font-size:1.2rem;font-weight:800;letter-spacing:.08em;color:#15606f}
.acc-code__right{display:flex;align-items:center;gap:10px}
.acc-print{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  border:1px solid var(--glass-brd);border-radius:10px;background:rgba(255,255,255,.6);
  color:var(--brand-dark);text-decoration:none;flex-shrink:0}
.acc-print:hover{background:#fff}
.acc-tool{display:inline-flex;align-items:center;gap:8px;margin:0;padding:9px 16px;
  border:1px solid rgba(31,122,140,.35);border-radius:12px;background:rgba(31,122,140,.08);
  color:var(--brand-dark);text-decoration:none;font-weight:600;font-size:.9rem}
.acc-tool:hover{background:rgba(31,122,140,.16)}
.acc-tool__ext{color:var(--muted);font-weight:400}
.acc-unlocked__h{margin:14px 0 6px;font-weight:600;color:var(--brand-dark)}
.acc-unlocked{display:flex;justify-content:space-between;align-items:center;gap:12px;background:rgba(31,122,140,.08);
  border:1px solid rgba(31,122,140,.22);border-radius:12px;padding:10px 14px;margin-bottom:8px}
.acc-unlocked__lz{font-weight:600;color:var(--ink)}
.acc-unlocked__d{font-size:.82rem;color:var(--muted);white-space:nowrap}
/* Údaje pro výpočet kalorií */
.acc-calc-wrow{display:flex;gap:8px}
.acc-calc-wrow .acc-input{flex:1;margin:0}
.acc-calc-wrow .acc-btn{width:auto;margin:0;padding-left:20px;padding-right:20px}
/* Historie vycházek – rozklikávací položka */
.acc-hist{background:rgba(255,255,255,.6);border:1px solid var(--glass-brd);border-radius:12px;margin-bottom:8px;overflow:hidden}
.acc-hist__hd{display:grid;grid-template-columns:1fr auto;gap:2px 10px;width:100%;text-align:left;border:none;background:none;cursor:pointer;padding:12px 14px}
.acc-hist__hd:hover{background:rgba(255,255,255,.5)}
.acc-hist__lz{font-weight:700;color:var(--ink)}
.acc-hist__r{font-size:.85rem;color:var(--brand-dark);grid-column:1/2}
.acc-hist__s{font-size:.8rem;color:var(--muted);grid-column:1/2}
.acc-hist__chev{grid-column:2;grid-row:1/4;align-self:center;color:var(--muted);transition:transform .15s}
.acc-hist__hd.is-open .acc-hist__chev{transform:rotate(180deg)}
.acc-hist__detail{padding:0 14px 12px;border-top:1px solid var(--glass-brd)}
.acc-hist__detail[hidden]{display:none}
.acc-hist__row{display:flex;justify-content:space-between;font-size:.85rem;color:var(--ink);padding:6px 0;border-bottom:1px solid rgba(0,0,0,.05)}
.acc-hist__borg-lbl{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:10px 0 6px}
.acc-hist__borg{display:flex;gap:10px;align-items:flex-start}
.acc-hist__borg-emo{font-size:1.5rem;line-height:1}
.acc-hist__borg-txt{color:var(--muted);font-size:.82rem}
.acc-hist__none{color:var(--muted);font-size:.85rem;margin:0}
/* Historie – akce (upravit/smazat) a editační formulář */
.acc-hist__acts{display:flex;gap:8px;margin-top:12px}
.acc-hist__edit,.acc-hist__save{flex:1;padding:9px 12px;border:1px solid var(--brand);border-radius:999px;background:var(--brand);color:#fff;font-weight:700;font-size:.9rem;cursor:pointer}
.acc-hist__edit:hover,.acc-hist__save:hover{background:var(--brand-dark);border-color:var(--brand-dark)}
.acc-hist__del,.acc-hist__cancel{flex:1;padding:9px 12px;border:1px solid var(--glass-brd);border-radius:999px;background:rgba(255,255,255,.6);color:var(--muted);font-weight:700;font-size:.9rem;cursor:pointer}
.acc-hist__del:hover{color:#c0392b;border-color:#e0a89f}
.acc-hist__save:disabled{opacity:.6;cursor:default}
.acc-edit{padding-top:10px}
.acc-edit__l{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:6px 0 4px;font-weight:700}
.acc-edit__two{display:flex;gap:10px}
.acc-edit__two>div{flex:1}
.acc-edit__calc{font-size:.82rem;color:var(--brand-dark);background:rgba(255,255,255,.5);border:1px solid var(--glass-brd);border-radius:10px;padding:8px 10px;margin:2px 0 4px}
.acc-edit__tep-lbl{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:12px 0 6px;font-weight:700}
.acc-edit__tep{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.acc-edit__st{flex:none;width:18px;font-weight:700;color:var(--muted)}
.acc-edit__bpm{flex:1;margin:0}
.acc-edit__time{flex:0 0 40%;margin:0}
.acc-list{display:flex;flex-direction:column;gap:8px}
.acc-item{display:flex;flex-direction:column;background:rgba(255,255,255,.55);border:1px solid var(--glass-brd);border-radius:12px;padding:11px 14px;text-decoration:none;color:var(--ink)}
a.acc-item:hover{background:#fff}
.acc-item__t{font-weight:600}
.acc-item__s{font-size:.82rem;color:var(--muted)}
/* ---------- Stránka zásad / dokument ---------- */
.doc-main{flex:1;display:flex;justify-content:center;padding:max(24px,4vh) 18px 40px}
.doc-card{max-width:760px;width:100%;border-radius:var(--radius);padding:28px 30px 34px;position:relative}
/* Zavírací křížek na stránkách tras – vrací na úvod (vzhled okna, str. zůstává indexovatelná) */
.doc-close{position:absolute;top:10px;right:12px;z-index:2;border:none;background:rgba(255,255,255,.7);width:36px;height:36px;border-radius:50%;font-size:1.3rem;line-height:1;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;text-decoration:none}
.doc-close:hover{background:#fff}
.doc-card h1{margin:8px 0 4px;font-size:1.7rem;color:var(--brand-dark)}
.doc-card h2{margin:22px 0 8px;font-size:1.15rem;color:var(--brand-dark)}
.doc-card p,.doc-card li{line-height:1.6;color:var(--ink)}
.doc-card ul{padding-left:20px;margin:0 0 10px}
.doc-card li{margin-bottom:6px}
.doc-card a{color:var(--brand-dark)}
.doc-upd{color:var(--muted);font-size:.9rem;margin:0 0 6px}
/* SEO stránky tras (server-rendered pod /trasy/…) */
.seo-crumbs{font-size:.82rem;color:var(--muted);margin:0 0 12px}
.seo-crumbs a{color:var(--brand-dark);text-decoration:none}
.seo-crumbs a:hover{text-decoration:underline}
.seo-lead{color:var(--muted);margin:0 0 14px;font-size:.95rem}
.seo-stats{display:flex;gap:26px;margin:0 0 16px}
.seo-stats .stat{display:flex;flex-direction:column}
.seo-stats .stat__val{font-size:1.2rem;font-weight:700;color:var(--brand-dark)}
.seo-stats .stat__lbl{font-size:.72rem;color:var(--muted)}
.seo-mapbtn{display:inline-block;padding:11px 18px;border-radius:12px;border:1px solid rgba(31,122,140,.4);background:rgba(31,122,140,.12);color:var(--brand-dark)!important;font-weight:700;text-decoration:none}
.seo-mapbtn:hover{background:rgba(31,122,140,.2)}
.seo-p{text-align:justify;text-align-last:left;hyphens:none;margin:0 0 12px}
.seo-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:18px 0}
.seo-gallery figure{margin:0}
.seo-gallery img{width:100%;height:150px;object-fit:cover;border-radius:12px;display:block}
.seo-gallery figcaption{font-size:.72rem;color:var(--muted);margin-top:5px;text-align:center}
.seo-routelist{list-style:none;padding:0!important;margin:0 0 14px}
.seo-routelist li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid rgba(20,40,50,.08)}
.seo-routelist a{font-weight:600;text-decoration:none}
.seo-tag{font-size:.72rem;color:var(--muted);background:rgba(20,40,50,.06);padding:2px 8px;border-radius:999px;font-weight:700}
/* Barvy náročnosti shodné s filtrem na mapě: lehká zelená, střední žlutá, těžká červená */
.seo-tag--1{background:#2e9e5b;color:#fff}
.seo-tag--2{background:#eab308;color:#3a2e00}
.seo-tag--3{background:#d6453d;color:#fff}
/* Odkaz na zásady dole v panelu mapy */
.panel-legal{margin:14px 0 4px;text-align:center;font-size:.78rem}
.panel-legal a{color:var(--muted);text-decoration:none}
.panel-legal a:hover{text-decoration:underline}
/* Smazání účtu */
.acc-danger{margin-top:22px;padding-top:16px;border-top:1px solid var(--glass-brd)}
.acc-btn--danger{background:transparent;border:1px solid rgba(176,0,32,.4);color:#b00020}
.acc-btn--danger:hover{background:rgba(176,0,32,.08)}
/* ---------- Chybová stránka ---------- */
.err-main{flex:1;display:flex;align-items:center;justify-content:center;padding:24px}
.err-card{max-width:520px;width:100%;border-radius:var(--radius);padding:34px 30px;text-align:center}
.err-card__logo{width:min(240px,60vw);height:auto;margin:0 auto 18px;display:block}
.err-code{font-size:3.4rem;font-weight:800;line-height:1;color:var(--brand-dark);margin:0 0 6px}
.err-title{font-size:1.25rem;font-weight:700;margin:0 0 10px;color:var(--ink)}
.err-text{margin:0 0 22px;color:var(--muted);line-height:1.55}
.err-btn{display:inline-block;padding:13px 26px;border-radius:999px;background:var(--brand);color:#fff;
  font-weight:700;text-decoration:none;box-shadow:0 4px 16px rgba(31,122,140,.35)}
.err-btn:hover{background:var(--brand-dark)}
/* Časté otázky na úvodní stránce (SEO / AI Overview) */
.home-faq{max-width:760px;margin:36px auto 8px;width:100%}
#faq-overlay .home-faq{margin:0;max-width:none}   /* uvnitř okna bez vnějších okrajů */
.home-faq h2{font-size:1.2rem;color:var(--brand-dark);text-align:center;margin:0 0 16px}
.home-faq details{background:var(--glass-bg);border:1px solid var(--glass-brd);border-radius:12px;margin-bottom:8px;padding:0 16px}
.home-faq summary{cursor:pointer;font-weight:600;color:var(--ink);padding:12px 0;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.home-faq summary::-webkit-details-marker{display:none}
.home-faq summary::after{content:'+';color:var(--muted);font-weight:700;font-size:1.2rem;line-height:1}
.home-faq details[open] summary::after{content:'–'}
.home-faq details p{margin:0 0 14px;color:var(--muted);font-size:.92rem;line-height:1.55}
.home-footer{padding:18px 20px;text-align:center;color:var(--muted);font-size:.8rem}
.home-footer p{max-width:860px;margin-left:auto;margin-right:auto}
.home-footer a{color:var(--brand-dark)}

/* ---------- Mapová stránka ---------- */
.page-map,.page-map #app{height:100%}
/* Mapová stránka je zamčená – žádné posouvání/bounce dokumentu (jinak by krátký obsah v panelu tahal topbar a odhaloval mapu) */
.page-map{position:fixed;inset:0;width:100%;overflow:hidden;overscroll-behavior:none}
#app{display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:12px;padding:10px 14px;z-index:1100;
  padding-top:max(10px,env(safe-area-inset-top));border-radius:0}
.topbar__back{font-size:1.4rem;text-decoration:none;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:12px;color:var(--ink)}
.topbar__back:hover{background:rgba(255,255,255,.4)}
/* Karty dnů v okně počasí (symbol + název dne) */
.wx-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:0 18px 12px}
.wx-tab{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;
  border-radius:14px;border:1px solid var(--glass-brd);background:rgba(255,255,255,.55);
  font-size:.78rem;font-weight:600;color:var(--ink);cursor:pointer}
.wx-tab__ico{font-size:1.5rem;line-height:1}
.wx-tab__t{font-size:1.15rem;font-weight:800;line-height:1.1}
.wx-tab__lbl{white-space:nowrap}
.wx-tab.is-on{background:#1f7a8c;border-color:#1f7a8c;color:#fff}
/* Zápis napočítaných úderů u měření tepu */
.tep-entry{margin-top:12px}
.tep-entry__lbl{display:block;font-size:.85rem;font-weight:600;margin-bottom:6px}
.tep-entry__row{display:flex;gap:8px}
/* Volba způsobu měření tepu (ruční / stopky) */
.tep-choice{display:flex;gap:8px;margin:10px 0 4px}
.tep-choice__btn{flex:1;padding:10px 8px;border:1px solid var(--glass-brd);border-radius:12px;
  background:rgba(255,255,255,.5);color:var(--brand-dark);font-weight:600;font-size:.9rem;cursor:pointer}
.tep-choice__btn:hover{background:#fff}
.tep-choice__btn.is-on{background:rgba(31,122,140,.14);border-color:rgba(31,122,140,.45)}
.tep-manual{margin:10px 0 2px}
.tep-manual-input{flex:1;min-width:0;padding:10px 12px;border:1px solid var(--glass-brd);border-radius:12px;font-size:1rem}
.tep-manual-save{border:1px solid rgba(31,122,140,.4);background:rgba(31,122,140,.12);color:var(--brand-dark);font-weight:700;padding:10px 16px;border-radius:12px;cursor:pointer;white-space:nowrap}
.tep-manual-save:hover{background:rgba(31,122,140,.2)}
.tep-input{flex:1;min-width:0;padding:10px 12px;border:1px solid var(--glass-brd);
  border-radius:12px;font-size:1rem;background:rgba(255,255,255,.7)}
.tep-calc{padding:10px 18px;border:1px solid rgba(31,122,140,.4);border-radius:12px;background:rgba(31,122,140,.12);color:var(--brand-dark);
  font-weight:700;font-size:.9rem;cursor:pointer}
.tep-calc:hover{background:rgba(31,122,140,.2)}
/* Vlastní obrázková ikona POI (logo poskytovatele) */
.poi-pin__img{width:26px;height:26px;object-fit:contain;display:block}
/* Odkaz v obsahu POI (tlačítko) */
.poi-link-btn{display:inline-block;padding:10px 18px;background:#1f7a8c;color:#fff;
  font-weight:700;font-size:.9rem;text-decoration:none;border-radius:12px}   /* obdélník se zaoblením jako ostatní tlačítka (pilulka zamítnuta 22.7.2026) */
.poi-link-btn:hover{opacity:.9}
/* Klientská lokalita: místo šipky zpět logo poskytovatele */
.topbar__back--logo{width:auto;max-width:150px;cursor:default;padding:2px 4px}
.topbar__back--logo:hover{background:none}
.topbar__back--logo img{max-height:34px;max-width:100%;width:auto;height:auto;display:block}
/* Široké logo, které nese i název lokality (název se pak v hlavičce nezobrazuje) */
.topbar__back--full{max-width:220px}
.topbar__back--full img{max-height:38px}
.topbar__title{display:flex;flex-direction:column;line-height:1.2;flex:1;min-width:0}
.topbar__title-logo{align-self:flex-start;max-height:32px;max-width:100%;width:auto;height:auto;display:block}
.topbar__title strong{font-size:1.05rem}
/* ---- Locate map control (pod zoom, vpravo) ---- */
.locate-ctrl{margin:6px 12px 12px 12px!important;display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.poitoggle-ctrl{margin:0 12px 6px 12px!important}
.poitoggle-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;box-sizing:border-box;background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(12px) saturate(160%);backdrop-filter:blur(12px) saturate(160%);border:1px solid rgba(255,255,255,.65);border-radius:6px;box-shadow:0 2px 10px rgba(20,40,50,.18);cursor:pointer;line-height:0;color:var(--brand-dark,#16242b);transition:background .15s,opacity .15s,color .15s}
.poitoggle-btn:hover{background:#fff}
.poitoggle-btn svg{display:block}
.poitoggle-btn.is-off{color:#8a97a0;opacity:.55}   /* skryté = vyšedlé / průhlednější, ne červené */

/* Volné prohlížení při zapnuté GPS: puntík se změní na obrys se zaměřovačem */
.locate-map-btn.is-tracking.is-free .locate-dot{background:transparent;border:2px solid #1769ff;position:relative;box-sizing:border-box}
.locate-map-btn.is-tracking.is-free .locate-dot::before,
.locate-map-btn.is-tracking.is-free .locate-dot::after{content:"";position:absolute;background:#1769ff}
.locate-map-btn.is-tracking.is-free .locate-dot::before{left:50%;top:-5px;bottom:-5px;width:2px;margin-left:-1px}
.locate-map-btn.is-tracking.is-free .locate-dot::after{top:50%;left:-5px;right:-5px;height:2px;margin-top:-1px}
.locate-map-btn{display:flex;align-items:center;justify-content:center;min-height:36px;box-sizing:border-box;padding:6px 10px;background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(12px) saturate(160%);backdrop-filter:blur(12px) saturate(160%);border:1px solid rgba(255,255,255,.65);border-radius:6px;box-shadow:0 2px 10px rgba(20,40,50,.18);cursor:pointer;white-space:nowrap;font-size:.85rem;font-weight:600;color:#111;transition:background .15s}
.locate-map-btn:hover{background:#fff}
.locate-map-btn .locate-dot{display:none;width:12px;height:12px;border-radius:50%;background:#1769ff}
.locate-map-btn.is-tracking{width:36px;height:36px;padding:0;box-sizing:border-box}
.locate-map-btn.is-tracking .locate-lbl{display:none}
.locate-map-btn.is-tracking .locate-dot{display:block}
.locate-map-btn.is-loading{opacity:.6;pointer-events:none}
/* Volné prohlížení (ruční posun mapy): text + černý terčík vpravo za textem */
.locate-map-btn.is-tracking.is-free{width:auto;height:36px;padding:6px 10px;gap:8px}
.locate-map-btn.is-tracking.is-free .locate-lbl{display:inline}
.locate-map-btn.is-tracking.is-free .locate-dot{order:2;border-color:#111}
.locate-map-btn.is-tracking.is-free .locate-dot::before,
.locate-map-btn.is-tracking.is-free .locate-dot::after{background:#111}


.layout{flex:1;position:relative;min-height:0}
.map{position:absolute;inset:0;z-index:0;background:#dfe7ea}
.panel{position:absolute;top:12px;left:12px;bottom:12px;width:370px;max-width:calc(100% - 24px);
  z-index:1000;border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;
  background:transparent;border:none;
  box-shadow:var(--glass-shadow), inset 0 0 0 1px var(--glass-brd)}
.panel::after{content:"";position:absolute;inset:0;z-index:0;
  background:var(--glass-bg-strong);
  -webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%)}
.panel__scroll{position:relative;z-index:1;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:6px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}

.filters{padding:12px 12px 4px}
.filter-group{margin-bottom:16px}
.filter-count{font-size:.78rem;color:var(--muted);white-space:nowrap}
.filter-label{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}
.filter-group > .filter-label{margin-bottom:11px}
.filter-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}
.range-out{font-size:.82rem;font-weight:600;color:var(--brand-dark)}
.reset-btn{border:1px solid var(--glass-brd);background:rgba(255,255,255,.5);color:var(--brand-dark);font-weight:600;font-size:.78rem;padding:5px 12px;border-radius:999px;cursor:pointer}
.reset-btn:hover{background:#fff}
/* Pevný hlavičkový pruh v panelu (Filtr tras, Profil, Uložit) – MIMO scroll, stejně jako u detailu:
   drží na místě, obsah pod ním roluje. Frosted (transparentní + blur) jako detail__top. */
.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex:0 0 auto;position:relative;z-index:3;
  padding:14px 16px 12px;background:transparent;
  -webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);
  border-bottom:1px solid var(--glass-brd)}
.panel-head[hidden]{display:none}
.panel-head__titles{min-width:0}
.panel-head__title{display:block;font-size:1.25rem;font-weight:700;color:var(--brand-dark);line-height:1.2}
.panel-head__sub{display:block;font-size:.82rem;color:var(--muted);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.panel-head__action{flex:0 0 auto;white-space:nowrap;align-self:center}
.panel-head__right{display:flex;align-items:center;gap:10px;flex:0 0 auto;align-self:center}
.acc-subrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 2px 16px}
/* V okně účtu (desktop, modal) je hlavička běžná v toku (ne sticky) – bez blur, s místem pro zavírací × */
.acc-body .panel-head{position:static;margin:0 0 12px;padding:2px 46px 12px 0;background:none;
  -webkit-backdrop-filter:none;backdrop-filter:none}

.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{border:1px solid rgba(255,255,255,.6);background:rgba(255,255,255,.45);color:var(--muted);padding:7px 14px;border-radius:999px;font-size:.85rem;font-weight:600;cursor:pointer;transition:.12s}
.chip:hover{border-color:var(--brand)}
/* náročnost: barevné podbarvení po zapnutí */
.chip.lld.is-on{background:#1f7a8c;border-color:#1f7a8c;color:#fff;box-shadow:0 2px 8px rgba(20,40,50,.2)}   /* léčebný lázeňský dům */
.chip.diff[data-diff="1"].is-on{background:#2e9e5b;border-color:#2e9e5b;color:#fff}
.chip.diff[data-diff="2"].is-on{background:#eab308;border-color:#eab308;color:#3a2e00}
.chip.diff[data-diff="3"].is-on{background:#d6453d;border-color:#d6453d;color:#fff}
.chip.diff.is-on{box-shadow:0 2px 8px rgba(20,40,50,.2)}

/* dvojitý posuvník (min–max) */
.dual{position:relative;height:34px}
.dual__track{position:absolute;left:8px;right:8px;top:15px;height:4px;border-radius:3px;background:rgba(20,40,50,.18)}
.dual__fill{position:absolute;top:0;bottom:0;background:var(--brand);border-radius:3px}
.dual input[type=range]{position:absolute;left:0;right:0;top:0;width:100%;height:34px;margin:0;background:none;pointer-events:none;-webkit-appearance:none;appearance:none}
.dual input[type=range]#len-min,.dual input[type=range]#time-min{z-index:2}
.dual input[type=range]::-webkit-slider-runnable-track{background:none;height:34px}
.dual input[type=range]::-moz-range-track{background:none;height:34px}
.dual input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:20px;height:20px;margin-top:7px;border-radius:50%;background:#fff;border:2px solid var(--brand);box-shadow:0 2px 6px rgba(20,40,50,.3);cursor:pointer}
.dual input[type=range]::-moz-range-thumb{pointer-events:auto;width:20px;height:20px;border-radius:50%;background:#fff;border:2px solid var(--brand);box-shadow:0 2px 6px rgba(20,40,50,.3);cursor:pointer}

.route-list{list-style:none;margin:0;padding:8px 10px 12px}
.route-card{display:flex;gap:10px;background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.6);border-radius:14px;padding:11px;margin-bottom:9px;cursor:pointer;transition:.12s}
.route-card:hover{background:#fff;box-shadow:0 6px 18px rgba(20,40,50,.16)}
.route-card:focus-visible{outline:3px solid var(--brand,#1f7a8c);outline-offset:2px;background:#fff;box-shadow:0 6px 18px rgba(20,40,50,.16)}
.route-card__bar{width:5px;border-radius:4px;flex:none}
.route-card__num{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;margin-bottom:1px}
.route-card__name{font-weight:600;margin-bottom:5px;font-size:1.02rem}
.route-card__meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.8rem;color:var(--muted)}
.route-wx{display:block;margin:4px 0 16px}
.route-wx[hidden]{display:none}
.route-wx__row{display:flex;justify-content:space-between;gap:6px}
.route-wx__cell{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px}
.route-wx__emo{font-size:1.3rem;line-height:1}
.route-wx__t{position:relative;font-size:.85rem;font-weight:700;color:var(--ink)}
.route-wx__deg{position:absolute;left:100%;top:0}
.route-wx__cell.is-now .route-wx__t{color:var(--brand-dark)}
.route-wx__hh{font-size:.72rem;color:var(--muted)}
.badge{color:#fff;padding:1px 8px;border-radius:999px;font-size:.72rem;font-weight:600}
.route-empty{color:var(--muted);padding:16px;text-align:center}

.detail{padding:12px 16px 18px}
/* Horní lišta detailu (zpět + uložit) je PEVNÁ hlavička panelu mimo scroll –
   nehýbe se s obsahem. Stejné matné sklo jako panel, pod ní tenká linka. */
.detail__top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:0 0 auto;
  position:relative;z-index:2;padding:8px 16px;
  background:transparent;   /* žádné bílé sklo navíc – stejná barva jako panel */
  -webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);
  border-bottom:1px solid var(--glass-brd)}
.detail__top[hidden]{display:none}
/* Záloha pro prohlížeče bez backdrop-filter: aspoň neprůhledné sklo, ať obsah neprosvítá */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .detail__top{background:var(--glass-bg-strong)}
}
.detail__back{border:1px solid var(--glass-brd);background:rgba(255,255,255,.5);color:var(--brand-dark);font-weight:600;padding:8px 12px;border-radius:12px;cursor:pointer;font-size:.85rem}
.detail__back:hover{background:#fff}
.detail__num{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;margin-bottom:2px}
.detail h2{margin:0 0 14px;font-size:1.3rem}
.detail__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}
.detail__stats .stat{min-width:0;align-items:center;text-align:center}
.detail__stats .stat__val{font-size:.98rem}
.detail__stats .stat__lbl{font-size:.68rem}
.detail__favrow{display:flex;gap:10px;margin:2px 0 10px}
.detail__favrow .fav-btn,.detail__favrow .share-route-btn{flex:1;width:auto;margin:0}
.calc-btn{border:1px solid var(--glass-brd);background:rgba(255,255,255,.5);color:var(--brand-dark);font-weight:600;font-size:.85rem;padding:9px 14px;border-radius:12px;cursor:pointer}
.calc-btn:hover{background:#fff}
.calc-note{margin:0 0 12px;font-size:.82rem;color:var(--muted)}
.fav-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin:2px 0 10px;
  padding:11px 16px;border:1px solid var(--glass-brd);border-radius:12px;background:rgba(255,255,255,.5);
  color:var(--brand-dark);font-weight:600;font-size:.9rem;cursor:pointer}
.fav-btn:hover{background:#fff}
.fav-btn.is-on{background:rgba(214,69,61,.12);border-color:rgba(214,69,61,.45);color:#c0392b}
.fav-btn.is-on svg{fill:#d6453d;stroke:#d6453d}
.detail__actions{display:flex;gap:10px;margin:2px 0 10px}
.detail__actions .share-route-btn{margin:0;flex:1}
.share-route-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
  margin:2px 0 10px;padding:11px 16px;border:1px solid var(--glass-brd);border-radius:12px;
  background:rgba(255,255,255,.5);color:var(--brand-dark);font-weight:600;font-size:.9rem;cursor:pointer;text-decoration:none}
.share-route-btn:hover{background:#fff}
.share-route-status{margin:-4px 0 10px;font-size:.82rem;color:#1f7a4a}
.qr-box{margin:0 0 10px;text-align:center}
.qr-img{display:block;width:220px;max-width:100%;height:auto;margin:2px auto 10px;
  border:1px solid var(--glass-brd);border-radius:12px;background:#fff}
.stat{display:flex;flex-direction:column}
.stat__val{font-size:1.2rem;font-weight:700}
.stat__lbl{font-size:.72rem;color:var(--muted)}
.detail__gallery{margin:0 0 14px}
.detail__gallery[hidden]{display:none}
.poi-gallery__cap{margin-top:6px;font-size:.72rem;color:var(--muted);text-align:center}
.poi-gallery__cap:empty{display:none}
.detail__elev{margin:0 0 14px}
.elev__head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:4px}
.elev__title{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}
.elev__ud{font-size:.82rem;font-weight:600;display:flex;gap:10px;color:var(--ink)}
.elev__svg{display:block;width:100%;height:78px}
.elev__foot{display:flex;justify-content:space-between;font-size:.82rem;font-weight:600;color:var(--ink);margin-top:4px}
.elev__lbl{text-transform:uppercase;letter-spacing:.03em;font-weight:700;color:var(--muted);font-size:.66rem;margin-right:3px}
.detail__desc{margin:0 0 12px;font-size:.95rem;line-height:1.55}
.detail__desc-p{margin:0 0 10px;text-align:justify;text-align-last:left;-webkit-hyphens:none;hyphens:none}
.detail__desc-p:last-child{margin-bottom:0}
.desc-poi{color:var(--brand-dark);font-weight:600;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.desc-poi:hover{color:var(--brand)}
.detail__points h3{font-size:.95rem;margin:10px 0 6px}
.poi{font-size:.88rem;color:var(--muted);padding:4px 0;border-top:1px solid rgba(20,40,50,.08)}
.poi__t{font-weight:600;color:var(--ink)}

/* Pulsující puntík polohy v mapě */
@keyframes mappulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(3.5);opacity:0}}
.user-loc{position:relative;width:16px;height:16px}
.user-loc__ring{position:absolute;inset:0;border-radius:50%;background:rgba(23,105,255,.4);animation:mappulse 1.6s ease-out infinite}
.user-loc__dot{position:absolute;inset:0;border-radius:50%;background:#1769ff;border:2.5px solid #fff;box-shadow:0 2px 8px rgba(23,105,255,.5)}
/* Kužel „směru výhledu" (jako Apple Maps) – 0° míří na sever (nahoru) */
.user-loc__beam{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;
  transform-origin:50% 50%;pointer-events:none;border-radius:50%;opacity:0;transition:opacity .2s;
  background:conic-gradient(rgba(23,105,255,.55) 0deg, rgba(23,105,255,.12) 24deg,
    transparent 42deg, transparent 318deg, rgba(23,105,255,.12) 336deg, rgba(23,105,255,.55) 360deg);
  -webkit-mask:radial-gradient(circle, #000 8%, rgba(0,0,0,.55) 42%, transparent 72%);
          mask:radial-gradient(circle, #000 8%, rgba(0,0,0,.55) 42%, transparent 72%)}
.user-loc.has-heading .user-loc__beam{opacity:1}

/* Směrové šipky na trase */
.dir-arrow{background:none;border:none}
.dir-arrow span{display:block;width:18px;height:18px;line-height:0}

/* Značky start / cíl */
.rt-flag{background:none;border:none;filter:drop-shadow(0 1px 3px rgba(20,40,50,.45))}

/* Leaflet popup ladění */
.leaflet-popup-content-wrapper{border-radius:12px}

/* Tlačítka +/- ve skleněném designu (jako „Moje poloha") */
.leaflet-control-zoom{
  border:1px solid rgba(255,255,255,.65)!important;border-radius:6px!important;overflow:hidden;
  background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:blur(12px) saturate(160%);backdrop-filter:blur(12px) saturate(160%);
  box-shadow:0 2px 10px rgba(20,40,50,.18)!important;margin:12px 12px 6px 12px!important}
.leaflet-control-zoom a{
  width:34px!important;height:34px!important;line-height:34px!important;
  background:transparent!important;color:#000!important;
  font-size:1.2rem!important;font-weight:700!important;border:none!important}
.leaflet-control-zoom a:hover{background:#fff!important;color:#000!important}
.leaflet-control-zoom-in{border-bottom:1px solid rgba(255,255,255,.65)!important}
.leaflet-control-zoom a.leaflet-disabled{opacity:.4!important}

/* ---------- Body zájmu (POI) ---------- */
.poi-pin-wrap{background:none;border:none}
.poi-pin{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;line-height:1;cursor:pointer;
  background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:blur(10px) saturate(160%);backdrop-filter:blur(10px) saturate(160%);
  border:1px solid var(--glass-brd);box-shadow:0 2px 8px rgba(20,40,50,.28);
  transition:transform .12s ease, box-shadow .12s ease}
.poi-pin:hover{transform:scale(1.12);box-shadow:0 4px 14px rgba(20,40,50,.34)}
.poi-pin--temp .poi-pin__t{font-size:.82rem;font-weight:700;color:var(--ink);line-height:1;font-variant-numeric:tabular-nums}

.poi-overlay{position:fixed;inset:0;z-index:1600;display:flex;align-items:center;justify-content:center;
  padding:16px;background:rgba(18,38,40,.45)}
.poi-overlay[hidden]{display:none}
.poi-modal{width:100%;max-width:460px;max-height:86vh;display:flex;flex-direction:column;overflow:hidden;
  border-radius:var(--radius);background:var(--glass-bg);padding:0}
/* Pevná zvýrazněná hlavička (nehýbe se s obsahem ani při přetažení) */
.poi-modal__head{display:flex;align-items:flex-start;gap:12px;padding:18px 18px 12px;flex:0 0 auto;
  background:transparent;
  border-bottom:1px solid rgba(20,40,50,.08)}
.poi-modal__icon{font-size:2rem;line-height:1}
.poi-modal__titles{flex:1;min-width:0}
.poi-modal__titles strong{display:block;font-size:1.1rem;line-height:1.25}
.poi-modal__sub{font-size:.82rem;color:var(--muted)}
.poi-modal__close{border:none;background:rgba(255,255,255,.5);color:var(--muted);width:34px;height:34px;
  border-radius:50%;font-size:1.2rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.poi-modal__close:hover{background:#fff;color:var(--ink)}
.poi-modal__body{flex:1 1 auto;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:4px 18px 6px}
.poi-block{padding:8px 0;border-bottom:1px solid rgba(20,40,50,.08)}
.poi-block:last-child{border-bottom:none}
.poi-block h4{margin:0 0 7px;font-size:.95rem}
.poi-block p{margin:0;font-size:.92rem;line-height:1.55}
.poi-block .poi-p{margin:0 0 .7em;text-align:justify;text-align-last:left;hyphens:none}
.poi-block .poi-p:last-child{margin-bottom:0}
.poi-fact{display:flex;gap:12px;padding:5px 0}
.poi-fact__k{flex:0 0 38%;color:var(--muted);font-size:.84rem;font-weight:600}
.poi-fact__v{flex:1;font-size:.9rem;line-height:1.5}
.poi-comp__tbl{width:100%;border-collapse:collapse;font-size:.9rem}
.poi-comp__tbl th{text-align:left;font-weight:600;color:var(--muted);padding:5px 8px 5px 0;
  border-bottom:1px solid rgba(20,40,50,.07);white-space:nowrap}
.poi-comp__tbl td{text-align:right;font-variant-numeric:tabular-nums;padding:5px 0;
  border-bottom:1px solid rgba(20,40,50,.07)}
.poi-comp__tbl tr:last-child th,.poi-comp__tbl tr:last-child td{border-bottom:none;font-weight:700;color:var(--ink)}
/* Tabulka jízdního řádu (POI zastávky) */
.poi-jr__tbl{width:100%;border-collapse:collapse;font-size:.92rem;margin:4px 0}
.poi-jr__tbl th{text-align:left;font-weight:600;color:var(--muted);font-size:.8rem;
  padding:4px 8px 6px 0;border-bottom:1px solid rgba(20,40,50,.15)}
.poi-jr__tbl th:last-child,.poi-jr__tbl td:last-child{text-align:right}
.poi-jr__tbl td{font-variant-numeric:tabular-nums;padding:6px 0;border-bottom:1px solid rgba(20,40,50,.06)}
.poi-jr__tbl td:last-child{color:var(--muted)}
.poi-jr__tbl tr:last-child td{border-bottom:none}
.poi-jr__note{font-size:.8rem;color:var(--muted);margin-top:6px;line-height:1.45}
.poi-fig{margin:8px 0}
.poi-fig img{width:100%;height:auto;border-radius:12px;display:block}
.poi-fig figcaption{margin-top:5px;font-size:.78rem;color:var(--muted);text-align:center}

/* Galerie fotek – swipe na dotyku, šipky/tečky na PC */
.poi-gallery{position:relative;border-radius:12px;overflow:hidden;background:#000}
.poi-gallery__track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow-anchor:none}
.poi-gallery__track::-webkit-scrollbar{display:none}
.poi-gallery__slide{flex:0 0 100%;scroll-snap-align:center;aspect-ratio:var(--gal-ar,3/2);background:#000}
.poi-gallery__slide img{width:100%;height:100%;object-fit:contain;display:block}
.poi-gallery__dots{position:absolute;left:0;right:0;bottom:8px;display:flex;justify-content:center;gap:6px}
.poi-gallery__dot{width:8px;height:8px;padding:0;border:none;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.55);box-shadow:0 0 3px rgba(0,0,0,.5)}
.poi-gallery__dot.is-on{background:#fff}
.poi-gallery__nav{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;
  border:none;border-radius:50%;background:rgba(255,255,255,.82);color:var(--ink);
  font-size:1.4rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 1px 6px rgba(20,40,50,.3)}
.poi-gallery__nav--prev{left:8px}
.poi-gallery__nav--next{right:8px}
@media (hover:none){.poi-gallery__nav{display:none}}
.poi-cviky{display:flex;flex-direction:column;gap:4px;margin-top:8px}
.poi-cvik{display:flex;gap:12px;align-items:center;padding:9px 0;border-top:1px solid rgba(20,40,50,.08)}
.poi-cvik:first-child{border-top:none}
.poi-cvik__img{flex:0 0 38%;width:38%;height:auto;object-fit:contain;border-radius:10px;background:#fff;padding:6px}
.poi-cvik__txt{flex:1;display:flex;flex-direction:column;gap:3px;font-size:.9rem;line-height:1.5;min-width:0}
.poi-cvik__txt strong{font-size:.92rem}
.poi-cviky__src{margin:8px 0 0;font-size:.76rem;color:var(--muted)}
.poi-cviky__src a{color:var(--brand-dark)}
.poi-cvik__txt span{color:var(--muted)}
/* Měření tepu – stopky */
.poi-tep .tep-note{margin:10px 0 0;font-size:.86rem;color:var(--muted)}
.tep-timer{margin-top:12px;text-align:center;padding:14px;border-radius:14px;
  background:rgba(255,255,255,.5);border:1px solid var(--glass-brd)}
.tep-phase{font-size:.78rem;font-weight:700;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.tep-display{font-size:3rem;font-weight:800;line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums;margin:4px 0}
.tep-display.is-go{color:#d6453d}
.tep-btn{border:1px solid rgba(31,122,140,.4);background:rgba(31,122,140,.12);color:var(--brand-dark);font-weight:700;font-size:1rem;
  padding:10px 28px;border-radius:12px;cursor:pointer}
.tep-btn:hover{background:rgba(31,122,140,.2)}
.tep-btn:disabled{opacity:.55;cursor:default}
.tep-result{margin:10px 0 0;font-size:.88rem;color:var(--ink)}

.poi-embed{width:100%;border-radius:12px;overflow:hidden;background:#0b1418}
.poi-embed iframe{display:block;width:100%;height:60vh;border:0}
/* Široké „TV" okno (např. meteostanice) – jen na počítači; na mobilu zůstává úzké */
@media (min-width:761px){
  .poi-modal--wide{max-width:1040px;width:92vw}
}

/* „Bez rámu" – jen samotný widget + plovoucí křížek (meteostanice) */
.poi-modal--bare{position:relative;display:block;padding:0;overflow:hidden;
  border:none;background:transparent;
  -webkit-backdrop-filter:none;backdrop-filter:none;
  box-shadow:0 8px 32px rgba(20,40,50,.28)}
.poi-modal--bare .poi-modal__head{position:absolute;top:0;left:0;right:0;padding:8px;
  background:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:none;
  display:flex;justify-content:flex-end;pointer-events:none;z-index:5}
.poi-modal--bare .poi-modal__icon,
.poi-modal--bare .poi-modal__titles{display:none}
.poi-modal--bare .poi-modal__close{pointer-events:auto;box-shadow:0 1px 6px rgba(20,40,50,.35)}
.poi-modal--bare .poi-modal__body{padding:0}
.poi-modal--bare .poi-block{padding:0;border:none}
.poi-modal--bare .poi-embed{border-radius:0}
.poi-modal--bare .poi-modal__src{display:none}
.poi-video{position:relative;width:100%;padding-top:56.25%;border-radius:12px;overflow:hidden;background:#000}
.poi-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.poi-cap{margin:5px 0 0;font-size:.78rem;color:var(--muted);text-align:center}
.poi-modal__src{flex:0 0 auto;padding:12px 18px 16px;border-top:1px solid rgba(20,40,50,.08);font-size:.76rem;color:var(--muted)}
.poi-modal__src a{color:var(--brand-dark)}

/* ---------- Mobil ---------- */
@media (max-width:760px){
  /* Okna počasí i POI ukotvi NAPEVNO mezi topbar (58px) a spodní nav lištu.
     Absolutní top/bottom používá stejný souřadný systém jako fixovaný nav bar,
     takže okno drží nad ním spolehlivě i na iOS Safari (bez závislosti na vh/dvh
     – to bylo příčinou, proč okno přetékalo pod nav bar). Obsah se roluje uvnitř. */
  .wx-overlay,.poi-overlay{padding:0}
  /* Stejná mezera 12px ze všech stran: shora topbar(58)+12, zdola nav bar(69)+12+safe, po stranách 12.
     Vyšší specifita (.overlay .modal) NUTNÁ – základní .wx-modal{width:100%} je v CSS až za touto
     media query, jinak by přebilo width:auto a okno by s left:12 přeteklo přes pravý okraj. */
  .wx-overlay .wx-modal,.poi-overlay .poi-modal{position:absolute;top:70px;left:12px;right:12px;margin:0 auto;
    bottom:calc(81px + env(safe-area-inset-bottom,0px));
    width:auto;height:auto;max-height:none;border-radius:var(--radius)}
  .wx-modal__scroll,.poi-modal__body{min-height:0}   /* flex dítě se smí zmenšit → scroll uvnitř okna */
  /* Panel jako spodní list; sedí nad navigační lištou (60px + bezpečná zóna) – složený se schová za ni */
  .panel{top:auto;left:0;right:0;bottom:calc(60px + env(safe-area-inset-bottom,0px));width:100%;max-width:100%;
    height:54%;max-height:none;border-radius:var(--radius) var(--radius) 0 0;padding-top:0;touch-action:none}
  /* Úchyt panelu je nad vším (i nad přilepenou lištou), aby horní pruh vypadal jednotně */
  .panel::before{content:"";position:absolute;top:7px;left:50%;transform:translateX(-50%);width:40px;height:4px;border-radius:3px;background:rgba(20,40,50,.2);z-index:7}
  /* Bez horního odsazení scrollu → přilepená lišta sedí u samého vrchu panelu a
     její frosted vzhled pokrývá celý horní pruh (i okolo úchytu) jednotně. */
  .panel__scroll{touch-action:pan-y;padding-top:0}
  .panel.is-collapsed .panel__scroll{overflow:hidden;touch-action:none}
  #list-view{padding-top:16px}
  .detail__top{padding-top:16px}   /* místo pro úchyt nad tlačítky */
  .wx-label{display:none}
  .topbar{gap:8px;padding:5px 10px;height:58px;min-height:58px;box-sizing:border-box;overflow:hidden}   /* PEVNÁ výška (ne jen minimum): místo se rezervuje hned od prvního vykreslení, takže pozdější donačtení loga Ensana a chipu počasí+BIO už výšku nemění (žádný poskok); obsah se jen vertikálně vycentruje */
  #account-btn-lbl{display:none}   /* na mobilu jen ikona účtu (úspora místa) */
  .topbar .topbar__wx{flex-direction:column}   /* na mobilu počasí + BIO pod sebou (vyšší specifita než base .topbar__wx) */
  .topbar__wx .topbar__bio .bio-label{display:inline-block;font-size:.72rem;letter-spacing:.02em}   /* popisek BIO vedle čísla (vyšší specifita než base .82rem) */
  .topbar__wx .topbar__weather,.topbar__wx .topbar__bio{padding:0 8px;font-size:.72rem;gap:4px}   /* pod sebou blíž k sobě */
  .topbar__wx .topbar__bio{gap:3px;border-left:0;border-top:1px solid var(--glass-brd)}
  .topbar__wx .topbar__bio .bio-level{padding:0 6px;min-width:16px;font-size:.72rem}
  .topbar__wx .wx-icon{font-size:.85rem}
  .topbar__wx .wx-temp{font-size:.75rem}
  .lang-btn{padding:5px 8px;font-size:1rem}
  /* Povinné logo Mapy.com nadzvednout nad složený panel (26 px) a spodní bezpečnou zónu,
     aby nebylo odseknuté proužkem panelu ani home-indicatorem. */
  .leaflet-bottom.leaflet-left{bottom:calc(66px + env(safe-area-inset-bottom,0px))}

  /* ---------- Spodní navigační lišta (Trasy / Start-Uložit / Profil) ---------- */
  .mobilebar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:2500;
    padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));gap:4px;
    background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);
    border-top:1px solid var(--glass-brd)}
  .mobilebar__btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    border:none;background:none;color:var(--muted);font-size:.72rem;font-weight:600;cursor:pointer;padding:6px 4px;border-radius:12px}
  .mobilebar__btn svg{width:24px;height:24px}
  .mobilebar__btn.is-active{color:var(--brand-dark)}
  .mobilebar__btn--action{color:var(--brand-dark)}
  .mobilebar__btn--action svg{width:26px;height:26px}
  .panel--full{border-radius:0}   /* vyrolováno až nahoru → zbytečné zaoblené rohy pryč */
  .panel-head{padding-top:16px}   /* místo pro úchyt panelu nad hlavičkou */
  /* Prvky, které lišta nahrazuje */
  #detail-top #action-btn{display:none!important}   /* akci obstará lišta; v panelu zůstane „← Všechny trasy" */
  .topbar__acc{display:none!important}
  /* Profil v panelu */
  .panel.show-profile .panel-legal{display:none}
  #acc-panel-body{padding:2px 2px 10px}
  /* Zápis trasy v panelu: box vyplní panel (bez okna), hlavička jako průsvitná lišta, obsah na pozadí panelu */
  #calc-view .calc-modal__box{max-width:none;width:100%;max-height:none;background:transparent;box-shadow:none;border:none;border-radius:0}
  /* Hlavička zápisu je v pevné liště #calc-top (.panel-head) – uvnitř jen nadpis, bez vlastního pozadí */
  #calc-top .calc-modal__head{background:none;-webkit-backdrop-filter:none;backdrop-filter:none;border:0;padding:0;flex:1;min-width:0}
}

/* ---------- Počasí (chip v liště) ---------- */
.topbar__weather{display:flex;align-items:center;gap:6px;border:1px solid var(--glass-brd);
  background:var(--glass-bg-strong);color:var(--brand-dark);font-weight:700;
  padding:8px 12px;border-radius:12px;cursor:pointer;font-size:.9rem;white-space:nowrap;position:relative}
.topbar__weather:hover{background:#fff}
.topbar__weather[hidden]{display:none}
.topbar__weather .wx-label{font-size:.82rem;font-weight:600;color:var(--brand-dark)}
.topbar__weather .wx-icon{font-size:1.15rem;line-height:1}
.topbar__weather .wx-temp{font-variant-numeric:tabular-nums}
.topbar__weather .wx-warn-dot{position:absolute;top:5px;right:5px;width:8px;height:8px;border-radius:50%;
  background:#d6453d;box-shadow:0 0 0 2px var(--glass-bg-strong)}
.topbar__weather .wx-warn-dot[hidden]{display:none}

/* ---------- Biometeorologická zátěž (chip v liště) ---------- */
.topbar__bio{display:flex;align-items:center;gap:6px;border:1px solid var(--glass-brd);
  background:var(--glass-bg-strong);color:var(--brand-dark);font-weight:700;
  padding:8px 12px;border-radius:12px;cursor:pointer;font-size:.9rem;white-space:nowrap}
.topbar__bio:hover{background:#fff}
.topbar__bio[hidden]{display:none}
.topbar__bio .bio-label{font-size:.82rem;font-weight:700;color:var(--brand-dark)}
.topbar__bio .bio-level{font-variant-numeric:tabular-nums;color:#fff;background:#8a8a8a;
  border-radius:8px;padding:1px 9px;font-weight:800;min-width:18px;text-align:center}

/* Počasí + BIO jako JEDNO tlačítko (dva segmenty pod sebou, společné okno) */
.topbar__wx{display:flex;flex-direction:row;align-items:stretch;flex:0 0 auto;overflow:hidden;cursor:pointer;
  border:1px solid var(--glass-brd);background:var(--glass-bg-strong);border-radius:12px}
.topbar__wx[hidden]{display:none}
.topbar__wx:hover{background:#fff}
.topbar__wx .topbar__weather,.topbar__wx .topbar__bio{border:0;background:none;box-shadow:none;border-radius:0;
  padding:6px 11px;font-size:.85rem;justify-content:center}
.topbar__wx .topbar__weather:hover,.topbar__wx .topbar__bio:hover{background:none}
.topbar__wx .topbar__bio{border-left:1px solid var(--glass-brd)}   /* předěl mezi segmenty (vedle sebe) */
.topbar__wx .wx-icon{font-size:1rem}
.topbar__wx .topbar__weather .wx-warn-dot{top:3px;right:3px}
.topbar__acc{width:auto;margin:0;flex:0 0 auto;padding:8px 12px;white-space:nowrap}
/* Přepínač jazyků (zatím připraveno – bez překladu). Desktop: mezi BIO a profilem; mobil: vpravo v liště. */
.topbar__lang{flex:0 0 auto;position:relative;display:flex;align-items:center}
.lang-btn{border:1px solid var(--glass-brd);background:var(--glass-bg-strong);border-radius:12px;padding:6px 9px;font-size:1.05rem;line-height:1;cursor:pointer}
.lang-btn:hover{background:#fff}
.lang-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:1200;display:flex;flex-direction:column;gap:2px;min-width:96px;
  background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);
  border:1px solid var(--glass-brd);border-radius:12px;padding:6px;box-shadow:var(--glass-shadow)}
.lang-menu[hidden]{display:none}
.lang-menu__item{display:flex;align-items:center;gap:8px;border:none;background:none;color:var(--brand-dark);font-weight:600;font-size:.9rem;padding:8px 10px;border-radius:8px;cursor:pointer;text-align:left;white-space:nowrap}
.lang-menu__item:hover{background:rgba(31,122,140,.12)}
.lang-menu__item.is-active{background:rgba(31,122,140,.14)}

/* ---------- Upozornění na biozátěž (auto okno) ---------- */
.bioalert-overlay{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(20,40,50,.42)}
.bioalert-overlay[hidden]{display:none}
.bioalert{max-width:380px;width:100%;border-radius:var(--radius);padding:22px 22px;text-align:left;
  box-shadow:0 18px 50px rgba(20,40,50,.28)}
.bioalert__badge{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:0 0 34px;
  border-radius:50%;background:#8a8a8a;color:#fff;font-weight:800;font-size:1.1rem}
.bioalert__body{display:flex;flex-direction:column;gap:16px;margin-bottom:18px}
.alertblk__head{display:flex;align-items:center;gap:10px}
.alertblk__ico{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:0 0 34px;
  border-radius:50%;background:#f4c14e;color:#7a4b0a;font-size:1.05rem}
.alertblk__title{font-size:1.05rem;color:var(--ink);line-height:1.3}
.alertblk__text{margin:8px 0 0;font-size:.92rem;line-height:1.55;color:var(--ink)}
.alertblk--warn+.alertblk--warn,.alertblk+.alertblk{padding-top:16px;border-top:1px solid rgba(20,40,50,.1)}
.bioalert__ok{width:100%;padding:12px 20px;border:1px solid rgba(31,122,140,.4);border-radius:12px;background:rgba(31,122,140,.12);
  color:var(--brand-dark);font-size:1rem;font-weight:700;cursor:pointer}
.bioalert__ok:hover{background:rgba(31,122,140,.2)}

/* ---------- Biometeorologická zátěž (v okně počasí) ---------- */
.wx-bio{margin:8px 18px 2px;border:1px solid #ddd;border-left-width:4px;border-radius:10px;
  padding:11px 13px;background:rgba(255,255,255,.55)}
.wx-bio__head{display:flex;align-items:center;gap:9px}
.wx-bio__badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;
  border-radius:50%;color:#fff;font-weight:800;font-size:.85rem}
.wx-bio__title{font-size:.95rem;color:var(--ink)}
.wx-bio__rec{margin-top:7px;font-size:.88rem;color:var(--ink);line-height:1.5}
.wx-bio__factors{margin-top:6px;font-size:.83rem;color:var(--muted)}
.wx-bio__note{margin-top:9px;font-size:.74rem;color:var(--muted);line-height:1.45}

/* ---------- Počasí (okno) ---------- */
/* Horní hrana okna je pevná – při přepínání dnů se okno mění jen směrem dolů */
.wx-overlay{position:fixed;inset:0;z-index:1500;display:flex;align-items:flex-start;justify-content:center;
  padding:16px;padding-top:max(24px,6vh);background:rgba(18,38,40,.45)}
.wx-overlay[hidden]{display:none}
.wx-modal{width:100%;max-width:480px;max-height:86vh;display:flex;flex-direction:column;overflow:hidden;
  border-radius:var(--radius);background:var(--glass-bg);padding:0}
/* Pevná zvýrazněná hlavička – obsah se roluje pod ní (zůstává na místě i při přetažení) */
.wx-modal__head{display:flex;align-items:flex-start;gap:12px;padding:18px 18px 12px;flex:0 0 auto;
  background:transparent;
  border-bottom:1px solid rgba(20,40,50,.08)}
.wx-modal__scroll{flex:1 1 auto;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  padding-top:6px}

.wx-modal__titles{flex:1;min-width:0}
.wx-modal__titles strong{display:block;font-size:1.05rem;line-height:1.25}
.wx-modal__sub{font-size:.82rem;color:var(--muted)}
.wx-modal__close{border:none;background:rgba(255,255,255,.5);color:var(--muted);width:34px;height:34px;
  border-radius:50%;font-size:1.2rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.wx-modal__close:hover{background:#fff;color:var(--ink)}
.wx-modal__summary{display:flex;gap:8px;flex-wrap:wrap;padding:0 18px 4px}
.wx-stat{flex:1 1 110px;background:rgba(255,255,255,.5);border:1px solid var(--glass-brd);
  border-radius:12px;padding:9px 12px}
.wx-stat__k{font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:700}
.wx-stat__v{font-size:1rem;font-weight:700}
.wx-warning{margin:10px 18px;padding:11px 13px;border-radius:12px;background:#fdeee6;
  border:1px solid #f0c9b5;color:#7a3417;font-size:.9rem}
.wx-warning strong{color:#c0532a}
.wx-modal__body{padding:6px 18px 4px}
.wx-row{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid rgba(20,40,50,.08)}
.wx-row:last-child{border-bottom:none}
.wx-row__k{flex:0 0 44%;color:var(--muted);font-size:.86rem}
.wx-row__v{flex:1;font-size:.92rem}
.wx-modal__src{padding:12px 18px 16px;border-top:1px solid rgba(20,40,50,.08);
  font-size:.76rem;color:var(--muted)}
.wx-modal__src a{color:var(--brand-dark)}
.wx-modal__lic{display:inline-block;margin-top:3px;padding:2px 7px;border-radius:6px;
  background:rgba(255,255,255,.5);font-size:.72rem}
@media (max-width:760px){
  .wx-row{flex-direction:column;gap:1px}
  .wx-row__k{flex-basis:auto}
}

/* ---------- Kalkulačka energie (modal) ---------- */
.calc-modal{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;
  padding:16px;background:rgba(20,40,50,.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.calc-modal[hidden]{display:none}
.calc-modal__box{position:relative;width:100%;max-width:420px;max-height:90vh;
  display:flex;flex-direction:column;overflow:hidden;
  background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);
  border:1px solid var(--glass-brd);box-shadow:var(--glass-shadow);border-radius:var(--radius);padding:0}
.calc-modal__close{position:absolute;top:12px;right:14px;z-index:3;border:0;background:rgba(255,255,255,.5);width:32px;height:32px;border-radius:50%;font-size:1.2rem;line-height:32px;text-align:center;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center}
.calc-modal__close:hover{background:#fff}
/* Pevná zvýrazněná hlavička – obsah se roluje pod ní (zůstává na místě i při přetažení) */
.calc-modal__head{flex:0 0 auto;padding:20px 22px 12px;background:var(--glass-bg-strong);
  -webkit-backdrop-filter:blur(14px) saturate(170%);backdrop-filter:blur(14px) saturate(170%);
  border-bottom:1px solid rgba(20,40,50,.08)}
.calc-modal__scroll{flex:1 1 auto;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  padding:6px 22px 22px}
.calc-modal__box h3{margin:0 36px 3px 0;font-size:1.15rem;font-weight:700;color:var(--brand-dark)}
.calc-modal__route{margin:0;font-size:.82rem;color:var(--muted)}
.calc-modal__route:empty{display:none}
.calc-lbl{display:block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin:14px 0 5px;color:var(--muted)}
.calc-input{width:100%;padding:11px 14px;border:1px solid var(--glass-brd);border-radius:12px;font-size:1rem;background:rgba(255,255,255,.7);color:var(--ink)}
.calc-row{display:flex;gap:12px;margin-top:4px}
.calc-field{flex:1;background:rgba(255,255,255,.82);border-radius:12px;border:1px solid rgba(0,0,0,.09);padding:8px 12px 10px}
.calc-field .calc-lbl{margin:0 0 3px}
.calc-field>.calc-input{background:transparent;border:none;padding:4px 0;font-weight:600;border-radius:0;box-shadow:none}
.calc-run{width:100%;margin-top:20px;padding:13px 20px;border:1px solid rgba(31,122,140,.4);border-radius:12px;background:rgba(31,122,140,.12);color:var(--brand-dark);font-size:1rem;font-weight:700;cursor:pointer;transition:.12s}
.calc-run:hover{background:rgba(31,122,140,.2);box-shadow:0 4px 16px rgba(20,40,50,.12)}
.calc-run:active{background:rgba(255,255,255,.8)}
.calc-err{color:#b3261e;font-size:.85rem;margin:10px 0 0}
.calc-err[hidden]{display:none}
.calc-result{margin-top:18px;text-align:center}
.calc-result[hidden]{display:none}
.calc-result__big{font-size:2.6rem;font-weight:800;color:var(--brand-dark);line-height:1}
.calc-result__unit{font-size:1rem;font-weight:600;color:var(--muted)}
.calc-result__meta{margin-top:8px;font-size:.85rem;color:var(--muted)}

/* ---------- Borg self-check (vnímané úsilí) ---------- */
.calc-borg{margin-top:16px;padding-top:14px;border-top:1px solid rgba(0,0,0,.08);text-align:left}
.calc-borg__q{font-size:.82rem;font-weight:700;color:var(--ink);margin-bottom:8px}
.calc-borg__btns{display:flex;flex-wrap:nowrap;gap:6px}
.calc-borg__btn{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;
  padding:8px 2px;border:1px solid rgba(0,0,0,.14);border-radius:10px;background:rgba(255,255,255,.65);
  color:var(--muted);cursor:pointer;transition:.12s}
.calc-borg__btn:hover{background:#fff}
.calc-borg__emo{font-size:1.5rem;line-height:1}
.calc-borg__cap{font-size:.68rem;font-weight:700;text-align:center;line-height:1.1}
.calc-borg__btn.is-active .calc-borg__cap{color:#fff}
.calc-borg__out{margin-top:10px;font-size:.85rem;line-height:1.45;color:var(--ink);background:rgba(255,255,255,.6);border-radius:10px;padding:10px 12px}
.calc-borg__out[hidden]{display:none}
.calc-borg__rec{display:block;margin-top:5px;color:var(--muted)}

/* ---------- Výsledkový stav kalkulačky ---------- */
.calc-modal__box.is-result #calc-inputs{display:none}
#calc-recalc{display:none}
.calc-modal__box.is-result #calc-recalc{display:flex}

/* ---------- Sekce sdílení ---------- */
.calc-share{margin-top:22px;padding-top:18px;border-top:1px solid rgba(20,40,50,.1);display:flex;flex-direction:column;gap:8px}
.calc-share[hidden]{display:none}
.calc-share__hd{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:2px}
.calc-share__btn{display:flex;align-items:center;gap:9px;width:100%;padding:11px 16px;background:rgba(255,255,255,.55);-webkit-backdrop-filter:blur(16px) saturate(170%);backdrop-filter:blur(16px) saturate(170%);border:1px solid rgba(255,255,255,.65);border-radius:999px;box-shadow:0 2px 8px rgba(20,40,50,.1);font-size:.87rem;font-weight:600;color:var(--brand-dark);cursor:not-allowed;opacity:.65;transition:.12s}
.calc-share__btn--active{cursor:pointer;opacity:1}
.calc-share__btn--active:hover{background:rgba(255,255,255,.82);box-shadow:0 3px 12px rgba(20,40,50,.14)}
/* E-mail formulář */
.share-email-form{display:flex;flex-direction:column;gap:8px;padding:10px 0 4px}
.calc-share__btn[hidden],.share-email-form[hidden]{display:none}
.share-email-form .calc-input{border-radius:999px;padding:10px 16px}
.share-email-status{font-size:.82rem;text-align:center;padding:4px 0;margin:0}
.share-email-status.is-ok{color:#2e9e5b}
.share-email-status.is-err{color:#b3261e}
.share-email-status[hidden]{display:none}
.calc-share__ico{font-size:1.1rem;line-height:1;flex-shrink:0}
.calc-share__social{display:flex;gap:8px;margin-top:2px}
.calc-share__social-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 6px;background:rgba(255,255,255,.55);-webkit-backdrop-filter:blur(16px) saturate(170%);backdrop-filter:blur(16px) saturate(170%);border:1px solid rgba(255,255,255,.65);border-radius:14px;box-shadow:0 2px 8px rgba(20,40,50,.1);font-size:.73rem;font-weight:600;color:var(--brand-dark);cursor:not-allowed;opacity:.65}
.calc-share__soon{font-size:.75rem;color:var(--muted);text-align:center;margin:2px 0 0}
.calc-recalc{align-items:center;justify-content:center;gap:0;width:100%;padding:10px;background:none;border:none;font-size:.82rem;color:var(--muted);cursor:pointer;margin-top:6px}
.calc-recalc:hover{color:var(--brand-dark)}

/* ---------- Gamifikace: oslava po výpočtu ---------- */
.calc-motivate{margin-top:10px;font-size:1.05rem;font-weight:700;color:var(--brand-dark);min-height:1.3em}
.calc-motivate.show{animation:motivate-in .5s cubic-bezier(.18,.9,.3,1.4) both}
@keyframes motivate-in{0%{opacity:0;transform:translateY(10px) scale(.8)}100%{opacity:1;transform:none}}

.calc-result__big.pop{animation:kcal-pop .6s cubic-bezier(.2,.8,.3,1.6) both}
@keyframes kcal-pop{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}
.calc-result__big.wiggle{animation:kcal-wiggle .6s ease both}
@keyframes kcal-wiggle{0%{transform:scale(.4);opacity:0}50%{opacity:1}60%{transform:rotate(-6deg) scale(1.1)}75%{transform:rotate(5deg) scale(1.08)}100%{transform:none;opacity:1}}
.calc-result__big.glow{animation:kcal-glow .9s ease both}
@keyframes kcal-glow{0%{transform:scale(.6);opacity:0;text-shadow:none}50%{opacity:1}100%{transform:none;opacity:1;text-shadow:0 0 18px rgba(31,122,140,.55)}}

/* konfety */
.calc-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:var(--radius)}
.calc-confetti[hidden]{display:none}
.confetti-piece{position:absolute;top:-12px;width:9px;height:14px;opacity:0;will-change:transform;
  animation:confetti-fall var(--dur,1.6s) var(--delay,0s) ease-in forwards}
@keyframes confetti-fall{
  0%{opacity:0;transform:translateY(-10px) rotate(0deg)}
  10%{opacity:1}
  100%{opacity:.9;transform:translateY(360px) translateX(var(--dx,0)) rotate(var(--rot,540deg))}}

/* stoupající emoji */
.float-emoji{position:absolute;bottom:8px;font-size:1.5rem;opacity:0;will-change:transform;
  animation:emoji-rise var(--dur,1.8s) var(--delay,0s) ease-out forwards}
@keyframes emoji-rise{0%{opacity:0;transform:translateY(0) scale(.6)}15%{opacity:1}100%{opacity:0;transform:translateY(-220px) translateX(var(--dx,0)) scale(1.2)}}

@media (prefers-reduced-motion: reduce){
  .calc-motivate.show,.calc-result__big.pop,.calc-result__big.wiggle,.calc-result__big.glow{animation:none}
  .calc-confetti{display:none}
}

/* Souhlas se zpřístupněním záznamů lékařům (jen lokality poskytovatelů) */
.cons-overlay{z-index:4000}
.cons-modal{max-width:480px;padding:22px 24px}
.cons-h{margin:0 0 10px;font-size:1.05rem;color:var(--brand-dark)}
.cons-lead{margin:0 0 10px;font-size:.9rem;line-height:1.5}
.cons-text{margin:0 0 14px;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.55);
border:1px solid var(--glass-brd);font-size:.84rem;line-height:1.55}
.cons-actions{display:flex;gap:10px;flex-wrap:wrap}
.cons-actions .t-btn,.cons-actions .g-btn{cursor:pointer}
.cons-note{margin:12px 0 0;font-size:.76rem;color:var(--muted,#667);line-height:1.45}
.acc-hist__lek{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;font-size:.68rem;font-weight:600;
background:rgba(31,122,140,.12);color:var(--brand-dark);border:1px solid rgba(31,122,140,.3);white-space:nowrap}
/* Vlastní GPX trasy v účtu */
.acc-input--file{padding:8px}
.acc-cr{padding:10px 0;border-top:1px solid var(--glass-brd)}
.acc-cr__hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.acc-cr__st{font-size:.7rem;font-weight:600;padding:2px 9px;border-radius:999px}
.acc-cr__st.pill-y{background:rgba(214,158,32,.14);color:#8a6414;border:1px solid rgba(214,158,32,.35)}
.acc-cr__st.cons-ok{background:rgba(46,139,87,.14);color:#1e6b43;border:1px solid rgba(46,139,87,.3)}
.acc-cr__st.cr-no{background:rgba(214,69,61,.12);color:#c0392b;border:1px solid rgba(214,69,61,.35)}
.acc-cr__meta{font-size:.78rem;color:var(--muted,#667);margin-top:2px}
.acc-cr__pozn{font-size:.78rem;margin-top:4px;padding:6px 10px;border-radius:10px;background:rgba(255,255,255,.5)}
.acc-cr__act{display:flex;gap:8px;margin-top:7px}
.acc-cr__form{margin-top:8px}
