:root{--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--sal: env(safe-area-inset-left, 0px);--sar: env(safe-area-inset-right, 0px);--color-primary: #2AABEE;--color-primary-dark: #1D96D1;--color-bg-primary: #FFFFFF;--color-bg-secondary: #F4F4F5;--color-bg-tertiary: #EFEFF4;--color-bg-chat: #E5DDD5;--color-bubble-out: #EFFDDE;--color-bubble-in: #FFFFFF;--color-text-primary: #000000;--color-text-secondary: #707579;--color-text-hint: #999999;--color-divider: #DADCE0;--color-unread: #2AABEE;--color-danger: #DC3545;--color-online: #0AC630;--color-mention: #FFF176;--color-mention-bg: #3D3100;--color-border: var(--color-divider);--color-accent: var(--color-primary);--color-accent-hover: var(--color-primary-dark);--color-header-bg: var(--color-bg-primary);--color-hover: rgba(0, 0, 0, .04);--tg-bg: var(--color-bg-secondary);--tg-bg-secondary: var(--color-bg-primary);--tg-bg-tertiary: var(--color-bg-secondary);--tg-text: var(--color-text-primary);--tg-text-secondary: var(--color-text-secondary);--tg-hint: var(--color-text-secondary);--tg-accent: var(--color-primary);--tg-accent-hover: var(--color-primary-dark);--tg-green: var(--color-online);--tg-red: var(--color-danger);--tg-border: var(--color-divider);--tg-bubble-out: var(--color-bubble-out);--tg-bubble-in: var(--color-bubble-in);--tg-chat-bg: var(--color-bg-chat);--tg-link: var(--color-primary);--app-gap: 12px;--app-padding-x: 16px;--app-padding-y: 12px;--icon-size: 24px;--icon-size-sm: 20px;--touch-min: 44px;--avatar-list: 54px;--avatar-header: 36px;--sidebar-width: 360px;--sidebar-min: 300px}[data-theme=dark]{--color-bg-primary: #212121;--color-bg-secondary: #181818;--color-bg-tertiary: #0E0E0E;--color-bg-chat: #0E0E0E;--color-bubble-out: #2B5278;--color-bubble-in: #182533;--color-text-primary: #FFFFFF;--color-text-secondary: #AAAAAA;--color-text-hint: #666666;--color-divider: #2B2B2B;--color-border: #2B2B2B;--color-danger: #FF6B6B;--color-mention: #FFF176;--color-mention-bg: #3D3100;--color-header-bg: #212121;--color-hover: rgba(255, 255, 255, .06)}*{margin:0;padding:0;box-sizing:border-box}html{font-size:clamp(14px,2.2vw + 10px,16px);-webkit-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;background:var(--color-bg-primary);color:var(--color-text-primary);min-height:100vh;min-height:100dvh;overflow:hidden;font-size:1rem;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.display-title{font-size:24px;font-weight:700;color:var(--color-text-primary)}.section-header{font-size:17px;font-weight:600;color:var(--color-text-primary)}.message-body{font-size:14px;font-weight:400;color:var(--color-text-primary)}.caption{font-size:12px;font-weight:400;color:var(--color-text-secondary)}.micro{font-size:11px;font-weight:400;color:var(--color-text-secondary)}.button-text{font-size:14px;font-weight:500}[data-theme=dark],.dark{--color-bg-primary: #0e0e0e;--color-bg-secondary: #1a1a1a;--color-bg-tertiary: #242424;--color-bg-elevated: #2a2a2a;--color-bg-overlay: rgba(0, 0, 0, .7);--color-bg-modal: #1e1e1e;--color-bg-input: #2a2a2a;--color-bg-hover: rgba(255, 255, 255, .05);--color-bg-active: rgba(255, 255, 255, .08);--color-bg-selected: rgba(42, 171, 238, .15);--color-text-primary: #e8e8e8;--color-text-secondary: #8a8a8a;--color-text-tertiary: #5a5a5a;--color-text-muted: #4a4a4a;--color-text-link: #2aabee;--color-text-inverse: #0e0e0e;--color-text-on-accent: #ffffff;--color-border: #2a2a2a;--color-border-light: #222222;--color-border-strong: #3a3a3a;--color-divider: #1e1e1e;--color-accent: #2aabee;--color-accent-hover: #33bbff;--color-accent-active: #1a9bde;--color-primary: #2aabee;--color-primary-hover: #33bbff;--color-online: #4caf50;--color-danger: #f44336;--color-warning: #ff9800;--color-success: #4caf50;--color-info: #2196f3;--color-bubble-out: #2b5278;--color-bubble-out-text: #ffffff;--color-bubble-in: #232323;--color-bubble-in-text: #e8e8e8;--color-bubble-out-hover: #1e3d5e;--color-bubble-in-hover: #2a2a2a;--color-input-bg: #2a2a2a;--color-input-border: #3a3a3a;--color-input-border-focus: #2aabee;--color-input-placeholder: #5a5a5a;--color-scrollbar-thumb: #3a3a3a;--color-scrollbar-thumb-hover: #4a4a4a;--color-scrollbar-track: transparent;--shadow-sm: 0 1px 4px rgba(0, 0, 0, .4);--shadow-md: 0 4px 16px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .6);--shadow-modal: 0 16px 48px rgba(0, 0, 0, .7);--color-story-border: linear-gradient(135deg, #2aabee, #4caf50);--color-story-seen-border: #3a3a3a;--color-skeleton-base: #1e1e1e;--color-skeleton-highlight: #2a2a2a;--color-context-bg: #2a2a2a;--color-context-border: #3a3a3a;--color-context-hover: #333333;--color-emoji-bg: #1a1a1a;--color-emoji-border: #2a2a2a;--color-emoji-hover: #2a2a2a;--color-emoji-search-bg: #2a2a2a}[data-theme=dark] body,.dark body{background-color:var(--color-bg-primary);color:var(--color-text-primary)}[data-theme=dark] ::selection,.dark ::selection{background-color:rgba(42,171,238,.3);color:var(--color-text-primary)}[data-theme=dark] ::-webkit-scrollbar,.dark ::-webkit-scrollbar{width:6px;height:6px}[data-theme=dark] ::-webkit-scrollbar-track,.dark ::-webkit-scrollbar-track{background:var(--color-scrollbar-track)}[data-theme=dark] ::-webkit-scrollbar-thumb,.dark ::-webkit-scrollbar-thumb{background-color:var(--color-scrollbar-thumb);border-radius:3px}[data-theme=dark] ::-webkit-scrollbar-thumb:hover,.dark ::-webkit-scrollbar-thumb:hover{background-color:var(--color-scrollbar-thumb-hover)}[data-theme=dark] input:-webkit-autofill,.dark input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--color-input-bg) inset!important;-webkit-text-fill-color:var(--color-text-primary)!important;caret-color:var(--color-text-primary)}[data-theme=dark] code,[data-theme=dark] pre,.dark code,.dark pre{background-color:#1e1e1e;color:#ce9178;border:1px solid var(--color-border)}[data-theme=dark] img:not(.no-dim),.dark img:not(.no-dim){filter:brightness(.9)}[data-theme=dark] img:hover:not(.no-dim),.dark img:hover:not(.no-dim){filter:brightness(1)}@keyframes skeleton-dark{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}[data-theme=dark] .skeleton,.dark .skeleton{background:linear-gradient(90deg,var(--color-skeleton-base) 25%,var(--color-skeleton-highlight) 50%,var(--color-skeleton-base) 75%);background-size:200px 100%;animation:skeleton-dark 1.5s infinite}[data-theme=dark] *,.dark *{transition:background-color .2s ease,color .1s ease,border-color .2s ease}[data-theme=dark] img,[data-theme=dark] svg,.dark img,.dark svg{transition:filter .2s ease}.app{display:flex;height:100vh;height:100dvh;max-width:1400px;margin:0 auto;width:100%}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-min);max-width:var(--sidebar-width);flex-shrink:0;background:var(--color-bg-secondary);border-right:1px solid var(--color-divider);display:flex;flex-direction:column;position:relative;overflow:hidden;padding-top:env(safe-area-inset-top,0px)}.sidebar-header{padding:var(--app-padding-y) var(--app-padding-x);border-bottom:1px solid var(--color-divider);display:flex;align-items:center;gap:var(--app-gap);min-height:var(--touch-min);min-height:max(var(--touch-min),56px);min-width:0;flex-shrink:0}.sidebar-header.tz-header{flex-wrap:nowrap}.sidebar-header h1{font-size:clamp(15px,4vw,17px);font-weight:600;color:var(--color-text-primary);flex-shrink:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-header .menu-btn{background:transparent;border:none;color:var(--color-text-primary);padding:.5rem;cursor:pointer;border-radius:8px;width:var(--touch-min);height:var(--touch-min);min-width:var(--touch-min);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:var(--icon-size)}.sidebar-header .menu-btn:hover{background:var(--color-bg-secondary)}.sidebar-search-wrap{flex:1;min-width:0;max-width:100%;display:flex;align-items:center;gap:8px;transition:width .2s ease;overflow:hidden}.sidebar-search-wrap input{flex:1;min-width:0;max-width:100%;padding:.5rem 1rem;background:var(--color-bg-secondary);border:none;border-radius:20px;color:var(--color-text-primary);font-size:1rem}.sidebar-search-wrap input::placeholder{color:var(--color-text-secondary)}.sidebar-search-wrap input:focus{outline:none}.sidebar-search-wrap .search-cancel{flex-shrink:0;background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:14px}.chat-tabs{display:flex;gap:4px;padding:.5rem var(--app-padding-x);overflow-x:auto;border-bottom:1px solid var(--color-divider);-webkit-overflow-scrolling:touch}.chat-tab{flex-shrink:0;padding:.6rem 1rem;border-radius:100px;background:transparent;border:none;color:var(--color-text-secondary);font-size:clamp(13px,2vw,14px);font-weight:500;cursor:pointer;min-height:var(--touch-min);display:inline-flex;align-items:center}.chat-tab:hover{color:var(--color-text-primary)}.chat-tab.active{background:var(--color-primary);color:#fff}.chat-tab-badge{margin-left:6px;font-size:11px;opacity:.9}.fab-write{position:absolute;right:max(var(--app-padding-x),env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));width:clamp(48px,12vw,56px);height:clamp(48px,12vw,56px);border-radius:50%;background:var(--color-primary);color:#fff;border:none;font-size:clamp(20px,5vw,24px);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(44,165,224,.4);min-width:var(--touch-min);min-height:var(--touch-min)}.fab-write:hover{background:var(--color-primary-dark)}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.4);z-index:8}.drawer{position:fixed;top:0;left:0;width:min(360px,85vw);height:100vh;height:100dvh;background:var(--color-bg-secondary);z-index:9;transform:translate(-100%);transition:transform .25s ease-in-out;display:flex;flex-direction:column;border-right:1px solid var(--color-divider);padding-left:env(safe-area-inset-left,0px);padding-top:env(safe-area-inset-top,0px)}.drawer-open{transform:translate(0)}.drawer-header{padding:clamp(16px,4vw,24px) var(--app-padding-x);background:linear-gradient(180deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:#fff}.drawer-avatar{width:clamp(56px,18vw,72px);height:clamp(56px,18vw,72px);border-radius:50%;background:rgba(255,255,255,.3);color:#fff;display:flex;align-items:center;justify-content:center;font-size:clamp(22px,6vw,28px);font-weight:600;cursor:pointer;overflow:hidden;min-width:var(--touch-min);min-height:var(--touch-min)}.drawer-avatar img{width:100%;height:100%;object-fit:cover}.drawer-name{font-size:clamp(16px,4vw,18px);font-weight:700;margin-top:.75rem}.drawer-username{opacity:.85;margin-top:2px;font-size:clamp(13px,2vw,14px)}.drawer-nav{padding:.5rem 0}.drawer-nav button{width:100%;padding:.75rem var(--app-padding-x);min-height:var(--touch-min);text-align:left;background:none;border:none;color:var(--color-text-primary);font-size:clamp(14px,2vw,15px);cursor:pointer;display:flex;align-items:center;gap:var(--app-gap)}.drawer-nav button:hover{background:rgba(44,165,224,.1)}.swipe-back-zone{position:relative;width:100%;height:100%}.swipe-back-edge{position:absolute;left:0;top:0;bottom:0;width:24px;pointer-events:none}.profile-page{display:flex;flex-direction:column;height:100%;overflow-y:auto;background:var(--color-bg-primary);padding:16px}.tz-menu-btn{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:8px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .15s}.tz-menu-btn:hover{background:var(--color-hover)}.chat-list{flex:1;overflow-y:auto}.chat-item-swipe{overflow:hidden;touch-action:pan-y;border-bottom:1px solid var(--color-divider)}.chat-item-swipe-track{display:flex;width:100%;transition:transform .2s ease-out;will-change:transform}.chat-item-swipe-track.dragging{transition:none}.chat-item-swipe-track:has(.chat-item-delete-strip){width:calc(100% + 72px)}.chat-item{display:flex;align-items:center;min-height:max(72px,var(--touch-min) + 16px);padding:0 var(--app-padding-x);cursor:pointer;gap:var(--app-gap);transition:background .15s;position:relative;flex:1 1 0;min-width:0;box-sizing:border-box}.chat-item:hover{background:var(--color-bg-secondary)}.chat-item.active{background:rgba(44,165,224,.08)}.chat-item .avatar{width:var(--avatar-list);height:var(--avatar-list);min-width:var(--avatar-list);min-height:var(--avatar-list);border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:clamp(16px,4vw,18px);flex-shrink:0}.chat-item .avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.chat-item .info{flex:1;min-width:0}.chat-item .name{font-weight:500;font-size:15px;color:var(--tg-text)}.chat-item .preview{color:var(--tg-text-secondary);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-item-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0;position:relative}.chat-item .meta{font-size:12px;color:var(--tg-hint)}.chat-item-delete-x{display:none;position:absolute;right:0;top:0;width:28px;height:28px;padding:0;border:none;border-radius:50%;background:var(--color-bg-secondary);color:var(--tg-hint);font-size:18px;line-height:1;cursor:pointer;align-items:center;justify-content:center}.chat-item-delete-x:hover{background:var(--tg-red, #e53935);color:#fff}@media (hover: hover){.chat-item-delete-x{display:flex;opacity:0}.chat-item:hover .chat-item-delete-x{opacity:1}}@media (display-mode: standalone){.chat-item-delete-x{display:none!important}}.chat-item-delete-strip{flex-shrink:0;width:72px;min-height:max(72px,var(--touch-min) + 16px);display:flex;align-items:center;justify-content:center;background:var(--tg-red, #e53935);color:#fff;border:none;font-size:14px;font-weight:500;cursor:pointer;padding:0 8px}.chat-item-delete-strip:hover{filter:brightness(1.05)}.chat-item-delete-strip:active{filter:brightness(.95)}.chat-unread-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;font-size:12px;font-weight:500;color:#fff;background:var(--color-unread);border-radius:10px}.chat-panel{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--color-bg-chat);position:relative;z-index:1}.chat-panel>*{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.chat-header{flex:0 0 auto;min-height:max(56px,var(--touch-min));padding:var(--app-padding-y) var(--app-padding-x);border-bottom:1px solid var(--color-divider);background:var(--color-bg-secondary);display:flex;align-items:center;gap:var(--app-gap);z-index:10}.chat-header .back-btn{display:none;background:var(--color-bg-secondary);border:none;color:var(--color-text-primary);padding:0;cursor:pointer;border-radius:50%;width:var(--touch-min);height:var(--touch-min);min-width:var(--touch-min);min-height:var(--touch-min);align-items:center;justify-content:center}.chat-header .avatar{width:var(--avatar-header);height:var(--avatar-header);min-width:var(--avatar-header);min-height:var(--avatar-header);border-radius:50%;background:var(--color-primary);color:#fff;flex-shrink:0}.chat-header .avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.chat-header-titles{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.chat-header .title{font-weight:600;font-size:clamp(15px,4vw,17px);color:var(--color-text-primary)}.chat-header .typing-indicator{font-size:1rem;color:var(--color-primary);font-weight:400;font-style:italic}.chat-header .actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.chat-header .actions button{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:var(--icon-size);padding:4px;min-width:var(--touch-min);min-height:var(--touch-min);display:inline-flex;align-items:center;justify-content:center}.chat-header .call-action-btn{display:flex;align-items:center;justify-content:center;min-width:var(--touch-min);min-height:var(--touch-min);padding:6px;background:none;border:none;border-radius:50%;color:var(--color-primary);cursor:pointer}.chat-header .call-action-btn:hover{background:var(--color-bg-secondary);color:var(--color-primary-dark)}.chat-header .call-action-btn svg{flex-shrink:0}.emoji-picker{display:flex;flex-wrap:wrap;gap:4px;padding:.5rem 0;border-bottom:1px solid var(--tg-border);margin-bottom:8px;background:var(--tg-bg-tertiary)}.emoji-picker .emoji-btn{width:clamp(32px,8vw,40px);height:clamp(32px,8vw,40px);min-width:36px;min-height:36px;padding:0;font-size:clamp(18px,4vw,20px);background:var(--tg-bg-secondary);border:none;border-radius:8px;cursor:pointer}.emoji-picker .emoji-btn:hover{background:var(--tg-border)}.input-area.input-focused{box-shadow:inset 0 0 0 2px var(--tg-accent)}.input-area .emoji-trigger{width:var(--touch-min);height:var(--touch-min);min-width:var(--touch-min);min-height:var(--touch-min);background:var(--tg-bg-tertiary);border-radius:50%;font-size:var(--icon-size-sm);cursor:pointer;color:var(--tg-text);display:flex;align-items:center;justify-content:center}.input-area .emoji-trigger:hover{background:var(--tg-border)}.chat-list-filters{display:flex;gap:0;padding:4px 8px;border-bottom:1px solid var(--color-divider)}.chat-filter-btn{flex:1;padding:6px 4px;background:none;border:none;border-radius:16px;font-size:12px;font-weight:500;cursor:pointer;color:var(--color-text-secondary);transition:all .15s}.chat-filter-btn.active{background:var(--color-accent);color:#fff}.unread-badge.muted{background:var(--color-text-secondary)}.message-forward-header{font-size:12px;color:var(--color-accent);font-weight:600;margin-bottom:4px}.chat-list-inner{display:flex;flex-direction:column}.chat-list .chat-list-inner{height:100%;overflow-y:auto}.chat-item-top{display:flex;align-items:baseline;justify-content:space-between;gap:4px;margin-bottom:2px}.chat-item-meta{display:flex;align-items:center;gap:3px;flex-shrink:0}.chat-tick{font-size:12px;color:var(--color-text-secondary, #707579)}.chat-tick.read{color:var(--color-accent, #2AABEE)}.chat-item-bottom{display:flex;align-items:center;justify-content:space-between;gap:4px}.preview-sender{color:var(--color-accent, #2AABEE);font-weight:500}.draft-preview{color:var(--color-danger, #E53935);font-weight:500}.chat-preview{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:14px;color:var(--color-text-secondary, #707579)}.chat-name{font-weight:600;font-size:15px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1}.chat-time{font-size:12px;color:var(--color-text-secondary, #707579);flex-shrink:0}.unread-badge{background:var(--color-accent, #2AABEE);color:#fff;border-radius:50px;padding:1px 6px;font-size:12px;font-weight:700;min-width:20px;text-align:center;flex-shrink:0}.unread-badge.muted{background:var(--color-text-secondary, #707579)}.online-dot{position:absolute;bottom:2px;right:2px;width:10px;height:10px;background:#4caf50;border-radius:50%;border:2px solid var(--color-bg-primary, #fff)}.chat-context-menu{position:fixed;background:var(--color-bg-primary, #fff);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 4px 20px rgba(0,0,0,.15);z-index:999;min-width:160px;overflow:hidden}.chat-context-menu button{display:block;width:100%;text-align:left;padding:10px 14px;background:none;border:none;cursor:pointer;font-size:14px}.chat-context-menu button:hover{background:var(--color-hover)}.chat-context-menu button.danger,.chat-context-menu .context-menu-danger{color:var(--color-danger, #E53935)}.chat-header-subtitle{font-size:13px;color:var(--color-text-secondary);font-weight:400;line-height:1.2}.chat-header-subtitle.online{color:var(--color-online, #4CAF50)}.archived-chats-header{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-divider);cursor:pointer;transition:background .1s}.archived-chats-header:hover{background:var(--color-hover, rgba(0,0,0,.04))}.archived-icon{font-size:18px;color:var(--color-text-secondary)}.archived-label{font-size:15px;font-weight:500;color:var(--color-text-secondary);flex:1}.archived-count{font-size:13px;color:var(--color-text-secondary)}.folder-tabs-wrap{display:flex;align-items:center;gap:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.folder-tabs-wrap::-webkit-scrollbar{display:none}.folder-tab-add{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:1px dashed var(--color-border);border-radius:50%;cursor:pointer;color:var(--color-text-secondary);font-size:16px;margin-left:4px;transition:all .15s}.folder-tab-add:hover{background:var(--color-bg-secondary);color:var(--color-accent);border-color:var(--color-accent)}.messages{flex:1;min-height:0;overflow-y:auto;padding:clamp(12px,3vw,16px);display:flex;flex-direction:column;gap:4px;background:var(--chat-wallpaper, var(--color-bg-chat));-webkit-overflow-scrolling:touch}.message-date-divider{align-self:center;padding:6px 12px;border-radius:100px;background:rgba(0,0,0,.15);color:var(--color-text-primary);font-size:12px;margin:8px 0}[data-theme=dark] .message-date-divider{background:var(--color-bg-secondary)}.unread-divider{display:flex;align-items:center;gap:12px;margin:12px 0;width:100%}.unread-divider:before,.unread-divider:after{content:"";flex:1;height:1px;background:var(--color-primary, #2CA5E0)}.unread-divider span{flex-shrink:0;font-size:13px;font-weight:500;color:var(--color-primary, #2CA5E0);white-space:nowrap}.message{max-width:75%;max-width:min(480px,75%);padding:8px 12px;border-radius:12px;font-size:14px;line-height:1.4;position:relative}.message.sent{align-self:flex-end;background:var(--color-bubble-out);color:var(--color-text-primary);border-radius:12px 12px 0}.message.received{align-self:flex-start;background:var(--color-bubble-in);color:var(--color-text-primary);border-radius:12px 12px 12px 0}.message .time{font-size:11px;color:var(--color-text-secondary);margin-top:2px;display:flex;align-items:center;justify-content:flex-end;gap:2px}.msg-check-icon{flex-shrink:0;display:inline-flex;align-items:center}.msg-check-sent path{stroke:var(--color-text-secondary, #999)}.msg-check-read path{stroke:var(--color-accent, #2AABEE)}.message.media img{max-width:min(100%,280px);max-height:240px;object-fit:contain;border-radius:8px;cursor:pointer;display:block}.message.media video{max-width:min(100%,280px);max-height:240px;border-radius:8px;display:block}.message.media .file{display:flex;align-items:center;gap:8px;padding:8px}.message-row-group{display:flex;align-items:flex-end;gap:8px;width:100%;margin-bottom:2px}.message-avatar-btn{flex-shrink:0;padding:0;border:none;background:none;cursor:pointer;border-radius:50%;display:block}.message-avatar{width:32px;height:32px;min-width:32px;min-height:32px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;overflow:hidden}.message-avatar img{width:100%;height:100%;object-fit:cover}.message-bubble-wrap{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start}.message-sender-name{font-size:13px;font-weight:500;color:var(--color-primary);margin-bottom:2px;padding-left:2px}.message-row-sent{display:flex;justify-content:flex-end;width:100%}.message-context-menu{position:fixed;z-index:200;min-width:160px;padding:6px 0;background:var(--color-bg-primary);border:1px solid var(--color-divider);border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,.2);display:flex;flex-direction:column;transform:translate(-50%,-100%);margin-top:-8px;max-height:calc(100vh - 24px);overflow-y:auto;-webkit-overflow-scrolling:touch}@media (max-width: 390px){.message-context-menu{min-width:140px;max-width:calc(100vw - 16px);font-size:14px}}.message-context-menu button{display:block;width:100%;padding:10px 16px;text-align:left;border:none;background:none;color:var(--color-text-primary);font-size:15px;cursor:pointer;white-space:nowrap}.message-context-menu button:hover{background:var(--color-bg-secondary)}.message-context-menu button.message-menu-delete{color:var(--tg-red, #e53935)}.reply-preview{display:flex;align-items:center;gap:8px;padding:8px 12px;margin:0 var(--app-padding-x) 8px;background:var(--color-bg-secondary);border-left:3px solid var(--color-primary);border-radius:8px;font-size:13px}.reply-preview-label{color:var(--color-primary);font-weight:500;flex-shrink:0}.reply-preview-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-secondary)}.reply-preview-close{flex-shrink:0;width:24px;height:24px;padding:0;border:none;background:none;color:var(--color-text-secondary);font-size:18px;cursor:pointer;line-height:1;border-radius:4px}.reply-preview-close:hover{background:var(--color-bg-primary);color:var(--color-text-primary)}.reply-preview-in-bubble{display:block;width:100%;text-align:left;padding:6px 10px;margin:0 0 6px;background:rgba(0,0,0,.06);border-left:3px solid var(--color-primary);border-radius:6px;font-size:12px;cursor:pointer;border-top:none;border-right:none;border-bottom:none}.reply-preview-in-bubble:hover{background:rgba(0,0,0,.1)}.reply-preview-in-bubble .reply-preview-label{margin-right:6px}.reply-preview-in-bubble .reply-preview-text{display:inline}.msg-code{font-family:Consolas,Courier New,monospace;background:rgba(0,0,0,.08);border-radius:4px;padding:1px 5px;font-size:.9em;word-break:break-all}[data-theme=dark] .msg-code{background:rgba(255,255,255,.12)}.msg-spoiler{background:currentColor;border-radius:3px;padding:0 3px;cursor:pointer;user-select:none;transition:background .2s;filter:blur(4px)}.msg-spoiler.revealed{filter:none;background:rgba(0,0,0,.06)}.msg-link{color:var(--color-accent, #2AABEE);text-decoration:underline;word-break:break-all}.bubble-own .msg-link{color:rgba(0,0,0,.7)}[data-theme=dark] .bubble-own .msg-link{color:rgba(255,255,255,.8)}.mobile-bottom-nav{display:none}.mobile-bottom-nav.nav-hidden-chat{display:none!important;visibility:hidden!important;pointer-events:none!important;height:0!important;overflow:hidden!important;opacity:0!important;position:fixed!important;bottom:-200px!important}@media (max-width: 767px){.mobile-bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:calc(56px + env(safe-area-inset-bottom,0px));background:var(--color-bg-primary, #fff);border-top:1px solid var(--color-border, #DADCE0);z-index:110;padding-bottom:env(safe-area-inset-bottom,0px);align-items:center;justify-content:space-around}.mobile-bottom-nav button{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;cursor:pointer;font-size:10px;color:var(--color-text-secondary, #707579);padding:6px 12px;border-radius:8px;min-width:60px;-webkit-tap-highlight-color:transparent;position:relative;z-index:1}.mobile-bottom-nav button .nav-icon{font-size:22px}.mobile-bottom-nav button.active{color:var(--color-accent, #2AABEE)}.mobile-bottom-nav.nav-hidden-chat{display:none!important;visibility:hidden!important;height:0!important;overflow:hidden!important;position:fixed!important;bottom:-200px!important}}@media (max-width: 768px){.chat-panel.active~.mobile-bottom-nav,.app:has(.chat-panel.active) .mobile-bottom-nav{display:none!important;visibility:hidden!important;height:0!important;overflow:hidden!important;pointer-events:none;position:fixed!important;bottom:-200px!important}}.voice-msg audio{max-width:220px;height:36px;border-radius:20px}audio::-webkit-media-controls-panel{background:transparent}.message-tick-read{color:var(--color-accent, #2AABEE)}.message-tick-sent{opacity:.6}@media (max-width: 767px){.fab-write{bottom:calc(120px + env(safe-area-inset-bottom,0px))!important;right:16px!important;z-index:100;pointer-events:auto;width:52px!important;height:52px!important}.chat-list{padding-bottom:calc(200px + env(safe-area-inset-bottom,0px))!important}.sidebar-overlay-panel{padding-bottom:calc(60px + env(safe-area-inset-bottom,0px))}.sidebar-overlay-panel>*{height:100%;overflow-y:auto}}.input-area{flex:0 0 auto;padding:var(--app-padding-y) var(--app-padding-x);padding-bottom:max(var(--app-padding-y),env(safe-area-inset-bottom));border-top:1px solid var(--color-divider);background:var(--color-bg-secondary);position:relative}.input-area form{display:flex;gap:6px;align-items:center}.input-area form input[type=text]{flex:1;min-width:0}.input-area form .attach-btn{flex-shrink:0;width:var(--touch-min);height:var(--touch-min);min-width:var(--touch-min);min-height:var(--touch-min);border-radius:50%;background:var(--tg-bg-tertiary);border:none;color:var(--tg-text-secondary);font-size:var(--icon-size-sm);display:flex;align-items:center;justify-content:center;cursor:pointer}.input-area form .attach-btn:hover{background:var(--tg-border);color:var(--tg-text)}.input-area form .attach-btn:disabled{opacity:.5;cursor:not-allowed}.voice-recorder{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--color-bg-secondary, #F4F4F5);border-radius:24px;margin:0 8px 8px;animation:slideUp .2s ease}[data-theme=dark] .voice-recorder{background:var(--color-bg-secondary, #2B2B2B)}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:none;opacity:1}}.voice-cancel-btn{background:none;border:none;cursor:pointer;color:var(--color-text-secondary, #707579);font-size:18px;padding:4px;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.voice-rec-dot{color:#e53935;font-size:14px;animation:blink 1s step-start infinite}@keyframes blink{50%{opacity:0}}.voice-waveform{flex:1;height:36px;border-radius:4px}.voice-timer{font-size:14px;font-variant-numeric:tabular-nums;color:var(--color-text-secondary, #707579);min-width:40px;text-align:center}.voice-stop-btn{background:#e53935;border:none;cursor:pointer;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px}.voice-preview-audio{max-width:200px;height:36px;border-radius:20px}.voice-send-btn{background:var(--color-accent, #2AABEE);border:none;cursor:pointer;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center}.voice-msg-btn{opacity:.7}.voice-msg-btn:hover{opacity:1}.link-preview-card{border:1px solid var(--color-border, #DADCE0);border-radius:10px;overflow:hidden;margin-top:6px;background:var(--color-bg-secondary, #F4F4F5);cursor:pointer;transition:opacity .15s;max-width:340px}.link-preview-card:hover{opacity:.85}.link-preview-card img{width:100%;max-height:140px;object-fit:cover;display:block}.link-preview-body{padding:8px 10px}.link-preview-domain{font-size:11px;color:var(--color-accent, #2AABEE);margin-bottom:3px}.link-preview-title{font-size:13px;font-weight:600;margin-bottom:3px;line-height:1.3}.link-preview-desc{font-size:12px;color:var(--color-text-secondary, #707579);line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.saved-msg-row:hover{background:var(--color-hover, rgba(0,0,0,.04))}.msg-read-status{margin-left:3px;font-size:13px}.attach-btn svg,.emoji-trigger svg,.voice-msg-btn svg{display:block;width:20px;height:20px}.mobile-bottom-nav button svg{display:block;width:24px;height:24px}.mobile-bottom-nav button .nav-icon{display:flex;align-items:center;justify-content:center;height:24px}@keyframes spin-icon{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin-icon{animation:spin-icon 1s linear infinite}.voice-msg-player{display:flex;align-items:center;gap:8px;min-width:200px}.voice-msg-player audio{flex:1;min-width:0}.voice-msg-duration{font-size:12px;color:var(--color-text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.schedule-btn{opacity:.7;transition:opacity .15s}.schedule-btn:hover{opacity:1}.schedule-modal h3{font-size:16px;font-weight:600;color:var(--color-text-primary)}.schedule-modal input[type=date],.schedule-modal input[type=time]{font-family:inherit;box-sizing:border-box}.schedule-modal input[type=date]:focus,.schedule-modal input[type=time]:focus{outline:none;border-color:var(--color-accent, #2AABEE)}.attach-menu-dropdown button:hover{background:var(--color-hover, rgba(0,0,0,.04))!important}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:100;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.modal-content{background:var(--color-bg-primary);padding:clamp(16px,4vw,24px);border-radius:clamp(12px,3vw,16px);max-width:min(400px,92vw);width:90%;border:1px solid var(--color-divider);color:var(--color-text-primary);max-height:90vh;overflow-y:auto}.modal-content h3{margin-bottom:12px;color:var(--color-text-primary);font-size:clamp(1rem,3vw,1.125rem)}.modal-content button{padding:.6rem 1.25rem;min-height:var(--touch-min);background:var(--color-primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem}.modal-content button:hover{background:var(--color-primary-dark)}.modal-close-btn{background:none;border:none;font-size:var(--icon-size);cursor:pointer;color:var(--color-text-secondary);padding:4px;min-width:var(--touch-min);min-height:var(--touch-min);display:inline-flex;align-items:center;justify-content:center}.profile-modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}.profile-modal-actions .profile-action-btn{flex:unset;min-width:0;width:100%;padding:.65rem .5rem;min-height:var(--touch-min);border-radius:12px;border:none;cursor:pointer;font-size:.875rem;font-weight:500;background:var(--color-bg-secondary);color:var(--color-text-primary);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box}.profile-modal-actions .profile-action-btn:hover{background:var(--color-divider)}.profile-modal-actions .profile-action-btn.primary{background:var(--color-primary);color:#fff}.profile-modal-actions .profile-action-btn.primary:hover{background:var(--color-primary-dark)}.profile-modal-close{padding:.75rem 1rem;min-height:var(--touch-min);border-radius:12px;border:1px solid var(--color-divider);background:transparent;color:var(--color-text-primary);cursor:pointer}.profile-modal-close:hover{background:var(--color-bg-secondary)}.input-area input,.input-area textarea{flex:1;min-width:0;padding:.6rem 1rem;background:var(--color-bg-secondary);border:none;border-radius:24px;color:var(--color-text-primary);font-size:1rem;resize:none;max-height:120px}.input-area input:focus,.input-area textarea:focus{outline:none;box-shadow:0 0 0 2px var(--color-primary);caret-color:var(--color-primary)}.input-area button[type=submit]{width:var(--touch-min);height:var(--touch-min);min-width:var(--touch-min);min-height:var(--touch-min);border-radius:50%;background:var(--color-primary);border:none;color:#fff;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}.input-area button[type=submit]:hover{background:var(--color-primary-dark)}.input-area button[type=submit]:disabled{opacity:.5;cursor:not-allowed}.profile-modal-avatar{width:88px;height:88px;border-radius:50%;overflow:hidden;background:var(--color-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:600;margin:0 auto 12px}.profile-modal-avatar img{width:100%;height:100%;object-fit:cover}.settings-page{display:flex;flex-direction:column;height:100%;background:var(--color-bg-primary)}.settings-header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--color-divider);background:var(--color-header-bg)}.settings-title{font-weight:600;font-size:17px}.settings-tabs{display:flex;gap:0;border-bottom:1px solid var(--color-divider)}.settings-tab{flex:1;padding:10px;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;font-size:13px;color:var(--color-text-secondary);transition:all .15s}.settings-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:600}.settings-body{flex:1;overflow-y:auto;padding:16px}.settings-section{display:flex;flex-direction:column;gap:12px}.settings-avatar-wrap{display:flex;justify-content:center;padding:12px 0}.settings-avatar{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer}.settings-avatar-label{font-size:13px;color:var(--color-accent)}.settings-field{display:flex;flex-direction:column;gap:4px}.settings-field label{font-size:12px;color:var(--color-text-secondary);font-weight:500}.settings-field input,.settings-field textarea,.settings-field select{padding:10px 12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:14px;width:100%;box-sizing:border-box}.settings-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--color-divider)}.settings-row select{padding:4px 8px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-secondary);color:var(--color-text-primary)}.settings-save-btn{padding:12px;background:var(--color-accent);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer}.settings-save-btn:hover{background:var(--color-accent-hover,#1D96D1)}.gif-picker{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:12px;width:min(280px,calc(100vw - 16px));max-height:260px;display:flex;flex-direction:column;box-shadow:0 8px 32px rgba(0,0,0,.2);overflow:hidden}.gif-picker-header{display:flex;gap:8px;padding:8px;border-bottom:1px solid var(--color-divider)}.gif-search-input{flex:1;padding:8px 12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:14px}.gif-close-btn{background:none;border:none;font-size:18px;cursor:pointer;color:var(--color-text-secondary);padding:4px 8px}.gif-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:3px;overflow-y:auto;padding:4px;flex:1}.gif-item{background:none;border:none;padding:0;cursor:pointer;border-radius:4px;overflow:hidden;aspect-ratio:1}.gif-item img{width:100%;height:100%;object-fit:cover}.gif-loading,.gif-empty{grid-column:1/-1;text-align:center;padding:24px;color:var(--color-text-secondary);font-size:14px}.poll-view{padding:4px 0 8px;min-width:200px;max-width:280px}.poll-question{font-weight:600;font-size:14px;margin-bottom:12px;line-height:1.4}.poll-options{display:flex;flex-direction:column;gap:8px}.poll-option{position:relative;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;padding:10px 12px;cursor:pointer;text-align:left;overflow:hidden;transition:border-color .15s}.poll-option:hover:not(:disabled){border-color:var(--color-accent)}.poll-option.voted{border-color:var(--color-accent)}.poll-option-bar{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-accent);opacity:.15;transition:width .3s ease;border-radius:8px}.poll-option.voted .poll-option-bar{opacity:.25}.poll-option-content{position:relative;display:flex;justify-content:space-between;align-items:center;gap:8px}.poll-option-text{font-size:14px;flex:1}.poll-option-pct{font-size:12px;font-weight:600;color:var(--color-accent);white-space:nowrap}.poll-footer{font-size:12px;color:var(--color-text-secondary);margin-top:8px}.media-viewer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.92);z-index:9999;display:flex;align-items:center;justify-content:center}.media-viewer-content{position:relative;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center;gap:8px}.media-viewer-close{position:absolute;top:-48px;right:-8px;background:rgba(255,255,255,.15);border:none;color:#fff;font-size:24px;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center}.media-viewer-name{color:#fff;font-size:14px;opacity:.8}.media-viewer-img{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:8px}.media-viewer-video{max-width:90vw;max-height:85vh;border-radius:8px}.media-viewer-file{text-align:center;color:#fff;padding:32px}.message-reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.reaction-badge{display:inline-flex;align-items:center;gap:3px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px;padding:2px 8px;font-size:13px;cursor:pointer;transition:all .15s;user-select:none}.reaction-badge:hover{background:var(--color-hover,rgba(42,171,238,.1))}.reaction-badge.reaction-mine{background:rgba(42,171,238,.15);border-color:var(--color-accent)}.reaction-badge .reaction-count{font-size:12px;font-weight:600;color:var(--color-text-secondary)}.reaction-mine .reaction-count{color:var(--color-accent)}.message-status{display:inline-flex;align-items:center;margin-left:4px}.status-sending{color:var(--color-text-secondary);font-size:11px}.status-sent:after{content:"\2713";color:var(--color-text-secondary);font-size:12px}.status-read:after{content:"\2713\2713";color:var(--color-accent);font-size:12px;font-weight:700}.pinned-message-bar{display:flex;align-items:center;gap:8px;padding:6px 16px;background:var(--color-header-bg);border-bottom:1px solid var(--color-divider);cursor:pointer;transition:background .15s}.pinned-message-bar:hover{background:var(--color-hover,rgba(0,0,0,.04))}.pinned-icon{font-size:16px}.pinned-text{flex:1;font-size:13px;overflow:hidden}.pinned-label{font-size:11px;font-weight:600;color:var(--color-accent);margin-bottom:1px}.pinned-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-text-secondary)}.pinned-dismiss{background:none;border:none;font-size:18px;color:var(--color-text-secondary);cursor:pointer;padding:4px;line-height:1}.scroll-to-bottom{position:absolute;bottom:80px;right:16px;width:42px;height:42px;background:var(--color-header-bg);border:1px solid var(--color-border);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:10;transition:transform .15s}.scroll-to-bottom:hover{transform:scale(1.1)}.scroll-to-bottom-badge{position:absolute;top:-6px;right:-6px;background:var(--color-accent);color:#fff;border-radius:10px;font-size:11px;font-weight:700;padding:1px 5px;min-width:18px;text-align:center}.forward-modal{background:var(--color-bg-primary);border-radius:12px;width:min(340px,92vw);max-height:min(500px,85vh);display:flex;flex-direction:column;overflow:hidden}.forward-search{padding:12px;border-bottom:1px solid var(--color-divider)}.forward-search input{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:14px;box-sizing:border-box}.forward-list{flex:1;overflow-y:auto}.forward-item{display:flex;align-items:center;gap:12px;padding:10px 16px;cursor:pointer;transition:background .1s}.forward-item:hover{background:var(--color-hover,rgba(0,0,0,.04))}.forward-item.selected{background:rgba(42,171,238,.1)}.forward-item-check{width:20px;height:20px;border-radius:50%;border:2px solid var(--color-border);display:flex;align-items:center;justify-content:center;flex-shrink:0}.forward-item.selected .forward-item-check{background:var(--color-accent);border-color:var(--color-accent);color:#fff;font-size:12px}.forward-btn{margin:12px;padding:12px;background:var(--color-accent);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer}.forward-btn:disabled{opacity:.5}.avatar-wrap{position:relative;display:inline-block}.online-dot{position:absolute;bottom:1px;right:1px;width:10px;height:10px;background:#0ac630;border-radius:50%;border:2px solid var(--color-bg-primary);z-index:1}.chat-context-menu{position:fixed;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 4px 20px rgba(0,0,0,.2);z-index:1000;min-width:180px;overflow:hidden}.chat-context-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:10px 16px;background:none;border:none;cursor:pointer;font-size:14px;color:var(--color-text-primary);text-align:left;transition:background .1s}.chat-context-menu button:hover{background:var(--color-hover,rgba(0,0,0,.06))}.chat-context-menu button.danger{color:var(--color-danger,#E53935)}.emoji-picker-popup{position:absolute;bottom:calc(100% + 8px);left:0;width:320px;max-width:95vw;background:var(--color-bg-primary, #fff);border:1px solid var(--color-border, #DADCE0);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.18);z-index:100;overflow:hidden;display:flex;flex-direction:column;max-height:320px}[data-theme=dark] .emoji-picker-popup{background:#2b2b2b;border-color:#3d3d3d}.emoji-search-wrap{padding:8px;border-bottom:1px solid var(--color-border, #DADCE0)}.emoji-search-input{width:100%;padding:6px 10px;border:1px solid var(--color-border, #DADCE0);border-radius:20px;background:var(--color-bg-secondary, #F4F4F5);font-size:13px;outline:none;color:var(--color-text-primary)}.emoji-cat-tabs{display:flex;padding:4px 6px;border-bottom:1px solid var(--color-border, #DADCE0);gap:2px;overflow-x:auto}.emoji-cat-btn{background:none;border:none;cursor:pointer;font-size:18px;padding:5px 7px;border-radius:6px;flex-shrink:0;opacity:.6;transition:all .15s}.emoji-cat-btn.active,.emoji-cat-btn:hover{opacity:1;background:var(--color-hover, rgba(0,0,0,.06))}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;padding:6px;overflow-y:auto;flex:1}.emoji-btn{font-size:22px;padding:4px;background:none;border:none;cursor:pointer;border-radius:6px;line-height:1;transition:background .1s;display:flex;align-items:center;justify-content:center}.emoji-btn:hover{background:var(--color-hover, rgba(0,0,0,.06))}.search-results-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--color-bg-primary);z-index:50;overflow-y:auto;padding:8px 0}.search-section-title{padding:8px 16px 4px;font-size:12px;font-weight:600;color:var(--color-accent);text-transform:uppercase;letter-spacing:.5px}.search-result-item{display:flex;align-items:center;gap:12px;padding:10px 16px;cursor:pointer;transition:background .1s}.search-result-item:hover{background:var(--color-hover, rgba(0,0,0,.04))}.search-result-avatar{width:40px;height:40px;border-radius:50%;background:var(--color-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0;overflow:hidden}.search-result-avatar img{width:100%;height:100%;object-fit:cover}.search-result-info{flex:1;min-width:0}.search-result-name{font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-preview{font-size:13px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-no-results{padding:32px 16px;text-align:center;color:var(--color-text-secondary);font-size:14px}.chat-search-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-bg-primary);border-bottom:1px solid var(--color-divider)}.chat-search-bar input{flex:1;padding:8px 12px;border:1px solid var(--color-border);border-radius:20px;background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:14px;outline:none}.chat-search-bar input:focus{border-color:var(--color-accent)}.chat-search-results{position:absolute;top:100%;left:0;right:0;max-height:300px;overflow-y:auto;background:var(--color-bg-primary);border-bottom:1px solid var(--color-divider);box-shadow:0 4px 12px rgba(0,0,0,.1);z-index:50}.chat-search-result{display:flex;flex-direction:column;padding:8px 16px;cursor:pointer;border-bottom:1px solid var(--color-divider);transition:background .1s}.chat-search-result:hover{background:var(--color-hover, rgba(0,0,0,.04))}.chat-search-result-sender{font-size:12px;font-weight:600;color:var(--color-accent)}.chat-search-result-text{font-size:13px;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-search-result-time{font-size:11px;color:var(--color-text-secondary);margin-top:2px}.search-highlight{background:rgba(42,171,238,.2);border-radius:2px}.chat-header-search-btn{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:6px;border-radius:50%;font-size:18px;display:flex;align-items:center;justify-content:center;transition:background .15s}.chat-header-search-btn:hover{background:var(--color-hover, rgba(0,0,0,.06))}.invite-link-section{padding:12px 16px;border-top:1px solid var(--color-divider)}.invite-link-btn{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;color:var(--color-accent);cursor:pointer;font-size:14px;transition:background .15s}.invite-link-btn:hover{background:var(--color-hover, rgba(42,171,238,.08))}.invite-link-display{margin-top:8px;display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-bg-secondary);border-radius:8px;font-size:13px;word-break:break-all}.invite-link-copy{flex-shrink:0;background:var(--color-accent);color:#fff;border:none;border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer}.media-gallery{display:flex;flex-direction:column;height:100%}.media-gallery-tabs{display:flex;border-bottom:1px solid var(--color-divider)}.media-gallery-tab{flex:1;padding:10px;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;font-size:13px;color:var(--color-text-secondary);transition:all .15s}.media-gallery-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:600}.media-gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:2px;overflow-y:auto;flex:1}.media-gallery-item{aspect-ratio:1;overflow:hidden;cursor:pointer;background:var(--color-bg-secondary)}.media-gallery-item img,.media-gallery-item video{width:100%;height:100%;object-fit:cover}.media-gallery-file{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--color-divider);cursor:pointer}.media-gallery-file:hover{background:var(--color-hover, rgba(0,0,0,.04))}.media-gallery-empty{padding:32px 16px;text-align:center;color:var(--color-text-secondary);font-size:14px}.context-menu{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 4px 20px rgba(0,0,0,.2);min-width:180px;overflow:hidden;z-index:1000}.context-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:10px 16px;background:none;border:none;cursor:pointer;font-size:14px;color:var(--color-text-primary);text-align:left;transition:background .1s}.context-menu button:hover{background:var(--color-hover, rgba(0,0,0,.06))}.context-menu-danger{color:var(--color-danger, #E53935)!important}.context-menu-divider{height:1px;background:var(--color-divider);margin:4px 0}.context-menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999}.invite-page{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;height:100dvh;padding:24px;background:var(--color-bg-primary)}.invite-card{max-width:360px;width:100%;padding:32px 24px;background:var(--color-bg-secondary);border-radius:16px;text-align:center;box-shadow:0 4px 24px rgba(0,0,0,.1)}.invite-card-avatar{width:80px;height:80px;border-radius:50%;background:var(--color-accent);color:#fff;font-size:32px;font-weight:600;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;overflow:hidden}.invite-card-avatar img{width:100%;height:100%;object-fit:cover}.invite-card-name{font-size:20px;font-weight:700;margin-bottom:4px}.invite-card-members{font-size:14px;color:var(--color-text-secondary);margin-bottom:24px}.invite-join-btn{width:100%;padding:14px;background:var(--color-accent);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer}.invite-join-btn:hover{opacity:.9}.onboarding-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--color-bg-primary);padding:clamp(16px,4vw,24px);padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.onboarding-inner{width:100%;max-width:min(400px,94vw);display:flex;flex-direction:column;align-items:center;gap:clamp(20px,4vw,24px)}.onboarding-logo{width:clamp(64px,20vw,84px);height:clamp(64px,20vw,84px);border-radius:clamp(12px,3vw,16px);background:var(--color-primary);display:flex;align-items:center;justify-content:center;transition:opacity .5s ease}.onboarding-logo-icon{color:#fff;font-size:clamp(28px,8vw,36px)}.onboarding-slide{text-align:center;min-height:min(280px,50vh)}.onboarding-illustration{font-size:clamp(56px,18vw,80px);margin-bottom:1.5rem;line-height:1}.onboarding-title{margin-bottom:12px;text-align:center;font-size:clamp(1.125rem,4vw,1.25rem)}.onboarding-desc{color:var(--color-text-secondary);max-width:min(320px,90vw);margin:0 auto;line-height:1.5;font-size:clamp(.875rem,2vw,1rem)}.onboarding-dots{display:flex;gap:8px;align-items:center}.onboarding-dot{width:8px;height:8px;border-radius:50%;background:var(--color-divider);border:none;cursor:pointer;padding:0;min-width:24px;min-height:24px;transition:width .2s,background .2s}.onboarding-dot.active{width:24px;border-radius:4px;background:var(--color-primary)}.onboarding-cta{width:100%;max-width:360px;min-height:var(--touch-min);height:52px;border-radius:12px;background:var(--color-primary);color:#fff;border:none;cursor:pointer;font-size:1rem}.onboarding-cta:hover{background:var(--color-primary-dark)}.onboarding-login-link{background:none;border:none;color:var(--color-primary);font-size:1rem;cursor:pointer;padding:8px;min-height:var(--touch-min);display:inline-flex;align-items:center}.onboarding-login-link:hover{text-decoration:underline}.login-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--color-bg-primary);padding:clamp(16px,4vw,24px);padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.login-box{width:100%;max-width:min(400px,94vw);padding:clamp(24px,6vw,40px);background:var(--tg-bg-secondary);border-radius:clamp(12px,3vw,16px);border:1px solid var(--tg-border)}.login-box h1{text-align:center;margin-bottom:1.5rem;font-size:clamp(1.5rem,5vw,28px);color:var(--tg-text)}.login-box input{width:100%;padding:.75rem 1rem;margin-bottom:1rem;min-height:var(--touch-min);background:var(--tg-bg-tertiary);border:1px solid var(--tg-border);border-radius:12px;color:var(--tg-text);font-size:1rem}.login-box input:focus{outline:none;border-color:var(--tg-accent)}.login-box button{width:100%;padding:.75rem 1rem;min-height:var(--touch-min);background:var(--tg-accent);border:none;border-radius:12px;color:#fff;font-size:1rem;font-weight:500;cursor:pointer}.login-box button:hover{background:var(--tg-accent-hover)}.login-box .switch{text-align:center;margin-top:1rem;color:var(--tg-text-secondary);font-size:clamp(13px,2vw,14px)}.login-box .switch button{background:none;border:none;color:var(--tg-accent);cursor:pointer;padding:4px 8px;min-height:var(--touch-min)}.login-error{color:var(--tg-red);font-size:1rem;margin-bottom:12px;text-align:center}.empty-chat{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--tg-text-secondary);padding:40px}.empty-chat .icon{font-size:80px;margin-bottom:16px;opacity:.5}.empty-chat h2{font-size:24px;margin-bottom:8px;color:var(--tg-text)}.empty-chat p{text-align:center;max-width:400px}.video-call-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;flex-direction:column;background:#000}.video-call-overlay .video-main{position:absolute;top:0;right:0;bottom:0;left:0;object-fit:cover;width:100%;height:100%}.video-call-overlay .video-pip{position:absolute;right:16px;bottom:100px;width:min(120px,28vw);height:min(160px,37vw);border-radius:12px;object-fit:cover;border:2px solid rgba(255,255,255,.4);box-shadow:0 4px 20px rgba(0,0,0,.4)}.video-call-overlay .call-top-bar{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:linear-gradient(to bottom,rgba(0,0,0,.6),transparent);color:#fff}.video-call-overlay .call-top-bar .back-btn{display:flex;align-items:center;gap:4px;background:rgba(255,255,255,.15);border:none;color:#fff;padding:8px 12px;border-radius:20px;cursor:pointer;font-size:14px}.video-call-overlay .call-top-bar .back-btn:hover{background:rgba(255,255,255,.25)}.video-call-overlay .call-top-bar .call-info{text-align:center;flex:1}.video-call-overlay .call-top-bar .call-info .name{font-weight:600;font-size:18px}.video-call-overlay .call-top-bar .call-info .status{font-size:13px;opacity:.9}.video-call-overlay .call-bottom-bar{position:relative;z-index:2;display:flex;justify-content:center;gap:28px;padding:20px 16px 28px;background:linear-gradient(to top,rgba(0,0,0,.6),transparent)}.video-call-overlay .call-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:rgba(255,255,255,.2);border:none;color:#fff;width:clamp(48px,12vw,56px);height:clamp(48px,12vw,56px);min-width:48px;min-height:48px;border-radius:50%;cursor:pointer;font-size:clamp(18px,4vw,22px);padding:0}.video-call-overlay .call-btn:hover{background:rgba(255,255,255,.3)}.video-call-overlay .call-btn span{font-size:clamp(10px,2vw,11px);text-transform:lowercase}.video-call-overlay .call-btn.video-on{background:rgba(255,255,255,.9);color:#333}.video-call-overlay .call-btn.muted{background:rgba(80,80,80,.9)}.video-call-overlay .call-btn.end{background:#e53935}.video-call-overlay .call-btn.end:hover{background:#c62828}.video-call-overlay .voice-only-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;color:#fff;background:#1a1a1a}.video-call-overlay .voice-only-placeholder .icon{font-size:72px;opacity:.9}.video-call-overlay .voice-only-placeholder .label{font-size:18px}@media (max-width: 480px){:root{--app-gap: 10px;--app-padding-x: 12px;--app-padding-y: 10px;--avatar-list: 48px;--avatar-header: 32px}.sidebar-header h1{font-size:15px}.chat-item .name{font-size:14px}.chat-item .preview{font-size:12px}.message{max-width:88%;font-size:.9375rem}.modal-content{width:94%;padding:16px;border-radius:12px}.login-box{padding:24px 20px}.onboarding-inner{padding:0 16px}}@media (max-width: 600px){:root{--sidebar-width: 100%;--sidebar-min: 260px}.drawer{width:min(300px,90vw)}}@media (max-width: 768px){:root{--sidebar-width: 100%;--sidebar-min: 280px}.sidebar{width:100%;max-width:100%}.chat-panel{display:none}.chat-panel.active{display:flex;flex-direction:column;position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;padding-top:env(safe-area-inset-top,0px);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);background:var(--chat-wallpaper, var(--color-bg-chat));overflow:hidden;height:100%;height:100dvh;height:-webkit-fill-available}.chat-panel.active .chat-header{flex:0 0 auto;z-index:10;background:var(--color-bg-primary, #fff);touch-action:none;-webkit-user-select:none;user-select:none}.chat-panel.active .messages{flex:1 1 0;overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:0;overscroll-behavior:contain}.chat-panel.active .input-area{flex:0 0 auto;padding-bottom:calc(var(--app-padding-y, 8px) + env(safe-area-inset-bottom,0px))}.chat-header .back-btn{display:flex;align-items:center;justify-content:center}.message{max-width:min(480px,85%)}}@media (min-width: 769px){.sidebar{width:var(--sidebar-width);max-width:var(--sidebar-width)}}@media (min-width: 900px){:root{--app-gap: 12px;--app-padding-x: 18px;--avatar-list: 54px;--avatar-header: 38px}}@media (min-width: 1200px){:root{--app-padding-x: 20px;--sidebar-width: 340px;--sidebar-min: 300px}}@media (max-width: 767px){.chat-list{padding-bottom:calc(56px + env(safe-area-inset-bottom,0px))}.fab-write{bottom:calc(56px + max(12px,env(safe-area-inset-bottom,0px)))}.drawer-header{padding-top:clamp(16px,4vw,24px)}}@media (max-width: 480px){.emoji-picker-popup{left:0!important;right:0!important;max-width:calc(100vw - 8px)!important;width:calc(100vw - 8px)!important}.sticker-picker,.gif-picker{max-width:calc(100vw - 16px)!important;width:calc(100vw - 16px)!important}.modal-content{max-width:96vw!important;width:96vw!important;padding:14px!important}.chat-header-actions{gap:2px!important}.chat-header-actions button,.chat-header-actions .icon-button{padding:6px!important}}:root{--bp-mobile: 480px;--bp-tablet: 768px;--bp-desktop: 1024px;--bp-wide: 1280px}.hide-mobile{display:none!important}.show-mobile{display:flex!important}.show-tablet-up{display:none!important}@media (min-width: 480px){.hide-mobile{display:flex!important}.show-mobile{display:none!important}.show-tablet-up{display:flex!important}}@media (max-width: 767px){.app-layout{flex-direction:column}.chat-sidebar{width:100%!important;min-width:100%!important;max-width:100%!important;height:100%}.chat-main{width:100%!important;position:fixed;top:0;left:0;right:0;bottom:0;z-index:100;transform:translate(100%);transition:transform .25s ease}.chat-main.active{transform:translate(0)}.message-input-container{padding:6px 8px;padding-bottom:calc(6px + env(safe-area-inset-bottom))}.message-bubble{max-width:88%!important}.sidebar-footer{display:none}.media-viewer-overlay{padding:0}.settings-content{padding:8px}.stories-bar{gap:8px;padding:8px 12px}.story-item{min-width:60px}}@media (min-width: 480px) and (max-width: 767px){.message-bubble{max-width:80%!important}.chat-sidebar{width:320px!important}}@media (min-width: 768px){.app-layout{display:flex;flex-direction:row;height:100vh;overflow:hidden}.chat-sidebar{width:320px;min-width:240px;max-width:400px;flex-shrink:0;border-right:1px solid var(--color-border)}.chat-main{flex:1;min-width:0;display:flex;flex-direction:column}.back-button-mobile{display:none!important}.message-bubble{max-width:65%!important}}@media (min-width: 1024px){.chat-sidebar{width:360px}.message-bubble{max-width:60%!important}.chat-info-panel{display:flex;width:280px;flex-shrink:0;border-left:1px solid var(--color-border)}}@media (min-width: 1280px){.chat-sidebar{width:400px}}@media (hover: none) and (pointer: coarse){.icon-button{min-width:44px!important;min-height:44px!important}.message-action-button{padding:10px!important}.chat-list-item:hover{background-color:transparent}}@supports (padding: env(safe-area-inset-bottom)){.message-input-safe,.bottom-nav{padding-bottom:env(safe-area-inset-bottom)}.stories-bar{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}@media print{.chat-sidebar,.message-input-container,.chat-header-actions{display:none!important}.message-bubble{max-width:100%!important;box-shadow:none!important}}
