/* FNS V322 — lightweight page loading overlay */
.fns-page-loader{
  --fns-loader-bg:rgba(239,247,255,.92);
  --fns-loader-card:rgba(255,255,255,.88);
  --fns-loader-border:rgba(91,139,255,.22);
  --fns-loader-text:#0b2342;
  --fns-loader-muted:#617493;
  position:fixed;
  inset:0;
  z-index:2147483000;
  display:grid;
  place-items:center;
  padding:24px;
  background:
    radial-gradient(circle at 22% 18%,rgba(32,199,255,.18),transparent 34%),
    radial-gradient(circle at 80% 76%,rgba(124,78,255,.16),transparent 35%),
    var(--fns-loader-bg);
  -webkit-backdrop-filter:blur(14px) saturate(125%);
  backdrop-filter:blur(14px) saturate(125%);
  opacity:1;
  visibility:visible;
  transition:opacity .28s ease,visibility .28s ease;
}
html.dark .fns-page-loader,
html[data-theme="dark"] .fns-page-loader,
body.dark .fns-page-loader,
body[data-theme="dark"] .fns-page-loader{
  --fns-loader-bg:rgba(3,13,30,.94);
  --fns-loader-card:rgba(10,27,51,.90);
  --fns-loader-border:rgba(95,155,255,.24);
  --fns-loader-text:#f4f8ff;
  --fns-loader-muted:#9db1d0;
}
.fns-page-loader.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.fns-page-loader[hidden]{display:none!important}
.fns-page-loader__panel{
  position:relative;
  width:min(330px,calc(100vw - 38px));
  min-height:202px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:26px 24px 22px;
  border:1px solid var(--fns-loader-border);
  border-radius:28px;
  color:var(--fns-loader-text);
  background:linear-gradient(145deg,var(--fns-loader-card),rgba(255,255,255,.58));
  box-shadow:0 28px 80px rgba(15,43,89,.18),inset 0 1px 0 rgba(255,255,255,.70);
}
html.dark .fns-page-loader__panel,
html[data-theme="dark"] .fns-page-loader__panel,
body.dark .fns-page-loader__panel,
body[data-theme="dark"] .fns-page-loader__panel{
  background:linear-gradient(145deg,var(--fns-loader-card),rgba(8,20,41,.78));
  box-shadow:0 30px 90px rgba(0,0,0,.40),inset 0 1px 0 rgba(255,255,255,.07);
}
.fns-page-loader__panel::before{
  content:"";
  position:absolute;
  width:190px;
  height:190px;
  top:-118px;
  right:-58px;
  border-radius:50%;
  background:linear-gradient(135deg,rgba(32,199,255,.28),rgba(124,78,255,.24));
  filter:blur(2px);
  animation:fnsLoaderFloat 4.8s ease-in-out infinite;
}
.fns-page-loader__brand{
  position:relative;
  width:78px;
  height:78px;
  display:grid;
  place-items:center;
}
.fns-page-loader__ring,
.fns-page-loader__ring::before,
.fns-page-loader__ring::after{
  position:absolute;
  inset:0;
  border-radius:50%;
  content:"";
}
.fns-page-loader__ring{
  border:3px solid rgba(87,135,255,.16);
  border-top-color:#13c9ff;
  border-right-color:#6c63ff;
  animation:fnsLoaderSpin 1.05s linear infinite;
}
.fns-page-loader__ring::before{
  inset:7px;
  border:2px dashed rgba(100,92,255,.34);
  animation:fnsLoaderSpinReverse 1.8s linear infinite;
}
.fns-page-loader__ring::after{
  inset:16px;
  background:linear-gradient(135deg,#12cfff,#356cf5 52%,#864cff);
  box-shadow:0 10px 26px rgba(43,109,248,.32);
}
.fns-page-loader__mark{
  position:relative;
  z-index:2;
  color:#fff;
  font:900 16px/1 system-ui,-apple-system,"Segoe UI",sans-serif;
  letter-spacing:-.5px;
}
.fns-page-loader__title{
  position:relative;
  z-index:1;
  margin:0;
  font:900 15px/1.2 system-ui,-apple-system,"Segoe UI",sans-serif;
  letter-spacing:.01em;
}
.fns-page-loader__text{
  position:relative;
  z-index:1;
  min-height:18px;
  margin:0;
  color:var(--fns-loader-muted);
  font:700 12px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif;
  text-align:center;
}
.fns-page-loader__bar{
  position:relative;
  z-index:1;
  width:168px;
  height:5px;
  overflow:hidden;
  border-radius:99px;
  background:rgba(103,129,180,.14);
}
.fns-page-loader__bar::after{
  content:"";
  position:absolute;
  inset:0;
  width:46%;
  border-radius:inherit;
  background:linear-gradient(90deg,#10cfff,#3974ff,#8e49ff);
  box-shadow:0 0 18px rgba(54,114,255,.44);
  animation:fnsLoaderBar 1.15s ease-in-out infinite;
}
.fns-page-loader__dots{display:flex;gap:5px;align-items:center;justify-content:center}
.fns-page-loader__dots i{
  width:5px;height:5px;border-radius:50%;background:#3b7cff;
  animation:fnsLoaderDot .9s ease-in-out infinite;
}
.fns-page-loader__dots i:nth-child(2){animation-delay:.13s}
.fns-page-loader__dots i:nth-child(3){animation-delay:.26s}
body.fns-page-loading{cursor:progress}
@keyframes fnsLoaderSpin{to{transform:rotate(360deg)}}
@keyframes fnsLoaderSpinReverse{to{transform:rotate(-360deg)}}
@keyframes fnsLoaderBar{0%{transform:translateX(-115%)}55%,100%{transform:translateX(250%)}}
@keyframes fnsLoaderDot{0%,100%{opacity:.28;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}
@keyframes fnsLoaderFloat{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(-12px,10px,0)}}
@media(max-width:520px){
  .fns-page-loader{padding:16px}
  .fns-page-loader__panel{min-height:188px;border-radius:24px;padding:23px 18px 20px}
  .fns-page-loader__brand{width:70px;height:70px}
}
@media(prefers-reduced-motion:reduce){
  .fns-page-loader *,
  .fns-page-loader *::before,
  .fns-page-loader *::after{animation:none!important;transition:none!important}
  .fns-page-loader__bar::after{width:72%;transform:none}
}
@media print{.fns-page-loader{display:none!important}}
