/* LAUNCH_FIX4: iPhone standalone scroll geometry, calm headers and recovery UI. */

/* The shell owns the physical-screen bleed; interactive layout stays viewport-sized. */
@media (max-width:599px) {
  #blueink-r11[data-pwa-standalone] .app,
  #blueink-r11[data-pwa-standalone] .screen {
    height:100dvh;
  }
}

/* Primary pages: 64px dock + 18px dock offset + safe area + 16px breathing room. */
#blueink-r11 .content:not(.nonav) {
  padding-bottom:calc(98px + env(safe-area-inset-bottom,0px));
}

/* Secondary pages have no dock. */
#blueink-r11 .content.nonav {
  padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));
}

/* Reading modules own their nested secondary-page scroller. */
#blueink-r11 .daily-reading__viewport[data-scroll] {
  padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));
}

/* Keep one native vertical scroll owner; streaming updates stay locally contained. */
#blueink-r11 .content,
#blueink-r11 .chat-scroll {
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  touch-action:pan-y;
}
#blueink-r11 [data-streaming-reply] {
  contain:layout style;
}

/* Root headers share the compact secondary-page rhythm. */
#blueink-r11 .topbar:not(.home-header):not(.round8-topbar):not(.chat-header) {
  height:calc(54px + var(--top-safe));
  padding:calc(6px + var(--top-safe)) var(--page-pad) 6px;
}

/* No hard seam while content moves beneath the header. */
#blueink-r11 .topbar:not(.home-header) {
  border:0;
  box-shadow:none;
  background:linear-gradient(to bottom,var(--bg) 0%,color-mix(in srgb,var(--bg) 82%,transparent) 72%,transparent 100%);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

/* Life entries need enough width for labels and touch targets. */
#blueink-r11 .life-collage {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

#blueink-r11 .runtime-error-banner {
  position:absolute;
  z-index:120;
  top:calc(var(--top-safe) + 8px);
  right:12px;
  left:12px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:11px 12px;
  border:1px solid color-mix(in srgb,#b34b5d 42%,var(--hair));
  border-radius:14px;
  background:var(--glass-strong);
  box-shadow:var(--shadow);
  color:var(--ink);
  font:12px/1.5 var(--font-ui);
}
#blueink-r11 .runtime-error-banner button {
  min-height:36px;
  padding:0 12px;
  border-radius:12px;
  background:var(--milk);
  color:var(--ribbon-deep);
}
