:root{--font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Helvetica Neue", Helvetica, Arial, sans-serif;--color-bg: #FFFFFF;--color-header-bg: rgba(245, 245, 245, .85);--color-header-border: #C6C6C8;--header-height: 54px;--header-shadow: none;--header-backdrop: blur(20px);--color-text: #000000;--color-text-secondary: #8E8E93;--bubble-sent-bg: #007AFF;--bubble-sent-text: #FFFFFF;--bubble-received-bg: #E9E9EB;--bubble-received-text: #000000;--radius-bubble: 18px;--radius-bubble-sm: 4px;--input-container-bg: #F2F2F7;--input-bg: #FFFFFF;--input-border: #C6C6C8;--input-radius: 20px;--avatar-radius: 50%;--avatar-border: 2px solid transparent;--avatar-border-hover: 2px solid rgba(0, 0, 0, .1);--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: #FFFFFF;--bubble-received-bg: #E8DEF8;--bubble-received-text: #1D1B20;--radius-bubble: 20px;--radius-bubble-sm: 4px;--input-container-bg: #F3EDF7;--input-bg: #FFFFFF;--input-border: #79747E;--input-radius: 16px;--avatar-radius: 8px;--avatar-border: none;--avatar-border-hover: none;--avatar-border-active: 3px solid #6750A4;--animation-message-enter: md3MessageEnter .55s cubic-bezier(.05, .7, .1, 1);--animation-message-move: transform .4s cubic-bezier(.05, .7, .1, 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-primary: #6750A4;--md3-on-primary: #FFFFFF;--md3-primary-container: #EADDFF;--md3-on-primary-container: #21005D;--md3-surface: #FEF7FF;--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: #FFFFFF;--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{margin:0;padding:0;height:100%;background:var(--color-bg);font-family:var(--font-family);color:var(--color-text);font-size:16px;line-height:1.5;transition:background-color .3s ease,color .3s ease}#app{height:100%;display:flex;flex-direction:column}::-webkit-scrollbar{width:6px;background:transparent}::-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 fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes popIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes typingBounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}@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;max-height:0;transform:scaleY(.8);transform-origin:bottom}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;max-height:0;transform:scaleY(.8);transform-origin:bottom}}@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%{transform:scale(0);opacity:0}50%{transform:scale(1.3);opacity:1}70%{transform:scale(.9)}85%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes md3ReactionRemove{0%{transform:scale(1);opacity:1}30%{transform:scale(1.1);opacity:.8}to{transform:scale(0);opacity: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 md3SendPulse{0%{transform:scale(1)}50%{transform:scale(.92)}to{transform:scale(1)}}@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;transform:scale(.7);filter:brightness(1.1)}50%{transform:scale(1.03)}70%{transform:scale(.99)}to{opacity:1;transform:scale(1);filter:brightness(1)}}@keyframes md3MediaCollapse{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes md3ContainerTransform{0%{clip-path:circle(24px at center);transform:scale(.5)}60%{clip-path:circle(100% at center);transform:scale(1.02)}to{clip-path:circle(100% at center);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%{transform:scale(0);opacity:.4}to{transform:scale(2.5);opacity:0}}@keyframes lightboxEnter{0%{opacity:0}to{opacity:1}}.message-enter-active{animation:var(--animation-message-enter);z-index:1}.message-leave-active{animation:fadeOut .3s ease-out;position:absolute;width:100%;z-index:0}.message-move{transition:var(--animation-message-move)}.slide-up-enter-active{animation:slideUp .3s cubic-bezier(.34,1.56,.64,1)}.slide-up-leave-active{animation:slideDown .25s cubic-bezier(.22,1,.36,1)}.fade-enter-active{animation:fadeIn .2s ease-out}.fade-leave-active{animation:fadeOut .15s ease-out}.modal-backdrop-enter-active{animation:fadeIn .2s ease-out}.modal-backdrop-leave-active{animation:fadeOut .2s ease-out}.modal-content-enter-active{animation:modalScaleIn .25s cubic-bezier(.34,1.56,.64,1)}.modal-content-leave-active{animation:fadeOut .2s ease-out}.sheet-enter-active{animation:sheetSlideIn .35s cubic-bezier(.34,1.56,.64,1)}.sheet-leave-active{animation:slideDown .25s cubic-bezier(.22,1,.36,1)}.file-enter-active{animation:slideInFromBottom .2s cubic-bezier(.34,1.56,.64,1)}.file-leave-active{animation:fadeOut .15s ease-out}.expand-enter-active{animation:expandIn .4s cubic-bezier(.34,1.56,.64,1);overflow:hidden}.expand-leave-active{animation:expandOut .25s ease-out;overflow:hidden}.stagger-item{animation:floatIn .3s ease-out backwards}.stagger-item:nth-child(1){animation-delay:.03s}.stagger-item:nth-child(2){animation-delay:.06s}.stagger-item:nth-child(3){animation-delay:.09s}.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}.scroll-btn-enter-active{animation:md3ScrollBtnEnter .5s cubic-bezier(.34,1.56,.64,1)}.scroll-btn-leave-active{animation:md3ScrollBtnExit .3s cubic-bezier(.22,1,.36,1)}.toast-enter-active{animation:md3ToastEnter .4s cubic-bezier(.34,1.56,.64,1)}.toast-leave-active{animation:md3ToastExit .25s ease-out}.lightbox-enter-active{animation:lightboxEnter .25s ease-out}.lightbox-leave-active{animation:fadeOut .2s ease-out}.slide-next-enter-active,.slide-next-leave-active,.slide-prev-enter-active,.slide-prev-leave-active{transition:all .25s ease-out;will-change:transform,opacity}.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 .55s cubic-bezier(.05, .7, .1, 1);--animation-message-move: transform .4s cubic-bezier(.05, .7, .1, 1)}[data-theme=material] .reaction-btn.just-added{animation:md3ReactionPop .45s cubic-bezier(.34,1.56,.64,1)}[data-theme=material] .reaction-btn.removing{animation:md3ReactionRemove .3s ease-out forwards}[data-theme=material] .bubble.long-pressed{animation:md3LongPressLift .2s cubic-bezier(.22,1,.36,1) forwards}[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:md3SendPulse .15s ease-out}[data-theme=material] .send-btn.send-btn--sending .send-btn-icon{animation:md3SendBtnActivate .5s cubic-bezier(.34,1.56,.64,1)}[data-theme=material] .send-btn.send-btn--error{animation:md3ErrorShake .6s ease-out}[data-theme=material] .sticker-message{animation:md3StickerPop .5s cubic-bezier(.34,1.56,.64,1)}[data-theme=material] .message-row.adjacent-nudge{animation:md3GroupNudge .35s cubic-bezier(.22,1,.36,1)}[data-theme=material] .lightbox-image{animation:none}[data-theme=material] .lightbox-enter-active .lightbox-image{animation:md3MediaExpand .45s cubic-bezier(.34,1.56,.64,1)}.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:"";position:absolute;top:50%;left:50%;width:100%;padding-bottom:100%;border-radius:50%;background:currentColor;opacity:0;transform:translate(-50%,-50%) scale(0);pointer-events:none}.ripple-container:active:after{animation:md3Ripple .6s ease-out}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:var(--header-height);background:var(--color-header-bg);border-bottom:1px solid var(--color-header-border);backdrop-filter:var(--header-backdrop);-webkit-backdrop-filter:var(--header-backdrop);box-shadow:var(--header-shadow);position:sticky;top:0;z-index:50;transition:all .3s ease}.header-left{flex:1;display:flex;align-items:center;min-width:0}.header-center{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 8px;text-align:center}.header-right{flex:1;display:flex;align-items:center;justify-content:flex-end;gap:8px;position:relative;min-width:0}.header-title{font-size:14px;font-weight:700;color:var(--color-text)}.header-subtitle{font-size:10px;color:var(--color-text-secondary);font-weight:500;transition:opacity .2s}.header-btn{display:flex;align-items:center;color:var(--bubble-sent-bg);background:transparent;border:none;cursor:pointer;transition:opacity .2s;white-space:nowrap;font-size:17px;font-weight:500}.header-btn:hover{opacity:.7}.header-btn-text{margin-left:4px}.skeleton-wrapper{padding:16px;display:flex;flex-direction:column;gap:16px;width:100%;animation:fadeOut .2s ease-out}.skeleton-row{display:flex;align-items:flex-end;gap:8px;width:100%}.skeleton-row.skeleton-sent{flex-direction:row-reverse}.skeleton-avatar{width:32px;height:32px;border-radius:50%;background:#0000000f;flex-shrink:0;animation:pulse 1.5s infinite ease-in-out}.skeleton-bubble{height:36px;border-radius:18px;background:#0000000f;animation:pulse 1.5s infinite ease-in-out}.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{width:32px;height:32px;border-radius:var(--avatar-radius);overflow:hidden;background-color:#e5e7eb;transition:border-radius .3s,box-shadow .2s,transform .2s cubic-bezier(.34,1.56,.64,1);border:var(--avatar-border);flex-shrink:0;display:block}.avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.avatar:hover{border:var(--avatar-border-hover)}.avatar-btn{cursor:pointer;padding:0}.avatar-btn:hover{box-shadow:0 0 0 2px #007aff4d;transform:scale(1.05)}.avatar-btn:active{transform:scale(.98)}.avatar-fallback{width:100%;height:100%;background:#d1d5db;display:flex;align-items:center;justify-content:center;color:#6b7280}.avatar-space{width:32px;margin-right:8px;flex-shrink:0;align-self:flex-end}.avatar-spacer{width:32px;height:32px}.bubble-wrapper{display:flex;align-items:center;gap:8px;position:relative;width:-moz-fit-content;width:fit-content;max-width:100%}.bubble-wrapper:hover .desktop-actions{opacity:1;pointer-events:auto}.desktop-actions{display:flex;align-items:center;gap:2px;opacity:0;pointer-events:none;transition:opacity .2s ease-in-out}.action-btn{background:transparent;border:none;color:var(--color-text-secondary);padding:6px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .15s,color .15s,transform .2s cubic-bezier(.34,1.56,.64,1)}.action-btn:hover{background-color:#0000000d;color:var(--color-text);transform:scale(1.1)}.action-btn:active{transform:scale(.92)}.action-btn.active{color:var(--bubble-sent-bg)}.message-stack{display:flex;flex-direction:column;gap:4px;align-items:inherit;max-width:100%}.bubble{min-width:60px;padding:8px 16px;border-radius:var(--radius-bubble);word-wrap:break-word;position:relative;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;box-shadow:0 1px 2px #0000000d;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:-moz-fit-content;width:fit-content}.bubble-sent{background:var(--bubble-sent-bg);color:var(--bubble-sent-text);margin-left:auto;border-bottom-right-radius:4px}.bubble-received{background:var(--bubble-received-bg);color:var(--bubble-received-text);margin-right:auto;border-bottom-left-radius:4px}.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;margin:0;min-width:20px;line-height:1.625}.bubble-attachments{margin-bottom:8px;position:relative;border-radius:8px;overflow:hidden;max-width:100%}.attachment-img,.attachment-video{width:100%;height:auto;display:block;max-height:400px;-o-object-fit:contain;object-fit:contain;background:#000}.attachment-img{-o-object-fit:cover;object-fit:cover;background:transparent;transition:transform .3s cubic-bezier(.22,1,.36,1);cursor:pointer}.attachment-img:hover{transform:scale(1.02)}.reaction-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--color-bg);border:1px solid rgba(0,0,0,.08);border-radius:12px;font-size:12px;cursor:pointer;box-shadow:0 2px 4px #0000000d;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.reaction-pill:hover{transform:scale(1.08)}.reaction-pill.active{border-color:var(--bubble-sent-bg);background:#007aff1a}.reactions-container{margin-top:4px;display:flex;flex-wrap:wrap;gap:4px;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.reactions-container.justify-end{justify-content:flex-end}.reaction-btn{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:9999px;border:1px solid #e5e7eb;background:var(--color-bg);cursor:pointer;transition:transform .2s cubic-bezier(.34,1.56,.64,1),background-color .15s,border-color .15s,box-shadow .15s}.reaction-btn:hover{transform:scale(1.08);box-shadow:0 2px 8px #00000014}.reaction-btn:active{transform:scale(.92)}.reaction-btn.active{border-color:#60a5fa;background:#eff6ff;box-shadow:0 0 0 2px #60a5fa33}.reaction-btn.just-added{animation:reactionPop .3s cubic-bezier(.34,1.56,.64,1)}.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{font-size:12px;font-weight:700;color:#6b7280;transition:color .15s}.reaction-btn.active .reaction-count{color:#3b82f6}.reaction-picker{display:flex;align-items:center;gap:4px;padding:6px;background:var(--color-bg);border-radius:9999px;box-shadow:0 10px 25px #00000026;border:1px solid var(--input-border);animation:popIn .2s cubic-bezier(.34,1.56,.64,1) forwards;transform-origin:center bottom;z-index:10}.reaction-option{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:9999px;font-size:20px;line-height:1;background:transparent;border:none;cursor:pointer;transition:background-color .15s,transform .2s cubic-bezier(.34,1.56,.64,1)}.reaction-option:hover{background:#0000000d;transform:scale(1.15)}.composer-wrapper{background:transparent;position:relative}.input-row{display:flex;align-items:flex-end;gap:8px;padding:8px 12px;padding-bottom:max(12px,env(safe-area-inset-bottom));background:transparent}.input-row:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(to right,transparent,var(--input-border) 20%,var(--input-border) 80%,transparent);opacity:.5}.input-container{display:flex;align-items:flex-end;gap:8px;padding:8px 12px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--input-radius);flex:1;transition:background-color .3s,border-color .2s,box-shadow .2s}.input-container:focus-within{border-color:var(--bubble-sent-bg);box-shadow:0 0 0 3px #007aff1a}.message-input{flex:1;min-height:40px;max-height:120px;padding:10px 4px;border:none;border-radius:0;background:transparent;color:var(--color-text);font-family:inherit;font-size:16px;resize:none;outline:none;line-height:1.4}.message-input::-moz-placeholder{color:var(--color-text-secondary)}.message-input::placeholder{color:var(--color-text-secondary)}.icon-btn{padding:8px;border-radius:50%;color:var(--bubble-sent-bg);transition:background-color .15s,transform .2s cubic-bezier(.34,1.56,.64,1);display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;flex-shrink:0}.icon-btn:hover{background-color:#0000000d;transform:scale(1.08)}.icon-btn:active{transform:scale(.92)}.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{width:40px;height:40px;border-radius:9999px;background:var(--bubble-sent-bg);color:#fff;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;transition:transform .2s cubic-bezier(.34,1.56,.64,1),opacity .15s,box-shadow .15s,background-color .2s;box-shadow:0 4px 6px #0000001a;flex-shrink:0;position:relative;overflow:hidden}.send-btn .send-btn-icon{display:flex;align-items:center;justify-content:center;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.send-btn:hover:not(:disabled){transform:scale(1.08);box-shadow:0 6px 12px #00000026}.send-btn:active:not(:disabled){transform:scale(.92);box-shadow:0 2px 4px #0000001a}.send-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.send-btn.send-btn--sending .send-btn-icon{animation:md3SendBtnActivate .5s cubic-bezier(.34,1.56,.64,1)}.send-btn.send-btn--error{animation:md3ErrorShake .6s ease-out;background:#ef4444}@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 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 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:none}[data-theme=material] .header .header-title{font-weight:500;letter-spacing:0}[data-theme=material] .header .header-subtitle{font-size:12px;color:var(--md3-on-surface-variant, #49454F)}[data-theme=material] .composer-wrapper{background:transparent}[data-theme=material] .input-row{display:flex;align-items:flex-end;gap:12px;padding:8px 12px;padding-bottom:max(12px,env(safe-area-inset-bottom));background:transparent}[data-theme=material] .input-row:before{background:linear-gradient(to right,transparent,var(--md3-outline-variant, #CAC4D0) 15%,var(--md3-outline-variant, #CAC4D0) 85%,transparent);opacity:.6}[data-theme=material] .input-container{background:var(--md3-surface, #FEF7FF);border:1px solid var(--md3-outline, #79747E);border-radius:28px;padding:8px 12px;gap:8px;flex:1;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center}[data-theme=material] .input-container:focus-within{border-color:var(--md3-primary, #6750A4);border-width:2px;padding:7px 11px;box-shadow:none}[data-theme=material] .message-input{background:transparent;border:none;border-radius:0;padding:8px 4px;font-size:16px;width:100%;line-height:1.5;margin:0}[data-theme=material] .message-input:focus{border:none;box-shadow:none;padding:8px 4px}[data-theme=material] .message-input::-moz-placeholder{color:var(--md3-on-surface-variant, #49454F)}[data-theme=material] .message-input::placeholder{color:var(--md3-on-surface-variant, #49454F)}[data-theme=material] .file-preview-inline{width:100%;display:flex;gap:8px;padding-bottom:8px;overflow-x:auto;order:-1}[data-theme=material] .send-btn-inside{display:none!important}[data-theme=material] .send-btn-outside{display:flex!important}[data-theme=material] .send-btn{width:56px;height:56px;border-radius:16px;background:var(--md3-primary, #6750A4);box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f;transition:all .25s cubic-bezier(.05,.7,.1,1);flex-shrink:0}[data-theme=material] .send-btn:hover:not(:disabled){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;transform:scale(1.02)}[data-theme=material] .send-btn:active:not(:disabled){transform:scale(.95)}[data-theme=material] .send-btn:disabled{background:var(--md3-on-surface-variant, #49454F);color:var(--md3-surface, #FEF7FF);opacity:.38;box-shadow:none}[data-theme=material] .icon-btn{border-radius:50%;color:var(--md3-on-surface-variant, #49454F);width:40px;height:40px}[data-theme=material] .icon-btn:hover{background:#6750a414}[data-theme=material] .icon-btn:active{background:#6750a41f}[data-theme=material] .emoji-sticker-btn:hover{color:var(--md3-primary, #6750A4)}[data-theme=material] .message-stack{display:flex;flex-direction:column;width:-moz-fit-content;width:fit-content}[data-theme=material] .bubble{width:-moz-fit-content;width:fit-content}[data-theme=material] .bubble.connected-bottom{width:100%}[data-theme=material] .bubble.bubble-sent{border-radius:20px 20px 4px}[data-theme=material] .bubble.bubble-received{border-radius:20px 20px 20px 4px}[data-theme=material] .bubble.group-sent-first{border-radius:20px 20px 10px 10px}[data-theme=material] .bubble.group-sent-middle{border-radius:10px}[data-theme=material] .bubble.group-sent-last{border-radius:10px 10px 20px 20px}[data-theme=material] .bubble.group-received-first{border-radius:20px 20px 10px 10px}[data-theme=material] .bubble.group-received-middle{border-radius:10px}[data-theme=material] .bubble.group-received-last{border-radius:10px 10px 20px 20px}[data-theme=material] .reaction-btn{border-radius:8px;background:var(--md3-surface-variant, #E7E0EC);border:none}[data-theme=material] .reaction-btn.active{background:var(--md3-primary-container, #EADDFF);border:none}[data-theme=material] .reaction-btn:hover{background:#6750a41f}[data-theme=material] .avatar,[data-theme=material] .avatar.avatar-btn,[data-theme=material] button.avatar-btn{border-radius:10px!important;overflow:hidden}[data-theme=material] .avatar img,[data-theme=material] .avatar.avatar-btn img,[data-theme=material] button.avatar-btn img{border-radius:10px!important}[data-theme=material] .avatar:hover,[data-theme=material] .avatar.avatar-btn:hover,[data-theme=material] button.avatar-btn:hover{box-shadow:0 0 0 2px #6750a44d}[data-theme=material] .avatar-fallback,[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:10px!important}[data-theme=material] .avatar-grid .avatar-option,[data-theme=material] .avatar-grid .avatar-option img{border-radius:10px}[data-theme=material] .header-btn{border-radius:20px;padding:8px 16px;background:transparent}[data-theme=material] .header-btn:hover{background:#6750a414}[data-theme=material] .file-preview-container{background:var(--md3-surface-variant, #E7E0EC);border-top:none}[data-theme=material] .file-preview-item{border-radius:12px;border:1px solid var(--md3-outline-variant, #CAC4D0)}[data-theme=material] .reply-preview{background:var(--md3-surface-variant, #E7E0EC);border-top:none;border-radius:20px 20px 0 0}[data-theme=material] .new-messages-indicator{border-radius:16px;background:var(--md3-primary, #6750A4);box-shadow:0 2px 6px #00000026,0 1px 2px #0000004d;font-weight:500}[data-theme=material] .new-messages-indicator:hover{box-shadow:0 4px 8px #00000026,0 2px 4px #0000004d}[data-theme=material] .toast{border-radius:4px;background:#313033;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}[data-theme=material] .reaction-wrapper{border-radius:28px;background:var(--md3-surface, #FEF7FF);border:none;box-shadow:0 2px 6px #00000026,0 1px 2px #0000004d}[data-theme=material] .reaction-wrapper.expanded{border-radius:28px}[data-theme=material] .picker-tabs{background:var(--md3-surface-variant, #E7E0EC);border-bottom:none}[data-theme=material] .picker-tab{border-radius:16px}[data-theme=material] .picker-tab.active{background:var(--md3-primary-container, #EADDFF)}[data-theme=material] .reaction-sheet{border-radius:28px 28px 0 0;background:var(--md3-surface, #FEF7FF)}[data-theme=material] .reaction-sheet-handle-bar{background:var(--md3-outline-variant, #CAC4D0);width:32px;height:4px;border-radius:2px}[data-theme=material] .reaction-sheet-footer{background:transparent;border-top:none}[data-theme=material] .action-btn-sheet{border-radius:20px;border:1px solid var(--md3-outline, #79747E);background:transparent}[data-theme=material] .action-btn-sheet.active{background:var(--md3-primary, #6750A4);border-color:var(--md3-primary, #6750A4)}[data-theme=material] .delete-btn{border-radius:20px;background:#b3261e}[data-theme=material] .delete-btn:hover{background:#8c1d18}[data-theme=material] .pinned-section{background:var(--md3-surface-variant, #E7E0EC);border-radius:16px;margin:8px;padding:12px}[data-theme=material] .pinned-header{color:var(--md3-on-surface-variant, #49454F)}[data-theme=material] .pinned-divider{background:var(--md3-outline-variant, #CAC4D0)}[data-theme=material] .gif-picker{border-radius:28px 28px 0 0;background:var(--md3-surface, #FEF7FF)}[data-theme=material] .gif-picker-search input{border-radius:28px;border:1px solid var(--md3-outline, #79747E);background:var(--md3-surface, #FEF7FF)}[data-theme=material] .gif-picker-search input:focus{border-color:var(--md3-primary, #6750A4);border-width:2px}[data-theme=material] .admin-panel{border-radius:28px 28px 0 0;background:var(--md3-surface, #FEF7FF)}[data-theme=material] .admin-panel-handle-bar{background:var(--md3-outline-variant, #CAC4D0)}[data-theme=material] .avatar-picker{border-radius:28px;background:var(--md3-surface, #FEF7FF);border:none;box-shadow:0 2px 6px #00000026,0 1px 2px #0000004d}[data-theme=material] .lightbox{background:#00000052}[data-theme=material] .lightbox-close{border-radius:50%;background:var(--md3-surface, #FEF7FF);color:var(--md3-on-surface-variant, #49454F)}[data-theme=material] .skeleton-bubble{border-radius:20px;background:var(--md3-surface-variant, #E7E0EC)}[data-theme=material] .skeleton-avatar{border-radius:8px}.sticker-content{line-height:0;display:flex}.sticker{max-width:150px;max-height:150px;-o-object-fit:contain;object-fit:contain;display:block;margin:4px 0}.sticker-message{background:transparent!important;box-shadow:none!important;padding:0!important;border:none!important;min-width:auto!important}.emoji-only{font-size:48px;line-height:1.2;padding:4px 8px!important;background:transparent!important;box-shadow:none!important;border:none!important;min-width:auto!important}.emoji-only .bubble-text{font-size:inherit;line-height:1.2}.emoji-only-single{font-size:64px}.pinned-label{font-size:10px;color:var(--bubble-sent-bg);margin-bottom:4px;display:flex;align-items:center;gap:4px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;opacity:.8}.pinned-label svg{opacity:.9}.message-author-right{font-size:12px;color:var(--color-text-secondary);margin-right:4px;margin-bottom:4px;font-weight:500;-webkit-user-select:none;-moz-user-select:none;user-select:none;display:flex;align-items:center;gap:4px}.attachment-gif{display:block;width:auto;max-width:100%;max-height:300px;-o-object-fit:contain;object-fit:contain;border-radius:8px;cursor:pointer;background:transparent}.reaction-custom-emoji-wrap{display:flex;align-items:center;justify-content:center}.reaction-custom-emoji{width:18px;height:18px;-o-object-fit:contain;object-fit:contain}.reaction-picker-wrapper{position:relative;display:flex;align-items:center;gap:8px;margin-top:4px}.attachment-file-standalone{display:flex;align-items:center;padding:10px;background:var(--input-container-bg);border:1px solid var(--input-border);border-radius:6px;text-decoration:none;color:var(--color-text);max-width:420px;width:-moz-fit-content;width:fit-content;min-width:200px;transition:background-color .15s,border-color .15s}.attachment-file-standalone:hover{background:var(--color-bg);border-color:var(--color-text-secondary)}.file-icon-wrapper{flex-shrink:0;width:32px;height:32px;margin-right:12px;display:flex;align-items:center;justify-content:center;color:var(--color-text);opacity:.8}.file-info-col{display:flex;flex-direction:column;overflow:hidden;flex:1;gap:2px}.file-name{font-weight:600;font-size:14px;color:#007aff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.attachment-file-standalone:hover .file-name{text-decoration:underline}.file-meta{font-size:11px;color:var(--color-text-secondary);font-weight:500}.file-download-action{margin-left:12px;color:var(--color-text-secondary);opacity:0;transition:opacity .2s}.attachment-file-standalone:hover .file-download-action{opacity:1}.media-standalone-container{max-width:100%;overflow:hidden;border-radius:12px}.media-standalone{position:relative;overflow:hidden;border-radius:12px;background:transparent;cursor:pointer;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column}.connected-top{border-bottom-left-radius:2px!important;border-bottom-right-radius:2px!important;margin-bottom:0!important}.connected-top .media-standalone{border-bottom-left-radius:2px!important;border-bottom-right-radius:2px!important}.connected-bottom{border-top-left-radius:10px!important;border-top-right-radius:10px!important;margin-top:-2px}.bubble{max-width:85%;width:-moz-fit-content;width:fit-content}.bubble .bubble-text{overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap;min-width:0}.reaction-wrapper{background:var(--color-bg);border-radius:9999px;box-shadow:0 4px 20px #00000026;border:1px solid var(--input-border);overflow:hidden;z-index:50;transition:all .2s cubic-bezier(.32,.72,0,1)}.reaction-wrapper.expanded{border-radius:16px;width:320px;height:300px;display:flex;flex-direction:column}.compact-picker{display:flex;align-items:center;padding:4px;gap:2px}.compact-option{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:20px;background:transparent;border:none;cursor:pointer;border-radius:50%;transition:transform .15s cubic-bezier(.34,1.56,.64,1),background-color .15s;padding:0}.compact-option:hover{transform:scale(1.15);background:#0000000d}.compact-option:active{transform:scale(.95)}.compact-custom-img{width:22px;height:22px;-o-object-fit:contain;object-fit:contain}.add-btn{color:var(--color-text-secondary);background:#0000000d}.add-btn:hover{background:#0000001a;color:var(--color-text)}.close-btn{color:var(--color-text-secondary)}.close-btn:hover{background:#ef44441a;color:#ef4444}.delete-btn-compact{color:var(--color-text-secondary)}.delete-btn-compact:hover{background:#ef44441a;color:#ef4444}.expanded-picker{display:flex;flex-direction:column;height:100%;animation:fadeIn .2s ease-out}.picker-tabs{display:flex;padding:8px;gap:4px;overflow-x:auto;border-bottom:1px solid var(--input-border);background:var(--input-container-bg)}.picker-tabs::-webkit-scrollbar{display:none}.picker-tab{padding:6px 10px;border-radius:8px;background:transparent;border:none;cursor:pointer;font-size:16px;opacity:.6;transition:all .2s}.picker-tab:hover{background:#0000000d;opacity:.8}.picker-tab.active{background:var(--color-bg);opacity:1;box-shadow:0 1px 2px #0000000d}.picker-tab.close-tab{opacity:.5;font-size:14px;color:var(--color-text-secondary)}.picker-tab.close-tab:hover{opacity:1;background:#ef44441a;color:#ef4444}.picker-content{flex:1;overflow-y:auto;padding:12px}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(32px,1fr));gap:8px}.reaction-option{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:20px;background:transparent;border:none;cursor:pointer;transition:transform .15s cubic-bezier(.34,1.56,.64,1)}.reaction-option:hover{transform:scale(1.15);background:#0000000d}.reaction-option:active{transform:scale(.95)}.custom-option img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn .15s ease-out}.panel{width:90%;max-width:480px;max-height:80vh;background:var(--color-bg);border-radius:16px;display:flex;flex-direction:column;box-shadow:0 20px 50px #0000004d;overflow:hidden;animation:slideUp .2s ease-out}.header{padding:16px 20px;border-bottom:1px solid var(--input-border);display:flex;justify-content:space-between;align-items:center}.header h2{margin:0;font-size:18px;font-weight:600}.close-btn{background:transparent;border:none;cursor:pointer;padding:6px;border-radius:8px;color:var(--color-text-secondary);display:flex}.close-btn:hover{background:var(--input-container-bg)}.content{padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.upload-zone{border:2px dashed var(--input-border);border-radius:12px;padding:32px 20px;text-align:center;position:relative;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:12px}.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{margin:0;color:var(--color-text-secondary);font-size:14px}.upload-icon{color:var(--color-text-secondary);opacity:.5}.file-input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.emoji-preview{width:64px;height:64px;-o-object-fit:contain;object-fit:contain;border-radius:8px}.name-input{padding:10px 14px;border:1px solid var(--input-border);border-radius:8px;background:var(--input-bg);color:var(--color-text);font-size:14px;text-align:center;width:180px}.name-input:focus{outline:none;border-color:var(--bubble-sent-bg)}.hint{font-family:monospace;color:var(--color-text-secondary);font-size:13px}.upload-actions{display:flex;gap:10px;margin-top:4px}.btn-primary,.btn-secondary{padding:10px 20px;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;border:none}.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{display:flex;flex-wrap:wrap;gap:8px}.emoji-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--input-container-bg);border-radius:8px}.emoji-item img{width:24px;height:24px;-o-object-fit:contain;object-fit:contain}.emoji-name{font-size:13px;color:var(--color-text-secondary);font-family:monospace}.delete-btn{background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;padding:4px;border-radius:4px;display:flex;opacity:.5}.delete-btn:hover{opacity:1;color:#ef4444;background:#ef44441a}.empty-state{text-align:center;padding:20px;color:var(--color-text-secondary)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.gif-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0006;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .2s ease-out}@media (min-width: 640px){.gif-picker-overlay{align-items:center}}.gif-picker{width:100%;max-width:500px;max-height:70vh;background:var(--color-bg);border-radius:20px 20px 0 0;box-shadow:0 -10px 40px #0003;display:flex;flex-direction:column;overflow:hidden;animation:sheetSlideIn .3s cubic-bezier(.32,.72,0,1)}@media (min-width: 640px){.gif-picker{border-radius:20px;max-height:500px;animation:modalScaleIn .25s cubic-bezier(.32,.72,0,1)}}.gif-picker-header{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--input-border)}.gif-search-container{flex:1;display:flex;align-items:center;background:var(--input-container-bg);border-radius:12px;padding:0 12px}.gif-search-icon{color:var(--color-text-secondary);flex-shrink:0}.gif-search-input{flex:1;padding:10px 8px;border:none;background:transparent;color:var(--color-text);font-size:16px;outline:none}.gif-search-input::-moz-placeholder{color:var(--color-text-secondary)}.gif-search-input::placeholder{color:var(--color-text-secondary)}.gif-close-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;transition:background-color .2s}.gif-close-btn:hover{background:var(--input-container-bg);color:var(--color-text)}.gif-content{flex:1;overflow-y:auto;padding:12px}.gif-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}@media (min-width: 400px){.gif-grid{grid-template-columns:repeat(3,1fr)}}.gif-item{aspect-ratio:1;border-radius:12px;overflow:hidden;cursor:pointer;background:var(--input-container-bg);transition:transform .2s,box-shadow .2s}.gif-item:hover{transform:scale(1.02);box-shadow:0 4px 12px #0000001a}.gif-item img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.gif-loading,.gif-empty,.gif-error{padding:40px;text-align:center;color:var(--color-text-secondary)}.gif-error{color:#ef4444}.gif-loading-more{padding:16px;text-align:center;color:var(--color-text-secondary);font-size:14px}.gif-footer{padding:8px 16px;border-top:1px solid var(--input-border);background:var(--input-container-bg)}.tenor-attribution{font-size:11px;color:var(--color-text-secondary)}@keyframes sheetSlideIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.link-preview{margin-top:8px;max-width:100%}.link-preview-card{display:flex;flex-direction:row;background:#0000000a;border-radius:6px;overflow:hidden;text-decoration:none;color:inherit;transition:background-color .15s;border:1px solid rgba(0,0,0,.05);cursor:pointer;max-width:320px;height:80px}.link-preview-card:hover{background:#00000014}.link-preview-image-container{width:80px;height:100%;overflow:hidden;position:relative;flex-shrink:0}.link-preview-img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.link-preview-image-placeholder{width:80px;height:100%;display:flex;align-items:center;justify-content:center;background:#0000000d;color:#6b7280;flex-shrink:0}.link-preview-info{padding:8px 12px;display:flex;flex-direction:column;justify-content:center;min-width:0;flex:1}.link-preview-title{font-weight:600;font-size:13px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2;color:#007aff}.link-preview-domain{font-size:11px;opacity:.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-preview.material .link-preview-card{flex-direction:column;width:100%;max-width:280px;height:auto;border-radius:12px;background:var(--md3-surface, #FFFFFF);border:none;box-shadow:0 1px 3px #0000001f}.link-preview.material .link-preview-card:hover{background:var(--md3-surface, #FFFFFF);filter:brightness(.98)}.link-preview.material .link-preview-image-container{width:100%;height:150px;border-radius:0}.link-preview.material .link-preview-image-placeholder{width:100%;height:150px}.link-preview.material .link-preview-info{padding:12px 16px;justify-content:flex-start}.link-preview.material .link-preview-title{font-size:14px;margin-bottom:4px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;color:var(--md3-on-surface, #1D1B20);line-height:1.4}.link-preview.material .link-preview-domain{font-size:12px;color:var(--md3-on-surface-variant, #49454F)}.emoji-picker-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:flex-end;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.emoji-picker-sheet{width:100%;max-width:420px;max-height:70vh;background:var(--color-bg);border-radius:20px 20px 0 0;display:flex;flex-direction:column;animation:sheetSlideIn .35s cubic-bezier(.32,.72,0,1);overflow:hidden}.emoji-picker-handle{display:flex;justify-content:center;padding:12px 0 8px}.emoji-picker-handle-bar{width:36px;height:4px;background:var(--color-text-secondary);border-radius:2px;opacity:.3}.emoji-picker-header{display:flex;align-items:center;justify-content:space-between;padding:0 16px 12px}.emoji-picker-title{margin:0;font-size:18px;font-weight:600}.emoji-picker-close{background:transparent;border:none;padding:8px;border-radius:50%;cursor:pointer;color:var(--color-text-secondary);transition:background-color .15s,transform .15s;display:flex;align-items:center;justify-content:center}.emoji-picker-close:hover{background:#0000000d}.emoji-picker-close:active{transform:scale(.95)}.emoji-picker-toggle{display:flex;margin:0 16px 12px;background:var(--input-container-bg);border-radius:12px;padding:4px;position:relative}.toggle-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;background:transparent;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;color:var(--color-text-secondary);transition:color .2s;position:relative;z-index:1}.toggle-btn.active{color:var(--color-text)}.toggle-indicator{position:absolute;top:4px;left:4px;width:calc(50% - 4px);height:calc(100% - 8px);background:var(--color-bg);border-radius:8px;box-shadow:0 2px 4px #0000001a;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.toggle-indicator.right{transform:translate(100%)}.mode-hint{display:flex;align-items:center;gap:6px;padding:0 16px 12px;font-size:12px;color:var(--color-text-secondary)}.mode-hint svg{opacity:.6}.emoji-category-tabs{display:flex;padding:0 16px 8px;gap:4px;overflow-x:auto;flex-shrink:0}.emoji-category-tabs::-webkit-scrollbar{display:none}.category-tab{padding:8px;font-size:20px;background:transparent;border:none;border-radius:8px;cursor:pointer;opacity:.5;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:1;overflow-y:auto;padding:0 16px 16px}.category-label{font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.emoji-grid-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:4px}.sticker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px}.sticker-option{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:var(--input-container-bg);border:none;border-radius:12px;cursor:pointer;padding:8px;transition:transform .2s cubic-bezier(.34,1.56,.64,1),background-color .15s,box-shadow .15s}.sticker-option:hover{background:#00000014;transform:scale(1.08);box-shadow:0 2px 8px #0000001a}.sticker-option:active{transform:scale(.95)}.sticker-img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.emoji-option{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:10px;cursor:pointer;transition:transform .2s cubic-bezier(.34,1.56,.64,1),background-color .15s}.emoji-option:hover{background:#0000000d;transform:scale(1.1)}.emoji-option:active{transform:scale(.95)}.emoji-option.sticker-mode .emoji-char{font-size:32px}.emoji-option.sticker-mode:hover{transform:scale(1.2)}.emoji-char{font-size:26px;line-height:1}.emoji-empty{text-align:center;padding:32px;color:var(--color-text-secondary);font-size:14px}[data-theme=material] .emoji-picker-sheet{border-radius:28px 28px 0 0;background:var(--md3-surface, #FEF7FF)}[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{border-radius:12px;background:var(--md3-surface, #FEF7FF)}[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{border-radius:16px;background:var(--md3-surface-variant, #E7E0EC)}[data-theme=material] .sticker-option:hover{background:#6750a41f}[data-theme=material] .sticker-grid{gap:12px}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#000000f2;display:flex;align-items:center;justify-content:center}.lightbox-image{max-width:95vw;max-height:95vh;-o-object-fit:contain;object-fit:contain;box-shadow:0 25px 50px #00000040;border-radius:4px}.lightbox-close{position:absolute;top:16px;right:16px;color:#fffc;padding:12px;background:#ffffff1a;border-radius:50%;border:none;cursor:pointer;transition:color .2s,background-color .2s,transform .15s;animation:fadeIn .3s ease-out .2s backwards}.lightbox-close:hover{color:#fff;background:#c2c2c2;transform:scale(1.1)}.avatar-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;cursor:default}.avatar-picker{position:absolute;top:60px;right:16px;width:300px;max-width:90vw;padding:16px;background:var(--color-bg);border-radius:16px;box-shadow:0 10px 40px #0003;border:1px solid var(--color-header-border);z-index:51;animation:modalScaleIn .25s cubic-bezier(.32,.72,0,1) forwards;transform-origin:top right}.avatar-picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.avatar-picker-title{font-size:16px;font-weight:600;color:var(--color-text)}.avatar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:12px}.avatar-option{aspect-ratio:1;border-radius:50%;overflow:hidden;border:2px solid transparent;cursor:pointer;transition:transform .2s cubic-bezier(.32,.72,0,1),border-color .2s,box-shadow .2s;background:#e0e0e0;padding:0;animation:floatIn .3s ease-out backwards}.avatar-option:nth-child(1){animation-delay:.08s}.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{transform:scale(1.12);border-color:var(--color-text-secondary)}.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{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.avatar-loading{text-align:center;padding:16px 0;color:#6b7280}.reaction-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:flex-end;justify-content:center}.reaction-sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;animation:fadeIn .25s ease-out forwards}.reaction-sheet{position:relative;width:100%;max-width:448px;background:var(--color-bg);border-radius:24px 24px 0 0;box-shadow:0 -10px 40px #0003;overflow:hidden;animation:sheetSlideIn .35s cubic-bezier(.32,.72,0,1) forwards;display:flex;flex-direction:column;max-height:70vh}.reaction-sheet-handle{width:100%;display:flex;justify-content:center;padding-top:12px;padding-bottom:4px;cursor:pointer}.reaction-sheet-handle-bar{width:48px;height:6px;background:#d1d5db;border-radius:9999px}.reaction-sheet-header{padding:16px;border-bottom:1px solid var(--input-border)}.reaction-sheet-title{text-align:center;font-weight:700;color:var(--color-text);margin:0}.reaction-sheet-list{overflow-y:auto;padding:16px}.reaction-sheet-empty{text-align:center;color:#6b7280;padding:32px 0}.reaction-sheet-item{display:flex;align-items:center;justify-content:space-between;padding:8px;border-radius:12px;transition:background-color .15s}.reaction-sheet-item:hover{background:var(--input-container-bg)}.reaction-sheet-item+.reaction-sheet-item{margin-top:12px}.reaction-sheet-user{display:flex;align-items:center;gap:12px;overflow:hidden}.reaction-sheet-avatar{width:40px;height:40px;border-radius:9999px;overflow:hidden;background:#e5e7eb;flex-shrink:0}.reaction-sheet-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.reaction-sheet-username{font-weight:500;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reaction-sheet-right{display:flex;align-items:center;gap:12px;flex-shrink:0}.reaction-sheet-emoji{font-size:24px}.reaction-sheet-custom-emoji{display:flex;align-items:center;justify-content:center}.reaction-sheet-custom-emoji img{width:24px;height:24px;-o-object-fit:contain;object-fit:contain}.reaction-sheet-remove{font-size:12px;color:#ef4444;font-weight:700;padding:4px 8px;background:#fef2f2;border-radius:8px;border:none;cursor:pointer;transition:background-color .15s}.reaction-sheet-remove:hover{background:#fee2e2}.reaction-sheet-footer{padding:16px;border-top:1px solid var(--input-border);background:var(--input-container-bg);padding-bottom:max(16px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px}.action-btn-sheet{width:100%;padding:12px;background:var(--input-bg);color:var(--color-text);border-radius:12px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--input-border);cursor:pointer;transition:all .15s}.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{width:100%;padding:12px;background:#ef4444;color:#fff;border-radius:12px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;box-shadow:0 1px 2px #0000000d;transition:background-color .15s}.delete-btn:hover{background:#dc2626}.toast{position:fixed;bottom:96px;left:50%;transform:translate(-50%);padding:12px 24px;background:#000000d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;border-radius:9999px;font-size:14px;font-weight:500;box-shadow:0 10px 25px #0003;z-index:150;white-space:nowrap;animation:slideInFromBottom .3s cubic-bezier(.32,.72,0,1)}.chat-container{height:100%;display:flex;flex-direction:column;background:var(--color-bg);transition:background-color .3s;position:relative}.messages-area{flex:1;overflow-y:auto;padding:16px 8px}.message-row{display:flex;flex-direction:column;margin-bottom:4px;width:100%;position:relative}.message-time{font-size:12px;color:var(--color-text-secondary);text-align:center;margin:16px 0;font-weight:500;opacity:.6;-webkit-user-select:none;-moz-user-select:none;user-select:none}.message-container{display:flex;align-items:flex-end;padding:0 8px;transition:transform .3s cubic-bezier(.22,1,.36,1);touch-action:pan-y}.message-container.justify-end{justify-content:flex-end}.message-content-col{display:flex;flex-direction:column;max-width:75%}@media (min-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{font-size:12px;color:var(--color-text-secondary);margin-left:4px;margin-bottom:4px;font-weight:500;-webkit-user-select:none;-moz-user-select:none;user-select:none}.bubble-wrapper{display:flex;align-items:center;gap:8px;position:relative}.bubble-wrapper.flex-row-reverse{flex-direction:row-reverse}.desktop-actions{display:none;align-items:center;gap:4px;opacity:0;transition:opacity .2s}@media (min-width: 768px){.desktop-actions{display:flex}}.bubble-wrapper:hover .desktop-actions{opacity:1}.action-btn{padding:6px;border-radius:9999px;background:var(--color-bg);border:1px solid #f3f4f6;box-shadow:0 1px 2px #0000000d;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .15s,transform .2s cubic-bezier(.34,1.56,.64,1)}.action-btn:hover{background:#f3f4f6;transform:scale(1.08)}.action-btn:active{transform:scale(.95)}.reply-context{margin-bottom:8px;padding:8px;border-radius:4px;background:#0000000d;border-left:4px solid rgba(0,0,0,.2);font-size:12px;max-width:280px}.reply-author{font-weight:700;opacity:.7;margin-bottom:2px}.reply-text{opacity:.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-img{display:block;width:100%;max-height:300px;-o-object-fit:cover;object-fit:cover;border-radius:8px;cursor:pointer;transition:opacity .15s,transform .3s cubic-bezier(.22,1,.36,1);box-shadow:0 1px 2px #0000000d}.attachment-img:hover{opacity:.95;transform:scale(1.01)}.attachment-video{display:block;max-width:100%;border-radius:8px;box-shadow:0 1px 2px #0000000d}.attachment-audio{display:block;width:100%;min-width:200px}.attachment-file{display:flex;align-items:center;gap:8px;padding:12px;border-radius:8px;background:#0000000d;text-decoration:none;color:inherit;transition:background-color .15s,transform .2s cubic-bezier(.34,1.56,.64,1)}.attachment-file:hover{background:#0000001a;transform:translateY(-1px)}.attachment-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}.attachment-more-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:20px;cursor:pointer;border-radius:8px;z-index:10;transition:background-color .15s}.attachment-more-overlay:hover{background:#0009}.reaction-picker-wrapper{margin-top:4px}.reply-preview{padding:8px 16px;background:var(--input-container-bg);display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--input-border);animation:slideInFromBottom .3s cubic-bezier(.34,1.56,.64,1) forwards}.reply-preview-content{display:flex;flex-direction:column;border-left:4px solid var(--bubble-sent-bg);padding-left:8px;overflow:hidden;max-width:280px;animation:slideInLeft .25s cubic-bezier(.34,1.56,.64,1) .05s backwards}.reply-preview-label{font-size:12px;font-weight:700;color:var(--bubble-sent-bg)}.reply-preview-text{font-size:12px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reply-preview-close{padding:4px;border-radius:9999px;flex-shrink:0;margin-left:8px;background:transparent;border:none;cursor:pointer;color:var(--color-text-secondary);transition:background-color .15s,transform .2s cubic-bezier(.34,1.56,.64,1),color .15s;display:flex;align-items:center;justify-content:center}.reply-preview-close:hover{background:#ef44441a;color:#ef4444;transform:scale(1.1)}.reply-preview-close:active{transform:scale(.9)}.file-preview-container{display:flex;gap:8px;padding:12px;background:var(--color-bg);border-top:1px solid var(--input-border);overflow-x:auto;animation:slideInFromBottom .3s cubic-bezier(.34,1.56,.64,1)}.file-preview-item{position:relative;width:64px;height:64px;border-radius:12px;overflow:hidden;background:#f3f4f6;box-shadow:0 1px 2px #0000000d;border:1px solid #e5e7eb;flex-shrink:0;animation:fileItemPop .35s cubic-bezier(.34,1.56,.64,1) backwards}.file-preview-item:nth-child(1){animation-delay:.05s}.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{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}@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{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#9ca3af}.file-preview-remove{position:absolute;top:0;right:0;background:#ef4444;color:#fff;border-radius:0 0 0 8px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:12px;border:none;cursor:pointer;transition:background-color .15s,transform .15s cubic-bezier(.34,1.56,.64,1)}.file-preview-remove:hover{background:#dc2626;transform:scale(1.1)}.guest-footer{padding:12px 16px;background:var(--input-container-bg);border-top:1px solid var(--input-border);text-align:center;font-size:12px;color:var(--color-text-secondary);font-weight:500;padding-bottom:max(16px,env(safe-area-inset-bottom))}.guest-footer-hint{opacity:.7}.new-messages-indicator{position:absolute;bottom:80px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--bubble-sent-bg);color:#fff;border:none;border-radius:9999px;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 4px 12px #00000026;z-index:40;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s}.new-messages-indicator:hover{transform:translate(-50%) scale(1.05);box-shadow:0 6px 16px #0003}.new-messages-indicator:active{transform:translate(-50%) scale(.95)}.scroll-btn-enter-active{animation:scrollBtnEnter .5s cubic-bezier(.34,1.56,.64,1)}.scroll-btn-leave-active{animation:scrollBtnExit .3s ease-out}@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{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;animation:fadeIn .5s ease-out .2s backwards}.empty-state-icon{margin-bottom:16px;color:var(--color-text-secondary);opacity:.4;animation:subtlePulse 3s ease-in-out infinite}.empty-state-text{font-size:18px;font-weight:500;color:var(--color-text);opacity:.5}.loading-text{text-align:center;padding:16px;color:var(--color-text-secondary);font-size:14px;animation:pulseSoft 2s infinite}.pinned-section{margin:0 8px 16px;padding:12px;background:var(--input-container-bg);border-radius:16px;border:1px solid var(--input-border);animation:floatIn .3s ease-out}.pinned-header{font-size:11px;font-weight:700;color:var(--bubble-sent-bg);text-transform:uppercase;letter-spacing:.5px;padding:0 8px;margin-bottom:12px;display:flex;align-items:center;gap:6px}.pinned-header svg{opacity:.8}.pinned-divider{display:none}.toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%);padding:12px 24px;background:#000000d9;color:#fff;border-radius:12px;font-size:14px;font-weight:500;z-index:1000;box-shadow:0 4px 12px #00000026}.toast-enter-active{animation:toastEnter .4s cubic-bezier(.34,1.56,.64,1)}.toast-leave-active{animation:toastExit .25s ease-out}@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{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.lightbox-image{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain;border-radius:8px}.lightbox-close{position:absolute;top:16px;right:16px;background:#ffffff1a;border:none;color:#fff;width:48px;height:48px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .15s,transform .2s cubic-bezier(.34,1.56,.64,1)}.lightbox-close:hover{background:#fff3;transform:scale(1.1)}.lightbox-close:active{transform:scale(.95)}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:#0006;border:none;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;z-index:1001;transition:background .2s}.lightbox-nav:hover{background:#000000b3}.lightbox-nav.prev{left:20px}.lightbox-nav.next{right:20px}.lightbox-counter{position:absolute;top:20px;left:20px;color:#fff;font-weight:600;font-size:16px;text-shadow:0 1px 2px rgba(0,0,0,.5);z-index:1001}.lightbox-content{display:flex;justify-content:center;align-items:center;width:100%;height:100%}.lightbox-enter-active{animation:lightboxFadeIn .25s ease-out}.lightbox-enter-active .lightbox-image{animation:lightboxImageEnter .4s cubic-bezier(.34,1.56,.64,1)}.lightbox-leave-active{animation:lightboxFadeOut .2s ease-out}.lightbox-leave-active .lightbox-image{animation:lightboxImageExit .2s ease-out}@keyframes lightboxFadeIn{0%{opacity:0}to{opacity:1}}@keyframes lightboxFadeOut{0%{opacity:1}to{opacity:0}}@keyframes lightboxImageEnter{0%{opacity:0;transform:scale(.85)}60%{transform:scale(1.02)}to{opacity:1;transform:scale(1)}}@keyframes lightboxImageExit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--input-container-bg);padding:20px}.login-card{width:100%;max-width:400px;padding:40px 30px;background:var(--color-bg);border-radius:20px;box-shadow:0 4px 24px #00000014}.login-header{text-align:center;margin-bottom:24px}.login-icon{width:64px;height:64px;margin:0 auto 16px;border-radius:9999px;background:#dbeafe;display:flex;align-items:center;justify-content:center;color:#3b82f6}.login-title{font-size:20px;font-weight:600;margin:0}.login-subtitle{color:#6b7280;font-size:14px;margin-top:4px}.login-form{display:flex;flex-direction:column;gap:16px}.login-input{width:100%;padding:12px 16px;border:1px solid var(--color-header-border);border-radius:12px;background:var(--input-bg);color:var(--color-text);font-size:16px;outline:none;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;font-size:14px;text-align:center}.login-btn{width:100%;padding:14px;background:var(--bubble-sent-bg);color:var(--bubble-sent-text);border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;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{margin-top:24px;text-align:center}.login-back{color:#6b7280;font-size:14px;display:flex;align-items:center;justify-content:center;gap:4px;margin:0 auto;background:transparent;border:none;cursor:pointer}.login-back:hover{color:#374151}.hidden-mobile{display:none}@media (min-width: 640px){.hidden-mobile{display:inline}}.safe-area-pb{padding-bottom:max(16px,env(safe-area-inset-bottom))}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes floatIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes subtlePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(.98)}}@keyframes pulseSoft{0%,to{opacity:1}50%{opacity:.7}}
