:root{--fns-pwa-safe-top:env(safe-area-inset-top,0px);--fns-pwa-safe-right:env(safe-area-inset-right,0px);--fns-pwa-safe-bottom:env(safe-area-inset-bottom,0px);--fns-pwa-safe-left:env(safe-area-inset-left,0px)}
html.fns-pwa-standalone,html.fns-native-webview{overscroll-behavior-y:none}
html.fns-pwa-standalone body,html.fns-native-webview body{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}
html.fns-pwa-standalone body.app-shell .main,html.fns-native-webview body.app-shell .main{padding-bottom:calc(22px + var(--fns-pwa-safe-bottom))}

/* V335: PWA tidak boleh menjadi item grid pada app-shell. */
body.app-shell>.fns-pwa-install,
body.app-shell>.fns-pwa-modal,
body.app-shell>.fns-pwa-toast{display:none!important;position:fixed!important;inset:auto!important;width:auto!important;height:auto!important}

/* Perlindungan layout desktop: sidebar tidak boleh tersembunyi/bergeser oleh aset PWA. */
@media(min-width:761px){
  body.app-shell{grid-template-columns:var(--sidebar) minmax(0,1fr)!important}
  body.app-shell>.sidebar{display:block!important;visibility:visible!important;opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important;mask:none!important;-webkit-mask:none!important;grid-column:1!important;grid-row:1!important}
  body.app-shell>.main{display:block!important;visibility:visible!important;opacity:1!important;transform:none!important;grid-column:2!important;grid-row:1!important;min-width:0!important}
  body.app-shell>.sidebar>.brand,
  body.app-shell>.sidebar>.side-search,
  body.app-shell>.sidebar>.nav,
  body.app-shell>.sidebar>.sidebar-user-card{visibility:visible!important;opacity:1!important;filter:none!important}
}

/* Bantuan install hanya untuk halaman publik/mobile, bukan dashboard admin. */
.fns-pwa-install{position:fixed;right:calc(12px + var(--fns-pwa-safe-right));bottom:calc(18px + var(--fns-pwa-safe-bottom));z-index:2147482500;display:none;align-items:center;gap:9px;min-height:46px;padding:8px 13px 8px 9px;border:1px solid rgba(90,181,255,.38);border-radius:999px;background:linear-gradient(135deg,rgba(7,28,58,.97),rgba(17,42,88,.97));color:#fff;box-shadow:0 16px 44px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.12);font:900 11px/1.2 Inter,system-ui,sans-serif;cursor:pointer;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.fns-pwa-install.show{display:flex;animation:fnsPwaIn .3s ease both}.fns-pwa-install img{width:30px;height:30px;border-radius:9px;box-shadow:0 6px 18px rgba(22,136,255,.28)}.fns-pwa-install span{display:grid;text-align:left}.fns-pwa-install small{font-size:8.5px;color:#9fdfff;font-weight:800;margin-top:2px}
html[data-theme="light"] .fns-pwa-install,body[data-theme="light"] .fns-pwa-install,body:not(.dark) .fns-pwa-install{background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(235,246,255,.98));color:#092442;border-color:rgba(54,135,221,.28);box-shadow:0 16px 40px rgba(50,104,170,.18),inset 0 1px 0 #fff}
.fns-pwa-modal[hidden]{display:none!important}.fns-pwa-modal{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;padding:20px;background:rgba(2,8,20,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.fns-pwa-modal__card{width:min(430px,100%);position:relative;padding:26px;border-radius:26px;border:1px solid rgba(91,180,255,.3);background:linear-gradient(145deg,#07172f,#111c42);color:#f7fbff;box-shadow:0 30px 90px rgba(0,0,0,.5)}.fns-pwa-modal__close{position:absolute;right:14px;top:14px;width:36px;height:36px;border:0;border-radius:12px;background:rgba(255,255,255,.08);color:#fff;font-size:19px;cursor:pointer}.fns-pwa-modal__head{display:flex;gap:14px;align-items:center;padding-right:36px}.fns-pwa-modal__head img{width:54px;height:54px;border-radius:16px}.fns-pwa-modal h2{font-size:20px;margin:0 0 5px}.fns-pwa-modal p{margin:0;color:#b8cae2;line-height:1.55}.fns-pwa-steps{display:grid;gap:10px;margin:20px 0 0;padding:0;list-style:none}.fns-pwa-steps li{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;padding:10px;border-radius:14px;background:rgba(255,255,255,.055);color:#dceaff;font-size:13px}.fns-pwa-steps b{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,#1688ff,#12d7ff);color:#fff}.fns-pwa-toast{position:fixed;left:50%;bottom:calc(22px + var(--fns-pwa-safe-bottom));z-index:2147483500;transform:translate(-50%,20px);opacity:0;pointer-events:none;max-width:min(460px,calc(100% - 30px));padding:11px 15px;border-radius:14px;background:#07172f;color:#fff;box-shadow:0 16px 50px rgba(0,0,0,.38);font:800 12px/1.45 Inter,system-ui,sans-serif;transition:.24s ease}.fns-pwa-toast.show{opacity:1;transform:translate(-50%,0)}
@keyframes fnsPwaIn{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}
@media(min-width:821px){.fns-pwa-install{display:none!important}}
@media(max-width:820px){body.app-shell .fns-pwa-install{display:none!important}.fns-pwa-install{right:calc(10px + var(--fns-pwa-safe-right));bottom:calc(76px + var(--fns-pwa-safe-bottom))}}
@media(display-mode:standalone){.fns-pwa-install{display:none!important}}
@media(prefers-reduced-motion:reduce){.fns-pwa-install.show{animation:none}.fns-pwa-install,.fns-pwa-toast{transition:none}}
