/* Keep native dialog scrolling while its controls remain within reach. */
#app-dialog.dialog,
#install-dialog.dialog {
  max-height: calc(100dvh - max(24px, env(safe-area-inset-top)) - max(24px, env(safe-area-inset-bottom)));
  overscroll-behavior: contain;
}

#app-dialog.dialog[open] > .dialog-top,
#install-dialog.dialog[open] > .dialog-top {
  position: sticky;
  top: 0;
  z-index: 10;
  background: #131a2d;
  margin-top: 0;
  margin-bottom: 18px;
  padding: 0 0 12px;
  border-bottom: 1px solid #ffffff18;
  box-shadow: 0 -28px 0 #131a2d;
}

#app-dialog.dialog > .dialog-top h2,
#install-dialog.dialog > .dialog-top h2 {
  flex: 1;
  min-width: 0;
  overflow-wrap: anywhere;
}

#app-dialog.dialog > .dialog-top .icon-button,
#install-dialog.dialog > .dialog-top .icon-button {
  flex: 0 0 44px;
  width: 44px;
  min-height: 44px;
  align-self: flex-start;
}

.astral-dock {
  margin-top: 20px;
  padding-top: 14px;
  border-top: 1px solid #ffffff20;
}

#app-dialog .astral-dock {
  position: sticky;
  bottom: 0;
  z-index: 9;
  background: #131a2d;
  padding-bottom: max(8px, env(safe-area-inset-bottom));
  box-shadow: 0 28px 0 #131a2d;
}

.astral-dock .astral-answer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
}

.astral-dock .button {
  flex: 1 1 140px;
  min-width: 0;
  min-height: 48px;
  white-space: normal;
}

.astral-dock .astral-continue {
  width: 100%;
}

.astral-dock .form-error:not([hidden]) {
  margin: 0 0 12px;
  max-height: 25dvh;
  overflow-y: auto;
}

@media (max-width: 650px) {
  #app-dialog .astral-confirm {
    padding: 18px;
  }

  #app-dialog .astral-confirm > .eyebrow {
    display: none;
  }

  #app-dialog .astral-confirm > h2 {
    font-size: 23px;
    line-height: 1.3;
    margin-bottom: 12px;
  }

  #app-dialog .astral-confirm > .muted {
    font-size: 14px;
    line-height: 1.55;
    margin-bottom: 12px;
  }

  #app-dialog .astral-confirm > blockquote {
    font-size: 22px;
    line-height: 1.45;
    margin: 16px 0;
  }
}

@media (max-width: 370px) {
  #app-dialog .astral-confirm > .muted {
    display: none;
  }
}
