/* --- TMM-OS VIS v2.0 - Chatbot Implementation Primary Font: Helvetica Neue Base Color: Cosmic Latte (#FFF8E7) --- */ /* 1.0 General & Body Styles */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; background-color: #FFF8E7; /* Primary Base: Cosmic Latte */ color: #000000; /* Primary Text: System Black */ display: flex; flex-direction: column; min-height: 100vh; } /* 2.0 Main Layout & Header */ .chat-container { width: 100%; max-width: 900px; margin: auto; padding: 20px; display: flex; flex-direction: column; flex-grow: 1; } .chat-header h1 { font-size: 48px; /* H1 Style */ font-weight: bold; /* Bold is often better than Black for web */ text-transform: uppercase; /* H1 Style */ text-align: center; margin-bottom: 20px; } /* 3.0 Message Container */ .messages-container { flex-grow: 1; overflow-y: auto; padding: 10px; border: 1px solid #ddd; border-radius: 8px; background-color: rgba(255, 255, 255, 0.6); margin-bottom: 20px; } /* 4.0 Individual Message Bubbles */ .message { display: flex; align-items: flex-start; margin-bottom: 15px; max-width: 80%; opacity: 0; transform: translateY(20px); animation: fade-in-bottom 0.4s forwards; } .message img { width: 40px; height: 40px; border-radius: 50%; flex-shrink: 0; border: 2px solid #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.1); } .message p { padding: 12px 16px; border-radius: 18px; line-height: 1.5; font-size: 16px; /* Body Large Style */ } /* User Message */ .user { flex-direction: row-reverse; margin-left: auto; } .user img { margin-left: 10px; } .user p { background-color: #f0f0f0; border-bottom-right-radius: 5px; } /* AI Bot Message */ .aibot { margin-right: auto; } .aibot img { margin-right: 10px; } .aibot p { background-color: #ffffff; border: 1px solid #e0e0e0; border-bottom-left-radius: 5px; } /* Error Message */ .error { margin-right: auto; } .error img { margin-right: 10px; } .error p { background-color: #FFDDDD; /* Subtle version of Art (Red) */ border: 1px solid #FF0000; color: #000000; border-bottom-left-radius: 5px; } /* 5.0 Loading Indicator */ .loading-container { display: flex; align-items: center; } .loading-animation { width: 40px; height: 40px; border-radius: 50%; border: 4px solid #e0e0e0; border-top-color: #0000FF; /* Sound (Blue) Accent */ animation: spin 1s linear infinite; margin-right: 10px; } .loading-text { font-size: 16px; color: #555; } /* 6.0 Input Form */ .chat-form { display: flex; align-items: stretch; } .chat-form textarea { flex-grow: 1; padding: 12px; border-radius: 8px; border: 1px solid #ccc; font-size: 16px; /* Body Large Style */ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; resize: none; overflow-y: hidden; line-height: 1.4; transition: border-color 0.2s, box-shadow 0.2s; } .chat-form textarea:focus { outline: none; border-color: #0000FF; /* Sound (Blue) Accent */ box-shadow: 0 0 0 2px rgba(0, 0, 255, 0.2); } .chat-form button { margin-left: 10px; padding: 0 20px; border: none; border-radius: 8px; cursor: pointer; background-color: #000000; /* System Black */ color: #FFF8E7; /* Cosmic Latte */ font-size: 15px; /* UI Label Style */ font-weight: bold; /* UI Label Style */ text-transform: uppercase; /* UI Label Style */ transition: background-color 0.2s; } .chat-form button:hover { background-color: #0000FF; /* Sound (Blue) Accent on hover */ } /* 7.0 Footer */ footer { padding: 20px; text-align: center; font-size: 14px; /* Body Small Style */ color: #555; } footer a { color: #0000FF; /* Sound (Blue) Accent */ font-weight: bold; text-decoration: none; } footer a:hover { text-decoration: underline; } /* 8.0 Animations */ @keyframes fade-in-bottom { to { opacity: 1; transform: translateY(0); } } @keyframes spin { to { transform: rotate(360deg); } }