/* Native platform layer: keep document text selectable and preserve pinch zoom. */
html { overscroll-behavior: none; -webkit-tap-highlight-color: transparent; -webkit-text-size-adjust: 100%; }
body { overscroll-behavior: none; min-height: 100dvh; }
button, a, [role="button"], [role="tab"] { touch-action: manipulation; }
button, [role="button"], [role="tab"], nav a { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
@media (pointer: coarse) { input:not([type=checkbox]):not([type=radio]), select, textarea { font-size: max(16px, 1rem) !important; } }
.pwa-banner { box-sizing: border-box; position: fixed; z-index: 1000; left: max(12px, env(safe-area-inset-left)); right: max(12px, env(safe-area-inset-right)); bottom: calc(76px + env(safe-area-inset-bottom, 0px)); max-width: 480px; margin: 0 auto; padding: 12px; display: flex; align-items: center; gap: 10px; border: 1px solid var(--c-hair-s, #ccc); border-radius: 12px; background: var(--c-bg, #F4F1EB); color: var(--c-ink, #141210); box-shadow: 0 8px 32px #0003; font: 13px/1.4 system-ui, sans-serif; }
.pwa-banner img { border-radius: 9px; flex-shrink: 0; }
.pwa-banner-copy { flex: 1; min-width: 0; }
.pwa-banner-copy strong, .pwa-banner-copy span { display: block; }
.pwa-banner-copy span { margin-top: 3px; font-size: 12px; }
.pwa-banner button { min-height: 44px; border: 0; border-radius: 6px; padding: 6px 10px; background: #D2542B; color: white; font: inherit; cursor: pointer; flex-shrink: 0; }
.pwa-banner .pwa-dismiss { background: transparent; color: inherit; font-size: 24px; padding: 0; min-width: 32px; }
.pwa-update { bottom: auto; top: calc(12px + env(safe-area-inset-top, 0px)); }
@media (display-mode: standalone) { .pwa-banner:not(.pwa-update) { display: none; } }
