/* ==========================================================================
   Vini Messenger v24 — messaging + member profiles
   Scoped to the chat overlay, message layers and the profile/moderation
   layers it opens. Nothing here targets a bare tag or an id/class owned by
   the rest of VantaFM, so this file only ever changes Vini Chat.
   ========================================================================== */

:root{
  /* surfaces (deep charcoal, no pure black) */
  --vn-bg:#07060b;
  --vn-surface-0:#0a0810;
  --vn-surface-1:#0e0b15;
  --vn-surface-2:#141020;
  --vn-surface-3:#191428;
  --vn-surface-4:#211a33;
  --vn-border:rgba(255,255,255,.075);
  --vn-border-soft:rgba(255,255,255,.05);
  --vn-border-strong:rgba(168,124,255,.28);
  /* text */
  --vn-text:#f4f0fb;
  --vn-text-2:#ded6ec;
  --vn-muted:#a89cb8;
  --vn-faint:#786d8b;
  --vn-faintest:#564e64;
  /* accent (Vanta purple, restrained — never neon) */
  --vn-accent:#8a5cf6;
  --vn-accent-2:#a889fb;
  --vn-accent-strong:#7c3aed;
  --vn-accent-soft:rgba(138,92,246,.14);
  --vn-accent-soft-2:rgba(138,92,246,.24);
  --vn-accent-line:rgba(138,92,246,.30);
  --vn-on-mine:#2a1f45;
  --vn-on-mine-line:rgba(138,92,246,.30);
  /* status */
  --vn-online:#4ade95;
  --vn-danger:#ff6b81;
  --vn-danger-soft:rgba(255,107,129,.12);
  --vn-warning:#eab35a;
  --vn-warning-soft:rgba(234,179,90,.14);
  /* shape + motion */
  --vn-r-xs:8px;--vn-r-sm:10px;--vn-r-md:13px;--vn-r-lg:16px;--vn-r-xl:20px;--vn-r-2xl:26px;--vn-r-pill:999px;
  --vn-shadow-sm:0 6px 18px rgba(0,0,0,.22);
  --vn-shadow-md:0 16px 42px rgba(0,0,0,.36);
  --vn-shadow-lg:0 30px 90px rgba(0,0,0,.56);
  --vn-fast:.12s;--vn-med:.18s;--vn-slow:.26s;
  --vn-ease:cubic-bezier(.22,.8,.36,1);
  /* legacy variable names some rules below still read */
  --v21-purple:var(--vn-accent);
  --v21-purple-2:var(--vn-accent-2);
}

body.vt13-open{overflow:hidden!important}

/* ---------------------------------------------------------------------- */
/* Overlay + shell                                                         */
/* ---------------------------------------------------------------------- */
.vini21-overlay{
  position:fixed!important;inset:0!important;z-index:100000!important;
  display:none!important;align-items:center!important;justify-content:center!important;
  padding:20px!important;background:rgba(5,4,9,.8)!important;backdrop-filter:blur(14px)!important;
  font-family:inherit!important;color:var(--vn-text)!important;
}
.vini21-overlay.show{display:flex!important}
.vini21-shell{
  position:relative!important;isolation:isolate!important;
  width:min(1480px,calc(100vw - 40px))!important;
  height:min(900px,calc(100dvh - 40px))!important;
  max-height:calc(100dvh - 40px)!important;
  display:grid!important;grid-template-columns:308px minmax(0,1fr)!important;
  background:var(--vn-bg)!important;
  border:1px solid rgba(168,124,255,.16)!important;
  border-radius:var(--vn-r-2xl)!important;
  overflow:hidden!important;box-shadow:var(--vn-shadow-lg)!important;
}
.vini21-shell::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(760px 360px at 90% -12%,rgba(138,92,246,.10),transparent 62%);
}
.vini21-shell.info-open{grid-template-columns:308px minmax(0,1fr) 300px!important}
.vini21-shell>*{position:relative;z-index:1}

/* ---------------------------------------------------------------------- */
/* Sidebar                                                                 */
/* ---------------------------------------------------------------------- */
.vini21-sidebar{
  min-width:0!important;min-height:0!important;
  background:var(--vn-surface-0)!important;
  border-left:1px solid var(--vn-border)!important;
  display:flex!important;flex-direction:column!important;padding:0!important;overflow:hidden!important;
}
.vini21-side-top{height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--vn-border);flex:none}
.vini21-brand{display:flex;align-items:center;gap:11px;min-width:0}
.vini21-brand-logo{width:40px;height:40px;border-radius:var(--vn-r-md);background:var(--vn-surface-3);border:1px solid var(--vn-accent-line);display:flex;align-items:center;justify-content:center;color:var(--vn-accent-2);flex:none}
.vini21-brand-logo svg{width:24px!important;height:24px!important}
.vini21-brand>div{min-width:0}
.vini21-brand b{display:block;font-size:15.5px;font-weight:800;line-height:1.3;letter-spacing:-.1px;color:var(--vn-text)}
.vini21-brand small{display:block;color:var(--vn-faint);font-size:10.5px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.vini21-global-search{margin:12px 14px 8px;height:42px;flex:none;border:1px solid var(--vn-border);background:var(--vn-surface-1);border-radius:var(--vn-r-md);display:flex;align-items:center;gap:9px;padding:0 12px;color:var(--vn-faint);transition:border-color var(--vn-fast),background var(--vn-fast)}
.vini21-global-search:focus-within{border-color:var(--vn-accent-line);background:var(--vn-surface-2)}
.vini21-global-search svg{width:17px;height:17px;flex:none}
.vini21-global-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--vn-text);font:inherit;font-size:12.5px}
.vini21-global-search input::placeholder{color:var(--vn-faintest)}

.vini21-presence{margin:0 14px 8px;padding:9px 11px;display:flex;flex:none;justify-content:space-between;align-items:center;border-radius:var(--vn-r-sm);color:var(--vn-muted);font-size:11px;background:var(--vn-surface-1);border:1px solid var(--vn-border-soft)}
.vini21-presence>span{display:flex;align-items:center;gap:7px;min-width:0}
.vini21-presence>span>i{width:7px;height:7px;border-radius:50%;background:var(--vn-online);box-shadow:0 0 0 4px rgba(74,222,149,.10);flex:none}
.vini21-presence b{font-size:11px;color:var(--vn-muted);font-weight:700}
.vini21-presence small{color:var(--vn-faint);font-size:9.5px}
.vini21-presence-actions{display:flex;align-items:center;gap:6px}
.vini21-mini-action{width:28px;height:28px;border-radius:var(--vn-r-xs);border:1px solid transparent;background:transparent;color:var(--vn-faint);display:grid;place-items:center;cursor:pointer;padding:0}
.vini21-mini-action svg{width:15px;height:15px;display:block}
.vini21-mini-action:hover{color:var(--vn-accent-2);background:var(--vn-surface-3);border-color:var(--vn-accent-line)}

/* storage indicator — restored & wired to real data (see JS renderStorage()) */
.vt13-storage-pill{
  position:relative;display:flex!important;align-items:center;gap:7px;
  margin:0 14px 10px;padding:8px 10px;flex:none;
  border:1px solid var(--vn-border-soft);background:var(--vn-surface-1);
  border-radius:var(--vn-r-sm);color:var(--vn-faint);font-size:9.5px;cursor:pointer;
  transition:border-color var(--vn-fast),background var(--vn-fast);
}
.vt13-storage-pill:hover{border-color:var(--vn-accent-line);background:var(--vn-surface-2)}
.vt13-storage-pill>svg{width:14px;height:14px;color:var(--vn-accent-2);flex:none}
.vt13-storage-pill i{position:relative;flex:1;min-width:40px;height:4px;overflow:hidden;border-radius:var(--vn-r-pill);background:rgba(255,255,255,.06)}
.vt13-storage-pill i span{position:absolute;inset:0 auto 0 0;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--vn-accent),var(--vn-accent-2));transition:width .3s var(--vn-ease)}
.vt13-storage-pill b{font-weight:800;color:var(--vn-muted);direction:ltr;white-space:nowrap;font-size:9.5px}
.vt13-storage-pill[data-state="watch"] i span{background:linear-gradient(90deg,#d6a94a,#f2cf83)}
.vt13-storage-pill[data-state="optimize"] i span,
.vt13-storage-pill[data-state="critical"] i span{background:linear-gradient(90deg,#e8974a,#ff7d63)}
.vt13-storage-pill[data-state="critical"]{border-color:rgba(255,107,129,.22)}
.vt13-storage-pill[data-state="critical"] b{color:#ff9aa8}

.vini21-label{padding:10px 16px 6px!important;margin:0!important;color:var(--vn-faint)!important;display:flex!important;justify-content:space-between!important;align-items:baseline!important;flex:none!important}
.vini21-label span{font-size:10.5px!important;font-weight:800!important;letter-spacing:.02em!important;text-transform:uppercase!important}
.vini21-label small{font-size:9.5px!important;color:var(--vn-faintest)!important}

.vini21-channels{padding:0 9px!important;display:flex!important;flex-direction:column!important;gap:3px!important;flex:none!important}
.vini21-channels .vt13-channel{
  min-height:56px!important;border:1px solid transparent!important;border-radius:var(--vn-r-md)!important;
  background:transparent!important;padding:6px 9px!important;display:flex!important;align-items:center!important;gap:10px!important;
  color:var(--vn-text)!important;transition:background var(--vn-fast),border-color var(--vn-fast)!important;box-shadow:none!important;cursor:pointer;
}
.vini21-channels .vt13-channel:hover{background:var(--vn-surface-2)!important}
.vini21-channels .vt13-channel.active{background:var(--vn-accent-soft)!important;border-color:var(--vn-accent-line)!important}
.vini21-channels .vt13-channel-icon{
  width:40px!important;height:40px!important;border-radius:var(--vn-r-md)!important;background-color:var(--vn-surface-3)!important;
  color:var(--vn-accent-2)!important;display:grid!important;place-items:center!important;overflow:hidden!important;
  background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;
  background-image:var(--vini-channel-image,none);flex:none!important;
}
.vini21-channels .vt13-channel.active .vt13-channel-icon{background-color:var(--vn-accent-soft-2)!important}
.vini21-channels .vt13-v-logo{width:23px!important;height:23px!important}
.vini21-channels .vt13-channel-icon.editable{cursor:pointer!important;outline:1px solid transparent;transition:outline-color var(--vn-fast)}
.vini21-channels .vt13-channel-icon.editable:hover{outline-color:var(--vn-accent-line)!important}
.vini21-channels .vt13-channel-copy{min-width:0!important;flex:1!important;text-align:right!important}
.vini21-channels .vt13-channel-copy b{font-size:13px!important;font-weight:800!important;color:var(--vn-text)!important;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vini21-channels .vt13-channel-copy small{font-size:10.5px!important;color:var(--vn-faint)!important;display:block}
.vini21-channels .vt13-channel-tag{font-size:9px!important;font-weight:800!important;color:var(--vn-accent-2)!important;background:transparent!important;border:0!important;padding:0!important;letter-spacing:.03em}

.vini21-people{padding:2px 9px 10px!important;overflow:auto!important;min-height:0!important;flex:1!important;display:flex!important;flex-direction:column!important;gap:2px!important;overscroll-behavior:contain!important}
.vini21-person{display:flex;align-items:center;gap:2px;border-radius:var(--vn-r-md);border:1px solid transparent;min-height:56px;flex:0 0 auto}
.vini21-person:hover{background:var(--vn-surface-2)}
.vini21-person.active{background:var(--vn-accent-soft);border-color:var(--vn-accent-line)}
.vini21-person-chat{height:56px;flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:6px 7px;background:transparent;border:0;color:inherit;text-align:right;cursor:pointer}
.vini21-person-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--vn-surface-3);background-size:cover;background-position:center;background-repeat:no-repeat;color:var(--vn-text-2);font-weight:800;font-size:12px;position:relative;flex:none}
.vini21-person-avatar i{position:absolute;width:10px;height:10px;border-radius:50%;bottom:-1px;left:-1px;background:var(--vn-faintest);border:2px solid var(--vn-surface-0)}
.vini21-person-avatar i.on{background:var(--vn-online)}
.vini21-person-copy{min-width:0;flex:1}
.vini21-person-copy b{display:block;font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--vn-text)}
.vini21-person-copy small{display:block;font-size:10px;color:var(--vn-faint);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vini21-person-profile{width:32px;height:32px;border-radius:var(--vn-r-xs);border:0;background:transparent;color:var(--vn-faintest);display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity var(--vn-fast),background var(--vn-fast),color var(--vn-fast)}
.vini21-person:hover .vini21-person-profile,.vini21-person-profile:focus-visible{opacity:1}
.vini21-person-profile:hover{background:var(--vn-accent-soft);color:var(--vn-accent-2)}
.vini21-person-profile svg{width:16px;height:16px}
.vini21-empty{padding:28px 16px;text-align:center;color:var(--vn-faint)}
.vini21-empty b{display:block;color:var(--vn-muted);font-size:13px;margin-bottom:3px}
.vini21-empty small{font-size:11px}

.vini21-self{
  height:66px!important;margin:0!important;border:0!important;border-top:1px solid var(--vn-border)!important;border-radius:0!important;
  padding:10px 14px!important;background:var(--vn-surface-0)!important;display:flex!important;align-items:center!important;gap:10px!important;
  text-align:right!important;color:var(--vn-text)!important;cursor:pointer!important;flex:none!important;
}
.vini21-self:hover{background:var(--vn-surface-1)!important}
.vini21-self .vt13-actor-avatar{width:40px!important;height:40px!important;border-radius:50%!important;background-color:var(--vn-surface-3)!important;background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;display:grid!important;place-items:center!important;font-size:12px!important;font-weight:800!important;color:var(--vn-text-2)!important}
.vini21-self .vt13-actor-copy{flex:1!important;min-width:0!important}
.vini21-self .vt13-actor-copy b{font-size:12.5px!important;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vini21-self .vt13-actor-copy small{font-size:10px!important;color:var(--vn-faint)!important;display:block}
.vini21-self-action{width:30px;height:30px;border-radius:var(--vn-r-xs);display:grid;place-items:center;color:var(--vn-faint);flex:none}
.vini21-self-action svg{width:16px;height:16px}

.vt13-side-backdrop{display:none;position:absolute;inset:0;z-index:19;border:0;padding:0;background:rgba(0,0,0,.45);opacity:0;pointer-events:none}
.only-mobile,.vt13-mobile-menu{display:none}

/* ---------------------------------------------------------------------- */
/* Main column + header                                                    */
/* ---------------------------------------------------------------------- */
.vini21-main{min-width:0!important;min-height:0!important;display:flex!important;flex-direction:column!important;background:var(--vn-bg)!important;position:relative!important}
.vini21-head{
  height:72px!important;min-height:72px!important;padding:0 16px!important;flex:none!important;
  background:rgba(9,7,14,.92)!important;border-bottom:1px solid var(--vn-border)!important;
  display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;
  backdrop-filter:blur(16px)!important;
}
.vini21-head .vt13-head-main{min-width:0!important;display:flex!important;align-items:center!important;gap:11px!important;flex:1!important}
.vini21-head-avatar{
  width:41px!important;height:41px!important;border-radius:50%!important;border:0!important;background-color:var(--vn-surface-3)!important;
  background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;color:var(--vn-text)!important;
  font-size:12px!important;font-weight:800!important;display:grid!important;place-items:center!important;cursor:default!important;flex:none!important;
}
.vini21-head-avatar.editable,.vini21-head-avatar[title]:not([title=""]){cursor:pointer!important}
.vini21-head-avatar.editable{outline:1px solid transparent;transition:outline-color var(--vn-fast)}
.vini21-head-avatar.editable:hover{outline-color:var(--vn-accent-line)!important}
.vini21-head .vt13-head-copy{min-width:0!important}
.vini21-head .vt13-head-kicker{display:none!important}
.vini21-head .vt13-head-copy h3{font-size:14px!important;line-height:1.35!important;font-weight:800!important;color:var(--vn-text)!important;margin:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.vini21-head .vt13-head-status{font-size:10.5px!important;color:var(--vn-faint)!important;display:flex!important;align-items:center!important;gap:5px!important;margin-top:2px!important}
.vini21-head .vt13-conn-dot{width:6px!important;height:6px!important;border-radius:50%!important;background:var(--vn-faintest)!important;flex:none!important}
.vini21-head .vt13-conn-dot.on{background:var(--vn-online)!important}
.vini21-dotsep{opacity:.5}
.vini21-head-actions{display:flex!important;align-items:center!important;gap:2px!important;direction:ltr!important;flex:none!important}
.vini21-icon{
  width:37px;height:37px;border-radius:var(--vn-r-sm);border:1px solid transparent;background:transparent;color:var(--vn-muted);
  display:inline-grid;place-items:center;padding:0;line-height:0;cursor:pointer;transition:background var(--vn-fast),color var(--vn-fast),border-color var(--vn-fast);
}
.vini21-icon svg{width:18px;height:18px;display:block;margin:auto}
.vini21-icon:hover{background:var(--vn-surface-2);border-color:var(--vn-border);color:var(--vn-text)}
.vini21-icon.active{background:var(--vn-accent-soft);color:var(--vn-accent-2);border-color:var(--vn-accent-line)}
.vini21-close:hover{background:var(--vn-danger-soft);border-color:rgba(255,107,129,.18);color:var(--vn-danger)}

/* in-conversation search */
.vini21-searchbar{background:var(--vn-surface-0)!important;border-bottom:1px solid var(--vn-border)!important;padding:9px 15px!important;flex:none}
.vini21-searchbar .vt13-search-inner{max-width:780px!important;margin:auto!important;height:40px!important;background:var(--vn-surface-1)!important;border:1px solid var(--vn-border)!important;border-radius:var(--vn-r-md)!important;padding:0 10px!important;display:flex!important;align-items:center!important;gap:8px!important}
.vini21-searchbar .vt13-search-inner:focus-within{border-color:var(--vn-accent-line)!important}
.vini21-searchbar input{flex:1!important;border:0!important;outline:0!important;background:transparent!important;color:var(--vn-text)!important;font:inherit!important;font-size:12px!important}
.vini21-searchbar svg{width:17px;height:17px;color:var(--vn-faint)!important;flex:none}
.vini21-searchbar .vt13-search-count{font-size:10px!important;color:var(--vn-faint)!important;white-space:nowrap}

/* ---------------------------------------------------------------------- */
/* Thread + messages                                                       */
/* ---------------------------------------------------------------------- */
.vini21-thread{flex:1!important;min-height:0!important;position:relative!important;background:radial-gradient(720px 420px at 68% 36%,rgba(138,92,246,.04),transparent 65%),var(--vn-bg)!important}
.vini21-messages{height:100%!important;overflow:auto!important;overscroll-behavior:contain!important;padding:22px clamp(14px,4vw,54px) 16px!important;scroll-behavior:smooth!important}
.vini21-messages>.vt13-context-card,.vini21-messages>.vt13-history-loader,.vini21-messages>.vt13-empty,.vini21-messages>.vt13-loading{max-width:760px!important;margin-left:auto!important;margin-right:auto!important}

.vt13-context-card{width:max-content!important;max-width:90%!important;margin:0 auto 18px!important;background:var(--vn-accent-soft)!important;border:1px solid var(--vn-accent-line)!important;color:var(--vn-muted)!important;border-radius:var(--vn-r-pill)!important;padding:6px 14px!important;font-size:10.5px!important}
.vt13-context-card b{color:var(--vn-text-2)!important}
.vt13-history-loader{display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;background:transparent!important;border:0!important;color:var(--vn-accent-2)!important;font-size:11px!important;font-weight:700!important;padding:8px 12px!important;margin:0 auto 14px!important;cursor:pointer!important;border-radius:var(--vn-r-pill)!important;transition:background var(--vn-fast)}
.vt13-history-loader:hover{background:var(--vn-accent-soft)!important}
.vt13-history-loader.loading{opacity:.6!important;pointer-events:none!important}
.vt13-history-loader small{display:none!important}
.vt13-history-loader svg{width:15px!important;height:15px!important}

.vt13-new{
  position:absolute!important;left:50%!important;bottom:14px!important;transform:translateX(-50%)!important;
  display:flex!important;align-items:center!important;gap:6px!important;height:34px!important;padding:0 14px!important;
  border-radius:var(--vn-r-pill)!important;border:1px solid var(--vn-border)!important;background:var(--vn-surface-3)!important;
  color:var(--vn-text-2)!important;font:inherit!important;font-size:11px!important;font-weight:700!important;
  box-shadow:var(--vn-shadow-md)!important;cursor:pointer!important;z-index:5!important;
}
.vt13-new[hidden]{display:none!important}
.vt13-new:hover{background:var(--vn-surface-4)!important}
.vt13-new svg{width:14px!important;height:14px!important}

.vini21-messages .vt13-msg.search-hidden{display:none!important}

.vini21-messages .vt13-day{margin:16px auto 12px!important;width:max-content!important;background:var(--vn-surface-2)!important;color:var(--vn-faint)!important;border:1px solid var(--vn-border-soft)!important;border-radius:var(--vn-r-pill)!important;padding:4px 12px!important;font-size:9.5px!important;font-weight:700!important}

.vini21-messages .vt13-msg{max-width:760px!important;margin:0 auto 2px!important;display:flex!important;gap:8px!important;position:relative!important;padding:2px 0!important;background:transparent!important;direction:rtl!important;align-items:flex-end!important}
.vini21-messages .vt13-msg.compact{margin-top:-1px!important}
.vini21-messages .vt13-msg.mine{justify-content:flex-start!important}
.vini21-messages .vt13-msg.mine>*{direction:rtl!important}
.vini21-messages .vt13-msg-avatar{
  width:30px!important;height:30px!important;border-radius:50%!important;background-color:var(--vn-surface-3)!important;
  background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;flex:none!important;
  font-size:10px!important;display:grid!important;place-items:center!important;color:var(--vn-text-2)!important;border:0;cursor:pointer;
}
.vini21-messages .vt13-msg.compact .vt13-msg-avatar{visibility:hidden!important}

.vini21-messages .vt13-bubble{
  max-width:min(72%,580px)!important;min-width:92px!important;
  background:var(--vn-surface-2)!important;border:1px solid var(--vn-border-soft)!important;border-radius:var(--vn-r-lg) var(--vn-r-lg) var(--vn-r-lg) 4px!important;
  padding:7px 10px 6px!important;color:var(--vn-text)!important;box-shadow:var(--vn-shadow-sm)!important;position:relative!important;
}
.vini21-messages .vt13-msg.compact .vt13-bubble{border-radius:var(--vn-r-lg) var(--vn-r-lg) var(--vn-r-lg) var(--vn-r-lg)!important}
.vini21-messages .vt13-msg.mine .vt13-bubble{background:var(--vn-on-mine)!important;border-color:var(--vn-on-mine-line)!important;border-radius:var(--vn-r-lg) var(--vn-r-lg) 4px var(--vn-r-lg)!important}
.vini21-messages .vt13-msg.mine.compact .vt13-bubble{border-radius:var(--vn-r-lg)!important}

.vini21-messages .vt13-msg-meta{display:flex!important;align-items:center!important;gap:6px!important;margin-bottom:2px!important;font-size:9.5px!important;color:var(--vn-faint)!important}
.vini21-messages .vt13-msg-meta b{font-size:10.5px!important;color:var(--vn-accent-2)!important;font-weight:800!important}
.vini21-messages .vt13-msg.mine .vt13-msg-meta b{display:none!important}
.vini21-messages .vt13-msg.compact .vt13-msg-meta b{display:none!important}
.vini21-messages .vt13-msg.compact .vt13-msg-meta{margin-bottom:1px!important}
.vini21-messages .vini-edited{font-size:9px!important;color:var(--vn-faintest)!important}
.vini21-messages .vt13-text{font-size:13.5px!important;line-height:1.8!important;color:var(--vn-text)!important;word-break:break-word!important;white-space:pre-wrap!important}

.vini21-messages .vini-reply-preview{display:block!important;width:100%!important;text-align:right!important;background:rgba(0,0,0,.18)!important;border:0!important;border-right:2px solid var(--vn-accent)!important;border-radius:9px!important;padding:5px 9px!important;margin-bottom:6px!important;cursor:pointer}
.vini21-messages .vini-reply-preview b{display:block;font-size:10px!important;color:var(--vn-accent-2)!important}
.vini21-messages .vini-reply-preview span{display:block;font-size:10.5px!important;color:var(--vn-muted)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.vini21-messages .vini-reactions{display:flex!important;gap:4px!important;flex-wrap:wrap!important;margin-top:5px!important}
.vini21-messages .vini-reaction{height:24px!important;padding:0 8px!important;border-radius:var(--vn-r-pill)!important;border:1px solid var(--vn-border)!important;background:var(--vn-surface-3)!important;color:var(--vn-muted)!important;font-size:11px!important;cursor:pointer;transition:background var(--vn-fast),border-color var(--vn-fast)}
.vini21-messages .vini-reaction:hover{border-color:var(--vn-accent-line)!important}
.vini21-messages .vini-reaction.mine{border-color:var(--vn-accent-line)!important;background:var(--vn-accent-soft)!important;color:var(--vn-text)!important}
.vini21-messages .vini-reaction b{font-weight:700}

.vini21-messages .vini-reaction-picker{position:absolute!important;z-index:20!important;bottom:calc(100% + 7px)!important;right:0!important;display:flex!important;gap:2px!important;background:var(--vn-surface-3)!important;border:1px solid var(--vn-border)!important;padding:5px!important;border-radius:var(--vn-r-lg)!important;box-shadow:var(--vn-shadow-md)!important;opacity:0;transform:translateY(4px) scale(.97);transition:opacity var(--vn-fast),transform var(--vn-fast)}
.vini21-messages .vini-reaction-picker.show{opacity:1;transform:none}
.vini21-messages .vini-reaction-picker button{width:30px!important;height:30px!important;border:0!important;border-radius:var(--vn-r-xs)!important;background:transparent!important;font-size:16px!important;cursor:pointer}
.vini21-messages .vini-reaction-picker button:hover{background:var(--vn-accent-soft)!important}

.vini21-messages .vt13-msg{touch-action:pan-y;user-select:text;-webkit-user-select:text}
.vini21-messages .vt13-bubble{cursor:default}
.vt13-empty,.vt13-loading{color:var(--vn-faint)!important;text-align:center!important;padding:64px 20px!important}
.vt13-empty svg,.vt13-loading svg{width:26px;height:26px;color:var(--vn-accent-2);margin-bottom:6px}
.vt13-empty b,.vt13-loading b{display:block!important;color:var(--vn-muted)!important;font-size:13px!important;margin-bottom:3px}
.vt13-loading .ring{display:inline-block;width:26px;height:26px;margin-bottom:8px;border-radius:50%;border:2px solid rgba(138,92,246,.16);border-top-color:var(--vn-accent);animation:vn-spin .8s linear infinite}
.vini21-load-error{gap:6px!important}
.vini21-load-error span{max-width:520px!important;line-height:1.8!important;color:var(--vn-faint)!important}
.vini21-retry{margin-top:6px!important;height:36px!important;padding:0 16px!important;border-radius:var(--vn-r-sm)!important;border:1px solid var(--vn-accent-line)!important;background:var(--vn-surface-2)!important;color:var(--vn-accent-2)!important;font:inherit!important;font-size:11px!important;font-weight:800!important;cursor:pointer!important}
.vini21-retry:hover{background:var(--vn-surface-3)!important}

@keyframes vn-fade{from{opacity:0}to{opacity:1}}
@keyframes vn-spin{to{transform:rotate(360deg)}}
@keyframes vn-pop{from{opacity:0;transform:translateY(4px) scale(.98)}to{opacity:1;transform:none}}

/* message quick-action hint — a real, clickable, keyboard-reachable button.
   Right-click / long-press still opens the same menu, this is the discoverable
   left-click / tap path so no action ever depends only on hover. */
.vini24-message-hint{
  position:absolute;top:6px;left:7px;width:24px;height:24px;border:1px solid transparent;border-radius:var(--vn-r-xs);
  display:grid;place-items:center;background:transparent;color:var(--vn-faint);cursor:pointer;padding:0;
  opacity:0;transition:opacity var(--vn-fast),background var(--vn-fast),color var(--vn-fast);
}
.vini24-message-hint svg{width:14px;height:14px}
.vini24-message-hint:focus-visible{opacity:1;background:rgba(0,0,0,.22);color:var(--vn-text-2)}
@media(hover:hover){
  .vini21-messages .vt13-bubble:hover .vini24-message-hint{opacity:1;background:rgba(0,0,0,.22);color:var(--vn-text-2)}
  .vini24-message-hint:hover{background:var(--vn-accent-soft)!important;color:var(--vn-accent-2)!important}
}

/* desktop right-click menu / mobile long-press sheet */
.vini24-message-menu-layer{position:fixed;inset:0;z-index:100320;background:transparent}
.vini24-message-menu{
  position:fixed;min-width:224px;max-width:min(280px,calc(100vw - 20px));padding:6px;
  border:1px solid var(--vn-accent-line);border-radius:var(--vn-r-lg);background:var(--vn-surface-2);color:var(--vn-text);
  box-shadow:var(--vn-shadow-lg);opacity:0;transform:translateY(4px) scale(.985);transition:opacity var(--vn-fast) var(--vn-ease),transform var(--vn-fast) var(--vn-ease);
  direction:rtl;overflow:hidden;
}
.vini24-message-menu-layer.show .vini24-message-menu{opacity:1;transform:none}
.vini24-quick-reactions{display:grid;grid-template-columns:repeat(6,1fr);gap:2px;padding:2px 2px 7px;border-bottom:1px solid var(--vn-border-soft);margin-bottom:5px}
.vini24-quick-reactions button{width:34px;height:34px;border:0;border-radius:var(--vn-r-sm);background:transparent;color:inherit;font-size:18px;display:grid;place-items:center;cursor:pointer;transition:background var(--vn-fast),transform var(--vn-fast)}
.vini24-quick-reactions button:hover{background:var(--vn-accent-soft);transform:scale(1.08)}
.vini24-menu-actions{display:flex;flex-direction:column;gap:1px}
.vini24-menu-item{width:100%;height:38px;border:0;border-radius:var(--vn-r-sm);background:transparent;color:var(--vn-text-2);display:flex;align-items:center;gap:10px;padding:0 10px;font:inherit;font-size:11.5px;font-weight:700;text-align:right;cursor:pointer;transition:background var(--vn-fast),color var(--vn-fast)}
.vini24-menu-item svg{width:16px;height:16px;color:var(--vn-faint);flex:none}
.vini24-menu-item:hover{background:var(--vn-surface-3);color:#fff}
.vini24-menu-item:hover svg{color:var(--vn-accent-2)}
.vini24-menu-item.danger{color:#ff9aa8}
.vini24-menu-item.danger svg{color:var(--vn-danger)}
.vini24-menu-item.danger:hover{background:var(--vn-danger-soft)}

/* media messages */
.vini21-messages .vt13-media-image{display:block!important;border-radius:var(--vn-r-md)!important;overflow:hidden!important;max-width:380px!important;line-height:0}
.vini21-messages .vt13-media-image img{display:block!important;width:100%!important;max-height:400px!important;object-fit:cover!important}
.vini21-messages .vt13-media-video video,.vini21-messages .vini-video-note-message video{display:block!important;width:min(380px,100%)!important;max-height:400px!important;border-radius:var(--vn-r-md)!important;background:#000!important}
.vini21-messages .vini-video-note-message small{display:block!important;color:var(--vn-faint)!important;font-size:9px!important;margin-top:4px!important}
.vini21-messages .vt13-media-file{display:flex!important;align-items:center!important;gap:10px!important;min-width:210px!important;padding:9px!important;border-radius:var(--vn-r-md)!important;background:rgba(0,0,0,.18)!important;color:var(--vn-text)!important;text-decoration:none!important}
.vini21-messages .vt13-media-file>svg{width:26px!important;height:26px!important;color:var(--vn-accent-2)!important;flex:none}
.vini21-messages .vt13-media-file b{font-size:11px!important;display:block}
.vini21-messages .vt13-media-file small{font-size:9px!important;color:var(--vn-faint)!important;display:block;margin-top:2px}
.vini21-messages .vt13-media-file.audio audio{max-width:250px!important;height:32px!important}
.vini21-messages .vt13-media-file.audio>div{min-width:0}

.vini21-messages .vini-deleted{display:flex!important;align-items:center!important;gap:7px!important;color:var(--vn-faint)!important;font-size:11.5px!important;padding:2px 1px}
.vini21-messages .vini-deleted svg{width:14px!important;height:14px!important;opacity:.7}
.vini21-messages .vt13-media-reclaimed{display:flex!important;align-items:center!important;gap:9px!important;color:var(--vn-faint)!important;padding:2px 1px}
.vini21-messages .vt13-media-reclaimed svg{width:19px!important;flex:none}
.vini21-messages .vt13-media-reclaimed b{display:block!important;font-size:10.5px!important;color:var(--vn-muted)!important}
.vini21-messages .vt13-media-reclaimed span{font-size:9.5px!important}

.vini21-messages .vt13-voice-note{display:flex!important;align-items:center!important;gap:9px!important;min-width:220px!important}
.vini21-messages .vt13-voice-play{width:35px!important;height:35px!important;border:0!important;border-radius:50%!important;display:grid!important;place-items:center!important;flex:none!important;background:var(--vn-accent-soft)!important;color:var(--vn-accent-2)!important;cursor:pointer}
.vini21-messages .vt13-voice-play:hover{background:var(--vn-accent-soft-2)!important}
.vini21-messages .vt13-voice-play svg{width:15px!important}
.vini21-messages .vt13-voice-note.broken .vt13-voice-play{opacity:.4;pointer-events:none}
.vini21-messages .vt13-voice-note>div{min-width:140px!important;flex:1!important}
.vini21-messages .vt13-voice-wave{height:17px!important;display:flex!important;align-items:center!important;gap:2px!important;direction:ltr!important}
.vini21-messages .vt13-voice-wave i{width:2px!important;height:var(--h)!important;max-height:16px!important;background:var(--vn-faintest)!important;border-radius:2px!important}
.vini21-messages .vt13-voice-range{width:100%!important;height:3px!important;accent-color:var(--vn-accent)!important;display:block;margin:2px 0}
.vini21-messages .vt13-voice-time{display:flex!important;justify-content:space-between!important;font-size:8.5px!important;color:var(--vn-faint)!important;direction:ltr!important}
.vini21-messages .vt13-voice-speed{border:0!important;background:transparent!important;color:var(--vn-accent-2)!important;font-size:9px!important;font-weight:800!important;cursor:pointer!important;flex:none}

@media(max-width:820px){
  .vini21-messages .vt13-bubble{max-width:84%!important}
  .vini21-messages .vt13-media-image,.vini21-messages .vt13-media-video video,.vini21-messages .vini-video-note-message video{max-width:min(78vw,380px)!important}
  .vini24-message-hint{display:none}
}

/* ---------------------------------------------------------------------- */
/* Composer                                                                */
/* ---------------------------------------------------------------------- */
.vini21-compose-wrap{background:var(--vn-surface-0)!important;border-top:1px solid var(--vn-border)!important;padding:9px clamp(12px,3vw,36px) calc(11px + env(safe-area-inset-bottom))!important;flex:none}
.vini21-compose-wrap>*{max-width:820px!important;margin-left:auto!important;margin-right:auto!important}

.vini21-reply-bar{min-height:46px!important;border:1px solid var(--vn-border)!important;border-bottom:0!important;background:var(--vn-surface-1)!important;border-radius:var(--vn-r-lg) var(--vn-r-lg) 0 0!important;padding:6px 9px 6px 8px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px}
.vini21-reply-bar[hidden]{display:none!important}
.vini21-reply-bar>div{display:flex;align-items:center;gap:8px;min-width:0}
.vini21-reply-bar>div>svg{width:16px;height:16px;color:var(--vn-accent-2);flex:none}
.vini21-reply-bar span{min-width:0}
.vini21-reply-bar b{display:block;font-size:10.5px;color:var(--vn-accent-2);font-weight:800}
.vini21-reply-bar small{display:block;font-size:10px;color:var(--vn-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60vw}

.vt13-upload-panel,.vt13-recorder{background:var(--vn-surface-2)!important;border:1px solid var(--vn-border)!important;border-radius:var(--vn-r-lg)!important;color:var(--vn-text)!important;margin-bottom:7px!important;display:flex;align-items:center;gap:10px;padding:9px 11px}
.vt13-upload-panel[hidden],.vt13-recorder[hidden]{display:none!important}
.vt13-upload-icon{width:34px;height:34px;border-radius:var(--vn-r-sm);background:var(--vn-accent-soft);color:var(--vn-accent-2);display:grid;place-items:center;flex:none}
.vt13-upload-icon svg{width:17px;height:17px}
.vt13-upload-copy{flex:1;min-width:0}
.vt13-upload-copy b{display:block;font-size:11.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vt13-upload-copy small{display:block;font-size:9.5px;color:var(--vn-faint);margin-top:2px}
.vt13-upload-track{margin-top:6px;height:4px;border-radius:var(--vn-r-pill);background:var(--vn-surface-3);overflow:hidden}
.vt13-upload-track span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--vn-accent),var(--vn-accent-2));transition:width .2s var(--vn-ease)}
#vt13-upload-percent{font-size:10.5px;font-weight:800;color:var(--vn-muted);flex:none;direction:ltr}
.vt13-upload-cancel{width:30px;height:30px;border:0;border-radius:var(--vn-r-xs);background:transparent;color:var(--vn-faint);display:grid;place-items:center;cursor:pointer;flex:none}
.vt13-upload-cancel:hover{background:var(--vn-danger-soft);color:var(--vn-danger)}
.vt13-upload-cancel svg{width:15px;height:15px}

.vt13-recorder{gap:11px}
.vt13-rec-copy{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.vt13-rec-dot{width:9px;height:9px;border-radius:50%;background:var(--vn-danger);flex:none;animation:vn-pulse 1.1s ease-in-out infinite}
@keyframes vn-pulse{0%,100%{opacity:1}50%{opacity:.35}}
.vt13-rec-copy b{display:block;font-size:11.5px;font-weight:700}
.vt13-rec-copy small{display:block;font-size:9.5px;color:var(--vn-faint);margin-top:1px}
.vt13-rec-wave{display:flex;align-items:center;gap:2px;height:24px;flex:1;min-width:40px;cursor:pointer}
.vt13-rec-wave i{width:2px;height:40%;background:var(--vn-accent-line);border-radius:2px}
[data-mode="recording"] .vt13-rec-wave i{background:var(--vn-danger);animation:vn-wave 1s ease-in-out infinite}
[data-mode="recording"] .vt13-rec-wave i:nth-child(2n){animation-delay:.1s}
[data-mode="recording"] .vt13-rec-wave i:nth-child(3n){animation-delay:.2s}
@keyframes vn-wave{0%,100%{height:25%}50%{height:85%}}
.vt13-rec-time{font-size:11.5px;font-weight:800;color:var(--vn-muted);direction:ltr;flex:none}
.vt13-rec-action{height:34px;border:0;border-radius:var(--vn-r-sm);display:flex;align-items:center;gap:6px;padding:0 12px;font:inherit;font-size:10.5px;font-weight:800;cursor:pointer;flex:none;background:var(--vn-surface-3);color:var(--vn-muted)}
.vt13-rec-action svg{width:15px;height:15px}
.vt13-rec-action.primary{background:var(--vn-accent);color:#fff}
.vt13-rec-action.primary:hover{background:var(--vn-accent-strong)}
.vt13-rec-action.danger{background:var(--vn-danger-soft);color:var(--vn-danger)}
.vt13-rec-action.danger:hover{background:rgba(255,107,129,.18)}
.vt13-rec-action[hidden]{display:none!important}

.vini21-compose{
  min-height:52px!important;display:flex!important;align-items:center!important;gap:4px!important;padding:5px 6px!important;
  border:1px solid var(--vn-border)!important;background:var(--vn-surface-2)!important;border-radius:var(--vn-r-xl)!important;
}
.vini21-reply-bar+.vini21-compose{border-radius:0 0 var(--vn-r-xl) var(--vn-r-xl)!important;border-top:0!important}
.vini21-compose:focus-within{border-color:var(--vn-accent-line)!important;box-shadow:0 0 0 3px var(--vn-accent-soft)!important}
.vini21-compose-icon{width:39px;height:39px;border-radius:var(--vn-r-sm);border:1px solid transparent;background:transparent;color:var(--vn-faint);display:grid;place-items:center;cursor:pointer;flex:none;padding:0;line-height:0}
.vini21-compose-icon svg{width:18px;height:18px;display:block;margin:auto}
.vini21-compose-icon:hover{background:var(--vn-surface-3);color:var(--vn-accent-2)}
.vini21-compose-icon.recording{background:var(--vn-danger-soft);color:var(--vn-danger)}
.vini21-input-shell{flex:1!important;min-width:0!important;background:transparent!important;border:0!important;padding:0 2px!important;display:flex!important;align-items:flex-end!important;gap:6px!important}
.vini21-input-shell textarea{flex:1!important;min-width:0!important;max-height:125px!important;min-height:38px!important;padding:8px 3px 6px!important;background:transparent!important;border:0!important;outline:0!important;resize:none!important;color:var(--vn-text)!important;font:inherit!important;font-size:13.5px!important;line-height:1.7!important}
.vini21-input-shell textarea::placeholder{color:var(--vn-faintest)!important}
.vini21-char{font-size:8.5px!important;color:var(--vn-faintest)!important;padding:0 2px 8px!important;white-space:nowrap!important;display:none!important}
.vini21-send{width:39px!important;height:39px!important;border-radius:var(--vn-r-md)!important;border:0!important;background:var(--vn-surface-3)!important;color:var(--vn-faint)!important;display:grid!important;place-items:center!important;cursor:pointer!important;transition:background var(--vn-fast),color var(--vn-fast),transform var(--vn-fast)!important;flex:none!important;padding:0!important}
.vini21-send.ready{background:var(--vn-accent)!important;color:#fff!important}
.vini21-send.ready:hover{background:var(--vn-accent-strong)!important}
.vini21-send:active{transform:scale(.94)!important}
.vini21-send.sending{opacity:.7!important;pointer-events:none!important}
.vini21-send span{display:none!important}
.vini21-send svg{width:18px;height:18px!important;display:block;margin:auto}

/* ---------------------------------------------------------------------- */
/* Info / context panel                                                    */
/* ---------------------------------------------------------------------- */
.vini21-info-panel{min-width:0!important;min-height:0!important;background:var(--vn-surface-0)!important;border-right:1px solid var(--vn-border)!important;overflow:auto!important}
.vini21-info-panel[hidden]{display:none!important}
.vini21-info-head{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--vn-border)}
.vini21-info-head b{font-size:13px;font-weight:800}
.vini21-info-head button{width:34px;height:34px;border:0;border-radius:var(--vn-r-sm);background:transparent;color:var(--vn-faint);display:grid;place-items:center;cursor:pointer}
.vini21-info-head button:hover{background:var(--vn-surface-2);color:var(--vn-text)}
.vini21-info-body{padding:16px 14px}
.vini21-info-person{width:100%;border:0;background:transparent;color:inherit;text-align:center;cursor:pointer;padding:4px}
.vini21-info-person>span{width:80px;height:80px;border-radius:50%;display:grid;place-items:center;background:var(--vn-surface-3);background-size:cover;background-position:center;background-repeat:no-repeat;margin:0 auto 11px;font-weight:800;font-size:19px;position:relative;color:var(--vn-text-2)}
.vini21-info-person>span i{position:absolute;width:13px;height:13px;border-radius:50%;background:var(--vn-faintest);bottom:3px;left:3px;border:3px solid var(--vn-surface-0)}
.vini21-info-person>span i.on{background:var(--vn-online)}
.vini21-info-person h3{font-size:15.5px;margin:0;font-weight:800}
.vini21-info-person p{font-size:11px;color:var(--vn-faint);margin-top:3px}
.vini21-info-primary{height:39px;width:100%;border:1px solid var(--vn-accent-line);background:var(--vn-accent-soft);color:var(--vn-accent-2);border-radius:var(--vn-r-md);font:inherit;font-size:11.5px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;margin:13px 0 18px}
.vini21-info-primary:hover{background:var(--vn-accent-soft-2)}
.vini21-info-primary svg{width:16px;height:16px}
.vini21-info-body section{border-top:1px solid var(--vn-border);padding-top:15px;margin-top:15px}
.vini21-info-body section>small{display:block;color:var(--vn-faint);font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.02em;margin-bottom:9px}
.vini21-group-summary{text-align:center;padding:10px 0 4px}
.vini21-group-summary>span{width:70px;height:70px;border-radius:var(--vn-r-xl);background:var(--vn-accent-soft);display:grid;place-items:center;margin:0 auto 10px;color:var(--vn-accent-2);overflow:hidden}
.vini21-group-summary>span svg{width:38px!important;height:38px!important}
.vini21-group-summary h3{font-size:15.5px;font-weight:800}
.vini21-group-summary p{font-size:11px;color:var(--vn-faint);margin-top:3px}
.vini21-online-list{display:flex;flex-direction:column;gap:2px}
.vini21-online-list button{border:0;background:transparent;color:inherit;display:flex;align-items:center;gap:8px;padding:6px;border-radius:var(--vn-r-sm);text-align:right;cursor:pointer;width:100%}
.vini21-online-list button:hover{background:var(--vn-surface-2)}
.vini21-online-list button>span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--vn-surface-3);background-size:cover;background-position:center;background-repeat:no-repeat;font-size:10px;font-weight:800;flex:none}
.vini21-online-list b{display:block;font-size:11px;font-weight:700}
.vini21-online-list small{display:block;font-size:9px;color:var(--vn-faint)}
.vini21-online-list p{color:var(--vn-faint);font-size:11px;padding:6px 2px}

.vini20-media-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;margin-top:2px!important}
.vini23-media-thumb{aspect-ratio:1!important;border-radius:var(--vn-r-sm)!important;background:var(--vn-surface-2)!important;border:1px solid var(--vn-border)!important;overflow:hidden!important;display:grid!important;place-items:center!important;color:var(--vn-accent-2)!important;text-decoration:none!important;position:relative!important}
.vini23-media-thumb img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important}
.vini23-media-thumb.video span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--vn-accent-soft)}
.vini23-media-thumb.video svg{width:16px;height:16px}
.vini23-media-thumb.video small{position:absolute;bottom:5px;font-size:8px;color:var(--vn-text-2)}
.vini23-media-empty{grid-column:1/-1;padding:16px 10px;text-align:center;color:var(--vn-faint);font-size:10.5px;border:1px dashed var(--vn-border);border-radius:var(--vn-r-sm)}

/* ---------------------------------------------------------------------- */
/* Profile view + editor (layers appended to <body>)                       */
/* ---------------------------------------------------------------------- */
.vini21-profile-layer,.vini21-profile-editor-layer,.vini21-mod-layer,.vini24-mute-layer{
  position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;
  background:rgba(4,3,8,.78);backdrop-filter:blur(9px);animation:vn-fade .15s ease;
}
.vini21-profile-layer{z-index:100240}
.vini21-profile-editor-layer{z-index:100260}
.vini21-mod-layer{z-index:100250}
.vini24-mute-layer{z-index:100270}

.vini21-profile-loading,.vini21-profile-error{min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--vn-faint);padding:20px;text-align:center}
.vini21-profile-loading span{width:26px;height:26px;border-radius:50%;border:2px solid rgba(138,92,246,.16);border-top-color:var(--vn-accent);animation:vn-spin .8s linear infinite}
.vini21-profile-loading b,.vini21-profile-error b{font-size:12.5px;color:var(--vn-muted);font-weight:800}
.vini21-profile-error span{font-size:11px}

.vini23-profile-layer,.vini23-profile-editor-layer{isolation:isolate}
.vini23-profile-card{width:min(520px,100%);max-height:calc(100dvh - 44px);overflow:auto;position:relative;background:var(--vn-surface-0);border:1px solid var(--vn-accent-line);border-radius:var(--vn-r-2xl);box-shadow:var(--vn-shadow-lg);color:var(--vn-text)}
.vini23-profile-close{position:absolute;top:14px;left:14px;z-index:5;width:37px;height:37px;border:1px solid var(--vn-border);border-radius:var(--vn-r-sm);background:rgba(9,7,14,.82);color:var(--vn-text-2);display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(7px)}
.vini23-profile-close:hover{background:var(--vn-surface-3);border-color:var(--vn-accent-line)}
.vini23-profile-close svg{width:16px;height:16px}
.vini23-profile-hero{height:148px;background:var(--vn-surface-2) var(--profile-banner,none) center/cover no-repeat;position:relative}
.vini23-profile-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 20%,rgba(138,92,246,.14),transparent 45%)}
.vini23-profile-hero-shade{position:absolute;inset:0;background:linear-gradient(to top,var(--vn-surface-0) 0,rgba(10,8,16,.4) 40%,rgba(10,8,16,.05) 100%)}
.vini23-profile-main{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:end;padding:0 22px;margin-top:-40px;position:relative}
.vini23-profile-avatar{width:86px;height:86px;border-radius:50%;background:var(--vn-surface-3) center/cover no-repeat;border:5px solid var(--vn-surface-0);display:grid;place-items:center;font-size:19px;font-weight:800;position:relative;color:var(--vn-text-2)}
.vini23-profile-avatar i{position:absolute;bottom:3px;left:3px;width:13px;height:13px;border-radius:50%;background:var(--vn-faintest);border:3px solid var(--vn-surface-0)}
.vini23-profile-avatar i.on{background:var(--vn-online)}
.vini23-profile-name{padding-bottom:5px;min-width:0}
.vini23-profile-name>span{font-size:9.5px;color:var(--vn-accent-2);font-weight:800}
.vini23-profile-name h2{font-size:19px;font-weight:800;line-height:1.4;margin:1px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vini23-profile-name p{font-size:11px;color:var(--vn-faint);margin:0;direction:ltr;text-align:right}
.vini23-profile-actions{display:flex;gap:8px;flex-wrap:wrap;padding:15px 22px 0}
.vini23-profile-actions button{height:38px;padding:0 15px;border:1px solid var(--vn-border);border-radius:var(--vn-r-md);background:var(--vn-surface-2);color:var(--vn-text-2);font:inherit;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;transition:background var(--vn-fast),border-color var(--vn-fast),color var(--vn-fast)}
.vini23-profile-actions button svg{width:15px;height:15px}
.vini23-profile-actions button:hover{background:var(--vn-surface-3);border-color:var(--vn-accent-line);color:#fff}
.vini23-profile-actions button.primary{background:var(--vn-accent-strong);border-color:var(--vn-accent-strong);color:#fff}
.vini23-profile-actions button.primary:hover{background:var(--vn-accent)}
.vini23-profile-actions button.danger{color:#ff9aa8;border-color:rgba(255,107,129,.2)}
.vini23-profile-actions button.danger:hover{background:var(--vn-danger-soft)}
.vini23-profile-presence{margin:14px 22px 0;padding:10px 13px;border:1px solid var(--vn-border);border-radius:var(--vn-r-md);background:var(--vn-surface-1);display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}
.vini23-profile-presence>span{display:flex;align-items:center;gap:6px;color:var(--vn-faint);font-size:10.5px;white-space:nowrap}
.vini23-profile-presence>span i{width:7px;height:7px;border-radius:50%;background:var(--vn-faintest)}
.vini23-profile-presence>span.online i{background:var(--vn-online)}
.vini23-profile-presence>b{font-size:11px;color:var(--vn-text-2);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vini23-profile-presence>em{margin-right:auto;font-style:normal;font-size:9.5px;color:#ff9aa8;background:var(--vn-danger-soft);border:1px solid rgba(255,107,129,.2);border-radius:var(--vn-r-pill);padding:2px 8px}
.vini23-profile-about{padding:17px 22px 22px}
.vini23-profile-about small{display:block;color:var(--vn-faint);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.02em;margin-bottom:7px}
.vini23-profile-about p{margin:0;color:var(--vn-text-2);font-size:12.5px;line-height:1.95;white-space:pre-wrap}

/* profile editor */
.vini23-profile-editor{width:min(600px,100%);max-height:calc(100dvh - 44px);display:flex;flex-direction:column;background:var(--vn-surface-0);border:1px solid var(--vn-accent-line);border-radius:var(--vn-r-2xl);box-shadow:var(--vn-shadow-lg);overflow:hidden;color:var(--vn-text)}
.vini23-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:19px 21px 15px;border-bottom:1px solid var(--vn-border);background:var(--vn-surface-1)}
.vini23-editor-head>div>span{display:block;font-size:9px;font-weight:800;color:var(--vn-accent-2)}
.vini23-editor-head h3{font-size:17px;margin:2px 0 0;font-weight:800;color:var(--vn-text)}
.vini23-editor-head p{font-size:10.5px;color:var(--vn-faint);margin:4px 0 0}
.vini23-editor-head>button{width:37px;height:37px;flex:none;border:1px solid var(--vn-border);border-radius:var(--vn-r-sm);background:var(--vn-surface-2);color:var(--vn-muted);display:grid;place-items:center;cursor:pointer}
.vini23-editor-head>button:hover{background:var(--vn-surface-3);color:#fff}
.vini23-editor-head svg{width:16px;height:16px}
.vini23-editor-body{overflow-y:auto;min-height:0;padding:17px 19px 19px;display:flex;flex-direction:column;gap:13px}
.vini23-editor-preview{position:relative;height:142px;border-radius:var(--vn-r-lg);overflow:hidden;border:1px solid var(--vn-border);background:var(--vn-surface-1)}
.vini23-editor-banner{position:absolute;inset:0;background:var(--vn-surface-2) center/cover no-repeat}
.vini23-editor-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(9,7,13,.94),rgba(9,7,13,.1) 72%)}
.vini23-editor-identity{position:absolute;right:15px;left:15px;bottom:12px;display:flex;align-items:center;gap:11px}
.vini23-editor-avatar{width:58px;height:58px;border-radius:50%;border:4px solid var(--vn-surface-0);background:var(--vn-surface-3) center/cover no-repeat;display:grid;place-items:center;color:var(--vn-text-2);font-size:14px;font-weight:800;flex:none}
.vini23-editor-identity b{display:block;font-size:14.5px;font-weight:800}
.vini23-editor-identity small{display:block;color:var(--vn-faint);font-size:10px;margin-top:1px;direction:ltr;text-align:right}
.vini23-editor-section{padding:14px;border:1px solid var(--vn-border);border-radius:var(--vn-r-lg);background:var(--vn-surface-1)}
.vini23-section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}
.vini23-section-title b{display:block;font-size:12px;font-weight:800}
.vini23-section-title small{display:block;color:var(--vn-faintest);font-size:9.5px;margin-top:1px}
.vini23-field+.vini23-field{margin-top:11px}
.vini23-field>span{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--vn-muted);font-weight:800;margin-bottom:6px}
.vini23-field>span i{font-style:normal;font-size:9px;color:var(--vn-faintest);font-weight:500}
.vini23-field input,.vini23-field textarea{width:100%;box-sizing:border-box;background:var(--vn-surface-0);border:1px solid var(--vn-border);border-radius:var(--vn-r-sm);color:var(--vn-text);font:inherit;font-size:12px;padding:10px 12px;outline:0;transition:border-color var(--vn-fast)}
.vini23-field textarea{min-height:96px;resize:vertical;line-height:1.85}
.vini23-field input:focus,.vini23-field textarea:focus{border-color:var(--vn-accent-line);box-shadow:0 0 0 3px var(--vn-accent-soft)}
.vini23-editor-files{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.vini23-editor-files label{min-width:0;height:65px;padding:10px 11px;border:1px solid var(--vn-border);border-radius:var(--vn-r-md);background:var(--vn-surface-0);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;cursor:pointer;position:relative;transition:border-color var(--vn-fast),background var(--vn-fast)}
.vini23-editor-files label:hover{background:var(--vn-surface-1);border-color:var(--vn-accent-line)}
.vini23-file-icon{width:35px;height:35px;border-radius:var(--vn-r-sm);background:var(--vn-accent-soft);color:var(--vn-accent-2);display:grid;place-items:center;flex:none}
.vini23-file-icon svg{width:16px;height:16px}
.vini23-editor-files label b{display:block;font-size:10.5px}
.vini23-editor-files label small{display:block;color:var(--vn-faintest);font-size:8.5px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vini23-editor-files label em{font-style:normal;font-size:9px;color:var(--vn-accent-2);font-weight:800;flex:none}
.vini23-editor-files input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.vini23-editor-foot{display:flex;justify-content:flex-start;gap:8px;padding:13px 19px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--vn-border);background:var(--vn-surface-1);flex:none}
.vini23-editor-foot button{height:39px;padding:0 17px;border:1px solid var(--vn-border);border-radius:var(--vn-r-md);background:var(--vn-surface-2);color:var(--vn-muted);font:inherit;font-size:11px;font-weight:800;cursor:pointer}
.vini23-editor-foot button:hover{background:var(--vn-surface-3);color:#fff}
.vini23-editor-foot button.primary{background:var(--vn-accent-strong);border-color:var(--vn-accent-strong);color:#fff;min-width:126px}
.vini23-editor-foot button.primary:hover{background:var(--vn-accent)}
.vini23-editor-foot button:disabled{opacity:.55;cursor:wait}

/* ---------------------------------------------------------------------- */
/* Moderation panel                                                        */
/* ---------------------------------------------------------------------- */
.vini21-mod-card{width:min(600px,100%);max-height:min(760px,calc(100dvh - 40px));overflow:hidden;display:flex;flex-direction:column;background:var(--vn-surface-0);border:1px solid var(--vn-accent-line);border-radius:var(--vn-r-2xl);box-shadow:var(--vn-shadow-lg);color:var(--vn-text)}
.vini21-mod-card>header{display:flex;align-items:flex-start;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--vn-border);background:var(--vn-surface-1)}
.vini21-mod-card>header small{display:block;color:var(--vn-accent-2);font-size:9px;font-weight:800}
.vini21-mod-card>header h3{font-size:16.5px;margin:1px 0;font-weight:800}
.vini21-mod-card>header p{font-size:10.5px;color:var(--vn-faint)}
.vini21-mod-card>header button{width:35px;height:35px;border:1px solid var(--vn-border);border-radius:var(--vn-r-sm);background:var(--vn-surface-2);color:var(--vn-muted);display:grid;place-items:center;cursor:pointer}
.vini21-mod-card>header button:hover{background:var(--vn-surface-3);color:#fff}
.vini21-mod-card>header button svg{width:16px;height:16px}
.vini21-mod-body{overflow:auto;padding:15px 20px 20px}
.vini21-mod-note{display:flex;gap:10px;padding:12px 13px;border:1px solid var(--vn-accent-line);background:var(--vn-accent-soft);border-radius:var(--vn-r-md)}
.vini21-mod-note>svg{width:19px;color:var(--vn-accent-2);flex:none}
.vini21-mod-note b{display:block;font-size:11.5px;font-weight:800}
.vini21-mod-note span{display:block;color:var(--vn-muted);font-size:10px;line-height:1.8;margin-top:2px}
.vini21-mod-body section{margin-top:17px}
.vini21-mod-body h4{font-size:11px;margin:0 0 8px;color:var(--vn-text-2);font-weight:800}
.vini21-mod-list{display:flex;flex-direction:column;gap:4px}
.vini21-mod-list label,.vini21-mod-list>div{min-height:50px;display:flex;align-items:center;gap:10px;padding:7px 9px;border:1px solid transparent;border-radius:var(--vn-r-md);background:var(--vn-surface-1);cursor:default}
.vini21-mod-list label{cursor:pointer}
.vini21-mod-list label:hover,.vini21-mod-list>div:hover{border-color:var(--vn-border);background:var(--vn-surface-2)}
.vini21-mod-avatar{width:34px;height:34px;border-radius:50%;background:var(--vn-surface-3) center/cover no-repeat;display:grid;place-items:center;font-size:10px;font-weight:800;flex:none;color:var(--vn-text-2)}
.vini21-mod-list label>span:nth-child(2),.vini21-mod-list>div>span:nth-child(2){flex:1;min-width:0}
.vini21-mod-list b{display:block;font-size:11px;font-weight:700}
.vini21-mod-list small{display:block;font-size:9px;color:var(--vn-faint);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vini21-mod-list input[type=checkbox]{accent-color:var(--vn-accent);width:18px;height:18px;flex:none}
.vini21-mod-list button{height:30px;padding:0 11px;border-radius:var(--vn-r-xs);border:1px solid rgba(255,107,129,.2);background:var(--vn-danger-soft);color:#ff9aa8;font:inherit;font-size:10px;font-weight:800;cursor:pointer;flex:none}
.vini21-mod-list button:hover{background:rgba(255,107,129,.2)}
.vini21-mod-list button:disabled{opacity:.5;cursor:wait}
.vini21-mod-list>p{padding:15px;text-align:center;color:var(--vn-faint);font-size:10px;background:var(--vn-surface-1);border-radius:var(--vn-r-md)}

/* mute duration/reason dialog — replaces window.prompt() */
.vini24-mute-dialog{width:min(380px,100%);background:var(--vn-surface-0);border:1px solid var(--vn-accent-line);border-radius:var(--vn-r-xl);box-shadow:var(--vn-shadow-lg);color:var(--vn-text);overflow:hidden}
.vini24-mute-dialog header{padding:18px 20px 14px;border-bottom:1px solid var(--vn-border);background:var(--vn-surface-1)}
.vini24-mute-dialog header b{display:block;font-size:14.5px;font-weight:800}
.vini24-mute-dialog header small{display:block;font-size:10.5px;color:var(--vn-faint);margin-top:3px}
.vini24-mute-dialog .vini24-mute-body{padding:16px 20px;display:flex;flex-direction:column;gap:13px}
.vini24-mute-dialog label{display:block;font-size:10.5px;color:var(--vn-muted);font-weight:800;margin-bottom:6px}
.vini24-mute-duration-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.vini24-mute-duration-grid button{height:36px;border:1px solid var(--vn-border);border-radius:var(--vn-r-sm);background:var(--vn-surface-1);color:var(--vn-muted);font:inherit;font-size:11px;font-weight:800;cursor:pointer}
.vini24-mute-duration-grid button:hover{border-color:var(--vn-accent-line);color:var(--vn-text)}
.vini24-mute-duration-grid button.active{background:var(--vn-accent-soft);border-color:var(--vn-accent-line);color:var(--vn-accent-2)}
.vini24-mute-custom{display:flex;align-items:center;gap:8px}
.vini24-mute-custom input{width:84px;box-sizing:border-box;background:var(--vn-surface-1);border:1px solid var(--vn-border);border-radius:var(--vn-r-sm);color:var(--vn-text);font:inherit;font-size:12px;padding:9px 10px;outline:0;direction:ltr;text-align:center}
.vini24-mute-custom input:focus{border-color:var(--vn-accent-line)}
.vini24-mute-custom span{font-size:10.5px;color:var(--vn-faint)}
.vini24-mute-dialog textarea{width:100%;box-sizing:border-box;background:var(--vn-surface-1);border:1px solid var(--vn-border);border-radius:var(--vn-r-sm);color:var(--vn-text);font:inherit;font-size:12px;padding:10px 11px;outline:0;resize:vertical;min-height:66px}
.vini24-mute-dialog textarea:focus{border-color:var(--vn-accent-line)}
.vini24-mute-dialog footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--vn-border);background:var(--vn-surface-1)}
.vini24-mute-dialog footer button{height:37px;padding:0 15px;border-radius:var(--vn-r-sm);border:1px solid var(--vn-border);background:var(--vn-surface-2);color:var(--vn-muted);font:inherit;font-size:11px;font-weight:800;cursor:pointer}
.vini24-mute-dialog footer button:hover{background:var(--vn-surface-3);color:#fff}
.vini24-mute-dialog footer button.primary{background:var(--vn-danger);border-color:var(--vn-danger);color:#fff}
.vini24-mute-dialog footer button.primary:hover{background:#ff8194}
.vini24-mute-dialog footer button:disabled{opacity:.55;cursor:wait}

/* storage popover — small, anchored, only opened on demand */
.vini24-storage-pop{
  position:absolute;z-index:60;bottom:calc(100% + 8px);right:0;width:250px;
  background:var(--vn-surface-2);border:1px solid var(--vn-accent-line);border-radius:var(--vn-r-lg);
  box-shadow:var(--vn-shadow-md);padding:14px;opacity:0;transform:translateY(4px) scale(.98);
  transition:opacity var(--vn-fast),transform var(--vn-fast);
}
.vini24-storage-pop.show{opacity:1;transform:none}
.vini24-storage-pop b{display:block;font-size:11.5px;font-weight:800;margin-bottom:9px}
.vini24-storage-pop .row{display:flex;justify-content:space-between;font-size:10.5px;color:var(--vn-muted);padding:3px 0}
.vini24-storage-pop .row span:last-child{color:var(--vn-text-2);direction:ltr;font-weight:700}
.vini24-storage-pop .track{margin:9px 0;height:6px;border-radius:var(--vn-r-pill);background:var(--vn-surface-3);overflow:hidden}
.vini24-storage-pop .track span{display:block;height:100%;background:linear-gradient(90deg,var(--vn-accent),var(--vn-accent-2))}
.vini24-storage-pop small{display:block;color:var(--vn-faint);font-size:9.5px;line-height:1.8;margin-top:8px}

/* ---------------------------------------------------------------------- */
/* Accessibility                                                           */
/* ---------------------------------------------------------------------- */
.vini21-overlay :focus-visible,
.vini21-profile-layer :focus-visible,
.vini21-profile-editor-layer :focus-visible,
.vini21-mod-layer :focus-visible,
.vini24-mute-layer :focus-visible,
.vini24-message-menu-layer :focus-visible{
  outline:2px solid var(--vn-accent-2)!important;
  outline-offset:2px!important;
  border-radius:var(--vn-r-xs);
}
.vini21-overlay button:disabled,.vini21-profile-layer button:disabled,.vini21-profile-editor-layer button:disabled,.vini24-mute-layer button:disabled{cursor:wait!important}

@media(prefers-reduced-motion:reduce){
  .vini21-overlay *,.vini21-profile-layer *,.vini21-profile-editor-layer *,.vini21-mod-layer *,.vini24-mute-layer *,.vini24-message-menu-layer *{
    animation-duration:.01ms!important;transition-duration:.01ms!important;
  }
}

/* ---------------------------------------------------------------------- */
/* Responsive                                                              */
/* ---------------------------------------------------------------------- */
@media(max-width:1180px){
  .vini21-shell.info-open{grid-template-columns:290px minmax(0,1fr)!important}
  .vini21-info-panel{position:absolute!important;inset:0 0 0 auto!important;width:300px!important;z-index:12!important;box-shadow:-20px 0 45px rgba(0,0,0,.35)!important}
  .vini21-sidebar{width:290px!important}
  .vini21-shell{grid-template-columns:290px minmax(0,1fr)!important}
}

@media(max-width:820px){
  .vini21-overlay{padding:0!important}
  .vini21-shell,.vini21-shell.info-open{width:100vw!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important;border:0!important;grid-template-columns:1fr!important}
  .vini21-sidebar{position:absolute!important;inset:0!important;width:100%!important;z-index:20!important;transform:translateX(105%)!important;transition:transform var(--vn-med) var(--vn-ease)!important;border:0!important}
  .vini21-overlay.side-open .vini21-sidebar{transform:none!important}
  .vt13-side-backdrop{display:block!important;opacity:0!important;pointer-events:none!important;transition:opacity var(--vn-med)}
  .vini21-overlay.side-open .vt13-side-backdrop{opacity:1!important;pointer-events:auto!important}
  .only-mobile,.vt13-mobile-menu{display:grid!important}
  .vini21-head{height:64px!important;min-height:64px!important;padding:0 8px!important}
  .vini21-head-avatar{width:37px!important;height:37px!important}
  .vini21-messages{padding:16px 8px 12px!important}
  .vini21-messages .vt13-msg-avatar{width:27px!important;height:27px!important}
  .vini21-compose-wrap{padding:7px 7px calc(9px + env(safe-area-inset-bottom))!important}
  .vini21-info-panel{position:absolute!important;inset:0!important;width:100%!important;z-index:18!important}
  .vini21-profile-layer,.vini21-profile-editor-layer,.vini21-mod-layer,.vini24-mute-layer{padding:0!important;align-items:flex-end!important}
  .vini23-profile-card,.vini23-profile-editor,.vini21-mod-card,.vini24-mute-dialog{width:100%!important;max-height:92dvh!important;border-radius:var(--vn-r-2xl) var(--vn-r-2xl) 0 0!important;border-bottom:0!important}
  .vini23-profile-main{padding:0 16px!important}
  .vini23-profile-actions,.vini23-profile-about{padding-left:16px!important;padding-right:16px!important}
  .vini23-profile-presence{margin-left:16px!important;margin-right:16px!important}
  .vini23-editor-body{padding:14px!important}
  .vini23-editor-head{padding:16px 15px 12px!important}
  .vini23-editor-foot{padding:11px 14px calc(14px + env(safe-area-inset-bottom))!important}
  .vini21-presence-actions>small{display:none}

  .vini24-message-menu-layer{background:rgba(2,1,5,.42);backdrop-filter:blur(3px)}
  .vini24-message-menu{position:absolute;left:10px!important;right:10px!important;top:auto!important;bottom:calc(10px + env(safe-area-inset-bottom));width:auto;max-width:none;min-width:0;border-radius:var(--vn-r-xl);padding:8px;transform:translateY(16px) scale(.99)}
  .vini24-message-menu-layer.show .vini24-message-menu{transform:none}
  .vini24-quick-reactions button{height:40px;font-size:20px}
  .vini24-menu-item{height:46px;font-size:13px;border-radius:var(--vn-r-md);padding:0 13px}
}

@media(max-width:430px){
  .vini21-person-profile{opacity:1}
  .vini23-profile-hero{height:128px}
  .vini23-profile-main{margin-top:-36px}
  .vini23-profile-avatar{width:78px;height:78px}
  .vini23-profile-actions{display:grid;grid-template-columns:1fr}
  .vini23-profile-actions button{width:100%}
  .vini23-profile-presence{align-items:flex-start;flex-wrap:wrap}
  .vini23-profile-presence>em{margin-right:0;width:100%}
  .vini23-editor-preview{height:130px}
  .vini23-editor-files{grid-template-columns:1fr!important}
  .vini21-messages .vt13-text{font-size:13px!important}
  .vini21-input-shell textarea{font-size:13px!important}
  .vini24-mute-duration-grid{grid-template-columns:repeat(2,1fr)}
}

/* ========================================================================== 
   Vini Messenger v24.2 — focused UI/UX refinement
   Scoped overrides only. No Vanta-wide UI behavior leaks into Vini Chat.
   ========================================================================== */

/* Hard boundary against the global Vanta button sheen/reflection. */
.vini21-overlay button::before,.vini21-overlay button::after,
.vini21-profile-layer button::before,.vini21-profile-layer button::after,
.vini21-profile-editor-layer button::before,.vini21-profile-editor-layer button::after,
.vini21-mod-layer button::before,.vini21-mod-layer button::after,
.vini24-mute-layer button::before,.vini24-mute-layer button::after,
.vini24-message-menu-layer button::before,.vini24-message-menu-layer button::after{
  content:none!important;display:none!important;animation:none!important;background:none!important;box-shadow:none!important;
}

:root{
  --vn-bg:#060509;
  --vn-surface-0:#09070d;
  --vn-surface-1:#0d0a13;
  --vn-surface-2:#12101a;
  --vn-surface-3:#181322;
  --vn-surface-4:#20172f;
  --vn-border:rgba(244,239,255,.085);
  --vn-border-soft:rgba(244,239,255,.055);
  --vn-border-strong:rgba(160,118,255,.34);
  --vn-text:#f7f4fb;
  --vn-text-2:#ddd7e8;
  --vn-muted:#a59bad;
  --vn-faint:#807687;
  --vn-faintest:#62596b;
  --vn-accent:#8b5cf6;
  --vn-accent-2:#b092ff;
  --vn-accent-strong:#7443e8;
  --vn-accent-soft:rgba(139,92,246,.115);
  --vn-accent-soft-2:rgba(139,92,246,.19);
  --vn-accent-line:rgba(154,111,255,.28);
  --vn-on-mine:#241a38;
  --vn-on-mine-line:rgba(164,126,255,.24);
  --vn-online:#43d892;
  --vn-danger:#ff7187;
  --vn-danger-soft:rgba(255,113,135,.11);
  --vn-warning:#e8b866;
  --vn-warning-soft:rgba(232,184,102,.12);
  --vn-shadow-sm:0 4px 14px rgba(0,0,0,.18);
  --vn-shadow-md:0 18px 55px rgba(0,0,0,.34);
  --vn-shadow-lg:0 38px 120px rgba(0,0,0,.62);
}

/* shell */
.vini21-overlay{
  padding:24px!important;
  background:rgba(3,2,6,.84)!important;
  backdrop-filter:blur(18px) saturate(.9)!important;
}
.vini21-shell{
  width:min(1500px,calc(100vw - 48px))!important;
  height:min(920px,calc(100dvh - 48px))!important;
  max-height:calc(100dvh - 48px)!important;
  grid-template-columns:320px minmax(0,1fr)!important;
  border:1px solid rgba(176,146,255,.18)!important;
  border-radius:24px!important;
  background:#060509!important;
  box-shadow:0 38px 110px rgba(0,0,0,.62),0 0 0 1px rgba(255,255,255,.018) inset!important;
}
.vini21-shell::before{
  background:
    radial-gradient(900px 430px at 86% -12%,rgba(125,79,239,.12),transparent 62%),
    radial-gradient(620px 320px at 12% 108%,rgba(110,65,213,.055),transparent 64%)!important;
}
.vini21-shell.info-open{grid-template-columns:320px minmax(0,1fr) 310px!important}

/* sidebar */
.vini21-sidebar{
  background:linear-gradient(180deg,#0a080f 0%,#08070c 100%)!important;
  border-left:1px solid var(--vn-border)!important;
}
.vini21-side-top{
  height:72px!important;padding:0 15px!important;
  background:rgba(11,8,16,.88)!important;
  border-bottom:1px solid var(--vn-border-soft)!important;
}
.vini21-brand{gap:10px!important}
.vini21-brand-logo{
  width:39px!important;height:39px!important;border-radius:12px!important;
  background:linear-gradient(145deg,rgba(139,92,246,.15),rgba(255,255,255,.025))!important;
  border:1px solid rgba(172,137,255,.24)!important;
  color:#c0a4ff!important;
}
.vini21-brand b{font-size:14px!important;font-weight:850!important}
.vini21-brand small{font-size:9.5px!important;color:#746c7c!important;margin-top:1px!important}

.vini21-global-search{
  margin:11px 12px 8px!important;height:41px!important;padding:0 11px!important;
  border-radius:12px!important;background:#0d0b12!important;border-color:rgba(255,255,255,.065)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.018) inset!important;
}
.vini21-global-search:hover{border-color:rgba(255,255,255,.10)!important}
.vini21-global-search:focus-within{
  border-color:rgba(157,116,255,.38)!important;
  box-shadow:0 0 0 3px rgba(139,92,246,.08)!important;
  background:#100d17!important;
}
.vini21-global-search input{font-size:11.5px!important}

.vini21-presence{
  margin:0 12px 7px!important;padding:7px 9px!important;min-height:36px!important;
  border-radius:11px!important;background:transparent!important;border-color:transparent!important;
}
.vini21-presence:hover{background:rgba(255,255,255,.018)!important}
.vini21-presence b{font-size:10px!important;font-weight:750!important}
.vini21-presence small{font-size:9px!important;color:#68606f!important}
.vini21-presence>span>i{width:7px!important;height:7px!important;box-shadow:0 0 0 3px rgba(67,216,146,.08)!important}
.vini21-mini-action{width:29px!important;height:29px!important;border-radius:9px!important}

.vt13-storage-pill{
  margin:0 12px 7px!important;padding:7px 9px!important;min-height:34px!important;
  border-radius:10px!important;background:#0c0a11!important;border-color:rgba(255,255,255,.05)!important;
  font-size:9px!important;
}
.vt13-storage-pill:hover{background:#110e18!important;border-color:rgba(154,111,255,.20)!important}
.vt13-storage-pill i{height:3px!important;background:rgba(255,255,255,.055)!important}
.vt13-storage-pill i span{background:var(--vn-accent)!important}
.vt13-storage-pill b{font-size:9px!important}

.vini21-label{padding:9px 14px 5px!important}
.vini21-label span{font-size:9px!important;font-weight:850!important;color:#756c80!important;letter-spacing:.06em!important}
.vini21-label small{font-size:8.5px!important;color:#5d5665!important}

.vini21-channels{padding:0 8px!important;gap:3px!important}
.vini21-channels .vt13-channel{
  min-height:55px!important;padding:6px 8px!important;gap:9px!important;
  border-radius:13px!important;background:transparent!important;border-color:transparent!important;
  box-shadow:none!important;transition:background var(--vn-fast),border-color var(--vn-fast),box-shadow var(--vn-fast)!important;
}
.vini21-channels .vt13-channel:hover{background:rgba(255,255,255,.025)!important;border-color:rgba(255,255,255,.045)!important}
.vini21-channels .vt13-channel.active{
  background:linear-gradient(90deg,rgba(139,92,246,.055),rgba(139,92,246,.13))!important;
  border-color:rgba(154,111,255,.20)!important;
  box-shadow:inset -3px 0 0 rgba(160,115,255,.68)!important;
}
.vini21-channels .vt13-channel-icon{
  width:39px!important;height:39px!important;border-radius:12px!important;background-color:#17121f!important;
  border:1px solid rgba(255,255,255,.06)!important;color:#bca2f7!important;box-shadow:none!important;
}
.vini21-channels .vt13-channel.active .vt13-channel-icon{background-color:#1c1430!important;border-color:rgba(163,122,255,.28)!important}
.vini21-channels .vt13-channel-copy b{font-size:11.5px!important;font-weight:800!important}
.vini21-channels .vt13-channel-copy small{font-size:8.8px!important;color:#716878!important;margin-top:1px!important}
.vini21-channels .vt13-channel-tag{
  font-size:7.5px!important;font-weight:850!important;padding:3px 6px!important;border-radius:999px!important;
  background:rgba(139,92,246,.08)!important;color:#9b80cf!important;border:1px solid rgba(139,92,246,.12)!important;
}

.vini21-people{
  padding:0 8px 8px!important;gap:2px!important;scrollbar-width:thin;scrollbar-color:#2a2138 transparent!important;
}
.vini21-person{
  min-height:52px!important;border-radius:12px!important;border-color:transparent!important;gap:1px!important;
  transition:background var(--vn-fast),border-color var(--vn-fast),box-shadow var(--vn-fast)!important;
}
.vini21-person:hover{background:rgba(255,255,255,.024)!important;border-color:rgba(255,255,255,.035)!important}
.vini21-person.active{
  background:rgba(139,92,246,.105)!important;border-color:rgba(157,116,255,.18)!important;
  box-shadow:inset -3px 0 0 rgba(157,116,255,.62)!important;
}
.vini21-person[data-online="0"] .vini21-person-avatar{filter:saturate(.72);opacity:.88}
.vini21-person-chat{height:50px!important;padding:5px 7px!important;gap:9px!important}
.vini21-person-avatar{
  width:36px!important;height:36px!important;font-size:10.5px!important;
  background-color:#17131f!important;border:1px solid rgba(255,255,255,.045)!important;
}
.vini21-person-avatar i{width:9px!important;height:9px!important;border-width:2px!important;border-color:#09070d!important;bottom:-1px!important;left:-1px!important}
.vini21-person-copy b{font-size:11.5px!important;font-weight:760!important;line-height:1.35!important}
.vini21-person-copy small{font-size:8.9px!important;color:#756d7c!important;margin-top:1px!important}
.vini21-person[data-online="1"] .vini21-person-copy small{color:#8d8494!important}
.vini21-person-profile{
  width:30px!important;height:30px!important;border-radius:9px!important;color:#6e6577!important;
  background:transparent!important;
}
.vini21-person-profile:hover{background:rgba(139,92,246,.10)!important;color:#b99bfa!important}
.vini21-empty{padding:24px 13px!important}
.vini21-empty b{font-size:11.5px!important}
.vini21-empty small{font-size:9.5px!important}

.vini21-self{
  height:61px!important;padding:8px 12px!important;background:#09070d!important;border-top-color:rgba(255,255,255,.065)!important;
}
.vini21-self:hover{background:#0e0b14!important}
.vini21-self .vt13-actor-avatar{width:37px!important;height:37px!important;font-size:10.5px!important;border:1px solid rgba(255,255,255,.05)!important}
.vini21-self .vt13-actor-copy b{font-size:11.5px!important}
.vini21-self .vt13-actor-copy small{font-size:8.8px!important;color:#716978!important;margin-top:1px!important}
.vini21-self-action{width:30px!important;height:30px!important;border-radius:9px!important;background:rgba(255,255,255,.02)!important;color:#81758d!important}

/* main header */
.vini21-main{background:#060509!important}
.vini21-head{
  height:68px!important;min-height:68px!important;padding:0 14px!important;
  background:rgba(8,6,12,.91)!important;border-bottom-color:rgba(255,255,255,.07)!important;
  backdrop-filter:blur(20px) saturate(.95)!important;
}
.vini21-head .vt13-head-main{gap:10px!important}
.vini21-head-avatar{
  width:39px!important;height:39px!important;background-color:#171220!important;
  border:1px solid rgba(255,255,255,.06)!important;font-size:10.5px!important;
  box-shadow:0 1px 0 rgba(255,255,255,.03) inset!important;
}
.vini21-head-avatar.editable:hover{outline:none!important;border-color:rgba(158,119,255,.34)!important}
.vini21-head .vt13-head-copy h3{font-size:13px!important;font-weight:820!important}
.vini21-head .vt13-head-status{font-size:9.5px!important;color:#746c7c!important;margin-top:1px!important}
.vini21-head .vt13-conn-dot{width:6px!important;height:6px!important}
.vini21-head-actions{gap:3px!important}
.vini21-icon{
  width:35px!important;height:35px!important;border-radius:10px!important;color:#847a8e!important;
  background:transparent!important;border-color:transparent!important;box-shadow:none!important;
}
.vini21-icon:hover{background:rgba(255,255,255,.045)!important;border-color:rgba(255,255,255,.055)!important;color:#e8e2ef!important}
.vini21-icon.active{background:rgba(139,92,246,.11)!important;color:#bca1fb!important;border-color:rgba(154,111,255,.18)!important}
.vini21-close:hover{background:rgba(255,113,135,.09)!important;border-color:rgba(255,113,135,.13)!important;color:#ff8b9d!important}

.vini21-searchbar{background:#09070d!important;padding:8px 14px!important;border-bottom-color:rgba(255,255,255,.06)!important}
.vini21-searchbar .vt13-search-inner{
  max-width:860px!important;height:39px!important;background:#0f0c15!important;border-color:rgba(255,255,255,.065)!important;border-radius:12px!important;
}
.vini21-searchbar .vt13-search-inner:focus-within{border-color:rgba(157,116,255,.34)!important;box-shadow:0 0 0 3px rgba(139,92,246,.07)!important}

/* thread and messages */
.vini21-thread{
  background:
    radial-gradient(760px 440px at 58% 42%,rgba(114,69,218,.035),transparent 68%),
    linear-gradient(180deg,#060509,#07060a)!important;
}
.vini21-messages{
  padding:24px clamp(16px,4vw,58px) 18px!important;
  scrollbar-width:thin;scrollbar-color:#2a2136 transparent!important;
}
.vini21-messages::-webkit-scrollbar,.vini21-people::-webkit-scrollbar,.vini21-info-panel::-webkit-scrollbar,.vini23-editor-body::-webkit-scrollbar,.vini21-mod-body::-webkit-scrollbar{width:6px!important;height:6px!important}
.vini21-messages::-webkit-scrollbar-thumb,.vini21-people::-webkit-scrollbar-thumb,.vini21-info-panel::-webkit-scrollbar-thumb,.vini23-editor-body::-webkit-scrollbar-thumb,.vini21-mod-body::-webkit-scrollbar-thumb{background:#2a2136!important;border-radius:999px!important}
.vini21-messages>.vt13-context-card,.vini21-messages>.vt13-history-loader,.vini21-messages>.vt13-empty,.vini21-messages>.vt13-loading{max-width:880px!important}
.vt13-context-card{
  padding:5px 12px!important;margin-bottom:20px!important;
  background:rgba(255,255,255,.025)!important;border-color:rgba(255,255,255,.055)!important;color:#7c7383!important;font-size:9.5px!important;
}
.vt13-context-card b{color:#aaa1b3!important;font-weight:750!important}
.vt13-history-loader{font-size:10px!important;color:#a98aea!important;background:rgba(139,92,246,.055)!important;padding:7px 11px!important}
.vt13-history-loader:hover{background:rgba(139,92,246,.095)!important}
.vini21-messages .vt13-day{
  margin:18px auto 13px!important;background:#0e0c12!important;color:#716978!important;border-color:rgba(255,255,255,.05)!important;
  padding:4px 10px!important;font-size:8.8px!important;
}
.vini21-messages .vt13-msg{max-width:880px!important;gap:7px!important;margin-bottom:1px!important;padding:1px 0!important}
.vini21-messages .vt13-msg-avatar{
  width:29px!important;height:29px!important;background-color:#17121f!important;border:1px solid rgba(255,255,255,.04)!important;font-size:9px!important;
}
.vini21-messages .vt13-bubble{
  max-width:min(70%,620px)!important;min-width:88px!important;
  background:#111018!important;border-color:rgba(255,255,255,.062)!important;
  border-radius:15px 15px 15px 5px!important;padding:7px 10px 6px!important;
  box-shadow:0 3px 12px rgba(0,0,0,.12)!important;
  transition:border-color var(--vn-fast),background var(--vn-fast)!important;
}
.vini21-messages .vt13-bubble:hover{border-color:rgba(255,255,255,.095)!important;background:#13111b!important}
.vini21-messages .vt13-msg.mine .vt13-bubble{
  background:linear-gradient(145deg,#211733,#281b40)!important;border-color:rgba(157,116,255,.20)!important;
  border-radius:15px 15px 5px 15px!important;box-shadow:0 4px 15px rgba(0,0,0,.14)!important;
}
.vini21-messages .vt13-msg.mine .vt13-bubble:hover{background:linear-gradient(145deg,#241938,#2c1e46)!important;border-color:rgba(164,126,255,.28)!important}
.vini21-messages .vt13-msg.compact .vt13-bubble,.vini21-messages .vt13-msg.mine.compact .vt13-bubble{border-radius:15px!important}
.vini21-messages .vt13-msg-meta{gap:5px!important;margin-bottom:2px!important;font-size:8.8px!important;color:#716878!important}
.vini21-messages .vt13-msg-meta b{font-size:9.7px!important;color:#ab8be9!important;font-weight:800!important}
.vini21-messages .vini-edited{font-size:8px!important;color:#665e6e!important}
.vini21-messages .vt13-text{font-size:12.8px!important;line-height:1.85!important;color:#f3eff7!important}
.vini21-messages .vini-reply-preview{
  background:rgba(0,0,0,.16)!important;border-right-color:#8d62ec!important;border-radius:8px!important;padding:5px 8px!important;margin-bottom:5px!important;
}
.vini21-messages .vini-reply-preview b{font-size:9.5px!important;color:#b291f8!important}
.vini21-messages .vini-reply-preview span{font-size:9.8px!important;color:#8c8393!important}
.vini21-messages .vini-reaction{height:23px!important;padding:0 7px!important;background:#17131f!important;border-color:rgba(255,255,255,.065)!important;font-size:10.5px!important}
.vini21-messages .vini-reaction.mine{background:rgba(139,92,246,.12)!important;border-color:rgba(157,116,255,.22)!important}
.vini24-message-hint{top:5px!important;left:5px!important;width:23px!important;height:23px!important;border-radius:8px!important}

.vt13-new{
  height:33px!important;padding:0 12px!important;background:#17121f!important;border-color:rgba(157,116,255,.18)!important;color:#d8cee7!important;
  box-shadow:0 12px 34px rgba(0,0,0,.34)!important;font-size:9.8px!important;
}
.vt13-new:hover{background:#1e172a!important;border-color:rgba(157,116,255,.27)!important}

/* media */
.vini21-messages .vt13-media-image,.vini21-messages .vt13-media-video video,.vini21-messages .vini-video-note-message video{border:1px solid rgba(255,255,255,.07)!important;border-radius:12px!important;box-shadow:none!important}
.vini21-messages .vt13-media-file{background:rgba(0,0,0,.17)!important;border-color:rgba(255,255,255,.07)!important;border-radius:11px!important}
.vini21-messages .vt13-voice-play{width:34px!important;height:34px!important;background:rgba(139,92,246,.12)!important;color:#b99af8!important}
.vini21-messages .vt13-voice-play:hover{background:rgba(139,92,246,.19)!important}

/* composer */
.vini21-compose-wrap{
  background:linear-gradient(180deg,rgba(7,5,10,.72),#08060d 35%)!important;
  border-top-color:rgba(255,255,255,.055)!important;
  padding:9px clamp(14px,3.1vw,42px) calc(12px + env(safe-area-inset-bottom))!important;
}
.vini21-compose-wrap>*{max-width:900px!important}
.vini21-compose{
  min-height:51px!important;padding:5px!important;gap:3px!important;
  background:#111018!important;border-color:rgba(255,255,255,.085)!important;border-radius:17px!important;
  box-shadow:0 8px 26px rgba(0,0,0,.16)!important;
}
.vini21-compose:focus-within{
  border-color:rgba(157,116,255,.34)!important;
  box-shadow:0 0 0 3px rgba(139,92,246,.075),0 10px 30px rgba(0,0,0,.18)!important;
}
.vini21-reply-bar{
  min-height:43px!important;background:#0e0b14!important;border-color:rgba(157,116,255,.15)!important;
  border-radius:14px 14px 0 0!important;padding:5px 8px!important;
}
.vini21-reply-bar+.vini21-compose{border-radius:0 0 17px 17px!important}
.vini21-reply-bar b{font-size:9.8px!important}
.vini21-reply-bar small{font-size:9.2px!important}
.vini21-compose-icon{width:38px!important;height:38px!important;border-radius:11px!important;color:#756c7f!important}
.vini21-compose-icon:hover{background:rgba(255,255,255,.045)!important;color:#b99af8!important}
.vini21-input-shell textarea{min-height:37px!important;padding:8px 4px 6px!important;font-size:12.8px!important;line-height:1.7!important}
.vini21-input-shell textarea::placeholder{color:#625a6a!important}
.vini21-send{
  width:39px!important;height:39px!important;border-radius:12px!important;background:#1a1522!important;color:#71677c!important;
  box-shadow:none!important;
}
.vini21-send.ready{background:#8250ef!important;color:white!important;box-shadow:0 7px 18px rgba(93,52,189,.22)!important}
.vini21-send.ready:hover{background:#9061f7!important}

.vt13-upload-panel,.vt13-recorder{
  background:#100d17!important;border-color:rgba(255,255,255,.075)!important;border-radius:14px!important;margin-bottom:7px!important;padding:8px 10px!important;
  box-shadow:none!important;
}
.vt13-upload-icon{background:rgba(139,92,246,.10)!important}
.vt13-upload-track{height:3px!important}
.vt13-rec-action{border-radius:10px!important}

/* context panel */
.vini21-info-panel{background:#09070d!important;border-right-color:rgba(255,255,255,.065)!important}
.vini21-info-head{height:68px!important;padding:0 13px!important;border-bottom-color:rgba(255,255,255,.06)!important}
.vini21-info-head b{font-size:12px!important}
.vini21-info-body{padding:15px 13px 18px!important}
.vini21-info-person{padding:8px 4px!important;border-radius:15px!important}
.vini21-info-person:hover{background:rgba(255,255,255,.02)!important}
.vini21-info-person>span{width:72px!important;height:72px!important;background-color:#17121f!important;margin-bottom:9px!important;font-size:16px!important}
.vini21-info-person h3{font-size:14px!important}
.vini21-info-person p{font-size:9.8px!important;color:#766d7e!important}
.vini21-info-primary{height:37px!important;border-radius:11px!important;background:rgba(139,92,246,.09)!important;border-color:rgba(157,116,255,.17)!important;font-size:10.5px!important;margin:11px 0 17px!important}
.vini21-info-primary:hover{background:rgba(139,92,246,.15)!important}
.vini21-info-body section{border-top-color:rgba(255,255,255,.055)!important;padding-top:14px!important;margin-top:14px!important}
.vini21-group-summary>span{width:66px!important;height:66px!important;border-radius:18px!important;background:#171220!important;border:1px solid rgba(157,116,255,.16)!important}
.vini21-group-summary h3{font-size:14px!important}
.vini21-group-summary p{font-size:9.8px!important}
.vini21-online-list button{padding:6px!important;border-radius:10px!important}
.vini21-online-list button:hover{background:rgba(255,255,255,.03)!important}
.vini23-media-thumb{border-radius:10px!important;background:#111018!important;border-color:rgba(255,255,255,.06)!important}

/* profile view */
.vini21-profile-layer,.vini21-profile-editor-layer,.vini21-mod-layer,.vini24-mute-layer{
  background:rgba(3,2,6,.82)!important;backdrop-filter:blur(16px) saturate(.9)!important;
}
.vini23-profile-card{
  width:min(510px,100%)!important;background:#0a080f!important;border-color:rgba(166,128,255,.22)!important;
  border-radius:22px!important;box-shadow:0 34px 100px rgba(0,0,0,.60)!important;overflow:auto!important;
}
.vini23-profile-close{
  top:12px!important;left:12px!important;width:34px!important;height:34px!important;border-radius:10px!important;
  background:rgba(10,8,15,.74)!important;border-color:rgba(255,255,255,.08)!important;backdrop-filter:blur(10px)!important;
}
.vini23-profile-hero{
  height:126px!important;
  background-color:#14101c!important;
  background-image:var(--profile-banner,radial-gradient(360px 180px at 78% 18%,rgba(139,92,246,.22),transparent 66%),linear-gradient(135deg,#171020,#0d0a12))!important;
  background-position:center!important;background-size:cover!important;background-repeat:no-repeat!important;
}
.vini23-profile-hero::before{background:linear-gradient(110deg,rgba(139,92,246,.06),transparent 42%)!important}
.vini23-profile-hero-shade{background:linear-gradient(to top,#0a080f 0,rgba(10,8,15,.36) 42%,rgba(10,8,15,.03) 100%)!important}
.vini23-profile-main{gap:13px!important;padding:0 20px!important;margin-top:-35px!important;align-items:end!important}
.vini23-profile-avatar{
  width:78px!important;height:78px!important;border-width:4px!important;border-color:#0a080f!important;background-color:#191420!important;
  font-size:16px!important;box-shadow:0 7px 24px rgba(0,0,0,.28)!important;
}
.vini23-profile-name{padding-bottom:4px!important}
.vini23-profile-name>span{font-size:8.8px!important;color:#a889ee!important;letter-spacing:.01em!important}
.vini23-profile-name h2{font-size:18px!important;margin-top:0!important}
.vini23-profile-name p{font-size:9.8px!important;color:#766d7e!important;margin-top:1px!important}
.vini23-profile-actions{padding:13px 20px 0!important;gap:7px!important}
.vini23-profile-actions button{
  height:37px!important;padding:0 14px!important;border-radius:11px!important;background:#121019!important;border-color:rgba(255,255,255,.075)!important;
  color:#c9c2d2!important;font-size:10.5px!important;box-shadow:none!important;
}
.vini23-profile-actions button:hover{background:#181320!important;border-color:rgba(157,116,255,.20)!important}
.vini23-profile-actions button.primary{background:#8050e8!important;border-color:#8050e8!important;color:#fff!important}
.vini23-profile-actions button.primary:hover{background:#9060f6!important}
.vini23-profile-presence{
  margin:12px 20px 0!important;padding:9px 11px!important;border-radius:11px!important;background:#0f0c15!important;border-color:rgba(255,255,255,.065)!important;
}
.vini23-profile-presence>span{font-size:9.5px!important}
.vini23-profile-presence>b{font-size:10.2px!important;font-weight:600!important;color:#c1bac9!important}
.vini23-profile-presence>em{font-size:8.8px!important}
.vini23-profile-about{padding:15px 20px 20px!important}
.vini23-profile-about small{font-size:8.5px!important;margin-bottom:6px!important;color:#756c7e!important}
.vini23-profile-about p{
  font-size:11.5px!important;line-height:1.9!important;color:#cfc8d7!important;
  padding:11px 12px!important;border-radius:12px!important;background:rgba(255,255,255,.018)!important;border:1px solid rgba(255,255,255,.045)!important;
}

/* profile editor: denser desktop layout, clean mobile fallback */
.vini23-profile-editor{
  width:min(680px,100%)!important;background:#0a080f!important;border-color:rgba(166,128,255,.22)!important;border-radius:22px!important;
  box-shadow:0 34px 100px rgba(0,0,0,.60)!important;
}
.vini23-editor-head{padding:16px 18px 13px!important;background:#0d0a13!important;border-bottom-color:rgba(255,255,255,.06)!important}
.vini23-editor-head>div>span{font-size:8.5px!important;color:#a98aea!important}
.vini23-editor-head h3{font-size:15.5px!important;margin-top:1px!important}
.vini23-editor-head p{font-size:9.6px!important;color:#766d7e!important;margin-top:3px!important}
.vini23-editor-head>button{width:34px!important;height:34px!important;border-radius:10px!important;background:#121019!important;border-color:rgba(255,255,255,.07)!important}
.vini23-editor-body{
  padding:14px 16px 16px!important;gap:10px!important;
  display:grid!important;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;align-items:start!important;
}
.vini23-editor-preview{grid-column:1/-1!important;height:150px!important;border-radius:15px!important;background:#111018!important;border-color:rgba(255,255,255,.065)!important}
.vini23-editor-banner{
  background-color:#15111d!important;
  background-image:radial-gradient(380px 170px at 76% 18%,rgba(139,92,246,.18),transparent 66%),linear-gradient(135deg,#171020,#0d0a12);
}
.vini23-editor-banner[style*="background-image"]{background-size:cover!important;background-position:center!important}
.vini23-editor-banner::after{background:linear-gradient(to top,rgba(10,8,15,.92),rgba(10,8,15,.05) 75%)!important}
.vini23-editor-avatar{width:55px!important;height:55px!important;border-width:3px!important;border-color:#0a080f!important;background-color:#191420!important}
.vini23-editor-identity b{font-size:13px!important}
.vini23-editor-identity small{font-size:9px!important}
.vini23-editor-section{height:100%;padding:12px!important;border-radius:14px!important;background:#0e0b14!important;border-color:rgba(255,255,255,.06)!important}
.vini23-section-title{margin-bottom:10px!important}
.vini23-section-title b{font-size:11px!important}
.vini23-section-title small{font-size:8.8px!important;color:#68606f!important}
.vini23-field>span{font-size:9.5px!important}
.vini23-field input,.vini23-field textarea{
  background:#09070d!important;border-color:rgba(255,255,255,.07)!important;border-radius:10px!important;font-size:11px!important;padding:9px 10px!important;
}
.vini23-field textarea{min-height:86px!important;line-height:1.8!important}
.vini23-field input:focus,.vini23-field textarea:focus{border-color:rgba(157,116,255,.32)!important;box-shadow:0 0 0 3px rgba(139,92,246,.07)!important}
.vini23-editor-files{grid-template-columns:1fr!important;gap:7px!important}
.vini23-editor-files label{height:58px!important;padding:8px 9px!important;border-radius:11px!important;background:#09070d!important;border-color:rgba(255,255,255,.065)!important}
.vini23-editor-files label:hover{background:#121019!important;border-color:rgba(157,116,255,.20)!important}
.vini23-file-icon{width:33px!important;height:33px!important;border-radius:10px!important;background:rgba(139,92,246,.10)!important}
.vini23-editor-files label b{font-size:10px!important}
.vini23-editor-files label small{font-size:8px!important}
.vini23-editor-files label em{font-size:8.6px!important}
.vini23-editor-foot{padding:11px 16px calc(13px + env(safe-area-inset-bottom))!important;background:#0d0a13!important;border-top-color:rgba(255,255,255,.06)!important}
.vini23-editor-foot button{height:37px!important;border-radius:10px!important;background:#121019!important;border-color:rgba(255,255,255,.07)!important;font-size:10px!important}
.vini23-editor-foot button.primary{background:#8050e8!important;border-color:#8050e8!important}

/* moderation, mute, menus */
.vini21-mod-card,.vini24-mute-dialog{
  background:#0a080f!important;border-color:rgba(166,128,255,.22)!important;border-radius:20px!important;box-shadow:0 34px 100px rgba(0,0,0,.60)!important;
}
.vini21-mod-card>header,.vini24-mute-dialog header{background:#0d0a13!important;border-bottom-color:rgba(255,255,255,.06)!important}
.vini21-mod-body{padding:14px 18px 18px!important}
.vini21-mod-note{background:rgba(139,92,246,.075)!important;border-color:rgba(157,116,255,.16)!important;border-radius:12px!important}
.vini21-mod-list label,.vini21-mod-list>div{background:#0e0b14!important;border-radius:11px!important}
.vini21-mod-list label:hover,.vini21-mod-list>div:hover{background:#121019!important;border-color:rgba(255,255,255,.07)!important}
.vini24-message-menu{
  background:#111018!important;border-color:rgba(157,116,255,.20)!important;border-radius:15px!important;box-shadow:0 24px 65px rgba(0,0,0,.55)!important;
}
.vini24-menu-item{border-radius:9px!important;font-size:10.8px!important}
.vini24-menu-item:hover{background:rgba(255,255,255,.045)!important}
.vini24-storage-pop{background:#111018!important;border-color:rgba(157,116,255,.20)!important;border-radius:14px!important}

/* accessibility / interaction polish */
.vini21-overlay :focus-visible,.vini21-profile-layer :focus-visible,.vini21-profile-editor-layer :focus-visible,.vini21-mod-layer :focus-visible,.vini24-mute-layer :focus-visible,.vini24-message-menu-layer :focus-visible{
  outline:2px solid rgba(183,151,255,.9)!important;outline-offset:2px!important;
}

@media(max-width:1180px){
  .vini21-shell,.vini21-shell.info-open{grid-template-columns:292px minmax(0,1fr)!important}
  .vini21-sidebar{width:292px!important}
  .vini21-info-panel{width:310px!important}
}

@media(max-width:820px){
  .vini21-overlay{padding:0!important;background:#060509!important;backdrop-filter:none!important}
  .vini21-shell,.vini21-shell.info-open{width:100vw!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important;box-shadow:none!important}
  .vini21-sidebar{width:min(92vw,360px)!important;inset:0 0 0 auto!important;transform:translateX(105%)!important;border-left:1px solid var(--vn-border)!important;border-right:0!important;box-shadow:-22px 0 55px rgba(0,0,0,.42)!important}
  .vini21-overlay.side-open .vini21-sidebar{transform:none!important}
  .vt13-side-backdrop{background:rgba(0,0,0,.56)!important;backdrop-filter:blur(2px)!important}
  .vini21-head{height:62px!important;min-height:62px!important;padding:0 8px!important}
  .vini21-head-avatar{width:36px!important;height:36px!important}
  .vini21-head .vt13-head-copy h3{font-size:12.2px!important}
  .vini21-head .vt13-head-status{font-size:8.8px!important}
  .vini21-messages{padding:16px 9px 12px!important}
  .vini21-messages .vt13-msg{gap:5px!important}
  .vini21-messages .vt13-msg-avatar{width:26px!important;height:26px!important}
  .vini21-messages .vt13-bubble{max-width:86%!important;padding:7px 9px 6px!important}
  .vini21-messages .vt13-text{font-size:12.7px!important;line-height:1.8!important}
  .vini21-compose-wrap{padding:7px 7px calc(8px + env(safe-area-inset-bottom))!important}
  .vini21-compose{border-radius:15px!important;box-shadow:none!important}
  .vini21-reply-bar+.vini21-compose{border-radius:0 0 15px 15px!important}
  .vini21-info-panel{width:min(92vw,340px)!important;inset:0 0 0 auto!important;box-shadow:-22px 0 55px rgba(0,0,0,.42)!important}
  .vini23-profile-card,.vini23-profile-editor,.vini21-mod-card,.vini24-mute-dialog{border-radius:22px 22px 0 0!important}
  .vini23-editor-body{display:flex!important;flex-direction:column!important;padding:12px!important}
  .vini23-editor-preview{width:100%!important;height:138px!important;flex:none!important}
  .vini23-editor-section{width:100%!important;height:auto!important}
}

@media(max-width:520px){
  .vini21-sidebar{width:100vw!important}
  .vini21-info-panel{width:100%!important}
  .vini21-head-actions{gap:1px!important}
  .vini21-icon{width:34px!important;height:34px!important}
  .vini21-messages .vt13-bubble{max-width:88%!important}
  .vini21-messages .vt13-msg-avatar{width:25px!important;height:25px!important}
  .vini23-profile-hero{height:116px!important}
  .vini23-profile-main{padding:0 15px!important;margin-top:-32px!important}
  .vini23-profile-avatar{width:72px!important;height:72px!important}
  .vini23-profile-actions{padding:12px 15px 0!important;display:grid!important;grid-template-columns:1fr!important}
  .vini23-profile-actions button{width:100%!important}
  .vini23-profile-presence{margin:11px 15px 0!important}
  .vini23-profile-about{padding:13px 15px 18px!important}
  .vt13-rec-copy small{display:none!important}
  .vt13-rec-wave{display:none!important}
  .vt13-rec-action span{display:none!important}
  .vt13-rec-action{width:35px!important;padding:0!important;justify-content:center!important}
}

@keyframes vn24-shell-enter{from{opacity:.55;transform:translateY(7px) scale(.992)}to{opacity:1;transform:none}}
@keyframes vn24-card-enter{from{opacity:.55;transform:translateY(9px) scale(.985)}to{opacity:1;transform:none}}
.vini21-overlay.show .vini21-shell{animation:vn24-shell-enter .20s var(--vn-ease)}
.vini23-profile-card,.vini23-profile-editor,.vini21-mod-card,.vini24-mute-dialog{animation:vn24-card-enter .18s var(--vn-ease)}

/* ========================================================================== 
   Vini Messenger v24.3 — presence clarity, anchored actions & admin polish
   ========================================================================== */
:root{--vn-offline:#ff6678;--vn-offline-soft:rgba(255,102,120,.12)}

/* Presence is now a product signal, not decoration: green online / red offline. */
.vini21-person-avatar i.off,.vini21-info-person>span i.off,.vini23-profile-avatar i.off{background:var(--vn-offline)!important;box-shadow:0 0 0 3px rgba(255,102,120,.07)!important}
.vini21-person-avatar i.on,.vini21-info-person>span i.on,.vini23-profile-avatar i.on{background:var(--vn-online)!important;box-shadow:0 0 0 3px rgba(67,216,146,.07)!important}
.vini21-person-copy small{display:flex!important;align-items:center!important;gap:4px!important;min-width:0!important}
.vini24-person-presence{font-size:8.6px!important;font-weight:800!important;flex:none!important}
.vini24-person-presence.online{color:#67dca4!important}.vini24-person-presence.offline{color:#ff7b8b!important}
.vini24-person-sep{color:#4f4857!important;flex:none!important}.vini24-person-detail{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:#746c7c!important}
.vini21-person[data-online="0"] .vini21-person-avatar{filter:saturate(.64) brightness(.88)!important;opacity:.9!important}
.vini21-person[data-online="0"] .vini21-person-copy b{color:#c9c1d0!important}.vini21-person[data-online="1"] .vini21-person-copy b{color:#f5f1fa!important}

/* Header: peer presence and transport connection are intentionally separate. */
.vini24-peer-presence{display:inline-flex!important;align-items:center!important;gap:4px!important;font-weight:800!important;white-space:nowrap!important}
.vini24-peer-presence[hidden]{display:none!important}.vini24-peer-presence i{width:7px!important;height:7px!important;border-radius:50%!important;flex:none!important}
.vini24-peer-presence b{font:inherit!important;font-weight:800!important}.vini24-peer-presence.online{color:#68dca5!important}.vini24-peer-presence.online i{background:var(--vn-online)!important;box-shadow:0 0 0 3px rgba(67,216,146,.08)!important}
.vini24-peer-presence.offline{color:#ff7d8d!important}.vini24-peer-presence.offline i{background:var(--vn-offline)!important;box-shadow:0 0 0 3px rgba(255,102,120,.08)!important}
.vini24-connection{display:inline-flex!important;align-items:center!important;gap:4px!important;color:#625a69!important;white-space:nowrap!important}
.vini21-head .vt13-conn-dot.on{background:#9b7bea!important;box-shadow:0 0 0 3px rgba(155,123,234,.07)!important}
.vini21-head .vt13-head-status>#vt13-sub{max-width:min(420px,38vw)!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.vini24-head-more[aria-expanded="true"]{background:rgba(139,92,246,.11)!important;color:#bca1fb!important;border-color:rgba(154,111,255,.18)!important}
@media(min-width:821px){.only-mobile,.vt13-mobile-menu{display:none!important}}

/* Header overflow menu: every visible action is wired to an existing feature. */
.vini24-header-menu-layer{position:fixed;inset:0;z-index:100315;background:transparent}
.vini24-header-menu{position:fixed;width:248px;max-width:calc(100vw - 20px);padding:7px;background:#111018;border:1px solid rgba(157,116,255,.20);border-radius:15px;box-shadow:0 24px 65px rgba(0,0,0,.55);color:var(--vn-text);direction:rtl;opacity:0;transform:translateY(4px) scale(.985);transition:opacity var(--vn-fast) var(--vn-ease),transform var(--vn-fast) var(--vn-ease);overflow:hidden}
.vini24-header-menu-layer.show .vini24-header-menu{opacity:1;transform:none}
.vini24-header-menu>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 9px 10px;margin-bottom:4px;border-bottom:1px solid rgba(255,255,255,.06)}
.vini24-header-menu>header>div{min-width:0}.vini24-header-menu>header small{display:block;font-size:7.5px;font-weight:900;letter-spacing:.08em;color:#8d70c7}.vini24-header-menu>header b{display:block;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;margin-top:1px}.vini24-header-menu>header>span{font-size:8.5px;color:#706778;white-space:nowrap}
.vini24-header-actions{display:flex;flex-direction:column;gap:1px}.vini24-header-action{width:100%;height:38px;border:0;border-radius:9px;background:transparent;color:#d5cedd;display:flex;align-items:center;gap:10px;padding:0 10px;font:inherit;font-size:10.8px;font-weight:720;text-align:right;cursor:pointer}.vini24-header-action svg{width:15px;height:15px;color:#81758d;flex:none}.vini24-header-action:hover{background:rgba(255,255,255,.045)!important;color:#fff!important}.vini24-header-action:hover svg{color:#b99bfa!important}.vini24-header-action.danger-soft{color:#ff9aaa}.vini24-header-action.danger-soft:hover{background:rgba(255,102,120,.08)!important}

/* Message menu is positioned against the bubble, never the mouse cursor. */
.vini24-message-menu{width:232px!important;min-width:232px!important;transform-origin:top center!important}.vini24-message-menu[data-side="mine"]{transform-origin:top right!important}.vini24-message-menu[data-side="peer"]{transform-origin:top left!important}
.vini24-quick-reactions{grid-template-columns:repeat(6,minmax(0,1fr))!important}.vini24-quick-reactions button{width:auto!important}

/* Conversation info gets its own explicit presence row. */
.vini24-info-presence{display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap;margin-top:5px}.vini24-info-presence>i{width:7px;height:7px;border-radius:50%;flex:none}.vini24-info-presence>b{font-size:9px;font-weight:850}.vini24-info-presence>small{width:100%;font-size:8.8px;color:#716879}.vini24-info-presence.online>i{background:var(--vn-online)}.vini24-info-presence.online>b{color:#68dca5}.vini24-info-presence.offline>i{background:var(--vn-offline)}.vini24-info-presence.offline>b{color:#ff7d8d}

/* Profile photo can be opened full-size; absence of a photo stays inert. */
.vini23-profile-avatar{padding:0!important;outline:0!important}.vini23-profile-avatar.viewable{cursor:zoom-in!important;transition:transform var(--vn-fast),border-color var(--vn-fast),box-shadow var(--vn-fast)!important}.vini23-profile-avatar.viewable:hover{transform:translateY(-1px) scale(1.025)!important;border-color:#15101d!important;box-shadow:0 0 0 2px rgba(157,116,255,.18),0 10px 28px rgba(0,0,0,.24)!important}.vini23-profile-avatar:disabled{cursor:default!important}
.vini23-profile-actions button.subtle{color:#aaa1b3!important;background:transparent!important}.vini23-profile-actions button.subtle:hover{background:#121019!important;color:#eee8f4!important}
.vini23-profile-presence>span.offline{color:#ff7d8d!important}.vini23-profile-presence>span.offline i{background:var(--vn-offline)!important}.vini24-profile-lastseen{font-size:9px!important;color:#706778!important;white-space:nowrap!important}.vini23-profile-presence>b{max-width:180px!important}
.vini24-profile-membership{margin:8px 20px 0;padding:9px 11px;border:1px solid rgba(157,116,255,.11);border-radius:11px;background:linear-gradient(180deg,rgba(139,92,246,.055),rgba(255,255,255,.018));display:flex;align-items:center;gap:9px;direction:rtl}.vini24-profile-membership>span{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:rgba(139,92,246,.09);color:#ae8cf4;border:1px solid rgba(157,116,255,.13)}.vini24-profile-membership>span svg{width:14px;height:14px}.vini24-profile-membership>div{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;flex:1}.vini24-profile-membership small{color:#756c7e;font-size:8.5px;font-weight:700}.vini24-profile-membership-date{direction:ltr;font-family:var(--vt-font-num,inherit);font-size:11px;font-weight:950;color:#dcd3e7;letter-spacing:.03em}@media(max-width:520px){.vini24-profile-membership{margin:8px 15px 0}.vini24-profile-membership>div{gap:8px}}
.vini24-avatar-viewer{position:fixed;inset:0;z-index:100390;background:rgba(3,2,6,.88);backdrop-filter:blur(16px);display:flex;align-items:center;justify-content:center;padding:28px;color:var(--vn-text)}
.vini24-avatar-viewer>section{position:relative;width:min(980px,94vw);height:min(790px,90dvh);display:grid;grid-template-rows:1fr auto;background:#09070d;border:1px solid rgba(157,116,255,.20);border-radius:24px;overflow:hidden;box-shadow:0 36px 120px rgba(0,0,0,.66)}
.vini24-avatar-viewer [data-close]{position:absolute;top:14px;left:14px;z-index:3;width:38px;height:38px;border:1px solid rgba(255,255,255,.09);border-radius:11px;background:rgba(8,6,12,.72);backdrop-filter:blur(10px);color:#eee8f4;display:grid;place-items:center;cursor:pointer}.vini24-avatar-viewer [data-close] svg{width:17px;height:17px}.vini24-avatar-viewer [data-close]:hover{background:#17121f!important;border-color:rgba(157,116,255,.24)!important}
.vini24-avatar-stage{min-height:0;overflow:auto;display:flex;align-items:center;justify-content:center;padding:40px;background:radial-gradient(520px 300px at 50% 45%,rgba(139,92,246,.08),transparent 68%),#050408}.vini24-avatar-stage img{display:block;max-width:78vw;max-height:70dvh;width:auto;height:auto;object-fit:contain;border-radius:18px;box-shadow:0 18px 55px rgba(0,0,0,.42);cursor:zoom-in;transition:transform .2s var(--vn-ease)}.vini24-avatar-viewer.zoomed .vini24-avatar-stage{align-items:flex-start;justify-content:flex-start}.vini24-avatar-viewer.zoomed .vini24-avatar-stage img{max-width:none;max-height:none;transform:scale(1.35);transform-origin:top left;cursor:zoom-out;margin:auto}
.vini24-avatar-viewer footer{padding:13px 18px 15px;border-top:1px solid rgba(255,255,255,.06);background:#0c0911}.vini24-avatar-viewer footer b{display:block;font-size:12px}.vini24-avatar-viewer footer small{display:block;font-size:9px;color:#706778;margin-top:2px}

/* Moderation becomes usable with larger member lists. */
.vini24-mod-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:10px}.vini24-mod-stats>div{min-height:56px;padding:8px 9px;border:1px solid rgba(255,255,255,.06);border-radius:11px;background:#0e0b14;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.vini24-mod-stats b{font-size:13px;color:#eee8f4}.vini24-mod-stats small{font-size:8.4px;color:#706778;margin-top:2px}.vini24-mod-stats .safe b{line-height:0;color:#75d9a9}.vini24-mod-stats .safe svg{width:18px;height:18px}
.vini24-mod-section{margin-top:13px}.vini24-mod-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:7px}.vini24-mod-section-head h4{margin:0!important;font-size:10.8px!important}.vini24-mod-section-head small{display:block;font-size:8.5px;color:#706778;margin-top:2px}
.vini24-mod-search{height:36px;margin:0 0 7px;border:1px solid rgba(255,255,255,.07);border-radius:10px;background:#09070d;display:flex;align-items:center;gap:7px;padding:0 10px;color:#6f6578}.vini24-mod-search:focus-within{border-color:rgba(157,116,255,.28);box-shadow:0 0 0 3px rgba(139,92,246,.06)}.vini24-mod-search svg{width:14px;height:14px;flex:none}.vini24-mod-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:#eee8f4;font:inherit;font-size:10.5px}.vini24-mod-search input::placeholder{color:#5e5665}
.vini24-mod-state{margin-right:auto;padding:3px 7px;border-radius:999px;font-size:7.8px;font-weight:850;color:#756d7d;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.055);white-space:nowrap}.vini24-mod-state.on{color:#b99bfa;background:rgba(139,92,246,.09);border-color:rgba(157,116,255,.15)}.vini24-mod-no-result{padding:14px;text-align:center;font-size:9px;color:#716879}
.vini24-mod-profile{width:30px!important;height:30px!important;padding:0!important;border-radius:9px!important;background:transparent!important;color:#766d80!important;display:grid!important;place-items:center!important}.vini24-mod-profile svg{width:14px;height:14px}.vini24-mod-profile:hover{background:rgba(139,92,246,.09)!important;color:#b99bfa!important}

/* Isolate new overlays from the Vanta-wide button sheen too. */
.vini24-header-menu-layer button::before,.vini24-header-menu-layer button::after,.vini24-avatar-viewer button::before,.vini24-avatar-viewer button::after{content:none!important;display:none!important;animation:none!important;background:none!important;box-shadow:none!important}
.vini24-header-menu-layer :focus-visible,.vini24-avatar-viewer :focus-visible{outline:2px solid rgba(183,151,255,.9)!important;outline-offset:2px!important}

@media(max-width:820px){
  #vt13-search-btn,#vini21-info{display:none!important}.vini24-head-more{display:grid!important}.vini21-head .vt13-head-status>#vt13-sub{max-width:42vw!important}
  .vini24-header-menu-layer{background:rgba(2,1,5,.42);backdrop-filter:blur(3px)}.vini24-header-menu{position:absolute!important;left:10px!important;right:10px!important;top:auto!important;bottom:calc(10px + env(safe-area-inset-bottom))!important;width:auto!important;max-width:none!important;border-radius:18px!important;padding:8px!important;transform:translateY(16px) scale(.99)!important}.vini24-header-menu-layer.show .vini24-header-menu{transform:none!important}.vini24-header-action{height:44px!important;font-size:12px!important}
  .vini24-avatar-viewer{padding:0!important;align-items:flex-end!important}.vini24-avatar-viewer>section{width:100%!important;height:88dvh!important;border-radius:24px 24px 0 0!important;border-bottom:0!important}.vini24-avatar-stage{padding:24px 14px!important}.vini24-avatar-stage img{max-width:92vw!important;max-height:70dvh!important}
}
@media(max-width:520px){.vini24-connection{display:none!important}.vini21-dotsep{display:none!important}.vini21-head .vt13-head-status>#vt13-sub{max-width:46vw!important}.vini24-profile-lastseen{width:100%!important}.vini24-mod-stats{grid-template-columns:1fr 1fr!important}.vini24-mod-stats .safe{grid-column:1/-1!important;min-height:46px!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important}.vini24-avatar-viewer footer small{display:none!important}}

/* =====================================================================
   Vini Messenger v24.4 — profile cropper, modal polish & alignment fixes
   ===================================================================== */

/* Reaction rail: true geometric centering, independent from emoji glyph baseline. */
.vini24-quick-reactions{
  grid-template-columns:repeat(6,32px)!important;
  justify-content:center!important;
  align-items:center!important;
  gap:4px!important;
  padding:4px 4px 9px!important;
  direction:ltr!important;
}
.vini24-quick-reactions button{
  width:32px!important;height:32px!important;min-width:32px!important;
  padding:0!important;margin:0!important;border-radius:9px!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  line-height:1!important;text-align:center!important;direction:ltr!important;
  font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif!important;
  font-size:18px!important;overflow:visible!important;
}
.vini24-quick-reactions button>span{
  width:24px;height:24px;display:flex;align-items:center;justify-content:center;
  line-height:24px!important;text-align:center!important;transform:none!important;
}
.vini24-message-menu{overflow:visible!important}
.vini24-menu-actions{overflow:hidden;border-radius:10px}

/* Mute dialog: readable duration presets and a consistent close control. */
.vini24-mute-dialog{width:min(430px,100%)!important;border-radius:20px!important}
.vini24-mute-dialog>header{
  display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:14px!important;
  padding:17px 18px 14px!important;direction:rtl!important;
}
.vini24-mute-dialog>header>div{min-width:0;flex:1}
.vini24-mute-dialog>header b{font-size:14px!important;line-height:1.6!important}
.vini24-mute-dialog>header small{font-size:9.6px!important;line-height:1.7!important;color:#756c7e!important}
.vini24-mute-dialog>header>button{
  width:34px!important;height:34px!important;min-width:34px!important;padding:0!important;margin:0!important;flex:none!important;
  border:1px solid rgba(255,255,255,.075)!important;border-radius:10px!important;background:#121019!important;color:#aaa1b3!important;
  display:grid!important;place-items:center!important;box-shadow:none!important;transform:none!important;cursor:pointer!important;
}
.vini24-mute-dialog>header>button:hover{background:#19141f!important;color:#fff!important;border-color:rgba(157,116,255,.22)!important}
.vini24-mute-dialog>header>button svg{width:15px!important;height:15px!important}
.vini24-mute-dialog .vini24-mute-body{padding:15px 18px 16px!important;gap:15px!important}
.vini24-mute-dialog label{font-size:9.8px!important;margin-bottom:7px!important;color:#a69dad!important}
.vini24-mute-dialog label .optional{font-size:8px;color:#655d6d;font-weight:650;margin-inline-start:4px}
.vini24-mute-duration-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important;direction:rtl!important}
.vini24-mute-duration-grid button{
  height:50px!important;min-width:0!important;padding:5px 4px!important;margin:0!important;
  display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:1px!important;
  line-height:1.15!important;text-align:center!important;white-space:nowrap!important;overflow:hidden!important;
  border-radius:11px!important;background:#0d0a12!important;border-color:rgba(255,255,255,.07)!important;
}
.vini24-mute-duration-grid button strong{display:block;font-size:12.5px!important;line-height:1.15!important;color:#ded7e7;font-weight:900}
.vini24-mute-duration-grid button span{display:block;font-size:8.6px!important;line-height:1.3!important;color:#746b7d;font-weight:750}
.vini24-mute-duration-grid button.active{background:rgba(139,92,246,.12)!important;border-color:rgba(165,125,255,.34)!important;box-shadow:inset 0 0 0 1px rgba(139,92,246,.06)!important}
.vini24-mute-duration-grid button.active strong,.vini24-mute-duration-grid button.active span{color:#c7acf9!important}
.vini24-mute-custom{display:block!important;margin-top:11px!important;padding-top:10px!important;border-top:1px solid rgba(255,255,255,.055)!important}
.vini24-mute-custom>label{display:block!important;margin-bottom:6px!important;color:#766d7f!important}
.vini24-mute-custom>div{display:grid!important;grid-template-columns:88px auto 1fr!important;align-items:center!important;gap:8px!important;direction:rtl!important}
.vini24-mute-custom input{width:88px!important;height:38px!important;padding:0 9px!important;direction:ltr!important;text-align:center!important;border-radius:10px!important}
.vini24-mute-custom span{font-size:10px!important;color:#aaa1b3!important;white-space:nowrap!important}
.vini24-mute-custom small{font-size:8.5px!important;color:#655d6d!important;text-align:left!important}
.vini24-mute-dialog textarea{min-height:78px!important;border-radius:11px!important;line-height:1.8!important}
.vini24-mute-dialog footer{padding:12px 18px 15px!important;gap:7px!important}
.vini24-mute-dialog footer button{height:38px!important;border-radius:10px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important}
.vini24-mute-dialog footer button svg{width:14px;height:14px}

/* Profile modal close buttons never sit on / outside the card border. */
.vini23-profile-card{position:relative!important}
.vini23-profile-close{
  top:14px!important;left:14px!important;right:auto!important;inset-inline-start:auto!important;inset-inline-end:14px!important;
  margin:0!important;transform:none!important;z-index:12!important;
  width:35px!important;height:35px!important;border-radius:11px!important;
  display:grid!important;place-items:center!important;box-sizing:border-box!important;
}
.vini23-editor-head>button{margin:0!important;transform:none!important;align-self:flex-start!important;display:grid!important;place-items:center!important;padding:0!important}
.vini23-editor-head>button svg{display:block!important;margin:auto!important}
.vini23-profile-hero.viewable{cursor:zoom-in!important}
.vini23-profile-hero.viewable:hover::after{content:'نمایش پس‌زمینه';position:absolute;left:14px;bottom:12px;z-index:3;padding:5px 8px;border-radius:8px;background:rgba(8,6,12,.70);border:1px solid rgba(255,255,255,.07);backdrop-filter:blur(8px);font-size:8px;color:#aaa1b3;pointer-events:none}

/* Editor preview is now interactive, but keeps the same quiet visual hierarchy. */
.vini23-editor-preview{overflow:visible!important}
.vini23-editor-banner{
  appearance:none!important;-webkit-appearance:none!important;width:100%!important;height:100%!important;padding:0!important;margin:0!important;
  border:0!important;border-radius:inherit!important;cursor:pointer!important;display:block!important;position:absolute!important;inset:0!important;
  background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;color:inherit!important;overflow:hidden!important;
}
.vini23-editor-banner>span{
  position:absolute;left:11px;top:11px;z-index:4;height:29px;padding:0 9px;border-radius:9px;
  display:flex;align-items:center;gap:6px;background:rgba(7,5,10,.72);border:1px solid rgba(255,255,255,.075);backdrop-filter:blur(9px);
  color:#c5bcd0;opacity:.72;transition:opacity var(--vn-fast),background var(--vn-fast);
}
.vini23-editor-banner>span svg{width:13px;height:13px}.vini23-editor-banner>span b{font-size:8.6px;font-weight:800}
.vini23-editor-banner:hover>span{opacity:1;background:rgba(15,11,21,.88)}
.vini23-editor-avatar{
  appearance:none!important;-webkit-appearance:none!important;padding:0!important;margin:0!important;cursor:pointer!important;position:relative!important;
  display:grid!important;place-items:center!important;color:#ece7f2!important;overflow:visible!important;background-size:cover!important;background-position:center!important;
}
.vini23-editor-avatar>i{
  position:absolute;left:-2px;bottom:-2px;width:22px;height:22px;border-radius:8px;background:#171120;border:2px solid #0a080f;color:#bda3f4;display:grid;place-items:center;font-style:normal;
}
.vini23-editor-avatar>i svg{width:11px;height:11px}

.vini24-profile-media-section{min-width:0}
.vini24-profile-media-actions{display:flex;flex-direction:column;gap:8px}
.vini24-profile-media-actions>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:stretch}
.vini24-profile-media-actions button{
  appearance:none;-webkit-appearance:none;border:1px solid rgba(255,255,255,.065);background:#09070d;color:#d8d1df;border-radius:11px;box-shadow:none;
  font:inherit;cursor:pointer;min-width:0;margin:0;
}
.vini24-profile-media-actions>div>button:first-child{height:58px;padding:0 10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;text-align:right}
.vini24-profile-media-actions>div>button:first-child:hover{background:#121019;border-color:rgba(157,116,255,.20)}
.vini24-profile-media-actions>div>button:first-child>svg{width:17px;height:17px;color:#8f73ca}
.vini24-profile-media-actions button>span{min-width:0;display:block!important}
.vini24-profile-media-actions button>span b{display:block;font-size:9.8px;line-height:1.4;color:#d9d2e0}
.vini24-profile-media-actions button>span small{display:block;margin-top:2px;font-size:7.8px;color:#625a69;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vini24-profile-media-actions button em{font-style:normal;font-size:8.5px;color:#a98aea;font-weight:850;white-space:nowrap}
.vini24-profile-media-actions button.remove{width:56px;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#c77b88;background:rgba(255,96,120,.035);border-color:rgba(255,96,120,.10)}
.vini24-profile-media-actions button.remove:hover{background:rgba(255,96,120,.08);border-color:rgba(255,96,120,.20);color:#ff93a3}
.vini24-profile-media-actions button.remove svg{width:14px;height:14px}.vini24-profile-media-actions button.remove span{font-size:7.8px!important}
.vini24-profile-media-actions button.remove[hidden]{display:none!important}

/* Telegram-like crop workspace, built locally with Canvas — no external library. */
.vini24-crop-layer{
  position:fixed;inset:0;z-index:100520;display:flex;align-items:center;justify-content:center;padding:24px;
  background:rgba(2,1,5,.88);backdrop-filter:blur(18px) saturate(.88);color:var(--vn-text);direction:rtl;
}
.vini24-crop-card{
  width:min(560px,100%);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;overflow:hidden;
  background:#09070d;border:1px solid rgba(166,128,255,.23);border-radius:22px;box-shadow:0 38px 110px rgba(0,0,0,.68);
}
.vini24-crop-card.banner{width:min(720px,100%)}
.vini24-crop-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 18px 13px;background:#0d0a13;border-bottom:1px solid rgba(255,255,255,.06)}
.vini24-crop-card>header>div{min-width:0}.vini24-crop-card>header small{display:block;font-size:7.8px;font-weight:900;letter-spacing:.08em;color:#9b7ce2}.vini24-crop-card>header b{display:block;margin-top:2px;font-size:14.5px;color:#eee9f4}.vini24-crop-card>header span{display:block;margin-top:3px;font-size:9px;line-height:1.7;color:#716879}
.vini24-crop-card>header>button{width:34px;height:34px;min-width:34px;padding:0;margin:0;border-radius:10px;border:1px solid rgba(255,255,255,.075);background:#121019;color:#aaa1b3;display:grid;place-items:center;cursor:pointer;box-shadow:none}.vini24-crop-card>header>button:hover{background:#19141f;color:#fff;border-color:rgba(157,116,255,.22)}.vini24-crop-card>header>button svg{width:15px;height:15px}
.vini24-crop-body{padding:14px 16px 12px;overflow:auto}
.vini24-crop-stage{
  position:relative;width:min(420px,82vw);height:min(420px,62dvh);margin:0 auto;overflow:hidden;touch-action:none;cursor:grab;outline:0;
  border:1px solid rgba(255,255,255,.07);border-radius:18px;background:#030205;box-shadow:inset 0 0 45px rgba(0,0,0,.55);user-select:none;
}
.vini24-crop-card.banner .vini24-crop-stage{width:min(640px,84vw);height:min(360px,52dvh)}
.vini24-crop-stage.dragging{cursor:grabbing}.vini24-crop-stage:focus-visible{box-shadow:0 0 0 3px rgba(139,92,246,.13),inset 0 0 45px rgba(0,0,0,.55)}
.vini24-crop-image{position:absolute;max-width:none!important;max-height:none!important;pointer-events:none;user-select:none;-webkit-user-drag:none;transform:none!important;object-fit:fill!important}
.vini24-crop-frame{position:absolute;left:50%;top:50%;width:74%;aspect-ratio:1;transform:translate(-50%,-50%);z-index:3;border:2px solid rgba(232,220,255,.88);border-radius:50%;box-shadow:0 0 0 9999px rgba(2,1,5,.66),0 0 0 1px rgba(139,92,246,.35),0 10px 40px rgba(0,0,0,.22);pointer-events:none}
.vini24-crop-card.banner .vini24-crop-frame{width:88%;aspect-ratio:8/3;border-radius:15px}
.vini24-crop-frame::after{content:'';position:absolute;inset:-6px;border:1px solid rgba(185,151,255,.22);border-radius:inherit}
.vini24-crop-hint{position:absolute;z-index:4;left:50%;bottom:12px;transform:translateX(-50%);padding:5px 8px;border-radius:999px;background:rgba(8,6,12,.70);border:1px solid rgba(255,255,255,.07);backdrop-filter:blur(8px);color:#8f8498;font-size:7.8px;letter-spacing:.03em;direction:ltr;pointer-events:none}
.vini24-crop-controls{display:grid;grid-template-columns:36px minmax(0,1fr) 36px auto;gap:8px;align-items:center;margin:12px auto 0;width:min(480px,100%);direction:ltr}
.vini24-crop-card.banner .vini24-crop-controls{width:min(600px,100%)}
.vini24-crop-controls button{height:36px;min-width:36px;padding:0;border:1px solid rgba(255,255,255,.07);border-radius:10px;background:#121019;color:#cfc7d8;font:inherit;font-size:16px;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;box-shadow:none}.vini24-crop-controls button:hover{background:#19141f;border-color:rgba(157,116,255,.20);color:#fff}.vini24-crop-controls button.reset{padding:0 11px;font-size:8.8px;font-weight:800;direction:rtl;white-space:nowrap}.vini24-crop-controls button.reset svg{width:13px;height:13px}
.vini24-crop-controls input{width:100%;accent-color:#8b5cf6;cursor:pointer}
.vini24-crop-card>footer{display:flex;justify-content:flex-end;gap:7px;padding:12px 18px 15px;background:#0d0a13;border-top:1px solid rgba(255,255,255,.06)}
.vini24-crop-card>footer button{height:38px;padding:0 14px;border:1px solid rgba(255,255,255,.075);border-radius:10px;background:#121019;color:#aaa1b3;font:inherit;font-size:9.8px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;box-shadow:none}.vini24-crop-card>footer button:hover{background:#19141f;color:#fff}.vini24-crop-card>footer button.primary{background:#8050e8;border-color:#8050e8;color:#fff}.vini24-crop-card>footer button.primary:hover{background:#9060f6}.vini24-crop-card>footer button.primary svg{width:14px;height:14px}

/* New controls must never inherit the site-wide reflective sheen. */
.vini24-crop-layer button::before,.vini24-crop-layer button::after,
.vini24-profile-media-actions button::before,.vini24-profile-media-actions button::after,
.vini23-editor-banner::before,.vini23-editor-banner::after,
.vini23-editor-avatar::before,.vini23-editor-avatar::after,
.vini24-mute-dialog>header>button::before,.vini24-mute-dialog>header>button::after{
  content:none!important;display:none!important;animation:none!important;background:none!important;box-shadow:none!important;
}
.vini24-crop-layer :focus-visible{outline:2px solid rgba(183,151,255,.92)!important;outline-offset:2px!important}

@media(max-width:820px){
  .vini24-quick-reactions{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:3px!important}
  .vini24-quick-reactions button{width:100%!important;min-width:0!important;height:42px!important;font-size:20px!important}
  .vini24-mute-duration-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .vini24-crop-layer{padding:0!important;align-items:flex-end!important}
  .vini24-crop-card,.vini24-crop-card.banner{width:100%!important;max-height:94dvh!important;border-radius:22px 22px 0 0!important;border-bottom:0!important}
  .vini24-crop-body{padding:12px 12px 10px!important}
  .vini24-crop-stage{width:min(86vw,400px)!important;height:min(86vw,50dvh)!important}
  .vini24-crop-card.banner .vini24-crop-stage{width:100%!important;height:min(54vw,330px)!important}
  .vini24-crop-controls{grid-template-columns:38px minmax(0,1fr) 38px!important}.vini24-crop-controls button.reset{grid-column:1/-1!important;width:100%!important}
  .vini24-profile-media-actions>div{grid-template-columns:minmax(0,1fr) 54px!important}
  .vini23-profile-close{top:12px!important;left:12px!important;right:auto!important;inset-inline-start:auto!important;inset-inline-end:12px!important}
}
@media(max-width:520px){
  .vini24-mute-duration-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .vini24-mute-duration-grid button{height:48px!important}
  .vini24-mute-custom>div{grid-template-columns:82px auto 1fr!important}.vini24-mute-custom input{width:82px!important}
  .vini24-crop-card>header span{display:none}.vini24-crop-card>header{padding:14px 14px 11px}.vini24-crop-card>footer{padding-inline:14px}
  .vini24-crop-stage{width:min(88vw,360px)!important;height:min(88vw,48dvh)!important}.vini24-crop-card.banner .vini24-crop-stage{height:min(56vw,270px)!important}
  .vini24-crop-frame{width:78%!important}.vini24-crop-card.banner .vini24-crop-frame{width:92%!important}
}

/* v24.4 final placement guards */
.vini23-profile-close{inset:auto!important;top:14px!important;left:14px!important;right:auto!important}
.vini23-editor-banner::after{content:""!important;display:block!important;position:absolute!important;inset:0!important;background:linear-gradient(to top,rgba(9,7,13,.94),rgba(9,7,13,.08) 74%)!important;box-shadow:none!important;pointer-events:none!important}
.vini23-editor-banner::before{content:none!important;display:none!important}
@media(max-width:820px){.vini23-profile-close{inset:auto!important;top:12px!important;left:12px!important;right:auto!important}}

/* ==========================================================
   Vini Messenger v24.5 — reliable profile banner rendering
   ========================================================== */
.vini23-profile-hero{
  position:relative!important;
  height:168px!important;
  overflow:hidden!important;
  isolation:isolate!important;
  background:#121018!important;
  background-image:radial-gradient(420px 210px at 78% 16%,rgba(139,92,246,.18),transparent 66%),linear-gradient(135deg,#171020,#0d0a12)!important;
}
.vini23-profile-hero.has-banner{
  background:#0d0a12!important;
  background-image:none!important;
}
.vini24-profile-banner-image{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  display:block!important;
  object-fit:cover!important;
  object-position:center center!important;
  z-index:0!important;
  user-select:none!important;
  -webkit-user-drag:none!important;
  transform:translateZ(0)!important;
}
.vini23-profile-hero::before{
  z-index:1!important;
  pointer-events:none!important;
  background:linear-gradient(110deg,rgba(139,92,246,.035),transparent 48%)!important;
}
.vini23-profile-hero-shade{
  z-index:2!important;
  pointer-events:none!important;
  background:linear-gradient(to top,rgba(10,8,15,.88) 0,rgba(10,8,15,.28) 38%,rgba(10,8,15,.04) 76%,rgba(10,8,15,0) 100%)!important;
}
.vini23-profile-hero.viewable:hover .vini24-profile-banner-image{
  transform:scale(1.012) translateZ(0)!important;
  transition:transform .22s ease!important;
}
@media (max-width:720px){
  .vini23-profile-hero{height:148px!important}
}
@media (prefers-reduced-motion:reduce){
  .vini23-profile-hero.viewable:hover .vini24-profile-banner-image{transform:none!important;transition:none!important}
}

/* v24.6 — unread conversation badges */
.vini24-conv-unread{display:inline-grid!important;place-items:center!important;min-width:21px!important;height:21px!important;padding:0 6px!important;border-radius:999px!important;background:linear-gradient(135deg,#a855f7,#ec4899)!important;border:1px solid rgba(255,255,255,.16)!important;color:#fff!important;font-size:9px!important;font-weight:900!important;line-height:1!important;box-shadow:0 5px 15px rgba(168,85,247,.22)!important;direction:ltr!important;font-variant-numeric:tabular-nums!important;flex:none!important}
.vini21-person-chat>.vini24-conv-unread{margin-inline-start:auto!important}
.vini21-channels .vt13-channel>.vini24-conv-unread{margin-inline-start:3px!important}
.vt13-channel.active .vini24-conv-unread,.vini21-person.active .vini24-conv-unread{box-shadow:0 5px 16px rgba(236,72,153,.28)!important}

/* ======================================================================
   Vini Chat v24.7 — pinned messages
   ====================================================================== */
.vini25-pinbar[hidden]{display:none!important}
.vini25-pinbar{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  min-height:48px!important;
  padding:6px 12px!important;
  border-bottom:1px solid rgba(255,255,255,.055)!important;
  background:linear-gradient(90deg,rgba(139,92,246,.075),rgba(10,8,15,.96) 32%,rgba(10,8,15,.96))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.018)!important;
  flex:none!important;
}
.vini25-pin-jump{
  min-width:0!important;
  flex:1!important;
  min-height:36px!important;
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  padding:4px 6px!important;
  border:0!important;
  border-radius:11px!important;
  background:transparent!important;
  color:var(--vn-text,#f4f0f8)!important;
  box-shadow:none!important;
  text-align:start!important;
  cursor:pointer!important;
}
.vini25-pin-jump:hover{background:rgba(139,92,246,.055)!important;transform:none!important;filter:none!important;box-shadow:none!important}
.vini25-pin-icon{
  width:30px!important;
  height:30px!important;
  flex:none!important;
  display:grid!important;
  place-items:center!important;
  border-radius:10px!important;
  color:#b79af7!important;
  background:rgba(139,92,246,.12)!important;
  border:1px solid rgba(157,116,255,.16)!important;
}
.vini25-pin-icon svg{width:15px!important;height:15px!important}
.vini25-pin-copy{display:flex!important;flex-direction:column!important;min-width:0!important;gap:1px!important}
.vini25-pin-copy b{font-size:10.5px!important;line-height:1.45!important;color:#c4aaf9!important;font-weight:850!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.vini25-pin-copy small{font-size:9.5px!important;line-height:1.55!important;color:#8e8498!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:min(620px,60vw)!important}
.vini25-pin-clear{
  width:32px!important;
  height:32px!important;
  flex:none!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  border-radius:10px!important;
  border:1px solid transparent!important;
  background:transparent!important;
  color:#716879!important;
  box-shadow:none!important;
  cursor:pointer!important;
}
.vini25-pin-clear:hover{color:#eee8f5!important;background:rgba(255,255,255,.045)!important;border-color:rgba(255,255,255,.055)!important;transform:none!important;box-shadow:none!important}
.vini25-pin-clear svg{width:14px!important;height:14px!important}
.vini21-messages .vt13-msg.is-pinned .vt13-bubble{
  border-color:rgba(164,126,255,.26)!important;
  box-shadow:inset 3px 0 0 rgba(139,92,246,.42)!important;
}
.vini21-messages .vt13-msg.mine.is-pinned .vt13-bubble{
  box-shadow:inset -3px 0 0 rgba(180,145,255,.48)!important;
}
.vini21-messages .vt13-msg.pin-focus .vt13-bubble{animation:vini25-pin-focus 1.35s ease!important}
@keyframes vini25-pin-focus{
  0%,100%{box-shadow:inset 3px 0 0 rgba(139,92,246,.42)}
  35%{box-shadow:inset 3px 0 0 rgba(139,92,246,.75),0 0 0 3px rgba(139,92,246,.11),0 0 28px rgba(139,92,246,.16)}
}
.vini24-menu-item.pin-active{color:#c9b2ff!important;background:rgba(139,92,246,.08)!important}
.vini24-menu-item.pin-active svg{color:#b898ff!important}
@media(max-width:820px){
  .vini25-pinbar{min-height:46px!important;padding:5px 8px!important}
  .vini25-pin-icon{width:28px!important;height:28px!important;border-radius:9px!important}
  .vini25-pin-copy b{font-size:10px!important}
  .vini25-pin-copy small{font-size:9px!important;max-width:58vw!important}
  .vini25-pin-clear{width:30px!important;height:30px!important}
}

/* ===================================================================
   Vini Chat v24.8 — roomier message rhythm + read receipts
   =================================================================== */
.vini21-messages .vt13-msg{
  max-width:960px!important;
  gap:9px!important;
  margin-bottom:4px!important;
  padding:2px 10px!important;
}
.vini21-messages .vt13-msg:not(.compact){margin-top:9px!important}
.vini21-messages .vt13-msg.compact{margin-top:1px!important;margin-bottom:3px!important}
.vini21-messages .vt13-msg-avatar{
  width:32px!important;
  height:32px!important;
  font-size:9.5px!important;
}
.vini21-messages .vt13-bubble{
  max-width:min(74%,680px)!important;
  min-width:96px!important;
  padding:9px 12px 8px!important;
  border-radius:16px 16px 16px 6px!important;
}
.vini21-messages .vt13-msg.mine .vt13-bubble{border-radius:16px 16px 6px 16px!important}
.vini21-messages .vt13-msg.compact .vt13-bubble,
.vini21-messages .vt13-msg.mine.compact .vt13-bubble{border-radius:16px!important}
.vini21-messages .vt13-msg-meta{
  gap:6px!important;
  margin-bottom:3px!important;
  min-height:15px!important;
  font-size:9.2px!important;
}
.vini21-messages .vt13-msg-meta b{font-size:10.2px!important}
.vini21-messages .vt13-text{
  font-size:13.2px!important;
  line-height:1.85!important;
}
.vini26-receipt{
  display:inline-flex!important;
  align-items:center!important;
  direction:ltr!important;
  min-width:12px!important;
  height:14px!important;
  margin-inline-start:1px!important;
  color:#6f6878!important;
  font-size:10px!important;
  font-weight:900!important;
  line-height:1!important;
  letter-spacing:-4px!important;
  user-select:none!important;
  -webkit-user-select:none!important;
  transition:color .18s ease,opacity .18s ease!important;
}
.vini26-receipt i{
  display:inline-block!important;
  width:8px!important;
  font-style:normal!important;
  text-align:center!important;
}
.vini26-receipt.is-sent{letter-spacing:0!important;color:#6d6576!important;opacity:.9!important}
.vini26-receipt.is-read{color:#a889f5!important;opacity:1!important}
.vini21-messages .vt13-msg.mine:hover .vini26-receipt.is-read{color:#c5afff!important}
@media(max-width:820px){
  .vini21-messages .vt13-msg{gap:7px!important;padding-inline:6px!important;margin-bottom:3px!important}
  .vini21-messages .vt13-msg:not(.compact){margin-top:7px!important}
  .vini21-messages .vt13-msg-avatar{width:29px!important;height:29px!important}
  .vini21-messages .vt13-bubble{max-width:min(82%,640px)!important;padding:8px 10px 7px!important}
  .vini21-messages .vt13-text{font-size:13px!important}
}


/* Vini Chat v24.9 — admin-only Seen readers */
.vini26-receipt:is(button){
  appearance:none!important;-webkit-appearance:none!important;border:0!important;background:transparent!important;padding:0 1px!important;font:inherit!important;
}
.vini26-receipt:is(button):disabled{cursor:default!important}
.vini26-receipt.is-inspectable{cursor:pointer!important;border-radius:5px!important;outline:none!important}
.vini26-receipt.is-inspectable:hover{color:#d2c1ff!important;background:rgba(168,137,245,.09)!important}
.vini26-receipt.is-inspectable:focus-visible{box-shadow:0 0 0 2px rgba(168,137,245,.3)!important}
.vini27-seen-popover{
  position:fixed!important;z-index:100020!important;width:min(286px,calc(100vw - 20px))!important;max-height:min(410px,calc(100vh - 20px))!important;
  overflow:hidden!important;direction:rtl!important;color:#f6f1fb!important;background:rgba(20,16,27,.985)!important;border:1px solid rgba(255,255,255,.1)!important;
  border-radius:16px!important;box-shadow:0 18px 54px rgba(0,0,0,.42)!important;backdrop-filter:blur(18px)!important;-webkit-backdrop-filter:blur(18px)!important;
  animation:vini27SeenIn .14s ease-out both!important;
}
@keyframes vini27SeenIn{from{opacity:0;transform:translateY(-3px) scale(.985)}to{opacity:1;transform:none}}
.vini27-seen-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;padding:11px 12px 9px!important;border-bottom:1px solid rgba(255,255,255,.07)!important}
.vini27-seen-head>div{min-width:0!important;display:grid!important;gap:1px!important}
.vini27-seen-head b{font-size:12.5px!important;font-weight:900!important;color:#fff!important}
.vini27-seen-head small{font-size:9.5px!important;font-weight:700!important;color:#8f859b!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.vini27-seen-close{width:28px!important;height:28px!important;min-width:28px!important;display:grid!important;place-items:center!important;padding:0!important;border:0!important;border-radius:9px!important;background:rgba(255,255,255,.045)!important;color:#a89eaf!important;font-size:20px!important;font-family:Arial,sans-serif!important;line-height:1!important;cursor:pointer!important}
.vini27-seen-close:hover{background:rgba(255,255,255,.08)!important;color:#fff!important}
.vini27-seen-list{max-height:330px!important;overflow:auto!important;padding:5px!important;scrollbar-width:thin!important;scrollbar-color:rgba(255,255,255,.12) transparent!important}
.vini27-seen-row{min-height:48px!important;display:grid!important;grid-template-columns:36px minmax(0,1fr) auto!important;align-items:center!important;gap:9px!important;padding:6px 7px!important;border-radius:11px!important}
.vini27-seen-row:hover{background:rgba(255,255,255,.035)!important}
.vini27-seen-avatar{width:36px!important;height:36px!important;display:grid!important;place-items:center!important;overflow:hidden!important;border-radius:50%!important;background:linear-gradient(145deg,#30243e,#1d1727)!important;background-size:cover!important;background-position:center!important;border:1px solid rgba(255,255,255,.09)!important;color:#d9cced!important;font-size:10px!important;font-weight:900!important}
.vini27-seen-avatar{position:relative!important}
.vini27-seen-avatar-fallback{position:relative!important;z-index:0!important;display:grid!important;place-items:center!important;width:100%!important;height:100%!important}
.vini27-seen-avatar img{position:absolute!important;inset:0!important;z-index:1!important;width:100%!important;height:100%!important;display:block!important;object-fit:cover!important;border-radius:inherit!important}
.vini27-seen-person{min-width:0!important;display:grid!important;gap:1px!important}
.vini27-seen-person b{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:#f8f4fc!important;font-size:11.5px!important;font-weight:850!important}
.vini27-seen-person small{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:#786f81!important;font-size:9px!important;font-weight:700!important}
.vini27-seen-mark{direction:ltr!important;color:#a889f5!important;font-size:9px!important;font-weight:1000!important;letter-spacing:-3px!important;padding-inline:4px!important}
.vini27-seen-loading,.vini27-seen-empty{min-height:76px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;padding:16px!important;color:#8d8495!important;font-size:10px!important;font-weight:750!important;text-align:center!important}
.vini27-seen-loading i{width:14px!important;height:14px!important;border:2px solid rgba(168,137,245,.18)!important;border-top-color:#a889f5!important;border-radius:50%!important;animation:vini27Spin .7s linear infinite!important}
.vini27-seen-empty.danger{color:#d8909b!important}
@keyframes vini27Spin{to{transform:rotate(360deg)}}
@media(max-width:520px){.vini27-seen-popover{width:min(270px,calc(100vw - 16px))!important}.vini27-seen-row{min-height:46px!important}}
@media(prefers-reduced-motion:reduce){.vini27-seen-popover,.vini27-seen-loading i{animation:none!important}}


/* v24.14 — Vini profile XP / Plan totals */
.vini24-profile-progress{margin:12px 20px 0;padding:14px;border:1px solid rgba(157,116,255,.15);border-radius:16px;background:linear-gradient(180deg,rgba(17,13,24,.96),rgba(9,7,14,.98));box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 14px 36px rgba(0,0,0,.16);position:relative;overflow:hidden}
.vini24-profile-progress::before{content:"";position:absolute;width:180px;height:180px;left:-72px;top:-98px;border-radius:50%;background:radial-gradient(circle,rgba(139,92,246,.16),transparent 69%);pointer-events:none}
.vini24-profile-progress-title{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;margin:0 0 12px;color:#f3edff;font-size:14px;line-height:1;font-weight:1000;letter-spacing:.13em;text-shadow:0 0 22px rgba(157,116,255,.24);direction:ltr}
.vini24-profile-progress-title span{color:#a887f5;font-weight:950;letter-spacing:0}
.vini24-profile-progress-grid{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.vini24-profile-metric{min-width:0;min-height:74px;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:11px;padding:11px 12px;border-radius:14px;border:1px solid rgba(255,255,255,.055);background:rgba(255,255,255,.022)}
.vini24-profile-metric-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.06)}
.vini24-profile-metric-icon svg{width:18px;height:18px}
.vini24-profile-metric small{display:block;margin-bottom:4px;color:#9990a4;font-size:9.5px;font-weight:850;line-height:1.4}
.vini24-profile-metric b{display:block;color:#fff;font-size:20px;font-weight:1000;line-height:1.1;font-family:var(--vt-font-num,inherit);font-variant-numeric:tabular-nums}
.vini24-profile-metric.xp{border-color:rgba(157,116,255,.15);background:linear-gradient(180deg,rgba(139,92,246,.11),rgba(255,255,255,.02))}
.vini24-profile-metric.xp .vini24-profile-metric-icon{color:#c7adff;background:rgba(139,92,246,.14);border-color:rgba(157,116,255,.22)}
.vini24-profile-metric.plan{border-color:rgba(65,214,168,.14);background:linear-gradient(180deg,rgba(35,183,145,.09),rgba(255,255,255,.02))}
.vini24-profile-metric.plan .vini24-profile-metric-icon{color:#90e4c8;background:rgba(35,183,145,.13);border-color:rgba(65,214,168,.20)}
@media(max-width:520px){.vini24-profile-progress{margin:11px 15px 0;padding:12px}.vini24-profile-progress-title{font-size:13px;margin-bottom:10px}.vini24-profile-progress-grid{grid-template-columns:1fr;gap:8px}.vini24-profile-metric{min-height:66px;grid-template-columns:39px minmax(0,1fr);padding:10px 11px}.vini24-profile-metric-icon{width:39px;height:39px}.vini24-profile-metric b{font-size:19px}}

/* ========================================================================== 
   Vini Profile v24.15 — readable, user-facing profile typography
   ========================================================================== */
.vini23-profile-card{
  width:min(560px,calc(100vw - 32px))!important;
  max-height:calc(100dvh - 34px)!important;
  border-radius:24px!important;
  scrollbar-gutter:stable;
}
.vini23-profile-close{
  top:14px!important;left:14px!important;width:39px!important;height:39px!important;
  border-radius:12px!important;color:#eee8f5!important;
}
.vini23-profile-close svg{width:17px!important;height:17px!important}
.vini23-profile-hero{height:144px!important}
.vini23-profile-main{
  gap:15px!important;padding:0 22px!important;margin-top:-41px!important;
}
.vini23-profile-avatar{
  width:88px!important;height:88px!important;border-width:5px!important;
  font-size:18px!important;
}
.vini23-profile-avatar i{width:14px!important;height:14px!important;border-width:3px!important}
.vini23-profile-name{padding-bottom:6px!important}
.vini23-profile-name>span{
  font-size:10.5px!important;line-height:1.6!important;font-weight:900!important;
  color:#b99cf8!important;
}
.vini23-profile-name h2{
  margin-top:1px!important;font-size:21px!important;line-height:1.35!important;
  font-weight:950!important;letter-spacing:-.01em!important;color:#f5f0fa!important;
}
.vini23-profile-name p{
  margin-top:2px!important;font-size:11.5px!important;line-height:1.5!important;
  font-weight:700!important;color:#958b9f!important;
}
.vini23-profile-actions{
  padding:16px 22px 0!important;gap:9px!important;
}
.vini23-profile-actions button{
  min-height:42px!important;height:42px!important;padding:0 16px!important;
  border-radius:12px!important;font-size:12px!important;font-weight:900!important;
  letter-spacing:0!important;
}
.vini23-profile-actions button svg{width:16px!important;height:16px!important}
.vini23-profile-presence{
  margin:14px 22px 0!important;padding:12px 14px!important;gap:9px 12px!important;
  border-radius:13px!important;
}
.vini23-profile-presence>span{
  font-size:11px!important;line-height:1.5!important;font-weight:850!important;
}
.vini23-profile-presence>span i{width:8px!important;height:8px!important}
.vini23-profile-presence>b{
  max-width:none!important;font-size:11.5px!important;line-height:1.65!important;
  font-weight:800!important;color:#d5cedd!important;
}
.vini24-profile-lastseen{
  font-size:10px!important;line-height:1.55!important;font-weight:700!important;color:#8f8599!important;
}
.vini23-profile-presence>em{font-size:10px!important;font-weight:800!important}
.vini24-profile-membership{
  margin:10px 22px 0!important;padding:11px 13px!important;border-radius:13px!important;gap:11px!important;
}
.vini24-profile-membership>span{width:34px!important;height:34px!important;border-radius:10px!important}
.vini24-profile-membership>span svg{width:16px!important;height:16px!important}
.vini24-profile-membership small{
  font-size:10px!important;line-height:1.5!important;font-weight:850!important;color:#978c9f!important;
}
.vini24-profile-membership-date{
  font-size:12.5px!important;line-height:1.4!important;font-weight:950!important;color:#eee8f4!important;
}
.vini24-profile-progress{
  margin:13px 22px 0!important;padding:16px!important;border-radius:17px!important;
}
.vini24-profile-progress-title{
  margin:1px 0 14px!important;gap:8px!important;font-size:16px!important;line-height:1!important;
  font-weight:1000!important;letter-spacing:.14em!important;color:#faf7ff!important;
  text-shadow:0 0 24px rgba(157,116,255,.28)!important;
}
.vini24-profile-progress-title span{font-weight:1000!important;color:#b99cf8!important}
.vini24-profile-progress-grid{gap:11px!important}
.vini24-profile-metric{
  min-height:88px!important;grid-template-columns:46px minmax(0,1fr)!important;
  gap:13px!important;padding:13px 14px!important;border-radius:15px!important;
}
.vini24-profile-metric-icon{
  width:46px!important;height:46px!important;border-radius:13px!important;
}
.vini24-profile-metric-icon svg{width:19px!important;height:19px!important}
.vini24-profile-metric small{
  margin-bottom:6px!important;font-size:11px!important;line-height:1.55!important;
  font-weight:900!important;color:#b1a7bb!important;
}
.vini24-profile-metric .vini24-profile-total-num{
  display:block!important;direction:ltr!important;unicode-bidi:isolate!important;text-align:right!important;
  font-size:25px!important;line-height:1.08!important;font-weight:1000!important;
  font-family:Arial,"Segoe UI",system-ui,sans-serif!important;font-variant-numeric:tabular-nums!important;
  letter-spacing:.015em!important;color:#fff!important;text-shadow:0 2px 14px rgba(0,0,0,.2)!important;
}
.vini23-profile-about{padding:18px 22px 23px!important}
.vini23-profile-about small{
  margin-bottom:8px!important;font-size:10px!important;line-height:1.5!important;
  font-weight:900!important;color:#918798!important;
}
.vini23-profile-about p{
  padding:13px 14px!important;border-radius:13px!important;
  font-size:13px!important;line-height:1.9!important;font-weight:650!important;color:#ded7e5!important;
}
@media(max-width:620px){
  .vini23-profile-card{width:min(100%,calc(100vw - 18px))!important;max-height:calc(100dvh - 18px)!important}
  .vini23-profile-hero{height:132px!important}
  .vini23-profile-main{padding:0 17px!important;margin-top:-38px!important}
  .vini23-profile-avatar{width:82px!important;height:82px!important}
  .vini23-profile-name h2{font-size:19.5px!important}
  .vini23-profile-actions{padding:14px 17px 0!important;grid-template-columns:1fr!important}
  .vini23-profile-actions button{width:100%!important;height:43px!important;font-size:12px!important}
  .vini23-profile-presence{margin:13px 17px 0!important;padding:11px 13px!important}
  .vini24-profile-membership{margin:9px 17px 0!important}
  .vini24-profile-progress{margin:12px 17px 0!important;padding:14px!important}
  .vini24-profile-progress-title{font-size:15px!important;margin-bottom:12px!important}
  .vini24-profile-metric{min-height:80px!important;grid-template-columns:44px minmax(0,1fr)!important;padding:12px!important}
  .vini24-profile-metric-icon{width:44px!important;height:44px!important}
  .vini24-profile-metric small{font-size:10.5px!important}
  .vini24-profile-metric .vini24-profile-total-num{font-size:23px!important}
  .vini23-profile-about{padding:16px 17px 20px!important}
  .vini23-profile-about p{font-size:12.5px!important}
}
@media(max-width:430px){
  .vini24-profile-progress-grid{grid-template-columns:1fr!important}
  .vini23-profile-name>span{font-size:10px!important}
  .vini23-profile-name h2{font-size:19px!important}
  .vini23-profile-name p{font-size:11px!important}
}



/* ==========================================================================
   Vini Profile v24.16 — centered stats + stronger readable typography
   ========================================================================== */
.vini23-profile-card{
  width:min(580px,calc(100vw - 32px))!important;
}
.vini23-profile-name>span{
  font-size:11.5px!important;
  line-height:1.65!important;
  font-weight:950!important;
  color:#c3a9fb!important;
}
.vini23-profile-name h2{
  font-size:22px!important;
  font-weight:1000!important;
}
.vini23-profile-name p{
  font-size:12px!important;
  line-height:1.6!important;
  font-weight:800!important;
  color:#a097aa!important;
}
.vini23-profile-actions button{
  min-height:44px!important;
  height:44px!important;
  font-size:12.5px!important;
  font-weight:950!important;
}
.vini23-profile-presence{
  padding:13px 15px!important;
  row-gap:8px!important;
}
.vini23-profile-presence>span{
  font-size:12px!important;
  font-weight:950!important;
  color:#bcb2c6!important;
}
.vini23-profile-presence>b{
  font-size:12.2px!important;
  line-height:1.7!important;
  font-weight:900!important;
  color:#e1dae7!important;
}
.vini24-profile-lastseen{
  font-size:11px!important;
  line-height:1.65!important;
  font-weight:800!important;
  color:#a097aa!important;
}
.vini23-profile-presence>em{
  font-size:10.8px!important;
  font-weight:900!important;
}
.vini24-profile-membership{
  padding:12px 14px!important;
  min-height:52px!important;
}
.vini24-profile-membership small{
  font-size:11.3px!important;
  line-height:1.6!important;
  font-weight:950!important;
  color:#aaa0b4!important;
}
.vini24-profile-membership-date{
  font-size:14.5px!important;
  line-height:1.35!important;
  font-weight:1000!important;
  color:#fff!important;
  letter-spacing:.02em!important;
}
.vini24-profile-progress-title{
  font-size:17px!important;
  line-height:1.1!important;
  font-weight:1000!important;
  letter-spacing:.16em!important;
  margin-bottom:15px!important;
}
.vini24-profile-progress-grid{
  gap:12px!important;
}
.vini24-profile-metric{
  position:relative!important;
  min-height:112px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:16px 54px 15px!important;
  text-align:center!important;
  overflow:hidden!important;
}
.vini24-profile-metric>div{
  width:100%!important;
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
.vini24-profile-metric-icon{
  position:absolute!important;
  top:12px!important;
  left:12px!important;
  width:42px!important;
  height:42px!important;
  border-radius:12px!important;
}
.vini24-profile-metric small{
  width:100%!important;
  margin:0 0 8px!important;
  font-size:12px!important;
  line-height:1.65!important;
  font-weight:1000!important;
  color:#c3b9cc!important;
  text-align:center!important;
  letter-spacing:0!important;
}
.vini24-profile-metric .vini24-profile-total-num{
  width:100%!important;
  margin:0!important;
  text-align:center!important;
  font-size:28px!important;
  line-height:1.05!important;
  font-weight:1000!important;
  letter-spacing:.02em!important;
  color:#fff!important;
}
.vini23-profile-about small{
  font-size:11.3px!important;
  line-height:1.6!important;
  font-weight:950!important;
  color:#a79dad!important;
}
.vini23-profile-about p{
  font-size:14px!important;
  line-height:1.95!important;
  font-weight:750!important;
  color:#eee8f3!important;
}
@media(max-width:620px){
  .vini23-profile-card{width:min(100%,calc(100vw - 16px))!important}
  .vini23-profile-name>span{font-size:10.8px!important}
  .vini23-profile-name h2{font-size:20px!important}
  .vini23-profile-name p{font-size:11.5px!important}
  .vini23-profile-actions button{font-size:12.5px!important}
  .vini23-profile-presence>span{font-size:11.5px!important}
  .vini23-profile-presence>b{font-size:11.8px!important}
  .vini24-profile-lastseen{font-size:10.5px!important}
  .vini24-profile-membership small{font-size:10.8px!important}
  .vini24-profile-membership-date{font-size:13.5px!important}
  .vini24-profile-progress-title{font-size:16px!important}
  .vini24-profile-metric{min-height:100px!important;padding:14px 50px 13px!important}
  .vini24-profile-metric-icon{top:11px!important;left:11px!important;width:40px!important;height:40px!important}
  .vini24-profile-metric small{font-size:11.5px!important;margin-bottom:7px!important}
  .vini24-profile-metric .vini24-profile-total-num{font-size:26px!important}
  .vini23-profile-about small{font-size:10.8px!important}
  .vini23-profile-about p{font-size:13.2px!important}
}
@media(max-width:430px){
  .vini24-profile-progress-grid{grid-template-columns:1fr!important}
  .vini24-profile-metric{min-height:94px!important}
}


/* v24.17 profile readability rebalance: compact cards, icons on right, labels stronger than totals */
.vini23-profile-card{width:min(500px,100%)!important}
.vini23-profile-main{gap:12px!important;padding:0 19px!important;margin-top:-36px!important}
.vini23-profile-avatar{width:78px!important;height:78px!important}
.vini23-profile-name>span{font-size:11px!important;font-weight:1000!important}
.vini23-profile-name h2{font-size:18px!important;line-height:1.35!important}
.vini23-profile-name p{font-size:11.5px!important;font-weight:850!important}
.vini23-profile-actions{padding:12px 19px 0!important;gap:7px!important}
.vini23-profile-actions button{min-height:38px!important;height:38px!important;padding:0 13px!important;font-size:12px!important;font-weight:950!important}
.vini23-profile-presence{margin:12px 19px 0!important;padding:10px 12px!important;gap:8px!important}
.vini23-profile-presence>span{font-size:11.5px!important;font-weight:1000!important}
.vini23-profile-presence>b{font-size:12.6px!important;font-weight:1000!important}
.vini24-profile-lastseen{font-size:10.8px!important;font-weight:850!important}
.vini24-profile-membership{margin:10px 19px 0!important;padding:10px 12px!important;min-height:48px!important}
.vini24-profile-membership>span{width:34px!important;height:34px!important;order:2!important}
.vini24-profile-membership>div{order:1!important}
.vini24-profile-membership small{font-size:11.5px!important;font-weight:1000!important;color:#b5acbf!important}
.vini24-profile-membership-date{font-size:14px!important;font-weight:1000!important}
.vini24-profile-progress{margin:10px 19px 0!important;padding:11px 12px!important;border-radius:15px!important}
.vini24-profile-progress-title{font-size:15px!important;line-height:1.15!important;font-weight:1000!important;letter-spacing:.15em!important;margin-bottom:9px!important}
.vini24-profile-progress-grid{gap:8px!important}
.vini24-profile-metric{position:relative!important;min-height:82px!important;padding:10px 48px 10px 12px!important;border-radius:13px!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;text-align:right!important}
.vini24-profile-metric>div{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;width:100%!important;text-align:right!important;padding-left:0!important}
.vini24-profile-metric-icon{position:absolute!important;top:50%!important;left:auto!important;right:10px!important;transform:translateY(-50%)!important;width:36px!important;height:36px!important;border-radius:11px!important}
.vini24-profile-metric-icon svg{width:17px!important;height:17px!important}
.vini24-profile-metric small{width:100%!important;margin:0 0 7px!important;text-align:right!important;font-size:13.4px!important;line-height:1.55!important;font-weight:1000!important;color:#f1ebf8!important;letter-spacing:0!important}
.vini24-profile-metric .vini24-profile-total-num{width:100%!important;text-align:center!important;font-size:20px!important;line-height:1.05!important;font-weight:900!important;letter-spacing:.01em!important;color:#ffffff!important}
.vini23-profile-about{padding:14px 19px 19px!important}
.vini23-profile-about small{font-size:11.2px!important;font-weight:1000!important;margin-bottom:8px!important}
.vini23-profile-about p{font-size:13.3px!important;line-height:1.9!important;font-weight:850!important}
@media(max-width:620px){.vini23-profile-card{width:min(100%,calc(100vw - 14px))!important}.vini23-profile-main{padding:0 16px!important;gap:10px!important}.vini23-profile-avatar{width:74px!important;height:74px!important}.vini23-profile-name h2{font-size:17px!important}.vini23-profile-actions{padding:11px 16px 0!important}.vini23-profile-actions button{font-size:11.6px!important;padding:0 11px!important}.vini23-profile-presence{margin:11px 16px 0!important}.vini24-profile-membership{margin:10px 16px 0!important;padding:10px 11px!important}.vini24-profile-membership small{font-size:11px!important}.vini24-profile-membership-date{font-size:13.2px!important}.vini24-profile-progress{margin:10px 16px 0!important;padding:10px 11px!important}.vini24-profile-progress-title{font-size:14px!important;margin-bottom:8px!important}.vini24-profile-metric{min-height:78px!important;padding:10px 45px 10px 11px!important}.vini24-profile-metric-icon{right:9px!important;width:34px!important;height:34px!important}.vini24-profile-metric small{font-size:12.6px!important;margin-bottom:6px!important}.vini24-profile-metric .vini24-profile-total-num{font-size:19px!important}.vini23-profile-about{padding:13px 16px 17px!important}.vini23-profile-about p{font-size:12.8px!important}}
@media(max-width:430px){.vini24-profile-progress-grid{grid-template-columns:1fr!important}.vini24-profile-metric{min-height:76px!important}}


/* v24.18 profile totals: no icons, fully centered, label stronger than value */
.vini24-profile-progress{padding:10px 12px!important}
.vini24-profile-progress-title{font-size:14px!important;font-weight:1000!important;letter-spacing:.14em!important;margin-bottom:8px!important}
.vini24-profile-progress-grid{gap:8px!important}
.vini24-profile-metric{min-height:74px!important;padding:10px 12px!important;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important}
.vini24-profile-metric-icon{display:none!important}
.vini24-profile-metric>div{width:100%!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center!important}
.vini24-profile-metric small{margin:0 0 6px!important;font-size:14.4px!important;line-height:1.55!important;font-weight:1000!important;color:#f4eefb!important;text-align:center!important}
.vini24-profile-metric .vini24-profile-total-num{margin:0!important;font-size:16px!important;line-height:1.05!important;font-weight:850!important;color:#ffffff!important;text-align:center!important;letter-spacing:0!important}
@media(max-width:620px){.vini24-profile-progress{padding:10px 11px!important}.vini24-profile-progress-title{font-size:13.5px!important}.vini24-profile-metric{min-height:72px!important;padding:10px!important}.vini24-profile-metric small{font-size:13.4px!important}.vini24-profile-metric .vini24-profile-total-num{font-size:15px!important}}


/* v24.19 profile totals emphasis: stronger values, distinct XP/Plan color language */
.vini24-profile-progress-title{font-size:14.5px!important;font-weight:1000!important;letter-spacing:.18em!important;color:#f4efff!important;text-shadow:0 0 20px rgba(157,116,255,.16)!important}
.vini24-profile-metric{border-width:1px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.02),0 10px 24px rgba(0,0,0,.14)!important}
.vini24-profile-metric small{font-size:14.6px!important;font-weight:1000!important;line-height:1.55!important;margin:0 0 6px!important}
.vini24-profile-metric .vini24-profile-total-num{font-size:18px!important;font-weight:1000!important;line-height:1.05!important;letter-spacing:.01em!important}
.vini24-profile-metric.xp{background:linear-gradient(180deg,rgba(99,68,185,.20),rgba(53,36,93,.16))!important;border-color:rgba(160,130,255,.32)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 0 0 1px rgba(146,112,255,.05),0 12px 28px rgba(56,33,112,.18)!important}
.vini24-profile-metric.xp small{color:#e6dbff!important;text-shadow:0 0 16px rgba(167,132,255,.11)!important}
.vini24-profile-metric.xp .vini24-profile-total-num{color:#ccb7ff!important;text-shadow:0 0 22px rgba(168,129,255,.25)!important}
.vini24-profile-metric.plan{background:linear-gradient(180deg,rgba(17,88,75,.23),rgba(13,53,46,.17))!important;border-color:rgba(92,230,194,.26)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.02),0 0 0 1px rgba(81,210,178,.05),0 12px 28px rgba(14,67,57,.18)!important}
.vini24-profile-metric.plan small{color:#ddfff5!important;text-shadow:0 0 16px rgba(111,233,201,.10)!important}
.vini24-profile-metric.plan .vini24-profile-total-num{color:#9cf0d3!important;text-shadow:0 0 22px rgba(110,235,201,.22)!important}
@media(max-width:620px){.vini24-profile-metric small{font-size:13.8px!important}.vini24-profile-metric .vini24-profile-total-num{font-size:17px!important}}

/* v24.20 — curated default Vanta banners */
.vini25-default-banner-picker{margin-top:12px;padding:12px;border:1px solid rgba(157,116,255,.12);border-radius:14px;background:linear-gradient(180deg,rgba(139,92,246,.045),rgba(255,255,255,.018))}
.vini25-default-banner-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:9px}
.vini25-default-banner-head b{font-size:11.5px;font-weight:950;color:#eee8f5}
.vini25-default-banner-head small{font-size:9px;font-weight:750;color:#786f82;line-height:1.6;text-align:left}
.vini25-default-banner-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.vini25-default-banner-grid button{position:relative;overflow:hidden;min-width:0;aspect-ratio:8/3;border:1px solid rgba(255,255,255,.075);border-radius:10px;background:#0b0910 center/cover no-repeat;cursor:pointer;padding:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.025);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,filter .16s ease}
.vini25-default-banner-grid button::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 38%,rgba(4,3,7,.42));pointer-events:none}
.vini25-default-banner-grid button:hover{transform:translateY(-1px);border-color:rgba(177,143,255,.28);filter:saturate(1.08)}
.vini25-default-banner-grid button.active{border-color:#a987ff;box-shadow:0 0 0 2px rgba(139,92,246,.12),0 8px 22px rgba(42,24,83,.22)}
.vini25-default-banner-grid button.active::after{content:"✓";position:absolute;top:5px;right:5px;width:19px;height:19px;border-radius:7px;display:grid;place-items:center;background:rgba(116,75,221,.90);border:1px solid rgba(255,255,255,.18);color:#fff;font:950 11px/1 var(--vt-font-num,inherit);box-shadow:0 4px 12px rgba(0,0,0,.28)}
.vini25-default-banner-grid button span{position:absolute;left:6px;bottom:4px;color:rgba(255,255,255,.78);font:850 8px/1 var(--vt-font-num,inherit);text-shadow:0 1px 5px #000}
@media(max-width:520px){.vini25-default-banner-picker{padding:10px}.vini25-default-banner-head{align-items:flex-start;flex-direction:column;gap:2px}.vini25-default-banner-head small{text-align:right}.vini25-default-banner-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}}


/* ========================================================================== 
   Vini Messenger v24.21 — profile editor readability + containment
   ========================================================================== */
.vini23-profile-editor{
  width:min(700px,calc(100vw - 28px))!important;
  max-height:min(820px,calc(100dvh - 34px))!important;
  overflow:hidden!important;
}
.vini23-editor-head{padding:18px 20px 15px!important}
.vini23-editor-head>div>span{font-size:10.5px!important;line-height:1.4!important;font-weight:1000!important;color:#b99bff!important}
.vini23-editor-head h3{font-size:19px!important;line-height:1.45!important;font-weight:1000!important;color:#f8f3ff!important;margin:2px 0 0!important}
.vini23-editor-head p{font-size:11.5px!important;line-height:1.75!important;font-weight:750!important;color:#9b91a5!important;margin:4px 0 0!important}
.vini23-editor-head>button{width:38px!important;height:38px!important;min-width:38px!important}
.vini23-editor-body{
  padding:15px 17px 17px!important;gap:11px!important;
  overflow-y:auto!important;overflow-x:hidden!important;
}
.vini23-editor-preview{
  height:154px!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important;
  overflow:hidden!important;border-radius:16px!important;border-color:rgba(179,143,255,.17)!important;
  cursor:pointer!important;isolation:isolate!important;
}
.vini23-editor-preview:focus-visible{outline:2px solid rgba(185,151,255,.85)!important;outline-offset:2px!important}
.vini23-editor-banner{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
  overflow:hidden!important;border-radius:inherit!important;background-size:cover!important;background-position:center!important;
  cursor:pointer!important;
}
.vini23-editor-banner::after{
  content:""!important;display:block!important;position:absolute!important;inset:0!important;
  background:linear-gradient(to top,rgba(7,5,11,.92) 0,rgba(7,5,11,.46) 37%,rgba(7,5,11,.06) 78%)!important;
  pointer-events:none!important;
}
.vini23-editor-banner-change{
  position:absolute!important;z-index:5!important;top:11px!important;left:11px!important;
  height:34px!important;min-height:34px!important;padding:0 11px!important;margin:0!important;
  border:1px solid rgba(255,255,255,.11)!important;border-radius:10px!important;background:rgba(8,6,12,.76)!important;
  color:#e7deef!important;backdrop-filter:blur(10px)!important;display:inline-flex!important;align-items:center!important;gap:7px!important;
  font:inherit!important;cursor:pointer!important;box-shadow:none!important;
}
.vini23-editor-banner-change svg{width:14px!important;height:14px!important;color:#b99bff!important}
.vini23-editor-banner-change b{font-size:10.5px!important;line-height:1!important;font-weight:950!important;color:#f0e9f7!important}
.vini23-editor-banner-change:hover{background:rgba(18,13,25,.92)!important;border-color:rgba(178,142,255,.28)!important}
.vini23-editor-identity{right:16px!important;left:16px!important;bottom:13px!important;gap:12px!important;z-index:4!important}
.vini23-editor-avatar{width:62px!important;height:62px!important;min-width:62px!important;border-width:3px!important}
.vini23-editor-profile-link{
  appearance:none!important;-webkit-appearance:none!important;min-width:0!important;padding:4px 2px!important;margin:0!important;
  border:0!important;background:transparent!important;color:inherit!important;text-align:right!important;font:inherit!important;cursor:pointer!important;
  display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:1px!important;box-shadow:none!important;
}
.vini23-editor-profile-link b{font-size:15.5px!important;line-height:1.45!important;font-weight:1000!important;color:#fff!important;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vini23-editor-profile-link small{font-size:10.5px!important;line-height:1.5!important;font-weight:850!important;color:#b3a8bd!important;direction:ltr!important}
.vini23-editor-profile-link em{font-style:normal!important;font-size:9.5px!important;line-height:1.45!important;font-weight:900!important;color:#ad8df2!important;margin-top:2px!important}
.vini23-editor-profile-link:hover b{color:#cdb8ff!important}
.vini23-editor-section{
  min-width:0!important;max-width:100%!important;box-sizing:border-box!important;overflow:hidden!important;
  padding:14px!important;border-radius:15px!important;
}
.vini23-section-title{margin-bottom:11px!important}
.vini23-section-title b{font-size:13.5px!important;line-height:1.5!important;font-weight:1000!important;color:#f2ecf8!important}
.vini23-section-title small{font-size:10.5px!important;line-height:1.65!important;font-weight:750!important;color:#968c9f!important;margin-top:2px!important}
.vini23-field+.vini23-field{margin-top:12px!important}
.vini23-field>span{font-size:11.5px!important;line-height:1.5!important;font-weight:950!important;color:#cfc6d7!important;margin-bottom:7px!important}
.vini23-field>span i{font-size:10px!important;line-height:1.4!important;font-weight:800!important;color:#857a8f!important}
.vini23-field input,.vini23-field textarea{
  font-size:12.8px!important;line-height:1.8!important;font-weight:750!important;color:#f2edf6!important;
  padding:10px 12px!important;border-radius:11px!important;
}
.vini23-field input::placeholder,.vini23-field textarea::placeholder{color:#766d7f!important;font-weight:700!important;opacity:1!important}
.vini23-field textarea{min-height:98px!important}
.vini24-profile-media-section{overflow:hidden!important}
.vini24-profile-media-actions{gap:9px!important}
.vini24-profile-media-actions>div{min-width:0!important}
.vini24-profile-media-actions>div>button:first-child{height:62px!important;padding:0 11px!important;gap:10px!important}
.vini24-profile-media-actions>div>button:first-child>svg{width:18px!important;height:18px!important;color:#b392fa!important}
.vini24-profile-media-actions button>span b{font-size:11.7px!important;line-height:1.5!important;font-weight:1000!important;color:#eee8f4!important}
.vini24-profile-media-actions button>span small{font-size:9.5px!important;line-height:1.55!important;font-weight:750!important;color:#8d8397!important;margin-top:2px!important}
.vini24-profile-media-actions button em{font-size:10px!important;line-height:1.3!important;font-weight:1000!important;color:#b99bff!important}
.vini24-profile-media-actions button.remove{width:58px!important;min-width:58px!important}
.vini24-profile-media-actions button.remove span{font-size:9px!important;font-weight:900!important}
.vini25-default-banner-picker{
  min-width:0!important;max-width:100%!important;width:100%!important;box-sizing:border-box!important;overflow:hidden!important;
  margin-top:11px!important;padding:11px!important;border-radius:13px!important;
}
.vini25-default-banner-head{align-items:center!important;margin-bottom:10px!important}
.vini25-default-banner-head b{font-size:12.5px!important;line-height:1.5!important;font-weight:1000!important;color:#f1ebf7!important}
.vini25-default-banner-head small{font-size:9.8px!important;line-height:1.55!important;font-weight:800!important;color:#91869b!important}
.vini25-default-banner-grid{
  width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important;
  display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:7px!important;overflow:hidden!important;
}
.vini25-default-banner-grid button{
  width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important;margin:0!important;padding:0!important;
  aspect-ratio:8/3!important;border-radius:9px!important;overflow:hidden!important;transform:none!important;
}
.vini25-default-banner-grid button:hover{transform:none!important;filter:saturate(1.08) brightness(1.05)!important}
.vini25-default-banner-grid button span{font-size:9px!important;font-weight:1000!important}
.vini23-editor-foot{padding:12px 17px calc(14px + env(safe-area-inset-bottom))!important;gap:8px!important}
.vini23-editor-foot button{height:40px!important;padding:0 17px!important;font-size:11.5px!important;font-weight:950!important}
.vini23-editor-foot button.primary{min-width:132px!important;font-weight:1000!important}

/* Prevent site-wide decorative button pseudo-elements from escaping the editor. */
.vini23-editor-profile-link::before,.vini23-editor-profile-link::after,
.vini23-editor-banner-change::before,.vini23-editor-banner-change::after,
.vini25-default-banner-grid button::before,.vini25-default-banner-grid button::after{
  box-sizing:border-box!important;
}

@media(max-width:820px){
  .vini23-profile-editor{width:100%!important;max-height:94dvh!important}
  .vini23-editor-body{padding:13px!important;overflow-x:hidden!important}
  .vini23-editor-preview{height:145px!important}
  .vini23-editor-section{width:100%!important}
  .vini25-default-banner-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:520px){
  .vini23-editor-head{padding:15px 15px 12px!important}
  .vini23-editor-head h3{font-size:17.5px!important}
  .vini23-editor-head p{font-size:10.8px!important}
  .vini23-editor-preview{height:138px!important}
  .vini23-editor-avatar{width:57px!important;height:57px!important;min-width:57px!important}
  .vini23-editor-profile-link b{font-size:14.5px!important}
  .vini23-editor-profile-link small{font-size:10px!important}
  .vini23-section-title b{font-size:13px!important}
  .vini23-section-title small{font-size:10px!important}
  .vini23-field>span{font-size:11px!important}
  .vini23-field input,.vini23-field textarea{font-size:12.3px!important}
  .vini24-profile-media-actions button>span b{font-size:11.2px!important}
  .vini24-profile-media-actions button>span small{font-size:9px!important}
  .vini25-default-banner-head{align-items:flex-start!important;flex-direction:column!important;gap:2px!important}
  .vini25-default-banner-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .vini23-editor-foot button{font-size:11px!important}
}


/* ========================================================================== 
   Vini Messenger v24.22 — profile editor hard layout fix + readable typography
   ========================================================================== */
.vini23-profile-editor{
  width:min(640px,calc(100vw - 24px))!important;
  max-height:calc(100dvh - 24px)!important;
  border-radius:22px!important;
  overflow:hidden!important;
}
.vini23-editor-head{padding:19px 20px 16px!important}
.vini23-editor-head>div>span{font-size:11px!important;line-height:1.45!important;font-weight:1000!important;color:#bea2ff!important}
.vini23-editor-head h3{font-size:20px!important;line-height:1.45!important;font-weight:1000!important;color:#fff!important;margin:2px 0 0!important}
.vini23-editor-head p{font-size:12.5px!important;line-height:1.75!important;font-weight:850!important;color:#aaa0b4!important;margin:5px 0 0!important}
.vini23-editor-head>button{width:40px!important;height:40px!important;min-width:40px!important}
.vini23-editor-body{
  display:flex!important;flex-direction:column!important;align-items:stretch!important;
  grid-template-columns:none!important;
  padding:15px 17px 18px!important;gap:12px!important;
  overflow-y:auto!important;overflow-x:hidden!important;
}
.vini23-editor-preview{
  grid-column:auto!important;flex:0 0 auto!important;width:100%!important;height:164px!important;
  min-width:0!important;max-width:100%!important;overflow:hidden!important;box-sizing:border-box!important;
  border-radius:16px!important;
}
.vini23-editor-identity{right:17px!important;left:17px!important;bottom:14px!important;gap:12px!important}
.vini23-editor-avatar{width:64px!important;height:64px!important;min-width:64px!important}
.vini23-editor-profile-link b{font-size:16px!important;line-height:1.5!important;font-weight:1000!important}
.vini23-editor-profile-link small{font-size:11px!important;line-height:1.5!important;font-weight:900!important}
.vini23-editor-profile-link em{font-size:10.5px!important;line-height:1.45!important;font-weight:1000!important}
.vini23-editor-banner-change{height:36px!important;min-height:36px!important;padding:0 12px!important}
.vini23-editor-banner-change b{font-size:11.5px!important;font-weight:1000!important}
.vini23-editor-section{
  width:100%!important;height:auto!important;min-width:0!important;max-width:100%!important;
  padding:15px!important;box-sizing:border-box!important;overflow:hidden!important;border-radius:15px!important;
}
.vini23-section-title{margin-bottom:12px!important}
.vini23-section-title b{font-size:14.5px!important;line-height:1.55!important;font-weight:1000!important;color:#f7f1fc!important}
.vini23-section-title small{font-size:11px!important;line-height:1.7!important;font-weight:850!important;color:#a097aa!important;margin-top:2px!important}
.vini23-field+.vini23-field{margin-top:13px!important}
.vini23-field>span{font-size:12.5px!important;line-height:1.5!important;font-weight:1000!important;color:#ded5e6!important;margin-bottom:7px!important}
.vini23-field>span i{font-size:10.5px!important;line-height:1.4!important;font-weight:850!important;color:#9b90a4!important}
.vini23-field input,.vini23-field textarea{
  font-size:13.5px!important;line-height:1.85!important;font-weight:800!important;color:#f5eff9!important;
  padding:11px 12px!important;border-radius:11px!important;
}
.vini23-field input::placeholder,.vini23-field textarea::placeholder{font-weight:750!important;color:#83788c!important}
.vini23-field textarea{min-height:104px!important}
.vini24-profile-media-actions{display:grid!important;grid-template-columns:1fr!important;gap:9px!important}
.vini24-profile-media-actions>div{width:100%!important;min-width:0!important}
.vini24-profile-media-actions>div>button:first-child{height:66px!important;padding:0 12px!important;gap:10px!important}
.vini24-profile-media-actions button>span b{font-size:12.5px!important;line-height:1.5!important;font-weight:1000!important;color:#f5effa!important}
.vini24-profile-media-actions button>span small{font-size:10.5px!important;line-height:1.6!important;font-weight:850!important;color:#a095aa!important;margin-top:2px!important}
.vini24-profile-media-actions button em{font-size:10.8px!important;font-weight:1000!important}
.vini24-profile-media-actions button.remove{width:64px!important;min-width:64px!important}
.vini24-profile-media-actions button.remove span{font-size:9.8px!important;font-weight:1000!important}
.vini25-default-banner-picker{
  width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important;
  margin-top:12px!important;padding:12px!important;overflow:hidden!important;contain:layout paint!important;isolation:isolate!important;
  border-radius:14px!important;
}
.vini25-default-banner-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;margin-bottom:11px!important}
.vini25-default-banner-head b{font-size:13.5px!important;line-height:1.5!important;font-weight:1000!important;color:#f6f0fb!important}
.vini25-default-banner-head small{font-size:10.5px!important;line-height:1.6!important;font-weight:850!important;color:#a095aa!important;text-align:left!important}
.vini25-default-banner-grid{
  display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;
  width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important;
  overflow:hidden!important;contain:layout paint!important;
}
.vini25-default-banner-grid button{
  position:relative!important;display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;
  height:72px!important;aspect-ratio:auto!important;margin:0!important;padding:0!important;box-sizing:border-box!important;
  overflow:hidden!important;contain:paint!important;transform:none!important;border-radius:10px!important;
  background-size:cover!important;background-position:center!important;
}
.vini25-default-banner-grid button:hover{transform:none!important}
.vini25-default-banner-grid button.active{box-shadow:inset 0 0 0 2px #ab8cff,0 7px 18px rgba(40,23,80,.20)!important}
.vini25-default-banner-grid button::before{content:""!important;display:block!important;position:absolute!important;inset:0!important;background:linear-gradient(180deg,transparent 42%,rgba(3,2,6,.42))!important;pointer-events:none!important}
.vini25-default-banner-grid button.active::after{content:"✓"!important;display:grid!important;position:absolute!important;top:6px!important;right:6px!important;left:auto!important;bottom:auto!important;width:21px!important;height:21px!important;place-items:center!important;border-radius:7px!important;background:#8050e8!important;color:#fff!important;font-size:11px!important;font-weight:1000!important;line-height:1!important;animation:none!important}
.vini25-default-banner-grid button span{left:7px!important;bottom:6px!important;font-size:9.5px!important;font-weight:1000!important}
.vini23-editor-foot{padding:13px 17px calc(15px + env(safe-area-inset-bottom))!important}
.vini23-editor-foot button{height:42px!important;padding:0 18px!important;font-size:12.5px!important;font-weight:1000!important}
.vini23-editor-foot button.primary{min-width:145px!important}
@media(max-width:620px){
  .vini23-profile-editor{width:min(100%,calc(100vw - 12px))!important;max-height:calc(100dvh - 12px)!important}
  .vini23-editor-head{padding:16px 15px 13px!important}.vini23-editor-head h3{font-size:18px!important}.vini23-editor-head p{font-size:11.5px!important}
  .vini23-editor-body{padding:12px!important}.vini23-editor-preview{height:145px!important}
  .vini23-editor-avatar{width:58px!important;height:58px!important;min-width:58px!important}
  .vini23-section-title b{font-size:13.5px!important}.vini23-section-title small{font-size:10.5px!important}.vini23-field>span{font-size:12px!important}
  .vini23-field input,.vini23-field textarea{font-size:13px!important}.vini24-profile-media-actions button>span b{font-size:12px!important}.vini24-profile-media-actions button>span small{font-size:10px!important}
  .vini25-default-banner-head{align-items:flex-start!important;flex-direction:column!important;gap:2px!important}.vini25-default-banner-head small{text-align:right!important}
  .vini25-default-banner-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.vini25-default-banner-grid button{height:70px!important}
  .vini23-editor-foot button{font-size:12px!important}
}


/* ========================================================================== 
   Vini Messenger v24.23 — visible edit CTA + reliable profile editor scroll
   ========================================================================== */
/* Self profile: make the edit action immediately recognizable without adding noise. */
.vini23-profile-actions button[data-edit]{
  min-width:156px!important;
  background:linear-gradient(135deg,#8d59f4 0%,#6f40d8 100%)!important;
  border-color:rgba(190,157,255,.72)!important;
  color:#fff!important;
  font-size:12.8px!important;
  font-weight:1000!important;
  letter-spacing:0!important;
  box-shadow:0 8px 22px rgba(111,64,216,.28),inset 0 1px 0 rgba(255,255,255,.15)!important;
  position:relative!important;
}
.vini23-profile-actions button[data-edit] svg{width:17px!important;height:17px!important;stroke-width:2.1!important}
.vini23-profile-actions button[data-edit]:hover{
  background:linear-gradient(135deg,#9b69ff 0%,#7b49e8 100%)!important;
  border-color:#c8abff!important;
  color:#fff!important;
  transform:translateY(-1px)!important;
  box-shadow:0 11px 28px rgba(117,70,225,.34),inset 0 1px 0 rgba(255,255,255,.18)!important;
}
.vini23-profile-actions button[data-edit]:active{transform:translateY(0)!important}

/* Editor shell owns the viewport height; only the content pane scrolls. */
.vini21-profile-editor-layer{
  overflow:hidden!important;
  overscroll-behavior:contain!important;
}
.vini23-profile-editor{
  height:min(820px,calc(100dvh - 28px))!important;
  max-height:calc(100dvh - 28px)!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
.vini23-editor-head,.vini23-editor-foot{flex:0 0 auto!important}
.vini23-editor-body{
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior-y:contain!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-y!important;
  scrollbar-gutter:stable!important;
  padding-bottom:24px!important;
}
.vini23-editor-body::-webkit-scrollbar{width:7px!important}
.vini23-editor-body::-webkit-scrollbar-track{background:transparent!important}
.vini23-editor-body::-webkit-scrollbar-thumb{background:rgba(151,111,235,.40)!important;border-radius:999px!important;border:2px solid transparent!important;background-clip:padding-box!important}
.vini23-editor-body::-webkit-scrollbar-thumb:hover{background:rgba(171,140,245,.58)!important;background-clip:padding-box!important}

@media(max-width:620px){
  .vini21-profile-editor-layer{padding:6px!important;align-items:center!important}
  .vini23-profile-editor{
    width:100%!important;
    height:calc(100dvh - 12px)!important;
    max-height:calc(100dvh - 12px)!important;
    border-radius:20px!important;
  }
  .vini23-profile-actions button[data-edit]{min-width:0!important;width:100%!important;font-size:12.4px!important}
  .vini23-editor-body{padding-bottom:22px!important}
}
@media(max-height:700px) and (min-width:621px){
  .vini23-profile-editor{height:calc(100dvh - 16px)!important;max-height:calc(100dvh - 16px)!important}
}


/* ========================================================================== 
   Vini Messenger v24.24 — editor viewport scroll + guaranteed bio visibility
   ========================================================================== */
/* The overlay itself is now the single scroll owner. This avoids nested-scroll
   failures in Chromium/Edge when the editor is taller than the viewport. */
.vini21-profile-editor-layer{
  align-items:flex-start!important;
  justify-content:center!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior-y:contain!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-y!important;
  padding:18px 20px!important;
  box-sizing:border-box!important;
}
.vini23-profile-editor{
  flex:0 0 auto!important;
  width:min(700px,calc(100vw - 40px))!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:auto 0!important;
  overflow:visible!important;
  display:flex!important;
  flex-direction:column!important;
  box-sizing:border-box!important;
}
.vini23-editor-head{
  position:sticky!important;
  top:0!important;
  z-index:30!important;
  flex:0 0 auto!important;
  background:rgba(13,10,19,.97)!important;
  backdrop-filter:blur(14px)!important;
}
.vini23-editor-body{
  flex:0 0 auto!important;
  min-height:0!important;
  max-height:none!important;
  height:auto!important;
  overflow:visible!important;
  display:flex!important;
  flex-direction:column!important;
  gap:12px!important;
  padding:14px 16px 18px!important;
}
.vini23-editor-preview,
.vini23-editor-section,
.vini24-profile-media-section{
  flex:0 0 auto!important;
  width:100%!important;
  min-width:0!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  box-sizing:border-box!important;
}
.vini23-editor-preview{
  height:154px!important;
  min-height:154px!important;
  overflow:hidden!important;
}
/* Introduction block: never collapse or get clipped by an inherited grid rule. */
.vini23-editor-section:first-of-type{
  display:block!important;
  min-height:0!important;
  visibility:visible!important;
  opacity:1!important;
}
.vini23-field{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  visibility:visible!important;
  opacity:1!important;
}
.vini23-field textarea[name="bio"]{
  display:block!important;
  width:100%!important;
  min-height:132px!important;
  height:132px!important;
  max-height:280px!important;
  overflow-y:auto!important;
  resize:vertical!important;
  visibility:visible!important;
  opacity:1!important;
  background:#0a0810!important;
  border:1px solid rgba(166,128,255,.16)!important;
  color:#f6f0fa!important;
  font-size:13.5px!important;
  line-height:1.9!important;
  font-weight:800!important;
  box-sizing:border-box!important;
}
.vini23-field textarea[name="bio"]:focus{
  border-color:rgba(174,140,255,.48)!important;
  box-shadow:0 0 0 3px rgba(139,92,246,.08)!important;
}
.vini23-editor-foot{
  position:sticky!important;
  bottom:0!important;
  z-index:30!important;
  flex:0 0 auto!important;
  background:rgba(10,8,15,.97)!important;
  backdrop-filter:blur(14px)!important;
  border-top:1px solid rgba(255,255,255,.065)!important;
}
@media(max-width:620px){
  .vini21-profile-editor-layer{
    align-items:flex-start!important;
    padding:7px!important;
  }
  .vini23-profile-editor{
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    margin:0!important;
    border-radius:20px!important;
  }
  .vini23-editor-body{
    overflow:visible!important;
    padding:12px 12px 16px!important;
  }
  .vini23-editor-preview{height:145px!important;min-height:145px!important}
  .vini23-field textarea[name="bio"]{
    min-height:124px!important;
    height:124px!important;
    font-size:13px!important;
  }
}


/* v24.25 — editor preview is informational/editable only, not a profile navigation card */
.vini23-editor-preview{cursor:default!important}
.vini23-editor-preview:focus-visible{outline:none!important}
.vini23-editor-profile-copy{min-width:0!important;padding:4px 2px!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:1px!important;text-align:right!important}
.vini23-editor-profile-copy b{max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:16px!important;line-height:1.45!important;font-weight:1000!important;color:#fff!important}
.vini23-editor-profile-copy small{font-size:11px!important;line-height:1.5!important;font-weight:900!important;color:#b3a8bd!important;direction:ltr!important}
@media(max-width:620px){.vini23-editor-profile-copy b{font-size:15px!important}.vini23-editor-profile-copy small{font-size:10.5px!important}}


/* v24.26 — refined close controls for profile + profile editor */
.vini23-profile-close,
.vini23-editor-head>button[data-close]{
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  padding:0!important;
  border-radius:13px!important;
  border:1px solid rgba(190,164,255,.24)!important;
  background:
    linear-gradient(180deg,rgba(28,22,39,.92),rgba(13,10,20,.94))!important;
  color:#e9e1f4!important;
  display:grid!important;
  place-items:center!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.07),
    0 9px 24px rgba(0,0,0,.28),
    0 0 0 1px rgba(117,80,205,.05)!important;
  backdrop-filter:blur(14px) saturate(125%)!important;
  -webkit-backdrop-filter:blur(14px) saturate(125%)!important;
  cursor:pointer!important;
  transition:
    transform .18s cubic-bezier(.2,.8,.2,1),
    border-color .18s ease,
    background .18s ease,
    color .18s ease,
    box-shadow .18s ease!important;
}
.vini23-profile-close::before,
.vini23-editor-head>button[data-close]::before{
  content:"";
  position:absolute;
  inset:5px;
  border-radius:9px;
  border:1px solid rgba(255,255,255,.035);
  pointer-events:none;
}
.vini23-profile-close svg,
.vini23-editor-head>button[data-close] svg{
  width:18px!important;
  height:18px!important;
  stroke-width:2.15!important;
  transition:transform .2s cubic-bezier(.2,.8,.2,1)!important;
}
.vini23-profile-close:hover,
.vini23-editor-head>button[data-close]:hover{
  transform:translateY(-1px)!important;
  color:#fff!important;
  border-color:rgba(226,139,166,.46)!important;
  background:linear-gradient(180deg,rgba(63,28,43,.96),rgba(31,13,23,.96))!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.09),
    0 10px 28px rgba(0,0,0,.34),
    0 0 20px rgba(223,84,127,.12)!important;
}
.vini23-profile-close:hover svg,
.vini23-editor-head>button[data-close]:hover svg{
  transform:rotate(90deg) scale(1.04)!important;
}
.vini23-profile-close:active,
.vini23-editor-head>button[data-close]:active{
  transform:translateY(0) scale(.96)!important;
}
.vini23-profile-close:focus-visible,
.vini23-editor-head>button[data-close]:focus-visible{
  outline:none!important;
  border-color:rgba(188,151,255,.72)!important;
  box-shadow:
    0 0 0 3px rgba(139,92,246,.18),
    0 9px 24px rgba(0,0,0,.3)!important;
}
.vini23-profile-close{top:14px!important;left:14px!important;right:auto!important;z-index:8!important;position:absolute!important}
.vini23-editor-head>button[data-close]{position:relative!important;flex:none!important;align-self:flex-start!important}
@media(max-width:620px){
  .vini23-profile-close,
  .vini23-editor-head>button[data-close]{width:40px!important;height:40px!important;min-width:40px!important;border-radius:12px!important}
  .vini23-profile-close{top:11px!important;left:11px!important}
}
