/* =====================================================================
   MIHANI LGBTQ - design system v3  ("full-bleed app" layout)
   Full-width shell ?? card-based feed ?? segmented controls ?? motion
   ===================================================================== */

/* ---------- APP SHELL (full width, not centered) ---------- */
.app{display:flex;min-height:100vh;width:100%}

.sidebar{
  position:sticky;top:0;height:100vh;width:245px;flex-shrink:0;
  padding:18px 14px;display:flex;flex-direction:column;gap:4px;
  border-inline-end:1px solid var(--border);
  background:color-mix(in srgb,var(--bg) 60%,transparent);
  backdrop-filter:blur(22px);
  z-index:45;
}
.sidebar .brand{display:flex;align-items:center;gap:11px;font-weight:900;font-size:19px;padding:4px 10px 18px;letter-spacing:-.3px}
.sidebar .brand img{width:40px;height:40px;border-radius:12px;box-shadow:0 6px 18px color-mix(in srgb,var(--primary) 35%,transparent)}
.nav-item{
  display:flex;align-items:center;gap:14px;padding:11px 15px;border-radius:13px;color:var(--text);
  font-weight:600;font-size:15px;border:0;background:transparent;width:100%;text-align:start;
  transition:background .2s,transform .18s cubic-bezier(.34,1.56,.64,1);position:relative;
}
.nav-item:hover{background:color-mix(in srgb,var(--text) 7%,transparent);transform:translateX(3px)}
[dir="rtl"] .nav-item:hover{transform:translateX(-3px)}
.nav-item.active{
  background:linear-gradient(120deg,color-mix(in srgb,var(--primary) 26%,transparent),color-mix(in srgb,var(--primary) 10%,transparent));
  font-weight:800;
}
.nav-item.active svg{color:var(--primary-2)}
.nav-item svg{width:21px;height:21px;fill:currentColor;flex-shrink:0;transition:transform .25s cubic-bezier(.34,1.56,.64,1)}
.nav-item:hover svg{transform:scale(1.18) rotate(-7deg)}
.nav-item .pill{
  margin-inline-start:auto;background:linear-gradient(135deg,var(--danger),var(--primary));color:#fff;
  font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;
}
.sidebar .profile-mini{
  display:flex;align-items:center;gap:11px;padding:11px;border-radius:15px;margin-top:auto;
  background:var(--panel);border:1px solid var(--border);transition:.22s;
}
.sidebar .profile-mini:hover{background:var(--panel-2);transform:translateY(-2px);box-shadow:var(--soft-shadow)}

.main{flex:1;min-width:0;display:block}
.main-col{max-width:none;padding:0 clamp(14px,3vw,32px) 130px}

.rail{
  position:sticky;top:0;height:100vh;width:320px;flex-shrink:0;
  padding:20px 18px;display:none;flex-direction:column;gap:16px;overflow-y:auto;
  border-inline-start:1px solid var(--border);
  background:color-mix(in srgb,var(--bg) 60%,transparent);
  backdrop-filter:blur(22px);
}
@media(min-width:1180px){.rail{display:flex}}
.rail .panel{padding:16px;transition:transform .25s,box-shadow .25s,border-color .25s}
.rail .panel:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--primary) 30%,transparent)}

/* ---------- TOP BAR (mobile) ---------- */
.topbar{
  display:none;position:sticky;top:0;z-index:50;padding:10px 14px;align-items:center;gap:12px;
  backdrop-filter:blur(22px);background:color-mix(in srgb,var(--bg) 72%,transparent);
  border-bottom:1px solid var(--border);
}

/* ---------- BOTTOM NAV (mobile) ---------- */
.bottom-nav{
  display:none;position:fixed;bottom:0;inset-inline:0;z-index:60;
  background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(24px);
  border-top:1px solid var(--border);padding:6px 8px calc(8px + env(safe-area-inset-bottom));
}
.bottom-nav .bn-inner{display:flex;justify-content:space-around;max-width:520px;margin-inline:auto}
.bn-item{
  display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;font-weight:700;color:var(--muted);
  padding:6px 12px;border-radius:13px;border:0;background:transparent;transition:.2s;position:relative;
}
.bn-item.active{color:var(--primary-2);background:color-mix(in srgb,var(--primary) 14%,transparent)}
.bn-item svg{width:23px;height:23px;fill:currentColor;transition:transform .25s cubic-bezier(.34,1.56,.64,1)}
.bn-item:active svg{transform:scale(.82)}

/* ---------- PAGE HEADER ---------- */
.page-head{padding:22px 0 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.page-head h1{font-size:clamp(20px,2.6vw,26px);font-weight:900;letter-spacing:-.5px}

/* ---------- SEGMENTED TABS (feed switcher etc.) ---------- */
.feed-tabs,.tabs{
  display:flex;gap:6px;padding:6px;margin-bottom:18px;
  background:var(--panel);border:1px solid var(--border);border-radius:16px;
  box-shadow:var(--soft-shadow);backdrop-filter:blur(12px);
  position:sticky;top:12px;z-index:40;
}
.feed-tabs button,.tabs button{
  flex:1;padding:11px 16px;border-radius:11px;border:0;background:transparent;color:var(--muted);
  font-weight:700;font-size:14px;transition:color .2s,background .25s,box-shadow .25s;position:relative;white-space:nowrap;
}
.feed-tabs button:hover,.tabs button:hover{color:var(--text);background:color-mix(in srgb,var(--text) 5%,transparent)}
.feed-tabs button.active,.tabs button.active{
  color:#fff;background:linear-gradient(135deg,var(--primary-2),var(--primary));
  box-shadow:0 6px 18px color-mix(in srgb,var(--primary) 38%,transparent);
}
.tabs{overflow-x:auto}
.tabs button{flex:0 0 auto}

/* ---------- CARD PANELS ---------- */
.panel,.card{
  background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);
  box-shadow:var(--soft-shadow);
}
.panel{padding:22px}

/* ---------- POST COMPOSER ---------- */
.composer{
  display:flex;gap:12px;padding:18px;margin-bottom:18px;
  background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);
  box-shadow:var(--soft-shadow);transition:border-color .25s,box-shadow .25s;
}
.composer:focus-within{border-color:color-mix(in srgb,var(--primary) 55%,transparent);box-shadow:0 10px 34px color-mix(in srgb,var(--primary) 16%,transparent)}
.composer textarea{flex:1;background:transparent;border:0;color:var(--text);resize:none;font-size:16px;min-height:56px;outline:none;line-height:1.55}
.composer textarea::placeholder{color:var(--muted)}
.composer-tools{display:flex;align-items:center;gap:8px;border-top:1px solid var(--border);padding-top:12px;margin-top:10px}
.attach-preview{display:flex;flex-wrap:wrap;gap:8px}
.attach-preview .ap{
  position:relative;width:86px;height:86px;border-radius:12px;overflow:hidden;border:1px solid var(--border);
  animation:scaleIn .3s cubic-bezier(.34,1.56,.64,1) both;
}
.attach-preview .ap img{width:100%;height:100%;object-fit:cover}
.attach-preview .ap button{position:absolute;top:4px;right:4px;width:22px;height:22px;border:0;border-radius:7px;background:rgba(0,0,0,.65);color:#fff;font-size:13px;line-height:1;transition:.15s}
.attach-preview .ap button:hover{background:var(--danger);transform:rotate(90deg)}
.char-count{margin-inline-start:auto;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;transition:color .2s}
.char-count.warn{color:var(--warning)}
.char-count.over{color:var(--danger)}

/* ---------- FEED LIST (cards with gaps) ---------- */
[data-feed-list],[data-profile-content],[data-comments],[data-bm-list],[data-notif-list]{display:flex;flex-direction:column;gap:14px}
[data-feed-list] .post + .post{margin-top:0}

/* ---------- POST CARD ---------- */
.post{
  display:flex;gap:12px;padding:16px 18px;
  background:var(--panel);border:1px solid var(--border);border-radius:18px;
  box-shadow:var(--soft-shadow);cursor:pointer;
  transition:transform .22s cubic-bezier(.2,.8,.25,1),border-color .22s,box-shadow .22s,background .2s;
  animation:fadeUp .4s cubic-bezier(.2,.8,.25,1) both;
}
.post:hover{border-color:color-mix(in srgb,var(--primary) 42%,transparent);box-shadow:var(--shadow);transform:translateY(-2px)}
.post:active{transform:scale(.995)}
.post .body{flex:1;min-width:0}
.post-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.post-head .name{font-weight:800;font-size:15px}
.post-head .name:hover{text-decoration:underline;text-decoration-color:var(--primary-2);text-underline-offset:3px}
.post-head .uname,.post-head .time{color:var(--muted);font-size:13px}
.post-head .time a:hover{text-decoration:underline}
.post-text{font-size:15px;line-height:1.58;white-space:pre-wrap;word-wrap:break-word;margin-top:3px}
.post-text a{color:var(--primary-2);font-weight:600;border-radius:5px;padding:0 2px;transition:background .15s}
.post-text a:hover{background:color-mix(in srgb,var(--primary) 16%,transparent)}
.post-media{display:grid;gap:4px;margin-top:12px;border-radius:14px;overflow:hidden;border:1px solid var(--border)}
.post-media.one{grid-template-columns:1fr}
.post-media.two{grid-template-columns:1fr 1fr}
.post-media.three,.post-media.four{grid-template-columns:1fr 1fr}
.media-cell{position:relative;overflow:hidden;background:var(--panel-2);cursor:zoom-in}
.media-cell img,.media-cell video{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.2,.8,.25,1)}
.media-cell:hover img{transform:scale(1.06)}
.post-media.one .media-cell img{max-height:460px;aspect-ratio:auto}
.sensitive-cover{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  backdrop-filter:blur(26px);background:color-mix(in srgb,var(--bg) 80%,transparent);
  color:var(--muted);font-size:13px;font-weight:600;animation:fadeIn .3s ease;
}
.post-actions{display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:2px;flex-wrap:wrap}
.action-btn{
  display:inline-flex;align-items:center;gap:6px;background:transparent;border:0;color:var(--muted);
  font-size:13px;font-weight:600;padding:6px 9px;border-radius:999px;
  transition:color .2s,background .2s,transform .16s cubic-bezier(.34,1.56,.64,1);
}
.action-btn:hover{color:var(--primary-2);background:color-mix(in srgb,var(--primary) 13%,transparent);transform:scale(1.1)}
.action-btn:active{transform:scale(.9)}
.action-btn.active.like{color:var(--danger)}
.action-btn.active.like svg{fill:var(--danger);animation:popHeart .45s cubic-bezier(.34,1.56,.64,1)}
.action-btn svg{width:18px;height:18px;fill:currentColor}
.action-btn.bookmark.active{color:var(--gold)}
.repost-ctx{color:var(--success);font-size:13px;display:flex;align-items:center;gap:6px;margin-bottom:6px;font-weight:600}
.repost-ctx a{color:inherit}
.repost-ctx svg{width:15px;height:15px;fill:currentColor}

/* ---------- COMMENTS ---------- */
.comment{display:flex;gap:10px;padding:15px 17px;background:var(--panel);border:1px solid var(--border);border-radius:16px;animation:fadeUp .35s ease both}
.comment:hover{border-color:color-mix(in srgb,var(--primary) 30%,transparent)}
.comment .body{flex:1;min-width:0}
.comment-reply{
  display:inline-flex;align-items:center;gap:6px;background:transparent;border:0;color:var(--muted);
  font-size:13px;font-weight:600;padding:6px 9px;border-radius:999px;transition:.2s;
}
.comment-reply:hover{color:var(--primary-2);background:color-mix(in srgb,var(--primary) 13%,transparent)}

/* ---------- PROFILE ---------- */
.profile-banner{
  height:190px;border-radius:22px;position:relative;overflow:hidden;
  border:1px solid var(--border);box-shadow:var(--soft-shadow);
  background:linear-gradient(120deg,#ff3b46,#ff9a2e,#ffd83b,#3ddc84,#4aa8ff,#b57cec);
  background-size:300% 300%;animation:borderFlow 9s linear infinite;
}
.profile-banner img{width:100%;height:100%;object-fit:cover}
.profile-top{display:flex;align-items:flex-end;gap:14px;padding:0 18px;margin-top:-48px}
.profile-actions{display:flex;gap:8px;margin-inline-start:auto;margin-bottom:8px;flex-wrap:wrap}
.profile-info{padding:12px 18px 0}
.profile-info h1{font-size:clamp(19px,2.4vw,24px);font-weight:900;letter-spacing:-.4px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.profile-info .bio{margin-top:6px;white-space:pre-wrap;line-height:1.58;max-width:640px}
.profile-info .meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;color:var(--muted);font-size:13px}
.profile-info .meta a{color:var(--primary-2)}
.profile-stats{display:flex;gap:20px;padding:13px 18px}
.profile-stats a{font-size:14px;color:var(--muted);display:inline-flex;gap:5px;transition:.2s}
.profile-stats a:hover b{color:var(--primary-2)}
.profile-stats b{color:var(--text);font-weight:800;transition:color .2s}

/* ---------- SUGGESTIONS / PEOPLE ---------- */
.suggest-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;transition:.2s}
.suggest-card:hover{background:color-mix(in srgb,var(--text) 5%,transparent);transform:translateX(3px)}

/* ---------- NOTIFICATIONS ---------- */
.notif{
  display:flex;gap:12px;padding:15px 17px;align-items:flex-start;
  background:var(--panel);border:1px solid var(--border);border-radius:16px;
  transition:background .2s,border-color .2s;animation:fadeUp .35s ease both;
}
.notif:hover{border-color:color-mix(in srgb,var(--primary) 32%,transparent)}
.notif.unread{background:color-mix(in srgb,var(--primary) 9%,transparent);border-color:color-mix(in srgb,var(--primary) 30%,transparent)}
.notif .ic{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;color:#fff;background:linear-gradient(160deg,var(--primary-2),var(--primary));transition:transform .28s cubic-bezier(.34,1.56,.64,1)}
.notif:hover .ic{transform:scale(1.16) rotate(-8deg)}
.notif .ic svg{width:17px;height:17px;fill:#fff}

/* ---------- SHOP ---------- */
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}
.shop-item{
  background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px 20px;
  display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;box-shadow:var(--soft-shadow);
  transition:transform .32s cubic-bezier(.2,.8,.25,1),border-color .3s,box-shadow .3s;position:relative;overflow:hidden;
}
.shop-item::before{
  content:"";position:absolute;inset:0;opacity:0;transition:opacity .3s;
  background:radial-gradient(circle at 50% -10%,color-mix(in srgb,var(--primary) 20%,transparent),transparent 65%);
}
.shop-item:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--primary) 52%,transparent);box-shadow:var(--shadow)}
.shop-item:hover::before{opacity:1}
.shop-item .glyph{font-size:46px;line-height:1;filter:drop-shadow(0 5px 12px rgba(0,0,0,.35));transition:transform .38s cubic-bezier(.34,1.56,.64,1)}
.shop-item:hover .glyph{transform:scale(1.22) rotate(-8deg)}
.shop-item.rarity-rare:hover .glyph{filter:drop-shadow(0 0 14px #4aa8ff)}
.shop-item.rarity-epic:hover .glyph{filter:drop-shadow(0 0 16px #b57cec);animation:hueShift 3s linear infinite}
.shop-item.rarity-legendary:hover .glyph{filter:drop-shadow(0 0 18px #ffd23e);animation:hueShift 2s linear infinite}
.price{font-weight:800;color:var(--gold)}
.rarity{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}

/* ---------- WALLET ---------- */
.wallet-balance{display:flex;align-items:center;gap:16px}
.tx-row{
  display:flex;align-items:center;gap:12px;padding:13px 16px;border-radius:14px;
  background:var(--panel);border:1px solid var(--border);font-size:14px;margin-bottom:10px;
  transition:.2s;animation:fadeUp .3s ease both;
}
.tx-row:hover{border-color:color-mix(in srgb,var(--primary) 35%,transparent);transform:translateX(3px)}
.tx-amt{font-weight:800;margin-inline-start:auto;font-variant-numeric:tabular-nums}
.tx-amt.pos{color:var(--success)}
.tx-amt.neg{color:var(--danger)}

/* ---------- MODAL ---------- */
.modal-backdrop{
  position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:20px;
  background:rgba(4,2,5,.74);backdrop-filter:blur(12px);
  opacity:0;pointer-events:none;transition:opacity .25s ease;
}
.modal-backdrop.open{opacity:1;pointer-events:auto}
.modal{
  width:min(560px,100%);max-height:88vh;overflow-y:auto;position:relative;
  background:var(--panel-2);border:1px solid var(--border);border-radius:24px;
  box-shadow:0 40px 110px rgba(0,0,0,.65),0 0 0 1px color-mix(in srgb,var(--primary) 16%,transparent);
  padding:28px;transform:translateY(26px) scale(.94);transition:transform .32s cubic-bezier(.2,1.1,.3,1);
}
.modal-backdrop.open .modal{transform:none}
.modal h2{font-size:20px;font-weight:900;letter-spacing:-.3px;margin-bottom:14px}
.modal-close{position:absolute;top:14px;right:16px;background:transparent;border:0;color:var(--muted);font-size:22px;line-height:1;transition:transform .25s,color .2s;display:flex;padding:4px}
.modal-close:hover{color:var(--text);transform:rotate(90deg)}
.modal-close svg{width:20px;height:20px;fill:currentColor}

/* ---------- DROPDOWN ---------- */
.menu{position:relative}
.menu-pop{
  position:absolute;top:calc(100% + 8px);inset-inline-end:0;min-width:200px;z-index:220;
  background:var(--panel-2);border:1px solid var(--border);border-radius:15px;padding:6px;
  box-shadow:var(--shadow);display:none;flex-direction:column;gap:2px;
}
.menu-pop.open{display:flex;animation:pop .2s cubic-bezier(.34,1.56,.64,1)}
.menu-pop button{
  text-align:start;background:transparent;border:0;color:var(--text);padding:10px 12px;border-radius:10px;
  display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;transition:background .15s,padding-inline-start .15s;
}
.menu-pop button:hover{background:color-mix(in srgb,var(--text) 8%,transparent);padding-inline-start:17px}
.menu-pop button.danger{color:var(--danger)}
.menu-pop button svg{width:16px;height:16px;fill:currentColor;flex-shrink:0}
@keyframes pop{from{opacity:0;transform:translateY(-8px) scale(.94)}to{opacity:1;transform:none}}

/* ---------- TOASTS ---------- */
.toast-root{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);z-index:400;display:flex;flex-direction:column-reverse;gap:8px;align-items:center;pointer-events:none}
.toast{
  background:var(--panel-2);border:1px solid var(--border);color:var(--text);
  padding:13px 22px;border-radius:15px;box-shadow:var(--shadow);font-weight:700;font-size:14px;
  max-width:min(420px,90vw);animation:toastIn .38s cubic-bezier(.34,1.4,.64,1) both;backdrop-filter:blur(14px);
}
.toast.ok{border-color:color-mix(in srgb,var(--success) 55%,transparent)}
.toast.bad{border-color:color-mix(in srgb,var(--danger) 55%,transparent)}
.toast.hide{animation:toastOut .3s ease both}
@keyframes toastIn{from{opacity:0;transform:translateY(20px) scale(.88)}to{opacity:1;transform:none}}
@keyframes toastOut{to{opacity:0;transform:translateY(14px) scale(.94)}}

/* ---------- SKELETONS / SPINNERS / EMPTY ---------- */
.skeleton{background:linear-gradient(90deg,var(--panel) 25%,var(--panel-2) 50%,var(--panel) 75%);background-size:200% 100%;animation:shimmer 1.4s linear infinite;border-radius:12px}
.sk-post{display:flex;gap:12px;padding:17px 18px;background:var(--panel);border:1px solid var(--border);border-radius:18px}
.sk-post .lines{flex:1;display:flex;flex-direction:column;gap:11px}
.typing-dots{display:inline-flex;gap:5px;padding:8px 4px}
.typing-dots i{width:8px;height:8px;border-radius:50%;background:var(--primary-2);animation:bounceDot 1.2s infinite}
.typing-dots i:nth-child(2){animation-delay:.15s}
.typing-dots i:nth-child(3){animation-delay:.3s}
.spinner{width:26px;height:26px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}
.center{display:flex;justify-content:center;padding:26px}
.empty{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;color:var(--muted);padding:52px 22px;background:var(--panel);border:1px dashed var(--border);border-radius:20px;animation:fadeUp .4s ease both}
.empty svg{width:50px;height:50px;fill:var(--muted);opacity:.45;animation:floatY 4s ease-in-out infinite}
.empty h3{color:var(--text);font-size:17px;font-weight:800}
.empty p{font-size:14px;max-width:360px}

.load-bar{position:fixed;top:0;left:0;right:0;height:3px;z-index:500;overflow:hidden}
.load-bar i{position:absolute;top:0;bottom:0;width:40%;border-radius:99px;background:linear-gradient(90deg,var(--primary),var(--primary-2),var(--accent));animation:loadSlide 1s ease-in-out infinite}
@keyframes loadSlide{0%{left:-40%}100%{left:100%}}

/* ---------- BUTTONS ---------- */
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.3),transparent);transform:skewX(-20deg);transition:left .5s ease}
.btn:hover::after{left:130%}
.btn:not(:disabled):active{transform:scale(.96)}

/* ---------- INPUTS ---------- */
.field input[type="checkbox"]{accent-color:var(--primary)}
.input,.textarea,.select{transition:border-color .2s,box-shadow .25s}
.input:focus,.textarea:focus,.select:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}

/* ---------- AUTH ---------- */
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;position:relative;overflow-x:hidden}
.auth-wrap::before{content:"";position:absolute;width:540px;height:540px;border-radius:50%;top:-160px;inset-inline-start:-140px;background:radial-gradient(circle,color-mix(in srgb,var(--primary) 30%,transparent),transparent 70%);filter:blur(44px);animation:floatY 7s ease-in-out infinite;pointer-events:none}
.auth-wrap::after{content:"";position:absolute;width:440px;height:440px;border-radius:50%;bottom:-140px;inset-inline-end:-110px;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 24%,transparent),transparent 70%);filter:blur(50px);animation:floatY 9s ease-in-out infinite reverse;pointer-events:none}
.auth-card{
  width:min(450px,94vw);position:relative;z-index:1;
  background:color-mix(in srgb,var(--panel-2) 88%,transparent);backdrop-filter:blur(20px);
  border:1px solid var(--border);border-radius:26px;padding:36px 32px;
  box-shadow:var(--shadow);animation:scaleIn .5s cubic-bezier(.2,1.1,.3,1) both;
}
.auth-card .logo{width:74px;height:74px;border-radius:21px;margin:0 auto 16px;display:block;box-shadow:0 10px 30px color-mix(in srgb,var(--primary) 40%,transparent);animation:floatY 5s ease-in-out infinite}
.auth-card h1{font-size:23px;font-weight:900;text-align:center;margin-bottom:4px;letter-spacing:-.4px}
.auth-card .sub{color:var(--muted);text-align:center;font-size:13px;margin-bottom:22px}
.auth-switch{text-align:center;margin-top:16px;font-size:14px;color:var(--muted)}
.auth-switch a{color:var(--primary-2);font-weight:700}
.auth-switch a:hover{text-decoration:underline;text-underline-offset:3px}
.form-err{color:var(--danger);font-size:13px;margin:4px 0 12px;min-height:16px;text-align:center}

/* ---------- SETTINGS ---------- */
.settings-grid{display:grid;grid-template-columns:230px minmax(0,1fr);gap:22px;align-items:start}
.settings-nav{display:flex;flex-direction:column;gap:4px;position:sticky;top:16px;background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:10px;box-shadow:var(--soft-shadow)}
.settings-nav button{
  text-align:start;background:transparent;border:0;color:var(--muted);font-weight:600;
  padding:11px 14px;border-radius:11px;display:flex;align-items:center;gap:11px;font-size:14px;transition:.2s;
}
.settings-nav button:hover{background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text);transform:translateX(3px)}
.settings-nav button.active{background:linear-gradient(135deg,var(--primary-2),var(--primary));color:#fff;box-shadow:0 6px 16px color-mix(in srgb,var(--primary) 35%,transparent)}
.settings-nav button svg{width:18px;height:18px;fill:currentColor;flex-shrink:0}
.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 2px;border-bottom:1px solid var(--border);transition:background .2s}
.setting-row:last-of-type{border-bottom:0}
.setting-row:hover{background:color-mix(in srgb,var(--text) 2%,transparent)}

.switch{position:relative;display:inline-block;width:52px;height:30px;flex-shrink:0;cursor:pointer}
.switch input{opacity:0;width:0;height:0;position:absolute}
.switch .slider{position:absolute;inset:0;background:var(--bg);border:1px solid var(--border);border-radius:999px;transition:.3s}
.switch .slider::before{content:"";position:absolute;top:2px;left:2px;width:24px;height:24px;border-radius:50%;background:var(--muted);transition:.3s cubic-bezier(.34,1.56,.64,1)}
.switch input:checked + .slider{background:color-mix(in srgb,var(--primary) 42%,transparent);border-color:var(--primary)}
.switch input:checked + .slider::before{transform:translateX(22px);background:#fff;box-shadow:0 0 10px color-mix(in srgb,var(--primary) 70%,transparent)}

/* ---------- ADMIN ---------- */
.adm-table{width:100%;border-collapse:collapse;font-size:13px}
.adm-table th{text-align:start;color:var(--muted);font-weight:700;padding:9px 10px;border-bottom:1px solid var(--border);text-transform:uppercase;font-size:11px;letter-spacing:.6px}
.adm-table td{padding:11px 10px;border-bottom:1px solid var(--border);transition:background .15s}
.adm-table tr:hover td{background:color-mix(in srgb,var(--text) 3%,transparent)}
.chip{display:inline-block;font-size:11px;font-weight:800;padding:3px 10px;border-radius:999px;border:1px solid var(--border);color:var(--muted);transition:transform .15s}
.chip:hover{transform:scale(1.07)}
.chip.pending{color:#ffd166;border-color:color-mix(in srgb,#ffd166 50%,transparent)}
.chip.resolved{color:var(--success);border-color:color-mix(in srgb,var(--success) 50%,transparent)}
.chip.banned,.chip.removed{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 50%,transparent)}

/* ---------- EXTRAS ---------- */
.pride-divider{height:4px;border-radius:99px;background:linear-gradient(90deg,#ff3b46,#ff9a2e,#ffd83b,#3ddc84,#4aa8ff,#b57cec);background-size:200% auto;animation:borderFlow 4s linear infinite}
.swatch{width:15px;height:15px;border-radius:5px;border:1px solid rgba(255,255,255,.25);flex-shrink:0}
.hidden{display:none!important}
.spacer{flex:1}
.muted{color:var(--muted)}
.grad-text{background:linear-gradient(120deg,var(--primary-2),var(--primary));-webkit-background-clip:text;background-clip:text;color:transparent}
.rainbow-text{background:linear-gradient(90deg,#ff3b46,#ff9a2e,#ffd83b,#3ddc84,#4aa8ff,#b57cec);-webkit-background-clip:text;background-clip:text;color:transparent}
.coin img{width:17px;height:17px;filter:drop-shadow(0 2px 4px rgba(255,190,0,.35))}

/* scrollbars */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--primary) 55%,transparent);border-radius:99px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--primary) 80%,transparent);border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-track{background:transparent}

/* selection & focus */
::selection{background:var(--primary);color:#fff}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:6px}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1179px){
  .sidebar{width:76px;padding:16px 10px}
  .sidebar .brand span,.nav-item .label,.sidebar .profile-mini > div:not(:first-child),.nav-item .pill{display:none}
  .sidebar .brand{justify-content:center;padding-inline:0}
  .nav-item{justify-content:center;padding:12px 0}
  .nav-item .pill{position:absolute;top:4px;right:4px;display:block;font-size:9px;padding:1px 5px}
}
@media(max-width:1020px){
  .app{display:block}
  .sidebar,.rail{display:none}
  .main-col{padding:0 14px 130px}
  .topbar{display:flex}
  .bottom-nav{display:block}
  .feed-tabs,.tabs{top:64px}
}
@media(max-width:720px){
  .settings-grid{grid-template-columns:1fr}
  .settings-nav{flex-direction:row;overflow-x:auto;position:static}
  .settings-nav button{white-space:nowrap;flex:1 0 auto}
  .shop-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
  .page-head h1{font-size:19px}
}

/* keyframes (shared with theme usage) */
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes scaleIn{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
@keyframes popHeart{0%{transform:scale(1)}40%{transform:scale(1.45)}70%{transform:scale(.9)}100%{transform:scale(1)}}
@keyframes shimmer{to{background-position:-200% 0}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes hueShift{to{filter:hue-rotate(360deg)}}
@keyframes borderFlow{to{background-position:200% center}}
@keyframes bounceDot{0%,80%,100%{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
/* ---------- APP BOOT LOADER (mihani-circle style) ---------- */
#app-loader{
  position:fixed;inset:0;z-index:9000;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:14px;text-align:center;
  background:
    radial-gradient(circle at 15% -10%, color-mix(in srgb,var(--primary) 26%,transparent), transparent 45%),
    radial-gradient(circle at 90% 110%, color-mix(in srgb,var(--accent) 16%,transparent), transparent 40%),
    linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 100%);
  transition:opacity .45s ease,visibility .45s;
}
#app-loader.done{opacity:0;visibility:hidden;pointer-events:none}
.ld-logo{width:88px;height:88px;border-radius:24px;box-shadow:0 18px 50px color-mix(in srgb,var(--primary) 45%,transparent);animation:floatY 3.5s ease-in-out infinite}
.ld-dots{display:flex;gap:7px;margin-top:2px}
.ld-dots i{width:9px;height:9px;border-radius:50%;background:var(--primary-2);animation:bounceDot 1.1s infinite}
.ld-dots i:nth-child(2){animation-delay:.15s}
.ld-dots i:nth-child(3){animation-delay:.3s}
.ld-title{font-size:22px;font-weight:900;letter-spacing:-.4px}
.ld-sub{color:var(--muted);font-size:13px}

/* ---------- KEY : VALUE ROWS ---------- */
.kv{display:flex;align-items:baseline;gap:10px;padding:12px 2px;border-bottom:1px solid var(--border);font-size:14px}
.kv:last-of-type{border-bottom:0}
.kv .k{color:var(--muted);font-weight:700;flex-shrink:0;min-width:110px}
.kv .v{color:var(--text);font-weight:600}

/* ---------- VIDEO SHELL + CUSTOM PLAYER ---------- */
.video-shell{position:relative;width:100%;aspect-ratio:16/9;max-height:440px;background:#000;border-radius:inherit;overflow:hidden}
.post-media.one .video-shell{aspect-ratio:16/9}
.video-shell video{width:100%;height:100%;object-fit:contain;display:block;background:#000}
.video-play-badge{
  position:absolute;top:50%;left:50%;
  width:64px;height:64px;border-radius:50%;border:0;cursor:pointer;
  transform:translate(-50%,-50%);
  display:grid;place-items:center;color:#fff;
  background:color-mix(in srgb,var(--primary) 85%,#000);
  box-shadow:0 10px 30px rgba(0,0,0,.5);
  transition:transform .22s cubic-bezier(.34,1.56,.64,1),background .2s;
}
.video-shell:hover .video-play-badge{transform:translate(-50%,-50%) scale(1.1);background:var(--primary)}
.video-play-badge svg{width:26px;height:26px;fill:#fff}

.vp{position:relative;width:100%;background:#000;border-radius:14px;overflow:hidden}
.vp video{width:100%;max-height:70vh;display:block;background:#000}
.vp-center{
  position:absolute;top:50%;left:50%;
  width:76px;height:76px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;color:#fff;
  transform:translate(-50%,-50%);
  background:color-mix(in srgb,var(--primary) 88%,#000);box-shadow:0 14px 40px rgba(0,0,0,.55);
  transition:transform .2s cubic-bezier(.34,1.56,.64,1),opacity .2s;
}
.vp-center:hover{transform:translate(-50%,-50%) scale(1.06)}
.vp-center svg{width:30px;height:30px;fill:#fff}
.vp-controls{display:flex;align-items:center;gap:10px;padding:10px 12px;background:color-mix(in srgb,var(--bg) 92%,transparent)}
.vp-btn{background:transparent;border:0;color:var(--text);cursor:pointer;font-size:15px;line-height:1;padding:4px 6px;border-radius:8px;transition:.15s}
.vp-btn:hover{background:color-mix(in srgb,var(--text) 10%,transparent)}
.vp-time{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
.vp-seek{flex:1;appearance:none;height:5px;border-radius:99px;background:color-mix(in srgb,var(--text) 18%,transparent);outline:none}
.vp-seek::-webkit-slider-thumb{appearance:none;width:14px;height:14px;border-radius:50%;background:var(--primary-2);box-shadow:0 0 8px color-mix(in srgb,var(--primary) 60%,transparent);cursor:pointer}

/* custom dropdown button in settings */
.dd-btn{min-width:150px;justify-content:flex-start}
.dd-btn .dd-label{flex:1;text-align:start;font-weight:700}
.dd-btn svg{width:14px;height:14px;fill:currentColor;transition:transform .2s}
.menu-pop.open .dd-btn svg{transform:rotate(90deg)}
.menu-pop button.sel{background:color-mix(in srgb,var(--primary) 24%,transparent)}

/* setting-row value text */
.setting-row .txt .val{display:block;margin-top:3px;font-size:13px;color:var(--muted);font-weight:500}
/* ---------- IMAGE CROP + UPLOAD PREVIEWS ---------- */
.crop-stage{
  position:relative;margin-top:14px;border-radius:16px;overflow:hidden;
  background:#000;border:1px solid var(--border);
  cursor:grab;touch-action:none;user-select:none;
}
.crop-stage:active{cursor:grabbing}
.crop-stage img{
  position:absolute;left:50%;top:50%;max-width:none;max-height:none;
  transform-origin:center center;pointer-events:none;will-change:transform;
}
.upload-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.up-preview{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid color-mix(in srgb,var(--primary) 45%,transparent);box-shadow:var(--soft-shadow)}
.up-banner{width:100%;height:90px;object-fit:cover;border-radius:14px;border:1px solid var(--border);margin-bottom:10px}

/* ---------- LANGUAGE CARDS ---------- */
.lang-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}
.lang-card{
  position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;
  padding:18px;border-radius:var(--radius-lg);cursor:pointer;text-align:start;
  background:var(--panel);border:1px solid var(--border);color:var(--text);font:inherit;
  transition:transform .22s,border-color .22s,box-shadow .25s;
}
.lang-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--primary) 50%,transparent);box-shadow:var(--shadow)}
.lang-card.active{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,transparent)}
.lg-flag{font-size:26px;line-height:1}
.lg-name{font-weight:800;font-size:15px}
.lg-sub{font-size:12px;color:var(--muted)}
.lg-check{
  position:absolute;top:12px;right:12px;width:22px;height:22px;border-radius:50%;
  display:grid;place-items:center;font-size:12px;font-weight:900;color:#fff;
  background:linear-gradient(135deg,var(--primary-2),var(--primary));
}

/* ---------- PERSIAN (RTL) + HOMA FONT ---------- */
html[lang="fa"] body{font-family:'Homa','Vazirmatn','Segoe UI',system-ui,sans-serif;font-size:15.5px}
html[lang="fa"] .post-text,html[lang="fa"] .bio,html[lang="fa"] .comment .body{line-height:1.85}

/* ---------- PROTECTION: no text selection / image dragging ---------- */
body{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none}
input,textarea,[contenteditable="true"]{-webkit-user-select:text;-moz-user-select:text;user-select:text}
img{-webkit-user-drag:none;user-drag:none}
/* ---------- AVATAR ---------- */
.avatar{
  display:inline-grid;place-items:center;border-radius:50%;overflow:hidden;flex-shrink:0;
  background:linear-gradient(160deg,var(--primary-2),var(--primary));color:#fff;font-weight:800;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--bg) 92%,transparent),0 0 0 4px color-mix(in srgb,var(--primary) 28%,transparent);
}
.avatar:hover{transform:scale(1.06)}
.avatar img{width:100%;height:100%;object-fit:cover;display:block}
.avatar.xs{width:28px;height:28px;font-size:12px}
.avatar.sm{width:40px;height:40px;font-size:16px}
.avatar.md{width:52px;height:52px;font-size:20px}
.avatar.lg{width:88px;height:88px;font-size:32px}
.avatar.xl{width:118px;height:118px;font-size:42px;box-shadow:0 10px 32px color-mix(in srgb,var(--primary) 42%,transparent),0 0 0 4px var(--bg)}
.avatar.ghost{background:var(--panel-2);border:1px solid var(--border);color:var(--muted)}

/* ---------- BADGES / VERIFIED ---------- */
.badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;vertical-align:middle;transition:transform .2s}
.badge:hover{transform:scale(1.08)}
.badge svg{width:12px;height:12px;fill:currentColor}
.badge.star{background:linear-gradient(160deg,#ffd83b,#ff9a2e);color:#4a2a00}
.badge.heart{background:linear-gradient(160deg,#ff6b9d,#e10a17);color:#fff}
.badge.diamond{background:linear-gradient(160deg,#9fe3ff,#4aa8ff);color:#04223a}
.badge.rainbow{background:linear-gradient(90deg,#ff3b46,#ff9a2e,#ffd83b,#3ddc84,#4aa8ff,#b57cec);background-size:200% auto;animation:borderFlow 3s linear infinite;color:#fff}
.badge.crown{background:linear-gradient(160deg,#fff3c4,#ffd23e);color:#5c3c00;box-shadow:0 2px 10px rgba(255,210,62,.35)}
.verified{color:#4aa8ff;display:inline-flex;vertical-align:-3px}
.verified svg{width:16px;height:16px;fill:currentColor}
.mod-badge{color:var(--gold);font-size:11px;font-weight:800;border:1px solid color-mix(in srgb,var(--gold) 50%,transparent);padding:2px 7px;border-radius:999px}

/* ---------- COIN ---------- */
.coin{display:inline-flex;align-items:center;gap:5px;font-weight:800;color:var(--gold);font-size:14px;transition:transform .2s}
.coin:hover{transform:scale(1.05)}
.coin img{width:18px;height:18px;filter:drop-shadow(0 2px 5px rgba(255,190,0,.4))}

/* ---------- ICON BUTTON ---------- */
.icon-btn{
  width:38px;height:38px;display:inline-grid;place-items:center;border-radius:11px;cursor:pointer;
  background:var(--panel);border:1px solid var(--border);color:var(--text);
  transition:.18s;flex-shrink:0;
}
.icon-btn:hover{background:var(--panel-2);transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 40%,transparent)}
.icon-btn svg{width:19px;height:19px;fill:currentColor}
.icon-btn img{border-radius:8px}
/* profile avatar hard-guarantee (even if a stale CSS chunk loads) */
.avatar-xl-wrap{display:inline-block;flex-shrink:0;position:relative;z-index:2}
.avatar-xl-wrap .avatar.xl{width:118px !important;height:118px !important;border-radius:50% !important;overflow:hidden;display:grid}
.avatar-xl-wrap .avatar.xl img{width:100% !important;height:100% !important;object-fit:cover !important;display:block}