/* ============ AUTH: banking animated scene ============ */
body.auth-body,.auth{background:#070b2a!important}
.auth{position:relative;overflow:hidden;min-height:100vh}
.auth>*:not(.bank-scene){position:relative;z-index:3}
.bank-scene{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;
  background:radial-gradient(1200px 700px at 15% 0,#1e1b6e 0,transparent 60%),radial-gradient(900px 600px at 100% 100%,#4c1d95 0,transparent 60%),linear-gradient(160deg,#070b2a,#0b1240 55%,#120a38)}
/* aurora */
.bs-aurora i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;animation:bsDrift 18s ease-in-out infinite alternate}
.bs-aurora i:nth-child(1){width:46vw;height:46vw;left:-10vw;top:-12vw;background:#4f46e5}
.bs-aurora i:nth-child(2){width:38vw;height:38vw;right:-8vw;top:20vh;background:#9333ea;animation-delay:-6s}
.bs-aurora i:nth-child(3){width:34vw;height:34vw;left:30vw;bottom:-16vw;background:#0ea5e9;opacity:.35;animation-delay:-11s}
@keyframes bsDrift{to{transform:translate(6vw,5vh) scale(1.15)}}
/* moving perspective grid */
.bs-grid{position:absolute;left:-50%;right:-50%;bottom:-8%;height:52%;transform:perspective(520px) rotateX(62deg);
  background-image:linear-gradient(rgba(129,140,248,.35) 1px,transparent 1px),linear-gradient(90deg,rgba(129,140,248,.35) 1px,transparent 1px);background-size:56px 56px;
  -webkit-mask-image:linear-gradient(to top,#000 10%,transparent 90%);mask-image:linear-gradient(to top,#000 10%,transparent 90%);animation:bsGrid 5s linear infinite}
@keyframes bsGrid{to{background-position:0 56px}}
/* floating bank cards */
.bs-card{position:absolute;width:250px;height:156px;border-radius:20px;padding:18px;color:#fff;font-size:11px;letter-spacing:.08em;
  box-shadow:0 30px 60px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.35);backdrop-filter:blur(2px);animation:bsFloat 9s ease-in-out infinite}
.bs-card .chip{display:block;width:38px;height:28px;border-radius:7px;background:linear-gradient(135deg,#fde68a,#f59e0b)}
.bs-card .wave{position:absolute;right:18px;top:18px;width:26px;height:26px;border-radius:50%;border:3px solid rgba(255,255,255,.6);box-shadow:0 0 0 6px rgba(255,255,255,.18)}
.bs-card .no{margin-top:26px;font-size:14px;font-weight:700;letter-spacing:.14em}
.bs-card .bt{display:flex;justify-content:space-between;margin-top:16px;opacity:.85;font-weight:600}
.bs-c1{left:5%;top:14%;background:linear-gradient(135deg,#6366f1,#8b5cf6);--r:-12deg}
.bs-c2{right:6%;top:10%;background:linear-gradient(135deg,#0ea5e9,#6366f1);--r:10deg;animation-delay:-3s}
.bs-c3{right:12%;bottom:12%;background:linear-gradient(135deg,#ec4899,#8b5cf6);--r:-7deg;animation-delay:-6s;width:220px;height:138px}
@keyframes bsFloat{0%,100%{transform:translateY(0) rotate(var(--r,0))}50%{transform:translateY(-26px) rotate(calc(var(--r,0) + 4deg))}}
/* shield */
.bs-shield{position:absolute;left:9%;bottom:14%;width:96px;height:96px;filter:drop-shadow(0 0 24px rgba(52,211,153,.6));animation:bsFloat 7s ease-in-out infinite}
.bs-shield svg{width:100%;height:100%;fill:rgba(16,185,129,.22);stroke:#34d399;stroke-width:3;stroke-linejoin:round}
.bs-shield .ck{fill:none;stroke:#fff;stroke-width:5;stroke-linecap:round;stroke-dasharray:60;animation:bsCheck 3.2s ease-in-out infinite}
@keyframes bsCheck{0%{stroke-dashoffset:60}40%,80%{stroke-dashoffset:0}100%{stroke-dashoffset:60}}
/* growth chart */
.bs-chart{position:absolute;left:24%;bottom:6%;width:240px;height:120px;opacity:.9}
.bs-chart .bars rect{fill:rgba(129,140,248,.35);transform-origin:bottom;transform-box:fill-box;animation:bsBar 4s ease-in-out infinite}
.bs-chart .bars rect:nth-child(2){animation-delay:.15s}.bs-chart .bars rect:nth-child(3){animation-delay:.3s}.bs-chart .bars rect:nth-child(4){animation-delay:.45s}
.bs-chart .bars rect:nth-child(5){animation-delay:.6s}.bs-chart .bars rect:nth-child(6){animation-delay:.75s}.bs-chart .bars rect:nth-child(7){animation-delay:.9s}
@keyframes bsBar{0%{transform:scaleY(.1)}35%,85%{transform:scaleY(1)}100%{transform:scaleY(.1)}}
.bs-chart .ln{fill:none;stroke:#34d399;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:320;filter:drop-shadow(0 0 6px #34d399);animation:bsLine 4s ease-in-out infinite}
@keyframes bsLine{0%{stroke-dashoffset:320}45%,85%{stroke-dashoffset:0}100%{stroke-dashoffset:320}}
/* spinning rupee coins */
.bs-coin{position:absolute;bottom:-60px;width:var(--s,32px);height:var(--s,32px);animation:bsRise 16s linear infinite}
.bs-coin span{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;font-weight:800;font-size:calc(var(--s,32px)*.55);color:#7c4a03;
  background:radial-gradient(circle at 30% 30%,#fde68a,#f59e0b 70%);box-shadow:0 0 22px rgba(245,158,11,.55);animation:bsSpin 3s linear infinite}
@keyframes bsRise{0%{transform:translateY(0);opacity:0}8%{opacity:1}90%{opacity:1}100%{transform:translateY(-115vh);opacity:0}}
@keyframes bsSpin{to{transform:rotateY(360deg)}}
.bs-dot{position:absolute;bottom:-10px;width:5px;height:5px;border-radius:50%;background:#a5b4fc;box-shadow:0 0 10px #818cf8;opacity:0;animation:bsRise 12s linear infinite}

/* glass form card on top of the scene */
.auth-header .logo{background:#fff;border-radius:18px;padding:8px 14px;box-shadow:0 14px 30px rgba(0,0,0,.35)}
.auth-header{background-image:none!important}
.auth-header p,.auth-header h1{color:#fff!important}
.auth-form{background:rgba(255,255,255,.96)!important;border:1px solid rgba(255,255,255,.6)!important;box-shadow:0 40px 80px rgba(0,0,0,.5)!important;animation:authIn .7s cubic-bezier(.2,.8,.2,1) both}
@keyframes authIn{from{opacity:0;transform:translateY(30px) scale(.98)}}
.auth-footer{color:rgba(255,255,255,.6)!important}
.auth-form .auth-footer{color:#94a3b8!important}
@media(max-width:991px){.bs-c1,.bs-c2,.bs-c3,.bs-chart,.bs-shield{display:none}}

/* ============ DASHBOARD / MEMBERS: animated back layer ============ */
.app-bg{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.app-main{position:relative;z-index:1}
.ab-blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.38;animation:bsDrift 22s ease-in-out infinite alternate}
.ab-blob.b1{width:42vw;height:42vw;left:12vw;top:-14vw;background:#c7c8ff}
.ab-blob.b2{width:36vw;height:36vw;right:-8vw;top:30vh;background:#e8d5ff;animation-delay:-8s}
.ab-blob.b3{width:34vw;height:34vw;left:34vw;bottom:-18vw;background:#bfe6ff;animation-delay:-14s}
.ab-mesh{position:absolute;inset:0;background-image:radial-gradient(rgba(91,91,240,.16) 1.2px,transparent 1.4px);background-size:30px 30px;
  -webkit-mask-image:radial-gradient(ellipse at 50% 30%,#000,transparent 75%);mask-image:radial-gradient(ellipse at 50% 30%,#000,transparent 75%);animation:abMesh 30s linear infinite}
@keyframes abMesh{to{background-position:60px 30px}}
.ab-ico{position:absolute;bottom:-60px;font-weight:800;color:rgba(91,91,240,.16);animation:abRise linear infinite;text-shadow:0 0 18px rgba(139,92,246,.25)}
@keyframes abRise{0%{transform:translateY(0) rotate(0);opacity:0}10%{opacity:1}90%{opacity:1}100%{transform:translateY(-120vh) rotate(360deg);opacity:0}}
@media(prefers-reduced-motion:reduce){.bank-scene *,.app-bg *{animation:none!important}}
