.gh-pwa-install {
	position: fixed;
	inset-inline: max(16px, env(safe-area-inset-left)) max(16px, env(safe-area-inset-right));
	inset-block-end: calc(96px + env(safe-area-inset-bottom));
	z-index: 94;
	max-width: 560px;
	margin-inline: auto;
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr) auto 32px;
	align-items: center;
	gap: 12px;
	padding: 12px;
	border: 1px solid var(--gh-border-default);
	border-radius: var(--gh-radius-card);
	background: color-mix(in srgb, var(--gh-bg-raised) 94%, transparent);
	box-shadow: var(--gh-shadow-3);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	transform: translateY(24px) scale(.97);
	opacity: 0;
	transition: transform var(--gh-dur-slow) var(--gh-ease-spring), opacity var(--gh-dur-base) var(--gh-ease-out);
}
.gh-pwa-install[hidden] { display: none; }
.gh-pwa-install.is-visible { transform: none; opacity: 1; }
.gh-pwa-install-mark { inline-size: 48px; block-size: 48px; display: grid; place-items: center; border-radius: var(--gh-radius-control); background: var(--gh-accent-solid); color: var(--gh-accent-on-solid); }
.gh-pwa-install-mark .gh-logo-mark { width: 22px; color: currentColor; }
.gh-pwa-install-copy { min-width: 0; display: flex; flex-direction: column; line-height: 1.65; }
.gh-pwa-install-copy b { font-size: 14px; color: var(--gh-text-primary); }
.gh-pwa-install-copy small { overflow: hidden; color: var(--gh-text-secondary); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.gh-pwa-install-close { inline-size: 32px; block-size: 32px; display: grid; place-items: center; padding: 0; border: 0; border-radius: var(--gh-radius-compact); background: transparent; color: var(--gh-text-tertiary); cursor: pointer; }
.gh-pwa-install-close:hover { background: var(--gh-bg-hover); color: var(--gh-text-primary); }
.gh-pwa-install-close svg { width: 17px; height: 17px; }
.gh-pwa-connectivity { position: fixed; inset-inline: 16px; inset-block-end: calc(96px + env(safe-area-inset-bottom)); z-index: 210; max-width: 470px; margin-inline: auto; padding: 10px 16px; border: 1px solid var(--gh-border-default); border-radius: var(--gh-radius-control); background: var(--gh-bg-raised); color: var(--gh-text-primary); box-shadow: var(--gh-shadow-3); text-align: center; font-size: 13px; font-weight: 700; }
.gh-pwa-connectivity.is-offline { border-color: var(--gh-warning-border, var(--gh-border-strong)); }
.gh-pwa-standalone body { padding-block-start: env(safe-area-inset-top); }
.gh-pwa-standalone .gh-header { top: env(safe-area-inset-top); }
.gh-pwa-standalone .gh-bottom-nav { padding-block-end: max(8px, env(safe-area-inset-bottom)); }

@media (min-width: 901px) {
	.gh-pwa-install { inset-inline-start: 24px; inset-inline-end: auto; inset-block-end: 24px; width: min(520px, calc(100vw - 48px)); }
	.gh-pwa-connectivity { inset-block-end: 24px; }
}
@media (max-width: 520px) {
	.gh-pwa-install { grid-template-columns: 44px minmax(0, 1fr) auto 28px; gap: 9px; padding: 10px; }
	.gh-pwa-install-mark { inline-size: 44px; block-size: 44px; }
	.gh-pwa-install .gh-btn { padding-inline: 12px; }
}
@media (prefers-reduced-motion: reduce) {
	.gh-pwa-install { transition: none; }
}
