/* Nexus PWA install/update controls and universal standalone launch animation. */
.nx-pwa-splash{display:none;position:fixed;inset:0;z-index:100000;background:radial-gradient(circle at 50% 36%,#1d4ed8 0,#0f172a 43%,#020617 100%);align-items:center;justify-content:center;overflow:hidden;color:#fff}
html.nexus-pwa-launching .nx-pwa-splash{display:flex}
.nx-pwa-splash::before,.nx-pwa-splash::after{content:"";position:absolute;width:340px;height:340px;border:1px solid rgba(96,165,250,.24);border-radius:50%;animation:nxPwaHalo 2.2s ease-out infinite}.nx-pwa-splash::after{width:480px;height:480px;animation-delay:.35s}
.nx-pwa-splash-inner{position:relative;z-index:2;width:min(420px,84vw);text-align:center;animation:nxPwaRise .7s cubic-bezier(.2,.8,.2,1) both}
.nx-pwa-splash-logo{width:min(290px,72vw);max-height:190px;object-fit:contain;padding:13px 16px;border-radius:24px;background:#fff;box-shadow:0 24px 65px rgba(0,0,0,.38);animation:nxPwaLogo 1.25s cubic-bezier(.2,.8,.2,1) both}
.nx-pwa-splash-title{margin-top:20px;font-size:19px;font-weight:950;letter-spacing:.18em;text-transform:uppercase}.nx-pwa-splash-subtitle{margin-top:7px;color:#bfdbfe;font-size:12px;font-weight:700;letter-spacing:.035em}
.nx-pwa-loader{width:min(230px,65vw);height:4px;margin:22px auto 0;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.12)}.nx-pwa-loader i{display:block;width:48%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#60a5fa,#4f46e5);animation:nxPwaLoad 1.25s ease-in-out infinite}
.nx-pwa-splash.nx-pwa-leaving{animation:nxPwaFade .42s ease forwards}
.nx-pwa-install{display:none;align-items:center;justify-content:center;gap:7px}.nx-pwa-install.is-ready{display:inline-flex}.nx-pwa-install-icon{font-size:15px;line-height:1}.nx-pwa-login-install{width:100%;margin-top:11px;min-height:43px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff;color:#1d4ed8;font-weight:900;font-size:12px;cursor:pointer}.nx-pwa-login-install:hover{background:#dbeafe;border-color:#93c5fd}
.nx-pwa-top-install{height:42px;padding:0 11px;border:1px solid var(--nx-border);border-radius:13px;background:var(--nx-surface);color:var(--nx-text);font-size:11px;font-weight:900;cursor:pointer}.nx-pwa-top-install:hover{border-color:#93c5fd}
.nx-pwa-update{position:fixed;z-index:99990;left:50%;bottom:20px;transform:translate(-50%,18px);width:min(520px,calc(100vw - 28px));display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid rgba(96,165,250,.36);border-radius:16px;background:#0f172a;color:#fff;box-shadow:0 22px 60px rgba(0,0,0,.34);opacity:0;pointer-events:none;transition:.22s}.nx-pwa-update.show{transform:translate(-50%,0);opacity:1;pointer-events:auto}.nx-pwa-update-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#1e3a8a;color:#93c5fd;font-size:20px}.nx-pwa-update-copy{min-width:0;flex:1}.nx-pwa-update-copy strong{display:block;font-size:12.5px}.nx-pwa-update-copy span{display:block;margin-top:3px;color:#bfdbfe;font-size:10px}.nx-pwa-update button{border:0;border-radius:10px;padding:9px 11px;background:#2563eb;color:#fff;font-weight:900;font-size:10.5px;cursor:pointer}
html[data-theme="dark"] .nx-pwa-login-install{background:#111827;color:#93c5fd;border-color:#334155}
@keyframes nxPwaHalo{0%{opacity:0;transform:scale(.72)}35%{opacity:1}100%{opacity:0;transform:scale(1.18)}}@keyframes nxPwaRise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes nxPwaLogo{0%{opacity:0;transform:scale(.78) rotate(-2deg)}65%{opacity:1;transform:scale(1.035) rotate(.5deg)}100%{transform:scale(1) rotate(0)}}@keyframes nxPwaLoad{0%{transform:translateX(-120%)}55%{transform:translateX(95%)}100%{transform:translateX(230%)}}@keyframes nxPwaFade{to{opacity:0;visibility:hidden}}@media(max-width:700px){.nx-pwa-top-install .nx-pwa-install-label{display:none}.nx-pwa-top-install{width:42px;padding:0}.nx-pwa-update{bottom:12px}}@media(prefers-reduced-motion:reduce){.nx-pwa-splash::before,.nx-pwa-splash::after,.nx-pwa-splash-inner,.nx-pwa-splash-logo,.nx-pwa-loader i{animation:none!important}}

/* Phase 18.91 — compulsory post-maintenance client activation. */
html.nexus-update-required,body.nexus-update-required{overflow:hidden!important}
body.nexus-update-required>[data-nexus-update-locked="1"]{pointer-events:none!important;user-select:none!important}
.nx-required-update{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(2,6,23,.74);backdrop-filter:blur(12px);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}
.nx-required-update.show{opacity:1;visibility:visible}
.nx-required-update-card{width:min(440px,100%);padding:30px;border:1px solid rgba(148,163,184,.22);border-radius:24px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 34px 100px rgba(2,6,23,.42);text-align:center;color:#0f172a}
.nx-required-update-mark{width:64px;height:64px;margin:0 auto 18px;display:grid;place-items:center;border-radius:19px;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;font:950 25px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;box-shadow:0 16px 36px rgba(37,99,235,.26)}
.nx-required-update-kicker{display:block;color:#2563eb;font:900 10px/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.14em}
.nx-required-update-copy h2{margin:8px 0 0;font:950 28px/1.08 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:-.04em}
.nx-required-update-copy p{margin:12px auto 0;max-width:340px;color:#64748b;font:650 13px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.nx-required-update-button{width:100%;min-height:50px;margin-top:24px;border:0;border-radius:14px;background:#2563eb;color:#fff;font:900 13px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;cursor:pointer;box-shadow:0 14px 30px rgba(37,99,235,.22)}
.nx-required-update-button:hover{background:#1d4ed8}.nx-required-update-button:disabled{cursor:default;opacity:.72}
.nx-required-update-working{display:none;min-height:96px;margin-top:22px;align-items:center;justify-content:center;gap:15px}
.nx-required-update.is-updating .nx-required-update-working,.nx-required-update.is-ready .nx-required-update-working,.nx-required-update.is-installing .nx-required-update-working{display:flex}
.nx-required-update-spinner{width:38px;height:38px;flex:0 0 auto;border:4px solid #dbeafe;border-top-color:#2563eb;border-radius:50%;animation:nxRequiredUpdateSpin .72s linear infinite}.nx-required-update.is-ready .nx-required-update-spinner{display:none}
.nx-required-update-progress{width:min(250px,68vw);display:grid;grid-template-columns:minmax(0,1fr) 46px;align-items:center;gap:10px}.nx-required-update-progress-track{height:8px;overflow:hidden;border-radius:999px;background:#e2e8f0}.nx-required-update-progress-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#38bdf8);transition:width .18s ease}.nx-required-update-progress strong{font:950 13px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#0f172a;text-align:right;font-variant-numeric:tabular-nums}
@keyframes nxRequiredUpdateSpin{to{transform:rotate(360deg)}}
html[data-theme="dark"] .nx-required-update-card{background:linear-gradient(180deg,#111827,#0f172a);border-color:#334155;color:#f8fafc}.nexus-update-required .nx-required-update-copy p{color:#94a3b8}
@media(max-width:560px){.nx-required-update{padding:16px}.nx-required-update-card{padding:26px 21px;border-radius:21px}.nx-required-update-copy h2{font-size:25px}}
@media(prefers-reduced-motion:reduce){.nx-required-update,.nx-required-update-spinner{transition:none;animation-duration:1.4s}}

html[data-theme="dark"] .nx-required-update-progress-track{background:#334155}html[data-theme="dark"] .nx-required-update-progress strong{color:#f8fafc}

/* Phase 18.98 — do not visually expose the newest login UI to a stale PWA runtime. */
html.nexus-release-guard body{background:#020617!important}
html.nexus-release-guard .nx-auth,html.nexus-release-guard .nx-pwa-splash{visibility:hidden!important}
.nx-release-guard-shell{display:none;position:fixed;inset:0;z-index:2147482000;background:#020617;color:#fff;align-items:center;justify-content:center;text-align:center;padding:24px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
html.nexus-release-guard .nx-release-guard-shell{display:flex}
.nx-release-guard-shell>div{width:min(360px,88vw)}.nx-release-guard-mark{width:60px;height:60px;margin:0 auto 16px;display:grid;place-items:center;border-radius:18px;background:#2563eb;font-weight:950;font-size:24px;box-shadow:0 16px 36px rgba(37,99,235,.26)}.nx-release-guard-shell strong{display:block;font-size:20px}.nx-release-guard-shell span{display:block;margin-top:8px;color:#94a3b8;font-size:12px;line-height:1.55}
