:root{
  --bg:#ffffff; --bg2:#f0f2f5; --panel:#ffffff; --text:#111111; --muted:#707991;
  --accent:#2a9df4; --accent-dark:#1f8ad6; --accent-text:#ffffff;
  --bubble-in:#ffffff; --bubble-out:#eefdde;
  --border:#e6e8ec; --radius:14px;
  --hover:rgba(0,0,0,.05); --shadow:0 4px 24px rgba(0,0,0,.12);
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:-apple-system,"Segoe UI",Roboto,Inter,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:15px;overflow:hidden}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:transparent;border-radius:8px}
#chats:hover::-webkit-scrollbar-thumb,#msgs:hover::-webkit-scrollbar-thumb,#right:hover::-webkit-scrollbar-thumb,.modal .box:hover::-webkit-scrollbar-thumb{border-radius:8px;background:rgba(120,120,120,.35)}
#chats,#msgs,#right,.modal .box{scrollbar-width:thin;scrollbar-color:transparent transparent}
#chats:hover,#msgs:hover,#right:hover,.modal .box:hover{scrollbar-color:rgba(120,120,120,.35) transparent}
button{font-family:inherit}

/* ---------- Auth ---------- */
#auth{display:flex;min-height:100vh;align-items:center;justify-content:center;background:linear-gradient(135deg,#2a9df4,#7b5cf0);padding:16px;overflow-y:auto}
.auth-card{background:var(--panel);border-radius:20px;padding:32px;width:360px;box-shadow:var(--shadow);text-align:center}
.logo{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,#2a9df4,#40c4ff);display:flex;align-items:center;justify-content:center;font-size:34px;margin:0 auto 12px;box-shadow:0 6px 18px rgba(42,157,244,.4)}
.auth-card h2{margin:0 0 4px}.auth-card p{color:var(--muted);font-size:13px;margin:0 0 16px}
.auth-card input{width:100%;padding:12px;margin:6px 0;border:1.5px solid var(--border);border-radius:12px;background:var(--bg);color:var(--text);font-size:15px;outline:none;transition:border-color .15s}
.auth-card input:focus{border-color:var(--accent)}
.btn{padding:10px 16px;border-radius:12px;border:0;background:var(--bg2);color:var(--text);cursor:pointer;font-size:14px;font-weight:600;transition:filter .15s,transform .05s}
.btn:hover{filter:brightness(.96)}.btn:active{transform:scale(.98)}
.btn.primary{background:var(--accent);color:var(--accent-text)}
.btn.block{width:100%;padding:12px;margin-top:8px;font-size:15px}
.auth-themes{display:flex;gap:8px;justify-content:center;margin-top:14px}
.auth-themes .btn{flex:1}

/* ---------- Layout ---------- */
#app{display:none;height:100vh;height:100dvh;grid-template-columns:320px 1fr 280px;min-height:0;overflow:hidden}
#app>aside,#app>main,#app>#right{min-height:0;min-width:0}
aside{background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;min-width:0}
.side-head{display:flex;gap:8px;align-items:center;padding:8px 12px;position:sticky;top:0;z-index:3;background:var(--panel);flex-shrink:0}
.icon-btn{width:40px;height:40px;border-radius:50%;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:19px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}
.icon-btn:hover{background:var(--hover)}
.search-wrap{flex:1;display:flex;align-items:center;gap:6px;background:var(--bg2);border-radius:22px;padding:8px 14px;color:var(--muted)}
.search-wrap input{flex:1;border:0;background:transparent;outline:none;color:var(--text);font-size:14px;min-width:0}
#chats{overflow-y:auto;overflow-x:hidden;flex:1;min-height:0;padding:6px;overscroll-behavior:contain;scrollbar-gutter:stable}
.chat-item{display:flex;gap:10px;align-items:center;padding:8px;border-radius:12px;cursor:pointer;transition:background .12s}
.chat-item:hover{background:var(--hover)}
.chat-item.active{background:var(--accent);color:#fff}
.chat-item.active .c-sub,.chat-item.active .c-time{color:rgba(255,255,255,.75)}
.c-main{flex:1;min-width:0}
.c-row1{display:flex;align-items:baseline;gap:6px}
.c-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.c-time{font-size:12px;color:var(--muted);flex-shrink:0}
.c-sub{font-size:14px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c-type{font-size:12px;opacity:.7}

/* ---------- Avatar ---------- */
.avatar{width:48px;height:48px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:19px;flex-shrink:0;position:relative;user-select:none}
.avatar.sm{width:36px;height:36px;font-size:15px}
.avatar.lg{width:96px;height:96px;font-size:38px}
.avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.av0{background:linear-gradient(135deg,#ff845e,#d45246)}.av1{background:linear-gradient(135deg,#f0a832,#e07d1f)}
.av2{background:linear-gradient(135deg,#b381f5,#7c5cf0)}.av3{background:linear-gradient(135deg,#4fc38b,#2f9e6e)}
.av4{background:linear-gradient(135deg,#4fc3e8,#2b9cc4)}.av5{background:linear-gradient(135deg,#5caae6,#3b7dd8)}
.av6{background:linear-gradient(135deg,#f5739d,#d84f7c)}.av7{background:linear-gradient(135deg,#8e9aaf,#5f6b80)}
.av-dot{position:absolute;right:-3px;bottom:-3px;width:13px;height:13px;border-radius:50%;background:#a8adb3;border:2.5px solid var(--panel);z-index:1}
.av-dot.on{background:#31c46b}

/* ---------- Chat main ---------- */
main{display:flex;flex-direction:column;background:var(--bg);min-width:0;position:relative}
.chat-head{display:flex;align-items:center;gap:10px;padding:6px 12px;border-bottom:1px solid var(--border);background:var(--panel);z-index:2;position:sticky;top:0;flex-shrink:0}
.chat-head .who{flex:1;min-width:0;cursor:pointer}
.chat-head .who b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:15px}
.chat-head .who small{color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.chat-head .who small.typing{color:var(--accent)}
#btnBack{display:none}
#msgs{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:12px 16px 8px;display:flex;flex-direction:column;background:var(--bg2);background-image:radial-gradient(rgba(120,120,120,.13) 1px,transparent 1px);background-size:18px 18px;overscroll-behavior:contain;scrollbar-gutter:stable}
.day-pill{align-self:center;background:rgba(120,130,140,.35);color:#fff;font-size:12.5px;font-weight:600;padding:4px 12px;border-radius:12px;margin:10px 0 4px;backdrop-filter:blur(2px)}
.msg-row{display:flex;align-items:flex-end;gap:6px;margin-top:2px;max-width:100%}
.msg-row.me{justify-content:flex-end}
.msg-row .avatar{width:34px;height:34px;font-size:14px;visibility:hidden}
.msg-row.show-av .avatar{visibility:visible}
.bubble{position:relative;max-width:min(480px,72%);padding:7px 10px 6px;border-radius:var(--radius);background:var(--bubble-in);box-shadow:0 1px 1px rgba(0,0,0,.08);font-size:var(--chat-fs,15px);line-height:1.4;overflow-wrap:anywhere;animation:pop .15s ease-out}
@keyframes pop{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.msg-row.me .bubble{background:var(--bubble-out)}
.msg-row.tail .bubble::after{content:"";position:absolute;bottom:0;width:10px;height:12px;background:inherit}
.msg-row:not(.me).tail .bubble::after{left:-5px;clip-path:polygon(100% 0,100% 100%,0 100%)}
.msg-row.me.tail .bubble::after{right:-5px;clip-path:polygon(0 0,0 100%,100% 100%)}
.bubble .from{font-size:13px;font-weight:700;margin-bottom:1px;cursor:pointer}
.nc0{color:#d84f7c}.nc1{color:#e07d1f}.nc2{color:#7c5cf0}.nc3{color:#2f9e6e}.nc4{color:#2b9cc4}.nc5{color:#3b7dd8}.nc6{color:#c44f9e}
.bubble .txt{white-space:pre-wrap;display:inline;overflow-wrap:anywhere}
.bubble a{color:var(--accent);overflow-wrap:anywhere;text-decoration:none}
.bubble a:hover{text-decoration:underline}
.linkprev{display:flex;gap:10px;background:rgba(42,157,244,.1);border-radius:10px;padding:8px 10px;margin:4px 0;text-decoration:none !important;color:var(--text);max-width:320px}
.linkprev img{width:56px;height:56px;border-radius:8px;object-fit:cover;flex-shrink:0}
.linkprev .lp-tx{min-width:0}
.linkprev .lp-site{font-size:12.5px;color:var(--accent);font-weight:600}
.linkprev .lp-title{font-size:13.5px;font-weight:700;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.linkprev .lp-desc{font-size:12.5px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.quote{border-left:3px solid var(--accent);background:rgba(42,157,244,.1);border-radius:6px;padding:4px 8px;margin-bottom:4px;font-size:13.5px;cursor:pointer}
.quote b{color:var(--accent);font-size:12.5px;display:block}
.quote span{color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.bubble .meta{display:flex;justify-content:flex-end;align-items:center;gap:4px;font-size:11.5px;color:var(--muted);margin-top:2px;float:right;margin-left:8px;user-select:none}
.check{color:var(--accent);font-size:12px}
.attach-card{display:flex;align-items:center;gap:10px;background:rgba(0,0,0,.05);border-radius:10px;padding:8px 10px;margin:2px 0 4px;text-decoration:none;color:var(--text)}
.attach-card .fic{width:40px;height:40px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.attach-card b{font-size:14px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.attach-card small{color:var(--muted)}
.reply-act{opacity:0;align-self:center;transition:opacity .12s}
.msg-row:hover .reply-act{opacity:1}
#typing{align-self:flex-start;background:var(--bubble-in);border-radius:14px;padding:8px 14px;margin:6px 0 0 0;font-size:13px;color:var(--muted);box-shadow:0 1px 1px rgba(0,0,0,.08);display:none;box-shadow:0 1px 1px rgba(0,0,0,.08)}
#typing.show{display:block}
#typing .dots span{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--muted);margin-right:3px;animation:blink 1.2s infinite}
#typing .dots span:nth-child(2){animation-delay:.2s}#typing .dots span:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,60%,100%{opacity:.3}30%{opacity:1}}

/* ---------- Composer ---------- */
#replyBar{display:none;align-items:center;gap:8px;background:var(--panel);border-top:1px solid var(--border);border-left:3px solid var(--accent);padding:6px 12px;font-size:13px}
#replyBar.show{display:flex}
#replyBar .rt{flex:1;min-width:0}
#replyBar .rt b{color:var(--accent);display:block;font-size:12.5px}
#replyBar .rt span{color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#composer{display:flex;align-items:flex-end;gap:6px;padding:6px 10px;background:var(--panel);position:relative;flex-shrink:0}
#replyBar,#recBar{flex-shrink:0}
.compose-box{flex:1;display:flex;align-items:center;background:var(--bg2);border-radius:14px;padding:3px 5px 3px 3px}
#text{flex:1;border:0;background:transparent;outline:none;color:var(--text);font-size:15px;padding:7px 6px;min-width:0;font-family:inherit}
#composer .icon-btn{width:36px;height:36px;font-size:17px}
#btnSend{width:40px;height:40px;border-radius:50%;border:0;background:var(--accent);color:#fff;font-size:17px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .15s}
#btnSend:hover{background:var(--accent-dark)}
#emojiPop{position:absolute;left:8px;bottom:64px;background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:10px;display:none;grid-template-columns:repeat(8,32px);gap:2px;z-index:5}
#emojiPop.show{display:grid}
#emojiPop button{border:0;background:none;font-size:21px;cursor:pointer;border-radius:8px;padding:2px}
#emojiPop button:hover{background:var(--hover)}

/* ---------- Right panel ---------- */
#right{background:var(--panel);border-left:1px solid var(--border);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;overscroll-behavior:contain}
#right>*{flex-shrink:0}
.rp-head{padding:16px;text-align:center;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:2;background:var(--panel)}
.rp-head .avatar{margin:0 auto 8px}
.rp-head h3{margin:0;font-size:17px}
.rp-head small{color:var(--muted)}
.rp-sec{padding:10px 14px;border-bottom:1px solid var(--border)}
.rp-sec h4{margin:0 0 8px;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.member-row{display:flex;gap:10px;align-items:center;padding:6px 0;min-width:0}
.member-row>div:nth-child(2){flex:1;min-width:0}
.member-row .nm{font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.member-row small{color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.media-item{display:flex;gap:10px;align-items:center;padding:7px 8px;border-radius:10px;text-decoration:none;color:var(--text);min-width:0}
.media-item>span:last-child{flex:1;min-width:0}
.media-item:hover{background:var(--hover)}
.media-item .fic{width:36px;height:36px;border-radius:10px;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
.media-item b{font-size:13.5px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px;font-weight:500}
.empty-note{color:var(--muted);font-size:13px;padding:4px 0}

/* ---------- Drawer ---------- */
#drawerScrim{position:fixed;inset:0;background:rgba(0,0,0,.45);opacity:0;pointer-events:none;transition:opacity .2s;z-index:20}
#drawerScrim.show{opacity:1;pointer-events:auto}
#drawer{position:fixed;top:0;left:0;bottom:0;width:300px;background:var(--panel);z-index:21;transform:translateX(-105%);transition:transform .22s ease;display:flex;flex-direction:column;box-shadow:var(--shadow)}
#drawer.show{transform:none}
.dw-head{background:linear-gradient(135deg,#2a9df4,#40c4ff);color:#fff;padding:18px 16px;cursor:pointer}
.dw-head .avatar{border:2px solid rgba(255,255,255,.6);margin-bottom:8px}
.dw-head b{display:block;font-size:16px}
.dw-head small{opacity:.85;font-size:13px}
.dw-item{display:flex;align-items:center;gap:14px;padding:12px 18px;border:0;background:none;color:var(--text);font-size:15px;cursor:pointer;text-align:left;width:100%}
.dw-item:hover{background:var(--hover)}
.dw-item .ic{width:24px;text-align:center;font-size:18px}

/* ---------- Modal ---------- */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;z-index:30;padding:12px}
.modal.open{display:flex}
.modal .box{background:var(--panel);border-radius:18px;padding:20px;width:400px;max-height:88vh;overflow-y:auto;box-shadow:var(--shadow);animation:pop .15s ease-out;overscroll-behavior:contain}
.modal h3{margin:0 0 12px}
.modal input[type=text],.modal input:not([type]){width:100%;padding:10px;border:1.5px solid var(--border);border-radius:12px;background:var(--bg);color:var(--text);font-size:14px;outline:none;margin:6px 0}
.modal input:focus{border-color:var(--accent)}
.seg{display:flex;background:var(--bg2);border-radius:12px;padding:3px;margin-bottom:8px}
.seg button{flex:1;border:0;background:none;padding:8px;border-radius:9px;cursor:pointer;color:var(--muted);font-weight:600;font-size:13.5px}
.seg button.on{background:var(--panel);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.chip{background:var(--accent);color:#fff;border-radius:14px;padding:4px 6px 4px 10px;font-size:13px;display:flex;gap:6px;align-items:center}
.chip button{border:0;background:rgba(255,255,255,.25);color:#fff;border-radius:50%;width:18px;height:18px;cursor:pointer;font-size:11px;line-height:1}
.theme-row{display:flex;gap:8px;align-items:center;margin:6px 0}
.theme-row button{flex:0 0 auto}
input[type=color]{width:40px;height:28px;border:0;background:none;padding:0}
.pf-top{display:flex;gap:14px;align-items:center;margin-bottom:10px}
.pf-top .avatar{cursor:pointer}
.hint{font-size:12.5px;color:var(--muted)}
#cList,#cResults,#userResults{max-height:38vh;overflow-y:auto}
#mnav{display:none}
#errToast{position:fixed;left:12px;bottom:70px;max-width:min(420px,90vw);background:#c0392b;color:#fff;font-size:13.5px;padding:10px 14px;border-radius:12px;box-shadow:var(--shadow);z-index:100;display:none}
#errToast.show{display:block;animation:pop .15s ease-out}
#msgToast{position:fixed;left:12px;bottom:130px;max-width:min(360px,90vw);background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:12px;box-shadow:var(--shadow);z-index:99;display:none;padding:10px 14px;cursor:pointer}
#msgToast.show{display:block;animation:pop .15s ease-out}
#msgToast b{display:block;font-size:14px;margin-bottom:2px}
#msgToast span{font-size:13px;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ucount{width:10px;height:10px;border-radius:50%;background:var(--accent);flex-shrink:0;align-self:center}
/* запись голосового */
#recBar{display:none;align-items:center;gap:8px;background:var(--panel);border-top:1px solid var(--border);padding:6px 12px;font-size:14px}
#recBar.show{display:flex}
.rec-dot{width:12px;height:12px;border-radius:50%;background:#e5484d;animation:blink 1s infinite}
.rec-hint{flex:1;color:var(--muted);font-size:13px}
#btnMic.rec{color:#e5484d}
/* вложения: аудио/видео */
.bubble audio{max-width:100%;width:240px;margin:2px 0;display:block}
.vid-wrap{position:relative;margin-bottom:4px;width:280px;max-width:100%}
.vid-wrap video{width:100%;height:auto;max-height:320px;border-radius:8px;display:block;background:#000}
.bubble a.viewable-img{display:block;width:280px;max-width:100%}
.view-expand{position:absolute;top:6px;right:6px;width:32px;height:32px;border-radius:50%;border:0;background:rgba(0,0,0,.55);color:#fff;font-size:15px;cursor:pointer;opacity:0;transition:opacity .15s}
.vid-wrap:hover .view-expand{opacity:1}
a.viewable-img img{cursor:zoom-in;width:100%;height:auto;max-height:320px;object-fit:cover;display:block;border-radius:8px;margin-bottom:4px}
/* полноэкранный просмотр */
#viewer{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:50;display:none;align-items:center;justify-content:center}
#viewer.show{display:flex}
#viewerStage{max-width:92vw;max-height:86vh;display:flex;align-items:center;justify-content:center}
#viewerStage img{max-width:92vw;max-height:86vh;border-radius:8px;object-fit:contain}
#viewerStage video{max-width:92vw;max-height:86vh;border-radius:8px;background:#000;outline:none}
.viewer-btn{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:26px;width:48px;height:48px;border-radius:50%;cursor:pointer;z-index:2}
.viewer-btn:hover{background:rgba(255,255,255,.25)}
#viewerClose{top:14px;right:14px}
#viewerPrev{left:14px;top:50%;transform:translateY(-50%)}
#viewerNext{right:14px;top:50%;transform:translateY(-50%)}
#viewerBar{position:absolute;bottom:14px;left:0;right:0;display:flex;justify-content:center;gap:12px;color:#fff;font-size:13.5px}
#folders{display:flex;gap:4px;padding:0 12px 8px;flex-shrink:0}
#folders button{flex:1;border:0;background:none;padding:6px 4px;border-radius:9px;cursor:pointer;color:var(--muted);font-weight:600;font-size:13px}
#folders button.on{color:var(--accent);background:rgba(42,157,244,.12)}
#archiveBox{flex-shrink:0}
.arch-row{display:flex;gap:10px;align-items:center;padding:8px 12px;border-radius:12px;cursor:pointer;font-weight:600}
.arch-row:hover{background:var(--hover)}
.arch-row .cnt{margin-left:auto;background:var(--bg2);border-radius:10px;padding:1px 8px;font-size:12px;color:var(--muted)}
.chat-item{position:relative}
.c-menu-btn{display:none;position:absolute;right:6px;top:6px;width:26px;height:26px;border-radius:50%;border:0;background:var(--panel);color:var(--muted);cursor:pointer;font-size:14px;box-shadow:0 1px 4px rgba(0,0,0,.15)}
.chat-item:hover .c-menu-btn{display:block}
.c-menu{position:absolute;right:6px;top:34px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);z-index:6;min-width:140px;overflow:hidden}
.c-menu button{display:block;width:100%;border:0;background:none;text-align:left;padding:10px 14px;cursor:pointer;color:var(--text);font-size:14px}
.c-menu button:hover{background:var(--hover)}
.acc-row{display:flex;gap:10px;align-items:center;padding:8px 18px;cursor:pointer}
.acc-row:hover{background:var(--hover)}
.acc-row .nm{font-size:14.5px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acc-x{border:0;background:none;color:var(--muted);cursor:pointer;font-size:14px}
#authAccounts{margin-bottom:6px}
#dwAccounts{border-bottom:1px solid var(--border);padding-bottom:4px;margin-bottom:4px}
.set-row{display:flex;gap:10px;align-items:center;padding:10px 2px;border-bottom:1px solid var(--border)}
.set-row .t{flex:1;min-width:0}
.set-row .t b{display:block;font-size:14.5px}
.set-row .t small{color:var(--muted);font-size:12.5px}
.pill{font-size:11.5px;font-weight:700;border-radius:8px;padding:3px 8px;background:var(--bg2);color:var(--muted)}
.pill.ok{background:rgba(49,196,107,.15);color:#31c46b}
.pill.bad{background:rgba(228,72,77,.15);color:#e5484d}
input[type=range]{flex:1;accent-color:var(--accent)}
#rpBio{font-size:13.5px;color:var(--muted);margin-top:6px;white-space:pre-wrap}
#rpBio:empty{display:none}
.status-online{color:#31c46b !important}
/* кастомные плееры */
.aplayer{display:flex;gap:8px;align-items:center;background:rgba(0,0,0,.07);border-radius:12px;padding:6px 10px;margin:2px 0;min-width:220px;max-width:100%}
.ap-play{width:36px;height:36px;border-radius:50%;border:0;background:var(--accent);color:#fff;font-size:14px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.ap-seek{flex:1;accent-color:var(--accent);min-width:0}
.ap-time{font-size:12px;color:var(--muted);flex-shrink:0;white-space:nowrap}
.vctrl{display:flex;gap:8px;align-items:center;background:rgba(0,0,0,.6);border-radius:10px;padding:6px 10px;margin-top:6px;color:#fff;font-size:13px;width:100%;box-sizing:border-box}
.vctrl button{border:0;background:none;color:#fff;font-size:16px;cursor:pointer;flex-shrink:0;padding:2px 4px}
.vctrl input[type=range]{flex:1;accent-color:#fff;min-width:0}
.vctrl .v-time{flex-shrink:0;white-space:nowrap;font-size:12px}
.peer-box{position:relative;text-align:center}
.up-head .avatar{margin:0 auto 8px;cursor:zoom-in}
.up-head h3{margin:0}
.up-head small{display:block;color:var(--muted);margin-top:2px}
.up-actions{display:flex;gap:8px;margin:12px 0}
#upBio{font-size:13.5px;background:var(--bg2);border-radius:10px;padding:8px 10px;margin:8px 0;white-space:pre-wrap;text-align:left}
#upBio:empty{display:none}
.up-kv{display:flex;justify-content:space-between;gap:10px;padding:7px 2px;border-bottom:1px solid var(--border);font-size:14px;text-align:left}
.up-kv span:last-child{color:var(--muted);flex-shrink:0}
.dot{width:10px;height:10px;border-radius:50%;background:#bbb;display:inline-block;flex-shrink:0}
.dot.on{background:#31c46b}

@media(max-width:1100px){#app{grid-template-columns:300px 1fr}#right{display:none}#right.open{display:flex;position:fixed;top:0;right:0;bottom:0;width:300px;z-index:15;box-shadow:var(--shadow)}}
#toBottom{position:absolute;right:16px;bottom:76px;width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:var(--panel);color:var(--accent);font-size:20px;cursor:pointer;box-shadow:var(--shadow);display:none;z-index:3}
#toBottom.show{display:block;animation:pop .15s ease-out}
main{position:relative}
@media(max-width:900px){
  #app{grid-template-columns:1fr;grid-template-rows:1fr auto}
  aside,main{display:none;height:calc(100vh - 60px);height:calc(100dvh - 60px)}
  #right{display:none !important}
  body[data-mview="chats"] aside{display:flex}
  body[data-mview="chat"] main{display:flex}
  #btnBack{display:flex}
  #btnInfo{display:none}
  #mnav{display:flex;gap:4px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--panel);grid-column:1}
  #mnav button{flex:1;padding:10px;font-size:14px;border:0;background:none;color:var(--muted);font-weight:600;border-radius:10px}
  #mnav button.on{color:var(--accent);background:rgba(42,157,244,.12)}
  .bubble{max-width:82%}
  .modal .box{width:94vw}
  #emojiPop{grid-template-columns:repeat(7,32px)}
  .auth-card{width:min(360px,100%)}
  #drawer{width:min(300px,85vw)}
  #text,.search-wrap input,.modal input{font-size:16px}
  #composer{padding:5px 6px calc(5px + env(safe-area-inset-bottom))}
  .compose-box{padding:2px 4px;border-radius:12px}
  #toBottom{bottom:calc(76px + env(safe-area-inset-bottom))}
}
