:root{--accent: #2f6fde;--accent-press: #2860c0;--page: #08090b;--chat: #0d0f12;--surface: #16191e;--pill: #1e2228;--peer: #1f2329;--on-peer: #e8eaed;--text: #e8eaed;--muted: #949ca6;--line: #262a31;--hover: #22262d;--danger: #ef6a5f;--online: #3cc47a;--lift: none;--float: 0 8px 30px rgba(0, 0, 0, .55);--r: 18px;--r-tight: 6px;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;margin:0;overflow:hidden}#root{height:100%}body{background:var(--chat);color:var(--text);font-family:IBM Plex Sans Arabic,system-ui,-apple-system,Segoe UI,Roboto,Tahoma,sans-serif;font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;padding:0;margin:0}a{color:inherit}img{display:block}.btn{border-radius:999px;padding:10px 18px;font-weight:500;background:var(--hover);transition:background-color .15s,opacity .15s}.btn.primary{background:var(--accent);color:#fff}.btn.primary:active{background:var(--accent-press)}.btn.danger{background:var(--danger);color:#fff}.btn.small{padding:6px 14px;font-size:13.5px}.btn.wide{width:100%;padding:14px;font-size:16px}.btn:disabled{opacity:.45;cursor:default}.icon-btn{width:44px;height:44px;flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text);text-decoration:none;transition:background-color .15s}.icon-btn:active{background:var(--hover)}@media(hover:hover){.icon-btn:hover{background:var(--hover)}}.icon-btn.small{width:34px;height:34px}.icon-btn.subtle{color:var(--muted)}.icon-btn.danger{color:var(--danger)}.icon-btn.light{color:#fff}.icon-btn.light:active,.icon-btn.light:hover{background:#ffffff24}.link{color:var(--accent);font-size:14px;font-weight:500}.flip{transform:scaleX(-1)}.spinner{width:26px;height:26px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent);animation:spin .8s linear infinite}.spinner.small{width:18px;height:18px;border-width:2px}@keyframes spin{to{transform:rotate(360deg)}}.splash{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--chat)}.splash>*+*{margin-top:14px}.center-pad{display:flex;justify-content:center;padding:40px 0}.center-pad.small{padding:12px 0}.login{height:100vh;height:var(--app-h);overflow-y:auto;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--chat)}.login-card{width:100%;max-width:380px;background:var(--surface);border-radius:24px;padding:34px 22px 24px;box-shadow:var(--float);display:flex;flex-direction:column;text-align:center}.login-card>*+*{margin-top:12px}.login-logo{width:68px;height:68px;border-radius:20px;align-self:center}.login h1{margin:16px 0 0;font-size:23px;font-weight:600}.login .muted{margin:4px 0 10px;color:var(--muted);font-size:14.5px}.pw{position:relative}.pw input{width:100%;font-size:16px;height:52px;padding:0 16px 0 74px;text-align:right;border:1.5px solid var(--line);border-radius:14px;background:var(--chat);outline:none;transition:border-color .15s}.pw input:focus{border-color:var(--accent)}.pw-toggle{position:absolute;left:8px;top:50%;transform:translateY(-50%);font-size:13px;color:var(--muted);padding:8px}.error{color:var(--danger);font-size:14px;margin:4px 0 0}.app{position:fixed;top:0;left:0;right:0;height:100vh;height:var(--app-h);display:flex;flex-direction:column;background:var(--chat);overflow:hidden}.topbar{flex:none;display:flex;align-items:center;padding:6px 8px 6px 4px;padding-top:calc(6px + env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--line);min-height:60px}.topbar>.avatar{margin:0 8px 0 10px}.who{flex:1;min-width:0}.name{font-weight:600;font-size:16.5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status.online{color:var(--online)}.status.typing{color:var(--accent)}.avatar{position:relative;flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent);color:#fff;font-weight:600;line-height:1}.avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.avatar .dot{position:absolute;bottom:0;left:0;width:30%;height:30%;min-width:10px;min-height:10px;border-radius:50%;background:var(--online);border:2px solid var(--surface)}.banner{flex:none;display:flex;align-items:center;margin:8px 10px 0;padding:6px 6px 6px 12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;font-size:13.5px;line-height:1.4}.banner>*+*{margin-right:8px}.banner>svg{color:var(--accent);flex:none}.banner span{flex:1;min-width:0}.list-area{flex:1;min-height:0;position:relative}.list{position:absolute;top:0;left:0;right:0;bottom:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:rgba(127,127,127,.35) transparent}.list::-webkit-scrollbar{width:10px}.list::-webkit-scrollbar-track{background:transparent}.list::-webkit-scrollbar-thumb{background:#7f7f7f4d;border-radius:6px;border:3px solid transparent;background-clip:padding-box}@media(pointer:coarse){.list{scrollbar-width:none}.list::-webkit-scrollbar{display:none}}.list-inner{min-height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:6px 0 10px}.intro{display:flex;flex-direction:column;align-items:center;padding:36px 20px 22px;text-align:center}.intro-name{font-weight:600;font-size:19px;margin-top:12px}.intro-sub{color:var(--muted);font-size:13.5px;margin-top:4px}.day{display:flex;justify-content:center;margin:14px 0 6px}.day span{background:var(--surface);color:var(--muted);font-size:12px;font-weight:500;padding:4px 12px;border-radius:999px;box-shadow:var(--lift)}.day-float{position:absolute;top:8px;left:0;right:0;z-index:3;display:flex;justify-content:center;pointer-events:none;opacity:0;-webkit-transition:opacity .2s;transition:opacity .2s}.day-float.show{opacity:1}.day-float span{background:var(--surface);color:var(--muted);font-size:12px;font-weight:500;padding:4px 12px;border-radius:999px;box-shadow:var(--float)}.day-float span:empty{display:none}.row{display:flex;flex-direction:column;padding:0 10px;margin-top:2px}.row.g-first,.row.g-single{margin-top:8px}.row.peer{align-items:flex-start}.row.mine{align-items:flex-end}.row.flash{animation:flash 1.4s ease-out}@keyframes flash{0%,40%{background:#7f7f7f2e}to{background:transparent}}.wrap{position:relative;max-width:80%;min-width:0;transition:transform .18s;touch-action:pan-y}@media(min-width:700px){.wrap{max-width:62%}}@media(min-width:1100px){.wrap{max-width:640px}}.row.reacted .wrap{margin-bottom:14px}.bubble{position:relative;padding:7px 11px 8px;border-radius:var(--r);font-size:15.5px;line-height:1.42;overflow-wrap:break-word;word-wrap:break-word;-moz-user-select:text;user-select:text;-webkit-user-select:text}@media(pointer:coarse){.wrap,.bubble{-webkit-user-select:none;-moz-user-select:-moz-none;user-select:none;-webkit-touch-callout:none}}.row.peer .bubble{background:var(--peer);color:var(--on-peer);box-shadow:var(--lift)}.row.mine .bubble{background:var(--accent);color:#fff}.text{white-space:pre-wrap}.bubble a{text-decoration:underline;text-underline-offset:2px;word-break:break-all}.row.peer.g-first .bubble{border-bottom-right-radius:var(--r-tight)}.row.peer.g-mid .bubble{border-top-right-radius:var(--r-tight);border-bottom-right-radius:var(--r-tight)}.row.peer.g-last .bubble{border-top-right-radius:var(--r-tight)}.row.mine.g-first .bubble{border-bottom-left-radius:var(--r-tight)}.row.mine.g-mid .bubble{border-top-left-radius:var(--r-tight);border-bottom-left-radius:var(--r-tight)}.row.mine.g-last .bubble{border-top-left-radius:var(--r-tight)}.spacer{display:inline-block;width:46px;height:1px}.spacer.wide{width:66px}.meta{position:absolute;bottom:4px;left:10px;inset-inline-end:10px;inset-inline-start:auto;display:inline-flex;align-items:center;white-space:nowrap;font-size:11px;line-height:1;opacity:.72;pointer-events:none}.meta .tick{margin-right:3px}.row.mine .meta{opacity:.85}.tick{flex:none}.row.mine .tick{opacity:.6}.row.mine .tick.seen{opacity:1}.tick.failed{color:#ffd1cc;opacity:1!important}.meta.overlay{bottom:6px;left:6px;right:auto;inset-inline-end:auto;inset-inline-start:auto;background:#00000073;color:#fff;opacity:1;padding:3px 7px;border-radius:10px}.meta.overlay .tick{opacity:.85}.meta.overlay .tick.seen{opacity:1}.bubble.deleted{background:transparent!important;color:var(--muted)!important;border:1px solid var(--line);box-shadow:none!important;font-style:italic;font-size:14px}.emoji-only{display:flex;flex-direction:column;align-items:flex-end}.row.peer .emoji-only{align-items:flex-start}.emoji-only>span:first-child{font-size:44px;line-height:1.15}.emoji-only .meta{position:static;background:var(--surface);color:var(--muted);padding:3px 7px;border-radius:9px;opacity:1;box-shadow:var(--lift)}.emoji-only .meta .tick{color:var(--accent);opacity:.6}.emoji-only .meta .tick.seen{opacity:1}.quote{display:block;width:100%;min-width:150px;text-align:right;padding:5px 9px 6px;margin-bottom:5px;border-radius:10px;border-right:3px solid var(--accent);background:#7f7f7f1a}.row.mine .quote{background:#ffffff29;border-right-color:#ffffffd9}.quote-name{display:block;font-size:12.5px;font-weight:600;color:var(--accent)}.row.mine .quote-name{color:#fff}.quote-text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;opacity:.8;white-space:normal}.media-bubble{padding:3px}.media{display:block;position:relative;overflow:hidden;height:0;border-radius:calc(var(--r) - 3px);background:#7f7f7f33;max-width:100%}.media img,.media video,.video-blank{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.video-blank{background:#222}.play-badge{position:absolute;top:50%;left:50%;margin:-26px 0 0 -26px;width:52px;height:52px;border-radius:50%;background:#00000080;color:#fff;display:flex;align-items:center;justify-content:center;padding-left:3px}.dur-badge{position:absolute;top:8px;right:8px;background:#00000080;color:#fff;font-size:11.5px;padding:2px 7px;border-radius:9px;direction:ltr}.ring{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:#0000004d}.ring circle{transition:stroke-dashoffset .2s}.voice-bubble{padding:8px 10px 9px 12px;overflow:hidden}.voice-bubble .meta{left:auto;right:12px;inset-inline-end:auto;inset-inline-start:auto;bottom:7px}.voice{display:flex;align-items:center;width:250px;max-width:64vw}.voice-btn{width:40px;height:40px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-right:10px}.row.mine .voice-btn{background:#fff;color:var(--accent)}.row.peer .voice-btn{background:var(--accent);color:#fff}.voice-btn svg{margin-left:1px}.voice-main{flex:1;min-width:0}.wave{height:28px;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.wave span{width:2.5px;border-radius:2px}.row.mine .wave span{background:#ffffff73}.row.mine .wave span.on{background:#fff}.row.peer .wave span{background:#78808c73}.row.peer .wave span.on{background:var(--accent)}.voice-sub{display:flex;align-items:center;height:16px;margin-top:2px;font-size:11.5px}.voice-time{font-variant-numeric:tabular-nums;opacity:.85}.voice-rate{margin-left:8px;font-size:11px;font-weight:600;padding:1px 6px;border-radius:8px;background:#7f7f7f38}.voice-uploading{position:absolute;bottom:0;left:0;height:3px;background:#ffffffd9;transition:width .2s}.reactions{position:absolute;bottom:-13px;display:inline-flex;align-items:center;white-space:nowrap;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:1px 6px;font-size:13px;line-height:20px;z-index:1}.row.mine .reactions{right:10px}.row.peer .reactions{left:10px}.reactions span{font-size:11.5px;color:var(--muted);margin-right:3px}.swipe-hint{position:absolute;top:50%;margin-top:-9px;color:var(--muted)}.row.mine .swipe-hint{right:calc(100% + 12px)}.row.peer .swipe-hint{left:calc(100% + 12px)}.hover-actions{display:none;position:absolute;top:50%;transform:translateY(-50%);padding:0 4px;white-space:nowrap}.row.mine .hover-actions{left:100%}.row.peer .hover-actions{right:100%}.hover-actions button{width:30px;height:30px;border-radius:50%;color:var(--muted);display:inline-flex;align-items:center;justify-content:center}.hover-actions button:hover{background:var(--hover)}@media(hover:hover)and (pointer:fine){.row:hover .hover-actions{display:flex}}.retry{color:var(--danger);display:inline-flex;align-items:center;font-size:12.5px;margin-top:4px;padding:2px 4px}.retry svg{margin-left:4px}.below{font-size:11.5px;color:var(--muted);margin:3px 6px 0}.bubble.typing{display:inline-flex;align-items:center;padding:14px 15px}.bubble.typing i{width:7px;height:7px;margin:0 2px;border-radius:50%;background:var(--muted);opacity:.35;animation:blink 1.2s infinite}.bubble.typing i:nth-child(2){animation-delay:.15s}.bubble.typing i:nth-child(3){animation-delay:.3s}@keyframes blink{0%,60%,to{opacity:.3}30%{opacity:.9}}.jump{position:absolute;bottom:12px;left:12px;z-index:3;width:42px;height:42px;border-radius:50%;background:var(--surface);color:var(--muted);box-shadow:var(--float);display:flex;align-items:center;justify-content:center}.jump-count{position:absolute;top:-6px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--accent);color:#fff;font-size:11.5px;font-weight:600;line-height:20px;text-align:center}.composer{flex:none;padding:6px 8px;padding-bottom:calc(6px + env(safe-area-inset-bottom));background:var(--chat)}.composer-row{display:flex;align-items:flex-end}.pill{flex:1;min-width:0;min-height:48px;display:flex;align-items:flex-end;background:var(--pill);border-radius:24px;box-shadow:var(--lift);padding:2px 4px}.pill textarea{flex:1;min-width:0;resize:none;border:0;outline:none;background:transparent;font-size:16px;line-height:22px;padding:11px 10px 11px 4px;max-height:132px;height:44px}.pill textarea::placeholder{color:var(--muted)}.pill .icon-btn{width:40px;height:44px}.send-btn{flex:none;width:48px;height:48px;margin-right:6px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;transition:transform .1s,background-color .15s}.send-btn:active{background:var(--accent-press);transform:scale(.94)}.pill.recording{align-items:center;padding:2px 12px 2px 4px}.rec-dot{width:9px;height:9px;flex:none;border-radius:50%;background:#e5484d;margin:0 6px 0 8px;animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.25}}.rec-time{font-variant-numeric:tabular-nums;font-size:15px;min-width:40px;direction:ltr;text-align:center}.rec-bars{flex:1;min-width:0;height:26px;display:flex;align-items:center;justify-content:space-between;margin-right:10px;overflow:hidden}.rec-bars span{width:3px;border-radius:2px;background:var(--accent)}.rec-warn{font-size:12px;color:var(--danger);direction:ltr;margin-right:8px}.reply-bar{display:flex;align-items:center;margin:0 0 6px;padding:7px 6px 7px 0;background:var(--pill);border-radius:14px;border-right:4px solid var(--accent);box-shadow:var(--lift)}.reply-bar-body{flex:1;min-width:0;padding-right:10px}.reply-bar-name{font-size:13px;font-weight:600;color:var(--accent)}.reply-bar-text{font-size:13.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:40;background:#0000006b;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s ease-out}.sheet-backdrop.center{align-items:center;padding:16px}@keyframes fade{0%{opacity:0}}.sheet{width:100%;max-width:480px;max-height:90%;overflow-y:auto;background:var(--surface);border-radius:22px 22px 0 0;padding:8px 12px calc(12px + env(safe-area-inset-bottom));animation:up .2s ease-out}.sheet:before{content:"";display:block;width:36px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 10px}@media(min-width:600px){.sheet-backdrop{align-items:center}.sheet{border-radius:22px}.sheet:before{display:none}}@keyframes up{0%{transform:translateY(30px)}}.sheet-reactions{display:flex;justify-content:space-between;padding:2px 2px 10px}.sheet-when{text-align:center;font-size:12.5px;color:var(--muted);padding:0 8px 10px}.sheet-reactions button{font-size:28px;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center}.sheet-reactions button.on{background:var(--hover);box-shadow:inset 0 0 0 2px var(--accent)}.sheet-actions{display:flex;flex-direction:column;border-top:1px solid var(--line);padding-top:6px}.sheet-actions>button,.sheet-actions>a{display:flex;align-items:center;min-height:50px;padding:0 12px;border-radius:12px;text-decoration:none;font-size:16px;text-align:right}.sheet-actions>button svg,.sheet-actions>a svg{color:var(--muted);margin-left:14px;flex:none}.sheet-actions>*:active{background:var(--hover)}@media(hover:hover){.sheet-actions>button:hover,.sheet-actions>a:hover{background:var(--hover)}}.sheet-actions .danger,.sheet-actions .danger svg{color:var(--danger)}.menu-note{color:var(--muted);font-size:13.5px;padding:12px}.me-card{display:flex;align-items:center;padding:6px 4px 14px}.me-info{margin-right:12px;display:flex;flex-direction:column;align-items:flex-start}.me-name{font-size:17px;font-weight:600}.menu-section{padding:12px 4px 14px;border-top:1px solid var(--line)}.menu-label{font-size:13px;color:var(--muted);margin-bottom:10px}.swatches{display:flex;flex-wrap:wrap}.swatch{width:36px;height:36px;border-radius:50%;margin:0 0 6px 12px}.swatch.on{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--text)}.dialog{width:100%;max-width:340px;background:var(--surface);border-radius:20px;padding:20px;box-shadow:var(--float);animation:up .2s ease-out}.dialog p{margin:0 0 18px;font-size:16px}.dialog-btns{display:flex;justify-content:flex-start;flex-direction:row-reverse}.dialog-btns .btn+.btn{margin-left:8px}.lightbox{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;z-index:50;display:flex;flex-direction:column}.lb-bar{display:flex;justify-content:space-between;padding:6px;padding-top:calc(6px + env(safe-area-inset-top))}.lb-body{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding-bottom:env(safe-area-inset-bottom)}.lb-body img,.lb-body video{max-width:100%;max-height:100%;object-fit:contain}.toast{position:fixed;left:50%;bottom:calc(90px + env(safe-area-inset-bottom));transform:translate(-50%);background:#2a2f37;color:#fff;border:1px solid rgba(255,255,255,.06);padding:10px 16px;border-radius:12px;font-size:14px;z-index:60;box-shadow:var(--float);max-width:calc(100% - 32px);text-align:center;animation:fade .15s}.bubble .link-card{display:block;width:280px;max-width:calc(100% + 14px);margin:-3px -7px 7px;border-radius:13px;overflow:hidden;text-decoration:none;word-break:normal;color:inherit;background:#7f7f7f1f;-webkit-touch-callout:none}.row.mine .bubble .link-card{background:#00000029}.bubble .link-card:active{opacity:.85}.lc-img{display:block;position:relative;height:0;overflow:hidden;background:#7f7f7f33}.lc-img img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.lc-play{position:absolute;top:50%;left:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:#0000008c;color:#fff;display:flex;align-items:center;justify-content:center;padding-left:3px}.lc-body{display:block;padding:9px 11px 10px}.lc-site{display:flex;align-items:center;font-size:12.5px;font-weight:600;line-height:20px}.lc-site .brand{margin-left:7px}.lc-title,.lc-desc{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;white-space:normal}.lc-title{font-size:14.5px;font-weight:600;line-height:1.35;margin-top:5px}.lc-desc{font-size:13px;line-height:1.4;opacity:.78;margin-top:2px}.lc-host{font-size:12.5px;opacity:.75}.brand{display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:50%;color:#fff}.b-instagram{background:#d62976}.b-facebook{background:#1877f2}.b-tiktok,.b-x{background:#111;box-shadow:0 0 0 1px #ffffff38}.b-youtube{background:#e00}.b-web{background:#6a717b}.banner.install{padding:8px 6px 8px 10px}.banner-icon{width:38px;height:38px;border-radius:10px;flex:none}.banner .banner-text b,.banner .banner-text small{display:block}.banner-text b{font-size:14px;font-weight:600}.banner-text small{font-size:12px;color:var(--muted)}.install-head{display:flex;align-items:center;padding:6px 4px 14px}.install-head img{width:54px;height:54px;border-radius:14px;flex:none;margin-left:12px}.install-title{font-size:17px;font-weight:600}.install-sub{font-size:13.5px;color:var(--muted);line-height:1.4}.steps{list-style:none;margin:0 0 14px;padding:10px 2px 0;border-top:1px solid var(--line)}.steps li{display:flex;align-items:flex-start;padding:9px 0;font-size:15px;line-height:1.55}.steps li>span:last-child{flex:1;min-width:0}.step-n{flex:none;width:26px;height:26px;margin:1px 0 0 12px;border-radius:50%;background:var(--accent);color:#fff;font-size:13.5px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.steps svg{vertical-align:-5px;color:var(--accent);margin:0 2px}.steps small{color:var(--muted);font-size:12.5px}@media(min-width:900px){.topbar{padding-left:16px;padding-right:14px;min-height:66px}.row{padding:0 28px}.composer{padding:10px 24px 14px}.banner{margin:10px 24px 0}.jump{left:28px;bottom:16px}.bubble{font-size:15.5px}}@media(max-width:360px){.wrap{max-width:86%}.bubble{font-size:15px}.row{padding:0 8px}.send-btn{width:46px;height:46px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
