@@ -322,21 +322,14 @@ export function ChatPane({
322322 } ;
323323
324324 return (
325- < div className = "flex flex-col h-full bg-monastery-dark-bg relative overflow-hidden" >
326- { /* Monastery SVG background */ }
327- < img
328- src = { theme === 'monastery-dark' ? '/images/monasteryDark.svg' : '/images/monasteryLight.svg' }
329- alt = ""
330- className = "absolute inset-0 w-full h-full object-cover opacity-[0.07] pointer-events-none select-none"
331- />
332-
325+ < div className = "flex flex-col h-full bg-monastery-dark-surface relative overflow-hidden" >
333326 { /* Chat header — session switcher (sessions belong to the chat, not the file tree) */ }
334327 { onSelectSession && (
335328 < div className = "relative z-20 flex items-center gap-1 px-3 py-1.5 shrink-0" >
336329 < div className = "relative min-w-0" >
337330 < button
338331 onClick = { ( ) => setSessionMenuOpen ( o => ! o ) }
339- className = "flex items-center gap-1.5 px-2 py-1 max-w-full hover:bg-monastery-dark-surface rounded-md transition-colors text-xs text-monastery-text-secondary"
332+ className = "flex items-center gap-1.5 px-2 py-1 max-w-full hover:bg-monastery-dark-tertiary rounded-md transition-colors text-xs text-monastery-text-secondary"
340333 title = "Switch chat session"
341334 >
342335 < MessageSquare size = { 13 } className = "shrink-0" />
@@ -396,7 +389,7 @@ export function ChatPane({
396389 { onCreateSession && (
397390 < button
398391 onClick = { onCreateSession }
399- className = "p-1 hover:bg-monastery-dark-surface rounded-md transition-colors text-monastery-text-secondary hover:text-monastery-text-primary shrink-0"
392+ className = "p-1 hover:bg-monastery-dark-tertiary rounded-md transition-colors text-monastery-text-secondary hover:text-monastery-text-primary shrink-0"
400393 title = "New session"
401394 >
402395 < Plus size = { 14 } />
@@ -410,7 +403,7 @@ export function ChatPane({
410403 className = { `ml-auto flex items-center gap-1.5 px-2 py-1 rounded-md text-xs transition-colors shrink-0 max-w-[45%] ${
411404 activeTaskLabel
412405 ? 'bg-monastery-lantern/15 text-monastery-lantern hover:bg-monastery-lantern/25'
413- : 'text-monastery-text-secondary hover:bg-monastery-dark-surface hover:text-monastery-text-primary'
406+ : 'text-monastery-text-secondary hover:bg-monastery-dark-tertiary hover:text-monastery-text-primary'
414407 } `}
415408 title = { activeTaskLabel ? 'Open the active task' : 'Structured tasks: Plan → Implement → Verify → Review' }
416409 >
@@ -446,28 +439,28 @@ export function ChatPane({
446439 < div className = "grid grid-cols-2 gap-2 text-left max-w-sm mx-auto" >
447440 < button
448441 onClick = { ( ) => onSendMessage ( 'Create a Next.js app with authentication' ) }
449- className = "p-3 bg-monastery-dark-surface rounded-xl text-xs text-monastery-text-secondary hover:bg-monastery-dark-tertiary hover:text-monastery-text-primary transition-all border border-monastery-dark-border hover:border-monastery-pine text-left"
442+ className = "p-3 bg-monastery-dark-bg rounded-xl text-xs text-monastery-text-secondary hover:bg-monastery-dark-tertiary hover:text-monastery-text-primary transition-all border border-monastery-dark-border hover:border-monastery-pine text-left"
450443 >
451444 < div className = "font-medium text-monastery-text-primary mb-0.5" > Web App</ div >
452445 Create a Next.js app with authentication
453446 </ button >
454447 < button
455448 onClick = { ( ) => onSendMessage ( 'Explain how this project structure works' ) }
456- className = "p-3 bg-monastery-dark-surface rounded-xl text-xs text-monastery-text-secondary hover:bg-monastery-dark-tertiary hover:text-monastery-text-primary transition-all border border-monastery-dark-border hover:border-monastery-pine text-left"
449+ className = "p-3 bg-monastery-dark-bg rounded-xl text-xs text-monastery-text-secondary hover:bg-monastery-dark-tertiary hover:text-monastery-text-primary transition-all border border-monastery-dark-border hover:border-monastery-pine text-left"
457450 >
458451 < div className = "font-medium text-monastery-text-primary mb-0.5" > Understand</ div >
459452 Explain this codebase structure
460453 </ button >
461454 < button
462455 onClick = { ( ) => onSendMessage ( 'Add unit tests to the existing module' ) }
463- className = "p-3 bg-monastery-dark-surface rounded-xl text-xs text-monastery-text-secondary hover:bg-monastery-dark-tertiary hover:text-monastery-text-primary transition-all border border-monastery-dark-border hover:border-monastery-pine text-left"
456+ className = "p-3 bg-monastery-dark-bg rounded-xl text-xs text-monastery-text-secondary hover:bg-monastery-dark-tertiary hover:text-monastery-text-primary transition-all border border-monastery-dark-border hover:border-monastery-pine text-left"
464457 >
465458 < div className = "font-medium text-monastery-text-primary mb-0.5" > Testing</ div >
466459 Add tests to the existing module
467460 </ button >
468461 < button
469462 onClick = { ( ) => onSendMessage ( 'Deploy this project to my homelab server' ) }
470- className = "p-3 bg-monastery-dark-surface rounded-xl text-xs text-monastery-text-secondary hover:bg-monastery-dark-tertiary hover:text-monastery-text-primary transition-all border border-monastery-dark-border hover:border-monastery-pine text-left"
463+ className = "p-3 bg-monastery-dark-bg rounded-xl text-xs text-monastery-text-secondary hover:bg-monastery-dark-tertiary hover:text-monastery-text-primary transition-all border border-monastery-dark-border hover:border-monastery-pine text-left"
471464 >
472465 < div className = "font-medium text-monastery-text-primary mb-0.5" > Deploy</ div >
473466 Deploy this to my homelab
@@ -519,8 +512,8 @@ export function ChatPane({
519512 message . role === 'user'
520513 ? 'bg-monastery-pine text-white'
521514 : message . role === 'system'
522- ? 'bg-monastery-dark-tertiary border border-monastery-dark-border text-center'
523- : 'bg-monastery-dark-surface border border-monastery-dark-border '
515+ ? 'bg-monastery-dark-tertiary text-center'
516+ : 'bg-monastery-dark-bg '
524517 } `}
525518 >
526519 { /* Agent role chips on a user message (which role(s) it was sent under) */ }
@@ -665,8 +658,8 @@ export function ChatPane({
665658 < div ref = { messagesEndRef } />
666659 </ div >
667660
668- { /* Input */ }
669- < form onSubmit = { handleSubmit } className = "border-t border-monastery-dark-border p-4" >
661+ { /* Input — no rule above it; the inset field carries its own edge */ }
662+ < form onSubmit = { handleSubmit } className = "p-4 pt-2 " >
670663 { /* Composer toolbar: a "+ Context" popover holds the registry-driven options (skills,
671664 behaviors) so new ones never widen this row; active ones surface as removable chips.
672665 The Chat/Agent mode selector sits at the right, with roles behind it in a popover. */ }
@@ -857,7 +850,7 @@ export function ChatPane({
857850 ) }
858851
859852 < div className = "flex items-end gap-2" >
860- < label className = "p-2 hover:bg-monastery-dark-surface rounded-lg transition-colors cursor-pointer" >
853+ < label className = "p-2 hover:bg-monastery-dark-tertiary rounded-lg transition-colors cursor-pointer" >
861854 < Paperclip size = { 20 } className = "text-monastery-text-secondary" />
862855 < input
863856 type = "file"
@@ -882,7 +875,7 @@ export function ChatPane({
882875 disabled = { ! activeEndpoint && messages . length === 0 }
883876 rows = { 1 }
884877 style = { { maxHeight : MAX_INPUT_HEIGHT } }
885- className = "flex-1 bg-monastery-dark-surface border border-monastery-dark-border rounded-xl px-4 py-3 text-sm resize-y overflow-y-auto focus:outline-none focus:border-monastery-pine transition-colors"
878+ className = "flex-1 bg-monastery-dark-bg border border-monastery-dark-border rounded-xl px-4 py-3 text-sm resize-y overflow-y-auto focus:outline-none focus:border-monastery-pine transition-colors"
886879 />
887880
888881 { isGenerating ? (
0 commit comments