:root{--chat-list-width: 380px;--space-3: 3px;--space-4: 4px;--space-6: 6px;--space-8: 8px;--space-10: 10px;--space-12: 12px;--space-16: 16px;--space-20: 20px;--space-24: 24px;--space-32: 32px;--space-40: 40px;--radius-4: 4px;--radius-6: 6px;--radius-8: 8px;--radius-md: 8px;--radius-lg: 12px;--radius-12: 12px;--radius-16: 16px;--radius-999: 999px;--shadow-message: 0 2px 4px rgba(0, 0, 0, .08);--shadow-subtle: 0 1px 2px rgba(0, 0, 0, .05);--transition-fast: .15s ease;--transition-normal: .2s ease;--font-size-xs: 12px;--msg-size-message: 16px;--msg-size-title: 14px;--msg-size-preview: 13px;--msg-size-meta: 12px}:root{--color-bg-app: #eef1f4;--color-bg-sidebar: #ffffff;--color-bg-chat: #ffffff;--color-bg-elevated: #f8f9fa;--color-bg-input: #ffffff;--color-bg-hover: #f0f2f5;--color-bg-selected: #e6f7ff;--color-text-primary: #1f2937;--color-text-secondary: #4b5563;--color-text-muted: #9ca3af;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-danger: #dc2626;--color-success: #16a34a;--border-subtle: #e5e7eb;--message-incoming: #f3f4f6;--message-outgoing: #eff6ff;--page-bg: var(--color-bg-app);--panel-bg: var(--color-bg-elevated);--text: var(--color-text-primary);--muted: var(--color-text-muted);--border: var(--border-subtle);--soft: var(--color-bg-hover);--accent: var(--color-primary)}:root[data-theme=dark]{--color-bg-app: #111827;--color-bg-sidebar: #1f2937;--color-bg-chat: #111827;--color-bg-elevated: #1f2937;--color-bg-input: #374151;--color-bg-hover: #374151;--color-bg-selected: #1e3a8a;--color-text-primary: #f9fafb;--color-text-secondary: #d1d5db;--color-text-muted: #9ca3af;--color-primary: #3b82f6;--color-primary-hover: #60a5fa;--color-danger: #ef4444;--color-success: #22c55e;--border-subtle: #374151;--message-incoming: #1f2937;--message-outgoing: #0f172a;--page-bg: var(--color-bg-app);--panel-bg: var(--color-bg-elevated);--text: var(--color-text-primary);--muted: var(--color-text-muted);--border: var(--border-subtle);--soft: var(--color-bg-hover);--accent: var(--color-primary)}.messenger-view{background:var(--color-bg-app);display:grid;grid-template-columns:var(--chat-list-width, 380px) minmax(0,1fr);height:100dvh;min-height:0;overflow:hidden}.people-pane,.chat-pane{min-height:0}.avatar{align-items:center;background:linear-gradient(135deg,var(--color-primary),#2f8f83);border-radius:var(--radius-999);color:#fff;display:inline-flex;flex:0 0 40px;font-weight:800;height:40px;justify-content:center;position:relative;width:40px}.avatar:after{content:"";position:absolute;bottom:2px;right:2px;width:8px;height:8px;border-radius:50%;background-color:transparent}.avatar.connecting:after{background-color:#fc0}.avatar.connected:after{background-color:#4caf50}.avatar.disconnected:after{background-color:#f44336}.theme-toggle,.back-button,.filter-chip,.folder-chip,.folder-row button,.chat-tools button,.load-more,.message-actions button,.emoji-grid button,.emoji-picker-tabs button,.composer-mode button{background:var(--color-bg-hover);border-radius:var(--radius-6);color:var(--color-text-primary);min-height:36px;padding:var(--space-8) var(--space-12);transition:background var(--transition-fast),color var(--transition-fast)}.filter-row,.folder-row,.chat-tools,.reaction-row,.composer-actions,.message-actions{display:flex;gap:var(--space-8)}.empty-state{align-content:center;color:var(--color-text-muted);display:grid;flex:1 1 auto;gap:var(--space-8);justify-items:center;min-height:100%;padding:var(--space-32);text-align:center}.empty-state strong{color:var(--color-text-primary);font-size:var(--msg-size-message)}.error{color:var(--color-danger);padding:var(--space-12) var(--space-16)}@media (min-width: 1200px){.messenger-view{grid-template-columns:var(--chat-list-width, 380px) minmax(0,1fr)}}@media (max-width: 720px){.messenger-view{grid-template-columns:minmax(0,1fr)}}.people-pane{background:var(--color-bg-sidebar);border-right:1px solid var(--border-subtle);display:grid;gap:var(--space-8);grid-auto-rows:max-content;overflow:auto;padding:var(--space-10)}.chat-list-top{align-items:center;display:grid;gap:var(--space-8);grid-template-columns:40px minmax(0,1fr) 40px;min-height:48px}.icon-button{align-items:center;background:transparent;border-radius:var(--radius-999);color:var(--color-text-secondary);display:inline-flex;height:40px;justify-content:center;padding:0;width:40px}.icon-button:hover,.icon-button:focus-visible{background:var(--color-bg-hover);color:var(--color-text-primary)}.global-search{align-items:center;background:var(--color-bg-hover);border-radius:var(--radius-999);color:var(--color-text-muted);display:flex;gap:var(--space-8);min-height:40px;padding:0 var(--space-12)}.global-search:focus-within{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--color-primary) 42%,transparent)}.global-search input{background:transparent;border:0;color:var(--color-text-primary);flex:1;min-height:40px;outline:0;padding:0}.sidebar-drawer{background:var(--color-bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-12);box-shadow:0 18px 42px #0f172a2e;display:grid;gap:var(--space-4);left:var(--space-10);padding:var(--space-8);position:absolute;top:62px;width:min(340px,calc(100% - 20px));z-index:20}.sidebar-drawer button,.settings-row{align-items:center;background:transparent;border-radius:var(--radius-8);color:var(--color-text-primary);display:flex;gap:var(--space-10);min-height:40px;padding:var(--space-8) var(--space-10);text-align:left;width:100%}.sidebar-drawer button:hover,.settings-row:hover{background:var(--color-bg-hover)}.sidebar-drawer .destructive{color:var(--color-danger)}.sidebar-profile{align-items:center;display:flex;gap:var(--space-12);padding:var(--space-8)}.sidebar-profile small,.settings-row.muted{color:var(--color-text-muted)}.skeleton-list{display:flex;flex-direction:column;gap:.75rem}.skeleton-row{align-items:center;display:flex;gap:.75rem}.skeleton-avatar{background:var(--muted);border-radius:50%;height:32px;width:32px;animation:shimmer 1.5s infinite linear}.skeleton-text{background:var(--muted);border-radius:4px;flex-grow:1;height:16px;animation:shimmer 1.5s infinite linear}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:200px 0}}.current-user{align-items:center;display:flex;gap:.75rem;justify-content:space-between;min-width:0}.current-user div,.dialog-copy{min-width:0}.current-user strong,.dialog-copy strong{display:block;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.current-user span,.dialog-copy small{color:var(--muted);font-size:.78rem}.settings-section{border:1px solid var(--border-subtle);border-radius:var(--radius-8);display:grid;gap:var(--space-4);margin-bottom:.75rem;padding:var(--space-6)}.user-info{display:flex;gap:.5rem;align-items:center;font-size:.85rem}.filter-row{flex-wrap:nowrap;margin-inline:-.15rem;overflow-x:auto;padding-bottom:.1rem;scrollbar-width:none}.filter-row::-webkit-scrollbar,.folder-strip::-webkit-scrollbar,.emoji-picker-tabs::-webkit-scrollbar{display:none}.compact-filter-row{min-height:40px}.filter-chip{background:transparent;border-radius:var(--radius-999);color:var(--color-text-secondary);flex:0 0 auto;font-size:var(--font-size-xs);min-height:34px;padding:0 var(--space-12);white-space:nowrap}.filter-chip.active{background:color-mix(in srgb,var(--color-primary) 14%,transparent);color:var(--color-primary);font-weight:700}.unread-filter span{background:var(--color-primary);border-radius:var(--radius-999);color:#fff;margin-left:var(--space-4);padding:0 var(--space-6)}.search-row{background:var(--soft);border:1px solid transparent;border-radius:8px;display:flex;gap:.35rem;padding:.35rem}.search-row:focus-within{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.search-row input{background:transparent;border:0;flex:1;padding:.55rem .65rem}.search-row button{background:var(--accent);border-radius:6px;color:#fff;flex:0 0 auto;padding:.55rem .75rem}.dialog-list{display:grid;gap:var(--space-2);min-height:0}.virtual-person-list{max-height:min(42vh,520px);min-height:0;overflow:auto}.virtual-list-spacer{position:relative}.virtual-list-window{display:grid;gap:var(--space-4);left:0;position:absolute;right:0;top:0}.person-row{align-items:center;background:transparent;border-radius:var(--radius-8);color:var(--color-text-primary);display:grid;gap:var(--space-10);grid-template-columns:48px minmax(0,1fr) auto;height:72px;min-height:72px;padding:var(--space-8);text-align:left;transition:background var(--transition-fast),color var(--transition-fast);width:100%}.person-row:hover{background:var(--color-bg-hover)}.person-row.selected{background:color-mix(in srgb,var(--color-primary) 13%,var(--color-bg-sidebar));box-shadow:inset 4px 0 0 var(--color-primary);color:var(--color-text-primary)}.person-row.selected .dialog-meta,.person-row.selected small{color:var(--color-text-secondary)}.dialog-meta{align-self:start;color:var(--color-text-muted);font-size:var(--font-size-xs);padding-top:var(--space-4);white-space:nowrap}.sidebar-close{align-items:center;display:inline-flex;justify-content:center;padding:var(--space-8)}.side-panel-section{display:grid;gap:var(--space-10)}.side-panel-section h2{font-size:16px;margin:0}.people-pane,.dialog-list,.person-row,.search-result-row{content-visibility:auto;contain-intrinsic-size:64px;contain:layout paint;overscroll-behavior:contain;scrollbar-gutter:stable}.sidebar-tools,.chat-admin{background:transparent;border:0;display:grid;gap:.55rem}.sidebar-tools summary,.chat-admin summary{border-radius:6px;color:var(--muted);cursor:pointer;font-size:.84rem;padding:.45rem .25rem}.sidebar-tools[open],.chat-admin[open]{background:color-mix(in srgb,var(--panel-bg) 84%,var(--soft));border:1px solid var(--border);border-radius:8px;padding:.5rem}.chat-create-panel,.chat-settings,.member-add,.member-list{display:grid;gap:.5rem}.folder-row select,.chat-create-panel input,.chat-settings input,.member-add input,.chat-create-panel select,.chat-settings select,.member-add select,.member-row select{background:var(--panel-bg);border:1px solid var(--border);border-radius:6px;color:var(--text);min-width:0;padding:.55rem .65rem}.folder-row select{flex:1}.folder-chip{text-align:left}.member-row{align-items:center;background:var(--soft);border-radius:6px;display:flex;flex-wrap:wrap;gap:.5rem;padding:.45rem}.member-row span{color:var(--muted);flex:1 1 180px;font-size:.84rem;overflow-wrap:anywhere}.chat-pane{background:var(--color-bg-chat);display:flex;flex-direction:column;overflow:hidden;position:relative}.chat-header{align-items:center;background:color-mix(in srgb,var(--color-bg-elevated) 96%,transparent);border-bottom:1px solid var(--border-subtle);display:flex;gap:var(--space-10);height:62px;min-height:62px;padding:var(--space-8) var(--space-16)}.chat-title{align-items:center;background:transparent;border:0;color:var(--text);cursor:pointer;display:flex;flex:1;gap:.7rem;padding:0;text-align:left;min-width:0}.chat-title:disabled{cursor:default}.chat-title div{min-width:0}.chat-title strong{display:block;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-title small,.message-time{color:var(--muted);font-size:.78rem}.back-button{display:none}.chat-tools{flex:0 0 auto;flex-wrap:nowrap;justify-content:flex-end}.chat-tools button,.back-button{align-items:center;border-radius:var(--radius-999);display:inline-flex;height:40px;justify-content:center;min-height:40px;padding:0;width:40px}.chat-tools button.active{background:var(--accent);color:#fff}.chat-admin{display:none}.chat-admin>section{display:grid;gap:.55rem}.chat-admin h2{font-size:var(--msg-size-title);margin:0}.danger-zone{border-color:color-mix(in srgb,var(--color-danger) 40%,var(--border))}.message-list{background:linear-gradient(#ffffff61,#ffffff61),radial-gradient(circle at 18px 18px,rgba(47,143,131,.07) 0 2px,transparent 3px),color-mix(in srgb,var(--page-bg) 86%,var(--panel-bg));background-size:auto,38px 38px;display:flex;flex-direction:column-reverse;flex:1 1 auto;gap:.5rem;min-height:0;overflow:auto;padding:1rem min(6vw,4.5rem)}.message-item{animation:message-in .14s ease-out;align-self:flex-start;background:var(--message-incoming);border:1px solid color-mix(in srgb,var(--border-subtle) 72%,transparent);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) var(--radius-4);box-shadow:var(--shadow-message);max-width:min(740px,74%);padding:var(--space-8) var(--space-10) var(--space-6)}@keyframes message-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.message-item.own{align-self:flex-end;background:var(--message-outgoing);border-color:color-mix(in srgb,var(--color-primary) 28%,transparent);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-4) var(--radius-lg)}.message-item.deleted{opacity:.72}.message-meta{border-left:3px solid var(--accent);color:var(--muted);font-size:.78rem;margin-bottom:.35rem;padding-left:.5rem}.message-author-label{color:var(--color-primary);font-size:var(--font-size-xs);font-weight:700;margin-bottom:var(--space-2)}.message-body{overflow-wrap:anywhere;white-space:normal}.message-body code{background:var(--soft);border-radius:4px;padding:.05rem .25rem}.message-body a{color:#1c6f94}.message-time{color:var(--color-text-muted);display:flex;font-size:var(--font-size-xs);gap:var(--space-4);justify-content:flex-end;margin-top:var(--space-4)}.message-actions{flex-wrap:wrap;margin-top:.45rem;max-height:0;opacity:0;overflow:hidden;transition:opacity .15s ease}.message-item:hover .message-actions,.message-item:focus-within .message-actions{max-height:80px;opacity:.72}.message-actions button{font-size:.78rem;min-height:30px;padding:.25rem .45rem}.reaction-row{flex-wrap:wrap;margin-top:.45rem;max-height:0;opacity:0;overflow:hidden;transition:opacity .15s ease}.message-item:hover .reaction-row,.message-item:focus-within .reaction-row{max-height:80px;opacity:1}.reaction-row button{background:color-mix(in srgb,var(--soft) 80%,transparent);border-radius:999px;color:var(--text);min-height:28px;padding:.2rem .45rem}.load-more{align-self:center;order:1}.conversation-skeleton{display:flex;flex-direction:column;gap:.5rem;padding:1rem min(6vw,4.5rem)}.conversation-skeleton-row{align-self:flex-start;background:var(--message-incoming);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) var(--radius-4);max-width:min(740px,74%);padding:var(--space-8) var(--space-10) var(--space-6)}.conversation-skeleton-row.own{align-self:flex-end;background:var(--message-outgoing)}.conversation-skeleton-line{height:1rem;background:#0000001a;border-radius:var(--radius-4);margin-bottom:.5rem}.conversation-skeleton-line.short{width:30%}@media (min-width: 1200px){.message-item{max-width:min(820px,68%)}}.timeline-shell{display:flex;flex:1 1 auto;min-height:0;position:relative}.date-separator{align-self:center;background:color-mix(in srgb,var(--panel-bg) 82%,transparent);border:1px solid var(--border);border-radius:var(--radius-999);color:var(--muted);font-size:var(--msg-size-meta);margin:var(--space-8) 0;order:0;padding:var(--space-4) var(--space-12)}.scroll-bottom{background:var(--accent);border-radius:var(--radius-999);bottom:var(--space-16);box-shadow:var(--shadow-subtle);color:#fff;min-height:40px;padding:var(--space-8) var(--space-12);position:absolute;right:var(--space-16);z-index:4}.drop-overlay{align-items:center;background:color-mix(in srgb,var(--accent) 15%,transparent);border:1px dashed var(--accent);border-radius:var(--radius-12);color:var(--text);display:flex;font-weight:700;inset:var(--space-24);justify-content:center;pointer-events:none;position:absolute;z-index:5}.reaction-row button{display:inline-flex;align-items:center;justify-content:center;padding:4px 12px;font-size:.75rem;border-radius:9999px;background:var(--soft);border:1px solid var(--border);color:var(--text);cursor:pointer;transition:transform .1s ease,box-shadow .1s ease}.reaction-row button:hover{transform:scale(1.05)}.reaction-row button:active,.reaction-row button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.message-menu{position:relative}.message-menu summary{background:var(--color-bg-elevated);border-radius:var(--radius-999);color:var(--color-text-secondary);cursor:pointer;display:grid;list-style:none;min-height:30px;min-width:34px;place-items:center}.message-menu summary::-webkit-details-marker{display:none}.message-menu[open]{z-index:4}.message-menu[open] button{border-radius:var(--radius-6);min-width:92px}.message-menu .destructive{color:var(--color-danger)}.attachments{display:grid;gap:.5rem;margin-top:.6rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.attachment{margin:0;overflow:hidden}.attachment img,.attachment video,.media-open img{aspect-ratio:4 / 3;border-radius:var(--radius-8);display:block;max-height:360px;max-width:100%;object-fit:cover;width:100%}.media-open{background:transparent;border:0;cursor:zoom-in;display:block;padding:0;width:100%}.attachment figcaption{color:var(--muted);font-size:.78rem;margin-top:.2rem}.attachment-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.35rem}.attachment-actions a{background:var(--soft);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.78rem;padding:.25rem .45rem;text-decoration:none}.message-body blockquote{border-left:3px solid var(--accent);color:var(--muted);margin:.35rem 0;padding-left:.6rem}.message-body ul,.message-body ol{margin:.35rem 0 .35rem 1.2rem;padding:0}.message-body del{color:var(--muted)}.code-block{background:var(--soft);border:1px solid var(--border);border-radius:6px;margin:.45rem 0;overflow:auto;padding:.75rem;position:relative}.code-block code{background:transparent;display:block;padding:0;white-space:pre}.copy-code{background:var(--panel-bg);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;padding:.25rem .45rem;position:absolute;right:.45rem;top:.45rem}.media-viewer{align-items:center;background:#000000db;display:grid;top:0;right:0;bottom:0;left:0;justify-items:center;padding:var(--space-24);position:fixed;z-index:20}.media-viewer img{max-height:82vh;max-width:92vw;object-fit:contain}.media-viewer a,.media-viewer-close,.media-viewer-nav,.media-viewer-position{color:#fff}.media-viewer-close{position:absolute;right:var(--space-20);top:var(--space-20)}.media-viewer-nav{align-items:center;background:#ffffff24;border:1px solid rgba(255,255,255,.2);border-radius:999px;display:flex;font-size:44px;height:56px;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);width:56px}.media-viewer-nav--previous{left:var(--space-20)}.media-viewer-nav--next{right:var(--space-20)}.media-viewer-footer{align-items:center;bottom:var(--space-20);display:flex;gap:var(--space-16);position:absolute}.media-viewer-position{font-size:13px}.composer{background:color-mix(in srgb,var(--panel-bg) 94%,transparent);border-top:1px solid var(--border-subtle);display:grid;gap:var(--space-8);min-height:58px;padding:var(--space-8) min(6vw,4.5rem) max(var(--space-8),env(safe-area-inset-bottom));position:sticky;bottom:0}.composer textarea{background:var(--color-bg-input);border:1px solid transparent;border-radius:999px;flex:1;max-height:120px;min-height:48px;line-height:1.4;outline:none;padding:.8rem 1rem;resize:none}.composer input[type=file]{display:none}.composer label{align-items:center;background:var(--soft);border-radius:999px;color:var(--text);cursor:pointer;display:inline-flex;flex:0 0 48px;height:48px;justify-content:center;padding:0;transition:transform .15s ease,opacity .15s ease}.composer-actions{align-items:flex-end;display:flex;gap:var(--space-8)}.composer-actions button{align-items:center;background:var(--accent);border-radius:999px;color:#fff;display:inline-flex;height:48px;justify-content:center;min-height:48px;padding:0;transition:transform .15s ease,opacity .15s ease;width:48px}.composer-actions .emoji-toggle{background:var(--soft);color:var(--text)}.emoji-picker{background:var(--panel-bg);border:1px solid var(--border);border-radius:var(--radius-8);bottom:calc(100% - .25rem);box-shadow:0 18px 42px #00000029;display:grid;gap:var(--space-8);left:min(6vw,4.5rem);padding:var(--space-10);position:absolute;width:min(360px,calc(100vw - 32px));z-index:12}.emoji-picker-tabs,.emoji-grid{display:flex;gap:var(--space-6)}.emoji-picker-tabs{overflow-x:auto}.emoji-picker-tabs button{background:var(--soft);border-radius:var(--radius-999);color:var(--muted);min-height:32px;padding:0 var(--space-10)}.emoji-picker-tabs button.active{background:var(--accent);color:#fff}.emoji-search{background:var(--soft);border:1px solid var(--border);border-radius:var(--radius-6);color:var(--text);min-height:36px;padding:0 var(--space-10)}.emoji-grid{flex-wrap:wrap;max-height:152px;overflow-y:auto}.emoji-grid button,.emoji-toggle{align-items:center;display:inline-flex;justify-content:center}.composer label:hover,.composer-actions button:not(:disabled):hover{transform:translateY(-1px)}.composer-mode,.selected-files{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;gap:.4rem}.composer-mode{border-left:3px solid var(--color-primary);padding-left:var(--space-10)}.composer-mode button{align-items:center;display:inline-flex;justify-content:center;margin-left:auto;min-height:30px;padding:var(--space-4)}.emoji-grid button{background:var(--soft);border-radius:var(--radius-6);flex:0 0 36px;font-size:18px;height:36px;padding:0}.selected-files{display:grid;gap:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(132px,1fr))}.selected-files figure{background:var(--soft);border:1px solid var(--border);border-radius:var(--radius-8);margin:0;max-width:100%;overflow:hidden;padding:var(--space-8);position:relative}.selected-files img,.file-preview{aspect-ratio:4 / 3;border-radius:var(--radius-6);display:grid;object-fit:cover;place-items:center;width:100%}.file-preview{background:var(--panel-bg);color:var(--muted)}.selected-files figcaption{font-size:var(--msg-size-meta);margin-top:var(--space-4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-files button{background:transparent;border:0;color:var(--muted);cursor:pointer;width:22px;height:22px;padding:0;border-radius:9999px;position:absolute;right:var(--space-8);top:var(--space-8)}.selected-files button:hover{color:var(--text)}.messenger-search-panel{background:var(--panel-bg);border:1px solid var(--border);border-radius:var(--radius-6);padding:var(--space-8)}.search-tabs{display:flex;gap:var(--space-4);margin-bottom:var(--space-8)}.search-tab{background:transparent;border:none;border-radius:var(--radius-md);color:var(--muted);cursor:pointer;padding:var(--space-4) var(--space-8)}.search-tab.active{background:var(--soft);color:var(--text)}.search-section{display:grid;gap:var(--space-4);margin-bottom:var(--space-12)}.search-section>strong{color:var(--muted);font-size:var(--msg-size-meta);padding:var(--space-4) var(--space-8);text-transform:uppercase}.search-result-row{align-items:center;border-bottom:1px solid var(--border);border-radius:var(--radius-md);color:var(--color-text-primary);display:flex;gap:var(--space-8);padding:var(--space-4) var(--space-8);text-align:left;width:100%}.search-result-row:last-child{border-bottom:none}.folder-strip{display:flex;gap:var(--space-8);margin-inline:calc(var(--space-4) * -1);overflow-x:auto;padding:var(--space-4)}.folder-pill{background:var(--soft);border-radius:var(--radius-999);color:var(--color-text-secondary);flex:0 0 auto;min-height:34px;padding:var(--space-8) var(--space-12);white-space:nowrap}.folder-pill.active,.folder-pill:hover{background:var(--accent);color:#fff}.folder-management{display:grid;gap:var(--space-8)}.context-panel{background:var(--panel-bg);border-left:1px solid var(--border);bottom:0;box-shadow:-12px 0 30px #0000001f;display:grid;gap:var(--space-12);grid-auto-rows:max-content;overflow:auto;padding:var(--space-16);position:absolute;right:0;top:0;width:min(360px,100%);z-index:8}.context-panel-header,.member-card,.shared-file-row{align-items:center;display:flex;gap:var(--space-12)}.context-panel-header strong,.member-card strong{display:block}.context-panel-header small,.member-card small,.panel-empty{color:var(--muted)}.context-panel-close{margin-left:auto}.context-panel-tabs{display:flex;gap:var(--space-8)}.context-panel-tab{background:var(--soft);border-radius:var(--radius-999);color:var(--muted);padding:var(--space-8) var(--space-12)}.context-panel-tab.active{background:var(--accent);color:#fff}.shared-media-grid{display:grid;gap:var(--space-8);grid-template-columns:repeat(3,1fr)}.shared-media-grid img{aspect-ratio:1;border-radius:var(--radius-8);object-fit:cover;width:100%}.shared-file-row,.member-card,.admin-section,.member-picker button{background:var(--soft);border:1px solid var(--border);border-radius:var(--radius-8);color:var(--text);padding:var(--space-12);text-decoration:none}.member-picker{display:grid;gap:var(--space-8)}.member-picker button{align-items:center;display:grid;gap:var(--space-8);grid-template-columns:auto 1fr auto;text-align:left}.member-picker small{color:var(--accent)}.role-badge{background:var(--panel-bg);border:1px solid var(--border);border-radius:var(--radius-999);color:var(--muted);font-size:var(--msg-size-meta);margin-left:auto;padding:var(--space-4) var(--space-8)}.context-panel-skeleton{background:var(--soft);border-radius:var(--radius-8);height:24px;margin-bottom:var(--space-8);width:100%}.context-skeleton-avatar{background:var(--soft);border-radius:var(--radius-999);height:48px;width:48px}.context-skeleton-line{background:var(--soft);border-radius:var(--radius-8);height:12px;margin-bottom:var(--space-4);width:100%}.context-skeleton-line.short{width:60%}.context-skeleton-card{background:var(--soft);border-radius:var(--radius-8);height:120px;margin-bottom:var(--space-12);width:100%}.context-skeleton-grid{display:grid;gap:var(--space-8);grid-template-columns:repeat(3,1fr)}.profile-editor{display:grid;gap:var(--space-10)}.profile-editor-preview{align-items:center;background:var(--soft);border-radius:var(--radius-999);display:flex;font-weight:700;height:56px;justify-content:center;overflow:hidden;width:56px}.profile-editor-preview img{height:100%;object-fit:cover;width:100%}.profile-editor label{color:var(--muted);display:grid;font-size:12px;gap:var(--space-4)}.profile-editor input,.profile-editor textarea{background:var(--panel-bg);border:1px solid var(--border);border-radius:var(--radius-6);color:var(--text);padding:var(--space-8) var(--space-10)}.profile-editor-actions{display:flex;gap:var(--space-8)}.modal-shell{background:var(--panel-bg);border:1px solid var(--border);border-radius:var(--radius-12);box-shadow:0 20px 50px #0000002e;color:var(--text);width:min(440px,calc(100vw - 32px))}.modal-header,.modal-footer{align-items:center;display:flex;gap:var(--space-12);padding:var(--space-12) var(--space-16)}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between}.modal-content{padding:var(--space-16)}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end}.toast-host{bottom:var(--space-20);display:grid;gap:var(--space-8);pointer-events:none;position:fixed;right:var(--space-20);z-index:30}.toast-item{background:var(--panel-bg);border:1px solid var(--border);border-radius:var(--radius-12);box-shadow:var(--shadow-subtle);color:var(--text);max-width:360px;padding:var(--space-12) var(--space-16)}.toast-item.error{border-color:color-mix(in srgb,var(--color-danger) 50%,var(--border))}.send-failed{color:var(--color-danger)}.retry-send{background:var(--soft);border-radius:var(--radius-999);color:var(--color-danger);margin-top:var(--space-4);padding:var(--space-4) var(--space-8)}.confirm-inline{background:var(--soft);border:1px solid var(--border);border-radius:var(--radius-8);display:grid;gap:var(--space-4);padding:var(--space-8)}:where(button,input,textarea,select,summary,a):focus-visible{outline:2px solid var(--accent);outline-offset:2px}:where(.people-pane,.message-list,.context-panel){scrollbar-color:color-mix(in srgb,var(--muted) 45%,transparent) transparent;scrollbar-width:thin}@media (max-width: 768px){.messenger-view{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr)}.people-pane{border-right:0;top:0;right:0;bottom:0;left:0;padding:.75rem}.people-pane.is-hidden-mobile,.chat-pane{display:none}.chat-pane.is-open{display:flex}.back-button{display:inline-flex}.chat-header{min-height:58px;padding:.5rem .65rem}.chat-tools,.chat-admin{display:none}.context-panel{width:100%}.message-list{padding:.75rem .6rem}.message-item{max-width:88%}.message-actions{display:none}.emoji-picker{bottom:calc(100% + .25rem);left:var(--space-8);right:var(--space-8);width:auto}.composer{padding:.5rem .6rem max(.5rem,env(safe-area-inset-bottom))}.composer-actions button{padding-inline:.75rem}.toast-host{bottom:calc(72px + env(safe-area-inset-bottom));left:var(--space-12);right:var(--space-12)}}.auth-view{display:grid;padding:2rem;place-items:center}.auth-panel{background:var(--panel-bg);border:1px solid var(--border);border-radius:8px;padding:1rem;width:min(100%,440px)}.auth-tabs{display:flex;gap:.5rem}.auth-tabs button,.primary-action{border-radius:6px;padding:.7rem .9rem}.auth-tabs button:not(.active){background:#dfe6eb;color:#29313a}.auth-form{display:grid;gap:.85rem;margin-top:1rem}.auth-form label{display:grid;gap:.3rem;font-weight:650}.success{background:#e7f5ec;border:1px solid #b7dec3;border-radius:6px;color:#1f6f38;padding:.7rem .8rem}.auth-required{align-self:center;display:grid;gap:.65rem;grid-column:1 / -1;justify-items:start;margin:0 auto;max-width:420px;padding:2rem}.primary-link{background:var(--accent);border-radius:6px;color:#fff;display:inline-flex;padding:.7rem .9rem;text-decoration:none}.navbar{align-items:center;background:#20242a;color:#fff;display:flex;justify-content:space-between;min-height:64px;padding:0 1.5rem}.logo{font-size:1.15rem;font-weight:800}.nav-links{display:flex;gap:.5rem;list-style:none}.nav-link{border-radius:6px;color:#d9e2ea;display:inline-flex;padding:.45rem .65rem;text-decoration:none}@media (max-width: 768px){.navbar{min-height:52px;padding:0 .85rem}.logo{font-size:1rem}.nav-link{padding:.35rem .5rem}}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--page-bg);color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;height:100%;line-height:1.5}#app{display:flex;flex-direction:column;height:100dvh}#app.app-shell-chat{overflow:hidden}button{border:0;cursor:pointer;font-family:inherit}input,textarea{border:1px solid var(--border);border-radius:var(--radius-6);font:inherit;min-width:0;padding:calc(var(--space-4) + .2rem) calc(var(--space-8) + .2rem)}.nav-link.router-link-active,.auth-tabs button,.primary-action{background:var(--accent);color:#fff}.auth-view,.messenger-view{flex:1;min-height:0}
