.app{position:relative;height:var(--app-height, 100dvh);max-width:100vw;display:grid;grid-template-columns:74px 342px minmax(0,1fr);background:var(--bg);color:var(--text);overflow:hidden}.app.has-info{grid-template-columns:74px 342px minmax(0,1fr) 322px}.app button{font-family:inherit}.rail{background:var(--rail);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 0 16px}.rail-logo{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;margin-bottom:12px;user-select:none}.rail-logo img{width:42px;height:42px;border-radius:13px;display:block}.rail-btn{position:relative;width:46px;height:46px;border-radius:13px;border:1px solid transparent;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer;transition:background .12s ease,color .12s ease}.rail-btn:hover{background:var(--hover);color:var(--text)}.rail-btn.active{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 30%,var(--border))}.rail-badge{position:absolute;top:3px;right:3px;min-width:17px;height:17px;border-radius:99px;background:var(--err);color:#fff;font-size:.62rem;font-weight:700;display:grid;place-items:center;padding:0 4px}.rail-spacer{flex:1}.rail-avatar{width:40px;height:40px;border-radius:50%;border:none;padding:0;overflow:hidden;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#071018;font-weight:700;font-size:.78rem;cursor:pointer;display:grid;place-items:center}.rail-avatar img{width:100%;height:100%;object-fit:cover}.list{background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0;min-width:0}.list-head{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 10px}.list-head h2{margin:0;font-size:1.15rem;letter-spacing:-.01em}.list-actions{display:flex;gap:2px}.icon-btn{width:38px;height:38px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer;transition:background .12s ease,color .12s ease}.icon-btn:hover{background:var(--hover);color:var(--text)}.icon-btn.active{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.search{display:flex;align-items:center;gap:8px;margin:6px 14px 10px;padding:9px 12px;border-radius:11px;background:var(--search);border:1px solid var(--border);color:var(--muted)}.search input{flex:1;border:none;background:transparent;color:var(--text);outline:none;font-family:inherit;font-size:.9rem;min-width:0}.chat-list{list-style:none;margin:0;padding:0 8px 12px;overflow-y:auto;flex:1}.chat-item{width:100%;display:flex;gap:11px;align-items:center;padding:10px;border:none;border-radius:12px;background:transparent;color:inherit;cursor:pointer;text-align:left}.chat-item:hover{background:var(--hover)}.chat-item.active{background:color-mix(in srgb,var(--accent) 10%,transparent)}.chat-item:disabled{opacity:.5;cursor:not-allowed}.chat-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.chat-item-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.chat-item-name{font-weight:600;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-item-time{font-size:.72rem;color:var(--muted);flex:none;display:inline-flex;align-items:center;gap:4px}.chat-item-bottom{display:flex;justify-content:space-between;gap:8px;align-items:center}.chat-item-last{font-size:.8rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.typing-preview{color:var(--accent);font-style:italic}.unread{min-width:19px;height:19px;padding:0 5px;border-radius:99px;background:var(--accent);color:var(--on-accent);font-size:.7rem;font-weight:700;display:grid;place-items:center;flex:none}.avatar{position:relative;border-radius:50%;display:grid;place-items:center;flex:none;user-select:none}.avatar img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%}.online-dot{position:absolute;right:0;bottom:0;width:11px;height:11px;border-radius:50%;background:var(--ok);border:2px solid var(--panel)}.avatar-initials{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#071018;font-weight:700}.list-empty{padding:30px 22px;text-align:center;color:var(--muted);font-size:.85rem;line-height:1.6}.link-btn{background:none;border:none;color:var(--accent);cursor:pointer;font-family:inherit;font-size:inherit;padding:0;margin-left:4px}.chat{position:relative;display:flex;flex-direction:column;min-height:0;min-width:0;background-color:var(--bg);background-image:radial-gradient(color-mix(in srgb,var(--text) 3%,transparent) 1px,transparent 1px);background-size:24px 24px}.error-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;background:color-mix(in srgb,var(--err) 12%,var(--panel));color:var(--err);font-size:.82rem;border-bottom:1px solid color-mix(in srgb,var(--err) 30%,var(--border))}.error-bar button{background:transparent;border:none;color:inherit;text-decoration:underline;cursor:pointer;font-size:.8rem}.chat-head{display:flex;align-items:center;gap:12px;padding:11px 18px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--panel) 86%,transparent);backdrop-filter:blur(8px)}.chat-head-text{flex:1;display:flex;flex-direction:column;min-width:0}.chat-head-text strong{font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-head-text span{font-size:.74rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-head-actions{display:flex;gap:6px;margin-left:6px;align-items:center}.chat-search{display:flex;align-items:center;gap:8px;padding:8px 18px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--panel) 86%,transparent);color:var(--muted);font-size:.82rem}.chat-search input{flex:1;min-width:0;border:1px solid var(--border);background:var(--search);color:var(--text);border-radius:9px;padding:7px 10px;outline:none;font-family:inherit;font-size:.85rem}.chat-search-count{white-space:nowrap;font-size:.72rem}.chat-search button{border:none;background:transparent;color:var(--accent);font-size:.76rem;cursor:pointer;white-space:nowrap}mark{background:color-mix(in srgb,var(--warn) 45%,transparent);color:inherit;border-radius:3px;padding:0 1px}.back-btn{display:none}.messages{flex:1;overflow-y:auto;overflow-x:hidden;padding:22px clamp(16px,4vw,52px);display:flex;flex-direction:column;gap:2px}.messages-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--muted);font-size:.85rem;text-align:center}.msg-row{display:flex;position:relative;margin:2px 0}.swipe-reply{position:absolute;left:6px;top:50%;transform:translateY(-50%);color:var(--accent);pointer-events:none}.msg-row.me{justify-content:flex-end}.bubble{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;column-gap:10px;width:fit-content;min-width:0;max-width:min(680px,80%);padding:8px 12px 7px;border-radius:14px;background:var(--card);border:1px solid var(--border);touch-action:pan-y;transition:transform .12s ease}.bubble.me{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 20%,var(--card)),color-mix(in srgb,var(--accent-2) 16%,var(--card)));border-color:color-mix(in srgb,var(--accent) 34%,var(--border))}.bubble p{grid-column:1;min-width:0;margin:0;font-size:.95rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}.bubble-meta{grid-column:2;align-self:end;display:flex;align-items:center;gap:4px;font-size:.68rem;color:var(--muted);white-space:nowrap;position:relative;top:2px}.edited{font-size:.62rem;font-style:italic;opacity:.9}.msg-image.missing{width:220px;height:140px;display:grid;place-items:center;background:var(--bg-soft);color:var(--muted);font-size:.78rem;cursor:default;border-radius:10px}.bubble.has-image{display:block;padding:3px;max-width:min(340px,78%);background:var(--card)}.image-bubble{position:relative}.image-bubble img{display:block;max-width:100%;max-height:420px;border-radius:10px;cursor:zoom-in}.image-meta{position:absolute;right:8px;bottom:6px;display:flex;align-items:center;gap:4px;background:#0000008c;color:#fff;font-size:.66rem;padding:2px 7px;border-radius:99px}.image-meta .ticks{color:#fff}.image-caption{padding:7px 8px 4px;font-size:.94rem;line-height:1.4;word-break:break-word}.msg-video{display:block;max-width:100%;max-height:420px;border-radius:10px;background:#000}.bubble.has-audio,.bubble.has-file{display:block;padding:10px 10px 6px;max-width:min(340px,80%)}.audio-block{display:flex;align-items:center;gap:8px}.audio-player{display:flex;align-items:center;gap:8px;width:min(330px,74vw)}.audio-player audio{display:none}.audio-play{width:34px;height:34px;border-radius:50%;border:none;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;cursor:pointer;font-size:.62rem;flex:none}.audio-range{flex:1;min-width:0;accent-color:var(--accent)}.audio-time{font-size:.63rem;color:var(--muted);white-space:nowrap}.audio-speed{border:1px solid var(--border);background:transparent;color:var(--accent);border-radius:99px;padding:2px 7px;font-size:.66rem;cursor:pointer;flex:none}.reply-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;padding:8px 12px;border-left:3px solid var(--accent-2);background:color-mix(in srgb,var(--accent-2) 8%,var(--card));border-radius:8px}.reply-bar div{min-width:0;display:flex;flex-direction:column}.reply-bar strong{font-size:.7rem;color:var(--accent-2)}.reply-bar span{font-size:.78rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-bar button{background:none;border:none;color:var(--accent);font-size:.76rem;cursor:pointer;flex:none}.reply-quote{border-left:3px solid var(--accent);padding:4px 8px;margin-bottom:6px;border-radius:6px;background:color-mix(in srgb,var(--accent) 8%,transparent);display:flex;flex-direction:column;max-width:100%}.reply-quote strong{font-size:.7rem;color:var(--accent)}.reply-quote span{font-size:.76rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.forwarded-label{font-size:.68rem;color:var(--muted);font-style:italic;margin-bottom:4px}.bubble.has-image .reply-quote,.bubble.has-image .forwarded-label{margin:4px 4px 6px}.recording-bar{gap:10px}.rec-dot{width:10px;height:10px;border-radius:50%;background:var(--err);animation:recPulse 1s ease-in-out infinite;flex:none}.rec-time{font-variant-numeric:tabular-nums;font-size:.85rem}.rec-hint{flex:1;color:var(--muted);font-size:.8rem}@keyframes recPulse{50%{opacity:.35}}.bubble.has-audio .bubble-meta,.bubble.has-file .bubble-meta{margin-top:6px}.file-card{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--bg-soft);color:var(--text);text-decoration:none}.file-card svg{color:var(--accent);flex:none}.file-card.missing{color:var(--muted)}.file-info{flex:1;min-width:0;display:flex;flex-direction:column}.file-info strong{font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-info small{font-size:.7rem;color:var(--muted)}.file-download{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);flex:none}.muted{color:var(--muted);font-size:.82rem}.image-viewer{position:fixed;inset:0;background:#000000eb;z-index:95;display:grid;place-items:center;padding:20px}.image-viewer img{max-width:94vw;max-height:90vh;object-fit:contain;border-radius:8px}.viewer-close{position:fixed;top:16px;right:20px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:#0006;color:#fff;font-size:1.5rem;line-height:1;cursor:pointer}.image-send-modal{width:min(560px,100%);background:var(--panel);border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}.image-send-modal img{width:100%;max-height:60vh;object-fit:contain;background:#000;display:block}.image-send-bar{display:flex;gap:8px;padding:10px;border-top:1px solid var(--border)}.image-send-bar input{flex:1;min-width:0;border:1px solid var(--border);background:var(--search);color:var(--text);border-radius:10px;padding:9px 12px;outline:none;font-family:inherit;font-size:.9rem}.image-send-bar button{border:none;border-radius:10px;padding:9px 16px;background:linear-gradient(135deg,var(--accent-strong),var(--accent-2));color:#fff;font-weight:600;font-size:.85rem;cursor:pointer;flex:none}.image-send-bar button:disabled{opacity:.6}.ticks{display:inline-flex;color:var(--accent)}.bubble.is-sticker{display:flex;flex-direction:column;align-items:flex-end;width:fit-content;max-width:min(320px,70%);background:transparent!important;border:none!important;padding:0}.sticker-msg{font-size:4rem;line-height:1.05}.bubble.is-sticker .bubble-meta{background:color-mix(in srgb,var(--text) 8%,var(--bg));border-radius:99px;padding:2px 8px;width:max-content;margin-left:auto;margin-top:4px}.day-divider{display:flex;justify-content:center;margin:18px 0 10px}.day-divider span{font-size:.7rem;color:var(--muted);background:color-mix(in srgb,var(--text) 6%,var(--bg));border:1px solid var(--border);padding:3px 10px;border-radius:99px}.composer-wrap{position:relative;padding:12px clamp(16px,4vw,52px) 14px;border-top:1px solid var(--border);background:color-mix(in srgb,var(--panel) 80%,transparent)}.composer{display:flex;align-items:center;gap:2px;background:var(--card);border:1px solid var(--border);border-radius:26px;padding:6px 8px}.composer .icon-btn{width:40px;height:40px;border-radius:50%}.composer input{flex:1;border:none;background:transparent;color:var(--text);outline:none;font-family:inherit;font-size:.92rem;padding:6px;min-width:0}.send-btn{width:42px;height:42px;border-radius:50%;border:none;background:var(--bg-soft);color:var(--muted);display:grid;place-items:center;cursor:pointer;flex:none;transition:background .15s ease,transform .08s ease}.send-btn.ready{background:linear-gradient(135deg,var(--accent-strong),var(--accent-2));color:#fff;box-shadow:0 6px 18px color-mix(in srgb,var(--accent-strong) 35%,transparent)}.send-btn.ready:hover{transform:translateY(-1px)}.send-btn:disabled{cursor:default}.attach-menu{position:absolute;right:clamp(16px,4vw,52px);left:auto;bottom:calc(100% + 8px);display:flex;flex-direction:column;gap:2px;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:8px;width:240px;box-shadow:var(--shadow);z-index:22}.attach-menu button{display:flex;align-items:center;gap:12px;padding:8px 10px;border:none;background:transparent;color:var(--text);border-radius:9px;cursor:pointer;font-size:.88rem;text-align:left}.attach-menu button:hover{background:var(--hover)}.attach-icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:none;background:color-mix(in srgb,currentColor 14%,transparent)}.edit-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;padding:8px 12px;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--card));border-radius:8px}.edit-bar div{min-width:0}.edit-bar strong{display:block;font-size:.7rem;color:var(--accent);text-transform:uppercase;letter-spacing:.06em}.edit-bar span{display:block;font-size:.8rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60vw}.edit-bar button{background:transparent;border:none;color:var(--accent);font-size:.78rem;cursor:pointer;flex:none}.message-menu{position:fixed;z-index:70;min-width:195px;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:6px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:2px}.message-menu button{display:flex;align-items:center;gap:8px;text-align:left;border:none;background:transparent;color:var(--text);padding:9px 12px;border-radius:8px;font-size:.85rem;cursor:pointer}.message-menu button:hover{background:var(--hover)}.message-menu button.danger{color:var(--err)}.mobile-nav{display:none}.chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);padding:24px;gap:6px}.chat-empty-icon{width:84px;height:84px;border-radius:26px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent);margin-bottom:12px}.chat-empty h2{margin:0;color:var(--text);font-size:1.1rem}.chat-empty p{margin:0 0 14px;font-size:.85rem;max-width:40ch}.empty-view{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);padding:40px 20px;gap:6px}.empty-view h3{margin:8px 0 0;color:var(--text);font-size:.95rem}.empty-view p{margin:0;font-size:.8rem;max-width:32ch}.info{background:var(--panel);border-left:1px solid var(--border);display:flex;flex-direction:column;min-height:0;min-width:0}.info-head{display:flex;align-items:center;gap:8px;padding:14px 14px 8px}.info-head strong{font-size:.92rem}.info-body{padding:8px 22px 22px;display:flex;flex-direction:column;align-items:center;text-align:center;overflow-y:auto}.info-body h3{margin:12px 0 2px;font-size:1.05rem}.info-status{margin:0;color:var(--muted);font-size:.8rem}.info-actions{display:flex;gap:8px;margin:18px 0 6px;width:100%}.info-action{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 6px;border-radius:11px;border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;font-size:.7rem}.info-kv{width:100%;display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin:22px 0 0;text-align:left;font-size:.82rem}.info-kv dt{color:var(--muted)}.info-kv dd{margin:0}.settings-scroll{overflow-y:auto;padding:0 18px 24px;flex:1}.settings-section{padding:16px 0;border-bottom:1px solid var(--border)}.settings-section:last-of-type{border-bottom:none}.settings-section h3{margin:0 0 12px;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.profile-row{display:flex;gap:14px;align-items:center;margin-bottom:16px}.profile-avatar{width:64px;height:64px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;place-items:center;color:#071018;font-weight:700;font-size:1.2rem;flex:none}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-actions{display:flex;flex-direction:column;gap:4px}.hint{margin:0;font-size:.75rem;color:var(--muted);line-height:1.5}.hint.muted{margin-top:8px;opacity:.85}.field{display:grid;gap:6px;margin-bottom:12px}.field span{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.field input{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--search);color:var(--text);font-family:inherit;font-size:.9rem;outline:none}.field input:focus{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}.primary-btn{padding:10px 16px;border-radius:10px;border:none;background:linear-gradient(135deg,var(--accent-strong),var(--accent-2));color:#fff;font-weight:650;font-size:.85rem;cursor:pointer}.primary-btn:disabled{opacity:.6;cursor:default}.ghost-btn{padding:9px 14px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text);font-size:.85rem;cursor:pointer}.ghost-btn:hover{background:var(--hover)}.ghost-btn:disabled{opacity:.6;cursor:default}.theme-toggle{display:flex;gap:8px}.theme-toggle button{flex:1;padding:9px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;font-size:.85rem}.theme-toggle button.active{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));color:var(--text);background:color-mix(in srgb,var(--accent) 12%,transparent)}.switch-row{display:flex;justify-content:space-between;align-items:center;font-size:.88rem;padding:6px 0}.switch-row input{width:18px;height:18px;accent-color:var(--accent)}.push-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.push-row strong{display:block;font-size:.88rem}.push-row .hint{margin:3px 0 0}.push-row button{flex:none}.notice-ok{color:var(--ok);font-size:.8rem;margin:10px 0 0}.notice-err{color:var(--err);font-size:.8rem;margin:10px 0 0}.device-mini{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:6px}.device-mini li{display:flex;justify-content:space-between;gap:8px;font-size:.78rem;color:var(--muted);padding:7px 10px;border:1px solid var(--border);border-radius:9px;background:var(--card)}.badge{font-size:.68rem;color:var(--muted);border:1px solid var(--border);border-radius:99px;padding:0 7px;white-space:nowrap}.settings-kv{display:grid;grid-template-columns:auto 1fr;gap:7px 14px;margin:0 0 14px;font-size:.82rem}.settings-kv dt{color:var(--muted)}.settings-kv dd{margin:0;word-break:break-all}.logout-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:10px;border:1px solid color-mix(in srgb,var(--err) 40%,var(--border));background:transparent;color:var(--err);font-size:.85rem;cursor:pointer}.logout-btn:hover{background:color-mix(in srgb,var(--err) 8%,transparent)}.settings-footer{text-align:center;color:var(--muted);font-size:.7rem;padding:18px 0 0}.modal-backdrop{position:fixed;inset:0;background:#0000008c;display:grid;place-items:center;z-index:50;padding:20px}.modal{width:min(440px,100%);max-height:82vh;background:var(--panel);border:1px solid var(--border);border-radius:16px;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px 8px}.modal-head h2{margin:0;font-size:1.05rem}.modal-list{max-height:52vh}.head-back{display:flex;align-items:center;gap:6px}.head-back h2{margin:0}.archived-row{display:flex;align-items:center;gap:10px;margin:0 14px 8px;padding:10px 12px;border:1px solid var(--border);background:transparent;color:var(--text);border-radius:11px;cursor:pointer;font-size:.88rem}.archived-row:hover{background:var(--hover)}.archived-row svg{color:var(--muted)}.archived-count{margin-left:auto;font-size:.75rem;color:var(--muted);background:var(--hover);padding:1px 8px;border-radius:99px}.menu-overlay{position:absolute;inset:0;z-index:18}.chat-menu{position:absolute;top:58px;right:14px;z-index:19;min-width:238px;background:var(--card);border:1px solid var(--border);border-radius:13px;padding:6px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:1px}.chat-menu button{display:flex;align-items:center;gap:10px;padding:9px 11px;border:none;background:transparent;color:var(--text);border-radius:8px;cursor:pointer;font-size:.86rem;text-align:left}.chat-menu button:hover{background:var(--hover)}.chat-menu button svg{color:var(--muted);flex:none}.chat-menu button.danger{color:var(--err)}.chat-menu button.danger svg{color:var(--err)}.menu-sep{height:1px;background:var(--border);margin:5px 4px}.emoji-panel{position:absolute;left:clamp(16px,4vw,52px);bottom:calc(100% + 8px);z-index:22;width:min(370px,calc(100vw - 48px));background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:10px}.emoji-tabs{display:flex;align-items:center;gap:4px;margin-bottom:8px}.emoji-tabs button{border:none;background:transparent;color:var(--muted);padding:6px 10px;border-radius:8px;font-size:.8rem;cursor:pointer}.emoji-tabs button.active{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--text)}.emoji-tabs .panel-close{margin-left:auto;font-size:.72rem}.emoji-search{width:100%;margin-bottom:8px;padding:8px 10px;border-radius:9px;border:1px solid var(--border);background:var(--search);color:var(--text);font-family:inherit;font-size:.85rem;outline:none}.emoji-search:focus{border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}.emoji-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:2px;max-height:220px;overflow-y:auto}.emoji-grid button{font-size:1.22rem;line-height:1;padding:5px 2px;border:none;background:transparent;border-radius:8px;cursor:pointer}.emoji-grid button:hover{background:var(--hover)}.emoji-empty{margin:10px 0 2px;text-align:center;color:var(--muted);font-size:.72rem}.sticker-packs{display:flex;gap:4px;margin-bottom:8px;flex-wrap:wrap}.sticker-packs button{border:1px solid var(--border);background:transparent;color:var(--muted);padding:4px 9px;border-radius:99px;font-size:.72rem;cursor:pointer}.sticker-packs button.active{color:var(--text);border-color:color-mix(in srgb,var(--accent) 40%,var(--border));background:color-mix(in srgb,var(--accent) 12%,transparent)}.sticker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;max-height:220px;overflow-y:auto}.sticker-grid button{font-size:2.6rem;line-height:1;padding:8px;border:none;background:color-mix(in srgb,var(--text) 4%,transparent);border-radius:12px;cursor:pointer}.sticker-grid button:hover{background:var(--hover)}.blocked-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px clamp(16px,4vw,52px);border-top:1px solid var(--border);background:var(--panel);color:var(--muted);font-size:.82rem}.blocked-bar button{border:1px solid var(--border);background:transparent;color:var(--accent);border-radius:9px;padding:7px 12px;cursor:pointer;font-size:.8rem}.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%);z-index:80;background:var(--text);color:var(--bg);padding:9px 16px;border-radius:99px;font-size:.8rem;box-shadow:var(--shadow)}.messages,.chat-list,.info-body,.settings-scroll{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--muted) 40%,transparent) transparent}@media(max-width:1200px){.app.has-info{grid-template-columns:74px 342px minmax(0,1fr)}.info{position:fixed;top:0;right:0;bottom:0;width:min(342px,92vw);z-index:30;box-shadow:-24px 0 60px #00000059}}@media(max-width:900px){.app{grid-template-columns:1fr}.rail,.chat,.app.chat-open .list{display:none}.app.chat-open .chat{display:flex}.back-btn{display:grid}.bubble{max-width:90%}.bubble p{font-size:.95rem}.info{width:100%}.mobile-nav{display:flex;position:absolute;left:0;right:0;bottom:0;height:calc(60px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--panel);border-top:1px solid var(--border);z-index:45}.mobile-nav button{flex:1;min-height:60px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 0 4px;background:none;border:none;color:var(--muted);font-size:.62rem;line-height:1;cursor:pointer}.mobile-nav button svg{flex:none}.mobile-nav button.active{color:var(--accent)}.mobile-nav .rail-badge{top:6px;right:calc(50% - 20px)}.app.chat-open .mobile-nav{display:none}.list{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}.settings-scroll{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}.chat-head{padding:9px 12px;gap:8px}.chat-head-actions{gap:2px;margin-left:0;flex:none}.chat-head-actions .icon-btn{width:34px;height:34px}.chat-head-text{overflow:hidden}.chat-head-text span{font-size:.68rem}.messages{padding:14px 10px}.composer-wrap{padding:10px 10px 12px}.image-send-modal img{max-height:45vh}.msg-video{max-height:320px}.emoji-panel{max-height:46vh;overflow-y:auto}.emoji-grid,.sticker-grid{max-height:30vh}.composer-note{display:none}}:root{--bg: #0b0e12;--bg-soft: #121821;--panel: #10161d;--card: #161e27;--rail: #0a0d11;--search: #1b2430;--hover: rgba(255, 255, 255, .06);--border: #222c38;--text: #e9eff6;--muted: #94a3b8;--accent: #2dd4bf;--accent-strong: #14b8a6;--accent-2: #818cf8;--on-accent: #04211d;--ok: #34d399;--err: #f87171;--warn: #fbbf24;--shadow: 0 24px 60px rgba(0, 0, 0, .45);color-scheme:dark}:root[data-theme=light]{--bg: #f2f5f9;--bg-soft: #e8eef5;--panel: #ffffff;--card: #ffffff;--rail: #f8fafc;--search: #e9edf2;--hover: rgba(15, 23, 42, .05);--border: #e2e8f0;--text: #0f172a;--muted: #64748b;--accent: #0d9488;--accent-strong: #0f766e;--accent-2: #4f46e5;--on-accent: #ffffff;--ok: #059669;--err: #dc2626;--warn: #d97706;--shadow: 0 24px 60px rgba(15, 23, 42, .12);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;max-width:100%;overflow-x:hidden}body{margin:0;background:radial-gradient(1200px 600px at 10% -10%,rgba(94,234,212,.08),transparent 60%),radial-gradient(900px 500px at 110% 10%,rgba(129,140,248,.1),transparent 60%),var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}.shell{max-width:980px;margin:0 auto;padding:56px 24px 40px}.hero{display:flex;align-items:center;gap:18px;margin-bottom:28px}.logo{flex:none;display:grid;place-items:center;width:72px;height:72px;border-radius:22px;background:var(--card);border:1px solid var(--border)}.logo img{width:48px;height:48px;border-radius:14px;display:block}.hero h1{margin:0;font-size:2.1rem;letter-spacing:-.02em}.tagline{margin:4px 0 0;color:var(--muted);font-size:1rem;max-width:60ch}.status-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px}.pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;border:1px solid var(--border);background:var(--bg-soft);font-size:.82rem;color:var(--text)}.pill-muted{color:var(--muted)}.pill-ok{border-color:#34d39959}.pill-err{border-color:#f8717166}.dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.pill-ok .dot{background:var(--ok);box-shadow:0 0 0 4px #34d39926}.pill-err .dot{background:var(--err)}.pill-wait .dot{background:var(--warn);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.35}}.alert{padding:12px 16px;border-radius:12px;border:1px solid rgba(248,113,113,.35);background:#f8717114;color:#fecaca;font-size:.9rem}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;margin-top:22px}.card{background:linear-gradient(180deg,rgba(255,255,255,.02),transparent),var(--card);border:1px solid var(--border);border-radius:18px;padding:24px}.card h2{margin:0 0 12px;font-size:1.05rem;letter-spacing:.01em}.card p{margin:0 0 14px;color:var(--muted);font-size:.94rem}.feature-list{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px}.feature-list li{display:flex;align-items:center;gap:10px;font-size:.92rem;color:var(--text)}.check{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;border:1px solid var(--border);color:var(--muted);font-size:.75rem;flex:none}.check.on{border-color:#34d39980;color:var(--ok);background:#34d3991a}.badge{margin-left:auto;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border:1px solid var(--border);padding:2px 8px;border-radius:999px}.principles{margin:0;padding-left:18px;display:grid;gap:12px;color:var(--muted);font-size:.92rem}.principles strong{color:var(--text)}.hint{margin-top:20px!important;font-size:.82rem!important}code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86em;background:#ffffff0f;border:1px solid var(--border);border-radius:6px;padding:1px 6px}.form{display:grid;gap:10px;margin-top:8px}.form label{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}.form input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--bg-soft);color:var(--text);font-size:1rem;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.form input:focus{border-color:#5eead48c;box-shadow:0 0 0 3px #5eead41f}.btn{margin-top:6px;padding:12px 16px;border-radius:12px;border:1px solid transparent;background:linear-gradient(135deg,#5eead4,#818cf8);color:#071018;font-weight:650;font-size:.95rem;font-family:inherit;cursor:pointer;transition:transform .08s ease,opacity .15s ease}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:default}.btn-ghost{background:transparent;color:var(--text);border-color:var(--border);font-weight:500}.tabs{display:flex;gap:8px;margin:4px 0 14px}.tabs button{flex:1;padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--muted);font-family:inherit;font-size:.85rem;cursor:pointer}.tabs button.active{background:#5eead41a;border-color:#5eead466;color:var(--text)}.devcode{margin:0 0 6px!important;padding:10px 12px;border-radius:10px;border:1px dashed rgba(94,234,212,.45);background:#5eead40f;color:var(--text)!important;font-size:.9rem!important}.devcode strong{color:var(--accent);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.1rem;letter-spacing:.14em}.alert{margin-top:14px}.kv{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0 0 16px;font-size:.9rem}.kv dt{color:var(--muted)}.kv dd{margin:0}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;word-break:break-all}.device-list{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:8px}.device-list li{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-soft);font-size:.9rem}.device-icon{color:var(--accent)}.login-wrap{max-width:420px;margin:8px auto 0}.boot{height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--bg);color:var(--muted);font-size:.9rem}.boot-logo{width:58px;height:58px;border-radius:18px;background:linear-gradient(135deg,#5eead4,#818cf8);color:#071018;font-weight:800;font-size:1.5rem;display:grid;place-items:center;animation:bootPulse 1.4s ease-in-out infinite}@keyframes bootPulse{50%{transform:scale(.94);opacity:.75}}.footer{margin-top:36px;text-align:center;color:var(--muted);font-size:.8rem}@media(max-width:560px){.shell{padding:32px 16px 28px}.hero h1{font-size:1.7rem}.logo{width:60px;height:60px}}
