:root{--accent: #3390ec;--accent-soft: rgba(51, 144, 236, .12);--bg: #ffffff;--bg-2: #f4f4f5;--text: #000000;--text-2: #707579;--border: #dfe1e5;--hover: #f4f4f5;--active: #3390ec;--bubble-in: #ffffff;--bubble-out: #e3fee0;--meta-out: #4fae4e;--chat-bg: linear-gradient(160deg, #d4e5c1 0%, #a9c99b 45%, #8db48b 100%);--service-bg: rgba(0, 0, 0, .22);--danger: #e53935;--badge-muted: #a8acb0;--shadow: 0 1px 2px rgba(16, 35, 47, .15);--code-bg: rgba(0, 0, 0, .06);color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--accent: #8774e1;--accent-soft: rgba(135, 116, 225, .18);--bg: #212121;--bg-2: #181818;--text: #ffffff;--text-2: #aaaaaa;--border: #303030;--hover: #2c2c2c;--active: #8774e1;--bubble-in: #212121;--bubble-out: #766ac8;--meta-out: #e6e1ff;--chat-bg: linear-gradient(160deg, #1e2a24 0%, #15201b 50%, #0f1713 100%);--service-bg: rgba(0, 0, 0, .35);--badge-muted: #5f6368;--shadow: 0 1px 2px rgba(0, 0, 0, .4);--code-bg: rgba(255, 255, 255, .1);color-scheme:dark}}:root[data-theme=dark]{--accent: #8774e1;--accent-soft: rgba(135, 116, 225, .18);--bg: #212121;--bg-2: #181818;--text: #ffffff;--text-2: #aaaaaa;--border: #303030;--hover: #2c2c2c;--active: #8774e1;--bubble-in: #212121;--bubble-out: #766ac8;--meta-out: #e6e1ff;--chat-bg: linear-gradient(160deg, #1e2a24 0%, #15201b 50%, #0f1713 100%);--service-bg: rgba(0, 0, 0, .35);--badge-muted: #5f6368;--shadow: 0 1px 2px rgba(0, 0, 0, .4);--code-bg: rgba(255, 255, 255, .1);color-scheme:dark}:root[data-theme=light]{color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font:15px/1.35 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer}input,textarea{font:inherit;color:inherit}a{color:var(--accent)}.login{min-height:100%;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--bg-2)}.login-card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:12px;background:var(--bg);padding:32px 24px;border-radius:16px;box-shadow:var(--shadow);text-align:center}.login-logo{width:96px;height:96px;margin:0 auto}.login-card h1{margin:4px 0 0;font-size:26px}.login-sub{margin:0 0 8px;color:var(--text-2)}.login-card input{padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:transparent;outline:none}.login-card input:focus{border-color:var(--accent)}.login-error{color:var(--danger);font-size:14px}.login-reason{color:var(--text-2);font-size:13px}.primary{padding:14px;border:none;border-radius:12px;background:var(--accent);color:#fff;font-weight:600}.primary:disabled{opacity:.6}.link{background:none;border:none;color:var(--accent);padding:4px}.app{display:flex;height:100%;overflow:hidden}.sidebar{width:360px;min-width:280px;border-right:1px solid var(--border);display:flex;flex-direction:column;background:var(--bg)}.main{flex:1;min-width:0;display:flex;background:var(--chat-bg)}.placeholder{margin:auto}.placeholder span{background:var(--service-bg);color:#fff;padding:4px 12px;border-radius:16px;font-size:14px}@media (max-width: 760px){.sidebar{width:100%;border-right:none}.app.chat-open .sidebar{display:none}.app:not(.chat-open) .main{display:none}}@media (min-width: 761px){.chat-head .back{display:none}}.space-tabs{display:flex;align-items:center;gap:2px;padding:0 8px;overflow-x:auto;flex:none;border-bottom:1px solid var(--border)}.space-tab{flex:none;display:inline-flex;align-items:center;gap:5px;padding:8px 10px;border:none;border-bottom:3px solid transparent;background:none;color:var(--text-2);font-size:14px;cursor:pointer}.space-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.space-hint{padding:8px 14px;color:var(--text-2);font-size:13px}.space-field{width:100%;box-sizing:border-box;margin:10px 0;padding:9px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg-2);color:inherit}.space-code{font-weight:600;font-size:17px;-webkit-user-select:all;user-select:all;margin:4px 0 8px}.space-member{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:3px 0}.space-members{max-height:220px;overflow-y:auto;margin-bottom:8px}.sidebar-head{display:flex;align-items:center;gap:8px;padding:8px 12px}.search{flex:1;min-width:0;padding:9px 16px;border-radius:22px;border:1px solid transparent;background:var(--bg-2);outline:none}.search:focus{border-color:var(--accent);background:var(--bg)}.icon-btn{width:40px;height:40px;flex:none;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:none;color:var(--text-2);font-size:18px}.icon-btn:hover{background:var(--hover)}.icon-btn.small{width:24px;height:24px;font-size:12px}.icon-btn.light{color:#fff}.icon-btn.light:hover{background:#ffffff26}.menu-wrap{position:relative}.dropdown{position:absolute;top:44px;left:0;z-index:20;min-width:240px;padding:6px 0;border-radius:12px;background:var(--bg);box-shadow:0 4px 20px #00000040}.dropdown button,.context-menu>button{display:block;width:100%;text-align:left;padding:10px 16px;border:none;background:none}.dropdown button:hover,.context-menu>button:hover{background:var(--hover)}.dropdown-me{display:flex;gap:12px;align-items:center;padding:8px 16px 12px;border-bottom:1px solid var(--border);margin-bottom:4px}.danger{color:var(--danger)!important}.connecting{padding:4px 16px;font-size:13px;color:var(--text-2)}.chat-list{flex:1;overflow-y:auto;padding:0 8px 8px}.list-section{padding:12px 10px 4px;color:var(--text-2);font-size:14px;font-weight:500}.empty{padding:24px;text-align:center;color:var(--text-2)}.chat-row{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;cursor:pointer}.chat-row:hover{background:var(--hover)}.chat-row.active{background:var(--active);color:#fff}.chat-row.active .chat-preview,.chat-row.active .chat-time,.chat-row.active .preview-sender,.chat-row.active .typing-text,.chat-row.active .preview-topic{color:#fff}.chat-row.active .badge{background:#fff;color:var(--active)}.chat-row.active .ticks{color:#fff}.chat-row-body{flex:1;min-width:0}.chat-row-top,.chat-row-bottom{display:flex;align-items:center;gap:6px}.chat-row-bottom{margin-top:2px}.chat-title{flex:1;min-width:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-time{font-size:12px;color:var(--text-2)}.chat-preview{flex:1;min-width:0;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}.preview-sender{color:var(--text)}.typing-text{color:var(--accent)}.muted-icon{font-size:12px;margin-left:4px;opacity:.6}.pin-icon{font-size:13px;opacity:.6}.badge{min-width:22px;height:22px;padding:0 7px;border-radius:11px;background:var(--accent);color:#fff;font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.badge.muted{background:var(--badge-muted)}.badge.mention{padding:0;width:22px;font-size:13px}.badge.small{position:absolute;top:-8px;left:50%;transform:translate(-50%);min-width:20px;height:20px;font-size:11px}.avatar{position:relative;flex:none;border-radius:50%}.avatar img,.avatar-fallback{width:100%;height:100%;border-radius:50%;object-fit:cover}.avatar-fallback{display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600}.avatar-online{position:absolute;right:1px;bottom:1px;width:14px;height:14px;border-radius:50%;background:#4fce5d;border:2px solid var(--bg)}.avatar.all{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-weight:700}.chat{position:relative;flex:1;min-width:0;display:flex;flex-direction:column}.chat-head{display:flex;align-items:center;gap:10px;padding:6px 12px;background:var(--bg);border-bottom:1px solid var(--border)}.chat-head-text{flex:1;min-width:0}.chat-status{font-size:13px;color:var(--text-2)}.chat-status.active{color:var(--accent)}.messages{flex:1;overflow-y:auto;overflow-x:hidden}.messages-inner{max-width:760px;margin:0 auto;padding:8px 12px 12px;display:flex;flex-direction:column;min-height:100%;justify-content:flex-end}.day-sep,.service,.unread-sep{text-align:center;margin:8px 0}.day-sep span,.service span{display:inline-block;background:var(--service-bg);color:#fff;padding:3px 10px;border-radius:14px;font-size:13px;font-weight:500}.unread-sep{background:#fff9;color:var(--text-2);font-size:13px;padding:3px;border-radius:4px}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .unread-sep{background:#0006}}:root[data-theme=dark] .unread-sep{background:#0006}.msg-row{display:flex;align-items:flex-end;gap:6px;margin:2px 0}.msg-row.mine{justify-content:flex-end}.msg-row.highlighted .bubble{animation:flash 1.6s ease}@keyframes flash{0%,60%{box-shadow:0 0 0 3px var(--accent)}to{box-shadow:var(--shadow)}}.msg-avatar{width:34px;flex:none}.bubble{position:relative;max-width:min(480px,78%);padding:6px 9px;border-radius:14px;background:var(--bubble-in);box-shadow:var(--shadow);overflow-wrap:anywhere}.mine .bubble{background:var(--bubble-out)}.bubble.tail{border-bottom-left-radius:4px}.mine .bubble.tail{border-bottom-left-radius:14px;border-bottom-right-radius:4px}.bubble.media-only{padding:3px}.bubble.photos{padding:0;overflow:hidden}.bubble.photos.single{width:min-content}.bubble.photos.alone{background:none;box-shadow:none}.bubble.photos>:not(.media-grid):not(.over){margin-left:9px;margin-right:9px}.bubble.photos>:first-child:not(.media-grid){margin-top:6px}.bubble.photos>.media-grid+*{margin-top:5px}.bubble.photos>:last-child:not(.media-grid):not(.over){margin-bottom:6px}.bubble.photos .media-grid{border-radius:0;margin-bottom:0}.bubble.photos.alone .media-grid{border-radius:14px}.bubble.failed{opacity:.85}.msg-sender{font-weight:600;font-size:14px;margin-bottom:2px}.msg-forward{font-size:13px;color:var(--accent);margin-bottom:3px}.msg-reply{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:4px;padding:3px 8px;margin-bottom:4px;cursor:pointer;font-size:14px}.msg-reply-name{color:var(--accent);font-weight:600}.msg-reply-text{color:var(--text);opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg-text{white-space:pre-wrap;padding-bottom:6px}.msg-text.deleted{font-style:italic;color:var(--text-2)}.msg-text-part+.code-block,.code-block+.msg-text-part,.code-block+.code-block{margin-top:6px}.msg-meta{float:right;display:inline-flex;align-items:center;gap:3px;margin:14px 0 -4px 10px;font-size:12px;color:var(--text-2);white-space:nowrap;-webkit-user-select:none;user-select:none}.mine .msg-meta{color:var(--meta-out)}.meta-line{display:flex;justify-content:flex-end}.meta-line .msg-meta{float:none;margin:2px 0 0}.meta-line.over{position:absolute;right:8px;bottom:6px}.meta-line.over .msg-meta{background:#00000073;color:#fff;padding:1px 6px;border-radius:10px}.ticks{color:inherit}.ticks.read{color:var(--accent)}.mine .ticks.read{color:var(--meta-out)}.failed-mark{color:var(--danger);font-weight:700}.pending-actions{font-size:13px;color:var(--text-2);display:flex;gap:4px;align-items:center;margin-top:4px}.f-b{font-weight:700}.f-i{font-style:italic}.f-u{text-decoration:underline}.f-s{text-decoration:line-through}.f-code{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.92em;background:var(--code-bg);padding:0 3px;border-radius:4px;cursor:pointer}.f-spoiler{background:#7f7f7f2e;border-radius:3px}.f-spoiler.hidden{background:var(--text-2);color:transparent;cursor:pointer;-webkit-user-select:none;user-select:none}.f-spoiler.hidden *{color:transparent!important}.mention{color:var(--accent);font-weight:500;cursor:pointer}.mine .mention,.mine a{color:#1f8a3a}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .mine .mention,:root:not([data-theme=light]) .mine a{color:#fff;text-decoration:underline}}:root[data-theme=dark] .mine .mention,:root[data-theme=dark] .mine a{color:#fff;text-decoration:underline}.code-block{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:6px;padding:4px 8px 8px 10px;white-space:normal}.code-head{display:flex;align-items:center;justify-content:space-between;color:var(--accent);font-size:13px;font-weight:600}.code-copy{display:inline-flex;gap:4px;align-items:center;border:none;background:none;color:var(--accent);font-size:13px;padding:2px 4px;border-radius:6px}.code-copy:hover{background:var(--accent-soft)}.code-block pre{margin:2px 0 0;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:13.5px;white-space:pre-wrap;overflow-wrap:anywhere}.media-grid{display:grid;gap:2px;border-radius:12px;overflow:hidden;margin-bottom:4px}.media-grid.n2,.media-grid.n4{grid-template-columns:1fr 1fr}.media-grid.n3{grid-template-columns:1fr 1fr 1fr}.media-tile{position:relative;min-height:120px;background:#00000014;cursor:pointer}.media-grid:not(.n1) .media-tile{aspect-ratio:1}.media-grid.n1 .media-tile{width:360px;max-width:100%;min-height:0}.media-tile img,.media-tile video{width:100%;height:100%;object-fit:cover;display:block}.media-tile.video video{object-fit:contain;background:#000}.media-loading{width:100%;height:100%;min-height:120px;animation:pulse 1.2s infinite ease-in-out;background:#7f7f7f33}@keyframes pulse{50%{opacity:.5}}.play-big{width:100%;height:100%;min-height:180px;border:none;background:#0000008c;color:#fff;font-size:34px;position:relative}.video-meta{position:absolute;left:8px;top:8px;background:#00000080;color:#fff;font-size:12px;padding:1px 6px;border-radius:8px}.video-note{position:relative;width:220px;height:220px;border-radius:50%;overflow:hidden;background:#0000008c;display:flex;align-items:center;justify-content:center;color:#fff;font-size:34px;cursor:pointer}.video-note video{width:100%;height:100%;object-fit:cover}.video-note .video-meta{top:auto;bottom:14px;left:50%;transform:translate(-50%)}.file-row,.audio{display:flex;align-items:center;gap:10px;padding:4px 2px;cursor:pointer;min-width:220px}.audio audio{width:260px;max-width:100%}.file-icon{width:46px;height:46px;flex:none;border-radius:50%;border:none;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px}.file-text{min-width:0}.file-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.file-size{font-size:13px;color:var(--text-2)}.mine .file-size{color:var(--meta-out)}.link-preview,.article-card{display:block;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:6px;padding:4px 8px;margin-top:6px;color:var(--text);text-decoration:none;font-size:14px}.link-preview img,.article-card img{display:block;max-width:100%;max-height:240px;border-radius:6px;margin-top:4px}.lp-site{color:var(--accent);font-weight:600;font-size:13px}.lp-title{font-weight:600}.lp-desc{color:var(--text);opacity:.85;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.poll,.checklist{min-width:240px;padding:2px 0 4px}.poll-q{font-weight:600;margin-bottom:2px}.poll-kind{font-size:13px;color:var(--text-2);margin:2px 0 6px}.poll-opt{position:relative;padding:4px 6px;margin:3px 0;border-radius:6px;overflow:hidden}.poll-opt.mine{font-weight:600}.poll-bar{position:absolute;inset:0 auto 0 0;background:var(--accent-soft);z-index:0}.poll-opt>*{position:relative}.poll-pct{font-weight:600;margin-right:6px}.check-item{display:flex;gap:8px;align-items:center;padding:3px 0}.check-item.done>span:nth-child(2){text-decoration:line-through;opacity:.7}.check-box{width:18px;height:18px;border-radius:50%;border:2px solid var(--accent);display:inline-flex;align-items:center;justify-content:center;font-size:11px;color:#fff;flex:none}.check-item.done .check-box{background:var(--accent)}.check-by{margin-left:auto;font-size:12px;color:var(--text-2)}.reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.reaction{border:none;border-radius:14px;padding:2px 8px;background:var(--accent-soft);color:var(--accent);font-size:14px}.reaction.mine{background:var(--accent);color:#fff}.floating{position:absolute;right:20px;bottom:84px;display:flex;flex-direction:column;gap:14px;z-index:5}.round-btn{position:relative;width:48px;height:48px;border-radius:50%;border:none;background:var(--bg);color:var(--text-2);box-shadow:0 1px 6px #00000040;font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center}.composer{position:relative;max-width:760px;width:100%;margin:0 auto;padding:0 12px 12px}.composer-row{display:flex;align-items:flex-end;gap:6px;background:var(--bg);border-radius:18px;padding:4px 4px 4px 6px;box-shadow:var(--shadow)}.composer textarea{flex:1;resize:none;border:none;outline:none;background:transparent;padding:10px 4px;max-height:220px;line-height:1.35}.send-btn{width:44px;height:44px;flex:none;border:none;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center}.send-btn:disabled{background:transparent;color:var(--text-2)}.composer-banner{display:flex;align-items:center;gap:8px;background:var(--bg);border-radius:14px 14px 0 0;padding:6px 6px 14px 12px;margin-bottom:-10px;box-shadow:var(--shadow)}.banner-bar{width:3px;align-self:stretch;background:var(--accent);border-radius:2px}.banner-text{flex:1;min-width:0;font-size:14px}.banner-name{color:var(--accent);font-weight:600}.banner-quote{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-2)}.drafts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.draft{display:flex;align-items:center;gap:6px;background:var(--bg);border-radius:12px;padding:4px 4px 4px 10px;box-shadow:var(--shadow);font-size:13px}.draft .file-name{max-width:180px}.mention-list{position:absolute;bottom:100%;left:12px;right:12px;max-height:260px;overflow-y:auto;background:var(--bg);border-radius:14px;box-shadow:0 4px 18px #0003;padding:4px 0;margin-bottom:6px;z-index:10}.mention-row{display:flex;gap:10px;align-items:center;padding:6px 12px;cursor:pointer}.mention-row.active,.mention-row:hover{background:var(--hover)}.format-bar{display:flex;gap:4px;margin-bottom:6px;background:var(--bg);border-radius:12px;padding:4px;box-shadow:var(--shadow);width:fit-content}.fmt{min-width:36px;height:32px;border:none;border-radius:8px;background:var(--bg-2);font-size:15px}.fmt:hover{background:var(--accent-soft)}.fmt-bold{font-weight:700}.fmt-italic{font-style:italic}.fmt-underline{text-decoration:underline}.fmt-strike{text-decoration:line-through}.fmt-code{font-family:monospace;font-size:13px}.channel-bar{text-align:center;padding:12px;background:var(--bg)}.chat-head-who{flex:1;min-width:0;display:flex;align-items:center;gap:10px;cursor:pointer}.chat-head .chat-title{display:flex;align-items:center;gap:4px}.head-muted{display:inline-flex;color:var(--text-2);opacity:.8}.icon-btn.on{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.head-more{position:relative;flex:none}.head-menu{position:absolute;top:46px;right:0;z-index:40;min-width:250px;padding:6px 0;border-radius:12px;background:var(--bg);box-shadow:0 4px 24px #0000004d}.head-menu button{display:flex;align-items:center;gap:14px;width:100%;padding:9px 16px;border:none;background:none;text-align:left;white-space:nowrap}.head-menu button:hover{background:var(--hover)}.head-menu svg{color:var(--text-2);flex:none}.info-panel{width:380px;flex:none;display:flex;flex-direction:column;min-height:0;background:var(--bg-2);border-left:1px solid var(--border)}.info-head{display:flex;align-items:center;gap:6px;padding:6px 8px 6px 16px;min-height:55px;box-sizing:border-box;background:var(--bg);border-bottom:1px solid var(--border);flex:none}.info-head .icon-btn:first-child{margin-left:-10px}.info-head-title{flex:1;min-width:0;font-weight:600;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-scroll{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.info-hero{display:flex;flex-direction:column;align-items:center;gap:4px;padding:22px 16px 4px;background:var(--bg);text-align:center}.info-name{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:8px;font-size:18px;font-weight:600;max-width:100%;overflow-wrap:anywhere}.info-actions{display:flex;gap:8px;padding:12px 16px 16px;margin-top:-8px;background:var(--bg)}.info-tile{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:9px 4px 8px;border:none;border-radius:12px;background:var(--bg-2);color:var(--accent);font-size:13px;font-weight:500}.info-tile:hover{background:var(--hover)}.info-tile span{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.info-block{display:flex;flex-direction:column;padding:6px 0;background:var(--bg);flex:none}.info-row{display:flex;flex-direction:column;gap:2px;padding:8px 20px;border:none;background:none;text-align:left}button.info-row:hover,.info-media:not(:disabled):hover,.info-member:not(:disabled):hover,.info-item:hover{background:var(--hover)}.info-value{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-value.wrap{white-space:pre-wrap;overflow-wrap:anywhere}.info-value.accent{color:var(--accent)}.info-label{font-size:13px;color:var(--text-2)}.info-media{display:flex;align-items:center;gap:28px;padding:11px 20px;border:none;background:none;text-align:left;font-size:15px;font-weight:500}.info-media svg{color:var(--text-2);flex:none}.info-media:disabled{cursor:default;opacity:.55}.info-section{padding:8px 20px 4px;font-size:14px;font-weight:600;color:var(--accent)}.info-member{display:flex;align-items:center;gap:12px;padding:6px 16px;border:none;background:none;text-align:left}.info-member:disabled{cursor:default}.info-member-text{flex:1;min-width:0;display:flex;flex-direction:column}.info-role{font-size:12px;color:var(--accent);flex:none}.info-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:2px;background:var(--bg)}.info-thumb{aspect-ratio:1;background:#7f7f7f26;cursor:pointer;overflow:hidden}.info-thumb img{width:100%;height:100%;object-fit:cover;display:block}.info-item{display:flex;align-items:flex-start;gap:12px;padding:8px 16px;background:var(--bg);cursor:pointer}.info-scroll>.info-item+.info-item{margin-top:-8px}.info-item-icon{width:40px;height:40px;flex:none;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:var(--accent);color:#fff}.info-item-icon.plain{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.info-item-text{flex:1;min-width:0}.info-item-text .file-name{max-width:100%}.info-link{display:block;color:var(--accent);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-link:hover{text-decoration:underline}.info-snippet{font-size:14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.info-more{align-self:center;padding:10px}@media (max-width: 1180px){.info-panel{position:fixed;top:0;right:0;bottom:0;z-index:30;max-width:100%;box-shadow:-4px 0 24px #00000040}}@media (max-width: 760px){.info-panel{width:100%}}.transcript{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:4px 0 2px}.stt-btn{border:none;border-radius:8px;padding:2px 8px;font-size:13px;font-weight:600;cursor:pointer;color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.stt-btn:hover,.stt-btn.on{background:color-mix(in srgb,var(--accent) 24%,transparent)}.stt-btn.busy{animation:stt-pulse 1.2s ease-in-out infinite}@keyframes stt-pulse{50%{opacity:.45}}.transcript-text{font-size:15px;line-height:1.35;white-space:pre-wrap;word-break:break-word;max-width:360px}.transcript-text.muted{color:var(--text-2);font-style:italic}.pinned-bar{display:flex;align-items:center;gap:10px;padding:6px 8px 6px 14px;background:var(--bg);border-bottom:1px solid var(--border);cursor:pointer;flex-shrink:0}.pinned-bar:hover{background:var(--hover)}.pinned-stripes{display:flex;flex-direction:column;gap:2px;align-self:stretch;width:2px;flex:none}.pinned-stripes span{flex:1;border-radius:1px;background:color-mix(in srgb,var(--accent) 35%,transparent)}.pinned-stripes span.on{background:var(--accent)}.pinned-body{flex:1;min-width:0;line-height:1.3}.pinned-title{font-size:14px;font-weight:600;color:var(--accent)}.pinned-text{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pinned-bar .icon-btn{flex:none;color:var(--text-2)}.search-panel{background:var(--bg);border-bottom:1px solid var(--border)}.search-row{display:flex;gap:6px;padding:6px 12px}.search-results{max-height:45vh;overflow-y:auto;padding:0 8px 8px}.search-hit{padding:6px 8px;border-radius:10px;cursor:pointer}.search-hit:hover{background:var(--hover)}.topic-strip{display:flex;align-items:center;gap:6px;padding:6px 12px;overflow-x:auto;border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;scrollbar-width:none}.topic-strip::-webkit-scrollbar{display:none}.topic-chip{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;border:none;border-radius:999px;padding:5px 12px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:inherit;font-weight:500;white-space:nowrap;cursor:pointer}.topic-chip:hover{background:color-mix(in srgb,var(--accent) 20%,transparent)}.topic-chip.active{background:var(--accent);color:#fff}.topic-chip-label{max-width:180px;overflow:hidden;text-overflow:ellipsis}.topic-chip-badge{min-width:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:#fff;font-size:11px;font-weight:600;line-height:18px;text-align:center}.topic-chip.active .topic-chip-badge{background:#fff;color:var(--accent)}.topic-add{flex-shrink:0;width:30px;height:30px;border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);background:none;color:var(--accent);font-size:18px;line-height:1;cursor:pointer}.topic-actions{margin-left:auto;display:inline-flex;flex-shrink:0}.topic-icons{display:flex;flex-wrap:wrap;gap:4px;margin:12px 0}.topic-icons button{width:36px;height:36px;border:none;border-radius:50%;background:none;font-size:20px;cursor:pointer}.topic-icons button.active{background:color-mix(in srgb,var(--accent) 18%,transparent)}.topic-name{width:100%;box-sizing:border-box;padding:10px 12px;margin-bottom:12px;border:1px solid var(--border);border-radius:10px;background:transparent;outline:none}.topic-name:focus{border-color:var(--accent)}.topic-targets{display:flex;flex-direction:column;margin:12px 0 4px;max-height:50vh;overflow-y:auto}.topic-targets button{border:none;background:none;text-align:left;padding:10px 8px;border-radius:8px;font-size:15px;cursor:pointer;color:inherit}.topic-targets button:hover{background:var(--hover)}.msg-forward.link{cursor:pointer}.msg-forward.link:hover{text-decoration:underline}.preview-topic{color:var(--accent)}.context-menu{position:fixed;z-index:50;min-width:220px;padding:6px 0;border-radius:12px;background:var(--bg);box-shadow:0 4px 24px #0000004d}.menu-reactions{display:flex;gap:2px;padding:2px 8px 6px;border-bottom:1px solid var(--border);margin-bottom:4px}.menu-reactions button{border:none;background:none;font-size:20px;padding:4px;border-radius:8px}.menu-reactions button:hover{background:var(--hover);transform:scale(1.15)}.dialog-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:60;padding:16px}.dialog{width:100%;max-width:340px;background:var(--bg);border-radius:14px;padding:20px}.dialog-title{font-weight:600;font-size:17px}.dialog-text{color:var(--text-2);margin:8px 0 16px;overflow-wrap:anywhere}.dialog-buttons{display:flex;flex-direction:column;gap:4px}.dialog-buttons button{border:none;background:none;padding:10px;border-radius:8px;text-align:right;color:var(--accent);font-weight:500}.dialog-buttons button:hover{background:var(--hover)}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#000000e6;display:flex;align-items:center;justify-content:center}.viewer img{max-width:94vw;max-height:88vh;object-fit:contain}.viewer-bar{position:absolute;top:8px;right:12px;display:flex;gap:4px}.drop-zone{position:absolute;top:70px;right:20px;bottom:20px;left:20px;border:3px dashed var(--accent);border-radius:18px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--accent);pointer-events:none;z-index:30}.toast{position:fixed;left:50%;bottom:32px;transform:translate(-50%);background:#000c;color:#fff;padding:8px 16px;border-radius:10px;z-index:100;transition:opacity .4s}.toast.gone{opacity:0}.dropdown-me{cursor:pointer}.dropdown-me:hover{background:var(--hover)}.profile-dialog{max-width:400px;max-height:calc(100vh - 32px);overflow-y:auto;display:flex;flex-direction:column;gap:12px}.profile-head{display:flex;align-items:center;justify-content:space-between}.profile-avatar{display:flex;flex-direction:column;align-items:center;gap:6px}.profile-photo-buttons{display:flex;gap:12px}.profile-username{text-align:center;color:var(--text-2);margin-top:-6px}.field{display:flex;flex-direction:column;gap:4px;position:relative}.field>span{font-size:13px;color:var(--accent);font-weight:500}.field input,.field textarea,.password-form input{padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:transparent;outline:none;resize:none}.field input:focus,.field textarea:focus,.password-form input:focus{border-color:var(--accent)}.field small{position:absolute;right:10px;bottom:6px;font-size:11px;color:var(--text-2)}.seg{display:flex;border:1px solid var(--border);border-radius:10px;overflow:hidden}.seg button{flex:1;padding:8px 4px;border:none;background:none;font-size:14px}.seg button+button{border-left:1px solid var(--border)}.seg button.on{background:var(--accent);color:#fff}.password-form{display:flex;flex-direction:column;gap:8px}.password-buttons{display:flex;justify-content:flex-end;gap:8px}.password-buttons .primary{padding:10px 18px}.link:disabled{opacity:.5}.qr-login{display:flex;flex-direction:column;align-items:center;gap:12px}.qr-box{position:relative;width:240px;height:240px}.qr-code{width:240px;height:240px;border-radius:12px;overflow:hidden;background:#fff;transition:opacity .2s}.qr-code svg{display:block;width:100%;height:100%}.qr-code.scanned{opacity:.15}.qr-scanned{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:72px;color:var(--accent)}.qr-steps{text-align:left;margin:0;padding-left:22px;color:var(--text-2);line-height:1.6}.qr-steps b{color:var(--text);font-weight:500}.qr-hint{margin:0;font-weight:500}.forward-dialog{max-width:420px;height:min(620px,calc(100vh - 32px));display:flex;flex-direction:column;gap:10px;padding:16px 12px}.forward-dialog .profile-head{padding:0 6px}.forward-list{flex:1;overflow-y:auto;margin:0 -4px}.forward-list.busy{opacity:.5;pointer-events:none}.select-wrap{position:relative;padding-left:36px;border-radius:10px;cursor:pointer}.select-wrap:hover{background:#7f7f7f14}.select-wrap.selected{background:var(--accent-soft)}.select-wrap.disabled{cursor:default;opacity:.6}.select-wrap .msg-row{pointer-events:none}.select-check{position:absolute;left:6px;bottom:8px;width:22px;height:22px;border-radius:50%;border:2px solid #fff;background:#0003;color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}.select-wrap.selected .select-check{background:var(--accent);border-color:var(--accent)}.select-bar{max-width:760px;width:calc(100% - 24px);margin:0 auto 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--bg);border-radius:18px;padding:6px 6px 6px 12px;box-shadow:var(--shadow)}.select-bar .primary{padding:10px 20px}.forward-dialog .search{flex:none}.call-missed{color:#e53935}.call-panel{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#17212b;color:#fff;padding:16px}.call-panel.with-video{justify-content:flex-end;background:#000;padding-bottom:32px}.call-panel.with-video .call-name,.call-panel.with-video .call-status,.call-panel.with-video .call-buttons{position:relative;text-shadow:0 1px 3px rgba(0,0,0,.8)}.call-panel.with-video .call-buttons{margin-top:16px}.call-video-remote{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}.call-video-local{position:absolute;top:16px;right:16px;width:160px;max-width:30vw;aspect-ratio:4 / 3;object-fit:cover;border-radius:10px;transform:scaleX(-1);background:#000}.call-name{font-size:26px;font-weight:600;margin-top:12px;text-align:center}.call-status{color:#ffffffb3;min-height:22px}.call-buttons{display:flex;gap:40px;margin-top:48px}.call-btn{width:64px;height:64px;border:none;border-radius:50%;background:#ffffff2e;color:#fff;display:flex;align-items:center;justify-content:center}.call-btn.on{background:#5b9bd5}.call-btn.red{background:#e53935}.call-btn.green{background:#43a047}.birthday-banner{margin:6px 8px;border-radius:14px;background:var(--accent-soft)}.birthday-row{display:flex;align-items:center;gap:10px;padding:8px 6px 8px 12px;cursor:pointer;border-radius:14px}.birthday-row:hover{background:color-mix(in srgb,var(--accent, #3390ec) 7%,transparent)}.birthday-row .chat-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.birthday-row .chat-row-body{min-width:0;flex:1}.birthday-form{display:flex;flex-direction:column;gap:8px}.birthday-selects{display:flex;gap:6px}.birthday-selects select{flex:1;min-width:0;padding:6px;border-radius:8px;border:1px solid var(--border, #ccc);background:var(--bg, #fff);color:inherit;font:inherit}.birthday-value{align-self:flex-start}.birthday-sub{color:var(--accent)}.emoji-status{margin-left:4px;font-weight:400}.emoji-status-picker{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.emoji-status-picker button:not(.link){width:36px;height:36px;border-radius:10px;border:none;background:transparent;font-size:20px;cursor:pointer}.emoji-status-picker button:not(.link):hover{background:var(--hover, rgba(127,127,127,.12))}.emoji-status-picker button.on{background:var(--accent-soft)}.anim-emoji{position:relative;display:inline-flex;align-items:center;justify-content:center;line-height:1;vertical-align:middle}.anim-emoji-player{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.big-emoji-art{cursor:pointer;line-height:0}.bubble.big-emoji{background:none;box-shadow:none}.bubble.big-emoji:before,.bubble.big-emoji:after{display:none}.bubble.big-emoji .meta-line .msg-meta{background:#00000073;color:#fff;padding:1px 6px;border-radius:10px}.emoji-credit{color:var(--text-2);font-size:11px}.location{width:280px;max-width:100%;margin:2px 0 4px}.location-map{position:relative;display:block;width:280px;max-width:100%;height:160px;overflow:hidden;border-radius:10px;background:#e5e3df}.location-map img{position:absolute;width:256px;height:256px;-webkit-user-select:none;user-select:none;pointer-events:none}.location-pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-100%);fill:#e53935;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}.location-copy{position:absolute;right:0;bottom:0;padding:1px 4px;font-size:10px;color:#333;background:#ffffffbf;border-top-left-radius:4px}.location-info{padding:6px 2px 0}.location-name{font-weight:500}.location-links{display:flex;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--text-2)}.location-links a{color:var(--accent);text-decoration:none}.location-links a:hover{text-decoration:underline}
