

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#f7f7f5;--surface:#fff;--surface2:#f2f2ef;--border:#e8e8e4;--border2:#d0d0cc;
  --text:#111110;--text2:#6b6b68;--text3:#a0a09c;
  --accent:#111110;--accent-inv:#fff;--green:#16a34a;--red:#dc2626;
  --ava-bg:#111110;--ava-fg:#fff;
  --radius:14px;--radius-sm:9px;
  --shadow:0 1px 4px rgba(0,0,0,.06),0 4px 16px rgba(0,0,0,.04);
}
[data-theme=dark]{
  --bg:#0e0e0d;--surface:#161615;--surface2:#1e1e1c;--border:#2a2a27;--border2:#3a3a36;
  --text:#f0f0ed;--text2:#8a8a86;--text3:#555552;
  --accent:#f0f0ed;--accent-inv:#161615;--ava-bg:#f0f0ed;--ava-fg:#161615;
  --shadow:0 1px 4px rgba(0,0,0,.4),0 4px 16px rgba(0,0,0,.3);
}
html,body{height:100%;overflow:hidden;font-family:'Geologica',sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
/* Hide all scrollbars globally but keep scroll functionality */
*{scrollbar-width:none;-ms-overflow-style:none;}
*::-webkit-scrollbar{display:none;width:0;height:0;}
/* Smooth scrolling everywhere */
.carea,.sidebar,.upage-back,.dm-conv-scroll,.dm-msgs,.prof-box,.nmbox,.pm-back,.share-modal-contacts,#aiChatMessages{
  -webkit-overflow-scrolling:touch;
  scroll-behavior:smooth;
}
body{display:flex;flex-direction:column}

/* HEADER */
header{background:var(--surface);border-bottom:none;padding:0 18px;height:54px;display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:200;flex-shrink:0}
/* ИИ-логотип: серый вектор */
.ai-logo,.ai-logo path{fill:currentColor!important;stroke:none!important}
#mn-ai svg.ai-logo{width:25px;height:25px}
#si-ai .sico svg.ai-logo{width:14px;height:14px}
.logo{display:flex;align-items:center;gap:9px;font-size:18px;font-weight:800;color:var(--text);text-decoration:none;letter-spacing:-.3px;flex-shrink:0;cursor:pointer}
.logo img{width:32px;height:32px;border-radius:8px}
.swrap{flex:1;max-width:400px;position:relative}
.swrap>svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--text3);pointer-events:none}
.swrap input{width:100%;height:36px;padding:0 14px 0 36px;border:1px solid var(--border);border-radius:10px;font-size:13.5px;font-family:'Geologica',sans-serif;font-weight:500;background:var(--surface2);color:var(--text);outline:none;transition:border-color .15s}
.swrap input:focus{border-color:var(--border2);background:var(--surface)}
.hright{display:flex;align-items:center;gap:8px;margin-left:auto}
.ibtn{width:36px;height:36px;border-radius:9px;border:1px solid var(--border);background:var(--surface2);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;flex-shrink:0}
.ibtn:hover{background:var(--border2)}
@media(hover:none){.ibtn:hover{background:var(--surface2)}}
.ibtn:focus,.ibtn:focus-visible{outline:none;box-shadow:none}
.ibtn svg{width:17px;height:17px;stroke:var(--text);fill:none;stroke-width:1.8}
.user-chip{display:flex;align-items:center;gap:7px;padding:4px 10px 4px 7px;border-radius:20px;border:1px solid var(--border);background:var(--surface2);cursor:pointer;transition:all .15s;font-size:13px;font-weight:600;color:var(--text2)}
.user-chip:hover{background:var(--border);color:var(--text)}
.user-ava{width:24px;height:24px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0}

/* LAYOUT */
main{flex:1;overflow:hidden;display:flex}

/* SIDEBAR */
.sidebar{width:210px;flex-shrink:0;background:var(--surface);border-right:none;overflow-y:auto;padding:14px 10px;display:flex;flex-direction:column;gap:3px}
.sidebar{transition:width .2s ease}
.sb-toggle{display:flex;align-items:center;justify-content:flex-start;gap:0;margin:0 0 4px;padding:7px 9px;flex-shrink:0;border-radius:9px;font-size:13px;font-weight:600;color:var(--text3);cursor:pointer;border:1px solid transparent;background:none;font-family:'Geologica',sans-serif;width:100%;text-align:left;transition:all .15s}
.sb-toggle{gap:10px}
.sidebar.collapsed .sb-toggle .sb-toggle-t{display:none}
.sb-toggle:hover{background:var(--surface2);color:var(--text)}
.sb-toggle .sico{width:22px;height:22px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sb-toggle svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}
.sidebar.collapsed{width:62px;padding:14px 8px;align-items:center}
.sidebar.collapsed .slabel{font-size:0;padding:0;margin:8px 0 4px;height:1px;width:26px;background:var(--border)}
.sidebar.collapsed .slabel:first-child,.sidebar.collapsed .sb-toggle+.slabel{display:none}
.sidebar.collapsed .sitem,.sidebar.collapsed .sb-toggle{font-size:0;gap:0;justify-content:center;padding:7px 0;position:relative}
.sidebar.collapsed .sitem>span{position:absolute;top:0;right:4px;margin:0!important;min-width:16px!important;height:16px!important;font-size:10px!important}
.sidebar.collapsed .sb-toggle svg{transform:rotate(180deg)}
.ai-full-btn{display:none}
@media(min-width:861px){
  .ai-full-btn{display:flex}
  header{transition:height .38s cubic-bezier(.4,0,.2,1),opacity .28s ease}
  .sidebar{transition:width .38s cubic-bezier(.4,0,.2,1),padding .38s cubic-bezier(.4,0,.2,1),opacity .28s ease}
  body.ai-full header{height:0;opacity:0;overflow:hidden;pointer-events:none}
  body.ai-full .sidebar{width:0!important;padding-left:0;padding-right:0;opacity:0;overflow:hidden;pointer-events:none}
  body.ai-full .cinner{max-width:none}
}
.slabel{font-size:10.5px;font-weight:700;color:var(--text3);letter-spacing:.8px;text-transform:uppercase;padding:4px 8px;margin-top:10px}
.slabel:first-child,.sb-toggle+.slabel{margin-top:0}
.sitem{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:9px;font-size:13px;font-weight:600;color:var(--text2);cursor:pointer;transition:all .15s;text-decoration:none;border:1px solid transparent;background:none;font-family:'Geologica',sans-serif;width:100%;text-align:left}
.sitem:hover{background:var(--surface2);color:var(--text)}
.sitem.active{background:var(--surface2);color:var(--text);border-color:var(--border)}
.sitem img{width:22px;height:22px;border-radius:6px;flex-shrink:0}
.sitem .sico{width:22px;height:22px;border-radius:6px;background:var(--surface2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sitem .sico svg{width:12px;height:12px;stroke:var(--text2);fill:none;stroke-width:2}
.sitem .sico svg.sb-fill{fill:var(--text2);stroke:none}
.sitem.active .sico svg.sb-fill{fill:var(--text)}

/* CONTENT */
.carea{flex:1;overflow-y:auto;background:var(--bg);-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}
.cinner{max-width:1140px;margin:0 auto;padding:22px 18px}

/* TABS */
.tpane{display:none}.tpane.active{display:block;position:relative}

/* мягкая фоновая сетка + "прожектор" за курсором (лента и чат - включая каналы, группы и «Избранное», т.к. все они рендерятся через один и тот же #dmChat) */
#tab-home>.pgrid{position:relative;z-index:1}
#dmChat>#dmPlaceholder,#dmChat>#dmOpenChat{position:relative;z-index:1}

/* PORTAL GRID */
.pgrid{display:grid;grid-template-columns:1fr 310px;gap:18px;align-items:start}

/* CARD */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.card-head{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px}
.card-title{font-size:14.5px;font-weight:800;color:var(--text);letter-spacing:-.2px}
.card-act{font-size:12px;font-weight:600;color:var(--text2);text-decoration:none;padding:4px 10px;border-radius:7px;background:var(--surface2);border:1px solid var(--border);transition:all .15s;cursor:pointer;font-family:'Geologica',sans-serif;white-space:nowrap}
.card-act:hover{color:var(--text);border-color:var(--border2)}

/* NEWS */
.ntabs{display:flex;gap:2px}
.ntab{font-size:12px;font-weight:600;color:var(--text3);padding:4px 10px;border-radius:7px;cursor:pointer;transition:all .15s;background:none;border:1px solid transparent;font-family:'Geologica',sans-serif}
.ntab:hover{color:var(--text2);background:var(--surface2)}
.ntab.active{color:var(--text);background:var(--surface2);border-color:var(--border)}
/* кнопка «Посты» на главной убрана */
#homeModeTabs{display:none!important}
.nlist{padding:4px 0}
.nitem{display:flex;gap:12px;padding:13px 18px;cursor:pointer;transition:background .12s;border-top:1px solid var(--border)}
.nitem:first-child{border-top:none}
.nitem:hover{background:var(--surface2)}
.nimg{width:90px;height:60px;border-radius:9px;object-fit:cover;flex-shrink:0;background:var(--surface2)}
.nbody{flex:1;min-width:0}
.ntitle{font-size:14px;font-weight:700;line-height:1.4;color:var(--text);margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ndesc{font-size:12.5px;color:var(--text2);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:6px}
.nmeta{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--text3)}
.nsrc{font-weight:700;color:var(--text2)}
.news-loading{padding:24px;text-align:center;color:var(--text3);font-size:13px;font-weight:500}

/* RIGHT COL */
.rcol{display:flex;flex-direction:column;gap:14px}
.plus-promo{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px 18px;font-family:'Geologica',sans-serif}
.plus-promo-t{font-size:18px;font-weight:800;line-height:1.2;color:var(--text);margin-bottom:8px;letter-spacing:-.2px}
.plus-promo-d{font-size:13.5px;font-weight:600;line-height:1.45;color:var(--text2);margin-bottom:14px}
.plus-promo-btn{height:36px;padding:0 20px;border:none;border-radius:999px;background:var(--accent);color:var(--accent-inv);font-size:13.5px;font-weight:800;font-family:'Geologica',sans-serif;cursor:pointer;transition:opacity .15s}
.plus-promo-btn:hover{opacity:.88}
@media(max-width:1024px){.plus-promo{display:none!important}}

/* WEATHER */
.wbody{padding:18px}
.wtop{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.wtemp{font-size:50px;font-weight:800;line-height:1;letter-spacing:-2px}
.wemoji{width:44px;height:44px;line-height:0;color:var(--text)}
.wcity{font-size:12.5px;font-weight:600;color:var(--text2);margin-bottom:3px}
.wdesc{font-size:13.5px;font-weight:600;color:var(--text);margin-bottom:14px}
.wgrid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.wcell{background:var(--surface2);border:1px solid var(--border);border-radius:9px;padding:9px 11px}
.wclbl{font-size:10.5px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px}
.wcval{font-size:13.5px;font-weight:700;color:var(--text)}
.wloc-btn{width:100%;margin-top:12px;height:36px;background:var(--surface2);border:1px solid var(--border);border-radius:9px;font-size:12.5px;font-weight:700;color:var(--text2);cursor:pointer;font-family:'Geologica',sans-serif;transition:all .15s}
.wloc-btn:hover{background:var(--border);color:var(--text)}

/* CURRENCY */
.cbody{padding:2px 0}
.crow{display:flex;align-items:center;justify-content:space-between;padding:11px 18px;transition:background .12s;border-top:1px solid var(--border)}
.crow:first-child{border-top:none}
.crow:hover{background:var(--surface2)}
.cleft{display:flex;align-items:center;gap:9px}
.cflag{width:26px;height:18px;border-radius:4px;object-fit:cover;border:1px solid var(--border)}
.cname{font-size:13px;font-weight:700;color:var(--text)}
.cfull{font-size:11px;color:var(--text3);font-weight:500}
.cright{text-align:right}
.cval{font-size:13.5px;font-weight:700;color:var(--text);font-family:'JetBrains Mono',monospace}
.cchg{font-size:11px;font-weight:600}
.up{color:var(--green)}.dn{color:var(--red)}
.cupd{padding:8px 18px;font-size:11px;color:var(--text3);font-weight:500}

/* SHORTENER WIDGET */
.shbody{padding:14px}
.shauto{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text2);font-weight:500;margin-bottom:9px;cursor:pointer}
.shauto input{accent-color:var(--accent);width:14px;height:14px;cursor:pointer}
.shrow{display:flex;gap:7px;margin-bottom:8px}
.shinput{flex:1;height:36px;padding:0 11px;border:1px solid var(--border);border-radius:9px;font-size:13px;font-family:'Geologica',sans-serif;font-weight:500;background:var(--surface2);color:var(--text);outline:none;min-width:0;transition:border-color .15s}
.shinput:focus{border-color:var(--border2);background:var(--surface)}
.shbtn{height:36px;padding:0 14px;background:var(--accent);color:var(--accent-inv);border:none;border-radius:9px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:'Geologica',sans-serif;transition:opacity .15s;white-space:nowrap;flex-shrink:0}
.shbtn:hover{opacity:.85}.shbtn:disabled{opacity:.4;cursor:default}
.shres{display:none;background:var(--surface2);border:1px solid var(--border);border-radius:9px;padding:9px 11px;align-items:center;gap:7px}
.shres.show{display:flex}
.shresu{flex:1;font-size:12.5px;font-weight:700;color:var(--text);font-family:'JetBrains Mono',monospace;word-break:break-all;min-width:0}
.shcpy{height:28px;padding:0 11px;background:var(--accent);color:var(--accent-inv);border:none;border-radius:7px;font-size:12px;font-weight:700;cursor:pointer;font-family:'Geologica',sans-serif;transition:all .15s;flex-shrink:0}
.shcpy.copied{background:var(--green)}

/* SHORTENER PAGE */
.spage{max-width:620px;margin:0 auto;padding:28px 0}
.ptitle{font-size:26px;font-weight:800;letter-spacing:-.5px;color:var(--text);margin-bottom:5px}
.psub{font-size:14.5px;color:var(--text2);margin-bottom:24px;font-weight:500}
.bcard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px;margin-bottom:12px}
.flbl{font-size:11.5px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.6px;margin-bottom:7px}
.binp{width:100%;height:44px;padding:0 13px;border:1.5px solid var(--border);border-radius:10px;font-size:14.5px;font-family:'Geologica',sans-serif;font-weight:500;background:var(--surface2);color:var(--text);outline:none;transition:border-color .15s;margin-bottom:12px}
.binp:focus{border-color:var(--text);background:var(--surface)}
.bauto{display:flex;align-items:center;gap:9px;padding:11px 13px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;cursor:pointer;margin-bottom:14px}
.bauto input{accent-color:var(--accent);width:15px;height:15px;cursor:pointer;flex-shrink:0}
.bauto .batxt{display:flex;flex-direction:column}
.bauto .batxt b{font-size:13px;font-weight:700;color:var(--text)}
.bauto .batxt span{font-size:11.5px;color:var(--text2)}
.bbtn{width:100%;height:46px;background:var(--accent);color:var(--accent-inv);border:none;border-radius:10px;font-size:14.5px;font-weight:700;cursor:pointer;font-family:'Geologica',sans-serif;transition:opacity .15s;letter-spacing:-.2px}
.bbtn:hover{opacity:.85}.bbtn:disabled{opacity:.4;cursor:default}
.rcard{display:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:12px}
.rcard.show{display:block}
.rtop{padding:16px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px}
.rurl{font-size:16px;font-weight:800;font-family:'JetBrains Mono',monospace;color:var(--text);word-break:break-all}
.rcpy{height:34px;padding:0 14px;background:var(--accent);color:var(--accent-inv);border:none;border-radius:8px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:'Geologica',sans-serif;transition:all .15s;flex-shrink:0}
.rcpy.copied{background:var(--green)}
.rinfo{padding:13px 18px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rilbl{font-size:10px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.6px;margin-bottom:3px}
.rival{font-size:12.5px;font-weight:600;color:var(--text2);word-break:break-all}
.racts{padding:0 18px 14px;display:flex;gap:7px}
.rabtn{flex:1;height:38px;border-radius:9px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:'Geologica',sans-serif;transition:all .15s;border:1px solid var(--border)}
.rabtn.pr{background:var(--accent);color:var(--accent-inv);border-color:var(--accent)}
.rabtn.sc{background:var(--surface2);color:var(--text)}
.rabtn:hover{opacity:.85}

/* MY LINKS */
.links-table{width:100%;border-collapse:collapse}
.links-table th{font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.6px;padding:10px 14px;border-bottom:1px solid var(--border);text-align:left}
.links-table td{padding:11px 14px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}
.links-table tr:last-child td{border-bottom:none}
.links-table tr:hover td{background:var(--surface2)}
.lt-short{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:13px;color:var(--text)}
.lt-orig{color:var(--text2);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lt-clicks{font-weight:700;color:var(--text)}
.lt-del{background:none;border:1px solid var(--border);border-radius:7px;padding:4px 10px;font-size:12px;font-weight:600;color:var(--red);cursor:pointer;font-family:'Geologica',sans-serif;transition:all .15s}
.lt-del:hover{background:var(--red);color:#fff;border-color:var(--red)}
.empty-state{padding:36px;text-align:center;color:var(--text3);font-size:14px;font-weight:500}

/* ═══ LOWMAIL ═══ */
body.mail-tab .carea{overflow:hidden;display:flex;flex-direction:column}
body.mail-tab .cinner{flex:1;min-height:0;width:100%;max-width:none;padding:0!important;display:flex;flex-direction:column;background:transparent}
body.mail-tab #tab-mail.active{display:flex;flex:1;min-height:0}
.mail-app{position:relative;display:flex;flex-direction:column;flex:1;min-height:0;width:100%;background:var(--bg);overflow:hidden}
.mail-main{flex:1;min-height:0;display:flex;flex-direction:column;width:100%;max-width:860px;margin:0 auto}
.mail-top{display:flex;align-items:center;gap:8px;padding:12px 14px 6px;flex:none}
.mail-burger{width:44px;height:44px;border-radius:50%;border:none;background:none;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;flex:none;padding:0;transition:background .15s}
.mail-burger:hover{background:var(--surface2)}
.mail-burger svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.mail-sw{flex:1;min-width:0;position:relative}
.mail-sw>svg{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--text3);pointer-events:none;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.mail-search{display:block;width:100%;min-width:0;height:38px;box-sizing:border-box;padding:0 16px 0 40px;border-radius:999px;border:none;background:var(--surface2);color:var(--text);font-family:inherit;font-size:calc(13px*var(--fs,1));font-weight:500;outline:none;text-align:left;-webkit-appearance:none;appearance:none}
.mail-search::placeholder{color:var(--text2)}
.mail-search:focus{background:var(--surface2)}
.mail-sel{display:none;align-items:center;gap:4px;padding:12px 14px 6px;flex:none;height:48px;box-sizing:content-box}
.mail-sel-n{flex:1;font-size:15px;font-weight:700;color:var(--text);padding-left:6px}
.mail-app.selecting .mail-top{display:none}
.mail-app.selecting .mail-sel{display:flex}
.mail-ib{width:42px;height:42px;border-radius:50%;border:none;background:none;color:var(--text2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;flex:none;transition:background .15s,color .15s}
.mail-ib svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.mail-ib:hover{background:var(--surface2);color:var(--text)}
.mail-ib.on{color:#f59e0b}.mail-ib.on svg{fill:currentColor}
.mail-fl{font-size:calc(13px*var(--fs,1));font-weight:700;color:var(--text);padding:14px 22px 10px;flex:none}
.mail-scroll{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 12px 96px;display:flex;flex-direction:column;gap:4px}
.mail-row{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:18px;background:var(--surface);cursor:pointer;transition:background .12s;flex:none}
.mail-row:hover{background:var(--surface2)}
.mail-row.lp-focus{visibility:hidden}
.rx-menu.mail-lp-menu{min-width:190px;border-radius:14px}
.rx-menu.mail-lp-menu button{padding:9px 14px;gap:10px;font-size:calc(13.5px*var(--fs,1));font-weight:600}
.rx-menu.mail-lp-menu button svg{width:17px;height:17px}
.lp-clone.mail-lp-clone{background:var(--surface);border-radius:18px;box-sizing:border-box}
.mail-row.sel{background:var(--surface2);box-shadow:inset 0 0 0 1.5px var(--text3)}
.mail-ava{flex:none;width:40px;height:40px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;text-transform:uppercase;border:none;padding:0;font-family:inherit;cursor:pointer}
.mail-ava svg{width:19px;height:19px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.mail-ava{overflow:hidden}
.mail-ava img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;pointer-events:none}
.mail-ava.ava-i{background:var(--surface2)}
.mail-ava.ava-logo{background:transparent;border-radius:0;overflow:visible}
.mail-ava.ava-logo img{object-fit:contain;border-radius:0}
.mail-ava.ava-u{background:color-mix(in srgb,var(--ct-solid,var(--accent)) 10%,var(--surface2));color:var(--ct-solid,var(--accent))}
.mail-body{flex:1;min-width:0}
.mail-l1{display:flex;gap:10px;align-items:center}
.mail-from{flex:1;min-width:0;font-size:calc(13px*var(--fs,1));font-weight:500;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-time{flex:none;font-size:calc(10.5px*var(--fs,1));color:var(--text3);font-weight:500}
.mail-dot{flex:none;width:10px;height:10px;border-radius:50%;background:#a5b4fc}
.mail-l2{display:flex;gap:8px;align-items:flex-end}
.mail-txt{flex:1;min-width:0}
.mail-subj{font-size:calc(13px*var(--fs,1));font-weight:500;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}
.mail-prev{font-size:calc(11.5px*var(--fs,1));color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-weight:400}
.mail-row.unread .mail-from{color:var(--text);font-weight:700}
.mail-row.unread .mail-time{color:var(--text);font-weight:700}
.mail-row.unread .mail-subj{color:var(--text);font-weight:700}
.mail-star{flex:none;width:38px;height:38px;border:none;background:none;color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:50%;padding:0;margin:0 -6px -4px 0}
.mail-star svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.mail-star.on{color:#f59e0b}.mail-star.on svg{fill:currentColor}
.mail-tag{display:inline-block;font-size:9px;font-weight:800;letter-spacing:.4px;padding:2px 6px;border-radius:6px;background:var(--surface2);color:var(--text2);margin-left:7px;vertical-align:1px;text-transform:uppercase}
.mail-row:hover .mail-tag{background:var(--border)}
.mail-tag.bad{color:var(--red)}
.mail-empty{padding:80px 20px;text-align:center;color:var(--text3);font-size:13px;font-weight:600}
.mail-empty svg{display:block;margin:0 auto 12px;width:44px;height:44px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;opacity:.55}
/* плавающая кнопка «Написать» - как в Gmail */
.mail-fab{position:absolute;right:max(16px,calc((100% - 860px)/2 + 16px));bottom:8px;z-index:5;display:flex;align-items:center;gap:8px;height:42px;padding:0 16px 0 13px;border:none;border-radius:14px;background:var(--accent);color:var(--accent-inv);font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;box-shadow:0 4px 16px rgba(0,0,0,.3);transition:transform .12s,opacity .15s}
.mail-fab:active{transform:scale(.96)}
.mail-fab svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mail-app.reading .mail-fab{display:none}
/* меню папок (бургер) */
#mailMenuBack{position:fixed;inset:0;z-index:600;background:rgba(0,0,0,.45);opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}
#mailMenuBack.show{opacity:1;visibility:visible}
.mail-drawer{position:absolute;top:0;left:0;bottom:0;width:75%;background:var(--surface);display:flex;flex-direction:column;transform:translateX(-100%);transition:transform .28s cubic-bezier(.3,.8,.3,1);box-shadow:4px 0 24px rgba(0,0,0,.25);padding:calc(18px + env(safe-area-inset-top)) 10px calc(20px + env(safe-area-inset-bottom));overflow-y:auto;box-sizing:border-box}
#mailMenuBack.show .mail-drawer{transform:translateX(0)}
@media(min-width:861px){.mail-drawer{width:25%;min-width:320px;max-width:440px}}
.mail-dr-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 6px 10px 0}
.mail-dr-t{font-size:20px;font-weight:800;letter-spacing:-.4px;color:var(--text);padding:6px 14px 6px}
#mailNewBack{position:fixed;inset:0;z-index:9000;background:var(--bg);display:flex;align-items:stretch;justify-content:stretch;padding:0;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}
#mailNewBack.show{opacity:1;visibility:visible}
.mail-new{width:100%;height:100%;background:var(--bg);border-radius:0;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);box-sizing:border-box;display:flex;flex-direction:column;overflow-y:auto;transform:translateY(10px);transition:transform .2s}
#mailNewBack.show .mail-new{transform:none}
.mail-new-h{display:flex;align-items:center;justify-content:space-between;height:60px;padding:0 14px;flex:none}
.mail-new-t{font-size:17px;font-weight:800;color:var(--text)}
.mail-new-x{width:42px;height:42px;border:none;background:none;color:var(--text);font-size:28px;line-height:1;cursor:pointer;border-radius:0}
.mail-new-x:hover{background:var(--surface2)}
.mail-new-s{font-size:13px;color:var(--text2);font-weight:500;line-height:1.45;margin-bottom:20px}
.mail-new-body{width:100%;max-width:520px;margin:0 auto;padding:8px 18px 24px;box-sizing:border-box}
@media(min-width:861px){
#mailNewBack{align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.mail-new{max-width:400px;height:auto;max-height:90vh;border-radius:20px;background:var(--surface);padding:0 0 6px}
.mail-new-h{height:56px}
.mail-new-body{padding:0 18px 18px}
}
.mail-new-note{margin-top:14px;font-size:11.5px;line-height:1.45;color:var(--text3);font-weight:500}
.mail-new-row{display:flex;align-items:center;background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:0 14px;height:46px}
.mail-new-row input{flex:1;min-width:0;border:none;background:none;outline:none;color:var(--text);font-family:inherit;font-size:14px;font-weight:600;height:100%}
.mail-new-row span{flex:none;color:var(--text3);font-size:14px;font-weight:600}
.mail-new-price{display:flex;align-items:center;justify-content:space-between;margin:16px 2px 14px;font-size:13px;font-weight:600;color:var(--text2)}
.mail-new-price b{font-size:18px;font-weight:800;color:var(--text)}
.mail-new-pay{width:100%;height:46px;border:none;border-radius:12px;background:var(--accent);color:var(--accent-inv);font-family:inherit;font-size:14px;font-weight:700;cursor:pointer}
.mail-new-pay:active{opacity:.85}
.mail-folders{display:flex;flex-direction:column;gap:3px}
.mail-fold{display:flex;align-items:center;gap:14px;padding:0 14px;height:46px;border:none;border-radius:12px;background:none;color:var(--text);font-family:inherit;font-size:15px;font-weight:700;cursor:pointer;text-align:left;flex:none;transition:background .15s,color .15s}
.mail-fold svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.mail-fold:hover{background:var(--surface2);color:var(--text)}
.mail-fold.on{background:var(--surface2);color:var(--text);font-weight:700}
.mail-fold b{margin-left:auto;font-size:12px;font-weight:700;color:var(--text2)}
.mail-plus{margin:16px 6px 0;padding:14px 14px 14px;border-radius:16px;background:var(--surface2);border:1px solid var(--border);flex:none}
.mail-plus-t{font-size:15px;font-weight:800;color:var(--text);margin-bottom:4px}
.mail-plus-d{font-size:12.5px;font-weight:500;line-height:1.45;color:var(--text2);margin-bottom:12px}
.mail-plus-btn{width:100%;height:40px;border:none;border-radius:12px;background:var(--accent);color:var(--accent-inv);font-family:inherit;font-size:13.5px;font-weight:800;cursor:pointer;transition:opacity .15s}
.mail-plus-btn:hover{opacity:.88}
.mail-bottom{margin-top:auto;display:flex;flex-direction:column;flex:none}
.mail-store{padding:18px 16px 0}
.mail-store-t{font-size:10.5px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--text3);margin-bottom:9px}
.mail-store-bar{height:6px;border-radius:3px;background:var(--surface2);overflow:hidden}
.mail-store-bar i{display:block;height:100%;background:var(--text);border-radius:3px;min-width:3px}
.mail-store-n{font-size:11.5px;color:var(--text3);font-weight:500;margin-top:7px}
.mail-addr{margin:14px 16px 0;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--text3);cursor:pointer;word-break:break-all}
.mail-addr:hover{color:var(--text)}
/* чтение письма - как в Gmail */
.mail-read{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--surface);border-radius:20px;margin:8px 12px 12px}
.mail-read-bar{display:flex;gap:2px;align-items:center;padding:10px 10px 4px;flex:none}
.mail-read-bar .sp{flex:1}
.mail-read-sc{flex:1;min-height:0;overflow-y:auto;padding:8px 22px 40px}
.mail-read-subjrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0 20px}
.mail-read-subj{font-size:18px;font-weight:700;letter-spacing:-.3px;color:var(--text);word-break:break-word;line-height:1.3}
.mail-chip{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:7px;background:var(--surface2);color:var(--text2);font-size:11px;font-weight:700}
.mail-read-head{display:flex;gap:14px;align-items:flex-start}
.mail-read-head .mail-ava{cursor:default}
.mail-read-who{flex:1;min-width:0}
.mail-read-name{font-size:13px;font-weight:700;color:var(--text)}
.mail-read-name span{font-weight:500;color:var(--text3);font-size:11.5px;margin-left:6px;word-break:break-all}
.mail-read-to{font-size:11.5px;color:var(--text3);font-weight:500;margin-top:2px;word-break:break-all}
.mail-read-date{flex:none;display:flex;align-items:center;gap:0;font-size:11px;color:var(--text3);font-weight:600}
.mail-read-body{font-size:calc(14px*var(--fs,1));line-height:1.65;color:var(--text);white-space:pre-wrap;word-break:break-word;margin-top:22px}
.mail-read-foot{display:flex;gap:10px;margin-top:34px;flex-wrap:wrap}
.mail-pill{height:42px;padding:0 22px;border-radius:999px;border:none;background:var(--surface2);color:var(--text);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:9px;transition:background .15s}
.mail-pill:hover{background:var(--border)}
.mail-pill svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.mail-failed{margin-top:14px;padding:10px 14px;border-radius:12px;background:var(--surface2);color:var(--red);font-size:12px;font-weight:600}
/* окно «Написать» - на весь экран */
.mail-comp{position:fixed;inset:0;z-index:700;background:var(--bg);display:none;flex-direction:column}
.mail-comp.show{display:flex}
.mail-comp-win{display:flex;flex-direction:column;flex:1;min-height:0;width:100%}
@media(min-width:861px){
.mail-comp{align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.mail-comp-win{flex:none;max-width:640px;height:auto;max-height:88vh;background:var(--bg);border:1px solid var(--border);border-radius:14px;overflow:hidden}
.mail-comp-win .mail-body-inp{min-height:240px}
}
.mail-comp-bar{display:flex;align-items:center;gap:10px;height:60px;padding:0 14px;flex:none}
.mail-comp-x{width:42px;height:42px;border-radius:0;border:none;background:none;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;flex:none}
.mail-comp-x:hover{background:var(--surface2)}
.mail-comp-x svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.mail-comp-t{flex:1;font-size:15px;font-weight:700;letter-spacing:-.2px;color:var(--text)}
.mail-send{width:42px;height:42px;padding:0;border:none;border-radius:0;background:none;color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .15s}
.mail-send:hover{opacity:.85}
.mail-send span{display:none}
.mail-send svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mail-send[disabled]{opacity:.35;pointer-events:none}
.mail-comp-sc{flex:1;min-height:0;overflow-y:auto;padding:0;display:flex}
.mail-comp-in{flex:1;width:100%;max-width:860px;margin:0 auto;padding:0 4px 20px;display:flex;flex-direction:column;gap:0;box-sizing:border-box;background:transparent;border-radius:0}
.mail-frow{display:flex;align-items:center;gap:10px;background:none;border:none;border-radius:0;padding:0 12px}
.mail-frow label{width:48px;flex:none;font-size:11.5px;font-weight:700;color:var(--text3)}
.mail-frow input{flex:1;min-width:0;height:46px;border:none;background:none;border-radius:0;color:var(--text);font-family:inherit;font-size:14px;font-weight:400;outline:none}
.mail-body-inp{flex:1;min-height:260px;width:100%;box-sizing:border-box;border:none;border-radius:0;background:none;resize:none;outline:none;color:var(--text);font-family:inherit;font-size:calc(14px*var(--fs,1));line-height:1.5;padding:14px 12px;display:block}
.mail-err{font-size:12px;color:var(--red);font-weight:700;padding:0 12px}
.si-mail-badge{margin-left:auto;min-width:18px;height:18px;border-radius:9px;background:#dc2626;color:#fff;font-size:11px;font-weight:800;align-items:center;justify-content:center;padding:0 5px}
@media(max-width:860px){
  .mail-fab{right:16px;bottom:8px}
  .mail-scroll{padding-bottom:70px}
  .mail-read-sc{padding:8px 16px 90px}
  .mail-read-subj{font-size:17px}
  .mail-read{margin:6px 8px 62px}
  .mail-read-date .when{display:none}
}
.mail-soon{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:70px 24px;gap:14px}
.mail-soon-ico{width:64px;height:64px;border-radius:18px;background:var(--surface2);border:1px solid var(--border);color:var(--text3);display:flex;align-items:center;justify-content:center}
.mail-soon-ico svg{width:30px;height:30px}
.mail-soon-title{font-size:19px;font-weight:800;color:var(--text);letter-spacing:-.3px}
.mail-soon-text{font-size:13.5px;color:var(--text2);font-weight:500}

/* ── MUSIC ── */
.music-wrap{display:flex;gap:16px;align-items:flex-start}
.music-side{flex:0 0 220px;min-width:0}
.music-main{flex:1;min-width:0}
.music-pl-item{display:flex;align-items:center;gap:8px;padding:9px 11px;border-radius:10px;cursor:pointer;font-size:13px;font-weight:700;color:var(--text2);transition:all .15s}
.music-pl-item:hover{background:var(--surface2)}
.music-pl-item.active{background:var(--surface2);color:var(--text)}
.music-pl-item svg{width:15px;height:15px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.8}
.music-pl-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.music-pl-count{font-size:11px;color:var(--text3);font-weight:700;flex-shrink:0}
.music-track-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s}
.music-track-row:last-child{border-bottom:none}
.music-track-row:hover{background:var(--surface2)}
.music-track-row.playing{background:var(--surface2)}
.music-track-ico{width:42px;height:42px;border-radius:9px;background:var(--surface2);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text)}
.music-track-row.playing .music-track-ico{color:var(--accent)}
.music-track-ico svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.music-track-ico svg.filled{fill:currentColor;stroke:none}
.music-track-ico.has-cover{position:relative;overflow:hidden;background:var(--surface2)}
.music-track-ico.has-cover img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}
.music-track-ico.has-cover .mt-ov{position:absolute;top:0;left:0;width:100%;height:100%;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.5);color:#fff}
.music-track-row:hover .has-cover .mt-ov,.music-track-row.playing .has-cover .mt-ov{display:flex}
.music-track-row.playing .music-track-ico.has-cover{color:#fff}
.music-track-info{flex:1;min-width:0}
.music-track-title{font-size:13.5px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.music-track-artist{font-size:12px;color:var(--text3);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.music-track-actions{display:flex;gap:4px;flex-shrink:0}
.music-track-actions button{width:28px;height:28px;border-radius:8px;border:none;background:none;color:var(--text3);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.music-track-actions button:hover{background:var(--surface2);color:var(--text)}
.music-track-actions svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8}
.music-upload-input{display:none}

/* POSTS */
.posts-feed{display:flex;flex-direction:column;gap:0}
.post-card{background:var(--surface);transition:background .12s}
.feed-card{background:transparent;border:none;border-radius:0;overflow:visible}
.feed-card .card-head{border-bottom:none}
.feed-card .post-card,.feed-card .compose-box{background:transparent}
@media(hover:hover){.feed-card .post-card:hover{background:var(--surface2)}}
.post-card{position:relative;touch-action:manipulation}
.post-dbl-heart{position:absolute;width:96px;height:96px;margin:-48px 0 0 -48px;pointer-events:none;z-index:6;color:#ff3b5c;filter:drop-shadow(0 4px 14px rgba(0,0,0,.45));animation:postDblHeart .85s cubic-bezier(.2,.8,.3,1) forwards}
.post-dbl-heart svg{width:100%;height:100%;display:block}
@keyframes postDblHeart{0%{opacity:0;transform:scale(.2) rotate(-12deg)}18%{opacity:1;transform:scale(1.25) rotate(4deg)}34%{transform:scale(.95) rotate(0)}60%{opacity:1;transform:scale(1.05)}100%{opacity:0;transform:scale(1.15) translateY(-40px)}}

#tab-wallet .card{background:transparent;border:none;border-radius:0;overflow:visible}
#tab-wallet .card-head{border-bottom:none;padding-left:16px}
#tab-settings .prof-notif{border-top:none;border-bottom:none}
#tab-friends>.card{background:transparent;border:none;border-radius:0;overflow:visible}
#tab-friends>.card .card-head{border-bottom:none}
#tab-friends .share-contact{border-bottom:none}
@media(hover:hover){.post-card:hover{background:var(--surface2)}}
.post-card,.post-card *{-webkit-tap-highlight-color:transparent}
.post-card{-webkit-user-select:none;user-select:none}
.post-card .post-body-text{-webkit-user-select:text;user-select:text}
.post-cover{width:100%;height:auto;max-height:78vh;object-fit:contain;display:block;background:var(--surface2);cursor:pointer}
/* ── Карусель фото поста (как в Instagram) ── */
.pcar-wrap{margin:12px 18px 0}
.pcar{position:relative;border-radius:16px;overflow:hidden;background:var(--surface2)}
.pcar-track{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.pcar-track::-webkit-scrollbar{display:none}
.pcar-slide{flex:0 0 100%;min-width:0;scroll-snap-align:center;scroll-snap-stop:always;display:flex;align-items:center;justify-content:center}
.pcar-slide img{width:100%;height:auto;max-height:70vh;object-fit:contain;display:block;cursor:pointer;-webkit-user-drag:none;user-select:none}
/* фото целиком, без обрезки и серых полей; высота карусели = высоте текущего фото */
.pcar{background:transparent}
.pcar-track{align-items:flex-start;transition:height .2s ease}
.pcar-slide{align-items:flex-start}
@media(max-width:600px){.pcar-wrap{margin:8px 12px 0}.pcar-slide img{max-height:62vh}}
.pcar-count{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.6);color:#fff;font-size:12px;font-weight:700;padding:3px 10px;border-radius:12px;pointer-events:none;letter-spacing:.2px}
.pcar-nav{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;border:none;background:rgba(0,0,0,.55);color:#fff;font-size:20px;line-height:1;cursor:pointer;display:none;align-items:center;justify-content:center;padding:0;opacity:0;transition:opacity .15s}
.pcar-nav.prev{left:10px}
.pcar-nav.next{right:10px}
.pcar-nav.on{display:flex}
@media(hover:hover){.pcar:hover .pcar-nav.on{opacity:1}}
@media(hover:none){.pcar-nav{display:none!important}}
.pcar-dots{display:flex;justify-content:center;gap:5px;padding:9px 0 0}
.pcar-dots i{display:block;width:6px;height:6px;border-radius:50%;background:var(--text3);opacity:.35;transition:opacity .15s,transform .15s}
.pcar-dots i.on{opacity:1;background:var(--text);transform:scale(1.15)}
.post-quoted .pcar-wrap{margin:8px 0 0}
.post-quoted .pcar{border-radius:10px}
.post-quoted .pcar-slide img{max-height:50vh}
#pmGallery{max-width:720px;margin:0 auto}
#pmGallery .pcar-wrap{margin:12px 16px 0}
.ppv-box .pcar{pointer-events:auto}
.ppv-box .pcar-slide img{cursor:default}
/* Миниатюры выбранных фото (создание/редактирование поста) */
.cthumbs{display:flex;align-items:center;gap:8px;overflow-x:auto;margin:6px 0 8px;padding-bottom:2px;scrollbar-width:none}
.cthumbs::-webkit-scrollbar{display:none}
.cthumb{position:relative;flex:0 0 auto;width:92px;height:92px;border-radius:12px;overflow:hidden;border:1px solid var(--border)}
.cthumb img{width:100%;height:100%;object-fit:cover;display:block}
.cthumb-rm{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.65);color:#fff;border:none;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;padding:0}
.cthumb-tag{position:absolute;left:4px;bottom:4px;background:rgba(0,0,0,.6);color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:8px}
.cthumb-add{flex:0 0 auto;width:92px;height:92px;border-radius:12px;border:1.5px dashed var(--border2,var(--border));background:none;color:var(--text3);font-size:28px;cursor:pointer;transition:all .15s}
.cthumb-add:hover{background:var(--surface2);color:var(--text)}
.cthumb-n{flex:0 0 auto;font-size:12px;font-weight:700;color:var(--text3);padding:0 6px}
.post-inner{padding:14px 18px 14px 19px;cursor:pointer}  /* 19px = 18px отступ + 1px рамка кнопки «Посты» */
.post-top{display:flex;align-items:center;gap:11px;margin-bottom:9px}
.post-ava{width:28px;height:28px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex-shrink:0}
.post-author{font-size:13px;font-weight:700;color:var(--text)}
.post-author,.post-handle,.post-repost-tag{text-decoration-thickness:1px;text-underline-offset:2px}
@media(hover:hover){[data-hc] .post-author:hover,[data-hc] .post-handle:hover,.post-repost-tag[data-hc]:hover{text-decoration:underline}}
.hc-card{position:fixed;z-index:9994;width:300px;max-width:calc(100vw - 20px);box-sizing:border-box;padding:16px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:18px;box-shadow:0 8px 28px rgba(0,0,0,.35);opacity:0;transform:translateY(6px) scale(.97);transform-origin:0 0;transition:opacity .16s ease,transform .2s cubic-bezier(.22,1,.36,1);pointer-events:none}
.hc-card.show{opacity:1;transform:none;pointer-events:auto}
.hc-card.up{transform-origin:0 100%}
.hc-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.hc-ava{width:64px;height:64px;border-radius:50%;overflow:hidden;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;cursor:pointer;flex-shrink:0}
.hc-btn{height:34px;padding:0 16px;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;font-family:'Geologica',sans-serif;transition:background .15s,opacity .15s;border:1px solid var(--border);white-space:nowrap}
.hc-btn.follow{background:var(--accent);color:var(--accent-inv);border-color:var(--accent)}
.hc-btn.follow:hover{opacity:.85}
.hc-btn.unfollow{background:var(--surface2);color:var(--text)}
.hc-btn.unfollow:hover{background:var(--border)}
.hc-btn.friends{background:var(--surface2);color:var(--accent)}
.hc-btn:disabled{opacity:.6;cursor:default}
.hc-ava img{width:100%;height:100%;object-fit:cover;display:block}
.hc-name{font-size:16px;font-weight:800;line-height:1.25;cursor:pointer;word-break:break-word}
.hc-name:hover{text-decoration:underline}
.hc-user{font-size:13px;font-weight:500;color:var(--text3);margin-top:1px;word-break:break-all}
.hc-bio{margin-top:10px;font-size:13.5px;line-height:1.4;color:var(--text);word-break:break-word;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}
.hc-stats{display:flex;gap:16px;margin-top:12px;font-size:13px;color:var(--text3);font-weight:500}
.hc-stats b{color:var(--text);font-weight:800;margin-right:3px}
.hc-sum-btn{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;height:36px;margin-top:14px;border:1px solid var(--border2);border-radius:12px;background:none;color:var(--text);font-family:'Geologica',sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:background .15s}
.hc-sum-btn:hover{background:var(--surface2)}
.hc-sum-btn:disabled{opacity:.7;cursor:default}
.hc-sum{margin-top:10px;padding:11px 12px;border-radius:12px;background:var(--surface2)}
.hc-sum-t{font-size:13px;line-height:1.45;word-break:break-word}
.hc-sum-n{margin-top:8px;font-size:11px;color:var(--text3);font-weight:500}
.hc-sum-n.err{margin-top:0;font-size:12.5px}
.hc-sum-load{display:flex;gap:5px;justify-content:center;padding:6px 0}
.hc-sum-load i{width:7px;height:7px;border-radius:50%;background:var(--text3);animation:hcDot 1s infinite ease-in-out}
.hc-sum-load i:nth-child(2){animation-delay:.15s}.hc-sum-load i:nth-child(3){animation-delay:.3s}
@keyframes hcDot{0%,80%,100%{opacity:.25;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}
@media(hover:none){.hc-card{display:none}}
.post-date{font-size:11.5px;color:var(--text3);font-weight:500;margin-left:auto}
.post-title{font-size:15px;font-weight:800;line-height:1.4;color:var(--text);letter-spacing:-.2px;margin-bottom:6px}
.post-body-text{font-size:13.5px;line-height:1.65;color:var(--text2);white-space:normal}
.post-footer{display:flex;align-items:center;gap:8px;padding:8px 14px 10px}
.post-pin-tag{display:flex;align-items:center;gap:6px;padding:8px 14px 0;font-size:12px;font-weight:600;color:var(--text3)}
.post-pin-tag svg{width:13px;height:13px}
.post-pin-btn{margin-left:auto;display:flex;align-items:center;gap:5px;background:none;border:1px solid var(--border);border-radius:8px;padding:4px 9px;font-size:12px;color:var(--text3);cursor:pointer}
.post-pin-btn.on{color:var(--text);border-color:transparent;outline:none}
.post-pin-btn svg{width:13px;height:13px}
.dm-swipe-hint{position:absolute;right:10px;top:50%;width:28px;height:28px;margin-top:-14px;border-radius:50%;background:var(--surface2,rgba(128,128,128,.2));color:var(--text);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transform:scale(.6)}
.dm-swipe-hint svg{width:15px;height:15px}
.dm-msg-wrap.swiping{position:relative}
.dm-reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.dm-reactions:empty{display:none}
.dm-rx{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:12px;border:none;background:rgba(128,128,128,.25);color:inherit;font-size:13px;line-height:1.5;cursor:pointer;font-family:inherit}
.dm-rx.mine{background:rgba(128,128,128,.45)}
/* Сообщения без пузыря (фото, гиф, кружки, большие эмодзи, посты, карточки): цифра реакции не должна сливаться с фоном чата */
.dm-msg-wrap .dm-msg.dm-msg-photo .dm-rx,.dm-msg-wrap .dm-msg.dm-msg-circle .dm-rx,.dm-msg-wrap .dm-msg.dm-msg-bigemoji .dm-rx,.dm-msg-wrap .dm-msg.dm-msg-post .dm-rx,.dm-msg-wrap .dm-msg.dm-msg-card .dm-rx,.dm-msg-wrap .dm-msg.dm-msg-img-grid .dm-rx{color:var(--text)}
.dm-msg-wrap .dm-msg.dm-msg-photo .dm-rx b,.dm-msg-wrap .dm-msg.dm-msg-circle .dm-rx b,.dm-msg-wrap .dm-msg.dm-msg-bigemoji .dm-rx b,.dm-msg-wrap .dm-msg.dm-msg-post .dm-rx b,.dm-msg-wrap .dm-msg.dm-msg-card .dm-rx b,.dm-msg-wrap .dm-msg.dm-msg-img-grid .dm-rx b{color:var(--text)}
/* ── ОПРОСЫ ── */
.poll{width:260px;max-width:100%;text-align:left}
.dm-msg .poll{padding:2px 0}
.poll-q{font-size:14px;font-weight:800;line-height:1.35;color:var(--text);margin-bottom:2px;word-break:break-word}
.poll-sub{font-size:11px;font-weight:600;color:var(--text3);margin-bottom:9px}
.poll-opt{position:relative;display:flex;align-items:center;gap:8px;width:100%;min-height:36px;margin-bottom:6px;padding:7px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);color:var(--text);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;text-align:left;overflow:hidden;transition:border-color .15s}
.poll-opt:hover{border-color:var(--border2)}
.poll-opt:active{transform:scale(.99)}
.poll-bar{position:absolute;left:0;top:0;bottom:0;width:0;background:color-mix(in srgb,var(--accent) 16%,transparent);transition:width .45s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.poll-opt.mine{border-color:var(--accent)}
.poll-opt.mine .poll-bar{background:color-mix(in srgb,var(--accent) 26%,transparent)}
.poll-chk{position:relative;flex:none;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--border2);display:flex;align-items:center;justify-content:center}
.poll.multi .poll-chk{border-radius:5px}
.poll-opt.mine .poll-chk{background:var(--accent);border-color:var(--accent);color:var(--accent-inv)}
.poll-chk svg{width:10px;height:10px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.poll-t{position:relative;flex:1;min-width:0;word-break:break-word;line-height:1.3}
.poll-pct{position:relative;flex:none;font-size:12px;font-weight:800;color:var(--text2)}
.poll-foot{font-size:11.5px;font-weight:600;color:var(--text3);margin-top:2px}
.post-inner .poll,.pm-poll .poll{width:100%;max-width:none;margin:12px 0 4px}
.pm-poll .poll{margin:6px 0 14px}
[data-theme=dark] .dm-msg-wrap.mine .poll-q{color:#fff}
[data-theme=dark] .dm-msg-wrap.mine .poll-sub,[data-theme=dark] .dm-msg-wrap.mine .poll-foot{color:rgba(255,255,255,.55)}
[data-theme=dark] .dm-msg-wrap.mine .poll-opt{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18);color:#fff}
[data-theme=dark] .dm-msg-wrap.mine .poll-opt.mine{border-color:#fff}
[data-theme=dark] .dm-msg-wrap.mine .poll-pct{color:rgba(255,255,255,.8)}
.pc-ov{position:fixed;inset:0;z-index:100002;background:rgba(0,0,0,.5);display:flex;align-items:flex-end;justify-content:center;animation:rxFade .16s ease-out}
.pc-box{width:100%;max-width:480px;max-height:92vh;overflow-y:auto;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:24px 24px 0 0;padding:16px 18px calc(18px + env(safe-area-inset-bottom,0px));font-family:'Geologica',sans-serif;box-shadow:var(--shadow)}
@media(min-width:700px){.pc-ov{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.pc-box{border-radius:20px;max-height:86vh}}
.pc-head{display:flex;align-items:center;justify-content:space-between;font-size:17px;font-weight:800;margin-bottom:14px}
.pc-head button{border:none;background:none;color:var(--text2);font-size:26px;line-height:1;cursor:pointer;padding:0 4px}
.pc-lbl{font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.6px;margin:0 0 6px}
.pc-inp{width:100%;height:42px;padding:0 13px;border:1.5px solid var(--border);border-radius:10px;font-size:14px;font-family:inherit;font-weight:500;background:var(--surface2);color:var(--text);outline:none;margin-bottom:8px;transition:border-color .15s}
.pc-inp:focus{border-color:var(--accent)}
.pc-orow{position:relative}
.pc-orow .pc-inp{padding-right:42px}
.pc-orow button{position:absolute;right:6px;top:5px;width:32px;height:32px;border:none;border-radius:50%;background:none;color:var(--text3);font-size:20px;line-height:1;cursor:pointer}
.pc-add{width:100%;height:40px;margin-bottom:12px;border:1.5px dashed var(--border2);border-radius:10px;background:none;color:var(--text2);font-family:inherit;font-size:13px;font-weight:700;cursor:pointer}
.pc-add:disabled{opacity:.4;cursor:default}
.pc-multi{display:flex;align-items:center;gap:9px;padding:11px 13px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;font-size:13.5px;font-weight:600;cursor:pointer;margin-bottom:14px}
.pc-go{width:100%;height:46px;border:none;border-radius:14px;background:var(--accent);color:var(--accent-inv);font-family:inherit;font-size:15px;font-weight:700;cursor:pointer}
.pc-go:disabled{opacity:.5}
.compose-poll-prev{display:flex;align-items:center;gap:9px;margin:6px 0 8px;padding:9px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:12px;font-size:13px;font-weight:700}
.compose-poll-prev span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.compose-poll-prev small{color:var(--text3);font-weight:600}
.compose-poll-prev button{border:none;background:none;color:var(--text2);font-size:20px;line-height:1;cursor:pointer}

@keyframes rxChipIn{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.2);opacity:1}100%{transform:scale(1)}}
.dm-rx.rx-new{animation:rxChipIn .4s cubic-bezier(.2,.9,.3,1.3)}
.dm-rx b{font-size:12px;font-weight:700}
/* Реакции в стиле Telegram: плашка «эмодзи + аватарки» */
.dm-reactions{gap:6px;margin-top:6px}
.dm-rx{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;gap:7px;height:30px;padding:0 11px;border-radius:15px;--rx-bg:color-mix(in srgb,var(--text) 14%,var(--surface));--rx-fg:var(--text);background:var(--rx-bg);color:var(--rx-fg);transition:transform .12s}
.dm-rx:active{transform:scale(.94)}
.dm-rx .dm-rx-e{font-size:17px;line-height:1}
.dm-rx b{font-size:13px;font-weight:800;color:inherit}
.dm-rx:has(.dm-rx-avs){padding:0 4px 0 10px}
.dm-rx-avs{display:flex;align-items:center}
.dm-rx-avs i{width:22px;height:22px;border-radius:50%;overflow:hidden;background:color-mix(in srgb,var(--rx-fg) 22%,var(--rx-bg));color:var(--rx-fg);box-shadow:0 0 0 2px var(--rx-bg);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;font-style:normal;margin-left:-6px;flex-shrink:0;position:relative}
.dm-rx-avs i:first-child{margin-left:0}
.dm-rx-avs i img{width:100%;height:100%;object-fit:cover;display:block;-webkit-user-drag:none}
.dm-rx.mine,.dm-msg-wrap .dm-msg .dm-rx.mine{--rx-bg:var(--ct-btn-bg,var(--accent));--rx-fg:var(--ct-btn-fg,var(--accent-inv));background:var(--rx-bg);color:var(--rx-fg)}
.dm-msg-wrap .dm-msg .dm-rx.mine b{color:inherit}
/* Свои (исходящие) сообщения: пузырь - акцентный, поэтому плашка делается контрастной к нему */
.dm-msg-wrap.mine .dm-msg:not(.dm-msg-photo):not(.dm-msg-circle):not(.dm-msg-bigemoji):not(.dm-msg-post):not(.dm-msg-card):not(.dm-msg-img-grid) .dm-rx{--rx-bg:color-mix(in srgb,var(--ct-mine-fg,var(--accent-inv)) 24%,var(--ct-mine-bg,var(--accent)));--rx-fg:var(--ct-mine-fg,var(--accent-inv));background:var(--rx-bg);color:var(--rx-fg)}
.dm-msg-wrap.mine .dm-msg:not(.dm-msg-photo):not(.dm-msg-circle):not(.dm-msg-bigemoji):not(.dm-msg-post):not(.dm-msg-card):not(.dm-msg-img-grid) .dm-rx.mine{--rx-bg:var(--ct-mine-fg,var(--accent-inv));--rx-fg:var(--ct-mine-bg,var(--accent));background:var(--rx-bg);color:var(--rx-fg)}
.dm-reactions,.dm-reactions *,.rxc-ov,.rxc-ov *{-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important;-webkit-tap-highlight-color:transparent}
body.rx-pressing,body.rx-pressing *{-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important}
/* Окно по долгому нажатию на реакцию */
.rxc-ov{position:fixed;inset:0;z-index:9995;background:rgba(0,0,0,.28);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:rxFade .16s ease-out}
.rxc-col{position:fixed;display:flex;flex-direction:column;gap:8px;visibility:hidden}
.rxc-col.out{align-items:flex-end}
.rxc-big{font-size:60px;line-height:1.1;margin:0 4px;transform-origin:50% 100%;animation:rxcPop .55s cubic-bezier(.2,1.5,.4,1) both;filter:drop-shadow(0 8px 18px rgba(0,0,0,.35));-webkit-user-select:none;user-select:none}
@keyframes rxcPop{0%{transform:scale(.2) rotate(-12deg);opacity:0}60%{transform:scale(1.12) rotate(4deg);opacity:1}100%{transform:scale(1) rotate(0)}}
.rxc-card{min-width:190px;max-width:min(270px,calc(100vw - 20px));max-height:40vh;overflow-y:auto;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:16px;padding:4px 0;box-shadow:0 8px 28px rgba(0,0,0,.35);transform-origin:50% 100%;animation:rxIn .14s ease-out both;scrollbar-width:none}
.rxc-card::-webkit-scrollbar{display:none}
@keyframes rxcCard{from{opacity:0;transform:translateY(10px) scale(.94)}to{opacity:1;transform:none}}
.rxc-row{display:flex;align-items:center;gap:10px;padding:8px 14px;cursor:pointer}
.rxc-row:active{background:var(--surface2)}
.rxc-ava{width:34px;height:34px;border-radius:50%;overflow:hidden;background:var(--surface2);color:var(--text2);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex-shrink:0}
.rxc-ava img{width:100%;height:100%;object-fit:cover;display:block}
.rxc-body{flex:1;min-width:0}
.rxc-name{font-size:14px;font-weight:700;display:flex;align-items:center;gap:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rxc-when{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:500;color:var(--text3);margin-top:1px;white-space:nowrap}
.rxc-when svg{flex-shrink:0;width:12px;height:12px}
.rxc-chip{pointer-events:none;align-self:flex-start}
.rxc-col.out .rxc-chip{align-self:flex-end}
.rxc-chip .dm-rx{pointer-events:none}
.rx-ov{position:fixed;inset:0;z-index:9990;background:rgba(0,0,0,.28);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);touch-action:none;animation:rxFade .16s ease-out}
@keyframes rxFade{from{opacity:0}to{opacity:1}}
.rx-pop{position:fixed;z-index:9991;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:6px;box-shadow:0 8px 28px rgba(0,0,0,.35);display:flex;flex-direction:column;gap:4px;animation:rxIn .14s ease-out}
@keyframes rxIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
.rx-row{display:flex;gap:2px}
.rx-row button{width:38px;height:38px;border:none;background:none;border-radius:10px;font-size:25px;cursor:pointer;padding:0;line-height:1}
.rx-row button.on{background:rgba(128,128,128,.28)}
.rx-row button:active{transform:scale(1.2)}
.rx-act{border:none;background:var(--surface2);color:var(--text);border-radius:10px;height:34px;font-size:13px;font-weight:600;cursor:pointer;font-family:'Geologica',sans-serif}
/* Меню сообщения по долгому нажатию: кнопки действий убраны из ленты, всё живёт здесь */
.dm-msg-actions,.dm-msg-side-actions{display:none!important}
.dm-msg-wrap.rx-focus{visibility:hidden}
.rx-pop{z-index:9993}
@media (hover:none){.ai-msg-bubble.mine{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.ai-msg-bubble.mine.ai-sel{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}}
.rx-menu.ai-menu{min-width:190px;border-radius:14px}.rx-menu.ai-menu button{padding:9px 14px;gap:10px;font-size:14px}.rx-menu.ai-menu button svg{width:18px;height:18px}.rx-menu-head{padding:9px 14px 4px;font-size:12px;font-weight:600;color:var(--text3)}
.rx-ov.noblur{-webkit-backdrop-filter:none;backdrop-filter:none}
.rx-clone{position:fixed;z-index:9991;margin:0!important;padding:0!important;display:block!important;max-width:none!important;overflow:visible;clip-path:inset(0 -24px -3px -24px);pointer-events:none;transform:scale(1);transition:transform .18s cubic-bezier(.2,.9,.3,1.25)}
.rx-clone.on{transform:scale(1.045)}
/* плавное появление меню по долгому нажатию */
.rx-ov{animation:rxFade .32s ease-out}
.rx-clone{transition:transform .34s cubic-bezier(.22,1,.36,1)}
body .rx-pop{animation:rxPopIn .34s cubic-bezier(.22,1,.36,1) backwards;transform-origin:50% 100%}
body .rx-menu{animation:rxMenuIn .36s cubic-bezier(.22,1,.36,1) .04s backwards;transform-origin:50% 0}
@keyframes rxPopIn{from{opacity:0;transform:translateY(10px) scale(.86)}to{opacity:1;transform:none}}
@keyframes rxMenuIn{from{opacity:0;transform:translateY(-8px) scale(.92)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.rx-ov,body .rx-pop,body .rx-menu{animation-duration:.01s}.rx-clone{transition:none}}
/* единая плавная анимация меню по зажатию: размытие нарастает, пункты выезжают по очереди, закрытие - мягкое */
.rx-ov{animation:rxOvIn .34s ease both}
@keyframes rxOvIn{from{background:rgba(0,0,0,0);-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{background:rgba(0,0,0,.28);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}}
@keyframes rxOvOut{from{background:rgba(0,0,0,.28);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}to{background:rgba(0,0,0,0);-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}}
.rx-ov.out{animation:rxOvOut .36s ease both;pointer-events:none}
.rx-ov.noblur{animation-name:rxFade}
.rx-ov.noblur.out{animation:rxFadeOut .2s ease both}
@keyframes rxFadeOut{from{opacity:1}to{opacity:0}}
.rx-clone{transition:transform .46s cubic-bezier(.22,1,.36,1)}
.rx-clone.out{transform:scale(1)}
body .rx-pop{animation:rxPopIn .46s cubic-bezier(.22,1,.36,1) backwards}
body .rx-menu{animation:rxMenuIn .5s cubic-bezier(.22,1,.36,1) .05s backwards}
body .rx-pop.out,body .rx-menu.out{animation:rxPartOut .2s ease both;pointer-events:none}
@keyframes rxPartOut{from{opacity:1;transform:none}to{opacity:0;transform:scale(.94)}}
body .rx-menu button{animation:rxItemIn .42s cubic-bezier(.22,1,.36,1) backwards}
body .rx-menu button:nth-child(1){animation-delay:.10s}
body .rx-menu button:nth-child(2){animation-delay:.135s}
body .rx-menu button:nth-child(3){animation-delay:.17s}
body .rx-menu button:nth-child(4){animation-delay:.205s}
body .rx-menu button:nth-child(5){animation-delay:.24s}
body .rx-menu button:nth-child(n+6){animation-delay:.275s}
@keyframes rxItemIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){body .rx-menu button{animation:none}}
.rx-clone .dm-msg{width:100%}
.rx-clone.rx-cut{overflow:hidden;clip-path:none;border-radius:var(--bub-r,18px)}
@property --rxmf{syntax:'<length>';inherits:true;initial-value:64px}
.rx-clone.rx-cut{--rxmf:64px;transition:transform .46s cubic-bezier(.22,1,.36,1),--rxmf .38s cubic-bezier(.22,1,.36,1)}
.rx-clone.rx-cut.rx-uncut{--rxmf:0px}
.rx-clone.rx-cut .dm-msg{height:100%;overflow:hidden;-webkit-mask-image:linear-gradient(#000 calc(100% - var(--rxmf)),transparent);mask-image:linear-gradient(#000 calc(100% - var(--rxmf)),transparent)}
.rx-clone.rx-cut .dm-msg::before,.rx-clone.rx-cut .dm-msg::after{display:none!important}
.rx-menu{position:fixed;z-index:9993;min-width:210px;background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:0 8px 28px rgba(0,0,0,.35);animation:rxIn .14s ease-out}
.rx-menu button{display:flex;align-items:center;gap:12px;width:100%;border:none;border-bottom:none;background:none;color:var(--text);padding:12px 16px;font-size:15px;font-weight:600;font-family:'Geologica',sans-serif;cursor:pointer;text-align:left}
.rx-menu button:last-child{border-bottom:none}
.rx-menu button:active{background:var(--surface2)}
.rx-menu button.danger{color:var(--red)}
.rx-menu button svg{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rx-heart-pop{position:absolute;left:50%;top:50%;font-size:46px;line-height:1;margin:-23px 0 0 -23px;pointer-events:none;z-index:5;animation:rxHeart .7s ease-out forwards}
@keyframes rxHeart{0%{opacity:0;transform:scale(.3)}25%{opacity:1;transform:scale(1.15)}70%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1) translateY(-18px)}}
.dm-msg{position:relative}
/* ── плавное появление новых сообщений ── */
@keyframes dmInMine{0%{opacity:0;transform:translateY(14px) scale(.88)}60%{opacity:1}100%{opacity:1;transform:none}}
@keyframes dmInTheirs{0%{opacity:0;transform:translateY(12px) scale(.9)}60%{opacity:1}100%{opacity:1;transform:none}}
.dm-msg-wrap.dm-in-mine{transform-origin:100% 100%;animation:dmInMine .42s cubic-bezier(.22,1,.36,1) backwards;will-change:transform,opacity}
.dm-msg-wrap.dm-in-theirs{transform-origin:0 100%;animation:dmInTheirs .42s cubic-bezier(.22,1,.36,1) backwards;will-change:transform,opacity}
@media(prefers-reduced-motion:reduce){.dm-msg-wrap.dm-in-mine,.dm-msg-wrap.dm-in-theirs{animation:none}}
@media (hover:none){.dm-msg-wrap .dm-msg{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}}
@media (hover:none),(pointer:coarse){img{-webkit-touch-callout:none;-webkit-user-drag:none;user-select:none;-webkit-user-select:none}}
.aved-ov{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.88);display:flex;align-items:center;justify-content:center;padding:16px}
.aved{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:12px;color:var(--text)}
.aved-title{font-size:15px;font-weight:700;text-align:center}
.aved canvas{width:100%;aspect-ratio:1/1;border-radius:12px;touch-action:none;cursor:grab;background:#000;display:block}
.aved-row{display:flex;align-items:center;gap:10px}
.aved-row input[type=range]{flex:1;accent-color:var(--accent)}
.aved-ic{width:36px;height:36px;border-radius:10px;border:1px solid var(--border);background:var(--surface2);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}
.aved-ic svg{width:18px;height:18px}
.aved-btns{display:flex;gap:10px}
.aved-btns button{flex:1;height:40px;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;font-family:'Geologica',sans-serif;border:1px solid var(--border);background:var(--surface2);color:var(--text)}
.aved-btns button.ok{background:var(--accent);color:var(--accent-inv);border-color:var(--accent)}
/* PROFILE BANNERS (3:1, как в Twitter/X; фото или видео) */
.bn-box{position:relative;width:100%;aspect-ratio:3/1;overflow:hidden;background:linear-gradient(135deg,var(--surface2),var(--border));border-radius:16px;flex-shrink:0}
.bn-box img,.bn-box video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;user-select:none;-webkit-user-drag:none;pointer-events:none}
.bn-box.own{cursor:pointer}
.bn-box.bn-none{display:none}
.bn-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--text3);font-size:13px;font-weight:700}
.bn-empty svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
:has(>.bn-box.bn-none) .upage-ava-wrap{margin-top:0}
.set-head:has(>.bn-box.bn-none) .prof-ava-wrap{margin-top:0}
.bn-ctl{position:absolute;right:10px;bottom:10px;display:flex;gap:8px;z-index:3}
.bn-btn{width:36px;height:36px;border-radius:50%;border:none;background:rgba(0,0,0,.55);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .15s}
.bn-btn:hover{background:rgba(0,0,0,.75)}
.bn-btn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.set-head .bn-box{align-self:stretch;border-radius:14px}
.set-head .prof-ava-wrap{margin-top:-34px;z-index:2}
.set-head .prof-ava-big{box-shadow:0 0 0 4px var(--bg)}
/* banner editor */
.aved.bned{max-width:560px}
.aved .bned-stage{position:relative;width:100%;aspect-ratio:3/1;overflow:hidden;border-radius:12px;background:#000;touch-action:none;cursor:grab}
.aved .bned-stage canvas{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;border-radius:0;cursor:inherit}
.aved .bned-stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.bned-ava{position:absolute;left:2.2%;bottom:-7%;width:14%;aspect-ratio:1/1;border-radius:50%;border:2px dashed rgba(255,255,255,.75);background:rgba(0,0,0,.28);pointer-events:none;z-index:2}
.bned-hint{font-size:11.5px;color:var(--text3);text-align:center;font-weight:500}
.bned-lbl{font-size:12px;font-weight:700;color:var(--text2);min-width:62px}
.bned-info{font-size:12px;color:var(--text2);text-align:center;font-weight:600}
.bned-trim{display:flex;flex-direction:column;gap:8px}
.aved-btns button[disabled]{opacity:.55;cursor:default}
.pcrop{max-width:460px}
.pcrop canvas{aspect-ratio:auto;max-height:60vh}
.pcrop-ratios{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.pcrop-ratios button{height:30px;padding:0 12px;border-radius:15px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:12.5px;font-weight:700;cursor:pointer;font-family:'Geologica',sans-serif}
.pcrop-ratios button.on{background:var(--accent);color:var(--accent-inv);border-color:var(--accent)}
.compose-preview{height:34px;padding:0 14px;background:var(--surface2);color:var(--text);border:1px solid var(--border);border-radius:20px;font-size:13px;font-weight:700;cursor:pointer;font-family:'Geologica',sans-serif;margin-right:8px}
.compose-preview:disabled{opacity:.45;cursor:default}
.ppv-box{width:100%;max-width:520px;max-height:90vh;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:12px;color:var(--text)}
.ppv-badge{font-size:12px;font-weight:700;color:var(--text3);text-align:center}
.ppv-box .post-card{margin:0;pointer-events:none}
.ppv-full{position:fixed;inset:0;z-index:10000;background:var(--bg);display:flex;flex-direction:column;color:var(--text);animation:ppvIn .18s ease-out}
@keyframes ppvIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.ppv-top{flex:none;display:flex;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top,0px)) 14px 10px;background:var(--surface)}
.ppv-top-x{width:36px;height:36px;border-radius:50%;border:none;background:var(--surface2);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}
.ppv-top-x svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ppv-top-t{flex:1;min-width:0}
.ppv-top-t b{display:block;font-size:15px;font-weight:800;line-height:1.2}
.ppv-top-t span{display:block;font-size:11.5px;font-weight:600;color:var(--text3);margin-top:1px}
.ppv-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.ppv-col{width:100%;max-width:680px;margin:0 auto;background:var(--surface);min-height:100%}
.ppv-col .posts-feed{display:flex;flex-direction:column}
.ppv-col .post-card{pointer-events:none;background:transparent}
.ppv-col .sk-post{border-bottom:none}
.ppv-col .post-card .pcar,.ppv-col .post-card .pcar-nav,.ppv-col .post-card .pcar-track{pointer-events:auto}
.ppv-col .post-card.ppv-me{position:relative}
.ppv-col .post-card.ppv-me::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);z-index:2}
.ppv-skel-end{padding:18px;text-align:center;font-size:12px;font-weight:600;color:var(--text3)}
.ppv-bot{flex:none;display:flex;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));background:var(--surface)}
.ppv-bot button{flex:1;height:44px;border-radius:12px;font-size:14px;font-weight:800;cursor:pointer;font-family:'Geologica',sans-serif;border:1px solid var(--border);background:var(--surface2);color:var(--text)}
.ppv-bot button.ok{background:var(--accent);color:var(--accent-inv);border-color:var(--accent)}
.dm-msg-wrap.swiping .dm-msg-actions,.dm-msg-wrap.swiping .dm-msg-side-actions{opacity:0!important;visibility:hidden!important;transition:none!important}
.like-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 11px 5px 8px;border-radius:20px;border:1px solid var(--border);background:none;font-size:13px;font-weight:700;color:var(--text2);cursor:pointer;font-family:'Geologica',sans-serif;transition:all .15s;line-height:1}
.like-btn:hover{background:var(--surface2);border-color:var(--border2);color:var(--text)}
.like-btn.liked{background:#fff0f0;border-color:#fca5a5;color:#e53e3e}
[data-theme=dark] .like-btn.liked{background:#3b1414;border-color:#c53030;color:#fc8181}
.like-btn svg{width:15px;height:15px;flex-shrink:0;display:block}
.like-btn svg path{transition:all .2s}
.like-btn:not(.liked) svg path{fill:none;stroke:currentColor;stroke-width:2}
.like-btn.liked svg path{fill:#e53e3e;stroke:#e53e3e}
[data-theme=dark] .like-btn.liked svg path{fill:#fc8181;stroke:#fc8181}

/* INLINE COMPOSE (Twitter-style) */
.compose-box{background:var(--surface);padding:14px 18px 0}
/* аватар и кнопка фото выровнены по левому краю кнопки «Посты», кнопки справа - по правому краю */
.compose-left-actions .compose-img-btn:first-child{margin-left:-7px}
.compose-actions{padding-top:2px!important}
.compose-row{display:flex;gap:11px;align-items:flex-start}
.compose-ava{width:34px;height:34px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;flex-shrink:0;margin-top:2px}
.compose-right{flex:1;min-width:0}
.compose-ta{width:100%;min-height:44px;max-height:200px;padding:8px 0;border:none;border-bottom:2px solid transparent;font-size:15px;font-family:'Geologica',sans-serif;font-weight:500;background:transparent;color:var(--text);outline:none;resize:none;line-height:1.55;transition:border-color .15s;overflow:hidden}
.compose-ta::placeholder{color:var(--text3)}
.compose-ta:focus{border-bottom-color:var(--border)}
.compose-actions{display:flex;align-items:center;justify-content:space-between;padding:8px 0 12px;margin-top:4px}
.compose-left-actions{display:flex;align-items:center;gap:4px}
.compose-img-btn{width:32px;height:32px;border-radius:8px;border:none;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text3);transition:all .15s}
.compose-img-btn:hover{background:var(--surface2);color:var(--text)}
.compose-img-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8}
.compose-img-preview{position:relative;margin:6px 0 8px}
.compose-img-preview img{width:100%;max-height:180px;object-fit:cover;border-radius:10px;display:block;border:1px solid var(--border)}
.compose-img-rm{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;background:rgba(0,0,0,.65);color:#fff;border:none;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}
.compose-submit{height:34px;padding:0 18px;background:var(--accent);color:var(--accent-inv);border:none;border-radius:20px;font-size:13px;font-weight:800;cursor:pointer;font-family:'Geologica',sans-serif;transition:opacity .15s}
.compose-submit:hover{opacity:.82}.compose-submit:disabled{opacity:.35;cursor:default}
.compose-hint{padding:14px 18px;font-size:13px;color:var(--text3);font-weight:500;text-align:center;cursor:pointer;transition:background .12s}
.compose-hint:hover{background:var(--surface2);color:var(--text2)}

/* POST FULL MODAL */
.pm-back{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);z-index:400;align-items:flex-start;justify-content:center;padding:20px;overflow-y:auto}
.pm-back.show{display:flex}
.pm-box{background:var(--surface);border:1px solid var(--border);border-radius:18px;width:100%;max-width:660px;margin:auto;box-shadow:0 24px 60px rgba(0,0,0,.25);overflow:hidden}
.pm-cover{width:100%;height:auto;max-height:82vh;object-fit:contain;display:block;background:var(--surface2);cursor:zoom-in}
.pm-inner{padding:22px 24px}
.pm-author-row{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.pm-ava{width:34px;height:34px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;flex-shrink:0}
.pm-name{font-size:13.5px;font-weight:700;color:var(--text)}
.pm-dt{font-size:12px;color:var(--text3);font-weight:500}
.pm-title{font-size:22px;font-weight:800;line-height:1.35;color:var(--text);letter-spacing:-.4px;margin-bottom:14px}
.pm-text{font-size:14.5px;line-height:1.8;color:var(--text2);white-space:pre-wrap}
.pm-actions{margin-top:18px;display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;max-width:100%;min-width:0}
.pm-actions>*{flex-shrink:0;max-width:100%}
.pm-edit,.pm-del{white-space:nowrap}
.pm-edit{height:36px;padding:0 16px;background:none;border:1px solid var(--border);border-radius:9px;font-size:12.5px;font-weight:700;color:var(--text);cursor:pointer;font-family:'Geologica',sans-serif;transition:all .15s}
.pm-edit:hover{background:var(--surface2)}
.pm-del{height:36px;padding:0 16px;background:none;border:1px solid var(--border);border-radius:9px;font-size:12.5px;font-weight:700;color:var(--red);cursor:pointer;font-family:'Geologica',sans-serif;transition:all .15s}
.pm-del:hover{background:var(--red);color:#fff;border-color:var(--red)}
/* Пост на весь экран, но между шапкой и нижней панелью (как в Твиттере) */
#postViewModal{padding:0;background:var(--surface);backdrop-filter:none;z-index:150;align-items:stretch;top:54px;bottom:0;overflow:hidden}
#postViewModal .pm-box{display:flex;flex-direction:column;max-width:none;width:100%;height:100%;min-height:0;margin:0;border:none;border-radius:0;box-shadow:none;background:var(--surface);overflow:hidden}
#postViewModal .pm-head{flex-shrink:0;padding:10px 16px;display:flex;align-items:center;gap:14px;background:var(--surface);z-index:3}
#postViewModal .pm-head-in{width:100%;max-width:720px;margin:0 auto;display:flex;align-items:center;gap:14px}
#postViewModal .pm-back-btn{width:34px;height:34px;border-radius:50%;border:none;background:none;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}
#postViewModal .pm-back-btn:hover{background:var(--surface2)}
#postViewModal .pm-back-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
#postViewModal .pm-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
#postViewModal .pm-cover{max-width:720px;width:100%;margin:0 auto;border-radius:0 0 14px 14px}
#postViewModal .pm-inner{max-width:720px;margin:0 auto;padding:18px 16px 24px}
#postViewModal .pm-title{font-size:24px}
#postViewModal .pm-text{font-size:16px;line-height:1.7}
#postViewModal .pm-cmt-form{flex-shrink:0;align-items:flex-end;margin:0;padding:10px 16px;background:var(--surface)}
#postViewModal .pm-cmt-form-in{width:100%;max-width:720px;margin:0 auto;display:flex;align-items:flex-end;gap:8px}
@media(max-width:640px){
  /* до самого низа экрана: между полем комментария и плавающей панелью не просвечивает лента */
  #postViewModal{bottom:0}
  #postViewModal .pm-box{box-sizing:border-box;padding-bottom:var(--nav-h,54px)}
}
.pm-cmts{margin-top:20px;border-top:1px solid var(--border);padding-top:14px}
.pm-cmts-head{font-size:13px;font-weight:800;color:var(--text);margin-bottom:10px}
.pm-cmt{display:flex;gap:9px;padding:8px 0}
.pm-cmt.pm-reply{margin-left:40px}
.pm-cmt-replyto{color:var(--accent);font-weight:700;margin-right:4px}
.pm-cmt-replybtn{border:none;background:none;color:var(--text3);font-size:12px;font-weight:700;font-family:inherit;cursor:pointer;padding:0}
.pm-reply-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;max-width:720px;margin:0 auto 6px;font-size:12.5px;color:var(--text2);font-weight:600}
.pm-reply-bar button{border:none;background:none;color:var(--text2);font-size:20px;line-height:1;cursor:pointer}
#postViewModal .pm-cmt-form{flex-direction:column}
.pm-cmt-ava{width:28px;height:28px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex-shrink:0;overflow:hidden;cursor:pointer}
.pm-cmt-body{flex:1;min-width:0}
.pm-cmt-top{display:flex;align-items:center;gap:8px;font-size:12.5px}
.pm-cmt-name{font-weight:700;color:var(--text);cursor:pointer}
.pm-cmt-dt{color:var(--text3);font-size:11px}
.pm-cmt-badge{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:20px;line-height:1.4}
.pm-cmt-badge.first{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--text2)}
.pm-cmt-badge.liked{background:rgba(239,68,68,.12);color:#ef4444}
.pm-cmt-badge{white-space:nowrap}
.pm-cmt-badges{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;margin-top:5px;overflow:hidden}
.pm-cmt-del{margin-left:auto;background:none;border:none;color:var(--text3);font-size:11px;cursor:pointer;font-family:inherit}
.pm-cmt-del:hover{color:var(--red)}
.pm-cmt-text{font-size:13.5px;line-height:1.5;color:var(--text2);white-space:pre-wrap;word-break:break-word;margin-top:2px}
.pm-cmt-acts{display:flex;align-items:center;gap:14px;margin-top:6px}
.pm-cmt-vote{display:inline-flex;align-items:center;gap:5px;background:none;border:none;padding:2px 0;color:var(--text3);font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;transition:color .15s}
.pm-cmt-vote svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pm-cmt-vote:hover{color:var(--text)}
.pm-cmt-vote.on{color:var(--text)}
.pm-cmt-vote.on svg{fill:currentColor}
.pm-cmt-empty{font-size:12.5px;color:var(--text3);padding:6px 0}
.pm-cmt-form{display:flex;gap:8px;margin-top:10px}
.pm-cmt-form textarea{flex:1;min-width:0;border:1px solid var(--border);border-radius:20px;padding:9px 14px;font-family:inherit;font-size:14px;line-height:1.4;max-height:120px;background:var(--surface2);color:var(--text);resize:none;outline:none;box-sizing:border-box;display:block}
.pm-cmt-send{width:38px;height:38px;border-radius:50%;background:var(--accent);color:var(--accent-inv);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;transition:opacity .15s}
.pm-cmt-send:hover{opacity:.85}
.pm-cmt-send:disabled{opacity:.35;cursor:default}
.pm-cmt-send svg{width:17px;height:17px;stroke:var(--accent-inv);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

body.bot-chat-open.bot-unstarted #dmInputRow{display:none!important}
body.bot-chat-open .dm-photo-btn,body.bot-chat-open .dm-btn-pair,body.bot-chat-open #dmMicBtn{display:none!important}
.bot-list-open{display:inline-block;height:30px;line-height:30px;padding:0 16px;border-radius:15px;border:1px solid var(--border);background:var(--accent);color:var(--accent-inv);font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;transition:transform .15s,opacity .15s}
.bot-list-open:hover,.bot-open-btn:hover,.bot-start-btn:hover{opacity:.88}
.bot-list-open:active,.bot-open-btn:active,.bot-start-btn:active{transform:scale(.97)}
.bot-ava{display:flex!important;align-items:center;justify-content:center;flex:none;padding:0;line-height:0;overflow:hidden;background:color-mix(in srgb,var(--ct-solid,var(--accent)) 10%,var(--surface2))!important;color:var(--ct-solid,var(--accent))!important}
.bot-ava svg{display:block;flex:none;width:56%;height:56%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#biAva svg{width:56px;height:56px}
.bot-open-btn{display:block;width:100%;max-width:260px;height:42px;border-radius:12px;border:1px solid var(--border);background:var(--accent);color:var(--accent-inv);font-size:14px;font-weight:700;font-family:inherit;cursor:pointer;margin-top:2px;transition:transform .15s,opacity .15s}
.dm-msg.bot-cmd{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .12s}
.dm-msg.bot-cmd:active{opacity:.7}
.bot-msg-stack{display:flex;flex-direction:column;align-items:stretch;gap:4px;min-width:min(230px,100%);max-width:100%}
.bot-msg-stack .dm-msg{max-width:100%}
.bot-msg-stack .bot-open-btn{max-width:none;width:100%;height:36px;margin:0;border-radius:10px;background:var(--surface2);color:var(--accent);border:1px solid var(--border);font-size:13.5px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:6px}
.bot-msg-stack .bot-open-btn:hover{background:var(--border);opacity:1}
.bot-start-btn{display:block;width:100%;height:46px;border-radius:14px;border:1px solid var(--border);background:var(--accent);color:var(--accent-inv);font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;transition:transform .15s,opacity .15s}
@keyframes botSheetUp{from{transform:translateY(100%)}to{transform:none}}
@keyframes botSheetDown{from{transform:none}to{transform:translateY(100%)}}
@keyframes botBarGo{0%{width:0}60%{width:72%}100%{width:100%}}
@keyframes botFadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.bot-sheet{animation:botSheetUp .45s cubic-bezier(.22,.9,.28,1) both;border-radius:18px 18px 0 0;box-shadow:0 -8px 30px rgba(0,0,0,.25);will-change:transform}
.bot-sheet.bot-sheet-out{animation:botSheetDown .3s cubic-bezier(.5,0,.8,.4) both}
.bot-sheet>*:not(.bot-sheet-bar):not(.upage-header){animation:botFadeIn .35s ease .7s both}
.bot-sheet-bar{position:fixed;top:0;left:0;right:0;height:3px;z-index:50;background:transparent;overflow:hidden;pointer-events:none;transition:opacity .25s}
.bot-sheet-bar i{display:block;height:100%;width:0;background:var(--accent);border-radius:0 3px 3px 0;animation:botBarGo .7s ease-out forwards}
@keyframes botMsgIn{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
@keyframes botOpenIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes botDot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.bot-in{animation:botMsgIn .32s cubic-bezier(.2,.8,.2,1) both}
.bot-open-in{animation:botOpenIn .35s ease both}
.bot-loading{display:flex;align-items:center;justify-content:center;height:100%;min-height:120px}
.bot-loading .dm-load-spinner{margin:auto}
.bot-typing{display:inline-flex;align-self:flex-start;width:fit-content;flex:0 0 auto;gap:4px;padding:11px 14px;border-radius:16px;background:var(--surface2);margin:2px 12px 6px}
.bot-typing i{width:6px;height:6px;border-radius:50%;background:var(--text3);animation:botDot 1s infinite}
.bot-typing i:nth-child(2){animation-delay:.15s}.bot-typing i:nth-child(3){animation-delay:.3s}
.bot-tag{display:inline-block;font-size:10px;font-weight:800;padding:1px 6px;border-radius:6px;background:var(--surface2);color:var(--text3);margin-left:6px;text-transform:uppercase;letter-spacing:.4px}
/* SERVICES */
.sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:11px}
.scard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 12px;display:flex;flex-direction:column;align-items:center;gap:9px;text-decoration:none;color:inherit;transition:all .15s;cursor:pointer}
.scard:hover{background:var(--surface2);border-color:var(--border2);transform:translateY(-1px);box-shadow:var(--shadow)}
.scard img{width:46px;height:46px;border-radius:11px}
.scard span{font-size:12.5px;font-weight:700;text-align:center;color:var(--text);line-height:1.3}
.scard-ico{width:44px;height:44px;border-radius:12px;background:var(--surface2);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}
.scard-ico svg{width:21px;height:21px;stroke:var(--text2);fill:none;stroke-width:1.8}
.scard:hover .scard-ico{background:var(--border)}
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.tcard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:all .15s}
.tcard:hover{border-color:var(--border2);box-shadow:var(--shadow)}
.tcard-banner{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;text-align:center;padding:7px 8px;background:var(--text);color:var(--accent-inv)}
.tcard-banner.gift{background:#f97316;color:#fff}
.tcard-imgwrap{background:var(--surface2);padding:14px;display:flex;align-items:center;justify-content:center;height:200px}
.tcard-imgwrap img{width:100%;height:100%;object-fit:contain}
.tcard-imgwrap.coins{height:110px;padding:18px}
.tcard-body{padding:14px 16px 16px;display:flex;flex-direction:column;align-items:center;gap:4px;flex:1}
.tcard-name{font-size:15px;font-weight:800;color:var(--text)}
.tcard-price{font-size:13px;font-weight:800;color:var(--text2)}
.tcard-price.free{color:var(--green)}
.tcard-price-row{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.tcard-old-price{font-size:12px;font-weight:700;color:var(--text3);text-decoration:line-through}
.tcard-discount{font-size:11px;font-weight:800;color:#22c55e}
.tcard-desc{font-size:11.5px;color:var(--text3);font-weight:500;line-height:1.4;margin-top:2px;margin-bottom:8px;flex:1;text-align:center}
.tcard-banner.sale{background:#ef4444;color:#fff}
.tcard-btn{margin-top:10px;width:100%;height:36px;border:none;border-radius:9px;font-size:12.5px;font-weight:700;font-family:'Geologica',sans-serif;cursor:pointer}
.tcard-btn.primary{background:var(--accent);color:var(--accent-inv)}
.tcard-btn.disabled{background:var(--surface2);color:var(--text3);border:1px solid var(--border);cursor:not-allowed}

/* AUTH MODAL */
.mback{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);z-index:500;align-items:center;justify-content:center;padding:20px}
.call-back{display:none;position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;background:radial-gradient(120% 80% at 50% 0%,var(--surface2) 0%,var(--bg) 70%);font-family:'Geologica',sans-serif;z-index:2000;align-items:stretch;justify-content:stretch;padding:0}
.call-back.show{display:flex}
.call-back:has(.call-box.has-video){padding:0}
.call-box{display:flex;flex-direction:column;align-items:center;width:100%;height:100%}
.call-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--text);text-align:center;width:100%;height:100%;max-width:none;
  padding:calc(24px + env(safe-area-inset-top,0px)) 24px calc(40px + env(safe-area-inset-bottom,0px));
  background:none;border:none;border-radius:0;box-shadow:none;position:relative;animation:callCardIn .28s cubic-bezier(.2,.8,.2,1)}
.call-card .call-status-badge{position:absolute;top:calc(20px + env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);margin:0}
.call-card .call-actions{position:absolute;bottom:calc(40px + env(safe-area-inset-bottom,0px));left:0;right:0;justify-content:center;gap:22px}
.call-card .call-ava{width:150px;height:150px;font-size:54px;margin-bottom:6px}
.call-card .call-ava-wrap{margin-bottom:22px}
.call-card .call-name{font-size:26px}
.call-card .call-user{font-size:14px;margin-bottom:12px}
.call-card .call-status{font-size:15px;margin-bottom:16px}
.call-card .call-btn{width:64px;height:64px;border:1px solid var(--border)}
.call-card .call-btn.decline,.call-card .call-btn.accept{border-color:transparent}
.call-card .call-btn svg{width:26px;height:26px}
@keyframes callCardIn{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
.call-status-badge{font-size:10.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--text3);
  background:var(--surface2);border-radius:20px;padding:4px 12px;margin-bottom:18px}
.call-status-badge.live{color:#16a34a;background:rgba(22,163,74,.13)}
.call-ava-wrap{position:relative;margin-bottom:14px}
.call-ava{width:92px;height:92px;border-radius:50%;background-size:cover;background-position:center;background-color:var(--ava-bg);display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:800;color:var(--ava-fg);box-shadow:0 0 0 5px color-mix(in srgb,var(--text) 8%,transparent);animation:callPulse 1.6s ease-in-out infinite}
.call-ava img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
@keyframes callPulse{0%,100%{box-shadow:0 0 0 5px color-mix(in srgb,var(--text) 8%,transparent)}50%{box-shadow:0 0 0 12px color-mix(in srgb,var(--text) 2%,transparent)}}
.call-box.connected .call-ava{animation:none}
.call-name{font-size:19px;font-weight:800;line-height:1.25;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.call-user{font-size:12.5px;font-weight:600;color:var(--text3);margin-bottom:10px}
.call-status{font-size:13px;font-weight:600;color:var(--text2);margin-bottom:26px;min-height:16px;font-variant-numeric:tabular-nums}
.call-actions{display:flex;align-items:center;gap:20px}
.call-btn{width:54px;height:54px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .15s,opacity .15s,box-shadow .15s}
.call-btn:hover{transform:scale(1.06)}
.call-btn:active{transform:scale(.96)}
.call-btn svg{width:23px;height:23px}
.call-btn.decline{background:#dc2626;color:#fff;box-shadow:0 6px 18px rgba(220,38,38,.35)}
.call-btn.accept{background:#16a34a;color:#fff;box-shadow:0 6px 18px rgba(22,163,74,.35);animation:callAcceptPop 1s ease-in-out infinite}
@keyframes callAcceptPop{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
.call-btn.mute{background:var(--surface2);color:var(--text)}
.call-btn.mute.active{background:var(--accent);color:var(--accent-inv)}
.call-btn.cam{background:var(--surface2);color:var(--text)}
.call-btn.cam.active{background:var(--accent);color:var(--accent-inv)}
/* кнопки микрофона/камеры: заметны и в светлой, и в тёмной теме */
.call-btn.mute,.call-btn.cam{background:color-mix(in srgb,var(--text) 14%,transparent);color:var(--text);border:1px solid color-mix(in srgb,var(--text) 26%,transparent)}
.call-btn.mute.active,.call-btn.cam.active{background:var(--accent);color:var(--accent-inv);border-color:transparent}
.call-btn svg.ico{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.call-btn .slash{display:none}
.call-btn.active .slash{display:block}
/* ── ВИДЕОЗВОНКИ ── */
#callRemoteVideo{display:none}
#callLocalVideo{display:none}
.call-box.has-video{width:100%;height:100%}
.call-box.has-video .call-card{position:relative;width:100%;height:100%;max-width:none;border-radius:0;background:#000;
  justify-content:flex-end;padding:0 0 calc(130px + env(safe-area-inset-bottom,0px));animation:none;box-shadow:none;border:none}
.call-box.has-video #callRemoteVideo{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#111}
.call-box.has-video #callLocalVideo{display:block;position:absolute;top:16px;right:16px;width:100px;height:140px;
  object-fit:cover;border-radius:14px;box-shadow:0 6px 20px rgba(0,0,0,.5);border:2px solid rgba(255,255,255,.25);z-index:2;
  transform:scaleX(-1)}
.call-box.has-video.self-preview #callLocalVideo{top:0;right:0;left:0;width:100%;height:100%;border-radius:0;border:none;box-shadow:none}
.call-box.has-video.self-preview #callRemoteVideo{display:none}
.call-box.has-video .call-ava-wrap{display:none}
.call-box.has-video .call-status-badge{position:absolute;top:calc(16px + env(safe-area-inset-top,0px));left:16px;transform:none;margin:0;z-index:2}
.call-box.has-video .call-name,
.call-box.has-video .call-user,
.call-box.has-video .call-status{position:relative;z-index:2;text-shadow:0 2px 8px rgba(0,0,0,.6)}
.call-box.has-video .call-actions{position:absolute;z-index:2;margin-top:0}
.call-box.has-video.connected .call-name,
.call-box.has-video.connected .call-user{display:none}
/* поверх видео кнопки всегда светлые на тёмном стекле */
.call-box.has-video .call-btn.mute,.call-box.has-video .call-btn.cam{background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.call-box.has-video .call-btn.mute.active,.call-box.has-video .call-btn.cam.active{background:#fff;color:#111;border-color:transparent}
/* кнопка «свернуть» */
.call-min-btn{position:absolute;z-index:3;top:calc(12px + env(safe-area-inset-top,0px));left:14px;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;
  background:color-mix(in srgb,var(--text) 14%,transparent);color:var(--text);border:1px solid color-mix(in srgb,var(--text) 26%,transparent);transition:transform .15s}
.call-min-btn:active{transform:scale(.94)}
.call-min-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.call-box.has-video .call-min-btn{background:rgba(0,0,0,.55);color:#fff;border-color:rgba(255,255,255,.55);box-shadow:0 2px 10px rgba(0,0,0,.45);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.call-box.has-video .call-status-badge{left:64px}
/* свёрнутый звонок: окно невидимо, но звук/видео продолжают идти */
.call-back.minimized{opacity:0;visibility:hidden;pointer-events:none}
/* свёрнутый звонок: тонкая плашка сверху, а сам интерфейс сдвигается вниз */
body{transition:padding-top .2s ease}
body.call-bar-on{--call-bar-h:calc(38px + env(safe-area-inset-top,0px));padding-top:var(--call-bar-h)}
.call-mini{display:none;position:fixed;z-index:2100;top:0;left:0;right:0;height:var(--call-bar-h,38px);padding:env(safe-area-inset-top,0px) 8px 0 14px;
  align-items:center;gap:10px;background:#16a34a;color:#fff;cursor:pointer;font-family:'Geologica',sans-serif;font-size:13px;font-weight:700;
  -webkit-tap-highlight-color:transparent;animation:callBarIn .22s ease-out}
@keyframes callBarIn{from{transform:translateY(-100%)}to{transform:none}}
.call-mini.show{display:flex}
.call-mini-dot{width:8px;height:8px;border-radius:50%;background:#fff;flex-shrink:0;animation:callMiniPulse 1.4s ease-in-out infinite}
@keyframes callMiniPulse{0%,100%{opacity:1}50%{opacity:.35}}
.call-mini-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.call-mini-time{font-variant-numeric:tabular-nums;opacity:.92;flex-shrink:0}
.call-mini-end{width:28px;height:28px;border-radius:50%;border:none;background:#dc2626;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;padding:0}
.call-mini-end svg{width:15px;height:15px}
.call-mini{height:calc(38px + env(safe-area-inset-top,0px))}
/* плашка плеера (голосовые и треки из профиля): так же сверху; если идёт и звонок - ниже него */
.media-mini{display:none;position:fixed;z-index:2099;top:0;left:0;right:0;box-sizing:border-box;height:calc(38px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 8px 0 8px;
  align-items:center;gap:8px;background:var(--accent);color:var(--accent-inv);cursor:pointer;font-family:'Geologica',sans-serif;font-size:13px;font-weight:700;
  -webkit-tap-highlight-color:transparent;animation:callBarIn .22s ease-out}
.media-mini.show{display:flex}
body.call-bar-on .media-mini{top:calc(38px + env(safe-area-inset-top,0px));height:38px;padding-top:0}
body.media-bar-on{--call-bar-h:calc(38px + env(safe-area-inset-top,0px));padding-top:var(--call-bar-h)}
body.media-bar-on.call-bar-on{--call-bar-h:calc(76px + env(safe-area-inset-top,0px))}
.mm-btn{width:28px;height:28px;border-radius:50%;border:none;background:rgba(255,255,255,.18);color:inherit;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;padding:0}
.mm-btn:hover{background:rgba(255,255,255,.3)}
.mm-btn svg{width:14px;height:14px}
.mm-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mm-title i{font-style:normal;font-weight:500;opacity:.8}
.mm-time{font-variant-numeric:tabular-nums;opacity:.9;flex-shrink:0;font-size:12px}
/* полноэкранные страницы поверх интерфейса тоже начинаются под плашкой */
body.call-bar-on :is(.upage-back,.cv-ov),body.media-bar-on :is(.upage-back,.cv-ov){top:var(--call-bar-h)}
body.call-bar-on .maps-wrap.full,body.media-bar-on .maps-wrap.full{top:var(--call-bar-h);height:calc(100% - var(--call-bar-h))}
@media(max-width:640px){
  body.call-bar-on.dm-fullscreen-mobile .dm-chat.mobile-show,body.media-bar-on.dm-fullscreen-mobile .dm-chat.mobile-show{top:calc(var(--vvt,0px) + var(--call-bar-h));height:calc(100vh - var(--call-bar-h));height:calc(100dvh - var(--call-bar-h));height:calc(var(--vvh,100dvh) - var(--call-bar-h))}
  body.call-bar-on #userSearchDrop,body.media-bar-on #userSearchDrop{top:calc(58px + var(--call-bar-h)) !important}
}
/* Виджет лога звонка в чате (отклонён/завершён/пропущен) */
.dm-call-card{display:flex;align-items:center;gap:10px;min-width:190px;border-radius:14px;background:var(--surface);border:1px solid var(--border);padding:11px 13px;cursor:default}
.dm-call-card-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dm-call-card-icon svg{width:17px;height:17px}
.dm-call-card-icon.ok{background:rgba(22,163,74,.14);color:#16a34a}
.dm-call-card-icon.miss{background:rgba(220,38,38,.14);color:#dc2626}
.dm-call-card-body{display:flex;flex-direction:column;gap:1px;min-width:0}
.dm-call-card-title{font-size:13.5px;font-weight:700;color:var(--text)}
.dm-call-card-sub{font-size:11.5px;font-weight:600;color:var(--text3)}
.dm-call-card-redial{margin-left:auto;flex-shrink:0;width:30px;height:30px;border-radius:50%;border:none;cursor:pointer;background:var(--surface2);border:1px solid var(--border);color:var(--text2);display:flex;align-items:center;justify-content:center;transition:transform .15s}
.dm-call-card-redial:hover{transform:scale(1.08)}
.dm-call-card-redial svg{width:14px;height:14px}
[data-theme=dark] .dm-msg-wrap.mine .dm-call-card{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.18)}
[data-theme=dark] .dm-msg-wrap.mine .dm-call-card-title{color:#fff}
[data-theme=dark] .dm-msg-wrap.mine .dm-call-card-sub{color:rgba(255,255,255,.45)}
[data-theme=dark] .dm-msg-wrap.mine .dm-call-card-redial{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.18);color:rgba(255,255,255,.85)}
.mback.show{display:flex}
.mbox{background:var(--surface);border:1px solid var(--border);border-radius:18px;width:100%;max-width:400px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.25)}
.mhead{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.mhead h3{font-size:17px;font-weight:800;color:var(--text);letter-spacing:-.2px}
.mclose{width:28px;height:28px;border-radius:7px;border:none;background:var(--surface2);color:var(--text2);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.mclose:hover{background:var(--border2);color:var(--text)}
.mbody{padding:18px 20px;overflow-y:auto;flex:1;min-height:0}
.minp{width:100%;height:42px;padding:0 12px;border:1.5px solid var(--border);border-radius:10px;font-size:14px;font-family:'Geologica',sans-serif;font-weight:500;background:var(--surface2);color:var(--text);outline:none;transition:border-color .15s;margin-bottom:10px}
.minp:focus{border-color:var(--text);background:var(--surface)}
.msbtn{width:100%;height:44px;background:var(--accent);color:var(--accent-inv);border:none;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;font-family:'Geologica',sans-serif;transition:opacity .15s;margin-top:4px}
.msbtn:hover{opacity:.85}
.merr{font-size:12.5px;color:var(--red);font-weight:600;margin-bottom:10px;min-height:18px}
.mswitch{text-align:center;margin-top:14px;font-size:12.5px;color:var(--text2)}
.mswitch a{color:var(--text);font-weight:700;cursor:pointer;text-decoration:none}
.mswitch a:hover{text-decoration:underline}
.lowmail-hint{font-size:11.5px;color:var(--text3);margin-top:-6px;margin-bottom:10px;padding:0 2px}
.lowmail-hint b{color:var(--text2)}
#authModal .mbox{position:relative}
#authModal .mbody{scrollbar-width:thin;scrollbar-color:var(--border2) transparent}
#authModal .mbody::-webkit-scrollbar{display:block;width:6px;height:auto}
#authModal .mbody::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}
.auth-scroll-hint{position:absolute;left:0;right:0;bottom:0;height:64px;display:none;flex-direction:column;align-items:center;justify-content:flex-end;gap:0;padding-bottom:8px;border:none;cursor:pointer;font-family:'Geologica',sans-serif;font-size:11.5px;font-weight:700;color:var(--text2);background:linear-gradient(to bottom,transparent,var(--surface) 70%);z-index:2}
.auth-scroll-hint.show{display:flex}
.auth-scroll-hint svg{animation:authHintBounce 1.2s ease-in-out infinite}
@keyframes authHintBounce{0%,100%{transform:translateY(-2px)}50%{transform:translateY(3px)}}

/* PROFILE MODAL */
.set-page{max-width:560px;margin:0 auto;padding:4px 2px 24px}
.set-head{display:flex;flex-direction:column;align-items:center;padding:8px 0 14px}
.set-head .prof-ava-wrap{margin-bottom:10px}
.set-head-name{font-size:18px;font-weight:800;color:var(--text);letter-spacing:-.3px}
.set-head-sub{font-size:12.5px;font-weight:500;color:var(--text3);margin-top:2px}
.set-head-online{font-size:12.5px;font-weight:700;color:#22c55e;margin-top:3px}
.set-tabs-wrap{position:relative;margin-bottom:14px}
.set-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}
.set-tabs::-webkit-scrollbar{display:none}
.set-tabs-wrap::before,.set-tabs-wrap::after{content:'';position:absolute;top:0;bottom:2px;width:44px;pointer-events:none;opacity:0;transition:opacity .2s;z-index:2;display:flex}
.set-tabs-wrap::before{left:0;background:linear-gradient(90deg,var(--bg) 25%,transparent)}
.set-tabs-wrap::after{right:0;background:linear-gradient(270deg,var(--bg) 25%,transparent)}
.set-tabs-wrap.can-left::before,.set-tabs-wrap.can-right::after{opacity:1}
.set-tabs-arr{position:absolute;top:0;bottom:2px;width:30px;border:none;background:none;color:var(--text);font-size:22px;font-weight:800;cursor:pointer;z-index:3;display:none;align-items:center;font-family:'Geologica',sans-serif;padding:0}
.set-tabs-arr.l{left:0;justify-content:flex-start;padding-left:6px}
.set-tabs-arr.r{right:0;justify-content:flex-end;padding-right:6px;animation:setArrNudge 1.4s ease-in-out infinite}
.set-tabs-wrap.can-left .set-tabs-arr.l,.set-tabs-wrap.can-right .set-tabs-arr.r{display:flex}
@keyframes setArrNudge{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}
.set-tab{flex:1 0 auto;height:36px;padding:0 14px;border-radius:10px;border:1px solid var(--border);background:var(--surface2);color:var(--text2);font-size:13px;font-weight:700;cursor:pointer;font-family:'Geologica',sans-serif;white-space:nowrap}
.set-tab.active{background:var(--accent);color:var(--accent-inv);border-color:var(--accent)}
.set-sec{display:none;background:transparent;border:none;border-radius:0;padding:4px 2px 16px;margin-bottom:6px}
.set-sec.active{display:block}
.set-version{text-align:center;font-size:12px;font-weight:600;color:var(--text3);padding:6px 0 18px;letter-spacing:.2px;user-select:text}
.seen-pick-bg{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:100000;display:flex;align-items:flex-end;justify-content:center}
.seen-pick{width:100%;max-width:460px;max-height:80vh;background:var(--surface);border-radius:18px 18px 0 0;padding:16px;display:flex;flex-direction:column;gap:10px}
@media(min-width:600px){.seen-pick-bg{align-items:center}.seen-pick{border-radius:18px}}
.seen-pick-list{overflow-y:auto;flex:1;min-height:120px;display:flex;flex-direction:column;gap:2px}
.seen-pick-row{display:flex;align-items:center;gap:11px;padding:8px 6px;border-radius:10px;cursor:pointer}
.seen-pick-row:hover{background:var(--surface2)}
.seen-pick-ava{width:38px;height:38px;border-radius:50%;background:var(--surface2);display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--text2);overflow:hidden;flex-shrink:0;background-size:cover;background-position:center}
.seen-pick-name{flex:1;min-width:0;font-size:14px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seen-pick-name small{display:block;font-size:12px;color:var(--text3);font-weight:600}
.seen-pick-chk{width:22px;height:22px;border-radius:50%;border:2px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px}
.seen-pick-row.sel .seen-pick-chk{background:var(--accent);border-color:var(--accent);color:var(--accent-inv)}
.seen-chips{display:flex;flex-wrap:wrap;gap:6px}
.seen-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 6px 5px 11px;border-radius:999px;background:var(--surface2);border:1px solid var(--border);font-size:12.5px;font-weight:700;color:var(--text)}
.seen-chip button{border:none;background:none;color:var(--text3);font-size:15px;cursor:pointer;line-height:1;padding:0 4px}
.dev-item{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}
.dev-item-main{flex:1;min-width:0}
.dev-item-t{font-size:14px;font-weight:800;color:var(--text)}
.dev-item-s{font-size:12px;font-weight:600;color:var(--text3);margin-top:2px;word-break:break-word}
.dev-item-cur{color:#22c55e}
.dev-ren{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;width:26px;height:26px;margin-left:6px;border:1px solid var(--border);background:var(--surface);color:var(--text3);border-radius:8px;cursor:pointer;padding:0;transition:all .15s}
.dev-ren svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dev-ren:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-inv)}
.dev-kill{border:1px solid var(--border);background:none;color:var(--red);font-weight:700;font-size:12.5px;border-radius:9px;padding:7px 11px;cursor:pointer;font-family:'Geologica',sans-serif;flex-shrink:0}
.set-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 2px}
.set-row:last-child{border-bottom:none}
.set-sec .prof-notif{border:none;margin-bottom:0;padding:0}
.prof-view-pub-btn{margin-bottom:14px}
.prof-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);z-index:500;align-items:center;justify-content:center;padding:20px}
.prof-modal.show{display:flex}
.prof-box{background:var(--surface);border:1px solid var(--border);border-radius:18px;width:100%;max-width:360px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 60px rgba(0,0,0,.25);display:flex;flex-direction:column}
.prof-head{padding:18px 20px;display:flex;align-items:center;justify-content:space-between}
.prof-head h3{font-size:17px;font-weight:800;color:var(--text)}
.prof-body{padding:20px}
.prof-ava-big{width:64px;height:64px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;margin:0 auto 14px}
.prof-name{font-size:20px;font-weight:800;color:var(--text);text-align:center;margin-bottom:4px}
.prof-mail{font-size:13px;color:var(--text3);text-align:center;margin-bottom:18px}
.prof-lowmail{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:14px}
.prof-lowmail-lbl{font-size:10.5px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.prof-lowmail-val{font-size:14px;font-weight:700;color:var(--text);font-family:'JetBrains Mono',monospace}
.prof-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}
.prof-stat{background:var(--surface2);border:1px solid var(--border);border-radius:9px;padding:10px 12px}
.prof-stat-lbl{font-size:10.5px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}
.prof-stat-val{font-size:18px;font-weight:800;color:var(--text)}
.prof-notif{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 2px;margin-bottom:10px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.prof-notif-t{font-size:14px;font-weight:700;color:var(--text)}
.prof-notif-s{font-size:12px;color:var(--text2);margin-top:2px}
.sw{position:relative;width:46px;height:26px;border-radius:13px;border:none;background:var(--surface2,#ccc);cursor:pointer;flex-shrink:0;transition:background .2s;padding:0;box-shadow:inset 0 0 0 1px var(--border)}
.sw::after{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .2s}
.sw.on{background:var(--accent)}
.sw.on::after{transform:translateX(20px)}
.dm-pin{display:inline-block;vertical-align:-1px;margin-right:2px;color:var(--text2)}
.dm-item.lp-focus{visibility:hidden}
.lp-clone{position:fixed;z-index:9992;margin:0;background:var(--surface);border-radius:12px;box-shadow:var(--shadow);pointer-events:none;transform:scale(1);transition:transform .15s}
.lp-clone.on{transform:scale(1.03)}
.prof-logout{width:100%;height:42px;background:none;border:1px solid var(--border);border-radius:10px;font-size:13.5px;font-weight:700;color:var(--red);cursor:pointer;font-family:'Geologica',sans-serif;transition:all .15s}
.prof-logout:hover{background:var(--red);color:#fff;border-color:var(--red)}
.prof-view-pub-btn{width:100%;height:38px;display:flex;align-items:center;justify-content:center;gap:7px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;font-size:13px;font-weight:700;color:var(--text2);cursor:pointer;font-family:'Geologica',sans-serif;transition:all .15s;margin-bottom:14px}
.prof-view-pub-btn:hover{background:var(--border);color:var(--text)}
.prof-ava-wrap{position:relative;width:64px;height:64px;margin:0 auto 14px;cursor:pointer}
.prof-ava-big{width:64px;height:64px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;overflow:hidden;flex-shrink:0}
.prof-ava-big img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.prof-ava-edit{position:absolute;bottom:0;right:0;width:22px;height:22px;border-radius:50%;background:var(--ava-bg);border:2px solid var(--surface);display:flex;align-items:center;justify-content:center;z-index:3}
.prof-ava-edit svg{width:10px;height:10px;stroke:var(--ava-fg);fill:none;stroke-width:2.5}
.prof-edit-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.prof-bio-row{margin-bottom:6px}
.prof-bio-ta{width:100%;min-height:70px;padding:9px 11px;border:1.5px solid var(--border);border-radius:10px;font-size:13px;font-family:'Geologica',sans-serif;font-weight:500;background:var(--surface2);color:var(--text);outline:none;resize:none;transition:border-color .15s;line-height:1.5}
.prof-bio-ta:focus{border-color:var(--border2);background:var(--surface)}
.prof-bio-lbl{font-size:10.5px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.6px;margin-bottom:5px}
.prof-edit-inp{flex:1;height:38px;padding:0 11px;border:1.5px solid var(--border);border-radius:9px;font-size:13.5px;font-family:'Geologica',sans-serif;font-weight:600;background:var(--surface2);color:var(--text);outline:none;transition:border-color .15s}
.prof-edit-inp:focus{border-color:var(--text);background:var(--surface)}

/* ── Кастомные выпадающие списки (вместо системных select) ── */
.cs-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;cursor:pointer;-webkit-appearance:none;appearance:none}
.cs-btn .cs-lbl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cs-btn .cs-chev{width:14px;height:14px;flex-shrink:0;stroke:var(--text3);fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}
.cs-btn.open .cs-chev{transform:rotate(180deg)}
.cs-btn:disabled{opacity:.5;cursor:default}
.cs-back{align-items:flex-end;z-index:700}
.cs-back .share-modal{max-width:420px;animation:csUp .22s ease}
@keyframes csUp{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
@media(min-width:640px){.cs-back{align-items:center}}
.cs-list{display:flex;flex-direction:column;padding:8px 10px 12px;max-height:60vh;overflow-y:auto}
.cs-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;padding:13px 12px;border:none;border-radius:10px;background:none;font-family:inherit;font-size:14px;font-weight:600;color:var(--text);cursor:pointer;transition:background .15s}
.cs-opt:hover{background:var(--surface2)}
.cs-opt.sel{background:var(--surface2);font-weight:800}
.cs-opt svg{width:16px;height:16px;stroke:var(--accent);fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;opacity:0}
.cs-opt.sel svg{opacity:1}
.cs-opt:disabled{opacity:.4;cursor:default}
/* ── Выбор сервера ── */
.srv-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:14px;border:1.5px solid var(--border);border-radius:12px;background:var(--surface2);cursor:pointer;font-family:inherit;color:var(--text);margin-bottom:10px;transition:border-color .15s}
.srv-item.sel{border-color:var(--accent);background:var(--surface)}
.srv-item:disabled{opacity:.5;cursor:default}
.srv-ico{width:38px;height:38px;border-radius:10px;background:var(--accent);color:var(--accent-inv);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.srv-ico svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.srv-body{flex:1;min-width:0}
.srv-name{font-size:14px;font-weight:800}
.srv-sub{font-size:12px;color:var(--text3);font-weight:600;margin-top:2px}
.srv-ping{font-size:11.5px;font-weight:700;color:var(--text3);display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex-shrink:0}
.srv-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;font-size:11.5px;font-weight:800;white-space:nowrap;background:var(--surface);color:var(--text3);border:1px solid var(--border)}
.srv-pill.ok{background:rgba(34,197,94,.14);color:var(--green);border-color:transparent}
.srv-pill.warn{background:rgba(245,166,35,.16);color:#d98a00;border-color:transparent}
.srv-pill.bad{background:rgba(239,68,68,.14);color:var(--red);border-color:transparent}
.srv-dot{width:8px;height:8px;border-radius:50%;background:var(--text3)}
.srv-dot.ok{background:var(--green)}.srv-dot.bad{background:var(--red)}.srv-dot.warn{background:#f5a623}
.srv-load{margin-top:8px}
.srv-load:empty{display:none}
.srv-load-row{display:flex;align-items:center;gap:8px}
.srv-bar{flex:1;min-width:40px;height:6px;border-radius:3px;background:var(--border);overflow:hidden}
.srv-bar i{display:block;height:100%;border-radius:3px;transition:width .4s}
.srv-bar i.low{background:var(--green)}.srv-bar i.mid{background:#f5a623}.srv-bar i.high{background:var(--red)}
.srv-load-pct{font-size:12px;font-weight:800;color:var(--text);min-width:34px;text-align:right}
.srv-load-sub{font-size:11px;color:var(--text3);font-weight:600;margin-top:4px}
.srv-radio{width:20px;height:20px;border-radius:50%;border:2px solid var(--border2);flex-shrink:0;position:relative}
.srv-item.sel .srv-radio{border-color:var(--accent)}
.srv-item.sel .srv-radio::after{content:'';position:absolute;inset:3px;border-radius:50%;background:var(--accent)}
.prof-edit-btn{height:38px;padding:0 14px;background:var(--accent);color:var(--accent-inv);border:none;border-radius:9px;font-size:13px;font-weight:700;cursor:pointer;font-family:'Geologica',sans-serif;transition:opacity .15s;white-space:nowrap}
.prof-edit-btn:hover{opacity:.85}
/* Track card (profile music) */
.track-card{display:flex;align-items:center;gap:11px;padding:11px;border:1.5px solid var(--border);border-radius:12px;background:var(--surface2);margin-bottom:14px}
.track-play-btn{width:38px;height:38px;border-radius:50%;border:none;cursor:pointer;background:var(--accent);color:var(--accent-inv);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .15s}
.track-play-btn:hover{opacity:.85}
.track-play-btn svg{width:16px;height:16px}
.track-info{flex:1;min-width:0}
.track-title{font-size:13.5px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.track-artist{font-size:12px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:5px}
.track-progress-row{display:flex;align-items:center;gap:8px}
.track-progress{flex:1;height:3px;border-radius:2px;cursor:pointer;appearance:none;-webkit-appearance:none;outline:none;accent-color:var(--accent)}
.track-dur{font-size:11px;font-weight:600;color:var(--text3);font-family:'JetBrains Mono',monospace;flex-shrink:0}
.track-remove-btn{width:26px;height:26px;border-radius:50%;border:none;cursor:pointer;background:transparent;color:var(--text3);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}
.track-remove-btn:hover{background:var(--border);color:var(--red)}
.track-remove-btn svg{width:13px;height:13px}
.track-add-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:11px;border:1.5px dashed var(--border2);border-radius:12px;background:transparent;color:var(--text2);font-size:13px;font-weight:600;cursor:pointer;font-family:'Geologica',sans-serif;margin-bottom:14px;transition:all .15s}
.track-add-btn:hover{border-color:var(--text3);color:var(--text)}
.track-add-btn.uploading{opacity:.6;pointer-events:none}
.prof-edit-err{font-size:11.5px;color:var(--red);font-weight:600;min-height:16px;margin-bottom:10px}
.sub-btn{width:100%;height:40px;border-radius:10px;font-size:13.5px;font-weight:700;cursor:pointer;font-family:'Geologica',sans-serif;transition:all .15s;margin-bottom:10px;border:1px solid var(--border)}
.sub-btn.follow{background:var(--accent);color:var(--accent-inv);border-color:var(--accent)}
.sub-btn.unfollow{background:var(--surface2);color:var(--text)}
.sub-btn.follow:hover{opacity:.85}
.sub-btn.unfollow:hover{background:var(--border)}
.up-lowmail{background:var(--surface2);border:1px solid var(--border);border-radius:9px;padding:9px 12px;margin-bottom:14px;font-size:12.5px;font-weight:700;color:var(--text2);font-family:'JetBrains Mono',monospace;text-align:center}

/* FULLSCREEN USER PROFILE PAGE */
.upage-back{display:none;position:fixed;inset:0;background:var(--bg);z-index:600;overflow-y:auto;-webkit-overflow-scrolling:touch}
.upage-back.show{display:block}
.upage-header{background:var(--surface);padding:0 18px;height:54px;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:10}
.upage-stats-btn{margin-left:auto;width:30px;height:30px;border-radius:50%;background:var(--surface2);border:1.5px solid var(--border);color:var(--text2);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;cursor:pointer;flex-shrink:0;transition:all .15s}
.upage-stats-btn:hover{background:var(--accent);color:var(--accent-inv);border-color:var(--accent)}
.ustats-back{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1200;align-items:center;justify-content:center;padding:18px}
.ustats-back.show{display:flex}
.ustats-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:380px;width:100%;max-height:85vh;overflow-y:auto}
.ustats-head{padding:14px 18px;display:flex;align-items:center;justify-content:space-between}
.ustats-head h3{font-size:15px;font-weight:800;color:var(--text);margin:0}
.ustats-body{padding:18px}
.ustats-row{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--border)}
.ustats-row:last-child{border-bottom:none}
.ustats-lbl{font-size:13px;font-weight:600;color:var(--text2)}
.ustats-val{font-size:14px;font-weight:800;color:var(--text)}
.upage-back-btn{width:36px;height:36px;border-radius:9px;border:1px solid var(--border);background:var(--surface2);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .15s}
.upage-back-btn:hover{background:var(--border)}
.upage-back-btn svg{width:18px;height:18px;stroke:var(--text);fill:none;stroke-width:2}
/* кнопка «назад» в профиле - как в информации о канале */
.upage-back .upage-back-btn{width:38px;height:38px;border:none;background:none;border-radius:11px;color:var(--text2)}
.upage-back .upage-back-btn:hover{background:var(--surface2);color:var(--text)}
.upage-back .upage-back-btn svg{width:22px;height:22px;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.upage-title{font-size:15px;font-weight:800;color:var(--text);letter-spacing:-.2px}
.upage-inner{max-width:680px;margin:0 auto;padding:28px 18px}
.acc-locked-banner{display:flex;align-items:center;gap:12px;background:#d7263d;color:#fff;border-radius:16px;padding:16px 18px;margin:0 0 16px;font-weight:700;font-size:17px;line-height:1.25;box-shadow:0 6px 20px rgba(215,38,61,.35)}
.acc-locked-banner svg{width:26px;height:26px;flex-shrink:0;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.acc-locked-banner small{display:block;font-weight:500;font-size:13px;opacity:.9;margin-top:2px}
.acc-locked-banner.dm{border-radius:0;margin:0;padding:10px 14px;font-size:14px;box-shadow:none}
.acc-locked-banner.dm svg{width:18px;height:18px}
#lockedOverlay{position:fixed;inset:0;z-index:2147483000;background:var(--bg);color:var(--text);font-family:'Geologica',sans-serif;display:flex;flex-direction:column;overflow-y:auto;-webkit-font-smoothing:antialiased}
#lockedOverlay .lk-head{position:relative;height:54px;flex-shrink:0;background:var(--surface);display:flex;align-items:center;justify-content:space-between;padding:0 18px}
#lockedOverlay .lk-logo{font-size:18px;font-weight:800;letter-spacing:-.3px}
#lockedOverlay .lk-wrap{position:relative;flex:1;display:flex;align-items:center;justify-content:center;padding:24px 16px}
#lockedOverlay .lk-card{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px 28px;text-align:center}
#lockedOverlay .lk-ico{width:68px;height:68px;margin:0 auto 20px;border-radius:50%;background:rgba(220,38,38,.1);border:1px solid rgba(220,38,38,.3);display:flex;align-items:center;justify-content:center}
#lockedOverlay .lk-ico svg{width:30px;height:30px;stroke:var(--red);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#lockedOverlay h1{font-size:21px;font-weight:800;letter-spacing:-.3px;margin:0 0 10px}
#lockedOverlay p{font-size:14px;font-weight:500;line-height:1.55;color:var(--text2);margin:0 0 10px}
#lockedOverlay .lk-comment{margin:14px 0 0;padding:12px 14px;border-radius:var(--radius-sm);background:rgba(220,38,38,.07);border:1px solid rgba(220,38,38,.25);text-align:left;font-size:13.5px;font-weight:500;line-height:1.5;color:var(--text)}
#lockedOverlay .lk-comment b{display:block;font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--red);margin-bottom:4px}
#lockedOverlay .lk-comment span{display:block;white-space:pre-wrap;word-break:break-word}
#lockedOverlay .lk-note{margin:18px 0 22px;padding:11px 14px;border-radius:var(--radius-sm);background:var(--surface2);border:1px solid var(--border);font-size:12.5px;font-weight:600;color:var(--text2)}
#lockedOverlay .lk-out{width:100%;height:42px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-inv);font-family:'Geologica',sans-serif;font-size:14px;font-weight:700;cursor:pointer;transition:opacity .15s}
#lockedOverlay .lk-out:hover{opacity:.85}
.upage-hero{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:20px}
.upage-ava{width:88px;height:88px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:34px;font-weight:800;flex-shrink:0;overflow:hidden;border:4px solid var(--bg);box-sizing:border-box}
.upage-ava-wrap{position:relative;width:88px;height:88px;flex-shrink:0;margin:-46px 0 0 6px;z-index:2}
.upage-ava img{width:100%;height:100%;object-fit:cover;border-radius:50%}

.st-bubble{position:absolute;left:62px;bottom:78px;width:max-content;max-width:210px;min-width:44px;box-sizing:border-box;padding:9px 13px;border-radius:18px;background:var(--surface2);color:var(--text);font-size:13px;font-weight:700;line-height:1.3;text-align:center;word-break:break-word;box-shadow:0 4px 16px rgba(0,0,0,.28);z-index:5;cursor:default;animation:stPop .28s cubic-bezier(.2,1.4,.4,1)}
.st-bubble::before{content:'';position:absolute;left:-6px;bottom:-9px;width:9px;height:9px;border-radius:50%;background:var(--surface2)}
.st-bubble::after{content:'';position:absolute;left:-14px;bottom:-17px;width:5px;height:5px;border-radius:50%;background:var(--surface2)}
.st-bubble.ph{color:var(--text3);cursor:pointer;font-weight:600}
.st-bubble.own{cursor:pointer}
.st-bubble.own:hover{filter:brightness(1.1)}
@keyframes stPop{from{opacity:0;transform:scale(.6) translateY(8px)}to{opacity:1;transform:none}}
.upage-ava-wrap.has-status{margin-top:18px}
.st-plus{position:absolute;right:-2px;bottom:-2px;width:26px;height:26px;border-radius:50%;background:#5bd0ee;color:#fff;display:none;align-items:center;justify-content:center;border:3px solid var(--bg);box-sizing:content-box;cursor:pointer;z-index:6}
.st-plus svg{width:14px;height:14px}
.upage-ava-wrap.own-pg .st-plus{display:flex}
.hc-status{display:inline-block;margin-top:8px;padding:5px 11px;border-radius:14px;background:var(--surface2);color:var(--text);font-size:12.5px;font-weight:700;max-width:100%;word-break:break-word}
.dm-st-chip{display:inline-block;max-width:110px;margin-left:6px;padding:2px 8px;border-radius:10px;background:var(--surface2);color:var(--text2);font-size:10.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;flex-shrink:1}
.st-ov{position:fixed;inset:0;z-index:100000;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.st-box{width:100%;max-width:380px;background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:20px;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.st-box h3{margin:0 0 4px;font-size:17px;font-weight:800;color:var(--text)}
.st-box p{margin:0 0 12px;font-size:12.5px;color:var(--text3);line-height:1.4}
.st-box textarea{width:100%;box-sizing:border-box;min-height:70px;resize:none;border:1px solid var(--border);border-radius:12px;background:var(--surface2);color:var(--text);font:600 14px 'Geologica',sans-serif;padding:10px 12px;outline:none}
.st-cnt{text-align:right;font-size:11.5px;color:var(--text3);margin:4px 2px 10px}
.st-row{display:flex;gap:8px}
.st-row button{flex:1;height:40px;border:none;border-radius:12px;font:700 13.5px 'Geologica',sans-serif;cursor:pointer;background:var(--surface2);color:var(--text)}
.st-row button.main{background:var(--accent);color:var(--accent-inv)}
.pch-card{display:flex;flex-direction:column;gap:9px;margin:0 0 14px;padding:12px;border:1.5px solid var(--border);border-radius:12px;background:var(--surface2);cursor:pointer;transition:border-color .15s}
.pch-card:hover{border-color:var(--accent)}
.pch-card.add{flex-direction:row;align-items:center;justify-content:center;gap:8px;color:var(--text2);font-size:13.5px;font-weight:700;border-style:dashed;padding:14px}
.pch-edit{margin-left:auto;background:none;border:none;color:var(--text3);font:700 12px 'Geologica',sans-serif;cursor:pointer;padding:2px 4px}
.pch-edit:hover{color:var(--accent)}
.pch-opt{display:flex;align-items:center;gap:12px;padding:11px 12px;margin-bottom:8px;border:1.5px solid var(--border);border-radius:12px;background:var(--surface2);cursor:pointer}
.pch-opt.sel{border-color:var(--accent)}
.pch-opt:hover{border-color:var(--accent)}
.pch-opt .pch-ava{width:42px;height:42px}
.pch-chk{margin-left:auto;color:var(--accent);font-weight:800}
.st-full-ta{width:100%;box-sizing:border-box;min-height:110px;resize:none;border:1.5px solid var(--border);border-radius:12px;background:var(--surface2);color:var(--text);font:600 15px 'Geologica',sans-serif;padding:12px 14px;outline:none}
.st-full-ta:focus{border-color:var(--accent)}
.st-full-btn{width:100%;height:46px;margin-top:10px;border:none;border-radius:12px;font:700 14px 'Geologica',sans-serif;cursor:pointer;background:var(--accent);color:var(--accent-inv)}
.st-full-btn.sec{background:var(--surface2);color:var(--text);border:1.5px solid var(--border)}
.pch-top{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:var(--accent)}
.pch-pill{padding:2px 9px;border-radius:12px;background:rgba(127,127,127,.18);font-size:11.5px;font-weight:600}
.pch-main{display:flex;align-items:center;gap:12px}
.pch-ava{width:46px;height:46px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;overflow:hidden;flex-shrink:0}
.pch-ava img{width:100%;height:100%;object-fit:cover}
.pch-info{min-width:0;flex:1}
.pch-name-row{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.pch-name{font-size:15px;font-weight:800;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pch-date{font-size:11.5px;color:var(--text3);flex-shrink:0}
.pch-last{font-size:13px;color:var(--text2);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pch-btn{height:30px;padding:0 14px;border:none;border-radius:15px;background:var(--accent);color:var(--accent-inv);font:700 12.5px 'Geologica',sans-serif;cursor:pointer;flex-shrink:0}
.upage-info{min-width:0;width:100%;box-sizing:border-box;padding:0 6px}
.upage-display-name{font-size:22px;font-weight:800;color:var(--text);letter-spacing:-.4px;line-height:1.2}
.upage-username{font-size:13.5px;font-weight:600;color:var(--text3);margin-top:2px}
.upage-lowmail{font-size:12px;color:var(--text3);font-weight:500;margin-top:3px;font-family:'JetBrains Mono',monospace}
.upage-birthday{font-size:12.5px;color:var(--text2);font-weight:600;margin-top:5px;display:flex;align-items:center;gap:5px}
.upage-stats{display:flex;gap:20px;margin-bottom:16px;flex-wrap:wrap}
.upage-stat{display:flex;flex-direction:column;align-items:center;gap:1px}
.upage-stat-val{font-size:17px;font-weight:800;color:var(--text)}
.upage-stat-lbl{font-size:11px;font-weight:600;color:var(--text3)}
.upage-rating-stat{cursor:pointer;transition:opacity .15s}
.upage-rating-stat:hover{opacity:.75}
.upage-rating-stat .upage-stat-val{height:22px;display:flex;align-items:center}
.rt-shield{display:block;width:22px;height:26px;overflow:visible}
.rt-shield path{fill:var(--surface2);stroke:var(--text);stroke-width:1.8;stroke-linejoin:round}
.rt-shield text{fill:var(--text);font-weight:800;font-family:inherit;text-anchor:middle}
/* RATING: на весь экран + анимированная дорожка */
#ratingModal.share-modal-back{padding:0;align-items:stretch;justify-content:stretch;background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}
#ratingModal .share-modal{max-width:none;width:100%;height:100vh;height:100dvh;max-height:none;border:none;border-radius:0;box-shadow:none;background:var(--surface);overflow-y:auto}
#ratingModal.show .share-modal{animation:rtFull .32s cubic-bezier(.22,.9,.3,1)}
@keyframes rtFull{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
#ratingModal .share-modal-head{padding-top:max(16px,env(safe-area-inset-top));position:sticky;top:0;background:var(--surface);z-index:2}
#ratingModal .rt-body{width:100%;max-width:520px;margin:0 auto;flex:1;padding:28px 20px max(24px,env(safe-area-inset-bottom))}
#ratingModal .rt-pill{font-size:30px;padding:10px 26px;gap:10px}
#ratingModal .rt-pill svg{width:28px;height:28px}
#ratingModal.show .rt-pill{animation:rtPop .55s cubic-bezier(.3,1.5,.5,1) .1s both}
@keyframes rtPop{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}
#ratingModal .rt-bar{height:46px;border-radius:14px;margin-top:30px;font-size:14px}
#ratingModal .rt-bar-fill{border-radius:14px;transition:width 1.4s cubic-bezier(.22,.8,.2,1);overflow:hidden;min-width:0}
#ratingModal .rt-bar-fill::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,rgba(255,255,255,.0) 0 14px,rgba(255,255,255,.16) 14px 28px);background-size:56px 100%;animation:rtRoad 1.1s linear infinite;opacity:.9}
[data-theme=dark] #ratingModal .rt-bar-fill::before{background:repeating-linear-gradient(115deg,rgba(0,0,0,0) 0 14px,rgba(0,0,0,.14) 14px 28px)}
@keyframes rtRoad{from{background-position:0 0}to{background-position:56px 0}}
#ratingModal .rt-bar-fill::after{content:"";position:absolute;top:0;bottom:0;width:60px;right:0;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.35));animation:rtGlow 1.6s ease-in-out infinite}
[data-theme=dark] #ratingModal .rt-bar-fill::after{background:linear-gradient(90deg,rgba(0,0,0,0),rgba(0,0,0,.25))}
@keyframes rtGlow{0%,100%{opacity:.35}50%{opacity:1}}
#ratingModal .rt-bar::after{content:"";position:absolute;left:14px;right:14px;top:50%;height:0;border-top:2px dashed var(--border);opacity:.0;pointer-events:none}
#ratingModal .rt-note{font-size:13px;margin-top:12px}
#ratingModal .rt-ok{max-width:none}
@media(min-width:700px){
#ratingModal .rt-body{padding-top:44px}}
@media(prefers-reduced-motion:reduce){
#ratingModal .rt-bar-fill::before,#ratingModal .rt-bar-fill::after,#ratingModal.show .rt-pill,#ratingModal.show .share-modal{animation:none}}

/* МАГАЗИН */
.shop-wrap{max-width:560px;margin:0 auto;padding:6px 0 28px}
.shop-bal-v{text-align:center;font-size:44px;font-weight:800;letter-spacing:-1.5px;color:var(--text);margin-top:8px}
.shop-bal-l{text-align:center;font-size:13px;font-weight:600;color:var(--text3);margin:2px 0 14px}
.shop-bal-act{display:flex;justify-content:center;margin-bottom:6px}
.shop-pill{border:none;border-radius:10px;height:38px;padding:0 22px;background:var(--accent);color:var(--accent-inv);font-size:13.5px;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .15s}
.shop-pill:hover{opacity:.85}
.shop-h{font-size:14.5px;font-weight:800;color:var(--text);letter-spacing:-.2px;margin:26px 4px 4px}
.shop-sub{font-size:12.5px;font-weight:500;color:var(--text3);line-height:1.45;margin:0 4px 12px}
.shop-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.shop-offer{position:relative;display:flex;flex-direction:column;gap:3px;padding:14px;border-radius:var(--radius);background:var(--surface);border:none;text-align:left}
.shop-offer-tag{position:absolute;top:10px;right:10px;font-size:10px;font-weight:800;padding:2px 7px;border-radius:6px;background:var(--accent);color:var(--accent-inv)}
.shop-offer-t{font-size:14.5px;font-weight:800;color:var(--text);padding-right:62px}
.shop-offer-d{font-size:11.5px;color:var(--text3);line-height:1.35;min-height:30px}
.shop-offer-pts{font-size:13px;font-weight:700;color:var(--text2);margin-top:4px}
.shop-offer-p{display:flex;align-items:baseline;gap:6px;margin-top:2px}
.shop-offer-p b{font-size:17px;font-weight:800;color:var(--text)}
.shop-offer-p s{font-size:12px;color:var(--text3)}
.shop-buy{border:none;border-radius:10px;height:38px;padding:0 16px;background:var(--accent);color:var(--accent-inv);font-size:13.5px;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .15s}
.shop-buy:hover{opacity:.9}
.shop-buy:disabled{opacity:.4;cursor:default}
.shop-offer .shop-buy{margin-top:auto;width:100%}
.shop-offer-p{margin-bottom:8px}
.shop-check-ttl{text-align:center;font-size:20px;font-weight:800;letter-spacing:-.3px;color:var(--text);margin:0 0 14px}
.shop-custom{margin-top:12px;padding:14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border)}
.shop-custom-t{font-size:13px;font-weight:800;color:var(--text);margin-bottom:8px}
.shop-custom-row{display:flex;gap:10px}
.shop-custom-row input{flex:1;min-width:0;height:38px;border-radius:10px;border:1.5px solid var(--border);background:var(--surface2);color:var(--text);padding:0 14px;font-size:15px;font-weight:700;font-family:inherit;outline:none}
.shop-custom-row input:focus{border-color:var(--accent)}
.shop-custom-p{font-size:12.5px;color:var(--text2);margin-top:8px;font-weight:600}
.shop-check{display:flex;flex-direction:column;gap:10px}
.shop-check-card{padding:16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border)}
.shop-check-cmp{display:flex;gap:8px;margin-bottom:14px}
.shop-check-cmp div{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;padding:12px 4px;border-radius:10px;background:var(--surface2);font-size:11px;font-weight:700;color:var(--text2);text-align:center}
.shop-check-cmp div.me{outline:2px solid var(--accent);color:var(--text)}
.shop-check-st{font-size:13px;font-weight:700;color:var(--green);margin-bottom:10px}
.shop-check-opts{display:flex;gap:10px}
.shop-check-opt{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 8px;border-radius:12px;border:1.5px solid var(--border);background:var(--surface2);color:var(--text);font-family:inherit;cursor:pointer}
.shop-check-opt:hover{border-color:var(--accent)}
.shop-check-opt b{font-size:17px;font-weight:800}
.shop-check-opt span{font-size:12px;font-weight:700;color:var(--text2)}
.shop-check-opt em{font-style:normal;font-size:10.5px;font-weight:800;color:var(--green)}
.shop-soon{display:flex;align-items:center;gap:12px;padding:14px;border-radius:var(--radius);background:var(--surface);border:1px dashed var(--border);color:var(--text2)}
.shop-soon svg{width:28px;height:28px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.shop-soon b{display:block;font-size:14px;color:var(--text)}
.shop-soon span{font-size:12px}
.paid-badge{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;flex-shrink:0;vertical-align:middle;margin-left:3px;clip-path:polygon(50% 2.5%, 60.46% 10.96%, 73.75% 8.88%, 78.58% 21.42%, 91.12% 26.25%, 89.04% 39.54%, 97.5% 50%, 89.04% 60.46%, 91.12% 73.75%, 78.58% 78.58%, 73.75% 91.12%, 60.46% 89.04%, 50% 97.5%, 39.54% 89.04%, 26.25% 91.12%, 21.42% 78.58%, 8.88% 73.75%, 10.96% 60.46%, 2.5% 50%, 10.96% 39.54%, 8.88% 26.25%, 21.42% 21.42%, 26.25% 8.88%, 39.54% 10.96%);background:var(--accent);cursor:pointer;position:relative;top:-1px}
.paid-badge .pd-logo{display:block;width:60%;height:60%;background:var(--accent-inv);-webkit-mask:url(/ii/srTiqWG.png) center/contain no-repeat;mask:url(/ii/srTiqWG.png) center/contain no-repeat}
.shop-check-hero{display:flex;justify-content:center;margin:6px 0 10px;perspective:600px;filter:drop-shadow(0 6px 14px rgba(0,0,0,.25))}
.shop-check-hero.spin .paid-badge{animation:plusSpin .6s cubic-bezier(.22,.8,.24,1) both;transform-origin:50% 50%}
@media (prefers-reduced-motion:reduce){.shop-check-hero.spin .paid-badge{animation:none}}
.shop-check-hero .paid-badge{width:78px;height:78px;margin:0;top:0;cursor:default}
.shop-check .plus-plan+.plus-plan::before{display:none}
.shop-check .plus-plans{margin-bottom:8px}
.shop-check .plus-buy{max-width:none;width:100%;display:block;margin:0}
.rt-buy-btn{width:100%;margin-top:22px;padding:13px;border:1.5px solid var(--accent);border-radius:12px;background:transparent;color:var(--text);font-size:15px;font-weight:800;cursor:pointer;font-family:inherit}
.rt-buy-btn+.rt-ok{margin-top:10px}
/* ПОДТВЕРЖДЕНИЕ ПЕРЕХОДА ПО ССЫЛКЕ (в стиле шторки бейджа) */
.lc-modal{z-index:100090}
.lc-sheet{min-height:0!important;padding-top:34px}
.lc-sheet .bgs-hero{width:96px;height:96px;margin:6px 0 0}
.lc-ico{width:100%;height:100%;display:block;overflow:visible}
.lc-ico .lc-bg{fill:var(--accent)}
.lc-ico .lc-fg{fill:none;stroke:var(--accent-inv);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.lc-sheet h3{margin-top:22px}
.lc-url{margin:16px 0 0;width:100%;padding:11px 14px;border-radius:14px;background:var(--surface2);color:var(--text);font-size:13px;font-weight:600;line-height:1.4;word-break:break-all;max-height:84px;overflow-y:auto;opacity:0;transform:translateY(8px)}
.lc-url b{font-weight:800}
.lc-modal.show .lc-url{animation:bgsUp .45s ease .5s forwards}
.lc-btns{display:flex;flex-direction:column;gap:10px;width:100%;margin-top:20px;opacity:0;transform:translateY(8px)}
.lc-modal.show .lc-btns{animation:bgsUp .45s ease .6s forwards}
.lc-btn{width:100%;padding:14px;border:none;border-radius:14px;font-size:15px;font-weight:800;cursor:pointer;font-family:inherit;transition:opacity .15s}
.lc-btn:hover{opacity:.9}
.lc-btn.p{background:var(--accent);color:var(--accent-inv)}
.lc-btn.s{background:var(--surface2);color:var(--text)}

.rt-body{padding:18px 20px 20px;display:flex;flex-direction:column;align-items:center}
.rt-pill{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:var(--accent-inv);border-radius:999px;padding:8px 20px;font-size:22px;font-weight:800;position:relative}
.rt-pill svg{width:22px;height:22px;fill:currentColor}
.rt-pill small{font-size:13px;font-weight:700;opacity:.75;margin-left:-2px}
.rt-pill::after{content:"";position:absolute;left:50%;bottom:-6px;width:12px;height:12px;background:var(--accent);transform:translateX(-50%) rotate(45deg);border-radius:2px}
.rt-bar{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:22px;background:var(--surface2);border-radius:10px;height:34px;position:relative;overflow:hidden;font-size:13px;font-weight:800}
.rt-bar-fill{position:absolute;left:0;top:0;bottom:0;background:var(--accent);border-radius:10px;transition:width .3s}
.rt-bar span{position:relative;z-index:1;padding:0 14px}
.rt-bar .rt-l{color:var(--accent-inv)}
.rt-bar .rt-r{color:var(--text)}
.rt-note{margin-top:10px;font-size:12px;color:var(--text3);text-align:center}
.rt-title{font-size:19px;font-weight:800;color:var(--text);margin-top:18px}
.rt-sub{font-size:13.5px;color:var(--text);text-align:center;margin-top:8px;line-height:1.45}
.rt-list{width:100%;margin-top:16px;display:flex;flex-direction:column;gap:14px}
.rt-item{display:flex;gap:12px;align-items:flex-start}
.rt-ico{width:34px;height:34px;flex-shrink:0;border-radius:10px;background:var(--surface2);color:var(--text);display:flex;align-items:center;justify-content:center}
.rt-ico svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.rt-item-t{font-size:14.5px;font-weight:800;color:var(--text)}
.rt-item-d{font-size:12.5px;color:var(--text2);line-height:1.45;margin-top:2px}
.rt-badge{display:inline-block;background:var(--accent);color:var(--accent-inv);font-size:10.5px;font-weight:800;border-radius:6px;padding:1px 7px;margin-right:4px;vertical-align:1px}
.rt-ok{width:100%;margin-top:22px;padding:13px;border:none;border-radius:12px;background:var(--accent);color:var(--accent-inv);font-size:15px;font-weight:800;cursor:pointer;font-family:inherit}
.rt-ok:hover{opacity:.9}
.upage-sub-btn{height:38px;padding:0 22px;border-radius:10px;font-size:13.5px;font-weight:700;cursor:pointer;font-family:'Geologica',sans-serif;transition:all .15s;border:1px solid var(--border)}
.upage-sub-btn.follow{background:var(--accent);color:var(--accent-inv);border-color:var(--accent)}
.upage-sub-btn.unfollow{background:var(--surface2);color:var(--text)}
.upage-sub-btn.follow:hover{opacity:.85}
.upage-sub-btn.unfollow:hover{background:var(--border)}
.upage-sub-btn.friends{background:var(--surface2);color:var(--accent);border-color:var(--border)}
.upage-sub-btn.friends:hover{background:var(--border)}
.upage-posts-title{font-size:13px;font-weight:800;color:var(--text3);text-transform:uppercase;letter-spacing:.7px;margin-bottom:12px}
.upage-feed{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}

/* NEWS MODAL */
.nmback{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(5px);z-index:400;align-items:center;justify-content:center;padding:20px;overflow-y:auto}
.nmback.show{display:flex}
.nmbox{background:var(--surface);border:1px solid var(--border);border-radius:18px;max-width:620px;width:100%;max-height:88vh;overflow-y:auto;box-shadow:0 24px 60px rgba(0,0,0,.25)}
.nmhead{padding:16px 20px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;position:sticky;top:0;background:var(--surface)}
.nmhead h3{font-size:17px;font-weight:800;color:var(--text);letter-spacing:-.2px;line-height:1.35}
.nmbody{padding:18px 20px}
.nmimg{width:100%;border-radius:10px;margin-bottom:12px;max-height:260px;object-fit:cover}
.nmmeta{font-size:12px;color:var(--text3);margin-bottom:12px;display:flex;gap:7px;font-weight:600}
.nmsrc{color:var(--text2)}
.nmtext{font-size:14.5px;line-height:1.75;color:var(--text2)}
.nmlink{display:inline-flex;align-items:center;gap:5px;margin-top:14px;font-size:13px;font-weight:700;color:var(--text);text-decoration:none;border:1px solid var(--border);padding:7px 14px;border-radius:8px;background:var(--surface2);transition:all .15s}
.nmlink:hover{background:var(--border);color:var(--text)}

/* CODE BLOCKS */
.code-block{background:var(--surface2);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin:6px 0;font-size:13px;max-width:100%}
.code-block-head{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--border2,var(--border));border-bottom:1px solid var(--border)}
.code-lang{font-size:11px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.5px;font-family:'JetBrains Mono',monospace}
.code-copy-btn{font-size:11px;font-weight:700;color:var(--text2);background:none;border:none;cursor:pointer;font-family:'Geologica',sans-serif;padding:2px 8px;border-radius:6px;transition:all .15s;white-space:nowrap}
.code-copy-btn:hover{background:var(--surface);color:var(--text)}
.code-copy-btn.copied{color:var(--green)}
.code-block pre{margin:0;padding:12px 14px;overflow-x:auto;max-width:100%;font-family:'JetBrains Mono',monospace;font-size:13px;line-height:1.6;color:var(--text);white-space:pre;-webkit-overflow-scrolling:touch}
[data-theme=dark] .code-block{background:#1a1a2e}
[data-theme=dark] .code-block-head{background:#16213e;border-color:#2a2a4a}
[data-theme=dark] .code-block pre{color:#e2e8f0}
[data-theme=dark] .code-lang{color:#94a3b8}
[data-theme=dark] .code-copy-btn{color:#94a3b8}
[data-theme=dark] .code-copy-btn:hover{background:#2a2a4a;color:#e2e8f0}
.dm-msg-wrap.mine .code-block{background:rgba(0,0,0,.25);border-color:rgba(255,255,255,.15)}
.dm-msg-wrap.mine .code-block-head{background:rgba(0,0,0,.2);border-color:rgba(255,255,255,.1)}
.dm-msg-wrap.mine .code-lang,.dm-msg-wrap.mine .code-copy-btn{color:rgba(255,255,255,.65)}
.dm-msg-wrap.mine .code-block pre{color:rgba(255,255,255,.95)}
.inline-code{font-family:'JetBrains Mono',monospace;font-size:12.5px;background:var(--surface2);border:1px solid var(--border);border-radius:5px;padding:1px 5px;color:var(--text)}
[data-theme=dark] .inline-code{background:#1a1a2e;border-color:#2a2a4a;color:#e2e8f0}
.dm-msg-wrap.mine .inline-code{background:rgba(0,0,0,.2);border-color:rgba(255,255,255,.15);color:rgba(255,255,255,.95)}
/* ── CODE CARD (плашка-файл в чате ИИ) + ПОЛНОЭКРАННЫЙ ПРОСМОТР КОДА ── */
.code-card{display:flex;align-items:center;gap:14px;width:100%;min-width:230px;max-width:390px;margin:8px 0;padding:12px 14px;background:var(--surface);border:1px solid var(--border2);border-radius:18px;cursor:pointer;text-align:left;white-space:normal;color:var(--text);box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;transition:transform .12s,background .15s,border-color .15s;font-family:'Geologica',sans-serif;line-height:1.3}
.code-card:hover{background:var(--surface2)}
.code-card:active{transform:scale(.98)}
.code-card-ic{width:46px;height:46px;border-radius:14px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);color:var(--accent)}
.code-card-ic svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.code-card-tx{min-width:0;flex:1}
.code-card-name{font-size:14.5px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.code-card-sub{margin-top:3px;font-size:12.5px;font-weight:500;color:var(--text2)}
.code-card-arr{width:18px;height:18px;flex-shrink:0;stroke:var(--text3);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cv-ov{position:fixed;inset:0;z-index:100050;background:var(--bg);color:var(--text);display:none;flex-direction:column;font-family:'Geologica',sans-serif;-webkit-font-smoothing:antialiased}
.cv-ov.show{display:flex;animation:cvIn .24s cubic-bezier(.2,.8,.3,1)}
@keyframes cvIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.cv-head{position:relative;display:flex;align-items:center;gap:6px;flex-shrink:0;padding:calc(10px + env(safe-area-inset-top,0px)) 10px 10px;background:var(--bg)}
.cv-btn{width:42px;height:42px;border-radius:50%;border:none;background:none;color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent;transition:background .15s}
.cv-btn:hover,.cv-btn:active{background:var(--surface2)}
.cv-btn svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cv-btn svg .f{fill:currentColor;stroke:none}
.cv-title{flex:1;min-width:0;text-align:center;line-height:1.25}
.cv-title span{display:block;font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cv-title small{display:block;margin-top:1px;font-size:11.5px;font-weight:500;color:var(--text2)}
.cv-menu{position:absolute;right:10px;top:calc(100% - 2px);min-width:210px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.28);display:none;z-index:3}
.cv-menu.show{display:block;animation:cvPop .16s ease;transform-origin:top right}
@keyframes cvPop{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
.cv-menu button{display:flex;align-items:center;gap:12px;width:100%;padding:12px;border:none;background:none;color:var(--text);font:600 14px 'Geologica',sans-serif;text-align:left;border-radius:11px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.cv-menu button:hover,.cv-menu button:active{background:var(--surface2)}
.cv-menu svg{width:18px;height:18px;flex-shrink:0;stroke:var(--text2);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cv-body{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px calc(28px + env(safe-area-inset-bottom,0px))}
.cv-body pre{margin:0;width:max-content;min-width:100%;font-family:'JetBrains Mono',monospace;font-size:calc(13px*var(--fs,1));line-height:1.6;color:var(--text);white-space:pre;tab-size:4;-moz-tab-size:4}
.cv-body pre code,.cv-body pre code.hljs{display:block;background:transparent;padding:0;color:inherit;font:inherit}
.cv-toast{position:absolute;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%) translateY(14px);padding:10px 18px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:22px;box-shadow:0 10px 30px rgba(0,0,0,.25);font-size:13.5px;font-weight:600;opacity:0;pointer-events:none;transition:opacity .2s,transform .28s cubic-bezier(.2,.9,.3,1.15);white-space:nowrap}
.cv-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.cv-body .hljs-keyword,.cv-body .hljs-selector-tag,.cv-body .hljs-literal,.cv-body .hljs-section,.cv-body .hljs-link{color:#d73a49}
.cv-body .hljs-string,.cv-body .hljs-attr,.cv-body .hljs-symbol,.cv-body .hljs-bullet,.cv-body .hljs-addition,.cv-body .hljs-tag{color:#22863a}
.cv-body .hljs-comment,.cv-body .hljs-quote,.cv-body .hljs-deletion{color:#6a737d;font-style:italic}
.cv-body .hljs-number,.cv-body .hljs-regexp,.cv-body .hljs-meta,.cv-body .hljs-attribute{color:#005cc5}
.cv-body .hljs-variable,.cv-body .hljs-template-variable,.cv-body .hljs-params{color:#e36209}
.cv-body .hljs-emphasis{font-style:italic}
.cv-body .hljs-strong{font-weight:700}
[data-theme=dark] .cv-body .hljs-keyword,[data-theme=dark] .cv-body .hljs-selector-tag,[data-theme=dark] .cv-body .hljs-literal,[data-theme=dark] .cv-body .hljs-section,[data-theme=dark] .cv-body .hljs-link{color:#ff7b72}
[data-theme=dark] .cv-body .hljs-string,[data-theme=dark] .cv-body .hljs-attr,[data-theme=dark] .cv-body .hljs-symbol,[data-theme=dark] .cv-body .hljs-bullet,[data-theme=dark] .cv-body .hljs-addition,[data-theme=dark] .cv-body .hljs-tag{color:#7ee787}
[data-theme=dark] .cv-body .hljs-comment,[data-theme=dark] .cv-body .hljs-quote,[data-theme=dark] .cv-body .hljs-deletion{color:#8b949e;font-style:italic}
[data-theme=dark] .cv-body .hljs-number,[data-theme=dark] .cv-body .hljs-regexp,[data-theme=dark] .cv-body .hljs-meta,[data-theme=dark] .cv-body .hljs-attribute{color:#79c0ff}
.cv-run-btn{display:none;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border:none;border-radius:50%;background:var(--accent);color:#fff;cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent}
.cv-run-btn.on{display:flex}
.cv-run-btn:active{transform:scale(.96)}
.cv-run-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.cv-run-btn svg.f{fill:currentColor;stroke:none}
.cv-runpane{display:none;flex:1;min-height:0;background:#fff}
.cv-ov.cv-running .cv-runpane{display:block}
.cv-ov.cv-running .cv-body{display:none}
.cv-runpane iframe{display:block;width:100%;height:100%;border:0;background:#fff}
.cv-menu button.cv-only-run,.cv-menu button.cv-only-sel{display:none}
.cv-ov.cv-running .cv-menu button.cv-only-run,.cv-menu button.cv-only-sel.on{display:flex}
.cv-wrap{position:relative;display:flex;width:max-content;min-width:100%}
.cv-gut{position:sticky;left:0;z-index:2;flex-shrink:0;box-sizing:content-box;padding-right:12px;margin-right:12px;text-align:right;color:var(--text3);background:var(--bg);border-right:1px solid var(--border);font-family:'JetBrains Mono',monospace;font-size:calc(13px*var(--fs,1));line-height:1.6;white-space:pre;-webkit-user-select:none;user-select:none;cursor:pointer}
.cv-body .cv-wrap pre{flex:1;min-width:0;width:auto}
.cv-hl{position:absolute;left:0;right:0;z-index:3;pointer-events:none;background:color-mix(in srgb,var(--accent) 16%,transparent);border-left:3px solid var(--accent)}
[data-theme=dark] .cv-body .hljs-variable,[data-theme=dark] .cv-body .hljs-template-variable,[data-theme=dark] .cv-body .hljs-params{color:#ffa657}
/* ── SYNTAX HIGHLIGHTING (highlight.js tokens) ── */
.code-block pre code{background:transparent;padding:0;color:inherit;font:inherit}
.ai-md-p{margin:0 0 8px}
.ai-md-p:last-child{margin-bottom:0}
.ai-md-h1,.ai-md-h2{font-size:16.5px;font-weight:800;margin:10px 0 6px;line-height:1.35}
.ai-md-h3{font-size:15px;font-weight:750;margin:9px 0 5px;line-height:1.35}
.ai-md-h4{font-size:14px;font-weight:700;margin:8px 0 4px;line-height:1.35}
.ai-md-h1:first-child,.ai-md-h2:first-child,.ai-md-h3:first-child,.ai-md-h4:first-child{margin-top:0}
.ai-md-hr{border:none;border-top:1px solid currentColor;opacity:.2;margin:10px 0}
.ai-md-ul,.ai-md-ol{margin:2px 0 8px;padding-left:20px}
.ai-md-ul li,.ai-md-ol li{margin:3px 0;line-height:1.55}
.ai-md-quote{border-left:3px solid currentColor;padding:1px 0 1px 10px;margin:6px 0;opacity:.8;font-style:italic}
.ai-md-ul ul,.ai-md-ul ol,.ai-md-ol ul,.ai-md-ol ol{margin:2px 0 2px;padding-left:20px}
.ai-md-task{list-style:none;margin-left:-18px!important}
.ai-md-chk{display:inline-block;width:14px;height:14px;border:1.5px solid currentColor;border-radius:4px;margin-right:7px;vertical-align:-2px;opacity:.6;position:relative;box-sizing:border-box}
.ai-md-chk.on{opacity:1;background:currentColor}
.ai-md-chk.on::after{content:'';position:absolute;left:3.5px;top:.5px;width:3.5px;height:7px;border:solid var(--surface,#fff);border-width:0 2px 2px 0;transform:rotate(45deg)}
.ai-md-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;margin:6px 0 10px;border:1px solid color-mix(in srgb,currentColor 22%,transparent);border-radius:10px}
.ai-md-table{border-collapse:collapse;width:max-content;min-width:100%;font-size:.93em}
.ai-md-table th,.ai-md-table td{padding:7px 12px;vertical-align:top;line-height:1.45;border-bottom:1px solid color-mix(in srgb,currentColor 14%,transparent);border-right:1px solid color-mix(in srgb,currentColor 14%,transparent)}
.ai-md-table th:last-child,.ai-md-table td:last-child{border-right:none}
.ai-md-table tbody tr:last-child td{border-bottom:none}
.ai-md-table thead th{font-weight:700;background:color-mix(in srgb,currentColor 9%,transparent);white-space:nowrap}
.ai-md-img{max-width:100%;border-radius:10px;display:block;margin:6px 0}
.ai-md-p del,.ai-md-ul del,.ai-md-ol del{opacity:.7}
.ai-math-block{margin:8px 0;max-width:100%;overflow-x:auto;overflow-y:hidden;text-align:center;-webkit-overflow-scrolling:touch}
.ai-math-block .katex-display{margin:0;padding:2px 0}
.ai-math-block .katex{font-size:1.12em}
.ai-math-inline .katex{font-size:1.04em}
.ai-math-inline{display:inline-block;max-width:100%;vertical-align:baseline}
.ai-math-pending{font-family:'JetBrains Mono',monospace;font-size:.9em;opacity:.75;white-space:pre-wrap}
.katex-error{color:inherit!important}
.ai-msg-bubble.mine .code-block{background:rgba(0,0,0,.25);border-color:rgba(255,255,255,.15);text-align:left}
.ai-msg-bubble.mine .code-block-head{background:rgba(0,0,0,.2);border-color:rgba(255,255,255,.1)}
.ai-msg-bubble.mine .code-copy-btn,.ai-msg-bubble.mine .code-lang{color:inherit}
.ai-msg-bubble.mine .code-block pre{white-space:pre}
.katex .mclose:not(.nulldelimiter),.katex .mopen:not(.nulldelimiter){width:auto;height:auto;border-radius:0;border:none;background:none;color:inherit;font-size:inherit;cursor:inherit;display:inline;align-items:normal;justify-content:normal;transition:none}
.katex .mclose:hover,.katex .mopen:hover{background:none;color:inherit}
.katex .mclose.nulldelimiter,.katex .mopen.nulldelimiter{display:inline-block;width:.12em;height:0;border-radius:0;background:none}
.code-block .hljs-keyword,.code-block .hljs-selector-tag,.code-block .hljs-literal,.code-block .hljs-section,.code-block .hljs-link{color:#d73a49}
.code-block .hljs-string,.code-block .hljs-attr,.code-block .hljs-symbol,.code-block .hljs-bullet,.code-block .hljs-addition,.code-block .hljs-tag{color:#22863a}
.code-block .hljs-comment,.code-block .hljs-quote,.code-block .hljs-deletion{color:#6a737d;font-style:italic}
.code-block .hljs-number,.code-block .hljs-regexp,.code-block .hljs-meta,.code-block .hljs-attribute{color:#005cc5}
.code-block .hljs-variable,.code-block .hljs-template-variable,.code-block .hljs-params{color:#e36209}
.code-block .hljs-emphasis{font-style:italic}
.code-block .hljs-strong{font-weight:700}
[data-theme=dark] .code-block .hljs-keyword,[data-theme=dark] .code-block .hljs-selector-tag,[data-theme=dark] .code-block .hljs-literal,[data-theme=dark] .code-block .hljs-section,[data-theme=dark] .code-block .hljs-link{color:#ff7b72}
[data-theme=dark] .code-block .hljs-string,[data-theme=dark] .code-block .hljs-attr,[data-theme=dark] .code-block .hljs-symbol,[data-theme=dark] .code-block .hljs-bullet,[data-theme=dark] .code-block .hljs-addition,[data-theme=dark] .code-block .hljs-tag{color:#7ee787}
[data-theme=dark] .code-block .hljs-comment,[data-theme=dark] .code-block .hljs-quote,[data-theme=dark] .code-block .hljs-deletion{color:#8b949e;font-style:italic}
[data-theme=dark] .code-block .hljs-number,[data-theme=dark] .code-block .hljs-regexp,[data-theme=dark] .code-block .hljs-meta,[data-theme=dark] .code-block .hljs-attribute{color:#79c0ff}
[data-theme=dark] .code-block .hljs-variable,[data-theme=dark] .code-block .hljs-template-variable,[data-theme=dark] .code-block .hljs-params{color:#ffa657}


/* QR CARD IN DM */
.dm-qr-card{border-radius:14px;overflow:hidden;width:220px;cursor:default;background:var(--surface);border:1px solid var(--border)}
.dm-qr-card-top{padding:12px 13px 10px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border)}
.dm-qr-card-icon{width:32px;height:32px;border-radius:8px;background:var(--surface2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dm-qr-card-icon svg{width:16px;height:16px}
.dm-qr-card-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text3);margin-bottom:3px}
.dm-qr-card-text{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}
.dm-qr-card-qr{display:flex;align-items:center;justify-content:center;padding:14px;background:#fff}
.dm-qr-card-footer{padding:8px 13px;font-size:10.5px;color:var(--text3);font-weight:600;text-align:center}
/* В тёмной теме у отправителя бабл белый → делаем текст тоже светлым */
[data-theme=dark] .dm-msg-wrap.mine .dm-qr-card{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.18)}
[data-theme=dark] .dm-msg-wrap.mine .dm-qr-card-top{border-color:rgba(255,255,255,.14)}
[data-theme=dark] .dm-msg-wrap.mine .dm-qr-card-icon{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.18)}
[data-theme=dark] .dm-msg-wrap.mine .dm-qr-card-label{color:rgba(255,255,255,.5)}
[data-theme=dark] .dm-msg-wrap.mine .dm-qr-card-text{color:#fff}
[data-theme=dark] .dm-msg-wrap.mine .dm-qr-card-footer{color:rgba(255,255,255,.4)}

/* PROFILE CARD IN DM - виджет карточки профиля, отправленный командой /user @username */
.dm-profile-card{border-radius:14px;overflow:hidden;width:236px;cursor:pointer;background:var(--surface);border:1px solid var(--border);transition:border-color .15s}
.dm-profile-card:hover{border-color:var(--accent)}
.dm-profile-card-top{padding:14px 14px 10px;display:flex;align-items:center;gap:11px}
.dm-profile-card-ava{position:relative;width:44px;height:44px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:800;flex-shrink:0;overflow:hidden}
.dm-profile-card-ava img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.dm-profile-card-online-dot{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;background:#17bf63;border:2px solid var(--surface)}
.dm-profile-card-meta{min-width:0;flex:1}
.dm-profile-card-name{font-size:14px;font-weight:800;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dm-profile-card-uname{font-size:12px;font-weight:500;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.dm-profile-card-bio{padding:0 14px 10px;font-size:12.5px;font-weight:500;color:var(--text2);line-height:1.4}
.dm-profile-card-stats{display:flex;gap:14px;padding:0 14px 12px;border-bottom:1px solid var(--border)}
.dm-profile-card-stat{font-size:11.5px;color:var(--text3);font-weight:500}
.dm-profile-card-stat b{color:var(--text);font-weight:800}
.dm-profile-card-btn{display:block;width:100%;padding:10px 14px;border:none;background:none;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--accent);cursor:pointer;text-align:center;transition:background .12s}
.dm-profile-card-btn:hover{background:var(--surface2)}
/* В тёмной теме у отправителя бабл белый → делаем текст тоже светлым */
[data-theme=dark] .dm-msg-wrap.mine .dm-profile-card{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.18)}
[data-theme=dark] .dm-msg-wrap.mine .dm-profile-card-name{color:#fff}
[data-theme=dark] .dm-msg-wrap.mine .dm-profile-card-uname{color:rgba(255,255,255,.55)}
[data-theme=dark] .dm-msg-wrap.mine .dm-profile-card-bio{color:rgba(255,255,255,.75)}
[data-theme=dark] .dm-msg-wrap.mine .dm-profile-card-stats{border-color:rgba(255,255,255,.14)}
[data-theme=dark] .dm-msg-wrap.mine .dm-profile-card-stat{color:rgba(255,255,255,.5)}
[data-theme=dark] .dm-msg-wrap.mine .dm-profile-card-stat b{color:#fff}
[data-theme=dark] .dm-msg-wrap.mine .dm-profile-card-btn:hover{background:rgba(255,255,255,.1)}

/* GRADE CARD IN DM */
.dm-grade-card{border-radius:14px;overflow:hidden;width:236px;cursor:default;background:var(--surface);border:1px solid var(--border)}
.dm-grade-top{padding:14px 13px 12px;display:flex;align-items:center;gap:0;border-bottom:1px solid var(--border)}
.dm-grade-icon{display:none}
.dm-grade-meta{display:flex;flex-direction:column;gap:0;flex:1}
.dm-grade-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text3);margin-bottom:5px}
.dm-grade-avg{font-size:46px;font-weight:800;line-height:1;letter-spacing:-3px;color:var(--text)}
.dm-grade-avg-color-5{color:#16a34a!important}
.dm-grade-avg-color-4{color:#2563eb!important}
.dm-grade-avg-color-3{color:#d97706!important}
.dm-grade-avg-color-2{color:#dc2626!important}
.dm-grade-divider{display:none}
.dm-grade-stats{display:grid;grid-template-columns:repeat(4,1fr);padding:10px 11px;gap:5px;border-bottom:1px solid var(--border)}
.dm-grade-stat{text-align:center;background:var(--surface2);border:1px solid var(--border);border-radius:7px;padding:7px 4px 5px}
.dm-grade-stat-num{font-size:16px;font-weight:800;color:var(--text);line-height:1}
.dm-grade-stat-lbl{font-size:10px;margin-top:3px;color:var(--text3);line-height:1;font-weight:600}
.dm-grade-total{padding:7px 13px;font-size:10.5px;color:var(--text3);font-weight:600;border-bottom:1px solid var(--border)}
.dm-grade-sender{padding:7px 13px 10px;font-size:10.5px;color:var(--text3);font-weight:600;display:flex;align-items:center;gap:5px}
.dm-grade-sender-dot{width:5px;height:5px;border-radius:50%;background:var(--border2);flex-shrink:0}
/* Тёмная тема - отправитель */
[data-theme=dark] .dm-msg-wrap.mine .dm-grade-card{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.18)}
[data-theme=dark] .dm-msg-wrap.mine .dm-grade-top{border-color:rgba(255,255,255,.14)}
[data-theme=dark] .dm-msg-wrap.mine .dm-grade-label{color:rgba(255,255,255,.5)}
[data-theme=dark] .dm-msg-wrap.mine .dm-grade-avg{color:#fff}
[data-theme=dark] .dm-msg-wrap.mine .dm-grade-stats{border-color:rgba(255,255,255,.14)}
[data-theme=dark] .dm-msg-wrap.mine .dm-grade-stat{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.14)}
[data-theme=dark] .dm-msg-wrap.mine .dm-grade-stat-num{color:#fff}
[data-theme=dark] .dm-msg-wrap.mine .dm-grade-stat-lbl{color:rgba(255,255,255,.45)}
[data-theme=dark] .dm-msg-wrap.mine .dm-grade-total{color:rgba(255,255,255,.4);border-color:rgba(255,255,255,.14)}
[data-theme=dark] .dm-msg-wrap.mine .dm-grade-sender{color:rgba(255,255,255,.4)}
[data-theme=dark] .dm-msg-wrap.mine .dm-grade-sender-dot{background:rgba(255,255,255,.3)}

/* GRADE SHARE MODAL */
.grade-share-back{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);z-index:700;align-items:flex-end;justify-content:center;padding:0}
.grade-share-back.show{display:flex}
.grade-share-sheet{background:var(--surface);border-radius:20px 20px 0 0;width:100%;max-width:500px;padding:20px 18px 32px;box-shadow:0 -8px 40px rgba(0,0,0,.2)}
.grade-share-title{font-size:15px;font-weight:800;color:var(--text);margin-bottom:4px}
.grade-share-sub{font-size:12.5px;color:var(--text3);font-weight:500;margin-bottom:16px}
.grade-share-contacts{display:flex;flex-direction:column;gap:2px;max-height:280px;overflow-y:auto}
.grade-share-contact{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;cursor:pointer;transition:background .12s}
.grade-share-contact:hover{background:var(--surface2)}
.grade-share-contact-ava{width:36px;height:36px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;flex-shrink:0;overflow:hidden}
.grade-share-contact-ava img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.grade-share-contact-name{font-size:13.5px;font-weight:700;color:var(--text)}
.grade-share-contact-sub{font-size:11.5px;color:var(--text3);font-weight:500}


.dm-scroll-btn{position:absolute;bottom:70px;right:16px;width:36px;height:36px;border-radius:50%;background:var(--surface);border:1px solid var(--border);box-shadow:0 2px 12px rgba(0,0,0,.15);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:10;opacity:0;pointer-events:none;transform:translateY(8px)}
.dm-scroll-btn.show{opacity:1;pointer-events:auto;transform:translateY(0)}
.dm-scroll-btn svg{width:16px;height:16px;stroke:var(--text2);fill:none;stroke-width:2}
.dm-scroll-btn .dm-scroll-badge{position:absolute;top:-4px;right:-4px;background:var(--accent);color:var(--accent-inv);font-size:10px;font-weight:800;border-radius:10px;min-width:16px;height:16px;padding:0 3px;display:flex;align-items:center;justify-content:center;line-height:1}
/* DM load-more indicator */
.dm-load-more{text-align:center;padding:10px;font-size:12px;font-weight:600;color:var(--text3)}
/* ── скелетоны вместо спиннеров ── */
@keyframes skelShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.sk{display:block;border-radius:8px;background:linear-gradient(90deg,var(--surface2) 25%,color-mix(in srgb,var(--surface2) 55%,var(--border)) 50%,var(--surface2) 75%);background-size:200% 100%;animation:skelShimmer 1.4s linear infinite}
.sk.c{border-radius:50%}
.sk-post{padding:14px 16px;display:flex;flex-direction:column;gap:10px;border-bottom:1px solid var(--border)}
.sk-post-h{display:flex;align-items:center;gap:10px}
.sk-post-h .sk.c{width:38px;height:38px;flex-shrink:0}
.sk-post-h .sk-col{display:flex;flex-direction:column;gap:6px;flex:1}
.sk-row{display:flex;align-items:center;gap:12px;padding:11px 14px}
.sk-row .sk.c{width:46px;height:46px;flex-shrink:0}
.sk-row .sk-col{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}
.sk-msgs{display:flex;flex-direction:column;gap:10px;padding:16px 14px;width:100%}
.sk-msgs .sk{height:38px;border-radius:16px}
.sk-msgs .sk.me{align-self:flex-end}
.dm-load-spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--text3);border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle;margin-right:6px}
@keyframes spin{to{transform:rotate(360deg)}}

/* WIFI QR CARD IN DM */
.dm-ai-card{min-width:190px;max-width:100%}
html .dm-msg-wrap .dm-ai-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left}
html .dm-msg-wrap .dm-ai-card .dm-ai-ask,html .dm-msg-wrap .dm-ai-card .dm-ai-answer,html .dm-msg-wrap .dm-ai-card .dm-ai-err,html .dm-msg-wrap .dm-ai-card .dm-ai-badge{align-self:flex-start;text-align:left}
html .dm-msg-wrap .dm-ai-card .dm-ai-ask{max-width:100%}
.dm-ai-ask{font-size:14px;font-weight:500;line-height:1.45;color:inherit;border-left:3px solid var(--accent);padding:1px 0 1px 8px;margin-bottom:8px;word-break:break-word;white-space:pre-wrap;max-height:84px;overflow:hidden}
.dm-ai-reqbadge{text-transform:none;letter-spacing:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:6px}
.dm-ai-badge svg{width:10px;height:10px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.dm-ai-card[data-ai-st="pending"] .dm-ai-badge svg{animation:dmAiSpark 1.4s ease-in-out infinite}
.dm-ai-wait{display:flex;align-items:center;gap:6px;font-size:13.5px;font-weight:700}
.dm-ai-wait-t{background:linear-gradient(90deg,var(--text3) 0%,var(--text) 50%,var(--text3) 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:dmAiShimmer 1.7s linear infinite}
.dm-ai-dots{display:inline-flex;gap:3px;align-items:center}
.dm-ai-dots i{width:5px;height:5px;border-radius:50%;background:var(--accent);animation:dmAiDot 1.1s ease-in-out infinite}
.dm-ai-dots i:nth-child(2){animation-delay:.16s}
.dm-ai-dots i:nth-child(3){animation-delay:.32s}
.dm-ai-err{font-size:13px;font-weight:600;color:var(--red)}
.dm-ai-answer{font-size:14px;line-height:1.45;word-break:break-word}
@keyframes dmAiShimmer{0%{background-position:120% 0}100%{background-position:-120% 0}}
@keyframes dmAiDot{0%,80%,100%{transform:translateY(0);opacity:.35}40%{transform:translateY(-4px);opacity:1}}
@keyframes dmAiSpark{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.25) rotate(25deg)}}
@media (prefers-reduced-motion:reduce){.dm-ai-wait-t,.dm-ai-dots i,.dm-ai-card .dm-ai-badge svg{animation:none!important}}
.dm-prompt-card{border-radius:14px;overflow:hidden;width:250px;cursor:default;background:var(--surface);border:1px solid var(--border)}
.dm-prompt-card-top{padding:12px 13px 10px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border)}
.dm-prompt-card-icon{width:32px;height:32px;border-radius:8px;background:var(--surface2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dm-prompt-card-icon svg{width:16px;height:16px}
.dm-prompt-card-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text3);margin-bottom:3px}
.dm-prompt-card-title{font-size:13px;font-weight:700;color:var(--text)}
.dm-prompt-card-text{padding:11px 13px;font-size:12.5px;font-weight:500;color:var(--text2);line-height:1.4;max-height:110px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}
.dm-prompt-card-actions{display:flex;gap:8px;padding:0 13px 12px}
.dm-prompt-card-btn{flex:1;border:none;border-radius:10px;padding:8px 10px;font-size:11.5px;font-weight:700;font-family:inherit;cursor:pointer;transition:opacity .15s}
.dm-prompt-card-btn.primary{background:var(--accent);color:var(--accent-inv)}
.dm-prompt-card-btn.secondary{background:var(--surface2);color:var(--text2);border:1px solid var(--border)}
.dm-prompt-card-btn:hover{opacity:.85}
.dm-prompt-card-btn.copied{background:rgba(22,163,74,.14);color:#16a34a}
[data-theme=dark] .dm-msg-wrap.mine .dm-prompt-card{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.18)}
[data-theme=dark] .dm-msg-wrap.mine .dm-prompt-card-top{border-color:rgba(255,255,255,.14)}
[data-theme=dark] .dm-msg-wrap.mine .dm-prompt-card-icon{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.18)}
[data-theme=dark] .dm-msg-wrap.mine .dm-prompt-card-label{color:rgba(255,255,255,.5)}
[data-theme=dark] .dm-msg-wrap.mine .dm-prompt-card-title{color:#fff}
[data-theme=dark] .dm-msg-wrap.mine .dm-prompt-card-text{color:rgba(255,255,255,.75)}
[data-theme=dark] .dm-msg-wrap.mine .dm-prompt-card-secondary{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.18);color:rgba(255,255,255,.85)}
.dm-wifi-card{border-radius:14px;overflow:hidden;width:236px;cursor:default;background:var(--surface);border:1px solid var(--border)}
.dm-wifi-card-top{padding:13px 13px 11px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border)}
.dm-wifi-card-icon{width:30px;height:30px;border-radius:8px;background:var(--surface2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dm-wifi-card-icon svg{width:15px;height:15px;stroke:var(--text2);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dm-wifi-card-meta{flex:1;min-width:0}
.dm-wifi-card-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text3);margin-bottom:3px}
.dm-wifi-card-ssid{font-size:13.5px;font-weight:800;color:var(--text);line-height:1.25;word-break:break-all;letter-spacing:-.2px}
.dm-wifi-card-enc{font-size:10.5px;font-weight:600;color:var(--text3);margin-top:2px}
.dm-wifi-card-qr{background:#fff;margin:11px 11px 0;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:8px}
.dm-wifi-card-qr img,.dm-wifi-card-qr canvas{display:block;border-radius:4px}
.dm-wifi-card-footer{padding:7px 13px 11px;font-size:10.5px;color:var(--text3);font-weight:600;text-align:center}
/* Тёмная тема - отправитель */
[data-theme=dark] .dm-msg-wrap.mine .dm-wifi-card{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.18)}
[data-theme=dark] .dm-msg-wrap.mine .dm-wifi-card-top{border-color:rgba(255,255,255,.14)}
[data-theme=dark] .dm-msg-wrap.mine .dm-wifi-card-icon{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.15)}
[data-theme=dark] .dm-msg-wrap.mine .dm-wifi-card-icon svg{stroke:rgba(255,255,255,.85)}
[data-theme=dark] .dm-msg-wrap.mine .dm-wifi-card-label{color:rgba(255,255,255,.5)}
[data-theme=dark] .dm-msg-wrap.mine .dm-wifi-card-ssid{color:#fff}
[data-theme=dark] .dm-msg-wrap.mine .dm-wifi-card-enc{color:rgba(255,255,255,.45)}
[data-theme=dark] .dm-msg-wrap.mine .dm-wifi-card-footer{color:rgba(255,255,255,.4)}

/* WIFI QR SHARE SHEET */
.wifi-share-back{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);z-index:700;align-items:flex-end;justify-content:center;padding:0}
.wifi-share-back.show{display:flex}
.wifi-share-sheet{background:var(--surface);border-radius:20px 20px 0 0;width:100%;max-width:500px;padding:20px 18px 32px;box-shadow:0 -8px 40px rgba(0,0,0,.2)}


.dm-voice{display:flex;align-items:center;gap:10px;padding:4px 0;min-width:180px;max-width:250px}
.dm-voice-btn{width:34px;height:34px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}
.dm-msg-wrap.mine .dm-voice-btn{background:rgba(255,255,255,.25);color:inherit}
[data-theme=dark] .dm-msg-wrap.mine .dm-voice-btn{background:rgba(0,0,0,.12)}
.dm-msg-wrap.theirs .dm-voice-btn{background:var(--accent);color:var(--accent-inv)}
.dm-voice-btn:hover{opacity:.8}
.dm-voice-btn svg{width:15px;height:15px;fill:currentColor}
.dm-voice-right{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.dm-voice-bar{width:100%;height:3px;border-radius:2px;cursor:pointer;appearance:none;-webkit-appearance:none;outline:none;accent-color:var(--accent)}
.dm-vbar{position:relative;width:100%;height:26px;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
.dm-vbar-track{position:absolute;left:0;right:0;top:0;bottom:0}
.dm-wf{position:absolute;inset:0;display:flex;align-items:center;gap:2px}
.dm-wf i{flex:1;min-width:0;border-radius:2px;background:currentColor}
.dm-wf.wf-base{opacity:.3}
.dm-wf.wf-fill{clip-path:inset(0 100% 0 0);will-change:clip-path}
.dm-vbar.drag .dm-wf i{transform:scaleY(1.08)}
.dm-rec-wave{flex:1;min-width:30px;height:28px;display:block;color:var(--text2)}
.dm-voice-dur{font-size:11px;font-weight:600;opacity:.65;font-family:'JetBrains Mono',monospace}
.dm-mic-btn{width:36px;height:36px;border-radius:9px;border:1px solid var(--border);background:var(--surface2);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .15s;color:var(--text2)}
.dm-mic-btn:hover{background:var(--border);color:var(--text)}
.dm-mic-btn{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;position:relative;z-index:6}
.dm-mic-btn.recording{background:#dc2626;border-color:#dc2626;color:#fff;border-radius:50%;box-shadow:0 0 0 0 rgba(220,38,38,.45);animation:micPulse 1.4s ease-out infinite;transition:background .2s,border-color .2s,border-radius .2s,transform .12s ease-out}
.dm-mic-btn.rec-hidden{opacity:0;pointer-events:none;transform:scale(.4)!important;transition:opacity .15s,transform .2s}
.dm-rec-overlay{position:absolute;left:0;right:0;top:0;bottom:0;z-index:5;display:flex;align-items:center;gap:10px;padding:0 14px;background:var(--surface);opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .22s ease,transform .22s ease}
.dm-rec-overlay.show{opacity:1;pointer-events:auto;transform:none}
.dm-rec-dot{width:10px;height:10px;border-radius:50%;background:#dc2626;flex-shrink:0;animation:recDot 1s ease-in-out infinite}
@keyframes recDot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.7)}}
.dm-rec-time{font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:700;color:var(--text);min-width:44px;font-variant-numeric:tabular-nums}
.dm-rec-hint{flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;font-weight:600;color:var(--text3);white-space:nowrap;will-change:transform,opacity}
.dm-rec-hint svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;animation:recArrow 1.2s ease-in-out infinite}
@keyframes recArrow{0%,100%{transform:translateX(0)}50%{transform:translateX(-4px)}}
.dm-rec-cancel,.dm-rec-send{border:none;cursor:pointer;font-family:inherit;transition:transform .12s,opacity .15s}
.dm-rec-cancel{display:none;background:none;color:#dc2626;font-size:13px;font-weight:700;padding:8px 10px;margin-left:auto}
.dm-rec-send{display:none;width:38px;height:38px;border-radius:50%;background:var(--accent);color:var(--accent-inv);align-items:center;justify-content:center;flex-shrink:0}
.dm-rec-send svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2}
.dm-rec-cancel:active,.dm-rec-send:active{transform:scale(.92)}
.dm-rec-overlay.locked .dm-rec-hint{display:none}
.dm-rec-overlay.locked .dm-rec-cancel{display:block}
.dm-rec-overlay.locked .dm-rec-send{display:flex;animation:recPop .25s ease-out}
@keyframes recPop{from{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}
.dm-rec-lock{position:absolute;z-index:7;width:40px;height:92px;border-radius:20px;background:var(--surface);border:1px solid var(--border);box-shadow:0 6px 20px rgba(0,0,0,.18);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:11px;gap:7px;color:var(--text2);opacity:0;pointer-events:none;transform:translateY(16px) scale(.85);transition:opacity .2s ease,transform .25s cubic-bezier(.2,.9,.3,1.2)}
.dm-rec-lock.show{opacity:1;transform:none}
.dm-rec-lock.locked{opacity:0;transform:translateY(-10px) scale(.8)}
.dm-rec-lock svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dm-rec-lock .arr{animation:recUp 1.1s ease-in-out infinite;opacity:.6}
@keyframes recUp{0%,100%{transform:translateY(2px)}50%{transform:translateY(-3px)}}
.dm-mic-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8}
@keyframes micPulse{0%{box-shadow:0 0 0 0 rgba(220,38,38,.45)}100%{box-shadow:0 0 0 16px rgba(220,38,38,0)}}
.dm-voice-preview{display:none;align-items:center;gap:8px;padding:8px 10px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;margin-bottom:4px}
.dm-voice-preview.show{display:flex}
.dm-voice-preview-icon{font-size:18px;flex-shrink:0}
.dm-voice-preview-info{flex:1;min-width:0;font-size:12px;font-weight:600;color:var(--text2)}
.dm-voice-preview-rm{width:24px;height:24px;border-radius:50%;border:none;background:none;color:var(--text3);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:color .15s;flex-shrink:0}
.dm-voice-preview-rm:hover{color:var(--red,#dc2626)}

/* TOAST */
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%) translateY(16px) scale(.96);display:flex;align-items:center;gap:10px;max-width:min(92vw,420px);background:var(--surface);color:var(--text);border:none;box-shadow:0 10px 36px rgba(0,0,0,.22);padding:10px 18px 10px 10px;border-radius:26px;font-family:'Geologica',sans-serif;font-size:13.5px;font-weight:600;line-height:1.35;opacity:0;pointer-events:none;transition:opacity .22s,transform .32s cubic-bezier(.2,.9,.3,1.15);z-index:3000}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}
.toast{z-index:100010}
body.sv-open .toast{bottom:auto;top:calc(72px + env(safe-area-inset-top,0px))}
.toast-ic{width:26px;height:26px;border-radius:50%;background:var(--surface2);color:var(--text2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.toast-ic svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.toast.ok .toast-ic{background:rgba(22,163,74,.14);color:#16a34a}
.toast.err .toast-ic{background:rgba(220,38,38,.12);color:#dc2626}
.toast-tx{min-width:0;overflow-wrap:anywhere}
@media(max-width:640px){.toast{bottom:calc(var(--nav-h,54px) + 10px)}}

/* CLICKABLE LINKS IN MESSAGES */
.msg-link{text-decoration:underline;word-break:break-all;text-underline-offset:2px;cursor:pointer}
.dm-msg-wrap.mine .dm-msg .msg-link{color:inherit;text-decoration-color:currentColor}
.dm-msg-wrap.theirs .dm-msg .msg-link{color:var(--text);text-decoration-color:rgba(0,0,0,.3)}
[data-theme=dark] .dm-msg-wrap.theirs .dm-msg .msg-link{text-decoration-color:rgba(255,255,255,.3)}
.post-body-text .msg-link,.pm-text .msg-link{color:inherit;font-weight:600}
.ai-msg-bubble .msg-link{color:var(--text);text-decoration-color:rgba(0,0,0,.3)}
[data-theme=dark] .ai-msg-bubble .msg-link{text-decoration-color:rgba(255,255,255,.3)}
.ai-msg-bubble.mine .msg-link{color:inherit;text-decoration-color:currentColor}
/* Ответ ИИ - без блока, как в ChatGPT; под ним ряд иконок-действий */
.ai-msg-bubble.plain{background:none!important;border:none!important;padding:0!important;border-radius:0!important;color:var(--text)!important;max-width:100%!important;width:100%}
.ai-actions{display:flex;align-items:center;gap:2px;margin:8px 0 0 -6px;transition:opacity .2s}
.ai-act{width:34px;height:34px;border:none;background:none;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;color:var(--text2);transition:background .15s,color .15s}
.ai-act:hover{background:var(--surface2);color:var(--text)}
.ai-act:active{transform:scale(.92)}
.ai-pager{display:none;align-items:center;gap:0;margin-left:6px;color:var(--text2)}
.ai-pager .ai-pg{width:26px;height:34px;border:none;background:none;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;color:inherit}
.ai-pager .ai-pg:hover:not(:disabled){background:var(--surface2);color:var(--text)}
.ai-pager .ai-pg:disabled{opacity:.3;cursor:default}
.ai-pager .ai-pg svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ai-pager-n{font-size:12.5px;font-weight:700;min-width:30px;text-align:center;font-variant-numeric:tabular-nums;user-select:none}
.ai-act-regen.spin svg{animation:aiRegenSpin .8s linear infinite}
@keyframes aiRegenSpin{to{transform:rotate(-360deg)}}
.ai-act svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ai-act.on{color:var(--text)}
.ai-act.on svg{fill:currentColor}
.ai-act-speak.on svg{fill:none}
.msg-link:hover{opacity:.75}
.msg-mention{color:var(--accent);font-weight:700;cursor:pointer}
.msg-mention:hover{text-decoration:underline}
.dm-msg-wrap.mine .dm-msg .msg-mention{color:inherit;text-decoration:underline;text-decoration-style:dotted}

/* AI MESSAGE BADGE */
.ai-msg-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:var(--text3);background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:2px 7px;margin-bottom:6px;letter-spacing:.3px;text-transform:uppercase}
.ai-msg-badge svg{width:10px;height:10px;flex-shrink:0}

/* SLASH COMMAND MENU */
.slash-menu{position:absolute;bottom:calc(100% + 6px);left:14px;right:14px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 -4px 24px rgba(0,0,0,.12);overflow-y:auto;max-height:280px;z-index:50;display:none}
.slash-menu.show{display:block}
.slash-menu-title{font-size:10px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.7px;padding:8px 12px 4px}
.slash-cmd{display:flex;align-items:center;gap:10px;padding:9px 12px;cursor:pointer;transition:background .12s}
.slash-cmd:hover,.slash-cmd.focused{background:var(--surface2)}
.slash-cmd-icon{width:28px;height:28px;border-radius:7px;background:var(--surface2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.slash-cmd-icon svg{width:14px;height:14px;stroke:var(--text2);fill:none;stroke-width:1.8}
.slash-cmd-body{flex:1;min-width:0}
.slash-cmd-name{font-size:13px;font-weight:700;color:var(--text);font-family:'JetBrains Mono',monospace}
.slash-cmd-desc{font-size:11.5px;color:var(--text3);font-weight:500;margin-top:1px}
.slash-cmd-star{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text3);transition:background .12s,color .12s}
.slash-cmd-star:hover{background:var(--surface2);color:var(--text2)}
.slash-cmd-star.active{color:#f5b800}
.slash-menu-empty{padding:14px 12px;font-size:12.5px;color:var(--text3);text-align:center}

/* DM - MESSAGES TAB */
.dm-layout{display:grid;grid-template-columns:260px minmax(0,1fr);height:calc(100vh - 54px - 44px - var(--call-bar-h,0px));gap:0;background:transparent;border:none;border-radius:0;overflow:hidden}
.dm-list{border-right:none;display:flex;flex-direction:column;height:100%;overflow:hidden}
.dm-list-head{padding:14px 16px;font-size:14px;font-weight:800;color:var(--text);flex-shrink:0;display:flex;align-items:center;justify-content:space-between}
.dm-new-group-btn{width:28px;height:28px;border-radius:8px;border:none;background:var(--surface2);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}
.dm-new-group-btn:hover{background:var(--accent);color:var(--accent-inv)}
.dm-item{display:flex;align-items:center;gap:10px;min-width:0;padding:11px 14px;cursor:pointer;transition:background .12s}
.dm-item.active{background:var(--surface2)}
@media(hover:hover){.dm-item:hover{background:var(--surface2)}}
.dm-ava{width:36px;height:36px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;flex-shrink:0;overflow:hidden}
.dm-ava img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.dm-item-info{flex:1;min-width:0;overflow:hidden}
.dm-item-name{font-size:13px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:5px;min-width:0}
.dm-item-muted{display:inline-flex;flex-shrink:0;color:var(--text3)}
.dm-item-name-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.dm-item-preview{font-size:11.5px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
.dm-pv-tag{color:var(--ct-solid,var(--text));font-weight:700}
.dm-pv-tag.miss{color:var(--red,#dc2626)}
.dm-item-time{font-size:10.5px;color:var(--text3);font-weight:500;flex-shrink:0}
.dm-li-chk{display:inline-flex;vertical-align:-2px;margin-right:3px;color:var(--text3)}
.dm-li-chk.read{color:var(--accent)}
.dm-unread-cnt{min-width:18px;height:18px;border-radius:9px;background:var(--accent);color:var(--accent-inv);font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 5px;line-height:1;flex-shrink:0}
.dm-unread-cnt.muted{background:var(--text3);color:var(--surface)}
.dm-unread{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0}
.dm-item-fav{border-bottom:none}
.dm-ava-fav{background:color-mix(in srgb,var(--ct-solid,var(--ava-bg)) 14%,var(--surface2));border:none}
.dm-ava-fav svg{stroke:var(--ct-solid,var(--ava-bg))}
.gi-ava-in.dm-ava-fav{background:color-mix(in srgb,var(--ct-solid,var(--ava-bg)) 14%,var(--surface2))!important}
.gi-ava-in.dm-ava-fav svg{width:44px;height:44px}
.dm-empty-list{padding:32px 16px;text-align:center;color:var(--text3);font-size:13px;font-weight:500}
.dm-conv-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}
.dm-chat{display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative}
.dm-chat-head{padding:12px 16px;border-bottom:none;display:flex;align-items:center;gap:10px;flex-shrink:0;background:var(--surface)}
.dm-chat-ava{width:32px;height:32px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;flex-shrink:0;overflow:hidden;cursor:pointer}
.dm-chat-ava img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.dm-chat-name{font-size:14px;font-weight:800;color:var(--text);cursor:pointer}
/* серия общения */
.streak{display:inline-flex;align-items:center;gap:2px;flex-shrink:0;line-height:1;font-size:12px;font-weight:800;color:#ff7a1a;cursor:default;user-select:none}
.streak b{font-weight:800;font-variant-numeric:tabular-nums}
.streak-ico{width:16px;height:16px;display:block;filter:drop-shadow(0 0 3px rgba(255,122,26,.45));transform-origin:50% 90%;animation:streakFlick 2.6s ease-in-out infinite}
.streak .f-o{fill:#ff7a1a}.streak .f-i{fill:#ffd23f}
.streak.off{color:var(--text3)}
.streak.off .streak-ico{filter:none;animation:none;opacity:.85}
.streak.off .f-o{fill:#9aa0a8}.streak.off .f-i{fill:#cfd3d8}
html[data-theme=dark] .streak.off .f-o{fill:#6b7280}html[data-theme=dark] .streak.off .f-i{fill:#9ca3af}
@keyframes streakIn{from{opacity:0;transform:scale(.3)}60%{opacity:1}to{opacity:1;transform:scale(1)}}
.streak.streak-new{animation:streakIn .7s cubic-bezier(.2,.8,.3,1) both}
@keyframes streakFlick{0%,100%{transform:scale(1) rotate(0)}30%{transform:scale(1.07,1.1) rotate(-2deg)}60%{transform:scale(.97,1.03) rotate(1.5deg)}}
@media(prefers-reduced-motion:reduce){.streak-ico{animation:none}.streak.streak-new{animation:none}}
.dm-chat-username{font-size:11.5px;color:var(--text3);font-weight:500}
.dm-msgs{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:6px;-webkit-overflow-scrolling:touch;min-height:0;scrollbar-width:none;-ms-overflow-style:none}
.dm-msgs::-webkit-scrollbar{display:none}
.dm-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text3);font-size:14px;font-weight:500;gap:10px}
.dm-placeholder svg{width:40px;height:40px;stroke:var(--text3);fill:none;stroke-width:1.5}
.dm-msg-wrap{display:flex;align-items:flex-end;gap:5px;max-width:80%;min-width:0}
.dm-msg-wrap.mine{align-self:flex-end;flex-direction:row-reverse}
.dm-msg-wrap.theirs{align-self:flex-start}
.dm-msg{padding:9px 13px;border-radius:16px;font-size:14px;line-height:1.5;word-break:break-word;font-weight:500;min-width:0;max-width:100%}
.dm-msg-sender{font-size:12px;font-weight:800;color:var(--accent);margin-bottom:3px}
.dm-msg-wrap.mine .dm-msg{background:var(--accent);color:var(--accent-inv);border-bottom-right-radius:4px}
.dm-msg-wrap.theirs .dm-msg{background:var(--surface2);color:var(--text);border-bottom-left-radius:4px;border:none}
.dm-msg-time{font-size:10px;opacity:.6;margin-top:3px;text-align:right;-webkit-user-select:none;user-select:none}
.dm-translate-btn{display:block;margin-top:4px;padding:0;border:none;background:none;cursor:pointer;font-size:12px;font-weight:700;text-decoration:underline;text-decoration-style:dotted;opacity:.85;color:inherit}
.dm-translate-btn:hover{opacity:1}
.dm-translate-btn:disabled{cursor:default;opacity:.55;text-decoration:none}
.dm-del-btn{width:26px;height:26px;border-radius:50%;border:none;background:var(--surface2);color:var(--red);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,background .15s;flex-shrink:0}
.dm-del-btn:hover{background:var(--red);color:#fff}
.dm-msg-wrap:hover .dm-del-btn{opacity:1}
/* Карандаш редактирования - стоит колонкой над кнопкой удаления */
.dm-msg-side-actions{display:flex;flex-direction:column;gap:5px;flex-shrink:0}
.dm-edit-btn{width:26px;height:26px;border-radius:50%;border:none;background:var(--surface2);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,background .15s,color .15s;flex-shrink:0}
.dm-edit-btn:hover{background:var(--accent);color:var(--accent-inv)}
.dm-msg-wrap:hover .dm-edit-btn{opacity:1}
.dm-edited-mark{opacity:.7;font-style:italic}
.dm-fwd-btn{width:26px;height:26px;border-radius:50%;border:none;background:var(--surface2);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:1;transition:background .15s,color .15s;flex-shrink:0}
.dm-fwd-btn:hover{background:var(--accent);color:var(--accent-inv)}
.dm-fwd-label{display:flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;opacity:.75;margin-bottom:4px;cursor:pointer;width:fit-content}
.dm-fwd-label:hover{opacity:1;text-decoration:underline}
.dm-fwd-label-name{font-weight:800}
.dm-fwd-ava{width:16px;height:16px;border-radius:50%;object-fit:cover;flex:none}
/* Кнопка "Ответить" - стоит колонкой над кнопкой пересылки */
.dm-msg-actions{display:flex;flex-direction:column;gap:5px;flex-shrink:0}
.dm-reply-btn{width:26px;height:26px;border-radius:50%;border:none;background:var(--surface2);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:1;transition:background .15s,color .15s;flex-shrink:0}
.dm-reply-btn:hover{background:var(--accent);color:var(--accent-inv)}
/* Цитата отвечаемого сообщения внутри пузыря */
.dm-msg-reply-quote{display:flex;flex-direction:column;gap:1px;padding:5px 9px;margin-bottom:6px;border-left:3px solid var(--accent);border-radius:6px;background:rgba(0,0,0,.05);cursor:pointer;max-width:100%}
.dm-msg-wrap.mine .dm-msg-reply-quote{background:rgba(255,255,255,.16);border-left-color:rgba(255,255,255,.7)}
.dm-msg-reply-quote-name{font-size:11.5px;font-weight:800;opacity:.85}
.dm-msg-reply-quote-text{font-size:12.5px;font-weight:500;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.dm-msg.dm-msg-flash,.dm-msg-wrap.dm-msg-flash .dm-msg{outline:2px solid var(--accent);outline-offset:2px}
/* Панель предпросмотра ответа над полем ввода */
.dm-reply-preview{display:flex;align-items:center;gap:8px;padding:7px 14px;margin:0 14px 0;border-top:none;background:var(--surface)}
.dm-reply-preview-icon{flex-shrink:0;color:var(--accent);display:flex}
.dm-reply-preview-icon svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}
.dm-reply-preview-body{flex:1;min-width:0}
.dm-reply-preview-name{font-size:11.5px;font-weight:800;color:var(--accent)}
.dm-reply-preview-text{font-size:12.5px;font-weight:500;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dm-reply-preview-rm{width:22px;height:22px;border-radius:50%;border:none;background:none;color:var(--text3);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px;line-height:1}
.dm-reply-preview-rm:hover{background:var(--surface2);color:var(--text)}
.dm-link-preview{display:block;margin-top:8px;border:1px solid var(--border);border-radius:12px;overflow:hidden;text-decoration:none;color:inherit;background:var(--surface1)}
.dm-msg-wrap.mine .dm-link-preview{border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.08)}
.dm-link-preview:hover{border-color:var(--accent)}
.dm-link-preview-img{display:block;width:100%;max-height:160px;object-fit:cover}
.dm-link-preview-body{padding:8px 10px}
.dm-link-preview-site{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;opacity:.6;margin-bottom:2px}
.dm-link-preview-title{font-size:13px;font-weight:700;line-height:1.3;margin-bottom:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dm-link-preview-desc{font-size:12px;font-weight:500;opacity:.75;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dm-bottom{position:absolute;left:0;right:0;bottom:0;z-index:5;display:flex;flex-direction:column;background:transparent;pointer-events:none}
.dm-bottom>*{pointer-events:auto}
.dm-bottom::before{content:'';position:absolute;left:0;right:0;bottom:0;height:var(--dm-blur-h,40px);z-index:-1;pointer-events:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);-webkit-mask-image:linear-gradient(to top,#000 65%,transparent);mask-image:linear-gradient(to top,#000 65%,transparent)}
#dmOpenChat{position:relative}
#dmOpenChat .dm-msgs{padding-bottom:calc(var(--dm-bottom-h,64px) + 12px)}
#dmOpenChat .dm-scroll-btn{bottom:calc(var(--dm-bottom-h,64px) + 12px)}
.dm-bottom #dmImgPreviewBar{background:transparent!important}
.dm-bottom .dm-reply-preview{background:var(--surface2);border-radius:16px;margin:0 14px 2px}
.dm-input-row{padding:10px 14px;display:flex;gap:8px;align-items:flex-end;flex-shrink:0;background:transparent!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.dm-input{flex:1;min-height:38px;max-height:120px;padding:9px 12px;border:1.5px solid var(--border);border-radius:12px;font-size:14px;font-family:'Geologica',sans-serif;font-weight:500;background:var(--surface2);color:var(--text);outline:none;resize:none;transition:border-color .15s;overflow-y:auto}
.dm-input:focus{border-color:var(--border2);background:var(--surface)}
.dm-send{width:38px;height:38px;border-radius:10px;background:var(--accent);color:var(--accent-inv);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .15s}
.dm-send:hover{opacity:.85}.dm-send:disabled{opacity:.35;cursor:default}
/* Собеседник принимает сообщения только от друзей: плашка в стиле кнопки «Выключить звук» в каналах */
.dm-restrict{display:none;flex:1;width:100%;min-width:0;min-height:38px;align-items:center;justify-content:center;gap:8px;padding:9px 16px;border:none;border-radius:20px;background:var(--surface2);color:var(--text);font-family:'Geologica',sans-serif;font-size:calc(14px*var(--fs,1));font-weight:600;line-height:1.3;text-align:center;cursor:default;user-select:none;-webkit-user-select:none}
.dm-restrict svg{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dm-restrict span{min-width:0}
#dmOpenChat.dm-peer-restricted #dmCallBtn,#dmOpenChat.dm-peer-restricted #dmVideoCallBtn{display:none!important}
.dm-input-row.restricted>*:not(.dm-restrict){display:none!important}
.dm-input-row.restricted>.dm-restrict{display:flex}
.dm-send .dm-send-price{display:none;font-size:12px;font-weight:800;line-height:1;white-space:nowrap;color:var(--accent-inv)}
.dm-send.paid{width:auto;min-width:38px;padding:0 12px;gap:6px;border-radius:19px!important}
.dm-send.paid .dm-send-price{display:inline}
.dm-send.paid svg{width:15px;height:15px}
/* Кнопка «Отмена» в окне платного сообщения - того же размера, что и «Отправить» */
.paid-cancel{flex:1;height:auto;margin:0;padding:13px;border:none;border-radius:12px;background:var(--surface2);color:var(--text);font-size:15px;font-weight:800;cursor:pointer;font-family:inherit}
/* Сообщение-эмодзи: крупно и без пузыря */
.dm-msg-wrap .dm-msg.dm-msg-bigemoji{background:none!important;border:none!important;box-shadow:none!important;padding:0 4px!important;border-radius:0!important}
.dm-msg-bigemoji::before,.dm-msg-bigemoji::after{display:none!important}
.dm-bigemoji{font-size:80px;line-height:1.15;white-space:normal}
.dm-msg-ava{width:32px;height:32px;flex-shrink:0;align-self:flex-start;margin-top:2px;border-radius:50%;background:var(--surface2);color:var(--text2);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;overflow:hidden;cursor:pointer}
.dm-msg-ava img{width:100%;height:100%;object-fit:cover}
.dm-sticker{display:block;width:168px;height:168px;object-fit:contain;cursor:pointer;-webkit-user-drag:none;user-select:none}
@media(max-width:560px){.dm-sticker{width:140px;height:140px}}
/* панель стикеров */
.mp-stk{padding-top:0}
.stk-bar{display:flex;gap:6px;overflow-x:auto;padding:8px 2px 6px;scrollbar-width:none;position:sticky;top:0;background:var(--surface);z-index:2}
.stk-bar::-webkit-scrollbar{display:none}
.stk-tab{flex:none;width:36px;height:36px;border:none;border-radius:10px;background:var(--surface2);color:var(--text2);cursor:pointer;padding:3px;display:flex;align-items:center;justify-content:center;font:inherit;font-size:15px;font-weight:800}
.stk-tab img{width:100%;height:100%;object-fit:contain}
.stk-tab.on{background:var(--accent);color:var(--accent-inv)}
.stk-tab.on img{filter:none}
.stk-new{font-size:22px;font-weight:600;color:var(--text)}
.stk-head{display:flex;align-items:center;gap:6px;padding:2px 4px 6px;min-height:28px}
.stk-name{flex:1;min-width:0;font-size:12.5px;font-weight:700;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stk-act{flex:none;border:none;background:var(--surface2);color:var(--text2);border-radius:12px;height:26px;padding:0 10px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.stk-act:hover{color:var(--text)}
.stk-act.danger{color:var(--red,#e5484d)}
.stk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:6px}
.stk-it{position:relative;aspect-ratio:1;border:none;background:none;border-radius:12px;padding:4px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.stk-it:hover{background:var(--surface2)}
.stk-it:active{transform:scale(.94)}
.stk-it img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.stk-it.add{background:var(--surface2);display:flex;align-items:center;justify-content:center;color:var(--text2);font-size:28px;font-weight:500}
.stk-it .stk-x{position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:50%;background:var(--red,#e5484d);color:#fff;font-size:13px;line-height:20px;text-align:center;font-weight:800}
.stk-empty{grid-column:1/-1;text-align:center;color:var(--text3);font-size:13px;font-weight:500;padding:22px 10px;display:flex;flex-direction:column;align-items:center;gap:10px}
.stk-ov{position:fixed;inset:0;z-index:100000;background:rgba(0,0,0,.38);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);display:flex;align-items:center;justify-content:center;padding:16px;animation:stkOvIn .28s ease both}
@keyframes stkOvIn{from{background:rgba(0,0,0,0);-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{background:rgba(0,0,0,.38);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}}
.stk-ov .stk-modal{animation:stkModalIn .42s cubic-bezier(.22,1,.36,1) both}
@keyframes stkModalIn{from{opacity:0;transform:translateY(14px) scale(.94)}to{opacity:1;transform:none}}
.stk-modal{width:min(420px,100%);max-height:80vh;display:flex;flex-direction:column;background:var(--surface);color:var(--text);border-radius:20px;padding:18px;font-family:'Geologica',sans-serif;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.stk-modal h3{margin:0 0 2px;font-size:18px;font-weight:800;word-break:break-word}
.stk-modal .stk-by{font-size:12.5px;color:var(--text3);font-weight:600;margin-bottom:12px}
.stk-modal .stk-grid{overflow-y:auto;padding:2px;margin-bottom:14px;grid-template-columns:repeat(auto-fill,minmax(70px,1fr))}
.stk-modal .stk-it{cursor:default}
.stk-modal .stk-btns{display:flex;gap:8px}
.stk-modal .stk-btns button{flex:1;height:40px;border:none;border-radius:20px;font:inherit;font-size:14px;font-weight:800;cursor:pointer;background:var(--surface2);color:var(--text)}
.stk-modal .stk-btns button.pri{background:var(--accent);color:var(--accent-inv)}
.dm-msg-bigemoji .dm-msg-time{color:var(--text3);opacity:1;margin-top:0}
.dm-send svg{width:17px;height:17px;stroke:var(--accent-inv);fill:none;stroke-width:2}
.dm-login-hint{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text3);font-size:14px;font-weight:500;cursor:pointer;text-decoration:underline}
/* Three-dot menu in chat header */
.dm-menu-btn{width:32px;height:32px;border-radius:8px;border:none;background:none;color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}
.dm-menu-btn:hover{background:var(--surface2)}
.dm-menu-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}
.dm-top{position:absolute;left:0;right:0;top:0;z-index:6;display:flex;flex-direction:column;background:transparent;pointer-events:none}
.dm-top>*{pointer-events:auto}
.dm-top::before{content:'';position:absolute;left:0;right:0;top:0;height:var(--dm-top-blur,40px);z-index:-1;pointer-events:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);-webkit-mask-image:linear-gradient(to bottom,#000 65%,transparent);mask-image:linear-gradient(to bottom,#000 65%,transparent)}
.dm-top .dm-chat-head{background:transparent;padding:10px 12px 4px;gap:8px}
.dm-top #dmBackBtn{width:34px!important;height:44px!important;border-radius:22px 0 0 22px!important;background:none!important;color:var(--text)!important;margin:0 -4px 0 0!important}
.dm-head-pill{flex:1;min-width:0;display:flex;align-items:center;gap:10px;height:44px;padding:0 16px 0 6px;border-radius:22px;background:var(--surface2)}
.dm-chat-head .dm-head-right{height:44px;padding:0 6px;gap:2px;border-radius:22px;background:var(--surface2);margin-left:0}
.dm-chat-head .dm-menu-btn{width:34px;height:34px;border-radius:50%}
.dm-chat-head .dm-menu-btn:hover{background:var(--surface)}
.dm-chat-head .dm-chat-ava{width:34px;height:34px}
.dm-top .dm-chat-head{padding-bottom:0}
.dm-top .dm-pinbar{margin:4px 12px 0}
.dm-top .dm-search-bar{background:var(--surface2);border-radius:16px;margin:4px 12px}
.dm-top .acc-locked-banner{margin:4px 12px}
#dmOpenChat .dm-msgs{padding-top:calc(14px + var(--dm-top-h,0px))}
.dm-pinbar{display:flex;align-items:center;gap:10px;padding:8px 8px 8px 14px;margin:6px 12px 4px;background:var(--surface2);border:none;border-radius:16px;flex-shrink:0}
.dm-pinbar-main{flex:1;min-width:0;display:flex;align-items:stretch;gap:9px;cursor:pointer}
.dm-pinbar-line{width:2.5px;border-radius:2px;background:var(--accent);flex-shrink:0}
.dm-pinbar-t{font-size:12.5px;font-weight:800;color:var(--accent)}
.dm-pinbar-x{font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dm-pinbar-btn{width:32px;height:32px;border:none;background:none;color:var(--text2);cursor:pointer;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dm-pinbar-btn:hover{background:var(--surface)}
.dm-pinbar-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pin-ov{position:fixed;inset:0;z-index:9994;background:rgba(0,0,0,.4);display:flex;align-items:stretch;justify-content:center}
.pin-sheet{background:var(--bg,var(--surface));width:100%;max-width:560px;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow)}
@media(min-width:700px){.pin-ov{align-items:center;padding:24px}.pin-sheet{border-radius:18px;max-height:100%}}
.pin-msgs{flex:1;min-height:0;overflow-y:auto}
.pin-msgs .dm-msg-wrap{flex-wrap:wrap}
.pin-msgs .dm-msg-wrap.theirs .pin-unpin{text-align:left}
.pin-unpin{flex-basis:100%;text-align:right;border:none;background:none;color:var(--text2);font-size:11.5px;font-weight:700;cursor:pointer;padding:2px 6px;font-family:inherit}
.pin-sheet-h{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;font-weight:800;font-size:15px;color:var(--text)}
.pin-sheet-h span{color:var(--text2);font-weight:700;margin-left:6px}
.pin-sheet-l{overflow-y:auto;padding:6px}
.pin-it{display:flex;align-items:center;gap:8px;padding:10px;border-radius:10px;cursor:pointer}
.pin-it:hover{background:var(--surface2)}
.pin-it-m{flex:1;min-width:0}
.pin-it-n{font-size:12.5px;font-weight:800;color:var(--accent)}
.pin-it-t{font-size:13.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dm-search-total{padding:0 14px 8px;font-size:12px;color:var(--text2)}
.dm-search-bar{background:var(--surface);border-bottom:none;flex-shrink:0}
.dm-search-bar-row{display:flex;align-items:center;gap:8px;padding:9px 12px}
.dm-search-bar-icon{color:var(--text3);flex-shrink:0}
.dm-search-input{flex:1;min-width:0;border:none;background:none;outline:none;color:var(--text);font-family:'Geologica',sans-serif;font-size:13.5px;font-weight:600}
.dm-search-input::placeholder{color:var(--text3);font-weight:500}
.dm-search-counter{color:var(--text3);font-size:12px;font-weight:700;white-space:nowrap;flex-shrink:0;min-width:34px;text-align:center}
.dm-search-nav-btn{width:26px;height:26px;border-radius:7px;border:none;background:none;color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}
.dm-search-nav-btn:hover:not(:disabled){background:var(--surface2)}
.dm-search-nav-btn:disabled{opacity:.35;cursor:default}
.dm-search-close-btn{width:26px;height:26px;border-radius:50%;border:none;background:var(--surface2);color:var(--text2);cursor:pointer;font-size:15px;line-height:1;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dm-search-close-btn:hover{background:var(--border)}
.dm-search-results{max-height:260px;overflow-y:auto;border-top:none}
.dm-search-result-item{display:flex;flex-direction:column;gap:2px;padding:9px 14px;cursor:pointer;border-bottom:none}
.dm-search-result-item:last-child{border-bottom:none}
.dm-search-result-item:hover{background:var(--surface2)}
.dm-search-result-item.active{background:var(--surface2)}
.dm-search-result-snippet{font-size:13px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dm-search-result-snippet mark{background:var(--accent);color:#fff;border-radius:3px;padding:0 2px}
.dm-search-result-time{font-size:11px;color:var(--text3);font-weight:600}
.dm-search-empty{padding:16px;text-align:center;color:var(--text3);font-size:12.5px;font-weight:500}
.dm-msg-wrap .dm-msg.dm-search-flash{animation:dmSearchFlash 1.6s ease}
@keyframes dmSearchFlash{
  0%{background:rgba(255,196,0,.35)}
  70%{background:rgba(255,196,0,.35)}
  100%{background:transparent}
}
.dm-return-latest-bar{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px;margin:0 0 8px;background:var(--surface2);border-radius:10px;font-size:12.5px;font-weight:700;color:var(--accent);cursor:pointer}
.dm-return-latest-bar:hover{background:var(--border)}
.dm-dropdown{position:absolute;top:calc(100% + 4px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);z-index:400;min-width:180px;overflow:hidden;display:none}
.dm-dropdown.open{display:block}
.dm-dropdown-item{display:flex;align-items:center;gap:9px;padding:11px 14px;font-size:13px;font-weight:600;cursor:pointer;transition:background .12s;color:var(--text2);border:none;background:none;width:100%;text-align:left;font-family:'Geologica',sans-serif}
.dm-dropdown-item:hover{background:var(--surface2);color:var(--text)}
.dm-dropdown-item.danger{color:var(--red)}
.dm-dropdown-item.danger:hover{background:#fff0f0;color:var(--red)}
[data-theme=dark] .dm-dropdown-item.danger:hover{background:#3b1414}
.dm-dropdown-item svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0}
.dm-head-right{position:relative;display:flex;align-items:center;gap:4px;margin-left:auto;flex-shrink:0}
/* Post share button on post footer */
.share-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 11px 5px 8px;border-radius:20px;border:1px solid var(--border);background:none;font-size:13px;font-weight:700;color:var(--text2);cursor:pointer;font-family:'Geologica',sans-serif;transition:all .15s;line-height:1}
.share-btn:hover{background:var(--surface2);border-color:var(--border2);color:var(--text)}
.share-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.repost-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 11px 5px 8px;border-radius:20px;border:1px solid var(--border);background:none;font-size:13px;font-weight:700;color:var(--text2);cursor:pointer;font-family:'Geologica',sans-serif;transition:all .15s;line-height:1}
.repost-btn:hover{background:var(--surface2);border-color:var(--border2);color:var(--text)}
.repost-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.repost-btn.reposted{color:#17bf63;border-color:rgba(23,191,99,.35);background:rgba(23,191,99,.08)}
/* Report (flag) button - icon-only, sits right next to repost */
.report-btn{display:inline-flex;align-items:center;justify-content:center;width:29px;height:29px;border-radius:50%;border:1px solid var(--border);background:none;color:var(--text2);cursor:pointer;transition:all .15s;flex-shrink:0;margin-left:auto;padding:0}
.report-btn:hover{background:#fff0f0;border-color:#fca5a5;color:#e53e3e}
[data-theme=dark] .report-btn:hover{background:#3b1414;border-color:#c53030;color:#fc8181}
.report-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;display:block;flex-shrink:0}
/* Report reasons list inside report modal */
.report-reason-list{display:flex;flex-direction:column;padding:6px 10px 14px}
.report-reason-btn{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:12px 10px;border:none;border-radius:10px;background:none;font-family:inherit;font-size:13.5px;font-weight:600;color:var(--text);cursor:pointer;transition:background .15s}
.report-reason-btn:hover{background:var(--surface2)}
.report-reason-btn svg{width:16px;height:16px;stroke:var(--text3);fill:none;stroke-width:2;flex-shrink:0;display:block}
.report-done{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:34px 24px 30px}
.report-done svg{width:38px;height:38px;stroke:#17bf63;fill:none;stroke-width:2;flex-shrink:0;display:block}
.report-done-title{font-size:15px;font-weight:800;color:var(--text)}
.report-done-text{font-size:13px;color:var(--text3);font-weight:500;line-height:1.5}
.post-card-repost{}
.post-repost-tag{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--text3);margin-bottom:8px;cursor:pointer}
.post-repost-tag:hover{color:var(--text2)}
.post-repost-tag svg{flex-shrink:0}
.post-repost-tag-ava{display:inline-flex;width:18px;height:18px;border-radius:50%;overflow:hidden;align-items:center;justify-content:center;background:var(--ava-bg);color:var(--ava-fg);font-size:9px;font-weight:800;flex-shrink:0}
.post-quoted{border:1px solid var(--border);border-radius:12px;padding:10px 12px;cursor:pointer;transition:border-color .15s}
.post-quoted:hover{border-color:var(--border2)}
.post-quoted-deleted{color:var(--text3);font-size:13px;font-weight:600;cursor:default;text-align:center;padding:16px 12px}

/* ── Ответы на посты (X/Threads-style) и репосты друзей ── */
.post-reply-ctx{font-size:12px;font-weight:600;color:var(--text3);margin:10px 0 0;cursor:pointer;min-width:0}
.post-reply-h{display:flex;align-items:center;gap:6px;min-width:0}
.post-reply-ctx.has-q{background:var(--surface2);border-radius:12px;padding:8px 12px}
.post-reply-q{margin-top:4px;font-size:13px;font-weight:500;line-height:1.4;color:var(--text2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.post-reply-ctx:hover{color:var(--text2)}
.post-reply-chain{display:flex;flex-direction:column;margin:12px 0 0}
.prc-row{display:flex;gap:10px;min-width:0;cursor:pointer}
.prc-l{display:flex;flex-direction:column;align-items:center;width:26px;flex-shrink:0}
.prc-ava{width:26px;height:26px;border-radius:50%;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;background:color-mix(in srgb,var(--ct-solid,var(--accent)) 10%,var(--surface2));color:var(--ct-solid,var(--accent))}
.prc-ava img{width:100%;height:100%;object-fit:cover;display:block}
.prc-line{flex:1;width:2px;min-height:10px;margin:4px 0;border-radius:2px;background:var(--border2)}
.prc-b{min-width:0;flex:1;padding-bottom:12px}
.prc-n{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:26px;height:22px}
.prc-n span{font-weight:500;color:var(--text3);margin-left:6px;font-size:12px}
.prc-t{margin-top:-2px;font-size:13.5px;font-weight:500;line-height:1.4;color:var(--text2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.prc-row:hover .prc-t{color:var(--text)}
.post-reply-ctx b{color:var(--accent);font-weight:700}
.post-reply-ctx svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0}
.post-reply-h span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.friend-reposts{display:flex;align-items:center;gap:8px;width:fit-content;max-width:calc(100% - 36px);box-sizing:border-box;margin:2px 18px 6px;padding:5px 12px 5px 8px;border-radius:20px;background:var(--surface2);font-size:12px;font-weight:600;color:var(--text2);cursor:pointer;min-width:0}
.friend-reposts.static{cursor:default}
.rp-ov{position:fixed;inset:0;z-index:100020;background:rgba(0,0,0,0);display:flex;align-items:flex-end;justify-content:center;transition:background .22s}
.rp-ov.show{background:rgba(0,0,0,.5)}
.rp-sheet{width:100%;max-width:560px;height:min(62vh,560px);display:flex;flex-direction:column;background:var(--surface);border-radius:20px 20px 0 0;transform:translateY(100%);transition:transform .26s cubic-bezier(.2,.8,.2,1);padding-bottom:env(safe-area-inset-bottom,0px)}
.rp-ov.show .rp-sheet{transform:none}
@media(min-width:700px){.rp-ov{align-items:center}.rp-sheet{border-radius:20px;height:min(70vh,520px)}}
.rp-grip{flex:none;width:36px;height:4px;border-radius:2px;background:var(--border2);margin:8px auto 0}
.rp-head{flex:none;position:relative;display:flex;align-items:center;justify-content:center;height:52px}
.rp-ttl{font-size:16px;font-weight:800;color:var(--text)}
.rp-x{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:none;border-radius:50%;background:none;color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer}
.rp-x:hover{background:var(--surface2)}
.rp-list{flex:1;min-height:0;overflow-y:auto;padding:4px 0 12px;overscroll-behavior:contain}
.rp-row{display:flex;align-items:center;gap:12px;padding:8px 14px;min-height:56px;cursor:pointer}
@media(hover:hover){.rp-row:hover{background:var(--surface2)}}
.rp-ava{flex:none;width:40px;height:40px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--ava-bg);color:var(--ava-fg);font-size:15px;font-weight:800}
.rp-ava img{width:100%;height:100%;object-fit:cover}
.rp-inf{min-width:0}
.rp-nm{display:flex;align-items:center;gap:4px;font-size:14.5px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp-dt{margin-top:1px;font-size:12px;color:var(--text3)}
.rp-empty{padding:40px 20px;text-align:center;color:var(--text3);font-size:14px}
.friend-reposts:not(.static):hover{color:var(--text);filter:brightness(.97)}
.friend-reposts>svg{width:13px;height:13px;stroke:#17bf63;fill:none;stroke-width:2;flex-shrink:0}
.fr-avas{display:inline-flex;flex-shrink:0;padding-left:6px}
.fr-ava{width:20px;height:20px;border-radius:50%;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;background:var(--ava-bg);color:var(--ava-fg);font-size:9px;font-weight:800;border:2px solid var(--surface2);box-sizing:content-box;margin-left:-6px;flex-shrink:0}
.fr-ava img{width:100%;height:100%;object-fit:cover;display:block}
.fr-txt{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fr-txt b{color:#17bf63;font-weight:800}
.pm-thread{margin:0 0 6px}
.pm-anc{display:flex;gap:10px;cursor:pointer}
.pm-anc-l{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:34px}
.pm-anc-ava{width:34px;height:34px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;overflow:hidden;flex-shrink:0}
.pm-anc-ava img{width:100%;height:100%;object-fit:cover;display:block}
.pm-anc-line{flex:1;width:2px;min-height:12px;background:var(--border2);margin:4px 0 0;border-radius:2px}
.pm-anc-b{flex:1;min-width:0;padding-bottom:14px}
.pm-anc-n{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pm-anc-n span{font-size:11.5px;color:var(--text3);font-weight:500;margin-left:4px}
.pm-anc-t{font-size:13px;color:var(--text2);font-weight:500;line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.pm-anc-gone{font-size:12.5px;color:var(--text3);font-weight:600;padding:8px 0}
.pm-replies{margin-top:20px;border-top:1px solid var(--border);padding-top:14px}
.pm-replies .post-card{border-top:1px solid var(--border);margin:0 -24px}
.pm-replies #pmReplies>.post-card:first-child{margin-top:4px}
.pm-replies-more{display:block;width:100%;padding:10px;margin-top:8px;border:1px solid var(--border);border-radius:12px;background:none;color:var(--text2);font-family:inherit;font-size:13px;font-weight:700;cursor:pointer}
.pm-replies-more:hover{background:var(--surface2)}
.reply-modal-ctx{display:flex;gap:10px;padding:14px 18px 0}
.reply-modal-ctx .rmc-l{display:flex;flex-direction:column;align-items:center;width:34px;flex-shrink:0}
.reply-modal-ctx .rmc-ava{width:34px;height:34px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;overflow:hidden}
.reply-modal-ctx .rmc-ava img{width:100%;height:100%;object-fit:cover;display:block}
.reply-modal-ctx .rmc-line{flex:1;width:2px;min-height:10px;background:var(--border2);margin-top:4px;border-radius:2px}
.reply-modal-ctx .rmc-b{flex:1;min-width:0;padding-bottom:10px}
.reply-modal-ctx .rmc-n{font-size:13px;font-weight:700;color:var(--text)}
.reply-modal-ctx .rmc-n span{font-size:11.5px;color:var(--text3);font-weight:500;margin-left:4px}
.reply-modal-ctx .rmc-t{font-size:13px;color:var(--text2);font-weight:500;line-height:1.4;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.reply-modal-to{padding:2px 18px 0 62px;font-size:12.5px;color:var(--text3);font-weight:600}
.reply-modal-to b{color:var(--accent)}
.reply-modal-ta{display:block;width:100%;border:none!important;border-radius:0;padding:10px 0;font-family:inherit;font-size:16px;background:transparent!important;color:var(--text);resize:none;outline:none!important;box-shadow:none!important;box-sizing:border-box;min-height:140px}
.upage-tabs{overflow-x:auto;scrollbar-width:none}
.upage-tabs::-webkit-scrollbar{display:none}
.upage-tab{white-space:nowrap;padding-left:9px;padding-right:9px;flex:1 0 auto}
.upage-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:12px}
.upage-tab{flex:1;padding:10px 4px;text-align:center;font-size:13px;font-weight:700;color:var(--text3);background:none;border:none;cursor:pointer;border-bottom:2px solid transparent;font-family:'Geologica',sans-serif;transition:all .15s}
.upage-tab:hover{color:var(--text2)}
.upage-tab.active{color:var(--text);border-bottom-color:var(--accent)}
/* Окно «Информация» личного чата: медиа / файлы / ссылки / голосовые */
#dmInfoModal .dminfo-box{max-width:430px;height:min(88vh,680px);overflow:hidden}
@media(max-width:640px){
  #dmInfoModal.share-modal-back{padding:0;align-items:stretch;justify-content:stretch;background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}
  #dmInfoModal .dminfo-box{max-width:none;width:100%;height:100vh;height:100dvh;max-height:none;border:none;border-radius:0;box-shadow:none}
  #dmInfoModal .share-modal-head{padding-top:max(16px,env(safe-area-inset-top))}
  #dmInfoModal .dminfo-body{padding-bottom:max(16px,env(safe-area-inset-bottom))}
}
.dminfo-top{display:flex;align-items:center;gap:14px;padding:6px 18px 12px}
.dminfo-ava{width:64px;height:64px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;flex-shrink:0;overflow:hidden}
.dminfo-ava img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.dminfo-meta{min-width:0;flex:1}
.dminfo-name{font-size:17px;font-weight:800;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dminfo-uname{font-size:13px;font-weight:500;color:var(--text3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dminfo-tabs{display:flex;gap:6px;border-bottom:none;padding:0 14px 10px;flex-shrink:0;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.dminfo-tabs::-webkit-scrollbar{display:none}
.dminfo-tab{flex:0 0 auto;display:flex;align-items:center;justify-content:center;padding:8px 14px;text-align:center;font-size:12.5px;font-weight:700;color:var(--text2);background:var(--surface2);border:none;border-radius:999px;cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .15s,color .15s}
.dminfo-tab:hover{color:var(--text)}
.dminfo-tab.active{color:var(--ct-solid-fg,var(--accent-inv));background:var(--ct-solid,var(--accent))}
.dminfo-tab .ush-cnt{margin-left:5px}
.dminfo-body{flex:1;min-height:0;overflow-y:auto;padding:8px 14px 16px}
/* ═══ Полноэкранная плашка канала / группы (Telegram style) ═══ */
.gi-back{display:none;position:fixed;inset:0;z-index:600;background:var(--bg);flex-direction:column}
.gi-back.show{display:flex;animation:giIn .24s cubic-bezier(.2,.8,.2,1)}
@keyframes giIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.gi-top{display:flex;align-items:center;gap:6px;padding:8px 10px;padding-top:max(8px,env(safe-area-inset-top));background:var(--surface);flex-shrink:0}
.gi-top-btn{width:38px;height:38px;border:none;background:none;color:var(--text2);border-radius:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;transition:background .15s,color .15s}
.gi-top-btn:hover{background:var(--surface2);color:var(--text)}
.gi-top-title{flex:1;min-width:0;font-size:16px;font-weight:800;color:var(--text);padding:0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gi-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.gi-col{max-width:680px;margin:0 auto;padding:12px 12px max(28px,env(safe-area-inset-bottom))}
.gi-card{background:var(--surface);border:none;border-radius:18px;overflow:hidden;margin-top:10px}
.gi-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:28px 18px 22px;margin-top:0}
.gi-ava{position:relative;width:104px;height:104px;border-radius:50%;flex-shrink:0}
.gi-ava.editable{cursor:pointer}
.gi-ava-in{width:100%;height:100%;border-radius:50%;background:var(--ava-bg,var(--surface2));color:var(--ava-fg,var(--accent));display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:38px;font-weight:800}
.gi-ava-in img{width:100%;height:100%;object-fit:cover}
.gi-ava-badge{display:none;position:absolute;right:0;bottom:0;width:32px;height:32px;border-radius:50%;background:var(--accent);color:var(--accent-inv);align-items:center;justify-content:center;border:none}
.gi-name{margin-top:14px;font-size:21px;font-weight:800;color:var(--text);word-break:break-word;line-height:1.25;max-width:100%}
.gi-sub{margin-top:4px;font-size:13.5px;font-weight:500;color:var(--text3)}
.gi-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:8px;margin-top:10px}
.gi-act{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:13px 4px 11px;background:var(--surface);border:none;border-radius:16px;color:var(--text);font-family:inherit;font-size:11.5px;font-weight:700;cursor:pointer;min-width:0;transition:background .15s,transform .1s}
.gi-act span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gi-act:hover{background:var(--surface2)}
.gi-act:active{transform:scale(.97)}
.gi-act.danger{color:#e5484d}
.gi-row{display:flex;align-items:flex-start;gap:14px;padding:13px 16px}
.gi-row.gi-click{cursor:pointer;transition:background .12s}
.gi-row.gi-click:hover{background:var(--surface2)}
.gi-row-ic{color:var(--text3);flex-shrink:0;margin-top:1px;display:flex}
.gi-row-main{flex:1;min-width:0}
.gi-row-val{font-size:14.5px;font-weight:500;color:var(--text);line-height:1.45;word-break:break-word;white-space:pre-wrap}
.gi-row-val.gi-link{white-space:normal;overflow-wrap:anywhere}
.gi-row-lbl{font-size:12px;font-weight:600;color:var(--text3);margin-top:3px;line-height:1.4}
.gi-muted{color:var(--text3)}
.gi-row-btn{width:32px;height:32px;border:none;border-radius:9px;background:var(--surface2);color:var(--text2);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;align-self:center;padding:0}
.gi-row-btn:hover{color:var(--text)}
.gi-row.gi-sw-row{align-items:center}
.gi-tabs-wrap{position:sticky;top:0;z-index:3;background:var(--bg);margin:10px -12px 0;padding-top:8px}
.gi-tabs-wrap .dminfo-tabs{padding:0 12px 10px}
.gi-feed{margin-top:0;min-height:42vh}
.gi-feed.gi-pad{padding:8px 12px}
.gi-feed .share-contact{padding:10px 16px;border-bottom:none}
.gi-feed .share-contact-ava{width:42px;height:42px}
.gi-add-ico{background:var(--accent);color:var(--accent-inv)}
/* создание группы / канала */
.cg-ok{flex-shrink:0;border:none;border-radius:12px;background:var(--accent);color:var(--accent-inv);font-family:inherit;font-size:13.5px;font-weight:800;padding:9px 16px;cursor:pointer;transition:opacity .15s,transform .1s}
.cg-ok:active{transform:scale(.97)}
.cg-ok:disabled{opacity:.5;cursor:default}
.cg-seg{display:flex;flex:none;gap:4px;padding:4px;margin-bottom:10px;background:var(--surface);border-radius:14px}
.cg-seg button{flex:1;min-width:0;height:36px;margin:0;padding:0;line-height:1;border:none;border-radius:10px;background:none;color:var(--text3);font-family:inherit;font-size:13.5px;font-weight:800;cursor:pointer;transition:background .15s,color .15s}
.cg-seg button.on{background:var(--accent);color:var(--accent-inv)}
/* секретные чаты (сквозное шифрование) */
.sc-green{color:#16a34a}
.sc-lk{display:inline-flex;vertical-align:-2px;margin-right:4px}
.sc-back{display:none;position:fixed;inset:0;z-index:100020;background:var(--bg);justify-content:center}
.sc-back.show{display:flex}
.sc-wrap{display:flex;flex-direction:column;width:100%;max-width:760px;height:100%;min-height:0;position:relative}
.sc-top{display:flex;align-items:center;gap:10px;flex-shrink:0;padding:calc(env(safe-area-inset-top,0px) + 8px) 12px 8px;background:var(--bg)}
.sc-ib{width:38px;height:38px;flex-shrink:0;border:none;border-radius:12px;background:none;color:var(--text2);display:flex;align-items:center;justify-content:center;cursor:pointer}
.sc-ib:active{background:var(--surface2)}
.sc-ava{position:relative;width:40px;height:40px;flex-shrink:0;border-radius:50%;background:var(--ava-bg,var(--surface2));color:var(--ava-fg,var(--text));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;overflow:visible}
.sc-ava img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.sc-ava-lk{position:absolute;right:-3px;bottom:-3px;width:18px;height:18px;border-radius:50%;background:#16a34a;color:#fff;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg)}
.sc-ttl{flex:1;min-width:0}
.sc-nm{font-size:15.5px;font-weight:800;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-st{font-size:12px;font-weight:600;color:#16a34a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-msgs{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px 12px 6px;display:flex;flex-direction:column;gap:4px;-webkit-overflow-scrolling:touch}
.sc-note{align-self:center;max-width:430px;text-align:center;margin:6px 0 12px;padding:10px 14px;border-radius:14px;background:var(--surface2);color:var(--text3);font-size:12.5px;font-weight:600;line-height:1.45}
.sc-note b{color:var(--text2)}
.sc-m{align-self:flex-start;max-width:82%;padding:8px 12px 6px;border-radius:18px 18px 18px 6px;background:var(--surface2);color:var(--text);font-size:15px;line-height:1.38;white-space:pre-wrap;word-break:break-word;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
.sc-m.me{align-self:flex-end;border-radius:18px 18px 6px 18px;background:var(--accent);color:var(--accent-inv)}
.sc-m.bad{font-style:italic;opacity:.65}
.sc-mt{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin-top:2px;font-size:10.5px;font-weight:600;opacity:.6;white-space:nowrap}
.sc-mt svg{flex-shrink:0}
.sc-mt .rd{color:#16a34a;opacity:1}
.sc-m.me .sc-mt .rd{color:inherit}
.sc-pend{flex:1;min-height:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:30px 28px;text-align:center}
.sc-pend-ico{width:68px;height:68px;border-radius:50%;background:rgba(22,163,74,.14);color:#16a34a;display:flex;align-items:center;justify-content:center}
.sc-pend-t{font-size:17px;font-weight:800;color:var(--text)}
.sc-pend-s{font-size:13.5px;font-weight:500;color:var(--text3);line-height:1.5;max-width:340px}
.sc-btn{height:46px;padding:0 26px;border:none;border-radius:14px;background:var(--accent);color:var(--accent-inv);font-family:inherit;font-size:14.5px;font-weight:800;cursor:pointer}
.sc-btn.sec{background:var(--surface2);color:var(--text)}
.sc-btn.dng{background:rgba(220,38,38,.12);color:var(--red)}
.sc-btn:disabled{opacity:.5;cursor:default}
.sc-btns{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.sc-in{display:flex;align-items:flex-end;gap:8px;flex-shrink:0;padding:8px 12px calc(env(safe-area-inset-bottom,0px) + 10px);background:var(--bg)}
.sc-in textarea{flex:1;min-width:0;max-height:140px;min-height:42px;resize:none;border:none;border-radius:21px;background:var(--surface2);color:var(--text);font-family:inherit;font-size:15px;line-height:1.35;padding:10px 16px;outline:none}
.sc-in textarea::placeholder{color:var(--text3)}
.sc-send{width:42px;height:42px;flex-shrink:0;border:none;border-radius:50%;background:var(--accent);color:var(--accent-inv);display:flex;align-items:center;justify-content:center;cursor:pointer}
.sc-send:disabled{opacity:.45;cursor:default}
.sc-sheet-back{display:none;position:absolute;inset:0;z-index:5;background:rgba(0,0,0,.45);align-items:flex-end;justify-content:center}
.sc-sheet-back.show{display:flex}
.sc-sheet{width:100%;max-width:520px;max-height:86%;overflow-y:auto;background:var(--bg);border-radius:22px 22px 0 0;padding:16px 14px calc(env(safe-area-inset-bottom,0px) + 16px)}
.sc-m.rx-focus{visibility:hidden}
.rx-ov.sc-rx{z-index:100030}
.rx-clone.sc-rx{z-index:100031}
.rx-clone.sc-rx .sc-m{align-self:auto;width:100%}
.rx-menu.sc-rx{z-index:100033}
#scDropdown{top:calc(100% + 2px);z-index:100040}
/* размеры секретного чата = как в обычном чате */
.sc-top{gap:10px;padding:calc(env(safe-area-inset-top,0px) + 12px) 16px 12px;background:var(--surface)}
.sc-top .sc-ib{width:32px;height:32px;border-radius:8px}
.sc-top .sc-ib svg{width:18px;height:18px}
.sc-ava{width:32px;height:32px;font-size:13px}
.sc-ava-lk{width:14px;height:14px;right:-2px;bottom:-2px;border-width:1.5px}
.sc-ava-lk svg{width:8px;height:8px}
.sc-nm{font-size:14px;font-weight:800}
.sc-st{font-size:11.5px;font-weight:500}
.sc-msgs{padding:14px 16px;gap:6px}
.sc-m{max-width:min(82%,520px);padding:9px 13px;border-radius:16px 16px 16px 4px;font-size:calc(14px*var(--fs,1));line-height:1.5;font-weight:500}
.sc-m.me{border-radius:16px 16px 4px 16px}
.sc-mt{font-size:10px;margin-top:3px}
.sc-note{font-size:12px}
.sc-in{gap:8px;padding:10px 14px calc(env(safe-area-inset-bottom,0px) + 10px);background:transparent}
.sc-in textarea{min-height:38px;max-height:120px;border-radius:20px;font-size:calc(14px*var(--fs,1));font-weight:500;line-height:1.4;padding:9px 16px}
.sc-send{width:38px;height:38px}
.sc-send svg{width:17px;height:17px}
.sc-pend-t{font-size:15px}
.sc-pend-s{font-size:13px}
.sc-btn{height:40px;font-size:13.5px}
.sc-sheet-back .sc-sh-i{height:44px;font-size:14px}
.sc-sh-t{font-size:15px;font-weight:800;color:var(--text);text-align:center;margin:2px 0 12px}
.sc-sh-p{font-size:13px;font-weight:500;color:var(--text3);line-height:1.5;text-align:center;margin:0 6px 12px}
.sc-sh-i{display:flex;align-items:center;gap:12px;width:100%;height:50px;padding:0 14px;border:none;border-radius:14px;background:none;color:var(--text);font-family:inherit;font-size:15px;font-weight:700;text-align:left;cursor:pointer}
.sc-sh-i:active{background:var(--surface2)}
.sc-sh-i.dng{color:var(--red)}
.sc-sh-i .ck{margin-left:auto;color:#16a34a}
.sc-code{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:6px 0 14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:19px;font-weight:700;letter-spacing:1px;text-align:center;color:var(--text)}
.sc-code span{background:var(--surface2);border-radius:12px;padding:12px 0}
.cg-hero{padding:24px 18px 20px;margin-top:0;clear:both}
.cg-fields{padding:14px 16px}
.cg-fields .prof-edit-err{min-height:0;margin:8px 0 0}
.cg-fields .prof-edit-err:empty{display:none}
.cg-link{display:flex;align-items:center;gap:2px;height:38px;padding:0 11px;border:1.5px solid var(--border);border-radius:9px;background:var(--surface2)}
.cg-sec{padding:14px 16px 6px;font-size:12px;font-weight:800;color:var(--text3)}
.cg-friends .share-contact{padding:10px 16px;border-bottom:none}
.cg-friends .share-contact-ava{width:42px;height:42px}
html[data-theme=dark][data-dark-style=black] .cg-seg{background:var(--surface2)}
html[data-theme=dark][data-dark-style=black] .gi-card,html[data-theme=dark][data-dark-style=black] .gi-act{background:var(--surface2)}
@media(min-width:900px){.gi-hero{padding:36px 18px 28px}}
.ush-cnt{display:inline-block;margin-left:4px;font-size:10.5px;font-weight:700;opacity:.55;line-height:1}
.ush-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}
.ush-month{grid-column:1/-1;font-size:12px;font-weight:800;color:var(--text3);text-transform:capitalize;padding:10px 2px 4px}
.ush-tile{position:relative;aspect-ratio:1/1;background:var(--surface2);overflow:hidden;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--text3)}
.ush-tile img{width:100%;height:100%;object-fit:cover;display:block;flex:none}
.ush-tile-play{position:absolute;right:6px;bottom:6px;width:24px;height:24px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;display:flex;align-items:center;justify-content:center;line-height:0}
.ush-tile-play svg{width:12px;height:12px;display:block;flex:none;margin-left:1px}
.ush-tile-lbl{position:absolute;left:6px;right:36px;bottom:6px;font-size:10.5px;font-weight:600;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ush-tile video{width:100%;height:100%;object-fit:cover;display:block;flex:none;pointer-events:none;background:var(--surface2)}
.ush-tile.circ{border-radius:50%}
.ush-tile.circ video{border-radius:50%}
.ush-tile.circ img{border-radius:50%}
#dmChat.inv-in{animation:invIn .28s cubic-bezier(.2,.7,.2,1) both}
@keyframes invIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){ #dmChat.inv-in{animation:none}}
/* постепенная подгрузка плиток: пока не загрузилась - мягкая заглушка, потом плавное появление */
.ush-tile img,.ush-tile video{opacity:0}
.ush-tile.ld0 img,.ush-tile.ld0 video{opacity:1}
.ush-tile.ld img,.ush-tile.ld video{animation:ushTileIn .42s cubic-bezier(.2,.7,.2,1) both;will-change:opacity,transform}
.ush-tile:not(.ld):not(.ld0)::before{content:"";position:absolute;inset:0;background:var(--text3);opacity:.10;animation:ushTilePulse 1.3s ease-in-out infinite}
@keyframes ushTileIn{from{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}
@keyframes ushTilePulse{0%,100%{opacity:.05}50%{opacity:.14}}
@media(prefers-reduced-motion:reduce){.ush-tile.ld img,.ush-tile.ld video{animation:none;opacity:1}.ush-tile:not(.ld):not(.ld0)::before{animation:none}}
.ush-tile-dur{position:absolute;left:0;right:0;top:6px;text-align:center;font-size:10.5px;font-weight:700;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.ush-list{display:flex;flex-direction:column}
.ush-row{display:flex;align-items:center;gap:12px;box-sizing:border-box;padding:10px 2px;border-bottom:1px solid var(--border);cursor:pointer;text-decoration:none;color:inherit}
.ush-row:last-child{border-bottom:none}
.ush-ico{flex:none;width:40px;height:40px;box-sizing:border-box;border-radius:11px;background:var(--surface2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text2);line-height:0}
.ush-ico svg{width:19px;height:19px;display:block;flex:none}
.ush-meta{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}
.ush-name{font-size:13.5px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ush-sub{font-size:11.5px;font-weight:500;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ush-act{flex:none;width:32px;height:32px;padding:0;margin:0;border-radius:50%;border:none;background:none;color:var(--text3);cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:0;font-family:inherit}
.ush-act:hover{background:var(--surface2);color:var(--text)}
.ush-act svg{width:17px;height:17px;display:block;flex:none}
.ush-more{display:block;width:100%;margin:12px 0 4px;padding:11px;border:1px solid var(--border);border-radius:12px;background:none;color:var(--accent);font-family:inherit;font-size:13px;font-weight:700;cursor:pointer}
.ush-more:hover{background:var(--surface2)}
/* Post widget inside DM */
.dm-post-widget{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;max-width:280px;cursor:pointer;transition:background .12s}
.dm-post-widget:hover{background:var(--surface2)}
.dm-post-widget-cover{width:100%;height:120px;object-fit:cover;display:block;background:var(--surface2)}
.dm-post-widget-body{padding:10px 12px}
.dm-post-widget-author{font-size:11px;color:var(--text3);font-weight:600;margin-bottom:4px}
.dm-post-widget-text{font-size:13px;font-weight:600;color:var(--text);line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.dm-post-widget-btn{display:block;width:100%;padding:8px 12px;border-top:1px solid var(--border);font-size:12.5px;font-weight:700;color:var(--text2);background:none;border-left:none;border-right:none;border-bottom:none;cursor:pointer;font-family:'Geologica',sans-serif;transition:background .12s;text-align:center}
.dm-post-widget-btn:hover{background:var(--surface2);color:var(--text)}
/* Post widget inside mine bubble */
.dm-msg.dm-msg-post{padding:0;background:transparent!important;border:none!important}
.dm-msg-wrap.mine .dm-msg.dm-msg-post .dm-post-widget{border-color:rgba(255,255,255,.2)}
.dm-msg-wrap.mine .dm-msg.dm-msg-post .dm-msg-time{padding:4px 12px 6px;opacity:.6}
.dm-msg-wrap.theirs .dm-msg.dm-msg-post .dm-msg-time{padding:4px 12px 6px}
/* Grade/WiFi card bubbles - transparent, карточка сама задаёт фон */
.dm-msg.dm-msg-card{padding:0;background:transparent!important;border:none!important}
.dm-msg-wrap.mine .dm-msg.dm-msg-card .dm-msg-time{padding:4px 10px 6px;opacity:.6;color:var(--text2)}
.dm-msg-wrap.theirs .dm-msg.dm-msg-card .dm-msg-time{padding:4px 10px 6px}
/* Share post modal */
.share-modal-back{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);z-index:600;align-items:center;justify-content:center;padding:20px}
.share-modal-back.show{display:flex}
#confirmModal{z-index:100001}
.share-modal{background:var(--surface);border:1px solid var(--border);border-radius:18px;width:100%;max-width:380px;max-height:90vh;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;box-shadow:0 24px 60px rgba(0,0,0,.25)}
.share-modal-head{padding:16px 18px;display:flex;align-items:center;justify-content:space-between}
.share-modal-head h3{font-size:15px;font-weight:800;color:var(--text)}
.share-modal-preview{padding:12px 18px;}
.share-modal-preview-title{font-size:13px;font-weight:700;color:var(--text);margin-bottom:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.share-modal-preview-author{font-size:11.5px;color:var(--text3);font-weight:500}
.share-modal-contacts{max-height:240px;overflow-y:auto}
.share-contact{display:flex;align-items:center;gap:10px;padding:10px 18px;cursor:pointer;transition:background .12s;}
.group-select-check{width:20px;height:20px;border-radius:50%;border:2px solid var(--border2);flex-shrink:0;transition:background .12s,border-color .12s}
.share-contact.selected .group-select-check{background:var(--accent);border-color:var(--accent);position:relative}
.share-contact.selected .group-select-check::after{content:'';position:absolute;left:6px;top:2px;width:5px;height:9px;border:solid var(--accent-inv);border-width:0 2px 2px 0;transform:rotate(45deg)}
.group-creator-tag{font-size:10.5px;font-weight:800;color:var(--accent);background:var(--surface2);border-radius:8px;padding:3px 8px;flex-shrink:0}
.dm-item-channel-tag{font-size:9.5px;font-weight:800;color:var(--text3);background:var(--surface2);border-radius:6px;padding:2px 6px;margin-left:6px;text-transform:uppercase;letter-spacing:.3px;flex-shrink:0}
.group-status-tag{font-size:10.5px;font-weight:800;color:var(--text2);background:var(--surface2);border-radius:8px;padding:3px 8px;flex-shrink:0}
.member-kebab-btn{width:30px;height:30px;border-radius:8px;border:none;background:none;color:var(--text3);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px;font-weight:800;line-height:1;transition:background .15s}
.member-kebab-btn:hover{background:var(--surface2);color:var(--text)}
.member-menu-back{display:none;position:fixed;inset:0;z-index:600;background:rgba(0,0,0,.25)}
.member-menu-back.show{display:block}
.member-menu{position:fixed;min-width:210px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.25);padding:6px;z-index:601}
.member-menu-title{padding:8px 10px 6px;font-size:12px;font-weight:700;color:var(--text3);margin-bottom:4px}
.member-menu-item{display:block;width:100%;text-align:left;padding:10px 10px;border:none;background:none;border-radius:9px;font-size:13.5px;font-weight:600;color:var(--text);cursor:pointer;font-family:inherit}
.member-menu-item:hover{background:var(--surface2)}
.member-menu-item.danger{color:var(--red)}
.share-contact:last-child{border-bottom:none}
.share-contact:hover{background:var(--surface2)}
.share-contact-ava{width:34px;height:34px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;flex-shrink:0;overflow:hidden}
.share-contact-ava img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.share-contact-name{font-size:13px;font-weight:700;color:var(--text)}
.share-contact-username{font-size:11.5px;color:var(--text3);font-weight:500}
/* Blocked state */
.dm-blocked-bar.dm-ch-mute-bar{padding:10px 14px;background:transparent;border:none}
.dm-ch-mute-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:38px;padding:9px 16px;border:none!important;outline:none!important;box-shadow:none!important;border-radius:20px;background:var(--surface2);color:var(--text);font-family:'Geologica',sans-serif;font-size:14px;font-weight:600;cursor:pointer;overflow:hidden;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;transition:transform .12s ease}
.dm-ch-mute-btn:active{transform:scale(.98)}
.dm-ch-mute-btn:focus,.dm-ch-mute-btn:focus-visible{outline:none!important;box-shadow:none!important}
.dm-ch-mute-in{display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:opacity .18s ease,transform .22s cubic-bezier(.3,.8,.3,1);opacity:1;transform:translateY(0) scale(1)}
.dm-ch-mute-in.out{opacity:0;transform:translateY(-9px) scale(.96)}
.dm-ch-mute-in.pre{opacity:0;transform:translateY(9px) scale(.96);transition:none}
.dm-ch-mute-in svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.dm-blocked-bar{padding:12px 16px;background:var(--surface2);border-top:none;text-align:center;font-size:13px;color:var(--text3);font-weight:600;flex-shrink:0}
.dm-read-mark{margin-left:4px;font-size:10px;font-weight:700;opacity:.7}
/* VERIFIED BADGE */
.verified-badge{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;background:linear-gradient(135deg,#1d9bf0,#0d6efd);border-radius:50%;flex-shrink:0;vertical-align:middle;margin-left:3px;position:relative;top:-1px}
.verified-badge svg{width:9px;height:9px;fill:none;stroke:#fff;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.verified-badge,.plus-badge{cursor:pointer}
.plus-badge{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;flex-shrink:0;vertical-align:middle;margin-left:3px;position:relative;top:-1px}
.plus-badge svg{width:100%;height:100%;display:block;overflow:visible}
.plus-badge .pb-shape{fill:var(--accent);stroke:var(--accent);stroke-width:1;stroke-linejoin:round}
.plus-badge .pb-plus{fill:none;stroke:var(--accent-inv);stroke-width:2.6;stroke-linecap:round}
.ai-badge{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;vertical-align:middle;margin-left:3px;position:relative;top:-1px;border-radius:5px;background:var(--text);cursor:pointer}
.ai-badge svg{width:11px;height:11px;fill:var(--surface);display:block}
.plus-ov{position:fixed;inset:0;z-index:10050;background:rgba(0,0,0,.5);display:flex;align-items:flex-end;justify-content:center;opacity:0;transition:opacity .2s}
.plus-ov.on{opacity:1}
.plus-sheet{width:100%;max-width:480px;max-height:92vh;overflow-y:auto;background:var(--surface);color:var(--text);border-radius:22px 22px 0 0;padding:10px 20px calc(18px + env(safe-area-inset-bottom,0px));box-shadow:0 -10px 40px rgba(0,0,0,.35);transform:translateY(40px);transition:transform .25s cubic-bezier(.2,.9,.3,1);text-align:center}
.plus-ov.on .plus-sheet{transform:none}
@media(min-width:560px){.plus-ov{align-items:center}.plus-sheet{border-radius:22px;padding-bottom:20px}}
.plus-handle{width:38px;height:4px;border-radius:2px;background:var(--border);margin:0 auto 14px}
.plus-hero{display:flex;justify-content:center;margin:6px 0 10px;perspective:600px}
.plus-hero.spin .plus-badge{animation:plusSpin .6s cubic-bezier(.22,.8,.24,1) both;transform-origin:50% 50%}
.plus-nav-ic.nav-plus-spin{animation:plusNavSpin .5s cubic-bezier(.22,.8,.24,1);transform-origin:50% 50%}
@keyframes plusNavSpin{from{transform:rotateY(0) scale(.7)}to{transform:rotateY(360deg) scale(1)}}
@media (prefers-reduced-motion:reduce){.plus-nav-ic.nav-plus-spin{animation:none}}
@keyframes plusSpin{
  0%{transform:rotateY(0) scale(.6);opacity:0}
  25%{opacity:1}
  100%{transform:rotateY(360deg) scale(1);opacity:1}
}
@media (prefers-reduced-motion:reduce){.plus-hero.spin .plus-badge{animation:none}}
.plus-hero .plus-badge{width:78px;height:78px;margin:0;top:0;cursor:default;filter:drop-shadow(0 6px 14px rgba(0,0,0,.25))}
.plus-title{font-size:22px;font-weight:800;letter-spacing:-.3px}
.plus-lead{font-size:13.5px;line-height:1.5;color:var(--text3);margin:6px 4px 16px}
.plus-feats{text-align:left;display:flex;flex-direction:column;gap:4px;margin-bottom:16px}
.plus-feat{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:14px;border:1px solid transparent}
.plus-feat.hl{border-color:var(--accent);background:var(--surface2)}
.plus-fic{width:36px;height:36px;border-radius:11px;background:var(--surface2);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text)}
.plus-feat.hl .plus-fic{background:var(--accent);color:var(--accent-inv)}
.plus-fic svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.plus-ft{font-size:14px;font-weight:700}
.plus-fd{font-size:12.5px;color:var(--text3);margin-top:1px}
.plus-buy{width:100%;height:48px;border:none;border-radius:14px;background:var(--accent);color:var(--accent-inv);font-size:15px;font-weight:800;font-family:inherit;cursor:pointer;transition:opacity .15s}
.plus-buy:disabled{opacity:1;cursor:default;background:var(--surface2);color:var(--text3)}
.plus-lk{display:inline-flex;align-items:center;vertical-align:middle;margin-left:6px;color:var(--text3)}
.plus-lk svg{width:13px;height:13px}
.dm-dropdown-item .plus-lk{margin-left:auto}
.dm-dropdown-item.plus-locked{opacity:.5;filter:grayscale(1)}
.set-row.plus-locked{cursor:pointer}
.set-row.plus-locked>*:not(.prof-notif-t){opacity:.5;filter:grayscale(1)}
.set-row.plus-locked select,.set-row.plus-locked input,.set-row.plus-locked button,.set-row.plus-locked .seen-chips{pointer-events:none}
.set-row.plus-locked button{background:var(--surface2);color:var(--text3)}
.plus-note{font-size:12px;color:var(--text3);margin:-6px 0 10px}
/* PLUS PAGE */
.sitem .sico svg.plus-nav-ic{width:15px;height:15px}
.plus-nav-ic polygon{fill:var(--text2);stroke:var(--text2);stroke-width:1;stroke-linejoin:round}
.plus-nav-ic path{fill:none;stroke:var(--surface2);stroke-width:2.6;stroke-linecap:round}
.sitem.active .plus-nav-ic polygon{fill:var(--text);stroke:var(--text)}
.mob-nav-btn .plus-nav-ic polygon{fill:currentColor;stroke:currentColor}
.mob-nav-btn .plus-nav-ic path{stroke:var(--surface2);stroke-width:2.6}
.plus-page{max-width:760px;margin:0 auto;padding:18px 0 28px;text-align:center}
.plus-page .plus-hero{margin:10px 0 12px}
.plus-page .plus-hero .plus-badge{width:96px;height:96px}
.plus-page .plus-title{font-size:28px}
.plus-page .plus-lead{font-size:14.5px;max-width:520px;margin:8px auto 22px}
.plus-page .plus-feats{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:22px}
.plus-page .plus-feat{padding:12px 14px;border:none;background:var(--surface2)}
.plus-page .plus-fic{background:var(--surface)}
@media(min-width:700px){.plus-page .plus-feats{grid-template-columns:1fr 1fr}}
.plus-page .plus-buy{max-width:420px;display:block;margin:0 auto}
/* закреплённая кнопка покупки на странице Plus: плавающая и скруглённая, у конца страницы становится квадратнее */
.plus-buy-wrap{position:sticky;bottom:12px;z-index:5;margin:0 auto;padding:0 12px}
.plus-buy-wrap::before{content:'';position:absolute;left:0;right:0;bottom:-12px;height:calc(100% + 36px);z-index:-1;pointer-events:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);-webkit-mask-image:linear-gradient(to top,#000 65%,transparent);mask-image:linear-gradient(to top,#000 65%,transparent);transition:opacity .3s ease}
.plus-buy-wrap.at-end::before{opacity:0}
@media(max-width:640px){
.plus-buy-wrap::before{bottom:calc(-12px - var(--nav-h,0px));height:calc(100% + 36px + var(--nav-h,0px));-webkit-mask-image:linear-gradient(to top,#000 72%,transparent);mask-image:linear-gradient(to top,#000 72%,transparent)}
}
@media(hover:hover) and (pointer:fine){.plus-buy-wrap::before{display:none}}   /* на ПК без размытия под кнопкой */
.plus-buy-wrap .plus-buy{height:52px;max-width:420px;border-radius:26px;box-shadow:0 8px 24px rgba(0,0,0,.28);transition:border-radius .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease,margin .3s ease}
.plus-buy-wrap.at-end{padding:0}
.plus-buy-wrap.at-end .plus-buy{border-radius:10px;box-shadow:none}
.plus-plans{background:var(--surface2);border-radius:20px;margin:0 0 22px;text-align:left;overflow:hidden}
.plus-plan{display:flex;align-items:center;gap:14px;padding:14px 16px;cursor:pointer;position:relative;-webkit-tap-highlight-color:transparent}
.plus-plan+.plus-plan::before{content:'';position:absolute;top:0;left:56px;right:0;height:1px;background:var(--border)}
.plus-plan-r{width:26px;height:26px;border-radius:50%;border:2px solid var(--text3);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s}
.plus-plan-r svg{width:14px;height:14px;stroke:var(--accent-inv);stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:scale(.5);transition:opacity .2s,transform .2s}
.plus-plan.sel .plus-plan-r{background:var(--accent);border-color:var(--accent)}
.plus-plan.sel .plus-plan-r svg{opacity:1;transform:none}
.plus-plan-m{flex:1;min-width:0}
.plus-plan-t{font-size:15.5px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.plus-plan-b{font-size:11.5px;font-weight:800;padding:2px 7px;border-radius:7px;background:var(--accent);color:var(--accent-inv)}
.plus-plan-s{font-size:12.5px;color:var(--text3);margin-top:2px}
.plus-plan-s s{margin-right:5px}
.plus-plan-p{font-size:13.5px;color:var(--text2);font-weight:600;white-space:nowrap;text-align:right}
.plus-buy-sentinel{height:1px;margin-top:-1px;pointer-events:none}
.set-legal{display:flex;flex-direction:column;gap:2px;margin:18px 0 6px}
.set-legal a{padding:11px 2px;color:var(--text2);font-size:14px;font-weight:600;text-decoration:none;border-bottom:1px solid var(--border)}
.set-legal a:last-child{border-bottom:none}
.set-legal a:hover{color:var(--text)}
.plus-legal{font-size:12px;line-height:1.5;color:var(--text3);margin:14px auto 0;max-width:420px}
.plus-legal a{color:inherit;text-decoration:underline}
.plus-xrow{position:sticky;top:0;height:0;z-index:3;display:flex;justify-content:flex-end;overflow:visible}
.plus-x{width:32px;height:32px;margin-top:2px;border:none;border-radius:50%;background:var(--surface2);color:var(--text2);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background .15s,color .15s}
.plus-x:hover{background:var(--border);color:var(--text)}
.plus-later{width:100%;height:42px;margin-top:6px;border:none;background:none;color:var(--text3);font-size:13.5px;font-weight:600;font-family:inherit;cursor:pointer}
/* PROFILE BADGES */
.bg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:14px 12px 24px}
@media (min-width:700px){.bg-grid{grid-template-columns:repeat(4,1fr)}}
.bg-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;aspect-ratio:1/1.04;padding:12px 8px;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;
  background:var(--surface2);border:0;border-radius:16px;color:var(--text);font:inherit;transition:background .15s,transform .15s}
@media (hover:hover){.bg-card:hover{background:var(--border)}}
.bg-card:active{transform:scale(.97)}
.bg-art{position:relative;width:62%;max-width:92px}
.bg-art svg{display:block;width:100%;height:auto;overflow:visible}
.bg-art .pb-shape{fill:var(--accent);stroke:var(--accent);stroke-width:1;stroke-linejoin:round}
.bg-hid{position:absolute;left:50%;top:50%;width:46%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:#3b5368;display:flex;align-items:center;justify-content:center}
.bg-hid svg{width:58%;height:58%;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.bg-card.lp-focus{visibility:hidden}
.lp-clone.bg-card{box-sizing:border-box}
.bg-card .bg-name{font-size:11.5px;font-weight:600;color:var(--text2);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bgs-modal{position:fixed;inset:0;z-index:100085;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;transition:opacity .18s}
.bgs-modal.show{opacity:1}
.bgs-sheet{position:relative;width:420px;max-width:100%;min-height:50vh;max-height:calc(100vh - 32px);overflow:auto;background:var(--surface);border-radius:24px;box-shadow:0 24px 70px rgba(0,0,0,.3);display:flex;flex-direction:column;align-items:center;text-align:center;padding:30px 24px 28px;transform:translateY(14px) scale(.98);transition:transform .22s cubic-bezier(.2,.8,.2,1)}
.bgs-modal.show .bgs-sheet{transform:none}
.bgs-grab{display:none}
.bgs-x{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;border:0;background:var(--surface2);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.bgs-x svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round}
.bgs-hero{position:relative;width:132px;height:132px;margin:auto 0 0;display:flex;align-items:center;justify-content:center}
.bgs-hero::before{content:"";position:absolute;inset:-14px;border-radius:50%;background:var(--accent);opacity:0}
.bgs-hero .bg-art{width:100%;max-width:none;opacity:0;transform:scale(.3) rotate(-120deg)}
.bgs-modal.show .bgs-hero .bg-art{animation:bgsIn .75s cubic-bezier(.2,1.15,.3,1) .12s both}
.bgs-sheet h3{margin:26px 0 0;font-size:21px;font-weight:700;color:var(--text);opacity:0;transform:translateY(8px)}
.bgs-sheet p{margin:10px 0 0;font-size:14.5px;line-height:1.5;color:var(--text2);opacity:0;transform:translateY(8px)}
.bgs-sheet .bgs-date{margin:16px 0 auto;font-size:12px;color:var(--text3);opacity:0}
.bgs-modal.show h3{animation:bgsUp .45s ease .35s forwards}
.bgs-modal.show p{animation:bgsUp .45s ease .45s forwards}
.bgs-modal.show .bgs-date{animation:bgsUp .45s ease .55s forwards}
@keyframes bgsIn{0%{opacity:0;transform:scale(.3) rotate(-120deg)}100%{opacity:1;transform:none}}
@keyframes bgsFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(3deg)}}
@keyframes bgsRing{0%{opacity:.16;transform:scale(.7)}100%{opacity:0;transform:scale(1.25)}}
@keyframes bgsUp{to{opacity:1;transform:none}}
@media(max-width:640px){
  .bgs-modal{align-items:flex-end;padding:0}
  .bgs-sheet{width:100%;min-height:50vh;max-height:92vh;border-radius:24px 24px 0 0;transform:translateY(100%);transition:transform .28s cubic-bezier(.2,.8,.2,1);padding-bottom:calc(28px + env(safe-area-inset-bottom))}
  .bgs-modal.show .bgs-sheet{transform:none}
  .bgs-sheet.drag{transition:none}
  .bgs-grab{display:block;position:absolute;top:8px;left:50%;margin-left:-20px;width:40px;height:4px;border-radius:2px;background:var(--border2)}
}
@media (prefers-reduced-motion:reduce){.bgs-hero::before{display:none}.bgs-hero .bg-art,.bgs-sheet h3,.bgs-sheet p,.bgs-sheet .bgs-date{animation:none!important;opacity:1!important;transform:none!important}}
.badge-pop{position:fixed;z-index:9500;display:none;max-width:250px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:9px 12px;box-shadow:0 8px 24px rgba(0,0,0,.28);font-size:12.5px;line-height:1.4;font-weight:500;pointer-events:none}
.dm-msg-wrap.mine .dm-read-mark{color:var(--accent-inv)}
.dm-msg-wrap.mine .dm-read-mark.read{opacity:1;color:#7dd3fc}
/* DM image in message */
.dm-msg-img{width:auto;height:auto;max-width:min(240px,62vw);max-height:320px;border-radius:12px;display:block;cursor:pointer;object-fit:contain;margin-bottom:4px}
.dm-msg-img-grid{display:grid;gap:3px;margin-bottom:4px;width:min(240px,62vw);max-width:100%}
.dm-msg-img-grid.n1{grid-template-columns:1fr}
.dm-msg-img-grid.n2{grid-template-columns:1fr 1fr}
.dm-msg-img-grid.n3{grid-template-columns:1fr 1fr}
.dm-msg-img-grid.n4plus{grid-template-columns:1fr 1fr}
.dm-msg-img-grid img{width:100%;height:110px;object-fit:cover;border-radius:10px;display:block;cursor:pointer}
.dm-msg-img-grid.n1 img{width:auto;max-width:100%;height:auto;max-height:320px;object-fit:contain}
.dm-msg-img-grid.n3 img:first-child{grid-column:1/-1;height:150px}
/* Сообщение только с фото: без пузыря и обводки, фото крупнее */
.dm-msg-wrap.mine .dm-msg.dm-msg-photo,.dm-msg-wrap.theirs .dm-msg.dm-msg-photo{background:none;border:none;padding:0;border-radius:0}
.dm-msg-photo{width:fit-content;max-width:min(260px,64vw)}
.dm-msg-photo .dm-msg-img{width:auto;height:auto;max-width:100%;max-height:340px;object-fit:contain;border-radius:16px;margin-bottom:0}
.dm-msg-photo .dm-msg-img-grid{width:100%;margin-bottom:0}
.dm-msg-photo .dm-msg-img-grid img{height:130px;border-radius:12px}
.dm-msg-photo .dm-msg-img-grid.n1 img{width:auto;max-width:100%;height:auto;max-height:340px;object-fit:contain;border-radius:16px}
.dm-msg-photo .dm-msg-img-grid.n3 img:first-child{height:170px}
.dm-msg-photo .dm-msg-time{position:absolute;right:8px;bottom:8px;margin:0;padding:2px 8px;border-radius:10px;background:rgba(0,0,0,.5);color:#fff;opacity:1;font-size:11px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.dm-msg-photo .dm-reactions{margin-top:4px}
.dm-vp{position:relative;width:fit-content;max-width:min(240px,100%);border-radius:14px;overflow:hidden;background:#000;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
.dm-msg-photo .dm-vp{width:fit-content;max-width:100%;border-radius:16px}
.dm-vp video{display:block;width:auto;height:auto;max-width:100%;max-height:340px;object-fit:contain;background:#000}
.dm-vp-big{position:absolute;left:50%;top:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.45);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:opacity .2s,transform .15s}
.dm-vp-big:active{transform:scale(.94)}
.dm-vp-big svg{width:22px;height:22px;margin-left:3px}
.dm-vp[data-state=playing] .dm-vp-big{opacity:0;pointer-events:none}
.dm-vp[data-auto] .dm-vp-big,.dm-vp[data-auto] .dm-vp-bar{opacity:0;pointer-events:none}
.dm-vp[data-auto]::after{content:'';position:absolute;right:8px;bottom:8px;width:26px;height:26px;border-radius:50%;background:rgba(0,0,0,.5) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polygon points='11 5 6 9 2 9 2 15 6 15 11 19 11 5' fill='white'/><line x1='23' y1='9' x2='17' y2='15'/><line x1='17' y1='9' x2='23' y2='15'/></svg>") center/15px no-repeat;pointer-events:none}
.dm-vp-bar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:8px;padding:22px 10px 8px;background:linear-gradient(transparent,rgba(0,0,0,.65));color:#fff;transition:opacity .2s}
.dm-vp[data-state=playing].idle .dm-vp-bar{opacity:0}
.dm-vp-b{width:26px;height:26px;flex:none;border:none;background:none;color:#fff;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:7px}
.dm-vp-b:hover{background:rgba(255,255,255,.16)}
.dm-vp-b svg{width:16px;height:16px}
.dm-vp-t{font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;opacity:.9;flex:none}
.dm-vp-track{flex:1;height:18px;display:flex;align-items:center;cursor:pointer;position:relative}
.dm-vp-track::before{content:'';position:absolute;left:0;right:0;height:3px;border-radius:2px;background:rgba(255,255,255,.3)}
.dm-vp-fill{position:relative;display:block;height:3px;width:0;border-radius:2px;background:#fff}
.dm-vp-fill::after{content:'';position:absolute;right:-5px;top:-3.5px;width:10px;height:10px;border-radius:50%;background:#fff}
.dm-vp .i-pause,.dm-vp .i-mute{display:none}
.dm-vp[data-state=playing] .i-play{display:none}
.dm-vp[data-state=playing] .i-pause{display:inline-flex}
.dm-vp.muted .i-vol{display:none}
.dm-vp.muted .i-mute{display:inline-flex}
.dm-vp .i-play,.dm-vp .i-pause,.dm-vp .i-vol,.dm-vp .i-mute{display:inline-flex}
.dm-vp .i-pause,.dm-vp .i-mute{display:none}
.dm-vp[data-state=playing] .i-pause{display:inline-flex}
.dm-vp.muted .i-mute{display:inline-flex}
/* видео на весь экран - тот же плеер в стиле сайта */
.dm-vp.full{position:fixed;left:0;top:0;right:0;bottom:0;z-index:9500;width:100%;max-width:none;height:100%;margin:0;border-radius:0;display:flex;align-items:center;justify-content:center}
.dm-vp.full video{width:100%;height:100%;max-height:none;object-fit:contain}
.dm-vp.full .dm-gtag{display:none}
.dm-vp.full .dm-vp-big{width:64px;height:64px;margin:-32px 0 0 -32px}
.dm-vp.full .dm-vp-bar{gap:12px;padding:36px calc(16px + env(safe-area-inset-right,0px)) calc(14px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-left,0px))}
.dm-vp.full .dm-vp-b{width:36px;height:36px;border-radius:9px}
.dm-vp.full .dm-vp-b svg{width:20px;height:20px}
.dm-vp.full .dm-vp-t{font-size:12.5px}
.dm-vp-x{position:absolute;left:calc(12px + env(safe-area-inset-left,0px));top:calc(12px + env(safe-area-inset-top,0px));z-index:9600;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.45);color:#fff;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);-webkit-tap-highlight-color:transparent;transition:opacity .2s,transform .15s}
.dm-vp-x:active{transform:scale(.94)}
.dm-vp-x svg{width:18px;height:18px}
.dm-vp[data-state=playing].idle .dm-vp-x{opacity:0;pointer-events:none}
.dm-msg-photo-vid .dm-msg-time{bottom:auto;top:8px}
.dm-msg-photo-vid:has(.dm-reactions:not(:empty)) .dm-msg-time{bottom:auto}
.dm-pending-clock{display:inline-flex;vertical-align:-2px;margin-left:3px}
.dm-pending-clock svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dm-msg-photo:has(.dm-reactions:not(:empty)) .dm-msg-time{bottom:calc(8px + 30px)}
/* видео-файл с реакциями: плашка времени остаётся маленькой в правом верхнем углу (раньше растягивалась на всё видео и перекрывала кнопку полного экрана) */
.dm-msg-photo.dm-msg-photo-vid:has(.dm-reactions:not(:empty)) .dm-msg-time{top:8px;bottom:auto;height:auto}
.dm-msg-photo-vid .dm-msg-time{pointer-events:none}
/* метка GIF у гифок в сообщениях чата */
.dm-gw{position:relative;display:block;min-width:0}
.dm-gtag{position:absolute;left:8px;top:8px;z-index:2;padding:2px 8px;border-radius:10px;background:rgba(0,0,0,.5);color:#fff;font-size:10.5px;font-weight:700;line-height:1.3;letter-spacing:.3px;pointer-events:none;font-family:'JetBrains Mono','Geologica',monospace}
.dm-msg-img-grid.n3>.dm-gw:first-child{grid-column:1/-1}
.dm-msg-img-grid.n3>.dm-gw:not(:first-child) img:first-child{height:110px}
.dm-msg-photo .dm-msg-img-grid.n3>.dm-gw:not(:first-child) img:first-child{height:130px}
.dm-msg-img-grid .dm-msg-img-more{position:relative}
.dm-msg-img-grid .dm-msg-img-more::after{content:attr(data-more);position:absolute;inset:0;background:rgba(0,0,0,.45);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;border-radius:8px}
.dm-img-preview-wrap{position:relative;display:inline-block;margin:4px 6px 6px 0}
.dm-img-preview-wrap img{width:60px;height:60px;object-fit:cover;border-radius:8px;display:block;border:1px solid var(--border)}
.dm-img-rm{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:var(--red);color:#fff;border:none;font-size:12px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.dm-img-preview-list{display:flex;flex-wrap:wrap;align-items:flex-start}
.dm-photo-btn{width:36px;height:36px;border-radius:9px;border:1px solid var(--border);background:var(--surface2);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .15s;color:var(--text2)}
.dm-photo-btn:hover{background:var(--border);color:var(--text)}
.dm-photo-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8}
/* Online status */
.dm-online-dot{width:9px;height:9px;border-radius:50%;background:#22c55e;border:2px solid var(--surface);display:inline-block;margin-left:4px;flex-shrink:0}
.dm-status-text{font-size:11px;color:var(--text3);font-weight:500}
.dm-status-text.online{color:#22c55e;font-weight:600}
.dm-status-text.typing{color:var(--text2);font-weight:500}
.rxl-ov{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.45);display:flex;align-items:flex-end;justify-content:center}
.rxl-sheet{background:var(--bg,var(--surface));width:100%;max-width:520px;max-height:70vh;border-radius:18px 18px 0 0;display:flex;flex-direction:column;overflow:hidden;padding-bottom:env(safe-area-inset-bottom,0px)}
@media(min-width:700px){.rxl-ov{align-items:center}.rxl-sheet{border-radius:18px}}
.rxl-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;font-weight:800;font-size:16px;color:var(--text)}
.rxl-head b{color:var(--text3);margin-left:4px}
.rxl-head button{border:none;background:none;font-size:24px;line-height:1;color:var(--text3);cursor:pointer}
.rxl-list{overflow-y:auto}
.rxl-row{display:flex;align-items:center;gap:12px;padding:9px 18px;cursor:pointer}
.rxl-row:active{background:var(--surface2)}
.rxl-ava{width:44px;height:44px;border-radius:50%;overflow:hidden;background:var(--surface2);color:var(--ava-bg);display:flex;align-items:center;justify-content:center;font-weight:800;flex-shrink:0}
.rxl-ava img{width:100%;height:100%;object-fit:cover}
.rxl-body{flex:1;min-width:0}
.rxl-name{font-weight:700;font-size:15px;color:var(--text);display:flex;align-items:center;gap:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rxl-when{font-size:12.5px;color:var(--text3);font-weight:500}
.rxl-emoji{font-size:22px}
.rxl-grab{width:38px;height:4px;border-radius:2px;background:var(--border2);margin:8px auto 0;flex-shrink:0}
.rxl-tabs{display:flex;gap:6px;padding:2px 14px 10px;overflow-x:auto;flex-shrink:0;scrollbar-width:none}
.rxl-tabs::-webkit-scrollbar{display:none}
.rxl-tab{flex:0 0 auto;display:flex;align-items:center;gap:6px;height:34px;padding:0 13px;border:none;border-radius:17px;background:var(--surface2);color:var(--text2);font-size:13.5px;font-weight:700;font-family:inherit;cursor:pointer;transition:background .15s,color .15s}
.rxl-tab .e{font-size:16px;line-height:1}
.rxl-tab.on{background:var(--accent);color:var(--accent-inv)}
.rxl-ava{position:relative;overflow:visible}
.rxl-ava img{border-radius:50%}
.rxl-ava-e{position:absolute;right:-3px;bottom:-3px;width:20px;height:20px;border-radius:50%;background:var(--bg,var(--surface));display:flex;align-items:center;justify-content:center;font-size:12px;line-height:1}
.rx-menu button.rx-who{padding-top:11px;padding-bottom:11px}
.rx-who-av{display:flex;flex-shrink:0;align-items:center}
.rx-who-av i{width:24px;height:24px;border-radius:50%;overflow:hidden;background:var(--surface2);color:var(--text2);border:2px solid var(--surface);box-sizing:content-box;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;font-style:normal;margin-left:-9px;flex-shrink:0}
.rx-who-av i:first-child{margin-left:0}
.rx-who-av i img{width:100%;height:100%;object-fit:cover;display:block}
/* Блюр фона на ПК при открытии списка закрепов и списка «кто отреагировал» */
@media(min-width:700px){.pin-ov,.rxl-ov,.plus-ov,.sc-back,.fld-ov,.tf-ov,.wl-ov{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
  .ppv-bot{justify-content:center}
  .ppv-bot button{flex:0 0 auto;min-width:170px;padding:0 28px}}
/* ── Видеосообщения-кружки ── */
.dm-circle{position:relative;width:200px;height:200px;max-width:100%;border-radius:50%;overflow:hidden;cursor:pointer;background:#1c1c1c;flex-shrink:0;-webkit-tap-highlight-color:transparent}
.dm-circle img,.dm-circle video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.dm-circle video{opacity:0}
.dm-circle.started video{opacity:1}
.dm-circle-ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none}
.dm-circle-ring circle{fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:butt;stroke-dasharray:301.6;stroke-dashoffset:301.6}
.dm-circle-play{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;transition:opacity .15s}
.dm-circle-play svg{width:20px;height:20px;fill:#fff;margin-left:2px}
.dm-circle.playing .dm-circle-play{opacity:0}
.dm-circle.loading .dm-circle-play{animation:circPulse .9s ease-in-out infinite}
@keyframes circPulse{0%,100%{opacity:1}50%{opacity:.35}}
.dm-circle-dur{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);z-index:3;padding:2px 9px;border-radius:10px;background:rgba(0,0,0,.5);color:#fff;font-size:11px;font-weight:600;font-family:'JetBrains Mono',monospace}
html .dm-msg-wrap.mine .dm-msg.dm-msg-circle,html .dm-msg-wrap.theirs .dm-msg.dm-msg-circle{background:none!important;border:none!important;outline:none!important;box-shadow:none!important;padding:0!important;border-radius:0!important;width:200px;max-width:100%}
.dm-msg.dm-msg-circle::before,.dm-msg.dm-msg-circle::after{display:none!important}
.dm-circle{outline:none;border:none;box-shadow:none}
.dm-circle:not(.started) .dm-circle-ring{display:none}
.dm-msg-circle .dm-msg-time{position:absolute;right:0;bottom:4px;margin:0;padding:2px 8px;border-radius:10px;background:rgba(0,0,0,.5);color:#fff;opacity:1;font-size:11px}
.dm-msg-circle:has(.dm-reactions:not(:empty)) .dm-msg-time{bottom:calc(4px + 30px)}
.dm-msg-circle .dm-reactions{margin-top:4px}
/* плавающий кружок: виден, когда играющее видеосообщение ушло с экрана */
.circ-float{display:none;position:fixed;z-index:5000;left:0;top:0;width:96px;height:96px;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
.circ-float.show{display:block;animation:circFloatIn .18s ease-out}
@keyframes circFloatIn{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}
.circ-float-disc{position:relative;width:100%;height:100%;border-radius:50%;overflow:hidden;background:#1c1c1c;box-shadow:0 6px 22px rgba(0,0,0,.38),0 0 0 2px rgba(255,255,255,.88);touch-action:none;cursor:grab}
.circ-float.drag .circ-float-disc{cursor:grabbing;box-shadow:0 10px 30px rgba(0,0,0,.48),0 0 0 2px rgba(255,255,255,.95)}
.circ-float-disc video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;opacity:1;pointer-events:none}
.circ-float-ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none}
.circ-float-ring circle{fill:none;stroke:#fff;stroke-width:3;stroke-linecap:butt;stroke-dasharray:301.6;stroke-dashoffset:301.6}
.circ-float-pp{position:absolute;left:50%;top:50%;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;pointer-events:none}
.circ-float-pp svg{width:15px;height:15px;fill:#fff;margin-left:2px}
.circ-float.paused .circ-float-pp{opacity:1}
.circ-live{position:fixed;z-index:9000;width:min(250px,64vw);height:min(250px,64vw);transform:translate(-50%,-50%);border-radius:50%;box-shadow:0 10px 40px rgba(0,0,0,.5);background:#111;animation:circLiveIn .18s ease-out}
@keyframes circLiveIn{from{opacity:0;transform:translate(-50%,-50%) scale(.85)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.circ-bg{position:fixed;inset:0;z-index:8990;pointer-events:none;background:rgba(0,0,0,.35);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:rxFade .18s ease-out}
.circ-live video{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.circ-live.mirror video{transform:scaleX(-1)}
.circ-live-ring{position:absolute;inset:-6px;width:calc(100% + 12px);height:calc(100% + 12px);transform:rotate(-90deg);pointer-events:none}
.circ-live-ring circle{fill:none;stroke-width:1.8}
.circ-live-ring .bg{stroke:rgba(255,255,255,.25)}
.circ-live-ring .fg{stroke:#ef4444;stroke-linecap:round;stroke-dasharray:301.6;stroke-dashoffset:301.6}
.circ-live-flip{position:absolute;right:2px;bottom:2px;width:40px;height:40px;border-radius:50%;border:none;background:rgba(0,0,0,.6);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.circ-live-flip svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dm-mic-btn .rm-swap{position:absolute;right:-5px;bottom:-5px;width:15px;height:15px;border-radius:50%;background:var(--accent);color:var(--accent-inv);display:flex;align-items:center;justify-content:center;border:1.5px solid var(--surface);pointer-events:none}
.dm-mic-btn .rm-swap svg{width:8px;height:8px;stroke:currentColor;fill:none;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.dm-mic-btn.recording .rm-swap{display:none}
.dm-dots i{font-style:normal;animation:dmDotBlink 1.2s infinite both}
.dm-dots i:nth-child(2){animation-delay:.2s}
.dm-dots i:nth-child(3){animation-delay:.4s}
@keyframes dmDotBlink{0%,80%,100%{opacity:.15}40%{opacity:1}}
.dm-sys-wrap{display:flex;justify-content:center;width:100%;padding:6px 14px;box-sizing:border-box}
.dm-sys-pill{max-width:86%;padding:5px 13px;border-radius:14px;background:var(--surface2);color:var(--text2);font-size:12.5px;font-weight:600;text-align:center;cursor:pointer;line-height:1.35;word-break:break-word}
.dm-sys-pill b{color:var(--text);font-weight:800}
.dm-sys-pill i{font-style:normal;color:var(--accent)}
.sk-card{display:flex;flex-direction:column;align-items:center;gap:10px;max-width:88%;padding:10px 14px;text-align:center}
.sk-line{display:flex;align-items:center;justify-content:center;gap:6px;color:var(--text2);font-size:14.5px;font-weight:600;line-height:1.3}
.sk-ico{width:20px;height:20px;flex-shrink:0;display:block}
.sk-ico.off .f-o{fill:#9aa0a8}.sk-ico.off .f-i{fill:#cfd3d8}
html[data-theme=dark] .sk-ico.off .f-o{fill:#6b7280}html[data-theme=dark] .sk-ico.off .f-i{fill:#9ca3af}
.sk-ico.purple{filter:drop-shadow(0 0 4px rgba(139,92,246,.55))}
.sk-ico.purple .f-o{fill:#8b5cf6}.sk-ico.purple .f-i{fill:#ddd0ff}
.sk-actions{display:flex;flex-direction:column;align-items:center;gap:6px}
.sk-restore{border:none;background:var(--surface2);color:var(--accent);font:inherit;font-size:14px;font-weight:800;padding:8px 22px;border-radius:999px;cursor:pointer;transition:transform .12s,opacity .12s}
.sk-restore:active{transform:scale(.96)}
.sk-restore:disabled{opacity:.6;cursor:default}
.sk-hint{font-size:11.5px;font-weight:600;color:var(--text3);line-height:1.35}
/* Typing dots animation */
.dm-list-typing{color:var(--accent);font-weight:600}
.dm-typing-dots{display:inline-flex;align-items:center;gap:2px;vertical-align:middle;margin-left:1px}
.dm-typing-dots span{width:3px;height:3px;border-radius:50%;background:var(--text3);display:inline-block;animation:dmDot 1.2s infinite ease-in-out}
.dm-typing-dots span:nth-child(1){animation-delay:0s}
.dm-typing-dots span:nth-child(2){animation-delay:.2s}
.dm-typing-dots span:nth-child(3){animation-delay:.4s}
@keyframes dmDot{0%,80%,100%{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}
.mob-nav-btn svg.nav-spin{animation:navSpin .8s linear infinite}
@keyframes navSpin{to{transform:rotate(360deg)}}
.posts-refresh-banner{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 auto 10px;padding:7px 16px;width:max-content;max-width:100%;border-radius:20px;background:var(--surface2);border:1px solid var(--border);color:var(--text2);font-size:12.5px;font-weight:700;animation:bannerIn .25s ease-out}
.posts-refresh-banner svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;animation:navSpin .8s linear infinite}
.posts-refresh-banner.out{animation:bannerOut .25s ease-in forwards}
@keyframes bannerIn{from{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:none}}
@keyframes bannerOut{to{opacity:0;transform:translateY(-8px) scale(.95)}}
.posts-feed.feed-refreshing{opacity:.45;transition:opacity .2s;pointer-events:none}
.posts-feed.feed-fresh>*{animation:postFreshIn .4s ease-out both}
.posts-feed.feed-fresh>*:nth-child(2){animation-delay:.05s}
.posts-feed.feed-fresh>*:nth-child(3){animation-delay:.1s}
.posts-feed.feed-fresh>*:nth-child(4){animation-delay:.15s}
.posts-feed.feed-fresh>*:nth-child(n+5){animation-delay:.2s}
@keyframes postFreshIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.dm-refresh-dots{display:inline-flex;align-items:flex-end;gap:3px;margin-left:4px;height:10px}
.dm-refresh-dots span{width:4px;height:4px;border-radius:50%;background:currentColor;display:inline-block;animation:dmRefreshBounce 1s infinite ease-in-out}
.dm-refresh-dots span:nth-child(2){animation-delay:.15s}
.dm-refresh-dots span:nth-child(3){animation-delay:.3s}
@keyframes dmRefreshBounce{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-5px);opacity:1}}

.dm-item-online{width:9px;height:9px;border-radius:50%;background:#22c55e;border:2px solid var(--surface);flex-shrink:0}
/* Fullscreen media viewer (фото и видео) - шапка как в мессенджере */
.img-viewer{display:none;position:fixed;inset:0;background:#000;z-index:9400;color:#fff;user-select:none;-webkit-user-select:none;touch-action:none;overscroll-behavior:contain;font-family:inherit}
.img-viewer.show{display:block}
.mv-stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.mv-stage img{max-width:100%;max-height:100%;object-fit:contain;transform-origin:center center;will-change:transform;-webkit-user-drag:none;transition:transform .2s ease-out}
.mv-stage img.dragging{transition:none}
.mv-top{position:absolute;left:0;right:0;top:0;z-index:5;padding:calc(6px + env(safe-area-inset-top,0px)) calc(6px + env(safe-area-inset-right,0px)) 14px calc(6px + env(safe-area-inset-left,0px));background:linear-gradient(rgba(0,0,0,.92),rgba(0,0,0,.72) 65%,rgba(0,0,0,0));color:#fff;transition:opacity .2s}
.mv-row{display:flex;align-items:center;gap:2px;min-height:48px}
.mv-b{width:42px;height:42px;flex:none;border:none;background:none;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s}
.mv-b:hover{background:rgba(255,255,255,.14)}
.mv-b:active{background:rgba(255,255,255,.24)}
.mv-b svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.mv-ttl{flex:1;min-width:0;margin:0 6px 0 4px;line-height:1.28;text-align:left}
.mv-name{font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mv-sub{font-size:12.5px;opacity:.72;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mv-count{text-align:center;font-size:13.5px;font-weight:600;opacity:.92;margin-top:4px}
.img-viewer.chrome-off .mv-top,.img-viewer.chrome-off .img-viewer-nav{opacity:0;pointer-events:none}
.img-viewer-nav{position:absolute;z-index:4;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.15);border:none;color:#fff;font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,opacity .2s}
.img-viewer-nav:hover{background:rgba(255,255,255,.3)}
.img-viewer-nav.prev{left:16px}
.img-viewer-nav.next{right:16px}
@media(hover:none){.img-viewer-nav{display:none!important}}
.mv-menu-ov{position:absolute;inset:0;z-index:8;background:transparent}
.mv-menu{position:absolute;z-index:9;top:calc(54px + env(safe-area-inset-top,0px));right:calc(8px + env(safe-area-inset-right,0px));min-width:220px;max-width:calc(100vw - 16px);max-height:calc(100% - 70px);overflow:auto;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:16px;box-shadow:0 8px 28px rgba(0,0,0,.35);transform-origin:top right;animation:mvPop .14s ease-out;font-family:'Geologica',sans-serif;text-align:left}
@keyframes mvPop{from{opacity:0;transform:scale(.94) translateY(-4px)}to{opacity:1;transform:none}}
.mv-menu button{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;border:none;background:none;color:var(--text);font-family:'Geologica',sans-serif;font-size:15px;font-weight:600;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent}
.mv-menu button:hover,.mv-menu button:active{background:var(--surface2)}
.mv-menu button svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mv-menu button.danger{color:var(--red)}
.mv-menu hr{border:none;height:1px;background:var(--border);margin:0}
/* шапка внутри видеоплеера (во весь экран) */
.dm-vp .mv-top{z-index:5}
/* анимация загрузки вместо чёрного экрана, пока видео подгружается с сервера */
.dm-vp.loading::before{content:'';position:absolute;left:50%;top:50%;width:42px;height:42px;margin:-21px 0 0 -21px;box-sizing:border-box;border-radius:50%;border:3px solid rgba(255,255,255,.22);border-top-color:#fff;animation:dmVpSpin .8s linear infinite;z-index:4;pointer-events:none}
.dm-vp.loading{background:linear-gradient(110deg,#0d0d0d 30%,#1c1c1c 50%,#0d0d0d 70%) 0 0/200% 100%;animation:dmVpShim 1.4s linear infinite}
.dm-vp.loading .dm-vp-big{opacity:0}
@keyframes dmVpSpin{to{transform:rotate(360deg)}}
@keyframes dmVpShim{to{background-position:-200% 0}}
.mv-top .dm-vp-x{position:relative;left:auto;top:auto;width:42px;height:42px;border:none;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;margin:0}
.dm-vp[data-state=playing].idle .mv-top{opacity:0;pointer-events:none}
.dm-vp.mv-menu-open .mv-top{opacity:1!important;pointer-events:auto!important}
@media(max-width:640px){.dm-layout{grid-template-columns:minmax(0,1fr);height:calc(100vh - var(--hdr-h,54px) - var(--nav-h,52px) - var(--call-bar-h,0px))}.dm-list{border-right:none}.dm-list{display:none}.dm-list.mobile-show{display:flex}.dm-chat{display:none}.dm-chat.mobile-show{display:flex}
  /* Мобильный список чатов без своего внутреннего скролла - листается вместе со страницей */
  .dm-layout{height:auto;min-height:calc(100vh - var(--hdr-h,54px) - var(--nav-h,52px) - var(--call-bar-h,0px));overflow:visible}
  .dm-list{height:auto;overflow:visible}
  .dm-conv-scroll{flex:none;overflow:visible}
  /* Длинное превью не должно растягивать колонку/строку за пределы экрана */
  .dm-list,.dm-conv-scroll,#dmConvList,.dm-item{min-width:0;max-width:100%}
  body.dm-fullscreen-mobile{padding-bottom:0}
  body.dm-fullscreen-mobile .carea{padding-bottom:0}
  body.dm-fullscreen-mobile header{display:none}
  body.dm-fullscreen-mobile .mob-nav{display:none}
  body.dm-fullscreen-mobile .dm-chat.mobile-show{position:fixed;top:var(--vvt,0px);left:0;right:0;bottom:auto;height:100vh;height:100dvh;height:var(--vvh,100dvh);z-index:400;border-radius:0;background:var(--bg,var(--surface))}
  body.dm-fullscreen-mobile{overflow:hidden}
  /* во время свайпа назад показываем список чатов под чатом */
  body.dm-swiping .dm-list{display:flex !important}
  body.dm-swiping .dm-item.active,html[data-chat-theme] body.dm-swiping .dm-item.active{background:transparent !important}
  body.dm-swiping.dm-fullscreen-mobile header{display:flex}
  body.dm-swiping.dm-fullscreen-mobile .mob-nav{display:flex}
}
/* WRITE BUTTON on user page */
.upage-actions{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}

/* MOBILE BOTTOM NAV */
.mob-nav{display:none;position:fixed;bottom:calc(10px + env(safe-area-inset-bottom,0px));left:10px;right:10px;height:58px;box-sizing:border-box;padding:0 6px;background:var(--surface2);border:none;border-radius:20px;box-shadow:0 6px 24px rgba(0,0,0,.4);z-index:300;flex-direction:row;align-items:stretch}
.mob-nav-btn{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:none;background:none;color:var(--text3);cursor:pointer;font-family:'Geologica',sans-serif;font-size:10px;font-weight:700;transition:color .15s;padding:0 2px;position:relative}
.mob-nav-btn.active{color:var(--text)}
.mob-nav-btn svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.8;flex-shrink:0}
.mob-nav::before{content:'';position:fixed;left:0;right:0;bottom:0;height:calc(var(--nav-h,78px) + 44px);z-index:-1;pointer-events:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);-webkit-mask-image:linear-gradient(to top,#000 70%,transparent);mask-image:linear-gradient(to top,#000 70%,transparent)}
body.mob-more-open .mob-nav::before{display:none}
.mob-more-btn{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;border:none;background:none;padding:0;position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent}
.mob-more-ic{width:48px;height:48px;border-radius:50%;background:var(--accent);color:var(--accent-inv);display:flex;align-items:center;justify-content:center;transition:transform .18s}
html[data-chat-theme] .mob-more-ic{background:var(--ct-solid)}
.mob-more-ic svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mob-more-btn.open .mob-more-ic{transform:scale(.92)}
#mnMoreDot{top:6px;right:calc(50% - 28px);min-width:12px;height:12px;border-radius:50%;background:#ef4444;border:2px solid var(--surface2);padding:0}
#mobMore{position:fixed;inset:0;z-index:299;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}
#mobMore.show{opacity:1;visibility:visible}
.mob-more-dome{position:absolute;left:10px;right:10px;bottom:calc(82px + env(safe-area-inset-bottom,0px));box-sizing:border-box;max-width:460px;margin:0 auto;background:var(--surface2);border:none;border-radius:20px;padding:18px 10px 14px;transform:translateY(16px) scale(.97);transform-origin:50% 100%;opacity:0;transition:transform .24s cubic-bezier(.3,.8,.3,1),opacity .2s;box-shadow:0 8px 32px rgba(0,0,0,.45)}
#mobMore.show .mob-more-dome{transform:none;opacity:1}
.mob-more-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 4px;justify-items:center}
#mobMore .mob-nav-btn{flex:none;width:100%;max-width:92px;height:auto;gap:7px;padding:0;font-size:12px;font-weight:700;color:var(--text2);white-space:nowrap}
#mobMore .mob-nav-btn svg{width:24px;height:24px;box-sizing:content-box;padding:14px;border-radius:50%;background:var(--surface)}
#mobMore .mob-nav-btn svg.mm-fill{fill:currentColor;stroke:none}
#mobMore .mob-nav-btn.active{color:var(--text)}
#mobMore .mob-nav-btn.active svg{background:var(--accent);color:var(--accent-inv)}
#mobMore .mob-nav-dot{top:0;right:calc(50% - 34px)}
@media(min-width:641px){
#mobMore{display:none!important}
}
.mob-nav-dot{position:absolute;top:4px;right:calc(50% - 22px);min-width:16px;height:16px;border-radius:8px;background:var(--accent);color:var(--accent-inv);font-size:10px;font-weight:800;align-items:center;justify-content:center;padding:0 4px;line-height:1;box-sizing:border-box}

/* RESPONSIVE */
@media(max-width:1024px){.pgrid{grid-template-columns:1fr}.rcol{flex-direction:row;flex-wrap:wrap}.rcol>*{min-width:260px;flex:1}}
@media(max-width:860px){.sidebar{display:none}}
@media(max-width:640px){
  .mob-nav{display:flex}
  :root{--nav-h:calc(78px + env(safe-area-inset-bottom,0px))}
  body{padding-bottom:0}
  .carea{padding-bottom:var(--nav-h)}
  header{padding:0 10px;gap:7px}.logo span{display:none}
  .swrap{max-width:unset;min-width:0;flex:1}.cinner{padding:12px 10px}.pgrid{gap:12px}
  .hright{gap:5px;flex-shrink:0}
  #coinChip{font-size:12px;padding:3px 8px 3px 6px}
  .rcol{flex-direction:column}.rcol>*{min-width:unset}
  .nitem{flex-direction:column}.nimg{width:100%;height:150px}
  .sgrid{grid-template-columns:repeat(3,1fr)}
  .spage{padding:14px 0}.ptitle{font-size:21px}
  .rinfo{grid-template-columns:1fr}
  .links-table{font-size:12px}
  .lt-orig{max-width:120px}
}
@media(max-width:400px){.sgrid{grid-template-columns:repeat(2,1fr)}}


/* ── ТЕМЫ ЧАТОВ ── */
.ct-card[data-ct=classic]{--ct-mine-bg:#111110;--ct-mine-fg:#fff;--ct-in-bg:#f2f2ef;--ct-in-fg:#111110;--ct-in-bd:#e8e8e4;--ct-btn-bg:#111110;--ct-btn-fg:#fff}
[data-theme=dark] .ct-card[data-ct=classic]{--ct-mine-bg:#f0f0ed;--ct-mine-fg:#161615;--ct-in-bg:#1e1e1c;--ct-in-fg:#f0f0ed;--ct-in-bd:#2a2a27;--ct-btn-bg:#f0f0ed;--ct-btn-fg:#161615}
html[data-chat-theme=ocean],.ct-card[data-ct=ocean]{--ct-mine-bg:#2563eb;--ct-mine-fg:#fff;--ct-in-bg:#eff6ff;--ct-in-fg:#1e3a8a;--ct-in-bd:#bfdbfe;--ct-btn-bg:#2563eb;--ct-btn-fg:#fff}
html[data-theme=dark][data-chat-theme=ocean],[data-theme=dark] .ct-card[data-ct=ocean]{--ct-mine-bg:#3b82f6;--ct-mine-fg:#fff;--ct-in-bg:#172554;--ct-in-fg:#dbeafe;--ct-in-bd:#1e3a8a;--ct-btn-bg:#3b82f6;--ct-btn-fg:#fff}
html[data-chat-theme=sunset],.ct-card[data-ct=sunset]{--ct-mine-bg:linear-gradient(135deg,#f97316,#ec4899);--ct-mine-fg:#fff;--ct-in-bg:#fff7ed;--ct-in-fg:#7c2d12;--ct-in-bd:#fed7aa;--ct-btn-bg:linear-gradient(135deg,#f97316,#ec4899);--ct-btn-fg:#fff}
html[data-theme=dark][data-chat-theme=sunset],[data-theme=dark] .ct-card[data-ct=sunset]{--ct-mine-bg:linear-gradient(135deg,#ea580c,#db2777);--ct-mine-fg:#fff;--ct-in-bg:#3a1d0c;--ct-in-fg:#ffedd5;--ct-in-bd:#7c2d12;--ct-btn-bg:linear-gradient(135deg,#ea580c,#db2777);--ct-btn-fg:#fff}
html[data-chat-theme=forest],.ct-card[data-ct=forest]{--ct-mine-bg:#16a34a;--ct-mine-fg:#fff;--ct-in-bg:#f0fdf4;--ct-in-fg:#14532d;--ct-in-bd:#bbf7d0;--ct-btn-bg:#16a34a;--ct-btn-fg:#fff}
html[data-theme=dark][data-chat-theme=forest],[data-theme=dark] .ct-card[data-ct=forest]{--ct-mine-bg:#22c55e;--ct-mine-fg:#052e16;--ct-in-bg:#0f2a1a;--ct-in-fg:#dcfce7;--ct-in-bd:#14532d;--ct-btn-bg:#22c55e;--ct-btn-fg:#052e16}
html[data-chat-theme=violet],.ct-card[data-ct=violet]{--ct-mine-bg:#7c3aed;--ct-mine-fg:#fff;--ct-in-bg:#f5f3ff;--ct-in-fg:#4c1d95;--ct-in-bd:#ddd6fe;--ct-btn-bg:#7c3aed;--ct-btn-fg:#fff}
html[data-theme=dark][data-chat-theme=violet],[data-theme=dark] .ct-card[data-ct=violet]{--ct-mine-bg:#8b5cf6;--ct-mine-fg:#fff;--ct-in-bg:#1e1538;--ct-in-fg:#ede9fe;--ct-in-bd:#4c1d95;--ct-btn-bg:#8b5cf6;--ct-btn-fg:#fff}

/* применение к чатам (только когда выбрана не «Классика») */
html[data-chat-theme] .dm-msg-wrap.mine .dm-msg:not(.dm-msg-photo){background:var(--ct-mine-bg);color:var(--ct-mine-fg)}
html[data-chat-theme] .dm-msg-wrap.theirs .dm-msg:not(.dm-msg-photo){background:var(--ct-in-bg);color:var(--ct-in-fg);border:none}
html[data-chat-theme] .dm-msg-wrap.theirs .dm-msg .msg-link{color:var(--ct-in-fg)}
html[data-chat-theme] .dm-msg-wrap.mine .dm-read-mark{color:var(--ct-mine-fg)}
html[data-chat-theme] .dm-msg-wrap.mine .dm-read-mark.read{color:#7dd3fc}
html[data-chat-theme] .dm-send,html[data-chat-theme] .dm-rec-send,html[data-chat-theme] #aiSendBtn{background:var(--ct-btn-bg)!important;color:var(--ct-btn-fg)!important}
html[data-chat-theme] .dm-send svg,html[data-chat-theme] .dm-rec-send svg{stroke:var(--ct-btn-fg)}
html[data-chat-theme] .dm-reply-btn:hover,html[data-chat-theme] .dm-msg-wrap.theirs .dm-voice-btn{background:var(--ct-btn-bg);color:var(--ct-btn-fg)}
html[data-chat-theme] .dm-msg-sender,html[data-chat-theme] .dm-reply-preview-name,html[data-chat-theme] .dm-reply-preview-icon{color:var(--ct-btn-bg)}
html[data-chat-theme] .ai-msg-bubble.mine{background:var(--ct-mine-bg)!important;color:var(--ct-mine-fg)!important}
html[data-chat-theme] .ai-msg-bubble:not(.mine):not(.plain){background:var(--ct-in-bg)!important;color:var(--ct-in-fg)!important;border-color:var(--ct-in-bd)!important}
/* Аватарки без фото (буква / иконка группы, канала, бота) НЕ красятся в тему чата - всегда чёрные (светлая тема) / белые (тёмная) */

/* раздел настроек «Темы чатов» */

/* ── ФОНЫ ЧАТОВ: рисунок красится в цвет выбранной темы чата и сам светлеет/темнеет вместе со светлой/тёмной темой ── */
:root{--cb-c:color-mix(in srgb,var(--ct-solid,var(--text)) 16%,transparent);--cb-c2:color-mix(in srgb,var(--ct-solid,var(--text)) 9%,transparent)}
[data-theme=dark]{--cb-c:color-mix(in srgb,var(--ct-solid,var(--text)) 24%,transparent);--cb-c2:color-mix(in srgb,var(--ct-solid,var(--text)) 14%,transparent)}
html[data-chat-bg] .dm-msgs,html[data-chat-bg] #aiChatMessages{background-color:color-mix(in srgb,var(--ct-solid,var(--text)) 4%,var(--bg,var(--surface)))}
html[data-chat-bg=grid] .dm-msgs,html[data-chat-bg=grid] #aiChatMessages,.cb-card[data-cb=grid] .cb-prev{background-image:linear-gradient(var(--cb-c) 1px,transparent 1px),linear-gradient(90deg,var(--cb-c) 1px,transparent 1px);background-size:32px 32px}
html[data-chat-bg=paper] .dm-msgs,html[data-chat-bg=paper] #aiChatMessages,.cb-card[data-cb=paper] .cb-prev{background-image:linear-gradient(var(--cb-c2) 1px,transparent 1px),linear-gradient(90deg,var(--cb-c2) 1px,transparent 1px);background-size:18px 18px}
html[data-chat-bg=blueprint] .dm-msgs,html[data-chat-bg=blueprint] #aiChatMessages,.cb-card[data-cb=blueprint] .cb-prev{background-image:linear-gradient(var(--cb-c) 1px,transparent 1px),linear-gradient(90deg,var(--cb-c) 1px,transparent 1px),linear-gradient(var(--cb-c2) 1px,transparent 1px),linear-gradient(90deg,var(--cb-c2) 1px,transparent 1px);background-size:96px 96px,96px 96px,24px 24px,24px 24px}
html[data-chat-bg=diamonds] .dm-msgs,html[data-chat-bg=diamonds] #aiChatMessages,.cb-card[data-cb=diamonds] .cb-prev{background-image:repeating-linear-gradient(45deg,var(--cb-c) 0 1px,transparent 1px 24px),repeating-linear-gradient(-45deg,var(--cb-c) 0 1px,transparent 1px 24px)}
html[data-chat-bg=dots] .dm-msgs,html[data-chat-bg=dots] #aiChatMessages,.cb-card[data-cb=dots] .cb-prev{background-image:radial-gradient(circle,var(--cb-c) 1.6px,transparent 2px);background-size:22px 22px}
html[data-chat-bg=checker] .dm-msgs,html[data-chat-bg=checker] #aiChatMessages,.cb-card[data-cb=checker] .cb-prev{background-image:conic-gradient(var(--cb-c2) 25%,transparent 0 50%,var(--cb-c2) 0 75%,transparent 0);background-size:48px 48px}
html[data-chat-bg=lines] .dm-msgs,html[data-chat-bg=lines] #aiChatMessages,.cb-card[data-cb=lines] .cb-prev{background-image:repeating-linear-gradient(transparent 0 27px,var(--cb-c) 27px 28px)}
html[data-chat-bg=diag] .dm-msgs,html[data-chat-bg=diag] #aiChatMessages,.cb-card[data-cb=diag] .cb-prev{background-image:repeating-linear-gradient(45deg,var(--cb-c) 0 1px,transparent 1px 14px)}
html[data-chat-bg=nodes] .dm-msgs,html[data-chat-bg=nodes] #aiChatMessages,.cb-card[data-cb=nodes] .cb-prev{background-image:radial-gradient(circle,var(--cb-c) 2px,transparent 2.5px),linear-gradient(var(--cb-c2) 1px,transparent 1px),linear-gradient(90deg,var(--cb-c2) 1px,transparent 1px);background-size:36px 36px;background-position:0 0,18px 18px,18px 18px}
html[data-chat-bg=zigzag] .dm-msgs,html[data-chat-bg=zigzag] #aiChatMessages,.cb-card[data-cb=zigzag] .cb-prev{background-image:linear-gradient(135deg,var(--cb-c2) 25%,transparent 25%),linear-gradient(225deg,var(--cb-c2) 25%,transparent 25%),linear-gradient(315deg,var(--cb-c2) 25%,transparent 25%),linear-gradient(45deg,var(--cb-c2) 25%,transparent 25%);background-size:28px 28px;background-position:-14px 0,-14px 0,0 0,0 0}
html[data-chat-bg=wide] .dm-msgs,html[data-chat-bg=wide] #aiChatMessages,.cb-card[data-cb=wide] .cb-prev{background-image:linear-gradient(var(--cb-c) 1px,transparent 1px),linear-gradient(90deg,var(--cb-c) 1px,transparent 1px);background-size:64px 64px}
html[data-chat-bg=dense] .dm-msgs,html[data-chat-bg=dense] #aiChatMessages,.cb-card[data-cb=dense] .cb-prev{background-image:linear-gradient(var(--cb-c2) 1px,transparent 1px),linear-gradient(90deg,var(--cb-c2) 1px,transparent 1px);background-size:10px 10px}
html[data-chat-bg=bigdots] .dm-msgs,html[data-chat-bg=bigdots] #aiChatMessages,.cb-card[data-cb=bigdots] .cb-prev{background-image:radial-gradient(circle,var(--cb-c) 3px,transparent 3.5px);background-size:40px 40px}
html[data-chat-bg=polka] .dm-msgs,html[data-chat-bg=polka] #aiChatMessages,.cb-card[data-cb=polka] .cb-prev{background-image:radial-gradient(circle,var(--cb-c) 3px,transparent 3.5px),radial-gradient(circle,var(--cb-c) 3px,transparent 3.5px);background-size:44px 44px;background-position:0 0,22px 22px}
html[data-chat-bg=vstripes] .dm-msgs,html[data-chat-bg=vstripes] #aiChatMessages,.cb-card[data-cb=vstripes] .cb-prev{background-image:repeating-linear-gradient(90deg,var(--cb-c2) 0 12px,transparent 12px 24px)}
html[data-chat-bg=hstripes] .dm-msgs,html[data-chat-bg=hstripes] #aiChatMessages,.cb-card[data-cb=hstripes] .cb-prev{background-image:repeating-linear-gradient(var(--cb-c2) 0 16px,transparent 16px 32px)}
html[data-chat-bg=dstripes] .dm-msgs,html[data-chat-bg=dstripes] #aiChatMessages,.cb-card[data-cb=dstripes] .cb-prev{background-image:repeating-linear-gradient(45deg,var(--cb-c2) 0 10px,transparent 10px 20px)}
html[data-chat-bg=plaid] .dm-msgs,html[data-chat-bg=plaid] #aiChatMessages,.cb-card[data-cb=plaid] .cb-prev{background-image:repeating-linear-gradient(0deg,var(--cb-c2) 0 14px,transparent 14px 56px),repeating-linear-gradient(90deg,var(--cb-c2) 0 14px,transparent 14px 56px),repeating-linear-gradient(0deg,var(--cb-c) 0 2px,transparent 2px 28px),repeating-linear-gradient(90deg,var(--cb-c) 0 2px,transparent 2px 28px)}
html[data-chat-bg=rings] .dm-msgs,html[data-chat-bg=rings] #aiChatMessages,.cb-card[data-cb=rings] .cb-prev{background-image:radial-gradient(circle,transparent 9px,var(--cb-c) 9px 10px,transparent 10px);background-size:34px 34px}
html[data-chat-bg=double] .dm-msgs,html[data-chat-bg=double] #aiChatMessages,.cb-card[data-cb=double] .cb-prev{background-image:repeating-linear-gradient(transparent 0 18px,var(--cb-c) 18px 19px,transparent 19px 22px,var(--cb-c) 22px 23px,transparent 23px 34px)}
html[data-chat-bg=vlines] .dm-msgs,html[data-chat-bg=vlines] #aiChatMessages,.cb-card[data-cb=vlines] .cb-prev{background-image:repeating-linear-gradient(90deg,var(--cb-c) 0 1px,transparent 1px 26px)}
html[data-chat-bg=ripples] .dm-msgs,html[data-chat-bg=ripples] #aiChatMessages,.cb-card[data-cb=ripples] .cb-prev{background-image:repeating-radial-gradient(circle at 50% 50%,transparent 0 28px,var(--cb-c2) 28px 30px)}
html[data-chat-bg=rays] .dm-msgs,html[data-chat-bg=rays] #aiChatMessages,.cb-card[data-cb=rays] .cb-prev{background-image:repeating-conic-gradient(from 0deg at 50% 50%,var(--cb-c2) 0 6deg,transparent 6deg 12deg)}
html[data-chat-bg=harlequin] .dm-msgs,html[data-chat-bg=harlequin] #aiChatMessages,.cb-card[data-cb=harlequin] .cb-prev{background-image:linear-gradient(45deg,var(--cb-c2) 25%,transparent 25%,transparent 75%,var(--cb-c2) 75%),linear-gradient(45deg,var(--cb-c2) 25%,transparent 25%,transparent 75%,var(--cb-c2) 75%);background-size:40px 40px;background-position:0 0,20px 20px}
html[data-chat-bg=bigchecker] .dm-msgs,html[data-chat-bg=bigchecker] #aiChatMessages,.cb-card[data-cb=bigchecker] .cb-prev{background-image:conic-gradient(var(--cb-c2) 25%,transparent 0 50%,var(--cb-c2) 0 75%,transparent 0);background-size:96px 96px}
html[data-chat-bg=triangles] .dm-msgs,html[data-chat-bg=triangles] #aiChatMessages,.cb-card[data-cb=triangles] .cb-prev{background-image:linear-gradient(135deg,var(--cb-c2) 25%,transparent 25%),linear-gradient(225deg,var(--cb-c2) 25%,transparent 25%),linear-gradient(315deg,var(--cb-c2) 25%,transparent 25%),linear-gradient(45deg,var(--cb-c2) 25%,transparent 25%);background-size:44px 44px;background-position:22px 0,22px 0,0 0,0 0}
html[data-chat-bg=waves] .dm-msgs,html[data-chat-bg=waves] #aiChatMessages,.cb-card[data-cb=waves] .cb-prev{background-image:radial-gradient(circle at 50% 100%,transparent 9px,var(--cb-c) 9px 10px,transparent 10px),radial-gradient(circle at 50% 0,var(--cb-c) 9px 10px,transparent 10px);background-size:40px 20px;background-position:0 0,20px 10px}
html[data-chat-bg=glow] .dm-msgs,html[data-chat-bg=glow] #aiChatMessages,.cb-card[data-cb=glow] .cb-prev{background-image:radial-gradient(circle at 18% 22%,var(--cb-c) 0,transparent 42%),radial-gradient(circle at 82% 78%,var(--cb-c) 0,transparent 46%),radial-gradient(circle at 80% 15%,var(--cb-c2) 0,transparent 38%);background-attachment:local}
html[data-chat-bg=confetti] .dm-msgs,html[data-chat-bg=confetti] #aiChatMessages,.cb-card[data-cb=confetti] .cb-prev{background-image:radial-gradient(circle at 10% 20%,var(--cb-c) 2px,transparent 2.5px),radial-gradient(circle at 62% 8%,var(--cb-c) 1.6px,transparent 2px),radial-gradient(circle at 86% 52%,var(--cb-c) 2.4px,transparent 2.9px),radial-gradient(circle at 34% 74%,var(--cb-c) 1.8px,transparent 2.3px),radial-gradient(circle at 70% 90%,var(--cb-c2) 3px,transparent 3.5px);background-size:96px 96px}
html[data-chat-bg=hatch] .dm-msgs,html[data-chat-bg=hatch] #aiChatMessages,.cb-card[data-cb=hatch] .cb-prev{background-image:repeating-linear-gradient(45deg,var(--cb-c2) 0 1px,transparent 1px 9px),repeating-linear-gradient(-45deg,var(--cb-c2) 0 1px,transparent 1px 9px)}
/* ── Анимированные фоны чата (чистый CSS, цвета берутся из темы сайта) ── */
@keyframes cbDrift{from{background-position:0 0,0 0}to{background-position:32px 32px,32px 32px}}
@keyframes cbAurora{from{background-position:0% 0%,100% 100%,50% 0%}to{background-position:100% 100%,0% 0%,50% 100%}}
@keyframes cbScan{from{background-position:0 0,0 0,0 0}to{background-position:0 0,0 0,0 260px}}
@keyframes cbStream{from{background-position:0 0,20px 20px}to{background-position:0 40px,20px -44px}}
@keyframes cbStripes{from{background-position:0 0}to{background-position:40px 0}}
html[data-chat-bg=drift] .dm-msgs,html[data-chat-bg=drift] #aiChatMessages,.cb-card[data-cb=drift] .cb-prev{background-image:linear-gradient(var(--cb-c) 1px,transparent 1px),linear-gradient(90deg,var(--cb-c) 1px,transparent 1px);background-size:32px 32px;animation:cbDrift 6s linear infinite}
html[data-chat-bg=aurora] .dm-msgs,html[data-chat-bg=aurora] #aiChatMessages,.cb-card[data-cb=aurora] .cb-prev{background-image:radial-gradient(circle at 30% 30%,var(--cb-c) 0,transparent 38%),radial-gradient(circle at 70% 70%,var(--cb-c) 0,transparent 42%),radial-gradient(circle at 50% 20%,var(--cb-c2) 0,transparent 36%);background-size:220% 220%;background-repeat:no-repeat;animation:cbAurora 16s ease-in-out infinite alternate}
html[data-chat-bg=scan] .dm-msgs,html[data-chat-bg=scan] #aiChatMessages,.cb-card[data-cb=scan] .cb-prev{background-image:linear-gradient(var(--cb-c2) 1px,transparent 1px),linear-gradient(90deg,var(--cb-c2) 1px,transparent 1px),linear-gradient(180deg,transparent 0,var(--cb-c2) 38%,var(--cb-c) 50%,transparent 50.5%,transparent 100%);background-size:24px 24px,24px 24px,100% 260px;animation:cbScan 7s linear infinite}
html[data-chat-bg=stream] .dm-msgs,html[data-chat-bg=stream] #aiChatMessages,.cb-card[data-cb=stream] .cb-prev{background-image:radial-gradient(circle,var(--cb-c) 1.6px,transparent 2px),radial-gradient(circle,var(--cb-c2) 2.6px,transparent 3.2px);background-size:40px 40px,64px 64px;background-position:0 0,20px 20px;animation:cbStream 8s linear infinite}
html[data-chat-bg=stripes] .dm-msgs,html[data-chat-bg=stripes] #aiChatMessages,.cb-card[data-cb=stripes] .cb-prev{background-image:linear-gradient(135deg,var(--cb-c2) 25%,transparent 25%,transparent 50%,var(--cb-c2) 50%,var(--cb-c2) 75%,transparent 75%);background-size:40px 40px;animation:cbStripes 3s linear infinite}
@media(prefers-reduced-motion:reduce){html:is([data-chat-bg=drift],[data-chat-bg=aurora],[data-chat-bg=scan],[data-chat-bg=stream],[data-chat-bg=stripes]) :is(.dm-msgs,#aiChatMessages),.cb-card:is([data-cb=drift],[data-cb=aurora],[data-cb=scan],[data-cb=stream],[data-cb=stripes]) .cb-prev{animation:none}}
.cb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-top:12px}
.cb-card{border:2px solid var(--border);border-radius:14px;padding:8px;background:var(--surface);cursor:pointer;display:flex;flex-direction:column;gap:6px;text-align:left;font-family:inherit;transition:border-color .15s,transform .12s}
.cb-card:active{transform:scale(.98)}
.cb-card.sel{border-color:var(--ct-solid,var(--text));box-shadow:0 0 0 2px color-mix(in srgb,var(--ct-solid,var(--text)) 25%,transparent)}
.cb-card-name{font-size:12.5px;font-weight:800;color:var(--text);display:flex;align-items:center;justify-content:space-between}
.cb-card-chk{display:none;font-size:11px;font-weight:800;color:var(--ct-solid,var(--text))}
.cb-card.sel .cb-card-chk{display:block}
.cb-prev{height:64px;border-radius:10px;border:1px solid var(--border);background-color:color-mix(in srgb,var(--ct-solid,var(--text)) 4%,var(--bg,var(--surface)));position:relative;overflow:hidden}
.cb-prev::before,.cb-prev::after{content:"";position:absolute;height:12px;border-radius:7px}
.cb-prev::before{left:8px;top:10px;width:46%;background:var(--surface);border:1px solid var(--border)}
.cb-prev::after{right:8px;bottom:10px;width:38%;background:var(--ct-solid,var(--text))}
.ct-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:12px}
.ct-card{border:2px solid var(--border);border-radius:14px;padding:10px;background:var(--surface);cursor:pointer;display:flex;flex-direction:column;gap:6px;text-align:left;font-family:inherit;transition:border-color .15s,transform .12s;position:relative}
.ct-card:active{transform:scale(.98)}
.ct-card.sel{border-color:var(--ct-solid);box-shadow:0 0 0 2px color-mix(in srgb,var(--ct-solid) 25%,transparent)}
.ct-card-name{font-size:13px;font-weight:800;color:var(--text);display:flex;align-items:center;justify-content:space-between}
.ct-card-chk{width:16px;height:16px;border-radius:50%;background:var(--ct-btn-bg);color:var(--ct-btn-fg);display:none;align-items:center;justify-content:center;font-size:10px;font-weight:800}
.ct-card.sel .ct-card-chk{display:flex}
.ct-b{font-size:11px;font-weight:600;line-height:1.35;padding:6px 9px;border-radius:12px;max-width:88%}
.ct-b.in{background:var(--ct-in-bg);color:var(--ct-in-fg);border:1px solid var(--ct-in-bd);border-bottom-left-radius:4px;align-self:flex-start}
.ct-b.out{background:var(--ct-mine-bg);color:var(--ct-mine-fg);border-bottom-right-radius:4px;align-self:flex-end}
.ct-btn-demo{align-self:flex-end;height:20px;padding:0 10px;border-radius:10px;background:var(--ct-btn-bg);color:var(--ct-btn-fg);font-size:10px;font-weight:800;display:flex;align-items:center}

/* ── ТЕМА НА ВЕСЬ ИНТЕРФЕЙС ── */
html[data-chat-theme=ocean]{--ct-solid:#2563eb;--ct-solid-fg:#fff}
html[data-theme=dark][data-chat-theme=ocean]{--ct-solid:#3b82f6;--ct-solid-fg:#fff}
html[data-chat-theme=sunset]{--ct-solid:#f97316;--ct-solid-fg:#fff}
html[data-theme=dark][data-chat-theme=sunset]{--ct-solid:#ea580c;--ct-solid-fg:#fff}
html[data-chat-theme=forest]{--ct-solid:#16a34a;--ct-solid-fg:#fff}
html[data-theme=dark][data-chat-theme=forest]{--ct-solid:#22c55e;--ct-solid-fg:#052e16}
html[data-chat-theme=violet]{--ct-solid:#7c3aed;--ct-solid-fg:#fff}
html[data-theme=dark][data-chat-theme=violet]{--ct-solid:#8b5cf6;--ct-solid-fg:#fff}
html[data-chat-theme]{--accent:var(--ct-solid);--accent-inv:var(--ct-solid-fg);--border2:color-mix(in srgb,var(--ct-solid) 40%,var(--border));accent-color:var(--ct-solid)}
html[data-chat-theme] ::selection{background:color-mix(in srgb,var(--ct-solid) 35%,transparent)}
html[data-chat-theme] input,html[data-chat-theme] textarea{caret-color:var(--ct-solid)}
/* подсветка: фокус полей */
html[data-chat-theme] .swrap input:focus,html[data-chat-theme] .shinput:focus,html[data-chat-theme] .binp:focus,html[data-chat-theme] .minp:focus,html[data-chat-theme] .prof-bio-ta:focus,html[data-chat-theme] .prof-edit-inp:focus,html[data-chat-theme] .dm-input:focus{border-color:var(--ct-solid);box-shadow:0 0 0 3px color-mix(in srgb,var(--ct-solid) 18%,transparent)}
/* подсветка: активные и выбранные элементы */
html[data-chat-theme] .sitem.active,html[data-chat-theme] .ntab.active,html[data-chat-theme] .music-pl-item.active,html[data-chat-theme] .cs-opt.sel,html[data-chat-theme] .dm-item.active,html[data-chat-theme] .dm-search-result-item.active{background:color-mix(in srgb,var(--ct-solid) 14%,var(--surface));border-color:color-mix(in srgb,var(--ct-solid) 45%,var(--border));color:var(--ct-solid)}
html[data-chat-theme] .sitem:hover,html[data-chat-theme] .ibtn:hover,html[data-chat-theme] .user-chip:hover,html[data-chat-theme] .set-tab:hover{background:color-mix(in srgb,var(--ct-solid) 10%,var(--surface2))}
@media(hover:hover){html[data-chat-theme] .dm-item:hover{background:color-mix(in srgb,var(--ct-solid) 10%,var(--surface2))}}
html[data-chat-theme] .set-tab.active:hover{background:var(--ct-solid)}
html[data-chat-theme] .mob-nav-btn.active,html[data-chat-theme] .upage-tab.active,html[data-chat-theme] .pm-cmt-vote.on,html[data-chat-theme] .post-pin-btn.on{color:var(--ct-solid)}
html[data-chat-theme] .ibtn svg{stroke:var(--text)}
html[data-chat-theme] .tcard-banner{background:var(--ct-solid);color:var(--ct-solid-fg)}
/* тема «Любовь» */
html[data-chat-theme=love],.ct-card[data-ct=love]{--ct-mine-bg:linear-gradient(135deg,#fb7185,#e11d48);--ct-mine-fg:#fff;--ct-in-bg:#fff1f2;--ct-in-fg:#881337;--ct-in-bd:#fecdd3;--ct-btn-bg:linear-gradient(135deg,#fb7185,#e11d48);--ct-btn-fg:#fff}
html[data-theme=dark][data-chat-theme=love],[data-theme=dark] .ct-card[data-ct=love]{--ct-mine-bg:linear-gradient(135deg,#f43f5e,#be123c);--ct-mine-fg:#fff;--ct-in-bg:#3b0d1a;--ct-in-fg:#ffe4e6;--ct-in-bd:#881337;--ct-btn-bg:linear-gradient(135deg,#f43f5e,#be123c);--ct-btn-fg:#fff}
html[data-chat-theme=love]{--ct-solid:#e11d48;--ct-solid-fg:#fff}
html[data-theme=dark][data-chat-theme=love]{--ct-solid:#f43f5e;--ct-solid-fg:#fff}
/* пустые аватарки-заглушки всегда чёрные (светлая тема) / белые (тёмная) и не зависят от темы */
html[data-chat-theme] .user-ava,html[data-chat-theme] .post-ava,html[data-chat-theme] .compose-ava,html[data-chat-theme] .pm-ava,html[data-chat-theme] .pm-cmt-ava,html[data-chat-theme] .prof-ava-big,html[data-chat-theme] .call-ava,html[data-chat-theme] .upage-ava,html[data-chat-theme] .dm-profile-card-ava,html[data-chat-theme] .prof-ava-edit{background-color:#111110;color:#fff}
html[data-chat-theme] .prof-ava-edit svg{stroke:#fff}
html[data-theme=dark][data-chat-theme] .user-ava,html[data-theme=dark][data-chat-theme] .post-ava,html[data-theme=dark][data-chat-theme] .compose-ava,html[data-theme=dark][data-chat-theme] .pm-ava,html[data-theme=dark][data-chat-theme] .pm-cmt-ava,html[data-theme=dark][data-chat-theme] .prof-ava-big,html[data-theme=dark][data-chat-theme] .call-ava,html[data-theme=dark][data-chat-theme] .upage-ava,html[data-theme=dark][data-chat-theme] .dm-profile-card-ava,html[data-theme=dark][data-chat-theme] .prof-ava-edit{background-color:#f0f0ed;color:#161615}
html[data-theme=dark][data-chat-theme] .prof-ava-edit svg{stroke:#161615}
/* ещё темы + цвет выделения карточек */
html[data-chat-theme=teal],.ct-card[data-ct=teal]{--ct-mine-bg:#0d9488;--ct-mine-fg:#fff;--ct-in-bg:#f0fdfa;--ct-in-fg:#134e4a;--ct-in-bd:#99f6e4;--ct-btn-bg:#0d9488;--ct-btn-fg:#fff}
html[data-theme=dark][data-chat-theme=teal],[data-theme=dark] .ct-card[data-ct=teal]{--ct-mine-bg:#14b8a6;--ct-mine-fg:#042f2e;--ct-in-bg:#0b2523;--ct-in-fg:#ccfbf1;--ct-in-bd:#115e59;--ct-btn-bg:#14b8a6;--ct-btn-fg:#042f2e}
html[data-chat-theme=teal]{--ct-solid:#0d9488;--ct-solid-fg:#fff}
html[data-theme=dark][data-chat-theme=teal]{--ct-solid:#14b8a6;--ct-solid-fg:#042f2e}
html[data-chat-theme=amber],.ct-card[data-ct=amber]{--ct-mine-bg:#d97706;--ct-mine-fg:#fff;--ct-in-bg:#fffbeb;--ct-in-fg:#78350f;--ct-in-bd:#fde68a;--ct-btn-bg:#d97706;--ct-btn-fg:#fff}
html[data-theme=dark][data-chat-theme=amber],[data-theme=dark] .ct-card[data-ct=amber]{--ct-mine-bg:#f59e0b;--ct-mine-fg:#2a1600;--ct-in-bg:#2b1d06;--ct-in-fg:#fef3c7;--ct-in-bd:#78350f;--ct-btn-bg:#f59e0b;--ct-btn-fg:#2a1600}
html[data-chat-theme=amber]{--ct-solid:#d97706;--ct-solid-fg:#fff}
html[data-theme=dark][data-chat-theme=amber]{--ct-solid:#f59e0b;--ct-solid-fg:#2a1600}
html[data-chat-theme=slate],.ct-card[data-ct=slate]{--ct-mine-bg:#475569;--ct-mine-fg:#fff;--ct-in-bg:#f1f5f9;--ct-in-fg:#0f172a;--ct-in-bd:#cbd5e1;--ct-btn-bg:#475569;--ct-btn-fg:#fff}
html[data-theme=dark][data-chat-theme=slate],[data-theme=dark] .ct-card[data-ct=slate]{--ct-mine-bg:#64748b;--ct-mine-fg:#fff;--ct-in-bg:#1b2330;--ct-in-fg:#e2e8f0;--ct-in-bd:#334155;--ct-btn-bg:#64748b;--ct-btn-fg:#fff}
html[data-chat-theme=slate]{--ct-solid:#475569;--ct-solid-fg:#fff}
html[data-theme=dark][data-chat-theme=slate]{--ct-solid:#64748b;--ct-solid-fg:#fff}
html[data-chat-theme=cosmos],.ct-card[data-ct=cosmos]{--ct-mine-bg:linear-gradient(135deg,#4f46e5,#06b6d4);--ct-mine-fg:#fff;--ct-in-bg:#eef2ff;--ct-in-fg:#312e81;--ct-in-bd:#c7d2fe;--ct-btn-bg:linear-gradient(135deg,#4f46e5,#06b6d4);--ct-btn-fg:#fff}
html[data-theme=dark][data-chat-theme=cosmos],[data-theme=dark] .ct-card[data-ct=cosmos]{--ct-mine-bg:linear-gradient(135deg,#6366f1,#0891b2);--ct-mine-fg:#fff;--ct-in-bg:#1a1b3a;--ct-in-fg:#e0e7ff;--ct-in-bd:#312e81;--ct-btn-bg:linear-gradient(135deg,#6366f1,#0891b2);--ct-btn-fg:#fff}
html[data-chat-theme=cosmos]{--ct-solid:#4f46e5;--ct-solid-fg:#fff}
html[data-theme=dark][data-chat-theme=cosmos]{--ct-solid:#6366f1;--ct-solid-fg:#fff}
html[data-chat-theme=coffee],.ct-card[data-ct=coffee]{--ct-mine-bg:#8b5a3c;--ct-mine-fg:#fff;--ct-in-bg:#faf5f0;--ct-in-fg:#4a2c17;--ct-in-bd:#e7d3c0;--ct-btn-bg:#8b5a3c;--ct-btn-fg:#fff}
html[data-theme=dark][data-chat-theme=coffee],[data-theme=dark] .ct-card[data-ct=coffee]{--ct-mine-bg:#a8714c;--ct-mine-fg:#fff;--ct-in-bg:#2a1d14;--ct-in-fg:#f1e4d6;--ct-in-bd:#4a3220;--ct-btn-bg:#a8714c;--ct-btn-fg:#fff}
html[data-chat-theme=coffee]{--ct-solid:#8b5a3c;--ct-solid-fg:#fff}
html[data-theme=dark][data-chat-theme=coffee]{--ct-solid:#a8714c;--ct-solid-fg:#fff}
.ct-card[data-ct=classic]{--ct-solid:#111110}
[data-theme=dark] .ct-card[data-ct=classic]{--ct-solid:#f0f0ed}
.ct-card[data-ct=ocean]{--ct-solid:#2563eb}
[data-theme=dark] .ct-card[data-ct=ocean]{--ct-solid:#3b82f6}
.ct-card[data-ct=sunset]{--ct-solid:#f97316}
[data-theme=dark] .ct-card[data-ct=sunset]{--ct-solid:#ea580c}
.ct-card[data-ct=forest]{--ct-solid:#16a34a}
[data-theme=dark] .ct-card[data-ct=forest]{--ct-solid:#22c55e}
.ct-card[data-ct=violet]{--ct-solid:#7c3aed}
[data-theme=dark] .ct-card[data-ct=violet]{--ct-solid:#8b5cf6}
.ct-card[data-ct=love]{--ct-solid:#e11d48}
[data-theme=dark] .ct-card[data-ct=love]{--ct-solid:#f43f5e}
.ct-card[data-ct=teal]{--ct-solid:#0d9488}
[data-theme=dark] .ct-card[data-ct=teal]{--ct-solid:#14b8a6}
.ct-card[data-ct=amber]{--ct-solid:#d97706}
[data-theme=dark] .ct-card[data-ct=amber]{--ct-solid:#f59e0b}
.ct-card[data-ct=slate]{--ct-solid:#475569}
[data-theme=dark] .ct-card[data-ct=slate]{--ct-solid:#64748b}
.ct-card[data-ct=cosmos]{--ct-solid:#4f46e5}
[data-theme=dark] .ct-card[data-ct=cosmos]{--ct-solid:#6366f1}
.ct-card[data-ct=coffee]{--ct-solid:#8b5a3c}
[data-theme=dark] .ct-card[data-ct=coffee]{--ct-solid:#a8714c}
/* ещё 9 тем, быстрая реакция */
html[data-chat-theme=lime],.ct-card[data-ct=lime]{--ct-mine-bg:#65a30d;--ct-mine-fg:#fff;--ct-in-bg:#f7fee7;--ct-in-fg:#365314;--ct-in-bd:#d9f99d;--ct-btn-bg:#65a30d;--ct-btn-fg:#fff}
html[data-theme=dark][data-chat-theme=lime],[data-theme=dark] .ct-card[data-ct=lime]{--ct-mine-bg:#84cc16;--ct-mine-fg:#1a2e05;--ct-in-bg:#1a2608;--ct-in-fg:#ecfccb;--ct-in-bd:#3f6212;--ct-btn-bg:#84cc16;--ct-btn-fg:#1a2e05}
html[data-chat-theme=lime]{--ct-solid:#65a30d;--ct-solid-fg:#fff}
html[data-theme=dark][data-chat-theme=lime]{--ct-solid:#84cc16;--ct-solid-fg:#1a2e05}
.ct-card[data-ct=lime]{--ct-solid:#65a30d}
[data-theme=dark] .ct-card[data-ct=lime]{--ct-solid:#84cc16}
html[data-chat-theme=sky],.ct-card[data-ct=sky]{--ct-mine-bg:#0ea5e9;--ct-mine-fg:#fff;--ct-in-bg:#f0f9ff;--ct-in-fg:#0c4a6e;--ct-in-bd:#bae6fd;--ct-btn-bg:#0ea5e9;--ct-btn-fg:#fff}
html[data-theme=dark][data-chat-theme=sky],[data-theme=dark] .ct-card[data-ct=sky]{--ct-mine-bg:#38bdf8;--ct-mine-fg:#082f49;--ct-in-bg:#0b2233;--ct-in-fg:#e0f2fe;--ct-in-bd:#075985;--ct-btn-bg:#38bdf8;--ct-btn-fg:#082f49}
html[data-chat-theme=sky]{--ct-solid:#0ea5e9;--ct-solid-fg:#fff}
html[data-theme=dark][data-chat-theme=sky]{--ct-solid:#38bdf8;--ct-solid-fg:#082f49}
.ct-card[data-ct=sky]{--ct-solid:#0ea5e9}
[data-theme=dark] .ct-card[data-ct=sky]{--ct-solid:#38bdf8}
html[data-chat-theme=fuchsia],.ct-card[data-ct=fuchsia]{--ct-mine-bg:#c026d3;--ct-mine-fg:#fff;--ct-in-bg:#fdf4ff;--ct-in-fg:#701a75;--ct-in-bd:#f5d0fe;--ct-btn-bg:#c026d3;--ct-btn-fg:#fff}
html[data-theme=dark][data-chat-theme=fuchsia],[data-theme=dark] .ct-card[data-ct=fuchsia]{--ct-mine-bg:#d946ef;--ct-mine-fg:#fff;--ct-in-bg:#2b0f30;--ct-in-fg:#fae8ff;--ct-in-bd:#701a75;--ct-btn-bg:#d946ef;--ct-btn-fg:#fff}
html[data-chat-theme=fuchsia]{--ct-solid:#c026d3;--ct-solid-fg:#fff}
html[data-theme=dark][data-chat-theme=fuchsia]{--ct-solid:#d946ef;--ct-solid-fg:#fff}
.ct-card[data-ct=fuchsia]{--ct-solid:#c026d3}
[data-theme=dark] .ct-card[data-ct=fuchsia]{--ct-solid:#d946ef}
html[data-chat-theme=wine],.ct-card[data-ct=wine]{--ct-mine-bg:#881337;--ct-mine-fg:#fff;--ct-in-bg:#fff1f3;--ct-in-fg:#4c0519;--ct-in-bd:#fecdd3;--ct-btn-bg:#881337;--ct-btn-fg:#fff}
html[data-theme=dark][data-chat-theme=wine],[data-theme=dark] .ct-card[data-ct=wine]{--ct-mine-bg:#be123c;--ct-mine-fg:#fff;--ct-in-bg:#2d0a14;--ct-in-fg:#ffe4e6;--ct-in-bd:#6b0f2a;--ct-btn-bg:#be123c;--ct-btn-fg:#fff}
html[data-chat-theme=wine]{--ct-solid:#881337;--ct-solid-fg:#fff}
html[data-theme=dark][data-chat-theme=wine]{--ct-solid:#be123c;--ct-solid-fg:#fff}
.ct-card[data-ct=wine]{--ct-solid:#881337}
[data-theme=dark] .ct-card[data-ct=wine]{--ct-solid:#be123c}
html[data-chat-theme=dawn],.ct-card[data-ct=dawn]{--ct-mine-bg:linear-gradient(135deg,#f43f5e,#f59e0b);--ct-mine-fg:#fff;--ct-in-bg:#fff7ed;--ct-in-fg:#7c2d12;--ct-in-bd:#fed7aa;--ct-btn-bg:linear-gradient(135deg,#f43f5e,#f59e0b);--ct-btn-fg:#fff}
html[data-theme=dark][data-chat-theme=dawn],[data-theme=dark] .ct-card[data-ct=dawn]{--ct-mine-bg:linear-gradient(135deg,#e11d48,#d97706);--ct-mine-fg:#fff;--ct-in-bg:#2e1710;--ct-in-fg:#ffedd5;--ct-in-bd:#7c2d12;--ct-btn-bg:linear-gradient(135deg,#e11d48,#d97706);--ct-btn-fg:#fff}
html[data-chat-theme=dawn]{--ct-solid:#f43f5e;--ct-solid-fg:#fff}
html[data-theme=dark][data-chat-theme=dawn]{--ct-solid:#fb7185;--ct-solid-fg:#fff}
.ct-card[data-ct=dawn]{--ct-solid:#f43f5e}
[data-theme=dark] .ct-card[data-ct=dawn]{--ct-solid:#fb7185}
html[data-chat-theme=peach],.ct-card[data-ct=peach]{--ct-mine-bg:#f0674c;--ct-mine-fg:#fff;--ct-in-bg:#fff5f2;--ct-in-fg:#7c2d12;--ct-in-bd:#fed7c9;--ct-btn-bg:#f0674c;--ct-btn-fg:#fff}
html[data-theme=dark][data-chat-theme=peach],[data-theme=dark] .ct-card[data-ct=peach]{--ct-mine-bg:#fb7c62;--ct-mine-fg:#2b0d05;--ct-in-bg:#2d1510;--ct-in-fg:#ffe4dc;--ct-in-bd:#7c2d12;--ct-btn-bg:#fb7c62;--ct-btn-fg:#2b0d05}
html[data-chat-theme=peach]{--ct-solid:#f0674c;--ct-solid-fg:#fff}
html[data-theme=dark][data-chat-theme=peach]{--ct-solid:#fb7c62;--ct-solid-fg:#2b0d05}
.ct-card[data-ct=peach]{--ct-solid:#f0674c}
[data-theme=dark] .ct-card[data-ct=peach]{--ct-solid:#fb7c62}

html[data-chat-theme=mint],.ct-card[data-ct=mint]{--ct-mine-bg:linear-gradient(135deg,#34d399,#06b6d4);--ct-mine-fg:#fff;--ct-in-bg:#ecfdf5;--ct-in-fg:#064e3b;--ct-in-bd:#a7f3d0;--ct-btn-bg:linear-gradient(135deg,#34d399,#06b6d4);--ct-btn-fg:#fff}
html[data-theme=dark][data-chat-theme=mint],[data-theme=dark] .ct-card[data-ct=mint]{--ct-mine-bg:linear-gradient(135deg,#10b981,#0891b2);--ct-mine-fg:#04251a;--ct-in-bg:#062a1f;--ct-in-fg:#d1fae5;--ct-in-bd:#065f46;--ct-btn-bg:linear-gradient(135deg,#10b981,#0891b2);--ct-btn-fg:#04251a}
html[data-chat-theme=mint]{--ct-solid:#10b981;--ct-solid-fg:#fff}
html[data-theme=dark][data-chat-theme=mint]{--ct-solid:#34d399;--ct-solid-fg:#04251a}
.ct-card[data-ct=mint]{--ct-solid:#10b981}
[data-theme=dark] .ct-card[data-ct=mint]{--ct-solid:#34d399}
html[data-chat-theme=cherry],.ct-card[data-ct=cherry]{--ct-mine-bg:#be123c;--ct-mine-fg:#fff;--ct-in-bg:#fff1f2;--ct-in-fg:#4c0519;--ct-in-bd:#fecdd3;--ct-btn-bg:#be123c;--ct-btn-fg:#fff}
html[data-theme=dark][data-chat-theme=cherry],[data-theme=dark] .ct-card[data-ct=cherry]{--ct-mine-bg:#e11d48;--ct-mine-fg:#fff;--ct-in-bg:#2a0a12;--ct-in-fg:#ffe4e6;--ct-in-bd:#9f1239;--ct-btn-bg:#e11d48;--ct-btn-fg:#fff}
html[data-chat-theme=cherry]{--ct-solid:#be123c;--ct-solid-fg:#fff}
html[data-theme=dark][data-chat-theme=cherry]{--ct-solid:#e11d48;--ct-solid-fg:#fff}
.ct-card[data-ct=cherry]{--ct-solid:#be123c}
[data-theme=dark] .ct-card[data-ct=cherry]{--ct-solid:#e11d48}
html[data-chat-theme=lavender],.ct-card[data-ct=lavender]{--ct-mine-bg:#8b7ad6;--ct-mine-fg:#fff;--ct-in-bg:#f6f4ff;--ct-in-fg:#3b2f73;--ct-in-bd:#ddd6fe;--ct-btn-bg:#8b7ad6;--ct-btn-fg:#fff}
html[data-theme=dark][data-chat-theme=lavender],[data-theme=dark] .ct-card[data-ct=lavender]{--ct-mine-bg:#a594ee;--ct-mine-fg:#140f2b;--ct-in-bg:#1d1930;--ct-in-fg:#ede9fe;--ct-in-bd:#4c3f8a;--ct-btn-bg:#a594ee;--ct-btn-fg:#140f2b}
html[data-chat-theme=lavender]{--ct-solid:#8b7ad6;--ct-solid-fg:#fff}
html[data-theme=dark][data-chat-theme=lavender]{--ct-solid:#a594ee;--ct-solid-fg:#140f2b}
.ct-card[data-ct=lavender]{--ct-solid:#8b7ad6}
[data-theme=dark] .ct-card[data-ct=lavender]{--ct-solid:#a594ee}
html[data-chat-theme=midnight],.ct-card[data-ct=midnight]{--ct-mine-bg:linear-gradient(135deg,#1e3a8a,#312e81);--ct-mine-fg:#fff;--ct-in-bg:#eff3ff;--ct-in-fg:#172554;--ct-in-bd:#c7d2fe;--ct-btn-bg:linear-gradient(135deg,#1e3a8a,#312e81);--ct-btn-fg:#fff}
html[data-theme=dark][data-chat-theme=midnight],[data-theme=dark] .ct-card[data-ct=midnight]{--ct-mine-bg:linear-gradient(135deg,#3b5bdb,#4338ca);--ct-mine-fg:#fff;--ct-in-bg:#0b1226;--ct-in-fg:#dbe4ff;--ct-in-bd:#1e2a5c;--ct-btn-bg:linear-gradient(135deg,#3b5bdb,#4338ca);--ct-btn-fg:#fff}
html[data-chat-theme=midnight]{--ct-solid:#1e3a8a;--ct-solid-fg:#fff}
html[data-theme=dark][data-chat-theme=midnight]{--ct-solid:#3b5bdb;--ct-solid-fg:#fff}
.ct-card[data-ct=midnight]{--ct-solid:#1e3a8a}
[data-theme=dark] .ct-card[data-ct=midnight]{--ct-solid:#3b5bdb}

.qr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px;margin-top:10px}
.qr-btn{height:44px;border:2px solid var(--border);border-radius:12px;background:var(--surface2);font-size:22px;line-height:1;cursor:pointer;padding:0;transition:transform .12s,border-color .15s}
.qr-btn:active{transform:scale(.92)}
.qr-btn.sel{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--surface))}

.rx-pop .rx-row{align-items:center}
.rx-toggle{width:34px!important;height:34px!important;margin:2px 3px 2px 6px;border-radius:50%!important;background:rgba(128,128,128,.35)!important;color:var(--text);display:flex;align-items:center;justify-content:center;font-size:0}
.rx-toggle svg{transition:transform .2s}
.rx-pop.open .rx-toggle svg{transform:rotate(180deg)}
.rx-more{display:none;flex-direction:column;gap:2px;border-top:none;padding-top:0}
.rx-pop.open .rx-more{display:flex}
.rx-menu-info{display:flex;align-items:center;gap:9px;padding:12px 16px;font-size:13.5px;font-weight:600;color:var(--text2);border-bottom:none}
.rx-menu-info svg{flex-shrink:0;color:#38bdf8}

.call-emoji{display:none;align-items:center;justify-content:center;gap:8px;margin:-14px 0 22px;padding:6px 14px;border-radius:16px;background:var(--surface2);border:1px solid var(--border);font-size:26px;line-height:1;letter-spacing:0;position:relative;z-index:2}
.call-emoji.show{display:flex}
.call-box.has-video .call-emoji{background:rgba(0,0,0,.4);border-color:rgba(255,255,255,.15)}
.call-emoji span{display:block;animation:ceIn .35s ease-out both}
.call-emoji span:nth-child(2){animation-delay:.08s}.call-emoji span:nth-child(3){animation-delay:.16s}.call-emoji span:nth-child(4){animation-delay:.24s}
@keyframes ceIn{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}

.pm-cmts-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pm-cmt-sort{display:none;margin-left:auto;gap:4px}
.pm-cmt-sort.show{display:flex}
.pm-cmt-sort button{border:1px solid var(--border);background:var(--surface2);color:var(--text2);border-radius:14px;padding:3px 10px;font-size:11.5px;font-weight:700;font-family:inherit;cursor:pointer;transition:all .15s}
.pm-cmt-sort button.on{background:var(--accent);color:var(--accent-inv);border-color:var(--accent)}

.dm-drop-ov{position:absolute;inset:0;z-index:50;display:none;align-items:center;justify-content:center;padding:18px;background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none}
.dm-drop-ov.show{display:flex}
.dm-drop-ov-in{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:100%;height:100%;border:2.5px dashed var(--accent);border-radius:18px;color:var(--text);font-size:15px;font-weight:800;text-align:center}
.dm-drop-ov-in svg{width:44px;height:44px;stroke:var(--accent);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dm-drop-ov-in small{font-size:12px;font-weight:600;color:var(--text2)}

.dm-new-divider{display:flex;align-items:center;gap:10px;margin:10px 0 6px;color:var(--accent);font-size:12px;font-weight:800;letter-spacing:.2px;flex-shrink:0}
.dm-new-divider::before,.dm-new-divider::after{content:'';flex:1;height:1px;background:color-mix(in srgb,var(--accent) 35%,transparent)}
.dm-new-divider span{padding:3px 12px;border-radius:12px;background:color-mix(in srgb,var(--accent) 12%,var(--surface))}
/* плашки дат между сообщениями + плавающая дата сверху при прокрутке (личные чаты, группы, каналы) */
.dm-date-sep{align-self:center;flex-shrink:0;margin:8px 0 4px;pointer-events:none;-webkit-user-select:none;user-select:none}
.dm-date-sep span{display:block;padding:3px 10px;border-radius:12px;font-size:11.5px;font-weight:600;line-height:1.35;color:var(--text2);background:color-mix(in srgb,var(--surface2) 88%,transparent)}
.dm-date-float{position:absolute;left:50%;z-index:9;padding:3px 12px;border-radius:12px;font-size:11.5px;font-weight:600;line-height:1.35;white-space:nowrap;color:var(--text);background:color-mix(in srgb,var(--surface) 60%,transparent);border:1px solid color-mix(in srgb,var(--border) 70%,transparent);-webkit-backdrop-filter:blur(10px) saturate(1.2);backdrop-filter:blur(10px) saturate(1.2);transform:translate(-50%,-6px);opacity:0;pointer-events:none;transition:opacity .22s ease,transform .22s ease}
.dm-date-float.show{opacity:1;transform:translate(-50%,0)}

/* ── Поиск: ч/б аватарки без фото ── */
.su-ava{width:30px;height:30px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex-shrink:0;overflow:hidden}
.su-ava img{display:block}
#userSearchDrop{overscroll-behavior:contain}
/* ── Мобильная шапка: аккуратно, без каши ── */
@media(max-width:640px){
  header{gap:6px;padding:0 8px}
  .logo{flex-shrink:0}
  .logo img{width:28px;height:28px}
  .swrap{flex:1 1 0;min-width:0}
  .swrap input{padding:0 8px 0 30px;font-size:13px;text-overflow:ellipsis}
  .swrap>svg{left:9px}
  .hright{margin-left:0;gap:5px;min-width:0}
  .hright .ibtn{width:34px;height:34px}
  #coinChip{padding:3px 7px 3px 5px;font-size:12px}
  #coinChip img{width:16px;height:16px}
  #userChip{padding:3px;gap:0;min-width:0}
  #userChipName{display:none}
  #userSearchDrop{position:fixed !important;top:58px !important;left:8px !important;right:8px !important;width:auto !important;max-height:calc(100vh - 58px - 64px) !important}
}
@media(max-width:380px){ #coinChip{display:none !important} }
/* ── Full Black: только поверх тёмной темы ── */
html[data-theme=dark][data-dark-style=black]{--bg:#000;--surface:#000;--surface2:#111;--border:#222;--border2:#383838;--shadow:0 1px 4px rgba(0,0,0,.8),0 4px 16px rgba(0,0,0,.6)}
html[data-theme=dark][data-dark-style=black] body{background:#000}
/* ── Папки с чатами ── */
.dm-folders{position:relative;display:flex;gap:6px;padding:8px 12px;overflow-x:auto;flex-shrink:0;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.dm-folders::-webkit-scrollbar{display:none}
@media(hover:hover){.dm-folders{cursor:grab}.dm-folders.dragging{cursor:grabbing}.dm-folders.dragging .dm-folder-chip{pointer-events:none}}
.dm-folder-chip{flex:none;display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0 13px;border:none;border-radius:15px;background:var(--surface2);color:var(--text2);font-family:inherit;font-size:12.5px;font-weight:700;white-space:nowrap;cursor:pointer;transition:background .15s,color .15s}
.dm-folder-chip.active{background:var(--surface2);color:var(--text2)}
.dm-folder-ind{position:absolute;height:30px;border-radius:15px;background:var(--accent);color:var(--accent-inv);font-size:12.5px;font-weight:700;line-height:30px;text-align:center;white-space:nowrap;overflow:hidden;z-index:2;pointer-events:none}
html[data-chat-theme] .dm-folder-ind{background:var(--ct-solid);color:var(--ct-solid-fg,#fff)}
.dm-folder-add,.dm-folder-edit{width:30px;padding:0}
.dm-folder-chip svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
html[data-chat-theme] .dm-folder-chip.active{background:var(--surface2);color:var(--text2)}
.fld-ov{position:fixed;inset:0;z-index:100010;background:rgba(0,0,0,.55);display:flex;align-items:flex-end;justify-content:center}
.fld-box{width:100%;max-width:440px;max-height:88vh;display:flex;flex-direction:column;background:var(--surface);border-radius:18px 18px 0 0;padding:16px 16px calc(14px + env(safe-area-inset-bottom,0px));box-sizing:border-box}
@media(min-width:700px){.fld-ov{align-items:center}.fld-box{border-radius:18px;max-height:80vh}}
.fld-head{font-size:16px;font-weight:800;color:var(--text);margin-bottom:12px}
.fld-name{width:100%;height:42px;padding:0 13px;border:1.5px solid var(--border);border-radius:10px;background:var(--surface2);color:var(--text);font-family:inherit;font-size:14px;font-weight:500;outline:none;box-sizing:border-box}
.fld-name:focus{border-color:var(--accent)}
.fld-sub{font-size:11px;font-weight:800;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;margin:14px 0 6px}
.fld-list{flex:1;min-height:80px;overflow-y:auto;margin:0 -6px}
.fld-row{display:flex;align-items:center;gap:10px;padding:10px 6px;border-radius:10px;cursor:pointer}
.fld-row:hover{background:var(--surface2)}
.fld-row-name{flex:1;min-width:0;font-size:14px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fld-chk{flex:none;width:20px;height:20px;border-radius:6px;border:1.5px solid var(--border2);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:var(--accent-inv)}
.fld-row.on .fld-chk{background:var(--accent);border-color:var(--accent)}
.fld-row.on .fld-chk::after{content:"✓"}
.fld-empty{padding:18px 6px;font-size:13px;color:var(--text3);text-align:center}
.fld-btns{display:flex;gap:8px;margin-top:14px}
.fld-btn{flex:1;height:40px;border-radius:12px;border:none;background:var(--surface2);color:var(--text);font-family:inherit;font-size:13.5px;font-weight:700;cursor:pointer}
.fld-btn.primary{background:var(--accent);color:var(--accent-inv)}
.fld-btn.danger{flex:none;padding:0 14px;color:#ef4444}
.dm-folder-chip.lp-hold{transform:scale(1.06);position:relative;z-index:9992}
.fld-ord-row{display:flex;align-items:center;gap:8px;padding:6px 6px;border-radius:10px}
.fld-ord-name{flex:1;min-width:0;font-size:14px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fld-ord-btn{flex:none;width:34px;height:34px;border:none;border-radius:10px;background:var(--surface2);color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center}
.fld-ord-btn:disabled{opacity:.3;cursor:default}
.fld-ord-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* ── Окно папки чатов в стиле Telegram ── */
.tf-ov{align-items:stretch;justify-content:stretch;background:var(--bg);animation:tfFade .18s ease}
.tf-box{position:relative;width:100%;height:100%;overflow:hidden;background:var(--bg);animation:tfUp .28s cubic-bezier(.2,.8,.2,1)}
@media(min-width:700px){
  .tf-ov{align-items:center;justify-content:center;background:rgba(0,0,0,.55);padding:20px}
  .tf-box{max-width:440px;height:min(680px,88vh);border-radius:18px;border:1px solid var(--border);box-shadow:var(--shadow)}
}
@keyframes tfFade{from{opacity:0}to{opacity:1}}
@keyframes tfUp{from{transform:translateY(28px);opacity:0}to{transform:none;opacity:1}}
.tf-pane{position:absolute;inset:0;display:flex;flex-direction:column;background:var(--bg)}
.tf-main{z-index:1;transition:transform .3s cubic-bezier(.2,.8,.2,1),visibility 0s .3s}
.tf-p2{z-index:2;transform:translateX(100%);visibility:hidden;box-shadow:-8px 0 24px rgba(0,0,0,.12);transition:transform .3s cubic-bezier(.2,.8,.2,1),visibility 0s .3s}
.tf-box.picking .tf-p2{transform:none;visibility:visible;transition:transform .3s cubic-bezier(.2,.8,.2,1),visibility 0s}
.tf-box.picking .tf-main{transform:translateX(-22%);visibility:hidden}
.tf-bar{flex:none;display:flex;align-items:center;gap:8px;height:calc(58px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 12px 0;background:var(--surface);}
.tf-bar-btn{flex:none;display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 16px;border:none;border-radius:17px;background:var(--surface2);color:var(--text);font-family:inherit;font-size:13.5px;font-weight:700;cursor:pointer;transition:background .15s,color .15s,transform .1s}
.tf-bar-btn:active{transform:scale(.96)}
.tf-bar-btn.r{background:var(--accent);color:var(--accent-inv)}
html[data-chat-theme] .tf-bar-btn.r{background:var(--ct-solid);color:var(--ct-solid-fg,#fff)}
.tf-bar-btn.r:disabled,html[data-chat-theme] .tf-bar-btn.r:disabled{background:var(--surface2);color:var(--text3);cursor:default;transform:none}
.tf-bk{width:34px;padding:0}
.tf-bk svg{width:18px;height:18px}
.tf-bar-ttl{flex:1;min-width:0;text-align:center;font-size:16px;font-weight:800;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tf-bar-sub{font-size:11.5px;font-weight:500;color:var(--text3);margin-top:1px}
.tf-body{flex:1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:22px 14px calc(28px + env(safe-area-inset-bottom,0px))}
.tf-hero{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:22px}
.tf-hero-ic{width:92px;height:92px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--ct-solid,var(--accent));background:color-mix(in srgb,var(--ct-solid,var(--accent)) 10%,var(--surface2))}
.tf-hero-ic svg{width:44px;height:44px;stroke-width:1.7}
.tf-hero-t{max-width:270px;text-align:center;font-size:13px;line-height:1.45;color:var(--text2)}
.tf-lbl{margin:18px 12px 7px;font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--text3)}
.tf-hint{margin:2px 12px 18px;font-size:12px;line-height:1.45;color:var(--text3)}
.tf-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:8px}
.tf-inp-wrap{display:flex;align-items:center;gap:8px;height:50px;padding:0 14px}
.tf-inp{flex:1;min-width:0;height:100%;border:none!important;background:none!important;outline:none!important;box-shadow:none!important;font-family:inherit;font-size:15px;font-weight:600;color:var(--text)}
.tf-inp::placeholder{color:var(--text3);font-weight:500}
.tf-cnt{flex:none;font-size:12px;font-variant-numeric:tabular-nums;color:var(--text3)}
.tf-row{position:relative;display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 14px;cursor:pointer;-webkit-user-select:none;user-select:none}
.tf-row+.tf-row::before{content:"";position:absolute;top:0;right:0;left:66px;height:1px;background:var(--border)}
.tf-pr+.tf-pr::before{left:100px}
@media(hover:hover){.tf-row:hover{background:var(--surface2)}}
.tf-row:active{background:var(--surface2)}
.tf-add-ic{flex:none;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--ct-solid,var(--accent));background:color-mix(in srgb,var(--ct-solid,var(--accent)) 12%,var(--surface2))}
.tf-add-ic svg{width:20px;height:20px}
.tf-add-t{font-size:14.5px;font-weight:700;color:var(--ct-solid,var(--accent))}
.tf-ava{flex:none;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--ava-bg);color:var(--ava-fg);font-size:15px;font-weight:800}
.tf-ava img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.tf-ava svg{width:20px;height:20px;flex-shrink:0}
#shareScreen .sh-foot{flex:none;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));background:var(--surface)}
#shareScreen .sh-send{display:block;width:100%;height:48px;border:none;border-radius:10px;background:var(--accent);color:var(--accent-inv);font-family:inherit;font-size:15px;font-weight:800;cursor:pointer;transition:transform .1s,opacity .15s}
html[data-chat-theme] #shareScreen .sh-send{background:var(--ct-solid);color:var(--ct-solid-fg,#fff)}
#shareScreen .sh-send:active{transform:scale(.99)}
#shareScreen .sh-send:disabled{background:var(--surface2);color:var(--text3);cursor:default;transform:none}
#dmFolderEditor .tf-bar,#dmFolderEditor .tf-types{border-bottom:none}
#dmFolderEditor .tf-card,#dmFolderEditor .tf-box{border:none}
#dmFolderEditor .tf-row+.tf-row::before{display:none}
#createGroupModal,#authModal{z-index:100010}
#authModal .sh-foot{flex:none;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));background:var(--surface)}
#authModal .sh-send{display:block;width:100%;height:48px;border:none;border-radius:10px;background:var(--accent);color:var(--accent-inv);font-family:inherit;font-size:15px;font-weight:800;cursor:pointer;transition:transform .1s,opacity .15s}
html[data-chat-theme] #authModal .sh-send{background:var(--ct-solid);color:var(--ct-solid-fg,#fff)}
#authModal .sh-send:active{transform:scale(.99)}
#authModal .sh-send:disabled{opacity:.6;cursor:default;transform:none}
#authModal .tf-card{background:var(--surface2);border:none;margin-bottom:10px}
#authModal .tf-bar{border-bottom:none}
#authModal .tf-box{border:none}
#authModal .tf-hero{margin-bottom:18px}
#authModal .auth-or{text-align:center;margin:18px 12px 12px;font-size:12px;color:var(--text3)}
#authModal .auth-soc .tf-row{opacity:.75}
#authModal .auth-soc #authQrRow{opacity:1}
#authModal .auth-soc-ic{flex:none;width:22px;height:22px;display:flex}
#authModal .auth-soc-ic svg{width:22px;height:22px}
#authModal .auth-soc .tf-nm{flex:1}
#qrLoginScreen .tf-bar,#qrApproveScreen .tf-bar{border-bottom:none}
#qrLoginScreen .tf-box,#qrApproveScreen .tf-box{border:none}
.ql-qr{position:relative;width:260px;height:260px;margin:8px auto 22px;border-radius:18px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.ql-qr canvas{width:240px!important;height:240px!important;display:block}
.ql-over{position:absolute;inset:0;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center}
.ql-refresh{height:40px;padding:0 20px;border:none;border-radius:10px;background:#111;color:#fff;font-family:inherit;font-size:14px;font-weight:800;cursor:pointer}
.ql-steps{display:flex;flex-direction:column;gap:12px;max-width:300px;margin:0 auto}
.ql-steps div{display:flex;align-items:center;gap:12px;font-size:13.5px;line-height:1.4;color:var(--text2)}
.ql-steps b{flex:none;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:var(--ct-solid,var(--accent));background:color-mix(in srgb,var(--ct-solid,var(--accent)) 12%,var(--surface2))}
#qrApproveScreen .sh-foot{flex:none;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));background:var(--surface)}
#qrApproveScreen .sh-send{display:block;width:100%;height:48px;border:none;border-radius:10px;background:var(--accent);color:var(--accent-inv);font-family:inherit;font-size:15px;font-weight:800;cursor:pointer}
#qrApproveScreen .sh-send.sh-sec{background:var(--surface2);color:var(--text)}
#qrApproveScreen .sh-send:disabled{opacity:.6;cursor:default}
#authModal .auth-soon{flex:none;font-size:11px;font-weight:800;color:var(--text3);background:var(--surface);border-radius:10px;padding:3px 9px}
#authModal .tf-hero-ic{width:80px;height:80px}
#authModal .tf-hero-ic svg{width:38px;height:38px}
#createGroupModal .tf-bar,#createGroupModal .tf-card,#createGroupModal .tf-box{border:none}
#createGroupModal .tf-bar{border-bottom:none}
#createGroupModal .tf-row+.tf-row::before{display:none}
/* поля ввода - серые, как в профиле канала */
#createGroupModal .tf-card:has(.tf-inp-wrap),#dmFolderEditor .tf-card:has(.tf-inp-wrap){background:var(--surface2)}
#createGroupModal .cg-seg{margin-bottom:18px}
#createGroupModal .tf-hero{margin-bottom:18px}
#bdayScreen .tf-bar{border-bottom:none}
#bdayScreen .tf-box{border:none}
.bd-field{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;cursor:pointer;font-family:inherit}
.bd-field svg{flex:none;color:var(--text3)}
.bd-wheels{position:relative;display:flex;gap:4px;height:200px;margin:14px 14px 8px;overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 30%,#000 70%,transparent)}
.bd-band{position:absolute;left:0;right:0;top:80px;height:40px;border-radius:12px;background:var(--surface2);pointer-events:none}
.bd-col{position:relative;flex:1;height:200px;overflow-y:auto;scroll-snap-type:y mandatory;padding:80px 0;box-sizing:border-box;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior:contain}
.bd-col::-webkit-scrollbar{display:none}
.bd-col-m{flex:1.7}
.bd-it{height:40px;line-height:40px;text-align:center;scroll-snap-align:center;font-size:14.5px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.bd-clear{display:block;width:100%;height:44px;border:none;border-radius:10px;background:var(--surface2);color:var(--red,#dc2626);font-family:inherit;font-size:14.5px;font-weight:700;cursor:pointer}
#bdayScreen .sh-foot{flex:none;padding:6px 14px calc(10px + env(safe-area-inset-bottom,0px));background:var(--surface)}
#shareScreen .tf-bar{border-bottom:none}
#shareScreen .tf-card{border:none}
#shareScreen .tf-row+.tf-row::before{display:none}
#shareScreen .tf-box{border:none}
.tf-inf{flex:1;min-width:0}
.tf-nm{font-size:14.5px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tf-sb{margin-top:1px;font-size:12px;color:var(--text3)}
.tf-rm{flex:none;width:32px;height:32px;border:none;border-radius:50%;background:none;color:var(--text3);display:flex;align-items:center;justify-content:center;cursor:pointer}
.tf-rm svg{width:16px;height:16px}
@media(hover:hover){.tf-rm:hover{background:var(--surface2);color:var(--red)}}
.tf-more{justify-content:center;gap:6px;font-size:13.5px;font-weight:700;color:var(--ct-solid,var(--accent))}
.tf-more svg{width:16px;height:16px}
.tf-del{gap:10px;justify-content:center;font-size:14.5px;font-weight:700;color:var(--red)}
.tf-del svg{width:18px;height:18px}
.tf-srch-wrap{flex:none;padding:10px 14px 6px;background:var(--surface)}
.tf-srch{display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;border-radius:12px;background:var(--surface2);color:var(--text3)}
.tf-srch svg{flex:none;width:16px;height:16px}
.tf-srch input{flex:1;min-width:0;height:100%;border:none!important;background:none!important;outline:none!important;box-shadow:none!important;font-family:inherit;font-size:14px;font-weight:500;color:var(--text)}
.tf-types{flex:none;display:flex;gap:6px;overflow-x:auto;padding:6px 14px 10px;background:var(--surface);}
.tf-chip{flex:none;height:30px;padding:0 13px;border:none;border-radius:15px;background:var(--surface2);color:var(--text2);font-family:inherit;font-size:13px;font-weight:700;cursor:pointer}
.tf-chip.on{background:var(--accent);color:var(--accent-inv)}
html[data-chat-theme] .tf-chip.on{background:var(--ct-solid);color:var(--ct-solid-fg,#fff)}
.tf-plist{flex:1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:12px 14px calc(24px + env(safe-area-inset-bottom,0px))}
.tf-ck{flex:none;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--border2);display:flex;align-items:center;justify-content:center;color:var(--accent-inv);transition:background .15s,border-color .15s}
.tf-ck svg{width:13px;height:13px;stroke-width:3;opacity:0;transform:scale(.6);transition:opacity .15s,transform .15s}
.tf-pr.on .tf-ck{background:var(--ct-solid,var(--accent));border-color:var(--ct-solid,var(--accent));color:var(--ct-solid-fg,var(--accent-inv))}
.tf-pr.on .tf-ck svg{opacity:1;transform:none}
.tf-alert-bg{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(0,0,0,.45);animation:tfFade .15s ease}
.tf-alert{width:100%;max-width:300px;padding:18px 16px 14px;border-radius:16px;background:var(--surface);text-align:center}
.tf-alert-t{font-size:16px;font-weight:800;color:var(--text)}
.tf-alert-x{margin-top:6px;font-size:13px;line-height:1.45;color:var(--text2)}
.fld-btn.red{background:var(--red);color:#fff}
/* ── поля-textarea (браузер не считает их полем пароля) ── */
.tf-ta{resize:none;overflow:hidden;display:block;padding:0;line-height:50px;white-space:pre}
/* ── кнопка-пилюля на всю ширину ── */
.tf-btn{width:100%;height:48px;display:flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:24px;background:var(--accent);color:var(--accent-inv);font-family:inherit;font-size:15px;font-weight:700;cursor:pointer;transition:transform .1s,opacity .15s}
.tf-btn:active{transform:scale(.98)}
.tf-btn:disabled{opacity:.5;cursor:default}
html[data-chat-theme] .tf-btn{background:var(--ct-solid);color:var(--ct-solid-fg,#fff)}
.tf-btn.sec,html[data-chat-theme] .tf-btn.sec{background:var(--surface2);color:var(--text)}
.tf-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.toast{z-index:100020}
/* аватарки групп и каналов без картинки: иконка на цветном фоне (как папка) */
.ava-grp{background:color-mix(in srgb,var(--ct-solid,var(--accent)) 10%,var(--surface2))!important;color:var(--ct-solid,var(--accent))!important}
.ava-grp svg{stroke:currentColor;stroke-width:1.8}
.gi-ava-in.ava-grp svg{stroke-width:1.7}
/* аватарки пользователей без фото - в том же стиле, что и у групп/каналов (тонированный фон + цвет темы) */
.user-ava,.post-ava,.hc-ava,.compose-ava,.pm-ava,.pm-cmt-ava,.prof-ava-big,.upage-ava,.dm-profile-card-ava,.grade-share-contact-ava,.dm-ava,.dm-chat-ava,.post-repost-tag-ava,.fr-ava,.pm-anc-ava,.reply-modal-ctx .rmc-ava,.dminfo-ava,.share-contact-ava,.su-ava,.rp-ava,#dminfoAva:not(.dm-ava-fav),.tf-ava,.maps-pin-ava,.maps-rev-ava,.st-mini .sm,.st-ava,.sv-ava,.sv-vw .a,.up-a,.seen-pick-ava,#upAva,#dmPeerAva.ava-grp{background-color:color-mix(in srgb,var(--ct-solid,var(--accent)) 10%,var(--surface2))!important;color:var(--ct-solid,var(--accent))!important}
/* клавиатура: содержимое не сжимается, а прокручивается */
.tf-body>*,.wl-body>*{flex-shrink:0}
.tf-box.kb .tf-hero{display:none}
.tf-box.kb .tf-body{padding-top:14px;padding-bottom:16px}
.tf-box.kb .wl-qr-card{display:none}
/* ── кошелёк: окна на весь экран ── */
.wl-ov .tf-bar-btn{min-width:84px}
.wl-sp{flex:none;width:84px}
.wl-body{display:flex;flex-direction:column}
.wl-foot{margin-top:auto;padding-top:20px;display:flex;flex-direction:column;gap:8px}
.tf-inp-wrap.big{height:68px}
.tf-ta.wl-big{line-height:68px;font-size:28px;font-weight:800;text-align:center;letter-spacing:-.5px}
.wl-ov .wl-seg{display:flex;gap:6px;margin:0 0 4px}
.wl-ov .wl-seg button{flex:1;height:36px;border:none;border-radius:18px;background:var(--surface2);color:var(--text2);font-family:inherit;font-size:13px;font-weight:700;cursor:pointer}
.wl-ov .wl-seg button.on{background:var(--accent);color:var(--accent-inv);border:none}
html[data-chat-theme] .wl-ov .wl-seg button.on{background:var(--ct-solid);color:var(--ct-solid-fg,#fff)}
.wl-ov .wl-frs{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;max-height:none;margin:0 -14px 4px;padding:0 14px}
.wl-ov .wl-frs button{flex:none;height:32px;padding:0 14px;border:none;border-radius:16px;background:var(--surface2);color:var(--text);font-family:inherit;font-size:13px;font-weight:700;cursor:pointer}
.wl-err{min-height:0;margin:6px 12px 0;font-size:13px;font-weight:600;color:var(--red);text-align:center}
.wl-err:empty{display:none}
.wl-res{padding:14px 16px;margin-top:6px;text-align:center}
.wl-res-l{font-size:12px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.5px}
.wl-res-v{margin-top:4px;font-size:24px;font-weight:800;letter-spacing:-.5px;color:var(--text)}
.wl-res-r{margin-top:4px;font-size:12px;color:var(--text3)}
.wl-qr-card{display:flex;justify-content:center;padding:18px;margin:8px auto 14px;max-width:290px;background:#fff;border:1px solid var(--border);border-radius:var(--radius)}
.wl-qr-card canvas{max-width:100%;height:auto!important}
.wl-qr-t{text-align:center;font-size:13px;line-height:1.45;color:var(--text2);margin:0 12px}
.wl-qr-u{text-align:center;font-size:11.5px;color:var(--text3);word-break:break-all;margin:8px 12px 0}
.wl-ok{flex:1;display:flex;flex-direction:column;justify-content:center;padding:8px 0}
.wl-ov .wl-ok-btns{margin-top:auto;padding-top:20px;animation:none}
.wl-ov .wl-ok-btns .wl-ok-done{background:var(--surface2);color:var(--text);border:none}
.wl-ov .wl-ok-btns .wl-ok-share.sent{background:rgba(22,163,74,.14);color:var(--green);pointer-events:none}
/* Маркет юзернеймов временно скрыт */
#si-uzmarket,#mn-uzmarket{display:none!important}
/* ── Без обводок у кнопок (ПК и мобильная версия) ── */
button,[role=button],.sitem,.ntab,.ibtn,.logo,.mob-nav-btn{-webkit-tap-highlight-color:transparent}
button:focus,button:focus-visible,[role=button]:focus,[role=button]:focus-visible,.sitem:focus,.sitem:focus-visible,.ntab:focus,.ntab:focus-visible,.ibtn:focus,.ibtn:focus-visible,.mob-nav-btn:focus,.mob-nav-btn:focus-visible{outline:none;box-shadow:none}
/* поле ввода чата в стиле сайта */
.dm-input{border:none!important;border-radius:20px!important;padding:9px 16px!important;background:var(--surface2)!important;box-shadow:none!important}
.dm-input:focus{background:var(--surface2)!important}
.dm-photo-btn,.dm-mic-btn{border:none;border-radius:50%}
.dm-send{border-radius:50%}
/* ── поле ввода чата: красная кнопка записи справа, «отправить» появляется вместо неё ── */
.dm-input-row .dm-mic-btn{width:38px;height:38px;background:var(--accent);color:var(--accent-inv);border:none;border-radius:50%}
.dm-input-row .dm-mic-btn:hover{background:var(--accent);color:var(--accent-inv);filter:brightness(.92)}
.dm-input-row .dm-mic-btn>svg{width:17px;height:17px}
html[data-chat-theme] .dm-input-row .dm-mic-btn{background:var(--ct-btn-bg)!important;color:var(--ct-btn-fg)!important}
.dm-input-row .dm-mic-btn.recording,html[data-chat-theme] .dm-input-row .dm-mic-btn.recording{background:#dc2626!important;color:#fff!important}
.dm-input-row .dm-mic-btn.rec-hidden{opacity:0!important;pointer-events:none!important}
.dm-rec-tip{position:fixed;z-index:9000;max-width:250px;padding:8px 12px;border-radius:12px;background:var(--surface);border:1px solid var(--border);box-shadow:0 6px 20px rgba(0,0,0,.22);display:flex;flex-direction:column;gap:2px;font-size:12.5px;font-weight:500;color:var(--text2);opacity:0;transform:translateY(6px);transition:opacity .16s,transform .16s;pointer-events:none;font-family:'Geologica',sans-serif}
.dm-rec-tip.show{opacity:1;transform:none}
.dm-rec-tip b{font-size:13px;font-weight:700;color:var(--text)}
.dm-input-row:not(.has-send) #dmSendBtn{display:none!important}
.dm-input-row.has-send #dmMicBtn{display:none!important}
.dm-media-btn.on{background:var(--accent);color:var(--accent-inv)}
/* скрепка и GIF - одна общая плашка */
.dm-btn-pair{display:flex;align-items:center;flex-shrink:0;height:38px;padding:0 2px;border-radius:19px;background:var(--surface2)}
.dm-btn-pair .dm-photo-btn{width:34px;height:34px;background:transparent;border-radius:50%}
.dm-btn-pair .dm-photo-btn:hover{background:var(--border)}
.dm-btn-pair .dm-media-btn.on{background:var(--accent);color:var(--accent-inv)}
.dm-media-btn svg text{stroke:none}
body.bot-chat-open #dmMediaBtn{display:none!important}
/* ── панель «Эмодзи / GIF / Стикеры» ── */
.mp{position:relative;flex-shrink:0;height:min(36vh,264px);height:min(36dvh,264px);display:flex;flex-direction:column;background:var(--surface);color:var(--text);font-family:'Geologica',sans-serif;animation:mpIn .18s ease-out}
@keyframes mpIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.mp-search{display:flex;align-items:center;gap:8px;margin:6px 10px 0;height:34px;padding:0 4px 0 12px;background:var(--surface2);border-radius:17px;flex-shrink:0}
.mp-search>svg{width:16px;height:16px;fill:none;stroke:var(--text3);stroke-width:2;stroke-linecap:round;flex-shrink:0}
.mp-search input{flex:1;min-width:0;border:none;background:transparent;outline:none;box-shadow:none;font:inherit;font-size:14px;color:var(--text);padding:0;-webkit-appearance:none;appearance:none}
.mp-search input::-webkit-search-cancel-button,.mp-search input::-webkit-search-decoration{display:none;-webkit-appearance:none}
.mp-clear{width:26px;height:26px;border:none;background:none;border-radius:50%;color:var(--text3);cursor:pointer;display:none;align-items:center;justify-content:center;padding:0;flex-shrink:0}
.mp-clear.on{display:flex}
.mp-clear svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.mp-body{position:relative;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:4px 8px 52px}
.mp-sec{font-size:11.5px;font-weight:700;color:var(--text3);padding:6px 4px 3px}
.mp-gcols{display:flex;gap:5px;align-items:flex-start}
.mp-gcol{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.mp-git{position:relative;display:block;width:100%;padding:0;border:none;border-radius:10px;overflow:hidden;background:var(--surface2);cursor:pointer;-webkit-tap-highlight-color:transparent}
.mp-git img{display:block;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .2s}
.mp-git img.ld{opacity:1}
.mp-git:active{opacity:.85}
.mp-git,.stk-it,.mp-git img,.stk-it img{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent}
#dmMediaPanel{-webkit-touch-callout:none}
#dmMediaPanel .mp-git.mpx-hide,#dmMediaPanel .stk-it.mpx-hide{visibility:hidden}
.mpx-ov{position:fixed;inset:0;z-index:9200;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:calc(20px + env(safe-area-inset-top,0px)) 16px calc(20px + env(safe-area-inset-bottom,0px));background:rgba(0,0,0,0);-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px);transition:background .32s ease,-webkit-backdrop-filter .32s ease,backdrop-filter .32s ease;-webkit-user-select:none;user-select:none;touch-action:none}
.mpx-ov.on{background:rgba(0,0,0,.38);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.mpx-pv{max-width:min(86vw,420px);max-height:38vh;border-radius:18px;overflow:hidden;display:flex;will-change:transform;box-shadow:0 12px 40px rgba(0,0,0,0);transition:transform .42s cubic-bezier(.22,1,.36,1),box-shadow .42s ease,opacity .2s ease}
.mpx-ov.on .mpx-pv{box-shadow:0 12px 40px rgba(0,0,0,.4)}
.mpx-pv.stk,.mpx-ov.on .mpx-pv.stk{box-shadow:none;border-radius:0;overflow:visible}
.mpx-pv img{display:block;max-width:100%;max-height:38vh;object-fit:contain;border-radius:inherit;pointer-events:none;-webkit-user-drag:none}
.mpx-pv.stk img{width:min(60vw,220px);height:min(60vw,220px)}
.mpx-menu{width:auto;min-width:210px;max-width:min(86vw,260px);background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:0;overflow:hidden;display:flex;flex-direction:column;gap:0;box-shadow:0 8px 28px rgba(0,0,0,.35);opacity:0;transform:translateY(14px) scale(.94);transform-origin:top center;transition:opacity .26s ease,transform .46s cubic-bezier(.22,1,.36,1)}
.mpx-ov.on .mpx-menu{opacity:1;transform:none;transition-delay:.05s}
.mpx-ov.out .mpx-menu{opacity:0;transform:translateY(6px) scale(.97);transition-duration:.16s;transition-delay:0s}
.mpx-it{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;border:none;background:none;color:var(--text);font:inherit;font-family:'Geologica',sans-serif;font-size:15px;font-weight:600;border-radius:0;white-space:nowrap;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;opacity:0;transform:translateY(6px);transition:opacity .3s ease,transform .4s cubic-bezier(.22,1,.36,1),background .15s}
.mpx-ov.on .mpx-it{opacity:1;transform:none;transition-delay:calc(.08s + var(--i,0) * .035s),calc(.08s + var(--i,0) * .035s),0s}
.mpx-ov.out .mpx-it{opacity:0;transition-delay:0s;transition-duration:.12s}
.mpx-it:active,.mpx-it:hover{background:var(--surface2)}
.mpx-it svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mpx-it.red{color:var(--red,#e5484d)}
.mp-git.busy{pointer-events:none}
.mp-git.busy::after{content:'';position:absolute;inset:0;background:rgba(0,0,0,.45)}
.mp-git.busy::before{content:'';position:absolute;left:50%;top:50%;width:24px;height:24px;margin:-12px 0 0 -12px;border-radius:50%;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;z-index:2;animation:mpSpin .7s linear infinite}
@keyframes mpSpin{to{transform:rotate(360deg)}}
.mp-msg{padding:24px 12px;text-align:center;color:var(--text3);font-size:13.5px;font-weight:500}
.mp-msg:empty{display:none}
.mp-foot{text-align:center;font-size:11px;font-weight:600;color:var(--text3);padding:8px 0 0}
.mp-foot:empty{display:none}
.mp-soon{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding-bottom:60px}
.mp-soon-t{font-size:20px;font-weight:800;color:var(--text)}
.mp-soon-s{font-size:12.5px;font-weight:500;color:var(--text3)}
.mp-tabs{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);display:flex;gap:2px;padding:3px;border-radius:19px;background:color-mix(in srgb,var(--surface) 82%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--border);box-shadow:0 4px 16px rgba(0,0,0,.18);z-index:3}
.mp-tab{border:none;background:none;border-radius:16px;padding:0 12px;height:30px;font:inherit;font-size:13px;font-weight:600;color:var(--text2);cursor:pointer;white-space:nowrap}
.mp-tab.on{background:var(--surface2);color:var(--text)}
@media(prefers-reduced-motion:reduce){.mp{animation:none}.mp-git.busy::before{animation:none}}
.code-block{background:var(--surface2)!important;border:none!important;border-radius:18px!important}
.code-block-head{background:transparent!important;border-bottom:none!important;padding:8px 14px!important}
/* профиль: без горизонтального сдвига, кнопки поста переносятся */
.upage-back{overflow-x:hidden}
.upage-inner{min-width:0;box-sizing:border-box}
.upage-inner>*{min-width:0;max-width:100%;box-sizing:border-box}
.post-footer{flex-wrap:nowrap;gap:6px}
.post-pin-btn .pp-lbl{display:none}
.post-pin-btn{padding:6px 8px;border-radius:50%}
.post-pin-btn svg{width:14px;height:14px}
.post-footer>*{flex-shrink:0}
.report-btn+.post-pin-btn{margin-left:0}
@media(max-width:560px){.post-footer{padding-left:12px;padding-right:12px}.post-footer .share-lbl{display:none}.post-footer .share-btn{padding:5px 8px}}
/* профиль, репосты, просмотр поста: без плашек и линий */
.upage-feed{background:transparent;border:none;border-radius:0;overflow:visible}
#upageFeed .post-card{background:transparent}
@media(hover:hover){ #upageFeed .post-card:hover{background:var(--surface2)}}
.upage-tabs{border-bottom:none}
/* вкладки профиля - скруглённые кнопки в стиле сайта (как папки чатов) */
.upage-tabs{gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 0 10px;margin-bottom:4px}
.upage-tabs::-webkit-scrollbar{display:none}
.upage-tab{flex:none;height:32px;padding:0 15px;display:inline-flex;align-items:center;justify-content:center;border-radius:16px;background:var(--surface2);color:var(--text2);border:none;border-bottom:none;font-size:13px;font-weight:700;white-space:nowrap}
.upage-tab:hover{color:var(--text);background:var(--surface2)}
.upage-tab.active{background:var(--accent);color:var(--accent-inv);border-bottom:none}
html[data-chat-theme] .upage-tab.active{background:var(--ct-solid);color:var(--ct-solid-fg,#fff)}
/* зажатие папки не должно выделять и копировать название */
.dm-folder-chip,.dm-folders{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
/* поиск пользователей без обводки */
#lsSrchField,#lsSrchField:focus{border-color:transparent!important;box-shadow:none!important}
/* поиск и команды без полос-границ - в стиле сайта */
.swrap input,.swrap input:focus{border:none!important;box-shadow:none!important}
#userSearchDrop{border:none!important;box-shadow:0 10px 32px rgba(0,0,0,.14)!important}
.slash-menu{border:none!important;box-shadow:0 -6px 28px rgba(0,0,0,.14)!important}
.slash-cmd-icon{border:none!important}
/* «Поделиться постом» - без разделительных полос */
#shareModal .share-modal-head,#shareModal .share-modal-preview,#shareModal .share-modal-contacts,#shareModal .share-contact{border-top:none!important;border-bottom:none!important}
/* «Репост» и «Жалоба» - экраны в стиле «Ответа», без разделительных линий */
#repostScreen .tf-box,#reportScreen .tf-box,#repostScreen .tf-bar,#reportScreen .tf-bar{border:none!important}
#repostScreen .tf-card{border:none;background:var(--surface2)}
#reportScreen .tf-card{border:none;background:transparent}
#repostScreen .tf-row+.tf-row::before,#reportScreen .tf-row+.tf-row::before{display:none}
#reportScreen .tf-add-ic{background:var(--surface)}
#repostScreen .rmc-line{display:none}
#postEditScreen .tf-box,#postEditScreen .tf-bar{border:none!important}
#postEditScreen .tf-card{border:none;background:var(--surface2)}
#postEditScreen .tf-row+.tf-row::before{display:none}
#postEditScreen .tf-add-ic{background:var(--surface)}
#postEditScreen .tf-body{padding-top:4px}
#postEditScreen .reply-modal-ta{min-height:110px;padding-top:2px}
.dm-reply-preview-icon svg{width:15px;height:15px}
/* «Переслать» - экран в стиле «Ответа», без линий */
#forwardScreen .tf-box,#forwardScreen .tf-bar{border:none!important}
#forwardScreen .sh-foot{flex:none;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));background:var(--surface)}
#forwardScreen .sh-send{display:block;width:100%;height:48px;border:none;border-radius:10px;background:var(--accent);color:var(--accent-inv);font-family:inherit;font-size:15px;font-weight:800;cursor:pointer;transition:transform .1s,opacity .15s}
html[data-chat-theme] #forwardScreen .sh-send{background:var(--ct-solid);color:var(--ct-solid-fg,#fff)}
#forwardScreen .sh-send:active{transform:scale(.99)}
#forwardScreen .sh-send:disabled{background:var(--surface2);color:var(--text3);cursor:default;transform:none}
#forwardScreen .tf-card{border:none;background:var(--surface2)}
#forwardScreen .tf-row+.tf-row::before{display:none}
#forwardScreen .tf-row+.tf-row{margin-top:0}
.fw-prev{display:flex;align-items:center;gap:12px;padding:12px 14px;margin-bottom:12px;border-radius:var(--radius);background:var(--surface2)}
.fw-prev-ic{flex:none;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--accent);background:var(--surface)}
.fw-prev-b{min-width:0;flex:1}
.fw-prev-t{font-size:13px;font-weight:700;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.fw-prev-a{font-size:11.5px;font-weight:500;color:var(--text3);margin-top:2px}
/* кнопки под постами (лайк, комментарии, репост, жалоба, поделиться) - без обводки в любом состоянии */
:is(.post-footer,.pm-actions) :is(.like-btn,.share-btn,.repost-btn,.report-btn),
:is(.post-footer,.pm-actions) :is(.like-btn,.share-btn,.repost-btn,.report-btn):is(:hover,:active,:focus,:focus-visible,.liked,.reposted){
  border:none!important;border-color:transparent!important;box-shadow:none!important;outline:none!important}
/* ── КАРТЫ (2ГИС) ── */
body.maps-tab .carea{overflow:hidden;display:flex;flex-direction:column}
body.maps-tab .cinner{flex:1;min-height:0;width:100%;max-width:none;padding:0!important;display:flex;flex-direction:column;background:transparent}
body.maps-tab #tab-maps.active{display:flex;flex:1;min-height:0}
.maps-wrap{position:relative;flex:1;min-height:0;width:100%;background:#1b1b1d}
#mapsCanvas{position:absolute;inset:0}
.maps-top{position:absolute;top:14px;left:14px;right:14px;max-width:420px;z-index:5;font-family:'Geologica',sans-serif}
.maps-top-row{display:flex;align-items:center;gap:8px}
.maps-search{flex:1;min-width:0;display:flex;align-items:center;gap:8px;height:46px;padding:0 8px 0 14px;border-radius:23px;background:var(--surface);box-shadow:0 6px 24px rgba(0,0,0,.16)}
.maps-search>svg{width:17px;height:17px;flex-shrink:0;color:var(--text3)}
.maps-search input{flex:1;min-width:0;height:100%;border:none!important;outline:none;background:none;color:var(--text);font-family:'Geologica',sans-serif;font-size:14px;font-weight:600;box-shadow:none!important}
.maps-search input::placeholder{color:var(--text3);font-weight:500}
.maps-clear{width:30px;height:30px;border-radius:50%;border:none;background:var(--surface2);color:var(--text2);cursor:pointer;font-size:17px;line-height:1;display:none;align-items:center;justify-content:center;flex-shrink:0}
.maps-clear.show{display:flex}
.maps-results{margin-top:8px;border-radius:18px;background:var(--surface);box-shadow:0 10px 32px rgba(0,0,0,.16);overflow:hidden;max-height:min(55vh,360px);overflow-y:auto;display:none}
.maps-results.show{display:block}
.maps-item{display:flex;flex-direction:column;gap:2px;padding:11px 16px;cursor:pointer;transition:background .12s}
.maps-item:hover{background:var(--surface2)}
.maps-item-name{font-size:13.5px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.maps-item-addr{font-size:12px;font-weight:500;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.maps-empty{padding:16px;text-align:center;font-size:12.5px;font-weight:500;color:var(--text3)}
.maps-round{width:46px;height:46px;border-radius:50%;border:none;background:var(--surface);color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 24px rgba(0,0,0,.16);flex-shrink:0;transition:transform .15s}
.maps-round:hover{transform:scale(1.06)}
.maps-round svg{width:19px;height:19px}
.maps-fab{display:flex;gap:10px;position:absolute;right:14px;bottom:14px;z-index:5}
.maps-share{position:absolute;left:14px;bottom:14px;z-index:5}
.maps-share button{display:flex;align-items:center;gap:9px;height:40px;padding:0 17px 0 14px;border-radius:20px;border:none;background:var(--surface);color:var(--text);font-family:'Geologica',sans-serif;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap;box-shadow:0 6px 24px rgba(0,0,0,.2);transition:transform .15s}
.maps-share button:hover{transform:scale(1.03)}
.maps-share i{width:9px;height:9px;border-radius:50%;background:var(--text3);flex-shrink:0}
.maps-share.on i{background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.22)}
.maps-pin-root{position:relative;width:0;height:0}
.maps-pin{position:absolute;left:0;top:0;transform:translate(-50%,calc(-100% - 8px));display:flex;align-items:center;gap:7px;padding:4px 12px 4px 4px;border-radius:20px;background:var(--surface);color:var(--text);box-shadow:0 4px 16px rgba(0,0,0,.3);font-family:'Geologica',sans-serif;font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer;user-select:none;-webkit-user-select:none}
.maps-pin::after{content:'';position:absolute;left:50%;bottom:-4px;width:10px;height:10px;background:var(--surface);transform:translateX(-50%) rotate(45deg);border-radius:2px}
.maps-pin.old{opacity:.72}
.maps-pin.me{box-shadow:0 0 0 2px var(--accent),0 4px 16px rgba(0,0,0,.3);cursor:default}
.maps-pin-ava{position:relative;z-index:1;width:26px;height:26px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;overflow:hidden;flex-shrink:0}
.maps-pin-ava img{width:100%;height:100%;object-fit:cover;display:block}
.maps-pin-txt{position:relative;z-index:1;display:flex;flex-direction:column;gap:1px;line-height:1.15;min-width:0}
.maps-pin-nick{max-width:130px;overflow:hidden;text-overflow:ellipsis}
.maps-pin-time{font-size:10px;font-weight:600;color:var(--text3)}
.maps-fab button{width:46px;height:46px;border-radius:50%;border:none;background:var(--surface);color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 24px rgba(0,0,0,.2);transition:transform .15s}
.maps-fab button:hover{transform:scale(1.06)}
.maps-fab svg{width:20px;height:20px}
.maps-fab button.on{color:var(--accent)}
.pl-root{position:relative;width:0;height:0}
.pl-ic{position:absolute;left:0;top:0;width:var(--plh,36px);height:var(--plh,36px);margin:calc(var(--plh,36px) / -2) 0 0 calc(var(--plh,36px) / -2);display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
.pl-ic svg{width:var(--pls,24px);height:var(--pls,24px);fill:#fbbf24;stroke:rgba(0,0,0,.7);stroke-width:1;stroke-linejoin:round;filter:drop-shadow(0 1px 2px rgba(0,0,0,.55))}
.pl-ic.sel svg{width:32px;height:32px;fill:#fff;stroke:var(--accent);stroke-width:1.4}
.maps-wrap.full{position:fixed;inset:0;width:100%;height:100%;z-index:1900}
.maps-top,.maps-fab,.maps-share,.maps-card{transition:top .38s cubic-bezier(.22,.8,.24,1),bottom .38s cubic-bezier(.22,.8,.24,1),opacity .2s}
.maps-wrap.full .maps-top{top:calc(14px + env(safe-area-inset-top,0px))}
.maps-wrap.full .maps-fab,.maps-wrap.full .maps-share{bottom:calc(14px + env(safe-area-inset-bottom,0px))}
.maps-state{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#1b1b1d;font-family:'Geologica',sans-serif;font-size:13px;font-weight:600;color:#9a9a96;text-align:center;padding:24px}
.maps-spin{width:34px;height:34px;border-radius:50%;border:3px solid rgba(255,255,255,.14);border-top-color:#fff;animation:mapsSpin .8s linear infinite}
@keyframes mapsSpin{to{transform:rotate(360deg)}}
.maps-wrap.loading .maps-top,.maps-wrap.loading .maps-fab,.maps-wrap.loading .maps-share{visibility:hidden}
.maps-card{position:absolute;left:14px;right:14px;bottom:72px;max-width:420px;z-index:6;display:none;flex-direction:column;gap:8px;padding:14px 16px 14px;border-radius:20px;background:var(--surface);color:var(--text);box-shadow:0 10px 32px rgba(0,0,0,.28);font-family:'Geologica',sans-serif;max-height:55%;overflow-y:auto}
.maps-card.show{display:flex}
.maps-card-h{display:flex;align-items:flex-start;gap:10px}
.maps-card-t{flex:1;min-width:0}
.maps-card-name{font-size:15px;font-weight:800;line-height:1.25;word-break:break-word}
.maps-card-sub{font-size:12px;font-weight:500;color:var(--text3);margin-top:2px;word-break:break-word}
.maps-card-x{width:28px;height:28px;border-radius:50%;border:none;background:var(--surface2);color:var(--text2);cursor:pointer;font-size:17px;line-height:1;flex-shrink:0}
.maps-card-row{font-size:12.5px;font-weight:600;color:var(--text2);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.maps-card-row a{color:var(--accent);text-decoration:none;font-weight:700}
.maps-card-row b{color:var(--text);font-weight:700}
.maps-modes{display:flex;gap:6px}
.maps-mode{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:14px;border:2px solid transparent;background:var(--surface2);color:var(--text);cursor:pointer;font-family:inherit}
.maps-mode.on{border-color:var(--accent)}
.maps-mode.off{opacity:.45;cursor:default}
.maps-mode svg{width:18px;height:18px}
.maps-mode-t{font-size:13px;font-weight:800}
.maps-mode-d{font-size:10.5px;font-weight:600;color:var(--text3)}
.maps-card-btns{display:flex;gap:8px}
.maps-card-btns button{flex:1;height:38px;border-radius:12px;border:none;background:var(--surface2);color:var(--text);font-family:inherit;font-size:13px;font-weight:700;cursor:pointer}
.maps-card-btns button.pri{background:var(--accent);color:var(--accent-inv)}
.maps-card-hint{font-size:11.5px;font-weight:500;color:var(--text3)}
.maps-wrap.full .maps-card{bottom:calc(72px + env(safe-area-inset-bottom,0px))}
.maps-wrap.loading .maps-card{visibility:hidden}
.maps-photos{display:flex;gap:6px;overflow-x:auto;margin:-2px -4px 0;padding:2px 4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.maps-photos::-webkit-scrollbar{display:none}
.maps-photos img{height:112px;width:auto;min-width:100px;max-width:200px;object-fit:cover;border-radius:12px;flex-shrink:0;background:var(--surface2)}
.maps-rev-h{font-size:13px;font-weight:800;margin-top:2px}
.maps-rev{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:14px;background:var(--surface2)}
.maps-rev-top{display:flex;align-items:center;gap:8px}
.maps-rev-ava{width:26px;height:26px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;overflow:hidden;flex-shrink:0}
.maps-rev-ava img{width:100%;height:100%;object-fit:cover}
.maps-rev-n{font-size:12.5px;font-weight:700;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.maps-rev-s{font-size:11.5px;font-weight:800;color:#f5a524;white-space:nowrap}
.maps-rev-d{font-size:10.5px;font-weight:500;color:var(--text3)}
.maps-rev-t{font-size:12.5px;font-weight:500;line-height:1.35;color:var(--text2);display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.maps-rev-p{display:flex;gap:5px}
.maps-rev-p img{height:56px;width:56px;object-fit:cover;border-radius:8px}
.maps-card{max-height:62%}




.upage-header{border-bottom:none}
.post-quoted{border:none!important;background:var(--surface2);border-radius:16px}
.post-quoted:hover{border-color:transparent}
.ush-row{border-bottom:none}
.ush-ico{border:none}
#postViewModal .pm-head{border-bottom:none}
#postViewModal .pm-cmt-form{border-top:none}
.pm-cmts{border-top:none}
/* длинный код не ломает ленту */
.pgrid>*,.posts-feed,.post-card,.post-inner,.post-body-text,.feed-card,#homePanelPosts{min-width:0;max-width:100%}
.post-inner,.post-body-text{overflow:hidden;overflow-wrap:anywhere}
.post-card .code-block,.pm-text .code-block{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.post-card .code-block pre,.pm-text .code-block pre{max-width:100%;max-height:340px;overflow:auto;box-sizing:border-box}
.post-card .code-block pre code{white-space:pre}
/* единый стиль виджетов в чате */
.dm-call-card,.dm-qr-card,.dm-profile-card,.dm-grade-card,.dm-prompt-card,.dm-wifi-card,.dm-pay-card,.dm-post-widget{background:var(--surface2)!important;border:none!important;border-radius:18px!important;box-shadow:none!important}
.dm-profile-card:hover{border-color:transparent!important}
.dm-qr-card-top,.dm-prompt-card-top,.dm-wifi-card-top,.dm-pay-card-top,.dm-grade-top,.dm-grade-stats,.dm-grade-total,.dm-profile-card-stats{border:none!important}
.dm-qr-card-top,.dm-prompt-card-top,.dm-wifi-card-top,.dm-pay-card-top{padding:14px 14px 10px!important}
.dm-qr-card-icon,.dm-prompt-card-icon,.dm-wifi-card-icon{width:34px!important;height:34px!important;border:none!important;border-radius:12px!important;background:var(--surface)!important}
.dm-qr-card-qr{margin:0 14px 4px!important;border-radius:12px!important;padding:12px!important}
.dm-wifi-card-qr{margin:0 14px!important;border-radius:12px!important}
.dm-grade-stat{border:none!important;border-radius:12px!important;background:var(--surface)!important}
.dm-call-card-redial{border:none!important;background:var(--surface)!important}
.dm-prompt-card-btn,.dm-prompt-card-btn.secondary{border:none!important;border-radius:12px!important}
.dm-prompt-card-btn.secondary{background:var(--surface)!important}
.dm-profile-card-btn:hover{background:var(--surface)!important}
.dm-post-widget-btn{border-top:none!important}
.poll-opt{border:none!important;border-radius:12px!important}
/* без рамок выбора и фокуса */
.poll-opt.mine,.poll-opt:hover,[data-theme=dark] .dm-msg-wrap.mine .poll-opt.mine{border-color:var(--border)!important}
[data-theme=dark] .dm-msg-wrap.mine .poll-opt.mine,[data-theme=dark] .dm-msg-wrap.mine .poll-opt:hover{border-color:rgba(255,255,255,.18)!important}
.qr-btn.sel{border-color:var(--border)!important}
.dm-msg.dm-msg-flash,.dm-msg-wrap.dm-msg-flash .dm-msg{outline:none!important}
input:focus,textarea:focus,select:focus,[contenteditable]:focus{outline:none!important}
.swrap input:focus,.shinput:focus,.binp:focus,.pc-inp:focus,.minp:focus,.prof-bio-ta:focus,.prof-edit-inp:focus,.dm-input:focus,.fld-name:focus,.pm-cmt-form textarea:focus,
html[data-chat-theme] .swrap input:focus,html[data-chat-theme] .shinput:focus,html[data-chat-theme] .binp:focus,html[data-chat-theme] .minp:focus,html[data-chat-theme] .prof-bio-ta:focus,html[data-chat-theme] .prof-edit-inp:focus,html[data-chat-theme] .dm-input:focus{border-color:var(--border)!important;box-shadow:none!important;outline:none!important}
.compose-ta:focus{border-bottom-color:transparent!important}
.sitem,.sitem.active,html[data-chat-theme] .sitem.active,
.ntab,.ntab.active,html[data-chat-theme] .ntab.active,
.ibtn,.set-tab,.compose-preview,.post-pin-btn,.tcard-btn.disabled{border-color:transparent}
.set-tab.active{border-color:transparent}
/* Опубликовать не должна вылезать за экран на телефоне */
@media(max-width:640px){
  .compose-box{padding:12px 18px 0}
  .compose-row{gap:10px}
  .compose-ava{width:28px;height:28px;font-size:12px;margin-top:5px}
  .compose-actions{flex-wrap:wrap;gap:6px 8px}
  .compose-actions>div:last-child{margin-left:auto;min-width:0;flex:0 1 auto}
  .compose-preview{padding:0 10px;margin-right:6px;font-size:12px;white-space:nowrap}
  .compose-submit{padding:0 14px;font-size:12px;white-space:nowrap;flex-shrink:0}
}

/* ── Приватность: выпадающие списки в стиле сайта (не сжатые) ── */
.set-sec select.prof-edit-inp{display:block;width:100%;flex:none;height:44px;padding:0 42px 0 14px;border-radius:12px;border:1.5px solid transparent;background-color:var(--surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238a8a85' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;background-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:14px;font-weight:700;cursor:pointer;text-overflow:ellipsis;transition:border-color .15s,background-color .15s}
.set-sec select.prof-edit-inp:hover{border-color:var(--border2,var(--text3))}
.set-sec select.prof-edit-inp:focus{border-color:var(--text3);background-color:var(--surface)}
/* ── Эмодзи: берутся из системы устройства (у каждой ОС свои), ничего не грузим с чужих серверов ── */
html,body,button,input,textarea,select{font-family:'Geologica','Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif}
/* WALLET */
.wl-wrap{max-width:560px;margin:0 auto;padding:6px 0 24px}
.wl-total{text-align:center;font-size:44px;font-weight:800;letter-spacing:-1.5px;color:var(--text);margin-top:8px}
.wl-totsub{text-align:center;font-size:13px;font-weight:600;color:var(--text3);margin:2px 0 16px}
.wl-card{position:relative;height:120px;max-width:300px;margin:0 auto 18px;border-radius:20px;border:1px solid var(--border);background:linear-gradient(135deg,var(--surface2),var(--surface));box-shadow:var(--shadow);overflow:hidden}
.wl-card::after{content:'';position:absolute;right:-30px;top:-30px;width:130px;height:200px;background:var(--border);opacity:.5;transform:rotate(25deg)}
.wl-card-chip{position:absolute;left:18px;top:18px;width:34px;height:26px;border-radius:7px;background:var(--border2)}
.wl-card-name{position:absolute;left:18px;bottom:14px;font-size:13px;font-weight:800;color:var(--text2);z-index:1}
.wl-acts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:18px}
.wl-act{display:flex;flex-direction:column;align-items:center;gap:8px;background:none;border:none;color:var(--text);font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;padding:0}
.wl-act-ic{width:58px;height:58px;border-radius:50%;background:var(--surface);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;transition:background .15s}
.wl-act:active .wl-act-ic{background:var(--surface2)}
.wl-act-ic svg{width:24px;height:24px;fill:none;stroke:var(--text);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.wl-row{display:flex;align-items:center;gap:12px;padding:14px 16px}
.wl-row:first-child{border-top:none}
.wl-coin{width:42px;height:42px;border-radius:50%;background:var(--accent);color:var(--accent-inv);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;flex-shrink:0}
.wl-mid{flex:1;min-width:0}
.wl-name{font-size:15px;font-weight:800;color:var(--text)}
.wl-s{font-size:12px;font-weight:600;color:var(--text3);margin-top:2px}
.wl-r{text-align:right}
.wl-amt{font-size:15px;font-weight:800;color:var(--text)}
.wl-pos{color:var(--green)}
.wl-neg{color:var(--text)}
.wl-seg{display:flex;gap:6px;margin:8px 0}
.wl-seg button{flex:1;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--surface2);color:var(--text2);font-family:inherit;font-size:13px;font-weight:700;cursor:pointer}
.wl-seg button.on{background:var(--accent);color:var(--accent-inv);border-color:var(--accent)}
.wl-frs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px;max-height:84px;overflow-y:auto}
.wl-frs button{border:1px solid var(--border);background:var(--surface2);color:var(--text);border-radius:999px;padding:5px 11px;font-family:inherit;font-size:12.5px;font-weight:700;cursor:pointer}
/* WALLET: окно успешного перевода, чек в чате, анимация обновления */
.wl-ok{text-align:center;padding:4px 0 0}
.wl-ok-ic{position:relative;width:88px;height:88px;margin:2px auto 14px}
.wl-ok-ic::before{content:'';position:absolute;inset:0;border-radius:50%;background:var(--green);opacity:.18;animation:wlOkPulse 1.8s ease-out .5s infinite}
.wl-ok-ic svg{position:relative;width:88px;height:88px;display:block}
.wl-ok-disc{fill:var(--green);transform-box:fill-box;transform-origin:center;animation:wlOkPop .5s cubic-bezier(.2,1.4,.4,1) both}
.wl-ok-tick{fill:none;stroke:#fff;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:60;stroke-dashoffset:60;animation:wlOkTick .45s ease-out .3s forwards}
.wl-ok-title{font-size:20px;font-weight:800;color:var(--text);animation:wlOkUp .4s ease-out .35s both}
.wl-ok-amt{font-size:30px;font-weight:800;letter-spacing:-.8px;color:var(--text);margin-top:6px;animation:wlOkUp .4s ease-out .45s both}
.wl-ok-sub{font-size:13px;font-weight:600;color:var(--text3);margin-top:4px;animation:wlOkUp .4s ease-out .5s both}
.wl-ok-btns{display:flex;flex-direction:column;gap:8px;margin-top:18px;animation:wlOkUp .4s ease-out .6s both}
.wl-ok-btns .prof-edit-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px}
.wl-ok-btns .prof-edit-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.wl-ok-btns .wl-ok-share.sent{background:rgba(22,163,74,.14);color:var(--green);border-color:transparent;pointer-events:none}
.wl-ok-btns .wl-ok-done{background:var(--surface2);color:var(--text2);border:1px solid var(--border)}
@keyframes wlOkPop{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes wlOkTick{to{stroke-dashoffset:0}}
@keyframes wlOkPulse{0%{transform:scale(.9);opacity:.28}100%{transform:scale(1.45);opacity:0}}
@keyframes wlOkUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.wl-wrap.wl-refreshing>*:not(.posts-refresh-banner){opacity:.45;transition:opacity .2s;pointer-events:none}
.wl-wrap.wl-fresh>*:not(.posts-refresh-banner){animation:postFreshIn .4s ease-out both}
.wl-wrap.wl-fresh>*:nth-child(3){animation-delay:.05s}
.wl-wrap.wl-fresh>*:nth-child(4){animation-delay:.1s}
.wl-wrap.wl-fresh>*:nth-child(5){animation-delay:.15s}
.wl-wrap.wl-fresh>*:nth-child(6){animation-delay:.2s}
.wl-wrap.wl-fresh>*:nth-child(7){animation-delay:.25s}
.dm-pay-card{border-radius:14px;overflow:hidden;width:250px;cursor:default;background:var(--surface);border:1px solid var(--border)}
.dm-pay-card-top{padding:12px 13px 10px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border)}
.dm-pay-card-icon{width:32px;height:32px;border-radius:50%;background:rgba(22,163,74,.14);color:var(--green);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dm-pay-card-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.dm-pay-card-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text3);margin-bottom:3px}
.dm-pay-card-title{font-size:13px;font-weight:700;color:var(--text)}
.dm-pay-card-amt{padding:12px 13px 4px;font-size:24px;font-weight:800;letter-spacing:-.6px;color:var(--text)}
.dm-pay-card-rows{padding:4px 13px 12px}
.dm-pay-card-row{display:flex;justify-content:space-between;gap:10px;font-size:12px;padding:3px 0}
.dm-pay-card-row span:first-child{color:var(--text3);font-weight:600;flex-shrink:0}
.dm-pay-card-row span:last-child{color:var(--text);font-weight:700;text-align:right;word-break:break-all}
[data-theme=dark] .dm-msg-wrap.mine .dm-pay-card{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.18)}
[data-theme=dark] .dm-msg-wrap.mine .dm-pay-card-top{border-color:rgba(255,255,255,.14)}
[data-theme=dark] .dm-msg-wrap.mine .dm-pay-card-label{color:rgba(255,255,255,.5)}
[data-theme=dark] .dm-msg-wrap.mine .dm-pay-card-title,[data-theme=dark] .dm-msg-wrap.mine .dm-pay-card-amt,[data-theme=dark] .dm-msg-wrap.mine .dm-pay-card-row span:last-child{color:#fff}
[data-theme=dark] .dm-msg-wrap.mine .dm-pay-card-row span:first-child{color:rgba(255,255,255,.55)}
/* AI CHAT: scroll only inside chat */
body.ai-tab .carea{overflow:hidden;display:flex;flex-direction:column}
body.ai-tab .cinner{flex:1;min-height:0;width:100%;display:flex;flex-direction:column;background:transparent}
body.ai-tab #tab-ai,body.ai-tab #tab-ai.active{background:transparent}
body.ai-tab #tab-ai.active{display:flex;flex-direction:column;flex:1;min-height:0}
.ai-card{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;padding:0}
.card.ai-card{background:transparent;border:none;border-radius:0;box-shadow:none}
.ai-card #aiChatMessages{background-color:transparent!important}
.ai-card{position:relative}
.ai-bottom{position:absolute;left:0;right:0;bottom:0;z-index:5;display:flex;flex-direction:column;background:transparent;pointer-events:none}
.ai-bottom>*{pointer-events:auto}
.ai-bottom::before{content:'';position:absolute;left:0;right:0;bottom:0;height:var(--ai-blur-h,40px);z-index:-1;pointer-events:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);-webkit-mask-image:linear-gradient(to top,#000 65%,transparent);mask-image:linear-gradient(to top,#000 65%,transparent)}
.ai-card #aiChatMessages{padding-bottom:calc(var(--ai-bottom-h,140px) + 12px)!important}
body.ai-tab .cinner{padding-bottom:0!important}
/* Мобильный ИИ-чат: пока открыта клавиатура, нижняя панель навигации скрыта */
@media(max-width:640px){body.ai-kb .mob-nav{display:none!important}body.ai-kb{padding-bottom:0!important}body.ai-kb .carea{padding-bottom:0!important}}
/* Мобильный ИИ-чат: лента и размытие идут до самого низа экрана, под плавающей панелью; поле ввода стоит над панелью */
@media(max-width:640px){
body.ai-kb{--nav-h:0px}
body.ai-tab .carea{padding-bottom:0}
body.ai-tab .ai-bottom{bottom:var(--nav-h,0px)}
body.ai-tab .ai-bottom::before{bottom:calc(0px - var(--nav-h,0px));height:calc(var(--ai-blur-h,40px) + var(--nav-h,0px))}
body.ai-tab .ai-card #aiChatMessages{padding-bottom:calc(var(--ai-bottom-h,140px) + 12px + var(--nav-h,0px))!important}
}
.ai-card,.ai-card .ai-inputbar,.ai-card .ai-photo-prev{background:transparent!important;border:none!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.ai-card .ai-inputbar::before,.ai-card .ai-inputbar::after,.ai-card::before,.ai-card::after{content:none!important;background:none!important}
#aiChatMessages{flex:1;min-height:0;overscroll-behavior:contain}
.ai-inputbar{background:var(--surface);padding:10px 12px;flex-shrink:0}
.ai-limit{display:none;position:relative;margin:0 12px 2px;padding:14px 44px 14px 16px;background:var(--surface2);border:1px solid var(--border);border-radius:18px;box-shadow:none;flex-shrink:0;animation:aiLimIn .25s ease-out}
.ai-limit.show{display:block}
.ai-limit-t{font-size:14.5px;font-weight:800;color:var(--text)}
.ai-limit-plus{display:none;width:calc(100% + 28px);box-sizing:border-box;height:42px;margin-top:12px;border:none;border-radius:12px;background:var(--accent);color:var(--accent-inv);font-family:inherit;font-size:14px;font-weight:800;cursor:pointer}
.ai-limit.has-plus-btn .ai-limit-plus{display:block}
.ai-limit-s{font-size:12.5px;font-weight:500;color:var(--text3);margin-top:3px}
.ai-limit-x{position:absolute;top:10px;right:10px;width:28px;height:28px;border:none;background:none;border-radius:50%;color:var(--text3);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.ai-limit-x:hover{background:var(--surface);color:var(--text)}
.ai-limit-x svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
@keyframes aiLimIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.ai-limit{animation:none}}
.ai-inputbox{background:var(--surface2);border:1px solid var(--border);box-shadow:none;border-radius:24px;padding:12px 12px 10px 16px;display:flex;flex-direction:column;gap:8px}
.ai-inputbox textarea{border:none;background:transparent;font-size:15px;font-family:inherit;outline:none;resize:none;max-height:120px;min-height:24px;color:var(--text);width:100%;padding:0}
.ai-inputrow{display:flex;align-items:center;justify-content:space-between;gap:8px}
/* ПК: пока ИИ-чат пуст - поле ввода по центру экрана (чуть уже и выше); после первого сообщения плавно уезжает вниз */
@media(min-width:861px){
.ai-bottom{left:50%;right:auto;width:100%;transform:translateX(-50%);transition:bottom .42s cubic-bezier(.3,.8,.3,1),width .42s cubic-bezier(.3,.8,.3,1)}
.ai-card:has(#aiWelcomeScreen) .ai-bottom{bottom:calc(50% - 150px);width:min(100%,640px)}
/* ПК, чат с сообщениями: поле ввода и лента - аккуратной колонкой по центру, а не на всю ширину */
.ai-card:not(:has(#aiWelcomeScreen)) .ai-bottom{width:min(100%,780px)}
.ai-card:not(:has(#aiWelcomeScreen)) #aiChatMessages>*{width:100%;max-width:748px;margin-left:auto;margin-right:auto;box-sizing:border-box;flex-shrink:0}
.ai-card:has(#aiWelcomeScreen) .ai-bottom::before{display:none}
.ai-card:has(#aiWelcomeScreen) #aiChatMessages{padding-bottom:20px!important}
.ai-card #aiWelcomeScreen{transform:translateY(-80px)}
body.ai-no-anim .ai-card,body.ai-no-anim .ai-card *{transition:none!important;animation:none!important}
.ai-card:has(#aiWelcomeScreen) .ai-inputbox{padding:12px 12px 10px 18px;gap:8px;border-radius:24px}
.ai-card:has(#aiWelcomeScreen) .ai-inputbox textarea{min-height:34px}
}
@media(min-width:861px) and (prefers-reduced-motion:reduce){.ai-bottom{transition:none}}
.ai-model-btn{display:flex;align-items:center;gap:5px;background:none;border:none;cursor:pointer;color:var(--text2);font-family:inherit;font-size:13px;font-weight:700;padding:6px 8px;border-radius:12px}
.ai-model-btn:hover{background:var(--surface)}
.ai-model-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}
.ai-send{background:var(--accent);color:var(--accent-inv);border:none;border-radius:50%;width:38px;height:38px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .15s}
.ai-model-menu{display:none;position:absolute;left:0;bottom:calc(100% + 8px);min-width:230px;max-height:min(55vh,340px);overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:0 8px 28px rgba(0,0,0,.25);padding:6px;z-index:50}
.ai-model-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;cursor:pointer;color:var(--text)}
.ai-model-item:hover{background:var(--surface2)}
.ai-model-item.off{opacity:.5;pointer-events:none;cursor:not-allowed}
.ai-model-chk{width:18px;flex-shrink:0;display:flex}
.ai-model-n{display:block;font-size:14px;font-weight:700}
.ai-model-s{display:block;font-size:12px;color:var(--text3);font-weight:500}
/* BUBBLE SHAPE (обычные чаты, не ИИ) */
html{--bub-r:16px;--bub-t:4px}
html[data-bubble-shape=sharp]{--bub-r:3px}
html[data-bubble-shape=oval]{--bub-r:22px}
html{--bub-t:0px}
html[data-bubble-tail=off]{--bub-t:var(--bub-r)}
.dm-msg-wrap.mine .dm-msg:not(.dm-msg-photo){border-radius:var(--bub-r) var(--bub-r) var(--bub-t) var(--bub-r)}
.dm-msg-wrap.theirs .dm-msg:not(.dm-msg-photo){border-radius:var(--bub-r) var(--bub-r) var(--bub-r) var(--bub-t)}
html[data-bubble-shape=oval] .dm-msg:not(.dm-msg-photo){padding:9px 17px}
/* Выраженный «хвостик» (только текстовые пузыри); цвет берётся из темы чата */
html:not([data-bubble-tail=off]) .dm-msg-wrap .dm-msg:not(.dm-msg-photo):not(.dm-msg-post):not(.dm-msg-card):not(.dm-msg-circle)::before,html:not([data-bubble-tail=off]) .dm-msg-wrap .dm-msg:not(.dm-msg-photo):not(.dm-msg-post):not(.dm-msg-card):not(.dm-msg-circle)::after{content:"";position:absolute;pointer-events:none}
html:not([data-bubble-tail=off]) .dm-msg-wrap.mine .dm-msg:not(.dm-msg-photo):not(.dm-msg-post):not(.dm-msg-card):not(.dm-msg-circle)::after{right:-12px;bottom:0;width:14px;height:16px;background:var(--ct-tail-mine,var(--accent));clip-path:path('M0 0 L0 16 L14 16 C7 16 2 11 0 0 Z')}
html:not([data-bubble-tail=off]) .dm-msg-wrap.theirs .dm-msg:not(.dm-msg-photo):not(.dm-msg-post):not(.dm-msg-card):not(.dm-msg-circle)::before{left:-14px;bottom:-1px;width:16px;height:18px;background:var(--ct-in-bd,var(--border));clip-path:path('M16 0 L16 18 L0 18 C8 18 14 12 16 0 Z')}
html:not([data-bubble-tail=off]) .dm-msg-wrap.theirs .dm-msg:not(.dm-msg-photo):not(.dm-msg-post):not(.dm-msg-card):not(.dm-msg-circle)::after{left:-12px;bottom:0;width:14px;height:16px;background:var(--ct-in-bg,var(--surface2));clip-path:path('M14 0 L14 16 L0 16 C7 16 12 11 14 0 Z')}
html .dm-msg-wrap.theirs .dm-msg:not(.dm-msg-photo):not(.dm-msg-post):not(.dm-msg-card):not(.dm-msg-circle)::before{display:none!important}
.bs-grid.tail .bs-b.out{position:relative}
.bs-grid.tail .bs-b.out::after{content:"";position:absolute;right:-6px;bottom:0;width:8px;height:10px;background:var(--accent);clip-path:polygon(0 0,0 100%,100% 100%,30% 70%)}
.bs-grid.tail .bs-b.in{position:relative}
.bs-grid.tail .bs-b.in::after{content:"";position:absolute;left:-6px;bottom:0;width:8px;height:10px;background:var(--surface2);clip-path:polygon(100% 0,100% 100%,0 100%,70% 70%)}
.bs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.bs-card{border:2px solid var(--border);border-radius:14px;padding:10px 8px;background:var(--surface);cursor:pointer;display:flex;flex-direction:column;gap:8px;align-items:stretch;font-family:inherit;transition:border-color .15s}
.bs-card.sel{border-color:var(--ct-solid,var(--text));box-shadow:0 0 0 2px color-mix(in srgb,var(--ct-solid,var(--text)) 25%,transparent)}
.bs-card-name{font-size:12.5px;font-weight:800;color:var(--text);text-align:center}
.bs-b{font-size:11.5px;font-weight:600;padding:6px 10px}
.bs-b.in{background:var(--surface2);color:var(--text);border:1px solid var(--border);align-self:flex-start}
.bs-b.out{background:var(--accent);color:var(--accent-inv);align-self:flex-end}
/* ── подсказка прокрутки списка моделей ИИ ── */
.ai-model-menu{scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior:contain}
.ai-model-menu::-webkit-scrollbar{display:none;width:0;height:0}
.ai-model-more{position:sticky;bottom:0;height:0;margin:0;padding:0;overflow:visible;pointer-events:none;transition:opacity .2s}
.ai-model-more-in{position:absolute;left:-6px;right:-6px;bottom:-6px;padding:22px 0 9px;display:flex;align-items:center;justify-content:center;gap:5px;font-size:11.5px;font-weight:700;color:var(--text2);background:linear-gradient(transparent,var(--surface) 62%);border-radius:0 0 18px 18px}
.ai-model-more svg{animation:aiMoreBob 1.2s ease-in-out infinite}
.ai-model-more.hide{opacity:0}
.ai-model-badge{display:inline-block;margin-top:3px;padding:2px 8px;border-radius:8px;background:rgba(229,57,53,.14);color:#e53935;border:1px solid rgba(229,57,53,.35);font-size:10.5px;font-weight:800;line-height:1.35;letter-spacing:.1px}
.ai-model-item.plus-locked{opacity:.5;filter:grayscale(1)}
.ai-model-item.temp-off{opacity:1}
.ai-model-item.temp-off .ai-model-n{opacity:.55}
.ai-photo-btn{width:34px;height:34px;border-radius:50%;border:none;background:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text2);flex-shrink:0;padding:0}
.ai-photo-btn:hover{background:var(--surface)}
.ai-photo-btn:disabled{opacity:.4;cursor:not-allowed}
.ai-photo-btn svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ai-left{display:flex;align-items:center;gap:2px;min-width:0;position:relative}
.ai-attach-menu{display:none;position:absolute;left:0;bottom:calc(100% + 10px);min-width:230px;background:var(--surface);border:1px solid var(--border);border-radius:26px;box-shadow:0 10px 32px rgba(0,0,0,.3);padding:8px;z-index:60}
.ai-attach-item{display:flex;align-items:center;gap:14px;padding:8px 14px 8px 8px;border-radius:20px;cursor:pointer;color:var(--text);font-size:15px;font-weight:600;border:none;background:none;width:100%;font-family:inherit;text-align:left}
.ai-attach-item:hover,.ai-attach-item:active{background:var(--surface2)}
.ai-attach-ic{width:42px;height:42px;border-radius:50%;background:var(--surface2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ai-attach-item:hover .ai-attach-ic{background:var(--border)}
.ai-attach-item.soon{opacity:.45}
/* лимит исчерпан: как «Скоро», только светлее и некликабельно */
.ai-attach-item.lim,.ai-model-item.lim{opacity:.26;cursor:not-allowed;pointer-events:none}
.ai-attach-item.lim:hover,.ai-model-item.lim:hover{background:none}
.ai-attach-soon{margin-left:auto;font-size:11px;font-weight:700;color:var(--text3);line-height:1}
.ai-attach-ic svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ai-pf{position:relative;flex-shrink:0;height:64px;max-width:190px;border-radius:12px;border:1px solid var(--border);background:var(--surface);display:flex;align-items:center;gap:8px;padding:0 28px 0 10px}
.ai-pf svg{width:22px;height:22px;stroke:var(--text2);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.ai-pf-n{font-size:12px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}
.ai-pf-s{font-size:10.5px;color:var(--text3);font-weight:600}
.ai-msg-file{display:flex;align-items:center;gap:10px;max-width:100%;padding:10px 14px 10px 10px;border-radius:16px;background:var(--surface2);border:1px solid var(--border);color:var(--text)}
.ai-msg-file-ic{width:38px;height:38px;border-radius:10px;background:var(--surface);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ai-msg-file-ic svg{width:20px;height:20px;stroke:var(--text2);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ai-msg-file-n{font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}
.ai-msg-file-s{font-size:11px;color:var(--text3);font-weight:600}
.ai-msg-media{display:flex;flex-direction:column;align-items:flex-end;gap:6px;max-width:85%}
.ai-photo-prev{display:none;gap:8px;overflow-x:auto;padding:2px 0 4px;scrollbar-width:none}
.ai-photo-prev::-webkit-scrollbar{display:none}
.ai-photo-prev.on{display:flex}
.ai-pp{position:relative;flex-shrink:0;width:64px;height:64px;border-radius:12px;overflow:hidden;border:1px solid var(--border)}
.ai-pp img{width:100%;height:100%;object-fit:cover;display:block}
.ai-pp-x{position:absolute;top:3px;right:3px;width:20px;height:20px;border:none;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;font-size:14px;line-height:20px;text-align:center;cursor:pointer;padding:0}
.ai-skel{display:flex;flex-direction:column;gap:14px;padding:4px 2px}
.ai-skel-t{font-size:16px;font-weight:500;color:var(--text3);animation:aiSkelFade .5s ease}
@keyframes aiSkelFade{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
.ai-skel-box{position:relative;width:min(320px,78vw);aspect-ratio:1/1;border-radius:14px;overflow:hidden}
.ai-skel-dots,.ai-skel-glow{position:absolute;inset:0;background-size:18px 18px;background-position:9px 9px}
.ai-skel-dots{background-image:radial-gradient(circle,color-mix(in srgb,var(--ct-solid,var(--text3)) 38%,var(--surface2)) 1.2px,transparent 1.7px)}
.ai-skel-glow{background-image:radial-gradient(circle,var(--ct-solid,var(--accent)) 1.8px,transparent 2.3px);-webkit-mask-image:radial-gradient(circle 95px at 50% 50%,#000,transparent);mask-image:radial-gradient(circle 95px at 50% 50%,#000,transparent);-webkit-mask-size:240% 240%;mask-size:240% 240%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;animation:aiSkelMove 3.4s ease-in-out infinite alternate}
.ai-skel-glow.g2{animation-duration:4.6s;animation-direction:alternate-reverse;opacity:.75}
@keyframes aiSkelMove{from{-webkit-mask-position:0% 100%;mask-position:0% 100%}50%{-webkit-mask-position:100% 60%;mask-position:100% 60%}to{-webkit-mask-position:60% 0%;mask-position:60% 0%}}
.ai-skel-pct{position:absolute;right:10px;bottom:10px;padding:5px 12px;border-radius:14px;background:var(--surface2);border:1px solid var(--border);font-size:14px;font-weight:700;color:var(--ct-solid,var(--text))}
.ai-gen-imgs{margin-top:8px;display:flex;flex-direction:column;gap:8px}
.ai-gen-imgs img{max-width:min(380px,100%);border-radius:16px;display:block;cursor:pointer;background:var(--surface2)}
a{-webkit-touch-callout:none}
.ai-web-status{display:inline-flex;align-items:center;gap:8px;padding:6px 2px;font-size:14px;font-weight:600;color:var(--text3)}
.ai-web-status svg{width:17px;height:17px;flex-shrink:0;color:var(--text3);animation:aiWebSpin 2.6s linear infinite}
.ai-web-status span{background:linear-gradient(90deg,var(--text3) 0%,var(--text) 50%,var(--text3) 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:aiWebShimmer 1.6s linear infinite}
#aiThinkTxt{transition:opacity .25s ease}
.ai-think svg{animation:aiThinkPulse 1.8s ease-in-out infinite}
@keyframes aiThinkPulse{0%,100%{transform:scale(.85) rotate(0);opacity:.55}50%{transform:scale(1.1) rotate(15deg);opacity:1}}
@media(prefers-reduced-motion:reduce){.ai-think svg{animation:none}}
@keyframes aiWebShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
@keyframes aiWebSpin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.ai-web-status svg,.ai-web-status span{animation:none}}
.ai-src-chip{display:inline-flex;align-items:center;gap:8px;margin:0 0 10px;padding:5px 11px 5px 6px;border-radius:18px;border:1px solid var(--border);background:var(--surface2);color:var(--text2);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.ai-src-chip>svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:.7}
.ai-src-favs{display:inline-flex}
.ai-src-favs .ai-src-fav{margin-left:-6px;border:2px solid var(--surface2)}
.ai-src-favs .ai-src-fav:first-child{margin-left:0}
.ai-src-fav{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;box-sizing:border-box;border-radius:50%;background:var(--surface);color:var(--text2);font-size:10px;font-weight:700;overflow:hidden;flex-shrink:0}
.ai-src-fav img{width:100%;height:100%;object-fit:cover;display:block}
.ai-src-ov{position:fixed;left:0;right:0;top:0;bottom:0;z-index:10050;display:flex;align-items:flex-end;justify-content:center;background:rgba(0,0,0,0);transition:background .22s}
.ai-src-ov.show{background:rgba(0,0,0,.5)}
.ai-src-sheet{width:100%;max-width:560px;max-height:72vh;display:flex;flex-direction:column;box-sizing:border-box;background:var(--surface);color:var(--text);border:1px solid var(--border);border-bottom:none;border-radius:22px 22px 0 0;padding-bottom:env(safe-area-inset-bottom,0px);transform:translateY(100%);transition:transform .28s cubic-bezier(.22,1,.36,1)}
.ai-src-ov.show .ai-src-sheet{transform:none}
.ai-src-hd{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 10px;font-size:16px;font-weight:700}
.ai-src-hd button{border:none;background:none;color:var(--text3);font-size:26px;line-height:1;cursor:pointer;padding:0 4px}
.ai-src-list{overflow-y:auto;padding:0 10px 14px}
.ai-src-row{display:flex;align-items:center;gap:12px;padding:10px;border-radius:14px;text-decoration:none;color:inherit}
.ai-src-row:active{background:var(--surface2)}
.ai-src-row .ai-src-fav{width:30px;height:30px;font-size:13px;border:1px solid var(--border)}
.ai-src-t{min-width:0;flex:1}
.ai-src-t b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:14px;font-weight:600;line-height:1.35}
.ai-src-t i{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal;font-size:12.5px;color:var(--text3)}
.ai-imode{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:6px 8px 6px 11px;border-radius:16px;background:var(--surface2);border:1px solid var(--border);font-size:12.5px;font-weight:700;color:var(--text)}
.ai-imode svg{width:15px;height:15px;flex-shrink:0}
.ai-imode button{border:none;background:none;color:var(--text3);font-size:17px;line-height:1;cursor:pointer;padding:0 3px}
.ai-msg-imgs{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.ai-msg-imgs img{max-width:min(260px,70vw);max-height:320px;border-radius:20px;display:block;cursor:pointer;object-fit:cover}
.ai-msg-imgs.multi{display:grid;grid-template-columns:1fr 1fr;width:min(280px,72vw)}
.ai-msg-imgs.multi img{width:100%;max-width:none;height:130px;border-radius:16px}
@keyframes aiMoreBob{0%,100%{transform:translateY(-1px)}50%{transform:translateY(3px)}}
/* ── поиск с блюром ── */
.search-blur{display:none;position:fixed;inset:0;z-index:190;background:rgba(0,0,0,.3);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.search-blur.show{display:block;animation:rxFade .16s ease-out}
/* ── размер шрифта / сообщений ── */
.dm-msg{font-size:calc(14px*var(--fs,1))}
.dm-msg-wrap .dm-msg{zoom:var(--ms,1)}
.dm-msg-time{font-size:calc(10px*var(--fs,1))}
.ai-msg-bubble{font-size:calc(14px*var(--fs,1))!important}
.post-body-text{font-size:calc(13.5px*var(--fs,1))}
.pm-text{font-size:calc(14.5px*var(--fs,1))}
#postViewModal .pm-text{font-size:calc(16px*var(--fs,1))}
.pm-cmt-text{font-size:calc(13.5px*var(--fs,1))}
.dm-input{font-size:calc(14px*var(--fs,1))}
.ai-inputbox textarea{font-size:calc(15px*var(--fs,1))}
.dm-item-name{font-size:calc(13px*var(--fs,1))}
.dm-item-preview{font-size:calc(11.5px*var(--fs,1))}
.code-block pre{font-size:calc(13px*var(--fs,1))}
.ts-range{width:100%;margin:10px 0 6px;accent-color:var(--accent)}
.ts-val{color:var(--text3);font-weight:700;margin-left:6px}
.ts-prev{flex:none;overflow:hidden;padding:12px;border:1px solid var(--border);border-radius:12px;margin:8px 0 14px}

/* ── Выпадающие списки в настройках: их рисует кнопка .cs-btn (см. csEnhance) - крупные плашки в стиле сайта ── */
#tab-settings button.cs-btn{
  display:flex!important;align-items:center;justify-content:space-between;gap:10px;
  flex:none;width:100%;box-sizing:border-box;height:44px!important;min-height:44px!important;
  padding:0 14px!important;margin:0;
  border:1.5px solid transparent!important;border-radius:12px!important;
  background:var(--surface)!important;color:var(--text)!important;
  font-family:'Geologica',sans-serif;font-size:14px!important;font-weight:600!important;text-align:left}
#tab-settings button.cs-btn:hover{border-color:var(--border2,var(--text3))!important}
#tab-settings button.cs-btn.open{border-color:var(--text3)!important;background:var(--surface)!important}
#tab-settings button.cs-btn .cs-chev{width:16px;height:16px;stroke:var(--text3)}
/* ПК: профиль не растягивается, баннер 3:1 остаётся компактным (как в X) */
@media(min-width:861px){
  .upage-back .upage-inner{max-width:580px;width:100%}
  #tab-settings .set-page{max-width:520px;width:100%}
  .upage-back .upage-inner>.bn-box,#tab-settings .set-head>.bn-box{width:100%;max-width:100%;max-height:190px;border-radius:14px}
}
/* ── ИСТОРИИ: тонкая обводка аватарки (цвет = текущая тема юзера, var(--accent)) ── */
.story-ring{box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--accent)!important;cursor:pointer}
.story-ring.story-seen{box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--border2)!important}

.upage-ava.story-ring{box-shadow:0 0 0 2.5px var(--accent)!important}
.upage-ava.story-ring.story-seen{box-shadow:0 0 0 2.5px var(--border2)!important}
/* лента историй */
.stories-bar{display:block;overflow:hidden;position:relative}
.stories-bar.anim .st-full{transition:height .26s cubic-bezier(.3,.8,.3,1)}
/* свёрнутый вид: маленькие кружки с аватарками и обводкой */
#tab-home .feed-card .card-head{justify-content:flex-start}
.st-mini{display:flex;align-items:center;flex-shrink:0;height:36px;margin-left:0;padding:0 6px 0 4px;min-width:0;overflow:hidden;cursor:pointer;user-select:none;-webkit-user-select:none;transition:opacity .2s}
.st-mini .sm{position:relative;width:26px;height:26px;margin-right:-5px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0;box-shadow:0 0 0 1.5px var(--bg),0 0 0 3px var(--accent)}
.st-mini .sm.seen{box-shadow:0 0 0 1.5px var(--bg),0 0 0 3px var(--border2)}
.st-mini .sm img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.st-mini .sm.more{box-shadow:none;background:var(--surface2);color:var(--text2);font-size:10px}
.st-mini-t{margin-left:14px;font-size:12px;font-weight:600;color:var(--text3);white-space:nowrap}
@media(max-width:380px){.st-mini-t{display:none}}
/* подсказка при вытягивании */
.st-hint{position:absolute;left:0;right:0;top:0;height:30px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;font-weight:600;color:var(--text3);opacity:0;pointer-events:none;transition:opacity .15s}
.st-hint svg{transition:transform .2s}
.st-hint.ready svg{transform:rotate(180deg)}
.st-hint.ready{color:var(--accent)}
.stories-bar.pulling .st-hint{opacity:1}
.stories-bar.pulling .st-full-in{opacity:.18;transition:opacity .15s}
/* раскрытый вид (по свайпу вниз): «Вы» с плюсиком + истории друзей */
.st-full{height:0;overflow:hidden;position:relative}
.st-full-in{display:flex;gap:12px;height:112px;box-sizing:border-box;overflow-x:auto;overflow-y:hidden;padding:10px 16px 18px;scrollbar-width:none}
.st-full-in::-webkit-scrollbar{display:none}
.st-grip{position:absolute;left:0;right:0;bottom:0;height:16px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.st-grip i{width:34px;height:4px;border-radius:2px;background:var(--border2)}
.st-item{flex:0 0 auto;width:62px;display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer;user-select:none;-webkit-user-select:none}
.st-ava{position:relative;width:54px;height:54px;margin:4px;border-radius:50%;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;flex-shrink:0}
.st-ava img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.st-plus{position:absolute;right:-4px;bottom:-4px;width:20px;height:20px;border-radius:50%;background:var(--accent);color:var(--accent-inv);border:2px solid var(--surface);display:flex;align-items:center;justify-content:center}
.st-name{font-size:11px;font-weight:600;color:var(--text2);max-width:62px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* просмотрщик */
.sv{position:fixed;inset:0;z-index:100000;background:rgba(0,0,0,.94);display:none;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none}
.sv.show{display:flex}
.sv-stage{position:relative;height:100dvh;aspect-ratio:9/16;max-width:100vw;background:#000;overflow:hidden;color:#fff}
@media(min-width:700px){.sv-stage{height:min(97vh,1080px);border-radius:16px}}
.sv-media{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.sv-spin{width:34px;height:34px;border-radius:50%;border:3px solid rgba(255,255,255,.22);border-top-color:#fff;animation:svspin .8s linear infinite}
@keyframes svspin{to{transform:rotate(360deg)}}
.sv.sv-loading .sv-tap,.sv.sv-loading .sv-bot{pointer-events:none}
.sv.sv-loading .sv-bars span i{width:40%;animation:svpulse 1s ease-in-out infinite alternate}
@keyframes svpulse{from{opacity:.35}to{opacity:1}}
.sv-media img,.sv-media video{width:100%;height:100%;object-fit:contain;background:#000}
.sv-text{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:90px 28px;text-align:center;font-size:26px;font-weight:700;line-height:1.3;word-break:break-word;white-space:pre-wrap}
.sv-shade{position:absolute;left:0;right:0;pointer-events:none;z-index:2}
.sv-shade.t{top:0;height:130px;background:linear-gradient(rgba(0,0,0,.55),transparent)}
.sv-shade.b{bottom:0;height:170px;background:linear-gradient(transparent,rgba(0,0,0,.6))}
.sv-bars{position:absolute;top:0;left:0;right:0;z-index:4;display:flex;gap:3px;padding:calc(10px + env(safe-area-inset-top)) 10px 0}
.sv-bars span{flex:1;height:2.5px;border-radius:2px;background:rgba(255,255,255,.32);overflow:hidden}
.sv-bars i{display:block;height:100%;width:0;background:#fff}
.sv-head{position:absolute;top:calc(22px + env(safe-area-inset-top));left:0;right:0;z-index:4;display:flex;align-items:center;gap:10px;padding:0 10px 0 12px}
.sv-ava{width:36px;height:36px;border-radius:50%;overflow:hidden;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex-shrink:0;cursor:pointer}
.sv-ava img{width:100%;height:100%;object-fit:cover}
.sv-who{flex:1;min-width:0;cursor:pointer}
.sv-who b{display:block;font-size:14px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sv-who span{font-size:12px;opacity:.75}
.sv-btn{width:36px;height:36px;border:none;border-radius:50%;background:rgba(0,0,0,.3);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}
.sv-tap{position:absolute;left:0;right:0;top:80px;bottom:120px;z-index:3;touch-action:none}
.sv-bot{position:absolute;left:0;right:0;bottom:0;z-index:4;padding:0 16px calc(18px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:12px}
.sv-cap{font-size:15px;line-height:1.35;text-align:center;text-shadow:0 1px 6px rgba(0,0,0,.6);word-break:break-word;max-height:30dvh;overflow:auto}
.sv-views{display:none;align-items:center;gap:7px;border:none;background:rgba(0,0,0,.35);color:#fff;border-radius:20px;padding:7px 14px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer}
.sv-sheet{position:absolute;left:0;right:0;bottom:0;z-index:6;max-height:62%;background:var(--surface);color:var(--text);border-radius:18px 18px 0 0;transform:translateY(105%);transition:transform .25s ease;display:flex;flex-direction:column}
.sv-sheet.show{transform:none}
.sv-sheet-h{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;font-weight:800;font-size:15px;}
.sv-sheet-h button{border:none;background:none;color:var(--text2);cursor:pointer;display:flex}
.sv-sheet-l{overflow:auto;padding:6px 0 calc(10px + env(safe-area-inset-bottom))}
.sv-vw{display:flex;align-items:center;gap:11px;padding:9px 16px;cursor:pointer}
.sv-vw .a{width:36px;height:36px;border-radius:50%;overflow:hidden;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex-shrink:0}
.sv-vw .a img{width:100%;height:100%;object-fit:cover}
.sv-vw .n{display:flex;flex-direction:column;min-width:0;flex:1}
.sv-vw b{font-size:14px;font-weight:700}
.sv-vw .t{font-size:11.5px;font-weight:500;color:var(--text3);margin-top:1px}
.sv-empty{padding:26px 16px;text-align:center;color:var(--text3);font-size:13px}
.sv-act{width:100%;display:flex;align-items:center;gap:10px}
.sv-views{margin:0 auto}
.sv-aud{display:none;align-items:center;gap:5px;height:32px;padding:0 9px 0 7px;border:none;border-radius:16px;background:rgba(0,0,0,.3);color:#fff;cursor:pointer;flex-shrink:0;font-family:inherit}
.sv-aud svg{width:16px;height:16px}
.sv-aud .cv{width:12px;height:12px}
/* ── Создание истории: полноэкранный редактор в стиле Telegram ── */
.sc-back{position:fixed;inset:0;z-index:99990;background:var(--bg);display:none;justify-content:center}
.sc-back.show{display:flex;animation:none!important}
#secretChatPanel,#secretChatPanel *{transition:none!important}
@keyframes scIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.sc-box{width:100%;max-width:520px;height:100%;display:flex;flex-direction:column;color:var(--text);padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:none}
.sc-box::-webkit-scrollbar{display:none}
.sc-box>*{flex-shrink:0}
.sc-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px 6px;font-size:16px;font-weight:800}
.sc-head button{width:38px;height:38px;border:none;border-radius:50%;background:var(--surface2);color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sc-head button svg{width:18px;height:18px}
.sc-head .sc-sp{width:38px;flex-shrink:0}
.sc-tabs{flex:none;display:flex;justify-content:center;gap:4px;margin:2px auto 8px;padding:3px;background:var(--surface2);border-radius:22px}
.sc-tabs button{height:32px;padding:0 18px;border-radius:18px;border:none;background:transparent;color:var(--text2);font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;transition:background .15s,color .15s}
.sc-tabs button.on{background:var(--accent);color:var(--accent-inv)}
.sc-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:0 14px}
.sc-prev{position:relative;height:100%;max-width:100%;aspect-ratio:9/16;border-radius:22px;overflow:hidden;background:var(--surface2);display:flex;align-items:center;justify-content:center;color:var(--text3);font-size:13px;font-weight:600;text-align:center;cursor:pointer}
.sc-prev img,.sc-prev video{width:100%;height:100%;object-fit:contain;background:#000}
.sc-prev.has{background:#000}
.sc-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:0 20px}
.sc-empty .ic{width:60px;height:60px;border-radius:50%;background:var(--accent);color:var(--accent-inv);display:flex;align-items:center;justify-content:center;margin-bottom:6px}
.sc-empty .ic svg{width:26px;height:26px}
.sc-empty b{font-size:15px;font-weight:800;color:var(--text)}
.sc-empty small{font-size:12px;color:var(--text3);font-weight:600}
.sc-rep{position:absolute;top:12px;right:12px;height:30px;padding:0 12px;border-radius:15px;background:rgba(0,0,0,.55);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.sc-prev.txt{cursor:default;color:#fff;padding:0}
.sc-prev textarea{width:100%;height:100%;border:none;outline:none;resize:none;background:transparent;color:#fff;text-align:center;font-size:24px;font-weight:700;line-height:1.3;font-family:inherit;padding:24px;box-sizing:border-box}
.sc-prev textarea::placeholder{color:rgba(255,255,255,.6)}
.sc-bgs{flex:none;display:flex;justify-content:center;gap:10px;margin:10px 14px 0;overflow-x:auto;padding:3px;scrollbar-width:none}
.sc-bgs::-webkit-scrollbar{display:none}
.sc-bgs i{flex:0 0 auto;width:34px;height:34px;border-radius:50%;cursor:pointer;border:2px solid var(--bg);box-shadow:0 0 0 1px var(--border2)}
.sc-bgs i.on{box-shadow:0 0 0 2.5px var(--accent)}
.sc-bar{flex:none;padding:10px 14px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;align-items:center}
.sc-aud{grid-column:1/-1;display:flex;align-items:center;gap:10px;width:100%;padding:6px 12px 6px 6px;border:none;border-radius:26px;background:var(--surface2);color:var(--text);cursor:pointer;font-family:inherit;text-align:left}
.sc-aud .ic{width:32px;height:32px;border-radius:50%;background:var(--surface);color:var(--text);box-sizing:border-box;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sc-aud .ic svg{width:17px;height:17px}
.sc-aud .tx{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}
.sc-aud small{font-size:11px;color:var(--text3)}
.sc-aud b{font-size:13.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-aud .cv{width:14px;height:14px;color:var(--text3)}
.sc-row{display:contents}
.sc-cap{grid-column:1;min-width:0;height:48px;border-radius:24px;border:none;background:var(--surface2);color:var(--text);padding:0 18px;font-size:14px;font-family:inherit;outline:none}
.sc-cap::placeholder{color:var(--text3)}
.sc-go{grid-column:2;width:48px;height:48px;border:none;border-radius:50%;background:var(--accent);color:var(--accent-inv);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .12s,opacity .15s}
.sc-go svg{width:21px;height:21px}
.sc-go:active{transform:scale(.92)}
.sc-go:disabled{opacity:.55;cursor:default}
.sc-box.sc-txt .sc-aud{grid-column:1;grid-row:1}
.sc-box.sc-txt .sc-go{grid-column:2;grid-row:1}
.sc-go.busy svg{display:none}
.sc-go.busy::after{content:'';width:20px;height:20px;border-radius:50%;border:2.5px solid currentColor;border-top-color:transparent;animation:spin .7s linear infinite}
.sc-note{grid-column:1/-1;text-align:center;font-size:11.5px;color:var(--text3)}
.stg-tile .au{position:absolute;top:6px;right:6px;padding:2px 7px;border-radius:9px;background:rgba(0,0,0,.5);color:#fff;font-size:10px;font-weight:700}
/* окно «Изменить настройки доступа» */
.sa-ov{position:fixed;inset:0;z-index:100003;background:rgba(0,0,0,.55);display:flex;align-items:flex-end;justify-content:center;opacity:0;transition:opacity .2s}
.sa-ov.up-ov{z-index:100004}
.sa-ov.on{opacity:1}
.sa-sheet{width:100%;max-width:480px;max-height:92vh;overflow-y:auto;background:var(--surface);color:var(--text);border-radius:22px 22px 0 0;padding:20px 0 calc(16px + env(safe-area-inset-bottom,0px));transform:translateY(100%);transition:transform .25s ease}
.sa-ov.on .sa-sheet{transform:none}
.sa-t{font-size:20px;font-weight:800;padding:0 20px}
.sa-s{font-size:13.5px;color:var(--text3);padding:4px 20px 12px}
.sa-row{display:flex;align-items:center;gap:14px;padding:8px 20px 0 20px;cursor:pointer}
.sa-radio{width:22px;height:22px;border-radius:50%;border:2px solid var(--border2);flex-shrink:0;position:relative;box-sizing:border-box}
.sa-row.on .sa-radio{border-color:var(--accent)}
.sa-row.on .sa-radio::after{content:'';position:absolute;inset:3px;border-radius:50%;background:var(--accent)}
.sa-ic{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface2);color:var(--text);flex-shrink:0;margin-bottom:8px;transition:background .15s,color .15s}
.sa-row.on .sa-ic{background:var(--accent);color:var(--accent-inv)}
.sa-ic svg{width:22px;height:22px}
.sa-info{flex:1;min-width:0;border-bottom:1px solid var(--border);padding:2px 0 10px;margin-top:0}
.sa-row:last-of-type .sa-info{border-bottom:none}
.sa-name{font-size:16px;font-weight:700}
.sa-link{display:inline-flex;align-items:center;gap:3px;margin-top:1px;padding:0;border:none;background:none;color:var(--accent);font-family:inherit;font-size:13.5px;font-weight:600;cursor:pointer}
.sa-link svg{width:12px;height:12px}
.sa-note{font-size:12.5px;color:var(--text3);padding:8px 20px 12px}
.sa-save{display:block;width:calc(100% - 32px);margin:0 16px;height:48px;border:none;border-radius:24px;background:var(--accent);color:var(--accent-inv);font-weight:700;font-size:15px;font-family:inherit;cursor:pointer}
.up-sheet{display:flex;flex-direction:column;height:86vh;padding-top:8px}
.up-h{display:flex;align-items:center;justify-content:space-between;padding:12px 20px 8px;font-weight:800;font-size:18px}
.up-cnt{font-size:13px;font-weight:600;color:var(--text3)}
.up-search{margin:0 16px 8px;height:40px;border-radius:12px;border:1px solid var(--border);background:var(--surface2);color:var(--text);padding:0 12px;font-family:inherit;font-size:14px;outline:none}
.up-list{flex:1;overflow-y:auto;margin-bottom:10px}
.up-row{display:flex;align-items:center;gap:12px;padding:8px 20px;cursor:pointer}
.up-a{width:40px;height:40px;border-radius:50%;overflow:hidden;background:var(--ava-bg);color:var(--ava-fg);display:flex;align-items:center;justify-content:center;font-weight:800;flex-shrink:0}
.up-a img{width:100%;height:100%;object-fit:cover}
.up-n{flex:1;min-width:0;font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.up-ck{width:22px;height:22px;border-radius:7px;border:2px solid var(--border2);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-sizing:border-box;color:var(--accent-inv)}
.up-ck svg{width:13px;height:13px;opacity:0}
.up-row.on .up-ck{background:var(--accent);border-color:var(--accent)}
.up-row.on .up-ck svg{opacity:1}
.up-empty{padding:30px 20px;text-align:center;color:var(--text3);font-size:14px}
.sv-rinp{display:none;flex:1;min-width:0;height:46px;border-radius:23px;border:none;background:rgba(0,0,0,.4);color:#fff;padding:0 18px;font-family:inherit;font-size:15px;outline:none;box-shadow:none;-webkit-appearance:none;appearance:none}
.sv-rinp::placeholder{color:rgba(255,255,255,.78)}
.sv-rinp:focus{background:rgba(0,0,0,.55);outline:none;box-shadow:none}
.sv-send{display:none;width:46px;height:46px;border:none;border-radius:50%;background:var(--accent);color:var(--accent-inv);align-items:center;justify-content:center;cursor:pointer;padding:0;flex-shrink:0}
.sv-act.has .sv-send{display:flex}
.sv-act.has .sv-like{display:none}
.sv-like{flex-shrink:0;margin-left:auto}
.sv-bot{transition:transform .12s}
/* карточка «ответ на историю» в чате */
.dm-story-quote{display:flex;align-items:center;gap:9px;padding:5px 10px 5px 5px;margin-bottom:6px;border-radius:9px;background:rgba(0,0,0,.05);cursor:pointer;max-width:100%}
.dm-msg-wrap.mine .dm-story-quote{background:rgba(255,255,255,.16)}
.dm-sq-th{width:34px;height:46px;border-radius:7px;overflow:hidden;flex-shrink:0;background:var(--surface2)}
.dm-sq-th img,.dm-sq-th video{width:100%;height:100%;object-fit:cover;display:block}
.dm-sq-th .t{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:3px;text-align:center;font-size:6px;font-weight:700;line-height:1.1;overflow:hidden;word-break:break-all}
.dm-sq-tx{display:flex;flex-direction:column;gap:1px;min-width:0}
.dm-sq-name{font-size:11.5px;font-weight:800;opacity:.85}
.dm-sq-sub{font-size:12.5px;font-weight:500;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
.sv-views .vl{display:inline-flex;align-items:center;gap:4px;margin-left:6px;padding-left:9px;border-left:1px solid rgba(255,255,255,.3)}
.sv-like{display:none;width:46px;height:46px;border:none;border-radius:50%;background:rgba(0,0,0,.35);color:#fff;align-items:center;justify-content:center;cursor:pointer;padding:0}
.sv-like.show{display:flex}
.sv-like.on svg{fill:#ff3b5c;stroke:#ff3b5c}
.sv-like.pop svg{animation:svpop .35s ease}
@keyframes svpop{0%{transform:scale(1)}40%{transform:scale(1.38)}100%{transform:scale(1)}}
.sv-vw .h{margin-left:auto;display:flex;color:#ff3b5c}
.sv-vw .h svg{fill:#ff3b5c}
/* создание */
/* фоны историй = фоны чата: основа чёрная/белая по теме сайта, узор - цвет темы пользователя */
.sbg{background-color:var(--bg);color:var(--text)}
.stg-tile .t.sbg,.sc-prev.txt.sbg,.sc-prev.txt.sbg textarea{color:var(--text)}
.sc-prev.txt.sbg textarea::placeholder{color:var(--text3)}
.sbg-8{background-image:linear-gradient(var(--cb-c) 1px,transparent 1px),linear-gradient(90deg,var(--cb-c) 1px,transparent 1px);background-size:32px 32px}
.sbg-9{background-image:radial-gradient(circle,var(--cb-c) 1.6px,transparent 2px);background-size:22px 22px}
.sbg-10{background-image:repeating-linear-gradient(45deg,var(--cb-c) 0 1px,transparent 1px 24px),repeating-linear-gradient(-45deg,var(--cb-c) 0 1px,transparent 1px 24px)}
.sbg-11{background-image:radial-gradient(circle at 50% 100%,transparent 9px,var(--cb-c) 9px 10px,transparent 10px),radial-gradient(circle at 50% 0,var(--cb-c) 9px 10px,transparent 10px);background-size:40px 20px;background-position:0 0,20px 10px}
.sbg-12{background-image:radial-gradient(circle at 18% 22%,var(--sbg-glow) 0,transparent 48%),radial-gradient(circle at 82% 78%,var(--sbg-glow) 0,transparent 52%),radial-gradient(circle at 80% 15%,var(--cb-c) 0,transparent 42%)}
.sbg-13{background-image:radial-gradient(circle at 10% 20%,var(--cb-c) 2px,transparent 2.5px),radial-gradient(circle at 62% 8%,var(--cb-c) 1.6px,transparent 2px),radial-gradient(circle at 86% 52%,var(--cb-c) 2.4px,transparent 2.9px),radial-gradient(circle at 34% 74%,var(--cb-c) 1.8px,transparent 2.3px),radial-gradient(circle at 70% 90%,var(--cb-c2) 3px,transparent 3.5px);background-size:96px 96px}
:root{--sbg-glow:color-mix(in srgb,var(--ct-solid,var(--text)) 30%,transparent)}
/* вкладка «Истории» в профиле */
.stg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:12px 14px}
.stg-tile{position:relative;aspect-ratio:9/16;border-radius:12px;overflow:hidden;background:var(--surface2);border:1px solid var(--border);cursor:pointer}
.stg-tile img,.stg-tile video{width:100%;height:100%;object-fit:cover}
.stg-tile .t{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:10px;text-align:center;color:#fff;font-weight:700;font-size:13px;line-height:1.25;word-break:break-word;overflow:hidden}
.stg-tile .m{position:absolute;left:0;right:0;bottom:0;padding:18px 7px 6px;font-size:10.5px;font-weight:700;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.6))}
.stg-tile .n{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.45);color:#fff;display:flex;align-items:center;justify-content:center}
.stg-tile.seen{opacity:.72}
.stg-tile.exp{opacity:.82}
.stg-tile.exp img,.stg-tile.exp video{filter:grayscale(.5)}
.stg-tile .x{position:absolute;top:6px;left:6px;padding:2px 7px;border-radius:9px;background:rgba(0,0,0,.5);color:#fff;font-size:10px;font-weight:700}
.stg-tile .m svg{vertical-align:-1px}
.stg-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text2);font-size:12px;font-weight:700;border-style:dashed;border-color:var(--border2)}
.stg-add span{width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--accent-inv);display:flex;align-items:center;justify-content:center}
/* ── КОТИРОВКИ: $AAPL в тексте, виджет под постом, окно с графиком ── */
.mkt-chip{display:inline-flex;align-items:baseline;gap:5px;font-weight:700;color:var(--text);background:var(--surface2);border:1px solid var(--border);border-radius:7px;padding:0 6px;line-height:1.5;cursor:default;white-space:nowrap;vertical-align:baseline;transition:background .15s,border-color .15s}
.mkt-chip:not(.ok){background:none;border-color:transparent;padding:0;font-weight:inherit;color:inherit}   /* пока котировка не пришла (или источник молчит) - выглядит как обычный текст */
.mkt-chip.ok{cursor:pointer}
.mkt-chip.ok:hover,.mkt-chip.ok:focus-visible{background:var(--bg);border-color:var(--border2);outline:none}
.mkt-chip i{font-style:normal;font-size:.82em;font-weight:700;font-variant-numeric:tabular-nums}
.mkt-chip.up i,.mkt-up{color:var(--green)}
.mkt-chip.dn i,.mkt-dn{color:var(--red)}

.mkt-ws{display:flex;flex-direction:column;gap:8px;margin:10px 0 2px;max-width:440px}
.mkt-ws:empty{display:none}
.mkt-w{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:14px;cursor:pointer;color:var(--text);text-align:left;font-family:'Geologica',sans-serif;box-sizing:border-box;width:100%;-webkit-user-select:none;user-select:none;transition:border-color .15s,transform .12s,box-shadow .15s;animation:mktIn .28s ease both}
.mkt-w:hover,.mkt-w:focus-visible{border-color:var(--border2);box-shadow:var(--shadow);outline:none}
.mkt-w:active{transform:scale(.99)}
@keyframes mktFade{to{opacity:1}}
@keyframes mktIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.mkt-w-l{flex:1 1 auto;min-width:0}
.mkt-w-sym{display:flex;align-items:center;gap:6px;font-size:13.5px;font-weight:800;letter-spacing:.2px}
.mkt-w-name{font-size:11.5px;color:var(--text3);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.mkt-w-spark{flex:0 0 auto;width:92px;height:34px;display:block}
.mkt-w-r{flex:0 0 auto;text-align:right;min-width:78px}
.mkt-w-price{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.mkt-w-pct{display:inline-block;margin-top:2px;font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums;border-radius:6px;padding:1px 6px;background:rgba(127,127,127,.12)}
.mkt-w-pct.mkt-up{background:rgba(22,163,74,.13)}
.mkt-w-pct.mkt-dn{background:rgba(220,38,38,.12)}
.mkt-dot{width:7px;height:7px;border-radius:50%;background:var(--text3);flex:0 0 auto}
.mkt-dot.open,.mkt-dot.h24{background:var(--green);box-shadow:0 0 0 3px rgba(22,163,74,.18)}
.mkt-dot.pre,.mkt-dot.post{background:#f5a623}
/* ЛОГОТИПЫ ТИКЕРОВ: кружок с буквой (запасной вариант), поверх грузится логотип компании */
.mkt-lg{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:50%;overflow:hidden;color:#fff;font-weight:800;line-height:1;box-sizing:border-box;border:1px solid var(--border);-webkit-user-select:none;user-select:none;vertical-align:middle;font-family:'Geologica',sans-serif}
.mkt-lg b{font-weight:800}
.mkt-lg img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:contain;display:block;opacity:0;transition:opacity .15s;border-radius:50%;box-sizing:border-box;pointer-events:none}
.mkt-lg.has{background:#fff!important}
.mkt-lg.has img{opacity:1}
.mkt-lg.has b{visibility:hidden}
.mkt-lg.md{width:36px;height:36px;font-size:15px}
.mkt-lg.md img{padding:3px}
.mkt-lg.lg{width:40px;height:40px;font-size:17px;margin-top:1px}
.mkt-lg.lg img{padding:3px}
/* СТАТЬИ: поле заголовка в композере, карточка в ленте, ридер на весь экран */
.compose-title{width:100%;box-sizing:border-box;padding:8px 0;border:none;border-bottom:1px solid var(--border);background:transparent;color:var(--text);font:800 18px 'Geologica',sans-serif;letter-spacing:-.2px;outline:none;margin-bottom:2px}
.compose-title::placeholder{color:var(--text3);font-weight:700}
.compose-img-btn.on{color:var(--accent);background:var(--surface2)}
.art-card{display:block;margin:8px 0 2px;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--surface);cursor:pointer;transition:border-color .15s,transform .12s;text-align:left}
.art-card:hover{border-color:var(--border2)}
.art-card:active{transform:scale(.995)}
.art-cover{aspect-ratio:16/9;background:var(--surface2);overflow:hidden}
.art-cover img{width:100%;height:100%;object-fit:cover;display:block}
.art-body{padding:12px 14px 13px}
.art-tag{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--text3)}
.art-tag svg,.art-go svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.art-t{font-size:17px;font-weight:800;line-height:1.3;letter-spacing:-.2px;margin-top:6px;color:var(--text);overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.art-x{font-size:13.5px;line-height:1.5;color:var(--text2);margin-top:6px;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.art-go{display:inline-flex;align-items:center;gap:6px;margin-top:10px;font-size:13px;font-weight:700;color:var(--accent)}
.ar-ov{position:fixed;inset:0;z-index:450;background:var(--bg);display:flex;flex-direction:column;opacity:0;transform:translateY(22px);transition:transform .22s cubic-bezier(.22,1,.36,1),opacity .18s}
.ar-ov.show{opacity:1;transform:none}
.ar-prog{position:absolute;left:0;right:0;top:0;height:3px;z-index:3;pointer-events:none}
.ar-prog i{display:block;height:100%;width:0;background:var(--accent);transition:width .08s linear}
.ar-bar{flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:calc(8px + env(safe-area-inset-top,0px)) 10px 8px;background:var(--bg)}
.ar-x{flex:0 0 auto;width:38px;height:38px;border:none;background:none;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text);cursor:pointer}
.ar-x:hover,.ar-x.on{background:var(--surface2)}
.ar-sum-ov{z-index:5}
.ar-sum-t{font:400 17px/1.7 'Geologica',sans-serif;color:var(--text)}
.ar-x svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ar-bt{flex:1;min-width:0;font-size:14px;font-weight:700;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ar-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.ar-doc{max-width:680px;margin:0 auto;padding:20px 20px calc(48px + env(safe-area-inset-bottom,0px));color:var(--text)}
.ar-doc .pcar-wrap{margin:0 -20px 6px}
@media(min-width:720px){.ar-doc .pcar-wrap{margin:0 0 6px}.ar-doc .pcar{border-radius:14px}}
.ar-h1{font:800 32px/1.2 'Geologica',sans-serif;letter-spacing:-.6px;margin:14px 0 10px;overflow-wrap:anywhere;color:var(--text)}
.ar-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;font-weight:600;color:var(--text3);margin-bottom:26px}
.ar-meta a{color:var(--text);font-weight:700;text-decoration:none;cursor:pointer}
.ar-text{font:400 18.5px/1.72 Georgia,'Times New Roman',serif;color:var(--text);overflow-wrap:anywhere;white-space:normal;-webkit-user-select:text;user-select:text}
.ar-text .ai-md-h1,.ar-text .ai-md-h2{font:800 25px/1.25 'Geologica',sans-serif;letter-spacing:-.4px;margin:32px 0 10px}
.ar-text .ai-md-h3,.ar-text .ai-md-h4{font:700 20px/1.3 'Geologica',sans-serif;margin:26px 0 8px}
.ar-text .ai-md-quote{border-left:3px solid var(--text);padding:2px 0 2px 16px;margin:18px 0;font-style:italic;opacity:.85}
.ar-text a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.ar-text img{max-width:100%;border-radius:10px}
.ar-end{margin-top:30px;padding-top:0}
.ar-text .ai-md-hr{display:none}
.ar-end .post-footer{padding-left:0;padding-right:0}
.pm-art-card .art-card{margin:6px 0 12px}
@media(max-width:520px){.ar-h1{font-size:27px}.ar-text{font-size:17.5px}}
@media(prefers-reduced-motion:reduce){.ar-ov{transition:none}}
@media(max-width:420px){.mkt-w-spark{width:70px}.mkt-w-r{min-width:70px}}

/* всплывашка компактнее: без блока статистики */
.mkt-pop .mkt-st{display:none}
.mkt-pop .mkt-plot{height:200px}
.mkt-pop .mkt-ft{margin-top:8px}
/* окно с графиком: на ПК - всплывашка по наведению и центральная модалка по клику; на телефоне - нижняя «шторка» */
.mkt-pop{position:fixed;z-index:100090;width:420px;max-width:calc(100vw - 16px);background:var(--surface);border:1px solid var(--border2);border-radius:18px;box-shadow:0 18px 50px rgba(0,0,0,.22),0 2px 8px rgba(0,0,0,.08);opacity:0;transform:translateY(6px) scale(.985);pointer-events:none;transition:opacity .16s,transform .16s}
.mkt-pop.show{opacity:1;transform:none;pointer-events:auto}
.mkt-modal{position:fixed;inset:0;z-index:100085;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;transition:opacity .18s}
.mkt-modal.show{opacity:1}
.mkt-sheet{position:relative;width:560px;max-width:100%;max-height:calc(100vh - 32px);overflow:auto;background:var(--surface);border:1px solid var(--border2);border-radius:22px;box-shadow:0 24px 70px rgba(0,0,0,.3);transform:translateY(14px) scale(.98);transition:transform .2s cubic-bezier(.2,.8,.2,1)}
.mkt-modal.show .mkt-sheet{transform:none}
.mkt-grab{display:none}
.mkt-x{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:var(--surface2);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;z-index:2;transition:background .15s,color .15s}
.mkt-x:hover{background:var(--border);color:var(--text)}
.mkt-x svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round}
@media(max-width:640px){
  .mkt-modal{align-items:stretch;padding:0}
  .mkt-modal .mkt-plot{height:min(46vh,400px)}
  .mkt-modal .mkt-hd{padding-right:44px}
  .mkt-modal .mkt-card{padding:18px 16px 26px}
  .mkt-x{position:fixed;top:calc(12px + env(safe-area-inset-top,0px));right:14px}
  .mkt-modal{background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}
  .mkt-sheet{width:100%;height:100%;max-height:none;border:0;border-radius:0;box-shadow:none;background:var(--surface);transform:none;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);transition:none}
  .mkt-modal.show .mkt-sheet{transform:none}
  .mkt-modal .mkt-st,.mkt-modal .mkt-about{border-top:0}
  .mkt-modal .mkt-rng,.mkt-modal .mkt-typ,.mkt-modal .mkt-x{border:0}
  .mkt-grab{display:none}
}

.mkt-card{padding:16px 16px 14px;font-family:'Geologica',sans-serif;color:var(--text);-webkit-user-select:none;user-select:none}
.mkt-hd{display:flex;align-items:flex-start;gap:10px;padding-right:38px}
.mkt-hd-l{min-width:0;flex:1}
.mkt-sym{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:800;letter-spacing:.2px}
.mkt-badge{font-size:10.5px;font-weight:700;color:var(--text2);background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:1px 6px;letter-spacing:.2px}
.mkt-nm{font-size:12.5px;color:var(--text3);font-weight:500;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mkt-px{margin-top:10px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.mkt-px-v{font-size:28px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.5px;line-height:1.1}
.mkt-px-c{font-size:13.5px;font-weight:700;font-variant-numeric:tabular-nums}
.mkt-px-t{font-size:11.5px;color:var(--text3);font-weight:500;width:100%;min-height:15px}
.mkt-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 0 6px}
.mkt-rng{display:flex;gap:2px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:2px}
.mkt-rng button,.mkt-typ button{border:0;background:none;color:var(--text2);font:700 12px 'Geologica',sans-serif;padding:5px 9px;border-radius:8px;cursor:pointer;transition:background .15s,color .15s}
.mkt-rng button:hover,.mkt-typ button:hover{color:var(--text)}
.mkt-rng button.on,.mkt-typ button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.mkt-typ{display:flex;gap:2px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:2px}
.mkt-typ button{padding:5px 7px;display:flex}
.mkt-typ svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mkt-plot{position:relative;height:230px;touch-action:pan-y;-webkit-tap-highlight-color:transparent}
.mkt-plot svg{display:block;width:100%;height:100%;overflow:visible}
.mkt-plot text{font:500 10.5px 'Geologica',sans-serif;fill:var(--text3)}
.mkt-tip{position:absolute;top:4px;z-index:3;pointer-events:none;background:var(--surface);border:1px solid var(--border2);border-radius:10px;padding:6px 9px;font-size:11.5px;line-height:1.45;box-shadow:0 6px 20px rgba(0,0,0,.14);white-space:nowrap;opacity:0;transition:opacity .1s;font-variant-numeric:tabular-nums}
.mkt-tip b{font-weight:700}
.mkt-tip span{color:var(--text3)}
.mkt-draw{stroke-dasharray:1;stroke-dashoffset:1;animation:mktDraw .7s ease forwards}
@keyframes mktDraw{to{stroke-dashoffset:0}}
.mkt-st{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 14px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.mkt-st div{min-width:0}
.mkt-st small{display:block;font-size:10.5px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.3px}
.mkt-st b{display:block;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mkt-chip.ld{color:inherit;font-weight:inherit}
.mkt-chip.ld i{color:var(--text3);font-weight:600;margin-left:5px;font-size:.8em}
.mkt-about{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.mkt-about h4{margin:0 0 6px;font-size:13px;font-weight:800;color:var(--text)}
.mkt-about p{margin:0;font-size:13.5px;line-height:1.55;color:var(--text2);font-weight:500;-webkit-user-select:text;user-select:text}
.mkt-ft{margin-top:12px;font-size:10.5px;line-height:1.5;color:var(--text3);font-weight:500}
.mkt-ft .mkt-stale{color:#f5a623;font-weight:700}
.mkt-msg{height:230px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--text3);font-size:13px;font-weight:600;text-align:center;padding:0 20px}
.mkt-msg button{border:1px solid var(--border2);background:var(--surface2);color:var(--text);font:700 12.5px 'Geologica',sans-serif;border-radius:9px;padding:7px 14px;cursor:pointer}
.mkt-msg button:hover{background:var(--border)}
.mkt-sk{background:linear-gradient(90deg,var(--surface2) 25%,var(--border) 37%,var(--surface2) 63%);background-size:400% 100%;animation:mktSk 1.3s ease infinite;border-radius:12px}
@keyframes mktSk{0%{background-position:100% 50%}100%{background-position:0 50%}}
@media(max-width:420px){.mkt-st{grid-template-columns:repeat(2,1fr)}.mkt-px-v{font-size:25px}.mkt-plot{height:210px}}
@media(prefers-reduced-motion:reduce){.mkt-w,.mkt-draw,.mkt-sk,.mkt-pop,.mkt-modal,.mkt-sheet{animation:none!important;transition:none!important}.mkt-draw{stroke-dashoffset:0}}
