The root box used padding:1 (all edges), reserving a blank row BELOW the status-bar+composer block. Switch to paddingTop/Left/Right only so the input hugs the last terminal row. Transcript stays flexGrow:1 minHeight:0; the bottom block is the flexShrink:0 last child. StatusLine already renders zero-height when idle, so no other change is needed.