:root{--font-family:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Helvetica Neue", Helvetica, Arial, sans-serif;--color-bg:#fff;--color-header-bg:#f5f5f5d9;--color-header-border:#c6c6c8;--header-height:54px;--header-shadow:none;--header-backdrop:blur(20px);--color-text:#000;--color-text-secondary:#8e8e93;--bubble-sent-bg:#007aff;--bubble-sent-text:#fff;--bubble-received-bg:#e9e9eb;--bubble-received-text:#000;--radius-bubble:18px;--radius-bubble-sm:4px;--input-container-bg:#f2f2f7;--input-bg:#fff;--input-border:#c6c6c8;--input-radius:20px;--input-focus-border:#8e8e93;--send-btn-bg:#007aff;--avatar-radius:50%;--avatar-border:2px solid transparent;--avatar-border-hover:2px solid #0000001a;--avatar-border-active:2px solid var(--bubble-sent-bg);--animation-message-enter:iosMessageEnter .5s cubic-bezier(.34, 1.56, .64, 1);--animation-message-move:transform .5s cubic-bezier(.34, 1.56, .64, 1);--spring-bounce:cubic-bezier(.34, 1.56, .64, 1);--spring-gentle:cubic-bezier(.22, 1, .36, 1);--spring-snappy:cubic-bezier(.2, .9, .3, 1.1)}[data-theme=material]{--font-family:"Google Sans", "Roboto", sans-serif;--color-bg:#fef7ff;--color-header-bg:#f3edf7;--color-header-border:transparent;--header-height:64px;--header-shadow:none;--header-backdrop:none;--color-text:#1d1b20;--color-text-secondary:#49454f;--bubble-sent-bg:#6750a4;--bubble-sent-text:#fff;--bubble-received-bg:#e8def8;--bubble-received-text:#1d1b20;--radius-bubble:24px;--radius-bubble-sm:6px;--input-container-bg:#f3edf7;--input-bg:#fff;--input-border:#79747e;--input-radius:24px;--input-focus-border:#49454f;--send-btn-bg:#625b71;--avatar-radius:12px;--avatar-border:none;--avatar-border-hover:none;--avatar-border-active:3px solid #6750a4;--animation-message-enter:md3MessageEnter .5s cubic-bezier(.34, 1.56, .64, 1);--animation-message-move:transform .45s cubic-bezier(.34, 1.56, .64, 1);--spring-bounce:cubic-bezier(.34, 1.56, .64, 1);--spring-gentle:cubic-bezier(.22, 1, .36, 1);--spring-snappy:cubic-bezier(.2, .9, .3, 1.1);--md3-emphasized:cubic-bezier(.05, .7, .1, 1);--md3-emphasized-decel:cubic-bezier(.05, .7, .1, 1);--md3-emphasized-accel:cubic-bezier(.3, 0, .8, .15);--md3-expressive:cubic-bezier(.34, 1.56, .64, 1);--md3-primary:#6750a4;--md3-on-primary:#fff;--md3-primary-container:#eaddff;--md3-on-primary-container:#21005d;--md3-secondary:#625b71;--md3-on-secondary:#fff;--md3-secondary-container:#e8def8;--md3-on-secondary-container:#1d192b;--md3-tertiary:#7d5260;--md3-on-tertiary:#fff;--md3-tertiary-container:#ffd8e4;--md3-on-tertiary-container:#31111d;--md3-surface:#fef7ff;--md3-on-surface:#1d1b20;--md3-surface-variant:#e7e0ec;--md3-on-surface-variant:#49454f;--md3-outline:#79747e;--md3-outline-variant:#cac4d0;--md3-surface-tint:#6750a4;--md3-surface-container:#f3edf7;--md3-surface-container-high:#ece6f0;--md3-surface-container-highest:#e6e0e9;--md3-surface-container-low:#f7f2fa;--md3-surface-container-lowest:#fff;--md3-error:#b3261e;--md3-error-container:#f9dedc;--md3-on-error-container:#410e0b;--md3-state-hover:.08;--md3-state-focus:.12;--md3-state-pressed:.12;--md3-state-dragged:.16}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--color-bg);height:100%;font-family:var(--font-family);color:var(--color-text);margin:0;padding:0;font-size:16px;line-height:1.5;transition:background-color .3s,color .3s}#app{flex-direction:column;height:100%;display:flex}::-webkit-scrollbar{background:0 0;width:6px}::-webkit-scrollbar-thumb{background:#0000001a;border-radius:3px}.hidden{display:none!important}@keyframes iosMessageEnter{0%{opacity:0;transform:translateY(20px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes sheetSlideIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulseSoft{0%,to{opacity:1}50%{opacity:.7}}@keyframes typingBounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes subtlePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(.98)}}@keyframes floatIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes gentleBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes expandIn{0%{opacity:0;transform-origin:bottom;max-height:0;transform:scaleY(.8)}40%{opacity:1;max-height:120px;transform:scaleY(1.02)}70%{transform:scaleY(.98)}to{max-height:120px;transform:scaleY(1)}}@keyframes expandOut{0%{opacity:1;max-height:120px;transform:scaleY(1)}to{opacity:0;transform-origin:bottom;max-height:0;transform:scaleY(.8)}}@keyframes md3MessageEnter{0%{opacity:0;transform:translateY(32px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes md3GroupNudge{0%{transform:translateY(0)}30%{transform:translateY(-3px)}60%{transform:translateY(1px)}to{transform:translateY(0)}}@keyframes md3ReactionPop{0%{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1.3)}70%{transform:scale(.9)}85%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes md3ReactionRemove{0%{opacity:1;transform:scale(1)}30%{opacity:.8;transform:scale(1.1)}to{opacity:0;transform:scale(0)}}@keyframes md3LongPressLift{0%{transform:scale(1);box-shadow:0 1px 2px #0000000d}to{transform:scale(1.02);box-shadow:0 8px 24px #00000026,0 4px 8px #0000001a}}@keyframes md3SendBtnActivate{0%{transform:scale(1)rotate(0)}30%{transform:scale(.85)rotate(-15deg)}60%{transform:scale(1.1)rotate(5deg)}80%{transform:scale(.98)rotate(-2deg)}to{transform:scale(1)rotate(0)}}@keyframes md3SendPulse{0%{transform:scale(1)}50%{transform:scale(.92)}to{transform:scale(1)}}@keyframes md3ErrorShake{0%,to{transform:translate(0)}10%{transform:translate(-8px)}20%{transform:translate(7px)}30%{transform:translate(-6px)}40%{transform:translate(5px)}50%{transform:translate(-3px)}60%{transform:translate(2px)}70%{transform:translate(-1px)}}@keyframes md3ScrollBtnEnter{0%{opacity:0;transform:translate(-50%)scale(.5)translateY(20px)}60%{opacity:1;transform:translate(-50%)scale(1.08)translateY(-4px)}80%{transform:translate(-50%)scale(.96)translateY(2px)}to{transform:translate(-50%)scale(1)translateY(0)}}@keyframes md3ScrollBtnExit{0%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%)scale(.6)translateY(10px)}}@keyframes md3MediaExpand{0%{opacity:0;filter:brightness(1.1);transform:scale(.7)}50%{transform:scale(1.03)}70%{transform:scale(.99)}to{opacity:1;filter:brightness();transform:scale(1)}}@keyframes md3MediaCollapse{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes md3ContainerTransform{0%{clip-path:circle(24px);transform:scale(.5)}60%{clip-path:circle(100%);transform:scale(1.02)}to{clip-path:circle(100%);transform:scale(1)}}@keyframes md3ToastEnter{0%{opacity:0;transform:translateY(24px)scale(.9)}60%{transform:translateY(-4px)scale(1.02)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes md3ToastExit{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(16px)scale(.95)}}@keyframes md3StickerPop{0%{opacity:0;transform:scale(.3)rotate(-10deg)}50%{transform:scale(1.15)rotate(3deg)}70%{transform:scale(.95)rotate(-1deg)}85%{transform:scale(1.02)rotate(.5deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes md3Ripple{0%{opacity:.4;transform:scale(0)}to{opacity:0;transform:scale(2.5)}}@keyframes lightboxEnter{0%{opacity:0}to{opacity:1}}@keyframes lightboxImageEnter{0%{opacity:0;transform:scale(.85)}60%{transform:scale(1.02)}to{opacity:1;transform:scale(1)}}.message-enter-active{animation:var(--animation-message-enter);z-index:1}.message-leave-active{z-index:0;width:100%;animation:.3s ease-out fadeOut;position:absolute}.message-move{transition:var(--animation-message-move)}.slide-up-enter-active{animation:.3s cubic-bezier(.34,1.56,.64,1) slideUp}.slide-up-leave-active{animation:.25s cubic-bezier(.22,1,.36,1) slideDown}.fade-enter-active{animation:.2s ease-out fadeIn}.fade-leave-active{animation:.15s ease-out fadeOut}.modal-backdrop-enter-active{animation:.2s ease-out fadeIn}.modal-backdrop-leave-active{animation:.2s ease-out fadeOut}.modal-content-enter-active{animation:.25s cubic-bezier(.34,1.56,.64,1) modalScaleIn}.modal-content-leave-active{animation:.2s ease-out fadeOut}.sheet-enter-active{animation:.35s cubic-bezier(.34,1.56,.64,1) sheetSlideIn}.sheet-leave-active{animation:.25s cubic-bezier(.22,1,.36,1) slideDown}.file-enter-active{animation:.2s cubic-bezier(.34,1.56,.64,1) slideInFromBottom}.file-leave-active{animation:.15s ease-out fadeOut}.expand-enter-active{animation:.4s cubic-bezier(.34,1.56,.64,1) expandIn;overflow:hidden}.expand-leave-active{animation:.25s ease-out expandOut;overflow:hidden}.stagger-item{animation:.3s ease-out backwards floatIn}.stagger-item:first-child{animation-delay:30ms}.stagger-item:nth-child(2){animation-delay:60ms}.stagger-item:nth-child(3){animation-delay:90ms}.stagger-item:nth-child(4){animation-delay:.12s}.stagger-item:nth-child(5){animation-delay:.15s}.stagger-item:nth-child(6){animation-delay:.18s}.stagger-item:nth-child(7){animation-delay:.21s}.stagger-item:nth-child(8){animation-delay:.24s}.stagger-item:nth-child(9){animation-delay:.27s}.stagger-item:nth-child(10){animation-delay:.3s}.slide-next-enter-active,.slide-next-leave-active,.slide-prev-enter-active,.slide-prev-leave-active{will-change:transform, opacity;transition:all .25s ease-out}.slide-next-enter-from{opacity:0;transform:translate(20px)}.slide-next-leave-to,.slide-prev-enter-from{opacity:0;transform:translate(-20px)}.slide-prev-leave-to{opacity:0;transform:translate(20px)}[data-theme=material]{--animation-message-enter:md3MessageEnter .5s cubic-bezier(.34, 1.56, .64, 1);--animation-message-move:transform .45s cubic-bezier(.34, 1.56, .64, 1)}[data-theme=material] .reaction-btn.just-added{animation:.45s cubic-bezier(.34,1.56,.64,1) md3ReactionPop}[data-theme=material] .reaction-btn.removing{animation:.3s ease-out forwards md3ReactionRemove}[data-theme=material] .bubble.long-pressed{animation:.2s cubic-bezier(.22,1,.36,1) forwards md3LongPressLift}[data-theme=material] .send-btn .send-btn-icon{transition:transform .3s cubic-bezier(.34,1.56,.64,1)}[data-theme=material] .send-btn:not(:disabled):active .send-btn-icon{animation:.15s ease-out md3SendPulse}[data-theme=material] .send-btn.send-btn--sending .send-btn-icon{animation:.5s cubic-bezier(.34,1.56,.64,1) md3SendBtnActivate}[data-theme=material] .send-btn.send-btn--error{animation:.6s ease-out md3ErrorShake}[data-theme=material] .sticker-message{animation:.5s cubic-bezier(.34,1.56,.64,1) md3StickerPop}[data-theme=material] .message-row.adjacent-nudge{animation:.35s cubic-bezier(.22,1,.36,1) md3GroupNudge}[data-theme=material] .lightbox-image{animation:none}[data-theme=material] .lightbox-enter-active .lightbox-image{animation:.45s cubic-bezier(.34,1.56,.64,1) md3MediaExpand}.spring-bounce{transition-timing-function:cubic-bezier(.34,1.56,.64,1)}.spring-gentle{transition-timing-function:cubic-bezier(.22,1,.36,1)}.spring-snappy{transition-timing-function:cubic-bezier(.2,.9,.3,1.1)}.spring-elastic{transition-timing-function:cubic-bezier(.68,-.55,.27,1.55)}.ripple-container{position:relative;overflow:hidden}.ripple-container:after{content:"";opacity:0;pointer-events:none;background:currentColor;border-radius:50%;width:100%;padding-bottom:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.ripple-container:active:after{animation:.6s ease-out md3Ripple}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.header{height:var(--header-height);background:var(--color-header-bg);border-bottom:1px solid var(--color-header-border);-webkit-backdrop-filter:var(--header-backdrop);box-shadow:var(--header-shadow);z-index:50;justify-content:space-between;align-items:center;padding:0 16px;transition:all .3s;display:flex;position:sticky;top:0}.header-left{flex:1;align-items:center;min-width:0;display:flex}.header-center{text-align:center;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;margin:0 8px;display:flex}.header-right{flex:1;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex;position:relative}.header-title{color:var(--color-text);font-size:14px;font-weight:700}.header-subtitle{color:var(--color-text-secondary);font-size:10px;font-weight:500;transition:opacity .2s}.header-btn{color:var(--bubble-sent-bg);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;font-size:17px;font-weight:500;transition:opacity .2s;display:flex}.header-btn:hover{opacity:.7}.header-btn-text{margin-left:4px}.skeleton-wrapper{flex-direction:column;gap:16px;width:100%;padding:16px;animation:.2s ease-out fadeOut;display:flex}.skeleton-row{align-items:flex-end;gap:8px;width:100%;display:flex}.skeleton-row.skeleton-sent{flex-direction:row-reverse}.skeleton-avatar{background:#0000000f;border-radius:50%;flex-shrink:0;width:32px;height:32px;animation:1.5s ease-in-out infinite pulse}.skeleton-bubble{background:#0000000f;border-radius:18px;height:36px;animation:1.5s ease-in-out infinite pulse}.skeleton-bubble.short{width:80px}.skeleton-bubble.medium{width:160px}.skeleton-bubble.long{width:240px}@keyframes pulse{0%{opacity:.5}50%{opacity:.8}to{opacity:.5}}.avatar{border-radius:var(--avatar-radius);border:var(--avatar-border);background-color:#e5e7eb;flex-shrink:0;width:32px;height:32px;transition:border-radius .3s,box-shadow .2s,transform .2s cubic-bezier(.34,1.56,.64,1);display:block;overflow:hidden}.avatar img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.avatar:hover{border:var(--avatar-border-hover)}.avatar-btn{cursor:pointer;padding:0}.avatar-btn:hover{transform:scale(1.05);box-shadow:0 0 0 2px #007aff4d}.avatar-btn:active{transform:scale(.98)}.avatar-fallback{color:#6b7280;background:#d1d5db;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.avatar-space{flex-shrink:0;align-self:flex-end;width:32px;margin-right:8px}.avatar-spacer{width:32px;height:32px}.bubble-wrapper{align-items:center;gap:8px;width:fit-content;max-width:100%;display:flex;position:relative}.bubble-wrapper:hover .desktop-actions{opacity:1;pointer-events:auto}.desktop-actions{opacity:0;pointer-events:none;align-items:center;gap:2px;transition:opacity .2s ease-in-out;display:flex}.action-btn{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:6px;transition:background-color .15s,color .15s,transform .2s cubic-bezier(.34,1.56,.64,1);display:flex}.action-btn:hover{color:var(--color-text);background-color:#0000000d;transform:scale(1.1)}.action-btn.active{color:var(--bubble-sent-bg)}.message-stack{gap:4px;align-items:inherit;flex-direction:column;max-width:100%;display:flex}.bubble{border-radius:var(--radius-bubble);word-wrap:break-word;cursor:default;-webkit-user-select:none;user-select:none;width:fit-content;min-width:60px;padding:8px 16px;font-size:16px;line-height:1.4;transition:border-radius .2s,background-color .3s,transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s;position:relative;box-shadow:0 1px 2px #0000000d}.bubble-sent{background:var(--bubble-sent-bg);color:var(--bubble-sent-text);border-bottom-right-radius:4px;margin-left:auto}.bubble-received{background:var(--bubble-received-bg);color:var(--bubble-received-text);border-bottom-left-radius:4px;margin-right:auto}.bubble.pinned{border:2px solid var(--bubble-sent-bg)}.bubble.long-pressed{transform:scale(1.02);box-shadow:0 8px 24px #00000026,0 4px 8px #0000001a}.group-sent-first{border-bottom-right-radius:var(--radius-bubble-sm)}.group-sent-middle{border-top-right-radius:var(--radius-bubble-sm);border-bottom-right-radius:var(--radius-bubble-sm)}.group-sent-last{border-top-right-radius:var(--radius-bubble-sm);border-bottom-right-radius:var(--radius-bubble)}.group-received-first{border-bottom-left-radius:var(--radius-bubble-sm)}.group-received-middle{border-top-left-radius:var(--radius-bubble-sm);border-bottom-left-radius:var(--radius-bubble-sm)}.group-received-last{border-top-left-radius:var(--radius-bubble-sm);border-bottom-left-radius:var(--radius-bubble)}.bubble-text{white-space:pre-wrap;word-wrap:break-word;word-break:break-word;min-width:20px;margin:0;line-height:1.625}.bubble-attachments{border-radius:8px;max-width:100%;margin-bottom:8px;position:relative;overflow:hidden}.attachment-img,.attachment-video{-o-object-fit:contain;object-fit:contain;background:#000;width:100%;height:auto;max-height:400px;display:block}.attachment-img{-o-object-fit:cover;object-fit:cover;cursor:pointer;background:0 0;transition:transform .3s cubic-bezier(.22,1,.36,1)}.attachment-img:hover{transform:scale(1.02)}.reaction-pill{background:var(--color-bg);cursor:pointer;border:1px solid #00000014;border-radius:12px;align-items:center;gap:4px;padding:4px 8px;font-size:12px;transition:transform .2s cubic-bezier(.34,1.56,.64,1);display:inline-flex;box-shadow:0 2px 4px #0000000d}.reaction-pill:hover{transform:scale(1.08)}.reaction-pill.active{border-color:var(--bubble-sent-bg);background:#007aff1a}.reactions-container{-webkit-user-select:none;user-select:none;flex-wrap:wrap;gap:4px;width:100%;margin-top:4px;display:flex}.reactions-container.justify-end{justify-content:flex-end}.reaction-btn{background:var(--color-bg);cursor:pointer;border:1px solid #e5e7eb;border-radius:9999px;align-items:center;gap:4px;padding:4px 8px;transition:transform .2s cubic-bezier(.34,1.56,.64,1),background-color .15s,border-color .15s,box-shadow .15s;display:flex}.reaction-btn:hover{transform:scale(1.08);box-shadow:0 2px 8px #00000014}.reaction-btn:active{transform:scale(.92)}.reaction-btn.active{background:#eff6ff;border-color:#60a5fa;box-shadow:0 0 0 2px #60a5fa33}.reaction-btn.just-added{animation:.3s cubic-bezier(.34,1.56,.64,1) reactionPop}.reaction-emoji{font-size:14px;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.reaction-btn:hover .reaction-emoji{transform:scale(1.15)}.reaction-count{color:#6b7280;font-size:12px;font-weight:700;transition:color .15s}.reaction-btn.active .reaction-count{color:#3b82f6}.reaction-picker{background:var(--color-bg);border:1px solid var(--input-border);transform-origin:bottom;z-index:10;border-radius:9999px;align-items:center;gap:4px;padding:6px;animation:.2s cubic-bezier(.34,1.56,.64,1) forwards popIn;display:flex;box-shadow:0 10px 25px #00000026}.reaction-option{cursor:pointer;background:0 0;border:none;border-radius:9999px;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;line-height:1;transition:background-color .15s,transform .2s cubic-bezier(.34,1.56,.64,1);display:flex}.composer-wrapper{z-index:10;background:var(--color-bg);flex-shrink:0}.input-row{padding:8px 12px;padding-bottom:max(12px, env(safe-area-inset-bottom));background:0 0;align-items:flex-end;gap:8px;display:flex}.input-row:before{opacity:.5;height:1px;position:absolute;top:0;left:0;right:0}.composer-input-group{background:var(--color-bg);border:1px solid var(--input-border);border-radius:20px;flex-direction:column;flex:1;min-width:0;display:flex}.input-container{background:0 0;flex:1;align-items:flex-end;gap:8px;padding:6px 12px;display:flex}@media (width<=640px){.input-container{gap:4px;padding:6px 8px}}.outside-plus-btn{color:#6b7280;background:#e5e7eb;justify-content:center;align-items:center;width:32px;height:32px;margin-bottom:7px;padding:0;display:flex}.outside-plus-btn:hover{color:#4b5563;background:#d1d5db}.outside-plus-btn svg{width:18px;height:18px}.message-input{min-height:36px;max-height:120px;color:var(--color-text);resize:none;background:0 0;border:none;border-radius:0;outline:none;flex:1;min-width:0;padding:8px 4px;font-family:inherit;font-size:16px;line-height:1.4}.message-input::placeholder{color:var(--color-text-secondary)}.icon-btn{color:var(--bubble-sent-bg);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:8px;transition:background-color .15s,transform .2s cubic-bezier(.34,1.56,.64,1);display:flex}.icon-btn:hover{background-color:#0000000d;transform:scale(1.08)}.icon-btn:active{transform:scale(.92)}@media (width<=640px){.icon-btn{width:32px;height:32px;padding:6px}.icon-btn svg{width:20px;height:20px}}.emoji-sticker-btn,.emoji-sticker-btn:hover{color:var(--bubble-sent-bg)}.send-btn-outside{display:none!important}.send-btn-inside{display:flex!important}.send-btn{background:var(--send-btn-bg);color:#fff;cursor:pointer;width:32px;height:32px;box-shadow:none;border:1.5px solid #0000001a;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .15s,background-color .2s;display:flex;position:relative;overflow:hidden}.send-btn .send-btn-icon{justify-content:center;align-items:center;transition:transform .3s cubic-bezier(.34,1.56,.64,1);display:flex}.send-btn:hover:not(:disabled){transform:scale(1.05)}.send-btn:active:not(:disabled){transform:scale(.95)}.send-btn:disabled{opacity:1;pointer-events:none;color:#fff;background:#aeaeb2}.send-btn.send-btn--sending .send-btn-icon{animation:.5s cubic-bezier(.34,1.56,.64,1) md3SendBtnActivate}.send-btn.send-btn--error{background:#ef4444;animation:.6s ease-out md3ErrorShake}@keyframes reactionPop{0%{transform:scale(1)}50%{transform:scale(1.25)}to{transform:scale(1)}}[data-theme=material] .header{background:var(--md3-surface-variant,#e7e0ec);border-bottom:none;box-shadow:0 1px 3px #6750a414}[data-theme=material] .header .header-title{letter-spacing:-.01em;font-weight:600}[data-theme=material] .header .header-subtitle{color:var(--md3-primary,#6750a4);font-size:12px;font-weight:500}[data-theme=material] .composer-wrapper{background:0 0}[data-theme=material] .input-row{padding:8px 12px;padding-bottom:max(12px, env(safe-area-inset-bottom));background:0 0;align-items:flex-end;gap:12px;display:flex}[data-theme=material] .input-row:before{background:var(--md3-outline-variant,#cac4d0);opacity:.6}[data-theme=material] .composer-input-group{border:1.5px solid var(--md3-outline-variant,#cac4d0);border-radius:28px}[data-theme=material] .input-container{background:0 0;align-items:flex-end;gap:4px;padding:8px 12px}[data-theme=material] .message-input{background:0 0;border:none;border-radius:0;width:100%;margin:0;padding:8px 4px;font-size:16px;line-height:1.5}[data-theme=material] .message-input:focus{box-shadow:none;border:none;padding:8px 4px}[data-theme=material] .message-input::placeholder{color:var(--md3-on-surface-variant,#49454f)}[data-theme=material] .file-preview-inline{order:-1;gap:8px;width:100%;padding-bottom:8px;display:flex;overflow-x:auto}[data-theme=material] .send-btn-inside{display:none!important}[data-theme=material] .send-btn-outside{display:flex!important}[data-theme=material] .send-btn{background:var(--md3-primary,#6750a4);width:56px;height:56px;transition:all .3s var(--md3-expressive);border-radius:18px;flex-shrink:0;box-shadow:0 4px 12px #6750a44d}[data-theme=material] .send-btn:hover:not(:disabled){border-radius:50%;transform:scale(1.05)}[data-theme=material] .send-btn:active:not(:disabled){transform:scale(.92);box-shadow:0 2px 8px #6750a44d}[data-theme=material] .send-btn:disabled{background:var(--md3-surface-variant,#e7e0ec);color:var(--md3-on-surface-variant,#49454f);opacity:1;box-shadow:none}[data-theme=material] .icon-btn{color:var(--md3-on-surface-variant,#49454f);width:40px;height:40px;transition:all .2s var(--md3-expressive);border-radius:50%}[data-theme=material] .icon-btn:hover{color:var(--md3-primary,#6750a4);background:#6750a41f;transform:scale(1.1)}[data-theme=material] .icon-btn:active{background:#6750a429;transform:scale(.95)}[data-theme=material] .emoji-sticker-btn:hover{color:var(--md3-tertiary,#7d5260)}[data-theme=material] .message-stack{flex-direction:column;width:fit-content;display:flex}[data-theme=material] .bubble{width:fit-content;transition:transform .2s var(--md3-expressive), box-shadow .2s}[data-theme=material] .bubble.connected-bottom{width:100%}[data-theme=material] .bubble.bubble-sent{border-radius:24px 24px 6px;box-shadow:0 2px 8px #6750a426}[data-theme=material] .bubble.bubble-received{border-radius:24px 24px 24px 6px;box-shadow:0 2px 8px #00000014}[data-theme=material] .bubble:hover{transform:scale(1.01)}[data-theme=material] .bubble.group-sent-first{border-radius:24px 24px 12px 12px}[data-theme=material] .bubble.group-sent-middle{border-radius:12px}[data-theme=material] .bubble.group-sent-last{border-radius:12px 12px 24px 24px}[data-theme=material] .bubble.group-received-first{border-radius:24px 24px 12px 12px}[data-theme=material] .bubble.group-received-middle{border-radius:12px}[data-theme=material] .bubble.group-received-last{border-radius:12px 12px 24px 24px}[data-theme=material] .reaction-btn{background:var(--md3-surface-variant,#e7e0ec);transition:all .2s var(--md3-expressive);border:none;border-radius:12px}[data-theme=material] .reaction-btn.active{background:var(--md3-primary-container,#eaddff);border:none;box-shadow:0 2px 8px #6750a433}[data-theme=material] .reaction-btn:hover{background:#6750a429;transform:scale(1.08)}[data-theme=material] .reaction-btn:active{transform:scale(.95)}[data-theme=material] .avatar,[data-theme=material] .avatar.avatar-btn,[data-theme=material] button.avatar-btn{transition:all .2s var(--md3-expressive);overflow:hidden;border-radius:12px!important}[data-theme=material] .avatar img,[data-theme=material] .avatar.avatar-btn img,[data-theme=material] button.avatar-btn img{border-radius:12px!important}[data-theme=material] .avatar:hover,[data-theme=material] .avatar.avatar-btn:hover,[data-theme=material] button.avatar-btn:hover{transform:scale(1.05);box-shadow:0 4px 12px #6750a440}[data-theme=material] .avatar-fallback{background:var(--md3-primary-container,#eaddff);border-radius:12px!important}[data-theme=material] .avatar-space .avatar,[data-theme=material] .reaction-sheet-avatar,[data-theme=material] .avatar-space .avatar img,[data-theme=material] .reaction-sheet-avatar img{border-radius:12px!important}[data-theme=material] .avatar-grid .avatar-option{transition:all .2s var(--md3-expressive);border-radius:12px}[data-theme=material] .avatar-grid .avatar-option img{border-radius:12px}[data-theme=material] .avatar-grid .avatar-option:hover{transform:scale(1.08);box-shadow:0 4px 12px #6750a433}[data-theme=material] .header-btn{transition:all .2s var(--md3-expressive);background:0 0;border-radius:20px;padding:8px 16px}[data-theme=material] .header-btn:hover{background:#6750a41f;transform:scale(1.02)}[data-theme=material] .file-preview-container{background:var(--md3-surface-variant,#e7e0ec);border-top:none}[data-theme=material] .file-preview-item{border:1px solid var(--md3-outline-variant,#cac4d0);transition:all .2s var(--md3-expressive);border-radius:16px}[data-theme=material] .file-preview-item:hover{transform:scale(1.02);box-shadow:0 4px 12px #0000001a}[data-theme=material] .reply-preview{background:var(--md3-surface-variant,#e7e0ec);border-top:none;border-radius:28px 28px 5px 5px}[data-theme=material] .new-messages-indicator{background:var(--md3-primary,#6750a4);transition:all .2s var(--md3-expressive);border-radius:20px;font-weight:600}[data-theme=material] .toast{background:var(--md3-surface-container-highest,#e6e0e9);color:var(--md3-on-surface,#1d1b20);border-radius:16px;box-shadow:0 4px 12px #00000026}[data-theme=material] .reaction-wrapper{background:var(--md3-surface,#fef7ff);border:none;border-radius:28px;box-shadow:0 4px 16px #6750a426}[data-theme=material] .reaction-wrapper.expanded{border-radius:28px}[data-theme=material] .picker-tabs{background:var(--md3-surface-variant,#e7e0ec);border-bottom:none;border-radius:16px;margin:8px;padding:4px}[data-theme=material] .picker-tab{transition:all .2s var(--md3-expressive);border-radius:12px}[data-theme=material] .picker-tab.active{background:var(--md3-primary-container,#eaddff);box-shadow:0 2px 8px #6750a426}[data-theme=material] .picker-tab:hover:not(.active){background:#6750a414}[data-theme=material] .reaction-sheet{background:var(--md3-surface,#fef7ff);border-radius:32px 32px 0 0}[data-theme=material] .reaction-sheet-handle-bar{background:var(--md3-outline-variant,#cac4d0);border-radius:2px;width:40px;height:4px}[data-theme=material] .reaction-sheet-footer{background:0 0;border-top:none}[data-theme=material] .action-btn-sheet{border:1.5px solid var(--md3-outline-variant,#cac4d0);transition:all .2s var(--md3-expressive);background:0 0;border-radius:20px}[data-theme=material] .action-btn-sheet.active{background:var(--md3-primary,#6750a4);border-color:#0000;box-shadow:0 2px 8px #6750a44d}[data-theme=material] .action-btn-sheet:hover:not(.active){background:#6750a414;transform:scale(1.02)}[data-theme=material] .delete-btn{background:var(--md3-error,#b3261e);transition:all .2s var(--md3-expressive);border-radius:20px}[data-theme=material] .delete-btn:hover{background:#a6231c 0%;transform:scale(1.02);box-shadow:0 4px 12px #b3261e4d}[data-theme=material] .pinned-section{background:var(--md3-surface-variant,#e7e0ec);border-radius:20px;margin:8px;padding:12px;box-shadow:0 2px 8px #0000000d}[data-theme=material] .pinned-header{color:var(--md3-primary,#6750a4);font-weight:600}[data-theme=material] .pinned-divider{background:var(--md3-outline-variant,#cac4d0)}[data-theme=material] .gif-picker{background:var(--md3-surface,#fef7ff);border-radius:32px 32px 0 0}[data-theme=material] .gif-picker-search input{border:1.5px solid var(--md3-outline-variant,#cac4d0);background:var(--md3-surface,#fef7ff);border-radius:28px;transition:all .2s}[data-theme=material] .gif-picker-search input:focus{border-color:var(--md3-primary,#6750a4);border-width:2px;box-shadow:0 0 0 4px #6750a41f}[data-theme=material] .admin-panel{background:var(--md3-surface,#fef7ff);border-radius:32px 32px 0 0}[data-theme=material] .admin-panel-handle-bar{background:var(--md3-outline-variant,#cac4d0);width:40px}[data-theme=material] .avatar-picker{background:var(--md3-surface,#fef7ff);border:none;border-radius:28px;box-shadow:0 8px 24px #6750a426}[data-theme=material] .lightbox{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1d1b2099}[data-theme=material] .lightbox-close{background:var(--md3-surface,#fef7ff);color:var(--md3-on-surface-variant,#49454f);transition:all .2s var(--md3-expressive);border-radius:50%}[data-theme=material] .lightbox-close:hover{transform:scale(1.1);box-shadow:0 4px 12px #00000026}[data-theme=material] .skeleton-bubble{background:var(--md3-surface-variant,#e7e0ec);border-radius:24px}[data-theme=material] .skeleton-avatar{background:var(--md3-primary-container,#eaddff);border-radius:12px}.sticker-content{line-height:0;display:flex}.sticker{-o-object-fit:contain;object-fit:contain;max-width:150px;max-height:150px;display:block}.sticker-message{box-shadow:none!important;background:0 0!important;border:none!important;min-width:auto!important;margin-left:0!important;padding:0!important}.emoji-only{font-size:48px;line-height:1.2;box-shadow:none!important;background:0 0!important;border:none!important;min-width:auto!important;margin-left:0!important;padding:4px 8px!important}.emoji-only .bubble-text{font-size:inherit;line-height:1.2}.emoji-only-single{font-size:64px}.pinned-label{color:var(--bubble-sent-bg);text-transform:uppercase;letter-spacing:.3px;opacity:.8;align-items:center;gap:4px;margin-bottom:4px;font-size:10px;font-weight:600;display:flex}.pinned-label svg{opacity:.9}.message-author-right{color:var(--color-text-secondary);-webkit-user-select:none;user-select:none;align-items:center;gap:4px;margin-bottom:4px;margin-right:4px;font-size:12px;font-weight:500;display:flex}.attachment-gif{-o-object-fit:contain;object-fit:contain;cursor:pointer;background:0 0;border-radius:8px;width:auto;max-width:100%;max-height:300px;display:block}.reaction-custom-emoji-wrap{justify-content:center;align-items:center;display:flex}.reaction-custom-emoji{-o-object-fit:contain;object-fit:contain;width:18px;height:18px}.reaction-picker-wrapper{align-items:center;gap:8px;margin-top:4px;display:flex;position:relative}.attachment-file-standalone{background:var(--input-container-bg);border:1px solid var(--input-border);color:var(--color-text);border-radius:6px;align-items:center;width:fit-content;min-width:200px;max-width:420px;padding:10px;text-decoration:none;transition:background-color .15s,border-color .15s;display:flex}.attachment-file-standalone:hover{background:var(--color-bg);border-color:var(--color-text-secondary)}.file-icon-wrapper{width:32px;height:32px;color:var(--color-text);opacity:.8;flex-shrink:0;justify-content:center;align-items:center;margin-right:12px;display:flex}.file-info-col{flex-direction:column;flex:1;gap:2px;display:flex;overflow:hidden}.file-name{color:#007aff;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;line-height:1.2;overflow:hidden}.attachment-file-standalone:hover .file-name{text-decoration:underline}.file-meta{color:var(--color-text-secondary);font-size:11px;font-weight:500}.file-download-action{color:var(--color-text-secondary);opacity:0;margin-left:12px;transition:opacity .2s}.attachment-file-standalone:hover .file-download-action{opacity:1}.media-standalone-container{border-radius:12px;max-width:100%;overflow:hidden}.media-standalone{cursor:pointer;background:0 0;border-radius:12px;flex-direction:column;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 3px #0000001a}.connected-top{border-bottom-right-radius:2px!important;border-bottom-left-radius:2px!important;margin-bottom:0!important}.connected-top .media-standalone{border-bottom-right-radius:2px!important;border-bottom-left-radius:2px!important}.connected-bottom{margin-top:-2px;border-top-left-radius:10px!important;border-top-right-radius:10px!important}.bubble{flex-direction:column;width:fit-content;max-width:80vw;margin-left:6px;display:flex;overflow:hidden}.bubble .bubble-text{overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap;min-width:0}.bubble .edited-indicator{opacity:.45;cursor:default;align-self:flex-end;margin-top:2px;display:inline-flex}.bubble .edited-indicator:hover{opacity:.75}.bubble-sent{margin-left:auto}.reaction-wrapper{background:var(--color-bg);border:1px solid var(--input-border);z-index:50;border-radius:9999px;transition:all .2s cubic-bezier(.32,.72,0,1);overflow:hidden;box-shadow:0 4px 20px #00000026}.reaction-wrapper.expanded{border-radius:16px;flex-direction:column;width:320px;height:300px;display:flex}.compact-picker{align-items:center;gap:2px;padding:4px;display:flex}.compact-option{cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:20px;transition:transform .15s cubic-bezier(.34,1.56,.64,1),background-color .15s;display:flex}.compact-option:hover{background:#0000000d;transform:scale(1.15)}.compact-option:active{transform:scale(.95)}.compact-custom-img{-o-object-fit:contain;object-fit:contain;width:22px;height:22px}.add-btn{color:var(--color-text-secondary);background:#0000000d}.add-btn:hover{color:var(--color-text);background:#0000001a}.close-btn{color:var(--color-text-secondary)}.close-btn:hover{color:#ef4444;background:#ef44441a}.delete-btn-compact{color:var(--color-text-secondary)}.delete-btn-compact:hover{color:#ef4444;background:#ef44441a}.expanded-picker{flex-direction:column;height:100%;animation:.2s ease-out fadeIn;display:flex}.picker-tabs{border-bottom:1px solid var(--input-border);background:var(--input-container-bg);gap:4px;padding:8px;display:flex;overflow-x:auto}.picker-tabs::-webkit-scrollbar{display:none}.picker-tab{cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:8px;padding:6px 10px;font-size:16px;transition:all .2s}.picker-tab:hover{opacity:.8;background:#0000000d}.picker-tab.active{background:var(--color-bg);opacity:1;box-shadow:0 1px 2px #0000000d}.picker-tab.close-tab{opacity:.5;color:var(--color-text-secondary);font-size:14px}.picker-tab.close-tab:hover{opacity:1;color:#ef4444;background:#ef44441a}.picker-content{flex:1;padding:12px;overflow-y:auto}.emoji-grid{grid-template-columns:repeat(auto-fill,minmax(32px,1fr));gap:8px;display:grid}.reaction-option{cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;transition:transform .15s cubic-bezier(.34,1.56,.64,1);display:flex}.reaction-option:hover{background:#0000000d;transform:scale(1.15)}.reaction-option:active{transform:scale(.95)}.custom-option img{-o-object-fit:contain;object-fit:contain;width:100%;height:100%}.overlay{z-index:200;background:#0009;justify-content:center;align-items:center;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}.panel{background:var(--color-bg);border-radius:16px;flex-direction:column;width:90%;max-width:480px;max-height:80vh;animation:.2s ease-out slideUp;display:flex;overflow:hidden;box-shadow:0 20px 50px #0000004d}.header{border-bottom:1px solid var(--input-border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.header h2{margin:0;font-size:18px;font-weight:600}.close-btn{cursor:pointer;color:var(--color-text-secondary);background:0 0;border:none;border-radius:8px;padding:6px;display:flex}.close-btn:hover{background:var(--input-container-bg)}.content{flex-direction:column;gap:20px;padding:20px;display:flex;overflow-y:auto}.upload-zone{border:2px dashed var(--input-border);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:12px;padding:32px 20px;transition:all .2s;display:flex;position:relative}.upload-zone.dragging{border-color:var(--bubble-sent-bg);background:#3b82f60d}.upload-zone.has-file{border-style:solid;border-color:var(--bubble-sent-bg)}.upload-zone p{color:var(--color-text-secondary);margin:0;font-size:14px}.upload-icon{color:var(--color-text-secondary);opacity:.5}.file-input{opacity:0;cursor:pointer;position:absolute;inset:0}.emoji-preview{-o-object-fit:contain;object-fit:contain;border-radius:8px;width:64px;height:64px}.name-input{border:1px solid var(--input-border);background:var(--input-bg);color:var(--color-text);text-align:center;border-radius:8px;width:180px;padding:10px 14px;font-size:14px}.name-input:focus{border-color:var(--bubble-sent-bg);outline:none}.hint{color:var(--color-text-secondary);font-family:monospace;font-size:13px}.upload-actions{gap:10px;margin-top:4px;display:flex}.btn-primary,.btn-secondary{cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600}.btn-primary{background:var(--bubble-sent-bg);color:#fff}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--input-container-bg);color:var(--color-text)}.emoji-list{flex-wrap:wrap;gap:8px;display:flex}.emoji-item{background:var(--input-container-bg);border-radius:8px;align-items:center;gap:8px;padding:8px 12px;display:flex}.emoji-item img{-o-object-fit:contain;object-fit:contain;width:24px;height:24px}.emoji-name{color:var(--color-text-secondary);font-family:monospace;font-size:13px}.delete-btn{color:var(--color-text-secondary);cursor:pointer;opacity:.5;background:0 0;border:none;border-radius:4px;padding:4px;display:flex}.delete-btn:hover{opacity:1;color:#ef4444;background:#ef44441a}.empty-state{text-align:center;color:var(--color-text-secondary);padding:20px}.link-preview{width:calc(140px + 8vw);min-width:0;max-width:100%;margin-top:8px}.link-preview-card{color:inherit;cursor:pointer;box-sizing:border-box;background:#0000000a;border:1px solid #0000000d;border-radius:6px;flex-direction:row;width:100%;height:72px;text-decoration:none;transition:background-color .15s;display:flex;overflow:hidden}.link-preview-card:hover{background:#00000014}.link-preview-image-container{flex-shrink:0;width:72px;height:100%;position:relative;overflow:hidden}.link-preview-img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.link-preview-image-placeholder{color:#6b7280;background:#0000000d;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:100%;display:flex}.link-preview-favicon{background:#00000008}.link-preview-favicon-img{-o-object-fit:contain;object-fit:contain;border-radius:6px;width:32px;height:32px}.link-preview-info{flex-direction:column;flex:1;justify-content:center;min-width:0;padding:8px 12px;display:flex;overflow:hidden}.link-preview-title{white-space:nowrap;text-overflow:ellipsis;color:#007aff;margin-bottom:2px;font-size:13px;font-weight:600;line-height:1.2;overflow:hidden}.link-preview-domain{opacity:.7;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.link-preview-skeleton{pointer-events:none}.skeleton-pulse{animation:1.5s ease-in-out infinite skeleton-pulse}.skeleton-line{background:#00000014;border-radius:4px;animation:1.5s ease-in-out infinite skeleton-pulse}.skeleton-line.skeleton-title{width:70%;height:14px;margin-bottom:6px}.skeleton-line.skeleton-desc{width:50%;height:10px}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.link-preview.material .link-preview-card{background:var(--md3-surface-container,#f3edf7);width:100%;height:auto;transition:transform .2s var(--md3-emphasized,ease), box-shadow .2s ease;border:none;border-radius:28px;flex-direction:column;box-shadow:0 2px 8px #00000014}.link-preview.material .link-preview-card:hover{transform:translateY(-3px)scale(1.01);box-shadow:0 8px 24px #6750a426}.link-preview.material .link-preview-card:active{transform:scale(.97)}.link-preview.material .link-preview-image-container{border-radius:28px 28px 0 0;width:100%;height:140px;position:relative}.link-preview.material .link-preview-image-container:after{content:"";pointer-events:none;background:#6750a414;height:50px;position:absolute;bottom:0;left:0;right:0}.link-preview.material .link-preview-image-placeholder{background:var(--md3-primary-container,#eaddff);width:100%;height:72px;color:var(--md3-on-primary-container,#21005d)}.link-preview.material .link-preview-favicon{background:var(--md3-secondary-container,#e8def8);height:72px}.link-preview.material .link-preview-favicon-img{border-radius:12px;width:36px;height:36px;box-shadow:0 2px 8px #0000001a}.link-preview.material .link-preview-info{justify-content:flex-start;padding:16px 20px}.link-preview.material .link-preview-title{white-space:normal;-webkit-line-clamp:2;line-clamp:2;color:var(--md3-on-surface,#1d1b20);-webkit-box-orient:vertical;margin-bottom:6px;font-size:15px;font-weight:600;line-height:1.4;display:-webkit-box}.link-preview.material .link-preview-domain{color:var(--md3-primary,#6750a4);opacity:1;font-size:13px;font-weight:500}.link-preview.material .link-preview-skeleton .link-preview-image-placeholder{background:#e8def8;animation:2s ease-in-out infinite skeleton-shimmer}.link-preview.material .skeleton-line{background:var(--md3-surface-variant,#00000014);border-radius:8px}.link-preview.material .skeleton-line.skeleton-title{height:18px;margin-bottom:8px}.link-preview.material .skeleton-line.skeleton-desc{height:14px}@keyframes skeleton-shimmer{0%,to{opacity:.7}50%{opacity:1}}.emoji-picker-backdrop{z-index:1000;background:#0006;justify-content:center;align-items:flex-end;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.emoji-picker-sheet{background:var(--color-bg);border-radius:20px 20px 0 0;flex-direction:column;width:100%;max-width:420px;height:70vh;max-height:700px;animation:.35s cubic-bezier(.32,.72,0,1) sheetSlideIn;display:flex;overflow:hidden;box-shadow:0 -4px 20px #0000001a}.emoji-picker-handle{flex-shrink:0;justify-content:center;padding:12px 0 8px;display:flex}.emoji-picker-handle-bar{background:var(--color-text-secondary);opacity:.3;border-radius:2px;width:36px;height:4px}.emoji-picker-header{flex-shrink:0;justify-content:space-between;align-items:center;padding:0 16px 12px;display:flex}.emoji-picker-title{margin:0;font-size:18px;font-weight:600}.emoji-picker-close{cursor:pointer;color:var(--color-text-secondary);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:8px;transition:background-color .15s,transform .15s;display:flex}.emoji-picker-close:hover{background:#0000000d}.emoji-picker-close:active{transform:scale(.95)}.emoji-picker-toggle{background:var(--input-container-bg);border-radius:12px;flex-shrink:0;grid-template-columns:1fr 1fr 1fr;margin:0 16px 12px;padding:4px;display:grid;position:relative}.toggle-btn{cursor:pointer;color:var(--color-text-secondary);z-index:1;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 4px;font-size:13px;font-weight:600;transition:color .2s;display:flex;position:relative}.toggle-btn.active{color:var(--color-text)}.toggle-indicator{background:var(--color-bg);border-radius:8px;width:calc(33.333% - 5px);height:calc(100% - 8px);transition:transform .3s cubic-bezier(.34,1.56,.64,1);position:absolute;top:4px;left:4px;box-shadow:0 2px 4px #0000001a}.toggle-indicator.pos-emoji{transform:translate(0%)}.toggle-indicator.pos-sticker{transform:translate(100%)translate(4px)}.toggle-indicator.pos-gif{transform:translate(200%)translate(8px)}.mode-hint{color:var(--color-text-secondary);align-items:center;gap:6px;margin-bottom:12px;font-size:12px;display:flex}.mode-hint svg{opacity:.6}.emoji-category-tabs{flex-shrink:0;gap:4px;padding:0 16px 8px;display:flex;overflow-x:auto}.emoji-category-tabs::-webkit-scrollbar{display:none}.category-tab{cursor:pointer;opacity:.5;background:0 0;border:none;border-radius:8px;padding:8px;font-size:20px;transition:opacity .15s,transform .15s,background-color .15s}.category-tab:hover{opacity:.8;background:#0000000d}.category-tab.active{opacity:1;background:var(--input-container-bg)}.emoji-picker-content{flex-direction:column;flex:1;padding:0 16px 16px;display:flex;overflow-y:auto}.emoji-picker-content.no-padding{padding:0}.gif-search-bar{flex-shrink:0;padding:0 16px 12px}.gif-input-wrapper{background:var(--input-container-bg);border-radius:10px;align-items:center;height:36px;padding:0 10px;display:flex}.gif-search-icon{color:var(--color-text-secondary);margin-right:8px}.gif-input{color:var(--color-text);background:0 0;border:none;outline:none;flex:1;font-size:14px}.gif-input::placeholder{color:var(--color-text-secondary);opacity:.7}.gif-scroll-area{flex:1;padding:0 16px 16px;overflow-y:auto}.gif-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.gif-item{aspect-ratio:1.33;background:var(--input-container-bg);cursor:pointer;border-radius:8px;position:relative;overflow:hidden}.gif-item img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;transition:transform .2s}.gif-item:hover img{transform:scale(1.05)}.gif-status,.gif-loading-more{text-align:center;color:var(--color-text-secondary);padding:24px;font-size:14px}.gif-attribution{text-align:center;color:var(--color-text-secondary);opacity:.5;margin-top:12px;font-size:10px}.category-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;font-size:12px;font-weight:600}.emoji-grid-picker{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:4px;display:grid}.sticker-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px;display:grid}.sticker-option{aspect-ratio:1;background:var(--input-container-bg);cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;padding:8px;transition:transform .2s cubic-bezier(.34,1.56,.64,1),background-color .15s,box-shadow .15s;display:flex}.sticker-option:hover{background:#00000014;transform:scale(1.08);box-shadow:0 2px 8px #0000001a}.sticker-option:active{transform:scale(.95)}.sticker-img{-o-object-fit:contain;object-fit:contain;width:100%;height:100%}.emoji-option{aspect-ratio:1;cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;transition:transform .2s cubic-bezier(.34,1.56,.64,1),background-color .15s;display:flex}.emoji-option:hover{background:#0000000d;transform:scale(1.1)}.emoji-option:active{transform:scale(.95)}.emoji-char{font-size:26px;line-height:1}.emoji-empty{text-align:center;color:var(--color-text-secondary);padding:32px;font-size:14px}[data-theme=material] .emoji-picker-sheet{background:var(--md3-surface,#fef7ff);border-radius:28px 28px 0 0}[data-theme=material] .emoji-picker-handle-bar{background:var(--md3-outline-variant,#cac4d0)}[data-theme=material] .emoji-picker-toggle{background:var(--md3-surface-variant,#e7e0ec);border-radius:16px}[data-theme=material] .toggle-btn{border-radius:12px}[data-theme=material] .toggle-indicator{background:var(--md3-surface,#fef7ff);border-radius:12px}[data-theme=material] .category-tab{border-radius:12px}[data-theme=material] .category-tab.active{background:var(--md3-primary-container,#eaddff)}[data-theme=material] .emoji-option{border-radius:12px}[data-theme=material] .emoji-option:hover{background:#6750a414}[data-theme=material] .sticker-option{background:var(--md3-surface-variant,#e7e0ec);border-radius:16px}[data-theme=material] .sticker-option:hover{background:#6750a41f}[data-theme=material] .sticker-grid{gap:12px}[data-theme=material] .gif-input-wrapper{background:var(--md3-surface-variant,#e7e0ec);border-radius:16px}.lightbox{z-index:200;background:#000000f2;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox-image{-o-object-fit:contain;object-fit:contain;border-radius:4px;max-width:95vw;max-height:95vh;box-shadow:0 25px 50px #00000040}.lightbox-close{color:#fffc;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;padding:12px;transition:color .2s,background-color .2s,transform .15s;animation:.3s ease-out .2s backwards fadeIn;position:absolute;top:16px;right:16px}.lightbox-close:hover{color:#fff;background:#c2c2c2;transform:scale(1.1)}.avatar-picker-overlay{z-index:50;cursor:default;position:fixed;inset:0}.avatar-picker{background:var(--color-bg);border:1px solid var(--color-header-border);z-index:51;transform-origin:100% 0;border-radius:16px;width:300px;max-width:90vw;padding:16px;animation:.25s cubic-bezier(.32,.72,0,1) forwards modalScaleIn;position:absolute;top:60px;right:16px;box-shadow:0 10px 40px #0003}.avatar-picker-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.avatar-picker-title{color:var(--color-text);font-size:16px;font-weight:600}.avatar-grid{grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:12px;display:grid}.avatar-option{aspect-ratio:1;cursor:pointer;background:#e0e0e0;border:2px solid #0000;border-radius:50%;padding:0;transition:transform .2s cubic-bezier(.32,.72,0,1),border-color .2s,box-shadow .2s;animation:.3s ease-out backwards floatIn;overflow:hidden}.avatar-option:first-child{animation-delay:80ms}.avatar-option:nth-child(2){animation-delay:.11s}.avatar-option:nth-child(3){animation-delay:.14s}.avatar-option:nth-child(4){animation-delay:.17s}.avatar-option:nth-child(5){animation-delay:.2s}.avatar-option:nth-child(6){animation-delay:.23s}.avatar-option:nth-child(7){animation-delay:.26s}.avatar-option:nth-child(8){animation-delay:.29s}.avatar-option:nth-child(9){animation-delay:.32s}.avatar-option:nth-child(10){animation-delay:.35s}.avatar-option:nth-child(11){animation-delay:.38s}.avatar-option:nth-child(12){animation-delay:.41s}.avatar-option:hover{border-color:var(--color-text-secondary);transform:scale(1.12)}.avatar-option:active{transform:scale(.95)}.avatar-option.selected{border-color:var(--bubble-sent-bg);box-shadow:0 0 0 3px #007aff40}.avatar-option.selected:hover{transform:scale(1.05)}.avatar-option img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.avatar-loading{text-align:center;color:#6b7280;padding:16px 0}.reaction-sheet-overlay{z-index:100;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.reaction-sheet-backdrop{background:#0006;animation:.25s ease-out forwards fadeIn;position:absolute;inset:0}.reaction-sheet{background:var(--color-bg);border-radius:24px 24px 0 0;flex-direction:column;width:100%;max-width:448px;max-height:70vh;animation:.35s cubic-bezier(.32,.72,0,1) forwards sheetSlideIn;display:flex;position:relative;overflow:hidden;box-shadow:0 -10px 40px #0003}.reaction-sheet-handle{cursor:pointer;justify-content:center;width:100%;padding-top:12px;padding-bottom:4px;display:flex}.reaction-sheet-handle-bar{background:#d1d5db;border-radius:9999px;width:48px;height:6px}.reaction-sheet-header{border-bottom:1px solid var(--input-border);padding:16px}.reaction-sheet-title{text-align:center;color:var(--color-text);margin:0;font-weight:700}.reaction-sheet-list{padding:16px;overflow-y:auto}.reaction-sheet-empty{text-align:center;color:#6b7280;padding:32px 0}.reaction-sheet-item{border-radius:12px;justify-content:space-between;align-items:center;padding:8px;transition:background-color .15s;display:flex}.reaction-sheet-item:hover{background:var(--input-container-bg)}.reaction-sheet-item+.reaction-sheet-item{margin-top:12px}.reaction-sheet-user{align-items:center;gap:12px;display:flex;overflow:hidden}.reaction-sheet-avatar{background:#e5e7eb;border-radius:9999px;flex-shrink:0;width:40px;height:40px;overflow:hidden}.reaction-sheet-avatar img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.reaction-sheet-username{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.reaction-sheet-right{flex-shrink:0;align-items:center;gap:12px;display:flex}.reaction-sheet-emoji{font-size:24px}.reaction-sheet-custom-emoji{justify-content:center;align-items:center;display:flex}.reaction-sheet-custom-emoji img{-o-object-fit:contain;object-fit:contain;width:24px;height:24px}.reaction-sheet-remove{color:#ef4444;cursor:pointer;background:#fef2f2;border:none;border-radius:8px;padding:4px 8px;font-size:12px;font-weight:700;transition:background-color .15s}.reaction-sheet-remove:hover{background:#fee2e2}.reaction-sheet-footer{border-top:1px solid var(--input-border);background:var(--input-container-bg);padding:16px;padding-bottom:max(16px, env(safe-area-inset-bottom));flex-direction:column;gap:8px;display:flex}.action-btn-sheet{background:var(--input-bg);width:100%;color:var(--color-text);border:1px solid var(--input-border);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px;font-weight:600;transition:all .15s;display:flex}.action-btn-sheet:hover{background:var(--input-container-bg)}.action-btn-sheet.active{background:var(--bubble-sent-bg);color:#fff;border-color:var(--bubble-sent-bg)}.delete-btn{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px;font-weight:700;transition:background-color .15s;display:flex;box-shadow:0 1px 2px #0000000d}.delete-btn:hover{background:#dc2626}.toast{-webkit-backdrop-filter:blur(12px);color:#fff;z-index:150;white-space:nowrap;background:#000000d9;border-radius:9999px;padding:12px 24px;font-size:14px;font-weight:500;animation:.3s cubic-bezier(.32,.72,0,1) slideInFromBottom;position:fixed;bottom:96px;left:50%;transform:translate(-50%);box-shadow:0 10px 25px #0003}.chat-container{background:var(--color-bg);flex-direction:column;height:100%;transition:background-color .3s;display:flex;position:relative}.messages-area{flex:1;padding:16px 8px 8px;overflow-y:auto}.message-row{flex-direction:column;width:100%;margin-bottom:4px;display:flex;position:relative}.message-time{color:var(--color-text-secondary);text-align:center;opacity:.6;-webkit-user-select:none;user-select:none;margin:16px 0;font-size:12px;font-weight:500}.message-container{touch-action:pan-y;align-items:flex-end;padding:0 8px;transition:transform .3s cubic-bezier(.22,1,.36,1);display:flex}.message-container.is-dragging{transition:none}.message-container.justify-end{justify-content:flex-end}.message-content-col{flex-direction:column;max-width:75%;display:flex}@media (width>=768px){.message-content-col{max-width:70%}}.message-content-col.items-end{align-items:flex-end}.message-content-col.items-start{align-items:flex-start}.message-author{color:var(--color-text-secondary);-webkit-user-select:none;user-select:none;margin-bottom:4px;margin-left:4px;font-size:12px;font-weight:500}.bubble-wrapper{align-items:center;gap:8px;display:flex;position:relative}.bubble-wrapper.flex-row-reverse{flex-direction:row-reverse}.desktop-actions{opacity:0;align-items:center;gap:4px;transition:opacity .2s;display:none}@media (width>=768px){.desktop-actions{display:flex}}.bubble-wrapper:hover .desktop-actions{opacity:1}.action-btn{background:var(--color-bg);color:var(--color-text-secondary);cursor:pointer;border:1px solid #f3f4f6;border-radius:9999px;justify-content:center;align-items:center;padding:6px;transition:background-color .15s,transform .2s cubic-bezier(.34,1.56,.64,1);display:flex;box-shadow:0 1px 2px #0000000d}.action-btn:hover{background:#f3f4f6;transform:scale(1.08)}.action-btn:active{transform:scale(.95)}.reply-context{box-sizing:border-box;background:#0000000d;border-left:4px solid #0003;border-radius:4px;width:calc(120px + 8vw);min-width:0;max-width:100%;margin-bottom:8px;padding:8px;font-size:12px}.reply-author{opacity:.7;margin-bottom:2px;font-weight:700}.reply-text{opacity:.6;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attachment-img{-o-object-fit:cover;object-fit:cover;cursor:pointer;border-radius:8px;width:100%;max-height:300px;transition:opacity .15s,transform .3s cubic-bezier(.22,1,.36,1);display:block;box-shadow:0 1px 2px #0000000d}.attachment-img:hover{opacity:.95;transform:scale(1.01)}.attachment-video{border-radius:8px;max-width:100%;display:block;box-shadow:0 1px 2px #0000000d}.attachment-audio{width:100%;min-width:200px;display:block}.attachment-file{color:inherit;background:#0000000d;border-radius:8px;align-items:center;gap:8px;padding:12px;text-decoration:none;transition:background-color .15s,transform .2s cubic-bezier(.34,1.56,.64,1);display:flex}.attachment-file:hover{background:#0000001a;transform:translateY(-1px)}.attachment-file-name{text-overflow:ellipsis;white-space:nowrap;text-underline-offset:2px;font-size:14px;font-weight:500;text-decoration:underline;text-decoration-thickness:1px;overflow:hidden}.attachment-more-overlay{color:#fff;cursor:pointer;z-index:10;background:#00000080;border-radius:8px;justify-content:center;align-items:center;font-size:20px;font-weight:700;transition:background-color .15s;display:flex;position:absolute;inset:0}.attachment-more-overlay:hover{background:#0009}.reaction-picker-wrapper{margin-top:4px}.reply-preview{background:0 0;justify-content:space-between;align-items:center;min-width:0;padding:6px 8px 6px 12px;animation:.3s cubic-bezier(.34,1.56,.64,1) forwards slideInFromBottom;display:flex;overflow:hidden}.reply-preview-content{flex-direction:column;flex:1;min-width:0;padding-left:16px;animation:.25s cubic-bezier(.34,1.56,.64,1) 50ms backwards slideInLeft;display:flex;overflow:hidden}.reply-preview-label{color:var(--bubble-sent-bg);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;overflow:hidden}.reply-preview-text{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;overflow:hidden}.reply-preview-close{cursor:pointer;color:var(--color-text-secondary);background:0 0;border:none;border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;margin-left:8px;padding:4px;transition:background-color .15s,transform .2s cubic-bezier(.34,1.56,.64,1),color .15s;display:flex}.reply-preview-close:hover{color:#ef4444;background:#ef44441a;transform:scale(1.1)}.reply-preview-close:active{transform:scale(.9)}.file-preview-container{border-bottom:1px solid var(--input-border);gap:8px;padding:8px 12px;display:flex;overflow-x:auto}.file-preview-item{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:12px;flex-shrink:0;width:64px;height:64px;animation:.35s cubic-bezier(.34,1.56,.64,1) backwards fileItemPop;position:relative;overflow:hidden;box-shadow:0 1px 2px #0000000d}.file-preview-item:first-child{animation-delay:50ms}.file-preview-item:nth-child(2){animation-delay:.1s}.file-preview-item:nth-child(3){animation-delay:.15s}.file-preview-item:nth-child(4){animation-delay:.2s}.file-preview-item:nth-child(5){animation-delay:.25s}.file-preview-item:nth-child(6){animation-delay:.3s}.file-preview-item:nth-child(7){animation-delay:.35s}.file-preview-item:nth-child(8){animation-delay:.4s}.file-preview-item:nth-child(9){animation-delay:.45s}.file-preview-item:nth-child(10){animation-delay:.5s}.file-preview-item img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}@keyframes fileItemPop{0%{opacity:0;transform:scale(.7)translateY(10px)}60%{transform:scale(1.05)translateY(-2px)}to{opacity:1;transform:scale(1)translateY(0)}}.file-preview-placeholder{color:#9ca3af;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.file-preview-remove{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:0 0 0 8px;justify-content:center;align-items:center;width:20px;height:20px;transition:background-color .15s,transform .15s cubic-bezier(.34,1.56,.64,1);display:flex;position:absolute;top:0;right:0}.file-preview-remove:hover{background:#dc2626;transform:scale(1.1)}.guest-footer{background:var(--input-container-bg);border-top:1px solid var(--input-border);text-align:center;color:var(--color-text-secondary);padding:12px 16px;padding-bottom:max(16px, env(safe-area-inset-bottom));font-size:12px;font-weight:500}.guest-footer-hint{opacity:.7}.new-messages-indicator{bottom:calc(var(--composer-height,72px) + 8px);background:var(--bubble-sent-bg);color:#fff;cursor:pointer;z-index:40;border:none;border-radius:9999px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000026}.scroll-btn-enter-active{animation:.5s cubic-bezier(.34,1.56,.64,1) scrollBtnEnter}.scroll-btn-leave-active{animation:.3s ease-out scrollBtnExit}@keyframes scrollBtnEnter{0%{opacity:0;transform:translate(-50%)scale(.5)translateY(20px)}60%{opacity:1;transform:translate(-50%)scale(1.08)translateY(-4px)}80%{transform:translate(-50%)scale(.96)translateY(2px)}to{transform:translate(-50%)scale(1)translateY(0)}}@keyframes scrollBtnExit{0%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%)scale(.6)translateY(10px)}}.empty-state{flex-direction:column;justify-content:center;align-items:center;height:100%;animation:.5s ease-out .2s backwards fadeIn;display:flex}.empty-state-icon{color:var(--color-text-secondary);opacity:.4;margin-bottom:16px;animation:3s ease-in-out infinite subtlePulse}.empty-state-text{color:var(--color-text);opacity:.5;margin:0;font-size:18px;font-weight:500}.empty-state-subtitle{color:var(--color-text-secondary);opacity:.5;margin:6px 0 0;font-size:13px}.loading-text{text-align:center;color:var(--color-text-secondary);padding:16px;font-size:14px;animation:2s infinite pulseSoft}.pinned-section{background:var(--input-container-bg);border:1px solid var(--input-border);border-radius:16px;margin:0 8px 16px;padding:12px;animation:.3s ease-out floatIn}.pinned-header{color:var(--bubble-sent-bg);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;margin-bottom:12px;padding:0 8px;font-size:11px;font-weight:700;display:flex}.pinned-header svg{opacity:.8}.pinned-divider{display:none}.toast{color:#fff;z-index:1000;background:#000000d9;border-radius:12px;padding:12px 24px;font-size:14px;font-weight:500;position:fixed;bottom:100px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000026}.toast-enter-active{animation:.4s cubic-bezier(.34,1.56,.64,1) toastEnter}.toast-leave-active{animation:.25s ease-out toastExit}@keyframes toastEnter{0%{opacity:0;transform:translate(-50%)translateY(24px)scale(.9)}60%{transform:translate(-50%)translateY(-4px)scale(1.02)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}@keyframes toastExit{0%{opacity:1;transform:translate(-50%)translateY(0)scale(1)}to{opacity:0;transform:translate(-50%)translateY(16px)scale(.95)}}.lightbox{z-index:1000;background:#000000e6;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.lightbox-image{-o-object-fit:contain;object-fit:contain;border-radius:8px;max-width:100%;max-height:100%}.lightbox-close{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:background-color .15s,transform .2s cubic-bezier(.34,1.56,.64,1);display:flex;position:absolute;top:16px;right:16px}.lightbox-close:hover{background:#fff3;transform:scale(1.1)}.lightbox-close:active{transform:scale(.95)}.lightbox-nav{color:#fff;cursor:pointer;z-index:1001;background:#0006;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:background .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-nav:hover{background:#000000b3}.lightbox-nav.prev{left:20px}.lightbox-nav.next{right:20px}.lightbox-counter{color:#fff;text-shadow:0 1px 2px #00000080;z-index:1001;font-size:16px;font-weight:600;position:absolute;top:20px;left:20px}.lightbox-content{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.lightbox-enter-active{animation:.25s ease-out lightboxFadeIn}.lightbox-enter-active .lightbox-image{animation:.4s cubic-bezier(.34,1.56,.64,1) lightboxImageEnter}.lightbox-leave-active{animation:.2s ease-out lightboxFadeOut}.lightbox-leave-active .lightbox-image{animation:.2s ease-out lightboxImageExit}@keyframes lightboxFadeIn{0%{opacity:0}to{opacity:1}}@keyframes lightboxFadeOut{0%{opacity:1}to{opacity:0}}@keyframes lightboxImageExit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.login-container{background:var(--input-container-bg);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--color-bg);border-radius:20px;width:100%;max-width:400px;padding:40px 30px;box-shadow:0 4px 24px #00000014}.login-header{text-align:center;margin-bottom:24px}.login-icon{color:#3b82f6;background:#dbeafe;border-radius:9999px;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 16px;display:flex}.login-title{margin:0;font-size:20px;font-weight:600}.login-subtitle{color:#6b7280;margin-top:4px;font-size:14px}.login-form{flex-direction:column;gap:16px;display:flex}.login-input{border:1px solid var(--color-header-border);background:var(--input-bg);width:100%;color:var(--color-text);border-radius:12px;outline:none;padding:12px 16px;font-size:16px;transition:border-color .2s,box-shadow .2s}.login-input:focus{border-color:var(--bubble-sent-bg);box-shadow:0 0 0 3px #007aff1a}.login-error{color:#ef4444;text-align:center;font-size:14px}.login-btn{background:var(--bubble-sent-bg);width:100%;color:var(--bubble-sent-text);cursor:pointer;border:none;border-radius:12px;padding:14px;font-size:16px;font-weight:600;transition:opacity .2s,transform .15s cubic-bezier(.34,1.56,.64,1)}.login-btn:hover{opacity:.9}.login-btn:active{transform:scale(.98)}.login-btn:disabled{opacity:.5;cursor:not-allowed}.login-footer{text-align:center;margin-top:24px}.login-back{color:#6b7280;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;gap:4px;margin:0 auto;font-size:14px;display:flex}.login-back:hover{color:#374151}.hidden-mobile{display:none}@media (width>=640px){.hidden-mobile{display:inline}}.safe-area-pb{padding-bottom:max(16px, env(safe-area-inset-bottom))}[data-theme=material] .message-container{transition:transform .45s cubic-bezier(.34,1.56,.64,1)}[data-theme=material] .message-container.is-dragging{transition:none}
