Spaces:
Sleeping
Sleeping
| /* --- | |
| 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); | |
| } | |
| } |