:root,[data-theme=dark]{--bg:#0e1621;--bg-panel:#17212b;--bg-panel-2:#1e2c3a;--bg-hover:#202b36;--bg-active:#2b5278;--accent:#2aabee;--accent-hover:#229ed9;--text:#f5f5f5;--text-dim:#8696a8;--text-faint:#5f6e7d;--bubble-in:#182533;--bubble-out:#2b5278;--danger:#e05252;--ok:#4fae4e;--border:#0d1520;--radius:10px;--scrollbar:#2f3d4a}[data-theme=light]{--bg:#e8eef3;--bg-panel:#fff;--bg-panel-2:#f4f7fa;--bg-hover:#eef3f8;--bg-active:#d6ebfa;--accent:#1e88e5;--accent-hover:#1976d2;--text:#1a2332;--text-dim:#6b7c8f;--text-faint:#9aabbc;--bubble-in:#fff;--bubble-out:#d6ebfa;--danger:#d64545;--ok:#3d9a4a;--border:#d5dee8;--radius:10px;--scrollbar:#c5d0dc}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.45}a{color:var(--accent);text-decoration:none}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}input,select,textarea{font:inherit;color:var(--text);background:var(--bg-panel-2);border:1px solid transparent;border-radius:var(--radius);padding:10px 12px;outline:none;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--accent)}::placeholder{color:var(--text-faint)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:3px}::-webkit-scrollbar-track{background:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--accent);color:#fff;border-radius:var(--radius);padding:10px 16px;font-weight:600;transition:background .15s}.btn:hover{background:var(--accent-hover)}.btn:disabled{opacity:.55;cursor:default}.btn-ghost{background:transparent;color:var(--accent)}.btn-ghost:hover{background:var(--bg-hover)}.avatar{flex:none;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:600;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;overflow:visible}.avatar img{border-radius:50%;width:100%;height:100%;object-fit:cover}.status-dot{position:absolute;right:-1px;bottom:-1px;border-radius:50%;background:#6b7c8a;border:2px solid var(--bg-panel);box-sizing:border-box}.status-dot.on{background:var(--ok)}.avatar-edit{position:relative;flex:none;padding:0;border:none;background:none;border-radius:50%;cursor:pointer}.avatar-edit:disabled{cursor:default}.avatar-edit-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(0,0,0,.45);font-size:20px;opacity:0;transition:opacity .15s ease}.avatar-edit:hover:not(:disabled) .avatar-edit-overlay{opacity:1}.badge{flex:none;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--accent);color:#fff;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center}.error-text{color:var(--danger);font-size:13px}.muted{color:var(--text-dim)}.empty-state{flex-direction:column;gap:8px;height:100%;color:var(--text-dim)}.auth-wrap,.empty-state{display:flex;align-items:center;justify-content:center}.auth-wrap{min-height:100vh;padding:24px}.auth-card{width:380px;background:var(--bg-panel);border-radius:16px;padding:32px 28px;display:flex;flex-direction:column;gap:14px;box-shadow:0 10px 40px rgba(0,0,0,.4)}.auth-logo{width:72px;height:72px;border-radius:50%;background:var(--accent);color:#fff;font-size:30px;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 6px}.auth-title{text-align:center;font-size:20px;font-weight:700}.auth-sub{text-align:center;color:var(--text-dim);font-size:13px;margin-bottom:8px}.field label{display:block;font-size:12px;color:var(--text-dim);margin-bottom:5px}.captcha-row{display:flex;gap:10px;align-items:stretch}.captcha-img{border-radius:var(--radius);background:#fff;border:1px solid var(--bg-panel-2);object-fit:contain}.captcha-img,.captcha-placeholder{flex:none;width:120px;cursor:pointer}.captcha-placeholder{border-radius:var(--radius);background:var(--bg-panel-2);color:var(--text-faint);font-size:12px;display:flex;align-items:center;justify-content:center}.remember-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--text-dim)}.remember-row label{display:flex;align-items:center;gap:7px;cursor:pointer}.remember-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent)}.shell{display:flex;height:100vh;overflow:hidden}.nav-rail{flex:none;width:64px;background:var(--bg-panel);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;padding:14px 0;gap:6px}.nav-rail .spacer{flex:1 1}.nav-item{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--text-dim);transition:background .15s}.nav-item:hover{background:var(--bg-hover)}.nav-item.active{background:var(--bg-active);color:#fff}.sidebar{flex:none;width:320px;background:var(--bg-panel);border-right:1px solid var(--border);flex-direction:column;min-width:0}.sidebar,.sidebar-header{display:flex;position:relative}.sidebar-header{padding:12px;gap:8px;align-items:center}.icon-btn{flex:none;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--text-dim);transition:background .12s ease,color .12s ease}.icon-btn.active,.icon-btn:hover{background:var(--bg-hover);color:var(--text)}.popup-menu{position:absolute;z-index:40;min-width:210px;padding:6px;border-radius:12px;background:rgba(23,33,43,.98);border:1px solid var(--border);box-shadow:0 8px 32px rgba(0,0,0,.55);display:flex;flex-direction:column;transform-origin:top left;animation:ui-pop-in .16s cubic-bezier(.2,.8,.2,1)}.main-menu{top:54px;left:12px}.compose-menu{bottom:76px;right:18px;transform-origin:bottom right}.fab{position:absolute;bottom:18px;right:18px;z-index:30;width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-size:18px;box-shadow:0 6px 20px rgba(0,0,0,.45);transition:transform .12s ease,filter .12s ease}.fab:hover{filter:brightness(1.1)}.fab.open{transform:rotate(90deg)}.search-input{background:var(--bg-panel-2);border-radius:18px;padding:8px 14px;font-size:13px}.conv-list{flex:1 1;overflow-y:auto}.conv-item{display:flex;gap:12px;padding:10px 12px;cursor:pointer;align-items:center;min-width:0}.conv-item:hover{background:var(--bg-hover)}.conv-item.drop-hover{background:color-mix(in srgb,var(--accent,#5b9bd5) 22%,var(--bg-hover));box-shadow:inset 0 0 0 2px var(--accent,#5b9bd5)}.conv-item.active{background:var(--bg-active)}.conv-item.active .conv-time,.conv-item.active .muted{color:#cfe3f2}.conv-body{flex:1 1;min-width:0}.conv-top{display:flex;justify-content:space-between;gap:8px}.conv-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-time{flex:none;font-size:12px;color:var(--text-faint)}.conv-bottom{display:flex;justify-content:space-between;gap:8px;margin-top:2px}.conv-preview{color:var(--text-dim);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-sender{color:var(--text)}.conv-preview.typing{color:var(--accent);font-style:italic}.conv-item.muted-conv{opacity:.72}.conv-item.favorited .conv-title{font-weight:700}.fav-mark{color:#e6b422}.mute-mark{font-size:12px;opacity:.8}.badge.muted-badge{background:var(--text-faint)}.conv-ctx{z-index:80}.chat-pane{flex:1 1;display:flex;flex-direction:column;min-width:0;background:radial-gradient(ellipse at top,rgba(42,171,238,.05),transparent 60%),var(--bg)}.chat-header{flex:none;height:58px;background:var(--bg-panel);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;padding:0 16px}.chat-header .title{font-weight:600}.chat-header .sub{font-size:12px;color:var(--text-dim)}.msg-scroll{flex:1 1;overflow-y:auto;padding:18px 16px;display:flex;flex-direction:column;gap:4px;position:relative}.msg-scroll.drop-target{box-shadow:inset 0 0 0 2px var(--accent,#5b9bd5);background:color-mix(in srgb,var(--accent,#5b9bd5) 8%,transparent)}.msg-drop-overlay{position:-webkit-sticky;position:sticky;top:35%;z-index:4;pointer-events:none;text-align:center;padding:14px 18px;border-radius:10px;font-weight:600;color:var(--text);background:color-mix(in srgb,var(--bg-panel,#1a2332) 88%,var(--accent,#5b9bd5));border:1px dashed var(--accent,#5b9bd5)}.msg-scroll>*{width:100%;max-width:720px;margin-left:auto;margin-right:auto}.msg-row{display:flex;position:relative;align-items:center;transition:padding-left .15s ease}.msg-row.mine{justify-content:flex-end}.msg-row.select-mode{padding-left:36px;cursor:pointer;border-radius:10px}.msg-row.select-mode.selected{background:rgba(42,171,238,.14)}.select-dot{position:absolute;left:4px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;border:2px solid var(--text-faint);background:transparent;color:#fff;font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .12s ease,border-color .12s ease}.select-dot.on{background:var(--accent);border-color:var(--accent)}.bubble-wrap{position:relative;display:flex;flex-direction:column;max-width:62%}.bubble-wrap .bubble{max-width:100%}.msg-row.mine .bubble-wrap{align-items:flex-end}.emoji-bar{position:absolute;top:50%;z-index:5;display:flex;opacity:0;pointer-events:none;transform:translateY(-50%) scale(.8);transition:opacity .12s ease,transform .12s ease}.msg-row:not(.mine) .emoji-bar{left:calc(100% - 14px)}.msg-row.mine .emoji-bar{right:calc(100% - 14px)}.bubble-wrap:hover .emoji-bar{opacity:1;pointer-events:auto;transform:translateY(-50%) scale(1)}.emoji-bar .emoji-btn{width:34px;height:34px;background:rgba(23,33,43,.98);border:1px solid var(--border);box-shadow:0 4px 14px rgba(0,0,0,.45)}.emoji-bar .emoji-btn:hover{background:var(--bg-hover);transform:scale(1.15)}.emoji-btn{width:30px;height:30px;border-radius:50%;background:transparent;font-size:17px;line-height:1;display:flex;align-items:center;justify-content:center;transition:transform .1s ease,background .1s ease}.emoji-btn:hover{background:var(--bg-hover);transform:scale(1.25)}.bubble-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:5px}.bubble-footer .meta{float:none;margin:0;white-space:nowrap;align-self:flex-end}.reaction-chips{display:flex;flex-wrap:wrap;gap:4px}.reaction-chip{display:flex;align-items:center;gap:5px;padding:3px 8px 3px 7px;border-radius:14px;background:rgba(0,0,0,.22);border:1px solid transparent;color:var(--text);font-size:14px;line-height:1.4;transition:background .14s ease,color .14s ease,transform .14s ease;animation:ui-pop-in .16s cubic-bezier(.2,.8,.2,1)}.reaction-chip:hover{background:rgba(0,0,0,.34);transform:translateY(-1px)}.reaction-chip.mine{background:hsla(0,0%,100%,.85);color:#222}.reaction-chip.mine:hover{background:hsla(0,0%,100%,.7)}.chip-emoji{font-size:15px;line-height:1}.chip-count{font-size:12.5px;font-weight:600}.chip-avatars{display:flex}.chip-avatars .avatar{border:1.5px solid rgba(0,0,0,.35)}.chip-avatars .avatar+.avatar{margin-left:-7px}.chat-header.select-bar{gap:8px}.chat-header.clickable{cursor:pointer;transition:background .12s ease}.chat-header.clickable:hover{background:var(--bg-hover)}.details-panel{position:relative}.details-close{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;background:transparent;color:var(--text-dim);font-size:15px;display:flex;align-items:center;justify-content:center;transition:background .12s ease,color .12s ease}.details-close:hover{background:var(--bg-hover);color:var(--text)}.ctx-wrap{position:fixed;z-index:60;transform-origin:top left;animation:ui-pop-in .16s cubic-bezier(.2,.8,.2,1)}.ctx-wrap .ctx-menu{position:static;animation:none}.ctx-emoji-row{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:6px;gap:2px;padding:4px 6px;border-radius:20px;border:1px solid var(--border);box-shadow:0 6px 24px rgba(0,0,0,.5)}.ctx-emoji-row,.ctx-menu{display:flex;background:rgba(23,33,43,.98)}.ctx-menu{position:fixed;z-index:60;min-width:190px;padding:6px;border-radius:12px;border:1px solid hsla(0,0%,100%,.06);box-shadow:0 8px 32px rgba(0,0,0,.55);flex-direction:column;animation:ui-pop-in .16s cubic-bezier(.2,.8,.2,1)}@keyframes ui-pop-in{0%{opacity:0;transform:translateY(4px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.ctx-item{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:8px;background:transparent;color:var(--text);font-size:14px;font-weight:500;text-align:left;white-space:nowrap}.ctx-item:hover{background:var(--bg-hover)}.ctx-item svg{flex:none;color:var(--text-dim)}.ctx-item.danger,.ctx-item.danger svg{color:var(--danger)}.ctx-sep{height:1px;margin:4px 8px;background:hsla(0,0%,100%,.07)}.bubble{max-width:62%;padding:7px 12px 6px;border-radius:14px;background:var(--bubble-in);word-break:break-word;white-space:pre-wrap}.msg-row.mine .bubble{background:var(--bubble-out);border-bottom-right-radius:4px}.msg-row:not(.mine) .bubble{border-bottom-left-radius:4px}.bubble .sender{font-size:12.5px;font-weight:600;color:var(--accent);margin-bottom:1px}.bubble .meta{float:right;margin:8px 0 0 8px;font-size:11px;color:hsla(0,0%,100%,.45)}.bubble.pending{opacity:.6}.bubble.muted{opacity:.65}.recalled-placeholder{font-style:italic;color:var(--text-dim)}.recall-mark{display:inline-flex;align-items:center;vertical-align:-2px;margin-right:4px}.recall-mark svg{display:block}.reply-banner{display:flex;align-items:center;gap:12px;width:100%;padding:4px 4px 8px;border-bottom:1px solid var(--bg-panel-2);margin-bottom:6px;color:var(--accent);animation:ui-pop-in .16s cubic-bezier(.2,.8,.2,1)}.reply-banner>svg{flex:none}.reply-body{flex:1 1;min-width:0;border-left:2px solid var(--accent);padding-left:10px}.reply-name{font-size:13px;font-weight:600;color:var(--accent)}.reply-text{font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-close{flex:none;width:30px;height:30px;border-radius:50%;background:transparent;color:var(--text-dim);font-size:14px;display:flex;align-items:center;justify-content:center;transition:background .12s ease,color .12s ease}.reply-close:hover{background:var(--bg-hover);color:var(--text)}.composer{flex:none;padding:10px 16px 16px;width:100%;max-width:752px;margin:0 auto}.composer-box{display:flex;flex-direction:column;background:var(--bg-panel);border-radius:16px;padding:8px 10px}.composer-row{display:flex;gap:8px;align-items:flex-end}.composer textarea,.composer textarea:focus{flex:1 1;resize:none;max-height:500px;overflow-y:auto;background:transparent;border:none;border-radius:0;padding:8px 6px;scrollbar-width:none}.composer textarea::-webkit-scrollbar{display:none}@media (max-height:600px),(max-width:768px){.composer textarea{max-height:200px}}.send-btn{flex:none;width:40px;height:40px;border-radius:50%;background:var(--accent);color:#fff;font-size:16px;display:flex;align-items:center;justify-content:center;transition:background .12s ease,transform .12s ease}.send-btn:hover{background:var(--accent-hover)}.send-btn:disabled{opacity:.5}.send-btn.danger{background:#c84b4b}.send-btn.danger:hover{background:#a83a3a}.recording-pill{flex:1 1;display:flex;align-items:center;gap:8px;padding:0 8px;font-size:14px;font-weight:600;color:#e07070;min-width:0}.recording-dot{width:8px;height:8px;border-radius:50%;background:#e07070;animation:recording-pulse 1s ease-in-out infinite}@keyframes recording-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.85)}}.voice-msg{display:grid;grid-gap:4px;gap:4px;min-width:180px;max-width:280px}.voice-msg audio{width:100%;height:36px}.voice-label{font-size:12px;color:hsla(0,0%,100%,.55)}.media-image{max-width:min(280px,70vw);border-radius:8px;overflow:hidden;margin-bottom:4px}.media-image img{display:block;width:100%;max-height:320px;object-fit:cover}.media-file{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:rgba(0,0,0,.2);color:inherit;max-width:260px}.media-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attach-btn{flex:none;width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--text-dim);border-radius:50%}.attach-btn:hover{color:var(--text);background:var(--bg-hover)}.details-panel{flex:none;width:300px;background:var(--bg-panel);border-left:1px solid var(--border);padding:24px 18px;display:flex;flex-direction:column;align-items:center;gap:10px;overflow-y:auto;animation:details-enter .18s cubic-bezier(.2,.8,.2,1)}@keyframes details-enter{0%{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}.details-panel .kv{width:100%;padding:10px 0;border-bottom:1px solid var(--bg-panel-2)}.details-panel .kv .k{font-size:12px;color:var(--text-dim)}.page-pane{flex:1 1;overflow-y:auto;padding:28px 32px}.page-pane h1{font-size:20px;margin-bottom:18px}.card{background:var(--bg-panel);border-radius:14px;padding:20px;margin-bottom:18px;max-width:640px}.list-row{display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--bg-panel-2)}.list-row:last-child{border-bottom:none}.row-inline{display:flex;gap:10px}.conn-dot{width:8px;height:8px;border-radius:50%;background:var(--danger)}.conn-dot.on{background:var(--ok)}.search-wrap{position:relative;flex:1 1;display:flex}.search-wrap .search-input{width:100%}.search-wrap .spinner{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:14px;height:14px;border-radius:50%;border:2px solid var(--text-dim);border-top:2px solid transparent;animation:spinner-enter .14s ease-out,spin .8s linear .14s infinite}@keyframes spinner-enter{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:translateY(-50%) rotate(1turn)}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}[data-theme=light] .bubble .meta{color:rgba(26,35,50,.45)}[data-theme=light] .voice-label{color:rgba(26,35,50,.55)}[data-theme=light] .conv-item.active .conv-time,[data-theme=light] .conv-item.active .muted{color:var(--text-dim)}[data-theme=light] .status-dot{border-color:var(--bg-panel)}.search-results{padding:8px 0}.search-section{margin-bottom:10px}.search-section-title{padding:6px 14px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);font-weight:700}.search-hit{display:flex;gap:10px;align-items:center;width:100%;text-align:left;padding:8px 14px;border-radius:0}.search-hit:hover{background:var(--bg-hover)}.search-hit-body{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.inchat-search-results{max-height:180px;overflow-y:auto;border-bottom:1px solid var(--border);background:var(--bg-panel);padding:6px 0}.msg-flash .bubble{outline:2px solid var(--accent);animation:ui-pop-in .2s ease}.badge.mention-badge{background:var(--accent)}.mention{color:var(--accent);font-weight:600;background:rgba(42,171,238,.15);border-radius:4px;padding:0 2px}[data-theme=light] .mention{background:rgba(30,136,229,.12)}.pinned-banner{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--bg-panel-2);border-bottom:1px solid var(--border);color:var(--accent);font-size:13px}.pinned-text{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.md-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;background:rgba(0,0,0,.25);padding:1px 5px;border-radius:4px}.md-link{color:var(--accent);text-decoration:underline}[data-theme=light] .md-code{background:rgba(0,0,0,.06)}.edited-mark{font-style:italic;opacity:.7;margin-right:4px}.details-members{width:100%;margin-top:12px}.details-member{display:flex;align-items:center;gap:10px;padding:6px 0}.details-member-admin{align-items:flex-start}.mute-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.mute-chip{padding:2px 8px!important;font-size:11px!important;flex:none}.mute-group-actions{width:100%;margin-top:12px}.mute-group-actions .btn{width:100%}.group-qr-block{width:100%;margin:12px 0;padding:12px;background:var(--bg-panel-2);border-radius:var(--radius)}.forward-modal{position:fixed;inset:0;z-index:40;display:flex;align-items:flex-end;justify-content:flex-end;padding:24px;background:rgba(0,0,0,.35)}.forward-modal-card{width:min(360px,100%);max-height:min(520px,90vh);display:flex;flex-direction:column;padding:14px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 12px 40px rgba(0,0,0,.35)}.forward-modal-list{flex:1 1;overflow:auto;max-height:320px;display:flex;flex-direction:column;gap:2px}.forward-modal-row{display:flex;align-items:center;gap:10px;padding:8px 6px;border-radius:8px;cursor:pointer}.forward-modal-row:hover{background:var(--bg-hover)}.forward-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.tag-chip-row{display:flex;flex-wrap:wrap;gap:6px}.tag-chip{display:inline-flex;align-items:center;padding:2px 8px;font-size:12px;border-radius:999px;background:var(--bg-panel-2);color:var(--accent);border:1px solid var(--border)}.tag-chip.removable{cursor:pointer;background:transparent;border-color:var(--accent)}.friend-note-editor{width:100%;display:grid;grid-gap:8px;gap:8px;margin-top:12px;padding:12px;background:var(--bg-panel-2);border-radius:var(--radius)}.friend-note-modal{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(0,0,0,.45)}.friend-note-modal-card{width:min(400px,100%);padding:16px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 12px 40px rgba(0,0,0,.35)}.edit-banner{color:#e6b422}.call-overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(0,0,0,.55);pointer-events:auto}.call-overlay.in-call{align-items:flex-end;justify-content:flex-end;background:transparent;pointer-events:none}.call-overlay-card{pointer-events:auto;width:min(360px,100%);padding:20px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 16px 48px rgba(0,0,0,.4);display:flex;flex-direction:column;gap:12px;text-align:center}.call-media-card{width:min(420px,100%)}.call-overlay-title{font-size:13px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.call-duration{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:22px;font-weight:600;letter-spacing:.02em;color:var(--text)}.call-quality-badge{font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--text-dim)}.call-quality-badge.excellent,.call-quality-badge.good{color:var(--ok)}.call-quality-badge.poor{color:#e6b422}.call-quality-badge.lost{color:var(--danger)}.call-quality-hint{font-size:13px;line-height:1.35;color:#e6b422;max-width:28ch}.call-stats{display:grid;grid-gap:2px;gap:2px;font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-dim);text-align:left;width:100%;max-width:220px;margin-inline:auto}.call-overlay-name{font-size:20px;font-weight:700}.call-overlay-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}.call-answer{background:var(--ok)!important;border-color:var(--ok)!important}.call-decline{background:var(--danger)!important;border-color:var(--danger)!important;color:#fff!important}.call-videos{position:relative;aspect-ratio:4/3;border-radius:8px;overflow:hidden}.call-video,.call-videos{width:100%;background:#0a1018}.call-video{height:100%;object-fit:cover}.call-video.local{position:absolute;right:8px;bottom:8px;width:28%;height:auto;aspect-ratio:3/4;border-radius:6px;border:1px solid hsla(0,0%,100%,.25);z-index:1}.call-voice-placeholder{padding:28px 12px;font-size:15px}.call-mic-meters{display:flex;flex-direction:column;gap:6px;align-items:center;margin-top:4px}.call-mic-meter{display:flex;align-items:center;justify-content:center;gap:10px}.call-mic-meter-bars{display:flex;align-items:flex-end;gap:3px;height:18px}.call-mic-meter-bar{width:4px;border-radius:1px;background:var(--border);opacity:.4;transition:background 60ms linear,opacity 60ms linear,height 60ms linear}.call-mic-meter-bar:first-child{height:5px}.call-mic-meter-bar:nth-child(2){height:8px}.call-mic-meter-bar:nth-child(3){height:11px}.call-mic-meter-bar:nth-child(4){height:14px}.call-mic-meter-bar:nth-child(5){height:18px}.call-mic-meter-bar.on{opacity:1}.call-mic-meter.low .call-mic-meter-bar.on{background:var(--ok)}.call-mic-meter.mid .call-mic-meter-bar.on{background:#5b9bd5}.call-mic-meter.hot .call-mic-meter-bar.on{background:#e6b422}.call-mic-meter.muted .call-mic-meter-bar{background:var(--border);opacity:.35}.call-mic-meter-label{font-size:12px;color:var(--text-dim);min-width:3.5em}.call-remote-hint{font-size:12px;text-align:center;margin-top:4px}.call-enable-sound{margin:8px auto 0;display:block}.call-mic-help{text-align:left;font-size:13px;line-height:1.4}.call-mic-steps{margin:8px 0 0;padding-left:18px}.call-mic-steps li{margin-bottom:6px}.call-mic-help code{font-size:11px;word-break:break-all}.call-mic-help a{color:var(--accent)}.system-row{justify-content:center;margin:8px 0}.system-msg{font-size:12px;color:var(--text-dim);background:var(--bg-panel-2);padding:4px 12px;border-radius:999px}.call-msg{font-style:italic}.group-meta-edit{width:100%;display:grid;grid-gap:8px;gap:8px;margin:12px 0;padding:12px;background:var(--bg-panel-2);border-radius:var(--radius);text-align:left}.group-meta-edit input,.group-meta-edit textarea{width:100%}.group-toggle{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--text-dim)}