@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg-0: #0f0f0f;--bg-1: #212121;--bg-2: #2c2c2c;--bg-3: #343434;--bg-hover: #2c2c2c;--border: #303030;--accent: #8774e1;--accent-hover: #7b71c6;--text-primary: #ffffff;--text-secondary: #aaaaaa;--text-muted: #717579;--online: #00c73e;--danger: #fb6f5f;--bubble-mine: #766ac8;--bubble-mine-text: #ffffff;--bubble-mine-muted: rgba(255,255,255,.53);--bubble-their: #212121;--tick-color: #ffffff;--tick-muted: rgba(255,255,255,.55);--msg-shadow: rgba(16,16,16,.61);--reaction-bg: #2b2a35;--reaction-bg-hover: #343147;--reaction-text: #8774e1;--reaction-bg-own: #675caf;--reaction-text-own: #ffffff;--reaction-chosen-bg: #8774e1;--reaction-chosen-text: #ffffff;--reaction-chosen-bg-own: #ffffff;--reaction-chosen-text-own: #766ac8;--date-pill-bg: rgba(33,33,33,.8);--date-pill-text: #aaaaaa;--context-bg: #212121;--hover-bg: #2c2c2c;--input-bg: #181818;--shadow: 0 4px 24px rgba(0,0,0,.45);--fab-shadow: rgba(135,116,225,.5);--radius-sm: 6px;--radius-md: 12px;--radius-lg: 15px;--sidebar-w: 280px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}[data-theme=light]{--bg-0: #e7ede2;--bg-1: #ffffff;--bg-2: #f4f4f5;--bg-3: #e4e4e5;--bg-hover: #f4f4f5;--border: #dadce0;--accent: #3390ec;--accent-hover: #2a7fd4;--text-primary: #000000;--text-secondary: #707579;--text-muted: #8e8e92;--online: #00c73e;--danger: #e53935;--bubble-mine: #eeffde;--bubble-mine-text: #0b0b0b;--bubble-mine-muted: #4fae4e;--bubble-their: #ffffff;--tick-color: #45af54;--tick-muted: rgba(69,175,84,.55);--msg-shadow: rgba(114,114,114,.25);--reaction-bg: #ebf3fd;--reaction-bg-hover: #c5def9;--reaction-text: #3390ec;--reaction-bg-own: #c6eab2;--reaction-text-own: #45af54;--reaction-chosen-bg: #3390ec;--reaction-chosen-text: #ffffff;--reaction-chosen-bg-own: #45af54;--reaction-chosen-text-own: #ffffff;--date-pill-bg: rgba(255,255,255,.85);--date-pill-text: #5b7059;--context-bg: #ffffff;--hover-bg: #f4f4f5;--input-bg: #f4f4f5;--shadow: 0 4px 24px rgba(0,0,0,.12);--fab-shadow: rgba(51,144,236,.45)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}button:focus{outline:none}html,body,#root{height:100%;font-family:Inter Variable,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-0);color:var(--text-primary);font-size:14px;line-height:1.5}ul{list-style:none}button{cursor:pointer;background:none;border:none;color:inherit}a{color:inherit;text-decoration:none}textarea{font-family:inherit;font-size:inherit;color:inherit;resize:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.avatar{display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700;color:#fff;flex-shrink:0;letter-spacing:.5px;-webkit-user-select:none;user-select:none}.btn-icon{display:flex;align-items:center;justify-content:center;padding:6px;border-radius:var(--radius-sm);color:var(--text-secondary);transition:background .15s,color .15s,transform .2s cubic-bezier(.34,1.56,.64,1)}.btn-icon:hover{background:var(--bg-hover);color:var(--text-primary);transform:scale(1.15)}.btn-icon:active{transform:scale(.9)}.btn-primary{width:100%;padding:11px 20px;background:var(--accent);color:#fff;border-radius:var(--radius-md);font-size:14px;font-weight:600;border:none;cursor:pointer;transition:background .15s,opacity .15s}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.spinner{display:inline-block;width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.spinner-sm{display:inline-block;width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-root{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 0%,#1a1a3e 0%,var(--bg-0) 70%);padding:20px;position:relative;overflow:hidden}[data-theme=light] .auth-root{background:radial-gradient(ellipse at 50% 0%,#e0e7ff 0%,var(--bg-0) 70%)}.auth-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.35;pointer-events:none;animation:orbFloat 14s ease-in-out infinite}.auth-orb-1{width:380px;height:380px;background:#8774e1;top:-120px;left:-100px}.auth-orb-2{width:300px;height:300px;background:#766ac8;bottom:-80px;right:-60px;animation-delay:-5s}.auth-orb-3{width:220px;height:220px;background:#3390ec;top:50%;left:65%;animation-delay:-9s}[data-theme=light] .auth-orb{opacity:.22}@keyframes orbFloat{0%,to{transform:translate(0) scale(1)}33%{transform:translate(40px,-30px) scale(1.08)}66%{transform:translate(-30px,25px) scale(.94)}}@media (prefers-reduced-motion: reduce){.auth-orb{animation:none}}.auth-card{width:100%;max-width:380px;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-lg);padding:36px 32px;box-shadow:var(--shadow);position:relative;z-index:1;animation:authCardIn .45s cubic-bezier(.21,1.02,.73,1)}@keyframes authCardIn{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-logo{text-align:center;margin-bottom:28px}.auth-logo-mark{position:relative;width:78px;height:78px;margin:0 auto 14px;animation:logoPop .7s cubic-bezier(.34,1.56,.64,1) .1s backwards}.auth-logo-mark svg{position:relative;z-index:1;width:100%;height:100%;display:block;filter:drop-shadow(0 8px 18px rgba(124,58,237,.45));animation:logoFloat 5.5s ease-in-out .8s infinite}.auth-logo-halo{position:absolute;top:-22%;right:-22%;bottom:-22%;left:-22%;border-radius:50%;background:radial-gradient(circle,rgba(124,58,237,.45) 0%,rgba(59,130,246,.25) 45%,transparent 70%);filter:blur(10px);animation:haloPulse 3.2s ease-in-out infinite;pointer-events:none}.auth-dot{animation:dotBlink 1.4s ease-in-out infinite;transform-origin:center}.auth-dot-2{animation-delay:.2s}.auth-dot-3{animation-delay:.4s}@keyframes logoPop{0%{opacity:0;transform:scale(.4) rotate(-8deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes haloPulse{0%,to{opacity:.55;transform:scale(.92)}50%{opacity:.9;transform:scale(1.08)}}@keyframes dotBlink{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@media (prefers-reduced-motion: reduce){.auth-logo-mark svg,.auth-logo-halo,.auth-dot{animation:none}}.auth-title{font-size:22px;font-weight:700;background:linear-gradient(90deg,#22d3ee,#3b82f6 45%,#a855f7);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.auth-subtitle{color:var(--text-secondary);font-size:13px;margin-top:4px}.auth-tabs{display:flex;background:var(--input-bg);border-radius:var(--radius-sm);padding:3px;margin-bottom:24px;position:relative}.auth-tab-slider{position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);background:var(--bg-3);border-radius:calc(var(--radius-sm) - 2px);transition:transform .22s cubic-bezier(.4,0,.2,1)}.auth-tab-slider.right{transform:translate(100%)}.auth-tab{flex:1;padding:8px;border-radius:calc(var(--radius-sm) - 2px);font-size:13px;font-weight:500;color:var(--text-secondary);transition:color .15s;position:relative;z-index:1}.auth-tab.active{color:var(--text-primary)}.auth-field-animated{animation:authFieldIn .3s ease backwards}@keyframes authFieldIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.auth-pw-wrap{position:relative;display:flex}.auth-pw-wrap .field-input{flex:1;padding-right:40px}.auth-pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);color:var(--text-muted);transition:color .15s}.auth-pw-toggle:hover{color:var(--text-primary)}.auth-strength{display:flex;align-items:center;gap:10px;margin-top:8px}.auth-strength-bars{display:flex;gap:4px;flex:1}.auth-strength-bar{height:4px;flex:1;border-radius:2px;background:var(--bg-3);transition:background .25s}.auth-strength-bar.fill-weak{background:var(--danger)}.auth-strength-bar.fill-medium{background:#f59e0b}.auth-strength-bar.fill-strong{background:var(--online)}.auth-strength-label{font-size:11px;font-weight:600;flex-shrink:0;min-width:64px;text-align:right}.auth-strength-label.weak{color:var(--danger)}.auth-strength-label.medium{color:#f59e0b}.auth-strength-label.strong{color:var(--online)}.auth-privacy-note{margin-top:20px;text-align:center;font-size:11.5px;color:var(--text-muted);line-height:1.5}.auth-form{display:flex;flex-direction:column;gap:16px}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:13px;font-weight:500;color:var(--text-secondary)}.field-input{background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:10px 14px;font-size:14px;outline:none;transition:border-color .15s}.field-input:focus{border-color:var(--accent)}.field-input::placeholder{color:var(--text-muted)}.auth-error{color:var(--danger);font-size:13px;padding:8px 12px;background:#f851491a;border-radius:var(--radius-sm);border:1px solid rgba(248,81,73,.3)}.chat-root{display:flex;height:100vh;overflow:hidden;position:relative;background-color:var(--bg-0);background-position:center;background-size:cover}.sidebar-toggle{display:none;position:fixed;top:calc(var(--safe-top) + 14px);left:14px;z-index:200;padding:8px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary)}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:150;opacity:0;transition:opacity .2s;pointer-events:none}.sidebar-overlay.visible{opacity:1;pointer-events:auto}.sidebar-wrapper{flex-shrink:0;width:var(--sidebar-w)}.sidebar{width:var(--sidebar-w);height:100vh;background:color-mix(in srgb,var(--bg-1) 55%,transparent);backdrop-filter:blur(22px) saturate(1.3);-webkit-backdrop-filter:blur(22px) saturate(1.3);border-right:1px solid color-mix(in srgb,var(--border) 35%,transparent);display:flex;flex-direction:column;overflow:hidden;position:relative}.sidebar-topbar{display:flex;align-items:center;gap:4px;padding:calc(var(--safe-top) + 8px) 8px 6px}.sidebar-icon-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;color:var(--text-secondary);flex-shrink:0;transition:background .15s,color .15s,transform .2s cubic-bezier(.34,1.56,.64,1)}.sidebar-icon-btn svg{transition:transform .5s cubic-bezier(.34,1.4,.64,1)}.sidebar-icon-btn:hover{background:var(--bg-hover);color:var(--text-primary);transform:scale(1.06)}.sidebar-icon-btn:hover svg{transform:rotate(90deg)}.sidebar-icon-btn:active{transform:scale(.92)}.sidebar-topbar-spacer{width:40px;height:40px;flex-shrink:0;pointer-events:none}.sidebar-bigtitle{flex:1;text-align:center;font-size:19px;font-weight:700;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-search{display:flex;align-items:center;gap:8px;margin:0 12px 8px;padding:9px 12px;background:var(--input-bg);border-radius:18px;color:var(--text-muted);animation:searchSlide .18s ease}@keyframes searchSlide{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.sidebar-search-input{flex:1;min-width:0;background:none;border:none;outline:none;color:var(--text-primary);font-size:15px}.sidebar-search-input::placeholder{color:var(--text-muted)}.sidebar-search-clear{color:var(--text-muted);font-size:14px;padding:0 2px;flex-shrink:0}.sidebar-search-fab{position:absolute;z-index:20;right:16px;bottom:calc(var(--safe-bottom) + 16px);width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;box-shadow:0 6px 18px var(--fab-shadow);transition:background .15s,transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s;animation:fabIn .35s cubic-bezier(.34,1.56,.64,1)}.sidebar-search-fab:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;box-shadow:0 0 0 0 var(--fab-shadow);animation:fabPulse 2.6s ease-out infinite}.sidebar-search-fab:hover{background:var(--accent-hover);transform:scale(1.08);box-shadow:0 8px 26px var(--fab-shadow)}.sidebar-search-fab:active{transform:scale(.9)}.sidebar-search-fab svg{transition:transform .25s ease}.sidebar-search-fab.open svg{transform:rotate(90deg)}@keyframes fabIn{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes fabPulse{0%{box-shadow:0 0 0 0 var(--fab-shadow)}70%{box-shadow:0 0 0 14px #0000}to{box-shadow:0 0 #0000}}@media (prefers-reduced-motion: reduce){.sidebar-search-fab,.sidebar-search-fab:after{animation:none}}.sidebar-filters{display:flex;gap:8px;padding:5px 12px 9px;overflow-x:auto;overflow-y:visible;scrollbar-width:none}.sidebar-filters::-webkit-scrollbar{display:none}.filter-chip{flex-shrink:0;display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:16px;background:var(--input-bg);color:var(--text-secondary);font-size:13px;font-weight:500;white-space:nowrap;transition:background .15s,color .15s,transform .2s cubic-bezier(.34,1.56,.64,1)}@media (hover: hover){.filter-chip:hover:not(.active){background:var(--bg-hover);color:var(--text-primary);transform:translateY(-1px) scale(1.04)}.filter-chip.active:hover{transform:translateY(-1px) scale(1.04)}}.filter-chip:active{transform:scale(.95)}.filter-chip.active{background:var(--accent);color:#fff}.filter-chip-count{font-size:11px;font-weight:700;background:#0000002e;border-radius:9px;padding:0 6px;min-width:16px;text-align:center}.filter-chip:not(.active) .filter-chip-count{background:var(--accent);color:#fff}.user-list{flex:1;overflow-y:auto;padding:2px 8px 8px}.user-list-empty{padding:28px 8px;color:var(--text-muted);font-size:14px;text-align:center}.user-item{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:var(--radius-md);cursor:pointer;transition:background .12s}.user-item:hover{background:var(--bg-hover)}.user-item:active{background:var(--bg-3)}.user-item.active{background:var(--accent)}.user-item.active .user-item-name{color:#fff}.user-item.active .user-item-preview,.user-item.active .user-item-time,.user-item.active .user-item-status,.user-item.active .user-item-status.online{color:#ffffffd9}.user-item.active .unread-badge{background:#fff;color:var(--accent)}.user-item-avatar{position:relative;flex-shrink:0}.online-dot{position:absolute;bottom:2px;right:2px;width:13px;height:13px;border-radius:50%;background:var(--text-muted);border:2.5px solid var(--bg-1);transition:background .2s}.online-dot.online{background:var(--online)}.user-item-info{display:flex;flex-direction:column;min-width:0;flex:1;gap:3px}.user-item-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.user-item-name{font-weight:600;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-item-time{font-size:13px;color:var(--text-muted);flex-shrink:0}.user-item-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px}.user-item-preview{font-size:14px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.user-item-status{font-size:14px;color:var(--text-muted);flex:1}.user-item-status.online{color:var(--online)}.chat-main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:transparent;position:relative}.chat-header{position:relative;display:flex;align-items:center;justify-content:space-between;padding:calc(var(--safe-top) + 10px) 12px 10px;border-bottom:none;background:transparent;min-height:60px;z-index:5}.chat-header-center{position:absolute;left:50%;top:calc(var(--safe-top) + 6px);transform:translate(-50%);display:flex;flex-direction:column;align-items:center;max-width:60%;background:color-mix(in srgb,var(--bg-1) 62%,transparent);border:1px solid color-mix(in srgb,var(--border) 40%,transparent);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);cursor:pointer;padding:5px 18px;border-radius:16px;transition:transform .22s cubic-bezier(.34,1.56,.64,1),background .2s ease,border-color .2s ease,box-shadow .25s ease}.chat-header-center:hover{transform:translate(-50%) translateY(-1px) scale(1.04);background:color-mix(in srgb,var(--bg-1) 78%,transparent);border-color:color-mix(in srgb,var(--accent) 40%,transparent);box-shadow:0 6px 20px color-mix(in srgb,var(--accent) 14%,transparent)}.chat-header-center:active{transform:translate(-50%) scale(.98)}.chat-header-avatar-btn{display:flex;padding:0;border-radius:50%}.chat-header-right{display:flex;align-items:center;gap:2px;margin-left:auto}.chat-header-right .avatar{margin-left:6px}.chat-back{display:none;align-items:center;justify-content:center;margin-right:6px;margin-left:-6px;padding:6px;border-radius:50%;color:var(--text-primary);flex-shrink:0;transition:background .12s}.chat-back:hover{background:var(--bg-hover)}.chat-header-name{font-weight:600;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.chat-header-status{font-size:12.5px;color:var(--text-muted)}.chat-header-status.online{color:var(--online)}.chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-secondary);padding:40px;text-align:center}.chat-empty-icon{font-size:56px;opacity:.5;animation:emptyFloat 3s ease-in-out infinite}@keyframes emptyFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.chat-empty h2{font-size:20px;color:var(--text-primary)}.chat-empty p{color:var(--text-muted);font-size:14px}.loading-messages{flex:1;display:flex;align-items:center;justify-content:center}.pinned-banner{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--bg-1);border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s}.pinned-banner:hover{background:var(--bg-hover)}.pinned-banner-icon{font-size:16px;flex-shrink:0}.pinned-banner-text{display:flex;flex-direction:column;min-width:0}.pinned-banner-label{font-size:11px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.5px}.pinned-banner-content{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.select-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:var(--accent);color:#fff;font-size:13px;font-weight:500}.select-toolbar-actions{display:flex;gap:8px}.select-toolbar-btn{padding:5px 12px;border-radius:var(--radius-sm);font-size:12px;font-weight:600;background:#fff3;color:#fff;cursor:pointer;transition:background .15s}.select-toolbar-btn:hover{background:#ffffff59}.select-toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.select-toolbar-btn.danger{background:#f8514966}.select-toolbar-btn.danger:hover{background:#f8514999}.message-list{flex:1;overflow-y:auto;padding:16px 20px 8px;display:flex;flex-direction:column;gap:2px}.date-divider{display:flex;align-items:center;justify-content:center;margin:10px 0}.date-divider span{font-size:12px;font-weight:500;color:var(--date-pill-text);background:var(--date-pill-bg);padding:3px 12px;border-radius:20px}.message-row{display:flex;justify-content:flex-start;align-items:flex-end;gap:8px;margin:1px 0;position:relative;animation:msgIn .18s ease}.message-row:has(.last-in-group){margin-bottom:7px}.message-row.mine{justify-content:flex-end}@keyframes msgIn{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion: reduce){.message-row{animation:none}}.message-row.selected .message-bubble{outline:2px solid var(--accent);outline-offset:2px}.message-row.selectable{cursor:pointer}.message-row.selectable:hover .message-bubble{opacity:.85}.select-checkbox{width:20px;height:20px;border-radius:50%;border:2px solid var(--border);background:var(--bg-2);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0;transition:background .15s,border-color .15s}.select-checkbox.checked{background:var(--accent);border-color:var(--accent)}.message-bubble{max-width:min(68%,480px);background:var(--bubble-their);border-radius:15px 15px 15px 6px;padding:6px 10px 7px;position:relative;word-break:break-word;box-shadow:0 1px 2px var(--msg-shadow)}.message-bubble.mine{background:var(--bubble-mine);color:var(--bubble-mine-text);border-radius:15px 15px 6px}.message-bubble.last-in-group{border-bottom-left-radius:0}.message-bubble.mine.last-in-group{border-bottom-left-radius:15px;border-bottom-right-radius:0}.message-bubble.last-in-group:after{content:"";position:absolute;bottom:0;left:-8px;width:9px;height:17px;background:var(--bubble-their);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 17'%3E%3Cpath d='M9 0C8 9 5 15 0 17H9Z'/%3E%3C/svg%3E") no-repeat center / 100% 100%;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 17'%3E%3Cpath d='M9 0C8 9 5 15 0 17H9Z'/%3E%3C/svg%3E") no-repeat center / 100% 100%}.message-bubble.mine.last-in-group:after{left:auto;right:-8px;background:var(--bubble-mine);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 17'%3E%3Cpath d='M0 0C1 9 4 15 9 17H0Z'/%3E%3C/svg%3E") no-repeat center / 100% 100%;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 17'%3E%3Cpath d='M0 0C1 9 4 15 9 17H0Z'/%3E%3C/svg%3E") no-repeat center / 100% 100%}.message-bubble.pinned{border-left:3px solid var(--accent)}.message-bubble.mine.pinned{border-left-color:#fff9}.message-bubble.mine .message-time,.message-bubble.mine .msg-edited{color:var(--bubble-mine-muted)}.message-bubble.mine .msg-forwarded{color:var(--bubble-mine-text)}.message-bubble.mine .message-undecryptable{color:var(--bubble-mine-muted)}.message-bubble.mine .reply-preview-bubble{background:#ffffff21;border-left-color:#ffffffb3}.message-bubble.mine .reply-preview-author{color:var(--bubble-mine-text)}.message-bubble.mine .reply-preview-text{color:var(--bubble-mine-muted)}.message-bubble.mine .file-attachment{background:#ffffff1a;border-color:#fff3}.message-bubble.mine .file-attachment:hover{background:#ffffff2e}.message-bubble.mine .file-attachment-icon,.message-bubble.mine .file-attachment-download{color:var(--bubble-mine-text)}.message-bubble.mine .file-attachment-size{color:var(--bubble-mine-muted)}.message-bubble.mine .search-highlight{background:#ffffff59;color:inherit}.msg-forwarded{font-size:11px;font-weight:600;color:var(--accent);margin-bottom:4px}.msg-edited{font-size:10px;color:var(--text-muted);font-style:italic}.message-text{font-size:15px;line-height:1.3125;white-space:pre-wrap}.message-time{display:flex;align-items:center;justify-content:flex-end;gap:3px;font-size:12px;color:var(--text-muted);margin-top:2px;line-height:1}.msg-meta-spacer{display:inline-flex;visibility:hidden;margin:0 0 0 8px;vertical-align:baseline}.msg-meta-floating{position:absolute;right:9px;bottom:6px;margin:0;pointer-events:none}.lock-icon{opacity:.6;flex-shrink:0}.ticks{display:inline-flex;align-items:center;margin-left:2px;vertical-align:middle}.tick-sending{opacity:.6;color:var(--bubble-mine-muted)}.ticks-sent svg,.ticks-delivered svg{color:var(--tick-muted)}.ticks-read svg{color:var(--tick-color)}.key-status-btn{margin-left:auto;font-size:18px;background:none;border:none;cursor:pointer;padding:6px;border-radius:8px;opacity:.8;transition:opacity .15s,background .15s}.key-status-btn:hover{opacity:1;background:var(--hover-bg)}.key-status-btn.key-warn{opacity:1;animation:pulse-warn 1.5s infinite}@keyframes pulse-warn{0%,to{filter:drop-shadow(0 0 0 #f59e0b)}50%{filter:drop-shadow(0 0 6px #f59e0b)}}.fp-modal{max-width:400px}.fp-warning-icon{font-size:42px;text-align:center;margin-bottom:8px}.fp-warning-title{color:#f59e0b}.fp-warning-list{color:var(--text-secondary);font-size:13px;padding-left:18px;margin:8px 0;line-height:1.7}.fp-block{background:var(--input-bg);border-radius:8px;padding:10px 14px;margin-top:12px;font-family:Courier New,monospace}.fp-label{font-size:11px;color:var(--text-secondary);margin-bottom:4px;font-family:inherit}.fp-value{font-size:15px;letter-spacing:2px;font-weight:600;color:var(--text-primary);word-break:break-all}.btn-modal-danger{padding:9px 18px;border-radius:8px;border:none;cursor:pointer;font-size:13px;font-weight:500;background:#dc2626;color:#fff}.btn-modal-danger:hover{background:#b91c1c}.message-undecryptable{color:var(--text-muted);font-style:italic;font-size:13px}.reply-preview-bubble{background:#7d7d7d24;border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:4px 8px;margin-bottom:6px;font-size:12px;display:flex;flex-direction:column;gap:1px}.reply-preview-author{font-weight:600;color:var(--accent)}.reply-preview-text{color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reaction-bar{display:flex;flex-wrap:wrap;gap:4px;margin:5px 0 2px}.reaction-chip{display:flex;align-items:center;gap:4px;height:26px;padding:0 10px 0 7px;background:var(--reaction-bg);color:var(--reaction-text);border:none;border-radius:13px;font-size:14px;font-weight:500;font-variant-numeric:tabular-nums;cursor:pointer;transition:background .15s,color .15s}.reaction-chip span{font-size:13px;color:inherit;font-weight:600}.reaction-chip:hover{background:var(--reaction-bg-hover)}.reaction-chip.mine{background:var(--reaction-chosen-bg);color:var(--reaction-chosen-text)}.message-bubble.mine .reaction-chip{background:var(--reaction-bg-own);color:var(--reaction-text-own)}.message-bubble.mine .reaction-chip:hover{background:var(--reaction-bg-own);filter:brightness(1.08)}.message-bubble.mine .reaction-chip.mine{background:var(--reaction-chosen-bg-own);color:var(--reaction-chosen-text-own)}.msg-hover-actions{display:flex;gap:2px;align-self:center;background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2px;opacity:0;pointer-events:none;transition:opacity .12s;flex-shrink:0}.message-row:hover .msg-hover-actions{opacity:1;pointer-events:auto}.msg-hover-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;color:var(--text-secondary);transition:background .12s,color .12s}.msg-hover-btn:hover{background:var(--hover-bg);color:var(--text-primary)}@media (hover: none){.msg-hover-actions{display:none}}.msg-toast{position:fixed;top:16px;right:16px;z-index:1200;display:flex;align-items:center;gap:12px;width:320px;max-width:calc(100vw - 32px);padding:12px 14px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow);cursor:pointer;animation:toastIn .22s cubic-bezier(.21,1.02,.73,1)}.msg-toast:hover{background:var(--bg-hover)}.msg-toast-body{display:flex;flex-direction:column;min-width:0;flex:1;gap:2px}.msg-toast-title{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg-toast-text{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg-toast-close{flex-shrink:0;color:var(--text-muted);font-size:14px;padding:2px 4px;border-radius:6px}.msg-toast-close:hover{color:var(--text-primary);background:var(--bg-3)}@keyframes toastIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion: reduce){.msg-toast{animation:none}}.scroll-down-btn{position:absolute;bottom:84px;right:20px;z-index:50;width:40px;height:40px;border-radius:50%;background:var(--bg-2);border:1px solid var(--border);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow);transition:background .15s,color .15s,transform .15s;animation:scrollBtnIn .15s ease}.scroll-down-btn:hover{background:var(--bg-hover);color:var(--text-primary);transform:translateY(-2px)}@keyframes scrollBtnIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.typing-bubble{display:flex;align-items:center;gap:4px;padding:12px 16px;width:fit-content}.typing-dot{width:7px;height:7px;background:var(--text-muted);border-radius:50%;animation:bounce 1.2s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-6px)}}.input-area{position:relative;border-top:none;background:transparent;padding:10px 16px calc(var(--safe-bottom) + 12px);z-index:5}.input-context-bar{display:flex;align-items:center;justify-content:space-between;background:var(--bg-0);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px;margin-bottom:8px}.input-context-info{display:flex;flex-direction:column;min-width:0;flex:1;gap:1px}.input-context-label{font-size:11px;font-weight:600;color:var(--accent)}.input-context-content{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.input-context-close{margin-left:8px;flex-shrink:0}.file-preview{display:flex;align-items:center;gap:8px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px;margin-bottom:8px;font-size:13px;color:var(--text-secondary)}.file-preview-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-preview-remove{color:var(--text-muted);font-size:14px;padding:0 2px;transition:color .15s}.file-preview-remove:hover{color:var(--danger)}.input-row{display:flex;align-items:flex-end;gap:8px}.attach-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:transparent;border:1px solid color-mix(in srgb,var(--border) 45%,transparent);color:var(--text-muted);flex-shrink:0;transition:background .15s,color .15s,border-color .15s,transform .22s cubic-bezier(.34,1.56,.64,1)}.attach-btn svg{transition:transform .28s cubic-bezier(.34,1.56,.64,1)}.attach-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary);border-color:color-mix(in srgb,var(--accent) 45%,transparent);transform:scale(1.12)}.attach-btn:hover:not(:disabled) svg{transform:rotate(-22deg) scale(1.05)}.attach-btn:active:not(:disabled){transform:scale(.9)}.attach-btn:disabled{opacity:.4;cursor:not-allowed}.input-field{flex:1;display:flex;align-items:flex-end;min-width:0;background:color-mix(in srgb,var(--input-bg) 55%,transparent);border:1px solid color-mix(in srgb,var(--border) 50%,transparent);border-radius:22px;padding:2px 6px;backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);transition:border-color .2s,box-shadow .28s ease,transform .2s ease}.input-field:hover{border-color:color-mix(in srgb,var(--border) 80%,transparent)}.input-field:focus-within{border-color:color-mix(in srgb,var(--accent) 75%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent),0 6px 22px color-mix(in srgb,var(--accent) 12%,transparent);transform:translateY(-1px)}.message-textarea{flex:1;min-width:0;background:none;border:none;padding:10px 8px;font-size:15px;outline:none;max-height:140px;overflow-y:auto;field-sizing:content}.message-textarea::placeholder{color:var(--text-muted)}.btn-send{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff;flex-shrink:0;transition:background .15s,transform .1s;animation:sendIn .18s cubic-bezier(.34,1.56,.64,1)}@keyframes sendIn{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.btn-send:hover{background:var(--accent-hover);transform:scale(1.05)}.btn-send:disabled{opacity:.35;cursor:not-allowed;transform:none}.emoji-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:40px;flex-shrink:0;color:var(--text-muted);transition:color .15s,transform .1s}.emoji-toggle:hover:not(:disabled){color:var(--accent)}.emoji-toggle.active{color:var(--accent)}.emoji-toggle:active{transform:scale(.9)}.emoji-panel{position:absolute;left:16px;right:16px;bottom:calc(100% - 2px);max-width:380px;background:var(--context-bg);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow);padding:8px;z-index:30;animation:emojiPanelIn .16s ease}@keyframes emojiPanelIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.emoji-tabs{display:flex;gap:2px;padding-bottom:6px;margin-bottom:4px;border-bottom:1px solid var(--border)}.emoji-tab{flex:1;padding:6px 0;font-size:18px;border-radius:var(--radius-sm);opacity:.55;transition:opacity .12s,background .12s}.emoji-tab:hover{background:var(--bg-hover);opacity:.9}.emoji-tab.active{opacity:1;background:var(--bg-hover)}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;max-height:200px;overflow-y:auto}.emoji-item{display:flex;align-items:center;justify-content:center;height:38px;font-size:22px;border-radius:var(--radius-sm);transition:background .1s,transform .1s}.emoji-item:hover{background:var(--bg-hover);transform:scale(1.15)}.accent-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.accent-swatch{position:relative;width:34px;height:34px;border-radius:50%;border:2px solid transparent;flex-shrink:0;transition:transform .12s,border-color .12s}.accent-swatch:hover{transform:scale(1.12)}.accent-swatch.active{border-color:var(--text-primary)}.accent-default{background:conic-gradient(#3390ec,#8774e1,#4dcd5e,#f5a623,#e9596d,#3390ec)}.accent-check{color:#fff;font-size:15px;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.4)}.accent-custom{display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--bg-3)}.accent-custom-icon{font-size:16px}.accent-custom input[type=color]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;padding:0}.file-image-wrap{position:relative;display:inline-block}.file-image{display:block;max-width:280px;max-height:280px;border-radius:var(--radius-sm);object-fit:cover;cursor:pointer;transition:opacity .15s}.file-image:hover{opacity:.9}.img-actions{position:absolute;top:6px;right:6px;display:flex;gap:4px}.img-action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);background:#0000008c;color:#fff;font-size:13px;transition:background .15s}.img-action-btn:hover{background:#000c}.file-attachment{display:flex;align-items:center;gap:10px;background:var(--bg-0);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;min-width:200px;max-width:300px;transition:background .15s}.file-attachment:hover{background:var(--bg-hover)}.file-attachment-icon{color:var(--accent);flex-shrink:0}.file-attachment-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.file-attachment-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-attachment-size{font-size:11px;color:var(--text-muted)}.file-attachment-download{color:var(--text-muted);flex-shrink:0}.context-menu-wrap{position:fixed;z-index:400;display:flex;flex-direction:column;gap:8px;animation:fadeIn .1s ease}.context-menu{background:var(--context-bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:6px;box-shadow:var(--shadow);min-width:160px}@keyframes fadeIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.context-reactions{display:flex;gap:2px;padding:6px 8px;background:var(--context-bg);border:1px solid var(--border);border-radius:28px;box-shadow:var(--shadow);width:max-content;max-width:92vw;overflow-x:auto;animation:reactionsIn .18s cubic-bezier(.34,1.56,.64,1)}.context-reactions::-webkit-scrollbar{height:0}@keyframes reactionsIn{0%{opacity:0;transform:translateY(6px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.context-reaction{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;font-size:24px;border-radius:50%;transition:transform .12s,background .12s}.context-reaction:hover{transform:scale(1.25);background:var(--bg-hover)}.context-reaction:active{transform:scale(.95)}.context-menu-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-sm);font-size:13px;color:var(--text-primary);width:100%;text-align:left;transition:background .12s}.context-menu-item:hover:not(.disabled){background:var(--bg-hover)}.context-menu-item.danger{color:var(--danger)}.context-menu-item.danger:hover{background:#f851491a}.context-menu-item.disabled{opacity:.4;cursor:not-allowed}.context-menu-icon{font-size:16px;width:20px;text-align:center}.reaction-picker{position:fixed;z-index:400;display:flex;gap:4px;padding:8px;background:var(--context-bg);border:1px solid var(--border);border-radius:30px;box-shadow:var(--shadow)}.reaction-picker-btn{font-size:22px;padding:4px;border-radius:50%;transition:transform .1s,background .12s}.reaction-picker-btn:hover{transform:scale(1.25);background:var(--bg-hover)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:300;padding:20px}.modal{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 28px 24px;width:100%;max-width:360px;box-shadow:var(--shadow)}.modal-title{font-size:17px;font-weight:700;margin-bottom:10px}.modal-text{font-size:14px;color:var(--text-secondary);line-height:1.55;margin-bottom:24px}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.btn-modal-cancel{padding:9px 18px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;background:var(--bg-3);color:var(--text-primary);border:1px solid var(--border);cursor:pointer;transition:background .15s}.btn-modal-cancel:hover{background:var(--bg-hover)}.btn-modal-danger{padding:9px 18px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;background:var(--danger);color:#fff;border:none;cursor:pointer;transition:opacity .15s}.btn-modal-danger:hover{opacity:.85}.btn-modal-danger:disabled{opacity:.5;cursor:not-allowed}.forward-user-list{max-height:280px;overflow-y:auto;margin-bottom:16px}.forward-user-item{display:flex;align-items:center;gap:12px;padding:10px;border-radius:var(--radius-md);cursor:pointer;transition:background .12s;font-size:14px}.forward-user-item:hover{background:var(--bg-hover)}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:350;display:flex;justify-content:flex-end}.settings-panel{width:100%;max-width:380px;height:100%;background:var(--bg-1);border-left:1px solid var(--border);display:flex;flex-direction:column;box-shadow:var(--shadow);animation:slideIn .2s ease;overflow:hidden}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:calc(var(--safe-top) + 14px) 16px 14px;border-bottom:1px solid var(--border)}.settings-title{font-size:17px;font-weight:700}.settings-body{flex:1;overflow-y:auto;padding:16px 20px calc(var(--safe-bottom) + 20px);display:flex;flex-direction:column;gap:24px}.settings-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);margin-bottom:12px}.settings-profile{display:flex;flex-direction:column;align-items:center;gap:12px;padding:4px 0}.settings-profile-avatar-wrap{position:relative}.settings-profile-avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;letter-spacing:.5px}.settings-profile-name{font-size:22px;font-weight:700;text-align:center;word-break:break-word}.settings-profile-change{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;border-radius:var(--radius-md);background:var(--bg-2);color:var(--accent);font-size:15px;font-weight:500;transition:background .12s}.settings-profile-change:hover{background:var(--bg-hover)}.settings-profile-change:disabled{opacity:.6;cursor:not-allowed}.settings-profile-change-icon{font-size:16px}.settings-account-actions{display:flex;flex-direction:column;gap:8px}.settings-action-btn{display:flex;align-items:center;gap:12px;width:100%;padding:13px 16px;border-radius:var(--radius-md);background:var(--bg-2);color:var(--text-primary);font-size:15px;font-weight:500;transition:background .18s ease,color .18s ease,box-shadow .2s ease,transform .15s ease}.settings-action-btn:not(.danger):hover{background:color-mix(in srgb,var(--accent) 16%,var(--bg-2));color:var(--accent);box-shadow:0 4px 16px color-mix(in srgb,var(--accent) 14%,transparent)}.settings-action-btn:active{transform:scale(.99)}.settings-action-btn.danger{color:var(--danger)}.settings-action-btn.danger:hover{background:#e5393524}.settings-pw-form{display:flex;flex-direction:column;gap:10px}.settings-pw-status{font-size:12px;padding:6px 10px;border-radius:var(--radius-sm)}.settings-pw-status.ok{color:var(--online);background:#3fb9501a}.settings-pw-status.err{color:var(--danger);background:#f851491a}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);font-size:14px}.settings-row:last-child{border-bottom:none}.settings-row-col{flex-direction:column;align-items:stretch;gap:8px}.settings-zoom-label{display:flex;justify-content:space-between;font-size:14px}.settings-zoom-value{color:var(--text-muted)}.settings-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;border-radius:999px;outline:none;cursor:pointer;background:color-mix(in srgb,var(--text-muted) 26%,transparent)}.settings-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 45%,transparent),0 0 0 4px color-mix(in srgb,var(--accent) 14%,transparent);transition:transform .15s ease,box-shadow .2s ease}.settings-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.settings-slider:active::-webkit-slider-thumb{box-shadow:0 2px 10px color-mix(in srgb,var(--accent) 55%,transparent),0 0 0 6px color-mix(in srgb,var(--accent) 18%,transparent)}.settings-slider::-moz-range-track{height:6px;border-radius:999px;background:color-mix(in srgb,var(--text-muted) 26%,transparent)}.settings-slider::-moz-range-thumb{width:18px;height:18px;border:none;border-radius:50%;background:var(--accent);cursor:pointer;box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 45%,transparent),0 0 0 4px color-mix(in srgb,var(--accent) 14%,transparent);transition:transform .15s ease}.settings-slider:hover::-moz-range-thumb{transform:scale(1.2)}.settings-toggle-group{display:flex;background:var(--bg-0);border-radius:var(--radius-sm);padding:2px;gap:2px}.settings-toggle-btn{padding:5px 14px;border-radius:calc(var(--radius-sm) - 1px);font-size:12px;font-weight:500;color:var(--text-secondary);transition:background .15s,color .15s}.settings-toggle-btn.active{background:var(--bg-3);color:var(--text-primary)}.unread-badge{min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--accent);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-left:auto;flex-shrink:0}.load-more-wrap{display:flex;justify-content:center;padding:8px 0}.load-more-btn{background:var(--input-bg);border:1px solid var(--border);color:var(--text-secondary);padding:6px 18px;border-radius:16px;font-size:13px;cursor:pointer;transition:background .15s}.load-more-btn:hover{background:var(--hover-bg)}.load-more-btn:disabled{opacity:.5;cursor:not-allowed}.search-bar{display:flex;align-items:center;gap:8px;padding:6px 14px;background:var(--input-bg);border-bottom:1px solid var(--border)}.search-input{flex:1;background:none;border:none;outline:none;color:var(--text-primary);font-size:14px}.search-count{font-size:12px;color:var(--text-secondary);white-space:nowrap}.search-highlight{background:#f59e0b55;color:var(--text-primary);border-radius:2px;padding:0 1px}.profile-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:360;background:var(--bg-0);display:flex;flex-direction:column;animation:fadeIn .15s ease}.profile-topbar{display:flex;align-items:center;gap:4px;padding:calc(var(--safe-top) + 8px) 10px 8px;background:var(--bg-1);border-bottom:1px solid var(--border)}.profile-topbar-title{flex:1;text-align:center;font-size:17px;font-weight:700}.profile-back{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;color:var(--text-primary);flex-shrink:0;transition:background .12s}.profile-back:hover{background:var(--bg-hover)}span.profile-back{pointer-events:none}.profile-scroll{flex:1;overflow-y:auto;padding-bottom:calc(var(--safe-bottom) + 16px)}.profile-hero{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 16px 20px;background:var(--bg-1)}.profile-name{font-size:23px;font-weight:700;text-align:center;word-break:break-word}.profile-status{font-size:14px;color:var(--text-muted)}.profile-status.online{color:var(--online)}.profile-info{margin:12px;background:var(--bg-1);border-radius:var(--radius-md);overflow:hidden}.profile-info-row{display:flex;align-items:center;padding:12px 16px}.profile-info-text{display:flex;flex-direction:column;gap:2px}.profile-info-value{font-size:15px;color:var(--text-primary)}.profile-info-label{font-size:13px;color:var(--text-muted)}.profile-media{margin:12px}.gallery-modal{max-width:560px;width:90vw;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.gallery-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.gallery-tabs{display:flex;gap:4px;margin-bottom:12px}.gallery-tab{flex:1;padding:8px;border-radius:8px;border:1px solid var(--border);background:none;color:var(--text-secondary);cursor:pointer;font-size:13px;transition:all .15s}.gallery-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;overflow-y:auto;flex:1}.gallery-thumb{aspect-ratio:1;overflow:hidden;border-radius:6px;cursor:pointer}.gallery-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .15s}.gallery-thumb:hover img{transform:scale(1.05)}.gallery-empty{text-align:center;color:var(--text-secondary);padding:32px}.gallery-file-list{overflow-y:auto;flex:1}.gallery-file-item{display:flex;align-items:center;gap:12px;padding:10px;border-radius:8px;transition:background .12s}.gallery-file-item:hover{background:var(--hover-bg)}.gallery-file-icon{font-size:24px;flex-shrink:0}.gallery-file-info{flex:1;min-width:0}.gallery-file-name{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery-file-size{font-size:11px;color:var(--text-secondary)}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background:#000000eb;display:flex;align-items:center;justify-content:center}.lightbox-img{max-width:90vw;max-height:85vh;border-radius:8px;object-fit:contain}.lightbox-close{position:fixed;top:16px;right:20px;background:#ffffff26;border:none;color:#fff;font-size:20px;width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center}.lightbox-dl{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--accent);border:none;color:#fff;padding:10px 24px;border-radius:20px;font-size:14px;cursor:pointer}.wallpaper-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}.wallpaper-thumb{aspect-ratio:1;border-radius:10px;border:2px solid transparent;cursor:pointer;background:var(--input-bg);display:flex;align-items:center;justify-content:center;position:relative;transition:border-color .15s,transform .1s;overflow:hidden}.wallpaper-thumb:hover{transform:scale(1.05);border-color:var(--accent)}.wallpaper-thumb.active{border-color:var(--accent)}.wallpaper-check{position:absolute;bottom:3px;right:5px;font-size:12px;color:var(--accent);font-weight:700;text-shadow:0 0 4px rgba(0,0,0,.5)}.chat-main{position:relative}@media (max-width: 640px){:root{--safe-top: max(env(safe-area-inset-top, 0px), 42px);--safe-bottom: max(env(safe-area-inset-bottom, 0px), 10px)}.sidebar-wrapper{width:100%}.sidebar{width:100%;border-right:none}.chat-main,.chat-root.chat-open .sidebar-wrapper{display:none}.chat-root.chat-open .chat-main,.chat-back{display:flex}.message-bubble{max-width:85%}.settings-panel{max-width:100%}}
