/* Shared animated mobile bottom menu (bnav kit). Enhances existing navs (indicator + ripple + icon pop) and styles generated .bnfx-nav bars. */
:root{--bnfx-c:#4f46e5;--bnfx-c2:#7c3aed;--bnfx-bg:rgba(255,255,255,.9);--bnfx-fg:#64748b;--bnfx-line:rgba(15,23,42,.08)}
@keyframes bnfx-up{from{transform:translateY(110%);opacity:0}to{transform:none;opacity:1}}
@keyframes bnfx-pop{0%{transform:translateY(0) scale(1)}40%{transform:translateY(-7px) scale(1.22)}70%{transform:translateY(-2px) scale(.96)}100%{transform:translateY(-3px) scale(1.1)}}
@keyframes bnfx-rip{to{transform:scale(2.6);opacity:0}}
@keyframes bnfx-glow{0%,100%{opacity:.55}50%{opacity:1}}

/* ---- generated bar ---- */
.bnfx-nav{display:none}
@media(max-width:820px){
  .bnfx-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:2147483000;padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:var(--bnfx-bg);-webkit-backdrop-filter:blur(18px) saturate(1.6);backdrop-filter:blur(18px) saturate(1.6);border-radius:24px 24px 0 0;border-top:1px solid var(--bnfx-line);box-shadow:0 -10px 30px -12px rgba(15,23,42,.28);animation:bnfx-up .55s cubic-bezier(.2,.9,.3,1.1) both}
  .bnfx-nav::before{content:"";position:absolute;left:16%;right:16%;top:0;height:2px;border-radius:0 0 6px 6px;background:linear-gradient(90deg,transparent,var(--bnfx-c),var(--bnfx-c2),transparent);animation:bnfx-glow 3s ease-in-out infinite}
  .bnfx-item{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px 5px;border:0;background:none;color:var(--bnfx-fg);font:600 10.5px/1.15 system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans Devanagari",sans-serif;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:color .25s;cursor:pointer}
  .bnfx-item span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .bnfx-ic{display:grid;place-items:center;width:30px;height:26px}
  .bnfx-ic svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  body.bnfx-pad{padding-bottom:calc(76px + env(safe-area-inset-bottom))!important}
}

/* ---- shared behaviour: indicator, active state, ripple ---- */
.bnfx-ind{position:absolute;top:5px;bottom:5px;left:0;width:0;border-radius:18px;z-index:0;pointer-events:none;opacity:0;background:linear-gradient(135deg,var(--bnfx-c),var(--bnfx-c2));transition:transform .45s cubic-bezier(.3,1.35,.5,1),width .45s cubic-bezier(.3,1.35,.5,1),opacity .2s}
.bnfx-ind.on{opacity:.16}
.bnfx-ind::after{content:"";position:absolute;left:50%;bottom:-3px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--bnfx-c);box-shadow:0 0 8px var(--bnfx-c)}
.bnfx-host>a:not(.fab):not(.bn-scan):not(.wa),.bnfx-host>button:not(.bn-scan){position:relative;overflow:hidden}
.bnfx-host .bnfx-on{color:var(--bnfx-c)!important;font-weight:800}
.bnfx-host .bnfx-on .bnfx-ic,.bnfx-host .bnfx-on i,.bnfx-host .bnfx-on .bn-icon,.bnfx-host .bnfx-on .ico{animation:bnfx-pop .5s cubic-bezier(.3,1.6,.5,1) both}
.bnfx-rip{position:absolute;left:0;top:0;width:60px;height:60px;margin:-30px 0 0 -30px;border-radius:50%;background:var(--bnfx-c);opacity:.28;pointer-events:none;transform:scale(0);animation:bnfx-rip .55s ease-out forwards}
@media(prefers-reduced-motion:reduce){.bnfx-nav,.bnfx-nav::before,.bnfx-ind,.bnfx-on *,.bnfx-rip{animation:none!important;transition:none!important}}
