:root{--background-primary: #1a1a1a;--background-secondary: #242424;--background-tertiary: #333;--text-primary: #ffffff;--text-secondary: #aaaaaa;--accent-color: #48DBFB;--sent-bubble: #005c4b;--received-bubble: #3a3a3a;--error-color: #FF6B6B;--system-color: #8c8c8c;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif}body{margin:0;background-color:var(--background-primary);color:var(--text-primary);overscroll-behavior:none}.app-container{display:flex;flex-direction:column;height:100vh;width:100vw}.app-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background-color:var(--background-secondary);border-bottom:1px solid var(--background-tertiary)}.app-header-title{font-size:1.2rem;font-weight:600}.settings-button{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-secondary)}.main-content{display:flex;flex-grow:1;overflow:hidden}.overview-panel{width:320px;background-color:var(--background-secondary);border-right:1px solid var(--background-tertiary);overflow-y:auto;padding:.5rem}.tabs-container .tab{width:100%;background-color:#2a2a2a;border:1px solid var(--background-tertiary);border-radius:8px;padding:1rem;margin-bottom:.5rem;text-align:left;color:var(--text-primary);cursor:pointer;transition:background-color .2s,border-color .2s}.tabs-container .tab:hover{background-color:#3f3f3f}.tabs-container .tab.active{background-color:var(--accent-color);border-color:var(--accent-color);color:#000}.tab-title{font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.tab-detail{font-size:.85rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tab.active .tab-detail{color:#333}.chat-panel{flex-grow:1;display:flex;overflow:hidden}.main-chat-area{flex-grow:1;display:flex;flex-direction:column}.chat-panel-title{padding:1rem;margin:0;font-size:1.1rem;border-bottom:1px solid var(--background-tertiary);background-color:var(--background-secondary)}.chat-window{flex-grow:1;padding:1rem;overflow-y:auto;display:flex;flex-direction:column}.message-container{display:flex;flex-direction:column;margin-bottom:.75rem;max-width:75%}.message-container.sent{align-self:flex-end;align-items:flex-end}.message-container.received{align-self:flex-start;align-items:flex-start}.message{padding:.5rem .75rem;border-radius:12px;position:relative}.message.sent{background-color:var(--sent-bubble)}.message.received{background-color:var(--received-bubble)}.message-sender{font-size:.8rem;font-weight:700;margin-bottom:.25rem;padding-left:.2rem}.message-timestamp{font-size:.7rem;color:var(--text-secondary);margin-left:.75rem;display:inline-block;vertical-align:bottom;opacity:.7}.system-message{background-color:transparent!important;color:var(--system-color);font-style:italic;font-size:.9rem;text-align:center;width:100%;align-self:center}.message-input-area{display:flex;padding:1rem;border-top:1px solid var(--background-tertiary)}.message-input{flex-grow:1;padding:.75rem;border-radius:8px;border:1px solid var(--background-tertiary);background-color:var(--background-secondary);color:var(--text-primary);font-size:1rem}.send-button{margin-left:.5rem;padding:.75rem 1.5rem;border:none;border-radius:8px;background-color:var(--accent-color);color:#000;font-weight:600;cursor:pointer}.send-button:disabled{opacity:.5;cursor:not-allowed}.users-in-room-panel{width:280px;border-left:1px solid var(--background-tertiary);background-color:var(--background-secondary);padding:1rem;overflow-y:auto}.users-in-room-panel h4{margin-top:0;border-bottom:1px solid var(--background-tertiary);padding-bottom:.5rem}.users-in-room-panel ul{list-style:none;padding:0;margin:0}.users-in-room-panel li{display:flex;align-items:center;margin-bottom:.5rem}.user-color-dot{width:10px;height:10px;border-radius:50%;margin-right:.5rem}.loading-indicator{align-self:flex-start;padding:.5rem .75rem;color:var(--text-secondary);font-style:italic}.loading-fullscreen,.error-fullscreen{display:flex;justify-content:center;align-items:center;height:100vh;font-size:1.2rem;text-align:center}.error-fullscreen{color:var(--error-color)}.connection-status{padding:.25rem 1rem;font-size:.8rem;text-align:center;color:var(--text-secondary)}.connection-status.open{color:#1dd1a1}.connection-status.closed,.connection-status.error{color:var(--error-color)}.config-editor-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000}.config-editor-modal{background-color:var(--background-secondary);border:1px solid var(--background-tertiary);border-radius:8px;width:90%;max-width:600px;max-height:90vh;display:flex;flex-direction:column}.config-editor-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--background-tertiary)}.config-editor-close-btn{background:none;border:none;font-size:2rem;color:var(--text-secondary);cursor:pointer}.config-editor-content{padding:1rem;overflow-y:auto}.config-editor-section{background-color:#333;padding:1rem;border-radius:6px;margin-bottom:1rem}.config-editor-section label{display:block;margin-bottom:.25rem;color:var(--text-secondary)}.config-editor-section input{width:100%;padding:.5rem;margin-bottom:.75rem;border-radius:4px;border:1px solid var(--background-tertiary);background-color:var(--background-primary);color:var(--text-primary)}.config-add-station-btn,.config-remove-station-btn{width:100%;padding:.5rem;margin-top:.5rem;border-radius:4px;border:1px solid var(--accent-color);background:transparent;color:var(--accent-color);cursor:pointer}.config-remove-station-btn{border-color:var(--error-color);color:var(--error-color)}.config-editor-actions{display:flex;justify-content:flex-end;padding-top:1rem}.config-save-btn,.config-cancel-btn{padding:.75rem 1.5rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;margin-left:.5rem}.config-save-btn{background-color:var(--accent-color);color:#000}.config-cancel-btn{background-color:var(--background-tertiary);color:var(--text-primary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
