:root{--color-primary: #EF6F53;--color-primary-dark: #D65A40;--color-primary-light: #FFE5E0;--color-unread-bg: #FFF9F8;--color-bg-page: #F9F9F9;--color-bg-chat: #FFFFFF;--color-bg-receiver-bubble: #F2F2F7;--color-border-subtle: #F2F4F7;--color-border-input: #E5E5EA;--color-text-primary: #111827;--color-text-receiver: #333333;--color-text-secondary: #6B7280;--color-text-muted: #8E8E93;--color-text-timestamp: #999999;--color-text-white: #FFFFFF;--color-header-subtitle: rgba(255, 255, 255, .85);--color-online: #10B981;--color-offline: #9CA3AF;--color-connecting: #F59E0B;--color-danger: #EF4444;--font-family: "SF Pro Text", -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-title: "Plus Jakarta Sans", var(--font-family);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .08), 0 2px 4px -1px rgba(0, 0, 0, .04);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -2px rgba(0, 0, 0, .04);--shadow-coral: 0 4px 12px rgba(239, 111, 83, .35);--shadow-badge: 0 1px 2px rgba(239, 111, 83, .3);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .25s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;width:100%;overflow:hidden;font-family:var(--font-family);background-color:var(--color-bg-page);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%;width:100%;display:flex;flex-direction:column}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00000040}.app-container{display:flex;flex-direction:column;height:100vh;height:100dvh;background-color:var(--color-bg-page);overflow:hidden;width:100%}.top-header{height:56px;background:linear-gradient(135deg,#ef6f53,#d65a40);color:var(--color-text-white);display:flex;align-items:center;justify-content:space-between;padding:0 16px;box-shadow:0 2px 8px #0000001f;z-index:20;flex-shrink:0}.top-header-left{display:flex;align-items:center;gap:12px}.top-header-logo{display:flex;align-items:center;gap:8px;font-family:var(--font-title);font-weight:700;font-size:18px;letter-spacing:-.3px;color:#fff}.top-header-logo-icon{width:32px;height:32px;border-radius:8px;background:#fff3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.3)}.top-header-right{display:flex;align-items:center;gap:10px}.header-badge-btn{background:#ffffff29;border:1px solid rgba(255,255,255,.25);color:#fff;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:500;display:flex;align-items:center;gap:6px;cursor:pointer;transition:all var(--transition-fast)}.header-badge-btn:hover{background:#ffffff47}.split-view-container{display:flex;flex:1;overflow:hidden;height:calc(100vh - 56px);height:calc(100dvh - 56px);position:relative;width:100%}.sidebar-wrapper{width:360px;min-width:300px;max-width:420px;height:100%;display:flex;flex-direction:column;border-right:1px solid var(--color-border-subtle);flex-shrink:0;background:var(--color-bg-page)}.chat-room-wrapper{flex:1;height:100%;display:flex;flex-direction:column;background:var(--color-bg-chat);overflow:hidden}.sidebar-panel{width:100%;height:100%;background:var(--color-bg-page);display:flex;flex-direction:column;overflow:hidden}.search-container{padding:12px 16px;background:var(--color-bg-page);border-bottom:1px solid var(--color-border-subtle);flex-shrink:0}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-input{width:100%;height:38px;background:var(--color-bg-receiver-bubble);border:1px solid transparent;border-radius:12px;padding:0 36px;font-size:14px;color:var(--color-text-primary);outline:none;transition:all var(--transition-fast)}.search-input:focus{border-color:var(--color-primary);background:#fff;box-shadow:0 0 0 3px #ef6f5326}.search-input::placeholder{color:var(--color-text-muted)}.search-icon{position:absolute;left:12px;color:var(--color-text-muted);pointer-events:none}.search-clear-btn{position:absolute;right:10px;background:none;border:none;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px;border-radius:50%}.search-clear-btn:hover{background:#0000000d}.conversation-list{flex:1;overflow-y:auto;list-style:none}.conversation-item{display:flex;align-items:center;padding:14px 16px;gap:12px;cursor:pointer;transition:background-color var(--transition-fast);border-bottom:1px solid var(--color-border-subtle);position:relative;-webkit-user-select:none;user-select:none}.conversation-item:hover{background-color:#ef6f530a}.conversation-item.active{background-color:#fff2ef;border-left:4px solid var(--color-primary)}.conversation-item.unread{background-color:var(--color-unread-bg)}.conversation-item.unread:hover{background-color:#fff0ed}.conversation-item-avatar-wrapper{position:relative;flex-shrink:0}.avatar-image{width:52px;height:52px;border-radius:26px;object-fit:cover;background-color:var(--color-primary-light);display:block}.avatar-fallback{width:52px;height:52px;border-radius:26px;background:linear-gradient(135deg,#ffe5e0,#ffd2ca);color:var(--color-primary-dark);font-weight:700;font-size:18px;display:flex;align-items:center;justify-content:center}.online-indicator{position:absolute;bottom:2px;right:2px;width:12px;height:12px;border-radius:6px;background-color:var(--color-online);border:2px solid #FFFFFF}.conversation-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.conversation-header-row{display:flex;align-items:baseline;justify-content:space-between}.conversation-title{font-size:16px;font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation-title.unread{font-weight:700;color:#000}.conversation-timestamp{font-size:12px;color:var(--color-text-muted);flex-shrink:0;margin-left:8px}.conversation-timestamp.unread{color:var(--color-primary);font-weight:600}.conversation-specialization{font-size:12px;font-weight:500;color:var(--color-primary);margin-bottom:2px}.conversation-footer-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.conversation-snippet{font-size:14px;line-height:18px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.conversation-snippet.unread{color:var(--color-text-primary);font-weight:600}.unread-badge{min-width:22px;height:22px;padding:0 6px;border-radius:11px;background-color:var(--color-primary);color:var(--color-text-white);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-badge);flex-shrink:0}.chat-panel{flex:1;display:flex;flex-direction:column;background-color:var(--color-bg-chat);height:100%;overflow:hidden;position:relative}.chat-room-header{height:60px;background:var(--color-primary);color:var(--color-text-white);display:flex;align-items:center;justify-content:space-between;padding:0 16px;box-shadow:0 1px 4px #00000014;flex-shrink:0;z-index:10}.chat-room-header-left{display:flex;align-items:center;gap:10px;min-width:0}.chat-header-back-btn{display:none;background:none;border:none;color:#fff;cursor:pointer;padding:6px;border-radius:50%;align-items:center;justify-content:center}.chat-header-back-btn:hover{background:#ffffff26}.chat-header-avatar{width:36px;height:36px;border-radius:18px;object-fit:cover;border:1.5px solid rgba(255,255,255,.8)}.chat-header-info{display:flex;flex-direction:column;min-width:0}.chat-header-title{font-size:16px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-header-subtitle{font-size:12px;font-weight:400;color:var(--color-header-subtitle);display:flex;align-items:center;gap:6px}.chat-room-header-actions{display:flex;align-items:center;gap:8px}.chat-action-btn{background:#ffffff26;border:none;color:#fff;width:36px;height:36px;border-radius:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color var(--transition-fast)}.chat-action-btn:hover{background:#ffffff47}.message-feed{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px;background-color:#fff;background-image:radial-gradient(#F0F2F5 1px,transparent 1px);background-size:20px 20px}.date-divider{display:flex;align-items:center;justify-content:center;margin:12px 0}.date-divider-pill{background:#eceff1;color:#546e7a;font-size:11px;font-weight:600;padding:4px 12px;border-radius:12px;text-transform:uppercase;letter-spacing:.4px}.message-row{display:flex;width:100%;margin-bottom:12px}.message-row.outgoing{justify-content:flex-end}.message-row.incoming{justify-content:flex-start}.message-group{display:flex;flex-direction:column;max-width:75%;min-width:0;width:fit-content}.message-group.outgoing{align-items:flex-end}.message-group.incoming{align-items:flex-start}.message-bubble{display:inline-block;padding:10px 18px;max-width:100%;box-sizing:border-box;position:relative;box-shadow:0 1px 2px #0000000a}.message-bubble.outgoing{background-color:var(--color-primary);color:#fff;border-radius:20px 20px 2px}.message-bubble.incoming{background-color:#eef2f6;color:#1e293b;border-radius:20px 20px 20px 2px}.message-bubble.outgoing .message-text,.message-text.outgoing{font-size:15px;font-weight:400;line-height:20px;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;margin:0;text-align:left;color:#fff}.message-bubble.incoming .message-text,.message-text.incoming{font-size:15px;font-weight:400;line-height:20px;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;margin:0;text-align:left;color:#1e293b}.message-meta{display:flex;align-items:center;gap:4px}.message-meta.outgoing{justify-content:flex-end;margin-top:4px;padding-right:4px}.message-meta.incoming{justify-content:flex-start;margin-top:4px;padding-left:4px}.message-timestamp{font-size:11px;font-weight:500;color:#94a3b8}.message-status-icon{display:inline-flex;align-items:center}.typing-bubble{padding:12px 18px;min-height:38px;display:inline-flex;align-items:center;justify-content:center}.typing-dots{display:inline-flex;align-items:center;gap:5px;height:12px}.typing-dot{width:7px;height:7px;border-radius:50%;background-color:#94a3b8;display:inline-block;animation:typingBounce 1.4s infinite ease-in-out both}.typing-dot:nth-child(1){animation-delay:-.32s}.typing-dot:nth-child(2){animation-delay:-.16s}.typing-dot:nth-child(3){animation-delay:0s}@keyframes typingBounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1.1);opacity:1;background-color:var(--color-primary)}}.typing-text{font-style:italic;color:var(--color-primary)}.chat-input-bar{padding:12px 16px;background-color:#fff;border-top:1px solid var(--color-border-input);display:flex;align-items:flex-end;gap:10px;flex-shrink:0}.chat-input-wrapper{flex:1;background-color:var(--color-bg-receiver-bubble);border-radius:20px;padding:8px 14px;display:flex;align-items:center;min-height:40px;gap:8px;border:1px solid transparent;transition:all var(--transition-fast)}.chat-input-wrapper:focus-within{border-color:var(--color-primary);background-color:#fff;box-shadow:0 0 0 3px #ef6f5326}.chat-textarea{flex:1;border:none;background:transparent;outline:none;resize:none;font-family:var(--font-family);font-size:15px;line-height:20px;max-height:120px;color:var(--color-text-primary)}.chat-textarea::placeholder{color:var(--color-text-muted)}.chat-attach-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px;border-radius:50%;transition:color var(--transition-fast)}.chat-attach-btn:hover{color:var(--color-primary)}.chat-send-btn{width:40px;height:40px;border-radius:20px;background-color:var(--color-primary);color:var(--color-text-white);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all var(--transition-fast);box-shadow:var(--shadow-coral)}.chat-send-btn:hover:not(:disabled){background-color:var(--color-primary-dark);transform:scale(1.04)}.chat-send-btn:active:not(:disabled){transform:scale(.96)}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.empty-chat-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;text-align:center;background-color:var(--color-bg-page);color:var(--color-text-muted)}.empty-chat-icon-wrapper{width:72px;height:72px;border-radius:36px;background:var(--color-primary-light);color:var(--color-primary);display:flex;align-items:center;justify-content:center;margin-bottom:16px}.empty-chat-title{font-size:18px;font-weight:600;color:var(--color-text-primary);margin-bottom:8px}.empty-chat-desc{font-size:14px;max-width:320px;line-height:20px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.modal-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.modal-header{padding:18px 20px;border-bottom:1px solid var(--color-border-subtle);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:18px;font-weight:700;color:var(--color-text-primary)}.modal-close-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:4px;border-radius:50%}.modal-body{padding:20px;display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:13px;font-weight:600;color:var(--color-text-primary)}.form-input{height:40px;border:1px solid var(--color-border-input);border-radius:var(--radius-md);padding:0 12px;font-size:14px;outline:none;transition:border-color var(--transition-fast)}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #ef6f5326}.modal-footer{padding:16px 20px;border-top:1px solid var(--color-border-subtle);display:flex;justify-content:flex-end;gap:10px}.btn-secondary{padding:8px 16px;border-radius:var(--radius-md);border:1px solid var(--color-border-input);background:#fff;font-size:14px;font-weight:600;color:var(--color-text-secondary);cursor:pointer}.btn-primary{padding:8px 18px;border-radius:var(--radius-md);border:none;background:var(--color-primary);font-size:14px;font-weight:600;color:#fff;cursor:pointer;box-shadow:var(--shadow-coral)}.btn-primary:hover{background:var(--color-primary-dark)}.status-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:4px 10px;border-radius:12px}.status-pill.Connected{background:#10b98126;color:#065f46}.status-pill.Connecting,.status-pill.Reconnecting{background:#f59e0b26;color:#92400e}.status-pill.Disconnected{background:#9ca3af33;color:#374151}.status-dot{width:7px;height:7px;border-radius:50%}.status-dot.Connected{background-color:var(--color-online);box-shadow:0 0 6px var(--color-online)}.status-dot.Connecting,.status-dot.Reconnecting{background-color:var(--color-connecting)}.status-dot.Disconnected{background-color:var(--color-offline)}.simulator-btn{background:#ff9800;color:#fff;border:none;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:background .15s}.simulator-btn:hover{background:#f57c00}@media(max-width:768px){.top-header{display:none!important}.split-view-container{height:100vh!important;height:100dvh!important;width:100%!important;position:relative;overflow:hidden}.sidebar-wrapper{width:100%!important;min-width:100%!important;max-width:100%!important;height:100%!important;border-right:none!important;display:flex!important;flex-direction:column}.chat-room-wrapper{width:100%!important;height:100%!important;display:flex!important;flex-direction:column}.sidebar-wrapper.mobile-hidden,.chat-room-wrapper.mobile-hidden{display:none!important}.chat-header-back-btn{display:flex!important}.message-bubble{max-width:82%}.chat-input-bar{padding-bottom:max(12px,env(safe-area-inset-bottom,12px))}}.header-user-tag{background:#ffffff24;border:1px solid rgba(255,255,255,.22);color:#fff;padding:5px 12px;border-radius:20px;font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px;letter-spacing:.2px}.header-badge-btn.logout{background:#ef444433;border-color:#ef444459;color:#fecaca}.header-badge-btn.logout:hover{background:#ef444459;color:#fff}.auth-lock-container{min-height:100vh;min-height:100dvh;width:100vw;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 50% 20%,#1e293b,#0f172a);color:#f8fafc;font-family:var(--font-sans)}.auth-lock-card{width:100%;max-width:480px;background:#1e293bbf;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:36px 32px;box-shadow:0 25px 50px -12px #00000080,0 0 0 1px #ffffff0d;display:flex;flex-direction:column;align-items:center;text-align:center;animation:fadeIn .4s ease-out}.auth-lock-card.simple{max-width:320px;padding:36px 28px}.auth-lock-brand{display:flex;align-items:center;gap:10px;margin-bottom:24px}.auth-brand-logo-icon{width:32px;height:32px;border-radius:10px;background:var(--color-primary);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #ef6f5366}.auth-brand-pill{color:#fff;font-weight:800;font-size:17px}.auth-brand-title{font-size:18px;font-weight:700;letter-spacing:-.3px;color:#fff}.auth-lock-status-badge{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:20px}.auth-lock-status-badge.locked{background:#ef6f531f;border:1px solid rgba(239,111,83,.3);color:var(--color-primary)}.auth-lock-status-badge.expired{background:#f59e0b1f;border:1px solid rgba(245,158,11,.3);color:#f59e0b}.auth-lock-heading{font-size:22px;font-weight:700;color:#fff;margin-bottom:10px;letter-spacing:-.4px}.auth-lock-description{font-size:14px;line-height:1.5;color:#94a3b8;margin-bottom:24px}.auth-url-guide{width:100%;background:#0f172a99;border:1px dashed rgba(255,255,255,.15);border-radius:12px;padding:12px 16px;margin-bottom:24px;text-align:left}.auth-url-guide-header{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#cbd5e1;margin-bottom:6px}.auth-url-code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;color:#38bdf8;word-break:break-all}.auth-url-code strong{color:#fde047}.auth-lock-actions{width:100%;display:flex;flex-direction:column;gap:10px}.auth-btn-primary{width:100%;height:44px;background:var(--color-primary);color:#fff;border:none;border-radius:12px;font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;box-shadow:0 4px 16px #ef6f5359;transition:all var(--transition-fast)}.auth-btn-primary:hover{background:#e55a3c;transform:translateY(-1px)}.auth-btn-secondary{background:transparent;border:1px solid rgba(255,255,255,.15);color:#cbd5e1;height:38px;border-radius:10px;font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.auth-btn-secondary:hover{background:#ffffff0f;color:#fff}.auth-manual-form{width:100%;margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:12px;text-align:left}.auth-form-field{display:flex;flex-direction:column;gap:4px}.auth-form-field label{font-size:12px;font-weight:500;color:#94a3b8}.auth-form-field input{height:38px;background:#0f172acc;border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:0 12px;color:#fff;font-size:13px;outline:none;transition:border-color var(--transition-fast)}.auth-form-field input:focus{border-color:var(--color-primary)}.auth-btn-submit{height:40px;background:#10b981;color:#fff;border:none;border-radius:10px;font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;margin-top:4px;transition:background var(--transition-fast)}.auth-btn-submit:hover{background:#059669}.auth-lock-footer{display:flex;align-items:center;gap:6px;font-size:11px;color:#64748b;margin-top:24px}
