/* Amnitra 2.7.19 mobile-first/PWA experience.
 * Route-scoped by design: public marketing pages and desktop application
 * behavior remain owned by their existing stylesheets. */

:root{--nx-mobile-edge:clamp(14px,4vw,20px);--nx-mobile-radius:18px;--nx-mobile-control:50px}

body:is(.nixamm-route-login,.nixamm-route-register,.nixamm-route-forgot-password,.nixamm-route-onboarding,.nixamm-app-route){-webkit-text-size-adjust:100%;text-size-adjust:100%}
body.nixamm-pwa-standalone{overscroll-behavior-y:none}

/* Remove Elementor/theme spacing around the full-screen onboarding widget.
 * This addresses the mobile top-gap/header collision without changing the
 * Elementor document or any business logic. */
body.nixamm-route-onboarding{margin:0!important;padding:0!important;background:#f5f8fb!important}
body.nixamm-route-onboarding :is(.elementor-widget-nixamm-onboarding,.elementor-widget-nixamm-onboarding>.elementor-widget-container){margin:0!important;padding:0!important;width:100%!important;max-width:none!important}
body.nixamm-route-onboarding :is(.elementor,.elementor-page,.site-main,#content,#primary){margin-top:0!important;padding-top:0!important}
body.nixamm-route-onboarding .elementor>.e-con,body.nixamm-route-onboarding .elementor>.elementor-element{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}

.nx-onboarding-header__meta{display:flex;min-width:0;align-items:center;gap:10px}
.nx-onboarding-mobile-step,.nx-onboarding-mobile-progress{display:none}

@media(max-width:760px){
  html{background:#f5f8fb;scroll-padding-top:76px}
  body:is(.nixamm-route-login,.nixamm-route-register,.nixamm-route-forgot-password,.nixamm-route-onboarding,.nixamm-app-route){min-width:0;overflow-x:clip}
  body:is(.nixamm-route-login,.nixamm-route-register,.nixamm-route-forgot-password,.nixamm-route-onboarding,.nixamm-app-route) :is(button,a,input,select,textarea){touch-action:manipulation}
  body:is(.nixamm-route-login,.nixamm-route-register,.nixamm-route-forgot-password,.nixamm-route-onboarding) :is(input,select,textarea){font-size:16px!important}

  /* Onboarding becomes a dedicated mobile app screen instead of a squeezed
   * desktop card. The progress that was hidden with the desktop sidebar is
   * restored in the compact header. */
  .nx-onboarding,.nx-onboarding *{box-sizing:border-box}
  .nx-onboarding{min-height:100svh;overflow-x:clip;background:linear-gradient(180deg,#f5f8fb 0,#eef5ff 46%,#f8fbff 100%)}
  .nx-onboarding>header{position:sticky;top:0;z-index:80;display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:68px;align-items:center;gap:10px;padding:max(10px,env(safe-area-inset-top)) var(--nx-mobile-edge) 10px;border-bottom:1px solid rgba(215,226,239,.95);background:rgba(255,255,255,.96);box-shadow:0 8px 26px rgba(2,17,40,.06);-webkit-backdrop-filter:blur(16px) saturate(145%);backdrop-filter:blur(16px) saturate(145%)}
  .nx-onboarding>header .nx-brand{gap:8px;min-width:0}
  .nx-onboarding>header .nx-brand img{width:34px;height:34px;border-radius:9px}
  .nx-onboarding>header .nx-brand>span{font-size:17px;white-space:nowrap}
  .nx-onboarding-header__meta{justify-content:flex-end}
  .nx-onboarding-secure{display:none}
  .nx-onboarding-mobile-step{display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:0 10px;border:1px solid rgba(13,98,248,.14);border-radius:999px;background:#eef5ff;color:#36516f;font-size:11px;font-weight:600;white-space:nowrap}
  .nx-onboarding-mobile-step b{color:#0D62F8;font-size:12px}
  .nx-onboarding-mobile-progress{position:absolute;right:0;bottom:-1px;left:0;display:block;height:3px;overflow:hidden;background:#e9eff6}
  .nx-onboarding-mobile-progress i{display:block;width:20%;height:100%;background:linear-gradient(90deg,#0D62F8,#6559F9 68%,#1BD1A2);transition:width .22s ease}

  .nx-onboarding__layout{display:block;width:100%;max-width:620px;margin:0 auto;padding:16px var(--nx-mobile-edge) calc(28px + env(safe-area-inset-bottom))}
  .nx-onboarding__layout>aside{display:none!important}
  .nx-onboarding__layout>main{width:100%;padding:22px 18px 18px;border:1px solid rgba(214,226,239,.95);border-radius:var(--nx-mobile-radius);background:rgba(255,255,255,.98);box-shadow:0 14px 38px rgba(2,17,40,.07)}
  .nx-onboarding-step.is-active{gap:17px}
  .nx-onboarding-eyebrow{display:inline-flex;width:max-content;max-width:100%;align-items:center;min-height:26px;padding:0 9px;border-radius:999px;background:#eef5ff;color:#0D62F8;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
  .nx-onboarding-step h1{font-size:clamp(23px,7vw,29px);line-height:1.12;letter-spacing:-.028em}
  .nx-onboarding-step>p{margin:-10px 0 4px;font-size:13px;line-height:1.55}
  .nx-onboarding-step label{gap:8px;font-size:13px}
  .nx-onboarding-step :is(input,select,textarea){min-height:var(--nx-mobile-control);padding:13px 14px;border-radius:12px;background:#fff;line-height:1.35;box-shadow:0 1px 0 rgba(2,17,40,.01)}
  .nx-onboarding-step textarea{min-height:112px;resize:vertical}
  .nx-onboarding-step :is(input,select,textarea):focus{border-color:#0D62F8;outline:0;box-shadow:0 0 0 4px rgba(13,98,248,.10)}
  .nx-onboarding form>footer{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;margin:24px -6px -6px;padding:12px 6px calc(6px + env(safe-area-inset-bottom));border-top:1px solid rgba(229,236,244,.9);background:#fff}
  .nx-onboarding form>footer .nx-btn{min-height:50px;border-radius:12px}
  .nx-onboarding form>footer [data-nx-back]{min-width:82px;padding-inline:14px}
  .nx-onboarding form>footer [data-nx-next]{width:100%;justify-content:center}
  .nx-onboarding form>footer .nx-form-feedback{grid-column:1/-1;margin-bottom:2px}
  .nx-onboarding dl div{grid-template-columns:1fr;gap:4px;padding:13px 14px}
  .nx-onboarding dd{overflow-wrap:anywhere}
  .nx-onboarding-plan-grid{grid-template-columns:1fr;gap:12px}
  .nx-onboarding-plan{min-height:0;padding:17px;border-radius:14px}
  .nx-onboarding-plan__price strong{font-size:26px}

  /* Mobile auth remains visually related to onboarding but preserves the
   * already-working 2.7.17 registration/login logic untouched. */
  body:is(.nixamm-route-login,.nixamm-route-register,.nixamm-route-forgot-password) .nx-auth>main{padding:max(14px,env(safe-area-inset-top)) var(--nx-mobile-edge) max(24px,env(safe-area-inset-bottom))}
  body:is(.nixamm-route-login,.nixamm-route-register,.nixamm-route-forgot-password) .nx-auth-card{margin-top:0;padding:22px 18px;border-radius:var(--nx-mobile-radius);box-shadow:0 16px 42px rgba(2,17,40,.09)}
  body:is(.nixamm-route-login,.nixamm-route-register,.nixamm-route-forgot-password) .nx-auth-mobile-logo{margin-bottom:20px}
  body:is(.nixamm-route-login,.nixamm-route-register,.nixamm-route-forgot-password) .nx-auth-card :is(input,select,textarea,.nx-btn--block){min-height:50px;border-radius:12px}

  /* PWA/standalone refinements on top of the existing mobile dock and app
   * shell. No routes, controls or module markup are replaced. */
  body.nixamm-app-route.nixamm-pwa-standalone .nx-app-top{padding-top:max(10px,env(safe-area-inset-top))}
  body.nixamm-app-route.nixamm-pwa-standalone .nx-app-content{padding-bottom:max(164px,calc(148px + env(safe-area-inset-bottom)))}
  body.nixamm-app-route.nixamm-keyboard-open .nx-mobile-dock{transform:translateY(calc(110% + env(safe-area-inset-bottom)));pointer-events:none;opacity:0}
  body.nixamm-app-route.nixamm-keyboard-open .nx-shell-create__menu,
  body.nixamm-app-route.nixamm-keyboard-open .nx-shell-notifications__panel,
  body.nixamm-app-route.nixamm-keyboard-open .nx-shell-help__panel{bottom:12px}
}

/* Install action, iOS instruction sheet, and connectivity status. */
.nx-pwa-install-action{display:flex!important;min-height:62px;align-items:center;gap:13px;width:100%;padding:10px 12px;border:1px solid #dce7f0;border-radius:10px;background:linear-gradient(135deg,#eef5ff,#f7fbff);color:#24364b;text-align:left;font:inherit;cursor:pointer}
.nx-pwa-install-action svg{width:22px;height:22px;flex:0 0 22px;color:#0D62F8}.nx-pwa-install-action span{min-width:0}.nx-pwa-install-action strong,.nx-pwa-install-action small{display:block}.nx-pwa-install-action strong{font-size:15px}.nx-pwa-install-action small{margin-top:2px;color:#66788a;font-size:12px;line-height:1.35}
.nx-pwa-status{position:fixed;z-index:10020;left:50%;bottom:max(88px,calc(82px + env(safe-area-inset-bottom)));transform:translate(-50%,14px);max-width:min(92vw,390px);padding:9px 13px;border:1px solid #dbe5ed;border-radius:999px;background:#fff;color:#334a60;box-shadow:0 12px 36px rgba(2,17,40,.14);font-size:12px;font-weight:600;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}.nx-pwa-status.is-visible{transform:translate(-50%,0);opacity:1}.nx-pwa-status[data-state="offline"]{border-color:#fed7aa;background:#fffaf5;color:#9a3412}
.nx-pwa-sheet{position:fixed;z-index:10030;inset:0;display:grid;align-items:end}.nx-pwa-sheet[hidden]{display:none}.nx-pwa-sheet__scrim{position:absolute;inset:0;background:rgba(2,17,40,.58);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.nx-pwa-sheet__panel{position:relative;width:100%;max-height:min(76dvh,620px);overflow:auto;padding:10px var(--nx-mobile-edge) calc(20px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:#fff;box-shadow:0 -22px 60px rgba(2,17,40,.24)}.nx-pwa-sheet__panel:before{display:block;width:46px;height:5px;margin:2px auto 16px;border-radius:999px;background:#dbe5ed;content:""}.nx-pwa-sheet__panel h2{margin:0;color:#021128;font-size:21px}.nx-pwa-sheet__panel p{margin:8px 0 0;color:#52647a;font-size:14px;line-height:1.55}.nx-pwa-sheet__steps{display:grid;gap:10px;margin:18px 0 0;padding:0;counter-reset:nxpwa;list-style:none}.nx-pwa-sheet__steps li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:start;color:#334a60;font-size:14px;line-height:1.5}.nx-pwa-sheet__steps li:before{counter-increment:nxpwa;display:grid;width:30px;height:30px;place-items:center;border-radius:50%;background:#eef5ff;color:#0D62F8;font-weight:800;content:counter(nxpwa)}.nx-pwa-sheet__close{width:100%;min-height:48px;margin-top:18px;border:0;border-radius:12px;background:#0D62F8;color:#fff;font:inherit;font-weight:700}

@media(min-width:761px){.nx-pwa-install-action,.nx-pwa-status,.nx-pwa-sheet{display:none!important}}
@media(prefers-reduced-motion:reduce){.nx-onboarding-mobile-progress i,.nx-pwa-status,.nx-mobile-dock{transition:none!important}}

/* 2.7.19: persistent app-install discovery and post-onboarding install invitation. */
.nx-pwa-install-action{position:relative}.nx-pwa-install-action>i{margin-left:auto;color:#8aa0b5;font-size:24px;font-style:normal;line-height:1}.nx-pwa-install-action.is-installed{border-color:#cdeedd;background:linear-gradient(135deg,#f0fff8,#f8fffc)}.nx-pwa-install-action.is-installed svg{color:#0a9b68}.nx-pwa-install-action.is-installed>i{display:none}.nx-pwa-install-action.is-installed small{color:#477363}
.nx-pwa-sheet__brand{display:flex;align-items:center;gap:9px;margin:0 0 13px;color:#0b1c31;font-size:15px;font-weight:800}.nx-pwa-sheet__brand img{width:34px;height:34px;border-radius:9px;object-fit:cover}.nx-pwa-sheet__brand>svg{width:28px;height:28px;color:#0D62F8}
.nx-pwa-install-banner{position:fixed;z-index:10010;right:var(--nx-mobile-edge);bottom:max(92px,calc(84px + env(safe-area-inset-bottom)));left:var(--nx-mobile-edge);display:grid;grid-template-columns:46px minmax(0,1fr) auto 34px;gap:10px;align-items:center;max-width:520px;margin:0 auto;padding:12px;border:1px solid rgba(190,214,241,.95);border-radius:18px;background:rgba(255,255,255,.98);box-shadow:0 18px 48px rgba(2,17,40,.2);-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);opacity:0;transform:translateY(18px) scale(.985);transition:opacity .18s ease,transform .18s ease}.nx-pwa-install-banner.is-visible{opacity:1;transform:translateY(0) scale(1)}.nx-pwa-install-banner.is-leaving{opacity:0;transform:translateY(12px) scale(.99)}.nx-pwa-install-banner__icon{display:grid;width:46px;height:46px;place-items:center;overflow:hidden;border-radius:13px;background:linear-gradient(145deg,#eaf3ff,#f7fbff);color:#0D62F8}.nx-pwa-install-banner__icon img{width:100%;height:100%;object-fit:cover}.nx-pwa-install-banner__icon svg{width:25px;height:25px}.nx-pwa-install-banner__copy{display:grid;gap:2px;min-width:0}.nx-pwa-install-banner__copy strong{overflow:hidden;color:#071a31;font-size:13px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.nx-pwa-install-banner__copy span{color:#60758a;font-size:11px;line-height:1.35}.nx-pwa-install-banner__install{min-height:38px;padding:0 13px;border:0;border-radius:11px;background:#0D62F8;color:#fff;font:inherit;font-size:12px;font-weight:800;white-space:nowrap;cursor:pointer}.nx-pwa-install-banner__dismiss{display:grid;width:34px;height:34px;place-items:center;padding:0;border:0;border-radius:10px;background:#f3f6f9;color:#627489;font:24px/1 Arial,sans-serif;cursor:pointer}
@media(max-width:420px){.nx-pwa-install-banner{grid-template-columns:42px minmax(0,1fr) 32px;padding:11px}.nx-pwa-install-banner__icon{width:42px;height:42px}.nx-pwa-install-banner__install{grid-column:1/-1;width:100%;min-height:42px}.nx-pwa-install-banner__dismiss{grid-column:3;grid-row:1}.nx-pwa-install-banner__copy{grid-column:2;grid-row:1}.nx-pwa-install-banner__icon{grid-column:1;grid-row:1}}
@media(min-width:761px){.nx-pwa-install-banner{display:none!important}}
@media(prefers-reduced-motion:reduce){.nx-pwa-install-banner{transition:none!important}}
