html { touch-action:manipulation; }
body { -webkit-text-size-adjust:100%;text-size-adjust:100%; }
#app { position:fixed;top:0;left:0;width:100%;height:100dvh; }
/* Installed iOS apps can report a dynamic viewport shorter than their full view. */
html.standalone-app,html.standalone-app body { height:100vh; }
.standalone-app:not(.keyboard-open) #app { height:100vh; }
html.keyboard-open,html.keyboard-open body { height:var(--scene-height,100vh); }
.keyboard-open #app { top:var(--viewport-top,0px);height:var(--scene-height,100vh); }
.keyboard-open .app-shell { height:var(--app-height,100dvh); }
.app-shell { padding-top:env(safe-area-inset-top,0px); }
#main-content { touch-action:pan-y pinch-zoom;overflow-anchor:none; }
#main-content { padding-bottom:calc(110px + max(0px,var(--navigation-offset,0px))); }
.editor-page { padding-top:var(--writing-top,0px); }
.writing-preview { padding-top:var(--writing-top,0px); }
.keyboard-open .bottom-navigation { display:none; }
.keyboard-open #main-content { padding-bottom:24px; }
.offline-update { position:fixed;left:12px;right:12px;top:calc(env(safe-area-inset-top,0px) + 8px);z-index:140;display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-control);color:var(--text);font-size:12px; }
.recovery-versions { margin-top:24px; }
.recovery-versions summary { cursor:pointer;font-size:13px; }
.external-change { pointer-events:none; }
@media(pointer:coarse) {
  input:not(.title-input):not([type="range"]):not([type="checkbox"]):not([type="radio"]),textarea:not(.body-input),select,.export-fields input,.export-fields select,.space-dialog input,.space-dialog textarea { font-size:16px; }
  .site-header { min-height:64px; }
  .writing-shell .site-header { min-height:48px; }
  .title-input { font-size:24px; }
  .body-input { font-size:16px; }
}
