.nb-pwa-prompt {
	position: fixed;
	z-index: 1300;
	inset-inline: 12px;
	inset-block-end: calc(78px + env(safe-area-inset-bottom, 0px));
	display: grid;
	grid-template-columns: 46px minmax(0,1fr) auto 32px;
	align-items: center;
	gap: 10px;
	max-width: 680px;
	margin-inline: auto;
	padding: 12px;
	border: 1px solid color-mix(in srgb, var(--nb-color-text, #3b3b31) 14%, transparent);
	border-radius: 18px;
	background: color-mix(in srgb, var(--nb-color-bg, #faf6f1) 96%, transparent);
	box-shadow: 0 16px 50px rgba(46, 36, 34, .2);
	backdrop-filter: blur(18px);
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 180ms ease, transform 180ms ease;
}
.nb-pwa-prompt.is-visible { opacity: 1; transform: translateY(0); }
.nb-pwa-prompt__icon { display:grid; width:46px; height:46px; place-items:center; border-radius:15px; background:var(--nb-color-primary, #cfa3a6); color:#fff; font-weight:900; font-size:20px; }
.nb-pwa-prompt__copy { display:flex; min-width:0; flex-direction:column; gap:2px; }
.nb-pwa-prompt__copy strong { font-size:.94rem; }
.nb-pwa-prompt__copy span { color:var(--nb-color-muted, #716b66); font-size:.78rem; line-height:1.55; }
.nb-pwa-button { min-height:40px; padding:8px 14px; border:0; border-radius:12px; background:var(--nb-color-primary-dark, #a47a86); color:#fff; font:inherit; font-weight:800; cursor:pointer; }
.nb-pwa-dismiss { display:inline-flex; width:32px; height:32px; align-items:center; justify-content:center; padding:0; border:0; border-radius:10px; background:transparent; color:inherit; font-size:24px; cursor:pointer; }
.nb-pwa-toast { position:fixed; z-index:1400; inset-inline:16px; inset-block-end:calc(88px + env(safe-area-inset-bottom,0px)); max-width:520px; margin:auto; padding:12px 16px; border-radius:14px; background:#2f322d; color:#fff; text-align:center; box-shadow:0 12px 35px rgba(0,0,0,.2); opacity:0; transform:translateY(10px); transition:180ms ease; }
.nb-pwa-toast.is-visible { opacity:1; transform:translateY(0); }
.nb-checkout-shell .nb-pwa-prompt,
.nb-checkout-shell .nb-pwa-toast { display:none !important; }
@media (min-width: 900px) {
	.nb-pwa-prompt { inset-block-end:24px; inset-inline:auto 24px; width:min(620px, calc(100vw - 48px)); margin:0; }
	.nb-pwa-toast { inset-block-end:24px; }
}
@media (max-width: 520px) {
	.nb-pwa-prompt { grid-template-columns:42px minmax(0,1fr) auto; }
	.nb-pwa-prompt__icon { width:42px; height:42px; }
	.nb-pwa-dismiss { position:absolute; inset-block-start:2px; inset-inline-end:2px; }
	.nb-pwa-button { grid-column:2 / 4; width:100%; }
}
@media (prefers-reduced-motion: reduce) { .nb-pwa-prompt, .nb-pwa-toast { transition:none; } }

/* Phase 13: custom installation promotion is mobile/touch only. */
[data-nb-mobile-install-only][hidden]{display:none!important}
@media (min-width:1025px), (pointer:fine) and (hover:hover){
	[data-nb-mobile-install-only]{display:none!important}
}

/* Phase 5: keep update/install surfaces above the mobile product purchase dock. */
.nb-pwa-button[aria-busy="true"] { cursor: wait; opacity: .78; }
@media (max-width: 899px) {
	body.single-product .nb-pwa-prompt {
		inset-block-end: calc(var(--nb-bottom-nav-height, 66px) + var(--nb-product-dock-height, 150px) + env(safe-area-inset-bottom, 0px) + 20px);
	}
	body.single-product .nb-pwa-toast {
		inset-block-end: calc(var(--nb-bottom-nav-height, 66px) + var(--nb-product-dock-height, 150px) + env(safe-area-inset-bottom, 0px) + 20px);
	}
}
