/* ==========================================================================
   styl.css – spoločné štýly pre index.html a rezervacia.html
   (premenné, reset, typografia, hlavička, pätička, tlačidlá, FAB, modály…)
   Deklarácie @font-face zostávajú inline v <head> – sú kritické.
   ========================================================================== */
/* ==========================================================================
   BRAND – prevzaté z loga a výkladu predajne
   ========================================================================== */
/* ###########################################################################
   # NASTAVENIA – tu môžeš bezpečne meniť vzhľad bez znalosti kódu.        #
   # Zmeň číslo/farbu, ulož súbor, obnov stránku v prehliadači (Ctrl+R).   #
   ###########################################################################
   --lh-nadpis   riadkovanie nadpisov. Vyššie číslo = väčšia medzera medzi
                 riadkami (dôležité pri mäkčeňoch a dĺžňoch). 1.05 = tesné,
                 1.35 = vzdušné. Aktuálne 1.18.
   --lh-text     riadkovanie bežného textu.
   --sekcia      vertikálne medzery medzi sekciami stránky.
   --red         hlavná farba značky. Zmena tu prefarbí celý web.
*/
:root{
  --lh-nadpis: 1.18;
  --lh-text:   1.68;
  --sekcia:    clamp(54px,7.5vw,100px);

  --red:       #E1211F;
  --red-dk:    #B8171B;
  --red-soft:  #FDECEB;
  /* Červené tlačidlá nie sú plocha, ale gradient – ten istý, aký má pás
     „Nádrž na dne?". Svetlejšia červená hore, tmavšia dole, k tomu lesk po
     hornej hrane a tmavý pruh po spodnej. Bez nich je to len farebný obdĺžnik.
     Tieň je červený, nie hnedý: pod sýtou červenou pôsobí sivý tieň špinavo. */
  --cta:       linear-gradient(158deg, #EF3B33 0%, #E1211F 42%, #C4191C 100%);
  --cta-lesk:  inset 0 1px 0 rgba(255,255,255,.3), inset 0 -1px 0 rgba(0,0,0,.12);
  --cta-lesk-h:inset 0 1px 0 rgba(255,255,255,.34), inset 0 -1px 0 rgba(0,0,0,.14);
  --cta-tien:  0 10px 20px -12px rgba(140,26,26,.75), 0 2px 6px -3px rgba(140,26,26,.5);
  --cta-tien-hover: 0 20px 32px -16px rgba(140,26,26,.9), 0 4px 10px -4px rgba(140,26,26,.55);
  /* Text zjednotený s administráciou (majiteľ 24. 9. 2026): najtmavšia
     farba je #1c1b1a, nie takmer čierna. */
  --ink:       #1c1b1a;
  --ink-2:     #4a4644;
  --ink-soft:  #7d7674;
  --line:      #E6E1E0;
  --bg:        #FFFFFF;
  --bg-soft:   #F7F5F4;
  /* Zaoblenie kariet a plôch je všade 16 px — web aj administrácia
     (majiteľ 24. 9. 2026). Tlačidlá, polia a pilulky majú vlastné. */
  --r:         16px;
  --r-lg:      16px;
  /* Veľké plochy, ktoré sa otvárajú cez obsah – prihlásenie, košík, detail
     produktu, vysúvacie menu. Čistá biela na nich udrie do očí, lebo prídu
     naraz a cez celú obrazovku. Prechod je zámerne veľmi jemný: hore biela,
     dole teplý odtieň steny z úvodnej scény. */
  --panel:     linear-gradient(168deg, #FFFFFF 0%, #FCF9F5 46%, #F5EEE5 100%);
  /* Sklo pre prvky, ktoré plávajú nad obsahom – bubliny v hlavičke, pilulky
     v scéne, panely, ktoré sa pri scrollovaní držia na mieste. Nasýtenie
     v rozostrení je dôležité: bez neho sklo farby pod sebou vybledne a pôsobí
     ako špinavá fólia namiesto skla. */
  --sklo:      rgba(255,255,255,.66);
  /* Rám karty s teplým prechodom (`--panel`) — ten istý ako v administrácii. */
  --karta-ram: rgba(255,255,255,.9);
  --sklo-ram:  rgba(255,255,255,.85);
  --sklo-blur: blur(16px) saturate(150%);
  /* Spodná lišta je sklovitejšia než ostatné povrchy: leží na obsahu,
     ktorý sa pod ňou hýbe, a má byť cítiť, že je to vrstva, nie doska. */
  --sklo-lista:      rgba(255,255,255,.52);
  --sklo-lista-blur: blur(24px) saturate(180%);
  /* Plocha líšt na telefóne (horná a spodná) – hustejšie sklo, viď
     rezervacia.css. Tú istú hodnotu má spodná lišta administrácie;
     nastroje/dizajn.mjs stráži, že sa nerozídu. */
  --lista-plocha:    rgba(255,255,255,.82);
  --sklo-tien: 0 16px 30px -16px rgba(78,58,44,.5), 0 2px 5px -3px rgba(78,58,44,.35);
  /* Tiene sú tónované do teplej, nie sivé – sivý tieň nad stenou z videa
     pôsobí špinavo. Dva stupne: `jemny` pre karty, ktoré na ploche ležia,
     `zdvih` pre tie, ktoré sa pri prejdení myšou nadvihnú. Vždy dve vrstvy:
     tesná pod prvkom ho prilepí k ploche, mäkká široká mu dá výšku. */
  --tien-jemny: 0 1px 2px rgba(78,58,44,.07), 0 10px 22px -14px rgba(78,58,44,.45);
  --tien-zdvih: 0 2px 5px rgba(78,58,44,.1), 0 20px 36px -16px rgba(78,58,44,.55);
  --shadow:    var(--tien-jemny);
  --shadow-lg: 0 28px 64px -22px rgba(78,58,44,.42);
  --max:       1180px;
  --head:      'Oswald', 'Arial Narrow', system-ui, sans-serif;
  /* `--text` sa na troch miestach používalo, ale nikde nebolo definované.
     Neplatná hodnota vo `var()` znamená, že sa deklarácia zahodí a písmo sa
     zdedí – zhodou okolností práve Inter z `body`, takže to fungovalo. Stačilo
     by však raz použiť `var(--text)` niekde, kde je zdedené písmo nadpisové,
     a nikto by netušil, prečo to nefunguje. */
  --text:      'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  /* Stena z úvodného videa. Doteraz bola natvrdo v `body` a v admin.css znova –
     dve kópie tej istej päťzastávkovej hodnoty sa raz musia rozísť. */
  /* Upozornenie, ktoré nie je chyba – výzva v účte, mimoriadny oznam
     v chate. Teplá žltá, nie červená: červená na tomto webe znamená
     značku a akciu, nie varovanie. Farba bola napísaná natvrdo v `.uc-vyzva`
     a potrebovala ju aj `chat.css`; druhá kópia tej istej hodnoty sa raz
     musí rozísť, tak je tu raz. */
  /* Zelená dostupnosti a jantárová upozornenia. Obe farby na webe už boli,
     ale napísané natvrdo na ôsmich miestach (`.av-tu`, `.cmp-naj`, pás pod
     košíkom…). Návrh mobilu ich potrebuje tiež, tak dostali meno. */
  --ok:        #1A8F3C;
  --ok-plocha: #E9F5EC;
  /* Tmavší odtieň linky. `--line` je na `body` prebitá na #D9D0C5; toto je
     to isté o stupeň tmavšie, na rámy prvkov, ktoré majú byť vidieť. */
  --line-2:    #C6B9AA;
  /* Svetlejšia červená na krížiky vo vnútri červených pilulák – na
     `--red-soft` by zanikli. */
  --red-soft-2:#FBDEDD;
  /* Biela na červenej ploche. `--bg` sa na to použiť NESMIE: v `:root` je
     biela, ale `body` si ju prepisuje na #EBE4DB, takže text v červenom
     odznaku vyšiel béžový. Táto premenná sa neprepisuje nikde. */
  --na-cervenom:  #FFFFFF;
  /* Plocha prvku vnútri bieleho okna. `--bg` sa na to použiť nedá: v `:root`
     je biela, ale `body` si ju prepisuje na béžovú #EBE4DB, takže pilulky
     v okne vyzerali, akoby cez ne presvitala stránka. */
  --v-okne:       #FFFFFF;
  --pozor-plocha: #FFF8E6;
  /* Text upozornenia. Na webe bol napevno ako #8a5a12 (pás pod košíkom,
     štítok pri doobjednaní); mobilná lišta ho potrebuje tiež. */
  --pozor-text:   #8A5A12;
  --pozor-ram:    #F0D68C;
  /* Koncová farba pásika --bar-poz; prstenec ochrany pred parazitmi, ktorý končí (návrh Ochrana kompakt, 16. 10. 2026) */
  --kr-poz:       #E0A93B;
  --stena:     linear-gradient(90deg, #E1D7CC 0%, #EFE4DA 25%, #F1E7DC 50%, #F1E7DC 75%, #E2D8CD 100%);
  /* Stena ako jedna plná farba — priemer prechodu vyššie. Pre miesta, kde
     prehliadač vezme len plnú farbu (pás pod panelom Safari, theme-color). */
  --stena-plna: #EDE2D8;
  /* Zlatý odznak (hlava plemena pri výbere). Teplé zlato k sklu a stene —
     majiteľ 24. 9. 2026: ružový krúžok nie, „skôr do zlatej". */
  --zlato:      linear-gradient(150deg, #FFF6DD 0%, #F2DDA6 38%, #D8AE5E 78%, #B98A3E 100%);
  --zlato-ink:  #6B4712;
  /* Minca – odznak úrovne Hafo karty (dizajnový systém 20. 10. 2026, minca.js). V Pokladni --tv-mn-*. */
  --mn-bronz-a:#FCE6D0; --mn-bronz-b:#E3AC7A; --mn-bronz-c:#B8723D; --mn-bronz-d:#8C5126;
  --mn-striebro-a:#FFFFFF; --mn-striebro-b:#E3E7EC; --mn-striebro-c:#BCC3CB; --mn-striebro-d:#8F979F;
  --mn-zlato-a:#FFF6DD; --mn-zlato-b:#F2DDA6; --mn-zlato-c:#D8AE5E; --mn-zlato-d:#B98A3E;
  --mn-platina-a:#FBFDFF; --mn-platina-b:#DDE6EE; --mn-platina-c:#A9B9C7; --mn-platina-d:#71869A;
  --mn-diamant-a:#FFFFFF; --mn-diamant-b:#D9F3FF; --mn-diamant-c:#9CD8F5; --mn-diamant-d:#8EC5EE; --mn-diamant-e:#E9DDFF;
  --mn-tien:#3c0000;
  --zlato-lesk: inset 0 1px 0 rgba(255,255,255,.85), inset 0 -2px 3px rgba(122,82,24,.28);
  --zlato-tien: 0 3px 8px -3px rgba(122,82,24,.55), 0 0 0 1px rgba(185,138,62,.35);
}

*,*::before,*::after{box-sizing:border-box}
/* Odsadenie pri skoku na kotvu musí počítať aj s pásom oznamu, inak by
   sa nadpis sekcie schoval pod prilepenú hlavičku. */
/* Plná farba na `html`, nie len gradient na `body`.

   Safari na iOS zafarbuje pás pod stavovým riadkom (a pri odskočení stránky
   aj plochu nad ňou) podľa plochy dokumentu. Gradient mu na to nestačí –
   nevie z neho určiť jednu farbu a vezme bielu. Na telefóne tak nad hlavičkou
   svietil biely pás, hoci `theme-color` bola teplá. Táto jedna deklarácia to
   rieši; gradient z `body` ju prekryje všade, kde je obsah. */
/* Od 19. 9. 2026 je tu farba LIŠTY, nie plochy stránky. Pruh pri hodinách
   a pruh pod panelom Safari sa tým zladili s hlavičkou a spodnou lištou —
   dovtedy mali farbu pozadia stránky a hlavička nad nimi pôsobila ako
   odseknutý biely pás. Je to presne tá farba, do akej sa sklo lišty
   vykreslí nad béžovou plochou. Viditeľnú plochu stránky to nemení —
   tú kreslí `body` a ten je cez celú výšku. */
html{background-color:#F7F2ED;
  scroll-behavior:smooth;scroll-padding-top:calc(86px + var(--oznam-h,0px));-webkit-text-size-adjust:100%}
body{
  margin:0;font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  color:var(--ink-2);background:var(--bg);line-height:var(--lh-text);font-size:16.5px;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit}

h1,h2,h3,.h{
  font-family:var(--head);font-weight:600;text-transform:uppercase;
  letter-spacing:.015em;line-height:var(--lh-nadpis);color:var(--ink);margin:0 0 .45em;
}
h1{font-size:clamp(2.3rem,5.9vw,4.4rem);font-weight:700;letter-spacing:.005em;line-height:var(--lh-nadpis)}
h2{font-size:clamp(1.85rem,4.1vw,2.9rem);line-height:var(--lh-nadpis)}
h3{font-size:1.12rem;letter-spacing:.03em;line-height:1.28}
p{margin:0 0 1em}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:20px}
section{padding:var(--sekcia) 0}
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;font-family:var(--head);font-size:.85rem;
  font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--red);margin-bottom:12px;
}
.eyebrow::before{content:"";width:30px;height:3px;background:var(--red)}
.lead{font-size:1.06rem;color:var(--ink-soft);max-width:62ch}
.sort-intro{margin-bottom:44px}
.sort-intro h2{max-width:700px}
.sort-intro .lead{max-width:none;text-wrap:balance}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:15px 28px;border-radius:6px;font-family:var(--head);font-weight:600;
  font-size:1rem;letter-spacing:.09em;text-transform:uppercase;
  text-decoration:none;border:2px solid transparent;cursor:pointer;
  transition:transform .16s ease,background .16s ease,color .16s ease,border-color .16s ease,
             box-shadow .18s ease,filter .16s ease;
  white-space:nowrap;line-height:1.2;
}
.btn:hover{transform:translateY(-2px)}
.btn-red{background:var(--cta);color:#fff;
  box-shadow:var(--cta-lesk), var(--cta-tien)}
.btn-red:hover{background:var(--cta);filter:brightness(1.06);
  box-shadow:var(--cta-lesk-h), var(--cta-tien-hover)}
/* Druhé tlačidlo vedľa červeného – sklo ako pilulky v hlavičke. Na jednom mieste
   pre celý web (rezervácia, stránka rezervácie, odhlásenie z noviniek). */
.btn-sklo{background:rgba(255,255,255,.72);border:1px solid rgba(78,58,44,.22);color:var(--ink);box-shadow:var(--tien-jemny);
  -webkit-backdrop-filter:var(--sklo-blur);backdrop-filter:var(--sklo-blur)}
.btn-sklo:hover{background:rgba(255,255,255,.9);color:var(--ink)}
.btn-white{background:#fff;color:var(--red)}
.btn-white:hover{background:#F3F0EF}
/* Hlavné tlačidlo v hero. Pulzuje prstenec okolo neho a samotné tlačidlo raz
   za cyklus jemne poskočí – oko na pohyb reaguje skôr než na farbu. Prstenec je
   samostatná vrstva pod tlačidlom, aby nezasahoval do rozloženia, a poskočenie
   je len o 4 px: väčší pohyb by sťažil trafenie sa doň.
   Pri nabehnutí myšou a pri `prefers-reduced-motion` sa animácia zastaví. */
.btn-pulz{position:relative;isolation:isolate;animation:poskok 2.6s ease-in-out .6s infinite}
.btn-pulz::after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;
  box-shadow:0 0 0 0 rgba(255,255,255,.85);animation:pulz 2.6s ease-out .6s infinite}
@keyframes pulz{
  0%{box-shadow:0 0 0 0 rgba(255,255,255,.85)}
  55%{box-shadow:0 0 0 18px rgba(255,255,255,0)}
  100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}
}
@keyframes poskok{
  0%,72%,100%{transform:translateY(0)}
  80%{transform:translateY(-5px)}
  88%{transform:translateY(0)}
  93%{transform:translateY(-2px)}
  97%{transform:translateY(0)}
}
.btn-pulz:hover,.btn-pulz:focus-visible{animation:none}
.btn-pulz:hover::after,.btn-pulz:focus-visible::after{animation:none}
@media (prefers-reduced-motion:reduce){
  .btn-pulz,.btn-pulz::after{animation:none}
}
.btn-ghost{border-color:rgba(255,255,255,.45);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.14)}
.btn-outline{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-outline:hover{background:var(--ink);color:#fff}

/* ---------- Header ---------- */
/* Plochu, rozostrenie ani linku sem nepíš – `body header` o osemsto riadkov
   nižšie ich všetky ruší (hlavička nemá vlastnú plochu, prvky v nej plávajú).
   Kým tu boli, prehliadač si pre ne aj tak vytváral kompozitnú vrstvu. */
/* Odsadenie zhora je výška stavového riadka telefónu — stránka pod neho
   siaha kvôli `viewport-fit=cover`, aby pruh pri hodinách mal farbu
   hlavičky a nie pozadia stránky. Na počítači je to nula. */
header{position:sticky;top:0;z-index:60;transition:.25s;
  padding-top:env(safe-area-inset-top, 0px)}
header.scrolled{border-color:var(--line);box-shadow:0 6px 22px -16px rgba(20,16,15,.55)}
.nav{display:flex;align-items:center;gap:18px;height:76px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0}
.logo img{width:48px;height:auto;flex-shrink:0}
.logo-txt i{
  display:block;font-style:normal;font-family:var(--head);font-size:.82rem;font-weight:600;
  color:var(--red);letter-spacing:.135em;text-transform:uppercase;line-height:1;margin-bottom:3px;
}
.logo-txt b{
  display:block;font-family:var(--head);font-weight:700;font-size:1.72rem;line-height:.86;
  text-transform:uppercase;letter-spacing:.13em;color:var(--red);
}
.nav-links{display:flex;gap:2px;margin-left:auto;align-items:center}
/* Položky menu sa nesmú lámať – „PREČO MY" a „REZERVOVAŤ KRMIVO" sa medzi
   940 a 1200 px zlomili na dva riadky a lišta pôsobila rozhádzane. Pod 940 px
   je menu aj tak vysúvacie, takže tu nowrap nič nepreteká; medzeru a odsadenie
   v tesnom páse len o kúsok zmenšíme. */
.nav-links a{
  text-decoration:none;font-family:var(--head);font-size:.94rem;font-weight:500;letter-spacing:.09em;
  text-transform:uppercase;color:var(--ink-2);padding:10px 13px;border-radius:6px;transition:.16s;
  white-space:nowrap;
}
/* Vodorovná lišta je na hrane šírky (šesť položiek, tlačidlo s číslom a ikonka
   účtu), preto sú položky kompaktnejšie vždy, nielen v úzkom páse. Vo vysúvacom
   menu na telefóne sa veľkosť aj tak prepisuje nižšie. */
@media(min-width:1201px){
  .nav-links a{padding:10px 7px;font-size:.86rem;letter-spacing:.05em}
  .nav-cta{margin-left:5px}
  /* Na vodorovnú lištu sa všetko nezmestí. „Kontakt" ide preč ako prvý:
     telefónne číslo je hneď vedľa v bubline, adresa je v pätičke a odkaz
     na kontaktnú sekciu ostáva vo vysúvacom menu na menších obrazovkách. */
  .nav-kontakt{display:none}
}
.nav-links a:hover{color:var(--red);background:var(--red-soft)}
.nav-links a.nav-hot{color:var(--red);background:var(--red-soft)}
.nav-links a.nav-hot:hover{background:#fadcdc}
/* Účet v menu je bublina vedľa telefónneho čísla – ohraničená, nie vyplnená,
   aby zostala tichšia než hlavné číslo. Prihlásenie je to, čo hľadá vracajúci
   sa zákazník; registráciu ponúkne až okienko, ako je to bežné inde. */
/* Selektor musí byť aspoň taký silný ako `.nav-links a` vyššie, inak by
   z neho ostalo hranaté 6px zaoblenie namiesto bubliny. */
.nav-links a.nav-ucet,.nav-links a.nav-cta{color:var(--red)!important;display:inline-flex;align-items:center;gap:6px;
  border:1.5px solid var(--red);border-radius:999px;padding:8px 12px!important;
  font-size:.8rem;letter-spacing:.05em;margin-left:6px;background:none}
.nav-links a.nav-ucet:hover,.nav-links a.nav-cta:hover{background:var(--red-soft)}
.nav-ucet svg,.nav-cta svg{width:18px;height:18px;flex-shrink:0}
.nav-ucet [data-ucet-text]{display:inline}
/* Odznak s počtom nových kariet Hafa na pilulke účtu – tie isté hodnoty ako
   odznak košíka `.nav-kosik .kbdg` (ucet.js: hafoOdznak). */
.nav-ucet{position:relative}
.nav-ucet .ubdg{
  position:absolute;top:-6px;left:24px;min-width:18px;height:18px;padding:0 5px;
  box-sizing:border-box;border-radius:999px;background:var(--red);color:var(--na-cervenom);
  font-size:10.5px;font-weight:700;line-height:18px;text-align:center;
  box-shadow:0 0 0 2px #EFE9E1}
.nav-ucet .ubdg[hidden]{display:none}
@media(max-width:1200px){
  /* Vo vysúvacom menu sú to samostatné riadky ako ostatné položky. */
  .nav-links a.nav-ucet,.nav-links a.nav-cta{border:0;border-radius:0;margin-left:0;
    padding:15px 8px!important;font-size:1.1rem;width:auto}
  .nav-ucet svg,.nav-cta svg{width:22px;height:22px}
  .nav-ucet .ubdg{top:8px;left:24px}
}
.burger{display:none;margin-left:auto;background:none;border:0;padding:10px;cursor:pointer}
.burger span{display:block;width:25px;height:2.5px;background:var(--ink);transition:.25s}
.burger span+span{margin-top:6px}
.burger.open span:nth-child(1){transform:translateY(8.5px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-8.5px) rotate(-45deg)}

@media(max-width:1200px){
  .burger{display:block}
  .nav-links{
    position:fixed;inset:76px 0 auto 0;background:var(--panel);flex-direction:column;align-items:stretch;
    gap:0;padding:12px 20px 26px;border-bottom:3px solid var(--red);box-shadow:var(--shadow);
    transform:translateY(-160%);transition:transform .3s cubic-bezier(.4,0,.2,1);margin-left:0;
  }
  .nav-links.open{transform:translateY(0)}
  .nav-links a{padding:15px 8px;font-size:1.1rem;border-bottom:1px solid var(--line)}
  /* Roztiahnutie na celú šírku patrí len tlačidlám vo vysúvacom menu.
     Nezaobalené `.btn` predtým naťahovalo aj tlačidlá vnútri stránky
     na všetkých obrazovkách do 1200 px – napríklad „Dať vedieť" v detaile. */
  .nav-links .btn{width:100%}
}

/* ---------- Low-poly art ---------- */
.poly{stroke-linejoin:round;stroke-linecap:round;fill:none}

/* ---------- Hero ----------
   Kreslené zvieratá po stranách sú preč aj s parallaxom v hlavna.js –
   hero je od prestavby video. Zvyšok pravidiel tu ostáva, `hero.css`
   z neho časť prepisuje. */
.hero{position:relative;background:var(--red);color:#fff;overflow:hidden;padding:clamp(40px,5.2vw,66px) 0 clamp(44px,6vw,78px)}
.hero::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(1000px 620px at 88% 10%, rgba(255,255,255,.12), transparent 62%);
}

.hero .wrap{position:relative;z-index:2;max-width:980px}
.hero h1{color:#fff}
.hero h1 span{display:block}
.hero h1 u{text-decoration:none;-webkit-text-stroke:2px #fff;color:transparent;paint-order:stroke}
.hero p{color:rgba(255,255,255,.9);font-size:1.14rem;max-width:54ch}
.hero-badges{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:24px}
.pill{
  display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:5px;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);
  font-family:var(--head);font-size:.82rem;font-weight:500;letter-spacing:.09em;
  text-transform:uppercase;color:#fff;
}
.pill.live{background:#fff;color:var(--red);border-color:#fff}
.dot{width:8px;height:8px;border-radius:50%;background:currentColor;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.hero-claim{font-size:clamp(1.04rem,1.7vw,1.2rem);line-height:1.6;max-width:48ch;
  color:rgba(255,255,255,.94);margin:0}
@media(max-width:900px){
  .hero-actions .btn{width:100%}
}

/* ---------- Fakty v hero ---------- */
.trust{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px clamp(14px,2.4vw,34px);
  margin-top:30px;padding-top:22px;border-top:1px solid rgba(255,255,255,.28)}
.trust div{font-size:.85rem;color:rgba(255,255,255,.72);line-height:1.45}
.trust b{display:block;font-family:var(--head);font-weight:600;text-transform:uppercase;
  letter-spacing:.1em;font-size:.95rem;color:#fff;margin-bottom:1px}
@media(max-width:900px){.trust{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}}

/* ---------- Grid / cards ---------- */
.grid{display:grid;gap:16px}
.g4{grid-template-columns:repeat(4,1fr)}
.g2{grid-template-columns:repeat(2,1fr)}
@media(max-width:980px){.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.g4,.g2{grid-template-columns:1fr}}

/* Karta = teplý prechod s bielym rámom, rovnaká ako v administrácii
   (majiteľ 24. 9. 2026 — lepšia než biela s linkou). */
.card{
  background:var(--panel);border:1px solid var(--karta-ram);border-radius:var(--r);padding:26px 24px;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;position:relative;overflow:hidden;
  box-shadow:var(--tien-jemny);
}
.card::after{content:"";position:absolute;left:0;top:0;width:0;height:3px;background:var(--red);transition:width .3s ease}
.card:hover{transform:translateY(-4px);box-shadow:var(--tien-zdvih);border-color:var(--karta-ram)}
.card:hover::after{width:100%}
.card .ico{width:100%;height:132px;margin-bottom:14px;color:var(--red);display:block}
.card .ico use{fill:currentColor}
.card p{color:var(--ink-soft);font-size:.93rem;margin:0}
.card h3{margin-bottom:6px}

.soft{background:var(--bg-soft)}

/* ---------- Foto predajne ---------- */
.shopshot{padding:clamp(40px,5vw,64px) 0}
.shopshot figure{margin:0;position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}
.shopshot img{width:100%;height:auto;display:block}
.shopshot figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:44px 24px 18px;color:#fff;font-size:.95rem;
  background:linear-gradient(transparent,rgba(20,16,15,.82));
}
.shopshot figcaption b{font-family:var(--head);text-transform:uppercase;letter-spacing:.08em}
@media(max-width:600px){.shopshot figcaption{font-size:.85rem;padding:36px 16px 14px}}

/* ---------- Recenzie ---------- */
.rev-top{display:flex;flex-wrap:wrap;gap:26px;align-items:center;justify-content:space-between;margin-bottom:32px}
.rev-score{display:flex;align-items:center;gap:18px}
.rev-num{font-family:var(--head);font-size:3.4rem;font-weight:700;line-height:1;color:var(--ink)}
.stars{display:flex;gap:3px;color:#FBBC04}
.rev-score small{display:block;color:var(--ink-soft);font-size:.9rem;margin-top:4px}
/* Plocha, rám, polomer aj odsadenie prepisuje `.rev-card` v karuseli o kus
   nižšie – tu ostáva len tieň, ktorý tam definovaný nie je. Zvyšok som zmazal,
   lebo dve deklarácie toho istého selektora nad sebou zvádzajú upraviť tú
   nesprávnu. */
.rev-card{box-shadow:var(--tien-jemny)}
.rev-card .stars{margin-bottom:10px}
.rev-card p{font-size:.95rem;color:var(--ink-2);margin:0 0 14px}
#google-reviews-widget{margin-bottom:28px}
.rev-card cite{font-style:normal;font-family:var(--head);text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;color:var(--ink-soft)}

/* ---------- vlastné karty Google recenzií ----------
   Nahrádzajú cudzí skript Trustindexu. Dáta idú cez náš `/api/rating`, takže
   prehliadač zákazníka sa nepripája na Google ani na CDN tretej strany –
   rovnaký dôvod, pre ktorý sú na webe aj fonty lokálne. Preto tu nie sú ani
   fotky autorov (sú na googleusercontent.com); namiesto nich koliesko
   s iniciálou.

   ROZLOŽENIE: jeden vodorovný pás, nie mriežka ani stĺpce. Oba predošlé
   pokusy skončili na tom istom – päť kariet sa do troch stĺpcov rozdelí
   2+2+1 a posledný stĺpec je kratší o celú kartu. V jednom riadku takáto
   diera vzniknúť nemôže: karty sú rovnako široké, rovnako vysoké a čo sa
   nezmestí, to sa odsunie do strany. */
.rev-mriezka{position:relative;margin:0 0 26px}
.rev-mriezka[hidden]{display:none}

/* Posúvanie rieši natívny scroll so `scroll-snap` – na dotyku sa tak dá
   listovať prstom bez jediného riadka JavaScriptu. Lišta posúvača je skrytá,
   navigáciu preberajú šípky a bodky pod pásom. */
/* Bez `scroll-snap` a bez `scroll-behavior:smooth` – oboje by sa bilo
   s plynulým posunom, ktorý po pixeloch dopočítava `spolocne.js`.
   Posúvanie prstom zostáva natívne, takže na dotyku funguje aj bez JS. */
.rev-pas{display:flex;gap:18px;overflow-x:auto;overscroll-behavior-x:contain;
  padding:6px 2px 16px;scrollbar-width:none;-ms-overflow-style:none}
.rev-pas::-webkit-scrollbar{display:none}
.rev-pas:focus-visible{outline:2px solid var(--red);outline-offset:4px;border-radius:var(--r-lg)}

/* Pevná šírka karty: pri obsahu 1180 px sa zmestia tri a zo štvrtej vykúka
   okraj – to je jediný spoľahlivý signál, že sa dá posúvať ďalej. */
.rev-card{flex:0 0 320px;
  position:relative;overflow:hidden;display:flex;flex-direction:column;
  background:var(--panel);border:1px solid var(--karta-ram);border-radius:var(--r-lg);
  padding:24px 22px 18px;opacity:0;
  transition:transform .35s cubic-bezier(.2,.8,.3,1),box-shadow .35s,border-color .35s}
/* Farebný pruh navrchu vyrastie zľava doprava. */
.rev-card::before{content:"";position:absolute;left:0;top:0;height:3px;width:100%;
  background:linear-gradient(90deg,var(--red),#ff7a5f);
  transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.2,.8,.3,1)}
/* Úvodzovka je čistá ozdoba – preto pseudo-prvok, nie text v HTML. */
.rev-card::after{content:"\201C";position:absolute;right:12px;top:-16px;
  font-family:var(--head);font-weight:700;font-size:5.5rem;line-height:1;
  color:var(--red);opacity:.08;pointer-events:none}
.rev-card.je,.rev-card:hover{transform:translateY(-5px);
  border-color:rgba(225,33,31,.4);box-shadow:0 20px 44px -22px rgba(225,33,31,.55)}
.rev-card.je::before,.rev-card:hover::before{transform:scaleX(1)}

.rev-hlava{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.rev-kruh{flex:none;width:42px;height:42px;border-radius:50%;background:var(--red);
  color:#fff;display:flex;align-items:center;justify-content:center;
  font-family:var(--head);font-size:1.2rem;font-weight:600;position:relative}
.rev-card.je .rev-kruh::after{content:"";position:absolute;inset:0;border-radius:50%;
  box-shadow:0 0 0 0 rgba(225,33,31,.55);animation:rev-prstenec 1.8s ease-out infinite}
@keyframes rev-prstenec{
  0%{box-shadow:0 0 0 0 rgba(225,33,31,.55)}
  70%{box-shadow:0 0 0 12px rgba(225,33,31,0)}
  100%{box-shadow:0 0 0 0 rgba(225,33,31,0)}
}
.rev-kto{display:flex;flex-direction:column;min-width:0}
.rev-kto b{font-size:.95rem;color:var(--ink);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rev-kto small{font-size:.78rem;color:var(--ink-soft)}
.rev-card .stars.male{margin-bottom:10px}
.rev-card .stars.male svg{width:16px;height:16px}
.rev-card .stars.male .prazdna{color:var(--line)}
.rev-card.je .stars.male svg{animation:rev-hviezda .55s ease both}
.rev-card.je .stars.male svg:nth-child(2){animation-delay:.07s}
.rev-card.je .stars.male svg:nth-child(3){animation-delay:.14s}
.rev-card.je .stars.male svg:nth-child(4){animation-delay:.21s}
.rev-card.je .stars.male svg:nth-child(5){animation-delay:.28s}
@keyframes rev-hviezda{
  0%,100%{transform:scale(1)}
  45%{transform:scale(1.4) rotate(-8deg)}
}

/* Pevné orezanie na šesť riadkov drží karty v rade rovnako vysoké. Krátku
   recenziu vysadíme o kúsok väčšmi, nech dve vety nepôsobia ako nedopatrenie. */
.rev-text{margin:0;color:var(--ink-2);font-size:.93rem;line-height:1.62;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:hidden}
.rev-card[data-dlzka="kratka"] .rev-text{font-size:1.08rem;line-height:1.52;color:var(--ink)}
.rev-text.rozbaleny{-webkit-line-clamp:unset;overflow:visible}
.rev-viac{align-self:flex-start;margin-top:8px;background:none;border:0;padding:0;
  font:inherit;font-size:.84rem;color:var(--red);cursor:pointer;text-decoration:underline}
/* `margin-top:auto` drží odkaz pri spodku – karty sú rovnako vysoké, ale text
   rôzne dlhý a odkazy by inak skákali v rôznych výškach. */
.rev-zdroj{margin-top:auto;padding-top:14px;font-size:.79rem;color:var(--ink-soft);
  text-decoration:none}
.rev-zdroj:hover{color:var(--red);text-decoration:underline}

/* ---- náznak, že sa pás posúva ----
   Šípky sú preč, pás beží sám. Aby bolo vidieť, že vľavo a vpravo obsah
   pokračuje, prekrýva ho po stranách jemný prechod do farby sekcie.
   `pointer-events:none` je nutnosť – inak by clona chytala myš namiesto
   kariet pod ňou. */
.rev-mriezka::before,.rev-mriezka::after{content:"";position:absolute;top:0;bottom:0;
  width:70px;z-index:2;pointer-events:none;transition:opacity .3s}
.rev-mriezka::before{left:0;background:linear-gradient(90deg,var(--bg-soft),rgba(247,245,244,0))}
.rev-mriezka::after{right:0;background:linear-gradient(270deg,var(--bg-soft),rgba(247,245,244,0))}
/* Strana, na ktorej myš zrýchľuje, sa jemne rozsvieti – človek tak vidí,
   že to nie je náhoda, ale ovládanie. */
.rev-mriezka[data-strana="vlavo"]::before,
.rev-mriezka[data-strana="vpravo"]::after{opacity:.45}

/* Odkaz pod pásom nahrádza šípky: hovorí, že sa dá listovať aj prstom. */
.rev-tip{margin:0;text-align:center;font-size:.8rem;color:var(--ink-soft)}

/* Nábeh pri zarolovaní. `backwards` (nie `both`) je zámer: po dobehnutí sa
   karta vráti k bežným pravidlám, takže zdvih pri `.je` a `:hover` funguje –
   pri `both` by ju animácia držala na `transform:none`. */
.rev-mriezka.videne .rev-card{opacity:1;
  animation:rev-prichod .65s cubic-bezier(.2,.8,.3,1) backwards;
  animation-delay:var(--o,0s)}
@keyframes rev-prichod{
  from{opacity:0;transform:translateY(24px) scale(.96)}
  to{opacity:1;transform:none}
}

@media (max-width:760px){
  /* Karta na skoro celú šírku a kúsok tej ďalšej – aby bolo hneď vidieť,
     že sa dá listovať prstom. */
  .rev-card{flex:0 0 86%;padding:20px 18px 16px}
  .rev-pas{gap:14px}
}
@media (prefers-reduced-motion:reduce){
  .rev-pas{scroll-behavior:auto}
  .rev-mriezka.videne .rev-card{animation:none;opacity:1}
  .rev-card,.rev-card::before{transition:none}
  .rev-card.je .rev-kruh::after,.rev-card.je .stars.male svg{animation:none}
  .rev-card.je,.rev-card:hover{transform:none}
}

/* ---------- Why ---------- */
.why{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
@media(max-width:900px){.why{grid-template-columns:1fr;gap:30px}}
.check{list-style:none;padding:0;margin:0;display:grid;gap:16px}
.check li{display:flex;gap:14px;align-items:flex-start}
.check .n{
  flex-shrink:0;width:30px;height:30px;border-radius:5px;background:var(--red);color:#fff;
  display:grid;place-items:center;font-family:var(--head);font-weight:600;font-size:.95rem;
}
.check b{display:block;color:var(--ink);font-size:1rem}
.check span{color:var(--ink-soft);font-size:.93rem}

/* ---------- Hours ---------- */
.hours{background:var(--panel);border:1px solid var(--karta-ram);border-radius:var(--r);overflow:hidden;
  box-shadow:var(--tien-jemny)}
.hours-hd{padding:18px 22px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.hours-hd h3{margin:0;color:#fff}
.hours ul{list-style:none;margin:0;padding:8px 10px}
.hours li{display:flex;justify-content:space-between;gap:16px;padding:11px 14px;border-radius:6px;font-size:.96rem}
.hours li.today{background:var(--red-soft);font-weight:600;color:var(--ink)}
.hours li span:last-child{font-variant-numeric:tabular-nums;color:var(--ink-soft)}
.hours li.today span:last-child{color:var(--red);font-weight:700}
.hours li.off span:last-child{color:var(--ink-soft)}

.map{border:0;width:100%;height:100%;min-height:360px}

/* ---------- Cookie lišta ---------- */
.cookiebar{position:fixed;left:14px;right:14px;bottom:14px;z-index:9999;
  background:var(--sklo);-webkit-backdrop-filter:var(--sklo-blur);backdrop-filter:var(--sklo-blur);
  border:1.5px solid var(--line);border-radius:var(--r);box-shadow:0 18px 50px rgba(0,0,0,.18);
  padding:20px 22px;max-width:560px;display:none}
/* `backwards` tu bolo pascou: kým animácia nezačne – v karte prehliadača na
   pozadí, pri zastavených animáciách – drží prvok na `from{opacity:0}`
   a lišta zostane neviditeľná, hoci `display` je `block`. Presne to sa dialo
   po kliknutí na „Nastavenia cookies": trieda pribudla, lišta nie.
   Viditeľnosť preto na animácii nestojí, tá už len dobehne odspodu. */
.cookiebar.show{display:block;opacity:1;animation:riseIn .45s cubic-bezier(.22,1,.36,1)}
.cookiebar:focus{outline:0}
.cookiebar h4{font-family:var(--head);text-transform:uppercase;letter-spacing:.08em;
  font-size:1.05rem;color:var(--red);margin:0 0 8px}
.cookiebar p{font-size:.9rem;color:var(--ink-soft);margin:0 0 16px;line-height:1.55}
.cookiebar p a{color:var(--red)}
.cookiebar .cb-actions{display:flex;flex-wrap:wrap;gap:10px}
.cookiebar .btn{padding:11px 18px;font-size:.86rem}
@media(max-width:620px){.cookiebar{left:10px;right:10px;bottom:10px;padding:18px}
  .cookiebar .cb-actions .btn{flex:1 1 auto}}
.cookie-reset{background:none;border:0;padding:0;font:inherit;color:inherit;
  text-decoration:underline;cursor:pointer}
/* Návod pre iPhone pod tlačidlom „Pridať appku na plochu". Safari inštalačnú
   výzvu nepozná, takže je to jediná cesta, ako to zákazníkovi povedať. */
.pwa-navod{margin:6px 0 0;font-size:.8rem;opacity:.8;max-width:34ch}
.pwa-navod b{color:#fff}

/* Mapa sa výškou riadi susedným stĺpcom s hodinami. Odkedy nad ním nie je
   zoznam kontaktov, je stĺpec nižší a mapa sa môže stiahnuť s ním – 360 px
   ju predtým držalo zbytočne veľkú. */
.map-wrap{border-radius:var(--r);overflow:hidden;border:1.5px solid var(--line);height:100%;
  min-height:270px;box-shadow:var(--tien-jemny)}

.map-consent{
  height:100%;min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:12px;text-align:center;padding:34px 26px;background:var(--bg);color:var(--ink-soft);
}
.map-consent svg{color:var(--red)}
.map-consent h3{margin:0}
.map-consent p{margin:0;font-size:.9rem;max-width:38ch}
.map-consent a{font-size:.86rem;color:var(--red);text-decoration:underline;text-underline-offset:3px}

/* ---------- Form ---------- */
/* Veľká biela plocha uprostred teplej steny bije do očí. Rovnaký jemný
   prechod ako vo vyskakovacích oknách; polia zostávajú svetlejšie než karta,
   aby bolo na prvý pohľad vidieť, kam sa píše. */
.form-card{background:var(--panel);border:1.5px solid var(--line);border-top:4px solid var(--red);border-radius:var(--r);padding:clamp(24px,4vw,38px);box-shadow:var(--shadow)}
.field{margin-bottom:16px}
.field label{display:block;font-family:var(--head);font-size:.82rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin-bottom:7px}
/* Vzhľad poľa je nižšie, v jednom spoločnom recepte pre celý web. Tu ostáva
   len to, čím sa dopytový formulár naozaj líši — vyššie okno na správu. */
.field textarea{resize:vertical;min-height:112px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.dopyt-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start}
@media(max-width:900px){.dopyt-grid{grid-template-columns:1fr;gap:32px}}
.field label .opt{font-weight:500;letter-spacing:.04em;text-transform:none;color:var(--ink-soft);font-size:.86em}
@media(max-width:560px){.row2{grid-template-columns:1fr}}
/* `width:100%` nezmení `min-content` prvku: pri `nowrap` je to šírka celého
   nápisu na jednom riadku, takže obsah pretiekol tlačidlo a `.band` s
   `overflow:hidden` ho odrezal. Na najužších telefónoch preto zalamujeme. */
@media(max-width:600px){
  .btn{white-space:normal;text-align:center}
}
/* Vzhľad súhlasu je v spoločnom recepte nižšie; tu ostáva len rozostup. */
.consent{margin:8px 0 20px}
.form-msg{display:none;padding:14px 16px;border-radius:7px;font-size:.93rem;font-weight:600;margin-top:14px}
.form-msg.ok{display:block;background:#E8F5EC;color:#186B36}
.form-msg.err{display:block;background:var(--red-soft);color:var(--red-dk)}
.hp{position:absolute;left:-9999px}

/* ---------- FAQ ---------- */
.faq{max-width:840px;margin-inline:auto}
/* Rozbaľovací blok je karta ako všetky ostatné — teplý prechod, biely rám,
   jemný tieň (majiteľ 24. 9. 2026: okná v účte boli zase biele). */
details{background:var(--panel);border:1px solid var(--karta-ram);
  border-radius:var(--r);margin-bottom:10px;
  overflow:hidden;transition:border-color .2s,box-shadow .2s;box-shadow:var(--tien-jemny)}
details[open]{box-shadow:var(--tien-zdvih)}
details[open]{border-color:var(--red)}
summary{padding:18px 22px;cursor:pointer;font-family:var(--head);font-weight:500;font-size:1.05rem;letter-spacing:.03em;color:var(--ink);list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-size:1.6rem;font-weight:300;color:var(--red);transition:transform .2s;line-height:1}
details[open] summary::after{transform:rotate(45deg)}
details p{padding:0 22px 20px;margin:0;color:var(--ink-soft);font-size:.95rem}

/* ---------- CTA band ---------- */
/* Pruh s výzvou je jediná sýta plocha na celej stránke, tak nech aj vystúpi.
   Prechod v červenej dáva svetlo zhora, vnútorná svetlá hrana napodobňuje
   odlesk na hornom okraji a tieň pod ním ho zdvihne nad stenu. Tieň je
   tónovaný do červena, nie sivý – sivý pod sýtou farbou pôsobí špinavo. */
.band{
  background:linear-gradient(158deg, #EF3B33 0%, var(--red) 42%, #C4191C 100%);
  color:#fff;border-radius:var(--r-lg);padding:clamp(36px,5vw,60px);
  text-align:center;position:relative;overflow:hidden;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.3),
    inset 0 -1px 0 rgba(0,0,0,.12),
    0 26px 44px -22px rgba(140,26,26,.75),
    0 4px 10px -6px rgba(140,26,26,.5);
}
.band-art{position:absolute;left:0;bottom:-30px;width:170px;height:280px;opacity:.18;color:#fff;pointer-events:none}
.band h2{color:#fff;position:relative}
.band p{color:rgba(255,255,255,.88);max-width:54ch;margin-inline:auto;position:relative}
.band .hero-actions{justify-content:center;position:relative}
/* Biele plochy vnútri pruhu boli jediné čisto biele miesto na stránke.
   Preberajú teplý odtieň zvyšku webu a vlastný tieň, aby na sýtej červenej
   ležali na nej a nie v nej. */
.band .btn-white{
  background:#FBF6F0;color:var(--red);
  box-shadow:0 12px 20px -10px rgba(96,16,16,.6), 0 2px 4px -2px rgba(96,16,16,.5);
}
.band .btn-white:hover{background:#fff}
.band .btn-ghost{
  background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.62);color:#fff;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  box-shadow:0 12px 20px -12px rgba(96,16,16,.55);
}
.band .btn-ghost:hover{background:rgba(255,255,255,.24);border-color:#fff;color:#fff}

/* ---------- Footer ---------- */
footer{background:var(--ink);color:rgba(255,255,255,.65);padding:56px 0 24px;font-size:.92rem}
.f-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:36px;margin-bottom:34px}
@media(max-width:760px){.f-grid{grid-template-columns:1fr;gap:26px}}
footer h4{font-family:var(--head);color:#fff;font-size:.82rem;letter-spacing:.2em;text-transform:uppercase;margin:0 0 14px;font-weight:600}
footer a{color:rgba(255,255,255,.65);text-decoration:none}
footer a:hover{color:#fff}
footer ul{list-style:none;padding:0;margin:0;display:grid;gap:9px}
.socials{display:flex;gap:10px;margin-top:18px}
.socials a{width:44px;height:44px;border-radius:8px;background:rgba(255,255,255,.09);display:grid;place-items:center;transition:.2s;color:#fff}
.socials a:hover{background:var(--red)}
.f-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:20px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:.84rem}

/* ---------- FAB (telefón) ---------- */
/* Plávajúce tlačidlo telefónu bolo najnižšie v rade v pravom dolnom rohu.
   Zrušené: číslo je v hlavičke vpravo hore a tretie okrúhle tlačidlo nad
   sebou už len uberalo miesto na obrazovke. Chat si sadol na jeho polohu,
   prepočítava sa v chat.css cez `--fab-chat`. Preto tu nezostal žiadny
   štýl pre `.fab` – aj samotný prvok je z oboch stránok preč. */

/* ---------- Animácie ---------- */
@keyframes riseIn{from{opacity:0;transform:translateY(28px)}}
@keyframes fadeIn{from{opacity:0}}

.js .hero .wrap > *{animation:riseIn .9s cubic-bezier(.22,1,.36,1) backwards}
.js .hero-badges{animation-delay:.06s}
.js .hero h1{animation-delay:.16s}
.js .hero .wrap > p{animation-delay:.30s}
.js .hero-actions{animation-delay:.40s}
.js .trust{animation-delay:.60s}

.js .rv{opacity:0;transform:translateY(22px);
        transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}
.js .rv.in{opacity:1;transform:none}

/* ikony sortimentu sa „nakreslia“ zhora nadol */
.js .card .ico{clip-path:inset(0 0 100% 0);transition:clip-path 1.05s cubic-bezier(.22,1,.36,1) .1s}
.js .card.in .ico{clip-path:inset(0 0 0 0)}

/* číslované body v Prečo my */
.js .check .n{transform:scale(.5);opacity:0;transition:transform .5s cubic-bezier(.34,1.56,.64,1),opacity .4s}
.js .check li.in .n{transform:none;opacity:1}

.nav-links a{position:relative}
.nav-links a::after{content:"";position:absolute;left:13px;right:13px;bottom:5px;height:2px;
  background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .28s cubic-bezier(.22,1,.36,1)}
.nav-links a:hover::after{transform:scaleX(1)}
.nav-cta::after{display:none}

@media(prefers-reduced-motion:reduce){
  .js .rv,.js .hero .wrap > *,.js .card .ico,.js .check .n{
    animation:none!important;transition:none!important;opacity:1!important;transform:none!important;clip-path:none!important}
}

/* ============ AKCIE A NOVINKY ============ */
/* Sekciu odkrýva hlavna.js až vtedy, keď nejaká platná akcia existuje.
   Bez [hidden] pravidla by ju prehliadač aj tak zobrazil – `display:grid`
   nižšie by atribút prebilo. */
.akcie-sekcia[hidden]{display:none}
.akcie-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.akcia{background:var(--panel);border:1px solid var(--karta-ram);border-left:4px solid var(--red);
  box-shadow:var(--tien-jemny);
  border-radius:var(--r);padding:22px 24px;display:flex;flex-direction:column;
  transition:transform .18s,box-shadow .18s}
.akcia:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.akcia h3{font-size:1.12rem;margin:0 0 8px;line-height:1.3}
.akcia p{margin:0 0 14px;font-size:.93rem;color:var(--ink-2);line-height:1.6}
.akcia .pbrand{font-family:var(--head);font-size:.72rem;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--red);margin-bottom:6px}
.akcia-do{font-size:.78rem;color:var(--ink-soft);margin-top:auto}
.akcia-odkaz{align-self:flex-start;margin-top:12px;font-family:var(--head);font-weight:600;
  text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;color:var(--red);text-decoration:none;
  border-bottom:2px solid var(--red-soft);padding-bottom:2px}
.akcia-odkaz:hover{border-bottom-color:var(--red)}

/* ============ NOVINKY E-MAILOM ============ */
.news-box{display:grid;grid-template-columns:1fr 420px;gap:40px;align-items:center;
  background:var(--panel);border:1.5px solid var(--line);border-top:4px solid var(--red);
  border-radius:var(--r);padding:clamp(24px,4vw,42px);box-shadow:var(--shadow)}
@media(max-width:860px){.news-box{grid-template-columns:1fr;gap:24px}}
.news-text h2{margin:.1em 0 .4em}
.news-text .lead{margin:0}
.news-form .field{margin-bottom:14px}
.news-form .consent{margin:4px 0 16px}
.news-form .btn{width:100%;justify-content:center}

/* ============================================================================
   ZÁKAZNÍCKY ÚČET – registračné okienko a profil
   Okienko si stavia `ucet.js` sám a je na oboch stránkach, preto sú štýly tu
   v spoločnom súbore a nie sú závislé na katalógových triedach.
   ============================================================================ */
/* Podklad nie je len tmavší, ale aj rozostrený – stránka za oknom sa stratí
   do hmly namiesto toho, aby cez ňu presvitala. Odtieň je teplý, aby sedel
   so stenou, nie neutrálne sivý. */
.uc-modal{position:fixed;inset:0;z-index:400;background:rgba(46,36,29,.42);
  -webkit-backdrop-filter:blur(10px) saturate(120%);backdrop-filter:blur(10px) saturate(120%);
  display:grid;place-items:center;padding:18px;overflow-y:auto;
  animation:fadeIn .18s ease-out}
.uc-modal[hidden]{display:none}
/* Svetlá hrana navrchu je to, čo z plochy robí sklo: napodobňuje odlesk na
   hornom okraji. Bez nej je to len zaoblený obdĺžnik. */
/* Plocha je tá istá teplá stena ako pod celým webom, nie panelový prechod.
   V okne vysokom cez pol obrazovky bol prechod zhora nadol vidieť ako sveté
   a tmavé pásmo – na malej karte je nenápadný, tu robil z okna kachličku. */
.uc-box{background:var(--bg);border-radius:22px;max-width:620px;width:100%;
  max-height:92vh;overflow-y:auto;padding:10px 26px 26px;position:relative;
  display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.7);
  box-shadow:0 40px 80px -24px rgba(46,36,29,.55), 0 2px 6px -3px rgba(46,36,29,.4)}
/* Zatváracie tlačidlo je sklovité a drží sa navrchu okna; rozostrenie
   pod ním je to, čo pod ním rolujúci obsah zjemní. */
.uc-x{position:sticky;top:6px;align-self:flex-end;z-index:3;
  background:var(--sklo);border:1px solid var(--sklo-ram);
  -webkit-backdrop-filter:var(--sklo-blur);backdrop-filter:var(--sklo-blur);
  width:40px;height:40px;border-radius:50%;font-size:1.6rem;line-height:1;color:var(--ink-2);
  cursor:pointer;display:grid;place-items:center;box-shadow:var(--sklo-tien);
  transition:color .18s,border-color .18s}
.uc-x:hover{color:var(--red);border-color:var(--red)}
.uc-box h2{font-size:1.5rem;margin:0 0 8px}

/* Otázka a hlásenie (HafoOkno v spolocne.js) namiesto `confirm`/`alert`.
   Podklad a plocha sú tie isté ako pri okne účtu vyššie, okno je len menšie
   a stojí nad ním — otázka „Zmazať zviera?" vzniká práve v ňom. */
.okno{position:fixed;inset:0;z-index:450;background:rgba(46,36,29,.42);
  -webkit-backdrop-filter:blur(10px) saturate(120%);backdrop-filter:blur(10px) saturate(120%);
  display:grid;place-items:center;padding:18px;animation:fadeIn .18s ease-out}
.okno-box{background:var(--bg);border-radius:22px;max-width:420px;width:100%;
  padding:24px 26px;border:1px solid rgba(255,255,255,.7);
  box-shadow:0 40px 80px -24px rgba(46,36,29,.55), 0 2px 6px -3px rgba(46,36,29,.4)}
.okno-box h2{font-size:1.25rem;margin:0 0 8px}
.okno-text{margin:0;font-size:.92rem;color:var(--ink-2);line-height:1.6}
.okno-tlacidla{display:flex;justify-content:center;gap:10px;margin-top:20px}
.okno-tlacidla .btn{padding:12px 20px;font-size:.9rem}
.okno-tlacidla .btn:disabled{opacity:.45;cursor:default;transform:none}
/* Voľba z pilulek v okienku (HafoOkno.vyber) – tie isté pilulky ako deň vyzdvihnutia v košíku. */
.okno-volby{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}
.okno-vol{all:unset;box-sizing:border-box;cursor:pointer;padding:9px 16px;border:1.5px solid #D9D0C5;border-radius:999px;
  background:var(--v-okne);color:var(--ink-2);font-size:13.6px;font-weight:600}
.okno-vol:hover{border-color:var(--red)}
.okno-vol[aria-pressed="true"]{border-color:var(--red);color:var(--red-dk);background:var(--red-soft)}
.okno-vol:focus-visible{box-shadow:0 0 0 3px rgba(225,33,31,.25)}
@media(max-width:560px){
  .okno-tlacidla{flex-direction:column-reverse}
  .okno-tlacidla .btn{width:100%}
}
.uc-nadpis2{font-family:var(--head);font-size:.78rem;font-weight:600;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-soft);margin:22px 0 10px;
  padding-top:14px;border-top:1px solid var(--line)}
.uc-lead{margin:0 0 16px;font-size:.9rem;color:var(--ink-soft);line-height:1.6}

/* `minmax(0,1fr)`, nie `1fr`: stĺpec s dlhým názvom krmiva v rozbaľovacom
   zozname sa inak roztiahol a druhé pole vytlačil z karty (Pripomienky). */
.uc-mriezka{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.uc-mriezka > *{min-width:0}
@media(max-width:560px){.uc-mriezka{grid-template-columns:1fr}}
.uc-pole{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.uc-pole > span{font-size:.78rem;font-weight:600;letter-spacing:.02em;color:var(--ink-2)}
.uc-pole small{font-size:.74rem;color:var(--ink-soft);line-height:1.45}
.uc-pole textarea{resize:vertical;min-height:56px}

.uc-akcie{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:18px}
.uc-lnk{background:none;border:0;padding:0;font:inherit;font-size:.86rem;color:var(--red);
  cursor:pointer;text-decoration:underline;text-underline-offset:3px}
/* Zhrnutie účtu je sklovité, nie plná plocha – v okne s prechodom by tmavší
   obdĺžnik pôsobil ako nalepený. */
.uc-msg{margin:12px 0 0;font-size:.86rem;line-height:1.5;min-height:1.2em}
.uc-msg.ok{color:#1a8f3c}
.uc-msg.err{color:var(--red)}

.uc-vyzva{background:var(--pozor-plocha);border:1.5px solid var(--pozor-ram);border-radius:12px;padding:12px 14px;
  font-size:.86rem;line-height:1.55;margin:14px 0 0}

.uc-zoznam{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.uc-zoznam li{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;
  border:1.5px solid var(--line);border-radius:12px;padding:12px 14px}
.uc-zoznam b{display:block;font-size:.96rem}
.uc-zoznam span{display:block;font-size:.82rem;color:var(--ink-soft);margin-top:2px}
.uc-zoznam small{display:block;font-size:.78rem;color:var(--ink-soft);margin-top:6px;line-height:1.5}
/* Formulár na novú pripomienku – vlastný rámik, aby bolo jasné, že sa týka
   toho, čo je nad ním, a nie celého účtu. */
.uc-prip{margin-top:12px;border:1.5px solid var(--line);border-radius:12px;padding:14px 16px}
.uc-prip select{width:100%}

/* Rozbaľovanie „Pridať zviera" preberá vzhľad ostatných `summary` na webe
   (plus vpravo, ktorý sa po otvorení otočí na krížik) – vlastný znak by tam
   bol druhý raz. Len ho zmenšíme, je to ovládanie vnútri okienka. */

/* Ponuka registrácie nad rezervačným formulárom. Tichá – je to ponuka, nie
   podmienka; rezervovať sa dá aj bez účtu a tak to má ostať. */

/* rozbaľovacie bloky a úprava zvierat v profile účtu */
.uc-zoznam-akcie{display:flex;flex-direction:column;gap:6px;align-items:flex-end;flex-shrink:0}
.uc-zoznam li.uprava{display:block}
.uc-pole input:disabled,.uc-pole select:disabled,.uc-pole textarea:disabled{
  background:var(--bg-soft,#f7f5f4);color:var(--ink-soft);cursor:not-allowed}

/* ---------- mimoriadny oznam (sviatok, dovolenka, skrátené hodiny) ----------
   Vkladá ho `spolocne.js` z /api/info – teda na každej stránke webu, nielen
   na hlavnej. Sedí nad hlavičkou, nie v nej, aby sa dali lepiť zvlášť.

   Tri vrstvy pohybu, každá s inou úlohou:
   1. `oznam-prichod` – pás sa raz zosunie zhora. Najväčší diel pozornosti
      získa moment, keď sa niečo objaví, nie trvalé blikanie.
   2. `oznam-tep` – bodky po stranách textu tepú stále. Malá plocha znesie
      trvalý pohyb, celý pás na šírku obrazovky nie – z toho bolia oči.
   3. `oznam-lesk` – svetelný pruh raz za 6 s prebehne pásom. Beží len
      prvých 35 % cyklu, zvyšok parkuje mimo obrazu, takže je to záblesk,
      nie nepretržitá animácia.
   Pri `prefers-reduced-motion` sa všetko zastaví – pás ostane červený
   a čitateľný, len bez pohybu.

   Pás je prilepený rovnako ako hlavička a leží nad ňou (z-index 61 vs. 60).
   Hlavička sa preto nesmie lepiť na 0, ale pod pás – jeho výšku jej podá
   `spolocne.js` v premennej `--oznam-h`. Napevno zapísaná výška by prestala
   sedieť hneď, ako sa text na úzkom displeji zalomí do dvoch riadkov. */
.oznam-pas{position:sticky;top:0;z-index:61;
  padding:12px 46px;color:#fff;text-align:center;
  font-size:.96rem;font-weight:700;line-height:1.4;letter-spacing:.01em;
  box-shadow:0 2px 10px -2px rgba(225,33,31,.45);
  /* Lesk je pozadie pásu, nie vrstva navyše – pseudo-prvky sú obsadené
     bodkami a krížikom. Parkuje mimo obrazu vľavo a raz za cyklus prebehne. */
  background-color:var(--red);
  background-image:linear-gradient(100deg,transparent 0,rgba(255,255,255,.32) 45%,transparent 90%);
  background-repeat:no-repeat;background-size:60% 100%;background-position:-70vw 0;
  animation:oznam-prichod .5s cubic-bezier(.2,.8,.3,1) both,
            oznam-lesk 6s ease-in-out 1.2s infinite}
/* Bodky visia na texte, nie na páse – krížik je posledné dieťa pásu a bodka
   z `.oznam-pas::after` by skončila až za ním.

   `inline-flex` robí z bodiek a textu tri samostatné bunky vedľa seba. Kým
   boli bodky súčasťou toku textu, pri zalomení na mobile ostala ľavá na
   prvom riadku a pravá klesla na posledný. Takto držia obe pri prvom riadku
   a text sa medzi nimi centruje ako celý blok, aj keď má tri riadky. */
.oznam-text{display:inline-flex;align-items:flex-start;justify-content:center;
  gap:10px;text-align:center}
.oznam-text::before,.oznam-text::after{content:"";flex:none;
  width:9px;height:9px;border-radius:50%;background:#fff;
  /* Na optický stred prvého riadka: (výška riadka − priemer bodky) / 2.
     V `em`, aby to sedelo aj po zmenšení písma na mobile. */
  margin-top:calc((1.4em - 9px) / 2);
  animation:oznam-tep 1.7s ease-in-out infinite}
/* Krížik je mimo toku textu, inak by rozhodil vycentrovanie. Vodorovné
   odsadenie pásu (46px) mu drží miesto na oboch stranách naraz. */
.oznam-zavri{position:absolute;right:7px;top:50%;transform:translateY(-50%);
  width:38px;height:38px;display:flex;align-items:center;justify-content:center;
  padding:0;border:0;border-radius:50%;background:transparent;color:#fff;
  font:400 1.6rem/1 var(--head);cursor:pointer;opacity:.8;
  transition:opacity .15s,background .15s}
.oznam-zavri:hover,.oznam-zavri:focus-visible{opacity:1;background:rgba(255,255,255,.2)}
/* Náhrada krížika na mobile – nenápadný riadok pod oznamom. Vidieť je vždy
   len jedno z nich (pozri media query nižšie). */
.oznam-tip{display:none;margin:3px auto 0;padding:0;border:0;background:transparent;
  color:inherit;font:inherit;font-size:.72rem;font-weight:500;letter-spacing:.02em;
  opacity:.72;cursor:pointer}
.oznam-tip:hover,.oznam-tip:focus-visible{opacity:1}
.oznam-pas.zavriet{animation:oznam-odchod .25s ease-in forwards}
@keyframes oznam-prichod{
  from{transform:translateY(-100%);opacity:0}
  to{transform:none;opacity:1}
}
@keyframes oznam-odchod{
  to{transform:translateY(-100%);opacity:0}
}
@keyframes oznam-tep{
  0%,100%{transform:scale(1);opacity:1}
  50%{transform:scale(.62);opacity:.55}
}
@keyframes oznam-lesk{
  0%{background-position:-70vw 0}
  35%,100%{background-position:120vw 0}
}
@media (prefers-reduced-motion:reduce){
  .oznam-pas,.oznam-text::before,.oznam-text::after{animation:none}
}
/* Na mobile ide krížik preč – z úzkeho pásu ukrajoval miesto na oboch
   stranách naraz (odsadenie musí byť symetrické, inak sa text rozcentruje).
   Zavrie sa ťuknutím kamkoľvek, čo obsluhuje `spolocne.js` na rovnakej
   hranici 640px. Vďaka tomu má text späť plnú šírku. */
@media (max-width:640px){
  .oznam-pas{padding:10px 16px;font-size:.87rem;cursor:pointer}
  .oznam-zavri{display:none}
  .oznam-tip{display:block}
}

/* ============================================================================
   VÝBERY (select) – rovnaký tvar ako v administrácii

   Natívny `select` vyzerá v každom prehliadači inak a vedľa vlastných polí
   pôsobí cudzo. Obal kreslí svetlý rámik a v ňom vysadenú bielu dlaždicu;
   šípka je nakreslená rámčekom, nie obrázkom, aby si držala farbu textu.
   ============================================================================ */
.vyber{position:relative;display:inline-flex;align-items:center;padding:3px;max-width:100%;
  background:var(--bg-soft);border:1.5px solid var(--line);border-radius:13px;box-sizing:border-box}
.vyber::after{content:'';position:absolute;right:16px;top:50%;width:7px;height:7px;
  border-right:2px solid var(--ink-soft);border-bottom:2px solid var(--ink-soft);
  transform:translateY(-70%) rotate(45deg);pointer-events:none}
.vyber select{flex:1 1 auto;min-width:0;width:100%;appearance:none;-webkit-appearance:none;
  padding:9px 34px 9px 15px;border:0;border-radius:9px;background:var(--v-okne);color:var(--ink);
  box-shadow:var(--shadow);font:inherit;font-size:.94rem;font-weight:600;cursor:pointer;
  text-overflow:ellipsis}
.vyber select:focus{outline:0;box-shadow:0 0 0 3px rgba(225,33,31,.16)}
.vyber select:disabled{opacity:.55;cursor:default}

/* Tam, kde výber vypĺňal celú šírku poľa, ju teraz vypĺňa obal. */
.uc-pole .vyber,.field .vyber,.uc-prip .vyber{display:flex;width:100%}

/* ---------- posuvníky ----------
   Systémový posuvník je v každom prehliadači inak široký. Tenký prúžok vo
   farbe rámikov nikde nekričí. */
*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px;
  border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:var(--ink-soft);background-clip:padding-box}
::-webkit-scrollbar-corner{background:transparent}

/* ================= PLOCHA STRÁNKY A HLAVIČKA ================= */

/* Plocha celého webu je stena z úvodného videa, aby na seba scéna a stránky
   nadväzovali. Karty zostávajú biele a na teplom podklade vystúpia. */
body{
  --bg:      #EBE4DB;
  --bg-soft: #E2DACF;
  --line:    #D9D0C5;
  /* Stena z videa pokračuje po celej stránke. Zastávky sú odmerané z pásu nad
     psom, ktorý je čistý cez celú šírku: okraje majú 175 jasu, stred 204 –
     tá vineta je to, čo z plochy robí fotografovanú stenu a nie odtieň.
     Pre text je rozjasnená (stred na 233) a vineta zmiernená na 62 %, inak by
     boli okraje stránky pritmavé.
     Na úvodnej stránke k tomu hero.css pridáva zvislé nadviazanie na spodnú
     hranu scény. */
  /* Prechod je čisto vodorovný, takže `background-attachment: fixed` by na
     obraze nič nezmenil a na iOS je neisté – preto tu nie je. */
  background:var(--stena);
}

/* Hlavička nemá žiadnu vlastnú plochu – logo, menu, účet aj telefón plávajú
   priamo nad obsahom. Preto ani stav `scrolled`:
   akákoľvek lišta, biela či iná, z nej robí cudzí pás.
   Lepivá byť môže práve preto, že plocha stránky pokračuje v stene z videa;
   nad bielou by text hlavičky splýval s obsahom, tu drží. */
body header,
body header.scrolled{
  position:sticky;top:var(--oznam-h,0px);
  background:none;backdrop-filter:none;border-bottom:0;box-shadow:none;
}
/* Po odscrollovaní sa za značkou a menu objavia sklovité bubliny – tie isté,
   aké má tlačidlo „Navigovať k nám" a Registrácia. Text tak drží nad
   akýmkoľvek obsahom, ktorý pod hlavičkou uteká, a stále to nie je lišta.
   Triedu `scrolled` prepína hlavna.js pri scrollY > 8. */
body .logo,
body .nav-links{
  border-radius:999px;border:1.5px solid transparent;
  transition:background .28s, border-color .28s, box-shadow .28s, padding .28s;
}
/* Značka má bublinu stále, nielen po odscrollovaní. Na vrchu stránky stojí
   nad najsvetlejším miestom scény a bez plochy pod sebou pôsobila ako
   nalepená na video. Menu v strede sa naďalej podfarbí až pri scrollovaní –
   päť bubliniek vedľa seba hneď na úvod je priveľa a hero má ostať otvorený. */
body .logo{
  padding:6px 18px 6px 8px;
  background:var(--sklo);border-color:var(--sklo-ram);
  -webkit-backdrop-filter:var(--sklo-blur);backdrop-filter:var(--sklo-blur);
  box-shadow:var(--sklo-tien);
}
@media(min-width:1001px){
  body header.scrolled .nav-links{
    padding:5px 16px;
    background:var(--sklo);border-color:var(--sklo-ram);
    -webkit-backdrop-filter:var(--sklo-blur);backdrop-filter:var(--sklo-blur);
    box-shadow:var(--sklo-tien);
  }
}

/* Nad červeným pruhom s výzvou sa text hlavičky kedysi zosvetľoval na bielo.
   Odkedy má značka bublinu stále a menu ju dostane pri scrollovaní – a nad
   pruh sa dá dostať jedine odscrollovaním – sedel by biely text na svetlom
   skle a nedal by sa prečítať. Prepínač triedy `na-cervenom` je preto
   v hero.js zrušený a nezostáva po ňom pravidlo. */

/* Tri stĺpce 1fr auto 1fr: menu stojí presne v strede hlavičky bez ohľadu na
   to, aké široké je logo a skupina vpravo. Pri flexe sa centrovalo len voči
   zvyšku miesta po logu, takže stálo mimo stredu. */
body .nav{
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  gap:20px;height:76px;
}
/* Hlavička drží rovnaké okraje ako scéna pod ňou, nie 1180 px zvyšku webu. */
body header .wrap{max-width:none;padding-inline:clamp(20px,3.2vw,60px)}

/* Značka: rovnaké proporcie ako v návrhu, len o 15 % väčšia. Nadpisové písmo
   nesie len HAFO; riadok nad ním je Inter a sivý, inak sú dva červené riadky
   nad sebou a značka stráca hierarchiu. */
body .logo{justify-self:start;gap:12px}
/* Značka pôsobila ako nálepka na stene – plochá červená silueta a plochý
   nápis. `drop-shadow` sleduje tvar loga, nie jeho štvorec, takže pes
   naozaj visí nad pozadím; `box-shadow` by nakreslil obdĺžnik. Dva tiene:
   tesný pod obrysom a široký mäkký, inak to vyzerá ako obtiahnutie. */
body .logo img{width:46px;
  filter:drop-shadow(0 1px 1px rgba(78,58,44,.28)) drop-shadow(0 8px 12px rgba(78,58,44,.32))}
body .logo-txt i{
  font-family:var(--text);font-weight:600;font-size:.64rem;letter-spacing:.13em;
  color:var(--ink-soft);margin-bottom:3px;
  text-shadow:0 1px 0 rgba(255,255,255,.75);
}
/* Nápis: svetlý pruh zhora a tieň zdola. Písmená tak sedia v ploche, nie na
   nej – ten istý trik nesie vyrazený text na tabuli. Hodnoty sú zámerne
   drobné, pri väčších z toho je 3D nápis z deväťdesiatych rokov. */
body .logo-txt b{font-size:1.17rem;letter-spacing:.06em;line-height:1;
  text-shadow:0 -1px 0 rgba(255,255,255,.55), 0 1px 1px rgba(120,40,32,.45),
              0 5px 10px rgba(78,58,44,.28)}

/* Menu je vetou, nie verzálkami – tak je to v návrhu. Podčiarknutie zdola
   nahrádza podfarbenie z styl.css. */
body .nav-links a{
  font-family:var(--text);text-transform:none;font-size:.84rem;font-weight:600;
  letter-spacing:0;color:var(--ink-2);padding:9px 7px;border-radius:999px;
  background:none;border:1px solid transparent;
  transition:background .2s, border-color .2s, color .2s;
}
/* Rovnaké rozjasnenie ako pri Registrácii a telefóne – z položky sa pri
   prejdení myšou stane sklovitá bublina. Podčiarknutie by k nej bolo navyše,
   preto sa vypína. */
/* `.nav-hot` musí byť v selektore vymenované. Pravidlo `.nav-links a.nav-hot:hover`
   vyššie v súbore má dve triedy proti jednej tu, takže by vyhralo aj napriek
   poradiu – a Rezervovať krmivo by pri prejdení myšou ostalo jediné ružové
   medzi sklovitými bublinami. */
body .nav-links a:hover,
body .nav-links a.nav-hot:hover{
  color:var(--ink);background:rgba(255,255,255,.85);border-color:rgba(255,255,255,.95);
  -webkit-backdrop-filter:var(--sklo-blur);backdrop-filter:var(--sklo-blur);
}
body .nav-links a::after{display:none}

/* Mimo úvodnej je stredný stĺpec prázdny (menu je skryté), takže by sa
   skupina vpravo posunula doňho. Preto pevný tretí stĺpec. */
body .nav-vpravo{grid-column:3;justify-self:end;display:flex;align-items:center;gap:8px}
/* Účet a telefón sú pilulky. styl.css im nasadzuje červenú cez !important,
   takže sa tu prebíja rovnakou zbraňou. */
/* Účet a telefón sú mimo <nav>, takže ich pôvodné pravidlá v styl.css
   (mieria na `.nav-links a.nav-*`) už neplatia – vrátane `inline-flex`,
   ktoré ikonu s textom zarovnáva, a `text-decoration:none`. Preto sú tu
   nanovo, nie len farby. */
body .nav-vpravo a{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  text-decoration:none;line-height:1;
  border-radius:999px;padding:10px 16px;font-size:.82rem;font-weight:600;
  font-family:var(--text);text-transform:none;letter-spacing:0;
}
body .nav-vpravo a::after{display:none}   /* podčiarknutie sem nepatrí */
body .nav-vpravo .nav-ucet{
  background:var(--sklo);color:var(--ink)!important;
  border:1.5px solid var(--sklo-ram);
  -webkit-backdrop-filter:var(--sklo-blur);backdrop-filter:var(--sklo-blur);
  box-shadow:var(--sklo-tien);
}
/* Pri prejdení myšou sa sklo len rozjasní a text stmavne – červená sem
   nepatrí, tú v hlavičke nesie už len ikona telefónu. */
body .nav-vpravo a:hover{
  background:rgba(255,255,255,.85);border-color:rgba(255,255,255,.95);
  color:var(--ink)!important;
}
/* Telefón vyzerá presne ako Registrácia – rovnaká bublina, rovnaká farba
   textu aj ikony. Červená v hlavičke nezostáva už nikde; nesú ju tlačidlá
   v obsahu stránky. */
body .nav-vpravo .nav-cta{
  background:var(--sklo);color:var(--ink)!important;
  border:1.5px solid var(--sklo-ram);
  -webkit-backdrop-filter:var(--sklo-blur);backdrop-filter:var(--sklo-blur);
  box-shadow:var(--sklo-tien);
}
body .nav-vpravo a svg{flex:0 0 auto;color:currentColor}

body .nav-vpravo svg{width:16px;height:16px}

/* Mimo úvodnej stránky nemá stredné menu čo ponúknuť – odkazy vedú späť na
   úvodnú, kam sa dostaneš značkou vľavo. Vo vysúvacom menu na telefóne
   zostávajú, tam je navigácia jediná. */
@media(min-width:1001px){
  body:not(.uvod) .nav-links{display:none}
}

/* Nad 1000 px je menu v rade v strednom stĺpci; nižšie ho nahrádza burger. */
@media(min-width:1001px){
  body .burger{display:none}
  body .nav-links{
    position:static;inset:auto;flex-direction:row;align-items:center;
    background:none;border-bottom:0;box-shadow:none;transform:none;
    padding:0;margin-left:0;justify-self:center;gap:clamp(14px,2.2vw,30px);
  }
  body .nav-links .btn{width:auto}
}

@media(max-width:1000px){
  /* Poradie zľava: značka, voľné miesto, pilulky, burger. Burger stál medzi
     značkou a pilulkami a lišta pôsobila rozhádzane.

     `grid-row:1` musí byť pri všetkých troch. Burger je v HTML pred pilulkami,
     ale patrí do posledného stĺpca – automatické ukladanie mriežky ide zľava
     doprava a keď mu burger obsadí štvrtý stĺpec, pre pilulky v treťom už
     v tomto riadku miesto nehľadá a odloží ich do druhého. Presne to sa dialo:
     prihlásenie s telefónom viseli pod lištou nad obsahom stránky. */
  body .nav{height:64px;grid-template-columns:auto 1fr auto auto;gap:8px}
  body .logo{grid-column:1;grid-row:1;gap:9px}
  body .logo img{width:38px}
  /* Trojriadkový názov zabral polovicu lišty. Na telefóne nesie značku
     samotný znak a slovo HAFO; celý názov je v pätičke. */
  body .logo-txt i{display:none}
  body .logo-txt b{font-size:1.2rem;letter-spacing:.1em}
  body .nav-vpravo{grid-column:3;grid-row:1;justify-self:end;gap:6px}
  body .nav-vpravo a{padding:9px 13px;font-size:.78rem}
  body .nav-vpravo .nav-cta span{display:none}   /* z telefónu stačí ikona */

  /* Burger dostane rovnakú sklovitú bublinu ako značka. Holé čiarky nad
     videom splývali a po otvorení z nich bol čierny krížik na obraze. */
  body .burger{grid-column:4;grid-row:1;justify-self:end;
    width:42px;height:42px;padding:0;display:grid;place-content:center;
    border-radius:999px;background:var(--sklo);border:1.5px solid var(--sklo-ram);
    -webkit-backdrop-filter:var(--sklo-blur);backdrop-filter:var(--sklo-blur);
    box-shadow:var(--sklo-tien);
  }

  /* Vysúvacie menu je panel, nie pilulka. `body .logo, body .nav-links` vyššie
     dáva obom `border-radius:999px` kvôli bublinám v lište – a keďže je ten
     selektor špecifickejší než pravidlo v @media, dostalo ho aj vysunuté menu
     a bola z neho obrovská elipsa cez pol obrazovky. */
  body .nav-links{
    /* Hlavička je lepivá pod pásom oznamu, takže menu musí začínať pod oboma –
       s pevnými 64 px by pri zapnutom ozname prekrylo samo seba. */
    top:calc(var(--oznam-h,0px) + 64px);
    border-radius:0 0 22px 22px;border:0;border-bottom:1px solid var(--sklo-ram);
    background:var(--panel);padding:8px 16px 16px;
    box-shadow:0 10px 30px -12px rgba(78,58,44,.55);
  }
  /* Položky boli vysoké 52 px a menu zaberalo tri štvrtiny obrazovky. */
  body .nav-links a{padding:12px 6px;font-size:1rem;border-bottom:1px solid var(--line)}
  body .nav-links a:last-child{border-bottom:0}
  /* Rezervácia sa v menu nefarbí – rovnako ako na počítači. Ružový pás cez
     celú šírku bol jediná farebná plocha v paneli a pôsobil ako vybraná
     položka, hoci znamená niečo iné. */
  body .nav-links a.nav-hot,
  body .nav-links a.nav-hot:hover{background:none;color:var(--ink-2);font-weight:600}
}

/* ================= POP-UP ÚČTU: BEZ ČERVENEJ =================
   V okne účtu nemá červená čo robiť. Je to formulár, nie výzva – plná
   červená plocha v ňom prekričala všetko ostatné vrátane toho, čo má
   zákazník vyplniť. Ostáva sklo, tiene a tmavé písmo.

   Jediná výnimka je chybová hláška (`.uc-msg.err`). Tam červená nesie
   význam a nahradiť sa nedá ničím, čo by fungovalo rovnako rýchlo.

   Blok stojí na konci súboru zámerne: prepisuje hodnoty z bloku `.uc-*`
   vyššie a pri rovnakej špecifickosti vyhráva to, čo je v súbore neskôr.
   ============================================================= */

/* Hlavné tlačidlo je tmavá pilulka s tieňom. Trieda sa naďalej volá
   `btn-red` – tá istá značka je aj v profile, v pripomienkach a pri
   zvieratách, takže prefarbiť ju tu je lacnejšie než premenovať na
   šiestich miestach v ucet.js. Výnimkou je „Zaregistrovať sa": červená
   ostáva jedinému tlačidlu v okne, ktoré niečo nové zakladá. */
.uc-box .btn{border-radius:12px;letter-spacing:.07em;font-size:.9rem;padding:13px 24px}
.uc-box .btn-red{background:var(--ink);color:#fff;border-color:transparent;
  box-shadow:0 2px 4px rgba(78,58,44,.18), 0 16px 28px -14px rgba(78,58,44,.75)}
.uc-box .btn-red:hover{background:#332f2c}
.uc-box form[data-akcia="registracia"] .btn-red{background:var(--cta);
  box-shadow:var(--cta-lesk), 0 2px 4px rgba(140,26,26,.3), 0 16px 28px -14px rgba(140,26,26,.9)}
.uc-box form[data-akcia="registracia"] .btn-red:hover{background:var(--cta);filter:brightness(1.06);
  box-shadow:var(--cta-lesk-h), 0 2px 4px rgba(140,26,26,.3), 0 22px 34px -14px rgba(140,26,26,.95)}
.uc-box .btn-outline{background:var(--sklo);border-color:var(--sklo-ram);color:var(--ink);
  -webkit-backdrop-filter:var(--sklo-blur);backdrop-filter:var(--sklo-blur);
  box-shadow:var(--sklo-tien)}
.uc-box .btn-outline:hover{background:rgba(255,255,255,.88);color:var(--ink)}

.uc-x:hover{color:var(--ink);border-color:var(--sklo-ram);background:rgba(255,255,255,.88)}
.uc-lnk{color:var(--ink-2)}
.uc-lnk:hover{color:var(--ink)}

/* --- prepínač prihlásenie / nový účet --- */
/* Dve rovnocenné cesty vedľa seba. Registrácia bola predtým odkazom
   v pätke pod formulárom, takže kto účet nemal, musel ju najprv nájsť. */
.uc-prepinac{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:0 0 18px;padding:5px;
  background:rgba(255,255,255,.5);border:1px solid var(--sklo-ram);border-radius:14px;
  box-shadow:inset 0 1px 2px rgba(78,58,44,.07)}
.uc-prepinac button{font:inherit;font-family:var(--head);font-weight:600;letter-spacing:.07em;
  text-transform:uppercase;font-size:.8rem;color:var(--ink-soft);
  background:none;border:0;border-radius:10px;padding:11px 10px;cursor:pointer;
  transition:background .18s, color .18s, box-shadow .18s}
.uc-prepinac button:hover{color:var(--ink)}
.uc-prepinac button.on{background:var(--panel);color:var(--ink);box-shadow:var(--tien-jemny)}

/* --- prihlásenie bez hesla --- */
/* Miesto pod tlačidlom „Prihlásiť sa" držala prázdna hláška: `.uc-msg` má
   rezervovaný riadok, aby text pri chybe nešklbol rozložením. V okne účtu je
   ale pod ňou hneď druhá cesta dnu, takže z rezervy vznikla diera. Riadok si
   necháva len vtedy, keď v ňom naozaj niečo je. */
.uc-box .uc-msg{margin:10px 0 0;min-height:0}
.uc-box .uc-msg:empty{margin:0}
.uc-box .uc-akcie{margin-top:14px}
/* Prihlásenie cez Google (návrh firma-dodacia-google, obrazovka Prihlásenie): biele tlačidlo
   s rámom line-2 a jemným tieňom, 50 px, logo Google podľa jeho pravidiel (farebné „G“). */
.uc-soc-tl{display:flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 16px;
  border-radius:6px;background:var(--v-okne);border:1px solid var(--line-2);color:var(--ink);
  font-family:var(--text);font-size:.97rem;font-weight:600;text-decoration:none;box-shadow:var(--tien-jemny);
  transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s}
.uc-soc-tl:hover{transform:translateY(-2px);box-shadow:var(--tien-zdvih);color:var(--ink)}
.uc-soc-tl:focus-visible{outline:2.5px solid var(--red);outline-offset:2px}
.uc-soc-logo{width:20px;height:20px;flex:none}
@media (prefers-reduced-motion:reduce){.uc-soc-tl{transition:none}.uc-soc-tl:hover{transform:none}}
.uc-alebo{display:flex;align-items:center;gap:12px;margin:14px 0 12px;
  font-size:.74rem;text-transform:uppercase;letter-spacing:.13em;color:var(--ink-soft)}
.uc-alebo::before,.uc-alebo::after{content:'';flex:1;height:1px;background:var(--line)}
/* Hlavná akcia stojí vpravo – tak to má okno s formulárom všade inde
   v systéme a oko ju tam hľadá po prejdení polí. */
.uc-box .uc-akcie{justify-content:flex-end}
/* ================= VIDITEĽNÝ FOKUS PRE KLÁVESNICU =================
   Web mal osem `:focus-visible` pravidiel na štyri súbory a tri rôzne
   prstence – a na troch miestach `outline:0` bez akejkoľvek náhrady
   (posuvník ceny, písacie pole chatu, cookie lišta). Kto sa pohybuje
   tabulátorom, tam stratil stopu úplne.

   `:where()` má nulovú špecifickosť, takže toto pravidlo neprebije nič
   konkrétnejšie – je to len záchranná sieť pod celým webom. Prvky, ktoré
   si fokus riešia po svojom, si ho riešia ďalej.
   ================================================================= */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible{
  outline:2px solid var(--red);
  outline-offset:2px;
  border-radius:3px;
}
/* Nad červenou plochou by červený obrys zanikol. */
:where(.band, .oznam-pas, footer) :where(a, button):focus-visible{
  outline-color:#fff;
}

/* Políčko, ktoré sa ukáže len pri psoch (veľkosť plemena). Vlastné
   `display:flex` z `.uc-pole` by inak prebilo `hidden`. */
.uc-pole[hidden]{display:none}

/* ---------- okno účtu: hlavné tlačidlá a súhlas ---------- */
/* Prihlásenie aj registrácia sú jediná akcia svojho formulára, takže tlačidlo
   ide cez celú šírku – nie je čo naň zarovnávať a na dotyk je to väčší terč.
   Ostatné formuláre v okne (údaje, heslo, zviera, pripomienka) majú vedľa
   tlačidla ešte odkaz alebo hlášku, tam by roztiahnutie rozbilo riadok. */
.uc-box form[data-akcia="heslo"] .uc-akcie,
.uc-box form[data-akcia="registracia"] .uc-akcie{display:block}
.uc-box form[data-akcia="heslo"] .uc-akcie .btn,
.uc-box form[data-akcia="registracia"] .uc-akcie .btn{width:100%}
/* Registračné tlačidlo vyzerá rovnako ako prihlasovacie – je to ten istý druh
   kroku. Červená ostáva výzve „Zaregistrovať sa" pod výhodami účtu, ktorá
   stojí na prihlasovacej obrazovke a má na seba ťahať oči. */
.uc-box form[data-akcia="registracia"] .btn-red{
  background:var(--ink);
  box-shadow:0 2px 4px rgba(78,58,44,.18), 0 16px 28px -14px rgba(78,58,44,.75)}
.uc-box form[data-akcia="registracia"] .btn-red:hover{background:#332f2c}

/* Vzhľad súhlasu je v spoločnom recepte nižšie — text vo vlastnom `<span>`,
   tmavší než poznámka pod čiarou, lebo ho má človek naozaj prečítať. Tu
   ostáva len rozostup nad ním. */
.uc-suhlas{margin:14px 0 4px}

/* ---------- posuvníky ----------
   Predvolený posuvník prehliadača je na béžovom podklade sotva vidieť a nie
   je poznať, že sa stránka dá posúvať. Tento je tichý, ale nájditeľný.
   Vodorovné pásy, ktoré posuvník mať nemajú (kategórie, hero), si ho skrývajú
   samy vo svojich súboroch. */
html{scrollbar-width:thin;scrollbar-color:var(--ink-soft) transparent}
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--ink-soft);border-radius:999px;
  border:3px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:var(--ink-2);background-clip:padding-box}
::-webkit-scrollbar-corner{background:transparent}

/* Vek zvieraťa: dve krátke čísla vedľa seba s jednotkou. Jedno pole
   „vek v mesiacoch" by znamenalo, že si to človek musí prepočítať —
   „rok a pol" je tvar, v akom to má v hlave. */
/* Pravidlá sú za jednotným štýlom polí nižšie — viď „Presný vek" tam. */

/* ---------- vlastný výber namiesto systémového zoznamu ----------
   Zatvorený stav kreslí ďalej `.vyber` — mení sa len to, čo sa otvorí.
   Tlačidlo má presne tie isté deklarácie ako `select` vyššie, aby sa po
   nasadení nič vizuálne nepohlo; keby sa raz `.vyber select` menil, musí sa
   zmeniť aj toto. Pozadie je biele (`--v-okne`), NIE `--bg`: to je na `body`
   prepísané na farbu steny a Zoradiť tým vyzeralo zašednuté (24. 9. 2026). */
.vyber-vlastny select{position:absolute;width:1px;height:1px;padding:0;margin:0;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.vyber .vyber-btn{flex:1 1 auto;min-width:0;width:100%;appearance:none;-webkit-appearance:none;
  padding:9px 34px 9px 15px;border:0;border-radius:9px;background:var(--v-okne);color:var(--ink);
  box-shadow:var(--shadow);font:inherit;font-size:.94rem;font-weight:600;cursor:pointer;
  text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.vyber .vyber-btn:focus-visible{outline:0;box-shadow:0 0 0 3px rgba(225,33,31,.16)}
.vyber .vyber-btn:disabled{opacity:.55;cursor:default}

/* Nad oknom účtu (400) aj nad potvrdzovacím oknom (450) – s 320 sa zoznam
   v Mojom účte (Pripomienky, Zvieratá) otvoril POD oknom a vyzeral mŕtvy. */
.vyber-panel{position:fixed;inset:0;z-index:460}
.vyber-tien{position:absolute;inset:0;background:rgba(20,16,15,.45);
  opacity:0;transition:opacity .22s}
.vyber-panel.je-otvoreny .vyber-tien{opacity:1}
.vyber-okno{position:absolute;left:50%;top:50%;width:min(360px, calc(100vw - 32px));
  max-height:min(70vh, 520px);display:flex;flex-direction:column;overflow:hidden;
  background:var(--panel);border:1.5px solid var(--sklo-ram);border-radius:var(--r-lg);
  box-shadow:var(--shadow-lg);
  transform:translate(-50%,-46%) scale(.96);opacity:0;
  transition:transform .26s cubic-bezier(.32,.72,0,1), opacity .2s}
.vyber-panel.je-otvoreny .vyber-okno{transform:translate(-50%,-50%) scale(1);opacity:1}
/* Úchytka patrí len spodnému panelu na telefóne. `.panel-uchyt` (nižšie)
   ju robí blokom, takže bez vyššej váhy tu by sa ukázala aj v zozname pod
   tlačidlom na počítači. */
.vyber-panel .vyber-uchyt{display:none}
.vyber-hl{display:none}
.vyber-hladaj{display:block;flex:0 0 auto;width:auto;box-sizing:border-box;margin:4px 4px 6px;min-height:40px;
  padding:9px 12px 9px 38px;border:1px solid var(--line);border-radius:11px;background:var(--v-okne) no-repeat 12px 50%/16px 16px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a817c' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E");
  color:var(--ink);font:inherit;font-size:.92rem;box-shadow:var(--tien-jemny)}
.vyber-hladaj:focus{outline:0;border-color:var(--red);box-shadow:0 0 0 3px rgba(225,33,31,.12)}
.vyber-zoznam{display:flex;flex-direction:column;padding:8px;overflow-y:auto;
  overscroll-behavior:contain}
.vyber-polozka{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 14px;
  border:0;border-radius:10px;background:none;cursor:pointer;
  font:inherit;font-size:.95rem;font-weight:600;color:var(--ink-2);text-align:left}
.vyber-polozka:hover{background:var(--bg-soft);color:var(--ink)}
.vyber-polozka.je{background:var(--red-soft);color:var(--red)}
/* Zaškrtnutie je nakreslené rámčekom, nie znakom – znak by v inom písme
   vyzeral inak a pri uppercase nadpisoch by skákal. */
.vyber-polozka.je::after{content:'';flex:0 0 auto;margin-left:auto;width:7px;height:12px;
  border-right:2.5px solid currentColor;border-bottom:2.5px solid currentColor;
  transform:rotate(45deg) translateY(-2px)}
body.vyber-otvoreny{overflow:hidden}

/* Na počítači zoznam pod tlačidlom (`.vyber-pod`, polohu dopočíta
   spolocne.js). Bez stmavenia — je to rozbalený výber, nie okno; tieň
   ostáva len ako neviditeľná plocha, na ktorej klik mimo zoznamu ho zavrie. */
@media(min-width:721px){
  .vyber-pod .vyber-tien{background:none}
  .vyber-pod .vyber-okno{left:0;top:0;width:auto;
    max-width:min(520px, calc(100vw - 16px));max-height:min(60vh, 420px);
    border-radius:var(--r);transform:translateY(-4px);opacity:0;
    transition:transform .16s ease, opacity .14s ease}
  .vyber-pod.vyber-nad .vyber-okno{transform:translateY(4px)}
  .vyber-panel.vyber-pod.je-otvoreny .vyber-okno{transform:none;opacity:1}
  .vyber-pod .vyber-zoznam{padding:6px}
  /* Dlhý názov krmiva sa zalomí – kým bol zoznam najviac 340 px a tlačidlo
     širšie, názvy v Pripomienkach boli orezané (majiteľ 25. 9. 2026). */
  .vyber-pod .vyber-polozka{min-height:40px;padding:8px 12px;white-space:normal;line-height:1.3;text-align:left}
}

/* Na telefóne je to vysúvací panel zdola, nie okno na strede – palec má
   zoznam pri sebe a je to ten istý pohyb, aký má panel filtrov aj katalógu.
   Hlavička (nadpis + krížik) je tá istá ako pri paneli katalógu (`.mkat-hl`). */
@media(max-width:720px){
  .vyber-hladaj{width:auto;margin:10px 10px 0}
  .vyber-hl{display:flex;align-items:center;gap:10px;padding:0 10px 8px 18px;
    border-bottom:1px solid var(--line);user-select:none;-webkit-user-select:none}
  .vyber-hl h2{margin:0;font-size:1rem;letter-spacing:.02em}
  .vyber-x{margin-left:auto;width:44px;height:44px;border:0;background:none;
    color:var(--ink-soft);font-size:1.6rem;line-height:1;cursor:pointer;
    touch-action:manipulation}
  .vyber-okno{left:0;top:auto;bottom:0;width:100%;max-height:72%;
    border-radius:var(--r-lg) var(--r-lg) 0 0;border-bottom:0;
    transform:translateY(102%);opacity:1;
    padding-bottom:env(safe-area-inset-bottom, 0px)}
  .vyber-panel.je-otvoreny .vyber-okno{transform:none}
  .vyber-panel .vyber-uchyt{display:block;margin:10px auto}
  .vyber-zoznam{padding:8px 10px 14px}
  .vyber-polozka{min-height:52px}
}

/* ==========================================================================
   Formulár zvieraťa: dlaždice a pilulky namiesto systémových zoznamov
   --------------------------------------------------------------------------
   Podoba je z návrhu. Údaje ani validácia sa nemenia — `<select>` ostáva
   v dokumente ako model, drží hodnotu aj `required`, len ho nevidno.
   Je to zároveň pravidlo projektu: kde má program vlastný vzhľad, nemá tam
   byť prvok od prehliadača.
   ========================================================================== */
.uc-pole:has(.uc-pilulky) .vyber{position:absolute;width:1px;height:1px;
  overflow:hidden;clip-path:inset(50%);pointer-events:none}
/* Pole je `<label>`: klik na prázdne miesto vedľa dlaždíc by otvoril skrytý `<select>`
   (majiteľ 13. 10. 2026 – po zrušení Farmy ostalo prázdne miesto a otváral sa zoznam).
   Klikať sa dá len na dlaždice a pilulky. */
.uc-pole:has(.uc-pilulky){pointer-events:none}
.uc-pole:has(.uc-pilulky) .uc-pilulky{pointer-events:auto}

.uc-pilulky{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px}
.uc-pilulky button{
  all:unset;box-sizing:border-box;cursor:pointer;
  padding:9px 15px;border:1.5px solid var(--line-2);border-radius:999px;
  background:var(--v-okne);color:var(--ink-2);
  font-family:var(--text);font-size:.85rem;font-weight:600;
  transition:border-color .18s, color .18s, background .18s}
.uc-pilulky button:hover{border-color:var(--red);color:var(--red-dk)}
.uc-pilulky button.on{border-color:var(--red);color:var(--red-dk);background:var(--red-soft)}
.uc-pilulky button[disabled]{opacity:.45;cursor:default}
.uc-pilulky button:focus-visible{outline:2.5px solid var(--red);outline-offset:2px}

/* Druh zvieraťa je rad dlaždíc s ikonou — päť rovnakých stĺpcov ako v paneli
   Katalóg, nech to zákazník pozná. */
.uc-pilulky.je-dlazdice{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px}
.uc-pilulky.je-dlazdice button{
  flex-direction:column;display:flex;align-items:center;gap:4px;
  padding:9px 2px 8px;border-radius:var(--r);
  font-family:var(--head);text-transform:uppercase;letter-spacing:.03em;
  font-size:.6rem;text-align:center;line-height:1.1}
.uc-pilulky.je-dlazdice svg{width:min(40px,100%);height:40px;margin:-7px 0;fill:currentColor}

/* Hlavička „Povedzte nám, kto u vás býva" so siluetami. */
.mz-hlava{position:relative;overflow:hidden;border-radius:var(--r-lg);
  padding:18px 16px 16px;margin:0 0 14px;text-align:center;
  background:linear-gradient(160deg, var(--red-soft) 0%, var(--v-okne) 78%);
  border:1px solid var(--red-soft-2)}
.mz-hlava .silueta{position:absolute;bottom:-18px;width:104px;height:104px;
  color:var(--red);opacity:.12;pointer-events:none}
.mz-hlava .silueta.vlavo{left:-16px}
.mz-hlava .silueta.vpravo{right:-16px;transform:scaleX(-1)}
.mz-hlava .silueta svg{width:100%;height:100%;fill:currentColor}
.mz-hlava b{position:relative;display:block;font-family:var(--head);
  text-transform:uppercase;font-size:1.05rem;line-height:1.15;margin-bottom:7px}
.mz-hlava p{position:relative;margin:0;font-size:.8rem;color:var(--ink-2);line-height:1.5}

/* Číslovaný krok. */
.mz-krok{display:flex;align-items:center;gap:9px;margin:0 0 10px}
.mz-krok i{width:22px;height:22px;border-radius:999px;background:var(--red);
  color:var(--na-cervenom);font-style:normal;font-size:.68rem;font-weight:700;
  display:grid;place-items:center;flex:0 0 auto}
.mz-krok b{font-family:var(--head);text-transform:uppercase;font-size:.82rem;
  letter-spacing:.06em}
.mz-krok span{margin-left:auto;font-size:.68rem;color:var(--ink-soft)}

/* ==========================================================================
   Pätička na telefóne
   --------------------------------------------------------------------------
   V jednom stĺpci mala pätička sedem odkazov navigácie pod sebou, pod nimi
   kontakt a pod tým odkazy na dokumenty — z konca stránky sa stal dlhý chvost,
   ktorý nikto neprejde.

   Navigácia a kontakt sú krátke zoznamy a vedľa seba sa na telefón zmestia.
   Odstavec o predajni tam nie je: to isté, len dlhšie, stojí na stránke nad
   ním. Logo ostáva — je to jediné miesto, kde je vidieť, čia stránka to je.
   ========================================================================== */
@media(max-width:760px){
  footer{padding:36px 0 20px;font-size:.88rem}

  .f-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:22px 18px;margin-bottom:24px}
  /* Prvý stĺpec (logo, názov, socials) je cez celú šírku, zvyšné dva vedľa. */
  .f-grid > :first-child{grid-column:1 / -1}
  .f-grid > :first-child p{display:none}
  .f-grid > :first-child img{width:56px;height:auto;margin-bottom:10px}

  footer h4{font-size:.74rem;letter-spacing:.14em;margin:0 0 10px}
  footer ul{gap:7px}
  /* Odkazy v pätičke sú na telefóne aj dotykový cieľ, nielen text. */
  footer ul a{display:inline-block;padding:3px 0}

  .socials{gap:12px;margin-top:12px}
  .socials a{width:40px;height:40px;display:grid;place-items:center;
    border-radius:999px;background:rgba(255,255,255,.08)}

  .f-bottom{padding-top:16px;gap:10px;font-size:.78rem}
}

/* ---------- Môj maznák: tri karty podľa návrhu ----------
   Uvítanie, „1 O zvierati", „2 A ešte niečo o vás". Jeden dlhý formulár tu
   bol a nebolo z neho vidieť, kde končí povinné a kde začína dobrovoľné. */
.mz-karta{background:var(--panel);border:1px solid var(--karta-ram);
  border-radius:var(--r);padding:13px;box-shadow:var(--tien-jemny)}
.mz-karta + .mz-krok{margin-top:18px}

/* Prepínač „Ukazovať mi rovno len krmivo pre moje zviera". Vlastný, nie
   systémové zaškrtávatko — na každom telefóne vyzerá inak a tu má byť
   v tom istom jazyku ako zvyšok. */
.uc-prepnut{display:flex;align-items:center;gap:11px;margin-top:14px;
  padding:11px;border-radius:11px;cursor:pointer;
  background:var(--bg-soft);border:1.5px solid var(--line);
  transition:border-color .2s, background .2s}
.uc-prepnut.on{border-color:var(--red);background:var(--red-soft)}
.uc-prepnut input{position:absolute;opacity:0;width:0;height:0}
.uc-drah{position:relative;flex:0 0 auto;width:38px;height:22px;border-radius:999px;
  background:var(--line-2);transition:background .22s}
.uc-prepnut.on .uc-drah{background:var(--red)}
.uc-drah b{position:absolute;top:3px;left:3px;width:16px;height:16px;
  border-radius:999px;background:var(--na-cervenom);display:block;
  transition:transform .22s cubic-bezier(.34,1.4,.64,1)}
.uc-prepnut.on .uc-drah b{transform:translateX(16px)}
.uc-prepnut-t{font-size:.84rem;font-weight:600;line-height:1.35}
.uc-prepnut-t span{display:block;font-weight:400;font-size:.74rem;color:var(--ink-soft)}
.uc-prepnut input:focus-visible + .uc-drah{outline:2.5px solid var(--red);outline-offset:3px}

/* Uložiť zviera cez celú šírku riadka — je to jediná akcia karty. */
.uc-akcie-cele{display:block;margin-top:13px}
.uc-akcie-cele .btn{display:block;width:100%}
.uc-akcie-cele .uc-lnk{display:block;width:100%;margin-top:9px;text-align:center}
.uc-crsz{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px;grid-column:1/-1}
.uc-crsz-zoz{display:flex;flex-wrap:wrap;gap:8px;width:100%}
.uc-crsz-zoz[hidden]{display:none}
.uc-akcie-cele .uc-msg{display:block;margin-top:8px;text-align:center}

/* ---------- suroviny v profile zvieraťa ----------
   Zoznam je ten istý, aký má filter v katalógu. Zložený: rozsypaných
   stodvadsať surovín by z formulára spravilo stenu a väčšina zvierat
   žiadnu alergiu nemá. Kto ju má, klikne. */
.uc-suroviny{margin-top:12px;border:1.5px solid var(--line);border-radius:11px;
  background:var(--bg-soft);overflow:hidden}
.uc-suroviny > summary{
  display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;
  padding:11px 13px;font-size:.84rem;font-weight:600;color:var(--ink-2)}
.uc-suroviny > summary::-webkit-details-marker{display:none}
.uc-suroviny > summary::after{
  content:'';margin-left:auto;width:9px;height:9px;flex:0 0 auto;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg) translate(-2px,-2px);transition:transform .2s}
.uc-suroviny[open] > summary::after{transform:rotate(-135deg) translate(-2px,-2px)}
.uc-suroviny > summary em{font-style:normal;font-weight:400;font-size:.74rem;
  color:var(--ink-soft)}
.uc-sur-pocet{min-width:20px;height:20px;padding:0 6px;border-radius:999px;
  background:var(--red);color:var(--na-cervenom);font-size:.68rem;
  display:grid;place-items:center;order:3}
.uc-sur-pocet[hidden]{display:none}
.uc-sur-pozn{margin:0;padding:0 13px 9px;font-size:.74rem;color:var(--ink-soft);
  line-height:1.45}
.uc-sur-sk{padding:0 13px 11px}
.uc-sur-sk b{display:block;font-family:var(--head);text-transform:uppercase;
  letter-spacing:.07em;font-size:.66rem;color:var(--ink-soft);margin-bottom:6px}
.uc-sur-p{display:flex;flex-wrap:wrap;gap:6px}
.uc-sur{display:inline-flex;align-items:center;cursor:pointer;
  padding:6px 12px;border:1.5px solid var(--line-2);border-radius:999px;
  background:var(--v-okne);font-size:.79rem;font-weight:600;color:var(--ink-2);
  transition:border-color .18s, color .18s, background .18s}
.uc-sur input{position:absolute;opacity:0;width:0;height:0}
.uc-sur.on{border-color:var(--red);color:var(--red-dk);background:var(--red-soft);
  text-decoration:line-through}
.uc-sur input:focus-visible + span{outline:2.5px solid var(--red);outline-offset:3px}

/* „nepovinné" pri názve poľa — tichšie než samotný názov, aby bolo jasné,
   čo sa musí a čo môže. Používa to krok 2 v Mojom maznákovi aj bonusové
   polia (presný vek, hmotnosť). */
.uc-pole > span em{font-style:normal;font-weight:400;text-transform:none;
  letter-spacing:0;color:var(--ink-soft)}

/* ==========================================================================
   Jeden recept na povrchy — mobil aj počítač
   --------------------------------------------------------------------------
   Päť obrazoviek spodnej lišty vyzeralo každá trochu inak: katalóg mal
   plávajúce dlaždice s tieňom, filter ploché pilulky, maznák biele karty
   s linkou a bez tieňa. Vedľa seba to pôsobilo ako tri weby.

   Recept je ten istý, aký má `.card` na veľkej obrazovke, takže sa mobil
   zjednocuje S DESKTOPOM, nie proti nemu:

     plocha    = `--bg-soft`   (podklad panela či obrazovky)
     prvok     = `--v-okne` + priehľadný rám + `--tien-jemny`
     zvolený   = `--red-soft` + červený rám, bez tieňa (leží, nie pláva)

   Kto pridá ďalšiu obrazovku, drží sa toho istého. Farby ani tiene sa
   nepíšu natvrdo — sú to premenné a menia sa na jednom mieste.

   Do 23. 9. 2026 to celé stálo v `@media(max-width:900px)`, hoci nadpis
   hovoril „mobil aj počítač". Na počítači mal preto Môj maznák biele ploché
   karty a biele polia, ktoré na nich zmizli — majiteľ to pripomínal už na
   mobile. Recept platí na každej šírke; nová podoba ho už len berie.
   ========================================================================== */

  /* ----- karty ----- */
  .mz-karta{
    background:var(--sklo);border-color:var(--sklo-ram);
    box-shadow:var(--tien-jemny)}

  /* Uvítacia hlavička má vlastný prechod — dostane len tieň, nie inú farbu,
     inak by prestala byť tým, čím je: jedinou červenou vecou na obrazovke. */
  .mz-hlava{box-shadow:var(--tien-jemny)}

  /* ----- pilulky a dlaždice ----- */
  .uc-pilulky button,
  .uc-sur{
    border-color:var(--sklo-ram);background:var(--sklo);
    box-shadow:var(--tien-jemny)}
  .uc-pilulky button.on,
  .uc-sur.on{
    border-color:var(--red);background:var(--red-soft);box-shadow:none}
  .uc-pilulky button[disabled]{box-shadow:none}

  /* Ikona v dlaždici bola tenká čiara v šedej. V katalógu je v tej istej
     veľkosti a farbe ako text dlaždice — nech to zákazník pozná. */
  .uc-pilulky.je-dlazdice svg{width:min(41px,100%);height:41px;margin:-7px 0}
  .uc-pilulky.je-dlazdice button.on svg{color:var(--red)}

  /* ----- vstupné polia ----- */
  /* Aj ony ležia na mäkkej ploche, takže potrebujú to isté: bielu a jemný
     tieň namiesto linky, ktorá sa na nej stráca. */
  /* Polia tu vlastný vzhľad NEMAJÚ — berú spoločný recept nižšie. Tento
     prepis z nich robil sklovité polia s tichým rámom, kým rezervácia mala
     plné biele, a bolo to na dvoch snímkach vedľa seba hneď vidieť. */

  /* Prepínač „ukazovať len moje" a zložený zoznam surovín sú tiež prvky
     na ploche, nie rámčeky v texte. */
  .uc-prepnut,
  .uc-suroviny{
    border-color:var(--sklo-ram);background:var(--sklo);
    box-shadow:var(--tien-jemny)}
  .uc-prepnut.on{border-color:var(--red);background:var(--red-soft);box-shadow:none}

/* Hlavička skupiny surovín: názov a pri ňom tlačidlo na celú skupinu. */
.uc-sur-hl{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.uc-sur-hl b{margin:0}
.uc-sur-vse{
  all:unset;box-sizing:border-box;margin-left:auto;cursor:pointer;
  padding:4px 10px;border-radius:999px;background:var(--red-soft);
  color:var(--red-dk);font-family:var(--text);font-size:.7rem;font-weight:600;
  white-space:nowrap}
.uc-sur-vse:hover{background:var(--red-soft-2)}
.uc-sur-vse:focus-visible{outline:2.5px solid var(--red);outline-offset:2px}

/* ---------- popisky polí sú všade rovnaké ----------
   Kontakt sa pýta na troch miestach — v rezervácii, pri registrácii a
   v druhom kroku Môjho maznáka. Mal tri rôzne tvary popiskov: raz veľké
   písmená s preložením, raz tučné malé, raz obyčajné. Je to tá istá otázka,
   tak má vyzerať rovnako; predlohou je popisok z návrhu (`pole-lb`). */
.uc-pole > span,
#rezForm .field > label,
.kontakt-blok .field > label{
  font-family:var(--text);font-size:.68rem;font-weight:600;
  text-transform:uppercase;letter-spacing:.07em;color:var(--ink-soft);
  margin-bottom:6px;display:block}
.uc-pole > span em,
#rezForm .field > label em{
  font-style:normal;font-weight:500;text-transform:none;letter-spacing:0}
/* Medzeru pod popiskom nesie v `uc-pole` rozostup bloku, inak by sa
   pripočítala k okraju popisku a pole by sadlo o 5 px nižšie než v rezervácii. */
.uc-pole > span{margin-bottom:0}

/* ---------- vstupné pole je na celom webe JEDNO ----------
   Popisky sa zjednotili skôr, samotné polia nie — a bolo to vidieť na prvý
   pohľad: v rezervácii biele, 13 × 15, rohy 7; v Mojom maznákovi sklovité,
   11 × 13, rohy 10; k tomu dva mobilné prepisy v `rezervacia.css`, ktoré
   pozadie menili ešte raz. Je to tá istá otázka na tých istých kartách, tak
   má vyzerať rovnako.

   Pole je plné biele aj na sklenenej karte: sklo je povrch karty, pole je
   miesto, kam sa píše, a to má byť na prvý pohľad iné než karta pod ním.
   Kto pridá ďalší formulár, siahne sem a nepíše štvrtý recept. */
.field input,.field textarea,.field select,
.uc-pole input,.uc-pole select,.uc-pole textarea,.uc-vstup{
  width:100%;box-sizing:border-box;
  padding:13px 15px;border:1px solid var(--line);border-radius:11px;
  font:inherit;font-size:.95rem;background:var(--v-okne);color:var(--ink);
  /* Hĺbka ako pri kartách a pilulkách (`--tien-jemny`) a k nej tenký rám
     vo farbe linky. Biely rám na bielom poli nebolo vidieť a na svetlej
     karte pole splývalo (majiteľ 23. a 24. 9. 2026: „jemné ohraničenie
     a tieň všade"). */
  box-shadow:var(--tien-jemny);
  transition:border-color .16s, box-shadow .16s}
.field input:focus,.field textarea:focus,.field select:focus,
.uc-pole input:focus,.uc-pole select:focus,.uc-pole textarea:focus,.uc-vstup:focus{
  outline:0;border-color:var(--red);
  box-shadow:0 0 0 3px rgba(225,33,31,.12)}

/* ---------- Presný vek: dve krátke políčka s jednotkou ----------
   MUSÍ stáť za jednotným štýlom polí a byť silnejší ako on. Kým stál vyššie,
   `.uc-pole input{width:100%}` dal obom políčkam plnú šírku a popiskový štýl
   `.uc-pole > span` sa prilepil aj na ich obal — jednotky „R." a „MES." tak
   skončili veľkými písmenami POD políčkami, ako keby to boli nadpisy ďalších
   polí. Tak to vyzeralo do 22. 9. 2026 v Mojom maznákovi aj v registrácii. */
.uc-pole > .uc-vek{display:flex;align-items:center;gap:8px;margin:0;
  font-size:inherit;font-weight:inherit;text-transform:none;letter-spacing:0;
  color:inherit}
.uc-pole .uc-vek input{width:72px;flex:0 0 auto;text-align:center}
.uc-pole .uc-vek-j{font-size:.88rem;color:var(--ink-soft);margin-right:10px}
/* Vek: dve polia vedľa seba, vyplní sa jedno a druhé sa dopočíta (25. 9. 2026). */
.uc-vek-dva{display:flex;flex-wrap:wrap;gap:10px 22px}
.uc-vek-cast{display:flex;flex-direction:column;gap:5px}
.uc-vek-cast > small{font-size:.74rem;color:var(--ink-soft)}
.uc-vek-cast .uc-vek{display:flex;align-items:center;gap:8px}
.uc-pole .uc-vek-cast .uc-vek input{width:58px;flex:0 0 auto;text-align:center}
.uc-pole .uc-vek-cast .uc-vek input.uc-vek-rok{width:76px}
.uc-pole .uc-vek-cast .uc-vek-j{margin-right:2px}

/* ---------- súhlas so spracovaním údajov je tiež JEDEN ----------
   Ten istý riadok mal dve mená a dva vzhľady: `consent` v rezervácii
   a na hlavnej stránke, `uc-suhlas` v účte a v Mojom maznákovi. Mená
   ostávajú (sú v troch súboroch HTML aj v skripte), vzhľad je jeden. */
.consent,
.uc-suhlas{
  display:flex;gap:11px;align-items:flex-start;
  font-size:.84rem;line-height:1.55;color:var(--ink-2)}
.consent > span,
.uc-suhlas > span{flex:1 1 auto;min-width:0}
.consent input,
.uc-suhlas input{
  width:18px;height:18px;flex:0 0 auto;margin:.15em 0 0;
  accent-color:var(--red)}
.consent a,
.uc-suhlas a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}

/* ==========================================================================
   Úchytka vysúvacieho panela — JEDNO pravidlo pre celý web
   --------------------------------------------------------------------------
   Boli tri: katalóg a účet 44 × 5 vo `--line`, rezervácia 44 × 5 vo `--line-2`
   a výber zoradenia 36 × 4 vo `--line`, každá s iným odsadením. Je to tá istá
   vec na tom istom mieste toho istého tvaru; kto pridá ďalší panel, siahne
   sem a nekreslí štvrtú.

   Odsadenie je súmerné (10 px hore aj dole), takže nad úchytkou je v každom
   paneli rovnako veľa miesta. Panely, ktoré si nad ňu dávali vlastné
   odsadenie, ho preto nižšie strácajú.
   ========================================================================== */
/* Úchytka je SKUTOČNÝ prvok s triedou `panel-uchyt` — nie kreslená cez
   `::before`. Pseudoprvok sa v cieli ťuknutia neobjaví a hlavne sa mu nedá
   nastaviť `touch-action`, takže prehliadač nad ním gesto zobral pre seba
   a panel sa nedal stiahnuť. */
.panel-uchyt{
  display:block;flex:0 0 auto;position:relative;
  width:44px;height:5px;margin:10px auto;
  border-radius:999px;background:var(--line-2)}
/* Dotyková plocha je 30 px vysoká, hoci čiarka má päť — prst má trafiť
   gesto, nie kresbu. */
.panel-uchyt::after{content:'';position:absolute;left:-40px;right:-40px;
  top:-13px;bottom:-13px}

/* Panel zoradenia končí nad spodnou lištou, rovnako ako ostatné. Cez celú
   výšku prekrýval taby a ťuknutie na ne skončilo na jeho tieni.
   `--mlista-h` je CELÁ výška lišty aj s bezpečnou zónou (meria ju skript) —
   pripočítaná `env(safe-area-inset-bottom)` ju v apke rátala dvakrát a panel
   visel o 34 px nad lištou (majiteľ 24. 9. 2026). Z toho istého dôvodu nad
   lištou okno nepotrebuje ani vlastné odsadenie pre čiarku domov. */
@media(max-width:720px){
  body.ma-mlistu .vyber-panel{bottom:var(--mlista-h, 62px)}
  body.ma-mlistu .vyber-okno{padding-bottom:0}
  .panel-uchyt{cursor:grab;touch-action:none}
  .panel-uchyt:active{cursor:grabbing}
}

/* Kontaktný blok je rovnaký na všetkých troch miestach — v rezervácii, pri
   registrácii aj v druhom kroku Môjho maznáka. Líši sa len tým, čo k tým
   trom poliam patrí navyše: v rezervácii poznámka, pri zakladaní účtu heslo
   a heslo znova. Rozostupy nesie blok, nie jednotlivé polia, aby sa nedali
   rozladiť po jednom. */
.kontakt-blok,
#ucetForm .uc-mriezka,
#ucetForm7 .uc-pole{margin:0}
/* Rozostup medzi poliami nesie blok, nie polia. Druhý krok Môjho maznáka ho
   nemal žiadny (`#ucetForm7 .uc-pole{margin:0}` a nič namiesto toho), takže
   polia na seba nadväzovali natesno, kým v rezervácii mali medzi sebou
   medzeru. */
.kontakt-blok,
#ucetForm7 .uc-polia{display:flex;flex-direction:column;gap:11px}
.kontakt-blok .field,
.kontakt-blok .uc-pole{margin:0}
.kontakt-blok .field > em,
.uc-pole > span em{font-style:normal;font-weight:500;text-transform:none;
  letter-spacing:0;color:var(--ink-soft)}

/* ==========================================================================
   Môj maznák — podoba okna účtu
   --------------------------------------------------------------------------
   Návrh: https://claude.ai/artifact/9dfB9XSaTCUqkc6YTo6d7L, obrazovky 2 a 4.
   Všetko visí na `.ma-maznak` na <html> (nastavuje ju `ucet.js`, trvalo).
   ========================================================================== */

/* Hlavné tlačidlá v okne sú červené sklo ako všade inde na webe, nie tmavé.
   Majiteľ: „nie čierne". */
.ma-maznak .uc-box .btn-red,
.ma-maznak .uc-box form[data-akcia="registracia"] .btn-red{
  background:var(--cta);color:#fff;border-color:transparent;
  box-shadow:var(--cta-lesk), var(--cta-tien)}
.ma-maznak .uc-box .btn-red:hover,
.ma-maznak .uc-box form[data-akcia="registracia"] .btn-red:hover{
  background:var(--cta);filter:brightness(1.06);
  box-shadow:var(--cta-lesk-h), var(--cta-tien-hover)}

/* Maznák na počítači: polia v dvoch stĺpcoch potrebujú širšie okno. */
@media(min-width:901px){
  .ma-maznak .uc-modal.uc-siroke .uc-box{max-width:820px}
}

/* ==========================================================================
   Nový maznák na jednej obrazovke (vypínač MZN_ZAP v ucet.js, náhľad ?mzn=1)
   --------------------------------------------------------------------------
   Návrh https://claude.ai/artifact/XE5NoBuzry7Swy2fPr6PTB, verzia 2, kópia
   nastroje/navrhy/novy-maznak.html (majiteľ 7. 10. 2026): počítač rozloženie
   A, telefón C (tri kroky), výber posuvným prepínačom. Hodnoty 1:1 z návrhu.
   Všetko visí na `.uc-modal.mzn` – bez vypínača sa nič z toho neuplatní.
   ========================================================================== */
.uc-modal.mzn #ucetTelo{display:flex;flex-direction:column;gap:12px}
.uc-modal.mzn .mzn-form{display:contents}
.uc-modal.mzn .uc-pole{margin:0;gap:6px;min-width:0}
.uc-modal.mzn .mzn-nadpis{order:0;margin:-40px 56px 0 0;min-height:40px;display:flex;align-items:center;
  font-size:1.25rem;letter-spacing:.04em}
.uc-modal.mzn .mzn-kroky{order:1;display:none}
.uc-modal.mzn .mzn-hore{order:2}
.uc-modal.mzn .mzn-aky{order:3}
.uc-modal.mzn .mzn-doplnky{order:4}
.uc-modal.mzn .mzn-ucet{order:5}
.uc-modal.mzn .mzn-dole{order:6}
.uc-modal.mzn .mzn-spodok{order:7;display:flex;gap:14px;align-items:center;justify-content:center}
.uc-modal.mzn .mzn-spodok:has(.uc-msg:empty){display:none}
.uc-modal.mzn .uc-msg{margin:0}

/* scéna z karty profilu (Moje zvieratá B) so živým zvieraťom */
.uc-modal.mzn .mzn-hore{position:relative;overflow:hidden;display:grid;grid-template-columns:170px 1fr;gap:16px;
  align-items:center;padding:14px 16px 14px 8px;border-radius:var(--r);border:1px solid var(--karta-ram);
  box-shadow:var(--tien-jemny);
  background:radial-gradient(120% 90% at 50% 100%,#fff 0%,rgba(255,255,255,0) 60%),linear-gradient(160deg,var(--red-soft) 0%,#F6EEE6 70%)}
.uc-modal.mzn .mzn-zviera{display:grid;place-items:center;width:150px;height:150px;margin:-6px 0 -18px;
  color:var(--zlato-ink);filter:drop-shadow(0 10px 10px rgba(78,58,44,.22));transition:opacity .2s}
.uc-modal.mzn .mzn-zviera svg{width:150px;height:150px;fill:currentColor}
.uc-modal.mzn .mzn-zviera.je-plemeno::before{content:"";width:160px;height:160px;background:currentColor;
  -webkit-mask:var(--plemeno) center/contain no-repeat;mask:var(--plemeno) center/contain no-repeat}
.uc-modal.mzn .mzn-zviera.prazdne{opacity:.35}
.uc-modal.mzn .mzn-popis{display:none}
.uc-modal.mzn .mzn-kto{display:flex;flex-direction:column;gap:10px;min-width:0}

/* dlaždice druhu – malé (návrh `.druhy.male`) */
.uc-modal.mzn .uc-pilulky.je-dlazdice{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:10px;margin-top:0}
.uc-modal.mzn .uc-pilulky.je-dlazdice button{display:flex;flex-direction:column;align-items:center;gap:4px;
  padding:7px 2px 6px;border-radius:var(--r);background:var(--v-okne);border:1.5px solid var(--line);box-shadow:none;
  font-family:var(--head);text-transform:uppercase;letter-spacing:.03em;font-size:.6rem;color:var(--ink-2);text-align:center;line-height:1.1}
.uc-modal.mzn .uc-pilulky.je-dlazdice svg{width:34px;height:34px;margin:-5px 0 0;fill:currentColor}
.uc-modal.mzn .uc-pilulky.je-dlazdice button.on{border-color:var(--red);color:var(--red);background:var(--red-soft)}
.uc-modal.mzn .uc-pilulky.je-dlazdice button.on svg{color:var(--red)}

/* otázky v troch stĺpcoch */
.uc-modal.mzn .mzn-aky{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px;
  background:var(--panel);border:1px solid var(--karta-ram);border-radius:var(--r);box-shadow:var(--tien-jemny)}
.uc-modal.mzn .mzn-aky .uc-pole-plemeno{grid-column:span 2}
.uc-modal.mzn .mzn-aky .uc-pole[hidden]{display:none}

/* posuvný prepínač – jedna dráha na otázku, zvolené je sklenená kvapka */
.uc-modal.mzn .uc-pilulky.je-seg,.kz .uc-pilulky.je-seg,.uc-vd .uc-pilulky.je-seg{display:flex;flex-wrap:nowrap;gap:4px;padding:4px;margin-top:0;border-radius:12px;
  background:rgba(78,58,44,.09);box-shadow:inset 0 1px 2px rgba(78,58,44,.10)}
.uc-modal.mzn .uc-pilulky.je-seg button,.kz .uc-pilulky.je-seg button,.uc-vd .uc-pilulky.je-seg button{flex:1 1 0;min-width:0;text-align:center;line-height:1.68;padding:10px 6px;border:0;border-radius:9px;
  background:transparent;box-shadow:none;font-size:.86rem;font-weight:600;color:var(--ink-2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .18s,color .18s,box-shadow .18s}
.uc-modal.mzn .uc-pilulky.je-seg button:hover,.kz .uc-pilulky.je-seg button:hover,.uc-vd .uc-pilulky.je-seg button:hover{color:var(--ink)}
.uc-modal.mzn .uc-pilulky.je-seg button.on,.kz .uc-pilulky.je-seg button.on,.uc-vd .uc-pilulky.je-seg button.on{background:rgba(255,255,255,.95);color:var(--ink);
  box-shadow:inset 0 1px 1px #fff,0 4px 10px -5px rgba(78,58,44,.45)}

/* Doplniť – nepovinné veci v malom okne */
.uc-modal.mzn .mzn-doplnky{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.uc-modal.mzn .mzn-doplnky > b{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;
  color:var(--ink-soft);margin-right:4px}
.uc-modal.mzn .mzn-dopl{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;gap:6px;
  padding:7px 12px;border-radius:999px;background:var(--sklo);border:1px solid var(--sklo-ram);box-shadow:var(--sklo-tien);
  font-size:.8rem;font-weight:600;color:var(--ink-2);white-space:nowrap}
.uc-modal.mzn .mzn-dopl::before{content:"+";color:var(--red);font-weight:700}
.uc-modal.mzn .mzn-dopl.ma::before{content:"✓";color:var(--ok)}
.uc-modal.mzn .mzn-dopl:hover{color:var(--ink);background:rgba(255,255,255,.9)}
.uc-modal.mzn .mzn-dopl:focus-visible{outline:2.5px solid var(--red);outline-offset:2px}
.uc-modal.mzn .mzn-zaclona{position:absolute;inset:0;z-index:5;background:rgba(46,36,29,.25);border-radius:inherit}
.uc-modal.mzn .mzn-panel{position:absolute;z-index:6;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(460px,calc(100% - 32px));max-height:min(78%,560px);overflow:auto;box-sizing:border-box;
  padding:16px 18px 18px;background:var(--panel);border:1px solid var(--karta-ram);border-radius:22px;
  box-shadow:0 40px 80px -24px rgba(46,36,29,.55),0 2px 6px -3px rgba(46,36,29,.4)}
.uc-modal.mzn .mzn-zaclona[hidden],.uc-modal.mzn .mzn-panel[hidden]{display:none}
.uc-modal.mzn .mzn-panel-hl{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.uc-modal.mzn .mzn-panel-hl b{font-family:var(--head);text-transform:uppercase;letter-spacing:.04em;font-size:1.05rem}
.uc-modal.mzn .mzn-panel .mzn-hotovo{padding:9px 16px;font-size:.8rem}
.uc-modal.mzn .mzn-panel .uc-suroviny{margin:0}
/* Alergie = návrh D (https://claude.ai/artifact/Jm1FiPh5KQ72kG3Zp2yoK8, verzia 2): vybrané hore,
   hľadanie, skupiny s počtom, pilulky v mriežke rovnako širokých. */
.uc-modal.mzn .mzn-panel[data-mzn-panel="alergie"]{width:min(540px,calc(100% - 32px))}
.uc-modal.mzn .mzn-sur{border:0;padding:0;background:none;box-shadow:none;display:flex;flex-direction:column;gap:14px}
.uc-modal.mzn .mzn-sur-vybr,.uc-modal.mzn .mzn-diety-vybr{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:10px 12px;border-radius:14px;border:1px solid var(--karta-ram);
  background:radial-gradient(120% 90% at 50% 100%,#fff 0%,rgba(255,255,255,0) 60%),linear-gradient(160deg,var(--red-soft) 0%,#F6EEE6 70%)}
.uc-modal.mzn .mzn-sur-vybr > span:first-child,.uc-modal.mzn .mzn-diety-vybr > span:first-child{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-soft);margin-right:4px}
.uc-modal.mzn .mzn-sur-zoz,.uc-modal.mzn .mzn-diety-zoz{display:contents}
.uc-modal.mzn .mzn-sur-nic{font-size:.8rem;color:var(--ink-soft)}
.uc-modal.mzn .mzn-sur-nic[hidden]{display:none}
/* Vybrané na scéne = .vp z návrhu Výber v Zdraví a Alergiách (nastroje/navrhy/vyber-zdravie-alergie.html): diéta „chcem“ plná červená s fajkou, surovina „nechcem“ jemná červená prečiarknutá. */
.uc-modal.mzn .mzn-vp{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;line-height:1.55;border:1.5px solid var(--red);border-radius:999px;font-size:.79rem;font-weight:600}
.uc-modal.mzn .mzn-vp.chcem{background:var(--red);color:#fff;box-shadow:var(--cta-lesk),0 6px 12px -8px rgba(140,26,26,.7)}
.uc-modal.mzn .mzn-vp.chcem::before{content:"✓";font-size:.78rem}
.uc-modal.mzn .mzn-vp.nechcem{background:var(--red-soft);color:var(--red-dk);text-decoration:line-through}
.uc-modal.mzn .mzn-vp:focus-visible{outline:2.5px solid var(--red);outline-offset:2px}
.uc-modal.mzn .mzn-sur .uc-sur-sk{padding:0;display:flex;flex-direction:column;gap:8px}
.uc-modal.mzn .mzn-sur .uc-sur-sk[hidden]{display:none}
.uc-modal.mzn .mzn-sur .uc-sur-hl{margin:0;gap:8px}
.uc-modal.mzn .mzn-sur .uc-sur-hl b{font-family:var(--head);text-transform:uppercase;letter-spacing:.07em;font-size:.7rem;color:var(--ink-soft);margin:0}
.uc-modal.mzn .mzn-sur .uc-sur-hl .mzn-ik{width:16px;height:16px;flex:0 0 auto;color:var(--ink-soft);fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.uc-modal.mzn .mzn-sur-poc{font-size:.7rem;font-weight:700;color:var(--red-dk);background:var(--red-soft);border-radius:999px;padding:1px 7px}
.uc-modal.mzn .mzn-sur-poc[hidden]{display:none}
/* Štítky na šírku textu = variant C návrhu Výber v Zdraví a Alergiách (8. 10. 2026): jeden riadok, výška 36 px, zalamujú sa do riadkov. Hodnoty 1:1 z .p.s. */
.uc-modal.mzn .mzn-sur .uc-sur-p{display:flex;flex-wrap:wrap;gap:6px}
.uc-modal.mzn .mzn-sur .uc-sur-p .uc-sur{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;
  border:1.5px solid var(--line);border-radius:999px;background:var(--sklo);box-shadow:var(--tien-jemny);font-size:.79rem;font-weight:600;color:var(--ink-2);white-space:nowrap}
.uc-modal.mzn .mzn-sur .uc-sur-p .uc-sur input{position:absolute;opacity:0;width:0;height:0}
.uc-modal.mzn .mzn-sur .uc-sur-p .uc-sur:has(input:focus-visible){outline:2.5px solid var(--red);outline-offset:2px}
.uc-modal.mzn .mzn-sur .uc-sur[hidden]{display:none}
.uc-modal.mzn .mzn-sur .uc-sur-pozn{padding:0}
/* Nevybraný štítok na bielom paneli: rám `--sklo-ram` je biely (.85), preto splýval s pozadím. Rám je `--line`, tieň `--tien-jemny` (oprava 8. 10. 2026 ostáva). */
.uc-modal.mzn .mzn-sur .uc-sur-p .uc-sur.ziadne.on{text-decoration:none}
.uc-modal.mzn .mzn-sur .uc-sur-p .uc-sur.on{border-color:var(--red);background:var(--red-soft);color:var(--red-dk);text-decoration:line-through}
/* Riadok „Plný názov“ (.plny z návrhu) */
.uc-modal.mzn .mzn-plny{display:flex;gap:8px;align-items:baseline;font-size:.78rem;color:var(--ink-2);min-height:1.5em;padding:0 2px}
.uc-modal.mzn .mzn-plny b{font-family:var(--head);text-transform:uppercase;letter-spacing:.05em;font-size:.68rem;color:var(--ink-soft);font-weight:600}
/* Zdravie a diéta: okno z nastroje/navrhy/zdravie-a-dieta.html (A); výber je štítok z nastroje/navrhy/vyber-zdravie-alergie.html (C), 8. 10. 2026.
   Vybraná diéta je plná červená (nie prečiarknutá). Hodnoty 1:1 z návrhu (.p.s, .s.on.chcem, .plny). */
.uc-modal.mzn .mzn-panel[data-mzn-panel="zdravie"]{width:min(540px,calc(100% - 32px))}
.uc-modal.mzn .mzn-diety{display:flex;flex-direction:column;gap:14px}
.uc-modal.mzn .mzn-dz{all:unset;box-sizing:border-box;position:relative;cursor:pointer;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 13px;
  border:1.5px solid var(--line);border-radius:999px;background:var(--sklo);box-shadow:var(--tien-jemny);font-size:.79rem;font-weight:600;color:var(--ink-2);white-space:nowrap}
.uc-modal.mzn .mzn-dz input{position:absolute;opacity:0;width:0;height:0}
.uc-modal.mzn .mzn-dz .mzn-ik{width:15px;height:15px;flex:0 0 auto;color:var(--ink-soft);fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.uc-modal.mzn .mzn-dz.on{border-color:var(--red);background:var(--red);color:#fff;box-shadow:var(--cta-lesk),0 6px 12px -8px rgba(140,26,26,.7)}
.uc-modal.mzn .mzn-dz.on .mzn-ik{color:#fff}
.uc-modal.mzn .mzn-dz:has(input:focus-visible),.uc-modal.mzn .mzn-dz:focus-visible{outline:2.5px solid var(--red);outline-offset:2px}
.uc-modal.mzn .mzn-diety-g{display:flex;flex-wrap:wrap;gap:6px}
.uc-modal.mzn .mzn-diety-skh{display:flex;align-items:center;gap:8px;font-family:var(--head);text-transform:uppercase;letter-spacing:.07em;font-size:.7rem;color:var(--ink-soft)}
.uc-modal.mzn .mzn-diety-pozn{margin:0;font-size:.76rem;color:var(--ink-soft);line-height:1.45}
/* Presný vek = návrh A (https://claude.ai/artifact/Jm1FiPh5KQ72kG3Zp2yoK8): prepínač,
   krokovače − / +, dátum v troch poliach, výsledok na scéne. Hodnoty 1:1 z návrhu. */
.uc-modal.mzn .mzn-panel[data-mzn-panel="vek"]:not([hidden]){display:flex;flex-direction:column;gap:14px}
.uc-modal.mzn .mzn-panel[data-mzn-panel="vek"] .mzn-panel-hl{margin:0}
.uc-modal.mzn .mzn-panel[data-mzn-panel="vek"]{width:min(540px,calc(100% - 32px))}
.uc-modal.mzn .mzn-vek-kolko{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.uc-modal.mzn .mzn-vek-datum{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:10px}
.uc-modal.mzn .mzn-vek-datum .uc-vstup{text-align:center;font-variant-numeric:tabular-nums}
.uc-modal.mzn .mzn-vek-kolko[hidden],.uc-modal.mzn .mzn-vek-datum[hidden]{display:none}
.uc-modal.mzn .mzn-krokovac{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px;border-radius:14px;
  background:var(--v-okne);border:1px solid var(--line);box-shadow:var(--tien-jemny)}
.uc-modal.mzn .mzn-kb{all:unset;box-sizing:border-box;cursor:pointer;flex:0 0 auto;width:40px;height:40px;border-radius:50%;
  display:grid;place-items:center;background:var(--sklo);border:1px solid var(--sklo-ram);box-shadow:var(--sklo-tien);
  font-size:1.3rem;line-height:1;color:var(--ink-2);transition:background .15s,transform .2s cubic-bezier(.34,1.56,.64,1)}
.uc-modal.mzn .mzn-kb.plus{color:var(--red)}
.uc-modal.mzn .mzn-kb:hover{background:rgba(255,255,255,.95);transform:scale(1.06)}
.uc-modal.mzn .mzn-kb:focus-visible{outline:2.5px solid var(--red);outline-offset:2px}
.uc-modal.mzn .mzn-kh{display:flex;flex-direction:column;align-items:center;gap:4px;line-height:1;min-width:0}
.uc-modal.mzn .mzn-kh input{all:unset;box-sizing:border-box;width:3ch;text-align:center;font-family:var(--head);font-size:2rem;
  line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.uc-modal.mzn .mzn-kh input::placeholder{color:var(--ink)}
.uc-modal.mzn .mzn-kh input:focus-visible{outline:2px solid var(--red);outline-offset:2px;border-radius:6px}
.uc-modal.mzn .mzn-kh span{font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.uc-modal.mzn .mzn-vek-vysl{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1px solid var(--karta-ram);
  background:radial-gradient(120% 90% at 50% 100%,#fff 0%,rgba(255,255,255,0) 60%),linear-gradient(160deg,var(--red-soft) 0%,#F6EEE6 70%)}
.uc-modal.mzn .mzn-vek-cislo{font-family:var(--head);font-size:1.7rem;line-height:1;color:var(--ink);white-space:nowrap}
.uc-modal.mzn .mzn-vek-vysl small{display:block;font-size:.76rem;color:var(--ink-soft)}
@media (prefers-reduced-motion:reduce){ .uc-modal.mzn .mzn-kb{transition:none} }

/* účet bez hesla */
.uc-modal.mzn .mzn-ucet{display:flex;flex-direction:column;gap:10px;padding:14px;margin:0;
  background:var(--panel);border:1px solid var(--karta-ram);border-radius:var(--r);box-shadow:var(--tien-jemny)}
.uc-modal.mzn .mzn-ucet-t{display:flex;align-items:center;gap:8px;font-family:var(--head);text-transform:uppercase;
  font-size:.8rem;letter-spacing:.06em}
.uc-modal.mzn .mzn-ucet-t i{width:22px;height:22px;border-radius:999px;background:var(--red);color:var(--na-cervenom);
  font-style:normal;font-size:.68rem;font-weight:700;display:grid;place-items:center;flex:0 0 auto}
.uc-modal.mzn .mzn-ucet-t small{margin-left:auto;font-family:var(--text);text-transform:none;letter-spacing:0;
  font-size:.7rem;color:var(--ink-soft)}
.uc-modal.mzn .mzn-ucet-polia{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.uc-modal.mzn .mzn-ucet .uc-suhlas{margin:0;font-size:.74rem}

/* spodný rad */
.uc-modal.mzn .mzn-dole{display:flex;gap:10px;align-items:center}
.uc-modal.mzn .mzn-dole .uc-prepnut{flex:1 1 55%;margin:0;min-width:0}
.uc-modal.mzn .mzn-dole .btn{flex:1 1 auto;margin:0}
.uc-modal.mzn .mzn-dole .mzn-zmaz{flex:0 0 auto;margin:0 6px}
.uc-modal.mzn .mzn-spat,.uc-modal.mzn .mzn-dalej{display:none}
.uc-modal.mzn .mzn-mob{display:none}

@media(max-width:900px){
  /* Telefón: tri kroky v jednom okne (návrh C). */
  /* Telefón 375 × 812 má medzi lištami 751 px – krok 2 sa zmestí len s užšími
     okrajmi (merané naživo 7. 10. 2026). */
  body.ma-mlistu .uc-modal.mzn .uc-box{padding:8px 16px 16px}
  body.ma-mlistu .uc-modal.mzn #ucetTelo{gap:10px}
  body.ma-mlistu .uc-modal.mzn .mzn-nadpis{margin:0;min-height:40px;padding-right:50px;font-size:1.1rem}
  body.ma-mlistu .uc-modal.mzn .mzn-kroky{display:flex;gap:6px}
  body.ma-mlistu .uc-modal.mzn .mzn-kroky span{flex:1;display:flex;flex-direction:column;gap:5px;font-size:.66rem;
    font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
  body.ma-mlistu .uc-modal.mzn .mzn-kroky span::before{content:"";height:4px;border-radius:999px;background:var(--line-2)}
  body.ma-mlistu .uc-modal.mzn .mzn-kroky span.on{color:var(--red-dk)}
  body.ma-mlistu .uc-modal.mzn .mzn-kroky span.on::before{background:var(--red)}
  body.ma-mlistu .uc-modal.mzn .mzn-kroky span.hot::before{background:var(--red-soft-2)}
  body.ma-mlistu .uc-modal.mzn #ucetTelo[data-krok-teraz="1"] [data-krok="2"],
  body.ma-mlistu .uc-modal.mzn #ucetTelo[data-krok-teraz="1"] [data-krok="3"],
  body.ma-mlistu .uc-modal.mzn #ucetTelo[data-krok-teraz="2"] [data-krok="1"],
  body.ma-mlistu .uc-modal.mzn #ucetTelo[data-krok-teraz="2"] [data-krok="3"],
  body.ma-mlistu .uc-modal.mzn #ucetTelo[data-krok-teraz="3"] [data-krok="1"],
  body.ma-mlistu .uc-modal.mzn #ucetTelo[data-krok-teraz="3"] [data-krok="2"]{display:none}
  /* Scéna je len horný rad (zviera + meno); polia kroku 1 sú pod ňou v karte. */
  body.ma-mlistu .uc-modal.mzn .mzn-hore{overflow:visible;display:grid;grid-template-columns:96px 1fr;
    grid-template-rows:100px auto;column-gap:10px;row-gap:0;padding:0;border:0;box-shadow:none;background:none}
  body.ma-mlistu .uc-modal.mzn .mzn-hore::before{content:"";position:absolute;left:0;right:0;top:0;height:100px;
    border-radius:var(--r);border:1px solid var(--karta-ram);box-shadow:var(--tien-jemny);box-sizing:border-box;
    background:radial-gradient(120% 90% at 50% 100%,#fff 0%,rgba(255,255,255,0) 60%),linear-gradient(160deg,var(--red-soft) 0%,#F6EEE6 70%)}
  body.ma-mlistu .uc-modal.mzn .mzn-zviera{position:relative;grid-row:1;grid-column:1;align-self:end;justify-self:center;
    width:88px;height:88px;margin:0 0 -14px 4px;clip-path:inset(-40px -40px 14px -40px)}
  body.ma-mlistu .uc-modal.mzn .mzn-zviera svg{width:88px;height:88px}
  body.ma-mlistu .uc-modal.mzn .mzn-zviera.je-plemeno::before{width:96px;height:96px}
  body.ma-mlistu .uc-modal.mzn .mzn-popis{position:relative;grid-row:1;grid-column:2;display:flex;flex-direction:column;
    justify-content:center;gap:4px;min-width:0;padding-right:12px}
  body.ma-mlistu .uc-modal.mzn .mzn-meno{font-family:var(--head);font-weight:600;text-transform:uppercase;letter-spacing:.02em;
    font-size:1.35rem;line-height:1.1;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body.ma-mlistu .uc-modal.mzn .mzn-pod{font-size:.84rem;color:var(--ink-soft)}
  body.ma-mlistu .uc-modal.mzn .mzn-pily{display:flex;flex-wrap:wrap;gap:6px}
  body.ma-mlistu .uc-modal.mzn #ucetTelo:not([data-krok-teraz="3"]) .mzn-pily{display:none}
  body.ma-mlistu .uc-modal.mzn .mzn-kto{grid-row:2;grid-column:1/-1;margin-top:12px;gap:12px;padding:12px;
    background:var(--panel);border:1px solid var(--karta-ram);border-radius:var(--r);box-shadow:var(--tien-jemny)}
  body.ma-mlistu .uc-modal.mzn .uc-pilulky.je-dlazdice button{padding:10px 2px 9px;gap:6px;font-size:.68rem}
  body.ma-mlistu .uc-modal.mzn .uc-pilulky.je-dlazdice svg{width:44px;height:44px;margin:-6px 0 0}
  body.ma-mlistu .uc-modal.mzn .mzn-aky{display:flex;flex-direction:column;gap:9px;padding:10px}
  body.ma-mlistu .uc-modal.mzn .uc-pilulky.je-seg button{padding:8px 4px;font-size:.84rem}
  body.ma-mlistu .kz .uc-pilulky.je-seg button{padding:8px 1px;font-size:.84rem}
  body.ma-mlistu .uc-vd .uc-pilulky.je-seg button{padding:8px 4px;font-size:.84rem}
  body.ma-mlistu .uc-modal.mzn .uc-pole input,
  body.ma-mlistu .uc-modal.mzn .uc-vstup{padding:11px 13px}
  body.ma-mlistu .uc-modal.mzn .mzn-doplnky > b{display:none}
  body.ma-mlistu .uc-modal.mzn .mzn-pc{display:none}
  body.ma-mlistu .uc-modal.mzn .mzn-mob{display:inline}
  body.ma-mlistu .uc-modal.mzn .mzn-ucet{padding:12px;gap:9px}
  body.ma-mlistu .uc-modal.mzn .mzn-ucet-polia{grid-template-columns:1fr 1fr;gap:10px}
  body.ma-mlistu .uc-modal.mzn .mzn-ucet-polia [name="email"]{grid-column:1/-1}
  body.ma-mlistu .uc-modal.mzn .mzn-dole{flex-wrap:wrap}
  body.ma-mlistu .uc-modal.mzn .mzn-dole .uc-prepnut{flex:1 1 100%}
  body.ma-mlistu .uc-modal.mzn .mzn-spat,
  body.ma-mlistu .uc-modal.mzn .mzn-dalej{display:inline-flex}
  body.ma-mlistu .uc-modal.mzn .mzn-spat{flex:0 0 auto}
  body.ma-mlistu .uc-modal.mzn #ucetTelo[data-krok-teraz="1"] .mzn-spat,
  body.ma-mlistu .uc-modal.mzn #ucetTelo[data-krok-teraz="3"] .mzn-dalej,
  body.ma-mlistu .uc-modal.mzn #ucetTelo:not([data-krok-teraz="3"]) .mzn-ulozit,
  body.ma-mlistu .uc-modal.mzn #ucetTelo:not([data-krok-teraz="3"]) .mzn-zmaz{display:none}
  body.ma-mlistu .uc-modal.mzn .mzn-zaclona{position:fixed}
  body.ma-mlistu .uc-modal.mzn .mzn-panel{position:fixed;max-height:min(70vh,520px)}
  body.ma-mlistu .uc-modal.mzn .mzn-kb{width:36px;height:36px}
  body.ma-mlistu .uc-modal.mzn .mzn-kh input{font-size:1.7rem}
  body.ma-mlistu .uc-modal.mzn .mzn-vek-cislo{font-size:1.4rem}
}

/* ==========================================================================
   Okno maznáka A2 (vypínač MZN2_ZAP v ucet.js, náhľad ?mzn2=1)
   --------------------------------------------------------------------------
   Návrh nastroje/navrhy/doplnit-maznak.html, variant A2 (majiteľ 8. 10. 2026).
   Všetko visí na `.uc-modal.mzn.mzn2` – bez vypínača sa nič z toho neuplatní.
   Hodnoty 1:1 z návrhu (.a2Top, .a2R3, .aSek, .aD, .cKroky.bare).
   ========================================================================== */
.uc-modal.mzn.mzn2 .mzn2-pole,
.uc-modal.mzn.mzn2 .mzn-segy{display:contents}
.uc-modal.mzn.mzn2 .mzn2-pole{order:2}
.uc-modal.mzn.mzn2 .mzn-dl{order:4}

/* Doplň, nech vyberieme presnejšie – dlaždice s dôvodom */
.uc-modal.mzn.mzn2 .mzn-dl{display:flex;flex-direction:column;gap:10px}
.uc-modal.mzn.mzn2 .mzn-dl-hl{display:flex;flex-direction:column;gap:6px}
.uc-modal.mzn.mzn2 .mzn-dl-hl h4{margin:0;font-family:var(--head);font-weight:600;text-transform:uppercase;letter-spacing:.05em;font-size:1rem}
.uc-modal.mzn.mzn2 .mzn-dl-poc{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--ink-2);font-weight:600}
.uc-modal.mzn.mzn2 .mzn-dl-prog{display:block;flex:1;max-width:220px;height:5px;border-radius:999px;background:var(--line);overflow:hidden}
.uc-modal.mzn.mzn2 .mzn-dl-prog u{display:block;width:0;height:100%;border-radius:999px;background:var(--red);text-decoration:none;transition:width .25s}
.uc-modal.mzn.mzn2 .mzn-dl-mriez{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:10px}
/* `display:flex/grid` prebíja `hidden` (pasca v CLAUDE.md) – skryté Alergie a Zdravie musia zmiznúť naozaj. */
.uc-modal.mzn .mzn-dl-d[hidden],.uc-modal.mzn .mzn-dopl[hidden],.uc-modal.mzn .mzn-panel[hidden]{display:none}
.uc-modal.mzn.mzn2 .mzn-dl-d{appearance:none;font:inherit;cursor:pointer;width:100%;text-align:left;
  display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;border-radius:var(--r);background:var(--sklo);
  -webkit-backdrop-filter:var(--sklo-blur);backdrop-filter:var(--sklo-blur);
  border:1px solid var(--sklo-ram);box-shadow:var(--sklo-tien);min-width:0;color:var(--ink)}
.uc-modal.mzn.mzn2 .mzn-dl-d:focus-visible{outline:2.5px solid var(--red);outline-offset:2px}
/* Skrytá dlaždica (Alergie a Zdravie pri hlodavcoch a vtákoch) – pravidlo s `display:flex` vyššie má rovnakú
   váhu, preto tu ešte o triedu viac; ostatné dlaždice sa roztiahnu (mriežka podľa počtu). */
.uc-modal.mzn.mzn2 .mzn-dl-mriez .mzn-dl-d[hidden]{display:none}
.uc-modal.mzn.mzn2 .mzn-dl-ik{width:38px;height:38px;border-radius:50%;background:var(--red-soft);color:var(--red);display:grid;place-items:center;margin-bottom:2px}
.uc-modal.mzn.mzn2 .mzn-dl-ik svg{width:22px;height:22px}
.uc-modal.mzn.mzn2 .mzn-dl-d b{font-size:.92rem;line-height:1.2}
.uc-modal.mzn.mzn2 .mzn-dl-pr{font-size:.76rem;color:var(--ink-2);line-height:1.35;flex:1 1 auto}
.uc-modal.mzn.mzn2 .mzn-dl-dop{margin-top:6px;display:inline-flex;align-items:center;gap:4px;font-size:.8rem;font-weight:700;color:var(--red)}
.uc-modal.mzn.mzn2 .mzn-dl-dop svg{width:13px;height:13px}
.uc-modal.mzn.mzn2 .mzn-dl-hod{margin-top:6px;display:none;align-items:center;gap:5px;font-size:.86rem;font-weight:700;color:var(--ok);max-width:100%;min-width:0}
.uc-modal.mzn.mzn2 .mzn-dl-hod svg{width:16px;height:16px;flex:0 0 auto}
.uc-modal.mzn.mzn2 .mzn-dl-hod em{font-style:normal;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uc-modal.mzn.mzn2 .mzn-dl-d.ma{background:var(--ok-plocha);border-color:rgba(26,143,60,.35)}
.uc-modal.mzn.mzn2 .mzn-dl-d.ma .mzn-dl-ik{background:var(--v-okne);color:var(--ok)}
.uc-modal.mzn.mzn2 .mzn-dl-d.ma .mzn-dl-dop{display:none}
.uc-modal.mzn.mzn2 .mzn-dl-d.ma .mzn-dl-hod{display:inline-flex}

/* účet pri maznákovi – tri polia, veta o súhlase je pri tlačidle */
.uc-modal.mzn.mzn2 .mzn-ucet-t small{max-width:60%;text-align:right}
.uc-modal.mzn.mzn2 .mzn-lokal,.uc-modal.mzn.mzn2 .mzn-ucet-btn{display:flex;flex-direction:column;gap:6px;flex:1 1 auto;min-width:0}
.uc-modal.mzn.mzn2 .mzn-dole .mzn-lokal .btn,.uc-modal.mzn.mzn2 .mzn-dole .mzn-ucet-btn .btn{flex:0 0 auto;width:100%;
  white-space:normal;line-height:1.2;text-align:center}
.uc-modal.mzn.mzn2 .mzn-lokal small,.uc-modal.mzn.mzn2 .mzn-ucet-btn small{font-size:.72rem;line-height:1.4;color:var(--ink-soft)}
.uc-modal.mzn.mzn2 .mzn-ucet-btn small a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* počítač: zviera vľavo hore, vedľa druhy, pod nimi Plemeno | Meno | Farba (farba od 12. 10. 2026), potom prepínače */
@media(min-width:901px){
  .ma-maznak .uc-modal.mzn.mzn2.uc-siroke .uc-box{max-width:960px}
  .uc-modal.mzn.mzn2 .mzn2-pole{display:grid;grid-template-columns:200px 14px minmax(0,1fr) 12px minmax(0,1fr) 12px minmax(0,1fr)}
  .uc-modal.mzn.mzn2 .mzn2-pole::before{content:"";grid-column:1;grid-row:1/3;align-self:stretch;box-sizing:border-box;
    border-radius:var(--r);border:1px solid var(--karta-ram);box-shadow:var(--tien-jemny);
    background:radial-gradient(120% 90% at 50% 100%,#fff 0%,rgba(255,255,255,0) 60%),linear-gradient(160deg,var(--red-soft) 0%,#F6EEE6 70%)}
  .uc-modal.mzn.mzn2 .mzn-hore,.uc-modal.mzn.mzn2 .mzn-kto,.uc-modal.mzn.mzn2 .mzn-aky{display:contents}
  .uc-modal.mzn.mzn2 .mzn-zviera{grid-column:1;grid-row:1/3;place-self:center;margin:0}
  .uc-modal.mzn.mzn2 .mzn-kto > .uc-pole:first-child{grid-column:3/8;grid-row:1;margin-bottom:10px}
  .uc-modal.mzn.mzn2 .mzn-kto > .uc-pole:first-child > span:first-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .uc-modal.mzn.mzn2 .mzn-kto > .uc-pole:nth-child(2){grid-column:5;grid-row:2}
  .uc-modal.mzn.mzn2 .mzn-aky > .uc-pole-plemeno{grid-column:3;grid-row:2}
  .uc-modal.mzn.mzn2 .mzn-aky > .uc-pole-farba{grid-column:7;grid-row:2}
  /* Prepínače vyplnia celý riadok pri 3 aj 4 viditeľných: skryté pole (Veľkosť) je display:none, pomer 2:3:3:2 ostáva. */
  .uc-modal.mzn.mzn2 .mzn-segy{display:flex;grid-column:1/-1;grid-row:3;gap:12px;margin-top:12px}
  .uc-modal.mzn.mzn2 .mzn-segy > .uc-pole{flex:3 1 0;min-width:0;margin:0}
  .uc-modal.mzn.mzn2 .mzn-segy > .uc-pole:first-child,.uc-modal.mzn.mzn2 .mzn-segy > .uc-pole:last-child{flex-grow:2}
  /* Zviera celé v karte s odstupom 8 px (návrh .a2Scena padding 8, .hl 150): karta má výšku aspoň 166 px. */
  .uc-modal.mzn.mzn2 .mzn2-pole::before{min-height:166px;overflow:hidden}
  .uc-modal.mzn.mzn2 .mzn-zviera{width:150px;height:150px;max-width:100%;max-height:100%;overflow:hidden}
  .uc-modal.mzn.mzn2 .mzn-zviera svg{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
  .uc-modal.mzn.mzn2 .mzn-zviera.je-plemeno::before{width:150px;height:150px;max-width:100%;max-height:100%}
  /* Kompaktné okno na počítači (majiteľ 13. 10. 2026: okno sa nevošlo a rolovalo). Dlaždice Doplň v dvoch
     riadkoch: ikona s nadpisom vedľa seba, popis na jeden riadok; blok účtu = nadpis a tri polia v jednom rade,
     veta o súhlase je len pri tlačidle „Vytvoriť účet a uložiť“ (bola tam dvakrát). */
  .uc-modal.mzn.mzn2 .mzn-dl-d{display:grid;grid-template-columns:30px minmax(0,1fr);column-gap:8px;row-gap:1px;padding:9px 11px;align-items:center}
  .uc-modal.mzn.mzn2 .mzn-dl-ik{width:30px;height:30px;margin:0;grid-row:1}
  .uc-modal.mzn.mzn2 .mzn-dl-ik svg{width:18px;height:18px}
  .uc-modal.mzn.mzn2 .mzn-dl-d b{grid-column:2;grid-row:1}
  .uc-modal.mzn.mzn2 .mzn-dl-pr{grid-column:1/-1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .uc-modal.mzn.mzn2 .mzn-dl-dop,.uc-modal.mzn.mzn2 .mzn-dl-hod{grid-column:1/-1;margin-top:2px}
  .uc-modal.mzn.mzn2 .mzn-ucet{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,.9fr) minmax(0,.9fr) minmax(0,1.45fr);gap:10px;align-items:end;padding:10px 14px}
  .uc-modal.mzn.mzn2 .mzn-ucet-t{grid-column:1;align-self:center;flex-direction:column;align-items:flex-start;gap:2px;font-size:.9rem}
  .uc-modal.mzn.mzn2 .mzn-ucet-t small{margin:0;max-width:none;text-align:left;font-size:.72rem}
  .uc-modal.mzn.mzn2 .mzn-ucet-polia{display:contents}
  .uc-modal.mzn.mzn2 .mzn-ucet-polia .uc-pole > span{font-size:.62rem;margin-bottom:3px}
  .uc-modal.mzn.mzn2 .mzn-ucet-polia .uc-vstup{padding:9px 12px;font-size:.88rem}
  .uc-modal.mzn.mzn2 .mzn-ucet .uc-suhlas{display:none}
  .uc-modal.mzn.mzn2 .mzn-ucet .uc-msg{grid-column:1/-1}
  /* Spodný rad: prepínač „Ukazovať len krmivo pre …“ bez rámika, na šírku obsahu, vedľa tlačidiel. */
  .uc-modal.mzn.mzn2 .mzn-dole .uc-prepnut,.uc-modal.mzn.mzn2 .mzn-dole .uc-prepnut.on{flex:0 1 auto;max-width:34%;padding:0 6px 0 0;
    border:0;background:none;box-shadow:none}
  .uc-modal.mzn.mzn2 .mzn-dole .uc-prepnut-t{font-size:.82rem;line-height:1.3}
  .uc-modal.mzn.mzn2 .mzn-dole:has(.mzn-lokal){align-items:flex-start}
  .uc-modal.mzn.mzn2 .mzn-dole:has(.mzn-lokal) .uc-prepnut{flex:0 1 auto;max-width:28%}
  /* Štyri druhy cez celý riadok – väčšie ako pôvodných päť (majiteľ 13. 10. 2026). */
  .uc-modal.mzn.mzn2 .uc-pilulky.je-dlazdice button{padding:12px 4px 10px;gap:6px;font-size:.74rem}
  .uc-modal.mzn.mzn2 .uc-pilulky.je-dlazdice svg{width:46px;height:46px;margin:-4px 0 0}
  .uc-modal.mzn.mzn2 .mzn2-pole input[name="menoZvierata"],.uc-modal.mzn.mzn2 .mzn2-pole input[name="plemeno"]{min-height:46px;box-sizing:border-box}
}

/* telefón: kroky len paličky (3 alebo 4), krok 3 dlaždice, krok 4 účet */
@media(max-width:900px){
  body.ma-mlistu .uc-modal.mzn.mzn2 .mzn-kroky span{font-size:0;gap:0}
  body.ma-mlistu .uc-modal.mzn.mzn2 .mzn-kroky span.hot::before{background:var(--red)}
  body.ma-mlistu .uc-modal.mzn.mzn2 #ucetTelo[data-krok-teraz="3"] .mzn-hore,
  body.ma-mlistu .uc-modal.mzn.mzn2 #ucetTelo[data-krok-teraz="4"] .mzn-hore{display:none}
  body.ma-mlistu .uc-modal.mzn.mzn2 #ucetTelo:not([data-krok-teraz="4"]) [data-krok="4"],
  body.ma-mlistu .uc-modal.mzn.mzn2 #ucetTelo[data-krok-teraz="4"] [data-krok="1"],
  body.ma-mlistu .uc-modal.mzn.mzn2 #ucetTelo[data-krok-teraz="4"] [data-krok="2"],
  body.ma-mlistu .uc-modal.mzn.mzn2 #ucetTelo[data-krok-teraz="4"] [data-krok="3"]{display:none}
  body.ma-mlistu .uc-modal.mzn.mzn2 .mzn-dl-mriez{grid-auto-flow:row;grid-template-columns:1fr 1fr;gap:8px}
  body.ma-mlistu .uc-modal.mzn.mzn2 .mzn-dl-d{padding:10px}
  body.ma-mlistu .uc-modal.mzn.mzn2 .mzn-dl-d:last-child:nth-child(odd){grid-column:span 2}
  body.ma-mlistu .uc-modal.mzn.mzn2 .mzn-ucet-polia{grid-template-columns:1fr}
  body.ma-mlistu .uc-modal.mzn.mzn2 .mzn-ucet-t{flex-direction:column;align-items:flex-start;gap:2px}
  body.ma-mlistu .uc-modal.mzn.mzn2 .mzn-ucet-t small{margin-left:0;max-width:none;text-align:left}
  /* Ďalej všade okrem posledného kroku, Uložiť len v poslednom (staré pravidlá sú viazané na krok 3). */
  body.ma-mlistu .uc-modal.mzn.mzn2 #ucetTelo:not([data-posl]) .mzn-dalej{display:inline-flex}
  body.ma-mlistu .uc-modal.mzn.mzn2 #ucetTelo[data-posl] .mzn-dalej,
  body.ma-mlistu .uc-modal.mzn.mzn2 #ucetTelo:not([data-posl]) .mzn-ulozit,
  body.ma-mlistu .uc-modal.mzn.mzn2 #ucetTelo:not([data-posl]) .mzn-lokal,
  body.ma-mlistu .uc-modal.mzn.mzn2 #ucetTelo:not([data-posl]) .mzn-ucet-btn,
  body.ma-mlistu .uc-modal.mzn.mzn2 #ucetTelo:not([data-posl]) .mzn-zmaz{display:none}
  body.ma-mlistu .uc-modal.mzn.mzn2 #ucetTelo[data-posl] .mzn-ulozit,
  body.ma-mlistu .uc-modal.mzn.mzn2 #ucetTelo[data-posl] .mzn-zmaz{display:inline-flex}
  body.ma-mlistu .uc-modal.mzn.mzn2 #ucetTelo[data-posl] .mzn-lokal,
  body.ma-mlistu .uc-modal.mzn.mzn2 #ucetTelo[data-posl] .mzn-ucet-btn{display:flex}
  body.ma-mlistu .uc-modal.mzn.mzn2 .mzn-lokal,
  body.ma-mlistu .uc-modal.mzn.mzn2 .mzn-ucet-btn{flex:1 1 100%}
  body.ma-mlistu .uc-modal.mzn.mzn2 .mzn-ucet-btn{order:1}
  body.ma-mlistu .uc-modal.mzn.mzn2 .mzn-lokal{order:2}
  body.ma-mlistu .uc-modal.mzn.mzn2 #ucetTelo[data-posl] .mzn-dole:has(.mzn-lokal) .mzn-spat{order:3}
  body.ma-mlistu .uc-modal.mzn.mzn2 #ucetTelo[data-krok-teraz="1"] .mzn-spat{display:none}
}
@media (prefers-reduced-motion:reduce){ .uc-modal.mzn.mzn2 .mzn-dl-prog u{transition:none} }

/* Heslo s okom. Oko je vnútri políčka vpravo, políčko mu drží miesto. */
.uc-heslo{position:relative;display:block}
.uc-pole .uc-heslo input{width:100%;padding-right:48px}
.uc-oko{all:unset;box-sizing:border-box;position:absolute;right:7px;top:50%;
  transform:translateY(-50%);display:grid;place-items:center;width:34px;height:34px;
  border-radius:999px;color:var(--ink-soft);cursor:pointer}
.uc-oko svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.9;
  stroke-linecap:round;stroke-linejoin:round}
.uc-oko:hover,.uc-oko.on{color:var(--ink);background:rgba(0,0,0,.05)}
.uc-oko:focus-visible{outline:2px solid var(--red);outline-offset:2px}

/* ---------- výber plemena s hľadaním ----------
   Zoznam je pod poľom, nie okno na strede ako `.vyber-panel` — zákazník
   v ňom píše. Povrch je ten istý ako `.vyber-okno` (nepriehľadný panel nad
   dátami) a položky sú tie isté `.vyber-polozka`. */
.uc-plemeno{position:relative;display:block}
/* Adresa: ulica a číslo na celý riadok, PSČ (úzke) a obec v jednom riadku. Po zadaní PSČ dopĺňa obec
   `adresa.js`; keď má PSČ viac obcí, zoznam `.psc-zoz` pod poľom Obec je ten istý povrch ako výber plemena. */
.adresa-psc{display:grid;grid-template-columns:7.4rem minmax(0,1fr);gap:10px;margin-bottom:16px}
.adresa-psc[hidden]{display:none}
.adresa-psc .field{margin:0}
.psc-obec{position:relative}
.uc-plemeno-zoz,
.psc-zoz{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;
  display:flex;flex-direction:column;padding:6px;max-height:280px;overflow-y:auto;
  overscroll-behavior:contain;background:var(--panel);border:1.5px solid var(--sklo-ram);
  border-radius:var(--r-lg);box-shadow:var(--shadow-lg)}
.uc-plemeno-zoz[hidden],
.psc-zoz[hidden]{display:none}
.uc-plemeno-zoz .vyber-polozka,
.psc-zoz .vyber-polozka{min-height:40px;padding:8px 12px;font-size:.9rem}
.uc-plemeno-zoz .vyber-polozka.na,
.psc-zoz .vyber-polozka.na{background:var(--bg-soft);color:var(--ink)}
.uc-plemeno-zoz .vyber-polozka small{margin-left:auto;font-size:.72rem;font-weight:500;
  color:var(--ink-soft)}
.uc-plemeno-zoz .vyber-polozka.je small{display:none}
/* Zoznam plemien a farieb smie byť širší ako pole (majiteľ 12. 10. 2026: celý názov aj s ikonou), najviac
   šírka obrazovky; názov na jeden riadok. flex-shrink:0 – v Safari sa položky v stĺpci s max-height zmršťovali
   pod výšku textu a prekrývali. Farba je v treťom stĺpci, jej zoznam sa zarovná doprava. */
.uc-plemeno-zoz{right:auto;min-width:100%;width:max-content;max-width:min(440px,calc(100vw - 32px))}
.uc-plemeno-zoz > *{flex-shrink:0}
.uc-plemeno-zoz .vyber-polozka{white-space:nowrap}
.uc-plemeno-zoz .vyber-polozka > span:not(.uc-plem-ik){overflow:hidden;text-overflow:ellipsis;min-width:0}
.uc-pole-farba .uc-plemeno-zoz{left:auto;right:0}
.uc-plemeno-zoz .vyber-polozka small{flex-shrink:0;padding-left:12px}
/* Hlava plemena v zozname — bez odznaku (6. 10. 2026), vo farbe starého zlata.
   Kresba je tá istá maska ako `.ma-plemeno`. */
.uc-plem-ik{display:grid;place-items:center;flex:0 0 auto;width:36px;height:36px;color:var(--zlato-ink)}
.uc-plem-ik::before{content:"";width:40px;height:40px;margin:-2px;background:currentColor;
  -webkit-mask:var(--plemeno) center/contain no-repeat;mask:var(--plemeno) center/contain no-repeat}
/* Vzorka farby zvieraťa (farba-vzorka.js): krúžok 22 px na mieste ikony plemena (36 px), v poli vľavo, v Karte zvieraťa menší. */
.fv{display:inline-block;flex:0 0 auto;width:22px;height:22px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(78,58,44,.28)}
.fv-ob{display:grid;place-items:center;flex:0 0 auto;width:36px;height:36px}
.fv-vstup{position:absolute;left:12px;top:50%;transform:translateY(-50%);display:flex;pointer-events:none}
.fv-vstup[hidden]{display:none}
.uc-plemeno input.ma-fv{padding-left:44px}
.kz .udaje b .fv{width:16px;height:16px;margin:0 7px -2px 0;vertical-align:baseline}
.uc-plemeno-zoz .uc-plemeno-ine{border-top:1px solid var(--line);border-radius:0 0 10px 10px;
  margin-top:4px;font-weight:500;color:var(--ink-soft)}

/* ----- Hlásenie pri poli, ktoré treba opraviť (HafoOver v spolocne.js) -----
   Namiesto bubliny prehliadača. Farby ako chybová hláška účtu: červená tu
   nesie význam „toto oprav", nie výzvu na akciu. */
/* `<small>` s `form` v selektore: v `.uc-pole` by inak dostalo vzhľad
   popisku (`.uc-pole > span` — veľké písmená, sivá) a `.uc-pole small`. */
form small.pole-chyba{display:flex;align-items:center;gap:8px;margin:6px 0 0;padding:7px 12px 7px 8px;
  border-radius:10px;background:var(--red-soft);color:var(--red-dk);
  font-family:var(--text);font-size:.8rem;font-weight:600;line-height:1.35;
  text-transform:none;letter-spacing:0;animation:pole-chyba .22s ease-out}
form small.pole-chyba::before{content:"!";display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;
  border-radius:999px;background:var(--red);color:var(--bg);font-size:.74rem;font-weight:800}
@keyframes pole-chyba{from{opacity:0;transform:translateY(-4px)}}
input.je-chyba,select.je-chyba,textarea.je-chyba,
.je-chyba + .uc-drah{border-color:var(--red)!important;box-shadow:0 0 0 3px var(--red-soft)!important}
.uc-akcie small.pole-chyba{flex-basis:100%}

/* ----- Formulár zvieraťa: druh cez celú šírku, pod ním polia v dvoch
   stĺpcoch (majiteľ 23. 9. 2026). Päť dlaždíc v jednom rade a väčších —
   je to prvá otázka a jediná, na ktorej závisí zvyšok formulára. */
.uc-mriezka > .uc-pole:has(.je-dlazdice){grid-column:1/-1}
.uc-mriezka .uc-pilulky.je-dlazdice{gap:10px}
.uc-mriezka .uc-pilulky.je-dlazdice button{padding:14px 4px 12px;gap:8px;font-size:.76rem}
.uc-mriezka .uc-pilulky.je-dlazdice svg{width:min(72px,100%);height:72px;margin:-13px 0 0}
@media(max-width:560px){
  .uc-mriezka .uc-pilulky.je-dlazdice{gap:6px}
  .uc-mriezka .uc-pilulky.je-dlazdice button{padding:11px 2px 9px;gap:6px;font-size:.62rem}
  .uc-mriezka .uc-pilulky.je-dlazdice svg{width:min(52px,100%);height:52px;margin:-9px 0 0}
}

/* ============================================================================
   MÔJ ÚČET — časti s menu (ucet.js, `profil()`)
   Schválený návrh https://claude.ai/artifact/PVTrsfjiXRfNam6fotqYHv
   (24. 9. 2026), hodnoty prenesené z neho. Na počítači menu vľavo a časť
   vpravo; do 900 px zoznam častí a každá časť ako vlastná obrazovka.
   ============================================================================ */
.uc-skryty{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.uc-modal.uc-profil .uc-box{max-width:1180px;padding:0;overflow:hidden;display:flex}
.uc-modal.uc-profil .uc-x{position:absolute;right:16px;top:14px}
/* Pevná výška a riadok minmax(0,1fr): menu stojí a roluje sa len časť
   vpravo. S výškou podľa obsahu sa dlhé Nastavenia orezali a nedali
   sa prerolovať (majiteľ 25. 9. 2026). */
.uc-ucet{display:grid;grid-template-columns:230px minmax(0,1fr);grid-template-rows:minmax(0,1fr);
  width:100%;height:min(820px, 92vh)}
.uc-bok{padding:22px 14px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:4px;
  background:rgba(255,255,255,.25);overflow-y:auto}
.uc-kto{display:flex;align-items:center;gap:10px;padding:4px 8px 16px}
.uc-kto b{display:block;color:var(--ink);font-size:.95rem;line-height:1.2}
.uc-kto small{color:var(--ink-soft);font-size:.74rem}
.uc-kto-t{min-width:0;overflow-wrap:anywhere;display:flex;align-items:center;gap:10px}
/* Minca – odznak úrovne Hafo karty (dizajnový systém 20. 10. 2026, minca.js). Rozmer nastaví skript (inline). */
.minca{display:inline-block;flex:0 0 auto;line-height:0;vertical-align:middle}
.minca svg{display:block;width:100%;height:100%;overflow:visible}
/* Odznak úrovne vedľa mena (počítač; na telefóne je `.uc-kto-t` skrytý): minca v tlačidle. */
.uc-mca{all:unset;display:block;flex:0 0 auto;line-height:0;cursor:pointer;border-radius:50%}
.uc-mca:focus-visible{outline:2.5px solid var(--red);outline-offset:2px}
/* Medaila zvieraťa vedľa mena (kov úrovne už nesie .uc-mca). */
.uc-medaila{all:unset;box-sizing:border-box;position:relative;overflow:hidden;flex:0 0 auto;width:40px;height:40px;border-radius:50%;
  display:grid;place-items:center;cursor:pointer;font-family:var(--head);font-size:.78rem;letter-spacing:.01em;white-space:nowrap;
  background:radial-gradient(90% 90% at 30% 20%,rgba(255,255,255,.8),rgba(255,255,255,0) 55%),var(--kov,var(--zlato));
  color:var(--kov-ink,var(--zlato-ink));border:2px solid var(--kov-ram,#D8AE5E);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 -2px 5px rgba(0,0,0,.14),0 6px 14px -8px var(--kov-tien,rgba(122,82,24,.55))}
.uc-medaila::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.6) 48%,transparent 60%);
  transform:translateX(-100%);animation:uc-lesk-kov 4.5s ease-in-out 1s infinite}
.uc-medaila:focus-visible{outline:2.5px solid var(--red);outline-offset:2px}
@media (prefers-reduced-motion:reduce){ .uc-medaila::after{animation:none;display:none} }
@media(min-width:901px){ .uc-mriezka-k > .uc-zlava{display:none} }
.uc-kto-m,.uc-len-mobil,.uc-spat{display:none}
.uc-zoz{display:flex;flex-direction:column;gap:4px}
.uc-nav{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:10px;padding:10px 12px;
  border-radius:12px;cursor:pointer;font-weight:600;font-size:.9rem;color:var(--ink-2)}
.uc-nav svg{width:19px;height:19px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.uc-poc{margin-left:auto;font-size:.72rem;font-weight:700;background:var(--bg-soft);color:var(--ink-2);
  border-radius:999px;padding:1px 8px}
.uc-nav:hover{background:rgba(255,255,255,.6);color:var(--ink)}
.uc-nav[aria-current="true"]{background:var(--red-soft);color:var(--red-dk)}
.uc-nav[aria-current="true"] .uc-poc{background:var(--v-okne);color:var(--red-dk)}
.uc-nav:focus-visible{outline:2.5px solid var(--red);outline-offset:1px}
.uc-bok-dole{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:2px}
.uc-obsah{padding:26px 28px 30px;position:relative;overflow-y:auto;min-width:0}
/* ---------- Maskot Hafo (nastroje/MASKOT.md) ----------
   Pes s kanistrom v polohe podľa situácie: prázdne stavy, potvrdenie
   rezervácie, pozdrav v účte, 404, bublina chatu. Pohyb len jemný a CSS –
   nič sa navyše nesťahuje. Obrázky `img/maskot-<poloha>-<verzia>.webp`. */
.maskot{display:block;height:auto;max-width:100%;margin:0 auto;-webkit-user-select:none;user-select:none;pointer-events:none}
.maskot-kyv{transform-origin:50% 96%;animation:maskot-kyv 3.4s ease-in-out infinite}
@keyframes maskot-kyv{0%,100%{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg)}}
.maskot-hop{animation:maskot-hop .7s cubic-bezier(.3,1.5,.5,1) both}
@keyframes maskot-hop{0%{opacity:0;transform:translateY(18px) scale(.9)}100%{opacity:1;transform:none}}
.maskot-cuch{animation:maskot-cuch 2.6s ease-in-out infinite}
@keyframes maskot-cuch{0%,100%{transform:translateX(0)}50%{transform:translateX(7px)}}
.maskot-bublina{position:relative;display:inline-block;background:var(--v-okne);border-radius:14px;padding:9px 13px;
  font-size:.9rem;line-height:1.45;color:var(--ink);box-shadow:var(--tien-jemny)}
.maskot-bublina b{color:var(--red-dk)}
.maskot-bublina::before{content:"";position:absolute;left:-7px;top:14px;border:7px solid transparent;border-left:0;border-right-color:var(--v-okne)}
@media (prefers-reduced-motion:reduce){ .maskot-kyv,.maskot-hop,.maskot-cuch{animation:none} }
/* ---------- Hafo hlási – karta navrchu Prehľadu (návrh C, https://claude.ai/artifact/1eSZcthXycMXi7f7wbaigD) ----------
   Hodnoty 1:1 zo schváleného náhľadu (majiteľ 29. 9. 2026). Celý pes v ľavom
   stĺpci, veľký nadpis, tlačidlo; ďalšie správy bodkami vpravo hore. Pri
   sledovanej rezervácii je v karte aj dráha sledovania. Na počítači prvá
   karta Prehľadu (`.uc-hafo-pc`), na telefóne pod „Ahoj" (`.uc-hafo-m`).
   Keď nie je čo povedať, karta v HTML vôbec nie je. */
/* Na telefóne krížik v strede riadka „Ahoj, meno“ (majiteľ 28. 9. 2026). */
@media(max-width:900px){ .uc-modal.uc-profil .uc-x{top:4px} }
.uc-hafo{position:relative;display:grid;grid-template-columns:230px minmax(0,1fr);align-items:end;min-height:226px;border-radius:18px;overflow:hidden;
  background:linear-gradient(110deg,#FFF3EF 0%,#FFFFFF 62%);box-shadow:var(--tien-jemny);margin:0 0 14px}
/* Pes je v karte vždy celý (nič nesmie presahovať ani byť odrezané) a pozerá
   do nej – polohy hľadiace doľava sa zrkadlia (`HAFO_VLAVO` v ucet.js;
   majiteľ 30. 9. 2026). */
.uc-hafo-pes{height:214px;width:auto;max-width:214px;object-fit:contain;object-position:bottom;justify-self:center;margin-bottom:12px;
  filter:drop-shadow(0 8px 10px rgba(78,58,44,.25))}
.uc-hafo-pes.zrk{transform:scaleX(-1)}
.uc-hafo-t{padding:20px 22px 20px 4px;align-self:center;min-width:0}
.uc-hafo-t strong{display:block;font-family:var(--head);text-transform:uppercase;letter-spacing:.03em;font-size:1.5rem;line-height:1.15;color:var(--ink);margin-top:4px}
.uc-hafo-t p{margin:6px 0 14px;font-size:.9rem;color:var(--ink-2)}
.uc-hafo-nad{display:flex;align-items:center;gap:6px;font-family:var(--head);text-transform:uppercase;letter-spacing:.12em;font-size:.62rem;color:var(--red-dk)}
.uc-hafo-nad i{width:7px;height:7px;border-radius:50%;background:var(--red);box-shadow:0 0 0 3px rgba(225,33,31,.15)}
.uc-hafo-nad i.ok{background:var(--ok);box-shadow:0 0 0 3px rgba(46,158,91,.18)}
.uc-hafo-tl{display:flex;flex-wrap:wrap;gap:8px}
/* Pruhy listovania hore cez celú šírku karty (návrh A, 5. 10. 2026): prejdené plné,
   aktívny sa plní (`.uc-hafo-prog`), ďalšie svetlé. Celý pruh je tlačidlo s väčšou plochou. */
.uc-hafo-pruhy{position:absolute;left:14px;right:14px;top:10px;z-index:2;display:flex;gap:5px}
.uc-hafo-pruhy button{all:unset;position:relative;flex:1;height:3px;border-radius:99px;background:rgba(198,185,170,.45);cursor:pointer;overflow:hidden}
.uc-hafo-pruhy button::after{content:"";position:absolute;inset:-8px 0}
.uc-hafo-pruhy button.hot{background:var(--red)}
.uc-hafo-pruhy button:focus-visible{outline:2px solid var(--red);outline-offset:3px}
/* Šípky na okrajoch – len počítač s myšou, ukážu sa nad kartou. */
.uc-hafo-sip{all:unset;box-sizing:border-box;position:absolute;top:50%;z-index:3;width:34px;height:34px;margin-top:-17px;border-radius:50%;
  display:grid;place-items:center;cursor:pointer;background:var(--v-okne);color:var(--ink);box-shadow:var(--tien-jemny);
  opacity:0;transition:opacity .18s}
.uc-hafo-sip.vlavo{left:10px}
.uc-hafo-sip.vpravo{right:10px}
.uc-hafo-sip svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.uc-hafo:hover .uc-hafo-sip,.uc-hafo-sip:focus-visible{opacity:1}
.uc-hafo-sip:hover{color:var(--red)}
.uc-hafo-sip:focus-visible{outline:2px solid var(--red);outline-offset:2px}
@media (hover:none){ .uc-hafo-sip{display:none} }
.uc-hafo-prog{position:absolute;left:0;top:0;bottom:0;width:100%;border-radius:inherit;background:var(--red);transform-origin:left center;
  animation:ucHafoProg 7s linear both}
@keyframes ucHafoProg{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.uc-hafo:hover .uc-hafo-prog,.uc-hafo:focus-within .uc-hafo-prog,.uc-hafo:has(.uc-rez-det.otv) .uc-hafo-prog{animation-play-state:paused}
/* príchod ďalšej správy: text vkĺzne sprava, pes vyskočí (translate/scale, nie
   transform – zrkadlený pes má transform:scaleX(-1)) */
@keyframes ucHafoText{from{opacity:0;translate:22px 0}to{opacity:1;translate:0 0}}
@keyframes ucHafoPes{from{opacity:0;translate:0 16px;scale:.92}to{opacity:1;translate:0 0;scale:1}}
.uc-hafo-in .uc-hafo-t{animation:ucHafoText .55s cubic-bezier(.34,1.56,.64,1) both}
.uc-hafo-in .uc-hafo-pes{animation:ucHafoPes .6s cubic-bezier(.34,1.56,.64,1) both}
@media (prefers-reduced-motion:reduce){
  .uc-hafo-prog{animation:none;transform:none}
  .uc-hafo-in .uc-hafo-t,.uc-hafo-in .uc-hafo-pes{animation:none}
}
/* pruhy sú tenké – text začína hneď pod nimi */
.uc-hafo:has(.uc-hafo-pruhy) .uc-hafo-t{padding-top:26px}
/* Počítač: sklenená pilulka s počtom, bodkami a šípkou vpravo hore (pôvodná z 2. 10. 2026;
   pruhy cez celú šírku prekrývali maskotovi hlavu, majiteľ 8. 10. 2026). V rohu okna
   stojí krížik – pilulka uhne vľavo od neho. Nadpis začína tesne pod ňou. */
/* Vľavo od šípky späť a X okna (tie stoja nad pravým horným rohom karty; majiteľ 13. 10. 2026: prekrývali sa). */
.uc-hafo-bodky{position:absolute;right:84px;top:9px;z-index:2;display:flex;align-items:center;gap:7px;padding:5px 5px 5px 11px;border-radius:99px;
  background:var(--sklo);border:1px solid var(--sklo-ram);-webkit-backdrop-filter:var(--sklo-blur);backdrop-filter:var(--sklo-blur);
  box-shadow:0 1px 2px rgba(78,58,44,.08),0 6px 14px -8px rgba(78,58,44,.45)}
.uc-hafo-poc{font-size:.72rem;font-weight:600;letter-spacing:.02em;color:var(--ink-2);margin-right:2px;font-variant-numeric:tabular-nums}
.uc-hafo-bodky button{position:relative;width:8px;height:8px;padding:0;border:0;border-radius:50%;background:#DCCFC2;cursor:pointer;overflow:hidden;
  transition:width .35s cubic-bezier(.34,1.56,.64,1),background-color .2s}
.uc-hafo-bodky button::after{content:"";position:absolute;inset:-8px -4px}
.uc-hafo-bodky button.zap{width:28px;border-radius:99px;background:#F2C9C5}
.uc-hafo-bodky button:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.uc-hafo-bodky .uc-hafo-dalsi{width:26px;height:26px;border-radius:50%;background:var(--red);display:grid;place-items:center;margin-left:1px;
  box-shadow:0 4px 10px -4px rgba(140,26,26,.6)}
.uc-hafo-bodky .uc-hafo-dalsi svg{width:15px;height:15px;fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.uc-hafo-bodky .uc-hafo-dalsi:hover{background:var(--red-dk, #B8171B)}
.uc-hafo-pc:has(.uc-hafo-bodky) .uc-hafo-t{padding-top:20px}
.uc-hafo-pc:has(.uc-hafo-bodky) .uc-hafo-t strong{margin-top:12px}
/* Dráha sledovania v karte – tá istá ako v samostatnom sledovaní, len tesnejšie. */
.uc-hafo .uc-sled-draha{margin:16px 12px 4px}
.uc-hafo .uc-sled-t{margin:12px 0 14px}
.uc-hafo > .uc-rez-det{grid-column:1 / -1;padding:0 20px}
.uc-hafo-m{display:none}
@media(max-width:900px){
  .uc-hafo-pc{display:none}
  .uc-hafo-m{display:grid;grid-template-columns:118px minmax(0,1fr);min-height:158px;margin:4px 0 12px}
  .uc-hafo-m .uc-hafo-pes{height:148px;max-width:112px;margin-bottom:10px}
  .uc-hafo-m .uc-hafo-t{padding:28px 14px 14px 0}
  .uc-hafo-m .uc-hafo-t strong{font-size:1.15rem}
  .uc-hafo-m .uc-hafo-t p{font-size:.8rem;margin-bottom:10px}
  .uc-hafo-m:has(.uc-hafo-pruhy) .uc-hafo-t{padding-top:24px}
  .uc-hafo .uc-sled-draha{margin:14px 6px 4px} .uc-hafo .uc-sled-t{--sled-okraj:6px}
  .uc-hafo > .uc-rez-det{padding:0 10px}
}
/* Sledovanie rezervácie (návrh B, https://claude.ai/artifact/L5PJks8fna7BtEiC8GunXW):
   dráha Prijatá → Chystáme → Pripravená → Vyzdvihnutá, bez maskota. */
.uc-sled{margin:0 0 14px;padding:18px 20px 16px}
.uc-sled-hl{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.uc-sled-hl b{font-family:var(--head);font-size:1.15rem;letter-spacing:.03em}
.uc-sled-draha{position:relative;margin:24px 12px 4px;height:8px;border-radius:99px;background:var(--bg-soft)}
.uc-sled-draha > i{position:absolute;left:0;top:0;bottom:0;width:var(--poz);border-radius:99px;background:var(--cta);box-shadow:var(--cta-lesk);
  animation:uc-rast 1s cubic-bezier(.2,.8,.2,1) both}
.uc-sled-krok{position:absolute;top:50%;transform:translate(-50%,-50%);width:22px;height:22px;border-radius:50%;background:var(--v-okne);box-shadow:inset 0 0 0 2px var(--line)}
.uc-sled-krok.je{background:var(--red);box-shadow:0 0 0 4px var(--red-soft)}
/* Nápisy sedia pod bodkami: krajné začínajú a končia na okraji, stredné sú
   vycentrované pod svojou bodkou (majiteľ 2. 10. 2026). --sled-okraj = bočný
   okraj dráhy, bodky sú na 0, 1/3, 2/3 a 1 jej šírky. */
.uc-sled-t{--sled-okraj:12px;position:relative;height:1.5em;margin:14px 0 0;font-size:.74rem;font-weight:700;color:var(--ink-soft);white-space:nowrap}
.uc-sled-t span{position:absolute;top:0}
.uc-sled-t span:nth-child(1){left:0}
.uc-sled-t span:nth-child(2){left:calc(var(--sled-okraj) + (100% - 2 * var(--sled-okraj)) / 3);transform:translateX(-50%)}
.uc-sled-t span:nth-child(3){left:calc(var(--sled-okraj) + (100% - 2 * var(--sled-okraj)) * 2 / 3);transform:translateX(-50%)}
.uc-sled-t span:nth-child(4){right:0}
.uc-sled-t span.je{color:var(--red-dk)}
.uc-sled-veta{margin:14px 0 0;padding:10px 12px;border-radius:12px;background:var(--red-soft);font-size:.84rem;color:var(--ink-2)}
.uc-sled-veta b{color:var(--red-dk)}
.uc-sled .uc-tl{margin-top:10px}
@media (prefers-reduced-motion:reduce){ .uc-sled-draha > i{animation:none} }
@media(max-width:600px){
  .uc-sled{padding:16px 14px 14px}
  .uc-sled-draha{margin:22px 6px 4px}
  .uc-sled-t{font-size:.66rem;--sled-okraj:6px}
}
.uc-prazdne .maskot{margin:0 auto 10px}
.uc-hl{display:flex;align-items:baseline;gap:12px;margin:0 50px 16px 0;flex-wrap:wrap}
.uc-hl h3{margin:0;font-size:1.45rem;letter-spacing:.04em}
.uc-hl p{margin:0;color:var(--ink-soft);font-size:.88rem}

.uc-karta{background:var(--panel);border:1px solid var(--karta-ram);border-radius:var(--r);
  box-shadow:var(--tien-jemny);padding:16px 18px}
.uc-mriezka-k{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.uc-karta h4{font-family:var(--head);text-transform:uppercase;font-weight:600;font-size:.8rem;letter-spacing:.1em;
  color:var(--ink-soft);margin:0 0 8px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.uc-karta h4 .uc-lnk{font-family:var(--text);text-transform:none;letter-spacing:0;font-size:.8rem;
  color:var(--red-dk);font-weight:600;text-decoration:none}
.uc-velke{font-family:var(--head);font-size:1.15rem;color:var(--ink);font-weight:600;letter-spacing:.02em}
.uc-jemne{font-size:.82rem;color:var(--ink-soft);margin:2px 0 10px}
.uc-pil{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;
  font-size:.74rem;font-weight:700;white-space:nowrap}
.uc-pil-zel{background:#e6f4e8;color:#2f8a3c}
.uc-pil-cer{background:var(--red-soft);color:var(--red-dk)}
.uc-pil-siv{background:var(--bg-soft);color:var(--ink-2)}
.uc-tl{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}
/* Kupóny v účte ako lístky: vľavo zlatá hodnota za perforáciou, vpravo
   čo to je a kód. Návrh https://claude.ai/artifact/8HXE4bJEANhha1qANPgdMz. */
.uc-listky{display:flex;flex-direction:column;gap:10px;max-width:560px}
.uc-listok{position:relative;display:grid;grid-template-columns:78px minmax(0,1fr);background:var(--panel);
  border:1px solid var(--karta-ram);border-radius:14px;box-shadow:var(--tien-jemny);overflow:hidden}
.uc-listok-l{background:var(--zlato);color:var(--zlato-ink);display:grid;place-items:center;font-family:var(--head);
  font-size:1.35rem;border-right:2px dashed rgba(107,71,18,.35)}
.uc-listok-p{padding:10px 12px;min-width:0}
.uc-listok-p b{display:block;color:var(--ink);font-size:.92rem}
.uc-listok-p small{display:block;color:var(--ink-soft);font-size:.78rem}
.uc-listok-spod{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-top:7px}
.uc-listok.pouzity{opacity:.55}
.uc-listok.pouzity .uc-listok-l{background:var(--bg-soft);color:var(--ink-soft)}
.uc-kod{font-family:ui-monospace,Consolas,monospace;font-weight:700;letter-spacing:.04em;color:var(--ink);background:var(--v-okne);
  border:1px dashed #cdb89a;border-radius:8px;padding:3px 8px;font-size:.84rem;white-space:nowrap}
.uc-postup{height:8px;border-radius:99px;background:var(--bg-soft);box-shadow:inset 0 0 0 1px var(--line);overflow:hidden;margin:8px 0 4px}
.uc-postup i{display:block;height:100%;background:var(--zlato)}
.uc-zelene{display:inline;color:#2f8a3c}

/* ---------- Zľavy: lišta s milníkmi progresnej zľavy (25. 9. 2026) ----------
   Výplň narastie pri otvorení časti, dosiahnuté milníky sa rozsvietia po
   jednom a na výplni sa opakuje lesk – ten istý pohyb ako pás výzvy maznáka. */
.uc-progres{margin-bottom:16px}
.uc-progres-hl{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;align-items:flex-end}
.uc-progres-teraz{display:block;font-family:var(--head);font-size:1.35rem;letter-spacing:.03em;color:var(--ink)}
.uc-progres-obrat{text-align:right}
.uc-progres-obrat span{display:block;font-size:.76rem;color:var(--ink-soft)}
.uc-progres-obrat b{font-family:var(--head);font-size:1.25rem;color:var(--ink)}
.uc-lista{position:relative;height:74px;margin:18px 14px 6px}
.uc-lista-draha{position:absolute;left:0;right:0;top:12px;height:10px;border-radius:99px;background:var(--bg-soft);
  box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}
.uc-lista-draha i{position:absolute;inset:0 auto 0 0;width:var(--plna);border-radius:99px;background:var(--cta);
  box-shadow:var(--cta-lesk);animation:uc-rast 1.1s cubic-bezier(.2,.8,.2,1) both;overflow:hidden}
.uc-lista-draha i::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);
  transform:translateX(-100%);animation:uc-lesk 2.8s 1.2s ease-in-out infinite}
.uc-milnik{position:absolute;left:var(--poz);top:0;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px}
/* Kovy úrovní vernostnej zľavy – bronz, striebro, zlato, platina, diamant
   (majiteľ 25. 9. 2026: namiesto červenej lesklé kovy). Trieda `kov-…` nastaví
   premenné, prvok si z nich skladá sklenený lesk: svetlá škvrna navrchu,
   kovový prechod pod ňou, tieň vo farbe kovu. */
.kov-bronz{--kov:linear-gradient(150deg,#FCE6D0 0%,#E3AC7A 34%,#B8723D 70%,#8C5126 100%);--kov-ink:#4A2710;--kov-tien:rgba(140,81,38,.55);--kov-ram:#D9A06E}
.kov-striebro{--kov:linear-gradient(150deg,#FFFFFF 0%,#E8EBEF 34%,#BCC3CB 70%,#8F979F 100%);--kov-ink:#353B42;--kov-tien:rgba(90,98,108,.5);--kov-ram:#B7BEC6}
.kov-zlato{--kov:linear-gradient(150deg,#FFF6DD 0%,#F2DDA6 38%,#D8AE5E 78%,#B98A3E 100%);--kov-ink:#6B4712;--kov-tien:rgba(122,82,24,.55);--kov-ram:#D8AE5E}
.kov-platina{--kov:linear-gradient(150deg,#FBFDFF 0%,#DDE6EE 32%,#A9B9C7 68%,#71869A 100%);--kov-ink:#233240;--kov-tien:rgba(70,92,112,.5);--kov-ram:#A3B4C3}
.kov-diamant{--kov:linear-gradient(135deg,#FFFFFF 0%,#D9F3FF 22%,#9CD8F5 45%,#E9DDFF 62%,#8EC5EE 80%,#C9E9FF 100%);--kov-ink:#17405F;--kov-tien:rgba(58,120,170,.5);--kov-ram:#8EC5EE}
.uc-milnik-bod{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:700;
  background:var(--v-okne);box-shadow:inset 0 0 0 2px var(--kov-ram,var(--line));color:var(--ink-soft)}
.uc-milnik.je .uc-milnik-bod{background:radial-gradient(120% 70% at 30% 8%,rgba(255,255,255,.8),rgba(255,255,255,0) 55%),var(--kov,var(--zlato));
  color:var(--kov-ink,var(--zlato-ink));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 -2px 4px rgba(0,0,0,.14),0 4px 10px -4px var(--kov-tien,rgba(122,82,24,.55));
  animation:uc-milnik .45s cubic-bezier(.3,1.6,.5,1) both}
.uc-milnik.teraz .uc-milnik-bod{outline:3px solid var(--kov-tien,rgba(225,33,31,.25));outline-offset:2px}
/* Ďalší milník pulzuje – ukazuje, kam sa oplatí dôjsť. */
.uc-milnik.dalsi .uc-milnik-bod{box-shadow:inset 0 0 0 2px var(--red);color:var(--red-dk);animation:uc-pulz 1.9s 1.3s ease-out infinite}
.uc-milnik.dalsi .uc-milnik-txt b{color:var(--red-dk)}
/* „Ty" – bublina nad koncom výplne, dobehne s ňou a poskočí. */
.uc-lista-ja{position:absolute;top:-22px;left:var(--plna);transform:translateX(-50%);background:var(--ink);color:#fff;
  font-size:.68rem;font-weight:700;letter-spacing:.04em;padding:2px 7px;border-radius:99px;white-space:nowrap;
  animation:uc-ja 1.1s cubic-bezier(.2,.8,.2,1) both, uc-skok .6s 1.15s ease-out}
.uc-lista-ja::after{content:"";position:absolute;left:50%;bottom:-4px;margin-left:-4px;border:4px solid transparent;border-bottom:0;border-top-color:var(--ink)}
.uc-progres{animation:uc-nabeh .5s ease-out both}
.uc-milnik-txt{display:flex;flex-direction:column;align-items:center;line-height:1.15;white-space:nowrap}
.uc-milnik-txt b{font-family:var(--head);font-size:.95rem;color:var(--ink)}
.uc-milnik-txt small{font-size:.72rem;color:var(--ink-soft)}
.uc-progres-veta{margin:4px 0 6px;font-size:.92rem;text-align:center}
.uc-progres-pozn{margin:8px 0 0;padding-top:10px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:center;
  gap:2px 0;font-size:.76rem;line-height:1.45;color:var(--ink-soft)}
.uc-progres-pozn span+span::before{content:"·";margin:0 7px;opacity:.6}
.uc-nadpis3{font-family:var(--head);text-transform:uppercase;letter-spacing:.08em;font-size:.9rem;margin:6px 0 2px;color:var(--ink)}
@keyframes uc-rast{from{width:0}}
@keyframes uc-lesk{0%{transform:translateX(-100%)}60%,100%{transform:translateX(100%)}}
@keyframes uc-milnik{from{transform:scale(.4);opacity:0}}
@keyframes uc-pulz{0%{box-shadow:inset 0 0 0 2px var(--red),0 0 0 0 rgba(225,33,31,.45)}70%{box-shadow:inset 0 0 0 2px var(--red),0 0 0 12px rgba(225,33,31,0)}100%{box-shadow:inset 0 0 0 2px var(--red),0 0 0 0 rgba(225,33,31,0)}}
@keyframes uc-ja{from{left:0;opacity:0}}
@keyframes uc-skok{0%,100%{transform:translateX(-50%) translateY(0)}40%{transform:translateX(-50%) translateY(-6px)}}
@keyframes uc-nabeh{from{opacity:0;transform:translateY(8px)}}
@media(prefers-reduced-motion:reduce){
  .uc-lista-draha i,.uc-lista-draha i::after,.uc-milnik.je .uc-milnik-bod,.uc-milnik.dalsi .uc-milnik-bod,.uc-lista-ja,.uc-progres{animation:none}
}
@media(max-width:600px){
  .uc-milnik-txt small{display:none}
  .uc-lista{margin:18px 12px 0}
}
/* Malá lišta úrovní pri prihlásení a registrácii – kam sa dá dostať
   (návrh 1, 28. 9. 2026): bez výplne, bez súm, všetky kovy naraz. */
.uc-lista.uc-lista-mini{height:44px;margin:12px 6px 0}
.uc-lista-mini .uc-lista-draha{top:9px;height:6px}
.uc-lista-mini .uc-milnik{gap:3px}
.uc-lista-mini .uc-milnik-bod{width:24px;height:24px}
.uc-lista-mini .uc-milnik-txt b{font-family:var(--text);font-size:.62rem;font-weight:700;color:var(--ink-2)}
/* Nájsť rezerváciu bez účtu pod prihlásením (návrh A). */
.uc-najdi{margin-top:6px}
.uc-najdi .uc-lnk{display:block;margin:0 auto;font-size:.82rem;font-weight:600;color:var(--red-dk)}
.uc-najdi .najdi-form{margin-top:10px}

/* ---------- Hafo karta ----------
   Na výšku, ako karta v mobile (zákazník ju ukáže pri pokladni z telefónu):
   červená s logom, veľký biely štvorec s QR, meno a číslo dole. */
.uc-hafokarta{width:min(320px,100%);aspect-ratio:.63;border-radius:22px;background:var(--cta);color:#fff;
  box-shadow:var(--cta-lesk),var(--cta-tien);padding:22px 22px 24px;display:flex;flex-direction:column;
  align-items:center;gap:14px;position:relative;overflow:hidden;box-sizing:border-box;margin:0 auto}
.uc-hafokarta::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.18) 50%,transparent 60%);
  pointer-events:none}
.uc-hk-hlava{align-self:stretch;text-align:center;font-family:var(--head);font-size:1.9rem;letter-spacing:.08em;text-transform:uppercase;line-height:1.1}
.uc-hk-qr{flex:0 0 auto;width:78%;aspect-ratio:1;background:var(--v-okne);border-radius:16px;padding:14px;box-sizing:border-box;margin-top:auto;
  display:grid;place-items:center}
.uc-hk-qr svg{width:100%;height:100%;display:block}
.uc-hk-qr img{width:100%;height:100%;display:block;object-fit:contain;image-rendering:pixelated}
.uc-hk-meno{margin-top:auto;font-weight:700;font-size:1.1rem;text-align:center}
.uc-hk-cislo{font-family:ui-monospace,Consolas,monospace;letter-spacing:.1em;font-size:.95rem;opacity:.92}
.uc-hk-veta{margin-top:10px;text-align:center}
/* Pridať do Peňaženky Google – oficiálny odznak (výška 48 px podľa pravidiel Googlu, nič sa naň nekreslí). */
.uc-hk-wallet{display:flex;flex-direction:column;align-items:center;margin-top:12px}
.uc-hk-wallet[hidden]{display:none}
.uc-wallet-odznak{display:block;height:48px;padding:0;border:0;background:none;border-radius:24px;cursor:pointer;line-height:0}
.uc-wallet-odznak img{display:block;height:48px;width:auto}
.uc-wallet-odznak:focus-visible{outline:2.5px solid var(--red);outline-offset:3px}
.uc-wallet-odznak:disabled{opacity:.6;cursor:progress}
.uc-hk-wallet .uc-msg{margin-top:8px;text-align:center}
.uc-hk-cela .uc-hk-wallet{margin-top:0;position:relative;z-index:1}
.uc-hk-cela .uc-wallet-odznak:focus-visible{outline-color:var(--na-cervenom)}
.uc-hk-cela .uc-hk-wallet .uc-msg{color:var(--na-cervenom)}
/* Na počítači v strede okna (majiteľ 28. 9. 2026). */
.uc-hk-obal{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100% - 64px)}
.uc-cast-karta{display:flex;flex-direction:column;min-height:100%}
.uc-cast-karta .uc-hk-obal{flex:1 1 auto;min-height:0}
/* Na telefóne naozaj celá obrazovka – vrstva `#ucHkCela` v <body> cez hlavičku
   aj spodnú lištu (majiteľ 28. 9. 2026); väčší kód sa pri pokladni lepšie číta. */
.uc-hk-cela{position:fixed;inset:0;z-index:2000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;
  padding:calc(24px + env(safe-area-inset-top, 0px)) 20px calc(24px + env(safe-area-inset-bottom, 0px));
  background:rgba(28,27,26,.62);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--na-cervenom);
  overflow:hidden;animation:fadeIn .2s ease-out}
/* karta z počítača (.uc-hafokarta), len väčšia; QR menší než predtým (bol 84 % šírky obrazovky) – majiteľ 14. 10. 2026 */
.uc-hk-cela .uc-hafokarta{width:min(340px,100%,calc((100dvh - 210px) * .63));margin:0;flex:none;
  animation:hkPop .38s cubic-bezier(.34,1.56,.64,1)}
.uc-hk-cela .uc-hk-hlava{font-size:2rem}
.uc-hk-cela .uc-hk-qr{width:72%}
.uc-hk-cela .uc-hk-meno{font-size:1.2rem}
.uc-hk-cela .uc-hk-cislo{font-size:1rem}
.uc-hk-cela-veta{margin:0;font-size:.9rem;opacity:.9;position:relative;z-index:1}
@keyframes hkPop{from{transform:scale(.92);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.uc-hk-cela .uc-hafokarta{animation:none}}
.uc-hk-zavri{position:absolute;right:14px;top:calc(12px + env(safe-area-inset-top, 0px));z-index:2;width:44px;height:44px;border-radius:50%;
  border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.16);color:var(--na-cervenom);font-size:1.6rem;line-height:1;
  display:grid;place-items:center;cursor:pointer}
.uc-hk-zavri:focus-visible{outline:2.5px solid var(--na-cervenom);outline-offset:2px}
@media(min-width:901px){ .uc-hk-cela{display:none} }
@media(max-width:900px){
  .uc-cast-karta .uc-hl,.uc-cast-karta .uc-hk-veta,.uc-cast-karta .uc-hk-wallet{display:none}
  .uc-cast-karta .uc-hafokarta{width:100%;aspect-ratio:auto;height:calc(100dvh - 110px);min-height:440px;
    padding:28px 24px 30px;border-radius:26px}
  .uc-cast-karta .uc-hk-qr{width:min(86%,62vh)}
  .uc-cast-karta .uc-hk-hlava{font-size:2.3rem}
  .uc-cast-karta .uc-hk-meno{font-size:1.3rem}
  .uc-cast-karta .uc-hk-cislo{font-size:1.1rem}
}
.uc-ucet .btn{border-radius:6px;padding:10px 18px;font-size:.86rem;letter-spacing:.08em}
.uc-ucet .btn.uc-mini{padding:7px 12px;font-size:.76rem}
.uc-riadok{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.uc-riadok:first-of-type{border-top:0}
.uc-t{min-width:0;flex:1}
.uc-riadok b{display:block;color:var(--ink);font-size:.92rem;line-height:1.3}
.uc-riadok .uc-t span{display:block;font-size:.82rem;color:var(--ink-soft)}
.uc-karta-zoz{display:grid;gap:0}
.uc-rez .uc-tl{margin-top:0;flex-wrap:nowrap}
/* Riadok rezervácie: fotky · číslo a dátum · suma, potom stav a tlačidlá.
   Celá ľavá časť je tlačidlo, ktoré rozbalí detail. */
.uc-rez{padding:12px 0}
.uc-rez-hl{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:14px;padding:4px 6px 4px 0;margin:0;background:none;border:0;
  font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:12px}
.uc-rez-hl:disabled{cursor:default}
.uc-rez-hl:focus-visible{outline:3px solid rgba(225,33,31,.3);outline-offset:2px}
/* Pevná šírka na 3 fotky a „+N“ – čísla rezervácií potom stoja pod sebou. */
.uc-rez-fotky{display:flex;flex:0 0 164px;padding-left:10px;box-sizing:border-box}
.uc-rez-foto{position:relative;width:46px;height:46px;margin-left:-10px;border-radius:12px;background:var(--v-okne);
  box-shadow:0 0 0 2px var(--v-okne),0 4px 10px -6px rgba(78,58,44,.45);display:grid;place-items:center;overflow:hidden}
.uc-rez-foto img{width:100%;height:100%;object-fit:contain;padding:3px;box-sizing:border-box}
.uc-rez-foto i{position:absolute;right:2px;bottom:2px;font-style:normal;font-size:.62rem;font-weight:700;line-height:1;
  padding:2px 4px;border-radius:6px;background:var(--red);color:#fff}
.uc-rez-viac{background:var(--bg-soft);font-size:.78rem;font-weight:700;color:var(--ink-2)}
.uc-rez-t{flex:0 0 190px;min-width:0;display:flex;flex-direction:column;gap:1px}
.uc-rez-c{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.uc-rez-t b{font-size:.95rem;color:var(--ink);letter-spacing:.01em;white-space:nowrap}
.uc-rez-t > span:last-child{font-size:.8rem;color:var(--ink-soft)}
.uc-rez-suma{flex:0 0 auto;font-family:var(--head);font-weight:600;font-size:1.15rem;color:var(--ink);font-variant-numeric:tabular-nums;margin-left:auto}
.uc-rez-hl:hover .uc-rez-t b{color:var(--red-dk)}
.uc-rez-suma-m{display:none;font-style:normal;font-weight:700;color:var(--ink)}
/* Obľúbené v Prehľade: fotka + názov, celý riadok vedie na krmivo. */
.uc-obl-r{text-decoration:none;color:inherit}
.uc-obl-r .uc-rez-foto{margin-left:0;flex:0 0 auto}
.uc-obl-karta{grid-column:1/-1}
.uc-obl-zoz{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));column-gap:22px}
.uc-obl-zoz .uc-riadok:first-of-type{border-top:0}
.uc-obl-zoz .uc-riadok:nth-child(2){border-top:0}
@media(max-width:620px){ .uc-obl-zoz .uc-riadok:nth-child(2){border-top:1px solid var(--line)} }
.uc-obl-r:hover .uc-t b{color:var(--red-dk)}
.uc-cipy{display:flex;flex-wrap:wrap;gap:8px}
.uc-cip{display:inline-flex;align-items:center;gap:7px;background:var(--v-okne);border:1px solid var(--line);
  border-radius:999px;padding:5px 12px 5px 6px;font-size:.84rem;font-weight:600;color:var(--ink);box-shadow:var(--tien-jemny)}
.uc-cip .uc-cip-ik{width:24px;height:24px}
.uc-cip .uc-cip-ik::before{width:28px;height:28px;margin:-2px}
.uc-cip .uc-druh-ik svg{width:28px;height:28px;margin:-2px}
.uc-druh-ik{display:grid;place-items:center;flex:0 0 auto;color:var(--zlato-ink)}
.uc-druh-ik svg{width:100%;height:100%;fill:currentColor}
/* Zľava v Prehľade – jeden riadok; kov úrovne nesie minca (minca.js), pás je obyčajná karta. */
.uc-zlava{all:unset;box-sizing:border-box;position:relative;grid-column:1/-1;display:flex;align-items:center;gap:12px;
  width:100%;min-width:0;cursor:pointer;padding:6px 16px 6px 8px;border-radius:999px;font-size:.86rem;
  background:var(--panel);border:1px solid var(--karta-ram);color:var(--ink);box-shadow:var(--tien-jemny)}
@keyframes uc-lesk-kov{0%{transform:translateX(-100%)}40%,100%{transform:translateX(100%)}}
.uc-zlava .minca{position:relative}
.uc-zlava > span{position:relative;flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uc-zlava strong{font-weight:700}
.uc-zlava small{font-size:.8rem;opacity:.8}
.uc-zlava i{position:relative;font-style:normal;font-size:1.2rem;line-height:1;opacity:.7}
.uc-zlava:focus-visible{outline:2.5px solid var(--red);outline-offset:2px}

/* obľúbené = malá karta z katalógu */
.uc-prod-mriezka{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.uc-prod{background:var(--panel);border:1px solid var(--karta-ram);border-radius:var(--r);box-shadow:var(--tien-jemny);
  padding:12px;display:flex;flex-direction:column;gap:6px;position:relative}
.uc-prod-foto{display:block;position:relative;aspect-ratio:1/1;max-width:100%;border-radius:12px;background:var(--v-okne);overflow:hidden}
.uc-prod-foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.uc-srdce{all:unset;position:absolute;right:18px;top:18px;width:34px;height:34px;border-radius:50%;
  background:var(--sklo);border:1px solid var(--sklo-ram);display:grid;place-items:center;box-shadow:var(--sklo-tien);cursor:pointer}
.uc-srdce svg{width:18px;height:18px;fill:var(--red);pointer-events:none}
.uc-srdce:focus-visible{outline:2.5px solid var(--red);outline-offset:2px}
.uc-prod-zn{font-family:var(--head);text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;color:var(--red);font-weight:600}
.uc-prod-n{color:var(--ink);font-size:.86rem;font-weight:600;line-height:1.3;min-height:2.6em;text-decoration:none}
.uc-prod-dost{font-size:.76rem;font-weight:600;display:flex;align-items:center;gap:6px}
.uc-prod-dost::before{content:'';width:8px;height:8px;border-radius:50%;background:currentColor}
.uc-prod-cena{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto}
.uc-prod-cena b{font-family:var(--head);font-size:1.1rem;color:var(--ink)}
.uc-prazdne{text-align:center;padding:34px 20px}
.uc-prazdne-ik{width:64px;height:64px;border-radius:50%;background:var(--red-soft);display:grid;place-items:center;margin:0 auto 12px}
.uc-prazdne-ik svg{width:30px;height:30px;fill:var(--red)}
.uc-prazdne h4{justify-content:center;font-size:1rem;letter-spacing:.06em;color:var(--ink)}
.uc-prazdne p{max-width:46ch;margin:6px auto 14px}

/* zvieratá */
/* Návrh B „Portrét" (https://claude.ai/artifact/VWvVhqAsu5c5tQSVMhtcFd, 7. 10. 2026):
   zviera 120 px na scéne z hlavičky okna pridania, presahuje do karty;
   koliesko je sklenený krúžok v rohu scény. Hodnoty 1:1 z návrhu. */
.uc-zviera{position:relative;padding:0;overflow:hidden;display:flex;flex-direction:column}
.uc-zv-scena{position:relative;height:118px;display:grid;place-items:end center;
  background:radial-gradient(120% 90% at 50% 100%,#fff 0%,rgba(255,255,255,0) 60%),linear-gradient(160deg,var(--red-soft) 0%,#F6EEE6 70%)}
.uc-zviera .uc-zviera-ik{width:120px;height:120px;margin-bottom:-26px;filter:drop-shadow(0 10px 10px rgba(78,58,44,.22))}
.uc-zviera .uc-plem-ik.uc-zviera-ik::before{width:132px;height:132px;margin:-6px}
.uc-zviera .uc-druh-ik.uc-zviera-ik svg{width:132px;height:132px;margin:-6px}
.uc-zv-uprav{all:unset;box-sizing:border-box;position:absolute;top:12px;right:12px;width:34px;height:34px;
  display:grid;place-items:center;border-radius:50%;cursor:pointer;color:var(--ink-2);
  background:var(--sklo);border:1px solid var(--sklo-ram);box-shadow:var(--sklo-tien);
  -webkit-backdrop-filter:var(--sklo-blur);backdrop-filter:var(--sklo-blur);
  transition:background .15s,color .15s,transform .2s cubic-bezier(.34,1.56,.64,1)}
.uc-zv-uprav:hover{background:rgba(255,255,255,.95);color:var(--ink);transform:scale(1.06)}
.uc-zv-uprav:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.uc-zv-uprav svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;
  stroke-linejoin:round;pointer-events:none}
.uc-zv-telo{padding:34px 16px 18px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}
.uc-zv-t{display:flex;flex-direction:column;align-items:center;min-width:0;line-height:1.2}
.uc-zv-t > span{font-size:.84rem;margin-top:3px;color:var(--ink-soft)}
.uc-zv-diety{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px}
.uc-zv-diety > b{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-soft);margin-right:2px}
.uc-zviera-m{display:block;font-family:var(--head);font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--ink);font-size:1.55rem}
.uc-fakty{gap:6px;justify-content:center}
.uc-pridat{all:unset;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;
  min-height:100%;padding:24px;cursor:pointer;font-weight:600;color:var(--ink);background:var(--panel);border:1px solid var(--karta-ram);
  border-radius:var(--r);box-shadow:var(--tien-jemny)}
.uc-pridat:focus-visible{outline:2.5px solid var(--red);outline-offset:2px}
.uc-pridat-ik{width:64px;height:64px;border-radius:50%;background:var(--sklo);border:1px solid var(--sklo-ram);
  box-shadow:var(--sklo-tien);color:var(--red);display:grid;place-items:center;font-size:2rem;line-height:1;pointer-events:none}
@media(max-width:620px){ .uc-pridat{min-height:110px} }
@media (prefers-reduced-motion:reduce){ .uc-zv-uprav{transition:none} }

/* nastavenia */
.uc-sek{margin-bottom:16px}
.uc-pr{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.uc-sek h4 + .uc-pr,.uc-sek h4 + form{border-top:0}
.uc-pr b{display:block;color:var(--ink);font-size:.9rem;font-weight:600}
.uc-pr small{display:block;color:var(--ink-soft);font-size:.8rem;line-height:1.45}
.uc-hodnota{color:var(--ink);font-weight:600;font-size:.9rem;text-align:right;overflow-wrap:anywhere}
.uc-pr .uc-jemne{margin:0}
.uc-rez-t .uc-jemne{display:block;margin:2px 0 0}
/* Úprava údajov priamo v riadku (majiteľ 5. 10. 2026: okienka sa majú objaviť
   tam, kde údaje sú): pole nahradí hodnotu v tom istom riadku. Záporný okraj
   obalu vráti riadku pôvodnú výšku (pole 34 px v riadku s textom ~22 px), takže
   sa nič nepohne – pole len presahuje do vnútorného odsadenia riadku. Vzhľad
   poľa je z jednotného receptu hore (.uc-vstup je v ňom). */
.uc-sek h4 + form > .uc-pr:first-child{border-top:0}
.uc-pr > label.uc-t{flex:0 0 auto;white-space:nowrap}
.uc-vstup-obal{flex:1 1 0;min-width:0;max-width:56%;margin:-7px 0 -7px auto}
.uc-vstup-obal .pole-chyba{margin-top:4px}
.uc-pr .uc-vstup{padding:5px 11px;font-size:.9rem;font-weight:600;line-height:1.5;border-radius:10px;text-align:right}
/* Adresa v riadku: ulica a číslo na celý riadok, PSČ (úzke) a obec pod ňou; popisok ostáva hore vľavo. */
.uc-pr-adresa{align-items:flex-start}
.uc-pr-adresa > label.uc-t{padding-top:5px}
.uc-adresa-skup{flex:1 1 0;min-width:0;max-width:62%;margin:-7px 0 -7px auto;
  display:grid;grid-template-columns:5.8rem minmax(0,1fr);gap:6px}
.uc-adresa-skup .uc-vstup-obal{max-width:none;margin:0}
.uc-adresa-skup .uc-adr-ulica{grid-column:1/-1}
@media (max-width:560px){.uc-adresa-skup{flex-basis:100%;max-width:none;margin:0}}
.uc-spinac{all:unset;position:relative;width:46px;height:28px;flex:0 0 auto;border-radius:999px;background:var(--bg-soft);
  border:1px solid var(--line);cursor:pointer;transition:background .18s}
.uc-spinac::after{content:'';position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:var(--v-okne);
  box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .18s}
.uc-spinac[aria-checked="true"]{background:var(--red);border-color:var(--red)}
.uc-spinac[aria-checked="true"]::after{transform:translateX(18px)}
.uc-spinac:focus-visible{outline:2.5px solid var(--red);outline-offset:2px}
.uc-cervene{color:var(--red-dk)}
/* „i" s vysvetlením (16. 10. 2026) – ten istý prvok ako Nápoveda v administrácii (`.napoveda`, MAPA.md): 19 px kruh,
   priesvitné, pri nabehnutí/zameraní plné; bublina je karta so zaoblením 11 px a teplým tieňom. */
.uc-i{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;margin-left:6px;padding:0;
  border:1px solid var(--line);border-radius:50%;background:var(--v-okne);color:var(--ink-soft);
  font:600 11px/1 var(--head);letter-spacing:0;text-transform:none;cursor:pointer;vertical-align:middle;
  position:relative;top:-1px;opacity:.55;transition:opacity .15s ease,color .15s ease,border-color .15s ease}
.uc-i::after{content:'';position:absolute;inset:-10px}
.uc-i:hover,.uc-i:focus-visible{opacity:1;color:var(--ink);border-color:var(--ink-soft);outline:0}
.uc-i:focus-visible{box-shadow:0 0 0 3px rgba(225,33,31,.13)}
.uc-bublina{position:fixed;z-index:3000;padding:8px 11px;border-radius:11px;background:var(--v-okne);color:var(--ink-2);
  font:400 .78rem/1.4 'Inter',system-ui,sans-serif;text-transform:none;letter-spacing:0;
  box-shadow:0 14px 34px -16px rgba(78,58,44,.6),0 2px 7px -3px rgba(78,58,44,.45),0 0 0 1px var(--line);pointer-events:none}
.uc-bublina[hidden]{display:none}
/* Firemné údaje a dodacie adresy v Nastaveniach (návrh Profil.dc, 13. 10. 2026). */
.uc-firma{display:flex;gap:12px;align-items:flex-start;margin-top:10px}
.uc-firma-ik{width:40px;height:40px;border-radius:12px;background:var(--red-soft);color:var(--red-dk);
  display:inline-flex;align-items:center;justify-content:center;flex:none}
.uc-firma-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.uc-firma-t b{font-size:.94rem;color:var(--ink);overflow-wrap:anywhere}
.uc-firma-t span{font-size:.81rem;color:var(--ink-2)}
.uc-firma-t small{font-size:.78rem;color:var(--ink-soft)}
.uc-sek .uc-firma-predv{margin-top:10px;padding:10px 0 0;border-top:1px solid var(--line)}
.uc-firma-predv-t{flex:1;font-size:.84rem;color:var(--ink)}
.uc-firma-prazdna{border:1.5px dashed var(--line-2);background:none;box-shadow:none}
.uc-firma-prazdna .uc-firma-pridaj{padding:11px 16px;font-size:.875rem}
.uc-firma-tip{margin:8px 0 0;font-size:.78rem;color:var(--ink-soft)}
.uc-adr-r{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);color:var(--ink-soft)}
.uc-adr-t{flex:1;min-width:0;display:flex;flex-direction:column}
.uc-adr-t b{font-size:.88rem;color:var(--ink);font-weight:600}
.uc-adr-t small{font-size:.78rem;color:var(--ink-soft)}
.uc-adr-r .uc-lnk{font-size:.81rem}
.uc-adr-nova{display:block;margin-top:10px;font-size:.88rem;font-weight:600;text-decoration:none;color:var(--red-dk)}
.uc-pil[hidden]{display:none}
.uc-pole > span .uc-pil{margin-left:8px;padding:2px 8px;font-size:.7rem;text-transform:none;letter-spacing:0;vertical-align:middle}
.uc-okno-f{margin-top:4px}
.uc-ucet .uc-vyzva{margin:0 50px 14px 0}
@media (prefers-reduced-motion:reduce){ .uc-spinac,.uc-spinac::after{transition:none} }

/* Do 900 px: začiatok účtu je zoznam častí, časť je vlastná obrazovka. */
@media(max-width:900px){
  .uc-modal.uc-profil .uc-box{display:block;overflow-y:auto}
  .uc-ucet{display:block;height:auto;min-height:0;max-height:none}
  .uc-bok{border-right:0;background:none;padding:16px;gap:12px}
  .uc-domov .uc-obsah{display:none}
  .uc-ucet:not(.uc-domov) .uc-bok{display:none}
  .uc-kto{padding:0 50px 0 0}
  .uc-kto-t{display:none}
  .uc-kto-m{display:block}
  .uc-kto-m b{font-family:var(--head);text-transform:uppercase;letter-spacing:.05em;font-size:1.1rem}
  .uc-len-mobil{display:block}
  .uc-len-mobil:empty{display:none}
  .uc-nav-prehlad{display:none}
  .uc-zoz{background:var(--panel);border:1px solid var(--karta-ram);border-radius:var(--r);box-shadow:var(--tien-jemny);
    padding:0 14px;gap:0}
  .uc-zoz .uc-nav{border-radius:0;padding:13px 0;border-top:1px solid var(--line)}
  .uc-zoz .uc-nav:nth-child(2){border-top:0}
  .uc-zoz .uc-nav::after{content:'›';margin-left:8px;color:var(--ink-soft);font-size:1.2rem;line-height:1}
  .uc-zoz .uc-nav:not(:has(.uc-poc))::after{margin-left:auto}
  .uc-zoz .uc-nav[aria-current="true"]{background:none;color:var(--ink-2)}
  .uc-zoz .uc-nav[aria-current="true"] .uc-poc{background:var(--bg-soft);color:var(--ink-2)}
  .uc-bok-dole{border-top:0;padding-top:0}
  .uc-obsah{padding:16px 16px 28px;overflow:visible}
  .uc-spat{all:unset;display:inline-flex;align-items:center;gap:4px;cursor:pointer;font-weight:600;
    color:var(--ink-2);margin:0 0 12px;font-size:.92rem;min-height:40px}
  .uc-hl{margin-right:0}
  .uc-hl h3{font-size:1.15rem}
  .uc-ucet .uc-vyzva{margin-right:0}
  .uc-prod-mriezka{grid-template-columns:1fr 1fr;gap:10px}
  .uc-prod{padding:9px}
  .uc-prod-n{font-size:.78rem}
  .uc-prod-cena{flex-direction:column;align-items:stretch}
  .uc-rez{flex-wrap:wrap}
  .uc-rez .uc-t{flex:1 1 100%}
  .uc-rez-hl{flex:1 1 100%;gap:12px}
  .uc-rez-t{flex:1 1 auto}
  .uc-rez-fotky{flex-basis:122px;padding-left:8px}
  .uc-rez-foto{width:38px;height:38px;margin-left:-8px;border-radius:10px}
  .uc-rez .uc-rez-suma{display:none}
  .uc-rez-suma-m{display:inline}
  .uc-rez .uc-tl{margin-left:auto}
  .uc-pr{flex-wrap:wrap}
}

/* ---------- Detail rezervácie (rezervacia-detail.js) ----------
   Stránka /moja-rezervacia?t=… aj rozbalený riadok v Mojom účte → Rezervácie.
   Ten istý vzhľad ako potvrdzovací e-mail (schválený návrh A, 23. 9. 2026):
   sklenená karta, položky na bielych riadkoch, suma v karte s jemným rámom,
   červená karta Vyzdvihnutie s kalendárom a platbou, tlačidlo Navigovať.
   Farby a sklo sú premenné zo styl.css – nič natvrdo. */
.mr{max-width:640px;margin-inline:auto;padding:36px 16px 72px}
.mr-karta{background:var(--sklo);border:1px solid var(--sklo-ram);border-radius:20px;
  -webkit-backdrop-filter:var(--sklo-blur);backdrop-filter:var(--sklo-blur);box-shadow:var(--sklo-tien);
  padding:30px 28px;display:flex;flex-direction:column;gap:18px}
.mr-hlava{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.mr-fajka{width:52px;height:52px;border-radius:50%;background:var(--red-soft);display:grid;place-items:center}
.mr-fajka svg{width:26px;height:26px;stroke:var(--red)}
.mr-fajka.sivo{background:var(--bg-soft)}
.mr-fajka.sivo svg{stroke:var(--ink-soft)}
.mr h1{margin:0;font-family:var(--head);font-size:clamp(1.6rem,5vw,1.9rem);font-weight:600;text-transform:uppercase;
  letter-spacing:.03em;color:var(--ink);line-height:1.15}
.mr-uvod{margin:0;line-height:1.9}
.mr-cislo{display:inline-block;padding:1px 12px;border-radius:999px;background:var(--red-soft);color:var(--red-dk);
  font-weight:700;letter-spacing:.04em;line-height:1.7}
.mr-pol{display:flex;flex-direction:column;gap:8px}
.mr-qr{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px;border-radius:18px;background:var(--v-okne);
  box-shadow:var(--tien-jemny);text-align:center}
.mr-qr img{width:180px;height:180px;padding:10px;border-radius:16px;border:1px solid var(--line);background:var(--v-okne)}
.mr-qr p{margin:0;font-size:.82rem;color:var(--ink-soft)}
.mr-riadok{display:flex;align-items:center;gap:14px;padding:10px 14px 10px 10px;border-radius:14px;
  background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.9);text-decoration:none;color:inherit}
.mr-riadok img,.mr-riadok .mr-bezfoto{width:56px;height:56px;flex:0 0 56px;border-radius:10px;background:var(--v-okne);object-fit:contain}
.mr-riadok .mr-n{flex:1 1 auto;min-width:0;font-weight:600;color:var(--ink);font-size:.9rem;line-height:1.35}
.mr-riadok .mr-q{display:block;color:var(--ink-soft);font-size:.8rem;font-weight:400}
.mr-riadok .mr-c{font-weight:700;color:var(--ink);white-space:nowrap}
.mr-spolu{display:flex;justify-content:space-between;align-items:center;margin-top:6px;padding:14px 20px;border-radius:14px;
  background:rgba(255,255,255,.85);border:1px solid var(--line);box-shadow:var(--tien-jemny)}
.mr-spolu span{font-family:var(--head);font-size:1.1rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}
.mr-spolu b{font-family:var(--head);font-size:2rem;font-weight:600;color:var(--ink);line-height:1.1}
.mr-vyzd{padding:18px 20px;border-radius:16px;background:var(--red-soft);display:flex;flex-direction:column;gap:12px}
.mr-vyzd-hore{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.mr-vyzd small{font-size:.69rem;letter-spacing:.14em;text-transform:uppercase;color:var(--red-dk);font-weight:700}
.mr-vyzd strong{display:block;font-family:var(--head);font-size:1.62rem;font-weight:600;color:var(--ink);line-height:1.15;margin-top:2px}
.mr-vyzd em{font-style:normal;font-weight:700;color:var(--ink-2)}
.mr-kal{display:flex;flex-direction:column;gap:6px;align-items:flex-end;flex-shrink:0}
.mr-kal a{padding:7px 12px;border-radius:999px;background:var(--v-okne);color:var(--red-dk);font-size:.78rem;font-weight:700;
  text-decoration:none;box-shadow:0 4px 10px -6px rgba(140,26,26,.5);white-space:nowrap}
.mr-kal a:hover{background:var(--red-soft-2)}
.mr-vyzd p{margin:0;font-size:.85rem;color:var(--ink-2);line-height:1.5}
.mr-vyzd .mr-platba{padding-top:12px;border-top:1px solid rgba(184,23,27,.15)}
.mr-navig{display:flex;flex-direction:column;align-items:center;gap:6px}
.mr-navig span{font-size:.82rem;color:var(--ink-soft)}
.mr-zrus{padding:14px 16px;border-radius:14px;background:rgba(255,255,255,.5);border:1px dashed rgba(107,99,96,.35);
  font-size:.82rem;color:var(--ink-soft);line-height:1.55;display:flex;flex-direction:column;gap:10px}
.mr-zrus b{color:var(--ink-2)}
.mr-zrus-tel{text-align:center}
.mr-zrus-akcie{display:flex;gap:8px;flex-wrap:wrap}
.mr-zrus-akcie[hidden],.mr-zrus-tl[hidden]{display:none}
.mr-sklo-tl{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border-radius:12px;
  background:var(--sklo);border:1px solid var(--sklo-ram);box-shadow:var(--sklo-tien);color:var(--ink);
  font:inherit;font-weight:700;font-size:.85rem;cursor:pointer}
.mr-sklo-tl:hover{background:rgba(255,255,255,.85)}
.mr-sklo-tl.cervene{background:var(--cta);color:#fff;border-color:transparent;box-shadow:var(--cta-lesk),var(--cta-tien)}
.mr-stav{text-align:center;color:var(--ink-soft);margin:0}
.mr-spat{display:block;text-align:center;margin-top:22px;font-size:.85rem;color:var(--ink-soft)}
/* ---------- Odstúpenie od zmluvy (/odstupenie, odstupenie.js) ----------
   Skladá existujúce prvky: sklenená karta `.mr-karta`, polia `.uc-pole`, sivý rámček `.mr-zrus`,
   tlačidlá `.btn` a `.mr-sklo-tl`, súhrn `.mr-spolu`. Nové je len výber položiek: riadok `.od-pol`
   s okrúhlym políčkom (`.od-kryt`, tlačidlo s role="checkbox" – bez prvku od prehliadača)
   a počtom kusov `.od-ks`. Farby a tiene len premennými. */
.od-form{display:flex;flex-direction:column;gap:2px}
.od-form .btn{align-self:stretch;justify-content:center;margin-top:8px}
.od-form .mr-sklo-tl{align-self:stretch;margin-top:6px}
.od-sek{display:flex;flex-direction:column;gap:8px;margin:2px 0 14px}
.od-sek-n{font-size:.78rem;font-weight:600;letter-spacing:.02em;color:var(--ink-2)}
.od-pol-zoz{display:flex;flex-direction:column;gap:8px}
.od-pol{display:flex;align-items:center;gap:12px;padding:10px 14px 10px 12px;border-radius:14px;
  background:rgba(255,255,255,.78);border:1.5px solid rgba(255,255,255,.9)}
.od-pol.je{border-color:var(--red);background:var(--red-soft)}
.od-kryt{flex:none;width:26px;height:26px;padding:0;border-radius:8px;border:1.5px solid var(--line-2);background:var(--v-okne);
  display:grid;place-items:center;color:var(--v-okne);cursor:pointer}
.od-pol.je .od-kryt{background:var(--red);border-color:var(--red)}
.od-kryt svg{width:16px;height:16px;stroke:currentColor}
.od-kryt:focus-visible,.od-ks button:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.od-pol img,.od-pol .mr-bezfoto{width:48px;height:48px;flex:0 0 48px;border-radius:10px;background:var(--v-okne);object-fit:contain}
.od-n{flex:1 1 auto;min-width:0;font-weight:600;color:var(--ink);font-size:.9rem;line-height:1.35}
.od-n small{display:block;font-weight:400;color:var(--ink-soft);font-size:.8rem}
.od-ks{display:flex;align-items:center;gap:8px}
.od-ks[hidden]{display:none}
.od-ks button{width:32px;height:32px;padding:0;border:1.5px solid var(--line);border-radius:8px;background:var(--v-okne);
  font:inherit;font-size:18px;line-height:1;color:var(--ink);cursor:pointer}
.od-ks b{min-width:20px;text-align:center;color:var(--ink)}
.od-dovoz{color:var(--ink-soft);font-size:.78rem;line-height:1.45}
.od-vynimky{margin-bottom:6px}
.od-vynimky a{color:var(--red-dk)}
.od-dalej b{color:var(--ink-2)}
.od-udaje{margin:0;display:flex;flex-direction:column;gap:8px}
.od-udaje div{display:flex;justify-content:space-between;gap:14px;font-size:.88rem}
.od-udaje dt{color:var(--ink-soft)}
.od-udaje dd{margin:0;font-weight:600;color:var(--ink);text-align:right;word-break:break-word}
a.mr-sklo-tl{text-decoration:none}
.od-tl{align-self:center}
@media (max-width:560px){
  .mr{padding:24px 12px 56px}
  .mr-karta{padding:24px 16px}
  .mr-vyzd-hore{flex-direction:column}
  .mr-kal{flex-direction:row;align-items:flex-start;flex-wrap:wrap}
}

/* Detail rezervácie rozbalený v Mojom účte → Rezervácie (pod riadkom).
   Výška sa rozbalí cez mriežku 0fr → 1fr, obsah nabehne zdola. */
.uc-rez-det{display:grid;grid-template-rows:0fr;visibility:hidden;
  transition:grid-template-rows .38s cubic-bezier(.2,.8,.2,1),visibility 0s .38s}
.uc-rez-det.otv{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .38s cubic-bezier(.2,.8,.2,1)}
.uc-rez-det-in{overflow:hidden;min-height:0}
.uc-rez-det .mr-karta{margin:2px 0 14px;padding:18px;gap:14px;background:rgba(255,255,255,.45);box-shadow:none}
.uc-rez-det.otv .mr-karta{animation:uc-nabeh .45s ease-out both}
.uc-rez-det .mr-spolu b{font-size:1.5rem}
.uc-rez-det .mr-vyzd strong{font-size:1.3rem}
.uc-rez-nac{margin:4px 0 14px}
@media (prefers-reduced-motion:reduce){ .uc-rez-det,.uc-rez-det.otv{transition:none} .uc-rez-det.otv .mr-karta{animation:none} }
@media (max-width:560px){
  .uc-rez-det .mr-karta{padding:14px 12px}
}

/* ---------- Panel Predajňa (predajna.js) ----------
   Na telefóne celá obrazovka bez úchytky (majiteľ 28. 9. 2026), na počítači
   rozbaľovací panel pod pilulkou v strede hlavičky portálu. Vzhľad zoznamu
   je ten istý ako časti Mojho účtu. */
.pred-pop{position:fixed;inset:0;z-index:420;background:var(--panel);display:flex;flex-direction:column;
  opacity:0;transform:translateY(12px);transition:opacity .2s ease,transform .2s ease}
.pred-pop[hidden]{display:none}
.pred-pop.je-otvorene{opacity:1;transform:none}
.pred-okno{display:flex;flex-direction:column;height:100%;min-height:0}
.pred-hl{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:calc(14px + env(safe-area-inset-top, 0px)) 18px 12px;border-bottom:1px solid var(--line)}
.pred-hl h2{margin:0;font-size:1.2rem;letter-spacing:.04em}
.pred-x{width:38px;height:38px;border-radius:50%;border:0;background:var(--v-okne);box-shadow:var(--tien-jemny);
  font-size:1.4rem;line-height:1;color:var(--ink-2);cursor:pointer}
.pred-telo{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;
  padding:14px 16px calc(24px + env(safe-area-inset-bottom, 0px))}
body.pred-otvorene{overflow:hidden}
.pred-nad{margin:18px 2px 8px;font-family:var(--head);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  font-weight:600;color:var(--ink-soft)}
@media (min-width:901px){
  /* Rozbaľovací panel pod hlavičkou – stránka ostáva vidieť a klik mimo ho zavrie. */
  .pred-pop{inset:auto;top:calc(84px + var(--oznam-h,0px));left:50%;width:min(380px,calc(100vw - 32px));
    max-height:calc(100vh - 110px - var(--oznam-h,0px));transform:translateX(-50%) translateY(-6px);
    background:var(--panel);border:1px solid var(--karta-ram);border-radius:20px;
    box-shadow:0 3px 8px rgba(78,58,44,.12),0 30px 60px -24px rgba(78,58,44,.75)}
  .pred-pop.je-otvorene{transform:translateX(-50%)}
  .pred-okno{height:auto;max-height:inherit}
  .pred-hl{padding:14px 18px 10px}
  body.pred-otvorene{overflow:auto}
  /* Na počítači úzky stĺpec pod sebou, ako na telefóne (návrh A, majiteľ
     28. 9. 2026: https://claude.ai/artifact/6zX3sTVp99FFeKRPdepAVJ).
     Dva stĺpce na šírku 980 px sa mu nepáčili. */
  .pred-telo{padding:4px 16px 16px}
}
@media (prefers-reduced-motion:reduce){ .pred-pop{transition:none} }
/* Telefón: panel Predajňa má plochu ako katalóg a sklenené karty (návrh Mobil – dnes a návrh, 17. 10. 2026;
   rovnaké hodnoty ako blok „Sklenené karty na stene“ na konci rezervacia.css). Vypínač SKLO_M v spolocne.js. */
@media(max-width:900px){
  html.sklo-m .pred-pop:not([hidden]){background:var(--stena)}
  html.sklo-m .pred-pop .mucet-dnes,
  html.sklo-m .pred-pop .mucet-zoz{
    background:linear-gradient(158deg,
      rgba(255,255,255,.60) 0%, rgba(255,255,255,.32) 54%, rgba(255,255,255,.46) 100%);
    border:1px solid rgba(255,255,255,.78);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.9), var(--sklo-tien)}
}

/* Pilulka Predajňa v strede hlavičky portálu (len počítač). */
.pred-pilulka{display:none}
@media (min-width:901px){
  body.katalog .pred-pilulka{display:inline-flex;align-items:center;gap:10px;margin:0 auto;padding:7px 16px 7px 12px;
    border:1px solid var(--sklo-ram);border-radius:999px;background:var(--sklo);
    -webkit-backdrop-filter:var(--sklo-blur);backdrop-filter:var(--sklo-blur);box-shadow:var(--sklo-tien);
    font:inherit;color:var(--ink);cursor:pointer;min-width:0}
  body.katalog .pred-pilulka:hover{background:rgba(255,255,255,.85)}
  .pred-pilulka-ik{width:22px;height:22px;flex:none;fill:none;stroke:var(--red);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  .pred-pilulka-t{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2;min-width:0}
  .pred-pilulka-t b{font-family:var(--head);text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;font-weight:600}
  .pred-pilulka-t small{display:flex;align-items:center;gap:6px;font-size:.72rem;color:var(--ink-2);white-space:nowrap}
  .pred-pilulka-t small i{width:7px;height:7px;border-radius:50%;background:#2E9E5B;flex:none}
  .pred-pilulka.zavrete small i{background:var(--red)}
  .pred-pilulka-sip{width:16px;height:16px;flex:none;fill:none;stroke:var(--ink-soft);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}
  .pred-pilulka[aria-expanded="true"] .pred-pilulka-sip{transform:rotate(180deg)}
  .pred-pilulka:focus-visible{outline:2.5px solid var(--red);outline-offset:2px}
}

/* Obsah panela Predajňa (prenesené z rezervacia.css – panel je aj na hlavnej stránke). */
/* Pridať na plochu – výrazná červená karta s ikonou telefónu a leskom
   (majiteľ 28. 9. 2026: „graficky zaujímavé a výrazné"). */
.mucet-appka{
  all:unset;box-sizing:border-box;position:relative;overflow:hidden;display:flex;align-items:center;gap:14px;width:100%;
  cursor:pointer;padding:16px;border-radius:18px;background:var(--cta);color:#fff;
  box-shadow:var(--cta-lesk),var(--cta-tien)}
.mucet-appka::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.35) 48%,transparent 60%);
  transform:translateX(-100%);animation:mucet-lesk 4s ease-in-out 1s infinite}
@keyframes mucet-lesk{0%{transform:translateX(-100%)}45%,100%{transform:translateX(100%)}}
.mucet-appka-ik{flex:none;width:46px;height:46px;border-radius:13px;background:rgba(255,255,255,.18);
  box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.45);display:grid;place-items:center}
.mucet-appka-ik svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.mucet-appka span{display:flex;flex-direction:column;gap:3px;text-align:left}
.mucet-appka b{font-family:var(--head);text-transform:uppercase;letter-spacing:.05em;font-size:1.05rem;color:#fff}
.mucet-appka i{font-style:normal;font-size:.78rem;color:rgba(255,255,255,.9);line-height:1.4}
@media (prefers-reduced-motion:reduce){ .mucet-appka::after{animation:none;display:none} }

.mucet-ako{margin-top:10px}
/* Dnes otvorené + Navigovať */
.mucet-dnes{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding:11px 12px 11px 14px;
  background:var(--panel);border:1px solid var(--karta-ram);border-radius:var(--r);box-shadow:var(--tien-jemny)}
.mucet-dnes > span{display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:center;min-width:0}
.mucet-dnes i{width:9px;height:9px;border-radius:50%;background:#2E9E5B;box-shadow:0 0 0 3px rgba(46,158,91,.18)}
.mucet-dnes.zavrete i{background:var(--red);box-shadow:0 0 0 3px rgba(225,33,31,.15)}
.mucet-dnes b{font-size:.86rem;color:var(--ink)}
.mucet-dnes small{grid-column:2;font-size:.72rem;color:var(--ink-soft)}
.mucet-dnes a{flex:none;padding:8px 13px;border-radius:999px;background:var(--red-soft);color:var(--red-dk);
  font-family:var(--head);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600;text-decoration:none}

/* O predajni – zoznam pod sebou s ikonami, ako časti Mojho účtu. */
.mucet-zoz{display:flex;flex-direction:column;padding:0 14px;background:var(--panel);border:1px solid var(--karta-ram);
  border-radius:var(--r);box-shadow:var(--tien-jemny)}
.mucet-zoz > a,.mucet-zoz > button{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:12px;width:100%;
  padding:11px 0;border-top:1px solid var(--line);cursor:pointer;color:var(--ink);font-size:.9rem;font-weight:600}
.mucet-zoz > :first-child{border-top:0}
.mucet-zoz > a::after,.mucet-zoz > button::after{content:"›";margin-left:auto;color:var(--ink-soft);font-size:1.2rem;line-height:1}
.mucet-ik{flex:none;width:32px;height:32px;border-radius:50%;background:var(--red-soft);display:grid;place-items:center}
.mucet-ik svg{width:17px;height:17px;fill:none;stroke:var(--red-dk);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.mucet-navod,.najdi-msg{
  margin:10px 0 0;padding-left:11px;border-left:2px solid var(--line-2);
  font-size:.72rem;color:var(--ink-2);line-height:1.5}
.mucet-navod[hidden],.najdi-msg[hidden]{display:none}

/* Nájsť moju rezerváciu (HafoNajdi v spolocne.js) – prihlásenie,
   /moja-rezervacia, chat. Polia sú `.uc-pole` ako v celom účte. */
.najdi-form{display:flex;flex-direction:column;gap:2px;padding:4px 0 0}
.najdi-form[hidden]{display:none}
.najdi-form .btn{align-self:stretch;justify-content:center;margin-top:6px}

/* ==========================================================================
   Košík v hornej lište a jeho náhľad (návrh Hlavička, 30. 9. 2026)
   https://claude.ai/artifact/VfDfTDpjUJGf8hZpXyD8Fp
   --------------------------------------------------------------------------
   Všetko visí na triede `kosik-b` na <html>, ktorú trvalo nastavuje
   `spolocne.js`. Telefón v lište ani plávajúci košík vpravo dole už nie sú. Pilulku a náhľad vkladá `spolocne.js`
   (jeden zdroj pre všetky stránky), hodnoty mu posiela `rezervacia.js`.
   Pilulka je tá istá sklovitá bublina ako Účet a Telefón (`.nav-ucet`).
   ========================================================================== */
html.kosik-b .nav-vpravo .nav-cta{display:none}
html.kosik-b .nav-kosik-obal{position:relative;display:inline-flex;flex:none}
html.kosik-b body .nav-vpravo .nav-kosik{
  position:relative;
  background:var(--sklo);color:var(--ink)!important;
  border:1.5px solid var(--sklo-ram);
  -webkit-backdrop-filter:var(--sklo-blur);backdrop-filter:var(--sklo-blur);
  box-shadow:var(--sklo-tien)}
html.kosik-b body .nav-vpravo .nav-kosik:hover{
  background:rgba(255,255,255,.85);border-color:rgba(255,255,255,.95)}
html.kosik-b .nav-kosik .kbsum{font-weight:600}
/* Pilulky v jednej lište majú rovnakú výšku (audit 30. 9. 2026: 45 / 38 / 38 / 40 px). */
@media (min-width:901px){
  html.kosik-b body .nav-vpravo .nav-maznak,
  html.kosik-b body .nav-vpravo .nav-ucet,
  html.kosik-b body .nav-vpravo .nav-kosik{height:40px;box-sizing:border-box}
  html.kosik-b body.katalog .pred-pilulka{height:40px;box-sizing:border-box;padding-top:3px;padding-bottom:3px}
}
/* Odznak s počtom kusov. Obrys má farbu lišty, nech odznak vyzerá vyrezaný. */
html.kosik-b .nav-kosik .kbdg{
  position:absolute;top:-6px;left:24px;min-width:18px;height:18px;padding:0 5px;
  box-sizing:border-box;border-radius:999px;background:var(--red);color:var(--na-cervenom);
  font-size:10.5px;font-weight:700;line-height:18px;text-align:center;
  box-shadow:0 0 0 2px #EFE9E1}
html.kosik-b .nav-kosik .kbdg.nula{background:#B7ABA0}

/* --- náhľad pod pilulkou: objaví sa pri prejdení myšou --- */
html.kosik-b .kp-obal{
  position:absolute;right:0;top:100%;padding-top:26px;z-index:70;
  opacity:0;visibility:hidden;transform:translateY(6px);pointer-events:none;
  transition:opacity .16s ease,transform .16s ease,visibility .16s}
html.kosik-b .nav-kosik-obal:hover .kp-obal,
html.kosik-b .nav-kosik-obal:focus-within .kp-obal,
html.kosik-b .nav-kosik-obal.otvorene .kp-obal{
  opacity:1;visibility:visible;transform:none;pointer-events:auto}
html.kosik-b .kp-karta{
  position:relative;box-sizing:border-box;width:600px;max-width:calc(100vw - 32px);
  padding:18px 22px 20px;background:var(--panel);
  border:1px solid var(--karta-ram);border-radius:16px;
  box-shadow:0 22px 54px -14px rgba(0,0,0,.3);
  font-family:var(--text);font-size:15px;line-height:1.5;font-weight:400;
  letter-spacing:0;text-transform:none;text-align:left;color:var(--ink-2)}
/* `body` prepisuje tieto dve na tmavšie odtiene steny; návrh ráta s pôvodnými.
   Zámerne bez `html.kosik-b` na začiatku selektora – nástroj dizajn.mjs
   porovnáva len premenné z koreňa (`:root`, `body`, `html`), a toto je lokálny
   prepis jednej karty, nie nová hodnota webu. */
.kp-karta{--bg-soft:#F7F5F4;--line:#E6E1E0}
html.kosik-b .kp-karta.kp-prazdny{width:420px}
html.kosik-b .kp-vrch{
  position:absolute;top:-8px;right:56px;width:14px;height:14px;transform:rotate(45deg);
  background:#FDFBF8;border-top:1px solid var(--karta-ram);border-left:1px solid var(--karta-ram);
  border-radius:3px 0 0 0}
html.kosik-b .kp-karta .ico{
  display:block;flex:none;width:18px;height:18px;fill:none;stroke:currentColor;
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
html.kosik-b .kp-cap{
  margin:0;font-family:var(--head);font-weight:600;font-size:14px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink)}
html.kosik-b .kp-hl{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:2px}
html.kosik-b .kp-hl span{font-size:13px;color:var(--ink-soft)}

html.kosik-b .kp-zoznam{
  list-style:none;margin:0 0 10px;padding:0;max-height:min(340px,calc(100vh - 430px));
  min-height:120px;overflow-y:auto;overscroll-behavior:contain}
html.kosik-b .kp-pol{
  display:flex;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}
html.kosik-b .kp-pol:last-child{border-bottom:0}
html.kosik-b .kp-img{
  flex:none;width:76px;height:76px;box-sizing:border-box;padding:6px;border-radius:12px;
  border:1px solid var(--line);background:var(--v-okne)}
html.kosik-b .kp-img img{width:100%;height:100%;object-fit:contain;display:block}
html.kosik-b .kp-n{flex:1;min-width:0}
html.kosik-b .kp-n b{display:block;font-weight:700;font-size:15px;line-height:1.3;color:var(--ink)}
html.kosik-b .kp-n small{display:block;margin-top:2px;font-size:12.6px;line-height:1.5;color:var(--ink-soft)}
html.kosik-b .kp-step{display:flex;align-items:center;gap:6px}
html.kosik-b .kp-step button{
  width:30px;height:30px;box-sizing:border-box;padding:0;border:1.5px solid var(--line);
  border-radius:8px;background:var(--v-okne);font-family:inherit;font-size:16px;line-height:1;
  color:var(--ink);cursor:pointer}
html.kosik-b .kp-step b{min-width:16px;text-align:center;font-size:15px;color:var(--ink)}
html.kosik-b .kp-ks{font-size:14px;font-weight:600;color:var(--ink-2);white-space:nowrap}
html.kosik-b .kp-tot{
  min-width:76px;text-align:right;font-family:var(--head);font-weight:600;font-size:18px;
  letter-spacing:.02em;color:var(--ink);white-space:nowrap}
html.kosik-b .kp-x{
  background:none;border:0;padding:4px;color:var(--ink-soft);line-height:0;cursor:pointer}

html.kosik-b .kp-rad{display:flex;gap:18px;align-items:stretch}
html.kosik-b .kp-lavo{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
html.kosik-b .kp-info{
  display:flex;gap:10px;align-items:center;padding:9px 12px;border-radius:12px;
  background:var(--bg-soft);font-size:13.2px;line-height:1.35}
html.kosik-b .kp-info .ico{color:var(--red)}
html.kosik-b .kp-info b{color:var(--ink)}
html.kosik-b .kp-darcek{background:#fffdf7;border:1.5px dashed var(--line)}
html.kosik-b .kp-zlava{
  margin:0;padding:8px 12px;border-radius:10px;background:#f1f7ef;border:1px solid #cfe3c8;
  color:#3f6b34;font-size:13px}
html.kosik-b .kp-suhrn{
  flex:none;width:250px;box-sizing:border-box;padding:12px 14px;border-radius:16px;
  background:var(--bg-soft);display:flex;flex-direction:column;justify-content:center}
html.kosik-b .kp-sr{
  display:flex;justify-content:space-between;gap:12px;padding:3px 0;font-size:13.6px;color:var(--ink-2)}
html.kosik-b .kp-sr.kp-spolu{
  margin-top:12px;padding:12px 4px 0;border-top:1.5px solid var(--line);
  font-family:var(--head);text-transform:uppercase;font-size:22px;color:var(--ink)}
html.kosik-b .kp-ide{width:100%;margin-top:12px;padding:13px 14px;font-size:14px}

/* prázdny náhľad: maskot pri prázdnej miske, pozerá do karty (MASKOT.md) */
html.kosik-b .kp-prazdny .kp-cap{margin-bottom:10px}
html.kosik-b .kp-prazdny-rad{display:flex;align-items:center;gap:20px}
html.kosik-b .kp-prazdny-rad img{display:block;flex:none;height:150px;width:auto}
html.kosik-b .kp-prazdny-t{
  font-family:var(--head);font-weight:600;text-transform:uppercase;letter-spacing:.015em;
  font-size:22px;line-height:1.15;color:var(--ink)}
html.kosik-b .kp-prazdny-rad p{margin:8px 0 0;font-size:14.5px;line-height:1.5;color:var(--ink-2)}
html.kosik-b .kp-ide-kat{width:auto;margin-top:14px;padding:13px 22px}

/* Po odscrollovaní katalógu odchádza z lišty všetko okrem košíka – ten je
   v lište vždy. */
html.kosik-b body.katalog header.preslo .nav-vpravo{opacity:1;visibility:visible;pointer-events:auto}
html.kosik-b body.katalog header.preslo .nav-vpravo > a{opacity:0;visibility:hidden;pointer-events:none}
html.kosik-b body.katalog header .nav-vpravo > a{transition:opacity .22s ease,visibility .22s}

@media(max-width:1000px){
  html.kosik-b .nav-kosik .kbsum{display:none}
}
@media(max-width:900px){
  /* Náhľad je pre myš; na telefóne košík otvára spodná lišta alebo odkaz. */
  html.kosik-b .kp-obal{display:none}
  html.kosik-b body.katalog.ma-mlistu #hdr .nav-kosik-obal{display:none}
}
@media(prefers-reduced-motion:reduce){
  html.kosik-b .kp-obal{transition:none}
}

/* ---------- Hafo Expres – sledovanie dovozu (/sledovanie) ----------
   Schválený návrh „Sledovanie objednávky“ (16. 10. 2026, verzia 3), hodnoty 1:1 z neho.
   Jedno značkovanie, dve rozloženia: do 900 px mobil (mapa 270 px, karta s časom ju prekrýva o 28 px,
   krokový pásik, tlačidlá hneď pod kartou), od 901 px počítač (mapa vľavo sticky 700 px, panel 400 px
   vpravo, časová os pod mapou). Prah 900/901 je rovnaký ako na zvyšku webu. Karty sú ako `.km-sek`
   v košíku (--v-okne, --r, --tien-jemny), tlačidlá `.btn .btn-red` / `.btn-sklo`, pole `.uc-pole`. */
.sx{color:var(--ink-2);font-size:15px;line-height:1.5;position:relative}
.sx,.sx *,.sx *::before,.sx *::after{box-sizing:border-box}
.sx p{margin:0}
.sx h1{margin:0;font-family:var(--head);text-transform:uppercase;letter-spacing:.04em;font-size:24px;font-weight:600;line-height:1.1;color:var(--ink);text-wrap:balance}
.sx svg.ik{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.sx .btn{border-width:2px;min-height:48px;padding:0 14px;border-radius:14px;font-size:.92rem;letter-spacing:.06em;gap:8px}
.sx .btn-sklo{border-width:2px;border-color:rgba(78,58,44,.22);color:#1c1b1a}
.sx .btn[disabled]{opacity:.55;cursor:default;transform:none}
.sx-cislo{font-size:13px;color:var(--ink-soft)}
.sx-nacitanie{text-align:center;color:var(--ink-soft);margin:48px 16px 0}

/* pilulka (recept `.kz .pil`) */
.sx-pil{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:1.5px solid var(--line);border-radius:999px;background:var(--sklo);box-shadow:var(--tien-jemny);font-size:.76rem;font-weight:600;white-space:nowrap;color:var(--ink-2)}
.sx-pil svg.ik{width:14px;height:14px}
.sx-pil.cv{border-color:var(--red);background:var(--red-soft);color:var(--red-dk)}
.sx-pil.zel{border-color:var(--ok);background:var(--ok-plocha);color:var(--ok)}
.sx-pil.poz{border-color:var(--pozor-ram);background:var(--pozor-plocha);color:var(--pozor-text)}
.sx-pil.siv{background:var(--bg-soft);color:var(--ink-2);box-shadow:none}
.sx-pil.mala{height:24px;padding:0 9px;font-size:.7rem}

/* mobil (predvolené) */
.sx-pco{display:none!important}
.sx-mapw{position:absolute;inset:0}
.sx-mapw[hidden]{display:none}
.sx-in{display:flex;flex-direction:column;padding-bottom:18px}
.sx-hlava{display:none}
.sx-grid{display:flex;flex-direction:column}
.sx-vizual{position:relative;height:270px;overflow:hidden;background:#EFE9E1}
.sx-vizual.mask{height:auto;background:none;padding:18px 12px 0;display:flex;justify-content:center}
.sx-vizual.mask img{width:150px;height:auto}
.sx-vizual.foto{height:auto;background:none;padding:0;display:flex;flex-direction:column;gap:12px}
.sx-vizual.foto .sx-fotka{border-radius:0}
.sx-telo{position:relative;padding:0 12px;margin-top:-28px;display:flex;flex-direction:column;gap:12px}
.sx-telo.m12{margin-top:12px}
.sx-l{display:block;min-width:0}
.sx-karta{background:var(--v-okne);border-radius:var(--r);box-shadow:var(--tien-jemny);padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0}
.sx-karta > .sx-st{margin-bottom:-2px}
.sx-st{font-family:var(--head);text-transform:uppercase;letter-spacing:.1em;font-size:.74rem;color:var(--ink-soft);font-weight:600;display:flex;align-items:center;gap:8px}
.sx-st svg.ik{width:16px;height:16px;color:var(--red)}
.sx-cislo-r{display:flex;align-items:center;justify-content:space-between;gap:8px}

.sx-cas{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.sx-cas small{display:block;width:100%;font-size:13px;color:var(--ink-soft)}
.sx-cas b{font-family:var(--head);font-size:48px;font-weight:600;line-height:1;color:var(--ink);letter-spacing:.01em}
.sx-cas b.okn{font-size:32px}
.sx-cas .sx-pil{align-self:center;height:28px;font-size:.8rem}
.sx-sub{font-size:14px;color:var(--ink-2)}
.sx-rade{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:12px;background:var(--red-soft);border:1.5px solid var(--red);color:var(--red-dk);font-weight:700;font-size:15px;line-height:1.3}
.sx-rade svg.ik{width:24px;height:24px;flex:none}
.sx-rade small{display:block;font-weight:500;font-size:12.5px;color:var(--ink-2);margin-top:2px}
.sx-zvon{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;color:var(--ink-2);padding:10px 12px;border-radius:12px;background:var(--bg-soft)}
.sx-zvon svg.ik{color:var(--red);width:18px;height:18px;margin-top:1px}
.sx-potv{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ok)}
.sx-potv svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}

/* krokový pásik (mobil) – recept .mzn-kroky */
.sx-bars{display:flex;gap:6px}
.sx-bars span{flex:1;display:flex;flex-direction:column;gap:5px;font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
.sx-bars span::before{content:"";height:4px;border-radius:999px;background:var(--line-2)}
.sx-bars span.on{color:var(--red-dk)}
.sx-bars span.on::before{background:var(--red)}
.sx-bars span.hot::before{background:var(--red-soft-2)}
.sx-bars span.pz{color:var(--pozor-text)}
.sx-bars span.pz::before{background:#E0A93B}

/* časová os (počítač, pod mapou) – recept .ex-krok, vodorovne */
.sx-os{list-style:none;margin:0;padding:0;display:flex}
.sx-os li{flex:1 1 0;min-width:0;position:relative;display:flex;flex-direction:column;gap:10px;padding-right:10px}
.sx-os li::before{content:"";position:absolute;left:38px;right:8px;top:14px;height:2px;border-radius:2px;background:var(--line-2)}
.sx-os li:last-child::before{display:none}
.sx-os li.ok::before{background:var(--ok)}
.sx-os i{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-style:normal;background:var(--bg-soft);color:var(--ink-soft);font-family:var(--head);font-weight:600;position:relative;z-index:1}
.sx-os li.ok i{background:var(--ok-plocha);color:var(--ok)}
.sx-os li.now i{background:var(--cta);color:#fff;box-shadow:var(--cta-lesk),var(--cta-tien)}
.sx-os li.pz i{background:var(--pozor-plocha);color:var(--pozor-text);box-shadow:inset 0 0 0 1.5px var(--pozor-ram)}
.sx-os i svg.ik{width:16px;height:16px;stroke-width:2.4}
.sx-os b{display:block;font-size:15px;color:var(--ink);line-height:1.3;font-weight:700}
.sx-os li.cak b{color:var(--ink-2)}
.sx-os span{display:block;font-size:13px;color:var(--ink-soft);line-height:1.45;margin-top:2px}

/* variant zvislo (pravý stĺpec pri fotke a maskotovi) */
.sx-os.v{flex-direction:column}
.sx-os.v li{flex-direction:row;gap:12px;padding:0 0 16px}
.sx-os.v li:last-child{padding-bottom:0}
.sx-os.v li::before{left:14px;right:auto;width:2px;height:auto;top:32px;bottom:2px}
.sx-os.v b{padding-top:4px}
/* akcie */
.sx-akcie{display:flex;flex-direction:column;gap:10px}
.sx-doma{width:100%}
.sx-tl{display:flex;gap:8px}
.sx-tl .btn{flex:1;min-width:0}
.sx-tl .btn svg.ik{width:18px;height:18px}
.sx-zmena{display:flex;align-items:center;justify-content:center;gap:8px;text-align:center;font-size:13.5px;font-weight:600;color:var(--ink-2);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line-2)}
.sx-zmena svg.ik{width:16px;height:16px}
.sx-btn-pod{display:block;margin-top:6px;font-size:12.5px;color:var(--ink-soft);text-align:center}
.sx-chyba{margin:0;font-size:.85rem;color:var(--red-dk)}
.sx-chyba[hidden]{display:none}
.sx-volne{display:flex;flex-direction:column;gap:10px}

/* karta Objednávka */
.sx-riadok{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.sx-riadok:first-child{border-top:0;padding-top:0}
.sx-riadok:last-child{padding-bottom:0}
.sx-ikb{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--bg-soft);color:var(--ink-2);flex:0 0 auto}
.sx-riadok .t{flex:1;min-width:0;font-size:.86rem}
.sx-riadok .t b{display:block;font-size:.9rem;color:var(--ink);font-weight:600}
.sx-riadok .t span{display:block;color:var(--ink-soft);font-size:.78rem}

/* Nebudeš doma? (1:1 dnešná karta) */
.sx-odkaz .uc-pole{margin-bottom:0}
.sx-vol-sk{display:flex;flex-direction:column;gap:8px}
.sx-vol{width:100%;white-space:normal;line-height:1.25;padding:10px 14px!important}
.sx-vol[aria-pressed="true"]{background:var(--red-soft);border-color:var(--red);color:var(--red-dk)}
.sx-pozn{font-size:12.2px;line-height:1.5;color:var(--ink-soft);text-align:center}

/* Nezastihnutý si vyberie sám (18. 10. 2026, schválený návrh): pás, tri voľby, potvrdenie */
.sx-nez{display:flex;flex-direction:column;gap:12px}
.sx-nez-pruh{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;font-size:13.5px;background:var(--pozor-plocha);border:1px solid var(--pozor-ram);color:var(--pozor-text)}
.sx-nez-pruh svg.ik{width:18px;height:18px;flex:none}
.sx-nez-vyb{display:grid;gap:10px}
.sx-nez-vol{display:flex;align-items:center;gap:12px;width:100%;padding:14px;border-radius:14px;border:1.5px solid var(--line-2);background:var(--v-okne);text-align:left;font:inherit;color:var(--ink);cursor:pointer}
.sx-nez-vol .sx-nez-ik{width:40px;height:40px;border-radius:50%;background:var(--red-soft);color:var(--red);display:grid;place-items:center;flex:none}
.sx-nez-vol .sx-nez-ik svg.ik{width:18px;height:18px}
.sx-nez-vol b{display:block;font-size:15px}
.sx-nez-vol .sx-nez-t span{display:block;font-size:13px;color:var(--ink-soft)}
.sx-nez-vol .sx-nez-ch{margin-left:auto;color:var(--ink-soft);display:grid}
.sx-nez-vol .sx-nez-ch svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sx-nez-vol[aria-pressed="true"]{border-color:var(--red);background:var(--red-soft)}
.sx-nez-vol[disabled]{opacity:.55;cursor:default}
.sx-nez-ok{text-align:center}
.sx-nez-ok .sx-nez-ik{width:36px;height:36px;border-radius:50%;margin:4px auto 8px;background:var(--ok-plocha);color:var(--ok);display:grid;place-items:center}
.sx-nez-ok .sx-nez-ik svg.ik{width:18px;height:18px}
.sx-nez-ok h2{font-family:var(--head);font-weight:600;font-size:19px;text-transform:uppercase;margin:0 0 4px}
.sx-nez-ok p{margin:0;font-size:13px;color:var(--ink-soft)}
.sx-nez-ok .sx-nez-zmen{display:inline-block;margin-top:12px;color:var(--red);font-weight:600;text-decoration:none;background:none;border:0;padding:0;font-size:inherit;cursor:pointer}

/* mapa: čipy */
.sx-chip{position:absolute;z-index:2;display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px 0 10px;border-radius:999px;border:1px solid var(--sklo-ram);background:var(--sklo);box-shadow:var(--sklo-tien);-webkit-backdrop-filter:var(--sklo-blur);backdrop-filter:var(--sklo-blur);font-size:.78rem;font-weight:700;color:#1c1b1a;white-space:nowrap}
.sx-chip svg.ik{width:16px;height:16px;color:var(--red)}
.sx-chip.l{left:12px;top:12px}
.sx-legenda{position:absolute;left:14px;bottom:30px;z-index:2;display:none;gap:16px;padding:10px 14px;border-radius:12px;border:1px solid var(--sklo-ram);background:var(--sklo);box-shadow:var(--sklo-tien);-webkit-backdrop-filter:var(--sklo-blur);backdrop-filter:var(--sklo-blur);font-size:.76rem;font-weight:600;color:#1c1b1a}
.sx-legenda span{display:inline-flex;align-items:center;gap:7px}
.sx-legenda i{width:12px;height:12px;border-radius:50%;display:inline-block}

/* fotka od vodiča */
.sx-fotka{width:100%;aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;background:#EFE9E1;position:relative}
.sx-fotka img{display:block;width:100%;height:100%;object-fit:cover}
.sx-vizual.foto .sx-fotka{aspect-ratio:16/10}

/* okno presunu na iný večer – okno `.okno` zo styl.css, dni ako dlaždice 1:1 z košíka Hafo Expres (rezervacia.css, #exPilulky v html.kosik-b) */
.sx-okno .okno-box{background:var(--v-okne)}
.sx-okno .okno-tlacidla .btn{min-height:0}
.sx-dlz{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px}
.sx-dlz[hidden],.sx-vizual[hidden]{display:none}
.sx-dlz button{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:1px;padding:8px 6px;border:1px solid var(--line);border-radius:12px;background:var(--v-okne);color:var(--ink-2);text-align:center;line-height:1.3}
.sx-dlz button:hover{border-color:var(--red)}
.sx-dlz button:focus-visible{box-shadow:0 0 0 3px rgba(225,33,31,.25)}
.sx-dlz .dl-n{font-family:var(--head);font-size:15px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink)}
.sx-dlz .dl-c{display:block;font-size:11.5px;color:var(--ink-soft)}
.sx-dlz button.on{background:var(--red-soft);border-color:var(--red)}
.sx-dlz button.on :is(.dl-n,.dl-c){color:var(--red-dk)}

/* ---------- počítač: od 901 px ---------- */
@media (min-width:901px){
  .sx-in{max-width:1180px;margin:0 auto;padding:28px 32px 44px}
  .sx-hlava{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px}
  .sx-hlava h1{font-size:40px;margin-top:6px}
  .sx-hlava .sx-cislo{font-size:14px}
  .sx-hlava .sx-pil{height:34px;padding:0 16px;font-size:.88rem}
  .sx-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:20px;align-items:start}
  .sx-l{display:flex;flex-direction:column;gap:20px}
  .sx-vizual{height:700px;border-radius:var(--r);box-shadow:var(--tien-jemny)}
  .sx-vizual.mask{height:auto;min-height:440px;padding:30px;background:var(--v-okne);align-items:center}
  .sx-vizual.mask img{width:260px}
  .sx-vizual.foto{height:auto;padding:0;background:none;box-shadow:none;border-radius:0}
  .sx-vizual.foto .sx-fotka{aspect-ratio:4/3;border-radius:var(--r);box-shadow:var(--tien-jemny)}
  .sx-telo,.sx-telo.m12{margin-top:0;padding:0}
  .sx-mo{display:none!important}
  .sx-pco{display:flex!important}
  .sx-karta.len-mo{display:none}
  .sx-cas b{font-size:64px}
  .sx-cas b.okn{font-size:40px}
  .sx-cas .sx-pil{height:32px;font-size:.88rem}
  .sx-akcie{background:var(--v-okne);border-radius:var(--r);box-shadow:var(--tien-jemny);padding:16px}
  .sx-legenda{display:flex}
  .sx-chip.l{left:16px;top:16px}
}
/* mapa sa pri rolovaní drží, ak sa ľavý stĺpec zmestí na obrazovku (pod hlavičkou webu) */
@media (min-width:901px) and (min-height:960px){
  .sx-l{position:sticky;top:92px}
}
@media (prefers-reduced-motion:reduce){
  .sx .btn{transition:none}
}

/* ============================================================================
   Karta zvieraťa (vypínač KZ_ZAP v ucet.js; kód karty `karta-zvierata.js`)
   Návrh nastroje/navrhy/karta-zvierata.html, sekcia „Výsledný návrh (C+)“
   (majiteľ 12. 10. 2026) – hodnoty 1:1. Koreň karty je `.uc-ucet.kz`: okno, menu
   a obsah sú tie isté `.uc-ucet`, `.uc-bok`, `.uc-nav`, `.uc-obsah` ako v Mojom
   účte. Všetko ostatné visí na `.kz`. Triedy z návrhu ostali, preto sú tu hore
   zrušené globálne pravidlá webu, ktoré by sa na ne chytili (.card, .btn, .maskot,
   .sl, .hotovo). Do 900 px je to obrazovka telefónu (hlavička karty `.kz-top`),
   od 901 px okno s menu vľavo a nadpisom `.kz-h2`.
   ============================================================================ */
.kz .uc-obsah{font-size:15px;line-height:1.55}
.kz .uc-obsah,.kz .uc-obsah *,.kz .uc-obsah *::before,.kz .uc-obsah *::after{box-sizing:border-box}
:where(.kz .uc-obsah button,.kz .prepinac button){font:inherit;color:inherit;border:0;background:none;padding:0;cursor:pointer;text-align:inherit}
.kz .uc-obsah h2,.kz .uc-obsah h3,.kz .uc-obsah h4{font-family:var(--head);text-transform:uppercase;font-weight:600;letter-spacing:.03em;margin:0;text-wrap:balance}
.kz svg.ik{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.kz :focus-visible{outline:2.5px solid var(--red);outline-offset:2px}
.kz .card:hover{transform:none;box-shadow:var(--tien-jemny);border-color:var(--karta-ram)}
.kz .card::after{content:none}
.kz .btn:hover{transform:none}
/* Červené a sklenené tlačidlo majú v rade rovnakú výšku (sklo má inak rám 1 px, červené 2 px). */
.kz .btn-sklo{border-width:2px}
/* Tlačidlo v karte sa nezalamuje (na telefóne by z 41 px vzniklo 57 px); dlhý text sa skracuje v kóde. */
.kz .btn{white-space:nowrap;text-align:center;min-width:0}
.kz .kz-dva{display:flex;gap:8px;flex-wrap:wrap}
.kz .kz-dva > .btn{flex:1 1 auto}
.kz .kz-kal{flex-wrap:nowrap}
.kz .kz-kal > .btn{flex:1 1 0;min-width:0;padding-left:8px;padding-right:8px;white-space:nowrap}
.kz a.btn,.kz a.pil{text-decoration:none;color:inherit}
.kz .maskot{margin:0;max-width:none}
.kz .sl{max-width:none;margin-inline:0;padding:0}
.kz .skp.hotovo{animation:none;text-align:center}
.kz .kz-in{display:flex;flex-direction:column;gap:12px}
.kz .uc-obsah .kz-h2{font-size:1.5rem;margin:0 0 16px;padding-right:44px}
.kz .kz-top{display:flex;align-items:center;gap:8px}
.kz .kz-top h3{font-size:1.02rem;flex:1}
.kz .kz-top .oz{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--v-okne);border:1.5px solid var(--line);box-shadow:var(--tien-jemny);color:var(--ink-2)}
.kz .kz-top .oz.hot{border-color:var(--red);color:var(--red)}
.kz .prepinac{display:flex;align-items:center;gap:6px;font-size:.8rem;font-weight:700}
.kz .prepinac .sip{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--sklo-ram);background:var(--sklo);box-shadow:var(--sklo-tien);-webkit-backdrop-filter:var(--sklo-blur);backdrop-filter:var(--sklo-blur);color:var(--ink-2)}
.kz .prepinac .sip svg.ik{width:15px;height:15px;stroke-width:2}
.kz .bodky{display:flex;gap:5px}
.kz .bodky i{width:7px;height:7px;border-radius:50%;background:var(--line-2)}
.kz .bodky i.on{background:var(--red);width:18px;border-radius:999px}

.kz .card{background:var(--panel);border:1px solid var(--karta-ram);border-radius:var(--r);box-shadow:var(--tien-jemny);padding:14px}
.kz .sklo{background:var(--sklo);border:1.5px solid var(--sklo-ram);border-radius:var(--r);box-shadow:var(--sklo-tien);backdrop-filter:var(--sklo-blur);-webkit-backdrop-filter:var(--sklo-blur);padding:14px}
.kz .st{font-family:var(--head);text-transform:uppercase;letter-spacing:.1em;font-size:.74rem;color:var(--ink-soft);font-weight:600;display:flex;align-items:center;gap:8px}
.kz .st svg{width:16px;height:16px}
.kz .st .poc{margin-left:auto;font-family:var(--text);font-size:.7rem;font-weight:700;letter-spacing:0;color:var(--red-dk);background:var(--red-soft);border-radius:999px;padding:1px 8px}
.kz .btn svg{width:17px;height:17px}
.kz .pil{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:1.5px solid var(--line);border-radius:999px;background:var(--sklo);box-shadow:var(--tien-jemny);font-size:.76rem;font-weight:600;white-space:nowrap}
.kz .pil svg{width:14px;height:14px}
.kz .pil.cv{border-color:var(--red);background:var(--red-soft);color:var(--red-dk)}
.kz .pil.cvp{border-color:var(--red);background:var(--red);color:#fff;box-shadow:var(--cta-lesk)}
.kz .pil.zel{border-color:var(--ok);background:var(--ok-plocha);color:var(--ok)}
.kz .pil.poz{border-color:var(--pozor-ram);background:var(--pozor-plocha);color:var(--pozor-text)}
.kz .pil.on{background:var(--red);border-color:var(--red);color:#fff;box-shadow:var(--cta-lesk)}
.kz .pily{display:flex;flex-wrap:wrap;gap:6px}
.kz .pozn{margin:0;font-size:.76rem;color:var(--ink-soft);line-height:1.45}
.kz .mal{font-size:.78rem;color:var(--ink-soft)}
.kz .riadok{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.kz .riadok:first-child{border-top:0}
.kz .riadok .ikb{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--bg-soft);color:var(--ink-2);flex:0 0 auto}
.kz .riadok .ikb.cv{background:var(--red-soft);color:var(--red-dk)}
.kz .riadok .t{flex:1;min-width:0;font-size:.86rem}
.kz .riadok .t b{display:block;font-size:.88rem}
.kz .riadok .t span{color:var(--ink-soft);font-size:.78rem}
.kz .riadok .r{font-size:.8rem;font-weight:700;text-align:right}
.kz .riadok .r small{display:block;font-weight:500;color:var(--ink-soft);font-size:.72rem}
.kz .foto{background:var(--v-okne);border-radius:12px;display:grid;place-items:center;overflow:hidden;flex:0 0 auto;border:1px solid var(--line)}
.kz .foto img{width:100%;height:100%;object-fit:contain;padding:6px}
.kz .balik{background:linear-gradient(160deg,#F7F3EE,#EADFD2);}
.kz .balik .obal2{width:70%;height:78%;border-radius:8px;background:linear-gradient(158deg,#EF3B33,#C4191C);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:var(--head);text-transform:uppercase;font-size:.58rem;letter-spacing:.06em;text-align:center;line-height:1.1;box-shadow:0 6px 10px -6px rgba(0,0,0,.5)}
.kz .balik .obal2 svg{width:22px;height:22px;stroke-width:1.5}
.kz .balik .obal2 b{font-size:.72rem}
.kz .maskot{display:block;pointer-events:none}
.kz .kz-priebeh{height:8px;border-radius:999px;background:var(--bg-soft);overflow:hidden}
.kz .kz-priebeh i{display:block;height:100%;border-radius:999px;background:var(--cta)}
.kz .dna{display:flex;align-items:center;gap:8px;font-size:.78rem;font-weight:700;color:var(--red-dk)}
.kz .dna.zl{color:var(--ok)}

/* nákupy */
.kz .den{font-family:var(--head);text-transform:uppercase;letter-spacing:.1em;font-size:.78rem;color:var(--ink-soft);margin:14px 2px 8px;display:flex;align-items:center;gap:10px}
.kz .den::after{content:"";flex:1;height:1px;background:var(--line)}
.kz .nak{display:flex;gap:12px;padding:12px;margin-bottom:10px}
.kz .nak .foto{width:104px;height:104px}
.kz .nak .tl{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.kz .nak .tl b{font-size:.9rem;line-height:1.28}
.kz .nak .meno-v{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
.kz .nak .cena{font-weight:700;font-size:.9rem}
.kz .nak .akcie{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:auto}
.kz .kal{border:1.5px solid var(--line);background:var(--v-okne);border-radius:16px;padding:12px;box-shadow:var(--tien-jemny)}
.kz .kal-h{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.kz .kal-h b{flex:1;text-align:center;font-family:var(--head);text-transform:uppercase;letter-spacing:.06em;font-size:.95rem}
.kz .kal-h .sip{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--line);color:var(--ink-2)}
.kz .kal-m{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}
.kz .kal-m .dn{font-size:.68rem;font-weight:700;color:var(--ink-soft);text-transform:uppercase;padding:4px 0}
.kz .kal-m button{height:38px;border:1.5px solid var(--line);border-radius:var(--r);background:var(--v-okne);color:var(--ink-2);font-size:.86rem;font-weight:600;display:grid;place-items:center;text-align:center;transition:border-color .18s,color .18s,background .18s}
.kz .kal-m button:hover{border-color:var(--red);color:var(--red-dk)}
.kz .kal-m button.dnes{box-shadow:inset 0 0 0 1.5px var(--red);color:var(--red-dk)}
.kz .kal-m button.vyb{border-color:var(--red);color:var(--red-dk);background:var(--red-soft)}
.kz .kal-m button.nie{opacity:.45;cursor:default}
.kz .kal-m button.nie:hover{border-color:var(--line);color:var(--ink-2)}
.kz .kal-m button.pred{color:var(--ink-soft)}
.kz .kal-m button.oznac{position:relative}
.kz .kal-m button.oznac::after{content:"";position:absolute;bottom:5px;width:5px;height:5px;border-radius:50%;background:var(--ok)}
.kz .kal-r{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.kz .zap{display:flex;gap:12px;align-items:center;padding:14px;border-radius:var(--r);background:var(--ok-plocha);border:1.5px solid var(--ok)}
.kz .zap img{width:78px;height:78px;object-fit:contain;flex:0 0 auto}
.kz .zap b{display:block;font-family:var(--head);text-transform:uppercase;letter-spacing:.05em;font-size:1rem;color:var(--ok)}
.kz .zap p{margin:2px 0 0;font-size:.84rem;color:var(--ink-2)}
.kz .mailnahlad{border:1.5px dashed var(--line-2);border-radius:14px;padding:12px 14px;background:var(--bg-soft)}
.kz .mailnahlad .od{font-size:.7rem;color:var(--ink-soft);margin-bottom:2px}
.kz .mailnahlad b{font-size:.9rem}
.kz .kz-prip .uc-prepnut{width:100%;margin:10px 0 4px;text-align:left;font:inherit;color:inherit}
.kz .kz-prip .uc-prepnut:disabled{opacity:.6;cursor:default}
.kz .kz-prdat{display:flex;flex-direction:column;gap:12px;padding:6px 0 4px}
.kz .kal-h .sip:disabled{opacity:.4;cursor:default}

/* doklady */
.kz .dokl{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.kz .dk{padding:10px;display:flex;flex-direction:column;gap:8px}
.kz .dk .nahl{height:96px;border-radius:10px;background:var(--bg-soft);border:1px solid var(--line);display:grid;place-items:center;color:var(--ink-soft);position:relative;overflow:hidden}
.kz .dk .nahl .list{width:54px;height:70px;border-radius:5px;background:var(--v-okne);box-shadow:0 6px 12px -6px rgba(0,0,0,.4);padding:8px 6px;display:flex;flex-direction:column;gap:4px}
.kz .dk .nahl .list i{display:block;height:3px;border-radius:2px;background:#d9d0c5}
.kz .dk .nahl .list i.k{width:60%}
.kz .dk .nahl .typ{position:absolute;right:6px;bottom:6px;font-size:.58rem;font-weight:700;padding:1px 6px;border-radius:999px;background:var(--red);color:#fff}
.kz .dk b{font-size:.8rem;line-height:1.25}
.kz .nahraj{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.kz .suhlas{display:flex;gap:10px;align-items:flex-start;font-size:.76rem;color:var(--ink-soft)}
.kz .suhlas svg{margin-top:2px;color:var(--ok)}

/* váha graf */
.kz .graf{width:100%;height:auto;display:block;overflow:visible}
.kz .graf .os{stroke:var(--line);stroke-width:1}
.kz .graf .cara{fill:none;stroke:var(--red);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.kz .graf .plocha{fill:url(#gpl);opacity:.9}
.kz .graf circle{fill:var(--v-okne);stroke:var(--red);stroke-width:2.2}
.kz .graf text{font-family:var(--text);font-size:10px;fill:var(--ink-soft);font-weight:600}
.kz .graf text.v{fill:var(--ink);font-size:11px;font-weight:700}

/* A preukaz */
.kz .preukaz{position:relative;border-radius:20px;overflow:hidden;background:var(--panel);border:1px solid var(--karta-ram);box-shadow:var(--tien-zdvih)}
.kz .preukaz .pas{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;background:var(--cta);color:#fff;font-family:var(--head);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;box-shadow:var(--cta-lesk)}
.kz .preukaz .telo{display:flex;gap:14px;padding:14px;position:relative}
.kz .preukaz .fotka{width:96px;height:120px;border-radius:14px;background:linear-gradient(160deg,#F5E7D8,#E5D2BE);display:grid;place-items:center;color:#9a7b5f;flex:0 0 auto;border:2px solid var(--karta-ram);box-shadow:var(--tien-jemny);position:relative}
.kz .preukaz .fotka svg.dog{width:64px;height:58px;fill:currentColor}
.kz .preukaz .fotka .zmen{position:absolute;right:6px;bottom:6px;width:30px;height:30px;border-radius:50%;background:var(--v-okne);display:grid;place-items:center;box-shadow:var(--tien-jemny);border:1.5px solid var(--line);color:var(--ink-2)}
.kz .preukaz .zakl{flex:1;min-width:0}
.kz .preukaz h2{font-size:1.9rem;line-height:1;letter-spacing:.02em}
.kz .preukaz .plem{font-size:.84rem;color:var(--ink-2);margin:3px 0 10px}
.kz .udaje{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
.kz .udaje div span{display:block;font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:700}
.kz .udaje div b{font-size:.88rem}
.kz .udaje .chyba b{color:var(--red-dk)}
.kz .preukaz .dolne{padding:0 14px 14px;display:flex;flex-direction:column;gap:10px}
.kz .mrz{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.62rem;letter-spacing:.14em;color:var(--ink-soft);padding:7px 14px;background:var(--bg-soft);border-top:1px dashed var(--line-2);white-space:nowrap;overflow:hidden;width:0;min-width:100%}
.kz .zalozky-a{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;border-radius:16px;background:var(--lista-plocha);border:1px solid var(--sklo-ram);box-shadow:var(--tien-jemny)}
.kz .zalozky-a button{height:40px;border-radius:12px;font-family:var(--head);text-transform:uppercase;letter-spacing:.07em;font-size:.8rem;font-weight:600;text-align:center;color:var(--ink-soft);display:flex;align-items:center;justify-content:center;gap:6px}
.kz .zalozky-a button svg{width:16px;height:16px}
.kz .zalozky-a button.on{background:var(--cta);color:#fff;box-shadow:var(--cta-lesk),var(--cta-tien)}
.kz .zdr2 > .card.cela{grid-column:1/-1}

/* B časová os */
.kz .cakas{display:flex;flex-direction:column;gap:10px}
.kz .cak{display:flex;gap:12px;align-items:center;padding:12px;border-radius:var(--r);background:var(--panel);border:1.5px solid var(--red);box-shadow:var(--tien-zdvih)}
.kz .cak .kolo{width:54px;height:54px;border-radius:50%;background:var(--red-soft);color:var(--red-dk);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--head);line-height:1;flex:0 0 auto}
.kz .cak .kolo b{font-size:1.35rem}
.kz .cak .kolo span{font-size:.54rem;letter-spacing:.1em;text-transform:uppercase}
.kz .cak .tx{flex:1;min-width:0}
.kz .cak .tx b{display:block;font-size:.92rem;line-height:1.25}
.kz .cak .tx span{font-size:.78rem;color:var(--ink-soft)}
.kz .cak .foto{width:54px;height:54px}
.kz .rychle{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.kz .rychle button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px 10px;border-radius:14px;background:var(--v-okne);border:1.5px solid var(--line);box-shadow:var(--tien-jemny);font-size:.72rem;font-weight:700;text-align:center}
.kz .rychle button svg{width:24px;height:24px;color:var(--red)}
.kz .fab-zona{display:flex;align-items:center;gap:10px}
.kz .fab{width:54px;height:54px;border-radius:50%;background:var(--cta);color:#fff;display:grid;place-items:center;box-shadow:var(--cta-lesk),var(--cta-tien);flex:0 0 auto}
.kz .fab svg{width:26px;height:26px;stroke-width:2.2}
.kz .fab-zona > span{font-size:.84rem;color:var(--ink-2);font-weight:600}
.kz .cas{position:relative;padding-left:26px;margin-top:6px}
.kz .cas::before{content:"";position:absolute;left:8px;top:6px;bottom:0;width:2px;background:var(--line)}
.kz .cas .den{margin-left:-26px;padding-left:26px;position:relative}
.kz .cas .den::before{content:"";position:absolute;left:3px;top:50%;width:12px;height:12px;border-radius:50%;background:var(--v-okne);border:3px solid var(--red);transform:translateY(-50%)}
.kz .ud{padding:12px;margin-bottom:10px;display:flex;gap:12px;align-items:flex-start}
.kz .ud .ikb{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--bg-soft);color:var(--ink-2);flex:0 0 auto}
.kz .ud .ikb.cv{background:var(--red-soft);color:var(--red-dk)}
.kz .ud .ikb.zel{background:var(--ok-plocha);color:var(--ok)}
.kz .ud b{font-size:.9rem}
.kz .ud p{margin:2px 0 0;font-size:.82rem;color:var(--ink-2)}
.kz .ud .akcie{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.kz .ud.nak-ud{display:block}
.kz .ud.nak-ud .nak{padding:0;margin:8px 0 0;border:0;box-shadow:none;background:none}

/* C dlaždice */
.kz .dlazdice{display:grid;grid-template-columns:repeat(2,1fr);grid-auto-rows:1fr;gap:10px}
.kz .dl{padding:12px;display:flex;flex-direction:column;gap:6px;min-height:150px;text-align:left;position:relative}
.kz .dl .hl2{display:flex;align-items:center;gap:7px;font-family:var(--head);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--ink-soft);font-weight:600}
.kz .dl .hl2 svg{width:17px;height:17px;color:var(--red)}
.kz .dl .velke{font-family:var(--head);font-size:1.7rem;line-height:1;font-weight:600;letter-spacing:.01em}
.kz .dl .velke small{font-size:.9rem;color:var(--ink-soft)}
.kz .dl .pod{font-size:.78rem;color:var(--ink-2);line-height:1.35}
.kz .dl .spod{margin-top:auto;display:flex;align-items:center;gap:6px;font-size:.76rem;font-weight:700;color:var(--red-dk)}
.kz .dl.siroka{grid-column:1/-1;min-height:0}
.kz .dl.pozor{border-color:var(--red);box-shadow:var(--tien-zdvih)}
.kz .dl .kruh{position:absolute;right:10px;top:34px;width:54px;height:54px}
.kz .mini-foto{display:flex;gap:6px}
.kz .mini-foto .foto{width:40px;height:40px}
.kz .hlC{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--r)}
.kz .hlC .fotka2{width:54px;height:54px;border-radius:50%;background:linear-gradient(160deg,#F5E7D8,#E5D2BE);display:grid;place-items:center;color:#9a7b5f;border:2px solid var(--karta-ram);flex:0 0 auto}
.kz .hlC .fotka2 svg.dog{width:34px;height:31px;fill:currentColor}
.kz .hlC h2{font-size:1.4rem;line-height:1}
.kz .hlC .mal{margin-top:3px}
.kz .spat{display:flex;align-items:center;gap:8px;font-family:var(--head);text-transform:uppercase;letter-spacing:.07em;font-size:.84rem;font-weight:600;color:var(--ink-2)}
.kz .spat .sip{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--line);background:var(--v-okne);box-shadow:var(--tien-jemny)}
.kz .detail-h{display:flex;align-items:center;gap:10px;margin-bottom:2px}
.kz .detail-h h3{flex:1;font-size:1.05rem}

/* nastavenia */
.kz .pole{display:flex;flex-direction:column;gap:5px}
.kz .pole > span{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--ink-soft)}
.kz .vstup{height:44px;border-radius:12px;border:1.5px solid var(--line);background:var(--v-okne);display:flex;align-items:center;justify-content:space-between;padding:0 14px;font-size:.9rem;box-shadow:var(--tien-jemny)}
.kz .vstup svg{color:var(--ink-soft);width:18px;height:18px}
.kz .dva{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.kz .prep{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--v-okne)}
.kz .prep i{width:44px;height:26px;border-radius:999px;background:var(--red);position:relative;flex:0 0 auto}
.kz .prep i::after{content:"";position:absolute;right:3px;top:3px;width:20px;height:20px;border-radius:50%;background:var(--v-okne);box-shadow:0 2px 4px rgba(0,0,0,.3)}
@media (prefers-reduced-motion:no-preference){

  .kz .zal,.kz .btn,.kz .pil,.kz button{transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .2s,background .2s}
  .kz .btn:active,.kz .zal:active,.kz .fab:active{transform:scale(.96)}
  .kz .kal-m button.vyb{animation:kzpop .45s cubic-bezier(.34,1.56,.64,1)}
  .kz .zap{animation:kzpop .5s cubic-bezier(.34,1.56,.64,1)}

}
@keyframes kzpop{from{transform:scale(.9);opacity:.4}to{transform:none;opacity:1}}
/* ===== C+ ===== */
.kz .dl .plus,.kz .dk-m .plus{position:absolute;top:10px;right:10px;z-index:2;width:30px;height:30px;border-radius:50%;background:var(--cta);color:#fff;display:grid;place-items:center;box-shadow:var(--cta-lesk),var(--cta-tien);transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.kz .dl .plus svg.ik,.kz .dk-m .plus svg.ik{width:16px;height:16px;stroke-width:2.6}
.kz .dl .plus.on,.kz .dk-m .plus.on{transform:rotate(45deg)}
.kz .dl[data-go]{cursor:pointer}
.kz .dl .hl2{padding-right:34px}
.kz .hlavaD{cursor:pointer}
.kz .qp{display:flex;flex-direction:column;gap:12px;margin:2px 0}
.kz .dlazdice + .qp,.kz .qp + .qp{margin-top:0}
.kz .qh{display:flex;align-items:center;gap:8px}
.kz .qh b{flex:1;display:flex;align-items:center;gap:8px;font-family:var(--head);text-transform:uppercase;letter-spacing:.06em;font-size:.95rem}
.kz .qh b svg{color:var(--red)}
.kz .oz2{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--line);background:var(--v-okne);color:var(--ink-2)}
.kz .oz2 svg.ik{width:16px;height:16px}
.kz .kgbox{display:flex;align-items:center;justify-content:center;gap:18px}
.kz .kgbox .sip{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--line);background:var(--v-okne);box-shadow:var(--tien-jemny);font-size:1.5rem;font-weight:600;color:var(--ink-2);text-align:center}
.kz .kgv{display:flex;align-items:baseline;gap:6px;min-width:120px;justify-content:center}
.kz .kgv b{font-family:var(--head);font-size:2.6rem;line-height:1}
.kz .kgv span{color:var(--ink-soft);font-weight:700}
.kz .pk2{display:grid;grid-template-columns:1fr;gap:12px}
.kz .pk2 > .cela{grid-column:1/-1}
.kz .uc-win .pk2{grid-template-columns:1fr 1fr;align-items:start}
.kz .udaje.u3{grid-template-columns:repeat(2,1fr)}
.kz .uc-win .udaje.u3{grid-template-columns:repeat(3,1fr)}
.kz .dl.siroka{min-height:0}
.kz .uc-win .dl.siroka{grid-column:1/-1}
.kz .uc-win .kz-in > .dl.siroka{width:100%}
.kz .vk ul{margin:4px 0 0;padding-left:18px}
.kz .vk li{margin:3px 0}

/* ===== Ochrana pred parazitmi (návrh antiparazitika-navrh 16. 10. 2026, sekcie 0–2) =====
   Riadok parazitov `.par` s pásikom `.bar` je jediný nový prvok; zvyšok sú existujúce pilulky, karty, prepínač a kalendár karty.
   Stav: `.ok` zelená, `.poz` jantárová (končí), `.po` červená (po termíne), `.bez` sivá. */
.bar{height:8px;border-radius:999px;background:var(--bg-soft);overflow:hidden;position:relative}
.bar i{display:block;height:100%;border-radius:999px}
.bar.mala{height:6px}
.ok .bar i{background:linear-gradient(90deg,#3DB862,#1A8F3C)}
.poz .bar i{background:linear-gradient(90deg,#F5D27A,#E0A93B)}
.po .bar{background:var(--red-soft);box-shadow:inset 0 0 0 1.5px var(--red)}
.po .bar i{width:0}
.bez .bar{background:repeating-linear-gradient(135deg,var(--bg-soft) 0 6px,transparent 6px 12px);box-shadow:inset 0 0 0 1.5px var(--line-2)}
.bar-l{display:flex;justify-content:space-between;gap:8px;margin-top:5px;font-size:.74rem;color:var(--ink-soft)}
.bar-l b{color:var(--ink);font-weight:700}
.po .bar-l b{color:var(--red-dk)}
.poz .bar-l b{color:var(--pozor-text)}
.ok .bar-l b{color:var(--ok)}
.par{display:grid;grid-template-columns:38px minmax(0,1fr);gap:2px 12px;padding:12px 0;border-top:1px solid var(--line)}
.par:first-of-type{border-top:0}
.par .ikb{grid-row:span 3;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--bg-soft);color:var(--ink-2)}
.ok > .ikb{background:var(--ok-plocha);color:var(--ok)}
.poz > .ikb{background:var(--pozor-plocha);color:var(--pozor-text)}
.po > .ikb{background:var(--red-soft);color:var(--red-dk)}
.par .h{display:flex;align-items:center;gap:8px;justify-content:space-between;flex-wrap:wrap}
.par .h b{font-family:var(--head);text-transform:uppercase;letter-spacing:.06em;font-size:.82rem;color:var(--ink);font-weight:600}
.par .n{font-size:.88rem;color:var(--ink);font-weight:600;line-height:1.35}
.par .n small{display:block;font-weight:500;color:var(--ink-soft);font-size:.76rem}
.par .bw{margin-top:6px}
.par.mini{grid-template-columns:minmax(0,1fr);padding:4px 0;border:0}
.par.mini .n{font-size:.82rem}
.par.mini .bw{margin-top:2px}
.pk-karta{display:flex;flex-direction:column;gap:10px}
.pk-karta .hd{display:flex;align-items:center;gap:8px}
.pk-karta .hd .st{flex:1}
.pk-karta .pr b{font-size:1rem;color:var(--ink);line-height:1.3}
.pk-karta .velke2{font-family:var(--head);font-size:1.5rem;line-height:1.1;color:var(--ink)}
.pk-karta.ok .velke2{color:var(--ok)}
.pk-karta.poz .velke2{color:var(--pozor-text)}
.pk-karta.po .velke2{color:var(--red-dk)}
.zdroj{display:inline-block;font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--line-2);border-radius:999px;padding:0 7px;margin-left:6px;vertical-align:1px}
.kz .pil.mala,.uc-ap .pil.mala{height:24px;padding:0 9px;font-size:.7rem}
.kz .pil.siv,.uc-ap .pil.siv{background:var(--bg-soft);color:var(--ink-2);box-shadow:none}
.kz .dva-st{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.kz .uc-win .dva-st{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.kz .maskotbox{display:flex;gap:14px;align-items:center}
.kz .maskotbox .maskot{width:70px;height:70px;object-fit:contain;flex:0 0 auto}
/* Dlaždica Ochrana pred parazitmi: dva prstence vedľa seba (schválený návrh Ochrana kompakt, dlaždica A, 16. 10. 2026) */
.kz .dl.ap{gap:2px}
.kz .dl.ap .hl2{line-height:1.3}
.kz .kr{position:relative;flex:0 0 auto;display:inline-grid;place-items:center}
.kz .kr svg{display:block}
.kz .kr .tr{fill:none;stroke:var(--bg-soft)}
.kz .kr .ar{fill:none;stroke-linecap:round}
.kz .kr.ok .ar{stroke:var(--ok)}
.kz .kr.poz .ar{stroke:var(--kr-poz)}
.kz .kr.po .ar{stroke:var(--red)}
.kz .kr.po .tr{stroke:var(--red-soft-2)}
.kz .kr.bez .tr{stroke:var(--line-2);stroke-dasharray:3 4.5;stroke-linecap:butt}
.kz .kr .mid{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--head);font-weight:600;line-height:1;color:var(--ink)}
.kz .kr .mid small{font-size:.62em;margin-left:1px}
.kz .kr.ok .mid{color:var(--ok)}
.kz .kr.poz .mid{color:var(--pozor-text)}
.kz .kr.po .mid{color:var(--red-dk)}
.kz .kr.bez .mid{color:var(--ink-soft)}
.kz .kr2{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:3px}
.kz .kc{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0}
.kz .kc b{font-family:var(--head);font-weight:600;text-transform:uppercase;letter-spacing:.05em;font-size:.68rem;color:var(--ink);margin-top:4px;line-height:1.2}
.kz .kc span.t{font-size:.68rem;color:var(--ink-soft);line-height:1.25;white-space:nowrap}
.kz .kc.poz span.t{color:var(--pozor-text);font-weight:700}
.kz .kc.po span.t{color:var(--red-dk);font-weight:700}
.kz .kc.ok span.t{color:var(--ink-2)}
/* Kruhy v karte zvieraťa (schválený návrh 17. 10. 2026): dni v prstenci, očkovanie s prstencom, krmivo s pásikom zásoby */
.kz .kr .mid.dd{flex-direction:column;gap:1px}
.kz .kr .mid.dd b{font-family:var(--head);font-weight:600;font-size:.86rem;line-height:.95}
.kz .kr .mid.dd small{margin:0;font-family:var(--text);font-weight:700;font-size:.46rem;letter-spacing:.06em;text-transform:uppercase;line-height:1}
.kz .dl.cen .kr2{margin:auto 0}
.kz .ocb{display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px;margin:2px 0 0;min-width:0}
.kz .ocb .ot{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:0;max-width:100%}
.kz .ocb .ot b{font-family:var(--head);font-weight:600;text-transform:uppercase;letter-spacing:.05em;font-size:.68rem;color:var(--ink);line-height:1.2;overflow-wrap:anywhere}
.kz .ocb .ot span{font-size:.68rem;color:var(--ink-soft);line-height:1.25;white-space:nowrap}
.kz .ocb .ot span.t{color:var(--ink-2)}
.kz .ocb.poz .ot span.t{color:var(--pozor-text);font-weight:700}
.kz .ocb.po .ot span.t{color:var(--red-dk);font-weight:700}
.kz .dl.ock .spod{margin-top:auto;padding-top:6px;text-decoration:none}
.kz .kbar{margin:8px 0 2px}
.kz .kbar .bar{height:6px}
.kz .ap-vyber .vyber{display:flex;width:100%}
.kz .ap-nahlad{font-size:.84rem;color:var(--ink-2)}
.kz .ap-nahlad b{color:var(--ink)}
.kz .ap-iny{display:flex;flex-direction:column;gap:10px}
.kz .ap-dlzka{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px;align-items:center}
.kz .ap-cakaj{font-size:.84rem;color:var(--ink-soft)}
.pozor-pas{display:flex;gap:10px;align-items:center;padding:11px 12px;border-radius:12px;background:var(--pozor-plocha);border:1.5px solid var(--pozor-ram);color:var(--pozor-text);font-size:.84rem;font-weight:600;margin-bottom:14px}
.pozor-pas svg{flex:0 0 auto;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.pozor-pas .btn{margin-left:auto;padding:8px 12px;font-size:.78rem;flex:0 0 auto}
.uc-ap{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.uc-ap .pil{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border:1.5px solid var(--line);border-radius:999px;background:var(--sklo);box-shadow:var(--tien-jemny);font-size:.7rem;font-weight:600;white-space:nowrap;color:var(--ink-2)}
.uc-ap .pil svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.uc-ap .pil.cv{border-color:var(--red);background:var(--red-soft);color:var(--red-dk)}
.uc-ap .pil.zel{border-color:var(--ok);background:var(--ok-plocha);color:var(--ok)}
.uc-ap .pil.poz{border-color:var(--pozor-ram);background:var(--pozor-plocha);color:var(--pozor-text)}

/* ===== sken dokladu ===== */
.kz .skpily{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.kz .skp{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:.76rem;font-weight:700;color:var(--ink-soft);text-align:center;padding:6px 2px;border-radius:12px}
.kz .skp i{font-style:normal;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--line-2);background:var(--v-okne);font-size:.76rem}
.kz .skp.on{color:var(--red-dk)}
.kz .skp.on i{background:var(--cta);color:#fff;border-color:transparent;box-shadow:var(--cta-lesk)}
.kz .skp.hotovo i{background:var(--ok-plocha);color:var(--ok);border-color:var(--ok)}
.kz .skobsah{display:flex;flex-direction:column;gap:12px}
.kz .papsvg{display:block;width:100%;height:auto;border-radius:14px}
.kz .sk-kam{position:relative;max-width:340px;margin:0 auto;width:100%}
.kz .sk-stit{position:absolute;left:50%;top:12px;transform:translateX(-50%);background:rgba(28,27,26,.7);color:#fff;font-size:.72rem;font-weight:700;padding:4px 12px;border-radius:999px;white-space:nowrap}
.kz .spust{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);width:58px;height:58px;border-radius:50%;border:4px solid #fff;display:grid;place-items:center}
.kz .spust i{width:42px;height:42px;border-radius:50%;background:var(--v-okne);display:block}
.kz .sk-dva{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.kz .dropzona{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:30px 20px;border:2px dashed var(--line-2);border-radius:16px;background:var(--sklo)}
.kz .dropzona svg.ik{width:34px;height:34px;color:var(--red)}
.kz .dropzona .btn svg.ik{width:17px;height:17px;color:inherit}
.kz .strany{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.kz .strana{aspect-ratio:3/4;border-radius:10px;background:var(--v-okne);border:1px solid var(--line);box-shadow:var(--tien-jemny);position:relative;display:flex;flex-direction:column;padding:8px 7px}
.kz .strana .sl{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.kz .strana .sl i{display:block;height:3px;border-radius:2px;background:#cfc6bc}
.kz .strana .sl i.k{width:60%}
.kz .strana > span{position:absolute;left:6px;bottom:5px;font-size:.62rem;font-weight:700;color:var(--ink-soft)}
.kz .strana.dalsia{align-items:center;justify-content:center;gap:4px;border:2px dashed var(--red);background:var(--red-soft);color:var(--red-dk);text-align:center;box-shadow:none}
.kz .strana.dalsia svg.ik{width:22px;height:22px}
.kz .strana.dalsia b{font-size:.62rem;line-height:1.15}

/* ===== výber veterinára ===== */
.kz .vhl{display:flex;gap:8px;align-items:center}
.kz .vhladaj{flex:1;min-width:0;display:flex;align-items:center;gap:8px;height:44px;padding:0 15px;border:1px solid var(--line);border-radius:11px;background:var(--v-okne);box-shadow:var(--tien-jemny);color:var(--ink-soft)}
.kz .vhladaj svg.ik{width:18px;height:18px}
.kz .vq,.kz .vinp{all:unset;box-sizing:border-box;flex:1;min-width:0;font-size:.95rem;color:var(--ink);font-family:var(--text)}
.kz .vinp{display:block;width:100%;height:44px;padding:0 15px;border:1px solid var(--line);border-radius:11px;background:var(--v-okne);box-shadow:var(--tien-jemny)}
.kz .vinp:focus,.kz .vhladaj:focus-within{border-color:var(--red);box-shadow:0 0 0 3px var(--red-soft)}
.kz .vlist{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow-y:auto;padding:2px}
.kz .vrow{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--v-okne);border:1.5px solid var(--line);box-shadow:var(--tien-jemny);text-align:left;width:100%}
.kz .vrow .vk2{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--bg-soft);color:var(--ink-2);flex:0 0 auto}
.kz .vrow .vk2 svg.ik{width:18px;height:18px}
.kz .vrow .vt{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}
.kz .vrow .vt b{font-size:.86rem}
.kz .vrow .vt span{font-size:.76rem;color:var(--ink-soft)}
.kz .vrow.on{border-color:var(--red);background:var(--red-soft)}
.kz .vrow.on .vk2{background:var(--red);color:#fff}
.kz .vrow.iny{border-style:dashed;background:transparent;box-shadow:none}
.kz .vform{display:flex;flex-direction:column;gap:10px}

/* Karta zvieraťa – menu a znak zvieraťa (návrh: .uc-win .uc-kto, .uc-medaila.zv, .uc-nav svg.ik) */
.kz .uc-kto small{display:block;color:var(--ink-soft);font-size:.74rem}
.kz .uc-medaila.zv{background:linear-gradient(160deg,var(--red-soft),#F6EEE6);color:var(--red-dk);border-color:var(--karta-ram);box-shadow:var(--tien-jemny);cursor:default}
.kz .uc-medaila.zv::after{display:none}
.kz .uc-nav svg.ik{width:19px;height:19px;stroke-width:1.8;pointer-events:none}
/* Menu karty na počítači hustejšie – 13 položiek sa zmestí bez rolovania (majiteľ 21. 10. 2026). */
/* Výška položky sa prispôsobí výške okna (13" notebook s lištami prehliadača). */
@media(min-width:901px){.kz .uc-zoz{gap:0}.kz .uc-zoz .uc-nav{padding:clamp(3px,calc((100vh - 600px) / 30),7px) 12px;white-space:nowrap}}
.kz .prepinac .sip{cursor:pointer}
/* Znak zvieraťa (plemeno alebo druh z účtu) namiesto siluety psa z návrhu; veľkosť podľa miesta. */
.kz .kz-zn{--zn:34px;color:inherit;width:var(--zn);height:var(--zn)}
.kz .kz-zn.uc-plem-ik::before{width:calc(var(--zn) + 4px);height:calc(var(--zn) + 4px);margin:-2px}
.kz .kz-zn.uc-druh-ik svg{width:calc(var(--zn) + 4px);height:calc(var(--zn) + 4px);margin:-2px}
.kz .uc-medaila .kz-zn{--zn:26px}
.kz .fotka .kz-zn{--zn:64px}
.kz .fotka2 .kz-zn{--zn:34px}
.kz .stitok{font-family:var(--head);text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;color:var(--ink-soft);margin:0 0 6px 2px}
/* Výber veterinára: logo, malé tlačidlá Zavolať / Navigovať / Web, riadok ako tlačidlo (div) */
.kz .vrow{cursor:pointer}
.kz .vlogo{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;overflow:hidden;flex:0 0 auto;background:var(--v-okne);border:1px solid var(--line);font-family:var(--head);font-size:.8rem;letter-spacing:.04em;color:var(--ink-2)}
.kz .vlogo img{width:100%;height:100%;object-fit:contain;padding:4px}
.kz .vakc{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.kz .vrow .vt .vakc{font-size:inherit;color:inherit}
.kz .dl .vakc{margin-top:auto}
.kz .riadok > .vlogo{margin-right:0}
.kz .kz-chyba{color:var(--red-dk);font-weight:600}
.kz .kz-nahlad{opacity:.55;pointer-events:none;filter:grayscale(.25)}
.kz .dl[data-kz-go],.kz .hlavaD{cursor:pointer}
.kz .qp input[type="text"]{font-size:16px}
/* Fotka zvieraťa, sken dokladu (fáza 3), šípka späť */
.kz .kz-ft{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.kz .uc-medaila.zv .kz-ft,.kz .fotka2 .kz-ft{border-radius:50%}
.kz .preukaz .fotka .kz-ft{border-radius:12px}
.kz .preukaz .fotka .zmen{cursor:pointer;padding:0}
.kz .qp > .btn{align-self:flex-start}
.kz .ft-okno{position:relative;width:min(100%,280px);aspect-ratio:1;margin:0 auto;border-radius:16px;overflow:hidden;background:var(--bg-soft)}
.kz .ft-okno canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}
.kz .ft-okno svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.kz .sk-rohy{position:relative}
.kz .sk-rohy .papsvg,.kz .sk-po .papsvg{display:block;width:100%;height:auto;border-radius:14px;background:var(--bg-soft)}
.kz .sk-ov{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.kz .sk-h{pointer-events:all;cursor:grab;touch-action:none}
.kz .dropzona.nad{border-color:var(--red);background:var(--red-soft)}
.kz .strana img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:9px}
.kz .strana > span{z-index:1;background:rgba(28,27,26,.7);color:#fff;padding:0 6px;border-radius:999px}
.kz .strana .sk-x{position:absolute;right:4px;top:4px;z-index:2;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--v-okne);border:1px solid var(--line);color:var(--ink-2)}
.kz .strana .sk-x svg{width:12px;height:12px}
/* Dlaždica Veterinár, návrh A: vizitka (logo v kruhu, meno, ambulancia, okrúhle ikony) */
.kz .dl.vA .vtop{display:flex;align-items:center;gap:8px;min-width:0}
.kz .dl.vA .vtop .vlogo{width:40px;height:40px}
.kz .dl.vA .vm{font-size:.84rem;font-weight:700;line-height:1.2;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-width:0}
.kz .dl.vA .vamb{font-size:.76rem;color:var(--ink-2);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kz .dl.vA .vik{margin-top:auto;display:flex;gap:8px}
.kz .btn.kr-ik{width:34px;height:34px;padding:0;border-radius:50%;flex:0 0 auto}
.kz .btn.kr-ik svg{width:16px;height:16px}
.kz .vlogo.prazdny{border:1.5px dashed var(--line-2);background:transparent;color:var(--ink-soft)}
.kz .vlogo.prazdny svg.ik{width:20px;height:20px}
.kz .vet-mp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.88rem;color:var(--ink)}
.kz .qp .pole .uc-plemeno{display:block}
.kz .skpily + .skobsah{margin-top:12px}
/* Dlaždica Krmivo (variant A) a hlavička zvieraťa (H1) – schválený návrh 16. 10. 2026 (nastroje/NAVRHY-ARTIFACTY.md):
   fotka balenia, značka a rad, pilulka stavu, Objednať znova; portrét na teplej ploche, vodoznak plemena, pás Preukaz.
   Mobil je základ, počítač (okno karty, od 901 px) má vlastné rozloženie v bloku nižšie. Hodnoty z návrhu 1:1. */
.kz .kf{background:var(--v-okne);border:1px solid var(--line);border-radius:10px;display:grid;place-items:center;overflow:hidden;flex:0 0 auto;box-shadow:var(--tien-jemny)}
.kz .kf img{width:100%;height:100%;object-fit:contain;padding:3px}
.kz .kf svg.ik{width:22px;height:22px;color:var(--red)}
.kz .kv-t{display:flex;flex-direction:column;gap:1px;min-width:0}
.kz .kv-t .b1{font-family:var(--head);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;color:var(--ink-soft);font-weight:600;line-height:1.2}
.kz .kv-t .r1{font-size:.82rem;font-weight:700;color:var(--ink);line-height:1.2}
.kz .kv-t .k1{display:none;font-size:.72rem;color:var(--ink-soft);line-height:1.3}
.kz .kv-t .r1.kl{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kz .kv-r{display:flex;gap:9px;align-items:flex-start;min-width:0}
.kz .kv-r .pil{align-self:flex-start;margin-top:3px}
.kz .kvA .kf{width:46px;height:58px}
.kz .kv-bot{display:flex;align-items:center;gap:10px;margin-top:auto;min-width:0}
.kz .kv-bot .spod{margin:0}
.kz .kv-bot .pil{display:none;margin:0}
.kz .kmaskot{position:absolute;right:8px;bottom:6px;width:52px;height:auto}
.kz .kvn{max-width:104px}
.kz .dl .velke.kvn-h{font-size:1.15rem;color:var(--ink-soft)}

.kz .h1{position:relative;overflow:hidden;border-radius:var(--r);border:1px solid var(--karta-ram);box-shadow:var(--tien-zdvih);cursor:pointer;
  background:radial-gradient(70% 130% at 0% 0%,var(--red-soft) 0%,rgba(253,236,235,0) 62%),var(--panel)}
.kz .h1.ma-zn::before{content:"";position:absolute;right:-26px;top:-30px;width:190px;height:190px;background:var(--red-soft-2);opacity:.65;
  -webkit-mask:var(--plemeno) center/contain no-repeat;mask:var(--plemeno) center/contain no-repeat;pointer-events:none}
.kz .h1 .h1-top{position:relative;display:flex;align-items:center;gap:14px;padding:16px 16px 14px}
.kz .h1 .por{position:relative;flex:0 0 auto;border-radius:50%;background:linear-gradient(160deg,#F5E7D8,#E5D2BE);display:grid;place-items:center;color:var(--zlato-ink);border:3px solid var(--karta-ram);box-shadow:var(--tien-zdvih);width:92px;height:92px}
.kz .h1 .por .kz-zn{--zn:70px}
.kz .h1 .por .kz-ft{position:absolute;inset:0;width:100%;height:100%;border-radius:50%}
.kz .h1 .por .kam{position:absolute;right:-4px;bottom:-4px;width:28px;height:28px;border-radius:50%;background:var(--v-okne);display:grid;place-items:center;box-shadow:var(--tien-jemny);border:1.5px solid var(--line);color:var(--ink-2);padding:0}
.kz .h1 .por .kam svg.ik{width:15px;height:15px}
.kz .h1 h2{font-family:var(--head);text-transform:uppercase;margin:0;line-height:1;color:var(--ink);font-size:2rem;letter-spacing:.02em}
.kz .h1 .h1-plem{color:var(--ink-2);font-size:.9rem;margin:4px 0 8px}
.kz .h1 .pily{gap:6px}
.kz .pil.nar{border-color:var(--red);background:var(--red-soft);color:var(--red-dk)}
.kz .h1 .h1-pas{position:relative;display:flex;align-items:center;gap:10px;padding:10px 16px;border-top:1px solid var(--line);background:rgba(255,255,255,.5)}
.kz .h1 .h1-pas .tx{flex:1;min-width:0;line-height:1.3}
.kz .h1 .h1-pas .tx b{display:block;font-size:.84rem;color:var(--ink)}
.kz .h1 .h1-pas .tx span{font-size:.74rem;color:var(--ink-soft)}
.kz .h1 .pr1{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.kz .h1 .h1-go{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;font-weight:700;color:var(--red-dk);white-space:nowrap}
.kz .h1 .h1-go svg.ik{width:14px;height:14px}
.kz .h1 .h1-pas .btn{display:none;padding:9px 14px;font-size:.82rem}
.kz .h1 .kr-p{display:none}
.kz .h1 .maskot{position:absolute;right:10px;top:6px;width:76px;height:auto;z-index:1}
.kz .h1 .maskot.zrk{transform:scaleX(-1)}
.kz .h1 .oz-h1{display:none}

/* Počítač: dlaždica Krmivo s pilulkou dole a väčšou fotkou, hlavička s pásom Preukaz vpravo */
@media(min-width:901px){
  .kz .kvA .kf{width:56px;height:70px}
  .kz .kvA .kv-r{gap:12px}
  .kz .kvA .kv-t .b1{font-size:.76rem}
  .kz .kvA .kv-t .r1{font-size:1.08rem}
  .kz .kvA .kv-t .k1{display:block;font-size:.78rem}
  .kz .kvA .kv-r .pil{display:none}
  .kz .ocb{flex-direction:row;flex:1;justify-content:center;gap:16px;text-align:left;margin:0}
  .kz .ocb .ot{align-items:flex-start;gap:2px}
  .kz .ocb .ot b{font-size:.8rem}
  .kz .ocb .ot span{font-size:.8rem}
  .kz .kbar{margin:10px 0 4px}
  .kz .kbar .bar{height:7px}
  .kz .kv-bot .pil{display:inline-flex}
  .kz .kv-bot .spod{margin:0 0 0 auto}
  .kz .kvn{max-width:200px}
  .kz .h1{display:grid;grid-template-columns:minmax(0,1fr) 340px;align-items:stretch}
  .kz .h1.ma-zn::before{right:330px;top:-50px;width:240px;height:240px}
  /* Koliesko Nastavení aj na počítači v pravom hornom rohu časti so zvieraťom (nie v páse Preukaz),
     majiteľ 17. 10. 2026; v hlavičke karty sa na úvode neukazuje. */
  .kz .uc-obsah:has(.h1) .kz-top .oz{display:none}
  .kz .h1 .oz-h1{display:grid;position:absolute;right:352px;top:12px;z-index:2;width:36px;height:36px;border-radius:50%;place-items:center;background:var(--v-okne);border:1.5px solid var(--line);box-shadow:var(--tien-jemny);color:var(--ink-2);padding:0}
  .kz .h1 .h1-top{padding:22px 10px 22px 26px;gap:22px}
  .kz .h1 .por{width:132px;height:132px}
  .kz .h1 .por .kz-zn{--zn:100px}
  .kz .h1 .por .kam{width:34px;height:34px}
  .kz .h1 h2{font-size:2.8rem}
  .kz .h1 .h1-plem{font-size:1.02rem;margin:6px 0 12px}
  .kz .h1 .h1-pas{flex-direction:column;align-items:flex-start;justify-content:center;border-top:0;border-left:1px solid var(--line);padding:0 26px;gap:14px}
  .kz .h1 .pr1{flex:0 0 auto}
  .kz .h1 .h1-pas .tx b{font-size:1rem}
  .kz .h1 .h1-pas .tx span{font-size:.82rem}
  .kz .h1 .h1-pas .btn{display:inline-flex}
  .kz .h1 .h1-go{display:none}
  .kz .h1 .kr-m{display:none}
  .kz .h1 .kr-p{display:inline-grid}
  .kz .h1.nar .h1-pas{padding-right:136px}
  .kz .h1 .maskot{right:14px;top:auto;bottom:0;width:108px}
}

/* Šípka späť vedľa X (okno účtu, karta zvieraťa, nastavenia zvieraťa) */
.uc-sipka{margin-top:-40px;margin-right:48px}
body .uc-x.uc-sipka[hidden]{display:none}
.uc-modal.uc-profil .uc-x.uc-sipka{right:64px;margin:0}
body.ma-mlistu .uc-x.uc-sipka{right:62px;margin:0}
/* Zviera v Moje zvieratá otvára kartu (vypínač) */
.uc-zv-scena.uc-kz,.uc-zv-telo.uc-kz{cursor:pointer}
.uc-zv-scena.uc-kz:focus-visible{outline:2.5px solid var(--red);outline-offset:-4px}

/* Telefón: hlavička karty so šípkami a kolieskom; krížik okna je vpravo hore */
@media(max-width:900px){
  .kz .kz-h2{display:none}
  /* Vpravo hore stoja šípka späť a X okna (spolu 106 px od okraja okna) – hlavička karty im
     nechá miesto, aby koliesko Nastavení nebolo pod nimi (16. 10. 2026). Pri viacerých zvieratách
     nadpis zíde: prepínač zvierat + koliesko by sa s ním nezmestili. */
  .kz .kz-top{padding-right:100px;margin-bottom:16px}
  .kz .kz-top:has(.prepinac) h3{display:none}
  /* Koliesko Nastavení je na telefóne len v pravom hornom rohu preukazu v Prehľade (.oz-h1); podobrazovky ho v hlavičke nemajú (17. 10. 2026). */
  .kz .kz-top .oz{display:none}
  .kz .spat{margin-bottom:4px}
  .kz .kz-top .prepinac .mal{display:none}
  /* Úvod karty (preukaz H1): koliesko Nastavení stojí v pravom hornom rohu preukazu, nie v hlavičke karty
     (17. 10. 2026). Maskot narodenín sa posúva vľavo od neho. Na ostatných obrazovkách ostáva v .kz-top. */
  .kz .uc-obsah:has(.h1) .kz-top .oz{display:none}
  .kz .h1 .oz-h1{display:grid;position:absolute;right:8px;top:8px;z-index:2;width:36px;height:36px;border-radius:50%;place-items:center;background:var(--v-okne);border:1.5px solid var(--line);box-shadow:var(--tien-jemny);color:var(--ink-2);padding:0}
  .kz .h1 .h1-top{padding-right:52px}
  .kz .h1 .maskot{right:52px}
  /* Obrazovky karty nesmú byť širšie než displej: dlhé tlačidlo (Google kalendár | Apple kalendár)
     sa zalomí pod seba, nie von z karty. */
  .kz .uc-obsah,.kz .kz-in,.kz .card > div{min-width:0}
  .kz .kz-in{width:100%}
  .kz .vq,.kz .vinp{width:0}   /* pole bez vlastnej šírky (all:unset) inak roztiahne celú obrazovku o ~12 px */
  .kz .kz-kal{flex-wrap:wrap}
  .kz .kz-kal > .btn{flex:1 1 auto}
  /* Hĺbka kariet na telefóne: ten istý recept ako karta produktu (.pcard) – sklenený tieň a svetlý lesk
     hornej hrany; jemný tieň sám na béžovom podklade splýval. */
  .kz .card,.kz .card:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.9),var(--sklo-tien)}
}
/* Preukaz v Karte zvieraťa: ikona „Obnoviť údaje od veterinára“ vľavo od kolieska a bublina s výsledkom (návrh 20. 10. 2026).
   Počítač: koliesko je 352 px od pravého okraja, ikona hneď vľavo od neho; mobil: koliesko 8 px, ikona 52 px, bublina pod ikonami. */
.kz .h1 .oz-reg{display:grid;position:absolute;z-index:2;width:36px;height:36px;border-radius:50%;place-items:center;background:var(--v-okne);border:1.5px solid var(--line);box-shadow:var(--tien-jemny);color:var(--ink-2);padding:0;top:12px;right:396px;cursor:pointer}
.kz .h1 .oz-reg svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* Spoločné zviera (návrh 9yPNu7tE38R3YpTLwcUsw1): ikona dvoch ľudí vľavo od obnovenia údajov od veterinára, panel nad dlaždicami. */
.kz .h1 .oz-spolu{display:grid;position:absolute;z-index:2;width:36px;height:36px;border-radius:50%;place-items:center;background:var(--v-okne);border:1.5px solid var(--line);box-shadow:var(--tien-jemny);color:var(--ink-2);padding:0;top:12px;right:440px;cursor:pointer}
.kz .h1 .oz-spolu svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.kz .h1 .oz-spolu.on{color:var(--red-dk)}
.kz .h1:not(:has(.oz-reg)) .oz-spolu{right:396px}
.kz .sp-pil{gap:6px}
.kz .sp-ini{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--line);color:var(--ink-2);font-style:normal;font-size:.62rem;font-weight:700;letter-spacing:.02em;flex:none}
.kz .sp-ini.sp-ini-v{width:34px;height:34px;font-size:.78rem;background:var(--red-soft);color:var(--red-dk)}
.kz .sp-txt{margin:0;font-size:.88rem;color:var(--ink-2);line-height:1.55;max-width:62ch}
.kz .sp-zoz .riadok:first-child{border-top:0}
.kz .sp-poz{display:flex;gap:10px;align-items:stretch}
.kz .sp-poz input{flex:1;min-width:0}
.kz .sp-poz .btn{flex:none}
.kz .sp-vysl:empty{display:none}
.kz .sp-chyba{margin:0}
.kz .h1 .oz-reg.bezi{color:var(--red);border-color:var(--red)}
@keyframes regToc{to{transform:rotate(360deg)}}
/* Tlačidlo „Skontrolovať údaje od veterinára“ počas čakania: šípky sa točia (rovnako ako ikona v karte zvieraťa). */
.crsz-toci svg{animation:regToc .9s linear infinite;transform-origin:50% 50%}
.btn.crsz-toci,.btn.crsz-toci:disabled{opacity:1}
@media (prefers-reduced-motion:reduce){.crsz-toci svg{animation:none}}
.kz .h1 .oz-reg.bezi.anim svg{animation:regToc .9s linear infinite}
.kz .h1 .oz-reg.ok{color:var(--ok);border-color:var(--ok)}
.reg-bub{position:absolute;z-index:3;top:56px;right:352px;display:flex;align-items:center;gap:8px;padding:8px 12px 8px 10px;border-radius:12px;background:var(--v-okne);border:1px solid var(--line);box-shadow:var(--tien-zdvih);font-size:.8rem;line-height:1.3;color:var(--ink);white-space:nowrap;text-align:left;cursor:default}
.reg-bub::after{content:"";position:absolute;right:57px;top:-6px;width:10px;height:10px;background:var(--v-okne);border-right:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(-45deg)}
.reg-bub i{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--ok-plocha);color:var(--ok);font-style:normal}
.reg-bub i svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.reg-bub.nic i{background:var(--bg-soft);color:var(--ink-soft)}
.reg-bub.chyba i{background:var(--red-soft);color:var(--red)}
.reg-bub.chyba b{color:var(--red-dk)}
.reg-bub b{display:block;font-size:.82rem}
.reg-bub span{color:var(--ink-soft);font-size:.74rem}
@media(max-width:900px){
  .kz .h1 .oz-reg{right:52px;top:8px}
  .kz .h1 .oz-spolu{right:96px;top:8px}
  .kz .h1:not(:has(.oz-reg)) .oz-spolu{right:52px}
  .kz .sp-poz{flex-direction:column}
  .kz .sp-poz input{flex:none;width:100%}
  /* Meno zvieraťa nesmie ísť pod tri ikony (ľudia, obnoviť, nastavenia) v pravom hornom rohu preukazu: na telefóne je stĺpec s menom pod nimi. */
  .kz .h1 .h1-top > div:last-child{padding-top:34px}
  .reg-bub{top:50px;right:8px;max-width:190px;white-space:normal}
  .reg-bub::after{right:58px;top:-6px;transform:rotate(-45deg)}
}
@media (prefers-reduced-motion:reduce){.kz .h1 .oz-reg.bezi.anim svg{animation:none;transform:rotate(55deg)}}
/* Počítač: okno ako Môj účet (návrh .uc-win) – menu vľavo, nadpis a obsah vpravo */
@media(min-width:901px){
  .kz .kz-top,.kz .spat{display:none}
  .kz .kz-in{gap:14px}
  .kz .dokl{grid-template-columns:repeat(3,1fr)}
  .kz .zdr2{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
  .kz .dlazdice{grid-template-columns:repeat(3,1fr)}
  .kz .pk2{grid-template-columns:1fr 1fr;align-items:start}
  .kz .udaje.u3{grid-template-columns:repeat(3,1fr)}
  .kz .dl.siroka{grid-column:1/-1}
  .kz .kz-in > .dl.siroka{width:100%}
}

/* ==========================================================================
   Karta zvieraťa → Lieky a Denník (schválené návrhy 20. 10. 2026)
   https://claude.ai/artifact/SmNfWfYSGkMQQUMTyg3uFA (Lieky), https://claude.ai/artifact/TKwE6M6RQCSfbm5EzqFZjo (Denník)
   Mobil: formulár = celá obrazovka; počítač (od 901 px): okno nad obrazovkou. Dlaždica až po prvom lieku / zázname.
   ========================================================================== */
.kz .dat{font-family:var(--head);font-size:.82rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:var(--ink-2)}
.kz .dat.dat-v{font-size:.95rem}
.kz .pil.mala.zdr{border-color:var(--red);background:var(--red-soft);color:var(--red-dk)}
.kz .pil.mala.spr{border-color:var(--pozor-ram);background:var(--pozor-plocha);color:var(--pozor-text)}
/* Dlaždice so zoznamom – Lieky, Denník, Doklady (návrh A 21. 10. 2026, https://claude.ai/artifact/WQKzUvBusqPBCxDjMHNxpX).
   contain:size = zoznam nezväčší dlaždicu; riadky navyše skryje dlObsahFit v karta-zvierata.js. */
.kz .ob{display:flex;flex-direction:column;gap:0;margin-top:2px;min-height:0;flex:1 1 0;overflow:hidden;contain:size}
.kz .ob-r{display:flex;align-items:center;gap:8px;min-width:0;padding:0;height:22px;flex:none;border-top:1px solid var(--line)}
.kz .ob-r[hidden]{display:none}
.kz .ob-r:first-child{border-top:0;height:21px}
.kz .ob-r .tx{min-width:0;flex:1;font-size:.78rem;line-height:1.3;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kz .ob-r .tx b{font-weight:600;color:var(--ink)}
.kz .ob-r .tx span{color:var(--ink-soft)}
.kz .ob-r .d{font-family:var(--head);font-size:.74rem;letter-spacing:.04em;font-weight:600;color:var(--ink-2);flex:none;min-width:38px;font-variant-numeric:tabular-nums}
.kz .ob-r .bod{width:8px;height:8px;border-radius:50%;flex:none;background:var(--line-2)}
.kz .ob-r .bod.zdr{background:var(--red)}.kz .ob-r .bod.spr{background:var(--pozor-ram)}.kz .ob-r .bod.vyc{background:var(--ok)}
.kz .ob-r .ch{width:16px;height:16px;border-radius:50%;border:2px solid var(--line-2);background:var(--v-okne);display:grid;place-items:center;color:#fff;flex:none;padding:0;cursor:pointer}
.kz .ob-r .ch.ano{background:var(--ok);border-color:var(--ok)}.kz .ob-r .ch svg{width:10px;height:10px;stroke-width:3.4}
.kz .ob-r.hot .tx{color:var(--ink-soft)}.kz .ob-r.hot .tx b{color:var(--ink-soft);text-decoration:line-through;text-decoration-color:var(--line-2)}
.kz .ob-r .pdf{width:18px;height:20px;border-radius:4px;background:var(--red-soft);color:var(--red-dk);display:grid;place-items:center;flex:none}.kz .ob-r .pdf svg{width:12px;height:12px}
.kz .ob-r .vp{font-size:.72rem;color:var(--ink-soft);flex:none;font-variant-numeric:tabular-nums}
.kz .ob-r.dn .hl{display:flex;align-items:center;gap:8px;flex:none}.kz .ob-r.dn .vp{display:none}
.kz .dl .ob-pata{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:.74rem;font-weight:700;color:var(--red-dk);margin-top:auto;padding-top:4px}
.kz .dl .ob-pata > span,.kz .dl .ob-pata .go{white-space:nowrap}
.kz .dl .ob-pata .go{display:flex;align-items:center;gap:3px;font-weight:700}.kz .dl .ob-pata > span{color:var(--ink-soft);font-weight:500}.kz .dl .ob-pata svg{width:14px;height:14px}
.kz .ob-m{display:none}
@media(max-width:900px){
  .kz .ob{margin-top:6px}
  .kz .ob-d{display:none}.kz .ob-m{display:inline}
  .kz .ob-r.dn{flex-direction:column;align-items:stretch;justify-content:center;gap:0;height:32px}.kz .ob-r.dn:first-child{height:31px}
  .kz .ob-r.dn .tx,.kz .ob-r.dn .hl{line-height:1.2}.kz .ob-r.dn .hl{gap:6px}.kz .ob-r.dn .d{min-width:0}.kz .ob-r.dn .vp{display:inline}
}
.kz .pil.mala.vyc{border-color:var(--ok);background:var(--ok-plocha);color:var(--ok)}
/* Lieky: obrazovka */
.kz .lk-ekran{display:flex;flex-direction:column;gap:12px}
.kz .lk-hore{display:none}
.kz .lk-l:empty{display:none}
.kz .lk-p{display:flex;flex-direction:column;gap:12px}
.kz .lk-sub{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--ink-soft);margin:4px 0 -4px}
.kz .lk-pridaj-m{width:100%}
.kz .lk-pata{margin-top:0}
.kz .lk-dozy{margin-top:6px}
.kz .doza{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.kz .doza:first-child{border-top:0}
.kz .doza .dz-cas{width:50px;font-family:var(--head);font-size:.82rem;letter-spacing:.04em;color:var(--ink-soft);text-transform:uppercase;flex:none;font-weight:600}
.kz .doza .t{flex:1;min-width:0}
.kz .doza .t b{display:block;font-size:.88rem}
.kz .doza .t span{font-size:.78rem;color:var(--ink-soft)}
.kz .odskr{width:34px;height:34px;border-radius:50%;border:2px solid var(--line-2);background:var(--v-okne);display:grid;place-items:center;color:#fff;flex:none;cursor:pointer;padding:0}
.kz .odskr.ano{background:var(--ok);border-color:var(--ok)}
.kz .odskr svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.kz .liek{cursor:pointer}
.kz .liek h4{margin:0;font-family:var(--head);font-size:1.06rem;text-transform:uppercase;letter-spacing:.02em;font-weight:600}
.kz .liek .sp{display:flex;justify-content:space-between;align-items:center;margin:8px 0 4px;font-size:.82rem;gap:8px}
.kz .liek .bar{height:6px;border-radius:99px;background:var(--bg-soft);overflow:hidden;margin-top:8px}
.kz .liek .bar i{display:block;height:100%;background:var(--ok)}
.kz .lk-r{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line);cursor:pointer}
.kz .lk-r:first-of-type{border-top:0}
.kz .lk-r b{display:block;font-size:.88rem}
.kz .lk-r span:not(.pil){font-size:.78rem;color:var(--ink-soft)}
/* formulár */
.kz .lk-form,.kz .lk-okno{display:flex;flex-direction:column;align-items:stretch;gap:12px}
.kz .lk-form > *,.kz .lk-okno > *{flex:none}
.kz .lk-dva{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.kz .lk-jed{position:relative}
.kz .lk-jed i{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-style:normal;font-size:.8rem;color:var(--ink-soft);pointer-events:none}
.kz .lk-datum{display:flex;align-items:center;gap:8px;cursor:pointer;text-align:left}
.kz .lk-datum b{font-weight:500;flex:1;white-space:nowrap}
.kz .lk-datum svg{width:16px;height:16px;color:var(--ink-soft);margin-left:auto;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.kz .lk-datum.on{border-color:var(--red);box-shadow:0 0 0 3px var(--red-soft)}
.kz .lk-akcie{display:flex;gap:10px;justify-content:center;margin-top:2px}
.kz .lk-akcie .btn{flex:0 0 auto;min-width:150px}
.kz .lk-akcie-l{justify-content:flex-start}
.kz .lk-akcie-l .btn{min-width:0}
.kz textarea.vinp{height:auto;min-height:88px;padding:10px 12px;line-height:1.5;resize:none;font-size:16px;white-space:pre-wrap;overflow:auto}
.kz .pole > .vinp,.kz .lk-jed > .vinp{flex:none}
.kz .pole > input.vinp,.kz .pole > textarea.vinp,.kz .pole > button.vinp,.kz .lk-jed > input.vinp{width:100%;box-sizing:border-box}
.kz .pole .sed{font-size:.74rem;color:var(--ink-soft);text-transform:none;letter-spacing:0;font-weight:500}
.kz .foto-pole{border:1.5px dashed var(--line-2);border-radius:12px;background:var(--bg-soft);padding:12px;display:flex;align-items:center;gap:12px}
.kz .foto-tx{display:flex;flex-direction:column;gap:4px;align-items:flex-start;min-width:0}
.kz .foto-tx > span{font-size:.78rem;color:var(--ink-soft);text-transform:none;letter-spacing:0;font-weight:400}
.kz .dn-fotobtn{all:unset;cursor:pointer;font-size:.88rem;color:var(--ink)}
.kz .dn-fotobtn b{font-weight:600}
.kz .mfoto{width:60px;height:60px;border-radius:12px;flex:none;background:linear-gradient(135deg,#EBD9C3,#C9A47C);display:grid;place-items:center;color:rgba(255,255,255,.95);object-fit:cover}
.kz .mfoto svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.kz .foto-pole .mfoto{width:48px;height:48px}
/* Denník */
.kz .dn-ekran{display:flex;flex-direction:column;gap:12px}
.kz .dn-pridaj{width:100%}
.kz .dn-ekran > .uc-pilulky{margin-top:0}
.kz .mes{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--ink-soft);margin:16px 0 0}
.kz .mes:first-child{margin-top:0}
.kz .zaz{padding:12px 0;border-top:1px solid var(--line);display:flex;gap:12px;align-items:flex-start;cursor:pointer}
.kz .zaz.prvy{border-top:0}
.kz .zaz .tx{flex:1;min-width:0}
.kz .zaz .hl{display:flex;align-items:center;gap:8px;margin-bottom:5px;flex-wrap:wrap}
.kz .zaz p{margin:0;color:var(--ink);font-size:.88rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.kz .vfoto{display:block;width:100%;height:190px;object-fit:cover;border-radius:14px;margin:10px 0 4px}
.kz .dn-text{margin:12px 0;color:var(--ink);font-size:.9rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.kz .dn-dva{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.kz .dn-jeden{display:block}
/* okno nad obrazovkou (počítač) */
.kz .lk-ov{position:fixed;inset:0;z-index:470;background:rgba(40,24,12,.38);display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;overflow:auto}
.kz .lk-okno{width:min(450px,100%);background:var(--v-okne);border-radius:18px;padding:18px;box-shadow:0 24px 50px -20px rgba(40,24,12,.55);border:1px solid var(--line);box-sizing:border-box}
.kz .lk-okno h3{font-family:var(--head);font-size:1.25rem;text-transform:uppercase;margin:0 0 2px;letter-spacing:.02em;font-weight:600}
@media(max-width:900px){
  .kz .lk-akcie:not(.lk-akcie-l){flex-direction:column}
  .kz .lk-akcie:not(.lk-akcie-l) .btn{width:100%;min-width:0}
}
@media(min-width:901px){
  .kz .lk-ekran{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
  .kz .lk-hore{display:flex;grid-column:1/-1;justify-content:flex-end}
  .kz .lk-pridaj{height:38px;font-size:.82rem;padding:0 14px;border-radius:10px}
  .kz .lk-l{grid-column:1}
  .kz .lk-p{grid-column:2;grid-row:2}
  .kz .lk-sub,.kz .lk-dole{display:none}
  .kz .lk-pata,.kz .lk-prazdny{grid-column:1/-1}
  .kz .lk-p:empty{display:none}
  .kz .dn-pridaj{width:auto;align-self:flex-end;height:38px;font-size:.82rem;padding:0 14px;border-radius:10px}
}

/* ==========================================================================
   Karta zvieraťa → Ďalšie a pripínanie dlaždíc (schválený návrh 20. 10. 2026)
   https://claude.ai/artifact/X7JSJc8mdomep4Ye9wmmfC – zatvorená dlaždica Ďalšie, rozbalený panel s malými dlaždicami (počítač 3, telefón 2),
   režim úprav (úchyt na ťahanie, šípky, krížik). Pohyb: pružina značky, s prefers-reduced-motion bez animácií.
   ========================================================================== */
.kz .dk-sip{position:absolute;top:10px;right:10px;z-index:2;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--line);background:var(--v-okne);color:var(--ink-2);display:grid;place-items:center;box-shadow:var(--tien-jemny)}
.kz .dk-sip svg.ik{width:16px;height:16px;stroke-width:2.4}
.kz .dk-dl{cursor:pointer}
.kz .dk-dl .hl2{padding-right:34px}
.kz .dk-ik{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}
.kz .dk-ikb{width:30px;height:30px;border-radius:10px;border:1px solid var(--line);background:var(--v-okne);display:grid;place-items:center;color:var(--red)}
.kz .dk-ikb svg.ik{width:16px;height:16px}
.kz .dk-panel{display:flex;flex-direction:column;gap:12px;padding:14px}
.kz .dk-h{display:flex;align-items:center;gap:8px}
.kz .dk-h .hl2{flex:1;min-width:0}
.kz .dk-panel .hl2,.kz .dk-m .hl2{display:flex;align-items:center;gap:7px;font-family:var(--head);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--ink-soft);font-weight:600}
.kz .dk-panel .hl2 svg,.kz .dk-m .hl2 svg{width:17px;height:17px;color:var(--red);flex:none}
.kz .dk-ed svg.ik{width:14px;height:14px}
.kz .dk-ed.on{border-color:var(--red);background:var(--red-soft);color:var(--red-dk)}
.kz .dk-mriez{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.kz .dk-m{position:relative;display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:16px;border:1px solid var(--line);background:var(--v-okne);cursor:pointer;min-width:0;text-align:left}
.kz .dk-m .hl2{padding-right:34px;margin-top:6px}
.kz .dk-m .plus.dk-plus{width:28px;height:28px;top:10px;right:10px}
.kz .dk-v{font-family:var(--head);text-transform:uppercase;font-size:1.2rem;line-height:1.1;font-weight:600;letter-spacing:.01em;overflow-wrap:anywhere}
.kz .dk-s{font-size:.78rem;color:var(--ink-soft);line-height:1.35}
.kz .dk-pn{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:6px 12px;border-radius:999px;border:0;background:var(--bg-soft);color:var(--ink-2);font-size:.76rem;font-weight:600;text-align:left;cursor:pointer}
.kz .dk-pn svg.ik{width:14px;height:14px;flex:none}
.kz .dk-pn.on{background:var(--red-soft);color:var(--red-dk)}
.kz .dk-m .dk-s{margin-bottom:6px}
.kz .dk-pozn{margin:0;font-size:.8rem;color:var(--ink-soft);line-height:1.45}
/* Režim úprav: dlaždica v obale, úchyt + šípky dole, krížik vpravo hore */
.kz .dk-wr{position:relative;display:flex;flex-direction:column;min-width:0;border-radius:var(--r,16px)}
.kz .dk-wr > .card.dl{flex:1}
/* Úpravy nemenia rozmer dlaždice (majiteľ 21. 10. 2026): obsah stlmený, úchyt so šípkami v strede. */
.kz .dk-edit > .card.dl > :not(.plus){opacity:.4}
.kz .dk-edit > .card.dl{pointer-events:none;box-shadow:0 0 0 2px var(--red-soft),var(--tien-jemny)}
.kz .dk-edit .plus{visibility:hidden}
.kz .dk-x{position:absolute;top:10px;right:10px;z-index:3;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--red);background:var(--v-okne);color:var(--red);display:grid;place-items:center;padding:0;cursor:pointer}
.kz .dk-x svg.ik{width:15px;height:15px;stroke-width:2.6}
.kz .dk-ovl{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;display:flex;align-items:center;gap:8px;padding:4px;border-radius:999px;background:var(--v-okne);border:1.5px solid var(--line);box-shadow:var(--tien-jemny)}
.kz .dk-sp{width:34px;height:34px;border-radius:50%;border:0;background:var(--bg-soft);color:var(--ink-2);display:grid;place-items:center;padding:0;cursor:pointer}
.kz .dk-sp:disabled{opacity:.35;cursor:default}
.kz .dk-sp svg.ik{width:16px;height:16px}
.kz .dk-grip{width:44px;height:34px;border-radius:999px;background:var(--red-soft);color:var(--red-dk);display:grid;place-items:center;cursor:grab;touch-action:none;user-select:none}
.kz .dk-grip svg.ik{width:18px;height:18px;fill:currentColor;stroke:none}
.kz .dk-drag{z-index:30;box-shadow:0 18px 36px -14px rgba(78,58,44,.5);cursor:grabbing}
.kz .dk-drag .dk-grip{cursor:grabbing}
.kz .dk-cil{outline:3px solid var(--red);outline-offset:2px}
@media (prefers-reduced-motion:no-preference){
  .kz .dk-nova{animation:dkOtvor .45s cubic-bezier(.34,1.56,.64,1)}
  .kz .dk-wr:not(.dk-drag){transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
  .kz .dk-edit:not(.dk-drag) > .card.dl{animation:dkChvej 1.6s ease-in-out infinite}
}
@keyframes dkOtvor{from{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:none}}
@keyframes dkChvej{0%,100%{transform:rotate(0)}25%{transform:rotate(-.5deg)}75%{transform:rotate(.5deg)}}
@media(min-width:901px){
  .kz .dk-mriez{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* ==========================================================================
   Karta zvieraťa → Prvý rok (schválený návrh 20. 10. 2026)
   https://claude.ai/artifact/WY369mbLCQRURA3bXkepLh – triedy .kk .krok .faza .hlav .dvaStlpce z návrhu pod .kz (py- = naše).
   Dlaždica je v Prehľade prvá (aj na telefóne), obrazovka: hlavička, súhrn, kroky; od 901 px v dvoch stĺpcoch.
   ========================================================================== */
.kz .py-dl .bar,.kz .py-sum .bar{height:6px;border-radius:99px;background:var(--bg-soft);overflow:hidden}
.kz .py-dl .bar{margin:2px 0 4px}
.kz .py-dl .bar i,.kz .py-sum .bar i{display:block;height:100%;background:var(--cta)}
.kz .py-dl .py-p1,.kz .py-dl .py-p2{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.kz .py-dl .py-p1 b{color:var(--ink);font-weight:600}
.kz .py-ekran{display:flex;flex-direction:column;gap:12px}
.kz .py-hlav{display:flex;align-items:center;gap:8px;font-size:.88rem;font-weight:600;color:var(--ink-2)}
.kz .py-hlav .ik{width:36px;height:36px;border-radius:50%;background:var(--red-soft);color:var(--red);display:grid;place-items:center;flex:none}
.kz .py-hlav .ik svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.kz .py-kr{display:flex;flex-direction:column;gap:12px}
.kz .py-dalsi,.kz .py-auto{display:none}
.kz .py-dalsi .py-v{margin:8px 0 2px;font-size:1.75rem}
.kz .py-dalsi .pozn{font-size:.82rem}
.kz .py-auto .zoz{margin-top:6px}
.kz .py-auto .zoz > div{display:flex;gap:12px;padding:8px 0;border-top:1px solid var(--line)}
.kz .py-auto .zoz > div:first-child{border-top:0}
.kz .py-auto .zoz > div > span:first-child{flex:0 0 84px;font-weight:600;color:var(--ink-2)}
.kz .faza{font-family:var(--head);font-size:.74rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin:16px 0 2px}
.kz .faza:first-child{margin-top:0}
.kz .kk{width:28px;height:28px;border-radius:50%;flex:none;display:grid;place-items:center;border:1.5px solid var(--line-2);background:var(--v-okne);color:var(--ink-soft);padding:0;cursor:pointer}
.kz .kk svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.kz .kk.ok{background:var(--ok);border-color:var(--ok);color:#fff}
.kz .kk.next{background:var(--cta);border-color:var(--red);color:#fff;box-shadow:var(--cta-tien)}
.kz .kk.cv{background:var(--red-soft);border-color:var(--red);color:var(--red-dk)}
.kz .kk:disabled{cursor:default}
.kz .krok{display:flex;gap:12px;padding:10px 0;border-top:1px solid var(--line);align-items:flex-start}
.kz .krok:first-child,.kz .faza + .krok{border-top:0}
.kz .krok .t{flex:1;min-width:0;cursor:pointer}
.kz .krok .t b{display:block;font-weight:600;color:var(--ink);font-size:.88rem;line-height:1.3}
.kz .krok .t > span{display:block;font-size:.78rem;color:var(--ink-soft);line-height:1.4;margin-top:2px}
.kz .krok .dat{font-family:var(--text);font-size:.75rem;letter-spacing:0;text-transform:none;font-weight:600;color:var(--ink-2);white-space:nowrap;padding-top:2px}
.kz .krok.hotovo .t b{color:var(--ink-2)}
.kz .krok.hotovo .dat{color:var(--ok)}
.kz .krok.po .dat{color:var(--red-dk)}
.kz .krok.next{background:var(--red-soft);margin:6px -10px;padding:10px;border-radius:12px;border-top:0}
.kz .krok.next + .krok{border-top:0}
.kz .py-pils{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}
.kz .py-pils .pil{text-decoration:none;color:inherit}
.kz .py-pils .pil svg{width:12px;height:12px}
.kz .py-akcie{margin-top:0}
.kz .py-pil{display:flex;gap:8px}
.kz .py-p{display:flex;flex-direction:column;gap:12px}
.kz .py-dalsi .velke{font-family:var(--head);font-weight:600;line-height:1.1;letter-spacing:.01em}
@media(min-width:901px){
  .kz .py-ekran{display:grid;grid-template-columns:1.25fr 1fr;gap:12px 16px;align-items:start}
  .kz .py-hlav{grid-column:1/-1}
  .kz .py-kr{grid-column:1;grid-row:2}
  .kz .py-p{grid-column:2;grid-row:2}
  .kz .py-dalsi,.kz .py-auto{display:block}
  .kz .py-ekran > .kz-chyba{grid-column:1/-1}
}

/* ==========================================================================
   Prihlásenie a registrácia v Mojom účte (návrh A, schválený 13. 10. 2026)
   https://claude.ai/artifact/SNAhG57R7rrYLD4QegyKxk
   Okno má pôvodnú veľkosť 980 × min(720px, 92vh) (okno prihláseného sa 13. 10. 2026 zväčšilo na 1180 × 820, prihlásenie podľa majiteľa ostáva),
   takže sa pri prepínaní Prihlásiť sa / Vytvoriť účet nič nerozťahuje ani neroluje.
   Vľavo panel s výhodami a maskotom, vpravo prepínač a formulár. Na telefóne
   je z panela pruh hore. Flag `uc-vchod` nastavuje `vykresli()` v ucet.js.
   ========================================================================== */
.uc-modal.uc-vchod .uc-box{max-width:980px;padding:0;overflow:hidden;display:flex}
.uc-modal.uc-vchod .uc-x{position:absolute;right:16px;top:14px}
.uc-modal.uc-vchod #ucetTelo{flex:1 1 auto;min-width:0}
.uc-vch{display:grid;grid-template-columns:380px minmax(0,1fr);grid-template-rows:minmax(0,1fr);
  width:100%;height:min(720px, 92vh)}

/* ľavý panel */
.uc-vch-bok{position:relative;padding:34px 30px;background:var(--panel);border-right:1px solid var(--line);
  display:flex;flex-direction:column;gap:18px;overflow:hidden}
.uc-vch-eye{font-family:var(--head);font-size:12.5px;letter-spacing:.2em;color:var(--red);font-weight:600;
  text-transform:uppercase;display:flex;align-items:center;gap:10px}
.uc-vch-eye i{width:30px;height:3px;background:var(--red);display:block}
.uc-vch-nadpis{margin:0;font-family:var(--head);font-weight:600;font-size:30px;line-height:1.15;
  text-transform:uppercase;letter-spacing:.015em;color:var(--ink)}
.uc-vch-chipy{display:none}
.uc-vch-zoz{display:flex;flex-direction:column;gap:18px}
.uc-vch-v{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.45;color:var(--ink-2)}
.uc-vch-v b{display:block;font-size:14.5px;color:var(--ink)}
.uc-vch-ik{width:34px;height:34px;border-radius:50%;background:var(--red-soft);display:grid;place-items:center;
  flex:none;color:var(--red-dk)}
.uc-vch-ik svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round}
.uc-vch-zoz .uc-lista-mini{margin:-6px 6px 0 46px}
.uc-vch-maskot{position:absolute;left:18px;bottom:0;width:150px;height:auto;pointer-events:none}

/* pravá strana */
.uc-vch-hl{padding:34px 44px;display:flex;flex-direction:column;gap:14px;min-width:0;overflow-y:auto}
.uc-vch-hl > *{flex:none}
.uc-vch-hl .uc-prepinac{display:inline-flex;align-self:flex-start;gap:0;margin:0;padding:4px;
  border:0;border-radius:999px;background:#E2DACF;box-shadow:none}
.uc-vch-hl .uc-prepinac button{padding:9px 20px;border-radius:999px;font-size:14px;letter-spacing:.06em;
  color:var(--ink-2)}
.uc-vch-hl .uc-prepinac button.on{background:var(--v-okne);color:var(--ink);box-shadow:0 1px 2px rgba(78,58,44,.15)}
.uc-vch-hl .uc-vch-h1{margin:6px 0 0;font-family:var(--head);font-weight:600;font-size:26px;
  text-transform:uppercase;letter-spacing:.015em;color:var(--ink)}
.uc-vch-hl .uc-soc-riadok{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:10px}
.uc-vch-hl .uc-soc-tl{min-height:48px;font-size:15px}
.uc-vch-hl .uc-alebo{margin:0;font-size:12.5px;text-transform:none;letter-spacing:0}
.uc-vch-hl #ucetForm{display:flex;flex-direction:column;gap:14px}
.uc-vch-hl .uc-pole{margin:0;gap:6px}
.uc-vch-hl .uc-pole > span{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;
  color:var(--ink-soft)}
.uc-vch-hl .uc-mriezka{gap:10px}
.uc-vch-hl .uc-pole > span:has(.uc-vch-zab){display:flex;align-items:baseline}
.uc-vch-hl .uc-vch-zab{margin-left:auto;text-transform:none;letter-spacing:0;font-weight:600;font-size:12.5px;
  color:var(--red-dk)}
.uc-vch-hl .uc-vch-zab:hover{color:var(--red)}
.uc-vch-hl .uc-suhlas{margin:0;font-size:12.5px;line-height:1.5;color:var(--ink-soft)}
.uc-vch-hl .uc-suhlas a{color:var(--red-dk)}
.uc-vch-hl .uc-akcie{margin:0}
/* Tlačidlá: červené CTA a sklenené druhé tlačidlo – hodnoty z návrhu. */
.uc-modal.uc-vchod .uc-box .uc-vch-hl #ucetForm .uc-akcie .btn-red{
  padding:15px;border:0;border-radius:6px;font-size:16px;letter-spacing:.09em;background:var(--cta);
  box-shadow:var(--cta-lesk), 0 10px 20px -12px rgba(140,26,26,.75)}
.uc-modal.uc-vchod .uc-box .uc-vch-hl #ucetForm .uc-akcie .btn-red:hover{filter:brightness(1.06)}
.uc-vch-bez{all:unset;box-sizing:border-box;display:block;width:100%;cursor:pointer;text-align:center;padding:12px;
  border-radius:6px;font-family:var(--text);font-size:14px;font-weight:600;line-height:1.3;color:var(--ink);
  background:rgba(255,255,255,.72);border:1px solid rgba(78,58,44,.22);
  transition:background .16s,box-shadow .16s}
.uc-vch-bez:hover{background:rgba(255,255,255,.9);box-shadow:var(--tien-jemny)}
.uc-vch-bez:focus-visible{outline:2px solid var(--red);outline-offset:2px}
/* Hláška má svoje miesto stále – chyba ani „odkaz je na ceste" nepohne rozložením. */
.uc-vch-hl .uc-msg{margin:0;min-height:38px;font-size:.84rem;line-height:1.45;text-align:center}
.uc-vch-hl .uc-najdi,.uc-vch-pata{margin:auto 0 0;font-size:13px;line-height:1.5;color:var(--ink-soft);text-align:center}
.uc-vch-hl .uc-najdi .uc-lnk,.uc-vch-pata .uc-lnk{display:inline;margin:0;font-size:inherit;font-weight:600;color:var(--red-dk)}
.uc-vch-hl .uc-najdi .uc-lnk:hover,.uc-vch-pata .uc-lnk:hover{color:var(--red)}
.uc-vch-hl .najdi-form{text-align:left}

/* telefón a úzke okno: pruh s maskotom hore, pod ním prepínač a formulár */
@media(max-width:900px){
  .uc-modal.uc-vchod .uc-box{max-width:620px;display:block;overflow-y:auto}
  .uc-modal.uc-vchod .uc-x{top:14px;right:14px;z-index:4}
  .uc-vch{display:block;height:auto}
  .uc-vch-bok{display:block;min-height:150px;padding:18px 18px 14px;border-right:0;border-bottom:1px solid var(--line)}
  .uc-vch-eye{margin:0 0 8px 112px;padding-right:34px;font-size:11.5px}
  .uc-vch-eye i{display:none}
  .uc-vch-nadpis{margin:0 0 8px 112px;padding-right:34px;font-size:21px}
  .uc-vch-chipy{display:flex;flex-wrap:wrap;gap:5px;margin-left:112px}
  .uc-vch-chipy span{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;
    background:var(--v-okne);box-shadow:inset 0 0 0 1px var(--line);font-size:12px;font-weight:600;
    color:var(--ink-2);white-space:nowrap}
  .uc-vch-zoz{display:none}
  .uc-vch-maskot{left:8px;width:104px}
  .uc-vch-hl{padding:16px 18px 22px;gap:10px;overflow:visible}
  .uc-vch-hl .uc-prepinac{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-self:stretch}
  .uc-vch-hl .uc-prepinac button{padding:10px 0;text-align:center}
  .uc-vch-hl .uc-vch-h1{display:none}
  .uc-vch-hl #ucetForm{gap:10px}
  .uc-vch-hl .uc-pole input{font-size:16px}
  .uc-vch-hl .uc-najdi,.uc-vch-pata{margin-top:6px}
}
@media(max-width:600px){
  .uc-modal.uc-vchod{padding:10px}
  .uc-modal.uc-vchod .uc-box{max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px)}
  /* Meno a telefón vedľa seba aj na telefóne (návrh), nie pod sebou ako inde v účte. */
  .uc-vch-hl .uc-mriezka{grid-template-columns:repeat(2,minmax(0,1fr))}
  .uc-vch-hl .uc-pole input{padding:11px 14px}
  /* Google a Apple pod sebou na celú šírku – vedľa seba sa text zalomil (majiteľ 14. 10. 2026) */
  .uc-vch-hl .uc-soc-riadok{grid-template-columns:1fr}
}

/* ---------- kedy si to vyzdvihnem (pilulky a kalendár dňa) – spoločné: košík (rezervacia.js) aj Zmena prevzatia ----------
   Tri pilulky a pod „Iný deň" desať najbližších otvorených dní. */
.vyzdvih-pilulky{display:flex;flex-wrap:wrap;gap:7px}
.vyzdvih-pilulky button{
  all:unset;box-sizing:border-box;cursor:pointer;
  padding:9px 16px;border:1.5px solid var(--line-2);border-radius:999px;
  background:var(--v-okne);color:var(--ink-2);
  font-family:var(--text);font-size:.85rem;font-weight:600;
  transition:border-color .18s, color .18s, background .18s}
.vyzdvih-pilulky button:hover{border-color:var(--red);color:var(--red-dk)}
.vyzdvih-pilulky button.on{
  border-color:var(--red);color:var(--red-dk);background:var(--red-soft)}

.vyzdvih-kal{
  display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:10px}
.vyzdvih-kal[hidden]{display:none}
.vyzdvih-kal button{
  all:unset;box-sizing:border-box;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:1px;
  padding:8px 2px;border:1.5px solid var(--line);border-radius:var(--r);
  background:var(--v-okne);color:var(--ink-2);text-align:center;
  font-family:var(--text);font-size:.68rem;font-weight:600;
  transition:border-color .18s, color .18s, background .18s}
.vyzdvih-kal button span{font-size:.62rem;color:var(--ink-soft);text-transform:uppercase;
  letter-spacing:.04em}
.vyzdvih-kal button b{font-family:var(--head);font-size:.82rem;line-height:1.1}
.vyzdvih-kal button i{font-style:normal;font-size:.58rem;color:var(--ink-soft)}
.vyzdvih-kal button:hover{border-color:var(--red);color:var(--red-dk)}
.vyzdvih-kal button.on{
  border-color:var(--red);color:var(--red-dk);background:var(--red-soft)}
.vyzdvih-kal button.on span,.vyzdvih-kal button.on i{color:var(--red-dk)}

@media(max-width:560px){
  /* Na úzkom telefóne sa päť stĺpcov nezmestí čitateľne. */
  .vyzdvih-kal{grid-template-columns:repeat(4,1fr)}
}

/* ---------- Zmena prevzatia: dovoz <-> vyzdvihnutie (rezervacia-detail.js) ----------
   Schválený návrh 16. 10. 2026: https://claude.ai/artifact/RQh1zELZUT8Zq1sT2PAuAc – hodnoty 1:1 z neho.
   Nové je len rámček `.mr-zmena` (biely panel ako `.mr-qr`, jemný tieň) a súhrn `.zm-sum`; polia, pilulky dňa, kalendár,
   dodacie adresy, mapa, cena a platba majú recept z košíka Hafo Expres (rezervacia.css) – tu pod `.mr-zmena`, lebo
   stránka objednávky `rezervacia.css` nenačítava. Pilulky a kalendár dňa (`.vyzdvih-*`) sú spoločné pre košík aj túto stránku. */
.mr-spolu.mala{padding:10px 20px;margin-top:0}
.mr-spolu.mala span{font-size:.9rem}
.mr-spolu.mala b{font-size:1.3rem}
.mr-zrus-tlac{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}
.mr-zrus-akcie{justify-content:center}
.mr-sklo-tl{gap:8px}
.mr-sklo-tl svg.zm-ik{width:16px;height:16px}
.mr-ok-pas{display:flex;align-items:center;gap:6px;padding:11px 14px;border-radius:12px;background:var(--ok-plocha);border:1.5px solid var(--ok);
  font-size:13px;line-height:1.4;color:var(--ok);font-weight:600}
svg.zm-ik{flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.mr-ok-pas svg.zm-ik{width:16px;height:16px;stroke-width:2.2}
.mr-zmena{background:var(--v-okne);box-shadow:var(--tien-jemny);border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:14px;min-width:0}
.mr-zmena .zm-hl small{font-size:.69rem;letter-spacing:.14em;text-transform:uppercase;color:var(--red-dk);font-weight:700}
.mr-zmena .zm-hl strong{display:block;font-family:var(--head);font-size:1.3rem;font-weight:600;color:var(--ink);line-height:1.15;margin-top:2px;text-transform:uppercase;letter-spacing:.03em}
.mr-zmena .zm-tl{display:flex;flex-direction:column;gap:8px}
.mr-zmena .zm-tl .btn,.mr-zmena .zm-tl .mr-sklo-tl{width:100%;justify-content:center;white-space:normal}
.zm-sum{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:12px;background:var(--bg-soft)}
.zm-sum.cv{background:var(--red-soft)}
.zm-sum .r{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:14px;color:var(--ink-2)}
.zm-sum .r b{font-weight:600;color:var(--ink);white-space:nowrap}
.zm-sum .r.pre b{text-decoration:line-through;color:var(--ink-soft);font-weight:500}
.zm-sum .r.spolu{padding-top:6px;margin-top:2px;border-top:1px solid var(--line)}
.zm-sum .r.spolu span{font-family:var(--head);text-transform:uppercase;letter-spacing:.06em;font-size:.95rem;font-weight:600}
.zm-sum .r.spolu b{font-family:var(--head);font-size:22px}
.mr-zmena .ex-pole{display:flex;flex-direction:column;gap:6px;position:relative}
.mr-zmena .ex-lbl{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.mr-zmena .ex-lbl em{font-style:normal;text-transform:none;letter-spacing:0;font-weight:500;color:var(--ink-soft)}
.mr-zmena .ex-pozn{font-size:12.2px;line-height:1.5;color:var(--ink-soft);margin:0}
.mr-zmena .vyzdvih-kal{margin-top:8px}
.dod-zoznam{display:flex;flex-direction:column;gap:10px}
.dod-riadok{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:12px;padding:12px;border:1.5px solid var(--line-2);border-radius:14px;background:var(--v-okne);
  transition:border-color .18s, background .18s}
.dod-riadok:hover{border-color:var(--red)}
.dod-riadok:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.dod-radio{flex:none;width:20px;height:20px;box-sizing:border-box;border-radius:999px;border:2px solid var(--line-2);background:var(--v-okne)}
.dod-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.dod-t b{font-size:14px;font-weight:600;color:var(--ink);line-height:1.4}
.dod-t span{font-size:12.5px;color:var(--ink-soft);line-height:1.4}
.dod-riadok.on{border-color:var(--red);background:var(--red-soft)}
.dod-riadok.on .dod-radio{border:6px solid var(--red)}
.dod-riadok.on .dod-t b{color:var(--red-dk)}
.ex-kam{display:flex;align-items:center;gap:8px;padding:11px 14px;border-radius:999px;background:var(--v-okne);border:1px solid var(--line);box-shadow:var(--tien-jemny);font-size:14px;color:var(--ink-soft)}
.ex-kam svg.zm-ik{width:17px;height:17px;color:var(--red)}
.ex-kam input{all:unset;box-sizing:border-box;flex:1;min-width:0;font:inherit;color:var(--ink)}
.ex-kam input::placeholder{color:var(--ink-soft)}
.ex-kam:focus-within{border-color:var(--red)}
.ex-mapa{position:relative;height:210px;border-radius:14px;overflow:hidden;background:#EFE9E1;border:1px solid var(--line)}
@media (min-width:700px){.ex-mapa{height:240px}}
.ex-mapa .zm-mapa{position:absolute;inset:0}
.ex-mapa .ex-bezmapy{position:absolute;inset:0;display:grid;place-items:center;padding:16px;text-align:center;font-size:.85rem;color:var(--ink-soft)}
.ex-mapa-veta{position:absolute;left:10px;top:10px;z-index:2;max-width:calc(100% - 20px);margin:0;padding:6px 12px;border-radius:999px;background:var(--sklo);border:1px solid var(--sklo-ram);
  -webkit-backdrop-filter:var(--sklo-blur);backdrop-filter:var(--sklo-blur);box-shadow:0 4px 12px -6px rgba(78,58,44,.45);font-size:12.5px;font-weight:600;line-height:1.35;color:var(--ink);pointer-events:none}
.ex-mapa .btn.mp{position:absolute;right:10px;bottom:10px;z-index:2;gap:6px;padding:8px 13px;border-radius:999px}
.ex-mapa .btn.mp svg.zm-ik{width:15px;height:15px}
.zm-pin svg{display:block;width:38px;height:49px}
.zm-pin path{fill:var(--red);stroke:#fff;stroke-width:2}
.ex-adresa{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--bg-soft)}
.ex-adresa svg.zm-ik{color:var(--red);width:18px;height:18px}
.ex-adresa > span{flex:1;font-size:14px;line-height:1.4;color:var(--ink)}
.ex-adresa > span > span{display:block;font-size:12px;color:var(--ink-soft)}
.ex-cena-obal{display:flex;flex-direction:column;gap:4px}
.ex-cena-r{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.ex-cena-r span{font-size:14px;color:var(--ink-2)}
.ex-cena-r b{font-family:var(--head);font-size:22px;font-weight:600;color:var(--ink)}
.mr-zmena .ex-info{display:flex;gap:10px;padding:11px 12px;border-radius:12px;background:var(--bg-soft);font-size:13px;line-height:1.5;color:var(--ink-2)}
.mr-zmena .ex-info svg.zm-ik{color:var(--ink-soft);margin-top:1px;width:18px;height:18px}
.ex-chyba{display:flex;align-items:center;gap:8px;margin:0;padding:7px 12px 7px 8px;border-radius:10px;background:var(--red-soft);color:var(--red-dk);font-size:.8rem;font-weight:600;line-height:1.35}
.ex-chyba[hidden]{display:none}
.ex-chyba::before{content:"!";display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border-radius:999px;background:var(--red);color:var(--bg);font-size:.74rem;font-weight:800}
.plat{display:flex;flex-direction:column;gap:6px;position:relative}
.plat-v{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;border:1.5px solid var(--line-2);border-radius:12px;background:var(--v-okne);
  font-size:14px;font-weight:600;color:var(--ink);transition:border-color .18s, background .18s}
.plat-v:hover{border-color:var(--red)}
.plat-v:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.plat-v.on{border-color:var(--red);background:var(--red-soft);color:var(--red-dk)}
.plat-v.nie{opacity:.45;cursor:default}
.plat-v.nie:hover{border-color:var(--line-2)}
.plat-v small{margin-left:auto;font-size:11.5px;font-weight:600;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em}
.plat-v .kruh{width:18px;height:18px;border-radius:50%;border:2px solid var(--line-2);flex:none;box-sizing:border-box}
.plat-v.on .kruh{border:5px solid var(--red)}
.plat-bublina{position:absolute;left:0;bottom:calc(100% + 8px);z-index:6;display:flex;align-items:center;gap:8px;margin:0;padding:7px 12px 7px 8px;border-radius:10px;background:var(--red-soft);color:var(--red-dk);
  font-size:.8rem;font-weight:600;line-height:1.35;white-space:nowrap;box-shadow:0 10px 24px -12px rgba(78,58,44,.45)}
.plat-bublina::before{content:"!";display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border-radius:999px;background:var(--red);color:var(--bg);font-size:.74rem;font-weight:800}
.plat-bublina::after{content:"";position:absolute;left:22px;top:100%;border:7px solid transparent;border-top-color:var(--red-soft)}
.plat.s-bublinou .plat-v:not(.nie){border-color:var(--red)}
.pozn-pole{all:unset;display:block;box-sizing:border-box;width:100%;padding:10px 12px;border:1.5px solid var(--line);border-radius:11px;background:var(--v-okne);font-size:.9rem;line-height:1.4;color:var(--ink);min-height:44px;white-space:pre-wrap}
.pozn-pole:focus{border-color:var(--red)}
.mr-sklo-tl:focus-visible,.mr-zmena .btn:focus-visible{outline:2px solid var(--red);outline-offset:2px}

/* Karta zvieraťa – stupnica váhy podľa plemena a denná dávka (schválený návrh 17. 10. 2026, v3):
   dráha, zelené pásmo normy, pilulka ako ukazovateľ; text „X g denne“ v dlaždici Krmivo. */
.kz .vs{position:relative;height:30px;margin:4px 2px 0}.kz .card.dl .vs-p{height:22px;padding:0 7px;font-size:.66rem;top:5px}
.kz .vs-d{position:absolute;left:0;right:0;top:14px;height:6px;border-radius:99px;background:var(--bg-soft)}
.kz .vs-n{position:absolute;top:14px;height:6px;border-radius:99px;background:var(--ok-plocha);box-shadow:inset 0 0 0 1px var(--ok)}
.kz .vs-p{position:absolute;top:5px;transform:translateX(-50%);white-space:nowrap;box-shadow:0 2px 6px rgba(78,58,44,.22)}
.kz .vs-p.vpravo{transform:translateX(-88%)}
.kz .vs-p.vlavo{transform:translateX(-12%)}
.kz .vs-o{display:flex;justify-content:space-between;font-size:.68rem;color:var(--ink-soft);margin:2px 2px 0;font-variant-numeric:tabular-nums}
.kz .vs-o b{color:var(--ok);font-weight:600}
.kz .vn-tip{display:grid;gap:8px;margin-top:12px}
.kz .vn-tip div{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;font-size:.88rem;line-height:1.45;color:var(--ink-2)}
.kz .vn-tip i{width:28px;height:28px;border-radius:99px;background:var(--red-soft);color:var(--red);display:grid;place-items:center;font-style:normal}.kz .vn-tip i svg{width:16px;height:16px}
.kz .vn-tip b{color:var(--ink)}
.kz .kv-dav{display:block;font-size:.78rem;color:var(--ink-soft);margin-top:4px;line-height:1.4}
.kz .kv-dav b{color:var(--ink);font-weight:700}
.kz .kvA .kv-t .kv-dav{font-size:.72rem}
.kz .kvA.ma-dav .kv-r .pil{display:none}
.kz .kv-bl{display:none}
@media(min-width:901px){
  .kz .kvA .kv-t .kv-dav{display:none}
  .kz .kv-bl{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
  .kz .kv-bl .kv-dav{margin-top:0;font-size:.78rem}
}
/* Prechod na nové krmivo (návrh 18. 10. 2026, https://claude.ai/artifact/PEKi8S64FuXiswnBZeEXNw): karta na obrazovke Krmivo
   (4 misky zhora, béžová = staré, červená = nové) a riadok .pr-mini v dlaždici Krmivo namiesto „Objednať znova“. */
.kz .pr-r{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
.kz .pr-f{display:grid;justify-items:center;gap:6px;padding:10px 4px 8px;border-radius:14px;border:1px solid transparent}
.kz .pr-f.dnes{background:var(--red-soft);border-color:var(--red)}
.kz .pr-f.hotovo{opacity:.55}
.kz .pr-m{width:46px;height:46px;border-radius:50%;box-shadow:inset 0 0 0 3px #fff,0 0 0 1px var(--line-2),0 3px 8px rgba(78,58,44,.18)}
.kz .pr-d{font:600 .72rem/1.1 Oswald,Impact,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:var(--ink)}
.kz .pr-dn{margin-top:12px;font-size:.92rem;color:var(--ink-2)}
.kz .pr-dn b{color:var(--ink)}
.kz .pr-l{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:.72rem;color:var(--ink-soft)}
.kz .pr-l i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.kz .pr-mini{display:inline-flex;gap:4px;margin-right:8px;vertical-align:-3px}
.kz .pr-mini i{width:14px;height:14px;border-radius:50%;box-shadow:inset 0 0 0 1.5px #fff,0 0 0 1px var(--line-2)}
.kz .pr-mini i.ho{opacity:.45}
.kz .pr-mini i.dn{width:18px;height:18px;margin-top:-2px;box-shadow:inset 0 0 0 2px #fff,0 0 0 1.5px var(--red)}
.kz .vs-o span,.kz .vs-o b{white-space:nowrap}
.kz .vs-o b{overflow:hidden;text-overflow:ellipsis;min-width:0;padding:0 4px}

/* Lišta „Do e-shopu“ na úvodnej stránke (len mobil; návrh A, 18. 10. 2026,
   https://claude.ai/artifact/CZC2Zz2ebEQexCSSXw5TKC). Sklo a tieň ako spodná lišta katalógu
   (.mlista), vnútri jediné červené tlačidlo. Hero tlačidlo sa na mobile skrýva,
   chat sa posúva nad lištu cez --fab-chat. */
.uvod-lista{display:none}
.uvod-lista .btn svg{width:20px;height:20px;flex:0 0 auto}
@keyframes pulz-cerv{
  0%{box-shadow:0 0 0 0 rgba(225,33,31,.45)}
  55%{box-shadow:0 0 0 14px rgba(225,33,31,0)}
  100%{box-shadow:0 0 0 0 rgba(225,33,31,0)}
}
@media(max-width:900px){
  .hero-actions .btn-pulz{display:none}
  body.uvod .uvod-lista{
    display:block;position:fixed;left:0;right:0;bottom:0;z-index:140;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
    background:var(--lista-plocha);
    -webkit-backdrop-filter:var(--sklo-lista-blur);backdrop-filter:var(--sklo-lista-blur);
    border-top:1px solid var(--sklo-ram);box-shadow:var(--sklo-tien)}
  body.uvod .uvod-lista .btn{width:100%;min-height:50px}
  body.uvod .uvod-lista .btn-pulz::after{animation-name:pulz-cerv}
  body.uvod{padding-bottom:calc(70px + env(safe-area-inset-bottom, 0px));
    --fab-chat:calc(70px + 12px + env(safe-area-inset-bottom, 0px))}
}
@media (max-width:900px) and (prefers-reduced-motion:reduce){
  body.uvod .uvod-lista .btn-pulz::after{animation:none}
}

/* Úvodná stránka, počítač (nad 1000 px; návrh 18. 10. 2026,
   https://claude.ai/artifact/CZC2Zz2ebEQexCSSXw5TKC): „Do e-shopu“ je v menu stále
   červené tlačidlo s košíkom. Sklenená pilulka okolo menu sa objaví až pri
   rolovaní, ako na ostatných stránkach (majiteľ 18. 10. 2026 večer). */
.nav-hot svg{display:none}

/* Zmazanie zvieraťa v okne maznáka (majiteľ 18. 10. 2026): Uložiť sa na svojom mieste rozdelí na Áno / Nie v tej istej
   šírke (šírku nastaví ucet.js); polovice sa rozostúpia zo stredu. Zmazať sa zmení na „Naozaj zmazať?“. */
.uc-zmaz-dvoj{display:inline-flex;gap:8px;max-width:100%;flex:none}
.uc-zmaz-dvoj .btn{flex:1 1 0;min-width:0;margin:0}
@media (prefers-reduced-motion:no-preference){
  .uc-zmaz-dvoj .btn[data-zmaz-ano]{animation:zmazL .38s cubic-bezier(.34,1.56,.64,1) both}
  .uc-zmaz-dvoj .btn[data-zmaz-nie]{animation:zmazP .38s cubic-bezier(.34,1.56,.64,1) both}
}
@keyframes zmazL{from{transform:translateX(50%) scaleX(.5);opacity:.4}to{transform:none;opacity:1}}
@keyframes zmazP{from{transform:translateX(-50%) scaleX(.5);opacity:.4}to{transform:none;opacity:1}}
/* Graf v dlaždici Váha je na počítači širší (viewBox sa zväčší ~1,7×) – písmo osi a hodnoty menšie, aby nebolo obrie. */
@media (min-width:901px){.kz .card.dl .graf text{font-size:6px}.kz .card.dl .graf text.v{font-size:7px}}

/* Môj účet → Moje zvieratá: načítanie zvierat z registra CRSZ a okno s výberom (19. 10. 2026). Prepínače riadkov sú `.uc-prepnut`. */
.uc-crsz{display:flex;flex-direction:column;gap:2px;margin-bottom:14px}
.uc-crsz-t{display:flex;flex-direction:column;gap:2px;font-size:.88rem}
.uc-crsz-t span{color:var(--ink-soft);font-size:.82rem}
.uc-crsz .uc-msg:empty{display:none}
.uc-crsz-zoz{display:flex;flex-direction:column;gap:8px;overflow-y:auto;max-height:52vh;padding:2px}
.uc-crsz-zoz .uc-prepnut{margin-top:0}
/* Môj účet → Moje zvieratá: banner „Údaje od veterinára“ (B: výrazný, C: tichý riadok, keď všetko sedí) – návrh 20. 10. 2026 */
.rg-b{position:relative;grid-column:1/-1;margin:0 0 14px;padding:20px 220px 20px 22px;overflow:hidden;min-height:176px;
  background:linear-gradient(120deg,#FFFFFF 0%,#FCF5EF 55%,var(--red-soft) 100%)}
.rg-b::before{content:"";position:absolute;right:-60px;top:-70px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(225,33,31,.10),rgba(225,33,31,0) 70%)}
.rg-b .rg-kicker{display:inline-flex;align-items:center;gap:6px;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--red-dk)}
.rg-b .rg-kicker::before{content:"";width:18px;height:2px;background:var(--red);border-radius:2px}
.rg-b h4{margin:6px 0 4px;font-family:var(--head);text-transform:uppercase;letter-spacing:.02em;font-size:1.5rem;line-height:1.1;color:var(--ink)}
.rg-b p{margin:0;font-size:.88rem;color:var(--ink-2);max-width:46ch}
.rg-b .rg-medzera{height:14px}
.rg-b .rg-zv{display:flex;gap:8px;margin:12px 0 14px;flex-wrap:wrap}
.rg-b .rg-zv span{position:relative;display:inline-flex;align-items:center;gap:7px;padding:4px 12px 4px 4px;border-radius:999px;background:var(--v-okne);border:1px solid var(--line);box-shadow:var(--tien-jemny);font-size:.8rem;font-weight:600;color:var(--ink)}
.rg-b .rg-zv span em{width:28px;height:28px;border-radius:50%;background:linear-gradient(160deg,#F5E7D8,#E5D2BE);display:grid;place-items:center;overflow:hidden;font-style:normal}
.rg-b .rg-zv span em svg{width:26px;height:26px}
.rg-b .rg-zv span b{position:absolute;left:20px;bottom:-2px;width:14px;height:14px;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center;border:2px solid #fff;font-size:.7rem;line-height:1}
.rg-b .rg-zv span b svg{width:8px;height:8px;fill:none;stroke:currentColor;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}
.rg-b .rg-zv span.nove b{background:var(--red)}
.rg-b .rg-zv span em .uc-plem-ik{width:24px;height:24px;margin:0;display:block;background:var(--zlato-ink);-webkit-mask:var(--plemeno) center/contain no-repeat;mask:var(--plemeno) center/contain no-repeat}
.rg-b .rg-zv span em .uc-plem-ik::before{display:none}
.rg-b .rg-zv span em .uc-druh-ik{width:24px;height:24px}
.rg-b .rg-zv span em .uc-druh-ik svg{width:22px;height:22px}
.rg-b .rg-tl{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.rg-b .rg-tl small{font-size:.74rem;color:var(--ink-soft)}
/* Maskot je vždy celý (nič neodrezané): výšku berie z karty, nie zo šírky (majiteľ 20. 10. 2026: useknuté uši). */
.rg-b .rg-mask{position:absolute;right:18px;top:12px;bottom:12px;height:calc(100% - 24px);width:190px;object-fit:contain;object-position:left bottom;transform:scaleX(-1)}
.rg-b .btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;margin-right:6px;vertical-align:-2px}
.rg-msg:empty{display:none}
.rg-b .rg-msg{margin-top:8px}
.rg-c{grid-column:1/-1;display:flex;align-items:center;gap:10px;margin:14px 0 0;padding:10px 14px;border-radius:12px;border:1px dashed var(--line-2);background:rgba(255,255,255,.45);font-size:.84rem;color:var(--ink-2)}
.rg-c > svg{width:18px;height:18px;fill:none;stroke:var(--ok);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.rg-c span{flex:1;min-width:0}
.rg-c span small{font-size:inherit;color:var(--ink-soft)}
.rg-c button{border:0;background:none;color:var(--red-dk);font-weight:700;font-size:.82rem;cursor:pointer;display:inline-flex;align-items:center;gap:5px;padding:4px 0}
.rg-c button:disabled{opacity:.5;cursor:default}
.rg-c button svg{stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}
@media (max-width:700px){.rg-b{padding:18px 16px 16px}.rg-b .rg-mask{position:static;display:block;width:120px;height:auto;margin:-6px 0 6px auto;float:right}.rg-b h4{font-size:1.25rem}}

/* Moje výdavky – návrh KFbJ4bKV54cL2GoRo9731x (Môj účet → Moje výdavky, ucet.js castVydavky; prvky: uc-karta, uc-pole, uc-pilulky, btn).
   Mobilný @media je až za desktopovými pravidlami. */
.uc-vd-hl{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:0 104px 16px 0}
.uc-vd-hl .uc-hl{flex:1;min-width:0;margin:0}
.uc-vd-hl-tl{flex:none}
.uc-vd .uc-pilulky.je-seg{margin-bottom:12px}
.uc-ucet.uc-za-sam{grid-template-columns:minmax(0,1fr)}
.uc-vd-seg{display:flex;background:var(--bg-soft);border:1px solid var(--line);border-radius:12px;padding:3px;gap:2px;margin-bottom:12px}
.uc-vd-seg button{flex:1;height:34px;border:0;border-radius:9px;background:none;font:600 13px var(--text);color:var(--ink-2);cursor:pointer;transition:background .16s,color .16s}
.uc-vd-seg button:hover{color:var(--ink)}
.uc-vd-seg button[aria-pressed="true"]{background:var(--v-okne);box-shadow:var(--tien-jemny);color:var(--ink)}
.uc-vd-seg button:focus-visible{outline:2.5px solid var(--red);outline-offset:2px}
.uc-vd .uc-karta{margin-bottom:12px}
.uc-vd .uc-karta h4{font-size:.74rem;justify-content:flex-start;gap:8px}
.uc-vd .uc-karta h4 svg{width:18px;height:18px;flex:none;color:var(--red);fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.uc-vd-sumy{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}
.uc-vd-sumy .uc-karta{margin:0}
.uc-vd-sum h4{margin-bottom:0}
.uc-vd-velke{font-family:var(--head);font-weight:600;font-size:34px;line-height:1;color:var(--ink);margin-top:8px}
.uc-vd-velke small{font-size:16px;font-weight:500}
.uc-vd-sum .uc-jemne{margin:4px 0 0;font-size:13px}
.uc-vd .graf{display:block;width:100%;height:auto}
.uc-vd .graf text{font-family:var(--text);font-size:11px;fill:var(--ink-2)}
.uc-vd .graf .hod{font-weight:600;fill:var(--ink)}
.uc-vd .graf .os.teraz{font-weight:700;fill:var(--ink)}
.uc-vd .graf .z{stroke:#D9D0C5;stroke-width:1}
.uc-vd .graf .m{stroke:#EDE7E3;stroke-width:1;stroke-dasharray:3 3}
.uc-vd .graf .b-n{fill:#EE7C77}
.uc-vd .graf .b-t{fill:var(--red)}
.uc-vd .graf .b-b{fill:#D9D0C5}
.uc-vd-graf{margin-top:10px}
.uc-vd .uc-vd-tel,.uc-vd .uc-vd-tel-tl{display:none}
.uc-vd .rozd{display:flex;height:16px;border-radius:99px;overflow:hidden;gap:2px;margin:10px 0 12px}
.uc-vd .rozd i{display:block;height:100%}
.uc-vd .leg>div{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:14px}
.uc-vd .leg>div:first-child{border-top:0}
.uc-vd .leg .bd{width:12px;height:12px;border-radius:4px;flex:none}
.uc-vd .leg .n{flex:1;min-width:0}
.uc-vd .leg b{font-weight:600}
.uc-vd .leg .p{width:46px;text-align:right;color:var(--ink-soft);font-size:13px}
.uc-vd .leg .s{width:70px;text-align:right}
.uc-vd-dvojstlpec{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.uc-vd-r{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.uc-vd .uc-karta h4 + .uc-vd-r{border-top:0}
.uc-vd-ik{width:36px;height:36px;border-radius:50%;background:var(--red-soft);color:var(--red);display:grid;place-items:center;flex:none}
.uc-vd-ik svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.uc-vd-t{flex:1;min-width:0}
.uc-vd-t b{display:block;font-size:14px;font-weight:600;overflow-wrap:anywhere}
.uc-vd-t span{display:block;font-size:12.5px;color:var(--ink-soft)}
.uc-vd-s{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.uc-vd-s em{font-family:var(--head);font-style:normal;font-weight:600;font-size:15px;letter-spacing:.02em;white-space:nowrap}
.uc-vd-s .uc-lnk{font-size:12px}
.uc-vd-vsetky{display:block;margin:10px auto 0}
.uc-vd-form{margin-bottom:12px}
.uc-vd-dva{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.uc-vd-suma{position:relative}
.uc-vd-suma input{padding-right:34px}
.uc-vd-suma i{position:absolute;right:15px;bottom:14px;font-style:normal;color:var(--ink-soft);pointer-events:none}
.uc-vd-datum{width:100%;box-sizing:border-box;display:flex;align-items:center;gap:8px;padding:13px 15px;border:1px solid var(--line);border-radius:11px;
  font:inherit;font-size:.95rem;background:var(--v-okne);color:var(--ink);box-shadow:var(--tien-jemny);cursor:pointer;text-align:left;transition:border-color .16s,box-shadow .16s}
.uc-vd-datum b{flex:1;font-weight:500}
.uc-vd-datum svg{width:16px;height:16px;flex:none;color:var(--ink-soft);fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.uc-vd-datum.on{border-color:var(--red);box-shadow:0 0 0 3px rgba(225,33,31,.12)}
.uc-vd-akcie{display:flex;justify-content:center;gap:10px;margin-top:8px}
.uc-vd-akcie .btn{min-width:150px}
.uc-vd .kal{border:1.5px solid var(--line);background:var(--v-okne);border-radius:16px;padding:12px;box-shadow:var(--tien-jemny);margin-bottom:12px}
.uc-vd .kal-h{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.uc-vd .kal-h b{flex:1;text-align:center;font-family:var(--head);text-transform:uppercase;letter-spacing:.06em;font-size:.95rem}
.uc-vd .kal-h .sip{width:34px;height:34px;padding:0;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--line);background:var(--v-okne);color:var(--ink-2);cursor:pointer}
.uc-vd .kal-h .sip svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.uc-vd .kal-h .sip:disabled{opacity:.4;cursor:default}
.uc-vd .kal-m{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}
.uc-vd .kal-m .dn{font-size:.68rem;font-weight:700;color:var(--ink-soft);text-transform:uppercase;padding:4px 0}
.uc-vd .kal-m button{height:38px;padding:0;border:1.5px solid var(--line);border-radius:var(--r);background:var(--v-okne);color:var(--ink-2);font:600 .86rem var(--text);cursor:pointer;display:grid;place-items:center;transition:border-color .18s,color .18s,background .18s}
.uc-vd .kal-m button:hover{border-color:var(--red);color:var(--red-dk)}
.uc-vd .kal-m button.dnes{box-shadow:inset 0 0 0 1.5px var(--red);color:var(--red-dk)}
.uc-vd .kal-m button.vyb{border-color:var(--red);color:var(--red-dk);background:var(--red-soft)}
.uc-vd .kal-m button.nie{opacity:.45;cursor:default}
.uc-vd .kal-m button.nie:hover{border-color:var(--line);color:var(--ink-2)}
@media(max-width:1100px){
  .uc-vd-dvojstlpec{grid-template-columns:1fr}
}
@media(max-width:900px){
  .uc-vd .uc-vd-pc{display:none}
  .uc-vd svg.uc-vd-tel{display:block}
  .uc-vd .uc-vd-tel-tl{display:block;margin-bottom:12px}
  .uc-vd .uc-vd-tel-tl .btn{width:100%}
  .uc-vd-sumy{grid-template-columns:1fr 1fr}
  .uc-vd .uc-vd-len-pc{display:none}
  .uc-vd .uc-vd-siroka{grid-column:1/-1}
  .uc-vd-akcie{flex-direction:column}
  .uc-vd-akcie .btn{width:100%}
}

/* ===== Karta zvieraťa: QR štítok na obojok (schválený návrh 21. 10. 2026, artifact XgTr2TUj5oXTe4uJEtz5PY) ===== */
.kz .stk-dl .stk-pil{position:absolute;top:10px;right:10px}
.kz .stk-dl:has(.stk-pil) .hl2{padding-right:0}
.kz .stk-dl .stk-kod{font-size:1.75rem;letter-spacing:.06em}
.kz .card.stk-strat{border:1.5px solid var(--red);background:linear-gradient(168deg,#fff 0%,var(--red-soft) 100%)}
.kz .stk-ekran{display:flex;flex-direction:column;gap:12px}
.kz .stk-a,.kz .stk-n,.kz .stk-h{display:flex;flex-direction:column;gap:12px;min-width:0}
.kz .stk-hr{display:flex;align-items:center;gap:14px}
.kz .stk-qr{flex:none;width:84px;height:84px;box-sizing:border-box;padding:7px;background:var(--v-okne);border:1px solid var(--line);border-radius:10px;display:block;color:var(--ink)}
.kz .stk-qr svg{display:block;width:100%;height:100%;fill:var(--ink)}
.kz .stk-hk{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.kz .stk-kod2{font-family:var(--head);font-weight:600;font-size:1.25rem;line-height:1;letter-spacing:.14em}
.kz .stk-hk .pil{margin-top:2px}
.kz .stk-rad{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.kz .stk-rt{min-width:0;flex:1}
.kz .stk-rt b{font-weight:600;font-size:.88rem}
.kz .stk-stratena{border:1.5px solid var(--red);background:linear-gradient(168deg,#fff 0%,var(--red-soft) 100%)}
.kz .stk-stratena .stk-rad{border-top:0;padding:0}
.kz .stk-nast .st + .stk-rad,.kz .stk-nast .st + .stk-zap + .stk-rad{margin-top:6px}
.kz .stk-nast .st + .stk-rad{border-top:0}
.kz .stk-zap{margin:6px 0 0}
.kz .stk-tg{all:unset;box-sizing:border-box;display:block;flex:none;cursor:pointer;border-radius:999px}
.kz .stk-tg .uc-drah{display:block}
.kz .stk-tg:disabled{opacity:.55;cursor:default}
.kz .stk-tg:focus-visible{outline:2.5px solid var(--red);outline-offset:3px}
.kz .stk-tg.on .uc-drah{background:var(--ok)}
.kz .stk-tg.cv.on .uc-drah{background:var(--red)}
.kz .stk-tg.on .uc-drah b{transform:translateX(16px)}
.kz .stk-sul{all:unset;box-sizing:border-box;cursor:pointer;display:flex;gap:10px;margin-top:8px;padding:10px 12px;border-radius:12px;background:var(--pozor-plocha);border:1px solid var(--pozor-ram);color:var(--pozor-text);font-size:.8rem;line-height:1.45;text-align:left}
.kz .stk-sul:focus-visible{outline:2.5px solid var(--red);outline-offset:2px}
.kz .stk-cb{flex:none;width:20px;height:20px;margin-top:1px;border-radius:6px;border:1.5px solid var(--pozor-text);background:var(--v-okne);display:grid;place-items:center;color:var(--red)}
.kz .stk-cb svg{width:14px;height:14px;stroke-width:3}
.kz .stk-sprava{padding-top:10px;border-top:1px solid var(--line)}
.kz .stk-sprava b{font-size:.88rem;font-weight:600}
.kz .stk-sprava textarea.vinp{margin:6px 0 4px}
.kz .stk-ok{display:flex;align-items:center;gap:6px;margin-top:8px;color:var(--ok);font-weight:600}
.kz .stk-ok svg{width:15px;height:15px}
.kz .stk-tl2{display:flex;gap:10px;margin-top:12px}
.kz .stk-tl2 .btn{flex:1}
.kz .stk-tl{display:flex;justify-content:center;margin-top:12px}
.kz .stk-sk{margin-top:6px}
.kz .stk-skr{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.kz .stk-skr:first-child{border-top:0}
.kz .stk-skr b{font-weight:600;font-size:.88rem}
.kz .stk-ikb{flex:none;width:36px;height:36px;border-radius:50%;background:var(--red-soft);color:var(--red);display:grid;place-items:center}
.kz .stk-ikb svg{width:18px;height:18px}
.kz .stk-pod{margin-top:8px}
.kz .stk-hist .stk-pod{margin-top:6px}
.kz .stk-odpoj{width:100%}
.kz .stk-pot{text-align:center}
.kz .stk-pot-tl{display:flex;justify-content:center;gap:10px;margin-top:8px}
.kz .stk-bez .stk-vstup{text-transform:uppercase;letter-spacing:.14em;font-family:var(--head);font-weight:600}
@media(min-width:901px){
  .kz .stk-ekran{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr;gap:12px;align-items:start}
  .kz .stk-a{grid-column:1;grid-row:1}
  .kz .stk-h{grid-column:1;grid-row:2}
  .kz .stk-n{grid-column:2;grid-row:1/span 2}
  .kz .stk-ekran.stk-jeden{grid-template-columns:minmax(0,520px)}
  .kz .stk-odpoj{width:auto}
}
@media(max-width:900px){
  .kz .stk-pot-tl{flex-direction:column}
  .kz .stk-pot-tl .btn,.kz .stk-tl .btn{width:100%}
}
