  /* Space for footer at rest */
  .has-fixed-footer { padding-bottom: calc(75px + env(safe-area-inset-bottom)); }

  /* Let JS set --kb (keyboard height). Use it to raise composers & add extra bottom space while keyboard is up */
  :root { --kb: 0px; }
  .keyboard-up .has-fixed-footer { padding-bottom: calc(75px + env(safe-area-inset-bottom) + var(--kb)); }

  /* Example composer/reply bar that sits above keyboard without transforms */
  .composer-fixed {
    position: fixed;
    left: 0; right: 0;
    bottom: calc(env(safe-area-inset-bottom) + 0px); /* at rest */
    z-index: 1000000001;
  }
  .keyboard-up .composer-fixed {
    bottom: calc(env(safe-area-inset-bottom) + var(--kb));
  }

  /* Safety: never transform fixed UI on iOS 26 */
  @supports (height: 100dvh) {
    .no-transform-fixed {
      transform: none !important;
      will-change: auto !important;
    }
  }