DEFAULT_CSS = f'\n ChatInput {{\n height: auto;\n layers: base actions;\n }}\n\n ChatInput #input-box {{\n height: auto;\n min-height: 3;\n padding: 0;\n background: $background;\n border: solid $primary;\n }}\n\n ChatInput.mode-shell #input-box {{\n border: solid $mode-bash;\n }}\n\n ChatInput.mode-command #input-box {{\n border: solid $mode-command;\n }}\n\n ChatInput.mode-shell-incognito #input-box {{\n border: solid $mode-incognito;\n border-title-color: $mode-incognito;\n border-title-style: bold;\n }}\n\n /* Pre-mount default only. `_sync_resize_handle_color` sets the color as an\n inline style, which outranks this rule, because the hover highlight must\n persist while a drag travels outside the handle -- something `:hover`\n cannot express. Mode-specific rules here would be dead code, so mode\n colors live in that method instead. */\n ChatInput #input-resize-handle {{\n layer: actions;\n dock: left;\n width: 1;\n height: 1;\n offset: 1 0;\n background: transparent;\n color: $primary;\n pointer: ns-resize;\n }}\n\n /* Action buttons float on their own z-layer over the top border line, so\n they cost no content row and never overlap the draft text. The row docks\n to the right edge and sizes to its buttons (
`width: auto`
), overlaying\n only the right portion of the border line and leaving the rest clear. */\n ChatInput #input-actions {{\n layer: actions;\n dock: right;\n width: auto;\n height: 1;\n margin-right: 1;\n display: none;\n }}\n\n ChatInput .input-row {{\n height: auto;\n width: 100%;\n }}\n\n ChatInput .input-prompt {{\n width: 3;\n height: 1;\n padding: 0 1;\n color: $primary;\n text-style: bold;\n }}\n\n ChatInput.mode-shell .input-prompt {{\n color: $mode-bash;\n }}\n\n ChatInput.mode-command .input-prompt {{\n color: $mode-command;\n }}\n\n ChatInput.mode-shell-incognito .input-prompt {{\n color: $mode-incognito;\n }}\n\n ChatInput ChatTextArea {{\n width: 1fr;\n height: auto;\n min-height: 1;\n border: none;\n background: transparent;\n padding: 0;\n }}\n\n ChatInput ChatTextArea.cursor-underline .text-area--cursor {{\n background: transparent;\n color: $text;\n text-style: underline;\n }}\n\n ChatInput ChatTextArea:focus {{\n border: none;\n }}\n \n /* Sizes the composer sizing math depends on, interpolated from the module\n constants so the stylesheet cannot silently drift from the arithmetic in\n `ChatInputBox`. Appended rather than inlined above to keep the rest of\n this block free of doubled braces. */\n ChatInput #input-box {{\n max-height: {_CHAT_INPUT_BOX_MAX_HEIGHT};\n }}\n\n ChatInput ChatTextArea {{\n max-height: {_CHAT_INPUT_AUTO_MAX_HEIGHT};\n }}\n 'Border and prompt glyph change color per mode for immediate visual feedback.