:root{--bg:#0d0f1a;--card:#161a2b;--line:#262b42;--txt:#eef1ff;--muted:#8b91b0;--p:#6c7cff;--p2:#8a5cff;--ok:#22c55e;--off:#1a1a1a;--warn:#f5a524;--danger:#ff5d7a;--bar:72px;--safe:env(safe-area-inset-bottom,0px);--font:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
*{box-sizing:border-box}html,body{height:100%;margin:0;background:var(--bg);color:var(--txt);font:15px/1.4 var(--font);overflow:hidden}
button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.hidden{display:none!important}
.screen{min-height:100%;min-height:100dvh}.center{display:flex;align-items:center;justify-content:center;padding:16px;overflow:auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:0 16px 50px #0008}.card.narrow{width:min(420px,100%)}
.logo{font-weight:800;font-size:1.15rem}.logo .pill{font-size:.65rem;background:#f5a52433;color:var(--warn);border:1px solid #f5a52455;border-radius:999px;padding:.1em .5em;margin-left:4px}
.muted{color:var(--muted)}.small{font-size:.82rem}.err{color:var(--danger);min-height:1.1em}
label{display:block;margin:.65rem 0 .2rem;font-size:.9rem;color:var(--muted)}
input,select,textarea{width:100%;background:#0e1222;border:1px solid var(--line);border-radius:12px;padding:11px 12px;outline:none}
.btn{background:#222743;border:1px solid var(--line);border-radius:12px;padding:10px 14px;color:var(--txt)}.btn.primary{background:linear-gradient(135deg,var(--p),var(--p2));border:0;font-weight:700}.btn.warn{background:#3a2a12;border-color:#6a4a1a;color:#ffd48a}.btn.danger{background:#3a1520;border-color:#6a2035;color:#ffb0c0}.btn.wide{width:100%;margin-top:8px}.btn:disabled{opacity:.45}
.check{display:flex;gap:10px;align-items:flex-start;margin:.5rem 0;color:var(--txt)}.check input{width:auto;margin-top:3px}
.rules{background:#0e1222;border:1px solid var(--line);border-radius:12px;padding:12px;margin:10px 0;font-size:.9rem}.rules ul{margin:.3rem 0 0;padding-left:1.1rem}
#v-app{display:flex;flex-direction:column;height:100%;height:100dvh;padding:0}
.top{display:flex;align-items:center;gap:8px;padding:8px 10px;padding-top:max(8px,env(safe-area-inset-top));border-bottom:1px solid var(--line);background:#12162aee;backdrop-filter:blur(8px);z-index:20;flex-wrap:wrap}
.tabs{display:flex;gap:2px;flex:1}.tab{background:transparent;border:0;color:var(--muted);padding:8px 10px;border-radius:10px}.tab.active{background:#222743;color:var(--txt)}
.badge{background:var(--danger);color:#fff;border-radius:999px;padding:0 6px;font-size:.7rem;margin-left:2px}
.online{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:.85rem;white-space:nowrap}
.dot{width:8px;height:8px;border-radius:50%;background:#333;display:inline-block;flex:0 0 auto}
.dot.live,.dot.on{background:var(--ok);box-shadow:0 0 8px var(--ok)}.dot.off{background:#111;border:1px solid #333}

/* Call layout — mobile first */
.call-pane{flex:1;min-height:0;display:flex;flex-direction:column;position:relative}
.stage{flex:1;min-height:0;display:flex;flex-direction:column;position:relative}
.videos{position:relative;flex:1;min-height:0;background:#05070f;overflow:hidden}
.remote,.remote video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#05070f}
.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#0d0f1acc,#0d0f1aee);text-align:center;padding:20px;z-index:2}
.peer-tag{position:absolute;left:10px;top:10px;background:#000a;padding:6px 10px;border-radius:999px;font-size:.85rem;border:1px solid #fff2;z-index:3}
.local{position:absolute;right:10px;top:10px;width:min(30vw,120px);aspect-ratio:3/4;border-radius:14px;overflow:hidden;border:2px solid #fff3;box-shadow:0 8px 24px #000a;background:#111;z-index:4}
.local-src{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.local-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}
.camoff{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#111;font-size:.75rem;color:var(--muted)}

.call-bar{display:flex;align-items:stretch;justify-content:space-around;gap:2px;padding:6px 4px calc(6px + var(--safe));background:#0e1222f2;border-top:1px solid var(--line);z-index:30;min-height:var(--bar)}
.ibar{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:transparent;border:0;color:var(--txt);padding:6px 2px;border-radius:12px}
.ibar:disabled{opacity:.35}.ibar .ico{font-size:1.15rem;line-height:1}.ibar .ilab{font-size:.62rem;color:var(--muted)}
.ibar:active{background:#222743}
#btn-start.ibar{color:#a8b4ff}#btn-start.ibar .ico{color:#8fa0ff}

.desk-only{display:none}

/* Chat slide-up on mobile */
.chatbox{position:fixed;left:0;right:0;bottom:0;height:min(55dvh,420px);display:flex;flex-direction:column;background:#12162af8;border-top:1px solid var(--line);border-radius:18px 18px 0 0;transform:translateY(105%);transition:transform .25s ease;z-index:40;padding-bottom:var(--safe)}
.chatbox.open{transform:translateY(0)}.chat-close{background:transparent;border:0;color:var(--muted);margin-right:8px}
.chat-head{padding:12px 14px;border-bottom:1px solid var(--line);font-weight:600;display:flex;align-items:center}
.chat-log{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:8px}
.msg{max-width:85%;padding:8px 11px;border-radius:14px;background:#222743;word-break:break-word}.msg.me{align-self:flex-end;background:linear-gradient(135deg,#3a45a0,#5a3aa0)}.sys{align-self:center;color:var(--muted);font-size:.85rem}
.chat-form{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line)}.chat-form input{flex:1}

/* Friends / profile */
#tab-friends,#tab-profile{flex:1;min-height:0;overflow:auto}
#tab-profile{padding:16px}
.friends-wrap{display:flex;flex-direction:column;min-height:0;height:100%}
.friends-side{padding:12px;overflow:auto;flex:0 0 45%}
.friend-chat{flex:1;min-height:0;display:flex;flex-direction:column;border-top:1px solid var(--line);background:#12162a}
.list{display:flex;flex-direction:column;gap:6px}
.list .row{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;background:#161a2b;border:1px solid var(--line);cursor:pointer}
.list .row.active{border-color:var(--p)}.list .meta{flex:1;min-width:0}.list .name{font-weight:600;display:flex;align-items:center;gap:6px}.list .sub{color:var(--muted);font-size:.8rem}
.limit{background:#1a2040;border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:10px;font-size:.9rem}

.avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;background:#2a3160;display:flex;align-items:center;justify-content:center;font-weight:700;flex:0 0 auto;overflow:hidden}
.avatar.lg{width:72px;height:72px;font-size:1.4rem}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.letter{color:#cfd5ff}
.avatar-edit{display:flex;gap:14px;align-items:center;margin:10px 0 16px}

/* Sheets */
.sheet{position:fixed;inset:0;background:#000a;z-index:60;display:flex;align-items:flex-end;justify-content:center}
.sheet-card{width:min(480px,100%);background:var(--card);border-radius:20px 20px 0 0;padding:12px 16px calc(16px + var(--safe));border:1px solid var(--line);border-bottom:0}
.sheet-handle{width:40px;height:4px;border-radius:4px;background:#fff3;margin:4px auto 12px}
.filter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 12px}
.fpick{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;border-radius:14px;background:#0e1222;border:1px solid var(--line);color:var(--txt)}
.fpick span{font-size:1.4rem}.fpick.active{border-color:var(--p);background:#222743}
.modal{position:fixed;inset:0;background:#000a;display:flex;align-items:center;justify-content:center;z-index:70;padding:16px}.row{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}
.toast{position:fixed;left:50%;bottom:calc(var(--bar) + 24px + var(--safe));transform:translateX(-50%);background:#222743;border:1px solid var(--line);padding:10px 16px;border-radius:999px;z-index:80;box-shadow:0 10px 30px #0008;max-width:90vw}

/* v40: zems, meet picker, rail, store, gifts */
.center-text{text-align:center}
.zems-btn{display:flex;align-items:center;gap:4px;background:linear-gradient(135deg,#1d2552,#2a1d52);border:1px solid #4a3f9a;border-radius:999px;padding:5px 10px;color:var(--txt);font-weight:700;font-size:.85rem;white-space:nowrap}
.zems-btn .plus{background:var(--p);border-radius:50%;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;margin-left:2px}
.vtag{display:inline-flex;align-items:center;gap:2px;background:#ff4fa31f;color:#ff6fb5;border:1px solid #ff4fa366;border-radius:999px;padding:0 6px;font-size:.72rem;font-weight:700;margin-left:4px;vertical-align:middle;white-space:nowrap}
.meet-bar{display:flex;align-items:center;gap:8px;padding:6px 8px;background:#0e1222;border-top:1px solid var(--line)}
.seg{display:flex;background:#161a2b;border:1px solid var(--line);border-radius:999px;padding:2px;flex:0 1 auto}
.segb{background:transparent;border:0;color:var(--muted);padding:6px 12px;border-radius:999px;font-size:.85rem;white-space:nowrap}
.segb small{opacity:.8;font-size:.72rem}.segb.active{background:linear-gradient(135deg,var(--p),var(--p2));color:#fff;font-weight:700}
.segb[data-mode=female].active{background:linear-gradient(135deg,#ff4fa3,#a04fff)}
.skip-info{margin-left:auto;white-space:nowrap}.skip-info.warn{color:var(--warn)}
.side-rail{position:absolute;right:10px;bottom:12px;display:flex;flex-direction:column;gap:10px;z-index:5}
.rail{width:54px;height:54px;border-radius:50%;background:#000a;border:1px solid #fff3;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;backdrop-filter:blur(6px);padding:0}
.rail span{font-size:1.25rem;line-height:1.1}.rail small{font-size:.55rem;color:#ddd}.rail:disabled{opacity:.35}
#btn-gift:not(:disabled){background:linear-gradient(135deg,#ff4fa3cc,#a04fffcc)}
.ibar.locked .ico{position:relative}.ibar.locked .ico::after{content:"⭐";position:absolute;right:-10px;top:-6px;font-size:.6rem}
.ibar.on .ico{filter:drop-shadow(0 0 6px #ffd84a)}
.notice{background:#3a2a12;border:1px solid #6a4a1a;color:#ffd48a;border-radius:12px;padding:10px;margin:8px 0;font-size:.9rem}
.store h3{margin:.2rem 0 .6rem}
.product{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:16px;background:#0e1222;margin-bottom:10px;flex-wrap:wrap}
.product.selected{border-color:var(--p);box-shadow:0 0 0 1px var(--p) inset}
.pico{font-size:1.8rem}.pinfo{flex:1;min-width:130px}.price{font-weight:800;white-space:nowrap}
.qty{display:flex;align-items:center;gap:6px}.qb{width:34px;height:34px;border-radius:50%;background:#222743;border:1px solid var(--line);color:var(--txt);font-size:1.1rem;padding:0}
.qty span{min-width:22px;text-align:center;font-weight:700}
.btn.sel{padding:8px 12px}.product.selected .btn.sel{background:var(--p);border-color:var(--p)}
.cart{border-top:1px dashed var(--line);padding-top:10px;margin-top:4px}.cart-line{font-weight:700;margin:4px 0}
.plan-box{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#0e1222;border:1px solid var(--line);border-radius:14px;padding:12px;margin:10px 0}
.gift-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.gc{background:#0e1222;border:1px solid var(--line);border-radius:14px;padding:10px;text-align:center;display:flex;flex-direction:column;align-items:center}
.gc span{font-size:1.6rem}.gc b{font-size:1.2rem}.gc small{color:var(--muted)}
.gift-list{display:flex;flex-direction:column;gap:8px;margin:8px 0}
.gift-row{display:flex;align-items:center;gap:10px;padding:10px;border-radius:14px;background:#0e1222;border:1px solid var(--line)}
.gift-row .gi{font-size:2rem}.gift-row .gn{flex:1;display:flex;flex-direction:column}.gift-row .gn small{color:var(--muted)}
.big-ico{font-size:2.6rem;margin:6px 0}
.cooldown{font-size:1.6rem;font-weight:800;color:var(--warn);display:block;margin-top:6px}
/* 3D gift FX */
.gift-fx{position:fixed;inset:0;z-index:90;pointer-events:none;perspective:900px;perspective-origin:50% 45%;overflow:hidden}
.g-scene{position:absolute;left:50%;top:45%;width:0;height:0;transform-style:preserve-3d}
.g-obj{position:absolute;left:-90px;top:-90px;width:180px;height:180px;transform-style:preserve-3d;will-change:transform,opacity}
.g-layer{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:150px;line-height:1;backface-visibility:visible}
.g-layer.front{filter:drop-shadow(0 0 18px var(--glow)) drop-shadow(0 8px 10px #0009)}
.g-crown .g-layer{font-size:160px}
.g-crown .g-layer.front{filter:drop-shadow(0 0 24px #ffd84a) drop-shadow(0 0 60px #ff9f1a) saturate(1.3)}
.g-shine{position:absolute;inset:10%;border-radius:40%;background:linear-gradient(100deg,transparent 30%,#fff8 50%,transparent 70%);mix-blend-mode:screen;overflow:hidden;opacity:.7}
.g-halo{position:absolute;left:-160px;top:-160px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,var(--glow) 0%,transparent 65%);opacity:0;will-change:transform,opacity}
.g-rays{position:absolute;left:-60vmax;top:-60vmax;width:120vmax;height:120vmax;border-radius:50%;opacity:0;will-change:transform,opacity;
  background:repeating-conic-gradient(from 0deg,#ffd84a55 0deg 6deg,transparent 6deg 18deg);-webkit-mask:radial-gradient(circle,#000 0%,transparent 60%);mask:radial-gradient(circle,#000 0%,transparent 60%)}
.g-part{position:absolute;left:-16px;top:-16px;font-size:30px;will-change:transform,opacity;opacity:0}
.g-label{position:absolute;left:50%;bottom:calc(var(--bar) + 70px + var(--safe));transform:translateX(-50%);background:#000b;border:1px solid #fff3;border-radius:999px;padding:8px 16px;font-weight:700;white-space:nowrap;max-width:92vw;overflow:hidden;text-overflow:ellipsis}

@media(min-width:860px){
  .top .logo{display:block}
  .call-pane{flex-direction:row}
  .stage{flex:1.4}
  .chatbox{position:relative;transform:none;height:auto;width:min(360px,34%);border-radius:0;border-top:0;border-left:1px solid var(--line);padding-bottom:0}
  .chat-close{display:none}
  .desk-only{display:flex}
  .local{width:160px;right:14px;bottom:14px;top:auto}
  .friends-wrap{flex-direction:row;height:100%}
  .friends-side{flex:0 0 340px;border-right:1px solid var(--line)}
  .friend-chat{border-top:0}
  .filter-grid{grid-template-columns:repeat(5,1fr)}
}
@media(max-width:430px){
  .top .logo{display:none}
  .online .mf{display:none}
  .tab{padding:8px 7px}
  .segb{padding:6px 9px;font-size:.8rem}
  .mlabel{display:none}
  .rail{width:48px;height:48px}
  .g-layer{font-size:120px}.g-crown .g-layer{font-size:130px}
  .ibar .ilab{font-size:.58rem}
  .local{width:28vw;right:8px;top:8px}
}
@media(min-width:860px){.side-rail{left:14px;right:auto}}

/* v50: referral + in-app admin */
.ref-box{background:#0e1222;border:1px solid var(--line);border-radius:14px;padding:12px}
.ref-link-row{display:flex;gap:6px}.ref-link-row input{flex:1;min-width:0;font-size:.85rem;padding:9px}
.ref-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}
.progress{height:8px;background:#222743;border-radius:8px;overflow:hidden;margin:6px 0}.progress div{height:100%;width:0;background:linear-gradient(90deg,var(--ok),#7cf0a8)}
.admin-card{width:min(760px,100%);max-height:92dvh;overflow:auto}
.row-between{display:flex;align-items:center;justify-content:space-between}.row-between h3{margin:0}
.adm-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin:10px 0}
.adm-stats .gc b{font-size:1.25rem}
.adm-users{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.au{display:grid;grid-template-columns:1.4fr .7fr .8fr 1.2fr .9fr;gap:6px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:12px;background:#0e1222;font-size:.85rem}
.au.head{background:transparent;border:0;color:var(--muted);font-size:.75rem;padding:0 9px}
.au .n{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.au small{color:var(--muted);display:block;font-weight:400}
@media(max-width:600px){.au{grid-template-columns:1fr 1fr}.au.head{display:none}.au>div:first-child{grid-column:1/-1}}

/* v51: landing about text (onboarding only) */
#v-onboard{flex-direction:column;gap:14px}
.about{width:min(420px,100%);color:var(--muted);font-size:.85rem;line-height:1.5;padding:0 6px 10px}
.about h1{font-size:1rem;color:var(--txt);margin:0 0 4px}.about p{margin:0}

/* v52 Talkora branding */
.logo{display:inline-flex;align-items:center;gap:7px}
.logo-img{width:28px;height:28px;border-radius:50%;flex:0 0 auto}
.card .logo .logo-img{width:40px;height:40px}
.top .logo{display:inline-flex}
@media(max-width:859px){.top .logo-txt,.top .logo .pill{display:none}.top .logo-img{width:26px;height:26px}}

/* ===== v60 preview: top toolbar + always-open chat dock + glossy 3D icons ===== */
#v-app{height:var(--vvh,100dvh)}
.i3{width:24px;height:24px;display:block;overflow:visible}
.v60.call-pane{flex-direction:column}
.v60 .stage{flex:1;min-height:0;display:flex;flex-direction:column}
/* toolbar */
.ctool{position:relative;z-index:25;padding:6px 8px 4px;background:linear-gradient(180deg,#120a14,#0c0a12);border-bottom:1px solid #3a2a1a;display:flex;flex-direction:column;gap:5px}
.ctrow{display:flex;align-items:center;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.ctrow::-webkit-scrollbar{display:none}
.ctspace{flex:1}
.v60 .ibar{flex:0 0 auto;width:42px;height:42px;padding:0;border-radius:50%;gap:0;position:relative;
  background:radial-gradient(120% 120% at 30% 20%,#3a2a44 0%,#1a1220 55%,#0b0810 100%);
  border:1px solid #ffd76a44;box-shadow:inset 0 1px 0 #ffffff30,inset 0 -3px 6px #00000080,0 3px 8px #000a}
.v60 .ibar::before{content:"";position:absolute;left:18%;right:18%;top:4%;height:38%;border-radius:50%;background:linear-gradient(#ffffff2e,#ffffff00);pointer-events:none}
.v60 .ibar .ilab{display:none}
.v60 .ibar:active{transform:translateY(1px) scale(.96)}
.v60 .ibar:disabled{opacity:.38;filter:saturate(.6)}
.v60 .ibar.on{border-color:#ffd84a;box-shadow:0 0 12px #ffd84a88,inset 0 1px 0 #fff4}
.v60 .ibar.locked::after{content:"";position:absolute;right:-1px;top:-1px;width:13px;height:13px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff8c8,#ffc928 45%,#9a6400);box-shadow:0 1px 3px #000a}
.v60 .ibar.locked .ico::after{content:none}
.v60 .ibar.next{width:auto;min-width:96px;padding:0 16px 0 12px;border-radius:999px;flex-direction:row;gap:6px;border:0;
  background:linear-gradient(180deg,#ff8fd2 0%,#ff3fa6 48%,#d81b83 52%,#a3105f 100%);box-shadow:inset 0 1px 0 #fff8,inset 0 -3px 6px #6a0a3c,0 4px 14px #ff3fa666}
.v60 .ibar.next::before{left:10%;right:10%;height:45%}
.v60 .ibar.next .ilab{display:inline;font-size:.95rem;font-weight:800;color:#fff;text-shadow:0 1px 2px #7a0a45}
.v60 .ibar.next .i3{width:20px;height:20px}
/* mode pill in toolbar */
.v60 .seg{display:flex;background:#0b0810;border:1px solid #ffd76a33;border-radius:999px;padding:2px;flex:0 0 auto}
.v60 .segb{display:flex;align-items:center;gap:4px;padding:5px 10px;border-radius:999px;border:0;background:transparent;color:#cdbfd8;font-size:.8rem;white-space:nowrap}
.v60 .segb .si{width:17px;height:17px}.v60 .segb .gm{width:12px;height:12px;display:inline-block;vertical-align:-1px}
.v60 .segb.active{background:linear-gradient(180deg,#ffe58a,#f2b522 50%,#c98a00);color:#2a1800;font-weight:700;box-shadow:inset 0 1px 0 #fff9}
.v60 .segb.active small{color:#5a3a00}
.v60 .skip-info{white-space:nowrap;font-size:.72rem}
/* video area */
.v60 .local{top:8px;right:8px}
/* chat dock */
.chatbox.dock{position:relative;transform:none;height:auto;width:auto;border:0;border-radius:0;background:transparent;padding:0;z-index:20;display:block;transition:none;left:auto;right:auto;bottom:auto}
.dock .chat-log{position:absolute;left:0;right:0;bottom:100%;max-height:min(34vh,260px);overflow-y:auto;padding:8px 10px 6px;display:flex;flex-direction:column;gap:5px;pointer-events:auto;
  -webkit-mask-image:linear-gradient(to top,#000 65%,transparent);mask-image:linear-gradient(to top,#000 65%,transparent);scrollbar-width:none}
.dock .chat-log::-webkit-scrollbar{display:none}
.dock .chat-log:empty{display:none}
.dock .msg{max-width:78%;padding:6px 11px;border-radius:16px;background:#0009;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid #ffffff1c;font-size:.92rem;text-shadow:0 1px 2px #000;transition:opacity .8s;align-self:flex-start}
.dock .msg.me{align-self:flex-end;background:linear-gradient(135deg,#ff3fa6cc,#c0157ccc);border-color:#ff9ad455}
.dock .msg.old{opacity:.5}
.dock .sys{align-self:center;font-size:.75rem;background:#0008;padding:3px 10px;border-radius:999px;color:#ddd}
.dock .chat-form{display:flex;gap:8px;align-items:center;padding:8px 10px calc(8px + var(--safe));border-top:1px solid #3a2a1a;background:#0c0a12}
.dock .chat-form input{flex:1;border-radius:999px;padding:11px 16px;background:#1a1220;border:1px solid #ffd76a33;font-size:16px}
.dock .chat-form input:focus{border-color:#ff6cc4;box-shadow:0 0 0 3px #ff3fa633}
.sendb{flex:0 0 auto;width:46px;height:46px;border-radius:50%;border:0;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(180deg,#ff8fd2 0%,#ff3fa6 48%,#d81b83 52%,#a3105f 100%);box-shadow:inset 0 1px 0 #fff8,0 4px 12px #ff3fa655}
.sendb .i3{width:22px;height:22px;margin-left:-2px}.sendb:disabled{opacity:.4}
/* typing on mobile: compact toolbar, hide self-view so the chat + partner stay visible */
@media(max-width:859px){
  body.typing .ctrow.r2{display:none}
  body.typing .v60 .local{width:72px}
  body.typing .top{display:none}
}
/* gift sheet 3D */
.gift-row .gi{width:52px;height:52px;display:flex;align-items:center;justify-content:center}
.g3{width:52px;height:52px;overflow:visible;filter:drop-shadow(0 4px 6px #0008)}
.g3s{width:34px;height:34px;overflow:visible}
.gn .gm{width:13px;height:13px;display:inline-block;vertical-align:-2px}
.g3fx{width:1em;height:1em;display:block;overflow:visible}
@media(min-width:860px){
  .v60 .ibar{width:46px;height:46px}
  .ctool{flex-direction:row;align-items:center;gap:10px;padding:8px 14px}
  .ctrow.r2{flex:1}
  .v60 .local{top:auto;bottom:14px;right:14px;width:180px}
  .dock .chat-log{right:auto;width:min(520px,60%);max-height:46vh}
  .chatbox.dock{width:auto;border-left:0}
}
@media(max-width:430px){
  .ctool{padding:6px 6px 4px;gap:4px}
  .ctrow{gap:5px}
  .v60 .ibar{width:38px;height:38px}
  .v60 .ibar .i3{width:22px;height:22px}
  .v60 .ibar.next{min-width:84px;padding:0 12px 0 10px}
  .v60 .segb{padding:5px 8px}
  .v60 .segb:not(.active) .slab,.v60 .segb small:not(:has(.gm)){display:none}
  .v60 .skip-info{font-size:.66rem}
}

/* ===== v61 preview: controls above the chat input, friend button by the name ===== */
.v61 .ctool{border-bottom:0;border-top:1px solid #3a2a1a;background:linear-gradient(180deg,#0e0a12,#120a14);padding:6px 8px 5px}
.v61 .dock .chat-form{border-top:1px solid #2a1f2e}
/* floating messages over the video, just above the controls */
.floatlog{position:absolute;left:0;right:0;bottom:0;z-index:5;max-height:min(36vh,280px);overflow-y:auto;padding:8px 10px;display:flex;flex-direction:column;gap:5px;
  -webkit-mask-image:linear-gradient(to top,#000 65%,transparent);mask-image:linear-gradient(to top,#000 65%,transparent);scrollbar-width:none}
.floatlog::-webkit-scrollbar{display:none}.floatlog:empty{display:none}
.floatlog .msg{max-width:78%;padding:6px 11px;border-radius:16px;background:#0009;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid #ffffff1c;font-size:.92rem;text-shadow:0 1px 2px #000;transition:opacity .8s;align-self:flex-start}
.floatlog .msg.me{align-self:flex-end;background:linear-gradient(135deg,#ff3fa6cc,#c0157ccc);border-color:#ff9ad455}
.floatlog .msg.old{opacity:.5}
.floatlog .sys{align-self:center;font-size:.75rem;background:#0008;padding:3px 10px;border-radius:999px;color:#ddd}
/* name + add friend overlay */
.topover{position:absolute;left:10px;top:10px;z-index:6;display:flex;align-items:center;gap:6px;max-width:calc(100% - 150px)}
.topover .peer-tag{position:static;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.topover:has(#peer-tag.hidden) .fbtn{display:none}
.v61 .ibar.fbtn{width:34px;height:34px;flex:0 0 auto}
.v61 .ibar.fbtn .i3{width:20px;height:20px}
.v61 .ibar.fbtn.locked::after{width:11px;height:11px}
/* Weekly premium pill */
.wk{flex:0 0 auto;display:flex;align-items:center;gap:5px;height:34px;padding:0 11px 0 8px;border-radius:999px;border:1px solid #ffd76a66;color:#ffe9a8;font-weight:700;font-size:.8rem;white-space:nowrap;
  background:radial-gradient(120% 140% at 30% 10%,#4a3418,#1d140a 60%,#0d0906);box-shadow:inset 0 1px 0 #fff3,0 3px 8px #000a}
.wk .wki{width:18px;height:18px}
.wk.active{color:#2a1800;border-color:#fff3b0;background:linear-gradient(180deg,#ffe58a,#f2b522 50%,#c98a00);box-shadow:inset 0 1px 0 #fff9,0 0 12px #ffc93c66}
@media(max-width:859px){ body.typing .v61 .ctrow.r2{display:none} }
@media(max-width:430px){
  .v61 .ctool{padding:5px 6px 4px}
  .v61 .ctrow{gap:5px}
  .v61 .skip-info{font-size:.62rem;line-height:1.1;text-align:right;max-width:44px}
  .wk{padding:0 9px 0 7px}
}
@media(min-width:860px){
  .v61 .ctool{flex-direction:row;align-items:center;gap:12px;padding:8px 14px}
  .v61 .ctrow.r1{flex:0 1 auto}.v61 .ctrow.r2{flex:1}
  .floatlog{right:auto;width:min(520px,60%);max-height:46vh}
  .v61 .local{bottom:14px}
}
@media(max-width:430px){ .v61 .skip-info{white-space:normal;flex:0 0 auto;width:30px;max-width:none;font-size:.6rem;text-align:center} }

/* ===== v63 preview: Talkora store ===== */
.tsheet{background:#000c;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.tsheet:not(.hidden) .tstore{animation:stUp .32s cubic-bezier(.2,.9,.25,1.1)}
@keyframes stUp{from{transform:translateY(40px);opacity:.3}to{transform:none;opacity:1}}
.tstore{background:radial-gradient(120% 60% at 50% 0%,#2a1424 0%,#0b070c 55%,#050305 100%);border:1px solid #ffd76a40;border-bottom:0;max-height:94dvh;overflow-y:auto;padding:10px 14px calc(14px + var(--safe));box-shadow:0 -10px 40px #ff3fa622}
.tstore .sheet-handle{background:#ffd76a55}
.st-head{display:flex;align-items:center;gap:10px;margin:4px 0 12px}
.st-title{display:flex;align-items:center;gap:8px;font-weight:800;font-size:1.25rem;letter-spacing:.2px;
  background:linear-gradient(180deg,#fff5c8,#ffd24a 50%,#d89a12);-webkit-background-clip:text;background-clip:text;color:transparent}
.st-title img{border-radius:50%;box-shadow:0 0 12px #ff3fa655}
.st-bal{margin-left:auto;display:flex;align-items:center;gap:5px;padding:5px 12px 5px 7px;border-radius:999px;border:1px solid #ff9ad455;
  background:linear-gradient(180deg,#2c1226,#170a14);box-shadow:inset 0 1px 0 #fff2,0 3px 10px #000a}
.st-bal b{font-size:1.05rem;color:#ffe0f3}.st-bal small{color:#c99bb8;font-size:.72rem}
.st-gem{width:24px;height:24px}
.st-x{width:34px;height:34px;border-radius:50%;border:1px solid #ffffff22;background:#1a1218;display:flex;align-items:center;justify-content:center;padding:0}
.st-x .i3{width:16px;height:16px}
/* cards */
.pcard{position:relative;border-radius:20px;padding:14px;margin-bottom:12px;cursor:pointer;overflow:hidden;
  background:linear-gradient(160deg,#1d1219 0%,#0e090d 60%);border:1px solid #ffffff1a;box-shadow:inset 0 1px 0 #ffffff14,0 6px 18px #000b;
  transition:transform .18s,border-color .2s,box-shadow .25s}
.pcard:active{transform:scale(.99)}
.pcard.selected{border-color:#ffd76a;box-shadow:inset 0 1px 0 #fff3,0 0 0 1px #ffd76a66,0 8px 26px #ffc93c2e}
.pc-glow{position:absolute;inset:-40% -20% auto auto;width:70%;height:120%;background:radial-gradient(circle,#ff3fa633,transparent 60%);pointer-events:none;opacity:.6;transition:opacity .3s}
.prcard .pc-glow{background:radial-gradient(circle,#ffc93c38,transparent 60%)}
.pcard.selected .pc-glow{opacity:1}
.pc-top{display:flex;align-items:center;gap:12px;position:relative}
.pc-art{flex:0 0 auto;width:86px;height:72px;display:flex;align-items:center;justify-content:center}
.gemstack{width:86px;height:72px;animation:gemFloat 3.2s ease-in-out infinite}
.crownbig{width:66px;height:66px;animation:gemFloat 3.6s ease-in-out infinite}
@keyframes gemFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.pc-body{flex:1;min-width:0}
.pc-kicker{font-size:.72rem;letter-spacing:1px;text-transform:uppercase;color:#d7a9c6;font-weight:700;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.prcard .pc-kicker{color:#f2cf7a}
.pc-title{display:flex;align-items:center;gap:5px;font-size:1.9rem;font-weight:900;line-height:1.1;color:#fff;text-shadow:0 2px 8px #000}
.pc-title .i3{width:26px;height:26px}
.pc-per{font-size:.95rem;font-weight:700;color:#cdbfd8;margin-left:3px}
.pc-sub{font-size:.88rem;color:#e7c9dc;margin-top:2px}
.pc-tick{position:absolute;right:0;top:0;opacity:0;transform:scale(.4);transition:all .25s cubic-bezier(.3,1.6,.5,1)}
.pc-tick .i3{width:24px;height:24px}
.pcard.selected .pc-tick{opacity:1;transform:none}
.pc-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;position:relative}
.stepper{display:flex;align-items:center;gap:4px;padding:4px;border-radius:999px;background:#07050a;border:1px solid #ffd76a33;box-shadow:inset 0 2px 6px #000}
.sb{width:42px;height:42px;border-radius:50%;border:0;font-size:1.5rem;font-weight:800;line-height:1;color:#3a2100;display:flex;align-items:center;justify-content:center;padding:0 0 2px;
  background:linear-gradient(180deg,#fff2b0 0%,#ffd23f 48%,#e6a400 52%,#a86a00 100%);box-shadow:inset 0 1px 0 #fffb,inset 0 -2px 4px #7a4a00,0 3px 8px #000a}
.sb:active{transform:translateY(1px) scale(.95)}
.sb:disabled{filter:grayscale(.8) brightness(.55);opacity:.7}
.sq{min-width:44px;text-align:center;font-size:1.35rem;font-weight:900;color:#fff}
.pc-total{text-align:right}
.pc-total small{display:block;font-size:.7rem;color:#bba6b6;text-transform:uppercase;letter-spacing:1px}
.pc-total b{display:flex;align-items:center;gap:4px;font-size:1.5rem;color:#ffe08a}
.t-star{width:22px;height:22px}.pc-total .t-star{width:24px;height:24px}
.bump.bumped{animation:bump .28s ease}
@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.22)}100%{transform:scale(1)}}
#zp-zems,#zq,#zp-total,#cart-total{display:inline-block}
.pp-status{letter-spacing:0;text-transform:none;font-size:.72rem;padding:2px 8px;border-radius:999px;color:#2a1800;background:linear-gradient(180deg,#ffe58a,#f2b522);box-shadow:0 0 10px #ffc93c88}
.prcard.is-active{border-color:#ffd76a99}
.perks{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px;position:relative}
.perks li{display:flex;align-items:center;gap:8px;font-size:.86rem;color:#eee;background:#ffffff08;border:1px solid #ffffff12;border-radius:12px;padding:7px 8px}
.perks .i3{width:22px;height:22px;flex:0 0 auto}
.vt{color:#ff6cc4}
/* summary */
.tcart{border-top:0;margin-top:2px;padding:12px 14px;border-radius:18px;background:#0a070b;border:1px solid #ffffff14}
.sum-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:4px 0}
.sum-row .cart-line{margin:0;font-weight:700;text-align:right}
.sum-row.tot{border-top:1px dashed #ffffff22;margin-top:4px;padding-top:9px;font-weight:800;font-size:1.05rem}
.sum-row.tot b{display:flex;align-items:center;gap:4px;font-size:1.45rem;color:#ffe08a}
.paybtn{position:relative;overflow:hidden;width:100%;margin-top:12px;height:56px;border-radius:999px;border:0;font-size:1.08rem;font-weight:900;color:#fff;letter-spacing:.2px;text-shadow:0 1px 2px #7a0a45;
  background:linear-gradient(180deg,#ff9ad6 0%,#ff3fa6 46%,#d81b83 54%,#9e0f5c 100%);box-shadow:inset 0 1px 0 #fffa,inset 0 -3px 8px #6a0a3c,0 8px 22px #ff3fa655}
.paybtn::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,#ffffff55,transparent);transform:skewX(-20deg);animation:shine 3.2s ease-in-out infinite}
@keyframes shine{0%,60%{left:-60%}100%{left:130%}}
.paybtn:active{transform:translateY(1px)}
.paybtn:disabled{filter:grayscale(.6) brightness(.7)}.paybtn:disabled::after{display:none}
.pay-note{text-align:center;margin:8px 0 0}
.st-close{background:transparent;border-color:#ffffff1c;color:#bbb;margin-top:10px}
@media(max-width:380px){.pc-title{font-size:1.6rem}.perks{grid-template-columns:1fr}}
@media(min-width:860px){
  .tsheet{align-items:center}
  .tstore{width:min(760px,94vw);border-radius:24px;border-bottom:1px solid #ffd76a40;display:grid;grid-template-columns:1fr 1fr;column-gap:16px;padding:18px 20px 20px}
  .tstore .sheet-handle{display:none}
  .tstore .st-head,.tstore #pay-off,.tstore .tcart,.tstore .st-close{grid-column:1/-1}
  .tstore .pcard{margin-bottom:14px}
}
@media(prefers-reduced-motion:reduce){.gemstack,.crownbig,.paybtn::after,.bump.bumped,.tsheet .tstore{animation:none!important}}
.pc-body{padding-right:28px}
