/* ══════════════════════════════════════════════════════════════
   KALKULAČKA PN – /pn-kalkulacka/
   Predpona .pn-*. Spoločné komponenty nástroja (hlavička, karty krokov, polia,
   prepínače, modrý panel, tabuľky) sú v kalkulacka-davky.css (.kd-*), tu je len
   to, čo má táto stránka navyše: kresba v hlavičke, pás dní, rozpis, zbalené
   podrobnosti (vzhľad ako .ga-zb na stránke goAML) a hranaté rohy.
   Farby platiteľa: zamestnávateľ = modrá (--pn-z), Sociálna poisťovňa = zlatá
   (--pn-s); svetlejší odtieň = 1.–3. deň (25 %). Tmavý režim = body.dark.
   Pohyb len cez transform a opacity; pri prefers-reduced-motion stojí.
   Načítava sa za kalkulacka-davky.css.
   ══════════════════════════════════════════════════════════════ */
body{
  --pn-z:#1a3a5c;--pn-z1:#8ea8c4;--pn-s:#c9a84c;--pn-s1:#e4d3a2;
  --pn-z-ink:#1a3a5c;--pn-s-ink:#7a5f14;--pn-pas-bg:#f1efe9;--pn-r:12px
}
body.dark{
  --pn-z:#4a8fd4;--pn-z1:#2b5682;--pn-s:#e8c56a;--pn-s1:#8a7438;
  --pn-z-ink:#9fc0e6;--pn-s-ink:#e8c56a;--pn-pas-bg:#1a2435
}

/* ── Hranaté rohy: na celej stránke najviac 12 px, žiadne pilulky ani krúžky ── */
.kd-hero-art,.kd-krok,.kd-vysledok,.kd-vysledok.kd-modry,.kd-suma-blok,.kd-tab-wrap,.kd-ako,.kd-segment,.kd-info{border-radius:var(--pn-r)}
.kd-seg span,.kd-cip,.kd-krok-sipka,.kd-pole input[type=text],.kd-pole input[type=date],.kd-pole input[type=number],.kd-pole select{border-radius:10px}
.kd-krok-c{border-radius:8px}
.kd-pill{border-radius:6px}
.kd-pill i{border-radius:2px}
.kd-plav{border-radius:var(--pn-r)}
.pn-vyzva .btn-p{border-radius:12px}

/* ── Kresba v hlavičke: EKG prejde do schodov dávky ──
   Jeden cyklus 10 s: pás „monitora“ odkryje kresbu zľava doprava (maska so
   scaleX), plochy pod schodmi vyrastú (scaleY), na 15. dni sa objaví značka
   odovzdania Sociálnej poisťovni, na konci dvakrát tepne hrot; potom všetko
   zhasne a ide znova. */
.pn-art svg{width:100%;height:auto}
.pn-art-g{animation:pn-art-g 10s linear infinite}
@keyframes pn-art-g{0%,90%{opacity:1}97%,100%{opacity:0}}
.pn-art-odkryv{transform-box:fill-box;transform-origin:0 50%;animation:pn-art-odkryv 10s cubic-bezier(.35,0,.45,1) infinite}
@keyframes pn-art-odkryv{0%,5%{transform:scaleX(0)}40%,100%{transform:scaleX(1)}}
.pn-art-sken{fill:var(--gold);transform-box:view-box;animation:pn-art-sken 10s cubic-bezier(.35,0,.45,1) infinite}
@keyframes pn-art-sken{0%,5%{transform:translateX(0);opacity:0}8%{opacity:.55}37%{opacity:.55}40%{transform:translateX(437px);opacity:0}100%{transform:translateX(437px);opacity:0}}
.pn-art-mzda{stroke:var(--n-t3);stroke-width:1.5;stroke-dasharray:3 5;opacity:.6}
.pn-art-mzda-t{font-size:12px;fill:var(--n-t3)}
.pn-art-os{stroke:var(--n-line);stroke-width:1.5}
.pn-art-ekg{fill:none;stroke:var(--pn-z);stroke-width:3.5;stroke-linejoin:round;stroke-linecap:round}
.pn-art-sp{fill:none;stroke:var(--pn-s);stroke-width:3.5;stroke-linecap:round}
.pn-art-r{transform-box:fill-box;transform-origin:50% 100%;animation:pn-art-rast 10s cubic-bezier(.2,.8,.2,1) infinite both}
.pn-art-r1{fill:var(--pn-z1);opacity:.45;animation-delay:1.25s}
.pn-art-r2{fill:var(--pn-z);opacity:.13;animation-delay:1.55s}
.pn-art-r3{fill:var(--pn-s);opacity:.22;animation-delay:2.55s}
@keyframes pn-art-rast{0%{transform:scaleY(0)}6%,100%{transform:scaleY(1)}}
.pn-art-dni{stroke-width:10;stroke-dasharray:9.43 2}
.pn-art-d1{stroke:var(--pn-z1)}
.pn-art-d2{stroke:var(--pn-z)}
.pn-art-d3{stroke:var(--pn-s)}
.pn-art-kto{font-size:12.5px;font-weight:600}
.pn-art-kto-z{fill:var(--pn-z-ink)}
.pn-art-kto-s{fill:var(--pn-s-ink)}
.pn-art-hranica{stroke:var(--pn-s);stroke-width:1.5;stroke-dasharray:4 4;opacity:0;animation:pn-art-objav 10s ease infinite both;animation-delay:2.5s}
.pn-art-odovzdanie{fill:var(--pn-s);transform-box:fill-box;transform-origin:center;transform:rotate(45deg);animation:pn-art-odovzdaj 10s cubic-bezier(.2,.8,.2,1) infinite both;animation-delay:2.5s}
@keyframes pn-art-odovzdaj{0%{transform:rotate(45deg) scale(0)}4%{transform:rotate(45deg) scale(1.6)}8%,100%{transform:rotate(45deg) scale(1)}}
.pn-art-p{font-family:'Playfair Display',Georgia,serif;font-size:19px;font-weight:700;fill:var(--n-ink);animation:pn-art-text 10s cubic-bezier(.2,.8,.2,1) infinite both}
.pn-art-p1{animation-delay:1.4s}
.pn-art-p2{animation-delay:1.8s}
.pn-art-p3{animation-delay:2.8s;fill:var(--pn-s-ink)}
@keyframes pn-art-text{0%{opacity:0;transform:translateY(8px)}6%,100%{opacity:1;transform:none}}
@keyframes pn-art-objav{0%{opacity:0}5%,100%{opacity:.9}}
.pn-art-d{font-size:12px;fill:var(--n-t3)}
.pn-art-d15{font-weight:700;fill:var(--pn-s-ink)}
.pn-art-hrot{fill:var(--pn-s);animation:pn-art-text 10s cubic-bezier(.2,.8,.2,1) infinite both;animation-delay:3.7s}
.pn-art-tep{fill:none;stroke:var(--pn-s);stroke-width:2;transform-box:fill-box;transform-origin:center;opacity:0;animation:pn-art-tep 10s ease-out infinite;animation-delay:3.9s}
@keyframes pn-art-tep{0%{transform:scale(1);opacity:.9}12%{transform:scale(3.4);opacity:0}20%{transform:scale(1);opacity:.9}32%{transform:scale(3.4);opacity:0}100%{opacity:0}}
/* Na telefóne kresba ostáva (je to hlavný obraz stránky), len menšia a bez plávajúceho štítka. */
@media(max-width:760px){
  .kd-hero-art.pn-art{display:block;flex:1 1 100%;max-width:none;margin:2px 0 0;padding:14px 14px 12px;box-shadow:none;border:1px solid var(--n-line)}
  .pn-art .kd-hero-stitok{display:none}
}

/* ── Formulár ── */
.pn-obdobie{margin:0;padding:12px 16px;border-radius:10px;background:var(--n-modra);font-size:14px;line-height:1.55;color:var(--n-t2);border-left:3px solid var(--pn-z);animation:kd-hore .3s ease both}
.pn-obdobie strong{color:var(--n-ink);font-weight:700}
body.dark .pn-obdobie{border-left-color:var(--n-titul)}
.pn-kz summary,.pn-vyluc summary{font-size:14px}
.pn-vyluc{margin-top:2px}
.kd-krok-telo [hidden]{display:none!important}
/* legenda s dvoma variantmi textu (zamestnanec / živnostník) */
.kd-ot legend span[hidden]{display:none}

/* ── Modrý panel: odhad, podiel platiteľov, strop ── */
.pn-odhad{display:inline-flex;align-items:center;min-height:24px;padding:2px 9px;border-radius:4px;border:1px solid rgba(232,197,106,.6);color:#f0d48a;font-size:12px;font-weight:700;letter-spacing:.03em}
.kd-modry .kd-stav:has(.kd-s-ok) .kd-stav-riadok{justify-content:flex-start}
.pn-podiel{position:relative;height:6px;margin-top:10px;background:#e8c56a;overflow:hidden;border-radius:2px}
.pn-podiel-z{position:absolute;inset:0;background:#9fc0e6;transform-origin:0 50%;transform:scaleX(var(--pz,0));transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.pn-podiel-s{display:none}
.pn-podiel[hidden]{display:none}
.pn-riadky .pn-r-zam::before,.pn-riadky .pn-r-sp::before{content:"";display:inline-block;width:10px;height:10px;margin-right:8px;border-radius:2px;background:#9fc0e6;vertical-align:-1px}
.pn-riadky .pn-r-sp::before{background:#e8c56a}
.pn-strop,.pn-odhad-pozn{margin:0;font-size:13px;line-height:1.5;color:var(--n-t2)}
.pn-odhad-pozn{color:#f0d48a}
.pn-skok{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:14px;font-weight:700;color:#e8c56a;text-decoration:none}
.pn-skok::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s}
.pn-skok:hover::after{transform:translateY(1px) rotate(45deg)}
.pn-skok:focus-visible{outline:2px solid #e8c56a;outline-offset:2px}
.pn-skok[hidden],.pn-strop[hidden],.pn-odhad-pozn[hidden],.pn-odhad[hidden]{display:none}

/* ── Pás dní ──
   .pn-pas je mriežka týždňov (počet v riadku = --tyz, nastaví skript), každý
   týždeň má 7 buniek. Bunka: stĺpik zdola (scaleY = percento / 80), číslo dňa
   v mesiaci, nad prvým dňom mesiaca skratka mesiaca a ľavá čiara hranice. */
.pn-rozpis{margin-top:28px;padding:clamp(20px,3vw,32px);background:var(--n-surf);border:1px solid var(--n-line);border-radius:var(--pn-r);animation:kd-hore .4s cubic-bezier(.2,.7,.2,1) both}
.pn-rozpis[hidden]{display:none}
.pn-rozpis-hlava{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px 24px;margin-bottom:18px}
.pn-nadpis{margin:0;font-family:'Playfair Display',Georgia,serif;font-size:26px;line-height:1.2;color:var(--n-ink)}
.pn-leg{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--n-t2)}
.wrap .pn-leg li{display:flex;align-items:center;gap:7px;margin:0}
.pn-leg li[hidden]{display:none}
.pn-lz{width:12px;height:12px;border-radius:2px;flex:none;display:inline-block}
.pn-lz-z1{background:var(--pn-z1)}.pn-lz-z2{background:var(--pn-z)}.pn-lz-s1{background:var(--pn-s1)}.pn-lz-s2{background:var(--pn-s)}
.pn-pas-obal{position:relative}
.pn-pas{--tyz:1;display:grid;grid-template-columns:repeat(var(--tyz),minmax(0,1fr));gap:18px 10px;padding-top:16px}
.pn-tyz{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;max-width:420px}
.pn-den{position:relative;display:block;width:100%;height:72px;margin:0;padding:0;border:0;border-radius:3px;background:var(--pn-pas-bg);cursor:pointer;color:var(--n-t3);font:600 10.5px/1 'DM Sans',sans-serif;transition:transform .2s cubic-bezier(.2,.8,.2,1)}
.pn-st{position:absolute;left:0;right:0;bottom:0;height:100%;border-radius:3px;transform-origin:50% 100%;transition:transform .55s cubic-bezier(.2,.8,.2,1),background-color .4s}
.pn-z1 .pn-st{background:var(--pn-z1)}
.pn-z2 .pn-st{background:var(--pn-z)}
.pn-s1 .pn-st{background:var(--pn-s1)}
.pn-s2 .pn-st{background:var(--pn-s)}
.pn-dc{position:absolute;left:0;right:0;top:5px;text-align:center;font-variant-numeric:tabular-nums}
.pn-mes{position:absolute;left:1px;bottom:calc(100% + 3px);font-size:11px;font-weight:700;color:var(--n-t2);white-space:nowrap;text-transform:lowercase}
.pn-novy-mes::before{content:"";position:absolute;left:-3px;top:-16px;bottom:0;width:2px;background:var(--n-t3);opacity:.55}
.pn-den:hover,.pn-den.pn-akt{transform:translateY(-3px)}
.pn-den.pn-akt{box-shadow:0 0 0 2px var(--n-ink)}
.pn-den:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
body.dark .pn-den:focus-visible{outline-color:var(--gold)}
.pn-pas-pozn{margin:14px 0 0;font-size:13px;color:var(--n-t3)}

/* bublina nad dňom */
.pn-tip{position:absolute;left:0;top:0;z-index:5;display:flex;flex-direction:column;gap:2px;min-width:180px;max-width:240px;padding:10px 12px;border-radius:8px;background:#0d1d2e;color:#fff;font-size:13px;line-height:1.4;box-shadow:0 14px 30px -12px rgba(0,0,0,.45);pointer-events:none;transition:transform .16s cubic-bezier(.2,.8,.2,1)}
.pn-tip[hidden]{display:none}
body.dark .pn-tip{background:#24496f}
.pn-tip strong{font-size:14px}
.pn-tip span{color:#d5deea}
.pn-tip .pn-tip-kto{display:flex;align-items:center;gap:7px;color:#fff}
.pn-tip .pn-tip-kto::before{content:"";width:10px;height:10px;border-radius:2px;background:#9fc0e6;flex:none}
.pn-tip .pn-tip-s::before{background:#e8c56a}
.pn-tip b{margin-top:4px;font-family:'Playfair Display',Georgia,serif;font-size:19px;color:#e8c56a}
.pn-tip::after{content:"";position:absolute;left:var(--sipka,50%);top:100%;width:10px;height:10px;background:inherit;transform:translate(-50%,-5px) rotate(45deg)}
.pn-tip.pn-tip-dole::after{top:auto;bottom:100%;transform:translate(-50%,5px) rotate(45deg)}

/* tabuľka po mesiacoch */
.pn-podnadpis{margin:28px 0 12px;font:700 17px/1.3 'DM Sans',sans-serif;color:var(--n-ink)}
.pn-tabulka th[scope=row]{font-weight:600;color:var(--n-ink);text-transform:none;letter-spacing:0;font-size:15px;background:none;vertical-align:top;border-top:1px solid var(--n-line);padding:11px 14px}
.pn-tabulka tfoot th[scope=row]{background:var(--n-chip);font-weight:700}
.pn-tabulka .pn-t-dalsi td{border-top-style:dashed}
.pn-t-kto{display:flex;align-items:center;gap:8px;font-weight:600}
.pn-t-kto::before{content:"";width:10px;height:10px;border-radius:2px;flex:none;background:var(--pn-z)}
.pn-t-s::before{background:var(--pn-s)}
.pn-tabulka td small{display:block;margin:2px 0 0 18px;font-size:12.5px;color:var(--n-t3)}
.pn-tabulka tbody tr.kd-akt td,.pn-tabulka tbody tr.kd-akt th{background:var(--n-modra)}
.pn-upoz{max-width:860px}

/* ── Podrobnosti: zbalené sekcie ako na stránke goAML (.ga-zb) ── */
.pn-sekcia-zb{padding:56px 0;background:var(--bg2);border-top:1px solid var(--bdr);border-bottom:1px solid var(--bdr)}
.pn-uvod{color:var(--muted);font-size:.97rem;line-height:1.8;max-width:720px;margin:0 0 30px}
.pn-zbalene{margin-top:30px}
.pn-zb{border-top:1px solid var(--bdr)}
.pn-zb:last-child{border-bottom:1px solid var(--bdr)}
.pn-zb summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;cursor:pointer;list-style:none;border-radius:4px}
.pn-zb summary::-webkit-details-marker{display:none}
.pn-zb summary h3{display:inline;margin:0;font-family:'Playfair Display',Georgia,serif;font-size:1.1rem;font-weight:700;line-height:1.3}
.pn-zb summary::after{content:"+";flex:none;font-size:1.4rem;line-height:1;color:var(--acc)}
body.dark .pn-zb summary::after{color:var(--gold)}
.pn-zb[open] summary::after{content:"\2212"}
.pn-zb summary:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
body.dark .pn-zb summary:focus-visible{outline-color:var(--gold)}
.pn-zb ul{margin:0;padding:0 0 18px 18px;font-size:.92rem;line-height:1.65;color:var(--muted)}
.pn-zb li{margin:6px 0}
.pn-zb strong{color:var(--txt)}
.pn-uvod a,.pn-zb a,.pn-pozn a{color:var(--acc);text-decoration:underline;text-underline-offset:3px}
body.dark .pn-uvod a,body.dark .pn-zb a,body.dark .pn-pozn a{color:var(--gold)}
.pn-pozn{margin:18px 0 0;font-size:.86rem;line-height:1.6;color:var(--muted)}
.pn-zb ul,.pn-uvod,.pn-pozn{text-align:left;hyphens:manual}

/* ── Telefón ── */
@media(max-width:640px){
  .pn-rozpis{padding:18px 14px;margin-top:20px}
  .pn-nadpis{font-size:22px}
  .pn-pas{gap:14px 6px}
  .pn-husto .pn-den{height:44px}
  .pn-husto .pn-tyz{gap:2px}
  .pn-husto .pn-dc{font-size:9.5px;top:4px}
  .pn-tyz{max-width:none;gap:4px}
  .pn-den{height:50px}
  .pn-tip{min-width:0;max-width:220px}
  .pn-tabulka{font-size:14px}
  .pn-tabulka th[scope=row],.pn-tabulka td{padding:10px 10px}
  .pn-tabulka th[scope=row]{font-size:14px;max-width:96px}
  .pn-tab-wrap{overflow-x:visible}
}

/* ── Znížený pohyb: kresba hotová a nehybná, pás bez prechodov ── */
@media(prefers-reduced-motion:reduce){
  .pn-art-g,.pn-art-odkryv,.pn-art-r,.pn-art-p,.pn-art-hrot,.pn-art-hranica,.pn-art-odovzdanie,.pn-art-tep{animation:none}
  .pn-art-sken,.pn-art-tep{display:none}
  .pn-art-hranica{opacity:.9}
  .pn-st,.pn-den,.pn-tip,.pn-podiel-z{transition:none}
  .pn-rozpis,.pn-obdobie{animation:none}
}
@media print{
  .pn-art,.pn-tip,.kd-plav{display:none!important}
}
