/* Tlačidlo "Nahlásit chybu" (kontrakt: skill bug-tlacidlo). Vzor Event Ops site/index.html, tokeny z /assets/tokens.css. */
main { padding-bottom: 88px; }   /* krúžok nesmie prekryť posledný riadok */
.bugfab {
  position:fixed; right:18px; z-index:9000;
  bottom:calc(18px + env(safe-area-inset-bottom, 0px));
  width:48px; height:48px; border-radius:50%; padding:0;
  display:grid; place-items:center; cursor:pointer;
  color:#F4F6FF; background:rgba(20, 30, 66, .78);
  border:1px solid rgba(255, 255, 255, .22);
  -webkit-backdrop-filter:blur(14px) saturate(160%); backdrop-filter:blur(14px) saturate(160%);
  box-shadow:0 10px 28px rgba(0, 0, 0, .38);
  transition:transform .25s cubic-bezier(.2, .8, .2, 1), box-shadow .25s, border-color .25s, background .25s;
  animation:bugfab-prichod .5s cubic-bezier(.2, .8, .2, 1) both .6s; }
.bugfab:hover, .bugfab:focus-visible {
  transform:translateY(-3px) scale(1.06);
  border-color:rgba(255, 150, 110, .8);
  background:rgba(30, 42, 88, .9);
  box-shadow:0 16px 34px rgba(230, 49, 99, .28); }
.bugfab:active { transform:scale(.94); }
.bugfab__ico, .bugfab__ok { width:22px; height:22px; grid-area:1 / 1; }
.bugfab__ico { transition:transform .35s cubic-bezier(.2, .8, .2, 1), opacity .2s; }
.bugfab:hover .bugfab__ico { animation:bugfab-kyv .6s ease-in-out; }
.bugfab__ok { opacity:0; transform:scale(.5); transition:opacity .2s, transform .3s cubic-bezier(.2, .8, .2, 1); }
.bugfab.is-done { border-color:rgba(124, 227, 166, .9); box-shadow:0 12px 30px rgba(3, 157, 74, .35); }
.bugfab.is-done .bugfab__ico { opacity:0; transform:scale(.5); }
.bugfab.is-done .bugfab__ok { opacity:1; transform:none; color:#7CE3A6; }
@keyframes bugfab-prichod {
  from { opacity:0; transform:translateY(14px) scale(.9); }
  to   { opacity:1; transform:none; } }
@keyframes bugfab-kyv {
  0%, 100% { transform:rotate(0); }
  30%      { transform:rotate(-11deg); }
  65%      { transform:rotate(8deg); } }
@media (max-width: 900px) {
  .bugfab { width:44px; height:44px; right:calc(14px + env(safe-area-inset-right, 0px)); bottom:calc(14px + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) {
  .bugfab, .bugfab:hover .bugfab__ico { animation:none; }
  .bugfab, .bugfab__ico, .bugfab__ok { transition:none; }
}
.bugbox { position:fixed; inset:0; z-index:9100; display:none; align-items:center; justify-content:center; padding:16px; }
.bugbox.is-open { display:flex; }
.bugbox__back { position:absolute; inset:0; background:rgba(4, 8, 22, .72); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.bugbox__box {
  position:relative; width:460px; max-width:100%; max-height:calc(100dvh - 32px); overflow:auto; padding:28px 24px 24px;
  border-radius:var(--r-md); color:var(--txt);
  background:linear-gradient(180deg, rgba(30, 42, 88, .96), rgba(13, 23, 55, .98));
  border:1px solid rgba(255, 255, 255, .2);
  box-shadow:inset 0 1px 0 rgba(255, 255, 255, .22), 0 40px 100px rgba(0, 0, 0, .6); }
.bugbox__close { position:absolute; top:12px; right:12px; width:44px; height:44px; border-radius:50%; background:var(--surface); border:1px solid var(--line); color:var(--txt); font-size:22px; line-height:1; display:grid; place-items:center; cursor:pointer; }
.bugbox h2 { font:900 1.45rem/1.2 var(--font); letter-spacing:-.01em; margin:0 48px 6px 0; }
.bugbox .lead2 { color:var(--muted); font-size:15px; margin:0 0 14px; }
.bugbox .lbl { display:block; font-size:13.5px; font-weight:700; color:var(--muted); margin:14px 0 7px; }
.bugcats { display:flex; flex-wrap:wrap; gap:8px; }
.bugcat {
  background:rgba(255, 255, 255, .06); border:1px solid var(--line); color:var(--txt);
  border-radius:999px; padding:0 14px; min-height:44px;
  font:600 14px var(--font); cursor:pointer;
  transition:background .2s, border-color .2s, transform .2s; }
.bugcat:hover { border-color:rgba(255, 255, 255, .3); }
.bugcat.is-on { color:#fff; border-color:transparent; background:var(--rainbow-btn); background-size:250% 100%; }
.bugcat:active { transform:scale(.96); }
.bugta { display:block; width:100%; min-height:6.5rem; padding:.75rem .9rem; font:inherit; font-size:1rem; color:var(--txt);
  background:rgba(255,255,255,.07); border:1px solid var(--line); border-radius:12px; resize:vertical; }
.bugta:focus { outline:none; border-color:#139AD7; }
.bugshot { display:flex; align-items:center; gap:10px; flex-wrap:wrap; cursor:pointer; margin-top:12px; }
.bugsbtn { display:inline-flex; align-items:center; min-height:40px; padding:0 14px; border-radius:999px; border:1px solid var(--line);
  background:transparent; color:var(--txt); font:600 14px var(--font); cursor:pointer; }
.bugsbtn[hidden] { display:none; }
.bugshot__name { color:var(--muted); font-size:13px; }
.bugsend { display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; margin-top:1rem; }
.bugsend .btn { width: auto; padding: .8rem 1.6rem; }
.bugbox__stav { color:var(--muted); font-size:14px; }
.bugbox__stav.is-err { color:var(--bad, #ff8a8a); font-weight:700; }
.bugbox [hidden], .bugfab[hidden] { display: none !important; }
.bugbox .bugpot { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.bugtoast { position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(80px + env(safe-area-inset-bottom, 0px)); z-index: 9200; max-width: calc(100vw - 32px); padding: 12px 18px; border-radius: 12px; font: 600 14.5px var(--font); color: var(--txt); background: rgba(7, 14, 36, .92); border: 1px solid rgba(124, 227, 166, .6); }
/* tokens.css: body > *:not(.ambient) { position: relative; z-index: 1 } by vzal fixed polohu; rovnako špecifický selektor ju vráti. */
body > .bugfab { position: fixed; z-index: 9000; }
body > .bugbox { position: fixed; z-index: 9100; }
body > .bugtoast { position: fixed; z-index: 9200; }
