/* Tweek static stylesheet — extracted from inline <style> blocks (Phase 2 asset optimization) */

    /* جلوگیری از انتخاب متن با موس (کپی از طریق کیبورد/افزونه همچنان ممکنه) */
    html, body { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
    input, textarea, [contenteditable="true"] { -webkit-user-select: text; -moz-user-select: text; -ms-user-select: text; user-select: text; }
    img { -webkit-user-drag: none; }

[data-theme="neon"]{--bg:#0a0a0a;--bg2:#111;--bg3:#1a1a1a;--border:#00ff4133;--border2:#00ff4155;--text:#e0ffe0;--text2:#66cc66;--text3:#446644;--accent:#00ff41;--accent-bg:rgba(0,255,65,.1);--red:#ff4444;--red-bg:rgba(255,68,68,.1);--green:#00ff41;--green-bg:rgba(0,255,65,.1);--nav-bg:rgba(10,10,10,.9);--modal-bg:rgba(0,0,0,.8);--shadow:0 0 20px rgba(0,255,65,.2);--hover:rgba(0,255,65,.05);--input-bg:#111;}
[data-theme="sepia"]{--bg:#f4ede3;--bg2:#ede3d6;--bg3:#e3d9cc;--border:#d4c4b0;--border2:#c4b09c;--text:#3d2b1a;--text2:#7a5c3e;--text3:#a07850;--accent:#c07830;--accent-bg:rgba(192,120,48,.1);--red:#c04030;--red-bg:rgba(192,64,48,.1);--green:#507830;--green-bg:rgba(80,120,48,.1);--nav-bg:rgba(244,237,227,.9);--modal-bg:rgba(61,43,26,.4);--shadow:0 2px 12px rgba(61,43,26,.1);--hover:rgba(61,43,26,.03);--input-bg:#ede3d6;}
[data-theme="crimson"]{--bg:#2b0a10;--bg2:#0e0507;--bg3:#170a0d;--border:#3d151c;--border2:#4d1c24;--text:#f5e7e9;--text2:#b98a90;--text3:#7a565b;--accent:#8b1622;--accent-bg:rgba(139,22,34,.18);--red:#ff3b4a;--red-bg:rgba(255,59,74,.12);--green:#00ba7c;--green-bg:rgba(0,186,124,.1);--nav-bg:rgba(14,5,7,.9);--modal-bg:rgba(0,0,0,.65);--shadow:0 2px 12px rgba(0,0,0,.55);--hover:rgba(255,255,255,.04);--input-bg:#0e0507;}
<?php /* ==================== ۵ تم جدید پریمیوم ==================== */ ?>
[data-theme="emerald"]{--bg:#04140f;--bg2:#071e17;--bg3:#0c2920;--border:#123a2c;--border2:#1a4d3a;--text:#e9f5ee;--text2:#8fb7a4;--text3:#5d8571;--accent:#d4af37;--accent-bg:rgba(212,175,55,.14);--red:#ff5a5f;--red-bg:rgba(255,90,95,.12);--green:#2ecc8f;--green-bg:rgba(46,204,143,.12);--nav-bg:rgba(4,20,15,.9);--modal-bg:rgba(0,0,0,.6);--shadow:0 2px 16px rgba(0,0,0,.5);--hover:rgba(212,175,55,.05);--input-bg:#0c2920;}
[data-theme="royal"]{--bg:#120a2e;--bg2:#180f3a;--bg3:#221650;--border:#33206b;--border2:#432b85;--text:#f1ecff;--text2:#a996d9;--text3:#7460a8;--accent:#ffc94d;--accent-bg:rgba(255,201,77,.14);--red:#ff5d73;--red-bg:rgba(255,93,115,.12);--green:#3ddc97;--green-bg:rgba(61,220,151,.12);--nav-bg:rgba(18,10,46,.9);--modal-bg:rgba(0,0,0,.62);--shadow:0 2px 16px rgba(0,0,0,.5);--hover:rgba(255,201,77,.05);--input-bg:#221650;}
[data-theme="rosegold"]{--bg:#fbf1ee;--bg2:#f6e5df;--bg3:#f0d8ce;--border:#e3c1b3;--border2:#d1a692;--text:#4a2e28;--text2:#8a6257;--text3:#a9847a;--accent:#b76e79;--accent-bg:rgba(183,110,121,.14);--red:#c94f5c;--red-bg:rgba(201,79,92,.1);--green:#5c8a5a;--green-bg:rgba(92,138,90,.1);--nav-bg:rgba(251,241,238,.9);--modal-bg:rgba(74,46,40,.4);--shadow:0 2px 12px rgba(74,46,40,.12);--hover:rgba(74,46,40,.04);--input-bg:#f6e5df;}
[data-theme="obsidian"]{--bg:#000000;--bg2:#0a0a0c;--bg3:#141416;--border:#232326;--border2:#333338;--text:#f2f2f4;--text2:#9a9aa2;--text3:#67676e;--accent:#c9c9d4;--accent-bg:rgba(201,201,212,.1);--red:#ff4d5e;--red-bg:rgba(255,77,94,.12);--green:#3ecf8e;--green-bg:rgba(62,207,142,.12);--nav-bg:rgba(0,0,0,.92);--modal-bg:rgba(0,0,0,.75);--shadow:0 2px 20px rgba(0,0,0,.7);--hover:rgba(255,255,255,.04);--input-bg:#0a0a0c;}
[data-theme="ivory"]{--bg:#faf7f0;--bg2:#f2ede1;--bg3:#e9e1d0;--border:#dcd0b8;--border2:#c9b995;--text:#332b1e;--text2:#786b52;--text3:#9c8f72;--accent:#9c7a3c;--accent-bg:rgba(156,122,60,.12);--red:#b3463f;--red-bg:rgba(179,70,63,.1);--green:#4f7d4a;--green-bg:rgba(79,125,74,.1);--nav-bg:rgba(250,247,240,.9);--modal-bg:rgba(51,43,30,.4);--shadow:0 2px 12px rgba(51,43,30,.1);--hover:rgba(51,43,30,.04);--input-bg:#f2ede1;}
/* ==================== ۴ تم اختصاصی Premium Ultra (نه Plus ساده) ==================== */
[data-theme="nebula"]{--bg:#0d0620;--bg2:#150b30;--bg3:#1e1042;--border:#2f1c5c;--border2:#402674;--text:#f0eaff;--text2:#b6a3e0;--text3:#8570b8;--accent:#a855f7;--accent-bg:rgba(168,85,247,.16);--red:#ff5f87;--red-bg:rgba(255,95,135,.12);--green:#34eab9;--green-bg:rgba(52,234,185,.12);--nav-bg:rgba(13,6,32,.9);--modal-bg:rgba(0,0,0,.65);--shadow:0 2px 20px rgba(0,0,0,.6);--hover:rgba(255,255,255,.05);--input-bg:#1e1042;}
[data-theme="aurora"]{--bg:#04120f;--bg2:#061c17;--bg3:#0a2921;--border:#12402f;--border2:#1a5842;--text:#e8fff6;--text2:#85c9ac;--text3:#57957a;--accent:#2ee6a8;--accent-bg:rgba(46,230,168,.14);--red:#ff6b81;--red-bg:rgba(255,107,129,.12);--green:#4ade80;--green-bg:rgba(74,222,128,.12);--nav-bg:rgba(4,18,15,.9);--modal-bg:rgba(0,0,0,.6);--shadow:0 2px 20px rgba(0,0,0,.55);--hover:rgba(46,230,168,.05);--input-bg:#0a2921;}
[data-theme="carbon"]{--bg:#16171a;--bg2:#1c1d21;--bg3:#24262b;--border:#33353b;--border2:#45474e;--text:#e6e7ea;--text2:#9a9ca3;--text3:#6b6d74;--accent:#f97316;--accent-bg:rgba(249,115,22,.13);--red:#f87171;--red-bg:rgba(248,113,113,.12);--green:#34d399;--green-bg:rgba(52,211,153,.12);--nav-bg:rgba(22,23,26,.92);--modal-bg:rgba(0,0,0,.7);--shadow:0 2px 20px rgba(0,0,0,.6);--hover:rgba(255,255,255,.04);--input-bg:#1c1d21;}
[data-theme="platinum"]{--bg:#f5f6f8;--bg2:#eceef2;--bg3:#e1e4ea;--border:#d1d5dc;--border2:#b8bdc7;--text:#1f2430;--text2:#5b6472;--text3:#838b99;--accent:#4f6df5;--accent-bg:rgba(79,109,245,.1);--red:#dc4c4c;--red-bg:rgba(220,76,76,.1);--green:#16a34a;--green-bg:rgba(22,163,74,.1);--nav-bg:rgba(245,246,248,.9);--modal-bg:rgba(31,36,48,.4);--shadow:0 2px 12px rgba(31,36,48,.1);--hover:rgba(31,36,48,.04);--input-bg:#eceef2;}
[data-glass="1"] .post-card{backdrop-filter:blur(16px) saturate(160%);background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.08)!important;}
[data-theme="light"][data-glass="1"] .post-card{background:rgba(255,255,255,.75)!important;border-color:rgba(0,0,0,.06)!important;}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:15px;overflow-x:hidden;}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;max-width:600px;margin:0 auto;-webkit-font-smoothing:antialiased;-webkit-user-select:none;-moz-user-select:none;user-select:none;animation:pageSlideIn .32s cubic-bezier(.16,1,.3,1);overflow-x:hidden;width:100%;box-sizing:border-box;}
html[data-lang="fa"] body{font-family:'Inter','Vazirmatn',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;}
@keyframes pageSlideIn{from{opacity:0;transform:translateX(14px);}to{opacity:1;transform:translateX(0);}}
@keyframes newPostIn{from{opacity:0;transform:translateY(-14px);max-height:0;}to{opacity:1;transform:translateY(0);max-height:600px;}}
.post-card.new-post-anim{animation:newPostIn .38s cubic-bezier(.16,1,.3,1);overflow:hidden;}
a{color:var(--accent);text-decoration:none;}
button{cursor:pointer;border:none;background:none;font-family:inherit;}
img{max-width:100%;display:block;}
input,textarea,select{font-family:inherit;}
*{-webkit-tap-highlight-color:transparent;}
::selection{background:transparent;}
input:focus,textarea:focus,select:focus{outline:none;}
/* ===== IMAGE PROTECTION: no download, no select, no drag ===== */
img{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;user-drag:none;pointer-events:none;}
/* re-enable pointer-events only where needed (buttons, links, clickable imgs) */
.pimgs img,.pimgs-gif-wrap,.story-inner img,.top-av img,a img,.avclick,#imgMoSrc,.chat-msgs img,.qpost img{pointer-events:auto;}
/* Gif wrapper to allow click but block context-menu save */
.pimgs-gif-wrap{display:contents;}
.cemoji{-webkit-user-drag:none;user-drag:none;pointer-events:none;filter:drop-shadow(0 1px 3px rgba(0,0,0,.2));animation:cemojiPop .3s cubic-bezier(.34,1.56,.64,1);transition:transform .15s cubic-bezier(.34,1.56,.64,1);}
@keyframes cemojiPop{0%{transform:scale(.3);opacity:0;}70%{transform:scale(1.12);opacity:1;}100%{transform:scale(1);}}
.cemoji[data-eid]{pointer-events:auto;}
.cemoji[data-eid]:active{transform:scale(1.3);}

/* TOP BAR - شیشه‌ای/glass، مستقل از UI هر پلتفرم دیگه، هماهنگ با همه‌ی تم‌های رنگی اپ */
.top-bar{position:sticky;top:0;top:env(safe-area-inset-top,0);z-index:100;background:color-mix(in srgb, var(--nav-bg) 52%, transparent);backdrop-filter:blur(4px) saturate(115%);-webkit-backdrop-filter:blur(4px) saturate(115%);display:flex;align-items:center;padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top,0px));height:53px;box-sizing:content-box;gap:10px;}
.top-bar .logo{font-size:22px;font-weight:750;color:var(--text);letter-spacing:-1px;line-height:1;position:absolute;left:50%;top:50%;top:calc(50% + env(safe-area-inset-top,0px)/2);transform:translate(-50%,-50%);}
.top-av{width:32px;height:32px;border-radius:50%;overflow:hidden;flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.upgrade-btn{font-size:14.5px;font-weight:700;color:var(--text);padding:6px 14px;border-radius:999px;border:none;white-space:nowrap;flex-shrink:0;background:color-mix(in srgb, var(--text) 8%, transparent);backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);display:inline-flex;align-items:center;gap:6px;margin-inline-start:auto;transition:transform .15s ease,background .15s ease;}
.upgrade-btn:active{transform:scale(.94);background:color-mix(in srgb, var(--text) 14%, transparent);}
.upgrade-btn svg{width:16px;height:16px;flex-shrink:0;}
.upgrade-btn svg circle{fill:#1d9bf0;}

/* HOME HEADER (top-bar + tabs) - با اسکرول به پایین کلاً محو و جمع میشه، با اسکرول به بالا برمی‌گرده */
/* FIX: کل بلاک (top-bar + tabs) رو به یه لایه‌ی fixed تبدیل می‌کنیم و فقط با translateY کنترلش می‌کنیم (نه با sticky طبیعی)،
   چون sticky طبیعی فقط دقیقاً همون نقطه‌ای که خودِ مرورگر تشخیص می‌ده کار می‌کنه (یعنی عملاً باید تا اول صفحه برگردی)،
   ولی با fixed+transform، از هرجای فید که باشی، به‌محض کشیدن انگشت به هر جهت، بی‌درنگ و متناسب واکنش نشون می‌ده. */
#homeHeaderSpacer{width:100%;}
#homeHeader{background:transparent;position:fixed;top:0;left:0;right:0;z-index:100;will-change:transform;}
#homeHeader .top-bar{position:static;}
#homeHeader #homeTabs{position:static;top:auto;}

/* ===== پروفایل: بنر پشت تاپ‌بار می‌ره، با اسکرول به‌تدریج بلور/تیره می‌شه و تاپ‌بار جمع‌وجور (نام+تعداد پست) هم‌زمان با همون مقدار اسکرول ظاهر می‌شه ===== */
.prof-topbar{position:sticky;top:0;z-index:110;background:transparent;transition:none;}
.prof-topbar-bg{position:absolute;inset:0;background:var(--bg);opacity:0;z-index:0;}
.prof-topbar-row{position:relative;z-index:1;display:flex;align-items:center;gap:10px;padding:0 12px;height:53px;direction:ltr;}
.prof-topbar-ic{width:34px;height:34px;border-radius:50%;background:rgba(0,0,0,.32);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;transition:background .15s;}
.prof-topbar-compact{flex:1;min-width:0;opacity:0;direction:rtl;text-align:right;}
.prof-topbar-compact .n{font-size:17px;font-weight:800;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.prof-topbar-compact .c{font-size:12px;color:var(--text2);}
.prof-topbar-icons{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.prof-topbar-action{opacity:0;flex-shrink:0;}
.prof-banner-outer{margin-top:-53px;position:relative;overflow:hidden;z-index:0;}
.prof-banner-outer .ph-img,.prof-banner-outer .ph-ph{will-change:transform,filter;transform-origin:50% 0%;}
/* بنر مخصوص پروفایل آرتیست: گرادیان بنفش ملایم روی گوشه‌ها، فقط تزئینی و بدون تاثیر روی لایه‌بندی */
.artist-banner-glow::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:2;background:
    radial-gradient(120% 90% at 100% 0%, rgba(168,85,247,.32) 0%, rgba(168,85,247,0) 55%),
    radial-gradient(120% 90% at 0% 100%, rgba(168,85,247,.22) 0%, rgba(168,85,247,0) 55%);}
@media (max-width:480px){
    .artist-card{padding:12px;}
    .tp-track{padding:10px 6px;min-height:40px;}
    .ac-release{padding:10px 4px;}
    .ac-cover{width:52px;height:52px;}
    .tp-progress-wrap{padding:6px 0;margin:2px 0;}
}

/* ===== تب‌های پروفایل: هر تب یک آیکون svg داره؛ تب فعال با انیمیشنِ نرم بازتر می‌شه و اسمشو نشون می‌ده، بقیه فقط آیکون ===== */
.ptabs2{display:flex;align-items:center;border-bottom:1px solid var(--border);position:relative;padding:0 4px;}
.ptab2-item{display:flex;align-items:center;justify-content:center;gap:0;padding:15px 16px;color:var(--text2);background:none;border:none;cursor:pointer;font-size:15px;font-weight:700;font-family:inherit;flex:0 0 auto;text-decoration:none;transition:color .2s ease,background .12s;}
.ptab2-item.icon{padding:15px 16px;}
.ptab2-item.active{color:var(--text);}
.ptab2-item:hover{background:var(--hover);}
.ptab2-item .ticn{display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ptab2-item .tlabel{display:inline-block;max-width:0;opacity:0;overflow:hidden;white-space:nowrap;transition:max-width .32s cubic-bezier(.4,0,.2,1),opacity .22s ease .02s,margin .32s cubic-bezier(.4,0,.2,1);margin-inline-start:0;}
.ptab2-item.active .tlabel{max-width:110px;opacity:1;margin-inline-start:7px;}
.ptab2-item.tabs-noanim .tlabel{transition:none!important;}
.ptab2-item.tabs-collapse-init.active .tlabel{max-width:0;opacity:0;margin-inline-start:0;}
.ptab2-chev{transition:transform .15s,max-width .32s cubic-bezier(.4,0,.2,1),opacity .22s ease,margin .32s cubic-bezier(.4,0,.2,1);flex-shrink:0;max-width:0;opacity:0;overflow:hidden;margin-inline-start:0;}
.ptab2-item.active .ptab2-chev{max-width:16px;opacity:1;margin-inline-start:3px;}
.ptab2-item.tabs-collapse-init.active .ptab2-chev{max-width:0;opacity:0;margin-inline-start:0;}
.pmw:has(.pmenu.open) .ptab2-chev{transform:rotate(180deg);}
.ptab2-ind{position:absolute;bottom:1px;height:2px;border-radius:999px;background:var(--accent);left:0;width:0;pointer-events:none;}

/* TABS - sticky زیر top-bar، با اسکرول به سمت پایین جمع میشه مثل نردبون */
/* تب فوریو/فالووینگ - دقیقاً مثل X: یه نوار تخت و تمام‌عرض زیر top-bar، نه یه کارت/پیل جداگانه با
   حاشیه و سایه؛ بلورش هم از همون --nav-bg شفاف‌تر میاد که بالاتر (توی متغیرهای تم) کم‌رنگ‌ترش کردیم */
.tabs{display:flex;margin:0;border-radius:0;position:sticky;top:0;z-index:99;background:color-mix(in srgb, var(--nav-bg) 52%, transparent);backdrop-filter:blur(4px) saturate(115%);-webkit-backdrop-filter:blur(4px) saturate(115%);border:none;border-bottom:1px solid var(--border);box-shadow:none;overflow:hidden;}
.top-bar.tb-hide{pointer-events:none;}
#homeTabs.tabs-docked{box-shadow:0 6px 18px rgba(0,0,0,.10);}
.tab-btn{flex:1;padding:15px 0;font-size:15px;font-weight:500;color:var(--text2);text-align:center;cursor:pointer;position:relative;border:none;background:none;transition:background .15s;}
.tab-btn:hover{background:var(--hover);}
.tab-btn.active{color:var(--text);font-weight:700;}
.tab-btn.active::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:84px;height:2px;background:var(--accent);border-radius:1px;}

/* STORIES */
.stories-bar{display:flex;gap:10px;padding:10px 16px;overflow-x:auto;border-bottom:1px solid var(--border);scrollbar-width:none;}
.stories-bar::-webkit-scrollbar{display:none;}
.story-item{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0;cursor:pointer;}
.story-ring{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#f4b000);padding:2px;display:flex;align-items:center;justify-content:center;}
.story-ring.seen{background:var(--border2);}
.story-inner{width:54px;height:54px;border-radius:50%;overflow:hidden;border:2px solid var(--bg);background:var(--bg2);box-sizing:border-box;display:flex;align-items:center;justify-content:center;}
.story-inner img,.story-inner>div{width:100%;height:100%;object-fit:cover;}
.story-add-btn{width:60px;height:60px;border-radius:50%;border:2px dashed var(--border2);display:flex;align-items:center;justify-content:center;background:var(--bg2);cursor:pointer;}
.story-name{font-size:11px;color:var(--text2);max-width:60px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* POST CARD - پیکسل به پیکسل مثل X */
.post-card{display:flex;gap:12px;padding:8px 16px 0;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s;position:relative;}
.post-card:hover{background:var(--hover);}
.post-card-l{flex-shrink:0;width:40px;}
.av-emoji-badge{animation:avEmojiPop .25s cubic-bezier(.34,1.56,.64,1);}
.av-emoji-pick-wrap .av-emoji-badge{cursor:pointer;}
.av-emoji-opt.sel{border-color:var(--accent)!important;background:var(--accent-bg)!important;}
@keyframes avEmojiPop{from{transform:scale(0);opacity:0;}to{transform:scale(1);opacity:1;}}
.post-card-r{flex:1;min-width:0;}
/* header row - دقیقاً مثل X: یه خط، items:center */
.ph{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;min-width:0;width:100%;margin-top:-7px;}
.ph-left{display:flex;align-items:center;flex-wrap:nowrap;gap:0;min-width:0;overflow:hidden;}
.pn{font-weight:700;font-size:15px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%;line-height:20px;flex-shrink:0;}
.pun{color:var(--text2);font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:24px;margin-left:2px;line-height:20px;}
.pt{color:var(--text2);font-size:15px;white-space:nowrap;flex-shrink:0;line-height:20px;}
.pdot{color:var(--text2);flex-shrink:0;font-size:15px;margin:0 3px;line-height:20px;}
/* header right icons: slash-circle + three-dots */
.ph-icons{display:flex;align-items:center;gap:0;margin-left:auto;flex-shrink:0;}
.ph-icon-btn{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text2);border:none;background:none;cursor:pointer;transition:background .15s,color .15s;padding:0;flex-shrink:0;}
.ph-icon-btn:hover{background:var(--accent-bg);color:var(--accent);}
.ph-icon-btn svg{width:18px;height:18px;}
/* content */
.pc{font-size:15px;font-weight:300;line-height:21px;color:var(--text);margin-top:-6px;word-break:break-word;}.pc p{margin:0;padding:0;}
.pc.rtl{direction:rtl;text-align:right;}
.pc.ltr{direction:ltr;text-align:left;}
.pc.fsm{font-size:13px;}.pc.flg{font-size:17px;}
.pc.fserif{font-family:Georgia,serif;}.pc.fmono{font-family:monospace;}.pc.fvazir{font-family:'Vazirmatn',sans-serif;}
/* hashtag / mention */
.htag{color:var(--accent);font-weight:400;}
.mention{color:var(--accent);}
mark{background:var(--accent-bg);color:var(--accent);border-radius:2px;padding:0 1px;}
/* images */
.pimgs{margin-top:10px;border-radius:14px;overflow:hidden;}
.pimgs.c1{max-height:510px;background:#000;}
.pimgs.c1 .pimg-wrap{width:100%;max-height:510px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#000;}
.pimgs.c1 img{width:100%;max-height:510px;object-fit:contain;display:block;}
.pimgs.c2{display:grid;grid-template-columns:1fr 1fr;gap:2px;}
.pimgs.c2 .pimg-wrap{height:175px;}
.pimgs.c2 img{width:100%;height:175px;object-fit:cover;}
.pimgs.c3{display:grid;grid-template-columns:1fr 1fr;gap:2px;}
.pimgs.c3 .pimg-wrap:first-child{grid-row:span 2;height:352px;}
.pimgs.c3 .pimg-wrap{height:175px;}
.pimgs.c3 img{width:100%;height:100%;object-fit:cover;}
.pimgs.c4{display:grid;grid-template-columns:1fr 1fr;gap:2px;}
.pimgs.c4 .pimg-wrap{height:175px;}
.pimgs.c4 img{width:100%;height:175px;object-fit:cover;}
/* GIF badge */
.gif-badge{position:absolute;bottom:6px;left:6px;background:rgba(0,0,0,.75);color:#fff;font-size:11px;font-weight:700;padding:2px 6px;border-radius:4px;letter-spacing:.5px;pointer-events:none;z-index:2;}
.dm-vidtype-seg{display:flex;background:var(--bg3);border-radius:14px;padding:2px;flex-shrink:0;gap:1px;}
.dm-vidtype-opt{padding:5px 11px;border-radius:12px;font-size:12px;font-weight:700;color:var(--text2);background:none;border:none;cursor:pointer;transition:background .15s,color .15s;}
.dm-vidtype-opt.active{background:var(--accent);color:#fff;}
.pimg-gif img{object-fit:cover;}
/* sensitive */
.cw-card{position:relative;margin-top:10px;border-radius:16px;overflow:hidden;}
.cw-warn{background:#536471;border-radius:16px;padding:26px 18px 18px;display:flex;flex-direction:column;align-items:center;text-align:center;cursor:pointer;}
.cw-warn svg{margin-bottom:8px;flex-shrink:0;}
.cw-title{font-size:15px;font-weight:800;color:#fff;}
.cw-desc{font-size:13px;color:rgba(255,255,255,.85);line-height:1.4;margin-top:2px;max-width:300px;}
.cw-show{margin-top:16px;align-self:flex-end;background:#000;color:#fff;font-size:14px;font-weight:700;padding:7px 20px;border-radius:20px;border:none;cursor:pointer;}
.cw-body{display:none;margin-top:10px;}
.cw-card.cw-open .cw-warn{display:none;}
.cw-card.cw-open .cw-body{display:block;margin-top:0;}
.wtf-sec{border-bottom:8px solid var(--bg2);padding:14px 0 4px;}
.wtf-hd{font-size:19px;font-weight:800;color:var(--text);padding:0 16px 10px;}
.wtf-scroll{display:flex;gap:10px;padding:0 16px 14px;overflow-x:auto;scrollbar-width:none;}
.wtf-scroll::-webkit-scrollbar{display:none;}
.wtf-card{flex:0 0 148px;background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:16px 12px;display:flex;flex-direction:column;align-items:center;text-align:center;}
.wtf-card .n{display:flex;align-items:center;justify-content:center;gap:2px;font-size:14px;font-weight:800;color:var(--text);margin-top:10px;max-width:100%;text-decoration:none;}
.wtf-card .n .txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wtf-card .u{font-size:13px;color:var(--text2);margin:2px 0 12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wtf-card .follow-btn{width:100%;font-size:13px;padding:7px 0;}
/* colored bg posts - PREMIUM only — حالا کل کارت پست رنگی می‌شه، نه فقط یک باکس داخلی */
.post-card.has-bg{padding-top:14px;padding-bottom:12px;}
.post-card.has-bg .pn,.post-card.has-bg .pun,.post-card.has-bg .pdot,.post-card.has-bg .pt,.post-card.has-bg .pc{color:#fff!important;}
.post-card.has-bg .pun,.post-card.has-bg .pdot,.post-card.has-bg .pt{color:rgba(255,255,255,.78)!important;}
.post-card.has-bg .pmb{color:rgba(255,255,255,.85)!important;}
.post-card.has-bg .pmb:hover{background:rgba(255,255,255,.15)!important;color:#fff!important;}
.post-card.has-bg .abt{color:rgba(255,255,255,.8)!important;}
.post-card.has-bg .abt span{color:rgba(255,255,255,.8)!important;}
.post-card.has-bg .abt:hover{background:rgba(255,255,255,.15)!important;color:#fff!important;}
.post-card.has-bg .abt:hover span{color:#fff!important;}
.post-card.has-bg .abt.liked{color:#fff!important;}
.post-card.has-bg .abt.liked svg{fill:#fff!important;}
.post-card.has-bg .abt.liked span{color:#fff!important;}
.post-card.has-bg .abt.reposted{color:#fff!important;}
.post-card.has-bg .abt.bookmarked{color:#fff!important;}
.post-card.has-bg .mention{color:#fff!important;text-decoration:underline;text-decoration-color:rgba(255,255,255,.5);}
.post-card.has-bg .qpost{border-color:rgba(255,255,255,.3);background:rgba(0,0,0,.12);}
.post-card.has-bg .qpost-n,.post-card.has-bg .qpost-c{color:#fff!important;}
.post-card.has-bg .qpost-u{color:rgba(255,255,255,.75)!important;}
.post-card.has-bg:hover{filter:brightness(1.04);}
.bg-red{background:linear-gradient(135deg,#e0245e,#b01048);}
.bg-orange{background:linear-gradient(135deg,#f97316,#ea580c);}
.bg-yellow{background:linear-gradient(135deg,#eab308,#ca8a04);}
.bg-green{background:linear-gradient(135deg,#22c55e,#16a34a);}
.bg-blue{background:linear-gradient(135deg,#3b82f6,#2563eb);}
.bg-purple{background:linear-gradient(135deg,#a855f7,#7c3aed);}
.bg-pink{background:linear-gradient(135deg,#ec4899,#db2777);}
.bg-dark{background:linear-gradient(135deg,#1f2937,#111827);}
.bg-gradient1{background:linear-gradient(135deg,#667eea,#764ba2);}
.bg-gradient2{background:linear-gradient(135deg,#f093fb,#f5576c);}
.bg-gradient3{background:linear-gradient(135deg,#4facfe,#00f2fe);}
/* quoted post */
.qpost{border:1px solid var(--border);border-radius:12px;padding:12px;margin-top:10px;background:transparent;}
.qpost-h{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-bottom:3px;}
.qpost-n{font-weight:700;font-size:14px;color:var(--text);}
.qpost-u{font-size:13px;color:var(--text2);}
.qpost-c{font-size:14px;color:var(--text);line-height:1.4;}
/* Quick-reply emoji picker (تپ‌وهولد روی دکمه ریپلای) */
.qr-picker{position:fixed;z-index:9999;display:none;align-items:center;gap:4px;background:var(--bg2);border:1px solid var(--border);border-radius:999px;padding:6px 8px;box-shadow:0 6px 20px rgba(0,0,0,.25);}
.qr-picker.open{display:flex;}
.qr-picker span{font-size:22px;cursor:pointer;padding:2px 4px;border-radius:50%;transition:transform .1s;}
.qr-picker span:active{transform:scale(1.3);}
/* repost label */
.rp-wrap .post-card{border-bottom:none;}
.rp-lbl{display:flex;align-items:center;gap:5px;color:var(--text2);font-size:13px;font-weight:600;padding:8px 16px 2px 68px;}
.rp-lbl svg{width:15px;height:15px;}
/* actions - دقیقاً مطابق reference HTML: 6 آیتم flat با justify-content:space-between */
.post-cnt-body{margin-top:0px;}
.pacts{display:flex;align-items:center;justify-content:space-between;margin-top:9px;padding-bottom:6px;width:100%;max-width:460px;}
.abt{display:flex;align-items:center;gap:4px;color:var(--text2);font-size:12px;font-weight:400;line-height:16px;cursor:pointer;border-radius:9999px;padding:3px 5px;margin:-3px -5px;transition:color .2s,background .2s;border:none;background:none;position:relative;flex-shrink:0;}
.abt svg{width:16px;height:16px;flex-shrink:0;}
.abt span,.abt .act-count{font-size:12px;color:inherit;line-height:16px;}
.abt.liked span,.abt.reposted span{color:inherit;}
.abt:hover.rb{color:var(--accent);background:var(--accent-bg);}
.abt:hover.rb span{color:var(--accent);}
.abt:hover.rpb{color:var(--green);background:var(--green-bg);}
.abt:hover.rpb span{color:var(--green);}
.abt:hover.lb{color:#f91880;background:rgba(249,24,128,.1);}
.abt:hover.lb span{color:#f91880;}
.abt:hover.bb,.abt:hover.sb{color:var(--accent);background:var(--accent-bg);}
.abt:hover.vb{color:var(--accent);background:var(--accent-bg);}
.abt:hover.vb span{color:var(--accent);}
.abt.liked{color:var(--red);}
.abt.liked svg{fill:var(--red);}
.abt.reposted{color:var(--green);}
.abt.bookmarked{color:var(--accent);}
@keyframes flipN{from{transform:translateY(4px);opacity:0;}to{transform:translateY(0);opacity:1;}}
.flip{animation:flipN .2s ease;}
@keyframes likePopN{0%{transform:scale(1);}50%{transform:scale(1.35);}100%{transform:scale(1);}}
.abt.liked svg{animation:likePopN .25s ease;}
/* like particle */
.lp{position:fixed;pointer-events:none;font-size:18px;z-index:9999;animation:lpFly .7s ease forwards;}
@keyframes lpFly{0%{opacity:1;transform:translateY(0) scale(1);}100%{opacity:0;transform:translateY(-48px) scale(1.5);}}
/* post menu - X style: two icons in header (slash-circle + three-dots) */
.pmw{position:relative;flex-shrink:0;}
.pmb{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text2);transition:background .15s,color .15s;border:none;background:none;cursor:pointer;padding:0;}
.pmb:hover{background:var(--accent-bg);color:var(--accent);}
.pmb svg{width:18.75px;height:18.75px;}
/* wrapper برای دو آیکون سمت راست header */
.ph-btns{display:flex;align-items:center;margin-left:8px;flex-shrink:0;gap:0;}
.pmenu{position:absolute;right:0;top:36px;background:var(--bg);border:1px solid var(--border);border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,.2);z-index:300;min-width:210px;overflow:hidden;display:none;}
.pmenu.open{display:block;}
.pmi{display:flex;align-items:center;gap:12px;padding:14px 16px;font-size:15px;color:var(--text);cursor:pointer;transition:background .12s;}
.pmi:hover{background:var(--hover);}
.pmi.danger{color:var(--red);}
.pmi svg{width:18px;height:18px;flex-shrink:0;}
/* small badges on post */
.pbadge{font-size:10px;padding:1px 5px;border-radius:10px;font-weight:600;flex-shrink:0;}
.pbadge.temp{background:rgba(244,33,46,.12);color:var(--red);}
.pbadge.anon{background:rgba(156,163,175,.15);color:var(--text2);}
.pbadge.priv{background:var(--accent-bg);color:var(--accent);}
.pbadge.ed{color:var(--text3);font-size:11px;}
.eh-item{padding:12px 16px;border-bottom:1px solid var(--border);}
.eh-item:last-child{border-bottom:none;}
.eh-time{font-size:12px;color:var(--text2);margin-bottom:4px;font-weight:600;}
.eh-content{font-size:15px;color:var(--text);white-space:pre-wrap;word-break:break-word;line-height:1.4;}
.eh-current .eh-time{color:var(--accent);}
/* POLL */
.poll-wrap{margin-top:10px;border:1px solid var(--border);border-radius:12px;padding:14px;background:var(--bg2);}
.poll-q{font-size:15px;font-weight:600;color:var(--text);margin-bottom:10px;}
.poll-opt{position:relative;border:1px solid var(--border2);border-radius:8px;padding:10px 12px;margin-bottom:8px;cursor:pointer;overflow:hidden;transition:border-color .15s;}
.poll-opt:hover{border-color:var(--accent);}
.poll-bar{position:absolute;left:0;top:0;bottom:0;background:var(--accent-bg);z-index:0;transition:width .5s ease;}
.poll-txt{position:relative;z-index:1;font-size:14px;color:var(--text);font-weight:500;}
.poll-pct{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:13px;color:var(--text2);z-index:1;}
.poll-meta{font-size:12px;color:var(--text2);margin-top:6px;}
/* FAB */
.fab{position:fixed;bottom:calc(90px + env(safe-area-inset-bottom,0));right:16px;width:56px;height:56px;background:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px color-mix(in srgb, var(--accent) 40%, transparent);cursor:pointer;transition:transform .12s linear,opacity .12s linear;z-index:90;border:none;will-change:transform;}
.fab:hover{transform:scale(1.06);}
.fab.fab-hide{transform:scale(.68);opacity:.82;}
.fab svg{width:24px;height:24px;fill:white;}
/* BOTTOM NAV - دکمه‌ی شیشه‌ای شناور (Liquid Glass): جدا از لبه‌های گوشی، بلور واضح و تمیز، فاصله استاندارد بین ۵ آیکون */
/* نوار پایین - دقیقاً مثل X: تمام‌عرض و چسبیده به لبه‌ی پایین (نه یه پیل شناور)، بلور خیلی شفاف‌تر و فقط
   یه خط باریک بالا به‌جای border/shadow دورتادور، عیناً مطابق ظاهر واقعی اپ ایکس */
.bnav{position:fixed;bottom:0;left:0;right:0;width:100%;max-width:none;height:calc(53px + env(safe-area-inset-bottom,0));padding-bottom:env(safe-area-inset-bottom,0);background:color-mix(in srgb, var(--nav-bg) 52%, transparent);backdrop-filter:blur(4px) saturate(115%);-webkit-backdrop-filter:blur(4px) saturate(115%);border:none;border-top:1px solid var(--border);border-radius:0;box-sizing:border-box;display:flex;align-items:center;justify-content:space-around;padding-inline:8px;box-shadow:none;z-index:100;transition:none;will-change:transform;}
.bnav.bnav-hide{pointer-events:none;}
.nb{display:flex;align-items:center;justify-content:center;width:48px;height:48px;flex-shrink:0;border-radius:50%;transition:background .15s,color .15s;position:relative;color:var(--text);}
.nb:hover,.nb:active{background:var(--hover);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);}
.nb:hover{background:var(--hover);}
.nb.active svg{stroke-width:2.6;}
.nb.active{color:var(--accent);}
.nb svg{width:26px;height:26px;stroke-width:2.15;vector-effect:non-scaling-stroke;}
.nbadge{position:absolute;top:5px;right:5px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 3px;line-height:1;box-shadow:0 0 0 2px var(--nav-bg);}

/* ==================== DESKTOP / LAPTOP RESPONSIVE LAYOUT ====================
   ستون وسط (فید/هدر/تب‌ها/بادی) دقیقاً همون max-width:600px موبایل رو حفظ می‌کنه - هیچ چیزی توی
   خودِ فید یا ساختار موجود عوض نمی‌شه. فقط از یه عرض مشخص (لپ‌تاپ به بالا) دو ستون کناری (سایدبار
   ناوبری چپ مثل ایکس/توییتر + پنل جستجو و ترند راست) با position:fixed و آفست calc() نسبت به وسطِ
   خودِ صفحه (50%) کنارِ همون ستون ۶۰۰پیکسلی اضافه می‌شن. چون این ستون‌ها با فاصله از مرکز صفحه محاسبه
   می‌شن (نه با یه wrapper جدید دور کل سایت)، به هیچ‌کدوم از صفحات/مودال‌های موجود (که خودشون هم با
   left:50%+translateX(-50%) وسط می‌مونن) دست نمی‌زنه و ریسک شکستن چیزی رو نداره.
   دو بریک‌پوینت داریم:
     - ۸۶۰px به بالا (تبلت بزرگ/لپ‌تاپ کوچیک): فقط سایدبار چپ به‌صورت آیکون-تنها.
     - ۱۲۶۰px به بالا (لپ‌تاپ/دسکتاپ معمولی): سایدبار چپ با برچسب کامل + پنل راست جستجو/ترند
       (این عدد عمداً کمی بیشتر از حداقل ریاضی لازمه تا حتی با اسکرول‌بار مرورگر هم هیچ overflow افقی پیش نیاد). */
html{background:var(--bg);}
#deskNav,#deskRight{display:none;}
@media(min-width:860px){
    .fab{display:none;}
    /* روی موبایل #homeHeader با left:0;right:0 تمام‌عرض ویوپورته؛ اینجا دقیقاً هم‌عرض و هم‌مرکز با
       ستون وسط ۶۰۰پیکسلی می‌کنیمش تا لوگو/تب‌ها زیر همون ستون بمونن، نه وسط کل صفحه‌ی لپ‌تاپ. */
    #homeHeader{left:50%;right:auto;width:100%;max-width:600px;transform:translateX(-50%);}
    #deskNav{display:flex;flex-direction:column;align-items:center;gap:2px;position:fixed;top:0;height:100vh;overflow-y:auto;scrollbar-width:none;left:calc(50% - 392px);width:68px;padding:18px 0 22px;z-index:90;}
    #deskNav::-webkit-scrollbar{display:none;}
    .dnav-logo{font-size:26px;font-weight:900;color:var(--text);width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;margin-bottom:8px;flex-shrink:0;transition:background .15s;}
    .dnav-logo:hover{background:var(--hover);}
    .dnav-links{display:flex;flex-direction:column;gap:2px;width:100%;align-items:center;}
    .dnav-item{position:relative;display:flex;align-items:center;justify-content:center;gap:14px;width:48px;height:48px;border-radius:50%;color:var(--text);flex-shrink:0;transition:background .15s;}
    .dnav-item:hover{background:var(--hover);}
    .dnav-item svg{width:26px;height:26px;flex-shrink:0;stroke-width:2.15;}
    .dnav-item.active{color:var(--accent);}
    .dnav-item.active svg{stroke-width:2.6;}
    .dnav-label{display:none;}
    .dnav-badge{position:absolute;top:2px;right:2px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 3px;line-height:1;box-shadow:0 0 0 2px var(--bg);}
    .dnav-post{width:48px;height:48px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;margin:10px 0;flex-shrink:0;transition:opacity .12s;}
    .dnav-post:hover{opacity:.9;}
    .dnav-post svg{width:22px;height:22px;}
    .dnav-post-label{display:none;}
    .dnav-user{margin-top:auto;width:48px;height:48px;border-radius:50%;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .15s;padding:0;}
    .dnav-user:hover{background:var(--hover);}
    .dnav-user-info{display:none;}
}
@media(min-width:1260px){
    #deskNav{left:calc(50% - 554px);width:230px;align-items:stretch;padding:18px 12px 22px;}
    .dnav-logo{align-self:flex-start;}
    .dnav-links{align-items:stretch;}
    .dnav-item{width:100%;height:auto;justify-content:flex-start;border-radius:999px;padding:11px 14px;}
    .dnav-item svg{width:26px;height:26px;}
    .dnav-label{display:inline;font-size:19px;font-weight:600;white-space:nowrap;}
    .dnav-item.active .dnav-label{font-weight:800;}
    .dnav-badge{position:static;margin-inline-start:auto;box-shadow:none;}
    .dnav-post{width:100%;height:48px;border-radius:999px;gap:8px;margin:14px 0;}
    .dnav-post-label{display:inline;font-size:16px;font-weight:800;}
    .dnav-user{width:100%;height:auto;border-radius:999px;padding:8px;justify-content:flex-start;gap:10px;}
    .dnav-user-info{display:flex;flex-direction:column;text-align:right;overflow:hidden;}
    .dnav-user-name{font-size:14px;font-weight:800;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px;}
    .dnav-user-handle{font-size:13px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px;}

    #deskRight{display:block;position:fixed;top:0;height:100vh;overflow-y:auto;scrollbar-width:none;left:calc(50% + 324px);width:290px;padding:18px 0 22px;z-index:90;}
    #deskRight::-webkit-scrollbar{display:none;}
    .dright-search-wrap{position:relative;background:var(--bg2);border-radius:999px;border:1px solid var(--border);display:flex;align-items:center;padding:10px 14px;gap:10px;}
    .dright-search-wrap svg{width:17px;height:17px;color:var(--text2);flex-shrink:0;}
    .dright-search-inp{flex:1;background:none;border:none;color:var(--text);font-size:14px;font-family:inherit;}
    .dright-card{margin-top:16px;background:var(--bg2);border-radius:18px;overflow:hidden;}
    .dright-card-title{padding:14px 16px 8px;font-size:19px;font-weight:800;color:var(--text);}
    .dright-trend{display:block;padding:8px 16px;transition:background .15s;color:inherit;}
    .dright-trend:hover{background:var(--hover);}
    .dright-trend-cat{font-size:12px;color:var(--text2);}
    .dright-trend-tag{font-size:14.5px;font-weight:700;color:var(--text);margin:1px 0;}
    .dright-trend-cnt{font-size:12px;color:var(--text2);}
    .dright-more{display:block;padding:14px 16px;font-size:14.5px;color:var(--accent);}
    .dright-more:hover{background:var(--hover);}
}
/* MODAL */
.mo{position:fixed;inset:0;background:var(--modal-bg);backdrop-filter:blur(4px);z-index:550;display:none;align-items:flex-end;justify-content:center;}
.mo.open{display:flex;}
.modal{background:var(--bg);width:100%;max-width:600px;border-radius:20px 20px 0 0;max-height:92vh;overflow-y:auto;animation:sUp .22s ease;}
.modal-full{background:var(--bg);width:100%;max-width:600px;border-radius:20px 20px 0 0;height:96vh;overflow-y:auto;animation:sUp .22s ease;}
@keyframes sUp{from{transform:translateY(30px);opacity:0;}to{transform:translateY(0);opacity:1;}}
@keyframes sUpFull{from{transform:translateY(100%);}to{transform:translateY(0);}}
#giftDetailMo .modal{animation:sUpFull .32s cubic-bezier(.22,1,.36,1);border-radius:20px 20px 0 0;}
.mhdr{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg);z-index:10;}
.mcls{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text);transition:background .15s;flex-shrink:0;}
.mcls:hover{background:var(--hover);}
.mcls svg{width:20px;height:20px;}
/* COMPOSE */
.comp-area{display:flex;gap:12px;padding:14px 16px;}
.comp-ta{flex:1;border:none;background:transparent;color:var(--text);font-size:19px;resize:none;min-height:100px;line-height:1.5;caret-color:var(--accent);}
.comp-ta-ce{outline:none;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;}
.comp-ta-ce:empty:before{content:attr(data-placeholder);color:var(--text2);pointer-events:none;}
.comp-ta-ce img.ce-emoji,.comp-ta-ce video.ce-emoji{width:23px;height:23px;object-fit:contain;vertical-align:-5px;margin:0 1px;display:inline-block;user-select:none;-webkit-user-drag:none;}
.comp-ta::placeholder{color:var(--text3);}
.comp-tb{display:flex;align-items:center;padding:8px 12px;border-top:1px solid var(--border);gap:2px;}
.comp-tool{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--accent);transition:background .15s;}
.comp-tool:hover{background:var(--accent-bg);}
.comp-tool svg{width:20px;height:20px;}
.comp-tool.active{background:var(--accent-bg);}
/* Emoji keyboard */
/* ===== Emoji Keyboard — بازسازی دقیق شبیه کیبورد native ===== */
.emoji-kb{direction:ltr;display:none;flex-shrink:0;border-top:1px solid var(--border);background:var(--ekb-bg,#1c1c1e);height:var(--ekb-open-h,380px);overflow:hidden;flex-direction:column;animation:none;border-radius:18px 18px 0 0;will-change:transform,opacity;}
.emoji-kb.open{display:flex;animation:ekbSlideUp .16s cubic-bezier(.22,1,.36,1);}
@keyframes ekbSlideUp{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
.ekb-catbar{direction:ltr;display:flex;align-items:center;gap:0;padding:12px 10px 9px;overflow-x:auto;flex-shrink:0;scrollbar-width:none;}
.ekb-catbar::-webkit-scrollbar{display:none;}
.ekb-cat{flex-shrink:0;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.65);cursor:pointer;margin-right:7px;position:relative;transition:background .2s cubic-bezier(.16,1,.3,1),color .2s,transform .15s;background:rgba(255,255,255,.05);backdrop-filter:blur(6px);border:none;padding:0;}
.ekb-cat:active{transform:scale(.9);}
.ekb-cat svg{width:19px;height:19px;}
.ekb-cat.active{background:rgba(255,255,255,.18);color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.08) inset;}
.ekb-cat .ekb-lock{position:absolute;bottom:-2px;right:-2px;width:15px;height:15px;border-radius:50%;background:#8e8e93;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--ekb-bg,#1c1c1e);}
.ekb-cat .ekb-lock svg{width:8px;height:8px;color:#1c1c1e;}
.ekb-cat.ekb-cat-custom{background:linear-gradient(135deg,#ff6b6b,#feca57);overflow:hidden;}
.ekb-cat.ekb-cat-custom img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.ekb-section-title{padding:6px 16px 4px;font-size:20px;font-weight:700;color:rgba(255,255,255,.92);flex-shrink:0;}
.ekb-scroll{direction:ltr;flex:1;overflow-y:auto;padding:0 10px 8px;-webkit-overflow-scrolling:touch;}
.ekb-grid{direction:ltr;display:grid;grid-template-columns:repeat(8,1fr);gap:2px;}
.ekb-grid:has(.ekb-empty){display:block;}
.ekb-grid button{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;font-size:30px;line-height:1;border-radius:10px;transition:background .15s,transform .12s cubic-bezier(.34,1.56,.64,1);padding:0;}
.ekb-grid button:active{transform:scale(.8);background:rgba(255,255,255,.08);}
.ekb-grid button img{width:80%;height:80%;object-fit:contain;display:block;border-radius:6px;}
.ekb-empty{padding:40px 16px;text-align:center;color:var(--text2);font-size:13px;}
.ekb-empty a{color:var(--accent);font-weight:600;}
.ekb-bottombar{direction:ltr;flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 10px;position:relative;border-top:1px solid rgba(255,255,255,.06);}
.ekb-pill{display:flex;background:rgba(255,255,255,.1);backdrop-filter:blur(10px);border-radius:18px;padding:3px;gap:2px;}
.ekb-pill-tab{padding:7px 16px;border-radius:16px;font-size:13.5px;font-weight:600;color:rgba(255,255,255,.5);cursor:pointer;transition:background .2s cubic-bezier(.16,1,.3,1),color .2s;background:none;border:none;}
.ekb-pill-tab.active{background:rgba(255,255,255,.22);color:#fff;}
.ekb-del{position:absolute;right:10px;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.7);background:rgba(255,255,255,.08);border:none;cursor:pointer;transition:transform .12s;}
.ekb-del:active{transform:scale(.88);}
.ekb-del svg{width:18px;height:18px;}
.emoji-kb-empty{padding:30px 16px;text-align:center;color:var(--text2);font-size:13px;}
.emoji-kb-empty a{color:var(--accent);font-weight:600;}
/* ===== GIFs / Stickers panels ===== */
.ekb-gif-panel,.ekb-sticker-panel{flex:1;display:flex;flex-direction:column;min-height:0;padding:8px 10px 0;}
.ekb-gif-search{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.08);border-radius:14px;padding:8px 12px;margin-bottom:8px;color:rgba(255,255,255,.55);flex-shrink:0;}
.ekb-gif-search input{flex:1;background:none;border:none;outline:none;color:#fff;font-size:14px;}
.ekb-gif-search input::placeholder{color:rgba(255,255,255,.4);}
.ekb-gif-grid{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding-bottom:8px;}
.ekb-gif-item{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:1/1;background:rgba(255,255,255,.06);cursor:pointer;transition:transform .12s ease;}
.ekb-gif-item:active{transform:scale(.94);}
.ekb-gif-item.sending{opacity:.45;pointer-events:none;}
.ekb-gif-item img,.ekb-gif-item video{width:100%;height:100%;object-fit:cover;display:block;}
.ekb-gif-add{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:1/1;background:rgba(255,255,255,.06);border:1.5px dashed rgba(255,255,255,.25);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:rgba(255,255,255,.6);transition:background .15s,transform .12s;}
.ekb-gif-add:active{transform:scale(.94);}
.ekb-gif-add span{font-size:11px;font-weight:600;}
.ekb-gif-add.uploading{opacity:.5;pointer-events:none;}
.ekb-sticker-grid{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding-bottom:8px;align-content:start;}
.ekb-sticker-item{border-radius:14px;aspect-ratio:1/1;cursor:pointer;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.05);transition:transform .12s ease,background .12s;}
.ekb-sticker-item:active{transform:scale(.88);background:rgba(255,255,255,.1);}
.ekb-sticker-item.sending{opacity:.45;pointer-events:none;}
.ekb-sticker-item img,.ekb-sticker-item video{width:78%;height:78%;object-fit:contain;pointer-events:none;}
.comp-post{margin-left:auto;background:var(--accent);color:#fff;font-size:15px;font-weight:700;padding:7px 18px;border-radius:20px;border:none;cursor:pointer;transition:opacity .15s;}
.comp-post:hover{opacity:.88;}
.char-cnt{font-size:13px;color:var(--text2);}
.char-cnt.warn{color:#f59e0b;}.char-cnt.over{color:var(--red);}
/* REPOST */
.rp-opt{display:flex;align-items:center;gap:16px;padding:18px 20px;cursor:pointer;transition:background .12s;font-size:18px;font-weight:700;color:var(--text);}
.rp-opt:hover{background:var(--hover);}
.rp-opt svg{width:22px;height:22px;}
/* DRAWER */
.dov{position:fixed;inset:0;z-index:500;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s ease,visibility 0s linear .28s;}
.dov.open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .28s ease,visibility 0s linear 0s;}
.dbg{position:absolute;inset:0;background:rgba(0,0,0,.55);}
.drawer{position:absolute;left:0;top:0;bottom:0;width:290px;background:var(--bg);overflow-y:auto;transform:translateX(-100%);transition:transform .3s cubic-bezier(.22,1,.36,1);}
.dov.open .drawer{transform:translateX(0);}
.dhdr{padding:18px 16px 10px;}
.ddiv{height:1px;background:var(--border);margin:6px 0;}
.di{display:flex;align-items:center;gap:14px;padding:13px 16px;cursor:pointer;font-size:17px;font-weight:500;color:var(--text);transition:background .12s;text-decoration:none;}
.di:hover{background:var(--hover);}
.di svg{width:22px;height:22px;flex-shrink:0;}
/* Customize your timeline - نیمه‌صفحه از پایین بالا میاد، مثل ایکس */
.tl-cust-ov{position:fixed;inset:0;z-index:600;background:rgba(0,0,0,.5);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,visibility 0s linear .25s;}
.tl-cust-ov.open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .25s ease,visibility 0s linear 0s;}
.tl-cust-sheet{position:absolute;left:0;right:0;bottom:0;max-width:600px;margin:0 auto;height:55vh;background:var(--bg);border-radius:18px 18px 0 0;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .32s cubic-bezier(.22,1,.36,1);box-shadow:0 -4px 30px rgba(0,0,0,.3);}
.tl-cust-ov.open .tl-cust-sheet{transform:translateY(0);}
.tl-cust-handle{width:36px;height:4px;border-radius:2px;background:var(--border2);margin:10px auto 4px;flex-shrink:0;}
.tl-topic-row{display:flex;align-items:center;gap:12px;padding:13px 2px;cursor:pointer;border-bottom:1px solid var(--border);}
.tl-topic-ic{width:24px;height:24px;flex-shrink:0;color:var(--text2);display:flex;align-items:center;justify-content:center;}
.tl-topic-ic svg{width:22px;height:22px;}
.tl-chk{width:22px;height:22px;border-radius:5px;border:2px solid var(--border2);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s;}
.tl-chk svg{opacity:0;transition:opacity .1s;}
.tl-chk.on{background:var(--accent);border-color:var(--accent);}
.tl-chk.on svg{opacity:1;}
.tgl.disabled{opacity:.35;pointer-events:none;}
/* ==================== STAR REACTION (ری‌اکشن ستاره‌ای) — آیکون دقیقاً مثل عکس مرجع: ستاره‌ی طلایی با هاله‌ی نور + چرخش ستاره‌های کوچیک دورش ==================== */
.sr-icon-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;width:18.75px;height:18.75px;}
.sr-icon-wrap .sr-glow{position:absolute;inset:-40%;border-radius:50%;background:radial-gradient(circle,rgba(255,214,110,.6) 0%,rgba(255,190,60,.28) 45%,rgba(255,190,60,0) 75%);pointer-events:none;}
.sr-icon-wrap .sr-emoji{position:relative;filter:drop-shadow(0 1px 2px rgba(150,90,0,.4));transition:width .55s cubic-bezier(.22,1,.36,1),height .55s cubic-bezier(.22,1,.36,1);}
.sr-icon-wrap .sr-tw{position:absolute;color:#fff3c4;font-size:5px;opacity:0;pointer-events:none;animation:srTwinkle 1.8s ease-in-out infinite;text-shadow:0 0 3px rgba(255,220,140,.9);}
.sr-icon-wrap .sr-tw1{top:-3px;left:-4px;animation-delay:0s;}
.sr-icon-wrap .sr-tw2{bottom:-4px;right:-5px;animation-delay:.45s;}
.sr-icon-wrap .sr-tw3{top:-1px;right:-6px;font-size:4px;animation-delay:.9s;}
.sr-icon-wrap .sr-tw4{bottom:-3px;left:-6px;font-size:4px;animation-delay:1.35s;}
@keyframes srTwinkle{0%,45%,100%{opacity:0;transform:scale(.3) rotate(0deg);}55%{opacity:1;transform:scale(1) rotate(20deg);}70%{opacity:0;transform:scale(.5) rotate(20deg);}}
.abt.srb.sr-busy{pointer-events:none;opacity:.55;}
.sr-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;z-index:9997;pointer-events:none;transition:opacity .28s ease;}
.sr-backdrop.show{opacity:1;}
.sr-fly{position:fixed;z-index:9999;pointer-events:none;transition:left .55s cubic-bezier(.22,1,.36,1),top .55s cubic-bezier(.22,1,.36,1),width .55s cubic-bezier(.22,1,.36,1),height .55s cubic-bezier(.22,1,.36,1);}
.sr-fly .sr-icon-wrap{width:100%;height:100%;}
.sr-fly .sr-emoji{filter:drop-shadow(0 2px 5px rgba(150,90,0,.5));}
.sr-fly .sr-glow{inset:-45%;}
.sr-fly .sr-tw{font-size:15px;opacity:1;}
.sr-fly .sr-tw1{top:-8px;left:-12px;}
.sr-fly .sr-tw2{bottom:-10px;right:-14px;}
.sr-fly .sr-tw3{top:-2px;right:-18px;font-size:12px;}
.sr-fly .sr-tw4{bottom:-6px;left:-18px;font-size:12px;}
.sr-fly.sr-center .sr-glow{animation:srGlowPulse 1s ease-in-out infinite;}
@keyframes srGlowPulse{0%,100%{background:radial-gradient(circle,rgba(255,214,110,.75) 0%,rgba(255,190,60,.4) 45%,rgba(255,190,60,0) 75%);}50%{background:radial-gradient(circle,rgba(255,225,140,.9) 0%,rgba(255,200,70,.5) 45%,rgba(255,190,60,0) 78%);}}
@keyframes srSpark{0%{transform:translate(-50%,-50%) scale(1);opacity:1;}100%{transform:translate(calc(-50% + var(--sx)),calc(-50% + var(--sy))) scale(.2);opacity:0;}}
.sr-spark{position:fixed;z-index:9998;pointer-events:none;color:#ffe27a;font-size:11px;animation:srSpark .7s ease-out forwards;}
/* کانفتیِ زرد که از بالای صفحه می‌باره پایین (نه از محل تپ) - دقیقاً وقتی ستاره وسط صفحه بزرگ می‌شه پخش می‌شه */
@keyframes srConfTop{0%{transform:translateY(-10px) rotate(0);opacity:1;}100%{transform:translateY(100vh) rotate(720deg);opacity:0;}}
.sr-conf-top{position:fixed;top:-10px;width:7px;height:7px;border-radius:2px;pointer-events:none;z-index:9998;animation:srConfTop 2s ease forwards;}
/* ANIMATIONS */
@keyframes pFly{0%{transform:scale(0) translateY(0);opacity:1;}100%{transform:scale(2) translateY(-70px);opacity:0;}}
.lp{position:fixed;pointer-events:none;z-index:9999;font-size:20px;animation:pFly .65s ease forwards;}
@keyframes dblH{0%{transform:translate(-50%,-50%) scale(0);opacity:1;}60%{transform:translate(-50%,-50%) scale(1.3);opacity:1;}100%{transform:translate(-50%,-50%) scale(1);opacity:0;}}
.dbl-h{position:fixed;pointer-events:none;z-index:9999;font-size:54px;animation:dblH .65s ease forwards;transform:translate(-50%,-50%);}
@keyframes cFall{0%{transform:translateY(-10px) rotate(0);opacity:1;}100%{transform:translateY(100vh) rotate(720deg);opacity:0;}}
.conf{position:fixed;width:7px;height:7px;border-radius:2px;pointer-events:none;z-index:9999;animation:cFall 2s ease forwards;}
@keyframes tIn{from{transform:translateX(-50%) translateY(-16px);opacity:0;}to{transform:translateX(-50%);opacity:1;}}
@keyframes tOut{to{transform:translateX(-50%) translateY(-16px);opacity:0;}}
.toast{position:fixed;top:66px;left:50%;transform:translateX(-50%);background:var(--accent);color:#fff;padding:10px 20px;border-radius:50px;font-size:14px;font-weight:700;z-index:9999;animation:tIn .3s ease,tOut .3s ease 2.5s forwards;white-space:nowrap;box-shadow:0 4px 16px rgba(0,0,0,.3);}
/* NOTIFS */
.ni{display:flex;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);transition:background .12s;}
.ni:hover{background:var(--hover);}
.niicon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.niicon.like{background:var(--red-bg);color:var(--red);}
.niicon.repost{background:var(--green-bg);color:var(--green);}
.niicon.follow,.niicon.reply,.niicon.quote{background:var(--accent-bg);color:var(--accent);}
.niicon svg{width:18px;height:18px;}
.nitext{flex:1;font-size:14px;color:var(--text2);line-height:1.4;padding-top:3px;}
.nitext strong{color:var(--text);font-weight:700;}
.ni-unread{background:var(--accent-bg);}
/* SEARCH */
.srch-bar{position:sticky;top:53px;z-index:90;padding:8px 16px;background:var(--bg);border-bottom:1px solid var(--border);}
.srch-wrap{position:relative;}
.srch-wrap svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--text2);}
.srch-inp{width:100%;padding:10px 14px 10px 40px;border-radius:24px;border:none;background:var(--bg3);color:var(--text);font-size:15px;}
.srch-inp:focus{background:var(--bg);outline:2px solid var(--accent);}
.sres{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s;}
.sres:hover{background:var(--hover);}
/* PROFILE */
.ph-img{width:100%;height:150px;object-fit:cover;}
.ph-ph{width:100%;height:150px;}
@keyframes gS{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}
.ph-anim{background-size:300% 300%;animation:gS 6s ease infinite;}
.follow-btn{padding:6px 18px;border-radius:20px;font-size:14px;font-weight:700;cursor:pointer;transition:all .15s;border:none;}
.follow-btn.follow{background:var(--text);color:var(--bg);}
.follow-btn.following{background:transparent;color:var(--text);border:1px solid var(--border2);}
.follow-btn.following:hover{background:var(--red-bg);color:var(--red);border-color:var(--red);}
.msg-pillbtn,.pill-outline-btn{padding:6px 18px;border-radius:20px;font-size:14px;font-weight:700;cursor:pointer;background:transparent;color:var(--text);border:1px solid var(--border2);transition:background .15s;text-align:center;}
.msg-pillbtn:hover{background:var(--hover);}
.edit-btn{padding:6px 18px;border-radius:20px;font-size:14px;font-weight:700;border:1px solid var(--border2);color:var(--text);background:transparent;cursor:pointer;}
.sub-btn{padding:6px 16px;border-radius:20px;font-size:14px;font-weight:700;background:linear-gradient(135deg,#8b5cf6,#ec4899);color:#fff;cursor:pointer;border:none;}
.dm-btn{width:34px;height:34px;border-radius:50%;border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;color:var(--text);cursor:pointer;background:transparent;}
.dm-btn svg{width:16px;height:16px;}
.chat-emoji-btn{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text2);cursor:pointer;background:transparent;border:none;flex-shrink:0;transition:color .15s,background .15s;}
.chat-emoji-btn:hover{color:var(--accent);background:var(--accent-bg);}
.chat-emoji-btn.active{color:var(--accent);}
.gv-btn{display:flex;align-items:center;gap:5px;border:1px solid var(--border2);border-radius:20px;padding:4px 12px;font-size:13px;font-weight:700;color:var(--text);background:transparent;cursor:pointer;}
.pin-lbl{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text2);font-weight:600;padding:8px 16px 2px;}
.pin-lbl svg{width:14px;height:14px;}
.sdot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:4px;}
.sdot.on{background:var(--green);}.sdot.off{background:var(--text3);}
.ach-bgs{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;}
.ach-bg{font-size:11px;background:var(--bg3);border:1px solid var(--border);border-radius:20px;padding:2px 8px;color:var(--text2);}
/* ==================== ARTIST CARD (Latest Release + Tweek Player) ==================== */
.artist-card{margin-top:14px;border:1px solid rgba(168,85,247,.28);border-radius:16px;padding:14px;background:linear-gradient(180deg,rgba(168,85,247,.08),rgba(168,85,247,0) 60%);}
.artist-card-head{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:#a855f7;letter-spacing:.3px;text-transform:uppercase;margin-bottom:10px;}
.ac-section-label{font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px;}
.ac-release{display:flex;gap:12px;align-items:center;cursor:pointer;border-radius:12px;padding:8px;margin:0 -8px;transition:background .15s;}
.ac-release:hover{background:rgba(168,85,247,.08);}
.ac-cover{position:relative;width:56px;height:56px;border-radius:10px;overflow:hidden;background:var(--bg3);flex-shrink:0;box-shadow:0 4px 14px rgba(168,85,247,.25);}
.ac-cover img{width:100%;height:100%;object-fit:cover;display:block;}
.ac-cover-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.38);opacity:0;transition:opacity .15s;}
.ac-release:hover .ac-cover-play{opacity:1;}
.ac-meta{min-width:0;flex:1;}
.ac-title{font-size:14.5px;font-weight:800;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ac-sub{font-size:12px;color:var(--text2);line-height:1.5;margin-top:2px;}
.ac-stats{display:flex;gap:14px;margin-top:8px;font-size:12px;color:var(--text2);}
.ac-stats span{display:flex;align-items:center;gap:4px;}
.ac-external{display:block;text-align:center;margin-top:10px;font-size:12.5px;font-weight:700;color:#a855f7;text-decoration:none;border:1px solid rgba(168,85,247,.35);border-radius:20px;padding:7px;}
.ac-external:hover{background:rgba(168,85,247,.08);}
.ac-viewall{display:block;width:100%;text-align:center;margin-top:8px;font-size:12.5px;font-weight:700;color:var(--text2);background:var(--bg2);border:1px solid var(--border);border-radius:20px;padding:7px;cursor:pointer;}
.ac-viewall:hover{color:var(--text);}
.ac-all-releases{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.ac-all-releases.open{max-height:400px;overflow-y:auto;margin-top:8px;}
.ac-mini-release{display:flex;align-items:center;gap:10px;padding:6px 2px;}
.ac-mini-release img,.ac-mini-cover-empty{width:36px;height:36px;border-radius:7px;object-fit:cover;background:var(--bg3);flex-shrink:0;}
.ac-mini-title{font-size:13px;font-weight:700;color:var(--text);}
.ac-mini-sub{font-size:11px;color:var(--text3);}
.ac-about-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text2);padding:3px 0;}
.ac-links{display:flex;flex-direction:column;gap:2px;}
.ac-link-row{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--text);text-decoration:none;padding:6px 4px;border-radius:8px;}
.ac-link-row:hover{background:rgba(168,85,247,.08);}
/* Tweek Player - پلیر مخصوص ریلیزهای آرتیست */
.tweek-player{margin-top:10px;background:var(--bg2);border:1px solid var(--border);border-radius:14px;padding:10px 12px;}
.tp-now{display:flex;justify-content:space-between;font-size:12.5px;font-weight:700;color:var(--text);margin-bottom:6px;}
.tp-now span:last-child{color:var(--text3);font-weight:600;font-variant-numeric:tabular-nums;}
.tp-progress-wrap{height:5px;border-radius:3px;background:var(--border2);cursor:pointer;position:relative;margin-bottom:8px;}
.tp-progress-bar{height:100%;width:0%;border-radius:3px;background:linear-gradient(90deg,#a855f7,#7c3aed);transition:width .1s linear;}
.tp-tracklist{display:flex;flex-direction:column;}
.tp-track{display:flex;align-items:center;gap:8px;padding:7px 4px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--text2);}
.tp-track:hover{background:rgba(168,85,247,.08);}
.tp-track.playing{color:#a855f7;font-weight:700;background:rgba(168,85,247,.1);}
.tp-track-num{width:16px;font-size:11px;color:var(--text3);text-align:center;flex-shrink:0;}
.tp-track.playing .tp-track-num{color:#a855f7;}
.tp-track-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tp-track-dur{font-size:11px;color:var(--text3);flex-shrink:0;}
/* POST DETAIL */
.pd-wrap{padding:16px;}
.pd-hdr{display:flex;align-items:center;gap:9px;margin-bottom:12px;}
.pd-name{font-size:16px;font-weight:800;color:var(--text);display:flex;align-items:center;gap:4px;flex-wrap:wrap;}
.pd-un{font-size:14px;color:var(--text2);}
.pd-cnt{font-size:20px;line-height:1.4;color:var(--text);margin-bottom:12px;word-break:break-word;}
.pd-time{font-size:14px;color:var(--text2);padding:12px 0;}
.pd-time .pd-views{color:var(--text);font-weight:700;}
.pd-acts{display:flex;justify-content:space-between;padding:4px 4px;border-bottom:1px solid var(--border);}
.pd-acts .abt{gap:8px;font-size:13px;}
.pd-acts .abt svg{width:20px;height:20px;}
.ri-wrap{display:flex;gap:12px;padding:10px 12px;}
.ri-pill{display:flex;align-items:center;gap:8px;flex:1;min-width:0;background:var(--input-bg);border-radius:999px;padding:6px 8px 6px 14px;cursor:text;}
.ri-pill .ri-ph{flex:1;min-width:0;color:var(--text2);font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:6px 0;}
.ri-tools{display:flex;align-items:center;gap:0;flex-shrink:0;}
.ri-tool{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--accent);background:none;border:none;cursor:pointer;flex-shrink:0;padding:0;}
.ri-tool:hover{background:var(--hover);}
.ri-tool svg{width:18px;height:18px;}
.ri-tool.ri-gif svg{width:20px;height:20px;}
.ri{flex:1;border:none;background:transparent;color:var(--text);font-size:16px;resize:none;min-height:56px;caret-color:var(--accent);}
.ri::placeholder{color:var(--text3);}
.pd-tabbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;}
.pd-tab{display:flex;align-items:center;gap:3px;font-size:15px;font-weight:700;color:var(--text2);cursor:pointer;user-select:none;transition:color .15s ease;}
.pd-tab svg{width:16px;height:16px;flex-shrink:0;}
.pd-tab.active{color:var(--text);}
.ri-wrap-fixed{position:fixed;left:50%;transform:translateX(-50%);bottom:52px;bottom:calc(52px + env(safe-area-inset-bottom,0px));width:100%;max-width:600px;margin:0;background:var(--nav-bg);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);box-shadow:0 -8px 16px -10px rgba(0,0,0,.18);z-index:95;box-sizing:border-box;}
/* AUTH */
.auth-pg{min-height:100vh;display:flex;flex-direction:column;align-items:center;background:var(--bg);}
.auth-logo{font-size:50px;font-weight:900;color:var(--text);letter-spacing:-2px;margin-bottom:28px;}
.auth-title{font-size:28px;font-weight:800;color:var(--text);margin-bottom:8px;text-align:center;}
.auth-inp{width:100%;padding:14px 16px;border:1px solid var(--border2);border-radius:4px;background:var(--bg);color:var(--text);font-size:16px;margin-bottom:14px;transition:border-color .15s;}
.auth-inp:focus{border-color:var(--accent);}
.auth-btn{width:100%;padding:14px;font-size:16px;font-weight:700;border-radius:50px;cursor:pointer;margin-bottom:14px;border:none;transition:opacity .15s;}
.auth-btn:hover{opacity:.88;}
.auth-btn.blue{background:var(--accent);color:#fff;}
.auth-btn.dark{background:var(--text);color:var(--bg);}
.auth-btn.sec{background:transparent;border:1px solid var(--border2);color:var(--text);}
.auth-div{display:flex;align-items:center;gap:12px;margin-bottom:14px;color:var(--text2);font-size:14px;}
.auth-div::before,.auth-div::after{content:'';flex:1;height:1px;background:var(--border);}
.auth-err{background:var(--red-bg);color:var(--red);border-radius:8px;padding:10px 14px;margin-bottom:14px;font-size:14px;}
.auth-suc{background:var(--green-bg);color:var(--green);border-radius:8px;padding:10px 14px;margin-bottom:14px;font-size:14px;}
.un-rule{font-size:11px;color:var(--text3);margin-top:-8px;margin-bottom:12px;}
.auth-inp.field-err{border:1px solid var(--red)!important;box-shadow:0 0 0 1px var(--red);}
.un-rule.field-err-text{color:var(--red);}
/* کپچای ریاضی ساده روی فرم‌های ثبت‌نام و لاگین */
.captcha-box{border:1px solid var(--border2);border-radius:10px;padding:12px 14px;margin-bottom:14px;background:var(--bg2);}
.captcha-box label{display:block;font-size:14px;color:var(--text2);margin-bottom:8px;}
.captcha-box label b{color:var(--text);font-size:16px;letter-spacing:.5px;}
.captcha-box .auth-inp{margin-bottom:0;}
.captcha-box.field-err{border-color:var(--red);}
/* ==================== REGISTRATION WIZARD (step-by-step create-account flow) ==================== */
.rw-wrap{width:100%;max-width:380px;min-height:100vh;display:flex;flex-direction:column;position:relative;}
.rw-progress{position:sticky;top:0;height:3px;background:var(--border);width:100%;z-index:5;}
.rw-progress-bar{height:100%;background:var(--accent);width:16.66%;transition:width .25s ease;border-radius:0 2px 2px 0;}
.rw-step{display:flex;flex-direction:column;padding:20px 24px 32px;flex:1;animation:rwFadeIn .22s ease;}
@keyframes rwFadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
.rw-top{margin-bottom:18px;}
.rw-back{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;color:var(--text);text-decoration:none;font-size:20px;cursor:pointer;transition:background .12s;}
.rw-back:hover{background:var(--hover);}
.rw-title{font-size:26px;font-weight:800;color:var(--text);margin-bottom:6px;line-height:1.2;}
.rw-sub{font-size:14.5px;color:var(--text2);margin-bottom:22px;line-height:1.4;}
.rw-err{background:var(--red-bg);color:var(--red);border-radius:8px;padding:10px 14px;margin:10px 0 4px;font-size:13.5px;}
.rw-next{margin-top:auto;}
.rw-step .auth-btn{flex-shrink:0;}
.rw-step .auth-btn.rw-next{margin-top:24px;}
/* --- Birthday wheel picker --- */
.rw-datedisp{font-size:15px;color:var(--text2);margin-bottom:18px;}
.rw-wheels{display:flex;justify-content:center;height:180px;position:relative;margin-bottom:6px;}
.rw-wheels-line{position:absolute;left:0;right:0;top:68px;height:44px;border-top:1px solid var(--border2);border-bottom:1px solid var(--border2);pointer-events:none;z-index:1;}
.rw-fade{position:absolute;left:0;right:0;height:66px;pointer-events:none;z-index:2;}
.rw-fade.top{top:0;background:linear-gradient(var(--bg),rgba(0,0,0,0));}
.rw-fade.bot{bottom:0;background:linear-gradient(rgba(0,0,0,0),var(--bg));}
.rw-wheel{width:33.33%;height:180px;overflow-y:scroll;scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:68px 0;}
.rw-wheel::-webkit-scrollbar{display:none;}
.rw-wheel .rwi{height:44px;line-height:44px;text-align:center;font-size:21px;color:var(--text3);scroll-snap-align:center;user-select:none;}
.rw-wheel .rwi.sel{color:var(--text);font-weight:700;}
/* --- Avatar step --- */
.rw-avatar-wrap{display:flex;justify-content:center;margin:20px 0 10px;}
.rw-avatar-circle{width:140px;height:140px;border-radius:50%;background:var(--bg2);border:2px dashed var(--border2);display:flex;align-items:center;justify-content:center;color:var(--text2);cursor:pointer;overflow:hidden;position:relative;}
.rw-avatar-circle img{width:100%;height:100%;object-fit:cover;}
/* --- Username step --- */
.rw-un-wrap{position:relative;display:flex;align-items:center;}
.rw-at{position:absolute;left:16px;color:var(--text2);font-size:16px;pointer-events:none;z-index:1;}
.rw-un-inp{padding-left:30px!important;padding-right:42px!important;}
.rw-un-icon{position:absolute;right:12px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;}
.un-rule.ok{color:var(--green);}
.un-rule.bad{color:var(--red);}
/* --- Progress dots fallback for very small screens --- */
@media (max-width:340px){.rw-title{font-size:23px;}}
/* PREMIUM */
.pb{height:140px;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:800;color:#fff;}
.pc-card{margin:16px;background:var(--bg2);border-radius:16px;padding:20px;border:1px solid var(--border);}
.pc-title{font-size:18px;font-weight:700;color:var(--text);margin-bottom:14px;}
.pc-row{display:flex;align-items:center;justify-content:space-between;padding:7px 0;font-size:15px;color:var(--text);}
.pc-check{color:var(--green);}
.pc-check svg{width:18px;height:18px;}
.price-fixed{position:fixed;bottom:52px;left:50%;transform:translateX(-50%);width:100%;max-width:600px;padding:14px 16px;background:var(--bg);border-top:1px solid var(--border);z-index:150;}
.price-fixed button{width:100%;padding:14px;background:var(--text);color:var(--bg);font-size:16px;font-weight:700;border-radius:50px;cursor:pointer;border:none;}
/* EXPLORE */
.trend-item{padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s;}
.trend-item:hover{background:var(--hover);}
.tcat{font-size:12px;color:var(--text2);}
.ttag{font-size:16px;font-weight:700;color:var(--text);margin:2px 0;}
.tcnt{font-size:13px;color:var(--text2);}
.exp-cats{display:flex;gap:8px;padding:10px 16px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--border);}
.exp-cats::-webkit-scrollbar{display:none;}
.exp-cat{padding:6px 16px;border-radius:20px;border:1px solid var(--border2);font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;cursor:pointer;transition:all .15s;}
.exp-cat.active{background:var(--accent);color:#fff;border-color:var(--accent);}
/* DM */
.conv-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s;}
.conv-item:hover{background:var(--hover);}
/* CHAT */
.chat-pg{position:fixed;inset:0;max-width:600px;margin:0 auto;display:flex;flex-direction:column;background:var(--bg);z-index:200;}
.chat-hdr{display:flex;align-items:center;gap:8px;padding:8px 10px;flex-shrink:0;background:transparent;border-bottom:none;position:absolute;top:0;top:env(safe-area-inset-top,0);left:0;right:0;z-index:5;box-shadow:none;box-sizing:border-box;}
.chat-hdr-back{width:52px;height:52px;border-radius:50%;background:var(--nav-bg);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text);transition:background .15s,transform .1s;box-shadow:0 4px 14px rgba(0,0,0,.1),0 1px 4px rgba(0,0,0,.06);box-sizing:border-box;}
.chat-hdr-back:active{background:var(--hover);transform:scale(.94);}
.chat-hdr-pill{display:flex;align-items:center;gap:9px;flex:1;min-width:0;height:52px;background:var(--nav-bg);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--border);border-radius:999px;padding:0 14px 0 4px;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.1),0 1px 4px rgba(0,0,0,.06);box-sizing:border-box;overflow:hidden;}
.chat-hdr-acts{display:flex;align-items:center;gap:0;height:52px;background:var(--nav-bg);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--border);border-radius:999px;flex-shrink:0;box-shadow:0 4px 14px rgba(0,0,0,.1),0 1px 4px rgba(0,0,0,.06);box-sizing:border-box;padding:0 4px;}
.chat-hdr-acts button{width:38px;height:38px;padding:0!important;margin:0;box-sizing:border-box;display:flex;align-items:center;justify-content:center;border-radius:50%!important;border:none!important;background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;transition:background .15s,transform .1s;}
.chat-hdr-acts button svg{width:18px;height:18px;flex-shrink:0;}
.chat-hdr-acts button:active{background:var(--hover)!important;transform:scale(.94);}
.dm-info-ov{position:fixed;inset:0;z-index:520;display:none;background:rgba(0,0,0,.4);}
.dm-info-ov.open{display:block;}
.dm-info-panel{position:absolute;right:0;top:0;bottom:0;width:100%;max-width:400px;background:var(--bg);overflow-y:auto;overflow-x:hidden;transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);}
.dm-info-ov.open .dm-info-panel{transform:translateX(0);}
.dm-info-hero{position:relative;padding-bottom:18px;overflow:visible;background:var(--bg2);}
.dm-myinfo-hero{border-radius:0 0 22px 22px;overflow:hidden;}
.dm-myinfo-hero.premium{background:var(--myinfo-bg,linear-gradient(160deg,#e0524a,#c73a3a));}
.dm-myinfo-hero.premium .dm-myinfo-actbtn{background:rgba(255,255,255,.16);backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%);color:#fff;}
.dm-myinfo-hero.premium #dmMyInfoName,.dm-myinfo-hero.premium #dmMyInfoBio{color:#fff!important;}
.dm-myinfo-hero.premium div[style*="color:var(--text2)"]{color:rgba(255,255,255,.85)!important;}
.dm-myinfo-actbtn{background:var(--bg2);color:var(--text);}
.myinfo-pilltabs{display:flex;gap:8px;padding:14px 14px 10px;flex-wrap:wrap;justify-content:center;}
.myinfo-pilltab{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--text2);font-weight:700;font-size:13.5px;padding:8px 16px;border-radius:20px;cursor:pointer;white-space:nowrap;}
.myinfo-pilltab.active{background:rgba(29,155,240,.18);border-color:rgba(29,155,240,.4);color:var(--accent);}
.dm-info-hero.premium{background:var(--dmhero-bg,linear-gradient(160deg,#e0524a,#c73a3a));animation:dmHeroIn .5s cubic-bezier(.4,0,.2,1);}
.dm-info-hero.premium::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 260px 230px at 50% 148px,rgba(255,255,255,.44) 0%,rgba(255,255,255,.2) 42%,rgba(255,255,255,0) 74%);pointer-events:none;z-index:0;}
.dm-info-hero.premium .dm-info-topbar,.dm-info-hero.premium .dm-info-avwrap,.dm-info-hero.premium .dm-info-acts{position:relative;z-index:1;}
.dm-info-hero.has-photo{background:#000;}
/* داگ‌های SVG روی بنر رنگیِ پروفایل دایرکت (وقتی کاربر یه رنگ/گرادینت دلخواه از چت‌ستینگ انتخاب کرده) -
   عین رفرنس تلگرام: چیدمان کاملاً شبکه‌ای و موازی (بدون چرخش/پراکندگیِ رندوم)، نزدیکِ آواتار (وسط بنر، همون
   لنگرِ 50% 148px که برای wash هم استفاده می‌شه) پررنگ‌تر و هرچی دورتر می‌شیم محوتر - با mask شعاعی، نه با
   محاسبه‌ی جداگونه‌ی opacity برای هر آیکون (مهندسی‌شده‌تر و سبک‌تر برای مرورگر). */
.dm-info-doodle{position:absolute;inset:0;pointer-events:none;z-index:0;opacity:0;}
.dm-info-hero.colored .dm-info-doodle{
    opacity:1;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='42' viewBox='0 0 42 42'%3E%3Cpath fill='%23ffffff' fill-opacity='0.92' d='M21 10.5l2.7 8.8 8.8 2.7-8.8 2.7-2.7 8.8-2.7-8.8-8.8-2.7 8.8-2.7z'/%3E%3C/svg%3E");
    background-repeat:repeat;
    background-size:25px 25px;
    background-position:0 0;
    -webkit-mask-image:radial-gradient(ellipse 260px 230px at 50% 148px,rgba(0,0,0,.85) 0%,rgba(0,0,0,.5) 45%,rgba(0,0,0,.1) 72%,rgba(0,0,0,0) 92%);
    mask-image:radial-gradient(ellipse 260px 230px at 50% 148px,rgba(0,0,0,.85) 0%,rgba(0,0,0,.5) 45%,rgba(0,0,0,.1) 72%,rgba(0,0,0,0) 92%);
}
@keyframes dmHeroIn{from{opacity:0;transform:scale(1.04);}to{opacity:1;transform:scale(1);}}
.dm-info-deco{position:absolute;font-size:26px;pointer-events:none;filter:drop-shadow(0 0 10px rgba(255,255,255,.35));animation:dmDecoFloat 3.2s ease-in-out infinite;opacity:.9;}
.dm-info-deco img{width:34px;height:34px;object-fit:contain;}
@keyframes dmDecoFloat{0%,100%{transform:translateY(0) rotate(0deg);}50%{transform:translateY(-8px) rotate(-6deg);}}
.dm-info-topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 12px;position:relative;z-index:2;}
.dm-info-topbar button{background:rgba(0,0,0,.18);border:none;border-radius:50%;width:34px;height:34px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;}
.dm-info-hero:not(.premium):not(.has-photo):not(.colored) .dm-info-topbar button{background:var(--bg3);color:var(--text);}
.dm-info-menu-drop{position:absolute;top:40px;right:0;background:var(--bg2);border:1px solid var(--border2);border-radius:12px;min-width:190px;box-shadow:0 8px 24px rgba(0,0,0,.35);overflow:hidden;z-index:50;}
.dm-info-menu-drop button{display:block;width:100%;text-align:left;padding:11px 14px;background:none;border:none;color:var(--text);font-size:14px;font-weight:600;cursor:pointer;}
.dm-info-menu-drop button+button{border-top:1px solid var(--border2);}
.dm-info-menu-drop button.danger{color:var(--red,#f4212e);}
.dm-info-avwrap{display:flex;flex-direction:column;align-items:center;padding:4px 16px 18px;position:relative;z-index:2;}
.dm-info-hero.premium .dm-info-avwrap .name,.dm-info-hero.has-photo .dm-info-avwrap .name{color:#fff;}
.dm-info-hero.premium .dm-info-avwrap .uname,.dm-info-hero.premium .dm-info-avwrap .seen,.dm-info-hero.has-photo .dm-info-avwrap .uname,.dm-info-hero.has-photo .dm-info-avwrap .seen{color:rgba(255,255,255,.85);}
.dm-info-namegift{display:flex;align-items:center;gap:6px;background:rgba(0,0,0,.32);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff;font-size:13px;font-weight:700;padding:5px 14px 5px 8px;border-radius:999px;cursor:pointer;margin:-2px 0 8px;animation:dmNgIn .25s ease;}
.dm-info-namegift img,.dm-info-namegift video{width:16px;height:16px;object-fit:contain;}
.dm-info-namegift.fade-out{animation:dmNgOut .6s ease forwards;}
@keyframes dmNgIn{from{opacity:0;transform:translateY(-4px) scale(.9);}to{opacity:1;transform:translateY(0) scale(1);}}
@keyframes dmNgOut{from{opacity:1;transform:scale(1);}to{opacity:0;transform:scale(.85);pointer-events:none;}}
.dm-info-acts{display:flex;justify-content:center;gap:10px;padding:2px 16px 10px;position:relative;z-index:2;}
.dm-info-act{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-size:13px;font-weight:600;cursor:pointer;flex:1;padding:14px 4px;border-radius:16px;background:var(--bg3);color:var(--text);}
.dm-info-act svg{flex-shrink:0;}
/* ===== DIRECT PROFILE / TELEGRAM-STYLE HERO — BALANCED 400px PANEL ===== */
/* همه‌ی اندازه‌ها برای عرض پنل 400px کالیبره شده‌اند؛ نه بر اساس پیکسل‌های اسکرین‌شات. */
.dm-info-hero{min-height:348px;box-sizing:border-box;padding-bottom:7px;}
.dm-info-topbar{padding:31px 14px 0;}
.dm-info-topbar button{width:32px;height:32px;background:rgba(64,35,157,.34);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.dm-info-topbar button svg{width:17px;height:17px;}
.dm-info-avwrap{padding:0 12px 5px;margin-top:2px;}
.dm-info-avwrap > div:first-child{margin-bottom:5px!important;}
.dm-info-avatar > img,
.dm-info-avatar > div:not(.av-emoji-badge),
.dm-info-avatar > div:not(.av-emoji-badge) > img{width:116px!important;height:116px!important;}
.dm-info-avatar > img,
.dm-info-avatar > div:not(.av-emoji-badge){border-radius:50%;box-shadow:0 0 0 2px rgba(255,255,255,.62),0 0 0 4px rgba(112,77,214,.34),0 7px 18px rgba(34,14,104,.22);}
.dm-info-avwrap .name{font-size:21px!important;line-height:1.15;margin-top:2px;}
.dm-info-avwrap .uname{font-size:13.5px!important;}
.dm-info-avwrap .seen{font-size:12.5px!important;margin-top:4px!important;}
.dm-info-acts{gap:7px;padding:0 14px 5px;margin-top:22px;}
.dm-info-act{height:56px;min-height:56px;padding:0 3px;border-radius:16px;background:rgba(82,45,190,.58);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;font-size:13px;font-weight:700;gap:3px;box-sizing:border-box;}
.dm-info-act svg{width:22px!important;height:22px!important;}
.dm-info-video-act{display:none!important;}
.dm-info-hero.colored .dm-info-act,.dm-info-hero.has-photo .dm-info-act{background:rgba(82,45,190,.48);}
.dm-info-songbox{margin-top:0;border:none;background:rgba(83,45,190,.52);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;padding:4px 9px;border-radius:11px;font-size:11.5px;max-width:84%;}
.dm-info-songbox svg:first-child{width:12px;height:12px;}
.dm-info-songbox svg:last-child{width:11px;height:11px;}
.dm-info-hero.colored .dm-info-songbox,.dm-info-hero.has-photo .dm-info-songbox{color:#fff;background:rgba(83,45,190,.48);}
.dm-info-hero.colored .dm-info-doodle{opacity:.6;}
.dm-info-hero > div[style*="radial-gradient"]{background:radial-gradient(ellipse 150px 132px at 50% 104px,rgba(255,255,255,.32) 0%,rgba(255,255,255,0) 65%) !important;}
.dm-info-hero.colored .dm-info-doodle{-webkit-mask-image:radial-gradient(ellipse 150px 132px at 50% 104px,rgba(0,0,0,.95) 0%,rgba(0,0,0,.58) 45%,rgba(0,0,0,.16) 72%,rgba(0,0,0,0) 94%);mask-image:radial-gradient(ellipse 150px 132px at 50% 104px,rgba(0,0,0,.95) 0%,rgba(0,0,0,.58) 45%,rgba(0,0,0,.16) 72%,rgba(0,0,0,0) 94%);}
.dm-info-deco{font-size:19px;filter:drop-shadow(0 0 6px rgba(255,255,255,.28));}
.dm-info-deco img{width:24px;height:24px;}
/* ===== DIRECT PROFILE FINAL UI CALIBRATION ===== */
.dm-info-hero.colored .dm-info-topbar button,
.dm-info-hero.has-photo .dm-info-topbar button{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);box-shadow:0 4px 14px rgba(0,0,0,.12);}
.dm-info-acts{gap:6px;padding:0 14px 5px;margin-top:20px;}
.dm-info-act{height:56px;min-height:56px;border-radius:15px;padding:0 2px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(14px) saturate(145%);-webkit-backdrop-filter:blur(14px) saturate(145%);box-shadow:0 5px 18px rgba(34,14,104,.12),inset 0 1px 0 rgba(255,255,255,.08);}
.dm-info-hero:not(.colored):not(.has-photo) .dm-info-act{background:color-mix(in srgb,var(--bg3) 78%,transparent);border-color:var(--border2);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);}
.dm-info-fields,.dm-info-addbtn{border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.045);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 3px 14px rgba(0,0,0,.08);}
.dm-info-addbtn{margin:0 14px 14px;height:50px;padding:0 12px;border-radius:14px;}
.dm-info-tabs{margin-top:0;background:rgba(255,255,255,.035);backdrop-filter:blur(16px) saturate(130%);-webkit-backdrop-filter:blur(16px) saturate(130%);}
.dm-info-tab{height:48px;box-sizing:border-box;padding:0 4px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;}
.dm-info-gifts-tab-label{display:inline-flex;align-items:center;gap:3px;white-space:nowrap;}
.dm-info-gifts-tab-emoji{font-size:15px;line-height:1;}
.dm-info-gifts-recent{display:inline-flex;align-items:center;gap:2px;max-width:76px;overflow:hidden;vertical-align:middle;}
.dm-info-gifts-recent-item{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px;border-radius:5px;overflow:hidden;}
.dm-info-gifts-recent-item img,.dm-info-gifts-recent-item video{width:18px!important;height:18px!important;object-fit:contain!important;display:block;}
.dm-info-gifts-recent-item .gvemoji{font-size:16px!important;line-height:1;}
.dm-info-avwrap{padding-bottom:4px;}
.dm-info-avatar > img,
.dm-info-avatar > div:not(.av-emoji-badge),
.dm-info-avatar > div:not(.av-emoji-badge) > img{width:116px!important;height:116px!important;}
.dm-info-avwrap .name{font-size:21px!important;}
.dm-info-avwrap .uname{font-size:13.5px!important;}
.dm-info-avwrap .seen{font-size:12.5px!important;}
@media (max-width:520px){
  .dm-info-panel{max-width:none;width:100%;}
  .dm-info-hero{min-height:348px;}
  .dm-info-topbar{padding-top:31px;}
  .dm-info-gifts-recent{max-width:68px;}
  .dm-info-giftgrid{gap:7px;padding-left:10px;padding-right:10px;}
}

.dm-info-hero.premium .dm-info-act,.dm-info-hero.has-photo .dm-info-act,.dm-info-hero.colored .dm-info-act{background:rgba(255,255,255,.14);backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%);color:#fff;}
.dm-info-row{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--border);cursor:pointer;color:var(--text);}
.dm-info-row-ic{width:22px;display:flex;align-items:center;justify-content:center;color:var(--text2);flex-shrink:0;}
.dm-info-fields{background:var(--bg2);border-radius:14px;margin:0 14px 14px;overflow:hidden;}
.dm-info-songbox{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:7px 14px;font-size:13px;font-weight:600;color:var(--text);cursor:pointer;max-width:88%;}
.dm-info-songbox span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dm-info-field{padding:10px 14px;border-bottom:1px solid var(--border);}
.dm-info-field:last-child{border-bottom:none;}
.dm-info-field .fv{font-size:14.5px;color:var(--text);font-weight:500;line-height:1.4;}
.dm-info-field .fl{font-size:12px;color:var(--text3,var(--text2));margin-top:2px;}
.dm-info-addbtn{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 14px 16px;padding:12px;border-radius:14px;background:var(--bg2);color:var(--text);font-weight:700;font-size:14.5px;border:none;cursor:pointer;width:calc(100% - 28px);}
.dm-info-addbtn.following{color:var(--accent);}
.dm-info-tabs{display:flex;border-top:1px solid var(--border);border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg);z-index:2;}
.dm-info-tab{flex:1;text-align:center;padding:12px 4px;font-size:13px;font-weight:700;color:var(--text2);cursor:pointer;border-bottom:2px solid transparent;}
.dm-info-tab.active{color:var(--text);border-bottom-color:var(--accent);}
.dm-info-tabpanel{display:none;}
.dm-info-tabpanel.active{display:block;}
.dm-info-mediagrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:2px;padding:2px;}
.dm-info-mediagrid img{width:100%;aspect-ratio:1;object-fit:cover;}
.dm-info-giftgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px 12px;box-sizing:border-box;max-width:100%;}
.dm-info-giftcard{box-sizing:border-box;aspect-ratio:1;border-radius:14px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.09);backdrop-filter:blur(14px) saturate(125%);-webkit-backdrop-filter:blur(14px) saturate(125%);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;box-shadow:0 2px 10px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.08);}
/* عکس/ویدیوی گیفت همیشه تمام کارت رو (با کمی حاشیه) پر می‌کنه؛ چون نسبت به خودِ کارت درصدیه، با
   بزرگ/کوچیک شدن کارت (تغییر data-gw/data-gh حین Resize) خودش هم بزرگ/کوچیک می‌شه - دیگه به
   max-width/max-height ثابتِ اینلاین (که قبلاً روی گیفت‌های ریسایزشده گیر می‌کرد) وابسته نیست. */
.dm-info-giftcard img,.dm-info-giftcard video{width:72%!important;height:72%!important;max-width:none!important;max-height:none!important;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(0 4px 7px rgba(0,0,0,.12));}
.dm-info-giftcard .gvemoji{font-size:calc(var(--gl-unit,110px)*.26);line-height:1;position:relative;z-index:1;}
.dm-info-giftpin{position:absolute;top:6px;left:7px;width:14px;height:14px;z-index:2;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5));}
.dm-info-giftserial{position:absolute;top:8px;right:-25px;transform:rotate(40deg);background:rgba(0,0,0,.4);color:rgba(255,255,255,.92);font-size:9.5px;font-weight:800;padding:2px 26px;z-index:2;letter-spacing:.02em;backdrop-filter:blur(2px);}
.dm-info-giftfloat{position:sticky;bottom:14px;left:0;display:flex;align-items:center;justify-content:center;gap:8px;margin:10px auto 0;padding:13px 22px;width:calc(100% - 24px);max-width:340px;border-radius:24px;border:none;background:rgba(29,155,240,.92);color:#fff;font-size:14px;font-weight:700;cursor:pointer;backdrop-filter:blur(10px) saturate(150%);-webkit-backdrop-filter:blur(10px) saturate(150%);box-shadow:0 8px 22px rgba(29,155,240,.4);z-index:5;}
.dm-info-giftfloat:active{transform:scale(.97);}
/* آواتار کوچیک فرستنده‌ی گیفت - گوشه‌ی بالا-راست هر کارت؛ فقط وقتی گیفت hidden نباشه رندر می‌شه */
.dm-info-gift-sender-av{position:absolute;top:6px;right:6px;z-index:3;border-radius:50%;box-shadow:0 0 0 2px rgba(0,0,0,.35),0 1px 4px rgba(0,0,0,.35);}
/* ==================== Gift Reorder / Resize (Reorder menu item) ==================== */
.dm-info-gifts-chips{display:flex;gap:8px;overflow-x:auto;padding:8px 12px 0;scrollbar-width:none;}
.dm-info-gifts-chips::-webkit-scrollbar{display:none;}
.dm-info-gifts-chip{flex-shrink:0;padding:7px 14px;border-radius:16px;background:var(--bg2);border:1px solid var(--border2);color:var(--text2);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;}
.dm-info-gifts-chip.active{background:var(--accent);border-color:var(--accent);color:#fff;}
.dm-info-gifts-chip-add{color:var(--accent);background:transparent;border-style:dashed;}
.dm-info-gifts-menu-sep{height:1px;background:var(--border2);margin:4px 0;}
.dm-info-gifts-menu-sep-thin{height:1px;background:var(--border2);margin:6px 0;opacity:.6;}
.dm-info-gifts-menu-filters{padding:6px 15px 10px;display:flex;flex-direction:column;gap:8px;}
.dm-info-gifts-menu-filters label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text2);cursor:pointer;}
.dm-info-gifts-menu-filters input{accent-color:var(--accent);width:15px;height:15px;flex-shrink:0;}
.dm-info-gifts-hdr{display:flex;align-items:center;justify-content:flex-end;padding:6px 12px 0;position:relative;}
.dm-info-gifts-menu-btn{width:30px;height:30px;border-radius:50%;border:none;background:rgba(255,255,255,.08);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;}
.dm-info-gifts-menu-btn:active{transform:scale(.93);}
.dm-info-gifts-menu{position:absolute;top:36px;right:12px;background:var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 26px rgba(0,0,0,.32);min-width:190px;overflow:hidden;z-index:20;display:none;opacity:0;transform:translateY(-6px) scale(.96);transition:opacity .15s,transform .15s;max-height:70vh;overflow-y:auto;}
.dm-info-gifts-menu.open{display:block;opacity:1;transform:translateY(0) scale(1);}
.dm-info-gifts-menu-item{padding:12px 15px;font-size:14px;font-weight:600;color:var(--text);cursor:pointer;display:flex;align-items:center;gap:9px;}
.dm-info-gifts-menu-item:active{background:var(--bg2);}
/* نکته‌ی مهم: grid-column/grid-row قابل انیمیشن (interpolate) نیستن، پس transition گذاشتن روش قبلاً
   هیچ افکتی نداشت و فقط ریسک ایجاد گلیچ بصری موقع تغییر سریع سایز رو داشت؛ حذفش کردیم و فقط
   box-shadow/transform رو animate می‌کنیم. */
.dm-info-giftcard{grid-column:span 1;grid-row:span 1;transition:box-shadow .15s,transform .12s;}
.dm-info-giftcard[data-gw="2"]{grid-column:span 2;}
.dm-info-giftcard[data-gw="3"]{grid-column:span 3;}
.dm-info-giftcard[data-gh="2"]{grid-row:span 2;}
.dm-info-giftgrid{grid-auto-rows:var(--gl-unit,110px);align-items:stretch;}
.dm-info-giftgrid.gl-editing{padding-bottom:88px;}
.dm-info-giftgrid.gl-editing .dm-info-giftcard{animation:glPop .3s cubic-bezier(.34,1.45,.64,1) backwards;}
.dm-info-giftgrid.gl-editing .dm-info-giftcard:nth-child(1){animation-delay:0s;}
.dm-info-giftgrid.gl-editing .dm-info-giftcard:nth-child(2){animation-delay:.02s;}
.dm-info-giftgrid.gl-editing .dm-info-giftcard:nth-child(3){animation-delay:.04s;}
.dm-info-giftgrid.gl-editing .dm-info-giftcard:nth-child(n+4){animation-delay:.06s;}
@keyframes glPop{0%{transform:scale(.88);opacity:.4;}100%{transform:scale(1);opacity:1;}}
.dm-info-giftgrid.gl-editing .dm-info-giftcard{box-shadow:0 0 0 1px rgba(255,255,255,.14),0 2px 10px rgba(0,0,0,.18);
    /* touch-action:none روی خودِ کارت (نه فقط handle ریسایز) لازمه چون حالا کل بدنه‌ی کارت هم
       قابل درگ‌کردن (جابجایی/reorder) شده؛ بدون این، لمس-و-کشیدن روی موبایل باعث اسکرول صفحه می‌شه
       و مرورگر ژست رو کنسل می‌کنه - همون چیزی که باعث می‌شد به نظر برسه اندازه/جاش «برگشت به حالت اول». */
    touch-action:none;
    cursor:grab;
}
.dm-info-giftcard.gl-resizing{transition:none;z-index:8;box-shadow:0 0 0 2px var(--accent),0 12px 28px rgba(0,0,0,.4);}
/* حالت جابجایی (drag-to-reorder): خودِ کارتی که داره کشیده می‌شه بزرگ‌تر و روی همه چیز میاد، بقیه‌ی
   کارت‌ها با یه transform سبک جا باز می‌کنن (توی JS ست می‌شه) تا دقیقاً مثل تلگرام حس بشه. */
.dm-info-giftcard.gl-dragging{transition:none!important;z-index:12;cursor:grabbing;opacity:.92;box-shadow:0 16px 34px rgba(0,0,0,.5),0 0 0 2px var(--accent);}
.dm-info-giftgrid.gl-editing .dm-info-giftcard:not(.gl-dragging){transition:transform .18s cubic-bezier(.3,.8,.4,1),box-shadow .15s;}
.gl-handle{position:absolute;width:26px;height:26px;z-index:9;display:none;touch-action:none;}
.gl-handle::after{content:'';position:absolute;width:11px;height:11px;background:#fff;border-radius:50%;box-shadow:0 1px 5px rgba(0,0,0,.55),0 0 0 2px var(--accent);}
.gl-handle.tl{top:-7px;left:-7px;cursor:nwse-resize;}.gl-handle.tl::after{top:0;left:0;}
.gl-handle.tr{top:-7px;right:-7px;cursor:nesw-resize;}.gl-handle.tr::after{top:0;right:0;}
.gl-handle.bl{bottom:-7px;left:-7px;cursor:nesw-resize;}.gl-handle.bl::after{bottom:0;left:0;}
.gl-handle.br{bottom:-7px;right:-7px;cursor:nwse-resize;}.gl-handle.br::after{bottom:0;right:0;}
.dm-info-giftgrid.gl-editing .gl-handle{display:block;}
.dm-info-giftgrid.gl-editing .dm-info-giftcard>*:not(.gl-handle){pointer-events:none;}
.gl-bar{position:fixed;left:0;right:0;bottom:0;max-width:inherit;display:flex;align-items:center;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--border);z-index:70;transform:translateY(100%);transition:transform .25s cubic-bezier(.3,.8,.4,1);}
.gl-bar.open{transform:translateY(0);}
.gl-bar button{flex:1;padding:12.5px;border-radius:13px;border:none;font-weight:700;font-size:14.5px;cursor:pointer;font-family:inherit;}
.gl-bar button:active{transform:scale(.97);}
.gl-bar .gl-cancel{background:var(--bg2);color:var(--text2);}
.gl-bar .gl-ok{background:var(--accent);color:#fff;}
.dm-info-gift-sender-av img,.dm-info-gift-sender-av div{width:20px!important;height:20px!important;}
.dm-info-grouprow{display:flex;align-items:center;gap:12px;padding:11px 16px;text-decoration:none;color:var(--text);}
.dm-info-grouprow img{width:40px;height:40px;border-radius:12px;object-fit:cover;flex-shrink:0;background:var(--bg2);}
/* ===== CALL UI ===== */
.call-ov{position:fixed;inset:0;z-index:9999;background:#000;display:none;flex-direction:column;align-items:center;justify-content:space-between;color:#fff;padding:40px 24px 36px;text-align:center;}
.call-ov.open{display:flex;}
.call-top{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:20px;}
.call-avatar{width:100px;height:100px;border-radius:50%;overflow:hidden;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:800;position:relative;}
.call-avatar img{width:100%;height:100%;object-fit:cover;}
.call-avatar.ringing{animation:callAvatarPulse 1.4s ease-in-out infinite;}
.call-avatar.ringing::before,.call-avatar.ringing::after{content:'';position:absolute;inset:0;border-radius:50%;border:2px solid var(--accent);opacity:0;animation:callRingWave 1.8s ease-out infinite;}
.call-avatar.ringing::after{animation-delay:.6s;}
@keyframes callAvatarPulse{0%,100%{transform:scale(1);}50%{transform:scale(1.06);}}
@keyframes callRingWave{0%{transform:scale(1);opacity:.7;}100%{transform:scale(1.9);opacity:0;}}
.call-name{font-size:21px;font-weight:800;}
.call-status{font-size:14px;color:rgba(255,255,255,.65);}
.call-video-wrap{position:absolute;inset:0;background:#000;display:none;}
.call-video-wrap.on{display:block;}
.call-remote-vid{width:100%;height:100%;object-fit:cover;}
.call-local-vid{position:absolute;bottom:110px;right:16px;width:96px;height:130px;border-radius:12px;object-fit:cover;border:2px solid rgba(255,255,255,.4);background:#111;z-index:2;}
.call-btns{display:flex;gap:22px;align-items:center;justify-content:center;z-index:3;position:relative;}
.call-btn{width:60px;height:60px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;background:rgba(255,255,255,.15);color:#fff;transition:background .15s;}
.call-btn:active{transform:scale(.94);}
.call-btn.on{background:#fff;color:#000;}
.call-btn.end{background:#e0245e;}
.call-incoming-btns{display:flex;gap:50px;align-items:center;justify-content:center;z-index:3;position:relative;}
.chat-msgs{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:70px 16px 12px;display:flex;flex-direction:column;gap:8px;-webkit-overflow-scrolling:touch;box-sizing:border-box;}
.bw{display:flex;flex-direction:column;max-width:72%;min-width:0;}
.bw.ch-post{max-width:92%;align-self:flex-start;}
.bw.ch-post .bubble{border-radius:14px;}
@keyframes bwSlideIn{0%{opacity:0;transform:translateY(10px) scale(.92);}100%{opacity:1;transform:translateY(0) scale(1);}}
.bw.bw-in{animation:bwSlideIn .32s cubic-bezier(.22,1,.36,1);}
.bw.me.bw-in{transform-origin:bottom right;}
.bw.other.bw-in{transform-origin:bottom left;}
.bw.me{align-items:flex-start;align-self:flex-start;margin-left:auto;margin-right:0;}.bw.other{align-items:flex-end;align-self:flex-end;display:flex;flex-direction:row;gap:6px;margin-right:auto;margin-left:0;}
.bw.other>div:first-child{flex-shrink:0;margin-bottom:0!important;align-self:flex-end;}
.bubble{display:inline-block;width:-webkit-fit-content;width:fit-content;max-width:100%;padding:7px 11px 8px;border-radius:var(--dm-radius,20px);font-size:var(--dm-fs,16px);line-height:1.42;word-break:break-word;overflow-wrap:anywhere;white-space:normal;box-sizing:border-box;}
.bubble.me{background:linear-gradient(135deg,#1d9bf0,#0a84ff);border-bottom-right-radius:calc(var(--dm-radius,20px) * 0.3);color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.12);}
@keyframes bubbleMeShimmer{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}
.bubble.other{background:var(--bg3);color:var(--text);border:1px solid var(--border2);border-bottom-left-radius:calc(var(--dm-radius,20px) * 0.3);box-shadow:0 1px 3px rgba(0,0,0,.1);}
.bubble img{max-width:min(200px,100%);border-radius:10px;margin-top:6px;}
.b-time{font-size:11px;color:var(--text3);margin-top:1px;display:flex;align-items:center;gap:3px;}
.ch-bottombar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg2);border-top:1px solid var(--border);}
.ch-bb-ic{background:none;border:none;color:var(--text2);cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0;}
.ch-bb-ic:active{background:var(--bg3);}
.ch-bb-mute{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--bg3);border:none;border-radius:20px;padding:10px;color:var(--accent);font-weight:700;font-size:14px;cursor:pointer;}
.ch-bb-mute:active{opacity:.75;}
.b-reacts{display:flex;gap:5px;flex-wrap:wrap;direction:ltr;justify-content:flex-start;margin-top:3px;max-width:100%;}
.b-reacts>*{box-shadow:0 1px 3px rgba(0,0,0,.22);}
.bubble.has-react{padding-bottom:4px;}
/* ===== کارت هدیه‌ی پریمیوم توی دایرکت (شبیه کارت Giveaway تلگرام) ===== */
.pgift-card{border-radius:16px;padding:20px 16px;text-align:center;color:#fff;min-width:230px;max-width:260px;position:relative;overflow:hidden;}
.pgift-badge-wrap{position:relative;width:76px;height:76px;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;}
.pgift-badge-glow{position:absolute;inset:-10px;border-radius:50%;filter:blur(10px);opacity:.55;}
.pgift-check-wrap{position:relative;width:64px;height:64px;display:flex;align-items:center;justify-content:center;}
.pgift-check-star{position:absolute;bottom:2px;animation:pgiftStarPop 1.8s ease-in-out infinite;transform-origin:center;}
@keyframes pgiftStarPop{0%{opacity:0;transform:translateY(4px) scale(.4);}30%{opacity:1;transform:translateY(-6px) scale(1);}60%{opacity:.8;transform:translateY(-14px) scale(.85);}100%{opacity:0;transform:translateY(-22px) scale(.5);}}
.pgift-title{font-size:15.5px;font-weight:800;margin-top:2px;}
/* خط قابلیت/امتیاز پلن - جدا از عنوان (اسم پلن) و جدا از توضیح فرستنده (پایین‌تر) */
.pgift-perk{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;background:rgba(255,255,255,.16);padding:5px 11px;border-radius:20px;margin-top:9px;line-height:1.3;}
.pgift-sub{font-size:12.5px;opacity:.88;margin-top:8px;line-height:1.4;max-width:210px;margin-left:auto;margin-right:auto;}
.pgift-learn-btn{margin-top:14px;padding:9px 22px;border-radius:20px;background:rgba(255,255,255,.18);border:none;color:#fff;font-size:13px;font-weight:700;cursor:pointer;}
.pgift-learn-btn:active{background:rgba(255,255,255,.28);}
.b-react{font-size:13.5px;cursor:pointer;background:var(--bg);color:var(--text);border:1px solid var(--border2);border-radius:999px;padding:3px 9px 3px 7px;transition:transform .12s,background .12s,border-color .12s;display:inline-flex;align-items:center;gap:4px;line-height:1.3;}
.b-react-n{font-family:'Inter',sans-serif;font-size:12.5px;font-weight:700;color:var(--text2);}
.b-react:active{transform:scale(.9);}
.b-react.mine{background:var(--accent-bg);border-color:var(--accent);}
.b-react.mine .b-react-n{color:var(--accent);}
.b-react-add{font-size:13px;font-weight:700;cursor:pointer;background:var(--bg);color:var(--text2);border:1px solid var(--border2);border-radius:999px;padding:3px 9px;line-height:1.3;}
.b-react-add:active{transform:scale(.9);}
.b-react-img{width:16px;height:16px;object-fit:contain;border-radius:3px;vertical-align:middle;}
.bctx-react-em-img{width:24px;height:24px;object-fit:contain;flex-shrink:0;cursor:pointer;border-radius:6px;transition:transform .15s;}
.bctx-react-em-img:active{transform:scale(1.3);}
.dm-react-picker{display:flex;flex-wrap:wrap;gap:8px;background:var(--bg);border:1px solid var(--border);border-radius:18px;padding:10px 12px;position:fixed;bottom:72px;left:50%;transform:translateX(-50%);z-index:999;box-shadow:var(--shadow);max-width:320px;}
.dm-react-picker span{font-size:22px;cursor:pointer;transition:transform .15s;}
.dm-react-picker span:hover{transform:scale(1.3);}
.dm-react-picker img,.dm-react-picker video{width:26px;height:26px;object-fit:contain;cursor:pointer;border-radius:6px;transition:transform .15s;}
.dm-react-picker img:hover,.dm-react-picker video:hover{transform:scale(1.3);}
.dm-react-folder-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:16px;background:var(--bg2);border:1px solid var(--border);font-size:13px;font-weight:600;cursor:pointer;color:var(--text2);}
.dm-react-folder-chip.on{background:var(--accent);color:#fff;border-color:var(--accent);}
.bctx-react-strip{display:flex;gap:2px;padding:8px 6px;overflow-x:auto;border-bottom:1px solid var(--border);scrollbar-width:none;}
.bctx-react-strip::-webkit-scrollbar{display:none;}
.bctx-react-em{font-size:24px;flex-shrink:0;cursor:pointer;padding:4px 6px;border-radius:50%;transition:transform .15s;}
.bctx-react-em:active{transform:scale(1.3);}
/* ===== DM v2: بازطراحی دقیق حباب پیام‌ها (عین Telegram) ===== */
.dm-chat .chat-msgs{gap:2px;}
.dm-chat .bw{max-width:100%;min-width:0;align-items:flex-end!important;gap:6px;}
/* لیمیت استاندارد حباب: روی گوشی نسبی (۸۰٪ صفحه)، ولی روی لپ‌تاپ/دسکتاپ دیگه هیچ‌وقت از ۴۸۰px بزرگ‌تر نشه
   (قبلاً فقط درصدی بود، یعنی روی صفحه‌ی عریض لپ‌تاپ حباب‌ها غیرعادی/خیلی پهن می‌شدن - عین اکثر اپ‌های چت) */
.dm-chat .bw.me,.dm-chat .bw.other{display:flex;flex-direction:row;align-items:flex-end;max-width:min(80%,480px);min-width:0;}
.dm-chat .bw.me{align-self:flex-end;margin-left:auto;margin-right:0;}
.dm-chat .bw.other{align-self:flex-start;margin-right:auto;margin-left:0;}
.dm-chat .bw.me+.bw.me,.dm-chat .bw.other+.bw.other{margin-top:2px;}
.dm-chat .bw.grouped{margin-top:2px!important;}
.dm-chat .bw:not(.grouped){margin-top:10px;}
.dm-chat .bw:first-child{margin-top:0;}
.dm-chat .bw-col{display:flex;flex-direction:column;min-width:0;max-width:100%;}
.dm-chat .bw.me .bw-col{align-items:flex-end;}
.dm-chat .bw.other .bw-col{align-items:flex-start;}
.dm-chat .bw-avatar-spacer{width:32px;flex-shrink:0;}
.dm-chat .bubble{padding:7px 11px 8px;font-size:var(--dm-fs,16px);line-height:1.52;letter-spacing:.1px;position:relative;max-width:100%;box-sizing:border-box;overflow-wrap:anywhere;}
.dm-chat .bubble.me{border-bottom-right-radius:5px;}
.dm-chat .bubble.other{border-bottom-left-radius:5px;}
.dm-chat .b-time{margin-top:0;font-size:11.5px;color:var(--text3);white-space:nowrap;flex-shrink:0;padding-bottom:3px;display:flex;align-items:center;gap:3px;}
/* Telegram-style: time+ticks sit fitted inside the bubble itself, not as a separate outside row */
.b-time-in{float:right;display:inline-flex;align-items:center;gap:3px;font-size:11px;line-height:1;margin:3px 0 1px 6px;white-space:nowrap;user-select:none;position:relative;top:1px;}
.bubble.me .b-time-in{color:rgba(255,255,255,.72);}
.bubble.other .b-time-in{color:var(--text2);}
.b-time-ov{position:absolute;right:6px;bottom:6px;display:inline-flex;align-items:center;gap:3px;font-size:11px;line-height:1;padding:2px 6px;border-radius:10px;background:rgba(0,0,0,.45);color:#fff;white-space:nowrap;user-select:none;z-index:2;}
.b-time-blk{display:flex;justify-content:flex-end;align-items:center;gap:3px;font-size:11px;margin-top:4px;white-space:nowrap;user-select:none;}
.bubble.me .b-time-blk{color:rgba(255,255,255,.72);}
.bubble.other .b-time-blk{color:var(--text2);}
.dm-date-sep{text-align:center;font-size:12.5px;font-weight:600;color:var(--text2);margin:16px 0 6px;}

/* ===== افکت ستاره‌ی آبیِ زیر آیکون گیفت‌استاتوس - از پایین میاد، کمی دور می‌شه و محو می‌شه، در فضای محدود ===== */
@keyframes giftStatusStarPop{
    0%{opacity:0;transform:translate(-50%,-1px) scale(.35);}
    18%{opacity:1;transform:translate(-50%,3px) scale(1);}
    65%{opacity:.85;transform:translate(-50%,8px) scale(.85);}
    100%{opacity:0;transform:translate(-50%,12px) scale(.4);}
}
.gift-status-star{position:absolute;left:50%;bottom:-3px;pointer-events:none;filter:drop-shadow(0 0 2px rgba(59,157,251,.8));animation:giftStatusStarPop 1.6s ease-in-out infinite;}

/* ===== کارت گیفت/کالکشنال یکتا در دایرکت - عین تلگرام: مستقل و وسط‌چین، نه بابل پیام ===== */
.gift-sent-banner{position:fixed;top:66px;left:50%;transform:translateX(-50%) translateY(-8px);display:flex;align-items:center;gap:10px;max-width:82vw;padding:10px 16px;background:rgba(30,30,34,.94);color:#fff;border-radius:18px;box-shadow:0 8px 22px rgba(0,0,0,.3);z-index:9999;opacity:0;transition:opacity .22s,transform .22s;}
.gift-sent-banner.show{opacity:1;transform:translateX(-50%) translateY(0);}
.gift-sent-banner .gsb-ic{font-size:26px;line-height:1;flex-shrink:0;display:flex;align-items:center;justify-content:center;width:30px;height:30px;}
.gift-sent-banner .gsb-ic img,.gift-sent-banner .gsb-ic video{width:100%;height:100%;object-fit:contain;}
.gift-sent-banner .gsb-txt{font-size:13px;line-height:1.4;}
.dm-gift-sysmsg{display:flex;flex-direction:column;align-items:center;margin:10px 0;}
.dm-gift-sys-label{background:rgba(127,127,127,.16);color:var(--text2);font-size:12px;font-weight:600;padding:5px 12px;border-radius:12px;margin-bottom:8px;}
.dm-gift-collect-card{position:relative;width:270px;max-width:80vw;border-radius:22px;padding:26px 16px 18px;text-align:center;color:#fff;cursor:pointer;overflow:hidden;box-shadow:0 8px 22px rgba(0,0,0,.24);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);}
.dm-gift-ribbon{position:absolute;top:12px;right:-32px;width:112px;transform:rotate(45deg);background:rgba(0,0,0,.22);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);color:#fff;font-size:10px;font-weight:700;text-align:center;padding:3px 0;letter-spacing:.25px;text-transform:lowercase;}
.dm-gift-sparkle{position:absolute;top:14px;left:16px;font-size:20px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));animation:dm-gift-sparkle-pulse 1.8s ease-in-out infinite;}
@keyframes dm-gift-sparkle-pulse{0%,100%{opacity:.65;transform:scale(1);}50%{opacity:1;transform:scale(1.15);}}
.dm-gift-collect-icon{display:flex;align-items:center;justify-content:center;font-size:150px;line-height:1;filter:drop-shadow(0 6px 10px rgba(0,0,0,.28));}
.dm-gift-collect-from{font-size:14.5px;font-weight:800;margin-top:12px;line-height:1.25;}
.dm-gift-collect-from b{font-weight:800;}
.dm-gift-collect-name{font-size:12px;opacity:.85;margin-top:2px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;}
.dm-gift-collect-attrs{margin-top:12px;display:flex;flex-direction:column;gap:5px;}
.dm-gift-collect-attrs .row{display:flex;justify-content:space-between;font-size:12.5px;}
.dm-gift-collect-attrs .k{opacity:.75;}
.dm-gift-collect-attrs .v{font-weight:700;}
.dm-gift-collect-value{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:8px;font-size:12.5px;font-weight:700;opacity:.92;}
.dm-gift-collect-viewbtn{margin-top:14px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:16px;padding:9px 0;font-size:13px;font-weight:700;}
.dm-gift-sys-time{font-size:11px;color:var(--text3,var(--text2));margin-top:6px;}
@media (max-width:360px){.dm-gift-collect-card{width:210px;padding:18px 12px 12px;}.dm-gift-collect-icon{font-size:120px;}}
.dm-giveaway-card{width:230px;max-width:78vw;border-radius:20px;padding:26px 20px 20px;text-align:center;background:linear-gradient(160deg,#9d9da2,#77777c);color:#fff;box-shadow:0 10px 26px rgba(0,0,0,.28);}
.dm-giveaway-card.opened{background:linear-gradient(160deg,#3d3d40,#242426);}
.dm-giveaway-icon{width:76px;height:76px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;}
.dm-giveaway-title{font-size:17px;font-weight:800;margin-bottom:4px;}
.dm-giveaway-sub{font-size:13px;opacity:.9;margin-bottom:18px;line-height:1.4;}
.dm-giveaway-prize{font-size:14px;font-weight:700;margin-bottom:16px;}
.dm-giveaway-openbtn{background:rgba(0,0,0,.24);border-radius:20px;padding:11px 0;font-size:14px;font-weight:800;cursor:pointer;}
.dm-giveaway-openbtn.disabled{opacity:.65;cursor:default;pointer-events:none;}
.dm-date-sep:first-child{margin-top:2px;}
/* ===== لیست چت‌ها: سرچ + تب‌های دسته‌بندی ===== */
.dm-menu-btn{background:none;border:none;padding:0;cursor:pointer;display:flex;flex-shrink:0;border-radius:50%;line-height:0;}
.dm-search-wrap{padding:8px 12px 4px;}
.dm-search-box{display:flex;align-items:center;gap:8px;background:var(--bg2);border:1px solid var(--border2);border-radius:20px;padding:9px 14px;color:var(--text2);}
.dm-search-box input{flex:1;border:none;background:transparent;outline:none;color:var(--text);font-size:14.5px;min-width:0;}
.dm-search-box input::placeholder{color:var(--text3);}
.dm-tabs{display:flex;gap:8px;padding:6px 12px 10px;overflow-x:auto;scrollbar-width:none;}
.dm-tabs::-webkit-scrollbar{display:none;}
.dm-tab{flex-shrink:0;display:flex;align-items:center;gap:6px;padding:7px 14px;border-radius:18px;background:var(--bg2);color:var(--text2);font-size:13.5px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s;}
.dm-tab.active{background:var(--accent);color:#fff;}
.dm-tab-count{background:rgba(127,127,127,.25);border-radius:10px;padding:0 6px;font-size:11.5px;}
.dm-tab.active .dm-tab-count{background:rgba(255,255,255,.25);}
/* ===== ساید منو (فقط استایل/ساختار فعلاً، محتوا بعداً اضافه می‌شود) ===== */
.side-menu-ov{position:fixed;inset:0;background:rgba(0,0,0,0);pointer-events:none;z-index:900;transition:background .3s ease;}
.side-menu-ov.open{background:rgba(0,0,0,.45);pointer-events:auto;}
.side-menu-panel{position:absolute;top:0;left:0;bottom:0;width:78%;max-width:300px;background:var(--bg);transform:translateX(-100%);transition:transform .32s cubic-bezier(.4,0,.2,1);box-shadow:2px 0 24px rgba(0,0,0,.35);display:flex;flex-direction:column;}
.side-menu-ov.open .side-menu-panel{transform:translateX(0);}
.side-menu-head{padding:28px 20px 18px;background:linear-gradient(135deg,#5b6fd8,#8b5fbf);display:flex;flex-direction:column;align-items:flex-start;flex-shrink:0;}
.side-menu-body{flex:1;overflow-y:auto;padding:8px 0;}
.chat-inb{display:flex;gap:8px;align-items:center;padding:8px 12px;background:transparent;border-top:none;flex-shrink:0;}
.bot-glass-btn{background:rgba(140,140,160,.14);backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%);border:1px solid rgba(255,255,255,.14);color:var(--accent);font-size:13px;font-weight:600;padding:8px 14px;border-radius:20px;cursor:pointer;transition:background .15s ease,transform .1s ease;flex:1 1 calc(50% - 4px);min-width:0;text-align:center;}
.bot-glass-btn:active{transform:scale(.96);background:rgba(140,140,160,.24);}
.bot-glass-btn.wide{flex-basis:100%;}
.bot-glass-btn.c-green{background:rgba(49,162,76,.2);border-color:rgba(49,162,76,.45);color:#31a24c;}
.bot-glass-btn.c-blue{background:rgba(59,130,246,.2);border-color:rgba(59,130,246,.45);color:#3b82f6;}
.bot-glass-btn.c-red{background:rgba(224,36,94,.2);border-color:rgba(224,36,94,.45);color:#e0245e;}
.bot-menu-btn{flex:1;padding:10px 6px;background:var(--bg);border:1px solid var(--border2);border-radius:10px;color:var(--text);font-size:13px;font-weight:600;cursor:pointer;text-align:center;}
.bot-menu-btn.c-green{background:#31a24c;border-color:#31a24c;color:#fff;}
.bot-menu-btn.c-blue{background:#3b82f6;border-color:#3b82f6;color:#fff;}
.bot-menu-btn.c-red{background:#e0245e;border-color:#e0245e;color:#fff;}
.chat-input-pill{flex:1;display:flex;align-items:center;gap:6px;background:rgba(0,0,0,.4);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:none;border-radius:26px;padding:6px 8px 6px 14px;min-width:0;box-shadow:0 1px 4px rgba(0,0,0,.15);}
[data-theme="light"] .chat-input-pill{background:rgba(255,255,255,.55);}
.voice-msg{display:flex;align-items:center;gap:8px;cursor:pointer;min-width:170px;padding:4px 2px;}
.dl-file-box{position:relative;display:flex;align-items:center;gap:8px;margin-top:6px;padding:8px 10px;background:rgba(0,0,0,.15);border-radius:10px;max-width:220px;cursor:pointer;overflow:hidden;user-select:none;}
.dl-file-ic{flex-shrink:0;display:flex;}
.dl-file-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;}
.dl-file-sub{font-size:11.5px;opacity:.75;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dl-file-arrow{flex-shrink:0;display:flex;opacity:.8;}
.dl-file-box.dl-active .dl-file-arrow{animation:dlBounce 1s ease-in-out infinite;}
@keyframes dlBounce{0%,100%{transform:translateY(0);}50%{transform:translateY(3px);}}
.dl-file-box.dl-done .dl-file-arrow{animation:none;color:#3bc46a;}
.dl-progress-track{position:absolute;left:0;bottom:0;height:3px;width:100%;background:rgba(255,255,255,.12);}
.dl-progress-fill{height:100%;width:0%;background:currentColor;transition:width .15s linear;}
.dl-vid-btn{position:absolute;top:8px;inset-inline-end:8px;width:30px;height:30px;border-radius:50%;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(2px);}
.dl-vid-btn.dl-active svg{animation:dlBounce 1s ease-in-out infinite;}
.dl-vid-btn.dl-done{background:rgba(59,196,106,.85);}
.dl-img-btn{top:8px;inset-inline-end:8px;}
/* دکمه‌ی دانلود داخل مودال زوم عکس */
.img-mo-dl-btn{position:absolute;bottom:26px;inset-inline-end:26px;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.14);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:3;}
.img-mo-dl-btn:hover{background:rgba(255,255,255,.24);}
.img-mo-dl-btn.dl-active svg{animation:dlBounce 1s ease-in-out infinite;}
.img-mo-dl-btn.dl-done{background:rgba(59,196,106,.85);}
.voice-play-btn{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.22);border:none;color:inherit;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;}
.bubble.other .voice-play-btn{background:var(--accent);color:#fff;}
.voice-wave{flex:1;height:22px;display:flex;align-items:center;overflow:hidden;position:relative;}
.voice-wave-bar{width:100%;height:3px;border-radius:2px;background:linear-gradient(90deg,currentColor 0%,currentColor 50%,rgba(255,255,255,.35) 50%,rgba(255,255,255,.35) 100%);background-size:200% 100%;background-position:200% 0;opacity:.85;}
.voice-msg.playing .voice-wave-bar{transition:background-position linear;}
.voice-dur{font-size:11px;opacity:.85;flex-shrink:0;min-width:30px;}
.mic-btn{width:38px;height:38px;border-radius:50%;background:var(--accent);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;}
.mic-btn.recording{background:var(--red);animation:micPulse 1s infinite;}
@keyframes micPulse{0%,100%{transform:scale(1);}50%{transform:scale(1.08);}}
.voice-rec-bar{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--bg2);border-top:1px solid var(--border);}
.voice-rec-dot{width:10px;height:10px;border-radius:50%;background:var(--red);animation:micPulse 1s infinite;flex-shrink:0;}
/* ===== Swipe-to-reply ===== */
.bswipe{position:relative;display:flex;align-items:center;max-width:100%;min-width:0;}
.bw.me .bswipe{justify-content:flex-start;align-self:flex-start;}
.bw.other .bswipe{justify-content:flex-end;align-self:flex-end;}
.bswipe-inner{position:relative;width:fit-content;max-width:100%;display:inline-block;transform:translateX(0);transition:transform .28s cubic-bezier(.22,1,.36,1);will-change:transform;touch-action:pan-y;}
.bswipe-inner.dragging{transition:none;}
.bswipe-reply-ic{position:absolute;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--bg3);color:var(--accent);opacity:0;transform:scale(.5);transition:opacity .2s,transform .2s;pointer-events:none;}
.bw.me .bswipe-reply-ic{right:8px;}
.bw.other .bswipe-reply-ic{left:8px;}
.bswipe-reply-ic.show{opacity:1;transform:scale(1);}
.chat-fmt-bar{position:absolute;top:0;left:0;z-index:100000;display:none;align-items:center;gap:2px;background:#1c1f24;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:4px;box-shadow:0 8px 24px rgba(0,0,0,.4);opacity:0;transform:translateY(4px);transition:opacity .12s,transform .12s;}
.chat-fmt-bar.show{display:flex;opacity:1;transform:translateY(0);}
.chat-fmt-bar button{width:32px;height:32px;border:none;background:transparent;color:#fff;font-size:15px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.chat-fmt-bar button:active{background:rgba(255,255,255,.15);}
.gift-bd-swatch.selected{border-color:#fff!important;box-shadow:0 0 0 2px var(--accent);}
.msg-quote{display:block;position:relative;border-inline-start:3px solid var(--accent);background:rgba(127,127,127,.1);border-radius:6px;padding:6px 26px 6px 10px;margin:4px 0;font-weight:700;font-style:normal;font-size:.97em;line-height:1.35;color:var(--text);}
.msg-quote::after{content:'”';position:absolute;top:-2px;inset-inline-end:8px;font-size:22px;font-weight:900;font-family:Georgia,serif;opacity:.85;color:var(--quote-icon-color, var(--accent));}
/* ==================== SPLASH INTRO (لوگوی ورود) ==================== */
.tweek-splash{position:fixed;inset:0;z-index:999999;display:none;align-items:center;justify-content:center;background:var(--bg);transition:background .5s ease,opacity .5s ease;}
.tweek-splash.active{display:flex;}
[data-theme="light"] .tweek-splash,[data-theme="sepia"] .tweek-splash,[data-theme="rosegold"] .tweek-splash,[data-theme="ivory"] .tweek-splash,[data-theme="platinum"] .tweek-splash{background:#000;}
.tweek-splash-logo{color:#fff;font-size:76px;font-weight:900;line-height:1;transform-origin:center center;transition:transform .7s cubic-bezier(.65,0,.35,1);will-change:transform;}
html.tweek-splash-lock,html.tweek-splash-lock body{overflow:hidden;height:100%;}
.ce-quote{display:block;position:relative;border-inline-start:3px solid var(--accent);background:rgba(127,127,127,.1);border-radius:6px;padding:6px 26px 6px 10px;margin:4px 0;font-weight:700;font-style:normal;font-size:.97em;line-height:1.35;unicode-bidi:isolate;}
.ce-quote::after{content:'”';position:absolute;top:-2px;inset-inline-end:8px;font-size:22px;font-weight:900;font-family:Georgia,serif;opacity:.55;pointer-events:none;}
.b-replyq{display:flex;align-items:stretch;gap:8px;font-size:12.5px;color:var(--text2);padding:0 0 6px 0;margin-bottom:3px;cursor:pointer;width:100%;min-width:150px;max-width:100%;overflow:hidden;box-sizing:border-box;}
.b-replyq-bar{width:3px;border-radius:2px;flex-shrink:0;align-self:stretch;}
.b-replyq svg{flex-shrink:0;opacity:.7;}
.b-replyq span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;min-width:0;}
.b-replyq span:first-child{font-weight:700;}
.b-replyq span:last-child{opacity:.82;}
/* حباب یکپارچه مثل تلگرام: وقتی ریپلای‌کوت داخل خودِ bubble نشسته، هیچ پس‌زمینه/باکس جدا نداشته باشه - فقط نوار رنگی + تایپوگرافی، دقیقاً مثل رفرنس */
.bubble>.b-replyq:not(.dm-style){background:transparent!important;border-radius:0!important;}
/* استایل جدید ریپلای‌کوت مخصوص دایرکت (فقط DM) - کارت گردتر و تیره، نوار چسبیده به لبه با همون قد کارت، اسم بنفش پررنگ، متن روشن */
/* پس‌زمینه دیگه !important نیست: باید بذاره استایل inline (رنگ محو هم‌رنگ با رنگ انتخابی کاربر توی
   Chat Settings) رو override کنه؛ این مقدار فقط fallback پیش‌فرضه. */
.b-replyq.dm-style{align-items:center;gap:0;border-radius:12px!important;padding:7px 12px 7px 14px;margin-bottom:6px;min-height:40px;background:rgba(255,255,255,.16);position:relative;overflow:hidden;box-sizing:border-box;}
/* نکته مهم: پس‌زمینه‌ی نوار (b-replyq-bar) و رنگِ اسمِ ریپلای (span:first-child) دیگه !important نیستن،
   چون قراره دقیقاً همون رنگی که کاربر توی Chat Settings > Name انتخاب کرده (dm_color) از طریق استایل
   inline که PHP تولید می‌کنه رو نشون بدن - قبلاً این قانون‌ها با !important همیشه رنگ رو به‌زور سفید/آبی
   ثابت می‌کردن و انتخاب کاربر رو کاملاً نادیده می‌گرفتن. مقادیر زیر فقط به‌عنوان fallback پیش‌فرض می‌مونن
   (برای جایی که استایل inline رنگ ست نکرده باشه)، نه یه override اجباری. */
.b-replyq.dm-style .b-replyq-bar{position:absolute;left:0;top:5px;width:3px;height:calc(100% - 10px);border-radius:3px;align-self:auto;background:#fff;}
.b-replyq.dm-style span:first-child{font-weight:700;font-size:13px;color:#e8f4ff;margin-bottom:1px;}
.b-replyq.dm-style span:last-child{color:rgba(255,255,255,.9)!important;font-size:13px;}

[data-theme="light"] .b-replyq.dm-style{background:rgba(29,155,240,.08);}
[data-theme="light"] .b-replyq.dm-style span:first-child{color:#0a84ff;}
[data-theme="light"] .b-replyq.dm-style span:last-child{color:rgba(15,20,25,.72)!important;}

.bw.me .b-replyq.dm-style{background:rgba(255,255,255,.18)!important;}
.bw.me .b-replyq.dm-style .b-replyq-bar{background:#fff;}
.bw.me .b-replyq.dm-style span:first-child{font-weight:800;color:#fff;}
.bw.me .b-replyq.dm-style span:last-child{color:rgba(255,255,255,.92)!important;font-weight:500;}
/* پس‌زمینه‌ی باکس ریپلای برای پیامِ طرف مقابل دیگه به‌زور آبی نیست (!important قبلی حذف شد) - چون الان
   inline style (بر اساس رنگ انتخابی همون کاربر توی Chat Settings) این پس‌زمینه رو ست می‌کنه؛ این خط فقط
   fallback پیش‌فرضه، برای وقتی که به هر دلیلی inline ست نشده باشه. */
.bw.other .b-replyq.dm-style{background:rgba(29,155,240,.1);}
.bw.other .b-replyq.dm-style .b-replyq-bar{background:#1d9bf0;}
.bw.other .b-replyq.dm-style span:first-child{font-weight:700;color:#1d9bf0;}
.bw.other .b-replyq.dm-style span:last-child{color:var(--text)!important;font-weight:400;opacity:.8;}
[data-theme="light"] .bw.me .b-replyq.dm-style{background:rgba(255,255,255,.2)!important;}
[data-theme="light"] .bw.me .b-replyq.dm-style span:first-child{color:#fff;}
[data-theme="light"] .bw.me .b-replyq.dm-style span:last-child{color:rgba(255,255,255,.92)!important;}
[data-theme="light"] .bw.other .b-replyq.dm-style{background:rgba(29,155,240,.07);}
[data-theme="light"] .bw.other .b-replyq.dm-style span:first-child{color:#0a84ff;}
[data-theme="light"] .bw.other .b-replyq.dm-style span:last-child{color:rgba(15,20,25,.68)!important;}
/* اطمینان از خوانایی کامل: متن اصلی پیام هرگز truncate نشه، حتی وقتی پیام Reply شده */
.bubble .b-replyq + *{white-space:normal!important;}
/* ===== Long-press context menu ===== */
.bctx-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.35);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:500;align-items:center;justify-content:center;animation:bctxFadeIn .15s ease;}
.bctx-ov.open{display:flex;}
@keyframes bctxFadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes heartBurstPop{0%{transform:translate(-50%,-50%) scale(0);opacity:0;}30%{transform:translate(-50%,-50%) scale(1.15);opacity:1;}55%{transform:translate(-50%,-50%) scale(0.95);}100%{transform:translate(-50%,-50%) scale(1.3);opacity:0;}}
.bctx-menu{background:var(--bg);border-radius:14px;overflow:hidden;min-width:200px;box-shadow:var(--shadow);transform:scale(.85);animation:bctxPop .18s cubic-bezier(.34,1.56,.64,1) forwards;}
@keyframes bctxPop{to{transform:scale(1);}}
.bctx-item{display:flex;align-items:center;gap:12px;padding:14px 18px;font-size:15px;color:var(--text);cursor:pointer;transition:background .12s;border-bottom:1px solid var(--border);}
.bctx-item:last-child{border-bottom:none;}
.bctx-item:hover{background:var(--hover);}
.bctx-item.danger{color:var(--red);}
.bctx-item.hidden-ctx{display:none;}
.bw.longpress .bubble,.bw.longpress .b-replyq{outline:2px solid var(--accent);}
/* ===== Reply preview bar (above input) ===== */
.reply-prevbar{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--bg2);border-top:1px solid var(--border);animation:replyBarIn .18s ease;}
@keyframes replyBarIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
.reply-prevbar-line{width:3px;align-self:stretch;border-radius:2px;background:var(--accent);flex-shrink:0;}
.reply-prevbar-txt{flex:1;min-width:0;}
.reply-prevbar-lbl{font-size:12px;font-weight:700;color:var(--accent);}
.reply-prevbar-content{font-size:13px;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.reply-prevbar-x{background:none;border:none;color:var(--text2);cursor:pointer;flex-shrink:0;padding:4px;display:flex;}
.chat-inp{flex:1;border:1px solid var(--border2);border-radius:24px;padding:10px 16px;background:var(--bg2);color:var(--text);font-size:15px;max-height:120px;overflow-y:auto;outline:none;word-break:break-word;transition:height .16s cubic-bezier(.4,0,.2,1),border-radius .18s ease;}
.chat-input-pill .chat-inp{border:none;background:transparent;padding:8px 4px;border-radius:0;color:var(--text);}
.chat-input-pill .chat-inp[data-placeholder]:empty::before{color:var(--text3,#8a8a8a);}
.chat-input-pill .chat-emoji-btn{background:none;border:none;color:var(--text2,#8a8a8a);padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.chat-inp:focus{border-color:var(--accent);}
.chat-snd{width:36px;height:36px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;flex-shrink:0;animation:sndPopIn .2s cubic-bezier(.34,1.56,.64,1);}
@keyframes sndPopIn{from{transform:scale(0);opacity:0;}to{transform:scale(1);opacity:1;}}
.chat-plus-wrap{transition:transform .2s ease,opacity .2s ease;}
.chat-plus-wrap.hide-plus{transform:scale(0);opacity:0;width:0;margin:0;pointer-events:none;}
.chat-snd svg{width:17px;height:17px;fill:#fff;}
/* SETTINGS */
.si{display:flex;align-items:center;justify-content:space-between;padding:15px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s;}
.si:hover{background:var(--hover);}
.si-l{display:flex;align-items:center;gap:12px;font-size:15px;color:var(--text);}
.si-l svg{width:20px;height:20px;color:var(--text2);}
.ss{font-size:17px;font-weight:700;color:var(--text);padding:18px 16px 10px;}
.tr{width:20px;height:20px;border-radius:50%;border:2px solid var(--border2);flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.tr.sel{border-color:var(--accent);}
.tr.sel::after{content:'';width:10px;height:10px;border-radius:50%;background:var(--accent);}
/* EDIT PROFILE */
.ef{padding:12px 16px;border-bottom:1px solid var(--border);}
.el{font-size:12px;color:var(--accent);margin-bottom:4px;}
.ei{width:100%;border:none;background:transparent;color:var(--text);font-size:16px;padding:4px 0;}
.ei::placeholder{color:var(--text3);}
/* STORY VIEWER */
.sv{position:fixed;inset:0;background:#000;z-index:600;display:none;flex-direction:column;}
.sv.open{display:flex;}
/* CUSTOMIZE */
.cust-sec{padding:16px;border-bottom:1px solid var(--border);}
.cust-sec.cust-prem{position:relative;}
.cust-sec.cust-prem.locked{cursor:pointer;opacity:.5;filter:grayscale(.3);pointer-events:auto;}
.cust-sec.cust-prem.locked *{pointer-events:none;}
.cust-lock-badge{position:absolute;top:14px;right:16px;background:#a855f7;color:#fff;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;display:flex;align-items:center;gap:4px;z-index:2;}
.cust-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:12px;}
/* ===== Live post preview با افکت نوری ===== */
.prev-stage{position:relative;padding:18px 4px 28px;display:flex;justify-content:center;}
.prev-glow{position:absolute;left:50%;bottom:2px;width:78%;height:34px;transform:translateX(-50%) scaleX(.85);border-radius:50%;background:var(--accent);filter:blur(18px);opacity:0;pointer-events:none;z-index:0;transition:background .25s ease;}
.prev-glow.pulse{animation:prevGlowPulse .85s cubic-bezier(.22,1,.36,1);}
@keyframes prevGlowPulse{
    0%{opacity:0;transform:translateX(-50%) scaleX(.7) scaleY(.6);}
    30%{opacity:.65;transform:translateX(-50%) scaleX(1.05) scaleY(1.3);}
    100%{opacity:0;transform:translateX(-50%) scaleX(.85) scaleY(.6);}
}
.prev-card{position:relative;z-index:1;width:100%;max-width:420px;border:1px solid var(--border);border-radius:16px;cursor:default;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease;background:var(--bg);}
.prev-card.bump{animation:prevCardBump .5s cubic-bezier(.34,1.56,.64,1);}
@keyframes prevCardBump{0%{transform:scale(1);}35%{transform:scale(1.025);}100%{transform:scale(1);}}
.prev-card.has-bg{border-color:transparent;}
.color-grid{display:flex;gap:10px;flex-wrap:wrap;}
.c-dot{width:30px;height:30px;border-radius:50%;cursor:pointer;border:3px solid transparent;transition:transform .15s;}
.c-dot:hover{transform:scale(1.1);}
.c-dot.sel{border-color:var(--text);}
.bg-sw{width:56px;height:36px;border-radius:8px;cursor:pointer;border:2px solid transparent;font-size:9px;color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;transition:transform .15s;}
.bg-sw:hover{transform:scale(1.05);}
.bg-sw.sel{border-color:var(--text);}
.font-opt{padding:7px 14px;border-radius:8px;border:1px solid var(--border2);cursor:pointer;font-size:14px;color:var(--text);background:transparent;margin-right:8px;margin-bottom:8px;transition:border-color .15s;}
.font-opt.sel{border-color:var(--accent);color:var(--accent);background:var(--accent-bg);}
.tgl-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;}
.tgl{width:44px;height:24px;border-radius:12px;background:var(--border2);position:relative;cursor:pointer;transition:background .2s;flex-shrink:0;}
.tgl.on{background:var(--accent);}
.tgl::after{content:'';position:absolute;width:20px;height:20px;border-radius:50%;background:#fff;top:2px;left:2px;transition:transform .2s;box-shadow:0 1px 4px rgba(0,0,0,.3);}
.tgl.on::after{transform:translateX(20px);}
/* 2FA */
.tfa-code{font-size:36px;font-weight:900;letter-spacing:10px;color:var(--accent);text-align:center;padding:24px;background:var(--bg2);border-radius:12px;margin:16px 0;}
/* EMPTY */
.empty-st{display:flex;flex-direction:column;align-items:center;padding:48px 24px;text-align:center;}
.empty-st h3{font-size:22px;font-weight:800;color:var(--text);margin-bottom:8px;}
.empty-st p{font-size:14px;color:var(--text2);}
/* MISC */
.content-area{padding-bottom:60px;}
.alert{padding:12px 16px;margin:8px 16px;border-radius:8px;font-size:14px;}
.alert.err{background:var(--red-bg);color:var(--red);}
.alert.suc{background:var(--green-bg);color:var(--green);}

/* ===== TYPING INDICATOR ===== */
.b-time-in svg,.b-time-ov svg,.b-time-blk svg{transition:transform .28s cubic-bezier(.34,1.56,.64,1);}
@keyframes tickSeenPop{0%{transform:scale(1);}40%{transform:scale(1.35);}100%{transform:scale(1);}}
.tick-seen-pop{animation:tickSeenPop .38s cubic-bezier(.34,1.56,.64,1);}
.typing-row{display:flex;align-items:center;gap:8px;padding:4px 0;}
.typing-dots{display:flex;align-items:center;gap:3px;padding:10px 14px;background:var(--bg3);border-radius:18px;border-bottom-left-radius:4px;}
.typing-dots span{width:7px;height:7px;border-radius:50%;background:var(--text2);display:inline-block;animation:typingBounce 1.2s infinite;}
.typing-dots span:nth-child(2){animation-delay:.2s;}
.typing-dots span:nth-child(3){animation-delay:.4s;}
@keyframes typingBounce{0%,60%,100%{transform:translateY(0);}30%{transform:translateY(-6px);}}

/* ===== DM COLOR PICKER (Telegram-style) ===== */
.gift-showcase-wrap{position:absolute;inset:0;pointer-events:none;z-index:0;}
.gift-showcase-item{position:absolute;transform:translate(-50%,-50%);animation:giftShowcaseFloat 3.6s ease-in-out infinite;}
.gift-showcase-glow{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,var(--gsg-c,rgba(255,255,255,.55)) 0%,rgba(255,255,255,0) 75%);filter:blur(2px);}
@keyframes giftShowcaseFloat{0%,100%{transform:translate(-50%,-50%) translateY(0);}50%{transform:translate(-50%,-50%) translateY(-7px);}}
.dm-color-grid{display:flex;flex-wrap:wrap;gap:10px;padding:16px;}
.dm-settings-row{display:flex;align-items:center;gap:12px;padding:14px 16px;border-top:1px solid var(--border);cursor:pointer;color:var(--text);}
.dm-settings-row-ic{width:22px;display:flex;align-items:center;justify-content:center;color:var(--text2);flex-shrink:0;}
.dm-nc-seg{display:flex;background:var(--bg2);border-radius:16px;padding:3px;gap:2px;}
.dm-nc-seg-opt{padding:6px 16px;font-size:14px;font-weight:700;color:var(--text2);border-radius:14px;cursor:pointer;}
.dm-nc-seg-opt.active{background:var(--text);color:var(--bg);}
.settings-row{display:flex;align-items:center;gap:12px;padding:14px 4px;border-bottom:1px solid var(--border);color:var(--text);text-decoration:none;font-size:14px;cursor:pointer;}
.settings-row svg{flex-shrink:0;color:var(--text2);}
.dm-color-opt{width:48px;height:48px;border-radius:50%;cursor:pointer;position:relative;flex-shrink:0;transition:transform .15s;}
.dm-color-opt:hover{transform:scale(1.1);}
.dm-color-opt.sel{outline:3px solid var(--text);outline-offset:3px;}
.dm-icon-opt.sel{border-color:var(--accent)!important;background:rgba(29,155,240,.15)!important;}
.dm-color-opt.sel::after{content:'✓';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;z-index:2;text-shadow:0 1px 3px rgba(0,0,0,.5);}
.dm-diamond{position:absolute;top:50%;left:50%;width:13px;height:13px;transform:translate(-50%,-50%) rotate(45deg);border-radius:2px;box-shadow:0 0 0 1.5px rgba(0,0,0,.15);}

/* ===== LIKE ANIMATION EFFECTS ===== */
@keyframes likeHeartPop{0%{transform:scale(1);}30%{transform:scale(1.5);}60%{transform:scale(.9);}100%{transform:scale(1);}}
@keyframes likeSparkle{0%{opacity:1;transform:scale(0);}50%{opacity:1;transform:scale(1.2);}100%{opacity:0;transform:scale(1.5);}}
.lb.liked svg{animation:likeHeartPop .35s cubic-bezier(.34,1.56,.64,1);}
[data-like-effect="bounce"] .lb.liked svg{animation:likeHeartPop .35s cubic-bezier(.34,1.56,.64,1);}
[data-like-effect="none"] .lb.liked svg{animation:none;}
[data-like-effect="spin"] .lb.liked svg{animation:likeSpin .4s ease;}
@keyframes likeSpin{0%{transform:rotate(-30deg) scale(.7);}60%{transform:rotate(10deg) scale(1.3);}100%{transform:rotate(0deg) scale(1);}}

/* ===== AMOLED MODE ===== */
[data-theme="dark"][data-amoled="1"] {--bg:#000000!important;--bg2:#000000!important;--bg3:#0a0a0a!important;--border:#1a1a1a!important;--hover:rgba(255,255,255,.03)!important;}

/* ===== FONT SIZE SCALE ===== */
[data-font-size="sm"] {font-size:13px;}
[data-font-size="md"] {font-size:15px;}
[data-font-size="lg"] {font-size:17px;}
[data-font-size="xl"] {font-size:19px;}
[data-font-size="sm"] .pc{font-size:13px;}
[data-font-size="lg"] .pc{font-size:17px;}
[data-font-size="xl"] .pc{font-size:19px;}

/* ===== CORNER RADIUS ===== */
[data-radius="sharp"] .post-card,.card{border-radius:0!important;}
[data-radius="round"] .post-card,[data-radius="round"] .bubble,[data-radius="round"] .qpost{border-radius:18px!important;}
[data-radius="pill"] .bubble{border-radius:24px!important;}

/* ===== POST LAYOUT: CENTERED (PROFILE-CARD STYLE) ===== */
[data-post-layout="centered"] .post-card{flex-direction:column;align-items:center;text-align:center;padding-top:16px;}
[data-post-layout="centered"] .post-card-l{width:auto;margin:0 0 8px;}
[data-post-layout="centered"] .post-card-r{width:100%;position:relative;}
[data-post-layout="centered"] .ph{flex-direction:column;align-items:center;margin-top:0;}
[data-post-layout="centered"] .ph-left{display:flex;flex-wrap:wrap;justify-content:center;overflow:visible;max-width:100%;}
[data-post-layout="centered"] .pn{max-width:100%;white-space:normal;text-align:center;}
[data-post-layout="centered"] .pun{flex-basis:100%;display:block;text-align:center;max-width:100%;margin:2px 0 0;}
[data-post-layout="centered"] .ph-btns{position:absolute;top:-6px;inset-inline-end:0;margin-left:0;}
[data-post-layout="centered"] .reply-line{text-align:center;}
[data-post-layout="centered"] .comm-line{justify-content:center;}
[data-post-layout="centered"] .pc{text-align:center!important;margin-top:8px;}
[data-post-layout="centered"] .qpost{text-align:center;margin-left:auto;margin-right:auto;}
[data-post-layout="centered"] .pacts{justify-content:center;gap:26px;margin:10px auto 0;}

/* ===== REDUCE MOTION ===== */
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}}
[data-reduce-motion="1"] *{animation:none!important;transition-duration:.001ms!important;}

/* ===== DATA SAVER ===== */
[data-data-saver="1"] .pimgs img,[data-data-saver="1"] video{display:none;}
[data-data-saver="1"] .pimgs::after{content:'📷 Image hidden (Data Saver)';display:block;padding:10px;font-size:13px;color:var(--text2);text-align:center;background:var(--bg2);border-radius:8px;margin-top:8px;}

/* ===== PROFILE PATTERN BG ===== */
.profile-pattern-bg{position:absolute;inset:0;opacity:.18;}
.profile-pattern-bg.dots{background-image:radial-gradient(circle,var(--accent) 1px,transparent 1px);background-size:16px 16px;}
.profile-pattern-bg.lines{background-image:repeating-linear-gradient(45deg,var(--accent) 0,var(--accent) 1px,transparent 0,transparent 50%);background-size:12px 12px;}
.profile-pattern-bg.grid{background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:20px 20px;}
.profile-pattern-bg.waves{background:repeating-radial-gradient(circle at 50% 0,transparent 0,transparent 18px,rgba(255,255,255,.15) 18px,rgba(255,255,255,.15) 20px);}

/* ===== GIFT ANIMATIONS (global — works in shop, profile, DM bubbles) ===== */
@keyframes gift-pulse{0%,100%{transform:scale(1);}50%{transform:scale(1.12);}}
@keyframes gift-bounce{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}
@keyframes gift-shine{0%{filter:brightness(1);}50%{filter:brightness(1.4) drop-shadow(0 0 8px #4facfe);}100%{filter:brightness(1);}}
.gift-pulse{display:inline-block;animation:gift-pulse 1.6s ease-in-out infinite;}
.gift-bounce{display:inline-block;animation:gift-bounce 1.6s ease-in-out infinite;}
.gift-shine{display:inline-block;animation:gift-shine 1.8s ease-in-out infinite;}

/* ===== DM Premium (صفحه‌ی جداگانه، طراحی الهام‌گرفته از تلگرام پرمیوم) ===== */
.dmprem-hero{text-align:center;padding:58px 24px 30px;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 0%,#3a2f6b 0%,#241d3d 45%,#161320 100%);}
.dmprem-stars{position:absolute;inset:0;pointer-events:none;}
.dmprem-stars span{position:absolute;background:#fff;border-radius:50%;opacity:.5;animation:dmpremTwinkle 2.6s ease-in-out infinite;}
@keyframes dmpremTwinkle{0%,100%{opacity:.15;}50%{opacity:.8;}}
.dmprem-icon-wrap{position:relative;width:92px;height:92px;margin:0 auto 18px;display:flex;align-items:center;justify-content:center;}
.dmprem-icon-glow{position:absolute;inset:-14px;border-radius:50%;background:radial-gradient(circle,rgba(139,95,191,.55) 0%,rgba(91,111,216,0) 70%);filter:blur(2px);}
.dmprem-icon-badge{position:relative;width:88px;height:88px;border-radius:26px;background:linear-gradient(150deg,#6d7cf0,#8b5fbf 55%,#5b3fa8);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(91,63,168,.5),inset 0 1px 1px rgba(255,255,255,.35);animation:dmpremFloat 3.2s ease-in-out infinite;}
@keyframes dmpremFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-5px);}}
.dmprem-title{font-size:26px;font-weight:800;color:#fff;margin:0 0 8px;}
.dmprem-sub{font-size:13.5px;color:rgba(255,255,255,.68);line-height:1.5;max-width:280px;margin:0 auto;}
.dmprem-card{margin:16px;background:#0e0d13;border:1px solid rgba(255,255,255,.06);border-radius:18px;overflow:hidden;}
.dmprem-row{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.07);}
.dmprem-row:last-child{border-bottom:none;}
.dmprem-row-ic{width:38px;height:38px;border-radius:11px;flex-shrink:0;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 8px rgba(0,0,0,.25);}
.dmprem-row-ic svg{width:20px;height:20px;}
.dmprem-row-txt{flex:1;min-width:0;padding-top:1px;}
.dmprem-row-title{font-size:15.5px;font-weight:700;color:#fff;margin-bottom:2px;}
.dmprem-row-desc{font-size:13px;color:rgba(255,255,255,.55);line-height:1.42;}
.dmprem-row-chev{flex-shrink:0;color:rgba(255,255,255,.3);margin-top:8px;}
/* ===== پوشه‌بندی بوکمارک‌ها ===== */
.bm-folders-bar{display:flex;gap:8px;overflow-x:auto;padding:10px 14px;border-bottom:1px solid var(--border);scrollbar-width:none;}
.bm-folders-bar::-webkit-scrollbar{display:none;}
.bm-chip{flex-shrink:0;white-space:nowrap;padding:7px 14px;border-radius:999px;font-size:13.5px;font-weight:600;border:1px solid var(--border2);background:var(--bg2);color:var(--text2);cursor:pointer;text-decoration:none;display:inline-block;}
.bm-chip.active{background:var(--accent);border-color:var(--accent);color:#fff;}
.bm-chip-add{color:var(--accent);border-style:dashed;background:transparent;}
.bm-folder-actions{display:flex;gap:16px;padding:8px 14px;font-size:13px;color:var(--text2);}
.bm-folder-actions button{background:none;border:none;color:var(--text2);font-size:13px;cursor:pointer;padding:0;}
.bm-folder-actions button:hover{color:var(--accent);}
.bm-item{position:relative;border-bottom:1px solid var(--border);}
.bm-item-actions{display:flex;justify-content:flex-end;padding:0 14px 10px;margin-top:-6px;}
.bm-move-btn{display:flex;align-items:center;gap:5px;font-size:12.5px;color:var(--text3);background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:5px 10px;cursor:pointer;}
.bm-move-btn:hover{color:var(--accent);border-color:var(--accent);}
.bm-move-menu{position:fixed;z-index:2000;min-width:200px;max-width:260px;max-height:60vh;overflow-y:auto;background:var(--bg);border:1px solid var(--border2);border-radius:14px;box-shadow:var(--shadow);padding:6px;}
.bm-move-menu-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:9px;font-size:14px;color:var(--text);cursor:pointer;}
.bm-move-menu-item:hover{background:var(--hover);}
.bm-move-menu-item.sel{color:var(--accent);font-weight:700;}
.bm-move-menu-sep{height:1px;background:var(--border);margin:4px 2px;}

/* ===== Feed Giveaway — polished, self-contained Tweet card ===== */
.feed-giveaway{background:var(--bg2);position:relative;display:block;width:100%;box-sizing:border-box;margin:14px 0 3px;border:1px solid color-mix(in srgb,var(--accent) 18%,var(--border2));border-radius:20px;overflow:hidden;contain:layout paint;background:linear-gradient(145deg,color-mix(in srgb,var(--bg2) 92%,var(--accent) 8%),var(--bg2));box-shadow:0 10px 30px rgba(0,0,0,.12);isolation:isolate;}
.feed-giveaway:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 30%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 44%),linear-gradient(180deg,rgba(255,255,255,.045),transparent 38%);pointer-events:none;z-index:0;}
.feed-gw-glow{position:absolute;width:220px;height:160px;left:50%;top:48px;transform:translateX(-50%);background:radial-gradient(circle,color-mix(in srgb,var(--accent) 12%,transparent),transparent 68%);filter:blur(26px);pointer-events:none;z-index:0;opacity:.8;}
.feed-gw-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 15px 0;position:relative;z-index:2;}
.feed-gw-label{display:inline-flex;align-items:center;gap:7px;min-width:0;font-size:12px;font-weight:850;letter-spacing:.15px;color:var(--text);line-height:18px;}
.feed-gw-label>svg{display:block!important;width:18px!important;height:18px!important;max-width:18px!important;max-height:18px!important;flex:0 0 18px!important;color:var(--accent);}
.feed-gw-status{font-size:10.5px;font-weight:800;color:var(--text2);padding:5px 9px;border:1px solid color-mix(in srgb,var(--text) 8%,var(--border2));border-radius:999px;background:color-mix(in srgb,var(--bg) 34%,transparent);backdrop-filter:blur(8px);white-space:nowrap;}
.feed-gw-prize-top{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:11px;font-size:11.5px;font-weight:850;color:var(--text2);position:relative;z-index:2;}
.feed-gw-prize-top img,.feed-gw-prize-top svg{display:block!important;width:17px!important;height:17px!important;max-width:17px!important;max-height:17px!important;flex:0 0 17px!important;}
.feed-gw-visual{padding:5px 0 0;position:relative;z-index:2;overflow:hidden;}
.feed-gw-visual:after{content:"";position:absolute;width:92px;height:22px;left:50%;bottom:8px;transform:translateX(-50%);border-radius:50%;background:rgba(0,0,0,.11);filter:blur(13px);z-index:-1;}
.feed-gw-visual .feed-gift-svg{display:block!important;margin:0 auto!important;width:84px!important;height:84px!important;max-width:84px!important;max-height:84px!important;flex:0 0 84px!important;overflow:hidden!important;}
.feed-gw-amount{text-align:center;font-size:21px;line-height:1.18;font-weight:900;letter-spacing:-.35px;color:var(--text);position:relative;z-index:2;}
.feed-gw-sub{text-align:center;margin-top:6px;font-size:11.5px;color:var(--text2);position:relative;z-index:2;}
.feed-gw-date{text-align:center;margin-top:5px;font-size:10.5px;color:var(--text3);position:relative;z-index:2;}
.feed-gw-actions{display:flex;justify-content:center;padding:14px 15px 16px;position:relative;z-index:2;}
.feed-gw-btn{min-width:182px;padding:10.5px 19px;border:1px solid color-mix(in srgb,var(--text) 9%,transparent);border-radius:12px;background:linear-gradient(180deg,var(--text),color-mix(in srgb,var(--text) 88%,#000));color:var(--bg);font-weight:850;font-size:12.5px;letter-spacing:.05px;box-shadow:0 6px 16px rgba(0,0,0,.13);transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease;}
.feed-gw-btn:hover{transform:translateY(-1px);box-shadow:0 9px 20px rgba(0,0,0,.18);}
.feed-gw-btn:active{transform:translateY(0) scale(.985);}
.feed-gw-btn:disabled{opacity:.62;transform:none;box-shadow:none;}
.feed-gw-btn.joined{display:inline-flex;align-items:center;justify-content:center;gap:6px;}
.feed-gw-btn.joined svg{width:15px;height:15px;max-width:15px;max-height:15px;}
.feed-gw-result{display:flex;align-items:center;justify-content:center;gap:7px;min-height:39px;padding:0 14px;font-size:12px;font-weight:800;color:var(--text2);}
.feed-gw-result svg{width:17px;height:17px;max-width:17px;max-height:17px;flex:0 0 17px;}
.feed-gw-result.won,.feed-gw-result.joined{color:var(--green);}
.feed-gw-tool.active{color:var(--accent);background:var(--accent-bg);}

/* گیواویِ گیفت/NFT - بک‌دراپ و سمبل به‌عنوان پس‌زمینه‌ی خودِ کارت (نه فقط آیکون)؛ رنگ‌ها با --gw-* ست می‌شن که PHP بسته به روشنی بک‌دراپ حساب می‌کنه، تا همیشه خوانا بمونه */
.feed-giveaway-nft{border-color:transparent;}
.feed-giveaway-nft:before{display:none;}
.feed-giveaway-nft .feed-gw-glow{display:none;}
.feed-gw-nft-watermark{position:absolute;left:50%;top:8px;transform:translateX(-50%);width:210px;height:210px;pointer-events:none;z-index:0;opacity:.9;}
.feed-gw-nft-watermark svg{display:block;width:100%;height:100%;}
.feed-giveaway-nft .feed-gw-label,.feed-giveaway-nft .feed-gw-prize-top,.feed-giveaway-nft .feed-gw-amount{color:var(--gw-fg,var(--text));}
.feed-giveaway-nft .feed-gw-label>svg{color:var(--gw-fg,var(--accent));}
.feed-giveaway-nft .feed-gw-sub,.feed-giveaway-nft .feed-gw-date{color:var(--gw-fg-soft,var(--text2));}
.feed-giveaway-nft .feed-gw-status{color:var(--gw-fg,var(--text));border-color:transparent;background:var(--gw-chip-bg,rgba(0,0,0,.18));}
.feed-giveaway-nft .feed-gw-result{color:var(--gw-fg-soft,var(--text2));}
.feed-giveaway-nft .feed-gw-visual:after{display:none;}
.feed-giveaway-nft .feed-gw-btn{background:var(--gw-btn-bg,var(--text));color:var(--gw-btn-fg,var(--bg));border-color:transparent;box-shadow:0 6px 18px rgba(0,0,0,.22);}

/* Composer */
.fgw-builder{padding:14px 16px 20px;}
.fgw-preview{margin-bottom:16px;}
.fgw-label{display:block;margin:12px 2px 6px;font-size:12px;font-weight:750;color:var(--text2);}
.fgw-input{width:100%;min-height:42px;padding:9px 12px;border:1px solid var(--border2);border-radius:11px;background:var(--bg2);color:var(--text);font-size:14px;}
.fgw-packs{display:flex;gap:6px;margin-top:7px;overflow:auto;padding-bottom:2px;}
.fgw-packs button{padding:6px 10px;border-radius:999px;background:var(--bg2);border:1px solid var(--border2);color:var(--text2);font-size:12px;font-weight:700;}
.fgw-note{margin-top:12px;padding:10px 11px;border-radius:11px;background:var(--accent-bg);color:var(--text2);font-size:11.5px;line-height:1.5;}
.fgw-create-btn{width:100%;margin-top:14px;padding:12px;border-radius:12px;background:var(--accent);color:var(--bg);font-weight:850;font-size:14px;}
#fgwPreview .feed-gw-visual{height:98px!important;padding-top:2px;}
#fgwPreview .feed-gw-visual .feed-gift-svg{width:72px!important;height:72px!important;max-width:72px!important;max-height:72px!important;flex-basis:72px!important;}
#fgwPreview .feed-gw-head{padding-top:10px;}
@media(max-width:480px){
    .feed-giveaway{border-radius:18px;margin-top:12px;}
    .feed-gw-visual{height:112px;}
    .feed-gw-amount{font-size:20px;}
    .feed-gw-btn{width:100%;}
}

/* Giveaway Feed hardening: scoped, no global SVG rules */
.feed-giveaway,
.feed-giveaway *{box-sizing:border-box;}
.feed-giveaway{width:100%;max-width:100%;min-width:0;position:relative;display:block;overflow:hidden;}
.feed-gw-head{display:flex!important;align-items:center!important;justify-content:space-between!important;}
.feed-gw-label{display:inline-flex!important;align-items:center!important;}
.feed-gw-prize-top{display:flex!important;align-items:center!important;justify-content:center!important;}
.feed-gw-visual{display:flex!important;width:100%!important;height:122px!important;min-height:122px!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;}
.feed-gw-visual > svg,
.feed-gw-visual > img,
.feed-gw-visual .feed-gift-svg{
  display:block!important;
  position:relative!important;
  width:84px!important;
  height:84px!important;
  min-width:84px!important;
  min-height:84px!important;
  max-width:84px!important;
  max-height:84px!important;
  margin:0 auto!important;
  flex:0 0 84px!important;
  transform:none!important;
}
.feed-gw-amount,.feed-gw-sub,.feed-gw-date{display:block!important;text-align:center!important;}
.feed-gw-actions{display:flex!important;align-items:center!important;justify-content:center!important;}
.feed-gw-label > svg{width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;max-width:18px!important;max-height:18px!important;}
.feed-gw-prize-top > svg,.feed-gw-prize-top > img{width:17px!important;height:17px!important;min-width:17px!important;min-height:17px!important;max-width:17px!important;max-height:17px!important;}
#fgwPreview .feed-gw-visual{height:98px!important;min-height:98px!important;}
#fgwPreview .feed-gw-visual > svg,
#fgwPreview .feed-gw-visual .feed-gift-svg{width:72px!important;height:72px!important;min-width:72px!important;min-height:72px!important;max-width:72px!important;max-height:72px!important;flex-basis:72px!important;}
@media(max-width:480px){
  .feed-giveaway{width:100%;max-width:100%;border-radius:18px;}
  .feed-gw-visual{height:112px!important;min-height:112px!important;}
  .feed-gw-visual > svg,.feed-gw-visual .feed-gift-svg{width:76px!important;height:76px!important;min-width:76px!important;min-height:76px!important;max-width:76px!important;max-height:76px!important;flex-basis:76px!important;}
}
/* FIX (کاربر خواست - دکمه‌های پنل دایرکت روی هر تمی نامشخص بودن): تو حالت پیش‌فرض (بدون accent/عکس/پرمیوم)
   دکمه‌های Message/Mute/Call باید همیشه واضح و پررنگ باشن، نه شیشه‌ای کم‌کنتراست. بک‌گراند تخت var(--bg3)
   با بردر var(--border2) - روی هر تمی (روشن/تاریک/...) به‌اندازه‌ی کافی از پس‌زمینه‌ی هیرو جدا و خوانا می‌مونه.
   سلکتور با ۳ تا :not عمداً از قانون‌های قبلی (که ۲ تا :not داشتن) اسپسیفیک‌تره تا مطمئن رو دستشون بزنه. */
.dm-info-hero:not(.colored):not(.has-photo):not(.premium) .dm-info-act{background:var(--bg3)!important;border:1px solid var(--border2)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;box-shadow:none!important;color:var(--text)!important;}
