/* Sprievodca registráciou (kroky 1 až 5). Stavia na auth.css: rovnaký papier, pult a jedna zelená.
   Hravosť je v pohybe: pečiatky na postupe, karta, ktorá sa mení pod rukou, a plynulé prechody medzi krokmi. */

:root{--spring:cubic-bezier(.34,1.56,.64,1);--err-bg:#fef0ee}

/* farba karty sa mení plynulo (registrovaná vlastnosť sa dá animovať) */
@property --accent{syntax:"<color>";inherits:true;initial-value:#1f6f5c}

/* ── prechody medzi krokmi (aj medzi stránkami) ── */
@view-transition{navigation:auto}
.ob-steps{view-transition-name:ob-steps}
.ob-card-wrap{view-transition-name:ob-card}
.ob-wall{view-transition-name:ob-poster}
.ob-pane:not([hidden]){view-transition-name:ob-pane}
::view-transition-group(*){animation-duration:.5s;animation-timing-function:var(--ease)}
::view-transition-old(root),::view-transition-new(root){animation-duration:.3s}
::view-transition-old(ob-pane){animation:.28s var(--ease) both ob-out}
::view-transition-new(ob-pane){animation:.5s .06s var(--ease) both ob-in}
html[data-dir=back]::view-transition-old(ob-pane){animation-name:ob-out-back}
html[data-dir=back]::view-transition-new(ob-pane){animation-name:ob-in-back}
@keyframes ob-out{to{opacity:0;transform:translateX(-36px)}}
@keyframes ob-in{from{opacity:0;transform:translateX(44px)}}
@keyframes ob-out-back{to{opacity:0;transform:translateX(36px)}}
@keyframes ob-in-back{from{opacity:0;transform:translateX(-44px)}}

/* ── rozloženie: obsah od vrchu, aby postup ostal na mieste; karta na pulte ide so stránkou ── */
.ob-main{align-items:flex-start;padding-top:100px}
.ob-wrap{max-width:460px}
.ob-stage{align-items:flex-start;overflow:clip;
  background:linear-gradient(to bottom,var(--bg) 0 68%,#d4d8d2 68% calc(68% + 1px),var(--counter) calc(68% + 1px)) fixed}
.ob-stage:before{display:none}
.ob-stage-in{position:sticky;top:104px;max-width:390px;gap:18px}
.no-js .ob-js-only,.js [data-start-hidden]{display:none}
.ob-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.ob-later{font-size:14px;font-weight:600;color:var(--ink-2);text-decoration:none;white-space:nowrap}
.ob-later:hover{color:var(--ink);text-decoration:underline}
.ob-peek{display:none}

.ob-poster:has(.ps[data-format=card]) .ob-tape,.ob-poster:has(.ps[data-format=sticker]) .ob-tape{width:60px;height:20px}

/* ── náhľad karty na pulte ── */
.ob-card-wrap{perspective:1400px}
.ob-card{max-width:none}
.ob-card .lc-card{transition:background-color .55s var(--ease),color .55s var(--ease)}
.ob-card .lc-card{box-shadow:0 1px 2px rgba(15,20,18,.05),0 40px 70px -40px rgba(15,20,18,.45),0 18px 28px -20px rgba(15,20,18,.25)}
.ob-card .lc-stamp .ic{display:block}
.ob-card[data-program=stamps] .ob-only-points,.ob-card[data-program=points] .ob-only-stamps{display:none}
.ob-card .lc-word{transition:opacity .2s}
.ob-card .lc-word.is-placeholder{opacity:.6}
.ob-card .lc-logo[hidden],.ob-card .lc-mark[hidden]{display:none}
.ob-card .lc-hf .lc-val{font-variant-numeric:tabular-nums}
.ob-card .lc-progress i{transition:width .6s var(--ease)}
.ob-card.is-bump .lc-card{animation:ob-bump .5s var(--spring)}
@keyframes ob-bump{35%{transform:scale(.965) rotate(-.6deg)}}
.ob-card .lc-stamp.ob-pop{animation:ob-stamp-in .5s var(--spring) both}
@keyframes ob-stamp-in{0%{transform:scale(.2);opacity:0}100%{opacity:1}}
.ob-card .lc-mark.ob-pop{animation:ob-press .4s var(--spring)}
.ob-offers{margin-top:16px}
.ob-offers li{animation:ob-found .45s var(--spring) both}
.ob-offers li.is-leaving{animation:ob-leave .3s var(--ease) forwards}
@keyframes ob-leave{to{opacity:0;transform:translateX(20px) scale(.96)}}
.ob-offers:not(:has(li)) h2:after{content:" – zatiaľ žiadne";font-weight:500;text-transform:none;letter-spacing:0}
.ob .au-stage-note{text-wrap:balance}
body[data-step="1"] [data-stage-for="2"],body[data-step="2"] [data-stage-for="1"]{display:none}
.ob-stage-extra .au-next{animation:ob-rise .6s .5s var(--ease) both}

/* ── menšie obrazovky: náhľad je vysúvací panel pri spodnom okraji ── */
@media (max-width:1020px){
  .ob-main{padding-top:92px;padding-bottom:132px}
  .ob .au-stage.ob-stage{display:block;position:fixed;z-index:30;left:0;right:0;bottom:0;max-height:86svh;padding:0 20px 24px;overflow:auto;overscroll-behavior:contain;
    background:#eceFea;border:1px solid #d7dcd5;border-bottom:0;border-radius:24px 24px 0 0;
    box-shadow:0 -18px 40px -24px rgba(15,20,18,.4);transform:translateY(calc(100% - 112px));transition:transform .32s cubic-bezier(.2,.85,.25,1);will-change:transform;contain:layout paint}
  .ob .au-stage.ob-stage.is-open{transform:none}
  .ob:has(.ob-main :is(input:not([type=radio],[type=checkbox],[type=color],[type=file]),textarea,select):focus) .au-stage.ob-stage:not(.is-open){transform:translateY(100%)}
  /* výsledky z Google: náhľad sa schová, aby neprekryl zoznam ani po zavretí klávesnice */
  .ob:has([data-place-list]:not([hidden])) .au-stage.ob-stage{transform:translateY(100%)}
  .ob-stage-in{position:static;max-width:400px;margin:0 auto}
  .ob-peek{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:center;gap:8px;width:calc(100% + 40px);margin:0 -20px 4px;height:40px;border:0;background:inherit;
    font:600 13px var(--sans);color:var(--ink-2);cursor:pointer}
  .ob-peek:before{content:"";position:absolute;top:8px;left:50%;width:40px;height:4px;margin-left:-20px;border-radius:4px;background:#bfc6c1}
  .ob-peek span{margin-top:8px}
  .ob-peek svg{width:16px;height:16px;margin-top:8px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .32s cubic-bezier(.2,.85,.25,1)}
  .ob .au-stage.ob-stage.is-open .ob-peek svg{transform:rotate(180deg)}
  .ob-wall{--ph:min(60svh,480px)}
  .ob-stage-extra,.ob .ob-stage .au-stage-note{display:none}
}
@media (max-width:520px){
  .ob-main{padding:84px 16px 132px}
  .au-field .ob-chips{grid-template-columns:repeat(2,minmax(0,1fr))}
  .au-field .ob-chip{grid-template-columns:auto 1fr;justify-items:start;align-items:center;gap:10px;padding:10px 12px;text-align:left;font-size:13.5px}
  .ob-chip-emoji{font-size:22px}
  .ob-ico{grid-template-columns:auto minmax(0,1fr)}
  .ob-ico-btn{grid-column:1/-1;justify-content:center}
  .ob-row{grid-template-columns:1fr}
  .ob-icons{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
  .ob-icon svg{width:21px;height:21px}
  .ob-tpls{gap:8px}
  .ob-formats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ob-layouts{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:12px}
  .ob-reward{grid-template-columns:auto auto minmax(0,1fr);row-gap:6px}
  .ob-cost{grid-column:2/-1;justify-self:start}
  .ob-actions{flex-wrap:wrap}
  .ob-actions .au-btn{flex-basis:100%}
  .ob-actions .ob-skip{margin:0 auto;padding:4px}
}

@media (prefers-reduced-motion:reduce){
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none !important}
  .ob-card{transition:none}
}

/* QR v náhľade karty */
/* voľba pečiatky / bodov: jeden stĺpec, aby sa texty nelámali */
.ob-fields .au-choices{grid-template-columns:1fr}
.ob-fields .au-choice{min-width:0;align-items:center}
.ob-fields .au-choice-ic{flex:none}
.ob-fields .au-choice-t b,.ob-fields .au-choice-t small{display:block;overflow-wrap:anywhere}
/* šablóny karty: jemnejšie náhľady */
.ob-tpls{gap:12px}
.ob-tpl .tpl-thumb{filter:saturate(.72) opacity(.92);border-radius:9px;transition:filter .2s,box-shadow .2s}
.ob-tpl:hover .tpl-thumb{transform:none;filter:saturate(.9)}
.ob-tpl:has(input:checked) .tpl-thumb{filter:none;box-shadow:inset 0 0 0 1px var(--tl),0 0 0 2px #fff,0 0 0 3.5px var(--ink-2)}

/* prepínač pečiatky / body */
.ob-prog{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;border-radius:16px;background:#eef1ef}
.au-field .ob-prog label{position:relative;cursor:pointer;font-weight:inherit}
.ob-prog input{position:absolute;opacity:0;pointer-events:none}
.ob-prog span{display:flex;align-items:center;justify-content:center;gap:9px;height:46px;border-radius:12px;font-weight:600;font-size:15px;color:var(--ink-2);transition:background .2s,color .2s,box-shadow .2s}
.ob-prog svg{width:20px;height:20px;flex:none;fill:currentColor;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ob-prog circle{stroke:none}.ob-prog circle.o{fill:none;stroke:currentColor;stroke-width:1.5}.ob-prog path{fill:none}
.ob-prog label:hover span{color:var(--ink)}
.ob-prog input:checked+span{background:#fff;color:var(--brand-deep);box-shadow:0 1px 2px rgba(0,0,0,.07),0 6px 12px -6px rgba(0,0,0,.2)}
.ob-prog input:focus-visible+span{outline:2px solid var(--brand);outline-offset:2px}

/* dotykové zariadenia: polia aspoň 16 px, inak iPhone pri ťuknutí priblíži stránku */
@media (pointer:coarse){.ob-cost input,.ob-reward-name,.au-field input,.au-field textarea,.au-field select{font-size:16px}}

/* ── registrácia: iPhone s Apple Wallet kartou, ktorá sa mení podľa zadaného podniku ── */
.rp{--sf:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Inter,sans-serif;display:grid;justify-items:center;view-transition-name:ob-card}
.rp-dev{position:relative;width:330px;height:640px;padding:11px;border-radius:56px;background:#1c1d20;box-shadow:inset 0 0 0 1.5px #55585e,inset 0 0 0 5px #0c0c0d,0 50px 80px -34px rgba(0,0,0,.6),0 24px 40px -26px rgba(0,0,0,.5)}
.rp-island{position:absolute;z-index:8;top:22px;left:50%;width:100px;height:29px;margin-left:-50px;border-radius:20px;background:#000}
.rp-screen{position:relative;height:100%;border-radius:45px;overflow:hidden;background:#000;color:#fff;font-family:var(--sf)}
.rp-sb{position:relative;z-index:7;display:flex;align-items:center;justify-content:space-between;height:50px;padding:7px 26px 0 38px;font:600 15px/1 var(--sf)}
.rp-sb span{display:flex;align-items:center;gap:5px}.rp-sb svg{display:block;fill:currentColor}
.rp-head{display:flex;align-items:center;justify-content:space-between;height:54px;padding:0 16px 4px 18px}
.rp-head b{font:700 30px/1 var(--sf)}
.rp-head i{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:rgba(120,120,128,.3)}
.rp-head svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round}
.rp-slot{padding:0 10px;transition:opacity .28s,transform .4s var(--ease)}
.rp-slot .pass{width:340px;zoom:.847;cursor:default}
.rp-slot .pass:active{transform:none}
.rp-slot.rp-swap{opacity:0;transform:translateY(14px) scale(.97)}
/* swajp ukážkových kariet v kroku 1 (register-preview.js) */
.rp-slot.rp-out{opacity:0;transform:translateX(-46%) scale(.94);transition:opacity .34s,transform .38s var(--ease)}
.rp-slot.rp-in{opacity:0;transform:translateX(46%) scale(.94);transition:none}
.rp-toast{position:absolute;z-index:6;left:12px;right:12px;top:58px;display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:20px;background:rgba(60,60,64,.88);-webkit-backdrop-filter:blur(20px) saturate(1.6);backdrop-filter:blur(20px) saturate(1.6);font:600 13.5px/1.2 var(--sf);opacity:0;transform:translateY(-130%) scale(.96);transition:transform .6s var(--spring),opacity .3s;pointer-events:none}
.rp-toast svg{width:22px;height:22px;flex:none;padding:4px;border-radius:50%;background:#30d158;fill:none;stroke:#fff;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round}
.rp-toast.on{opacity:1;transform:none}
.rp-note{max-width:34ch;margin-inline:auto;text-align:center}
@media (max-height:860px) and (min-width:961px){.rp-dev{zoom:.86}}
.rp-slot .wordmark{transition:opacity .2s}
.rp-slot .wordmark.rp-empty{opacity:.55}

.rp-gen{display:grid;justify-items:center;gap:8px;margin-top:22px}
.rp-gen-btn{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border:0;border-radius:999px;background:var(--ink,#0b0b0b);color:#fff;font:700 16px var(--display,Manrope),sans-serif;cursor:pointer;box-shadow:0 14px 28px -14px rgba(0,0,0,.55);transition:transform .2s,box-shadow .2s}
.rp-gen-btn:hover{transform:translateY(-2px);box-shadow:0 18px 32px -14px rgba(0,0,0,.6)}
.rp-gen-btn:active{transform:scale(.97)}
.rp-gen-btn svg{width:21px;height:21px;fill:none;stroke:#fff;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.rp-gen-btn.spin svg{animation:rpSpin .7s var(--ease,ease)}
.rp-gen-note{margin:0;max-width:34ch;text-align:center;font-size:13.5px;color:var(--muted,#6b7280)}
@keyframes rpSpin{to{transform:rotate(180deg) scale(1.2)}}
@media (max-height:860px) and (min-width:961px){.rp-gen{margin-top:12px}}

/* ── krok 1: voľba programu (pečiatky alebo body) ── */
.ob-programs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ob-program-opt{position:relative;display:block;cursor:pointer}
.ob-program-opt input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.ob-program-body{display:grid;gap:6px;height:100%;padding:16px;border-radius:16px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line,#e3e7e2);transition:box-shadow .2s,transform .2s}
.ob-program-body b{font:700 17px var(--display,Manrope),sans-serif}
.ob-program-body small{color:var(--muted,#6b7280);font-size:13.5px;line-height:1.45}
.ob-program-opt:hover .ob-program-body{box-shadow:inset 0 0 0 1.5px #c3c9c2}
.ob-program-opt input:checked + .ob-program-body{box-shadow:inset 0 0 0 2.5px var(--brand,#1f6f5c);background:var(--brand-wash,#eef6f2)}
.ob-program-opt input:focus-visible + .ob-program-body{outline:3px solid rgba(31,111,92,.35);outline-offset:2px}
.ob-program-vis{display:flex;gap:5px;margin-top:4px}
.ob-program-vis i{width:20px;height:20px;border-radius:50%;box-shadow:inset 0 0 0 1.5px #c9cfc8}
.ob-program-vis i.on{background:var(--brand,#1f6f5c);box-shadow:none}
.ob-program-bar{display:block;height:10px;border-radius:99px;background:#e3e8e4;overflow:hidden}
.ob-program-bar i{display:block;width:62%;height:100%;border-radius:99px;box-shadow:none;background:linear-gradient(90deg,#8fd4bb,var(--brand,#1f6f5c))}
@media (max-width:520px){.ob-programs{grid-template-columns:1fr}}

/* ── krok 2: výber karty ── */
.oc-tabs{display:flex;gap:6px;margin:18px 0 14px;padding:4px;border-radius:14px;background:#eceeea}
.oc-tabs button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 14px;border:0;border-radius:11px;background:none;color:var(--ink-2,#444);font:700 14.5px var(--display,Manrope),sans-serif;cursor:pointer}
.oc-tabs button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.oc-tabs button[aria-selected=true]{background:#fff;color:var(--ink,#0b0b0b);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.oc-grid{display:grid;grid-template-columns:repeat(auto-fill,170px);justify-content:space-between;gap:12px;margin-top:12px;max-height:520px;overflow:auto;padding:4px 4px 8px;scrollbar-width:thin}
.oc-card{display:grid;gap:6px;padding:0;border:0;background:none;text-align:left;cursor:pointer;color:inherit}
.oc-pass{display:block;width:170px;height:93px;overflow:hidden;border-radius:14px;background:var(--bg);box-shadow:0 0 0 1px rgba(0,0,0,.1);transition:box-shadow .2s,transform .2s}
.oc-pass .pass{width:340px;zoom:.5;pointer-events:none;border-radius:0;box-shadow:none}
.oc-card:hover .oc-pass{transform:translateY(-2px)}
.oc-card[aria-pressed=true] .oc-pass{box-shadow:0 0 0 3px var(--brand,#1f6f5c),0 12px 24px -14px rgba(0,0,0,.5)}
.oc-card small{font-size:12.5px;line-height:1.3;color:var(--ink-2,#444)}
.oc-gen{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.oc-gen-btn{display:inline-flex;align-items:center;gap:8px;width:auto}
.oc-gen-btn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.oc-gen-btn[aria-busy=true]{opacity:.6;pointer-events:none}
.oc-gen .au-hint{flex:1;min-width:200px;margin:0}
.oc-logo{margin-top:18px}
.oc-logo-label{font-weight:600;font-size:14px;color:var(--ink)}
.oc-logo-label small{font-weight:500;color:var(--ink-2)}
.oc-logo-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.oc-logo-pick{display:flex;align-items:center;justify-content:center;gap:9px;height:48px;padding:0 18px;border:1.5px dashed #c9cec8;border-radius:14px;background:var(--surface);color:var(--ink);font:600 15px/1 var(--sans);cursor:pointer;transition:border-color .2s,background .2s}
.oc-logo-pick:hover{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 5%,var(--surface))}
.oc-logo-pick:has(+.oc-logo-input:focus-visible){outline:2px solid var(--brand);outline-offset:2px}
.oc-logo-pick svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

/* ── krok 5: údaje a balík ── */
.od-interval{display:inline-flex;gap:4px;margin:4px 0 12px;padding:4px;border-radius:12px;background:#eceeea}
.od-interval label{position:relative;cursor:pointer}
.od-interval input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.od-interval span{display:block;padding:8px 14px;border-radius:9px;font:600 14px var(--sans,Inter),sans-serif;color:var(--ink-2,#444)}
.od-interval span em{font-style:normal;color:var(--brand,#1f6f5c);font-size:12px;font-weight:700;margin-left:6px}
.od-interval input:checked + span{background:#fff;color:var(--ink,#0b0b0b);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.od-grid{display:grid;gap:10px}
.od-plan{position:relative;display:block;cursor:pointer}
.od-plan input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.od-body{display:grid;gap:4px;padding:16px 18px;border-radius:16px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line,#e3e7e2);transition:box-shadow .2s}
.od-body b{font:700 17px var(--display,Manrope),sans-serif}
.od-body small{color:var(--muted,#6b7280);font-size:13.5px;line-height:1.45}
.od-price strong{font:800 24px var(--display,Manrope),sans-serif}
.od-price small{margin-left:4px}
.od-plan input:checked + .od-body{box-shadow:inset 0 0 0 2.5px var(--brand,#1f6f5c);background:var(--brand-wash,#eef6f2)}
.od-plan input:focus-visible + .od-body{outline:3px solid rgba(31,111,92,.35);outline-offset:2px}
.od-aside{display:grid;gap:14px;max-width:340px;margin-inline:auto}
.od-aside h2{font:800 22px var(--display,Manrope),sans-serif}
.od-aside ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.od-aside li{position:relative;padding-left:30px;font-size:15px;line-height:1.45}
.od-aside li::before{content:"";position:absolute;left:0;top:3px;width:18px;height:18px;border-radius:50%;background:var(--brand,#1f6f5c) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/12px no-repeat}

/* odmeny na výber pod kartou v iPhone (krok 3) */
.rp-offers{padding:14px 18px 0}
.rp-offers h3{margin:0 0 8px;font:600 12px var(--sf);letter-spacing:.05em;text-transform:uppercase;color:rgba(235,235,245,.6)}
.rp-offers ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.rp-offers li{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:13px;background:#1c1c1e;font:600 13.5px/1.25 var(--sf);animation:rpOfferIn .5s var(--spring,ease) both}
.rp-offers li.is-leaving{animation:rpOfferOut .25s ease forwards}
.rp-offers .lc-offer-icon{flex:none;font-size:20px}
.rp-offers .lc-offer-main{flex:1;min-width:0}
.rp-offers .lc-offer-main b{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-offers .lc-offer-side span{padding:4px 9px;border-radius:99px;background:#2c2c2e;font-size:12px}
@keyframes rpOfferIn{from{opacity:0;transform:translateY(10px) scale(.97)}}
@keyframes rpOfferOut{to{opacity:0;transform:scale(.96)}}

.od-start{display:grid;gap:10px;margin-top:6px}
.od-start .au-btn{width:100%}
.od-badge{margin-left:8px;padding:3px 9px;border-radius:99px;background:var(--brand,#1f6f5c);color:#fff;font:700 11px var(--sans,Inter),sans-serif;font-style:normal;vertical-align:2px}
