@tdd_issue @tdd_issue_11249
Feature: TDD Issue #11249 — TUI prompt input characters not visible until Enter

  Textual's ``Input._watch_value`` sets ``self.virtual_size`` on every
  keystroke.  ``virtual_size`` is defined as ``Reactive(layout=True)`` on
  ``Widget``, so each change calls ``refresh(layout=True)`` which enqueues
  ANSI escape sequences in Textual's ``WriterThread``.  The thread only
  flushes stdout when its queue is empty; with continuous layout writes the
  queue never drains between keystrokes, so typed characters are invisible
  until Enter produces a burst that drains the queue.

  The fix overrides ``virtual_size`` on ``_PromptTextInput`` with
  ``Reactive(layout=False)`` so changes to it no longer trigger full
  layout recalculations.  The CSS also fixes ``height: auto`` → ``height: 1``
  on the Input to remove the ``auto_dimensions`` guard that adds a second
  ``refresh(layout=True)`` per keystroke.

  See CONTRIBUTING.md > Bug Fix Workflow > TDD Issue Test Tags.

  Scenario: _PromptTextInput.virtual_size reactive has layout=False
    Given the _PromptTextInput class is available
    Then its virtual_size reactive should have layout=False

  Scenario: _PromptTextInput is used as the inner input in _TextualPromptInput
    Given the _TextualPromptInput class is available
    Then its inner _input should be a _PromptTextInput instance

  Scenario: CSS prompt Input height is fixed not auto
    Given the TUI CSS file is loaded
    Then the prompt Input rule should use a fixed height not auto
