/* ===== ERNTE · FIT – nič sa neprekrýva, nič nepretŕča, nadpisy a popisy čitateľné (29. 10.) =====
   Platí pre všetky prihlásenia. Pravidlá majú #app, aby vyhrali nad štýlmi modulov. */
/* jednostĺpcové mriežky sa nesmú roztiahnuť podľa najdlhšieho riadku */
#app .owh,#app .owsec,#app .hub{grid-template-columns:minmax(0,1fr)}
#app .owg,#app .owpg{grid-template-columns:repeat(auto-fill,minmax(min(150px,100%),1fr))}
@media (max-width:520px){#app .owg,#app .owpg{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* nadpisy sekcií: zalomia sa, štítok (napr. „iba Martin a Jana“) ide pod nadpis */
#app .owsh{flex-wrap:wrap;row-gap:6px}
#app .owsh>span{white-space:normal;min-width:0}
/* hlavička Prehľadu: dátum + nadpis vľavo, ↻ vpravo, popis pod celým riadkom */
#app .owhd,#app .hubh{align-items:center}
#app .owhd>div,#app .hubh>div{min-width:0}
#app .hubt{overflow-wrap:anywhere}
/* dlaždice Prehľadu: obsah zarovnaný na stred */
#app .owt{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:2px}
#app .owt .owi{margin-left:auto;margin-right:auto}
#app .owt .owv{max-width:100%}
/* všeobecne: dlhé slová a mená sa zalomia, nevytŕčajú */
#app h1,#app h2,#app h3,#app .t,#app .ds-ttl b,#app .ds-ttl small{overflow-wrap:anywhere}
#app .card,#app .ds-fc,#app .ds-tile{min-width:0;max-width:100%}
#app img,#app video,#app canvas,#app iframe{max-width:100%}
/* tlačidlá: text sa nikdy neoreže – radšej sa zalomí */
#app .btns{flex-wrap:wrap}
#app .btns>button,#app .btns>a{max-width:100%;white-space:normal}
/* popisy funkcií (ℹ️) vždy na celú šírku */
#app .fdesc{max-width:100%;box-sizing:border-box}
/* hlavička aplikácie: logo + názov hore, tlačidlá (↻ Podpora ⏻) pod ním na stred */
header.top{flex-wrap:wrap;justify-content:center;row-gap:8px}
header.top>.tt{flex:1 1 calc(100% - 90px);min-width:0}
header.top>.tt h1,header.top>.tt small{overflow-wrap:anywhere}
@media (min-width:700px){header.top{justify-content:flex-end}header.top>.tt{flex:1 1 auto}}
/* okrúhle ikonové tlačidlá (obálka, zvonček, téma, A+, ↻, ⏻) – presný kruh, nie vajce */
#app .hrow{justify-content:center;flex-wrap:wrap;row-gap:8px}
#app .hrow>button:not(.hbtn):not(.mtbtn),header.top>.topref,header.top>.out,#app .hubr{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;max-width:44px;flex:0 0 44px!important;padding:0!important;border-radius:50%!important;aspect-ratio:1/1;display:inline-flex!important;align-items:center;justify-content:center;gap:1px;box-sizing:border-box;line-height:1}
#app .hrow>button:not(.hbtn):not(.mtbtn) *{line-height:1}
#app .hrow>.mtbtn{width:auto!important;height:44px;min-height:44px;padding:0 14px!important;border-radius:999px!important;white-space:nowrap;flex:0 0 auto!important;display:inline-flex;align-items:center;gap:6px}
@media (min-width:700px){#app .hrow{justify-content:flex-end}}
header.top>button{margin-left:0!important;margin-right:0!important}
/* cenové dlaždice Prehľadu: obsah na stred */
#app .owp{text-align:center}
#app .owp .owpn{justify-content:center}
#app .owp .owps{justify-items:center}
#app .owp .owps small{max-width:100%}
/* na mobile tlačidlá a štítky v kartách na stred */
@media (max-width:600px){#app .btns{justify-content:center}#app .ds-meta{justify-content:center}}
/* mobil: logo + názov na stred, tlačidlá v druhom riadku na stred */
@media (max-width:699px){header.top::before{content:"";order:2;flex:0 0 100%;height:0}
  header.top>img,header.top>.tt{order:1}header.top>.tt{flex:0 1 auto;max-width:calc(100% - 80px)}header.top>button{order:3}}
/* stránka sa nikdy neposúva do strany (na iPhone potom „ujde“ aj okno Ako to funguje) */
html{overflow-x:hidden}
/* zatváracie ✕ a malé okrúhle tlačidlá – presný kruh všade */
.hx,.sgx,.obx,.ftx,.duex,.wxp-x,.wlx,.nbx,.fbx,.fax,.cxx,.cax,.cammx,.ofx,.spdx,.kkdel,.rdel,button.x,button.xr{
  width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;max-width:44px!important;max-height:44px!important;
  flex:0 0 44px!important;padding:0!important;border-radius:50%!important;aspect-ratio:1/1;box-sizing:border-box!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:1!important;font-size:1.15rem}
/* iPhone: písmo v políčkach aspoň 16 px – inak Safari pri ťuknutí do políčka priblíži stránku a spodný panel sekcií „chodí“ po obrazovke */
@media (hover:none) and (pointer:coarse){input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px!important}}
/* KPI dlaždice (.hrk): slovo sa nesmie lámať uprostred („nezapísa-né“) – menšie písmo na úzkom mobile */
#app .hrk b{overflow-wrap:normal;word-break:normal;hyphens:manual}
@media (max-width:430px){#app .hrk b{font-size:clamp(1rem,4.6vw,1.3rem)}}
/* Zúčtovanie: dlaždice hore, usporiadané (1 veľká + 2×2, na širšom 2 + 3) – 30. 10. */
.zt .zgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:4px 0 14px}
.zt .zgrid .zbtn:first-child{grid-column:1/-1}
.zt .zbtn{justify-items:center!important;text-align:center!important;align-content:center;min-height:112px;padding:14px 10px!important;min-width:0}
.zt .zbtn b{font-size:1rem;line-height:1.2;overflow-wrap:anywhere}.zt .zbtn small{line-height:1.3;overflow-wrap:anywhere}
.zt .zbtn span{font-size:1.7rem;line-height:1}
@media (min-width:700px){.zt .zgrid{grid-template-columns:repeat(6,minmax(0,1fr))}.zt .zgrid .zbtn{grid-column:span 2}
 .zt .zgrid .zbtn:nth-child(-n+2){grid-column:span 3}}
/* Zúčtovanie odberateľa: hľadanie + oprava lístka – 30. 10. */
.odq{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.odq label{flex:1 1 220px;min-width:0}.odq input{width:100%;box-sizing:border-box}.odq button{flex:0 0 auto;min-height:44px}
.odv .oded{display:block;margin:6px 0 0 auto;padding:6px 10px!important;min-height:36px;font-size:.82rem;white-space:nowrap;border-radius:10px}
.odfx{display:block;font-style:normal;font-size:.72rem;color:#fbbf24;margin-top:3px}
.odedf{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px;margin:-4px 0 6px;border-radius:14px;border:1px solid rgba(190,242,100,.45);background:rgba(190,242,100,.06)}
.odedf .w{grid-column:1/-1}.odedf label{min-width:0}.odedf input,.odedf select{width:100%;box-sizing:border-box}
.odedf .btns{display:flex;flex-wrap:wrap;gap:8px}.odedf .btns button{flex:1 1 140px}
@media (min-width:700px){.odedf{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* Zúčtovanie farmára: na telefóne a Folde lístky ako karty (celé údaje), tabuľka iba na širokom displeji; dlaždice a tlačidlá na stred – 30. 10. */
.zlc{display:none;gap:10px}
.zlci{border:1px solid var(--line,rgba(255,255,255,.12));border-radius:16px;padding:12px;background:rgba(255,255,255,.04);min-width:0}
.zlch{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:4px 10px;margin-bottom:8px;text-align:center}.zlch span{opacity:.75;font-size:.85rem}
.zlcg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.zlcg>div{display:grid;justify-items:center;text-align:center;gap:2px;padding:7px 4px;border-radius:12px;background:rgba(255,255,255,.04);min-width:0}
.zlcg small{font-size:.7rem;opacity:.7}.zlcg b{font-size:.92rem;overflow-wrap:anywhere}.zlcg .wn b{color:#fbbf24}
.zlcg .zlcs{grid-column:1/-1;background:rgba(190,242,100,.12);border:1px solid rgba(190,242,100,.35)}.zlcg .zlcs b{font-size:1.15rem;color:#bef264}
.zlct{border-color:rgba(190,242,100,.45)}
@media (max-width:1100px){.hrt:has(+ .zlc){display:none}.zlc{display:grid}}
@media (min-width:600px) and (max-width:1100px){.zlc{grid-template-columns:repeat(2,minmax(0,1fr))}.zlct{grid-column:1/-1}}
.zt .zsg>div{text-align:center;justify-items:center;align-content:center;height:auto!important;min-height:0}.zt .zsg>div b{overflow-wrap:anywhere}
.zt .btns{justify-content:center}
html[data-theme=light] .zlcg .zlcs b{color:#3f6212}

/* mapy Leaflet: globálne img,svg{max-width:100%} zmenšovalo vrstvu trás na 0 px (30. 10.) */
.leaflet-container svg,.leaflet-container canvas{max-width:none!important}

/* 30. 10.: skryté tlačidlá v hlavičke (prihlasovacia obrazovka) sa nesmú ukázať – kruhové pravidlo vyššie prebíjalo atribút hidden */
header.top>[hidden],#app .hrow>button[hidden]{display:none!important}
/* Odhlásiť v kruhu hlavičky: iba ikona ⏻ (text sa do kruhu nezmestil), názov ostáva v aria-label / title */
header.top>.out .oi{display:inline!important;font-size:1.05rem;line-height:1}header.top>.out .ot{display:none!important}

/* 31. 10.: farmár – predaj na 2 ťuknutia (rýchle množstvá) a stav obchodu ako balík */
.qtons{display:grid;gap:6px}.qtons small{opacity:.75}.qtons>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media(min-width:600px){.qtons>div{grid-template-columns:repeat(4,minmax(0,1fr))}}
.qtons button{min-height:52px;font-size:1.05rem!important;font-weight:800;white-space:normal}
.dstep{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;margin:10px 0 6px;position:relative}
.dstep::before{content:"";position:absolute;left:8%;right:8%;top:17px;height:3px;border-radius:2px;background:rgba(255,255,255,.12);z-index:0}
.dsi{display:grid;justify-items:center;gap:3px;position:relative;z-index:1;min-width:0}
.dsi span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:.95rem;background:#1b2232;border:2px solid rgba(255,255,255,.18)}
.dsi small{font-size:.62rem;opacity:.6;text-align:center;line-height:1.1;overflow-wrap:anywhere}
.dsi.done span{background:rgba(182,255,59,.2);border-color:#b6ff3b;color:#b6ff3b;font-weight:800}.dsi.done small{opacity:.85}
.dsi.now span{background:linear-gradient(135deg,#b6ff3b,#22d3ee);border-color:transparent;box-shadow:0 0 14px rgba(182,255,59,.55)}.dsi.now small{opacity:1;font-weight:700;color:#d9ff9e}
html[data-theme=light] .dsi span{background:#fff;border-color:#cbd5e1}
.dsi small{white-space:nowrap;overflow-wrap:normal;word-break:keep-all;font-size:.6rem}
@media(max-width:420px){.prow>b.num{font-size:1.02rem!important;white-space:nowrap}.prow .t{overflow-wrap:normal;word-break:keep-all}}
@media(max-width:460px){.dsi small{visibility:hidden}.dsi.now small{visibility:visible;font-size:.7rem}}

/* ===== 31. 10. PRÍKAZ MAJITEĽA: úvod LIVE pre každého – nie matné sklo, ale číre ako diamant (prehľadné, živé) ===== */
.wlc .wlb,.wlc .whc,.wlc .wdia,.wlc .wsprb,.wlc .wlive{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.wlc .wlb{background:linear-gradient(160deg,rgba(8,14,30,.46),rgba(8,14,30,.26) 55%,rgba(8,14,30,.40))!important;
  border:1px solid rgba(255,255,255,.42)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55),inset 0 -1px 0 rgba(125,211,252,.25),0 0 0 1px rgba(186,230,253,.18),0 0 28px rgba(125,211,252,.22),0 18px 48px rgba(0,0,0,.40)!important}
.wlc .whc:not(.wlsp .whc){background:linear-gradient(145deg,rgba(8,14,30,.34),rgba(8,14,30,.14) 60%,rgba(8,14,30,.28))!important;
  border:1px solid rgba(255,255,255,.40)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.50),inset 0 0 0 1px rgba(186,230,253,.10),0 0 18px rgba(125,211,252,.18),0 10px 26px rgba(0,0,0,.30)!important}
.wlsp .whc{background:#05070d!important}
.wlc .wlb,.wlc .whc{text-shadow:0 1px 2px rgba(0,0,0,.75),0 0 10px rgba(0,0,0,.35)}
.wlc .whc small,.wlc .wlb small{color:rgba(241,245,255,.92)}
/* diamantový odlesk – pomaly prebehne cez číre sklo (live) */
.wlc .wlb,.wlc .whc:not(.wlsp .whc){overflow:hidden}
.wlc .wlb::after,.wlc .whc:not(.wlsp .whc)::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:60%;pointer-events:none;
  background:linear-gradient(115deg,transparent,rgba(255,255,255,.18) 40%,rgba(186,230,253,.26) 50%,rgba(255,255,255,.14) 60%,transparent);
  transform:translate3d(0,0,0);opacity:0}
.wlc:has(.wmov) .wlb::after,.wlc:has(.wmov) .whc:not(.wlsp .whc)::after{opacity:1;will-change:transform;animation:wdiaSweep 7.5s ease-in-out infinite}
.wlc .whc:nth-child(2n)::after{animation-delay:1.6s}.wlc .whc:nth-child(3n)::after{animation-delay:3.1s}
@keyframes wdiaSweep{0%,62%{transform:translate3d(0,0,0)}88%,100%{transform:translate3d(300%,0,0)}}
@media (prefers-reduced-motion:reduce){.wlc .wlb::after,.wlc .whc::after{animation:none;opacity:0}}
html[data-theme=light] .wlc .wlb,html[data-theme=light] .wlc .whc:not(.wlsp .whc){background:linear-gradient(145deg,rgba(255,255,255,.30),rgba(255,255,255,.12))!important}

/* ===== 31. 10.: úvod – CLAAS LEXION 8700 TT (Tóth: Scania S 500). PRÍKAZ MAJITEĽA 11:09: všetkým PEVNÁ fotka (nič sa nehýbe),
   iba Martinovi (.wmov) živý pohľad – plynulo cez transform (GPU), nie cez background-position (to sekalo) ===== */
.wimg.wclaas{background-color:#0b1020!important;background-size:auto max(100vh,560px)!important;background-repeat:no-repeat!important;background-position:40% 0!important;animation:none!important}
@media (min-aspect-ratio:16/9){.wimg.wclaas{background-size:100vw auto!important}}
.wimg.wclaas::before{content:"";position:absolute;inset:auto 0 auto 0!important;animation:none!important;transform:none!important;left:0;right:0;top:calc(max(100vh,560px) - 140px);height:140px;background:linear-gradient(transparent,#0b1020);pointer-events:none;z-index:0}
.wclaas .wbgmv{position:absolute;left:0;top:0;width:150%;height:max(100vh,560px);background-size:cover;background-position:center 0;background-repeat:no-repeat;
  z-index:0;pointer-events:none;-webkit-mask-image:linear-gradient(#000 78%,transparent);mask-image:linear-gradient(#000 78%,transparent);will-change:transform;transform:translate3d(0,0,0);animation:wclPan 28s ease-in-out infinite alternate;backface-visibility:hidden}
@media (min-aspect-ratio:16/9){.wclaas .wbgmv{width:115%}}
@keyframes wclPan{from{transform:translate3d(0,0,0)}to{transform:translate3d(-30%,0,0)}}
.wclaas .wchaff,.wclaas .wdust{position:absolute;pointer-events:none;z-index:0;will-change:transform}
.wclaas .wchaff{left:-260px;top:-220px;right:0;bottom:0;background-image:radial-gradient(2px 2px at 10% 20%,rgba(255,236,170,.85),transparent 60%),radial-gradient(1.5px 1.5px at 30% 70%,rgba(255,226,150,.8),transparent 60%),radial-gradient(2.5px 2px at 55% 35%,rgba(250,214,120,.75),transparent 60%),radial-gradient(1.5px 1.5px at 75% 60%,rgba(255,240,190,.8),transparent 60%),radial-gradient(2px 1.5px at 90% 25%,rgba(240,205,120,.75),transparent 60%);
  background-size:260px 220px;animation:wclChaff 9s linear infinite;opacity:.8}
.wclaas .wchaff.w2{left:-180px;top:-160px;background-size:180px 160px;animation:wclChaff2 6.5s linear infinite;opacity:.55}
@keyframes wclChaff{from{transform:translate3d(0,0,0)}to{transform:translate3d(-260px,220px,0)}}
@keyframes wclChaff2{from{transform:translate3d(0,0,0)}to{transform:translate3d(-180px,160px,0)}}
.wclaas .wdust{inset:0;background:radial-gradient(60% 40% at 35% 62%,rgba(214,186,120,.30),transparent 70%),radial-gradient(40% 30% at 62% 55%,rgba(230,205,150,.2),transparent 70%);animation:wclDust 11s ease-in-out infinite alternate}
@keyframes wclDust{from{transform:translate3d(-4%,0,0) scale(1);opacity:.55}to{transform:translate3d(5%,0,0) scale(1.1);opacity:.9}}
@media (prefers-reduced-motion:reduce){.wclaas .wbgmv,.wclaas .wchaff,.wclaas .wdust{animation:none}}
.wimg.wclaas.wtruck{background-position:68% 0!important}
/* 11:15 PRÍKAZ MAJITEĽA: pevná fotka aj Martinovi – pozadie úvodu sa nehýbe u nikoho (živé ostávajú iba údaje) */
.wimg::before,.wimg:not(.wme) .wscan{animation:none!important;transform:none!important}
.wimg:not(.wme) .wscan{display:none!important}
/* 11:23 PRÍKAZ MAJITEĽA: fotka roztiahnutá na celú obrazovku (bez čierneho pásu hore), PEVNÁ pre každého – pri posúvaní panelov stojí na mieste
   (fotka je pozadím posúvacieho okna .wlc, nie dlhého obsahu .wimg) */
.wlc:has(.wimg.wclaas){background:#0b1020 url(img/claas-uvod.jpg) center 40%/cover no-repeat!important}
.wlc:has(.wimg.wtruck){background:#0b1020 url(img/scania-uvod.jpg) 68% center/cover no-repeat!important}
.wimg.wclaas{background-image:none!important;background-color:transparent!important}
.wimg.wclaas::before{display:none!important}
/* 11:25 PRÍKAZ MAJITEĽA: skener (zelená línia) na úvode Martina beží stále; fotka ostáva pevná */
.wimg.wme .wscan{display:block!important;animation:wscan 5.5s cubic-bezier(.45,0,.55,1) infinite!important;will-change:transform}
/* 11:27 PRÍKAZ MAJITEĽA: úvod stlačený – údaje sa zmestia na fotku (jedna obrazovka), bez dlhých zoznamov a veľkých grafov */
.wlc .whud{gap:6px!important}
.wlc .whc{padding:8px 10px!important}
.wlc .whwx svg,.wlc .whk .whbars{max-height:22px!important}
.wlc .whwx .wxs{display:none!important}
.wlc .whgr .wgrc{height:58px!important;max-height:58px!important;overflow:hidden}
.wlc .whgr .wgrc svg{height:58px!important}
.wlc .whgr .wgrs{max-height:30px;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap!important;white-space:nowrap}
.wlc .wfuel .wfc,.wlc .wfuel .wfl,.wlc .wfuel .wfsrc{display:none!important}
.wlc .wfuel .wfnav{margin-top:4px!important}
.wlc .wfuel .wfnav a,.wlc .wfuel .wfnav button{min-height:38px!important;padding:6px 12px!important}
.wlc .wdeal .wdc{display:none!important}
/* 2. 11. príkaz majiteľa („nevidím zaujímavosti“): 💡 Vedeli ste? znova viditeľné, kompaktne */
.wlc .wlb .wjk{display:block!important;margin-top:6px!important;padding:6px 10px!important;font-size:.82rem!important;line-height:1.3!important}
.wlc .wlb{padding-top:10px!important;padding-bottom:10px!important}
.wlc .wlb .wlt p{margin:2px 0!important}
@media (min-width:700px){
  .wlc .whud{display:grid!important;grid-template-columns:1fr 1fr;align-items:start}
  .wlc .whud>.whtop,.wlc .whud>.whrow,.wlc .whud>.whpr{grid-column:1/-1}
  .wlc .whud>.wfuel{grid-column:1/-1} /* 2. 11.: nafta pod počasím na celú šírku */
}
/* 11:28 PRÍKAZ MAJITEĽA: skener ešte krikľavejší a žiarivejší (iba Martin) */
.wimg.wme .wscan{height:130px!important;z-index:4!important;
  background:linear-gradient(180deg,transparent 0%,rgba(182,255,59,.10) 45%,rgba(190,255,60,.38) 82%,rgba(225,255,120,.95) 97%,#f7ffd6 100%)!important;
  filter:drop-shadow(0 0 10px rgba(182,255,59,.95)) drop-shadow(0 0 26px rgba(132,255,40,.75))}
.wimg.wme .wscan::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:4px;background:#fbffe6;box-shadow:0 0 12px 4px rgba(200,255,80,1),0 0 40px 12px rgba(150,255,40,.85),0 0 90px 24px rgba(120,255,30,.5)}
/* 11:32 PRÍKAZ MAJITEĽA: žiara skenera = žiara blesku (biele jadro, modro-zelený výboj, blikanie, záblesky) – iba Martin */
.wimg.wme .wscan{filter:drop-shadow(0 0 8px #fff) drop-shadow(0 0 22px rgba(190,255,90,1)) drop-shadow(0 0 48px rgba(140,200,255,.85))!important}
.wimg.wme .wscan::after{background:#ffffff!important;height:3px!important;
  box-shadow:0 0 6px 2px #fff,0 0 18px 6px rgba(220,255,140,1),0 0 44px 16px rgba(160,255,60,.95),0 0 90px 30px rgba(130,190,255,.7),0 0 160px 50px rgba(120,255,40,.35)!important;
  animation:wlBolt 1.1s steps(1) infinite}
.wimg.wme .wscan::before{content:"";position:absolute;left:0;right:0;bottom:-14px;height:30px;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 30' preserveAspectRatio='none'%3E%3Cpolyline points='0,15 22,9 38,20 61,6 80,17 104,4 126,21 149,10 171,18 193,5 214,22 238,11 259,19 283,7 305,16 326,3 349,20 371,9 400,15' fill='none' stroke='white' stroke-width='2.2'/%3E%3C/svg%3E") center/100% 100% no-repeat;
  filter:drop-shadow(0 0 4px #fff) drop-shadow(0 0 12px rgba(170,230,255,1)) drop-shadow(0 0 24px rgba(160,255,60,.9));opacity:0;animation:wlZig 1.1s steps(1) infinite}
@keyframes wlBolt{0%{opacity:1}8%{opacity:.25}12%{opacity:1}30%{opacity:.6}34%{opacity:1}61%{opacity:.35}64%{opacity:1}100%{opacity:1}}
@keyframes wlZig{0%,7%{opacity:0}8%{opacity:1;transform:scaleY(1)}11%{opacity:0}33%{opacity:.9;transform:scaleY(-1)}36%{opacity:0}62%{opacity:1;transform:scaleY(1.3)}66%,100%{opacity:0}}
/* občasný záblesk celej obrazovky ako pri blesku */
.wlc:has(.wimg.wme)::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:5;background:radial-gradient(120% 80% at 50% 30%,rgba(230,245,255,.55),rgba(190,255,120,.15) 60%,transparent 80%);opacity:0;animation:wlFlash 9s linear infinite}
@keyframes wlFlash{0%,86%{opacity:0}87%{opacity:.9}88%{opacity:.1}89.5%{opacity:.7}91%,100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.wimg.wme .wscan::after,.wimg.wme .wscan::before,.wlc:has(.wimg.wme)::after{animation:none}}
/* 11:56 PRÍKAZ MAJITEĽA: čiara skenera tenká ako niť, silná ako blesk, jemne rozptýlená iba z jednej strany – pri pohybe dole zhora */
.wimg.wme .wscan{height:56px!important;filter:none!important;
  background:linear-gradient(180deg,transparent 0%,rgba(182,255,59,.05) 55%,rgba(200,255,120,.22) 92%,rgba(235,255,190,.45) 100%)!important}
.wimg.wme .wscan::after{height:1px!important;bottom:0!important;background:#fff!important;
  box-shadow:0 0 1px 0 #fff,0 0 3px .5px rgba(255,255,255,1),0 -2px 6px 1px rgba(214,255,140,.95),0 -6px 16px 2px rgba(182,255,59,.55)!important}
.wimg.wme .wscan::before{display:none!important;animation:none!important}
.wlc:has(.wimg.wme)::after{display:none!important;animation:none!important}
/* 12:24 PRÍKAZ MAJITEĽA: Počasie bez live pohybu – pevná fotka oblohy podľa aktuálneho počasia (jasno/oblačno/dážď/sneh/búrka/hmla, deň/noc) */
.wsx,.wsx *,.wsx *::before,.wsx *::after{animation:none!important;transition:none!important}
.wsx .wsbg{inset:0!important;transform:none!important}
.wsx .wsvid,.wsx .wsfx,.wsx .wsshine{display:none!important}
/* 16:05 PRÍKAZ MAJITEĽA: spodná lišta – ikona a názov presne na stred tlačidla, ťuknutie reaguje na celé tlačidlo */
#app>nav.tabs>button{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center!important}
#app>nav.tabs>button>*{pointer-events:none}
/* 31. 10. 21:57 príkaz majiteľa: „Naše výkupné ceny“ na úvode – nič nesmie byť orezané (tlačidlá plodín, graf, nadpisy, popisy stĺpcov) */
.wlc .whgr .wgrc{overflow:visible!important;margin-bottom:16px!important}
.wlc .whgr .wgrs,.wlc .wbz .wbzs{max-height:none!important;overflow:visible!important;flex-wrap:wrap!important;white-space:normal!important}
.wlc .whgr .wgrs>*,.wlc .wbz .wbzs>*{flex:0 1 auto;max-width:100%;white-space:normal!important;overflow-wrap:anywhere}
.wlc .wgrh small{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.wlc .whk .whbars{max-height:none!important}
.wlc .whk>small{white-space:normal!important;overflow:visible!important}
.wlc .whgr .wgrs,.wlc .wbz .wbzs{display:flex!important;flex-direction:row!important;gap:6px!important;align-items:center}
.wlc .whgr .wgrs>*,.wlc .wbz .wbzs>*{font-size:.8rem!important;padding:5px 11px!important;min-height:30px;line-height:1.15;width:auto!important;margin:0!important}

/* 1. 11. kurací trus – krikľavé dlaždice €/t dodanie pre BPS (trus.js delTiles) */
.trdelw{margin:10px 0 12px}.trdelh{text-align:center;font-weight:700;margin-bottom:8px;font-size:.95rem}.trdel{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:10px}
.trdt{position:relative;display:grid;gap:6px;justify-items:center;text-align:center;padding:14px 12px;border-radius:18px;color:#fff;background:linear-gradient(135deg,#ff2d95 0%,#ff7a00 52%,#ffe600 100%);border:2px solid rgba(255,255,255,.85);box-shadow:0 0 0 2px rgba(255,45,149,.45),0 8px 26px rgba(255,90,0,.45),inset 0 1px 0 rgba(255,255,255,.7);text-shadow:0 1px 3px rgba(0,0,0,.45)}
.trdt .trdn{font-weight:800;font-size:1rem;line-height:1.2;overflow-wrap:anywhere}.trdt .trdp{display:flex;align-items:baseline;justify-content:center;gap:6px;flex-wrap:wrap}.trdt .trdp b{font-size:2.1rem;font-weight:900;letter-spacing:-.02em;line-height:1}.trdt .trdp span{font-weight:800;font-size:.95rem}
.trdt .trdb{display:flex;flex-wrap:wrap;justify-content:center;gap:4px}.trdt .trdb span{font-size:.78rem;font-weight:700;padding:3px 8px;border-radius:999px;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.4);white-space:nowrap}
/* 1. 11. 9:43 BPS cenník: odporúčané do 36 €/t vs. prepočítať ekonomiku */
.trdlg{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:0 0 10px}.trdlg span{font-size:.8rem;font-weight:700;padding:4px 10px;border-radius:999px;text-align:center}
.trdlg .ok{background:rgba(57,255,20,.15);border:1px solid #39ff14;color:#b8ff9e}.trdlg .ck{background:rgba(255,200,0,.12);border:1px solid rgba(255,200,0,.6);color:#ffe08a}
html[data-theme=light] .trdlg .ok{color:#166534;background:rgba(22,163,74,.12)}html[data-theme=light] .trdlg .ck{color:#854d0e;background:rgba(234,179,8,.15)}
.trdt .trdr{font-size:.78rem;font-weight:900;letter-spacing:.02em;padding:4px 12px;border-radius:999px;background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.6)}
.trdt.trdok{background:linear-gradient(135deg,#00e676 0%,#39ff14 45%,#ffe600 100%);box-shadow:0 0 0 2px rgba(57,255,20,.5),0 8px 28px rgba(57,255,20,.45),inset 0 1px 0 rgba(255,255,255,.7)}
.trdt.trdck{background:linear-gradient(135deg,#6b7280 0%,#a16207 55%,#f59e0b 100%);border-style:dashed;box-shadow:0 6px 18px rgba(0,0,0,.35)}
.trdt .trdx{font-size:.78rem;font-weight:700;opacity:.95}

/* 🗑️ nebezpečné tlačidlo (vymazať obchod) */
button.danger{border-color:rgba(248,113,113,.65)!important;color:#fecaca!important}
html[data-theme=light] button.danger{color:#b91c1c!important}
/* ⚠️ Reklamácia u odberateľa (settle.js, 2. 11.) */
#app .zrekb{background:rgba(245,158,11,.14);border:1px solid rgba(245,158,11,.6)}
/* 2. 11. Zúčtovanie – ⚠️ Reklamácia hneď hore pri farmárovi */
.zfh{flex-wrap:wrap}.zfh>.zfhb{display:flex!important;gap:8px;flex-wrap:wrap;justify-content:flex-end;flex:none;max-width:100%}
.zfh>.zfhb button{min-height:44px;white-space:nowrap}
@media(max-width:480px){.zfh>.zfhb{flex:1 1 100%;justify-content:stretch}.zfh>.zfhb button{flex:1}}

/* 2. 11.: kto vytvoril zmluvu – pod číslom zmluvy, celý text (zalomí sa, neoreže) */
.ds-ttl .dsby{display:block;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;margin-top:2px;opacity:.85;font-size:.82em}
.ds-ttl .dsby b{font-weight:700}
/* Strážca 2. 11.: dlhé meno farmára vo výbere (Obchody → nový obchod) sa nesmie orezať – riadok rastie s textom */
#app .dfl{grid-auto-rows:max-content}#app .dfl button{height:auto!important;max-height:none!important;flex-shrink:0}
/* 2. 11. Kalkulačka – prepínač Sušenie (mokrý tovar) / Nákupná cena */
.calcsw{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 10px}
.calcsw button{min-height:48px;border-radius:14px;font-weight:700;font-size:.88rem;line-height:1.2;white-space:normal;padding:6px 8px}
.calcsw button[aria-pressed="true"]{background:linear-gradient(135deg,#34d399,#22d3ee)!important;color:#05210f!important;border-color:transparent!important}
body.ds-tab-calc .calcw{display:flex!important;flex-direction:column;background:#0b1020}
html[data-theme=light] body.ds-tab-calc .calcw{background:#f4f6fb}
body.ds-tab-calc .calcw .calcsw{margin:8px 10px 6px;flex:none}
body.ds-tab-calc .calcw .calcfr{flex:1;height:auto;min-height:0}
/* 2. 11. 18:36 PRÍKAZ MAJITEĽA „krajšie porozdeľuj, usporiadaj“ – úvod LIVE na širokej obrazovke (notebook):
   ľavý stĺpec (pozdrav + rádio) zarovnaný hore s pravým panelom, širší pravý panel, dlaždice v pároch rovnako vysoké, ceny v 3 stĺpcoch */
@media (min-width:1100px) and (min-height:640px){
  .wlc:not(.por){justify-content:flex-start!important;padding-top:calc(56px + env(safe-area-inset-top,0px))}
  .wlc:not(.por) .whud{width:clamp(480px,38vw,680px)!important;right:28px!important;gap:10px!important;align-items:stretch!important}
  .wlc:not(.por) .wlb,.wlc:not(.por) .wlsp{margin:0 0 14px 28px!important;width:min(620px,calc(100vw - clamp(480px,38vw,680px) - 96px))!important;max-width:none!important;box-sizing:border-box}
  .wlc:not(.por) .wlsp{position:relative!important}
  .wlc:not(.por) .whud .whpl{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 16px}
  .wlc:not(.por) .whud .whpl .wpc{min-width:0}
  .wlc:not(.por) .whud>.whc{min-width:0}
}
@media (min-width:1100px) and (min-height:640px){#spdock.att{bottom:auto!important;height:auto!important;align-content:start}#spdock.att .spdw{align-self:start}}
/* 2. 11. 18:58 PRÍKAZ MAJITEĽA „aplikácia je spomalená“ – vypnuté nekonečné ozdobné animácie (otáčanie tlačidla AI, pohyb pozadia lišty sekcií, blikanie bodiek) – zbytočne prekresľovali obrazovku stále dokola */
.aibtn i,.aiorb,nav.tabs,nav.tabs::before,nav.tabs::after,.otop,.otop::before,.otop::after,.otop i{animation:none!important}
.fdsh,.fdsh::before,.fdsh::after{animation:none!important}
/* 2. 11. 21:40 PRÍKAZ MAJITEĽA „rozlož pekne dlaždice, PC verzia, centruj, aby boli celé viditeľné“ – úvod LIVE na PC:
   obsah v centrovanom kontajneri (max 1480 px), vľavo pozdrav + rádio, vpravo dlaždice v mriežke 6 stĺpcov (páry vedľa seba),
   celok zvisle na stred (--wT počíta wfit vo welcome.js); všetko sa zmestí na obrazovku notebooku bez orezania */
@media (min-width:1100px) and (min-height:640px){
  .wlc:not(.por){--wW:min(1480px,calc(100% - 56px));--wL:calc((100% - var(--wW))/2);--wC:clamp(360px,30vw,500px);--wG:20px;
    padding-top:var(--wT,56px)!important}
  .wlc:not(.por) .wlb,.wlc:not(.por) .wlsp{margin:0 0 12px var(--wL)!important;width:var(--wC)!important}
  .wlc:not(.por) .whud{left:calc(var(--wL) + var(--wC) + var(--wG))!important;right:auto!important;top:var(--wT,56px)!important;
    width:calc(var(--wW) - var(--wC) - var(--wG))!important;display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;
    grid-auto-flow:row dense;gap:10px!important;align-items:stretch!important}
  .wlc:not(.por) .whud>*{grid-column:span 3!important;min-width:0}
  .wlc:not(.por) .whud>.whtop{grid-column:1/-1!important}
  .wlc:not(.por) .whud>.whrow{grid-column:span 3!important}
  .wlc:not(.por) .whud>.wsenc{grid-column:span 3!important}
  .wlc:not(.por) .whud>.wfuel{grid-column:span 2!important}
  .wlc:not(.por) .whud>.whpr{grid-column:span 4!important}
  .wlc:not(.por) .whud>.whrow>.whc,.wlc:not(.por) .whud>.whc{height:auto;box-sizing:border-box}
  .wlc:not(.por) .whud .wfuel .wgrh{flex-wrap:wrap;row-gap:2px}
  .wlc:not(.por) .whud .wfuel .wfnav a,.wlc:not(.por) .whud .wfuel .wfnav button{white-space:normal!important;line-height:1.2}
  .wlc:not(.por) .whud .whgr .wgrs{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;overflow-y:hidden;max-height:40px;gap:6px;scrollbar-width:thin}
  .wlc:not(.por) .whud .whgr .wgrs>*{flex:none!important;white-space:nowrap!important;width:auto!important;min-width:0}
}
/* užšie PC (1100–1279 px): nafta a ceny každá cez celú šírku panela, aby sa ceny nestláčali */
@media (min-width:1100px) and (max-width:1279px) and (min-height:640px){
  .wlc:not(.por){--wC:clamp(340px,30vw,380px);--wG:16px}
  .wlc:not(.por) .whud>.whpr{grid-column:1/-1!important}
  .wlc:not(.por) .whud>.wfuel{grid-column:1/-1!important}
  .wlc:not(.por) .whud .wfuel .wfnav{margin-top:2px!important}
}
/* 2. 11. 22:15 PRÍKAZ MAJITEĽA: úvod LIVE – dlaždica s menom a pozdravom ÚPLNE HORE a PEVNÁ pri posúvaní (mobil, Fold),
   💡 zaujímavosti úplne dole pod všetkými dlaždicami, tlačidlo farmára „Hlavná ponuka →“ */
.wlc .wlz{display:grid;gap:8px;box-sizing:border-box;position:relative;z-index:2}
.wlc .wlz .wjk{display:block!important;margin:0!important;padding:10px 12px!important;font-size:.86rem!important;line-height:1.35!important;text-align:left;
  background:linear-gradient(135deg,rgba(11,16,32,.72),rgba(11,16,32,.55)),linear-gradient(135deg,rgba(182,255,59,.14),rgba(94,234,212,.08))!important}
.wlc .wlz .wmore{width:100%;min-height:44px;white-space:normal}
.wlc.por .wlz{width:min(640px,calc(100% - 28px));margin:12px auto calc(18px + env(safe-area-inset-bottom,0px))}
.wlc.por .wlb{order:-1;position:sticky!important;top:calc(6px + env(safe-area-inset-top,0px));z-index:6;
  margin-top:calc(38px + env(safe-area-inset-top,0px))!important;margin-bottom:0!important;
  background:rgba(11,16,32,.78)!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:padding .2s ease}
.wlc.por .whud{margin-top:12px!important}
.wlc.por .wla{position:static!important;margin:10px 0 0!important;padding:0!important;background:none!important;-webkit-backdrop-filter:none;backdrop-filter:none}
.wlc.por .wla>button[data-wlgo]{flex:1 1 100%;width:100%}
/* pri posúvaní sa pevná dlaždica zmenší: meno + Hlavná ponuka */
.wlc.por.wsc .wlb>img,.wlc.por.wsc .wlb .wlt>small,.wlc.por.wsc .wlb .wlt>p,.wlc.por.wsc .wlb .wlf{display:none!important}
.wlc.por.wsc .wlb{padding-top:8px!important;padding-bottom:8px!important}
.wlc.por.wsc .wlb .wlt>b{font-size:1.05rem!important}
.wlc.por.wsc .wla{margin-top:6px!important}.wlc.por.wsc .wla .lime{min-height:40px!important}
@media (min-width:1100px) and (min-height:640px){
  .wlc:not(.por) .wlz{margin:0 0 12px var(--wL)!important;width:var(--wC)!important}
}
/* 2. 11. 22:58 PRÍKAZ MAJITEĽA – PREHĽAD MAJITEĽA (poradie cez order v mriežke #app, moduly sa vkladajú kam chcú):
   hore Prehľad ERNTE · VALKO (ceny → Kde predať → Posledné upozornenia → Čo riešiť → Obchody → Zisky → Komodity · evidencia → Podrobnosti),
   úplne dole Kredit ERNTE AI, Claude pracuje sám, Pridať na plochu a ako posledné Upozornenia do mobilu */
#app:has(>.hub.owh)>*{order:3}
#app:has(>.hub.owh)>nav.tabs,#app:has(>.hub.owh)>.rokbar,#app:has(>.hub.owh)>.secbar,#app:has(>.hub.owh)>.hero{order:0}
#app:has(>.hub.owh)>.fdesc.ftab{order:1}
#app:has(>.hub.owh)>.hub.owh{order:2}
#app:has(>.hub.owh)>.kcr{order:7}
#app:has(>.hub.owh)>.cnav{order:8}
#app:has(>.hub.owh)>.instc{order:9}
#app:has(>.hub.owh)>#ow-pushc{order:10}
/* 🧾 3. 11. reklamácia u odberateľa – vyhodnotenie pri lístkoch v zúčtovaní farmára */
#app .zrk{margin-top:12px;border:1px solid #f0c36d;border-radius:12px;padding:10px 12px;background:rgba(255,193,7,.07)}
#app .zrk table td:nth-child(5){text-align:left}#app .zrk tr.ok td{background:rgba(139,195,74,.12)}
#app .zrkb{display:block;font-size:.72em;line-height:1.2;color:#b26a00;white-space:normal}#app .zrkb.ok{color:#2f7d1c}
#app .zrkph{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}#app .zrkph img{width:calc(33.33% - 6px);max-width:220px;aspect-ratio:1;object-fit:cover;border-radius:10px;border:1px solid var(--line,#ddd);cursor:zoom-in}
#app .zrkph a,#app .zrkph span{font-size:.85em;padding:6px 10px;border:1px solid var(--line,#ddd);border-radius:8px}
#app .zrk{min-width:0;max-width:100%;box-sizing:border-box}#app .zrkt{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}#app .zrkt table{min-width:560px;width:100%;border-collapse:collapse;font-size:.86em}#app .zrkt th,#app .zrkt td{padding:6px 8px;border-bottom:1px solid var(--line,rgba(255,255,255,.1));text-align:right;white-space:nowrap}#app .zrkt th:nth-child(-n+2),#app .zrkt td:nth-child(-n+2){text-align:left}
#app .zrkbtn{background:linear-gradient(180deg,#fff3d6,#ffe2a1)!important;color:#7a4b00!important;border-color:#f0c36d!important}#app .zrkbar{margin:8px 0}#app .zrkpt{margin-top:10px}#app .zrkpt small{display:block;font-weight:600}
/* 3. 11. 22:22 – otázka „Pridať reklamáciu do zúčtovania?“ (settle.js askRk) */
.zrkq{position:fixed;inset:0;z-index:9600;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.zrkqb{width:min(100%,460px);padding:18px 16px;border-radius:20px;background:linear-gradient(160deg,rgba(32,38,54,.98),rgba(16,20,30,.98));border:1px solid rgba(255,255,255,.18);color:#fff;text-align:left}
.zrkqb>b{display:block;font-size:18px;margin-bottom:8px}.zrkqb .btns{display:flex;flex-direction:column;gap:8px;margin-top:14px}.zrkqb .btns button{width:100%}
[data-theme=light] .zrkqb{background:#fff;color:#111}
/* 🧭 Navigovať na nakládku (návrh Claude č. 6) – odkaz v tvare tlačidla */
a.navb{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 16px;border-radius:14px;border:1px solid var(--line,rgba(255,255,255,.18));background:rgba(56,189,248,.14);color:inherit;font-weight:700;text-decoration:none;white-space:nowrap}
