/* ==========================================================
   Axík a násobilka – styly
   ========================================================== */
:root{
  --bg1:#0a1a33; --bg2:#0f3157;
  --card:rgba(255,255,255,.07); --card2:rgba(255,255,255,.11); --line:rgba(255,255,255,.14);
  --text:#f5f8ff; --muted:#a9b8d0;
  --pink:#ff5c8a; --pink2:#ff8fb0; --teal:#2dd4bf; --amber:#fbbf24; --red:#f87171; --green:#34d399; --indigo:#8b9cff;
  --r:22px; --shadow:0 12px 32px rgba(0,0,0,.28);
  --emoji:'Segoe UI Emoji','Apple Color Emoji','Noto Color Emoji','Twemoji Mozilla',sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;min-height:100vh;color:var(--text);
  font-family:'Nunito',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;font-weight:700;line-height:1.35;
  background:
    radial-gradient(900px 500px at 15% -10%,rgba(45,212,191,.22),transparent 60%),
    radial-gradient(800px 500px at 110% 110%,rgba(255,92,138,.22),transparent 55%),
    linear-gradient(180deg,var(--bg1),var(--bg2));
  background-attachment:fixed;-webkit-tap-highlight-color:transparent;user-select:none;
}
.emo{font-family:var(--emoji);font-weight:400}
button{font:inherit;color:inherit}
h2{margin:0 0 .4em;font-size:1.5rem;font-weight:900}
h3{margin:1.1em 0 .45em;font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:800}
p{margin:.3em 0}
.hint{color:var(--muted);font-weight:600;font-size:.95rem}
.center{text-align:center}
.hidden{visibility:hidden}

/* ---------- topbar ---------- */
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 18px;background:rgba(8,20,40,.78);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.brand{font-size:1.25rem;font-weight:900;display:flex;gap:.4em;align-items:center;white-space:nowrap}
.brand-sub{color:var(--pink2);font-weight:800;font-size:.85rem}
.hud{display:flex;gap:10px;align-items:center}
.pill{display:inline-flex;align-items:center;gap:.35em;padding:.4em .9em;border-radius:999px;background:var(--card2);border:1px solid var(--line);font-weight:800;position:relative;white-space:nowrap}
.pill.coins{color:var(--amber)}.pill.coins b{color:#fff}
.pill.streak{color:#ffb454;transition:all .2s}
.pill.streak.hot{background:rgba(255,140,0,.28);border-color:#ff9f43;box-shadow:0 0 14px rgba(255,159,67,.4)}
.pill.player{cursor:pointer;color:#fff;max-width:11em}
.pill.player b{overflow:hidden;text-overflow:ellipsis}
.pill.player:hover{background:rgba(255,255,255,.18)}
.caret{color:var(--muted);font-size:.8em}
@media(max-width:560px){.brand-sub{display:none}.pill{padding:.4em .7em}}
.icon-btn{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--card2);cursor:pointer;font-size:1.15rem;display:grid;place-items:center;transition:transform .1s,background .15s;flex:0 0 auto}
.icon-btn:hover{background:rgba(255,255,255,.18);transform:scale(1.06)}

/* ---------- layout ---------- */
main{max-width:1100px;margin:0 auto;padding:18px 16px 40px}
.footer{text-align:center;padding:0 16px 22px;font-size:.75rem;font-weight:600;color:var(--muted);opacity:.55;transition:opacity .2s}
.footer:hover{opacity:.9}
.footer a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(169,184,208,.4)}
.footer a:hover{color:var(--text);border-color:currentColor}
.screen{display:none}.screen.active{display:block;animation:fadeIn .25s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:var(--shadow);backdrop-filter:blur(6px)}
.row{display:flex;gap:12px;margin-top:12px}.row.wrap{flex-wrap:wrap;justify-content:center}
.screen-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}.screen-head h2{margin:0}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45em;padding:.75em 1.3em;border-radius:999px;border:1px solid var(--line);background:var(--card2);cursor:pointer;font-weight:800;font-size:1rem;transition:transform .12s,background .15s,box-shadow .15s;flex:1}
.btn:hover{background:rgba(255,255,255,.18);transform:translateY(-1px)}
.btn:active{transform:translateY(1px) scale(.98)}
.btn.primary{background:linear-gradient(135deg,var(--pink),#ff8a5c);border:none;color:#fff;box-shadow:0 8px 24px rgba(255,92,138,.35)}
.btn.primary:hover{background:linear-gradient(135deg,#ff6f98,#ff9a72);box-shadow:0 10px 28px rgba(255,92,138,.5)}
.btn.big{font-size:1.3rem;padding:.85em 1.6em;width:100%;margin-top:20px}
.btn.small{font-size:.9rem;padding:.55em 1em;flex:0 0 auto;width:100%}
.btn.ghost{background:transparent}
.btn.danger{color:var(--red)}
.btn.buy{background:linear-gradient(135deg,var(--amber),#ff9f43);border:none;color:#3b2300}
.btn.buy:hover{background:linear-gradient(135deg,#ffcf4a,#ffb060)}
.btn.disabled,.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important}
.link-btn{background:none;border:none;color:var(--indigo);cursor:pointer;font-weight:800;padding:.25em .5em;border-radius:8px}
.link-btn:hover{background:rgba(255,255,255,.08)}

/* ---------- domů ---------- */
.home-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
@media(max-width:820px){.home-grid{grid-template-columns:1fr}}
.pet-name-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;flex-wrap:wrap}
.names{display:flex;flex-wrap:wrap;gap:2px 8px}
.pet-name{font-size:1.2rem;font-weight:900;background:none;border:none;cursor:pointer;padding:.2em .5em;border-radius:12px}
.pet-name:hover{background:rgba(255,255,255,.08)}
.pet-name .small{font-size:.7em;opacity:.7}
.pet-name-input{font:inherit;font-size:1.3rem;font-weight:900;padding:.2em .5em;border-radius:12px;border:2px solid var(--pink);background:rgba(0,0,0,.25);color:#fff;width:10em;outline:none}
.pet-mini-stats{display:flex;gap:14px;color:var(--muted);font-weight:800}
.pet-mini-stats b{color:#fff}
.level-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
@media(max-width:560px){.level-picker{grid-template-columns:repeat(3,1fr)}}
.level{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border-radius:16px;border:2px solid var(--line);background:var(--card);cursor:pointer;transition:all .15s}
.level .emo{font-size:1.7rem}.lvl-name{font-weight:900;font-size:.85rem}.lvl-time{font-size:.75rem;color:var(--muted)}
.level:hover{background:var(--card2)}
.level.active{border-color:var(--pink);background:rgba(255,92,138,.18);box-shadow:0 0 0 4px rgba(255,92,138,.15)}
.table-picker,.count-picker{display:flex;flex-wrap:wrap;gap:8px}
.chip{width:44px;height:44px;border-radius:50%;border:2px solid var(--line);background:var(--card);cursor:pointer;font-weight:900;font-size:1.05rem;transition:all .15s}
.chip.wide{width:auto;padding:0 20px;border-radius:999px}
.chip:hover{background:var(--card2)}
.chip.on{background:var(--teal);border-color:var(--teal);color:#05302b}
.table-quick{margin-top:6px;display:flex;gap:4px;flex-wrap:wrap}
.shake-it{animation:shake .45s}

/* ---------- akvárium + axolotl ---------- */
.tank{
  position:relative;aspect-ratio:4/3;border-radius:18px;overflow:hidden;container-type:inline-size;isolation:isolate;
  background:linear-gradient(180deg,#5fd3f3 0%,#2a9fd6 45%,#1c6fb0 100%);
  box-shadow:inset 0 0 0 3px rgba(255,255,255,.18),inset 0 -20px 40px rgba(0,0,0,.15);
}
.tank.mini{aspect-ratio:16/9}
.tank.bg-sunset{background:linear-gradient(180deg,#ffb36b 0%,#ff7b9c 30%,#7c5cff 70%,#2b2f77 100%)}
.tank.bg-night{background:
  radial-gradient(2px 2px at 20% 20%,#fff 60%,transparent 62%),radial-gradient(2px 2px at 70% 15%,#fff 60%,transparent 62%),
  radial-gradient(1.5px 1.5px at 45% 35%,#fff 60%,transparent 62%),radial-gradient(2px 2px at 85% 40%,#fff 60%,transparent 62%),
  radial-gradient(1.5px 1.5px at 10% 50%,#fff 60%,transparent 62%),radial-gradient(1.5px 1.5px at 60% 55%,#fff 60%,transparent 62%),
  linear-gradient(180deg,#0b1030 0%,#1c2a6b 60%,#123a5c 100%)}
.tank.bg-lagoon{background:linear-gradient(180deg,#a6f3ff 0%,#3ee0d0 40%,#1aa7a0 100%)}
.tank.bg-deep{background:linear-gradient(180deg,#1d2b6b 0%,#171f52 50%,#0b1030 100%)}
.tank::before{content:'';position:absolute;inset:0 -12%;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.16) 38%,transparent 44%,transparent 55%,rgba(255,255,255,.1) 62%,transparent 68%);pointer-events:none;z-index:0;animation:rays 7s ease-in-out infinite alternate}
@keyframes rays{from{transform:translateX(-5%)}to{transform:translateX(5%)}}
.tank::after{content:'';position:absolute;left:0;right:0;bottom:0;height:13%;background:linear-gradient(180deg,rgba(244,214,153,0) 0%,#ecd39a 35%,#d9b874 100%);z-index:0;pointer-events:none}
.axo-wrap{position:absolute;left:20%;bottom:7%;width:60%;aspect-ratio:240/200;z-index:2;animation:bob 3.2s ease-in-out infinite}
.tank.mini .axo-wrap{width:36%;left:32%;bottom:4%}
.axo-wrap.friend{left:0;bottom:4%;width:32%;z-index:3;animation-delay:-1.6s}
.tank.mini .axo-wrap.friend{left:8%;bottom:2%;width:22%}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3%)}}
.axo{width:100%;height:100%;display:block;overflow:visible}
.axo .eye{transform-box:fill-box;transform-origin:center;animation:blink 4.6s infinite}
@keyframes blink{0%,93%,100%{transform:scaleY(1)}96%{transform:scaleY(.08)}}
.gills{transform-box:fill-box;transform-origin:center;animation:gills 2.6s ease-in-out infinite}
@keyframes gills{0%,100%{transform:scale(1)}50%{transform:scale(1.04,1.07)}}
.mouth{display:none;fill:none;stroke:#2b2140;stroke-width:3.5;stroke-linecap:round}
.m-think{fill:#2b2140;stroke:none}
.tank[data-mood="idle"] .m-idle,.tank[data-mood="happy"] .m-happy,.tank[data-mood="sad"] .m-sad,.tank[data-mood="think"] .m-think{display:block}
.tank[data-mood="sad"] .axo .eye{animation:none}
.axo.bounce{animation:bounce .6s ease}
.axo.jump{animation:jump .8s ease}
.axo.shake{animation:shake .5s ease}
@keyframes bounce{0%,100%{transform:translateY(0) scale(1)}30%{transform:translateY(-10%) scale(1.04,.96)}60%{transform:translateY(0) scale(.98,1.02)}}
@keyframes jump{0%,100%{transform:translateY(0) rotate(0)}30%{transform:translateY(-18%) rotate(-6deg)}60%{transform:translateY(-12%) rotate(6deg)}}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-5%)}40%{transform:translateX(5%)}60%{transform:translateX(-4%)}80%{transform:translateX(4%)}}
.item{position:absolute;transform:translate(-50%,-50%);line-height:1;pointer-events:none;font-family:var(--emoji);z-index:1;filter:drop-shadow(0 3px 3px rgba(0,0,0,.25))}
.item .emo{display:inline-block}
.anim-bubble{animation:bubble 3.5s linear infinite}
@keyframes bubble{0%{transform:translateY(0);opacity:0}15%{opacity:.95}100%{transform:translateY(-32cqw);opacity:0}}
.anim-swim{animation:swim 9s ease-in-out infinite}
@keyframes swim{0%{transform:translateX(0) scaleX(1)}45%{transform:translateX(-34cqw) scaleX(1)}50%{transform:translateX(-34cqw) scaleX(-1)}95%{transform:translateX(0) scaleX(-1)}100%{transform:translateX(0) scaleX(1)}}
.anim-crawl{animation:crawl 14s ease-in-out infinite alternate}
@keyframes crawl{from{transform:translateX(0)}to{transform:translateX(18cqw)}}
.anim-float{animation:floaty 3s ease-in-out infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-8%)}}
.speech{position:absolute;left:50%;top:8%;transform:translateX(-50%) scale(.8);background:#fff;color:#1b2340;padding:.35em .8em;border-radius:14px;font-weight:900;font-size:clamp(.8rem,5cqw,1.1rem);white-space:nowrap;z-index:5;opacity:0;box-shadow:0 6px 16px rgba(0,0,0,.2)}
.speech::after{content:'';position:absolute;left:50%;bottom:-6px;width:12px;height:12px;background:#fff;transform:translateX(-50%) rotate(45deg)}
.speech.show{animation:speech .25s ease forwards}
@keyframes speech{to{opacity:1;transform:translateX(-50%) scale(1)}}
.speech[hidden]{display:none}

/* ---------- hra ---------- */
.game-top{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.game-top .pill{font-size:1.05rem}
.game-grid{display:grid;grid-template-columns:1fr 300px;gap:20px;align-items:start}
@media(max-width:820px){.game-grid{grid-template-columns:1fr}.pet-col{order:2}}
.q-card{position:relative;text-align:center;padding:26px 20px 22px;overflow:hidden}
.q-text{font-size:clamp(2.6rem,11vw,5.6rem);font-weight:900;letter-spacing:.02em;display:flex;justify-content:center;align-items:center;gap:.18em;line-height:1.1}
.q-op{color:var(--muted);font-weight:800}
.q-ans{display:inline-grid;place-items:center;min-width:1.6em;height:1.35em;padding:0 .2em;border-radius:.25em;border:3px dashed rgba(255,255,255,.35);color:var(--pink2);transition:all .2s}
.q-ans.typing{border-style:solid;border-color:var(--indigo);color:#fff}
.q-ans.ok{background:var(--green);border-color:var(--green);color:#052e21;border-style:solid}
.q-ans.bad{background:var(--red);border-color:var(--red);color:#3c0d0d;border-style:solid}
.think-hint{margin:14px 0 6px;color:var(--muted);font-weight:800;font-size:1.05rem;min-height:1.5em}
.dots i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--muted);margin-left:5px;animation:dot 1.2s infinite}
.dots i:nth-child(2){animation-delay:.2s}.dots i:nth-child(3){animation-delay:.4s}
@keyframes dot{0%,80%,100%{opacity:.2;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}
.typed-hint{position:absolute;top:10px;right:14px;font-size:.8rem;color:var(--indigo);opacity:0;transition:opacity .2s}
.typed-hint.show{opacity:1}
.timer{height:14px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden;margin:8px 0 18px}
.timer-fill{height:100%;width:100%;border-radius:999px;background:var(--teal);transition:background .3s}
.timer.waiting .timer-fill{animation:pulse 1.2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.2}50%{opacity:.45}}
.options{display:grid;grid-template-columns:1fr 1fr;gap:14px;min-height:172px}
.opt{font-size:clamp(1.8rem,6vw,2.7rem);font-weight:900;padding:.5em;border-radius:20px;background:var(--card2);border:2px solid var(--line);cursor:pointer;transition:transform .1s,background .15s,border-color .15s;animation:popIn .28s cubic-bezier(.2,.9,.3,1.3) both}
.opt:nth-child(2){animation-delay:.05s}.opt:nth-child(3){animation-delay:.1s}.opt:nth-child(4){animation-delay:.15s}
@keyframes popIn{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
.opt:hover:not(:disabled){background:rgba(255,255,255,.2);transform:translateY(-3px);border-color:rgba(255,255,255,.4)}
.opt:disabled{cursor:default}
.opt.correct{background:var(--green);border-color:var(--green);color:#052e21;animation:bounce .5s}
.opt.wrong{background:var(--red);border-color:var(--red);color:#3c0d0d;animation:shake .45s}
.reveal{margin-top:14px;min-height:1.6em;font-size:1.3rem;color:var(--muted)}
.reveal b{color:#fff;font-size:1.2em}
.float-coin{position:absolute;left:50%;top:16%;transform:translateX(-50%);font-weight:900;font-size:1.4rem;color:var(--amber);pointer-events:none;animation:floatUp 1.2s ease-out forwards;text-shadow:0 2px 6px rgba(0,0,0,.45);white-space:nowrap;z-index:3}
@keyframes floatUp{from{opacity:0;transform:translate(-50%,10px) scale(.8)}20%{opacity:1;transform:translate(-50%,0) scale(1.1)}to{opacity:0;transform:translate(-50%,-80px) scale(1)}}

/* ---------- shrnutí ---------- */
.summary-card{max-width:640px;margin:0 auto;text-align:center}
.summary-emoji{font-size:4.5rem;line-height:1;animation:jump 1s ease;font-family:var(--emoji)}
.summary-stats{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:16px 0}
.stat{background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:12px 18px;min-width:120px}
.stat-val{font-size:1.4rem;font-weight:900}.stat-lbl{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.mistakes h3{margin-top:.6em}
.mistake-list{display:flex;flex-direction:column;gap:6px;max-width:420px;margin:0 auto 10px}
.mistake{display:flex;justify-content:space-between;gap:12px;background:rgba(248,113,113,.12);border:1px solid rgba(248,113,113,.3);border-radius:12px;padding:8px 14px}
.mq{font-size:1.15rem}.mq b{color:var(--green)}.mg{color:var(--muted);font-size:.9rem;align-self:center}

/* ---------- obchod ---------- */
.shop-layout{display:grid;grid-template-columns:340px 1fr;gap:20px;align-items:start}
@media(max-width:820px){.shop-layout{grid-template-columns:1fr}}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.tab{padding:.5em 1em;border-radius:999px;border:2px solid var(--line);background:var(--card);cursor:pointer;font-weight:800;transition:all .15s}
.tab:hover{background:var(--card2)}
.tab.active{background:var(--pink);border-color:var(--pink);color:#fff}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}
.shop-item{background:var(--card2);border:2px solid var(--line);border-radius:18px;padding:14px 10px 12px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;transition:transform .12s,border-color .15s,box-shadow .15s}
.shop-item:hover{transform:translateY(-2px)}
.shop-item.equipped{border-color:var(--teal);box-shadow:0 0 0 3px rgba(45,212,191,.2)}
.shop-emoji{font-size:2.6rem;line-height:1;font-family:var(--emoji)}
.shop-axo svg{width:70px;height:58px;display:block;overflow:visible}
.shop-name{font-weight:800;font-size:.9rem;min-height:2.4em;display:flex;align-items:center}
.shop-empty{color:var(--muted);padding:20px;text-align:center;grid-column:1/-1}

/* ---------- přehled ---------- */
.heatmap{display:grid;grid-template-columns:repeat(11,1fr);gap:4px;max-width:560px;margin:10px 0 16px}
.hm-cell{aspect-ratio:1;display:grid;place-items:center;border-radius:8px;font-size:clamp(.6rem,2vw,.95rem);font-weight:800;background:rgba(255,255,255,.14);border:none;color:#fff}
.hm-empty{background:rgba(255,255,255,.06);color:var(--muted)}
.hm-head{background:transparent;color:var(--muted);font-weight:900}
.hm-row{border:1px solid var(--line);background:var(--card);cursor:pointer;color:#fff;transition:all .15s}
.hm-row:hover{background:var(--pink);border-color:var(--pink)}

/* ---------- hráči ---------- */
.modal{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(4,10,24,.72);backdrop-filter:blur(4px);animation:fadeIn .2s}
.modal[hidden]{display:none}
.modal-card{width:100%;max-width:520px;max-height:90vh;overflow:auto}
.modal-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}
.modal-head h2{margin:0}
.player-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.player-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;background:var(--card2);border:2px solid var(--line)}
.player-row.current{border-color:var(--teal);box-shadow:0 0 0 3px rgba(45,212,191,.15)}
.player-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.player-info b{font-size:1.1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.player-info span{color:var(--muted);font-size:.85rem}
.player-row .btn.small{width:auto}
.tag{color:var(--teal);font-weight:900;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}
.player-form{display:flex;gap:8px;flex-wrap:wrap}
.player-form input{flex:1 1 150px;font:inherit;font-weight:700;padding:.65em .9em;border-radius:12px;border:2px solid var(--line);background:rgba(0,0,0,.25);color:#fff;outline:none;min-width:0}
.player-form input::placeholder{color:var(--muted);font-weight:600}
.player-form input:focus{border-color:var(--pink)}
.player-form .btn{flex:1 1 100%}

/* ---------- konfety ---------- */
#confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:99}
#confetti span{position:absolute;top:-8vh;font-family:var(--emoji);animation:fall linear forwards;will-change:transform}
@keyframes fall{to{transform:translateY(115vh) rotate(720deg)}}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
