/* WSL v1.9.532 Step 20A/20B: native app UI layer */
:root{--wsl-app-red:#dc2626;--wsl-app-blue:#2563eb;--wsl-app-dark:#111827;}
.wsl-app-top-loader{position:fixed;top:0;left:0;right:0;height:3px;z-index:999999;background:rgba(37,99,235,.18);opacity:0;pointer-events:none;transition:opacity .12s ease;}
.wsl-app-top-loader:after{content:"";display:block;height:100%;width:42%;border-radius:0 999px 999px 0;background:linear-gradient(90deg,var(--wsl-app-blue),var(--wsl-app-red));animation:wslAppLoaderSlide .9s ease-in-out infinite;}
body.wsl-app-loading .wsl-app-top-loader{opacity:1;}
@keyframes wslAppLoaderSlide{0%{transform:translateX(-105%);}100%{transform:translateX(250%);}}
.wsl-app-toast-wrap{position:fixed;left:50%;bottom:82px;transform:translateX(-50%);z-index:999999;display:flex;flex-direction:column;gap:9px;align-items:center;pointer-events:none;width:min(92vw,420px);}
.wsl-app-toast{max-width:100%;box-sizing:border-box;border-radius:999px;padding:11px 16px;background:rgba(17,24,39,.94);color:#fff;font-size:14px;font-weight:800;line-height:1.25;box-shadow:0 12px 30px rgba(0,0,0,.22);opacity:0;transform:translateY(12px) scale(.98);transition:opacity .18s ease,transform .18s ease;text-align:center;}
.wsl-app-toast.is-visible{opacity:1;transform:translateY(0) scale(1);}
.wsl-app-toast.success{background:rgba(22,101,52,.95);}
.wsl-app-toast.error{background:rgba(185,28,28,.95);}
.wsl-app-toast.info{background:rgba(30,64,175,.95);}
.wsl-native-panel-transition .wsl-tl-panel.is-active,
.wsl-native-panel-transition .wsl-promoter-panel.active,
.wsl-native-panel-transition .wsl-promoter-subpanel.active,
.wsl-native-panel-transition .wsl-card{animation:wslNativeSoftIn .13s ease-out;}
@keyframes wslNativeSoftIn{from{opacity:.88;transform:translateY(2px);}to{opacity:1;transform:translateY(0);}}
@media (max-width:700px){.wsl-app-toast-wrap{bottom:74px}.wsl-app-toast{font-size:13px;padding:10px 14px;}}
@media (prefers-reduced-motion:reduce){.wsl-app-top-loader:after,.wsl-native-panel-transition .wsl-tl-panel.is-active,.wsl-native-panel-transition .wsl-promoter-panel.active,.wsl-native-panel-transition .wsl-promoter-subpanel.active,.wsl-native-panel-transition .wsl-card{animation:none}.wsl-app-toast{transition:none}}

/* v1.9.535: auto-fade front-end status/feedback messages */
.wsl-native-autofade{transition:opacity .35s ease, transform .35s ease !important;}
.wsl-native-autofade.wsl-native-fading{opacity:0 !important; transform:translateY(-4px) !important; pointer-events:none !important;}


/* v1.9.539 Step 20C: pull-to-refresh indicator */
.wsl-pull-refresh-indicator{position:fixed;top:-74px;left:50%;z-index:999998;display:flex;align-items:center;gap:8px;min-height:42px;padding:9px 14px;border-radius:999px;background:rgba(17,24,39,.94);color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.24);font-size:13px;font-weight:800;line-height:1;opacity:0;pointer-events:none;transform:translate(-50%,0);transition:opacity .16s ease, transform .18s ease;will-change:transform,opacity;}
.wsl-pull-refresh-indicator.visible{opacity:1;}
.wsl-pull-refresh-indicator.ready{background:rgba(30,64,175,.96);}
.wsl-pull-refresh-indicator.refreshing{background:rgba(17,24,39,.96);}
.wsl-pull-refresh-spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.38);border-top-color:#fff;animation:wslPullSpin .75s linear infinite;}
.wsl-pull-refresh-indicator:not(.refreshing) .wsl-pull-refresh-spinner{animation:none;}
.wsl-pull-refresh-indicator.ready .wsl-pull-refresh-spinner{border-top-color:#fff;}
@keyframes wslPullSpin{to{transform:rotate(360deg);}}
body.wsl-pull-refreshing-active{overscroll-behavior-y:contain;}
@media (min-width:900px){.wsl-pull-refresh-indicator{display:none;}}
@media (prefers-reduced-motion:reduce){.wsl-pull-refresh-indicator,.wsl-pull-refresh-spinner{transition:none;animation:none;}}
