/* R124.2.3 compose-only single vertical scroll owner. */
#composeModal:not(.hidden)[data-xm-scroll-owner="true"]{overflow-y:auto!important;touch-action:pan-y!important;-webkit-overflow-scrolling:touch!important}
#composeModal:not(.hidden)[data-xm-scroll-owner="true"]>.composeBox{max-height:none!important;overflow:visible!important;touch-action:pan-y!important}
#composeModal #richText{min-height:220px!important;max-height:none!important;overflow:visible!important;overscroll-behavior:auto!important;touch-action:pan-y!important;-webkit-user-select:text!important;user-select:text!important}
#composeModal #richText *{touch-action:pan-y!important}
#composeModal .editorToolbar{overflow-x:auto!important;overflow-y:hidden!important;touch-action:pan-x!important}

/* R16.3.25 compose scroll boundary root fix.
   The fixed modal backdrop never scrolls. The bordered compose box is the only
   vertical scroll port, so scrolling stops at the complete bottom border and
   cannot expose page/backdrop/white canvas below it. */
#composeModal:not(.hidden)[data-xm-scroll-owner="true"]{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:var(--xm-vv-height,100dvh)!important;
  padding:max(8px,env(safe-area-inset-top)) 8px max(8px,env(safe-area-inset-bottom))!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
  touch-action:none!important;
}
#composeModal:not(.hidden)[data-xm-scroll-owner="true"]>.composeBox{
  display:flex!important;
  flex-direction:column!important;
  width:min(980px,calc(100vw - 16px))!important;
  max-width:calc(100vw - 16px)!important;
  height:auto!important;
  max-height:calc(var(--xm-vv-height,100dvh) - max(16px,env(safe-area-inset-top)) - max(16px,env(safe-area-inset-bottom)))!important;
  margin:auto!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior-y:contain!important;
  touch-action:pan-y!important;
  -webkit-overflow-scrolling:touch!important;
  scrollbar-width:none!important;
  background-clip:padding-box!important;
}
#composeModal:not(.hidden)[data-xm-scroll-owner="true"]>.composeBox::-webkit-scrollbar{
  display:none!important;width:0!important;height:0!important;
}
#composeModal:not(.hidden)[data-xm-scroll-owner="true"]>.composeBox::after{
  content:none!important;display:none!important;
}
#composeModal #richText{
  flex:0 0 auto!important;
  max-height:none!important;
  overflow:visible!important;
  overscroll-behavior:auto!important;
}
@supports not (height:100dvh){
  #composeModal:not(.hidden)[data-xm-scroll-owner="true"]{height:100vh!important}
  #composeModal:not(.hidden)[data-xm-scroll-owner="true"]>.composeBox{max-height:calc(100vh - 16px)!important}
}
/* R16.3.38 compose viewport geometry authority.
   On compact screens the compose surface starts at the safe top edge and owns
   the full visible height, covering the island border and its lower labels. */
@media(max-width:650px){
  #composeModal:not(.hidden)[data-xm-scroll-owner="true"]{
    align-items:flex-start!important;
    justify-content:center!important;
    padding:max(2px,env(safe-area-inset-top)) 6px max(2px,env(safe-area-inset-bottom))!important;
  }
  #composeModal:not(.hidden)[data-xm-scroll-owner="true"]>.composeBox{
    width:calc(100vw - 12px)!important;
    max-width:calc(100vw - 12px)!important;
    height:calc(var(--xm-vv-height,100dvh) - max(4px,env(safe-area-inset-top)) - max(4px,env(safe-area-inset-bottom)))!important;
    min-height:calc(var(--xm-vv-height,100dvh) - max(4px,env(safe-area-inset-top)) - max(4px,env(safe-area-inset-bottom)))!important;
    max-height:calc(var(--xm-vv-height,100dvh) - max(4px,env(safe-area-inset-top)) - max(4px,env(safe-area-inset-bottom)))!important;
    margin:0 auto!important;
  }
}
