#reactBar{position:fixed;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:40;display:flex;gap:2px;padding:3px 6px;opacity:.95;border-radius:999px;background:var(--card);border:2px solid var(--line);box-shadow:0 8px 20px -10px rgba(0,0,0,.4)}
#reactBar[hidden]{display:none}
#reactBar button{width:40px;height:40px;border-radius:50%;border:0;background:transparent;font-size:21px;line-height:1;cursor:pointer;transition:transform .12s}
#reactBar button:active{transform:scale(1.3)}
#reactFx{position:fixed;inset:0;pointer-events:none;z-index:45;overflow:hidden}
.rfloat{position:absolute;bottom:90px;display:flex;flex-direction:column;align-items:center;animation:rfloat 2.5s ease-out both}
.rfloat span{font-size:34px}
.rfloat small{font-size:11px;font-weight:800;padding:1px 7px;border-radius:999px;background:var(--ink);color:var(--card)}
@keyframes rfloat{from{transform:translateY(0) scale(.6);opacity:0}12%{opacity:1;transform:translateY(-30px) scale(1)}to{transform:translateY(-55vh) scale(1.1);opacity:0}}
@media (prefers-reduced-motion:reduce){.rfloat{animation:rfade 2.5s both;bottom:40%}@keyframes rfade{0%,80%{opacity:1}to{opacity:0}}}
.brow .mv{font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}
.brow .mv.up{color:var(--ok)}.brow .mv.dn{color:#C0392B}
