@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";
:root{--bg-base:#0d1117;--bg-surface:#161b22;--bg-elevated:#21262d;--bg-overlay:#30363d;--border-subtle:#21262d;--border-default:#30363d;--border-strong:#484f58;--text-primary:#e6edf3;--text-secondary:#8b949e;--text-muted:#484f58;--text-inverse:#0d1117;--accent-500:#10b981;--accent-400:#34d399;--accent-300:#6ee7b7;--accent-glow:#10b98126;--color-online:#3fb950;--color-offline:#484f58;--color-error:#f85149;--color-warning:#d29922;--bubble-self:#1a4731;--bubble-self-border:#2d6a4f;--bubble-peer:#21262d;--bubble-peer-border:#30363d;--bubble-system:#10b98114;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 16px #00000080;--shadow-glow:0 0 24px var(--accent-glow);--transition-fast:.12s ease;--transition-base:.2s ease;--transition-slow:.35s ease;--font-sans:"Inter", system-ui, -apple-system, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--bg-base);height:100%;color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px;line-height:1.6}h1{letter-spacing:-.02em;font-size:2rem;font-weight:700}h2{letter-spacing:-.01em;font-size:1.5rem;font-weight:600}h3{font-size:1.25rem;font-weight:600}h4{font-size:1rem;font-weight:600}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.landing-page{min-height:100vh;padding:var(--space-6);background:radial-gradient(ellipse 80% 60% at 50% -10%, #10b9811f 0%, transparent 60%), var(--bg-base);justify-content:center;align-items:center;display:flex}.landing-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:100%;max-width:440px;padding:var(--space-8);box-shadow:var(--shadow-md);animation:fadeSlideUp var(--transition-slow) ease both}.landing-logo{align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);display:flex}.landing-logo-icon{background:var(--accent-glow);border:1px solid var(--accent-500);border-radius:var(--radius-md);justify-content:center;align-items:center;width:44px;height:44px;font-size:1.4rem;display:flex}.landing-logo h1{background:linear-gradient(135deg, var(--accent-300), var(--accent-500));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.5rem}.landing-subtitle{color:var(--text-secondary);margin-bottom:var(--space-8);font-size:.875rem}.form-group{gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column;display:flex}.form-label{color:var(--text-secondary);letter-spacing:.02em;text-transform:uppercase;font-size:.8125rem;font-weight:500}.form-input{width:100%;padding:var(--space-3) var(--space-4);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-sans);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;font-size:.9375rem}.form-input::placeholder{color:var(--text-muted)}.form-input:focus{border-color:var(--accent-500);box-shadow:0 0 0 3px var(--accent-glow)}.form-input.input-error{border-color:var(--color-error);box-shadow:0 0 0 3px #f8514926}.form-hint{color:var(--text-muted);font-size:.75rem;line-height:1.5}.form-hint code{background:var(--bg-overlay);border-radius:var(--radius-sm);color:var(--accent-400);padding:1px 5px;font-size:.7rem}.form-divider{align-items:center;gap:var(--space-3);margin:var(--space-4) 0;color:var(--text-muted);font-size:.75rem;display:flex}.form-divider:before,.form-divider:after{content:"";background:var(--border-subtle);flex:1;height:1px}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-family:var(--font-sans);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:none;font-size:.9375rem;font-weight:500;display:inline-flex}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent-500);color:var(--text-inverse);width:100%;padding:var(--space-3) var(--space-4)}.btn-primary:hover:not(:disabled){background:var(--accent-400);box-shadow:var(--shadow-glow)}.btn-primary:active:not(:disabled){transform:translateY(1px)}.chat-layout{background:var(--bg-base);flex-direction:column;max-width:800px;height:100vh;margin:0 auto;display:flex}.status-bar{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);flex-shrink:0;min-height:60px;display:flex}.status-bar-left{align-items:center;gap:var(--space-3);flex:1;min-width:0;display:flex}.status-avatar{border-radius:var(--radius-full);background:var(--bg-elevated);border:1.5px solid var(--border-default);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1rem;display:flex}.status-info{min-width:0}.status-name{white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;font-weight:600;overflow:hidden}.status-sub{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.status-indicator{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);flex-shrink:0;font-size:.75rem;font-weight:500;display:flex}.status-indicator.connected{color:var(--color-online);background:#3fb9501f}.status-indicator.disconnected,.status-indicator.reconnecting{color:var(--text-secondary);background:#484f5833}.status-indicator.connecting{color:var(--color-warning);background:#d299221f}.status-dot{border-radius:var(--radius-full);background:currentColor;flex-shrink:0;width:7px;height:7px}.status-indicator.connected .status-dot{animation:2s infinite pulse-dot}.status-indicator.reconnecting .status-dot{animation:1s step-end infinite blink}.chat-window{padding:var(--space-5);gap:var(--space-3);scroll-behavior:smooth;flex-direction:column;flex:1;display:flex;overflow-y:auto}.chat-window::-webkit-scrollbar{width:4px}.chat-window::-webkit-scrollbar-track{background:0 0}.chat-window::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-full)}.chat-empty{justify-content:center;align-items:center;gap:var(--space-3);color:var(--text-muted);text-align:center;padding:var(--space-8);flex-direction:column;flex:1;display:flex}.chat-empty-icon{opacity:.4;font-size:2.5rem}.message-row{flex-direction:column;max-width:72%;animation:.2s both fadeSlideUp;display:flex}.message-row.self{align-self:flex-end;align-items:flex-end}.message-row.peer{align-self:flex-start;align-items:flex-start}.message-row.system{align-self:center;align-items:center;max-width:90%}.message-bubble{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);word-break:break-word;font-size:.9375rem;line-height:1.5}.message-row.self .message-bubble{background:var(--bubble-self);border:1px solid var(--bubble-self-border);border-bottom-right-radius:var(--radius-sm)}.message-row.peer .message-bubble{background:var(--bubble-peer);border:1px solid var(--bubble-peer-border);border-bottom-left-radius:var(--radius-sm)}.message-row.system .message-bubble{background:var(--bubble-system);color:var(--accent-400);text-align:center;border-radius:var(--radius-full);padding:var(--space-1) var(--space-4);border:1px solid #10b98133;font-size:.8125rem}.message-text-content{white-space:pre-wrap;word-break:break-word;transition:max-height .25s;position:relative}.message-text-clamped{max-height:160px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 60%,#0000 100%);mask-image:linear-gradient(#000 60%,#0000 100%)}.read-more-actions{align-items:center;gap:var(--space-3);margin-top:6px;padding-top:4px;display:flex}.read-more-toggle-btn{color:var(--accent-300);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);text-underline-offset:3px;background:0 0;border:none;align-items:center;gap:4px;padding:2px 4px;font-size:.8125rem;font-weight:600;text-decoration:underline;display:inline-flex}.read-more-toggle-btn:hover{color:#fff;background:#ffffff1a}.message-row.peer .read-more-toggle-btn{color:var(--accent-400)}.read-mode-modal-btn{color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:#ffffff14;border:1px solid #ffffff26;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:500;display:inline-flex}.read-mode-modal-btn:hover{background:#ffffff2e;border-color:#ffffff4d}.message-sender{color:var(--accent-400);padding:0 var(--space-1);margin-bottom:2px;font-size:.75rem;font-weight:600}.message-meta{color:var(--text-muted);padding:0;font-size:.6875rem}.message-meta-row{color:var(--text-muted);margin-top:var(--space-1);padding:0 var(--space-1);align-items:center;gap:4px;font-size:.6875rem;display:flex}.receipt-icon{letter-spacing:-1.5px;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast);align-items:center;font-size:.75rem;font-weight:700;line-height:1;display:inline-flex}.receipt-icon.receipt-pending{opacity:.7;font-size:.65rem}.receipt-icon.receipt-sent,.receipt-icon.receipt-delivered{color:var(--text-muted)}.receipt-icon.receipt-read{color:#53bdeb;text-shadow:0 0 8px #53bdeb66}.message-bubble-wrapper{flex-direction:column;display:inline-flex;position:relative}.bubble-action-bar{background:var(--bg-overlay);border:1px solid var(--border-default);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius-full);box-shadow:var(--shadow-md);opacity:0;pointer-events:none;z-index:10;align-items:center;gap:4px;padding:3px 6px;transition:opacity .15s,transform .15s;display:flex;position:absolute;top:-34px;right:0;transform:translateY(4px)}.message-row.self .bubble-action-bar{right:0}.message-row.peer .bubble-action-bar{left:0;right:auto}.message-bubble-wrapper:hover .bubble-action-bar,.message-bubble-wrapper:focus-within .bubble-action-bar{opacity:1;pointer-events:auto;transform:translateY(0)}.quick-emoji-list{align-items:center;gap:2px;display:flex}.quick-emoji-btn{cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:2px 4px;font-size:1rem;line-height:1;transition:transform .12s,background .12s}.quick-emoji-btn:hover{background:#ffffff1a;transform:scale(1.25)}.bubble-action-btn{cursor:pointer;border-radius:var(--radius-sm);color:var(--text-secondary);background:0 0;border:none;justify-content:center;align-items:center;padding:3px 6px;font-size:.875rem;transition:background .12s,color .12s;display:flex}.bubble-action-btn:hover{color:var(--text-primary);background:#ffffff26}.message-quote-box{border-left:3px solid var(--accent-500);border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;background:#00000040;flex-direction:column;margin-bottom:6px;padding:4px 8px;font-size:.75rem;transition:background .15s,border-left-color .15s,transform .12s;display:flex}.message-quote-box:hover{border-left-color:var(--accent-400);background:#00000061;transform:translate(2px)}.message-quote-box:active{transform:scale(.98)}.message-row.self .message-quote-box{background:#ffffff1a;border-left-color:#53bdeb}.message-row.self .message-quote-box:hover{background:#ffffff2e;border-left-color:#8ed6fb}@keyframes highlightPulse{0%{filter:brightness(1.3);box-shadow:0 0 #10b981cc,0 0 20px #10b98166}35%{filter:brightness(1.4);box-shadow:0 0 0 8px #10b98166,0 0 25px #10b98180}70%{filter:brightness(1.1);box-shadow:0 0 0 14px #10b98100,0 0 15px #10b98133}to{filter:brightness();box-shadow:0 0 #10b98100}}.message-row.highlight-pulse .message-bubble{animation:1.8s cubic-bezier(.2,.8,.2,1) highlightPulse;border-color:var(--accent-400)!important}.quote-sender{color:var(--accent-400);margin-bottom:2px;font-size:.7rem;font-weight:600}.message-row.self .quote-sender{color:#53bdeb}.quote-text{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;max-width:240px;overflow:hidden}.reaction-pills-container{flex-wrap:wrap;gap:4px;margin-top:4px;padding:0 2px;display:flex}.reaction-pill{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);color:var(--text-primary);-webkit-user-select:none;user-select:none;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;display:inline-flex}.reaction-pill:hover{border-color:var(--accent-500);background:var(--bg-elevated);transform:scale(1.05)}.reaction-pill.active{border-color:var(--accent-500);color:var(--accent-400);background:#10b98126}.reaction-count{font-size:.7rem;font-weight:600}.reply-preview-bar{background:var(--bg-elevated);border:1px solid var(--border-default);border-left:4px solid var(--accent-500);border-radius:var(--radius-md);justify-content:space-between;align-items:center;margin-bottom:8px;padding:8px 12px;animation:.18s both fadeSlideUp;display:flex}.reply-preview-content{flex-direction:column;gap:2px;display:flex;overflow:hidden}.reply-preview-label{color:var(--text-secondary);font-size:.75rem}.reply-preview-sender{color:var(--accent-400)}.reply-preview-snippet{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:380px;font-size:.8125rem;overflow:hidden}.reply-preview-cancel{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:4px 8px;font-size:1rem;display:flex}.reply-preview-cancel:hover{color:var(--color-error);background:#f851491a}.status-typing-label{color:var(--color-online);align-items:center;gap:4px;font-size:.75rem;font-weight:500;animation:1.5s ease-in-out infinite pulse;display:inline-flex}.typing-bubble-container{flex-direction:column;gap:3px;display:flex}.typing-author{color:var(--accent-400);margin-left:var(--space-1);font-size:.6875rem;font-weight:600}.typing-indicator{padding:var(--space-2) var(--space-4);background:var(--bubble-peer);border:1px solid var(--bubble-peer-border);border-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-sm);align-items:center;gap:4px;width:fit-content;animation:.2s both fadeSlideUp;display:flex}.typing-dot{border-radius:var(--radius-full);background:var(--color-online);width:6px;height:6px;animation:1.2s infinite typing-bounce}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}.chat-input-area{padding:var(--space-4) var(--space-5);background:var(--bg-surface);border-top:1px solid var(--border-subtle);flex-shrink:0}.chat-input-wrapper{align-items:flex-end;gap:var(--space-3);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);display:flex}.chat-input-wrapper:focus-within{border-color:var(--accent-500);box-shadow:0 0 0 3px var(--accent-glow)}.chat-textarea{color:var(--text-primary);font-family:var(--font-sans);resize:none;min-height:24px;max-height:120px;padding:var(--space-2) 0;background:0 0;border:none;outline:none;flex:1;font-size:.9375rem;line-height:1.5}.chat-textarea::placeholder{color:var(--text-muted)}.chat-send-btn{border-radius:var(--radius-full);background:var(--accent-500);cursor:pointer;width:38px;height:38px;transition:all var(--transition-fast);color:#fff;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-send-btn:hover:not(:disabled){background:var(--accent-400);box-shadow:var(--shadow-glow)}.chat-send-btn:disabled{background:var(--bg-overlay);color:var(--text-muted);cursor:not-allowed}.chat-send-btn:active:not(:disabled){transform:scale(.92)}.session-info-bar{padding:var(--space-2) var(--space-5);background:var(--bg-elevated);border-bottom:1px solid var(--border-subtle);align-items:center;gap:var(--space-2);color:var(--text-muted);flex-shrink:0;font-size:.75rem;display:flex}.session-info-bar code{color:var(--accent-400);background:var(--accent-glow);border-radius:var(--radius-sm);-webkit-user-select:all;user-select:all;cursor:text;padding:1px 6px;font-size:.6875rem}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes typing-bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-5px)}}.status-btn{background:var(--bg-overlay);border:1px solid var(--border-default);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast) ease;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;padding:2px 8px;font-size:.6875rem;display:inline-flex}.status-btn:hover{background:var(--bg-surface);color:var(--text-primary);border-color:var(--border-focus)}.member-badge-btn{color:var(--accent-300);background:#10b9811a;border:1px solid #10b9814d;font-weight:500}.member-badge-btn:hover{border-color:var(--accent-500);color:#fff;background:#10b98133}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;padding:var(--space-4);background:#000000a6;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.member-drawer{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);width:100%;max-width:400px;max-height:80vh;box-shadow:var(--shadow-lg);flex-direction:column;animation:.25s cubic-bezier(.16,1,.3,1) scaleUp;display:flex;overflow:hidden}.member-drawer-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);background:var(--bg-elevated);justify-content:space-between;align-items:flex-start;display:flex}.member-drawer-title{color:var(--text-primary);margin:0;font-size:1.125rem;font-weight:600}.member-drawer-subtitle{color:var(--text-muted);margin-top:2px;font-size:.8125rem}.member-drawer-subtitle .highlight{color:var(--accent-400);font-weight:500}.member-drawer-close{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast) ease;background:0 0;border:none;padding:4px 8px;font-size:1.125rem}.member-drawer-close:hover{background:var(--bg-overlay);color:var(--text-primary)}.member-drawer-body{padding:var(--space-4) var(--space-5);flex:1;overflow-y:auto}.member-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.member-item{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--bg-base);border:1px solid var(--border-subtle);transition:background var(--transition-fast) ease;display:flex}.member-item:hover{background:var(--bg-elevated)}.member-item-me{background:#10b9810d;border-color:#10b9814d}.member-avatar{border-radius:var(--radius-full);background:var(--accent-glow);border:1px solid var(--accent-500);width:36px;height:36px;color:var(--accent-300);flex-shrink:0;justify-content:center;align-items:center;font-size:.9375rem;font-weight:600;display:flex;position:relative}.member-online-dot{background:var(--color-success);border:2px solid var(--bg-surface);border-radius:50%;width:10px;height:10px;position:absolute;bottom:0;right:0}.member-details{flex-direction:column;flex:1;min-width:0;display:flex}.member-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:500;overflow:hidden}.member-badge-you{color:var(--accent-400);margin-left:4px;font-size:.75rem;font-weight:400}.member-status-text{color:var(--text-muted);font-size:.75rem}.member-empty{text-align:center;color:var(--text-muted);padding:var(--space-6) 0;font-size:.875rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.chat-app-container{background:var(--bg-base);width:100vw;height:100vh;display:flex;position:relative;overflow:hidden}.chat-sidebar{background:var(--bg-surface);border-right:1px solid var(--border-subtle);width:340px;transition:transform var(--transition-normal) ease;z-index:50;flex-direction:column;flex-shrink:0;display:flex}.sidebar-header{padding:var(--space-4);border-bottom:1px solid var(--border-subtle);background:var(--bg-elevated);justify-content:space-between;align-items:center;display:flex}.sidebar-user-info{align-items:center;gap:var(--space-3);min-width:0;display:flex}.sidebar-avatar{border-radius:var(--radius-full);background:var(--accent-glow);border:1px solid var(--accent-500);width:40px;height:40px;color:var(--accent-300);flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:600;display:flex}.sidebar-user-details{flex-direction:column;min-width:0;display:flex}.sidebar-user-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;font-weight:600;overflow:hidden}.sidebar-user-handle{color:var(--text-muted);font-size:.75rem}.sidebar-logout-btn{border:1px solid var(--border-default);color:var(--text-muted);border-radius:var(--radius-md);cursor:pointer;width:32px;height:32px;transition:all var(--transition-fast) ease;background:0 0;justify-content:center;align-items:center;font-size:1rem;display:flex}.sidebar-logout-btn:hover{color:var(--color-error);background:#ef44441a;border-color:#ef44444d}.sidebar-search-box{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle)}.sidebar-search-input{width:100%;padding:var(--space-2) var(--space-3);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);transition:border-color var(--transition-fast) ease;outline:none;font-size:.875rem}.sidebar-search-input:focus{border-color:var(--accent-500)}.sidebar-body{padding:var(--space-2) 0;flex:1;overflow-y:auto}.sidebar-section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:0 var(--space-4);margin-bottom:var(--space-2);font-size:.75rem;font-weight:600}.conversations-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.conversation-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);cursor:pointer;border-bottom:1px solid var(--border-subtle);transition:background var(--transition-fast) ease;display:flex}.conversation-item:hover{background:var(--bg-elevated)}.conversation-item.active{border-left:3px solid var(--accent-500);background:#10b98114}.conv-details{flex:1;min-width:0}.conv-top{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.conv-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.9375rem;font-weight:600;overflow:hidden}.conv-time{color:var(--text-muted);margin-left:var(--space-2);flex-shrink:0;font-size:.6875rem}.conv-bottom{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.conv-last-msg{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.8125rem;overflow:hidden}.conv-unread-badge{background:var(--accent-500);color:#fff;border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.6875rem;font-weight:700;animation:.15s cubic-bezier(.175,.885,.32,1.275) both popIn;display:flex;box-shadow:0 2px 4px #10b98159}@keyframes popIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.sidebar-empty{padding:var(--space-6) var(--space-4);text-align:center;color:var(--text-muted);font-size:.875rem}.chat-main-pane{background:var(--bg-base);flex-direction:column;flex:1;min-width:0;height:100vh;display:flex}.mobile-menu-btn{color:var(--text-primary);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:1.25rem;display:none}.chat-welcome-placeholder{padding:var(--space-8);background:radial-gradient(ellipse 60% 50% at 50% 50%, #10b9810d 0%, transparent 60%), var(--bg-base);flex:1;justify-content:center;align-items:center;display:flex;position:relative}.welcome-content{text-align:center;max-width:440px;animation:.3s both fadeSlideUp}.welcome-icon{width:72px;height:72px;margin:0 auto var(--space-4);background:var(--accent-glow);border:1px solid var(--accent-500);border-radius:var(--radius-xl);justify-content:center;align-items:center;font-size:2.25rem;display:flex}.welcome-content h2{color:var(--text-primary);margin-bottom:var(--space-2);font-size:1.5rem;font-weight:600}.welcome-content p{color:var(--text-secondary);font-size:.9375rem;line-height:1.6}@media (max-width:768px){.mobile-menu-btn{display:inline-block}.chat-sidebar{width:280px;box-shadow:var(--shadow-lg);position:absolute;top:0;bottom:0;left:0;transform:translate(-100%)}.chat-sidebar.sidebar-open{transform:translate(0)}.chat-layout{max-width:100%}.message-row{max-width:85%}.landing-card{padding:var(--space-6)}}.chat-attach-btn{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast) ease;-webkit-user-select:none;user-select:none;background:0 0;border:none;justify-content:center;align-items:center;padding:0 .5rem;font-size:1.25rem;display:flex}.chat-attach-btn:hover:not(:disabled){color:var(--accent-400);background:#ffffff0d}.chat-attach-btn:disabled{opacity:.4;cursor:not-allowed}.media-preview-bar{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md) var(--radius-md) 0 0;border-bottom:none;align-items:center;gap:.75rem;padding:.5rem .75rem;animation:.15s ease-out fadeIn;display:flex}.media-preview-thumb-box{border-radius:var(--radius-sm);background:var(--bg-elevated);border:1px solid var(--border-default);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex;overflow:hidden}.media-preview-thumb{object-fit:cover;width:100%;height:100%}.media-preview-file-icon{font-size:1.5rem}.media-preview-info{flex-direction:column;flex:1;min-width:0;display:flex}.media-preview-filename{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:500;overflow:hidden}.media-preview-size{color:var(--text-muted);font-size:.6875rem}.media-preview-error{color:#ef4444}.media-preview-cancel{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast) ease;background:0 0;border:none;padding:4px 8px;font-size:1rem}.media-preview-cancel:hover:not(:disabled){color:#ef4444;background:#ef444426}.sending-spinner{animation:1s infinite alternate pulse;display:inline-block}.chat-main-pane{position:relative}.chat-main-pane.chat-drag-over{outline:2px dashed var(--accent-500);outline-offset:-4px}.chat-drag-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;pointer-events:none;background:#0f172ad9;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:absolute;inset:0}.drag-overlay-card{text-align:center;padding:var(--space-8);background:var(--bg-surface);border:2px dashed var(--accent-400);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);max-width:360px}.drag-overlay-icon{margin-bottom:var(--space-2);font-size:3rem;animation:1s infinite alternate bounce;display:block}.drag-overlay-title{color:var(--text-primary);margin-bottom:4px;font-size:1.125rem;font-weight:600}.drag-overlay-subtitle{color:var(--text-secondary);font-size:.8125rem}.message-image-wrapper{border-radius:var(--radius-md);cursor:pointer;background:var(--bg-elevated);max-width:320px;transition:opacity var(--transition-fast) ease, transform var(--transition-fast) ease;margin-bottom:.375rem;position:relative;overflow:hidden}.message-image-wrapper:hover{opacity:.92;transform:scale(1.01)}.message-image-img{object-fit:cover;border-radius:var(--radius-md);width:100%;max-height:280px;display:block}.lightbox-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;background:#000000e6;flex-direction:column;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.lightbox-header{z-index:10;background:#0f172abf;border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;display:flex}.lightbox-title{color:#f8fafc;white-space:nowrap;text-overflow:ellipsis;max-width:400px;font-size:.9375rem;font-weight:500;overflow:hidden}.lightbox-controls{align-items:center;gap:.5rem;display:flex}.lightbox-btn{color:#f8fafc;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast) ease;background:#ffffff1a;border:1px solid #ffffff26;padding:.375rem .75rem;font-size:.8125rem;font-weight:500}.lightbox-btn:hover:not(:disabled){background:#fff3;border-color:#ffffff4d}.lightbox-btn:disabled{opacity:.4;cursor:not-allowed}.lightbox-close-btn{color:#fca5a5;background:#ef444433;border-color:#ef444466;padding:.375rem .625rem;font-size:1rem}.lightbox-close-btn:hover{color:#fff;background:#ef444466}.lightbox-body{cursor:zoom-out;flex:1;justify-content:center;align-items:center;padding:1.5rem;display:flex;overflow:auto}.lightbox-image{object-fit:contain;border-radius:var(--radius-md);cursor:default;-webkit-user-select:none;user-select:none;max-width:90vw;max-height:85vh;box-shadow:0 25px 50px -12px #00000080}.message-doc-card{border-radius:var(--radius-md);min-width:220px;max-width:320px;transition:all var(--transition-fast) ease;background:#0f172a73;border:1px solid #ffffff14;align-items:center;gap:.75rem;margin-bottom:.375rem;padding:.625rem .875rem;display:flex}.message-doc-card:hover{background:#0f172aa6;border-color:#ffffff26}.doc-card-badge{border-radius:var(--radius-sm);width:42px;height:48px;box-shadow:var(--shadow-sm);border:1px solid #ffffff1a;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;display:flex}.doc-card-icon{font-size:1.25rem;line-height:1}.doc-card-ext-label{letter-spacing:.5px;text-transform:uppercase;margin-top:2px;font-size:.5625rem;font-weight:700}.file-pdf{color:#fca5a5;background:#ef444426;border-color:#ef44444d}.file-doc{color:#93c5fd;background:#3b82f626;border-color:#3b82f64d}.file-sheet{color:#6ee7b7;background:#10b98126;border-color:#10b9814d}.file-slide{color:#fdba74;background:#f9731626;border-color:#f973164d}.file-zip{color:#d8b4fe;background:#a855f726;border-color:#a855f74d}.file-code{color:#cbd5e1;background:#94a3b826;border-color:#94a3b84d}.file-default{color:#94a3b8;background:#64748b26;border-color:#64748b4d}.doc-card-details{flex-direction:column;flex:1;min-width:0;display:flex}.doc-card-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:500;overflow:hidden}.doc-card-meta{color:var(--text-muted);margin-top:2px;font-size:.6875rem}.doc-card-download-btn{background:var(--bg-elevated);border:1px solid var(--border-default);width:32px;height:32px;color:var(--text-primary);transition:all var(--transition-fast) ease;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.875rem;text-decoration:none;display:flex}.doc-card-download-btn:hover{background:var(--accent-500);border-color:var(--accent-400);color:#fff;transform:translateY(-1px)}.chat-mic-btn{width:38px;height:38px;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast) ease;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;display:flex}.chat-mic-btn:hover:not(:disabled){background:#10b98126;transform:scale(1.08)}.voice-recorder-bar{background:var(--bg-surface);border-radius:var(--radius-lg);border:1px solid #ef44444d;justify-content:space-between;align-items:center;padding:.625rem 1rem;animation:.2s ease-out fadeIn;display:flex;box-shadow:0 0 15px #ef44441a}.voice-recorder-error{border-color:var(--border-subtle);background:var(--bg-elevated);box-shadow:none}.voice-error-text{color:#f87171;font-size:.8125rem}.voice-cancel-btn{background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;padding:4px 10px;font-size:.8125rem}.voice-action-btn{cursor:pointer;width:36px;height:36px;transition:all var(--transition-fast) ease;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;display:flex}.voice-trash-btn{color:#ef4444;background:#ef444426}.voice-trash-btn:hover:not(:disabled){background:#ef44444d;transform:scale(1.05)}.voice-send-btn{background:var(--accent-500);color:#fff}.voice-send-btn:hover:not(:disabled){background:var(--accent-400);transform:scale(1.05)}.voice-recording-status{align-items:center;gap:.75rem;display:flex}.voice-recording-pulse{background:#ef4444;border-radius:50%;width:10px;height:10px;animation:1s infinite alternate pulse}.voice-recording-timer{font-variant-numeric:tabular-nums;color:var(--text-primary);font-size:.9375rem;font-weight:600}.voice-live-wave{align-items:center;gap:3px;height:18px;display:flex}.live-wave-bar{background:#ef4444;border-radius:2px;width:3px;animation:.8s ease-in-out infinite alternate soundWave}.live-wave-bar:first-child{height:6px;animation-delay:.1s}.live-wave-bar:nth-child(2){height:16px;animation-delay:.3s}.live-wave-bar:nth-child(3){height:10px;animation-delay:.2s}.live-wave-bar:nth-child(4){height:18px;animation-delay:.4s}.live-wave-bar:nth-child(5){height:8px;animation-delay:.15s}@keyframes soundWave{0%{transform:scaleY(.4)}to{transform:scaleY(1)}}.voice-player-bubble{align-items:center;gap:.75rem;min-width:240px;max-width:320px;padding:.5rem .625rem;display:flex}.voice-play-btn{background:var(--accent-500);color:#fff;cursor:pointer;width:40px;height:40px;transition:all var(--transition-fast) ease;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;box-shadow:0 2px 8px #10b9814d}.voice-play-btn:hover{background:var(--accent-400);transform:scale(1.05)}.voice-playing{background:#10b981}.voice-waveform-wrapper{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.voice-scrubber-container{align-items:center;height:24px;display:flex;position:relative}.voice-scrubber-input{opacity:0;cursor:pointer;z-index:2;width:100%;height:100%;margin:0;position:absolute;inset:0}.voice-waveform-track{pointer-events:none;align-items:center;gap:2.5px;width:100%;height:100%;display:flex}.voice-waveform-bar{background:#fff3;border-radius:2px;flex:1;transition:background .1s}.voice-waveform-bar.bar-filled{background:var(--accent-400)}.voice-info-row{justify-content:space-between;align-items:center;display:flex}.voice-time-text{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.6875rem}.voice-speed-btn{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast) ease;background:#ffffff1a;border:1px solid #ffffff26;padding:1px 5px;font-size:.625rem;font-weight:600}.voice-speed-btn:hover{color:var(--text-primary);background:#fff3}.message-expired-media-box{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-2);background:#00000040;border:1px dashed #ffffff26;display:flex}.expired-media-icon{opacity:.8;flex-shrink:0;font-size:1.5rem}.expired-media-info{flex-direction:column;display:flex}.expired-media-info strong{color:#f87171;font-size:.8125rem}.expired-media-info span{color:var(--text-muted);font-size:.6875rem}.media-loading-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:var(--text-secondary);z-index:2;border-radius:var(--radius-md);background:#0009;justify-content:center;align-items:center;font-size:.75rem;display:flex;position:absolute;inset:0}.link-preview-card{border-radius:var(--radius-md);color:inherit;transition:all var(--transition-fast) ease;background:#0f172a8c;border:1px solid #ffffff1a;flex-direction:column;max-width:320px;margin-top:.5rem;margin-bottom:.25rem;text-decoration:none;display:flex;overflow:hidden}.link-preview-card:hover{border-color:var(--accent-500);background:#0f172abf;transform:translateY(-1px);box-shadow:0 4px 12px #00000040}.link-preview-image-wrap{background:var(--bg-elevated);width:100%;max-height:160px;position:relative;overflow:hidden}.link-preview-image{object-fit:cover;width:100%;height:100%;max-height:160px;display:block}.link-preview-content{flex-direction:column;gap:.25rem;padding:.625rem .75rem;display:flex}.link-preview-header{align-items:center;gap:.375rem;display:flex}.link-preview-favicon{object-fit:contain;border-radius:2px;width:14px;height:14px}.link-preview-site{color:var(--accent-400);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;font-size:.6875rem;font-weight:600;overflow:hidden}.link-preview-title{color:var(--text-primary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.8125rem;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.link-preview-description{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.75rem;line-height:1.4;display:-webkit-box;overflow:hidden}.link-preview-skeleton{border-radius:var(--radius-md);background:#0f172a59;border:1px solid #ffffff0d;flex-direction:column;max-width:320px;min-height:80px;margin-top:.5rem;margin-bottom:.25rem;display:flex;overflow:hidden}.link-preview-skeleton-img{background:linear-gradient(90deg,#ffffff08 25%,#ffffff14 50%,#ffffff08 75%) 0 0/200% 100%;width:100%;height:90px;animation:1.5s infinite shimmer}.link-preview-skeleton-content{flex-direction:column;gap:.5rem;padding:.625rem .75rem;display:flex}.link-preview-skeleton-title{background:#ffffff14;border-radius:4px;width:80%;height:14px}.link-preview-skeleton-desc{background:#ffffff0d;border-radius:4px;width:95%;height:10px}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}
