/* Android uses the browser layout viewport, not a JS -> root-height feedback loop. */
html.canoe-android {height:100%;min-height:0;overflow:hidden;}
html.canoe-android body {position:fixed;inset:0;height:auto;min-height:0;overflow:hidden;align-items:stretch;}
html.canoe-android #app {height:var(--android-ime-h,100%);min-height:0;max-height:100%;}
/* GPU-reduced rendering is opt-in (manual safe mode) rather than imposed on all Android PWA users. */
html.canoe-android.canoe-android-recovery *,html.canoe-android.canoe-android-recovery *::before,html.canoe-android.canoe-android-recovery *::after {
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  corner-shape:round!important;will-change:auto!important;
}
html.canoe-android.canoe-android-recovery .view.active {animation:none!important;}
html.canoe-android.canoe-android-recovery #splash,html.canoe-android.canoe-android-recovery #splash * {animation:none!important;transition:none!important;}
html.canoe-android.canoe-android-recovery #splash :is(.splash-mark,.splash-brand,.splash-tag,.splash-line){opacity:1;transform:none;}
html.canoe-android.canoe-android-recovery * {font-family:system-ui,sans-serif!important;}
#canoeBootNotice {position:fixed;bottom:12px;left:12px;right:12px;z-index:1000001;padding:10px 12px;border:1px solid #ddd;border-radius:14px;background:#fff;color:#222;font:12px/1.5 system-ui,sans-serif;box-shadow:0 3px 15px #0002;}
#canoeBootNotice button {margin:4px;padding:5px 10px;border:1px solid #ddd;border-radius:8px;background:#f5f5f5;color:#222;}
