:root{--fib-1: .25rem;--fib-2: .5rem;--fib-3: .75rem;--fib-5: 1rem;--fib-8: 1.5rem;--fib-13: 2rem;--fib-21: 3rem;--fib-34: 4rem;--fib-55: 5rem;--fib-89: 8rem;--fib-144: 13rem;--fib-233: 21rem;--fib-377: 34rem;--fs-caption: .7rem;--fs-sm: .85rem;--fs-body: 1rem;--fs-h3: 1.25rem;--fs-h2: 1.5rem;--fs-h1: 2rem;--lh-tight: 1.2;--lh-normal: 1.5;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--c-bg: #eae6df;--c-bg-chat: #efeae2;--c-panel: #ffffff;--c-panel-2: #f7f8fa;--c-rail: #1f2c33;--c-rail-2: #111b21;--c-rail-hover: #2a3942;--c-rail-active: #2f3b43;--c-primary: #2a9d8f;--c-primary-dark: #21867a;--c-primary-soft: #e7f5f2;--c-accent: #128c7e;--c-unread: #25d366;--c-text: #111b21;--c-text-soft: #667781;--c-text-mute: #8696a0;--c-text-invert: #e9edef;--c-danger: #e63946;--c-danger-soft: #fdecee;--c-warning: #f4a261;--c-success: #25d366;--c-info: #3a86ff;--c-border: #e4e6e9;--c-border-soft: #f0f1f3;--c-divider: #f2f3f5;--c-out: #d9fdd3;--c-out-2: #d1f4cc;--c-in: #ffffff;--r-xs: var(--fib-1);--r-sm: var(--fib-2);--r-md: var(--fib-3);--r-lg: var(--fib-5);--r-xl: var(--fib-8);--r-pill: var(--fib-89);--r-circle: 50%;--shadow-1: 0 1px 2px rgba(11, 27, 33, .08);--shadow-2: 0 2px 8px rgba(11, 27, 33, .1);--shadow-3: 0 6px 20px rgba(11, 27, 33, .14);--shadow-4: 0 12px 40px rgba(11, 27, 33, .22);--shadow-inset: inset 0 1px 0 rgba(255, 255, 255, .25);--ring: 0 0 0 var(--fib-1) rgba(42, 157, 143, .45);--t-fast: .12s;--t-base: .2s;--t-slow: .32s;--ease: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--z-base: 1;--z-sticky: 10;--z-rail: 20;--z-modal-bg: 50;--z-modal: 51;--z-toast: 60;--z-tooltip: 70;--w-rail: var(--fib-89);--w-chatlist: var(--fib-233)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{font-family:Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif;font-size:var(--fs-body);line-height:var(--lh-normal);color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow:hidden}h1,h2,h3,h4{line-height:var(--lh-tight);font-weight:var(--fw-semibold)}button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer;border:none;background:none}input,textarea,select{font-family:inherit;font-size:var(--fs-body);color:var(--c-text)}a{color:var(--c-accent);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;display:block}:focus{outline:none}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-sm)}::selection{background:#2a9d8f40}*{scrollbar-width:thin;scrollbar-color:rgba(102,119,129,.4) transparent}*::-webkit-scrollbar{width:var(--fib-2);height:var(--fib-2)}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#66778159;border-radius:var(--r-pill)}*::-webkit-scrollbar-thumb:hover{background:#66778199}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(var(--fib-3))}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(calc(var(--fib-3) * -1))}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(var(--fib-8))}to{opacity:1;transform:translate(0)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(calc(var(--fib-8) * -1))}to{opacity:1;transform:translate(0)}}@keyframes pop-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes bubble-in{0%{opacity:0;transform:translateY(var(--fib-2)) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse-unread{0%{box-shadow:0 0 #25d36680}70%{box-shadow:0 0 0 var(--fib-2) #25d36600}to{box-shadow:0 0 #25d36600}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes typing-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(calc(var(--fib-1) * -1));opacity:1}}@keyframes gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes toast-in{0%{opacity:0;transform:translateY(var(--fib-8)) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modal-in{0%{opacity:0;transform:translateY(var(--fib-5)) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.login-wrap{display:flex;align-items:center;justify-content:center;height:100%;padding:var(--fib-5);background:linear-gradient(135deg,#264653,#2a9d8f 60%,#21867a);background-size:200% 200%;animation:gradient-shift 18s var(--ease) infinite}.login-card{position:relative;width:100%;max-width:var(--fib-233);display:flex;flex-direction:column;gap:var(--fib-5);padding:var(--fib-13);background:var(--c-panel);border-radius:var(--r-xl);box-shadow:var(--shadow-4);animation:fade-in-up var(--t-slow) var(--ease-out) both}.login-card:before{content:"";position:absolute;inset:0 0 auto 0;height:var(--fib-1);border-radius:var(--r-xl) var(--r-xl) 0 0;background:linear-gradient(90deg,var(--c-primary),var(--c-unread))}.login-card h1{font-size:var(--fs-h2);color:var(--c-rail);text-align:center;display:flex;align-items:center;justify-content:center;gap:var(--fib-2)}.login-card p.sub{margin-top:calc(var(--fib-3) * -1);font-size:var(--fs-sm);color:var(--c-text-soft);text-align:center}.field{display:flex;flex-direction:column;gap:var(--fib-2)}.field label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--c-text-soft)}.field input{height:var(--fib-21);padding:0 var(--fib-3);background:var(--c-panel-2);border:var(--fib-1) solid var(--c-border);border-radius:var(--r-md);transition:border-color var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease),background var(--t-base) var(--ease)}.field input::placeholder{color:var(--c-text-mute)}.field input:hover{border-color:var(--c-text-mute)}.field input:focus{background:var(--c-panel);border-color:var(--c-primary);box-shadow:var(--ring)}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--fib-2);height:var(--fib-21);padding:0 var(--fib-5);font-size:var(--fs-body);font-weight:var(--fw-semibold);color:#fff;background:var(--c-primary);border-radius:var(--r-md);box-shadow:var(--shadow-1);transition:background var(--t-base) var(--ease),transform var(--t-fast) var(--ease),box-shadow var(--t-base) var(--ease),opacity var(--t-base) var(--ease);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.btn:hover{background:var(--c-primary-dark);box-shadow:var(--shadow-2)}.btn:active{transform:translateY(1px) scale(.99)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn.ghost{color:var(--c-primary);background:transparent;border:var(--fib-1) solid var(--c-primary);box-shadow:none}.btn.ghost:hover{background:var(--c-primary-soft)}.btn.danger{background:var(--c-danger)}.btn.danger:hover{background:#c92f3c}.btn.block{width:100%}.btn.sm{height:var(--fib-13);padding:0 var(--fib-3);font-size:var(--fs-sm)}.btn.loading{color:transparent;pointer-events:none}.btn.loading:after{content:"";position:absolute;width:var(--fib-5);height:var(--fib-5);border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:var(--r-circle);animation:spin .7s linear infinite}.err{color:var(--c-danger);background:var(--c-danger-soft);font-size:var(--fs-sm);text-align:center;padding:var(--fib-2) var(--fib-3);border-radius:var(--r-sm);animation:fade-in-down var(--t-base) var(--ease-out) both}.app{display:grid;grid-template-columns:var(--w-rail) var(--w-chatlist) 1fr;height:100%;animation:fade-in var(--t-base) var(--ease) both}.rail{position:relative;z-index:var(--z-rail);display:flex;flex-direction:column;gap:var(--fib-1);padding:var(--fib-3) 0;background:linear-gradient(180deg,var(--c-rail) 0%,var(--c-rail-2) 100%);color:var(--c-text-invert);min-height:0;overflow-y:auto;overflow-x:hidden}.rail-title{padding:var(--fib-2) var(--fib-3);font-size:var(--fs-caption);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.08em;color:var(--c-text-mute)}.doc-tab{position:relative;display:flex;align-items:center;gap:var(--fib-2);width:100%;padding:var(--fib-3);text-align:left;color:var(--c-text-invert);border-left:var(--fib-1) solid transparent;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.doc-tab:hover{background:var(--c-rail-hover)}.doc-tab.active{background:var(--c-rail-active);border-left-color:var(--c-primary)}.doc-tab.active:after{content:"";position:absolute;right:var(--fib-2);top:50%;transform:translateY(-50%);width:var(--fib-1);height:60%;border-radius:var(--r-pill);background:var(--c-primary);opacity:.6}.doc-dot{flex:0 0 auto;width:var(--fib-3);height:var(--fib-3);border-radius:var(--r-circle);box-shadow:0 0 0 var(--fib-1) #ffffff1f;position:relative}.doc-info{display:flex;flex-direction:column;min-width:0;flex:1}.doc-name{font-size:var(--fs-sm);font-weight:var(--fw-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-state{display:flex;align-items:center;gap:var(--fib-1);font-size:var(--fs-caption);color:var(--c-text-mute)}.doc-state:before{content:"";width:var(--fib-2);height:var(--fib-2);border-radius:var(--r-circle);background:currentColor;flex:0 0 auto}.doc-state.open{color:var(--c-unread)}.doc-state.open:before{animation:pulse-dot 2s var(--ease) infinite}.doc-state.close{color:var(--c-warning)}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:var(--fib-5);height:var(--fib-5);padding:0 var(--fib-1);font-size:var(--fs-caption);font-weight:var(--fw-bold);color:#04160c;background:var(--c-unread);border-radius:var(--r-pill);animation:pulse-unread 2.4s var(--ease) 2}.rail-add{margin:var(--fib-3)}.rail-add.logout{margin-top:auto}.chatlist{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--c-panel);border-right:var(--fib-1) solid var(--c-border)}.chatlist-head{position:sticky;top:0;z-index:var(--z-sticky);display:flex;flex-direction:column;gap:var(--fib-2);padding:var(--fib-3);background:var(--c-panel);border-bottom:var(--fib-1) solid var(--c-border)}.chatlist-title{display:flex;align-items:center;justify-content:space-between;gap:var(--fib-2)}.chatlist-head h2{display:flex;align-items:center;gap:var(--fib-2);font-size:var(--fs-h3);color:var(--c-text);min-width:0}.chatlist-head h2{overflow:hidden}.chatlist-head h2>:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.disc-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--fib-1);padding:var(--fib-1) var(--fib-2);font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--c-danger);background:var(--c-danger-soft);border:var(--fib-1) solid transparent;border-radius:var(--r-pill);transition:background var(--t-fast) var(--ease),opacity var(--t-fast) var(--ease)}.disc-btn:hover{background:#fbd9dd}.disc-btn:disabled{color:var(--c-text-mute);background:var(--c-panel-2);cursor:default;opacity:.7}.load-more{width:100%;padding:var(--fib-3);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--c-primary-dark);background:var(--c-panel-2);border-top:var(--fib-1) solid var(--c-divider);transition:background var(--t-fast) var(--ease)}.load-more:hover{background:var(--c-primary-soft)}.media-loading{display:inline-flex;align-items:center;gap:var(--fib-1);padding:var(--fib-2) var(--fib-3);font-size:var(--fs-sm);color:var(--c-text-soft);background:#0000000a;border-radius:var(--r-sm);align-self:flex-start}.search{height:var(--fib-13);padding:0 var(--fib-3);background:var(--c-panel-2);border:var(--fib-1) solid transparent;border-radius:var(--r-pill);transition:border-color var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease),background var(--t-base) var(--ease)}.search::placeholder{color:var(--c-text-mute)}.search:focus{background:var(--c-panel);border-color:var(--c-primary);box-shadow:var(--ring)}.chats{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.chat-item{display:flex;align-items:center;gap:var(--fib-3);width:100%;padding:var(--fib-3);text-align:left;border-bottom:var(--fib-1) solid var(--c-divider);transition:background var(--t-fast) var(--ease);animation:fade-in var(--t-base) var(--ease) both}.chat-item:hover{background:var(--c-panel-2)}.chat-item.active{background:var(--c-primary-soft)}.chat-item.active .chat-name{color:var(--c-primary-dark)}.avatar{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:var(--fib-13);height:var(--fib-13);border-radius:var(--r-circle);background:linear-gradient(135deg,#b0bec5,#90a4ae);color:#fff;font-weight:var(--fw-bold);font-size:var(--fs-sm);object-fit:cover;overflow:hidden;-webkit-user-select:none;user-select:none}.chat-meta{display:flex;flex-direction:column;gap:var(--fib-1);min-width:0;flex:1}.chat-top{display:flex;justify-content:space-between;align-items:baseline;gap:var(--fib-2)}.chat-name{font-weight:var(--fw-semibold);color:var(--c-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-time{flex:0 0 auto;font-size:var(--fs-caption);color:var(--c-text-soft)}.chat-last{display:flex;justify-content:space-between;align-items:center;gap:var(--fib-2)}.chat-preview{font-size:var(--fs-sm);color:var(--c-text-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.skeleton{background:linear-gradient(90deg,#eceff1 25%,#f5f6f7 37%,#eceff1 63%);background-size:200% 100%;animation:shimmer 1.4s linear infinite;border-radius:var(--r-sm)}.chat-skeleton{display:flex;gap:var(--fib-3);padding:var(--fib-3);align-items:center}.chat-skeleton .sk-avatar{width:var(--fib-13);height:var(--fib-13);border-radius:var(--r-circle)}.chat-skeleton .sk-lines{flex:1;display:flex;flex-direction:column;gap:var(--fib-2)}.chat-skeleton .sk-line{height:var(--fib-2)}.chat-skeleton .sk-line.short{width:40%}.thread{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background-color:var(--c-bg-chat);background-image:radial-gradient(rgba(0,0,0,.02) 1px,transparent 1px);background-size:var(--fib-8) var(--fib-8)}.thread-head{display:flex;align-items:center;gap:var(--fib-3);padding:var(--fib-3);background:var(--c-panel);border-bottom:var(--fib-1) solid var(--c-border);box-shadow:var(--shadow-1);z-index:var(--z-sticky)}.thread-head .chat-name{font-size:var(--fs-h3)}.thread-head .sub{font-size:var(--fs-caption);color:var(--c-text-soft)}.messages{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--fib-2);padding:var(--fib-5) var(--fib-8);overflow-y:auto;overflow-x:hidden}.bubble{position:relative;max-width:65%;padding:var(--fib-2) var(--fib-3);font-size:var(--fs-sm);line-height:var(--lh-normal);border-radius:var(--r-md);box-shadow:var(--shadow-1);word-wrap:break-word;overflow-wrap:anywhere;white-space:pre-wrap;animation:bubble-in var(--t-base) var(--ease-out) both}.bubble.in{align-self:flex-start;background:var(--c-in);border-top-left-radius:var(--r-xs)}.bubble.out{align-self:flex-end;background:var(--c-out);border-top-right-radius:var(--r-xs)}.bubble.in:before,.bubble.out:before{content:"";position:absolute;top:0;width:0;height:0;border:var(--fib-2) solid transparent}.bubble.in:before{left:calc(var(--fib-2) * -1 + 1px);border-top-color:var(--c-in);border-right-color:var(--c-in)}.bubble.out:before{right:calc(var(--fib-2) * -1 + 1px);border-top-color:var(--c-out);border-left-color:var(--c-out)}.bubble .sender{display:block;margin-bottom:var(--fib-1);font-size:var(--fs-caption);font-weight:var(--fw-bold);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.bubble .time{display:block;margin-top:var(--fib-1);font-size:var(--fs-caption);color:var(--c-text-soft);text-align:right}.bubble.out .time{color:#4a7c59}.bubble img.media{display:block;max-width:100%;margin-bottom:var(--fib-1);border-radius:var(--r-sm)}.bubble audio{width:100%;margin-top:var(--fib-1)}.bubble a{color:var(--c-accent);text-decoration:underline;word-break:break-all}.bubble.has-media{max-width:min(var(--fib-233),80%)}.media-msg{display:flex;flex-direction:column;gap:var(--fib-2)}.media-msg.audio audio{width:var(--fib-233);max-width:100%;height:var(--fib-13)}.media-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--fib-1);padding:var(--fib-2) var(--fib-3);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--c-primary-dark);background:#2a9d8f1a;border:var(--fib-1) solid rgba(42,157,143,.3);border-radius:var(--r-md);transition:background var(--t-fast) var(--ease);align-self:flex-start;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-btn:hover{background:#2a9d8f2e}.media-btn:disabled{opacity:.6;cursor:progress}.media-btn.ghost{color:var(--c-text-soft);background:transparent;border-color:var(--c-border)}.media-btn.ghost:hover{background:var(--c-panel-2);color:var(--c-text)}.media-img{display:block;max-width:var(--fib-233);width:100%;max-height:var(--fib-233);object-fit:cover;border-radius:var(--r-sm);cursor:zoom-in;background:#0000000a}.media-img.sticker{max-width:var(--fib-89);background:transparent;object-fit:contain}video.media-img{cursor:default;object-fit:contain;max-height:var(--fib-377)}.transcript{padding:var(--fib-2) var(--fib-3);font-size:var(--fs-sm);font-style:italic;color:var(--c-text);background:#0000000a;border-left:var(--fib-1) solid var(--c-primary);border-radius:var(--r-sm);white-space:pre-wrap;line-height:var(--lh-normal)}.media-err{font-size:var(--fs-caption);color:var(--c-danger)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--fib-8);background:#000000d9;cursor:zoom-out;animation:backdrop-in var(--t-base) var(--ease) both}.lightbox img{max-width:100%;max-height:100%;border-radius:var(--r-sm);box-shadow:var(--shadow-4);cursor:default;animation:pop-in var(--t-base) var(--ease-spring) both}.lightbox-close{position:absolute;top:var(--fib-5);right:var(--fib-5);width:var(--fib-13);height:var(--fib-13);font-size:var(--fs-h3);color:#fff;background:#ffffff26;border-radius:var(--r-circle)}.lightbox-close:hover{background:#ffffff47}.day-sep{align-self:center;margin:var(--fib-2) 0;padding:var(--fib-1) var(--fib-3);font-size:var(--fs-caption);font-weight:var(--fw-medium);color:var(--c-text-soft);background:#ffffffd9;border-radius:var(--r-pill);box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.typing{align-self:flex-start;display:inline-flex;gap:var(--fib-1);padding:var(--fib-3);background:var(--c-in);border-radius:var(--r-md);box-shadow:var(--shadow-1)}.typing span{width:var(--fib-2);height:var(--fib-2);border-radius:var(--r-circle);background:var(--c-text-mute);animation:typing-bounce 1.2s var(--ease) infinite}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}.typing.inline{padding:var(--fib-2);background:transparent;box-shadow:none}.older-loader{align-self:center;display:flex;justify-content:center;padding:var(--fib-2) 0 var(--fib-3)}.older-loader .media-btn{background:#ffffffd9}.composer{display:flex;align-items:flex-end;gap:var(--fib-2);padding:var(--fib-3);background:var(--c-panel);border-top:var(--fib-1) solid var(--c-border)}.composer textarea{flex:1;min-height:var(--fib-13);max-height:var(--fib-89);padding:var(--fib-2) var(--fib-3);background:var(--c-panel-2);border:var(--fib-1) solid transparent;border-radius:var(--r-xl);resize:none;line-height:var(--lh-normal);transition:border-color var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease),background var(--t-base) var(--ease)}.composer textarea::placeholder{color:var(--c-text-mute)}.composer textarea:focus{background:var(--c-panel);border-color:var(--c-primary);box-shadow:var(--ring)}.icon-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--fib-21);height:var(--fib-21);font-size:var(--fs-h3);color:#fff;background:var(--c-primary);border-radius:var(--r-circle);box-shadow:var(--shadow-1);transition:background var(--t-base) var(--ease),transform var(--t-fast) var(--ease),box-shadow var(--t-base) var(--ease)}.icon-btn:hover{background:var(--c-primary-dark);box-shadow:var(--shadow-2)}.icon-btn:active{transform:scale(.92)}.icon-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.icon-btn.attach{color:var(--c-text-soft);background:var(--c-panel-2);box-shadow:none}.icon-btn.attach:hover{background:var(--c-border);color:var(--c-text)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--fib-3);padding:var(--fib-13);text-align:center;color:var(--c-text-soft);animation:fade-in var(--t-slow) var(--ease) both}.empty .big{font-size:var(--fs-h1);filter:grayscale(.1);animation:pop-in var(--t-slow) var(--ease-spring) both}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal-bg);display:flex;align-items:center;justify-content:center;padding:var(--fib-5);background:#0b1b218c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:backdrop-in var(--t-base) var(--ease) both}.modal{position:relative;z-index:var(--z-modal);width:100%;max-width:var(--fib-233);max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:var(--fib-5);padding:var(--fib-8);background:var(--c-panel);border-radius:var(--r-xl);box-shadow:var(--shadow-4);animation:modal-in var(--t-slow) var(--ease-out) both}.modal h2{font-size:var(--fs-h2);color:var(--c-rail)}.modal .qr{display:flex;flex-direction:column;align-items:center;gap:var(--fib-3)}.modal .qr img{width:var(--fib-144);height:var(--fib-144);padding:var(--fib-2);background:#fff;border:var(--fib-2) solid var(--c-border);border-radius:var(--r-md);box-shadow:var(--shadow-2);animation:pop-in var(--t-base) var(--ease-spring) both}.modal .steps{font-size:var(--fs-sm);line-height:var(--lh-normal);color:var(--c-text-soft)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--fib-3)}.row{display:flex;gap:var(--fib-3)}.row>*{flex:1}.toast{position:fixed;bottom:var(--fib-5);right:var(--fib-5);z-index:var(--z-toast);max-width:var(--fib-233);padding:var(--fib-3) var(--fib-5);font-size:var(--fs-sm);color:#fff;background:var(--c-rail);border-radius:var(--r-md);box-shadow:var(--shadow-3);animation:toast-in var(--t-slow) var(--ease-spring) both}.toast.success{background:var(--c-accent)}.toast.error{background:var(--c-danger)}.toast.info{background:var(--c-info)}[data-tip]:after{content:attr(data-tip);position:absolute;left:100%;top:50%;transform:translate(var(--fib-2),-50%) scale(.95);white-space:nowrap;padding:var(--fib-1) var(--fib-2);font-size:var(--fs-caption);color:#fff;background:var(--c-rail-2);border-radius:var(--r-sm);box-shadow:var(--shadow-2);opacity:0;pointer-events:none;z-index:var(--z-tooltip);transition:opacity var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}[data-tip]:hover:after{opacity:1;transform:translate(var(--fib-2),-50%) scale(1)}.mobile-back{display:none;font-size:var(--fs-h3);color:var(--c-text);width:var(--fib-13);height:var(--fib-13);border-radius:var(--r-circle);align-items:center;justify-content:center;transition:background var(--t-fast) var(--ease)}.mobile-back:hover{background:var(--c-panel-2)}.mt-auto{margin-top:auto}.full{width:100%}.hidden{display:none!important}.pill{display:inline-flex;align-items:center;gap:var(--fib-1);padding:var(--fib-1) var(--fib-2);font-size:var(--fs-caption);font-weight:var(--fw-medium);border-radius:var(--r-pill)}.pill.online{color:#0b6b3a;background:#25d36626}.pill.offline{color:#9a5b1e;background:#f4a2612e}@media(max-width:1024px){:root{--w-rail: var(--fib-55);--w-chatlist: var(--fib-144)}.doc-info,.rail-title{display:none}.doc-tab{justify-content:center;padding:var(--fib-2)}.doc-tab.active:after{display:none}.rail-add .btn-label{display:none}.messages{padding:var(--fib-3) var(--fib-5)}}@media(max-width:600px){.app{grid-template-columns:var(--w-rail) 1fr}.chatlist{grid-column:2}.thread,.app.show-thread .chatlist{display:none}.app.show-thread .thread{display:flex;grid-column:2}.mobile-back{display:inline-flex}.messages{padding:var(--fib-3) var(--fib-3)}.bubble{max-width:82%}.toast{left:var(--fib-3);right:var(--fib-3);max-width:none}}@media(max-width:480px){:root{--w-rail: var(--fib-34)}.login-card{padding:var(--fib-8)}.modal{padding:var(--fib-5)}.modal .qr img{width:var(--fib-89);height:var(--fib-89)}.bubble{max-width:85%}.composer{padding:var(--fib-2)}.icon-btn{width:var(--fib-13);height:var(--fib-13);font-size:var(--fs-body)}}@media(max-width:360px){:root{--w-rail: var(--fib-21)}.doc-dot{width:var(--fib-2);height:var(--fib-2)}.chatlist-head h2{font-size:var(--fs-body)}.avatar{width:var(--fib-8);height:var(--fib-8);font-size:var(--fs-caption)}}@media(prefers-color-scheme:dark){:root{--c-bg: #0b141a;--c-bg-chat: #0b141a;--c-panel: #111b21;--c-panel-2: #1c272e;--c-rail: #0a1014;--c-rail-2: #060c10;--c-rail-hover: #1c272e;--c-rail-active: #233138;--c-text: #e9edef;--c-text-soft: #aebac1;--c-text-mute: #8696a0;--c-border: #2a3942;--c-border-soft: #202c33;--c-divider: #1c272e;--c-in: #202c33;--c-out: #005c4b;--c-out-2: #015042;--c-primary-soft: #15302c}body{background:var(--c-bg)}.bubble.in{color:var(--c-text)}.bubble.in:before{border-top-color:var(--c-in);border-right-color:var(--c-in)}.bubble.out{color:#e9edef}.bubble.out:before{border-top-color:var(--c-out);border-left-color:var(--c-out)}.bubble.out .time{color:#9fe0c7}.day-sep{background:#202c33e6;color:var(--c-text-soft)}.avatar{background:linear-gradient(135deg,#2a3942,#233138)}.skeleton{background:linear-gradient(90deg,#1c272e 25%,#233138 37%,#1c272e 63%);background-size:200% 100%}.thread{background-image:radial-gradient(rgba(255,255,255,.02) 1px,transparent 1px)}.err{background:#e6394626}}:root{--elev-0: none;--elev-1: 0 1px 2px rgba(11, 27, 33, .06), 0 1px 1px rgba(11, 27, 33, .04);--elev-2: 0 2px 4px rgba(11, 27, 33, .08), 0 2px 6px rgba(11, 27, 33, .06);--elev-3: 0 6px 12px rgba(11, 27, 33, .1), 0 2px 4px rgba(11, 27, 33, .06);--elev-4: 0 12px 28px rgba(11, 27, 33, .16), 0 4px 8px rgba(11, 27, 33, .08);--elev-5: 0 24px 48px rgba(11, 27, 33, .22), 0 8px 16px rgba(11, 27, 33, .1);--grad-brand: linear-gradient(135deg, #2a9d8f, #21867a);--grad-brand-2: linear-gradient(135deg, #264653, #2a9d8f 60%, #21867a);--grad-accent: linear-gradient(135deg, #25d366, #128c7e);--grad-rail: linear-gradient(180deg, #1f2c33, #111b21);--grad-sheen: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .35) 50%, transparent 70%);--blur-sm: blur(3px);--blur-md: blur(8px);--blur-lg: blur(16px);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-back: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.22, 1, .36, 1);--t-instant: 80ms;--t-quick: .14s;--t-medium: .24s;--t-slow2: .36s;--t-lazy: .56s;--bw-hair: 1px;--bw-thin: 2px;--bw-thick: var(--fib-1);--o-disabled: .55;--o-muted: .7;--o-faint: .4;--ring-brand: 0 0 0 var(--bw-thin) rgba(42, 157, 143, .45);--ring-danger: 0 0 0 var(--bw-thin) rgba(230, 57, 70, .4);--ring-soft: 0 0 0 var(--bw-thin) rgba(102, 119, 129, .3);--c-online: #25d366;--c-away: #f4a261;--c-busy: #e63946;--c-typing: #2a9d8f;--c-link: #128c7e;--c-mention: #2a9d8f;--c-quote-bar: #2a9d8f;--c-system-bg: rgba(225, 245, 254, .9);--c-system-text: #5a7184}body{font-feature-settings:"kern" 1,"liga" 1,"calt" 1;letter-spacing:.01em}h1,h2,h3,h4,h5{letter-spacing:-.01em}strong,b{font-weight:var(--fw-semibold)}small{font-size:var(--fs-caption)}code,kbd,samp{font-family:SF Mono,Roboto Mono,Menlo,Consolas,monospace;font-size:.9em;padding:0 var(--fib-1);background:#0b1b210f;border-radius:var(--r-xs)}hr{border:0;height:var(--bw-hair);background:var(--c-border);margin:var(--fib-3) 0}::selection{background:#2a9d8f38;color:inherit}:focus-visible{outline:none;box-shadow:var(--ring-brand)}a.link{position:relative;color:var(--c-link);text-decoration:none}a.link:after{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:var(--bw-hair);background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform var(--t-medium) var(--ease-smooth)}a.link:hover:after{transform:scaleX(1);transform-origin:left}@keyframes e-fade{0%{opacity:0}to{opacity:1}}@keyframes e-fade-up{0%{opacity:0;transform:translateY(var(--fib-3))}to{opacity:1;transform:none}}@keyframes e-fade-down{0%{opacity:0;transform:translateY(calc(var(--fib-3) * -1))}to{opacity:1;transform:none}}@keyframes e-fade-left{0%{opacity:0;transform:translate(var(--fib-5))}to{opacity:1;transform:none}}@keyframes e-fade-right{0%{opacity:0;transform:translate(calc(var(--fib-5) * -1))}to{opacity:1;transform:none}}@keyframes e-zoom-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes e-zoom-out{0%{opacity:0;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes e-pop{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.04)}to{transform:scale(1);opacity:1}}@keyframes e-spin{to{transform:rotate(360deg)}}@keyframes e-spin-rev{to{transform:rotate(-360deg)}}@keyframes e-pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes e-pulse-scale{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes e-ring{0%{box-shadow:0 0 #25d36680}70%{box-shadow:0 0 0 var(--fib-3) #25d36600}to{box-shadow:0 0 #25d36600}}@keyframes e-shimmer{0%{background-position:-180% 0}to{background-position:180% 0}}@keyframes e-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(calc(var(--fib-2) * -1))}}@keyframes e-bounce-soft{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(calc(var(--fib-1) * -1));opacity:1}}@keyframes e-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(calc(var(--fib-1) * -1))}40%,80%{transform:translate(var(--fib-1))}}@keyframes e-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}@keyframes e-float{0%,to{transform:translateY(0)}50%{transform:translateY(calc(var(--fib-2) * -1))}}@keyframes e-slide-up-in{0%{opacity:0;transform:translateY(var(--fib-8))}to{opacity:1;transform:none}}@keyframes e-slide-down-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(var(--fib-8))}}@keyframes e-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes e-gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes e-sheen{0%{transform:translate(-120%)}to{transform:translate(220%)}}@keyframes e-blink{50%{opacity:0}}@keyframes e-heartbeat{0%,to{transform:scale(1)}14%{transform:scale(1.15)}28%{transform:scale(1)}42%{transform:scale(1.12)}56%{transform:scale(1)}}@keyframes e-check-pop{0%{transform:scale(0) rotate(-20deg);opacity:0}60%{transform:scale(1.2) rotate(0)}to{transform:scale(1);opacity:1}}@keyframes e-toast-progress{0%{width:100%}to{width:0%}}.an-fade{animation:e-fade var(--t-medium) var(--ease) both}.an-fade-up{animation:e-fade-up var(--t-medium) var(--ease-smooth) both}.an-fade-down{animation:e-fade-down var(--t-medium) var(--ease-smooth) both}.an-zoom{animation:e-zoom-in var(--t-medium) var(--ease-back) both}.an-pop{animation:e-pop var(--t-medium) var(--ease-back) both}.an-float{animation:e-float 3.5s var(--ease-in-out) infinite}.an-pulse{animation:e-pulse 2s var(--ease) infinite}.an-spin{animation:e-spin .8s linear infinite}.an-delay-1{animation-delay:60ms}.an-delay-2{animation-delay:.12s}.an-delay-3{animation-delay:.18s}.an-delay-4{animation-delay:.24s}.btn,.media-btn,.icon-btn,.disc-btn,.load-more{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.btn{position:relative;overflow:hidden;letter-spacing:.01em}.btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--grad-sheen);transform:translate(-130%);pointer-events:none}.btn:hover:before{animation:e-sheen .7s var(--ease-smooth)}.btn:focus-visible{box-shadow:var(--ring-brand),var(--elev-2)}.btn.solid-accent{background:var(--grad-accent)}.btn.outline{background:transparent;color:var(--c-primary);border:var(--bw-thin) solid currentColor;box-shadow:none}.btn.outline:hover{background:var(--c-primary-soft)}.btn.subtle{background:var(--c-primary-soft);color:var(--c-primary-dark);box-shadow:none}.btn.subtle:hover{background:#2a9d8f2e}.btn.link-btn{background:transparent;color:var(--c-primary);box-shadow:none;padding:0 var(--fib-1);height:auto}.btn.link-btn:hover{text-decoration:underline}.btn.warn{background:var(--c-warning)}.btn.success{background:var(--c-success)}.btn.xs{height:var(--fib-8);padding:0 var(--fib-2);font-size:var(--fs-caption);border-radius:var(--r-sm)}.btn.lg{height:var(--fib-21);padding:0 var(--fib-8);font-size:var(--fs-h3)}.btn.xl{height:var(--fib-34);padding:0 var(--fib-13);font-size:var(--fs-h3);border-radius:var(--r-lg)}.btn.pill{border-radius:var(--r-pill)}.btn.square{width:var(--fib-21);padding:0}.btn.icon-only{width:var(--fib-21);padding:0;border-radius:var(--r-circle)}.btn-group{display:inline-flex}.btn-group .btn{border-radius:0}.btn-group .btn:first-child{border-radius:var(--r-md) 0 0 var(--r-md)}.btn-group .btn:last-child{border-radius:0 var(--r-md) var(--r-md) 0}.btn-group .btn+.btn{border-left:var(--bw-hair) solid rgba(255,255,255,.25)}.fab{position:fixed;right:var(--fib-8);bottom:var(--fib-8);width:var(--fib-21);height:var(--fib-21);border-radius:var(--r-circle);background:var(--grad-brand);color:#fff;font-size:var(--fs-h2);display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--elev-4);z-index:var(--z-toast);transition:transform var(--t-quick) var(--ease-back),box-shadow var(--t-medium) var(--ease)}.fab:hover{transform:scale(1.06);box-shadow:var(--elev-5)}.fab:active{transform:scale(.95)}.scroll-bottom{position:absolute;right:var(--fib-5);bottom:var(--fib-13);width:var(--fib-13);height:var(--fib-13);border-radius:var(--r-circle);background:var(--c-panel);color:var(--c-text-soft);box-shadow:var(--elev-3);display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-h3);z-index:var(--z-sticky);animation:e-fade-up var(--t-medium) var(--ease-back) both;transition:transform var(--t-quick) var(--ease),background var(--t-quick) var(--ease)}.scroll-bottom:hover{transform:translateY(-2px);background:var(--c-panel-2)}.scroll-bottom .count{position:absolute;top:calc(var(--fib-2) * -1);right:calc(var(--fib-2) * -1);min-width:var(--fib-5);height:var(--fib-5);padding:0 var(--fib-1);font-size:var(--fs-caption);font-weight:var(--fw-bold);color:#04160c;background:var(--c-unread);border-radius:var(--r-pill);display:inline-flex;align-items:center;justify-content:center}.spinner{display:inline-block;width:var(--fib-5);height:var(--fib-5);border:var(--bw-thin) solid rgba(42,157,143,.25);border-top-color:var(--c-primary);border-radius:var(--r-circle);animation:e-spin .7s linear infinite}.spinner.sm{width:var(--fib-3);height:var(--fib-3)}.spinner.lg{width:var(--fib-8);height:var(--fib-8);border-width:var(--fib-1)}.spinner.on-dark{border-color:#ffffff40;border-top-color:#fff}.field input,.search,.composer textarea{transition:border-color var(--t-medium) var(--ease),box-shadow var(--t-medium) var(--ease),background var(--t-medium) var(--ease)}.field input:hover:not(:focus),.search:hover:not(:focus){border-color:var(--c-text-mute)}.input-icon{position:relative;display:flex;align-items:center}.input-icon>.icon{position:absolute;left:var(--fib-3);color:var(--c-text-mute);pointer-events:none;font-size:var(--fs-body)}.input-icon>input{padding-left:var(--fib-8)}.input-icon.trailing>.icon{left:auto;right:var(--fib-3)}.input-icon.trailing>input{padding-left:var(--fib-3);padding-right:var(--fib-8)}.float-field{position:relative}.float-field input{width:100%;height:var(--fib-21);padding:var(--fib-3) var(--fib-3) 0;border:var(--bw-hair) solid var(--c-border);border-radius:var(--r-md);background:var(--c-panel)}.float-field label{position:absolute;left:var(--fib-3);top:50%;transform:translateY(-50%);color:var(--c-text-mute);pointer-events:none;transition:all var(--t-medium) var(--ease-smooth)}.float-field input:focus+label,.float-field input:not(:placeholder-shown)+label{top:var(--fib-2);transform:none;font-size:var(--fs-caption);color:var(--c-primary)}.field.is-error input{border-color:var(--c-danger);box-shadow:var(--ring-danger)}.field.is-success input{border-color:var(--c-success)}.field .hint{font-size:var(--fs-caption);color:var(--c-text-soft);margin-top:var(--fib-1)}.field .hint.error{color:var(--c-danger);animation:e-shake var(--t-slow2) var(--ease)}.switch{position:relative;display:inline-flex;align-items:center;gap:var(--fib-2);cursor:pointer}.switch input{position:absolute;opacity:0;width:0;height:0}.switch .track{width:var(--fib-13);height:var(--fib-5);border-radius:var(--r-pill);background:var(--c-border);position:relative;transition:background var(--t-medium) var(--ease)}.switch .track:after{content:"";position:absolute;top:50%;left:var(--fib-1);transform:translateY(-50%);width:calc(var(--fib-5) - var(--fib-2));height:calc(var(--fib-5) - var(--fib-2));border-radius:var(--r-circle);background:#fff;box-shadow:var(--elev-1);transition:left var(--t-medium) var(--ease-back)}.switch input:checked+.track{background:var(--c-primary)}.switch input:checked+.track:after{left:calc(100% - var(--fib-5) + var(--fib-1))}.switch input:focus-visible+.track{box-shadow:var(--ring-brand)}.checkbox{display:inline-flex;align-items:center;gap:var(--fib-2);cursor:pointer}.checkbox input{position:absolute;opacity:0}.checkbox .box{width:var(--fib-5);height:var(--fib-5);border:var(--bw-thin) solid var(--c-border);border-radius:var(--r-xs);display:inline-flex;align-items:center;justify-content:center;color:#fff;transition:background var(--t-quick) var(--ease),border-color var(--t-quick) var(--ease)}.checkbox input:checked+.box{background:var(--c-primary);border-color:var(--c-primary)}.checkbox input:checked+.box:after{content:"✓";font-size:var(--fs-sm);animation:e-check-pop var(--t-medium) var(--ease-back)}.avatar{position:relative;transition:transform var(--t-quick) var(--ease);border:var(--bw-hair) solid rgba(0,0,0,.04)}.chat-item:hover .avatar,.doc-tab:hover .avatar{transform:scale(1.04)}.avatar.xs{width:var(--fib-8);height:var(--fib-8);font-size:var(--fs-caption)}.avatar.sm{width:var(--fib-13);height:var(--fib-13)}.avatar.md{width:var(--fib-21);height:var(--fib-21);font-size:var(--fs-body)}.avatar.lg{width:var(--fib-34);height:var(--fib-34);font-size:var(--fs-h2)}.avatar.xl{width:var(--fib-55);height:var(--fib-55);font-size:var(--fs-h1)}.avatar-wrap{position:relative;display:inline-flex;flex:0 0 auto}.avatar-wrap .status-dot{position:absolute;right:0;bottom:0;width:var(--fib-3);height:var(--fib-3);border-radius:var(--r-circle);border:var(--bw-thin) solid var(--c-panel);background:var(--c-text-mute)}.avatar-wrap .status-dot.online{background:var(--c-online)}.avatar-wrap .status-dot.online:after{content:"";position:absolute;inset:calc(var(--bw-thin) * -1);border-radius:inherit;animation:e-ring 2.2s var(--ease) infinite}.avatar-wrap .status-dot.away{background:var(--c-away)}.avatar-wrap .status-dot.busy{background:var(--c-busy)}.avatar.ring-unread{box-shadow:0 0 0 var(--bw-thin) var(--c-unread)}.avatar.group-tile{display:grid;grid-template-columns:1fr 1fr;gap:1px;overflow:hidden;background:var(--c-border)}.avatar.group-tile>*{width:100%;height:100%;object-fit:cover}.badge{box-shadow:var(--elev-1);transition:transform var(--t-quick) var(--ease-back)}.badge.muted{background:var(--c-text-mute);color:#fff;animation:none}.badge.dot{min-width:var(--fib-2);width:var(--fib-2);height:var(--fib-2);padding:0}.chat-item:hover .badge{transform:scale(1.06)}.chip{display:inline-flex;align-items:center;gap:var(--fib-1);height:var(--fib-8);padding:0 var(--fib-3);font-size:var(--fs-sm);border-radius:var(--r-pill);background:var(--c-panel-2);color:var(--c-text);border:var(--bw-hair) solid var(--c-border);transition:background var(--t-quick) var(--ease),border-color var(--t-quick) var(--ease)}.chip:hover{background:var(--c-border-soft)}.chip.brand{background:var(--c-primary-soft);color:var(--c-primary-dark);border-color:transparent}.chip .close{cursor:pointer;opacity:var(--o-muted)}.chip .close:hover{opacity:1}.tag{display:inline-flex;align-items:center;padding:0 var(--fib-2);height:var(--fib-5);font-size:var(--fs-caption);font-weight:var(--fw-medium);border-radius:var(--r-sm);background:var(--c-primary-soft);color:var(--c-primary-dark)}.counter{display:inline-flex;align-items:center;justify-content:center;min-width:var(--fib-5);height:var(--fib-5);padding:0 var(--fib-1);font-size:var(--fs-caption);font-weight:var(--fw-bold);border-radius:var(--r-pill);background:var(--c-danger);color:#fff}.rail{box-shadow:inset calc(var(--bw-hair) * -1) 0 0 #ffffff0a}.rail-title{-webkit-user-select:none;user-select:none}.doc-tab{transition:background var(--t-quick) var(--ease),border-color var(--t-quick) var(--ease),transform var(--t-instant) var(--ease)}.doc-tab:active{transform:scale(.99)}.doc-tab.active{box-shadow:inset var(--bw-thin) 0 0 var(--c-primary)}.doc-tab .doc-dot{transition:box-shadow var(--t-medium) var(--ease),transform var(--t-quick) var(--ease-back)}.doc-tab:hover .doc-dot{transform:scale(1.15)}.doc-tab.active .doc-dot{box-shadow:0 0 0 var(--bw-thin) #ffffff40,0 0 var(--fib-3) #2a9d8f99}.doc-tab .badge{box-shadow:0 0 0 var(--bw-thin) #00000026}.rail .btn.rail-add:not(.ghost){background:var(--grad-accent)}.rail .btn.rail-add.logout:hover{background:#ffffff0f}.rail-sep{height:var(--bw-hair);margin:var(--fib-2) var(--fib-3);background:#ffffff12}.chatlist-head{box-shadow:0 var(--bw-hair) 0 var(--c-border-soft)}.chatlist-head h2{letter-spacing:-.01em}.search{background-image:none}.chat-item{position:relative;transition:background var(--t-quick) var(--ease)}.chat-item:after{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--bw-thin);background:var(--c-primary);transform:scaleY(0);transition:transform var(--t-quick) var(--ease-smooth)}.chat-item.active:after{transform:scaleY(1)}.chat-item:active{background:var(--c-border-soft)}.chat-preview .tick{color:var(--c-text-mute);margin-right:var(--fib-1)}.chat-preview .tick.read{color:var(--c-info)}.chat-item .chat-marks{display:inline-flex;gap:var(--fib-1);margin-left:var(--fib-1);color:var(--c-text-mute);font-size:var(--fs-caption)}.chat-item.pinned{background:#2a9d8f0a}.chat-item.muted .chat-name{color:var(--c-text-soft)}.chat-preview.typing-now{color:var(--c-typing);font-style:italic}.chat-item .chat-time.has-unread{color:var(--c-unread);font-weight:var(--fw-semibold)}.unread-divider{display:flex;align-items:center;gap:var(--fib-2);padding:var(--fib-2) var(--fib-3);font-size:var(--fs-caption);color:var(--c-unread);font-weight:var(--fw-semibold)}.unread-divider:before,.unread-divider:after{content:"";flex:1;height:var(--bw-hair);background:#25d3664d}.chat-skeleton .sk-line{border-radius:var(--r-pill)}.thread-head{position:relative;z-index:var(--z-sticky);-webkit-backdrop-filter:var(--blur-sm);backdrop-filter:var(--blur-sm)}.thread-head .avatar{cursor:pointer}.thread-head .chat-name{letter-spacing:-.01em}.thread-head .sub{display:flex;align-items:center;gap:var(--fib-1)}.thread-head-actions{display:inline-flex;align-items:center;gap:var(--fib-1);margin-left:auto}.thread-head-actions .icon-btn.ghost{width:var(--fib-13);height:var(--fib-13);background:transparent;color:var(--c-text-soft);box-shadow:none;font-size:var(--fs-h3)}.thread-head-actions .icon-btn.ghost:hover{background:var(--c-panel-2);color:var(--c-text)}.typing-bar{font-size:var(--fs-caption);color:var(--c-typing);display:inline-flex;align-items:center;gap:var(--fib-1)}.typing-bar .dots{display:inline-flex;gap:2px}.typing-bar .dots span{width:3px;height:3px;border-radius:50%;background:currentColor;animation:e-bounce-soft 1.2s var(--ease) infinite}.typing-bar .dots span:nth-child(2){animation-delay:.15s}.typing-bar .dots span:nth-child(3){animation-delay:.3s}.messages{scroll-padding-bottom:var(--fib-8)}.bubble{transition:box-shadow var(--t-quick) var(--ease);will-change:transform,opacity}.bubble:hover{box-shadow:var(--elev-2)}.bubble.grouped{margin-top:calc(var(--fib-2) * -1 + 1px)}.bubble.grouped.in{border-top-left-radius:var(--r-md)}.bubble.grouped.in:before{display:none}.bubble.grouped.out{border-top-right-radius:var(--r-md)}.bubble.grouped.out:before{display:none}.bubble .ticks{display:inline-flex;align-items:center;margin-left:var(--fib-1);font-size:var(--fs-caption);color:#4a7c59}.bubble .ticks.read{color:var(--c-info)}.bubble .ticks .check{animation:e-check-pop var(--t-medium) var(--ease-back)}.bubble.emoji-only{background:transparent!important;box-shadow:none;font-size:var(--fs-h1);padding:var(--fib-1) var(--fib-2)}.bubble.emoji-only:before{display:none}.bubble.emoji-only .time{color:var(--c-text-soft)}.system-msg{align-self:center;max-width:80%;text-align:center;padding:var(--fib-1) var(--fib-3);margin:var(--fib-2) 0;font-size:var(--fs-caption);color:var(--c-system-text);background:var(--c-system-bg);border-radius:var(--r-md);box-shadow:var(--elev-1)}.bubble a{color:var(--c-link)}.link-preview{display:block;margin-top:var(--fib-1);border-radius:var(--r-sm);overflow:hidden;background:#0000000a;border:var(--bw-hair) solid rgba(0,0,0,.06)}.link-preview img{width:100%;max-height:var(--fib-89);object-fit:cover;display:block}.link-preview .lp-body{padding:var(--fib-2)}.link-preview .lp-title{font-weight:var(--fw-semibold);font-size:var(--fs-sm)}.link-preview .lp-desc{font-size:var(--fs-caption);color:var(--c-text-soft)}.link-preview .lp-host{font-size:var(--fs-caption);color:var(--c-link);margin-top:var(--fib-1)}.mention{color:var(--c-mention);font-weight:var(--fw-medium);background:#2a9d8f1a;border-radius:var(--r-xs);padding:0 2px}.bubble .time{-webkit-user-select:none;user-select:none;opacity:var(--o-muted)}.bubble:hover .time{opacity:1}.first-unread{align-self:stretch;text-align:center;font-size:var(--fs-caption);color:var(--c-unread);padding:var(--fib-1);position:relative}.first-unread:before{content:"";position:absolute;left:0;right:0;top:50%;height:var(--bw-hair);background:#25d3664d;z-index:0}.first-unread span{position:relative;background:var(--c-bg-chat);padding:0 var(--fib-3);z-index:1}.quote{display:block;margin-bottom:var(--fib-1);padding:var(--fib-1) var(--fib-2);border-left:var(--fib-1) solid var(--c-quote-bar);border-radius:var(--r-xs);background:#0000000a;font-size:var(--fs-sm)}.quote .q-author{font-weight:var(--fw-semibold);color:var(--c-primary-dark);font-size:var(--fs-caption)}.quote .q-text{color:var(--c-text-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reactions{display:inline-flex;gap:var(--fib-1);margin-top:calc(var(--fib-1) * -1)}.reaction{display:inline-flex;align-items:center;gap:2px;padding:0 var(--fib-1);height:var(--fib-5);font-size:var(--fs-caption);background:var(--c-panel);border-radius:var(--r-pill);box-shadow:var(--elev-1);cursor:pointer;transition:transform var(--t-quick) var(--ease-back)}.reaction:hover{transform:scale(1.1)}.reaction.mine{background:var(--c-primary-soft)}.bubble .msg-actions{position:absolute;top:calc(var(--fib-3) * -1);right:var(--fib-2);display:flex;gap:var(--fib-1);opacity:0;transform:translateY(var(--fib-1));transition:opacity var(--t-quick) var(--ease),transform var(--t-quick) var(--ease);pointer-events:none}.bubble:hover .msg-actions{opacity:1;transform:none;pointer-events:auto}.msg-actions button{width:var(--fib-8);height:var(--fib-8);border-radius:var(--r-circle);background:var(--c-panel);box-shadow:var(--elev-2);font-size:var(--fs-sm);color:var(--c-text-soft)}.msg-actions button:hover{color:var(--c-text)}.day-sep{position:sticky;top:var(--fib-2);z-index:var(--z-base);-webkit-user-select:none;user-select:none}.divider{display:flex;align-items:center;gap:var(--fib-3);color:var(--c-text-mute);font-size:var(--fs-caption);margin:var(--fib-3) 0}.divider:before,.divider:after{content:"";flex:1;height:var(--bw-hair);background:var(--c-border)}.divider.text-left:before{flex:0 0 var(--fib-5)}.media-img{transition:transform var(--t-medium) var(--ease-smooth),filter var(--t-medium) var(--ease)}.media-img:hover{filter:brightness(.96)}.media-msg.audio audio{border-radius:var(--r-pill)}.media-btn{transition:background var(--t-quick) var(--ease),transform var(--t-instant) var(--ease)}.media-btn:active{transform:scale(.97)}.media-grid{display:grid;gap:2px;border-radius:var(--r-sm);overflow:hidden;max-width:var(--fib-233)}.media-grid.n2,.media-grid.n3{grid-template-columns:1fr 1fr}.media-grid.n3>:first-child{grid-row:span 2}.media-grid.n4{grid-template-columns:1fr 1fr}.media-grid img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;aspect-ratio:1}.media-grid .more{position:relative}.media-grid .more:after{content:"+" attr(data-more);position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000080;color:#fff;font-size:var(--fs-h2);font-weight:var(--fw-bold)}.doc-card{display:flex;align-items:center;gap:var(--fib-3);padding:var(--fib-3);background:#0000000a;border-radius:var(--r-sm);max-width:var(--fib-233)}.doc-card .doc-icon{width:var(--fib-13);height:var(--fib-13);border-radius:var(--r-sm);background:var(--grad-brand);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-h3);flex:0 0 auto}.doc-card .doc-meta{min-width:0}.doc-card .doc-title{font-weight:var(--fw-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-card .doc-size{font-size:var(--fs-caption);color:var(--c-text-soft)}.audio-player{display:flex;align-items:center;gap:var(--fib-2);min-width:var(--fib-144);padding:var(--fib-2)}.audio-player .play{width:var(--fib-13);height:var(--fib-13);border-radius:var(--r-circle);background:var(--c-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.audio-player .wave{flex:1;height:var(--fib-5);display:flex;align-items:center;gap:2px}.audio-player .wave i{flex:1;background:#2a9d8f66;border-radius:var(--r-pill);height:40%}.audio-player .wave i:nth-child(odd){height:70%}.audio-player .wave i.played{background:var(--c-primary)}.audio-player .dur{font-size:var(--fs-caption);color:var(--c-text-soft)}.transcript{animation:e-fade-up var(--t-medium) var(--ease-smooth) both}.transcript:before{content:"📝 ";opacity:var(--o-muted)}.loc-card,.contact-card{display:flex;gap:var(--fib-3);align-items:center;padding:var(--fib-3);background:#0000000a;border-radius:var(--r-sm);max-width:var(--fib-233)}.loc-card .map{width:var(--fib-21);height:var(--fib-13);border-radius:var(--r-sm);background:linear-gradient(135deg,#cfe8e3,#a8d5cd)}.composer{position:relative;transition:box-shadow var(--t-medium) var(--ease)}.composer:focus-within{box-shadow:0 calc(var(--bw-thin) * -1) 0 var(--c-primary)}.composer textarea{transition:height var(--t-quick) var(--ease)}.composer .icon-btn{transition:transform var(--t-instant) var(--ease-back),background var(--t-quick) var(--ease)}.composer .icon-btn:active{transform:scale(.9)}.composer-tools{display:inline-flex;gap:var(--fib-1);align-items:center}.composer-tools .tool{width:var(--fib-13);height:var(--fib-13);border-radius:var(--r-circle);color:var(--c-text-soft);display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-h3);transition:background var(--t-quick) var(--ease),color var(--t-quick) var(--ease)}.composer-tools .tool:hover{background:var(--c-panel-2);color:var(--c-primary)}.composer.recording{background:var(--c-danger-soft)}.composer .rec-indicator{display:inline-flex;align-items:center;gap:var(--fib-2);color:var(--c-danger);font-size:var(--fs-sm)}.composer .rec-indicator .dot{width:var(--fib-2);height:var(--fib-2);border-radius:50%;background:var(--c-danger);animation:e-pulse 1s var(--ease) infinite}.attach-preview{position:absolute;left:var(--fib-3);bottom:calc(100% + var(--fib-2));display:flex;gap:var(--fib-2);padding:var(--fib-2);background:var(--c-panel);border-radius:var(--r-md);box-shadow:var(--elev-3);animation:e-fade-up var(--t-medium) var(--ease-back) both}.attach-preview .thumb{width:var(--fib-21);height:var(--fib-21);border-radius:var(--r-sm);object-fit:cover;position:relative}.attach-preview .thumb .rm{position:absolute;top:calc(var(--fib-1) * -1);right:calc(var(--fib-1) * -1);width:var(--fib-5);height:var(--fib-5);border-radius:50%;background:var(--c-danger);color:#fff;font-size:var(--fs-caption);display:inline-flex;align-items:center;justify-content:center}.attach-menu{position:absolute;left:var(--fib-3);bottom:calc(100% + var(--fib-2));background:var(--c-panel);border-radius:var(--r-lg);box-shadow:var(--elev-4);padding:var(--fib-2);display:grid;grid-template-columns:repeat(3,1fr);gap:var(--fib-2);animation:e-fade-up var(--t-medium) var(--ease-back) both;z-index:var(--z-sticky)}.attach-menu .opt{display:flex;flex-direction:column;align-items:center;gap:var(--fib-1);padding:var(--fib-2);border-radius:var(--r-md);cursor:pointer;font-size:var(--fs-caption);color:var(--c-text-soft);transition:background var(--t-quick) var(--ease)}.attach-menu .opt:hover{background:var(--c-panel-2)}.attach-menu .opt .ic{width:var(--fib-21);height:var(--fib-21);border-radius:var(--r-circle);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:var(--fs-h3)}.attach-menu .opt.photo .ic{background:#8338ec}.attach-menu .opt.camera .ic{background:#e76f51}.attach-menu .opt.doc .ic{background:#3a86ff}.attach-menu .opt.audio .ic{background:#f4a261}.attach-menu .opt.contact .ic{background:#06a77d}.attach-menu .opt.location .ic{background:#ff6b6b}.modal-bg{-webkit-backdrop-filter:var(--blur-sm);backdrop-filter:var(--blur-sm)}.modal{box-shadow:var(--elev-5)}.modal h2{letter-spacing:-.01em}.modal .modal-close{position:absolute;top:var(--fib-3);right:var(--fib-3);width:var(--fib-13);height:var(--fib-13);border-radius:var(--r-circle);color:var(--c-text-soft);font-size:var(--fs-h3);display:inline-flex;align-items:center;justify-content:center;transition:background var(--t-quick) var(--ease)}.modal .modal-close:hover{background:var(--c-panel-2);color:var(--c-text)}.modal-header{display:flex;align-items:center;gap:var(--fib-3)}.modal-header .ic{width:var(--fib-21);height:var(--fib-21);border-radius:var(--r-md);background:var(--c-primary-soft);color:var(--c-primary-dark);display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-h2)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--fib-3);padding-top:var(--fib-3);border-top:var(--bw-hair) solid var(--c-border-soft)}.sheet{position:fixed;left:0;right:0;bottom:0;background:var(--c-panel);border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:var(--elev-5);padding:var(--fib-5);z-index:var(--z-modal);animation:e-slide-up-in var(--t-slow2) var(--ease-smooth) both}.sheet .grabber{width:var(--fib-21);height:var(--fib-1);border-radius:var(--r-pill);background:var(--c-border);margin:0 auto var(--fib-3)}.modal .qr img{transition:transform var(--t-medium) var(--ease-back)}.modal .qr img:hover{transform:scale(1.03)}.modal .qr .qr-frame{position:relative;padding:var(--fib-3);border-radius:var(--r-lg);background:#fff;box-shadow:var(--elev-2)}.modal .qr .qr-frame:before,.modal .qr .qr-frame:after{content:"";position:absolute;width:var(--fib-8);height:var(--fib-8);border:var(--bw-thin) solid var(--c-primary)}.modal .qr .qr-frame:before{top:0;left:0;border-right:0;border-bottom:0;border-radius:var(--r-md) 0 0 0}.modal .qr .qr-frame:after{bottom:0;right:0;border-left:0;border-top:0;border-radius:0 0 var(--r-md) 0}.steps-list{counter-reset:step;list-style:none;display:flex;flex-direction:column;gap:var(--fib-2)}.steps-list li{counter-increment:step;display:flex;gap:var(--fib-3);align-items:flex-start;font-size:var(--fs-sm);color:var(--c-text-soft)}.steps-list li:before{content:counter(step);flex:0 0 auto;width:var(--fib-8);height:var(--fib-8);border-radius:var(--r-circle);background:var(--c-primary-soft);color:var(--c-primary-dark);font-weight:var(--fw-bold);display:inline-flex;align-items:center;justify-content:center}.toast{display:flex;align-items:center;gap:var(--fib-3);overflow:hidden}.toast.success:before,.toast.error:before,.toast.info:before{flex:0 0 auto;width:var(--fib-5);height:var(--fib-5);border-radius:var(--r-circle);background:#ffffff38;display:inline-flex;align-items:center;justify-content:center;font-weight:var(--fw-bold)}.toast.success:before{content:"✓"}.toast.error:before{content:"!"}.toast.info:before{content:"i"}.toast .toast-progress{position:absolute;left:0;bottom:0;height:var(--bw-thin);background:#ffffff80;animation:e-toast-progress 4s linear forwards}.toast .toast-close{margin-left:auto;opacity:var(--o-muted);cursor:pointer}.toast .toast-close:hover{opacity:1}.toast-stack{position:fixed;right:var(--fib-5);bottom:var(--fib-5);display:flex;flex-direction:column;gap:var(--fib-2);z-index:var(--z-toast)}[data-tip]{position:relative}[data-tip][data-tip-pos=top]:after{left:50%;top:auto;bottom:100%;transform:translate(-50%,calc(var(--fib-1) * -1)) scale(.96)}[data-tip][data-tip-pos=top]:hover:after{transform:translate(-50%,calc(var(--fib-1) * -1)) scale(1)}[data-tip][data-tip-pos=bottom]:after{left:50%;top:100%;transform:translate(-50%,var(--fib-1)) scale(.96)}[data-tip][data-tip-pos=bottom]:hover:after{transform:translate(-50%,var(--fib-1)) scale(1)}[data-tip][data-tip-pos=left]:after{right:100%;left:auto;top:50%;transform:translate(calc(var(--fib-1) * -1),-50%) scale(.96)}[data-tip][data-tip-pos=left]:hover:after{transform:translate(calc(var(--fib-1) * -1),-50%) scale(1)}.sk{background:linear-gradient(90deg,#0000000d 25%,#00000014 37%,#0000000d 63%);background-size:280% 100%;animation:e-shimmer 1.4s linear infinite;border-radius:var(--r-sm)}.sk.text{height:var(--fib-3);margin:var(--fib-1) 0}.sk.title{height:var(--fib-5);width:50%}.sk.circle{border-radius:var(--r-circle)}.sk-bubble{max-width:55%;padding:var(--fib-3) var(--fib-5);border-radius:var(--r-md)}.sk-bubble.in{align-self:flex-start}.sk-bubble.out{align-self:flex-end}.empty .big{animation:e-float 4s var(--ease-in-out) infinite}.empty .hint-row{display:inline-flex;align-items:center;gap:var(--fib-2);font-size:var(--fs-sm);color:var(--c-text-mute)}.empty .cta{margin-top:var(--fib-3)}.empty-illustration{width:var(--fib-89);height:var(--fib-89);opacity:var(--o-faint)}.lightbox{-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md)}.lightbox img{transition:transform var(--t-medium) var(--ease-smooth)}.lightbox .nav{position:absolute;top:50%;transform:translateY(-50%);width:var(--fib-21);height:var(--fib-21);border-radius:var(--r-circle);background:#ffffff1f;color:#fff;font-size:var(--fs-h2);display:inline-flex;align-items:center;justify-content:center;transition:background var(--t-quick) var(--ease)}.lightbox .nav:hover{background:#ffffff40}.lightbox .nav.prev{left:var(--fib-5)}.lightbox .nav.next{right:var(--fib-5)}.lightbox .lb-caption{position:absolute;bottom:var(--fib-8);left:50%;transform:translate(-50%);color:#fff;font-size:var(--fs-sm);background:#0006;padding:var(--fib-1) var(--fib-3);border-radius:var(--r-pill)}.lightbox .lb-counter{position:absolute;top:var(--fib-5);left:var(--fib-5);color:#fffc;font-size:var(--fs-sm)}.menu{min-width:var(--fib-144);background:var(--c-panel);border-radius:var(--r-md);box-shadow:var(--elev-4);padding:var(--fib-1);animation:e-fade-up var(--t-quick) var(--ease-back) both;z-index:var(--z-tooltip)}.menu-item{display:flex;align-items:center;gap:var(--fib-2);width:100%;padding:var(--fib-2) var(--fib-3);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--c-text);text-align:left;transition:background var(--t-instant) var(--ease)}.menu-item:hover{background:var(--c-panel-2)}.menu-item .ic{width:var(--fib-5);color:var(--c-text-soft)}.menu-item.danger{color:var(--c-danger)}.menu-item.danger:hover{background:var(--c-danger-soft)}.menu-sep{height:var(--bw-hair);margin:var(--fib-1) 0;background:var(--c-border-soft)}.m-0{margin:0}.m-1{margin:var(--fib-1)}.m-2{margin:var(--fib-2)}.m-3{margin:var(--fib-3)}.m-5{margin:var(--fib-5)}.m-8{margin:var(--fib-8)}.mt-1{margin-top:var(--fib-1)}.mt-2{margin-top:var(--fib-2)}.mt-3{margin-top:var(--fib-3)}.mt-5{margin-top:var(--fib-5)}.mt-8{margin-top:var(--fib-8)}.mb-1{margin-bottom:var(--fib-1)}.mb-2{margin-bottom:var(--fib-2)}.mb-3{margin-bottom:var(--fib-3)}.mb-5{margin-bottom:var(--fib-5)}.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}.mx-auto{margin-left:auto;margin-right:auto}.p-0{padding:0}.p-1{padding:var(--fib-1)}.p-2{padding:var(--fib-2)}.p-3{padding:var(--fib-3)}.p-5{padding:var(--fib-5)}.p-8{padding:var(--fib-8)}.px-3{padding-left:var(--fib-3);padding-right:var(--fib-3)}.py-2{padding-top:var(--fib-2);padding-bottom:var(--fib-2)}.gap-1{gap:var(--fib-1)}.gap-2{gap:var(--fib-2)}.gap-3{gap:var(--fib-3)}.gap-5{gap:var(--fib-5)}.gap-8{gap:var(--fib-8)}.d-none{display:none}.d-block{display:block}.d-inline{display:inline}.d-inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.flex-1{flex:1}.flex-auto{flex:auto}.flex-none{flex:none}.grow{flex-grow:1}.shrink-0{flex-shrink:0}.self-center{align-self:center}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-xs{font-size:var(--fs-caption)}.text-sm{font-size:var(--fs-sm)}.text-base{font-size:var(--fs-body)}.text-lg{font-size:var(--fs-h3)}.text-xl{font-size:var(--fs-h2)}.font-regular{font-weight:var(--fw-regular)}.font-medium{font-weight:var(--fw-medium)}.font-semibold{font-weight:var(--fw-semibold)}.font-bold{font-weight:var(--fw-bold)}.text-soft{color:var(--c-text-soft)}.text-mute{color:var(--c-text-mute)}.text-brand{color:var(--c-primary)}.text-danger{color:var(--c-danger)}.text-success{color:var(--c-success)}.uppercase{text-transform:uppercase;letter-spacing:.05em}.capitalize{text-transform:capitalize}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.break-words{overflow-wrap:anywhere;word-break:break-word}.line-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.italic{font-style:italic}.nowrap{white-space:nowrap}.w-full{width:100%}.h-full{height:100%}.min-w-0{min-width:0}.min-h-0{min-height:0}.max-w-sm{max-width:var(--fib-233)}.max-w-xs{max-width:var(--fib-144)}.rounded-sm{border-radius:var(--r-sm)}.rounded{border-radius:var(--r-md)}.rounded-lg{border-radius:var(--r-lg)}.rounded-xl{border-radius:var(--r-xl)}.rounded-full{border-radius:var(--r-circle)}.rounded-pill{border-radius:var(--r-pill)}.border{border:var(--bw-hair) solid var(--c-border)}.border-t{border-top:var(--bw-hair) solid var(--c-border)}.border-b{border-bottom:var(--bw-hair) solid var(--c-border)}.shadow-1{box-shadow:var(--elev-1)}.shadow-2{box-shadow:var(--elev-2)}.shadow-3{box-shadow:var(--elev-3)}.shadow-4{box-shadow:var(--elev-4)}.shadow-none{box-shadow:none}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.top-0{top:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-y-auto{overflow-y:auto}.z-10{z-index:var(--z-sticky)}.z-50{z-index:var(--z-modal)}.pointer{cursor:pointer}.not-allowed{cursor:not-allowed}.select-none{-webkit-user-select:none;user-select:none}.pointer-none{pointer-events:none}.opacity-50{opacity:.5}.opacity-70{opacity:var(--o-muted)}.opacity-0{opacity:0}.transition{transition:all var(--t-medium) var(--ease)}.bg-panel{background:var(--c-panel)}.bg-panel-2{background:var(--c-panel-2)}.bg-brand{background:var(--grad-brand)}.bg-soft{background:var(--c-primary-soft)}.dot-sep{display:inline-block;width:3px;height:3px;border-radius:50%;background:currentColor;opacity:var(--o-faint);margin:0 var(--fib-1);vertical-align:middle}@media(min-width:1440px){:root{--w-chatlist: var(--fib-377)}.messages{padding-left:var(--fib-13);padding-right:var(--fib-13)}.bubble{max-width:58%}}@media(min-width:1920px){.messages{padding-left:18%;padding-right:18%}}@media(max-width:1280px)and (min-width:1025px){.bubble{max-width:68%}}@media(max-width:1024px){.thread-head .sub{font-size:var(--fs-caption)}.composer-tools .tool{width:var(--fib-8);height:var(--fib-8);font-size:var(--fs-body)}}@media(max-width:768px)and (min-width:601px){.modal{max-width:90vw}.bubble{max-width:72%}}@media(max-width:600px){.thread-head{padding:var(--fib-2) var(--fib-3)}.thread-head .chat-name{font-size:var(--fs-body)}.pill{display:none}.messages{padding:var(--fib-3) var(--fib-2)}.bubble{max-width:85%}.login-card{padding:var(--fib-8) var(--fib-5)}.attach-menu{left:var(--fib-2);right:var(--fib-2);grid-template-columns:repeat(3,1fr)}.fab{right:var(--fib-3);bottom:calc(var(--fib-13) + var(--fib-3))}.scroll-bottom{right:var(--fib-3);bottom:calc(var(--fib-13) + var(--fib-5))}.toast-stack{left:var(--fib-2);right:var(--fib-2)}}@media(max-width:480px){.login-card h1{font-size:var(--fs-h3)}.chat-name{font-size:var(--fs-sm)}.doc-card,.media-grid{max-width:78vw}.modal .qr img{width:var(--fib-89);height:var(--fib-89)}}@media(max-width:360px){.chatlist-head{padding:var(--fib-2)}.composer{gap:var(--fib-1)}.icon-btn{width:var(--fib-13);height:var(--fib-13);font-size:var(--fs-body)}}@media(max-height:480px)and (orientation:landscape){.login-card{padding:var(--fib-5);gap:var(--fib-3)}.messages{padding-top:var(--fib-2);padding-bottom:var(--fib-2)}}@media(hover:none)and (pointer:coarse){.chat-item,.menu-item{padding:var(--fib-3)}.icon-btn{min-width:var(--fib-21);min-height:var(--fib-21)}}@media(prefers-color-scheme:dark){:root{--c-system-bg: rgba(32, 44, 51, .9);--c-system-text: #aebac1;--c-quote-bar: #00a884;--c-link: #53bdeb;--grad-rail: linear-gradient(180deg, #0a1014, #060c10);--elev-1: 0 1px 2px rgba(0, 0, 0, .3);--elev-2: 0 2px 6px rgba(0, 0, 0, .35);--elev-3: 0 6px 14px rgba(0, 0, 0, .4);--elev-4: 0 12px 28px rgba(0, 0, 0, .5);--elev-5: 0 24px 48px rgba(0, 0, 0, .6)}code,kbd,samp{background:#ffffff14}.quote,.doc-card,.loc-card,.contact-card,.audio-player .wave i,.media-grid,.link-preview{background:#ffffff0d}.sk{background:linear-gradient(90deg,#ffffff0a 25%,#ffffff14 37%,#ffffff0a 63%);background-size:280% 100%}.bubble a{color:var(--c-link)}.system-msg{box-shadow:none}.reaction,.menu,.attach-menu,.attach-preview,.scroll-bottom{background:var(--c-panel)}.first-unread span{background:var(--c-bg-chat)}.chip{background:var(--c-panel-2);border-color:var(--c-border)}.input-icon>.icon{color:var(--c-text-mute)}.thread-head{-webkit-backdrop-filter:none;backdrop-filter:none}}@media(prefers-contrast:more){:root{--c-border: #9aa6ad;--c-text-soft: #44525a}.btn,.chip,.chat-item,.bubble{outline:var(--bw-hair) solid rgba(0,0,0,.15)}.badge,.counter{outline:var(--bw-hair) solid rgba(0,0,0,.3)}}@media(prefers-reduced-motion:reduce){.an-float,.an-pulse,.an-spin,.pill.online:before,.avatar-wrap .status-dot.online:after,.composer .rec-indicator .dot,.empty .big,.btn:hover:before,.toast .toast-progress{animation:none!important}.media-img:hover,.fab:hover,.reaction:hover{transform:none!important}*{scroll-behavior:auto!important}}@media print{.rail,.chatlist,.composer,.thread-head-actions,.scroll-bottom,.fab,.toast-stack,.modal-bg{display:none!important}.app{display:block;height:auto}.thread{background:#fff}.messages{overflow:visible;height:auto}.bubble{box-shadow:none;border:var(--bw-hair) solid #ddd;break-inside:avoid;max-width:100%}body{background:#fff}}.chat-item:focus-visible,.doc-tab:focus-visible,.menu-item:focus-visible{box-shadow:inset var(--ring-brand)}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}mark,.highlight{background:#f4a26166;color:inherit;border-radius:var(--r-xs);padding:0 1px}.offline-banner{position:fixed;top:0;left:0;right:0;background:var(--c-warning);color:#3a2a12;text-align:center;font-size:var(--fs-sm);padding:var(--fib-1);z-index:var(--z-toast);animation:e-fade-down var(--t-medium) var(--ease) both}.top-progress{position:fixed;top:0;left:0;height:var(--bw-thin);background:var(--grad-accent);z-index:var(--z-toast);animation:e-gradient 1.5s linear infinite;background-size:200% 100%}[data-accent=teal]{--c-primary: #2a9d8f;--c-primary-dark: #21867a;--c-primary-soft: #e7f5f2}[data-accent=blue]{--c-primary: #3a86ff;--c-primary-dark: #2667cc;--c-primary-soft: #e6f0ff;--grad-brand: linear-gradient(135deg, #3a86ff, #2667cc)}[data-accent=violet]{--c-primary: #8338ec;--c-primary-dark: #6a23c9;--c-primary-soft: #f1e9fd;--grad-brand: linear-gradient(135deg, #8338ec, #6a23c9)}[data-accent=green]{--c-primary: #06a77d;--c-primary-dark: #048a66;--c-primary-soft: #e3f6f0;--grad-brand: linear-gradient(135deg, #06a77d, #048a66)}[data-accent=rose]{--c-primary: #e0517a;--c-primary-dark: #c43c64;--c-primary-soft: #fce8ef;--grad-brand: linear-gradient(135deg, #e0517a, #c43c64)}[data-accent=amber]{--c-primary: #e0892b;--c-primary-dark: #c47420;--c-primary-soft: #fcf0e0;--grad-brand: linear-gradient(135deg, #e0892b, #c47420)}.theme-picker{display:inline-flex;gap:var(--fib-2)}.theme-swatch{width:var(--fib-8);height:var(--fib-8);border-radius:var(--r-circle);border:var(--bw-thin) solid transparent;cursor:pointer;transition:transform var(--t-quick) var(--ease-back),border-color var(--t-quick) var(--ease)}.theme-swatch:hover{transform:scale(1.12)}.theme-swatch.selected{border-color:var(--c-text);transform:scale(1.08)}.theme-swatch.teal{background:#2a9d8f}.theme-swatch.blue{background:#3a86ff}.theme-swatch.violet{background:#8338ec}.theme-swatch.green{background:#06a77d}.theme-swatch.rose{background:#e0517a}.theme-swatch.amber{background:#e0892b}.tabs{display:flex;gap:var(--fib-1);border-bottom:var(--bw-hair) solid var(--c-border)}.tab{position:relative;padding:var(--fib-2) var(--fib-3);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--c-text-soft);background:transparent;transition:color var(--t-quick) var(--ease)}.tab:hover{color:var(--c-text)}.tab.active{color:var(--c-primary)}.tab.active:after{content:"";position:absolute;left:var(--fib-2);right:var(--fib-2);bottom:calc(var(--bw-hair) * -1);height:var(--bw-thin);background:var(--c-primary);border-radius:var(--r-pill);animation:e-fade var(--t-quick) var(--ease)}.tab .tab-badge{margin-left:var(--fib-1)}.segmented{display:inline-flex;padding:var(--fib-1);background:var(--c-panel-2);border-radius:var(--r-pill);gap:var(--fib-1)}.segmented .seg{padding:var(--fib-1) var(--fib-3);border-radius:var(--r-pill);font-size:var(--fs-sm);color:var(--c-text-soft);transition:background var(--t-quick) var(--ease),color var(--t-quick) var(--ease)}.segmented .seg.active{background:var(--c-panel);color:var(--c-primary);box-shadow:var(--elev-1)}.accordion{border:var(--bw-hair) solid var(--c-border);border-radius:var(--r-md);overflow:hidden}.accordion-item+.accordion-item{border-top:var(--bw-hair) solid var(--c-border)}.accordion-head{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--fib-3);font-weight:var(--fw-medium);background:var(--c-panel);transition:background var(--t-quick) var(--ease)}.accordion-head:hover{background:var(--c-panel-2)}.accordion-head .chev{transition:transform var(--t-medium) var(--ease-smooth);color:var(--c-text-soft)}.accordion-item.open .accordion-head .chev{transform:rotate(180deg)}.accordion-body{max-height:0;overflow:hidden;transition:max-height var(--t-slow2) var(--ease-smooth)}.accordion-item.open .accordion-body{max-height:var(--fib-377)}.accordion-body-inner{padding:var(--fib-3);font-size:var(--fs-sm);color:var(--c-text-soft)}.card{background:var(--c-panel);border-radius:var(--r-lg);box-shadow:var(--elev-2);padding:var(--fib-5);transition:box-shadow var(--t-medium) var(--ease),transform var(--t-quick) var(--ease)}.card.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--elev-3)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--fib-3)}.card-title{font-size:var(--fs-h3);font-weight:var(--fw-semibold)}.card-sub{font-size:var(--fs-sm);color:var(--c-text-soft)}.stat{display:flex;flex-direction:column;gap:var(--fib-1);padding:var(--fib-3);border-radius:var(--r-md);background:var(--c-panel-2)}.stat .stat-value{font-size:var(--fs-h2);font-weight:var(--fw-bold);color:var(--c-text)}.stat .stat-label{font-size:var(--fs-caption);color:var(--c-text-soft);text-transform:uppercase;letter-spacing:.05em}.stat .stat-trend{font-size:var(--fs-caption);display:inline-flex;align-items:center;gap:var(--fib-1)}.stat .stat-trend.up{color:var(--c-success)}.stat .stat-trend.down{color:var(--c-danger)}.list-row{display:flex;align-items:center;gap:var(--fib-3);padding:var(--fib-3);border-radius:var(--r-md);transition:background var(--t-quick) var(--ease)}.list-row:hover{background:var(--c-panel-2)}.list-row .list-main{flex:1;min-width:0}.list-row .list-title{font-weight:var(--fw-medium)}.list-row .list-sub{font-size:var(--fs-sm);color:var(--c-text-soft)}.progress{width:100%;height:var(--fib-2);background:var(--c-border-soft);border-radius:var(--r-pill);overflow:hidden}.progress .bar{height:100%;background:var(--grad-brand);border-radius:inherit;transition:width var(--t-slow2) var(--ease-smooth)}.progress.indeterminate .bar{width:40%;animation:e-indeterminate 1.4s var(--ease-in-out) infinite}@keyframes e-indeterminate{0%{margin-left:-40%}to{margin-left:100%}}.progress.thin{height:var(--bw-thin)}.ring-progress{width:var(--fib-21);height:var(--fib-21);transform:rotate(-90deg)}.ring-progress circle{fill:none;stroke-width:var(--fib-1)}.ring-progress .track{stroke:var(--c-border-soft)}.ring-progress .value{stroke:var(--c-primary);stroke-linecap:round;transition:stroke-dashoffset var(--t-slow2) var(--ease-smooth)}.loading-dots{display:inline-flex;gap:var(--fib-1)}.loading-dots i{width:var(--fib-2);height:var(--fib-2);border-radius:50%;background:var(--c-primary);animation:e-bounce 1.2s var(--ease) infinite}.loading-dots i:nth-child(2){animation-delay:.15s}.loading-dots i:nth-child(3){animation-delay:.3s}.search-in-chat{display:flex;align-items:center;gap:var(--fib-2);padding:var(--fib-2) var(--fib-3);background:var(--c-panel);border-bottom:var(--bw-hair) solid var(--c-border);animation:e-fade-down var(--t-medium) var(--ease) both}.search-in-chat input{flex:1;height:var(--fib-13);border:none;background:transparent;outline:none}.search-in-chat .nav-result{display:inline-flex;gap:var(--fib-1)}.search-in-chat .count{font-size:var(--fs-caption);color:var(--c-text-soft);min-width:var(--fib-21);text-align:center}.bubble.search-hit{box-shadow:0 0 0 var(--bw-thin) var(--c-warning)}.bubble.search-hit-active{box-shadow:0 0 0 var(--bw-thin) var(--c-primary);animation:e-pulse-scale var(--t-medium) var(--ease)}.app.selecting .bubble{cursor:pointer}.bubble.selected{box-shadow:0 0 0 var(--bw-thin) var(--c-primary);background:var(--c-primary-soft)!important}.selection-bar{display:flex;align-items:center;gap:var(--fib-3);padding:var(--fib-2) var(--fib-3);background:var(--c-primary);color:#fff;animation:e-fade-down var(--t-medium) var(--ease) both}.selection-bar .count{font-weight:var(--fw-semibold)}.selection-bar .sel-actions{margin-left:auto;display:inline-flex;gap:var(--fib-2)}.selection-bar .icon-btn{background:#ffffff26}.forwarded{font-size:var(--fs-caption);color:var(--c-text-mute);font-style:italic;display:inline-flex;align-items:center;gap:var(--fib-1);margin-bottom:var(--fib-1)}.pinned-bar{display:flex;align-items:center;gap:var(--fib-3);padding:var(--fib-2) var(--fib-3);background:var(--c-panel);border-bottom:var(--bw-hair) solid var(--c-border);border-left:var(--fib-1) solid var(--c-primary)}.pinned-bar .p-label{font-size:var(--fs-caption);color:var(--c-primary);font-weight:var(--fw-semibold)}.pinned-bar .p-text{font-size:var(--fs-sm);color:var(--c-text-soft);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-drawer{position:absolute;top:0;right:0;bottom:0;width:var(--fib-377);max-width:90%;background:var(--c-panel);box-shadow:var(--elev-4);z-index:var(--z-sticky);display:flex;flex-direction:column;animation:e-fade-right var(--t-slow2) var(--ease-smooth) both}.info-drawer .info-head{display:flex;flex-direction:column;align-items:center;gap:var(--fib-2);padding:var(--fib-8) var(--fib-5);background:var(--c-panel-2)}.info-drawer .info-head .avatar{width:var(--fib-55);height:var(--fib-55);font-size:var(--fs-h1)}.info-drawer .info-name{font-size:var(--fs-h3);font-weight:var(--fw-semibold)}.info-drawer .info-sub{font-size:var(--fs-sm);color:var(--c-text-soft)}.info-section{padding:var(--fib-3) var(--fib-5);border-top:var(--fib-1) solid var(--c-divider)}.info-section .info-label{font-size:var(--fs-caption);color:var(--c-text-mute);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--fib-1)}.info-section .info-value{font-size:var(--fs-body)}.info-actions{display:flex;gap:var(--fib-2);padding:var(--fib-3) var(--fib-5)}.media-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--fib-1)}.media-thumbs img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--r-sm);cursor:zoom-in}.emoji-picker{position:absolute;bottom:calc(100% + var(--fib-2));left:var(--fib-3);width:var(--fib-233);max-width:calc(100vw - var(--fib-8));height:var(--fib-233);background:var(--c-panel);border-radius:var(--r-lg);box-shadow:var(--elev-4);display:flex;flex-direction:column;overflow:hidden;animation:e-fade-up var(--t-medium) var(--ease-back) both;z-index:var(--z-sticky)}.emoji-picker .ep-tabs{display:flex;padding:var(--fib-1);gap:var(--fib-1);border-bottom:var(--bw-hair) solid var(--c-border)}.emoji-picker .ep-tab{flex:1;padding:var(--fib-1);border-radius:var(--r-sm);font-size:var(--fs-body);text-align:center;cursor:pointer}.emoji-picker .ep-tab.active{background:var(--c-panel-2)}.emoji-picker .ep-grid{flex:1;overflow-y:auto;padding:var(--fib-2);display:grid;grid-template-columns:repeat(8,1fr);gap:var(--fib-1)}.emoji-picker .ep-grid button{font-size:var(--fs-h3);padding:var(--fib-1);border-radius:var(--r-sm);transition:background var(--t-instant) var(--ease),transform var(--t-instant) var(--ease-back)}.emoji-picker .ep-grid button:hover{background:var(--c-panel-2);transform:scale(1.2)}.welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;gap:var(--fib-5);padding:var(--fib-13)}.welcome .welcome-logo{width:var(--fib-89);height:var(--fib-89);border-radius:var(--r-circle);background:var(--grad-brand-2);display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-h1);color:#fff;box-shadow:var(--elev-3);animation:e-float 4s var(--ease-in-out) infinite}.welcome h2{font-size:var(--fs-h1);color:var(--c-rail)}.welcome p{font-size:var(--fs-body);color:var(--c-text-soft);max-width:var(--fib-377)}.welcome .welcome-steps{display:flex;gap:var(--fib-5);flex-wrap:wrap;justify-content:center;margin-top:var(--fib-3)}.welcome .w-step{display:flex;flex-direction:column;align-items:center;gap:var(--fib-2);max-width:var(--fib-144)}.welcome .w-step .w-ic{width:var(--fib-21);height:var(--fib-21);border-radius:var(--r-circle);background:var(--c-primary-soft);color:var(--c-primary-dark);display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-h3)}.perm-card{display:flex;align-items:center;gap:var(--fib-3);padding:var(--fib-3) var(--fib-5);background:var(--c-primary-soft);border-radius:var(--r-md);margin:var(--fib-3);animation:e-fade-down var(--t-medium) var(--ease) both}.perm-card .perm-ic{font-size:var(--fs-h2)}.perm-card .perm-text{flex:1;font-size:var(--fs-sm);color:var(--c-primary-dark)}.kbd{display:inline-flex;align-items:center;justify-content:center;min-width:var(--fib-8);height:var(--fib-8);padding:0 var(--fib-1);font-size:var(--fs-caption);font-family:inherit;color:var(--c-text-soft);background:var(--c-panel-2);border:var(--bw-hair) solid var(--c-border);border-bottom-width:var(--bw-thin);border-radius:var(--r-sm)}.shortcut-row{display:flex;align-items:center;justify-content:space-between;padding:var(--fib-2) 0;font-size:var(--fs-sm)}.shortcut-row .keys{display:inline-flex;gap:var(--fib-1)}.avatar-stack{display:inline-flex}.avatar-stack .avatar{margin-left:calc(var(--fib-3) * -1);border:var(--bw-thin) solid var(--c-panel)}.avatar-stack .avatar:first-child{margin-left:0}.avatar-stack .more{display:inline-flex;align-items:center;justify-content:center;width:var(--fib-13);height:var(--fib-13);border-radius:var(--r-circle);background:var(--c-panel-2);color:var(--c-text-soft);font-size:var(--fs-caption);font-weight:var(--fw-semibold);border:var(--bw-thin) solid var(--c-panel);margin-left:calc(var(--fib-3) * -1)}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:16 / 9}.aspect-4-3{aspect-ratio:4 / 3}.object-cover{object-fit:cover}.object-contain{object-fit:contain}.grid-2{display:grid;grid-template-columns:repeat(2,1fr)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr)}.grid-4{display:grid;grid-template-columns:repeat(4,1fr)}.gap-grid-1{gap:var(--fib-1)}.gap-grid-2{gap:var(--fib-2)}.gap-grid-3{gap:var(--fib-3)}.scale-95{transform:scale(.95)}.scale-100{transform:scale(1)}.scale-105{transform:scale(1.05)}.rotate-90{transform:rotate(90deg)}.rotate-180{transform:rotate(180deg)}.blur-bg{-webkit-backdrop-filter:var(--blur-md);backdrop-filter:var(--blur-md)}.gradient-text{background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.ring{box-shadow:var(--ring-brand)}.ring-danger{box-shadow:var(--ring-danger)}.cursor-grab{cursor:grab}.cursor-zoom{cursor:zoom-in}.hover-lift{transition:transform var(--t-quick) var(--ease)}.hover-lift:hover{transform:translateY(-2px)}.hover-grow{transition:transform var(--t-quick) var(--ease-back)}.hover-grow:hover{transform:scale(1.05)}.click-shrink:active{transform:scale(.96)}.divider-v{width:var(--bw-hair);align-self:stretch;background:var(--c-border);margin:0 var(--fib-2)}.scroll-smooth{scroll-behavior:smooth}.no-scrollbar{scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.fade-edges{-webkit-mask-image:linear-gradient(to bottom,transparent,#000 var(--fib-5),#000 calc(100% - var(--fib-5)),transparent);mask-image:linear-gradient(to bottom,transparent,#000 var(--fib-5),#000 calc(100% - var(--fib-5)),transparent)}.dropzone{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--fib-3);background:#2a9d8f1f;border:var(--fib-1) dashed var(--c-primary);border-radius:var(--r-lg);color:var(--c-primary-dark);font-size:var(--fs-h3);z-index:var(--z-modal);animation:e-fade var(--t-quick) var(--ease) both;pointer-events:none}.dropzone .dz-ic{font-size:var(--fs-h1);animation:e-bounce 1.2s var(--ease) infinite}.alert{display:flex;align-items:flex-start;gap:var(--fib-3);padding:var(--fib-3);border-radius:var(--r-md);font-size:var(--fs-sm);border-left:var(--fib-1) solid}.alert .alert-ic{flex:0 0 auto;font-size:var(--fs-h3)}.alert.info{background:#3a86ff1a;border-color:var(--c-info);color:#1b4a8a}.alert.success{background:#25d3661f;border-color:var(--c-success);color:#0b6b3a}.alert.warn{background:#f4a26126;border-color:var(--c-warning);color:#8a5a1e}.alert.danger{background:var(--c-danger-soft);border-color:var(--c-danger);color:#9a2530}.confirm{max-width:var(--fib-233);text-align:center}.confirm .confirm-ic{width:var(--fib-34);height:var(--fib-34);border-radius:var(--r-circle);display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-h1);margin:0 auto var(--fib-3);animation:e-pop var(--t-medium) var(--ease-back) both}.confirm.danger .confirm-ic{background:var(--c-danger-soft);color:var(--c-danger)}.confirm.warn .confirm-ic{background:#f4a2612e;color:var(--c-warning)}.conn-flag{display:inline-flex;align-items:center;gap:var(--fib-1);font-size:var(--fs-caption);padding:1px var(--fib-1);border-radius:var(--r-sm)}.conn-flag.connecting{color:var(--c-warning)}.conn-flag.connecting .dot{animation:e-blink 1s step-end infinite}.thread .watermark{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;opacity:.05;font-size:12rem;pointer-events:none}.update-banner{display:flex;align-items:center;gap:var(--fib-3);padding:var(--fib-2) var(--fib-5);background:var(--c-rail);color:#fff;font-size:var(--fs-sm)}.update-banner .btn{margin-left:auto}.call-bar{display:flex;align-items:center;gap:var(--fib-3);padding:var(--fib-2) var(--fib-3);background:var(--grad-brand);color:#fff;animation:e-fade-down var(--t-medium) var(--ease) both}.call-bar .call-ic{font-size:var(--fs-h3);animation:e-pulse-scale 1.6s var(--ease) infinite}.call-bar .call-meta{flex:1;min-width:0}.call-bar .call-name{font-weight:var(--fw-semibold)}.call-bar .call-time{font-size:var(--fs-caption);opacity:.85}.call-bar .call-actions{display:inline-flex;gap:var(--fib-2)}.call-bar .call-btn{width:var(--fib-13);height:var(--fib-13);border-radius:var(--r-circle);display:inline-flex;align-items:center;justify-content:center;background:#ffffff26;color:#fff;transition:background var(--t-quick) var(--ease)}.call-bar .call-btn:hover{background:#ffffff47}.call-bar .call-btn.hangup{background:var(--c-danger)}.rating{display:inline-flex;gap:var(--fib-1)}.rating .star{color:var(--c-border);font-size:var(--fs-h3);cursor:pointer;transition:transform var(--t-instant) var(--ease-back),color var(--t-instant) var(--ease)}.rating .star.filled{color:var(--c-warning)}.rating .star:hover{transform:scale(1.2)}.dots-nav{display:inline-flex;gap:var(--fib-1);align-items:center}.dots-nav .dot{width:var(--fib-2);height:var(--fib-2);border-radius:var(--r-circle);background:var(--c-border);transition:width var(--t-medium) var(--ease-smooth),background var(--t-medium) var(--ease)}.dots-nav .dot.active{width:var(--fib-5);border-radius:var(--r-pill);background:var(--c-primary)}.delivery{display:inline-flex;align-items:center;gap:1px;font-size:var(--fs-caption)}.delivery.sending{color:var(--c-text-mute)}.delivery.sending .ic{animation:e-spin 1s linear infinite}.delivery.sent{color:var(--c-text-mute)}.delivery.delivered{color:var(--c-text-soft)}.delivery.read{color:var(--c-info)}.delivery.failed{color:var(--c-danger)}.delivery.failed .ic{animation:e-shake var(--t-slow2) var(--ease)}.breadcrumb{display:inline-flex;align-items:center;gap:var(--fib-1);font-size:var(--fs-sm);color:var(--c-text-soft)}.breadcrumb a{color:var(--c-text-soft)}.breadcrumb a:hover{color:var(--c-primary)}.breadcrumb .sep{opacity:var(--o-faint)}.breadcrumb .current{color:var(--c-text);font-weight:var(--fw-medium)}@keyframes e-slide-in-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes e-flip-in{0%{opacity:0;transform:perspective(400px) rotateX(-20deg)}to{opacity:1;transform:perspective(400px) rotateX(0)}}@keyframes e-expand{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}@keyframes e-jelly{0%,to{transform:scale(1)}30%{transform:scale(1.1,.9)}50%{transform:scale(.95,1.05)}70%{transform:scale(1.03,.97)}}.an-flip{animation:e-flip-in var(--t-slow2) var(--ease-smooth) both}.an-jelly{animation:e-jelly var(--t-lazy) var(--ease) both}.an-expand{animation:e-expand var(--t-medium) var(--ease-back) both;transform-origin:top}.an-heartbeat{animation:e-heartbeat 1.4s var(--ease) infinite}.an-wiggle:hover{animation:e-wiggle var(--t-slow2) var(--ease)}.stagger>*{animation:e-fade-up var(--t-medium) var(--ease-smooth) both}.stagger>*:nth-child(1){animation-delay:30ms}.stagger>*:nth-child(2){animation-delay:60ms}.stagger>*:nth-child(3){animation-delay:90ms}.stagger>*:nth-child(4){animation-delay:.12s}.stagger>*:nth-child(5){animation-delay:.15s}.stagger>*:nth-child(6){animation-delay:.18s}.stagger>*:nth-child(7){animation-delay:.21s}.stagger>*:nth-child(8){animation-delay:.24s}.reconnecting{display:inline-flex;align-items:center;gap:var(--fib-2);font-size:var(--fs-caption);color:var(--c-warning)}.reconnecting .spinner{width:var(--fib-3);height:var(--fib-3);border-color:#f4a2614d;border-top-color:var(--c-warning)}.new-msgs-pill{position:absolute;left:50%;bottom:var(--fib-13);transform:translate(-50%);display:inline-flex;align-items:center;gap:var(--fib-1);padding:var(--fib-1) var(--fib-3);background:var(--c-primary);color:#fff;font-size:var(--fs-sm);border-radius:var(--r-pill);box-shadow:var(--elev-3);z-index:var(--z-sticky);animation:e-fade-up var(--t-medium) var(--ease-back) both}.messages>.bubble{animation-duration:var(--t-medium)}.messages:focus-visible{outline:none;box-shadow:inset var(--ring-soft)}.composer textarea:not(:placeholder-shown)~.icon-btn:last-child{animation:e-jelly var(--t-slow2) var(--ease) 1}.doc-tab,.chat-item,.menu-item,.media-btn,.tab,.seg{-webkit-tap-highlight-color:transparent}.chatlist-head .search:focus{box-shadow:var(--ring-brand)}.chatlist{box-shadow:var(--bw-hair) 0 0 var(--c-border-soft)}.login-card .btn:focus-visible{box-shadow:var(--ring-brand),var(--elev-3)}
