#page-refresh-status{position:fixed;z-index:1450;pointer-events:none;display:flex;align-items:center;gap:5px;max-width:calc(100vw - 24px);padding:3px 8px;border:1px solid #dce5ed;border-radius:12px;background:#f5f9fd;color:#345777;font-size:12px;line-height:16px;box-shadow:0 2px 7px #172b4310;opacity:1;transition:opacity .2s}
#page-refresh-status[hidden]{display:none}
#page-refresh-status[data-state=loading]{padding:3px;width:24px;height:24px;justify-content:center}
#page-refresh-status[data-state=success]{background:#edf8f1;color:#237b62;border-color:#cfe8db}
#page-refresh-status[data-state=error]{background:#fff7ed;color:#925c2d;border-color:#ead9c0}
#page-refresh-status.is-fading{opacity:0}
.page-refresh-spinner{width:16px;height:16px;border:2px solid #d6e2ef;border-top-color:#2767b4;border-radius:50%;animation:page-refresh-turn .75s linear infinite}
@keyframes page-refresh-turn{to{transform:rotate(360deg)}}
#nzip-mobile-welcome{position:fixed;inset:0;z-index:10000;visibility:visible;display:none;place-content:center;text-align:center;background:radial-gradient(ellipse at 10% 0%,#1c4578 0,transparent 48%),radial-gradient(ellipse at 100% 100%,#193f73 0,transparent 54%),linear-gradient(125deg,#102d51,#081b31 70%);color:#c3d4ed}
#nzip-mobile-welcome img{display:block;width:210px;max-width:70vw;height:auto;margin:auto}
#nzip-mobile-welcome p{margin:16px 0 0;font:500 20px/1.5 system-ui;letter-spacing:2px}
/* The welcome remains edge-to-edge. Only business content avoids the native
   status bar; its white system glyphs keep a dark backing after welcome exits. */
html.nzip-ios-standalone body .app>.workspace{padding-top:var(--nzip-safe-top,env(safe-area-inset-top,0px))!important}
html.nzip-ios-standalone body::before{content:"";position:fixed;inset:0 0 auto;height:var(--nzip-safe-top,env(safe-area-inset-top,0px));background:#172b43;z-index:1600;pointer-events:none}
@media(prefers-reduced-motion:reduce){#page-refresh-status{transition:none}.page-refresh-spinner{animation-duration:1.5s}}

@media(max-width:950px),(pointer:coarse){#nzip-mobile-welcome{display:grid}}

/* Global pull feedback occupies only the temporary gap below the shell header. */
#nzip-pull-indicator{position:fixed;z-index:1400;pointer-events:none;width:28px;height:28px;margin-left:-14px;display:grid;place-items:center;color:#2767b4;background:#f5f9fd;border:1px solid #dce5ed;border-radius:50%;opacity:var(--nzip-pull-progress,1);transform:translateY(6px)}
#nzip-pull-indicator[hidden]{display:none}
#nzip-pull-indicator>span{width:16px;height:16px;border:2px solid #d6e2ef;border-top-color:#2767b4;border-radius:50%}
#nzip-pull-indicator[data-loading]{opacity:1}
#nzip-pull-indicator[data-loading]>span{animation:page-refresh-turn .75s linear infinite}
:is(#main,#dialog-body)[data-nzip-pull]{translate:0 var(--nzip-pull-offset,0px);transition:translate .18s ease-out}
:is(#main,#dialog-body)[data-nzip-pull-dragging]{transition:none}
@media(prefers-reduced-motion:reduce){:is(#main,#dialog-body)[data-nzip-pull]{transition:none}#nzip-pull-indicator[data-loading]>span{animation-duration:1.5s}}

/* Keep native scroll chaining out of the custom authenticated refresh surfaces. */
html.nzip-ptr-enabled,html.nzip-ptr-enabled body{overscroll-behavior-y:none}
html.nzip-ptr-enabled #main,html.nzip-ptr-enabled dialog[data-sheet="audit-simple"],html.nzip-ptr-enabled dialog[data-sheet="audit-simple"] #dialog-body{overscroll-behavior-y:contain}
