@font-face{font-family:Vazirmatn;src:url(/assets/Vazirmatn_wght_-BeciDpKm.woff2) format("woff2 supports variations"),url(/assets/Vazirmatn_wght_-BeciDpKm.woff2) format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap}:root{--font: "Vazirmatn", system-ui, -apple-system, "Segoe UI", Tahoma, sans-serif;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--ease: cubic-bezier(.2, 0, 0, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--t-fast: .12s;--t: .2s;--t-slow: .32s;--text-scale: 1;--msg-size: calc(15px * var(--text-scale));--sidebar-w: 380px;--info-w: 360px;--header-h: 56px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);font-size:15px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;text-rendering:optimizeLegibility}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;padding:0}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}img,video{display:block;max-width:100%}::selection{background:color-mix(in srgb,var(--accent) 30%,transparent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.scroll{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--text-muted) 45%,transparent) transparent}.scroll::-webkit-scrollbar{width:6px;height:6px}.scroll::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text-muted) 40%,transparent);border-radius:6px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.ltr{direction:ltr;unicode-bidi:isolate}.muted{color:var(--text-muted)}.secondary{color:var(--text-secondary)}.danger-text{color:var(--danger)}.ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 18px;border-radius:var(--r-md);font-weight:500;font-size:15px;transition:background var(--t-fast),transform var(--t-fast),opacity var(--t-fast);user-select:none;white-space:nowrap}.btn:active{transform:scale(.97)}.btn[disabled]{opacity:.55;pointer-events:none}.btn-primary{background:var(--accent);color:var(--accent-text)}.btn-primary:hover{background:var(--accent-hover)}.btn-soft{background:var(--accent-soft);color:var(--accent)}.btn-soft:hover{background:color-mix(in srgb,var(--accent-soft) 70%,var(--accent) 12%)}.btn-ghost{color:var(--accent)}.btn-ghost:hover{background:var(--surface-2)}.btn-danger{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}.btn-danger:hover{background:color-mix(in srgb,var(--danger) 20%,transparent)}.btn-block{width:100%}.btn-sm{height:34px;padding:0 12px;font-size:14px}.icon-btn{width:40px;height:40px;border-radius:50%;display:inline-grid;place-items:center;color:var(--text-secondary);flex-shrink:0;transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast)}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn:active{transform:scale(.92)}.icon-btn.accent{color:var(--accent)}.icon-btn.sm{width:32px;height:32px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field>label{font-size:13px;color:var(--text-secondary);font-weight:500}.input,.textarea{width:100%;min-height:46px;padding:10px 14px;border-radius:var(--r-md);border:1.5px solid var(--border);background:var(--surface);outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.textarea{resize:none;min-height:90px}.input:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.input.invalid{border-color:var(--danger)}.field .hint{font-size:12.5px;color:var(--text-muted)}.field .error{font-size:13px;color:var(--danger)}.input-wrap{position:relative}.input-wrap .input{padding-inline-end:44px}.input-wrap .icon-btn{position:absolute;inset-inline-end:3px;top:3px}@media(max-width:767px){.input,.textarea{font-size:16px}}.switch{position:relative;width:40px;height:24px;border-radius:12px;background:var(--badge-muted);flex-shrink:0;transition:background var(--t)}.switch:after{content:"";position:absolute;top:3px;inset-inline-start:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform var(--t) var(--ease-out)}.switch.on{background:var(--accent)}.switch.on:after{transform:translate(-16px)}.check{width:22px;height:22px;border-radius:50%;border:2px solid var(--badge-muted);display:grid;place-items:center;color:#fff;flex-shrink:0;transition:background var(--t-fast),border-color var(--t-fast)}.check.square{border-radius:6px}.check.on{background:var(--accent);border-color:var(--accent)}.avatar{position:relative;flex-shrink:0;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:600;overflow:visible;user-select:none}.avatar>.face{width:100%;height:100%;border-radius:50%;display:grid;place-items:center;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar .dot{position:absolute;bottom:1px;inset-inline-start:1px;width:26%;height:26%;min-width:10px;min-height:10px;border-radius:50%;background:var(--online);border:2px solid var(--surface);animation:pop var(--t) var(--ease-out)}.badge{min-width:22px;height:22px;padding:0 7px;border-radius:11px;background:var(--badge);color:#fff;font-size:12.5px;font-weight:600;display:inline-grid;place-items:center;line-height:1;animation:pop var(--t) var(--ease-out)}.badge.muted{background:var(--badge-muted)}.pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:500;background:var(--accent-soft);color:var(--accent)}.pill.gray{background:var(--surface-3);color:var(--text-secondary)}.pill.red{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}.pill.green{background:color-mix(in srgb,var(--success) 15%,transparent);color:var(--success)}.pill.amber{background:color-mix(in srgb,var(--warning) 18%,transparent);color:color-mix(in srgb,var(--warning) 75%,var(--text))}.spinner{animation:spin .9s linear infinite}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:40px 24px;color:var(--text-muted)}.empty svg{opacity:.6}.code-box{direction:ltr;font-family:ui-monospace,Cascadia Code,Menlo,Consolas,monospace;font-size:20px;letter-spacing:2px;text-align:center;background:var(--surface-2);border:1.5px dashed var(--border);border-radius:var(--r-md);padding:14px;user-select:all;word-break:break-all}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pop{0%{transform:scale(.4);opacity:0}}@keyframes fade-in{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important}}.app{position:relative;display:flex;height:100dvh;overflow:hidden;background:var(--bg)}.sidebar{position:relative;width:var(--sidebar-w);min-width:300px;flex-shrink:0;display:flex;flex-direction:column;background:var(--surface);border-inline-end:1px solid var(--divider);z-index:2}.chat-pane{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;background:var(--chat-bg);z-index:1}.chat-pane:before{content:"";position:absolute;inset:0;background-image:radial-gradient(var(--chat-pattern) 1.2px,transparent 1.3px),radial-gradient(var(--chat-pattern) 1.2px,transparent 1.3px);background-size:22px 22px;background-position:0 0,11px 11px;opacity:var(--chat-pattern-opacity);pointer-events:none}.info-pane{width:var(--info-w);flex-shrink:0;background:var(--surface);border-inline-start:1px solid var(--divider);display:flex;flex-direction:column;z-index:2;animation:slide-in-left var(--t) var(--ease-out)}@keyframes slide-in-left{0%{transform:translate(-24px);opacity:0}}@media(max-width:1199px){.info-pane{position:absolute;inset-block:0;inset-inline-end:0;box-shadow:var(--shadow)}}@media(max-width:767px){.sidebar{position:absolute;inset:0;width:100%;min-width:0;border:0;transition:transform var(--t-slow) var(--ease-out),filter var(--t-slow)}.chat-pane{position:absolute;inset:0;z-index:3;transform:translate(-100%);transition:transform var(--t-slow) var(--ease-out);box-shadow:var(--shadow)}.app.chat-open .chat-pane{transform:none}.app.chat-open .sidebar{transform:translate(22%);filter:brightness(.92)}.info-pane{position:absolute;inset:0;width:100%;z-index:4;animation:slide-in-left-full var(--t-slow) var(--ease-out)}}@keyframes slide-in-left-full{0%{transform:translate(-100%)}}.topbar{height:var(--header-h);padding:0 8px;padding-top:var(--safe-top);box-sizing:content-box;display:flex;align-items:center;gap:4px;flex-shrink:0;background:var(--surface);border-bottom:1px solid var(--divider);position:relative;z-index:3}.topbar .title{font-weight:600;font-size:16px}.brand{display:flex;align-items:center;gap:10px;min-width:0;flex:1;padding-inline-start:6px}.brand-logo{height:30px;display:flex;align-items:center;gap:7px;font-weight:800;font-size:18px;letter-spacing:-.2px;white-space:nowrap}.brand-mark{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 55%,#9b5cff));color:#fff;display:grid;place-items:center;font-size:17px;font-weight:800;box-shadow:0 3px 10px color-mix(in srgb,var(--accent) 35%,transparent)}.brand-status{font-size:13px;color:var(--text-muted);display:flex;align-items:center;gap:6px;animation:fade-in var(--t);white-space:nowrap}.brand-status .dots:after{content:"";animation:dots 1.4s steps(4) infinite}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.search-box{margin:8px 12px 4px;position:relative}.search-box input{width:100%;height:40px;border-radius:20px;border:1.5px solid transparent;background:var(--surface-2);padding:0 40px 0 36px;outline:none;transition:border-color var(--t-fast),background var(--t-fast)}.search-box input:focus{border-color:var(--accent);background:var(--surface)}.search-box>svg{position:absolute;inset-inline-start:12px;top:11px;color:var(--text-muted);pointer-events:none}.search-box .icon-btn{position:absolute;inset-inline-end:4px;top:4px}.folders{display:flex;gap:2px;padding:0 8px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--divider);flex-shrink:0}.folders::-webkit-scrollbar{display:none}.folder-tab{position:relative;padding:10px 12px 11px;font-size:14px;font-weight:500;color:var(--text-secondary);white-space:nowrap;display:inline-flex;align-items:center;gap:6px;border-radius:var(--r-md) var(--r-md) 0 0;transition:color var(--t-fast),background var(--t-fast)}.folder-tab:hover{background:var(--surface-2)}.folder-tab.active{color:var(--accent)}.folder-tab.active:after{content:"";position:absolute;inset-inline:10px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--accent);animation:grow var(--t) var(--ease-out)}.folder-tab .badge{min-width:18px;height:18px;font-size:11px;padding:0 5px}@keyframes grow{0%{transform:scaleX(.3);opacity:0}}.chat-list{flex:1;padding:6px 6px 90px}.chat-item{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:var(--r-lg);cursor:pointer;user-select:none;transition:background var(--t-fast);position:relative}.chat-item:hover{background:var(--surface-2)}.chat-item.active{background:var(--accent);color:var(--accent-text)}.chat-item.active .muted,.chat-item.active .secondary,.chat-item.active .preview,.chat-item.active .time,.chat-item.active .ticks{color:color-mix(in srgb,var(--accent-text) 80%,transparent)!important}.chat-item.active .badge{background:var(--accent-text);color:var(--accent)}.chat-item .body{flex:1;min-width:0}.chat-item .row{display:flex;align-items:center;gap:6px;min-width:0}.chat-item .name{font-weight:600;flex:1;display:flex;align-items:center;gap:4px}.chat-item .name svg{flex-shrink:0}.chat-item .time{font-size:12px;color:var(--text-muted);flex-shrink:0}.chat-item .preview{font-size:14px;color:var(--text-secondary);flex:1}.chat-item .preview .who{color:var(--text);font-weight:500}.chat-item.active .preview .who{color:inherit}.chat-item .preview .draft{color:var(--danger)}.chat-item .preview .typing{color:var(--accent)}.chat-item.active .preview .typing,.chat-item.active .preview .draft{color:inherit}.chat-item .ticks{color:var(--accent);flex-shrink:0}.mention-badge{width:22px;height:22px;border-radius:50%;background:var(--badge);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700}.archive-row{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:var(--r-lg);cursor:pointer;color:var(--text-secondary)}.archive-row:hover{background:var(--surface-2)}.archive-row .avatar{background:var(--surface-3);color:var(--text-secondary)}.list-section{padding:12px 14px 6px;font-size:13px;font-weight:600;color:var(--text-muted)}.fab{position:absolute;bottom:calc(20px + var(--safe-bottom));inset-inline-end:20px;width:54px;height:54px;border-radius:50%;background:var(--accent);color:var(--accent-text);display:grid;place-items:center;box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 45%,transparent);transition:transform var(--t) var(--ease-out),background var(--t-fast);z-index:5}.fab:hover{background:var(--accent-hover)}.fab:active{transform:scale(.92)}.fab.open svg{transform:rotate(45deg)}.fab svg{transition:transform var(--t) var(--ease-out)}.scrim{position:fixed;inset:0;background:var(--overlay);z-index:40;animation:fade-in var(--t)}.drawer{position:fixed;inset-block:0;inset-inline-start:0;width:min(320px,86vw);background:var(--surface);z-index:41;display:flex;flex-direction:column;box-shadow:var(--shadow);animation:drawer-in var(--t-slow) var(--ease-out);padding-top:var(--safe-top)}@keyframes drawer-in{0%{transform:translate(100%)}}.drawer-head{padding:22px 20px 16px;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 16%,var(--surface)),var(--surface));border-bottom:1px solid var(--divider)}.drawer-head .name{font-weight:700;font-size:17px;margin-top:12px}.drawer-head .user{font-size:13.5px;color:var(--text-secondary)}.drawer-items{flex:1;padding:8px}.drawer-foot{padding:12px 20px calc(14px + var(--safe-bottom));font-size:12.5px;color:var(--text-muted);border-top:1px solid var(--divider)}.row-item{display:flex;align-items:center;gap:16px;width:100%;min-height:48px;padding:8px 14px;border-radius:var(--r-md);text-align:start;transition:background var(--t-fast);cursor:pointer}.row-item:hover{background:var(--surface-2)}.row-item>svg:first-child{color:var(--text-secondary);flex-shrink:0}.row-item .label{flex:1;min-width:0}.row-item .sub{display:block;font-size:13px;color:var(--text-muted)}.row-item .value{color:var(--text-muted);font-size:14px}.row-item.danger,.row-item.danger>svg:first-child{color:var(--danger)}.row-item.static{cursor:default}.row-item.static:hover{background:none}.section{padding:6px 8px}.section+.section{border-top:8px solid var(--bg)}.section-title{padding:10px 14px 4px;font-size:13.5px;font-weight:600;color:var(--accent)}.toasts{position:fixed;bottom:calc(24px + var(--safe-bottom));left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;align-items:center;z-index:100;pointer-events:none}.toast{background:color-mix(in srgb,#10141c 92%,transparent);color:#fff;padding:10px 18px;border-radius:var(--r-lg);font-size:14px;box-shadow:var(--shadow);animation:rise var(--t) var(--ease-out);max-width:min(420px,90vw)}.toast.error{background:var(--danger)}.splash{height:100dvh;display:grid;place-items:center;background:var(--bg)}.splash .brand-mark{width:64px;height:64px;border-radius:18px;font-size:34px;animation:breathe 1.6s ease-in-out infinite}@keyframes breathe{50%{transform:scale(.92);opacity:.8}}.chat-head{cursor:default}.chat-head .who{display:flex;align-items:center;gap:12px;flex:1;min-width:0;cursor:pointer;padding:4px 6px;border-radius:var(--r-md)}.chat-head .who .t{font-weight:600;font-size:16px;line-height:1.3}.chat-head .who .s{font-size:13px;color:var(--text-muted);line-height:1.3}.chat-head .who .s.accent{color:var(--accent)}.pinned-bar{display:flex;align-items:center;gap:10px;padding:6px 14px;background:var(--surface);border-bottom:1px solid var(--divider);cursor:pointer;position:relative;z-index:2;animation:fade-in var(--t)}.pinned-bar .bar{width:3px;align-self:stretch;border-radius:2px;background:var(--accent)}.pinned-bar .t{font-size:13px;color:var(--accent);font-weight:600}.pinned-bar .p{font-size:14px;color:var(--text-secondary)}.chat-search{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--surface);border-bottom:1px solid var(--divider);position:relative;z-index:2}.chat-search input{flex:1;height:36px;border:0;outline:none;background:var(--surface-2);border-radius:18px;padding:0 14px}.msg-scroll{flex:1;display:flex;flex-direction:column-reverse;position:relative;z-index:1}.msg-inner{display:flex;flex-direction:column;padding:10px max(12px,calc((100% - 760px)/2)) 8px;gap:2px}.day-sep{position:sticky;top:8px;z-index:2;align-self:center;margin:10px 0;padding:3px 12px;border-radius:999px;font-size:13px;font-weight:500;background:color-mix(in srgb,var(--surface) 82%,transparent);color:var(--text-secondary);backdrop-filter:blur(8px);box-shadow:0 1px 2px #0000000f}.unread-sep{align-self:stretch;text-align:center;margin:10px -12px;padding:4px;font-size:13px;font-weight:500;color:var(--accent);background:color-mix(in srgb,var(--surface) 70%,transparent)}.sys-msg{align-self:center;max-width:80%;text-align:center;margin:6px 0;padding:4px 14px;border-radius:var(--r-lg);font-size:13.5px;background:color-mix(in srgb,var(--surface) 75%,transparent);color:var(--text-secondary);backdrop-filter:blur(8px)}.load-more{align-self:center;margin:8px;color:var(--text-muted)}.msg-row{display:flex;align-items:flex-end;gap:8px;margin-top:1px;position:relative}.msg-row.first{margin-top:8px}.msg-row.out{flex-direction:row}.msg-row.in{flex-direction:row-reverse}.msg-row .avatar-slot{width:36px;flex-shrink:0}.msg-row.selected:before{content:"";position:absolute;inset:-1px -2000px;background:color-mix(in srgb,var(--accent) 14%,transparent)}.msg-row .sel{align-self:center;z-index:1}.msg-row.new .bubble{animation:msg-in .24s var(--ease-out)}.msg-row.out.new .bubble{transform-origin:100% 100%}.msg-row.in.new .bubble{transform-origin:0 100%}@keyframes msg-in{0%{opacity:0;transform:translateY(10px) scale(.96)}}.msg-row.flash .bubble{animation:flash 1.6s ease}@keyframes flash{20%,60%{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 60%,transparent)}}.bubble{position:relative;max-width:min(520px,78%);padding:6px 10px;border-radius:var(--r-xl);font-size:var(--msg-size);line-height:1.55;box-shadow:0 1px 1.5px #00000014;overflow-wrap:anywhere;user-select:text;z-index:1}.msg-row.out .bubble{background:var(--bubble-out);color:var(--bubble-out-text)}.msg-row.in .bubble{background:var(--bubble-in);color:var(--bubble-in-text)}.msg-row.out:not(.last) .bubble{border-start-start-radius:8px;border-end-start-radius:8px}.msg-row.out.last .bubble{border-end-start-radius:6px}.msg-row.out:not(.first) .bubble{border-start-start-radius:8px}.msg-row.in:not(.last) .bubble{border-start-end-radius:8px;border-end-end-radius:8px}.msg-row.in.last .bubble{border-end-end-radius:6px}.msg-row.in:not(.first) .bubble{border-start-end-radius:8px}.bubble.media-only{padding:3px;background:transparent!important;box-shadow:none}.bubble.big-emoji{background:transparent!important;box-shadow:none;font-size:calc(44px * var(--text-scale));line-height:1.2;padding:0 4px}.bubble.big-emoji .meta-spacer{display:none}.bubble.big-emoji .meta{font-size:11.5px;background:color-mix(in srgb,var(--surface) 70%,transparent);padding:2px 6px;border-radius:8px}.bubble .sender{font-size:13.5px;font-weight:600;margin-bottom:1px;cursor:pointer}.bubble .fwd{font-size:13px;color:var(--accent);margin-bottom:2px}.msg-row.out .bubble .fwd{color:var(--bubble-out-meta)}.bubble .text{white-space:pre-wrap}.bubble .text a{color:var(--link);text-decoration:underline;text-underline-offset:2px}.msg-row.out .bubble .text a{color:inherit}.bubble .mention{color:var(--link);font-weight:500;cursor:pointer}.msg-row.out .bubble .mention{color:inherit;text-decoration:underline}.bubble .text mark{background:color-mix(in srgb,var(--warning) 45%,transparent);color:inherit;border-radius:3px}.meta-spacer{display:inline-block;width:var(--meta-w, 64px);height:1px}.meta{position:absolute;inset-inline-end:10px;bottom:5px;display:inline-flex;align-items:center;gap:3px;font-size:11.5px;line-height:1;white-space:nowrap;direction:rtl}.msg-row.out .meta{color:var(--bubble-out-meta)}.msg-row.in .meta{color:var(--bubble-in-meta)}.meta.on-media{background:#00000073;color:#fff!important;padding:3px 7px;border-radius:10px;bottom:8px;inset-inline-end:8px}.meta .read{color:var(--accent)}.msg-row.out .meta .read{color:var(--bubble-out-meta)}.meta .fail{color:var(--danger)}.meta.block{position:static;float:inline-end;margin:4px 0 0 -2px;margin-inline-start:8px}.reply-quote{display:flex;gap:8px;margin:2px 0 4px;padding:4px 8px;border-radius:8px;background:color-mix(in srgb,var(--accent) 10%,transparent);cursor:pointer;min-width:0;max-width:100%;border-inline-start:3px solid var(--accent);font-size:13.5px;line-height:1.4}.msg-row.out .reply-quote{background:color-mix(in srgb,var(--bubble-out-meta) 16%,transparent);border-color:var(--bubble-out-meta)}.reply-quote .who{font-weight:600;color:var(--accent)}.msg-row.out .reply-quote .who{color:var(--bubble-out-meta)}.reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.reaction{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 8px;border-radius:13px;font-size:14px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);font-weight:600;transition:transform var(--t-fast),background var(--t-fast);animation:pop var(--t) var(--ease-out)}.reaction:hover{transform:scale(1.06)}.reaction.mine{background:var(--accent);color:var(--accent-text)}.msg-row.out .reaction{background:color-mix(in srgb,var(--bubble-out-meta) 22%,transparent);color:var(--bubble-out-text)}.msg-row.out .reaction.mine{background:var(--bubble-out-meta);color:var(--bubble-out)}.reaction .n{font-size:12.5px}.msg-error{display:flex;align-items:center;gap:6px;color:var(--text-muted);font-style:italic;font-size:14px}.photo,.video-thumb{position:relative;border-radius:16px;overflow:hidden;background:var(--surface-3);cursor:pointer;max-width:100%}.bubble:not(.media-only) .photo,.bubble:not(.media-only) .video-thumb{margin:-2px -6px 4px;border-radius:14px;max-width:calc(100% + 12px)}.photo img,.video-thumb img{width:100%;height:100%;object-fit:cover}.photo .blur{position:absolute;inset:0;filter:blur(14px);transform:scale(1.1)}.photo img.full{position:relative;animation:fade-in var(--t)}.media-overlay{position:absolute;inset:0;display:grid;place-items:center}.media-btn{width:52px;height:52px;border-radius:50%;background:#00000080;color:#fff;display:grid;place-items:center;backdrop-filter:blur(4px)}.media-chip{position:absolute;top:8px;inset-inline-start:8px;background:#00000080;color:#fff;font-size:12px;padding:2px 8px;border-radius:10px}.file-box{display:flex;align-items:center;gap:12px;min-width:220px;padding:4px 0}.file-icon{position:relative;width:48px;height:48px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;flex-shrink:0;cursor:pointer;font-size:11px;font-weight:700}.msg-row.out .file-icon{background:var(--bubble-out-meta);color:var(--bubble-out)}.file-box .fname{font-weight:600;font-size:14.5px}.file-box .fsize{font-size:13px;color:var(--bubble-in-meta)}.msg-row.out .file-box .fsize{color:var(--bubble-out-meta)}.ring{position:absolute;inset:0;transform:rotate(-90deg)}.ring circle{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;transition:stroke-dashoffset .15s linear}.voice{display:flex;align-items:center;gap:10px;min-width:230px;padding:2px 0}.voice .wave{display:flex;align-items:center;gap:2px;height:30px;flex:1;cursor:pointer;direction:ltr}.voice .wave i{flex:1;min-width:2px;max-width:3px;border-radius:2px;background:color-mix(in srgb,currentColor 30%,transparent);transition:background var(--t-fast)}.voice .wave i.on{background:var(--accent)}.msg-row.out .voice .wave i.on{background:var(--bubble-out-meta)}.voice .vmeta{font-size:12.5px;display:flex;gap:8px;align-items:center;color:var(--bubble-in-meta)}.msg-row.out .voice .vmeta{color:var(--bubble-out-meta)}.rate-btn{font-size:11.5px;font-weight:700;padding:1px 6px;border-radius:8px;background:color-mix(in srgb,currentColor 14%,transparent)}.poll{min-width:260px}.poll .q{font-weight:600;margin-bottom:2px}.poll .kind{font-size:12.5px;opacity:.75;margin-bottom:8px}.poll-opt{display:block;width:100%;text-align:start;margin:6px 0;position:relative}.poll-opt .top{display:flex;align-items:center;gap:8px;font-size:14.5px}.poll-opt .pct{font-weight:700;font-size:13px;min-width:38px}.poll-opt .barwrap{height:4px;border-radius:2px;margin-top:4px;margin-inline-start:46px;background:color-mix(in srgb,currentColor 12%,transparent);overflow:hidden}.poll-opt .barfill{height:100%;border-radius:2px;background:var(--accent);transition:width .5s var(--ease-out)}.msg-row.out .poll-opt .barfill{background:var(--bubble-out-meta)}.poll .foot{font-size:13px;opacity:.75;margin-top:6px}.jump-btn{position:absolute;bottom:16px;inset-inline-end:18px;width:46px;height:46px;border-radius:50%;background:var(--surface);color:var(--text-secondary);box-shadow:var(--shadow);display:grid;place-items:center;z-index:3;animation:pop var(--t) var(--ease-out)}.jump-btn .badge{position:absolute;top:-8px}.composer-wrap{position:relative;z-index:2;padding:6px max(10px,calc((100% - 780px)/2)) calc(10px + var(--safe-bottom))}.composer-extra{display:flex;align-items:center;gap:10px;padding:6px 12px;background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;border-bottom:1px solid var(--divider);animation:rise var(--t) var(--ease-out)}.composer-extra .bar{width:3px;align-self:stretch;background:var(--accent);border-radius:2px}.composer-extra .t{font-size:13px;color:var(--accent);font-weight:600}.composer-extra .p{font-size:13.5px;color:var(--text-secondary)}.composer{display:flex;align-items:flex-end;gap:4px;background:var(--surface);border-radius:24px;padding:4px 6px;box-shadow:0 1px 3px #00000014}.composer-extra+.composer{border-radius:0 0 24px 24px}.composer textarea{flex:1;border:0;outline:none;resize:none;background:transparent;padding:9px 4px;max-height:180px;line-height:1.5;font-size:var(--msg-size);min-height:42px}.send-btn{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:var(--accent);flex-shrink:0;transition:transform var(--t-fast),background var(--t-fast)}.send-btn:hover{background:var(--accent-soft)}.send-btn.filled{background:var(--accent);color:var(--accent-text);animation:pop var(--t) var(--ease-out)}.send-btn.filled:hover{background:var(--accent-hover)}.send-btn svg{transform:scaleX(-1)}.send-btn.mic svg{transform:none}.composer-blocked{text-align:center;padding:12px;background:var(--surface);border-radius:24px;color:var(--text-muted);font-size:14px}.recording{display:flex;align-items:center;gap:10px;flex:1;padding:0 8px;height:42px;animation:fade-in var(--t)}.rec-dot{width:10px;height:10px;border-radius:50%;background:var(--danger);animation:breathe 1s infinite}.rec-wave{flex:1;display:flex;align-items:center;gap:2px;height:28px;overflow:hidden;direction:ltr;justify-content:flex-end}.rec-wave i{width:3px;flex-shrink:0;border-radius:2px;background:var(--accent)}.mention-pop{position:absolute;bottom:calc(100% - 4px);inset-inline:max(10px,calc((100% - 780px)/2));background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:6px;max-height:240px;animation:rise var(--t-fast) var(--ease-out)}.mention-pop .opt{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:var(--r-md);cursor:pointer;width:100%;text-align:start}.mention-pop .opt.active,.mention-pop .opt:hover{background:var(--surface-2)}.emoji-pop{width:340px;max-width:calc(100vw - 20px);height:340px;display:flex;flex-direction:column}.emoji-tabs{display:flex;gap:2px;padding:4px;border-bottom:1px solid var(--divider)}.emoji-tabs button{flex:1;height:32px;border-radius:8px;font-size:18px}.emoji-tabs button.active{background:var(--surface-2)}.emoji-grid{flex:1;display:grid;grid-template-columns:repeat(8,1fr);padding:6px;align-content:start}.emoji-grid button{font-size:24px;height:38px;border-radius:8px;transition:transform var(--t-fast)}.emoji-grid button:hover{background:var(--surface-2);transform:scale(1.15)}.select-bar{display:flex;align-items:center;gap:8px;flex:1;animation:fade-in var(--t)}.no-chat{flex:1;display:grid;place-items:center;position:relative;z-index:1}.no-chat .pill{background:color-mix(in srgb,var(--surface) 80%,transparent);color:var(--text-secondary);padding:6px 16px;font-size:14px;backdrop-filter:blur(8px)}.modal-layer{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:var(--overlay);animation:fade-in var(--t);padding:16px}.modal{width:min(440px,100%);max-height:min(720px,calc(100dvh - 32px));display:flex;flex-direction:column;background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow);animation:modal-in var(--t) var(--ease-out);overflow:hidden}.modal.wide{width:min(560px,100%)}@keyframes modal-in{0%{opacity:0;transform:scale(.94) translateY(8px)}}.modal-head{display:flex;align-items:center;gap:6px;padding:12px 12px 8px 16px;min-height:56px}.modal-head h2{flex:1;margin:0;font-size:17px;font-weight:700;padding-inline-start:6px}.modal-body{padding:4px 20px 16px;flex:1;min-height:0}.modal-body.flush{padding:0 8px 8px}.modal-foot{display:flex;gap:8px;justify-content:flex-end;padding:10px 16px 16px}.modal p{margin:0 0 12px;color:var(--text-secondary)}@media(max-width:767px){.modal-layer.sheet{align-items:end;padding:0}.modal-layer.sheet .modal{width:100%;border-radius:var(--r-xl) var(--r-xl) 0 0;max-height:92dvh;padding-bottom:var(--safe-bottom);animation:sheet-in var(--t-slow) var(--ease-out)}.modal-layer.full{padding:0}.modal-layer.full .modal{width:100%;height:100dvh;max-height:none;border-radius:0;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom);animation:slide-in-left-full var(--t-slow) var(--ease-out)}}@keyframes sheet-in{0%{transform:translateY(100%)}}.menu-layer{position:fixed;inset:0;z-index:70}.menu{position:fixed;min-width:200px;max-width:300px;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(16px);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:6px;animation:menu-in .16s var(--ease-out);transform-origin:var(--origin, top right);border:1px solid var(--divider)}@keyframes menu-in{0%{opacity:0;transform:scale(.9)}}.menu-item{display:flex;align-items:center;gap:12px;width:100%;padding:8px 12px;border-radius:var(--r-md);font-size:14.5px;text-align:start;transition:background var(--t-fast)}.menu-item:hover{background:var(--surface-2)}.menu-item svg{color:var(--text-secondary);flex-shrink:0}.menu-item.danger,.menu-item.danger svg{color:var(--danger)}.menu-sep{height:1px;background:var(--divider);margin:4px 6px}.menu-reacts{display:flex;gap:2px;padding:4px 4px 6px;border-bottom:1px solid var(--divider);margin-bottom:4px;overflow-x:auto;scrollbar-width:none}.menu-reacts button{font-size:22px;width:36px;height:36px;border-radius:50%;flex-shrink:0;transition:transform var(--t-fast)}.menu-reacts button:hover{transform:scale(1.25);background:var(--surface-2)}.menu-reacts button.mine{background:var(--accent-soft)}.settings-layer .modal{width:min(480px,100%);height:min(760px,calc(100dvh - 32px))}.settings-body{flex:1;min-height:0;animation:page-in var(--t) var(--ease-out)}@keyframes page-in{0%{opacity:0;transform:translate(-16px)}}.profile-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 20px 18px;text-align:center}.profile-card .name{font-size:19px;font-weight:700;margin-top:8px}.profile-card .sub{color:var(--text-muted);font-size:14px}.avatar-edit{position:relative;cursor:pointer}.avatar-edit .cam{position:absolute;inset:0;border-radius:50%;background:#00000059;color:#fff;display:grid;place-items:center;opacity:0;transition:opacity var(--t-fast)}.avatar-edit:hover .cam{opacity:1}.choice-list .row-item .check{margin-inline-start:auto}.slider{width:100%;accent-color:var(--accent)}.bg-swatches{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:8px 14px 12px}.bg-swatch{height:72px;border-radius:var(--r-lg);border:2.5px solid transparent;position:relative;font-size:12.5px;display:flex;align-items:end;justify-content:center;padding-bottom:6px;color:var(--text-secondary);overflow:hidden;transition:border-color var(--t-fast)}.bg-swatch.active{border-color:var(--accent)}.preview-bubbles{margin:4px 14px 12px;padding:14px;border-radius:var(--r-lg);background:var(--chat-bg);display:flex;flex-direction:column;gap:6px}.preview-bubbles .b{padding:6px 12px;border-radius:16px;max-width:75%;font-size:var(--msg-size)}.preview-bubbles .b.in{background:var(--bubble-in);align-self:flex-end}.preview-bubbles .b.out{background:var(--bubble-out);color:var(--bubble-out-text);align-self:flex-start}.picker-search{padding:4px 12px 8px}.picker-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 8px}.chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 4px 0 10px;border-radius:15px;background:var(--accent-soft);color:var(--accent);font-size:13.5px;font-weight:500;animation:pop var(--t) var(--ease-out)}.chip .avatar{margin-inline-start:-2px}.user-row{display:flex;align-items:center;gap:12px;padding:7px 12px;border-radius:var(--r-md);cursor:pointer;width:100%;text-align:start;transition:background var(--t-fast)}.user-row:hover{background:var(--surface-2)}.user-row .u-name{font-weight:600}.user-row .u-sub{font-size:13px;color:var(--text-muted)}.user-row .u-sub.on{color:var(--accent)}.viewer{position:fixed;inset:0;z-index:80;background:#080a0ef0;display:flex;flex-direction:column;animation:fade-in var(--t);color:#fff}.viewer-top{display:flex;align-items:center;gap:8px;padding:calc(8px + var(--safe-top)) 10px 8px}.viewer-top .icon-btn{color:#fff}.viewer-top .icon-btn:hover{background:#ffffff1f}.viewer-stage{flex:1;display:grid;place-items:center;min-height:0;position:relative;padding:0 56px}.viewer-stage img,.viewer-stage video{max-width:100%;max-height:calc(100dvh - 140px);object-fit:contain;border-radius:6px;animation:zoom-in var(--t) var(--ease-out)}@keyframes zoom-in{0%{transform:scale(.92);opacity:0}}.viewer-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:#ffffff1a;color:#fff;display:grid;place-items:center}.viewer-nav:hover{background:#fff3}.viewer-nav.prev{inset-inline-end:10px}.viewer-nav.next{inset-inline-start:10px}.viewer-caption{text-align:center;padding:8px 20px calc(16px + var(--safe-bottom));font-size:15px;white-space:pre-wrap}@media(max-width:767px){.viewer-stage{padding:0}.viewer-nav{display:none}}.info-hero{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 20px 18px;text-align:center}.info-hero .t{font-size:19px;font-weight:700;margin-top:10px}.info-hero .s{color:var(--text-muted);font-size:14px}.info-actions{display:flex;gap:8px;justify-content:center;margin-top:12px}.info-actions .btn{flex-direction:column;height:auto;padding:8px 14px;gap:4px;font-size:12.5px;min-width:76px}.fp{direction:ltr;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:1px;font-size:15px;color:var(--text)}.tabs{display:flex;border-bottom:1px solid var(--divider);padding:0 8px}.tabs button{flex:1;padding:10px 4px;font-size:14px;font-weight:500;color:var(--text-secondary);position:relative}.tabs button.active{color:var(--accent)}.tabs button.active:after{content:"";position:absolute;inset-inline:20%;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--accent)}.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:2px}.media-grid .cell{aspect-ratio:1;background:var(--surface-3);overflow:hidden;cursor:pointer;position:relative}.media-grid .cell img{width:100%;height:100%;object-fit:cover;transition:transform var(--t)}.media-grid .cell:hover img{transform:scale(1.05)}.media-grid .cell .media-chip{top:auto;bottom:6px;font-size:11px}.auth{min-height:100dvh;display:grid;place-items:center;padding:24px 16px;background:radial-gradient(1200px 600px at 100% -10%,color-mix(in srgb,var(--accent) 20%,transparent),transparent 60%),radial-gradient(900px 500px at -10% 110%,color-mix(in srgb,#9b5cff 14%,transparent),transparent 60%),var(--bg)}.auth-card{width:min(400px,100%);background:var(--surface);border-radius:24px;box-shadow:var(--shadow);padding:28px 26px 24px;animation:modal-in var(--t-slow) var(--ease-out)}.auth-card .brand-mark{width:64px;height:64px;border-radius:20px;font-size:34px;margin:0 auto 14px}.auth-card h1{text-align:center;margin:0;font-size:22px;font-weight:800}.auth-card .lead{text-align:center;color:var(--text-secondary);margin:6px 0 22px;font-size:14.5px}.auth-links{display:flex;justify-content:space-between;gap:8px;margin-top:14px;font-size:14px}.auth-links button{color:var(--accent);font-weight:500}.steps{display:flex;gap:6px;justify-content:center;margin-bottom:18px}.steps i{width:26px;height:4px;border-radius:2px;background:var(--surface-3);transition:background var(--t)}.steps i.on{background:var(--accent)}.notice{display:flex;gap:10px;padding:12px 14px;border-radius:var(--r-md);background:color-mix(in srgb,var(--warning) 14%,transparent);font-size:13.5px;line-height:1.6;margin-bottom:14px}.notice svg{flex-shrink:0;color:color-mix(in srgb,var(--warning) 80%,var(--text));margin-top:2px}.notice.info{background:var(--accent-soft)}.notice.info svg{color:var(--accent)}.send-previews{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px;margin-bottom:12px}.send-previews .pv{aspect-ratio:1;border-radius:var(--r-md);overflow:hidden;background:var(--surface-2);display:grid;place-items:center;position:relative;font-size:12px;text-align:center;padding:4px}.send-previews .pv img,.send-previews .pv video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.send-previews.single{grid-template-columns:1fr}.send-previews.single .pv{aspect-ratio:auto;max-height:340px;min-height:120px}.send-previews.single .pv img,.send-previews.single .pv video{position:static;max-height:340px;object-fit:contain}.admin-user{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:var(--r-md)}.admin-user:hover{background:var(--surface-2)}.admin-user .meta-line{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:2px}.drop-zone{position:absolute;inset:10px;z-index:20;border:3px dashed var(--accent);border-radius:var(--r-xl);background:color-mix(in srgb,var(--surface) 85%,transparent);display:grid;place-items:center;font-size:18px;font-weight:600;color:var(--accent);animation:fade-in var(--t-fast);pointer-events:none}
