html, body {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: #FFFFFF;
    /* Block iOS Safari double-tap zoom and rubber-band scroll inside the
       Compose viewport — they conflict with gesture-based UI controls. */
    touch-action: manipulation;
    -webkit-text-size-adjust: 100%;
    overscroll-behavior: none;
}

#loader {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

/* Reserved for DOM-overlay components (Leaflet maps, sandboxed iframes) that
   are positioned to match a Compose Box's reported global bounds. The host
   container is created lazily by the wasmJs actual; this rule guarantees it
   never accidentally captures pointer events outside its assigned bounds. */
.re-dom-overlay-host {
    position: absolute;
    pointer-events: auto;
}
